Rev 21 | Rev 25 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 21 | Rev 24 | ||
|---|---|---|---|
| Line 40... | Line 40... | ||
| 40 | int column;  | 
            40 | int column;  | 
          
| 41 | int index_line;  | 
            41 | int index_line;  | 
          
| 42 | int index_column;  | 
            42 | int index_column;  | 
          
| 43 | int part_index;  | 
            43 | int part_index;  | 
          
| 44 | int part_color;  | 
            44 | int part_color;  | 
          
| - | 45 | int viewer_index;  | 
          |
| 45 | 46 | ||
| 46 |    // filter out the commonly used message values | 
            47 |    // filter out the commonly used message values | 
          
| 47 | wParam_hiword = HIWORD (wParam);  | 
            48 | wParam_hiword = HIWORD (wParam);  | 
          
| 48 | wParam_loword = LOWORD (wParam);  | 
            49 | wParam_loword = LOWORD (wParam);  | 
          
| 49 | 50 | ||
| Line 211... | Line 212... | ||
| 211 |       } | 
            212 |       } | 
          
| 212 | 213 | ||
| 213 |       // chessboard menu, top view | 
            214 |       // chessboard menu, top view | 
          
| 214 | else if (wParam_loword == MENUID_CHESSBOARD_TOPVIEW)  | 
            215 | else if (wParam_loword == MENUID_CHESSBOARD_TOPVIEW)  | 
          
| 215 |       { | 
            216 |       { | 
          
| - | 217 |          // cycle through both players and change their view angles EXCEPT the opponent if he's human | 
          |
| - | 218 | for (viewer_index = 0; viewer_index < 2; viewer_index++)  | 
          |
| - | 219 | if ((the_board.players[viewer_index].type == PLAYER_COMPUTER)  | 
          |
| - | 220 | || (the_board.players[viewer_index].type == PLAYER_INTERNET)  | 
          |
| - | 221 | || (viewer_index == current_viewer))  | 
          |
| - | 222 |             { | 
          |
| 216 | the_board.players[  | 
            223 | the_board.players[viewer_index].view_pitch = 89.0f;  | 
          
| 217 | the_board.players[  | 
            224 | the_board.players[viewer_index].view_yaw = (current_viewer == COLOR_BLACK ? 90.0f : -90.0f);  | 
          
| 218 | the_board.players[  | 
            225 | the_board.players[viewer_index].view_distance = 58.0f;  | 
          
| - | 226 |             } | 
          |
| 219 |       } | 
            227 |       } | 
          
| 220 | 228 | ||
| 221 |       // chessboard menu, default view | 
            229 |       // chessboard menu, default view | 
          
| 222 | else if (wParam_loword == MENUID_CHESSBOARD_DEFAULTVIEW)  | 
            230 | else if (wParam_loword == MENUID_CHESSBOARD_DEFAULTVIEW)  | 
          
| 223 |       { | 
            231 |       { | 
          
| - | 232 |          // cycle through both players and change their view angles EXCEPT the opponent if he's human | 
          |
| - | 233 | for (viewer_index = 0; viewer_index < 2; viewer_index++)  | 
          |
| - | 234 | if ((the_board.players[viewer_index].type == PLAYER_COMPUTER)  | 
          |
| - | 235 | || (the_board.players[viewer_index].type == PLAYER_INTERNET)  | 
          |
| - | 236 | || (viewer_index == current_viewer))  | 
          |
| - | 237 |             { | 
          |
| 224 | the_board.players[  | 
            238 | the_board.players[viewer_index].view_pitch = 55.0f;  | 
          
| 225 | the_board.players[  | 
            239 | the_board.players[viewer_index].view_yaw = (current_viewer == COLOR_BLACK ? 90.0f : -90.0f);  | 
          
| 226 | the_board.players[  | 
            240 | the_board.players[viewer_index].view_distance = 70.0f;  | 
          
| - | 241 |             } | 
          |
| 227 |       } | 
            242 |       } | 
          
| 228 | 243 | ||
| 229 |       // chessboard menu, reset view | 
            244 |       // chessboard menu, reset view | 
          
| 230 | else if (wParam_loword == MENUID_CHESSBOARD_RESETVIEW)  | 
            245 | else if (wParam_loword == MENUID_CHESSBOARD_RESETVIEW)  | 
          
| 231 |       { | 
            246 |       { | 
          
| - | 247 |          // cycle through both players and change their view angles EXCEPT the opponent if he's human | 
          |
| - | 248 | for (viewer_index = 0; viewer_index < 2; viewer_index++)  | 
          |
| - | 249 | if ((the_board.players[viewer_index].type == PLAYER_COMPUTER)  | 
          |
| - | 250 | || (the_board.players[viewer_index].type == PLAYER_INTERNET)  | 
          |
| - | 251 | || (viewer_index == current_viewer))  | 
          |
| - | 252 |             { | 
          |
| 232 | the_board.players[  | 
            253 | the_board.players[viewer_index].view_pitch = the_board.players[current_viewer].custom_pitch;  | 
          
| 233 | the_board.players[  | 
            254 | the_board.players[viewer_index].view_yaw = the_board.players[current_viewer].custom_yaw;  | 
          
| 234 | the_board.players[  | 
            255 | the_board.players[viewer_index].view_distance = the_board.players[current_viewer].custom_distance;  | 
          
| - | 256 |             } | 
          |
| 235 |       } | 
            257 |       } | 
          
| 236 | 258 | ||
| 237 |       // chessboard menu, zoom in | 
            259 |       // chessboard menu, zoom in | 
          
| 238 | else if (wParam_loword == MENUID_CHESSBOARD_ZOOMIN)  | 
            260 | else if (wParam_loword == MENUID_CHESSBOARD_ZOOMIN)  | 
          
| 239 |       { | 
            261 |       { | 
          
| Line 362... | Line 384... | ||
| 362 |       { | 
            384 |       { | 
          
| 363 | prevgui_x = GET_X_LPARAM (lParam); // remember mouse coordinates  | 
            385 | prevgui_x = GET_X_LPARAM (lParam); // remember mouse coordinates  | 
          
| 364 | prevgui_y = GET_Y_LPARAM (lParam);  | 
            386 | prevgui_y = GET_Y_LPARAM (lParam);  | 
          
| 365 | 387 | ||
| 366 |          // if we click something, stop moving the table immediately | 
            388 |          // if we click something, stop moving the table immediately | 
          
| - | 389 | ||
| - | 390 |          // cycle through both players and change their view angles EXCEPT the opponent if he's human | 
          |
| - | 391 | for (viewer_index = 0; viewer_index < 2; viewer_index++)  | 
          |
| - | 392 | if ((the_board.players[viewer_index].type == PLAYER_COMPUTER)  | 
          |
| - | 393 | || (the_board.players[viewer_index].type == PLAYER_INTERNET)  | 
          |
| - | 394 | || (viewer_index == current_viewer))  | 
          |
| - | 395 |             { | 
          |
| 367 | the_board.players[  | 
            396 | the_board.players[viewer_index].view_pitch = current_pitch;  | 
          
| 368 | the_board.players[  | 
            397 | the_board.players[viewer_index].view_yaw = current_yaw;  | 
          
| - | 398 |             } | 
          |
| 369 | 399 | ||
| 370 | rbutton_pushed = true; // remember button is clicked  | 
            400 | rbutton_pushed = true; // remember button is clicked  | 
          
| 371 |       } | 
            401 |       } | 
          
| 372 | 402 | ||
| 373 |       // call the default window message processing function to keep things going | 
            403 |       // call the default window message processing function to keep things going | 
          
| Line 665... | Line 695... | ||
| 665 | 695 | ||
| 666 | prevgui_x = GET_X_LPARAM (lParam); // remember mouse coordinates  | 
            696 | prevgui_x = GET_X_LPARAM (lParam); // remember mouse coordinates  | 
          
| 667 | prevgui_y = GET_Y_LPARAM (lParam);  | 
            697 | prevgui_y = GET_Y_LPARAM (lParam);  | 
          
| 668 | 698 | ||
| 669 |       // if we click something, stop moving the table immediately | 
            699 |       // if we click something, stop moving the table immediately | 
          
| - | 700 | ||
| - | 701 |       // cycle through both players and change their view angles EXCEPT the opponent if he's human | 
          |
| - | 702 | for (viewer_index = 0; viewer_index < 2; viewer_index++)  | 
          |
| - | 703 | if ((the_board.players[viewer_index].type == PLAYER_COMPUTER)  | 
          |
| - | 704 | || (the_board.players[viewer_index].type == PLAYER_INTERNET)  | 
          |
| - | 705 | || (viewer_index == current_viewer))  | 
          |
| - | 706 |          { | 
          |
| 670 | the_board.players[  | 
            707 | the_board.players[viewer_index].view_pitch = current_pitch;  | 
          
| 671 | the_board.players[  | 
            708 | the_board.players[viewer_index].view_yaw = current_yaw;  | 
          
| - | 709 |          } | 
          |
| 672 | 710 | ||
| 673 | rbutton_pushed = true; // remember button is clicked  | 
            711 | rbutton_pushed = true; // remember button is clicked  | 
          
| 674 | 712 | ||
| 675 |       // call the default window message processing function to keep things going | 
            713 |       // call the default window message processing function to keep things going | 
          
| 676 | return (DefWindowProc (hWnd, message, wParam, lParam));  | 
            714 | return (DefWindowProc (hWnd, message, wParam, lParam));  | 
          
| Line 773... | Line 811... | ||
| 773 | opposite_player = Player_GetOpposite ();  | 
            811 | opposite_player = Player_GetOpposite ();  | 
          
| 774 | 812 | ||
| 775 |       // if right button was clicked, compute new pitch and yaw | 
            813 |       // if right button was clicked, compute new pitch and yaw | 
          
| 776 | if (rbutton_pushed)  | 
            814 | if (rbutton_pushed)  | 
          
| 777 |       { | 
            815 |       { | 
          
| - | 816 |          // cycle through both players and change their view angles EXCEPT the opponent if he's human | 
          |
| - | 817 | for (viewer_index = 0; viewer_index < 2; viewer_index++)  | 
          |
| - | 818 | if ((the_board.players[viewer_index].type == PLAYER_COMPUTER)  | 
          |
| - | 819 | || (the_board.players[viewer_index].type == PLAYER_INTERNET)  | 
          |
| - | 820 | || (viewer_index == current_viewer))  | 
          |
| - | 821 |             { | 
          |
| 778 | the_board.players[  | 
            822 | the_board.players[viewer_index].view_pitch += (gui_y - prevgui_y) * 0.3f;  | 
          
| 779 | if (the_board.players[  | 
            823 | if (the_board.players[viewer_index].view_pitch < 10.0f)  | 
          
| 780 | the_board.players[  | 
            824 | the_board.players[viewer_index].view_pitch = 10.0f; // wrap angles around so that they  | 
          
| 781 | if (the_board.players[  | 
            825 | if (the_board.players[viewer_index].view_pitch > 89.0f)  | 
          
| 782 | the_board.players[  | 
            826 | the_board.players[viewer_index].view_pitch = 89.0f; // stay in the [10, 89] bounds  | 
          
| 783 | 827 | ||
| 784 | the_board.players[  | 
            828 | the_board.players[viewer_index].view_yaw += (gui_x - prevgui_x) * 0.3f;  | 
          
| 785 | the_board.players[  | 
            829 | the_board.players[viewer_index].view_yaw = WrapAngle (the_board.players[viewer_index].view_yaw);  | 
          
| 786 | 830 | ||
| 787 |          // save these as the new custom angles | 
            831 |                // save these as the new custom angles | 
          
| 788 | the_board.players[  | 
            832 | the_board.players[viewer_index].custom_pitch = the_board.players[viewer_index].view_pitch;  | 
          
| 789 | the_board.players[  | 
            833 | the_board.players[viewer_index].custom_yaw = the_board.players[viewer_index].view_yaw;  | 
          
| 790 | 834 | ||
| 791 |          // when moving the table around, jump to ideal angles immediately | 
            835 |                // when moving the table around, jump to ideal angles immediately | 
          
| 792 | current_pitch = the_board.players[  | 
            836 | current_pitch = the_board.players[viewer_index].view_pitch;  | 
          
| 793 | current_yaw = the_board.players[  | 
            837 | current_yaw = the_board.players[viewer_index].view_yaw;  | 
          
| - | 838 |             } | 
          |
| 794 | 839 | ||
| 795 | the_scene.update = true; // button was clicked, update the 3D scene  | 
            840 | the_scene.update = true; // button was clicked, update the 3D scene  | 
          
| 796 |       } | 
            841 |       } | 
          
| 797 | 842 | ||
| 798 |       // else it's just the mouse wandering around ; have we the right to select something ? | 
            843 |       // else it's just the mouse wandering around ; have we the right to select something ? |