Rev 192 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 192 | Rev 193 | ||
---|---|---|---|
Line 136... | Line 136... | ||
136 | bool PlayerEngine_Think (player_t *player) |
136 | bool PlayerEngine_Think (player_t *player) |
137 | { |
137 | { |
138 | // this function reads and writes any necessary data from and to the chess engine. Returns TRUE if scene needs to be updated. |
138 | // this function reads and writes any necessary data from and to the chess engine. Returns TRUE if scene needs to be updated. |
139 | 139 | ||
140 | engineprogram_t *program; |
140 | engineprogram_t *program; |
141 | wchar_t line_buffer[1024]; |
141 | wchar_t line_buffer[1024] = L""; |
142 | wchar_t *line_pointer; |
142 | wchar_t *line_pointer; |
143 | wchar_t *move_string; |
143 | wchar_t *move_string; |
144 | int64_t exit_code; |
144 | int64_t exit_code; |
145 | int engine_index; |
145 | int engine_index; |
146 | int char_index; |
146 | int char_index; |
Line 335... | Line 335... | ||
335 | continue; // if string is too short to be a move, skip it |
335 | continue; // if string is too short to be a move, skip it |
336 | 336 | ||
337 | // there must be valid move data on that line. |
337 | // there must be valid move data on that line. |
338 | 338 | ||
339 | // evaluate the engine move string |
339 | // evaluate the engine move string |
- | 340 | memset (&move, 0, sizeof (move)); |
|
340 | memcpy (move.slots, the_board.moves[the_board.move_count - 1].slots, sizeof (move.slots)); |
341 | memcpy (move.slots, the_board.moves[the_board.move_count - 1].slots, sizeof (move.slots)); |
341 | char_index = 0; |
342 | char_index = 0; |
342 | while ((move_string[char_index] != 0) && !iswspace (move_string[char_index])) |
343 | while ((move_string[char_index] != 0) && !iswspace (move_string[char_index])) |
343 | { |
344 | { |
344 | move.pgntext[char_index] = move_string[char_index]; |
345 | move.pgntext[char_index] = move_string[char_index]; |
Line 565... | Line 566... | ||
565 | } |
566 | } |
566 | 567 | ||
567 | 568 | ||
568 | int wcs_replace (wchar_t *haystack, wchar_t *needle, wchar_t *replacement) |
569 | int wcs_replace (wchar_t *haystack, wchar_t *needle, wchar_t *replacement) |
569 | { |
570 | { |
- | 571 | // FIXME: REWRITE TAKING IN ACCOUNT MAX BUF SIZE |
|
- | 572 | ||
570 | size_t replacement_length; |
573 | size_t replacement_length; |
571 | size_t replacement_count; |
574 | size_t replacement_count; |
572 | size_t pattern_length; |
575 | size_t pattern_length; |
573 | wchar_t *line_pointer; |
576 | wchar_t *line_pointer; |
574 | 577 | ||
575 | replacement_count = 0; |
578 | replacement_count = 0; |
- | 579 | pattern_length = wcslen (needle); |
|
- | 580 | replacement_length = wcslen (replacement); |
|
576 | while ((line_pointer = wcsstr (haystack, needle)) != NULL) |
581 | while ((line_pointer = wcsstr (haystack, needle)) != NULL) |
577 | { |
582 | { |
578 | pattern_length = wcslen (needle); |
- | |
579 | replacement_length = wcslen (replacement); |
- | |
580 | memmove (&line_pointer[replacement_length], &line_pointer[pattern_length], (wcslen (&line_pointer[pattern_length]) + 1) * sizeof (wchar_t)); |
583 | memmove (&line_pointer[replacement_length], &line_pointer[pattern_length], (wcslen (&line_pointer[pattern_length]) + 1) * sizeof (wchar_t)); |
581 | memcpy (line_pointer, replacement, replacement_length * sizeof (wchar_t)); |
584 | memcpy (line_pointer, replacement, replacement_length * sizeof (wchar_t)); |
582 | replacement_count++; |
585 | replacement_count++; |
583 | } |
586 | } |
584 | 587 |