Rev 5333 | Rev 5340 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5333 | Rev 5338 | ||
---|---|---|---|
Line 931... | Line 931... | ||
931 | //rtlDebugOutString(ftoa(key)); |
931 | //rtlDebugOutString(ftoa(key)); |
Line 932... | Line 932... | ||
932 | 932 | ||
933 | switch (gameMode) |
933 | switch (gameMode) |
934 | { |
934 | { |
935 | case MODE_MENU: |
935 | case MODE_MENU: |
936 | if (key = 27) |
936 | if (key == 27) |
- | 937 | kos_ExitApp(); |
|
- | 938 | ||
- | 939 | if (key == 13 || key == 32) |
|
937 | kos_ExitApp(); |
940 | SetMode(MODE_LEVELS); |
938 | break; |
941 | break; |
939 | case MODE_LEVELS: |
942 | case MODE_LEVELS: |
940 | if (key = 27) |
943 | if (key == 27) |
- | 944 | SetMode(MODE_MENU); |
|
- | 945 | ||
- | 946 | if (levelPage > 0 && key == 183) |
|
- | 947 | { |
|
- | 948 | levelIndex -= 30; |
|
- | 949 | draw_window(); |
|
- | 950 | } |
|
- | 951 | else |
|
- | 952 | if (levelPage < (int)(levelCount / 30) && key == 184) |
|
- | 953 | { |
|
- | 954 | levelIndex += 30; |
|
- | 955 | if (levelIndex >= levelCount) |
|
- | 956 | levelIndex = levelCount - 1; |
|
- | 957 | draw_window(); |
|
- | 958 | } |
|
- | 959 | ||
- | 960 | // 179, 100 D Right |
|
- | 961 | if ((key == 179 || key == 100) && (levelIndex + 1) < levelCount) |
|
- | 962 | { |
|
- | 963 | levelIndex++; |
|
- | 964 | draw_window(); |
|
- | 965 | } |
|
- | 966 | // 176, 97 A Left |
|
- | 967 | if ((key == 176 || key == 97) && levelIndex > 0) |
|
- | 968 | { |
|
- | 969 | levelIndex--; |
|
- | 970 | draw_window(); |
|
- | 971 | } |
|
- | 972 | // 119, 178: W Up |
|
- | 973 | if ((key == 119 || key == 178) && (levelIndex - 6) >= 0) |
|
- | 974 | { |
|
- | 975 | levelIndex -= 6; |
|
- | 976 | draw_window(); |
|
- | 977 | } |
|
- | 978 | // 177, 115 S Down |
|
- | 979 | if ((key == 177 || key == 115) && (levelIndex + 6) < levelCount) |
|
- | 980 | { |
|
- | 981 | levelIndex += 6; |
|
- | 982 | draw_window(); |
|
- | 983 | } |
|
- | 984 | ||
- | 985 | if (key == 13 || key == 32) |
|
- | 986 | { |
|
- | 987 | openLevel(levelIndex); |
|
- | 988 | SetMode(MODE_GAME); |
|
- | 989 | } |
|
- | 990 | ||
- | 991 | break; |
|
- | 992 | case MODE_PAUSE: |
|
- | 993 | if (key == 27) |
|
- | 994 | SetMode(MODE_LEVELS); |
|
- | 995 | else |
|
- | 996 | if ((key == 32 || key == 13) && (gameStatus == GAME_NONE || (gameStatus == GAME_VICTORY && levelIndex < (levelCount - 1)))) |
|
- | 997 | { |
|
- | 998 | if (gameStatus == GAME_VICTORY) |
|
- | 999 | openLevel(levelIndex + 1); |
|
- | 1000 | SetMode(MODE_GAME); |
|
- | 1001 | } |
|
- | 1002 | else |
|
- | 1003 | if (key == 114) |
|
- | 1004 | { |
|
- | 1005 | openLevel(levelIndex); |
|
- | 1006 | SetMode(MODE_GAME); |
|
941 | SetMode(MODE_MENU); |
1007 | } |
942 | break; |
1008 | break; |
943 | case MODE_GAME: |
1009 | case MODE_GAME: |
944 | switch (key) |
1010 | switch (key) |
945 | { |
1011 | { |
Line 1003... | Line 1069... | ||
1003 | if (CollRecrVsPoint(position, ToExit.rect)) |
1069 | if (CollRecrVsPoint(position, ToExit.rect)) |
1004 | SetMode(MODE_MENU); |
1070 | SetMode(MODE_MENU); |
1005 | else |
1071 | else |
1006 | if (levelPage > 0 && CollRecrVsPoint(position, Rect(9, 318, 57, 57))) |
1072 | if (levelPage > 0 && CollRecrVsPoint(position, Rect(9, 318, 57, 57))) |
1007 | { |
1073 | { |
1008 | levelPage--; |
1074 | levelIndex -= 30; |
1009 | draw_window(); |
1075 | draw_window(); |
1010 | } |
1076 | } |
1011 | else |
1077 | else |
1012 | if (levelPage < (int)(levelCount / 30) && CollRecrVsPoint(position, Rect(70, 318, 57, 57))) |
1078 | if (levelPage < (int)(levelCount / 30) && CollRecrVsPoint(position, Rect(70, 318, 57, 57))) |
1013 | { |
1079 | { |
1014 | levelPage++; |
1080 | levelIndex += 30; |
- | 1081 | if (levelIndex >= levelCount) |
|
- | 1082 | levelIndex = levelCount - 1; |
|
1015 | draw_window(); |
1083 | draw_window(); |
1016 | } |
1084 | } |
1017 | else |
1085 | else |
1018 | { |
1086 | { |
- | 1087 | levelPage = (int)(levelIndex / 30); |
|
1019 | for (int i = levelPage * 30; i < min(levelCount, (levelPage + 1) * 30); i++) |
1088 | for (int i = levelPage * 30; i < min(levelCount, (levelPage + 1) * 30); i++) |
1020 | { |
1089 | { |
Line 1021... | Line 1090... | ||
1021 | 1090 | ||
1022 | if (i % 6 == 0 && i != levelPage * 30) |
1091 | if (i % 6 == 0 && i != levelPage * 30) |
Line 1043... | Line 1112... | ||
1043 | { |
1112 | { |
1044 | openLevel(levelIndex); |
1113 | openLevel(levelIndex); |
1045 | SetMode(MODE_GAME); |
1114 | SetMode(MODE_GAME); |
1046 | } |
1115 | } |
1047 | else |
1116 | else |
1048 | if (gameStatus != GAME_DEFEAT && CollRecrVsPoint(position, Rect(77, 192, 229, 57))) |
1117 | if (CollRecrVsPoint(position, Rect(77, 192, 229, 57)) && (gameStatus == GAME_NONE || (gameStatus == GAME_VICTORY && levelIndex < (levelCount - 1)))) |
1049 | { |
1118 | { |
1050 | if (gameStatus == GAME_VICTORY) |
1119 | if (gameStatus == GAME_VICTORY) |
1051 | openLevel(levelIndex + 1); |
1120 | openLevel(levelIndex + 1); |
1052 | SetMode(MODE_GAME); |
1121 | SetMode(MODE_GAME); |
1053 | } |
1122 | } |
Line 1090... | Line 1159... | ||
1090 | 1159 | ||
1091 | 1160 | ||
1092 | break; |
1161 | break; |
- | 1162 | case MODE_LEVELS: |
|
- | 1163 | renderLevels->RenderImg(img_levels, Point(0, 0), 384, 384); |
|
1093 | case MODE_LEVELS: |
1164 | |
1094 | renderLevels->RenderImg(img_levels, Point(0, 0), 384, 384); |
1165 | levelPage = (int)(levelIndex / 30); |
1095 | for (int i = levelPage * 30; i < min(levelCount, (levelPage + 1) * 30); i++) |
1166 | for (int i = levelPage * 30; i < min(levelCount, (levelPage + 1) * 30); i++) |
1096 | { |
1167 | { |
1097 | if (i % 6 == 0 && i != levelPage * 30) |
1168 | if (i % 6 == 0 && i != levelPage * 30) |
1098 | { |
1169 | { |
1099 | level_pos.X = 0; |
1170 | level_pos.X = 0; |
- | 1171 | level_pos.Y++; |
|
- | 1172 | } |
|
1100 | level_pos.Y++; |
1173 | if (levelIndex != i) |
1101 | } |
1174 | { |
- | 1175 | objnumber_box->Draw(Point(11 + level_pos.X * 62, 11 + 61 * level_pos.Y), 0); |
|
- | 1176 | draw_level_number(Point(11 + level_pos.X * 62, 11 + 61 * level_pos.Y), i + 1, (RGB)0x252317); |
|
- | 1177 | } |
|
- | 1178 | else |
|
- | 1179 | { |
|
- | 1180 | objnumber_box->Draw(Point(11 + level_pos.X * 62, 11 + 61 * level_pos.Y), 0, (RGB)0xAA0000); |
|
Line 1102... | Line 1181... | ||
1102 | objnumber_box->Draw(Point(11 + level_pos.X * 62, 11 + 61 * level_pos.Y), 0); |
1181 | draw_level_number(Point(11 + level_pos.X * 62, 11 + 61 * level_pos.Y), i + 1, (RGB)0xAA0000); |
1103 | draw_level_number(Point(11 + level_pos.X * 62, 11 + 61 * level_pos.Y), i + 1, (RGB)0x252317); |
1182 | } |
Line 1104... | Line 1183... | ||
1104 | 1183 | ||
Line 1145... | Line 1224... | ||
1145 | 1224 | ||
1146 | for (int y = 0; y < 16; y++) |
1225 | for (int y = 0; y < 16; y++) |
1147 | for (int x = 0; x < 16; x++) |
1226 | for (int x = 0; x < 16; x++) |
Line 1148... | Line 1227... | ||
1148 | objblack->Draw(Point(24 * x, 24 * y), 0); |
1227 | objblack->Draw(Point(24 * x, 24 * y), 0); |
1149 | 1228 | ||
1150 | if (gameStatus != GAME_DEFEAT) |
1229 | if (gameStatus == GAME_NONE || (gameStatus == GAME_VICTORY && levelIndex < (levelCount - 1))) |
1151 | renderLevels->RenderImg((RGB*)img_buttons[1], Point(77, 192), 229, 57); |
1230 | renderLevels->RenderImg((RGB*)img_buttons[1], Point(77, 192), 229, 57); |
Line 1152... | Line 1231... | ||
1152 | renderLevels->RenderImg((RGB*)img_buttons[2], Point(77, 255), 229, 57); |
1231 | renderLevels->RenderImg((RGB*)img_buttons[2], Point(77, 255), 229, 57); |
Line 1251... | Line 1330... | ||
1251 | draw_window(); |
1330 | draw_window(); |
1252 | } |
1331 | } |
Line 1253... | Line 1332... | ||
1253 | 1332 | ||
1254 | void kos_Main() |
1333 | void kos_Main() |
- | 1334 | { |
|
- | 1335 | //rtlDebugOutString(" "); |
|
1255 | { |
1336 | //rtlDebugOutString("kos_Main"); |
1256 | char *cPtr; |
1337 | char *cPtr; |
1257 | cPtr = strrchr(kosExePath, '/'); |
1338 | cPtr = strrchr(kosExePath, '/'); |
1258 | // ïðîâåðêà ;) |
1339 | // ïðîâåðêà ;) |
1259 | if (cPtr == NULL) |
1340 | if (cPtr == NULL) |