Rev 5340 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5340 | Rev 5474 | ||
---|---|---|---|
Line 42... | Line 42... | ||
42 | #define FIELD_BOX_WATER 23 |
42 | #define FIELD_BOX_WATER 23 |
43 | #define FIELD_BRICK_DES 24 |
43 | #define FIELD_BRICK_DES 24 |
44 | #define FIELD_CRATER 25 |
44 | #define FIELD_CRATER 25 |
Line 45... | Line 45... | ||
45 | 45 | ||
- | 46 | char* header = "Laser Tank"; |
|
Line 46... | Line 47... | ||
46 | char* header = "Laser Tank"; |
47 | bool w_redraw = true; |
47 | 48 | ||
48 | struct Level |
49 | struct Level |
49 | { |
50 | { |
Line 50... | Line 51... | ||
50 | Byte fileds[16][16]; |
51 | Byte fileds[16][16]; |
51 | }; |
52 | }; |
52 | 53 | ||
53 | void pause(int time) |
54 | void pause(int time) |
- | 55 | { |
|
- | 56 | kos_Pause(time); |
|
54 | { |
57 | Byte keyCode; |
- | 58 | Dword buttons; |
|
55 | kos_Pause(time); |
59 | int mX, mY; |
- | 60 | for (int i = 0; i < 10; ++i) |
|
- | 61 | { |
|
56 | Byte keyCode; |
62 | kos_GetKey(keyCode); |
Line 57... | Line 63... | ||
57 | for (int i = 0; i < 10; ++i) |
63 | kos_GetMouseState(buttons, mX, mY); |
58 | kos_GetKey(keyCode); |
64 | } |
59 | } |
65 | } |
60 | 66 | ||
- | 67 | Level *levels; |
|
Line 61... | Line 68... | ||
61 | Level *levels; |
68 | int levelCount = 0; |
62 | int levelCount = 0; |
69 | int levelIndex = 0; |
63 | int levelIndex = 0; |
70 | int levelPage = 0; |
64 | int levelPage = 0; |
71 | float clickTime = 0; |
Line 174... | Line 181... | ||
174 | 181 | ||
175 | void SetMode(int mode) |
182 | void SetMode(int mode) |
176 | { |
183 | { |
177 | gameMode = mode; |
184 | gameMode = mode; |
- | 185 | draw_window(); |
|
- | 186 | ||
178 | draw_window(); |
187 | pause(40); |
Line 179... | Line 188... | ||
179 | } |
188 | } |
180 | 189 | ||
181 | bool IsWater(Point pos) |
190 | bool IsWater(Point pos) |
Line 926... | Line 935... | ||
926 | } |
935 | } |
927 | } |
936 | } |
Line 928... | Line 937... | ||
928 | 937 | ||
929 | void key_press(int key) |
938 | void key_press(int key) |
- | 939 | { |
|
- | 940 | sProcessInfo sPI; |
|
- | 941 | kos_ProcessInfo(&sPI); |
|
- | 942 | if (sPI.rawData[70] & 0x04) |
|
930 | { |
943 | return; |
Line 931... | Line 944... | ||
931 | //rtlDebugOutString(ftoa(key)); |
944 | //rtlDebugOutString(ftoa(key)); |
932 | 945 | ||
933 | switch (gameMode) |
946 | switch (gameMode) |
Line 990... | Line 1003... | ||
990 | 1003 | ||
991 | break; |
1004 | break; |
992 | case MODE_PAUSE: |
1005 | case MODE_PAUSE: |
993 | if (key == 27) |
1006 | if (key == 27) |
994 | SetMode(MODE_LEVELS); |
1007 | SetMode(MODE_LEVELS); |
995 | 1008 | else |
|
996 | if ((key == 32 || key == 13) && (gameStatus == GAME_NONE || (gameStatus == GAME_VICTORY && levelIndex < (levelCount - 1)))) |
1009 | if ((key == 32 || key == 13) && (gameStatus == GAME_NONE || (gameStatus == GAME_VICTORY && levelIndex < (levelCount - 1)))) |
997 | { |
1010 | { |
998 | if (gameStatus == GAME_VICTORY) |
1011 | if (gameStatus == GAME_VICTORY) |
999 | openLevel(levelIndex + 1); |
1012 | openLevel(levelIndex + 1); |
1000 | SetMode(MODE_GAME); |
1013 | SetMode(MODE_GAME); |
1001 | } |
1014 | } |
1002 | 1015 | else |
|
1003 | if (key == 114 || (gameStatus == GAME_DEFEAT && (key == 32 || key == 13))) |
1016 | if (key == 114) |
1004 | { |
1017 | { |
1005 | openLevel(levelIndex); |
1018 | openLevel(levelIndex); |
1006 | SetMode(MODE_GAME); |
1019 | SetMode(MODE_GAME); |
1007 | } |
1020 | } |
Line 1145... | Line 1158... | ||
1145 | objnumbers->Draw(position + Point(18, 12), 0, number, color); |
1158 | objnumbers->Draw(position + Point(18, 12), 0, number, color); |
1146 | } |
1159 | } |
Line 1147... | Line 1160... | ||
1147 | 1160 | ||
1148 | void draw_window(void) |
1161 | void draw_window(void) |
- | 1162 | { |
|
- | 1163 | if (w_redraw) |
|
1149 | { |
1164 | { |
- | 1165 | kos_WindowRedrawStatus(1); |
|
- | 1166 | ||
- | 1167 | //kos_DefineAndDrawWindow(50, 50, 640, 506 - 22 + kos_GetSkinHeight(), 0x74, 0xEEEEEE, 0, 0, (Dword)windowTitle); |
|
1150 | kos_WindowRedrawStatus(1); |
1168 | |
- | 1169 | kos_DefineAndDrawWindow(10, 40, 384 + 9, 384 + 25, 0x74, 0x444444, 0, 0, (Dword)header); |
|
- | 1170 | kos_WindowRedrawStatus(2); |
|
- | 1171 | w_redraw = false; |
|
- | 1172 | } |
|
1151 | kos_DefineAndDrawWindow(10, 40, 384 + 9, 384 + 25, 0x33, 0x444444, 0, 0, (Dword)header); |
1173 | |
1152 | Point level_pos = Point(0, 0); |
1174 | Point level_pos = Point(0, 0); |
1153 | switch (gameMode) |
1175 | switch (gameMode) |
1154 | { |
1176 | { |
1155 | case MODE_MENU: |
1177 | case MODE_MENU: |
Line 1249... | Line 1271... | ||
1249 | objPlayer->Draw(Point(0, 0), player.angle); |
1271 | objPlayer->Draw(Point(0, 0), player.angle); |
1250 | renderPlayer->Draw(player.position * 24); |
1272 | renderPlayer->Draw(player.position * 24); |
1251 | } |
1273 | } |
1252 | break; |
1274 | break; |
1253 | } |
1275 | } |
1254 | kos_WindowRedrawStatus(2); |
- | |
1255 | } |
1276 | } |
Line 1256... | Line 1277... | ||
1256 | 1277 | ||
1257 | void LevelsLoad() |
1278 | void LevelsLoad() |
1258 | { |
1279 | { |
Line 1447... | Line 1468... | ||
1447 | for (;;) |
1468 | for (;;) |
1448 | { |
1469 | { |
1449 | switch (kos_WaitForEvent()) |
1470 | switch (kos_WaitForEvent()) |
1450 | { |
1471 | { |
1451 | case 1: |
1472 | case 1: |
- | 1473 | w_redraw = true; |
|
1452 | draw_window(); |
1474 | draw_window(); |
1453 | break; |
1475 | break; |
1454 | case 2: |
1476 | case 2: |
1455 | Byte keyCode; |
1477 | Byte keyCode; |
1456 | kos_GetKey(keyCode); |
1478 | kos_GetKey(keyCode); |