Subversion Repositories Games.Chess Giants

Rev

Rev 75 | Rev 119 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 75 Rev 116
Line 193... Line 193...
193
 
193
 
194
      // chessboard menu, beginning of game
194
      // chessboard menu, beginning of game
195
      else if (wParam_loword == MENUID_CHESSBOARD_BEGINNINGOFGAME)
195
      else if (wParam_loword == MENUID_CHESSBOARD_BEGINNINGOFGAME)
196
      {
196
      {
197
         the_board.viewed_move = 0; // enter view mode and go to the beginning of the game
197
         the_board.viewed_move = 0; // enter view mode and go to the beginning of the game
198
         Audio_PlaySound (SOUNDTYPE_CLICK); // make a click sound
198
         Audio_PlaySound (SOUNDTYPE_CLICK, 0.0f, 0.0f, 0.04f); // make a click sound at the center of the board
199
         the_board.reevaluate = true; // evaluate board again
199
         the_board.reevaluate = true; // evaluate board again
200
      }
200
      }
201
 
201
 
202
      // chessboard menu, previous move (only if arrow is enabled)
202
      // chessboard menu, previous move (only if arrow is enabled)
203
      else if ((wParam_loword == MENUID_CHESSBOARD_PREVIOUSMOVE) && (the_scene.gui.larrow.state != 0))
203
      else if ((wParam_loword == MENUID_CHESSBOARD_PREVIOUSMOVE) && (the_scene.gui.larrow.state != 0))
204
      {
204
      {
205
         the_board.viewed_move--; // enter view mode and go back one move
205
         the_board.viewed_move--; // enter view mode and go back one move
206
         Audio_PlaySound (SOUNDTYPE_CLICK); // make a click sound
206
         Audio_PlaySound (SOUNDTYPE_CLICK, 0.0f, 0.0f, 0.04f); // make a click sound at the center of the board
207
         the_board.reevaluate = true; // evaluate board again
207
         the_board.reevaluate = true; // evaluate board again
208
      }
208
      }
209
 
209
 
210
      // chessboard menu, next move (only if arrow is enabled)
210
      // chessboard menu, next move (only if arrow is enabled)
211
      else if ((wParam_loword == MENUID_CHESSBOARD_NEXTMOVE) && (the_scene.gui.rarrow.state != 0))
211
      else if ((wParam_loword == MENUID_CHESSBOARD_NEXTMOVE) && (the_scene.gui.rarrow.state != 0))
212
      {
212
      {
213
         the_board.viewed_move++; // enter view mode and go forward one move
213
         the_board.viewed_move++; // enter view mode and go forward one move
214
         Audio_PlaySound (SOUNDTYPE_CLICK); // make a click sound
214
         Audio_PlaySound (SOUNDTYPE_CLICK, 0.0f, 0.0f, 0.04f); // make a click sound at the center of the board
215
         the_board.reevaluate = true; // evaluate board again
215
         the_board.reevaluate = true; // evaluate board again
216
      }
216
      }
217
 
217
 
218
      // chessboard menu, current state of game
218
      // chessboard menu, current state of game
219
      else if (wParam_loword == MENUID_CHESSBOARD_CURRENTSTATEOFGAME)
219
      else if (wParam_loword == MENUID_CHESSBOARD_CURRENTSTATEOFGAME)
220
      {
220
      {
221
         the_board.viewed_move = the_board.move_count - 1; // enter view mode and go to the current state of the game
221
         the_board.viewed_move = the_board.move_count - 1; // enter view mode and go to the current state of the game
222
         Audio_PlaySound (SOUNDTYPE_CLICK); // make a click sound
222
         Audio_PlaySound (SOUNDTYPE_CLICK, 0.0f, 0.0f, 0.04f); // make a click sound at the center of the board
223
         the_board.reevaluate = true; // evaluate board again
223
         the_board.reevaluate = true; // evaluate board again
224
      }
224
      }
225
 
225
 
226
      // chessboard menu, top view
226
      // chessboard menu, top view
227
      else if (wParam_loword == MENUID_CHESSBOARD_TOPVIEW)
227
      else if (wParam_loword == MENUID_CHESSBOARD_TOPVIEW)
Line 485... Line 485...
485
         // for each selectable part, if the mouse is on it, mark it as selected
485
         // for each selectable part, if the mouse is on it, mark it as selected
486
         for (part_index = 0; part_index < 13; part_index++)
486
         for (part_index = 0; part_index < 13; part_index++)
487
            if (Render_IsMouseInBox (gui_x, gui_y, part_index * (100.0f / 13.0f), 0, 100.0f / 13.0f, 11.0f))
487
            if (Render_IsMouseInBox (gui_x, gui_y, part_index * (100.0f / 13.0f), 0, 100.0f / 13.0f, 11.0f))
488
            {
488
            {
489
               the_scene.gui.partspick_selectedpart = selectable_parts[part_index]; // mark it as selected
489
               the_scene.gui.partspick_selectedpart = selectable_parts[part_index]; // mark it as selected
490
               Audio_PlaySound (SOUNDTYPE_CLICK); // make a click sound
490
               Audio_PlaySound (SOUNDTYPE_CLICK, 0.0f, 0.0f, 0.04f); // make a click sound at the center of the board
491
               break; // no need to search further if one selection was found
491
               break; // no need to search further if one selection was found
492
            }
492
            }
493
      }
493
      }
494
 
494
 
495
      // get current player and see if we're online
495
      // get current player and see if we're online
Line 548... Line 548...
548
             && (the_scene.gui.partspick_selectedpart != 'k'))
548
             && (the_scene.gui.partspick_selectedpart != 'k'))
549
         {
549
         {
550
            // is it ALREADY the king's default location ? if so, give up
550
            // is it ALREADY the king's default location ? if so, give up
551
            if ((line == 7) && (column == 4))
551
            if ((line == 7) && (column == 4))
552
            {
552
            {
553
               Audio_PlaySound (SOUNDTYPE_ILLEGALMOVE); // play the "illegal move" sound
553
               Audio_PlaySound (SOUNDTYPE_ILLEGALMOVE, 17.5f - (7 - column) * 5.0f, 17.5f - line * 5.0f, 0.04f); // play the "illegal move" sound
554
               return (DefWindowProc (hWnd, message, wParam, lParam)); // call the default window message proc
554
               return (DefWindowProc (hWnd, message, wParam, lParam)); // call the default window message proc
555
            }
555
            }
556
 
556
 
557
            Move_SetSlot (current_move, 7, 4, COLOR_BLACK, PART_KING); // replace black king
557
            Move_SetSlot (current_move, 7, 4, COLOR_BLACK, PART_KING); // replace black king
558
         }
558
         }
Line 560... Line 560...
560
                  && (the_scene.gui.partspick_selectedpart != 'K'))
560
                  && (the_scene.gui.partspick_selectedpart != 'K'))
561
         {
561
         {
562
            // is it ALREADY the king's default location ? if so, give up
562
            // is it ALREADY the king's default location ? if so, give up
563
            if ((line == 0) && (column == 4))
563
            if ((line == 0) && (column == 4))
564
            {
564
            {
565
               Audio_PlaySound (SOUNDTYPE_ILLEGALMOVE); // play the "illegal move" sound
565
               Audio_PlaySound (SOUNDTYPE_ILLEGALMOVE, 17.5f - (7 - column) * 5.0f, 17.5f - line * 5.0f, 0.04f); // play the "illegal move" sound
566
               return (DefWindowProc (hWnd, message, wParam, lParam)); // call the default window message proc
566
               return (DefWindowProc (hWnd, message, wParam, lParam)); // call the default window message proc
567
            }
567
            }
568
 
568
 
569
            Move_SetSlot (current_move, 0, 4, COLOR_WHITE, PART_KING); // replace white king
569
            Move_SetSlot (current_move, 0, 4, COLOR_WHITE, PART_KING); // replace white king
570
         }
570
         }
Line 594... Line 594...
594
         else
594
         else
595
            Move_SetSlot (current_move, line, column, 0, PART_NONE); // no part
595
            Move_SetSlot (current_move, line, column, 0, PART_NONE); // no part
596
 
596
 
597
         // figure out which sound to play
597
         // figure out which sound to play
598
         if (the_scene.gui.partspick_selectedpart != ' ')
598
         if (the_scene.gui.partspick_selectedpart != ' ')
599
            Audio_PlaySound (SOUNDTYPE_MOVE); // play a move sound when placing a part
599
            Audio_PlaySound (SOUNDTYPE_MOVE, 17.5f - (7 - column) * 5.0f, 17.5f - line * 5.0f, 0.04f); // play a move sound when placing a part
600
 
600
 
601
         the_scene.update = true; // update the 3D scene
601
         the_scene.update = true; // update the 3D scene
602
 
602
 
603
         // call the default window message processing function to keep things going
603
         // call the default window message processing function to keep things going
604
         return (DefWindowProc (hWnd, message, wParam, lParam));
604
         return (DefWindowProc (hWnd, message, wParam, lParam));
Line 658... Line 658...
658
               || (current_move->slots[the_board.hovered_position[0]][the_board.hovered_position[1]].flags & FLAG_TAKEABLE))
658
               || (current_move->slots[the_board.hovered_position[0]][the_board.hovered_position[1]].flags & FLAG_TAKEABLE))
659
      {
659
      {
660
         // are we in check after the move ? (FIXME: call EP version of this func for en passant moves)
660
         // are we in check after the move ? (FIXME: call EP version of this func for en passant moves)
661
         if (Move_IsColorInCheckAfterTestMove (current_move, the_board.selected_position[0], the_board.selected_position[1], the_board.hovered_position[0], the_board.hovered_position[1], Board_ColorToMove (&the_board)))
661
         if (Move_IsColorInCheckAfterTestMove (current_move, the_board.selected_position[0], the_board.selected_position[1], the_board.hovered_position[0], the_board.hovered_position[1], Board_ColorToMove (&the_board)))
662
         {
662
         {
663
            Audio_PlaySound (SOUNDTYPE_ILLEGALMOVE); // play the "illegal move" sound
663
            Audio_PlaySound (SOUNDTYPE_ILLEGALMOVE, 17.5f - (7 - the_board.hovered_position[1]) * 5.0f, 17.5f - the_board.hovered_position[0] * 5.0f, 0.04f); // play the "illegal move" sound
664
 
664
 
665
            the_scene.update = true; // update the 3D scene
665
            the_scene.update = true; // update the 3D scene
666
 
666
 
667
            // call the default window message processing function to keep things going
667
            // call the default window message processing function to keep things going
668
            return (DefWindowProc (hWnd, message, wParam, lParam));
668
            return (DefWindowProc (hWnd, message, wParam, lParam));
Line 699... Line 699...
699
         return (DefWindowProc (hWnd, message, wParam, lParam));
699
         return (DefWindowProc (hWnd, message, wParam, lParam));
700
      }
700
      }
701
 
701
 
702
      // else it's another location
702
      // else it's another location
703
 
703
 
704
      Audio_PlaySound (SOUNDTYPE_ILLEGALMOVE); // play the "illegal move" sound
704
      Audio_PlaySound (SOUNDTYPE_ILLEGALMOVE, 17.5f - (7 - the_board.hovered_position[1]) * 5.0f, 17.5f - the_board.hovered_position[0] * 5.0f, 0.04f); // play the "illegal move" sound
705
 
705
 
706
      the_scene.update = true; // update the 3D scene
706
      the_scene.update = true; // update the 3D scene
707
 
707
 
708
      // call the default window message processing function to keep things going
708
      // call the default window message processing function to keep things going
709
      return (DefWindowProc (hWnd, message, wParam, lParam));
709
      return (DefWindowProc (hWnd, message, wParam, lParam));
Line 1057... Line 1057...
1057
            else if (wParam == 0x0d)
1057
            else if (wParam == 0x0d)
1058
               the_scene.gui.is_entering_text = false; // enter, exit from the text entering mode (this will validate our reply)
1058
               the_scene.gui.is_entering_text = false; // enter, exit from the text entering mode (this will validate our reply)
1059
 
1059
 
1060
            // else it's an illegal character
1060
            // else it's an illegal character
1061
            else
1061
            else
1062
               Audio_PlaySound (SOUNDTYPE_ILLEGALMOVE); // illegal character, beep the illegal move sound
1062
               Audio_PlaySound (SOUNDTYPE_ILLEGALMOVE, 0.0f, 0.0f, 0.04f); // illegal character, beep the illegal move sound at the center of the board
1063
         }
1063
         }
1064
 
1064
 
1065
         the_scene.update = true; // update the 3D scene
1065
         the_scene.update = true; // update the 3D scene
1066
 
1066
 
1067
         // call the default window message processing function to keep things going
1067
         // call the default window message processing function to keep things going