diff options
author | Björn Stenberg <bjorn@haxx.se> | 2002-06-24 11:02:18 +0000 |
---|---|---|
committer | Björn Stenberg <bjorn@haxx.se> | 2002-06-24 11:02:18 +0000 |
commit | c40ac3249a851cdf5ed1f6e096a8411b569cb6ab (patch) | |
tree | 22d4ce4674d2be28d247d9611f72c3a14a83700b /apps/recorder | |
parent | b922a96ae3c6fb7e117923512108a4b3056469c1 (diff) | |
download | rockbox-c40ac3249a851cdf5ed1f6e096a8411b569cb6ab.tar.gz rockbox-c40ac3249a851cdf5ed1f6e096a8411b569cb6ab.zip |
Removed some duplicated code
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1145 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/recorder')
-rw-r--r-- | apps/recorder/sokoban.c | 180 |
1 files changed, 74 insertions, 106 deletions
diff --git a/apps/recorder/sokoban.c b/apps/recorder/sokoban.c index 5defd134d7..84e70a0a02 100644 --- a/apps/recorder/sokoban.c +++ b/apps/recorder/sokoban.c | |||
@@ -992,6 +992,7 @@ void sokoban_loop(void) { | |||
992 | update_screen(); | 992 | update_screen(); |
993 | 993 | ||
994 | while(1) { | 994 | while(1) { |
995 | bool idle = false; | ||
995 | switch ( button_get(true) ) { | 996 | switch ( button_get(true) ) { |
996 | 997 | ||
997 | case BUTTON_OFF: | 998 | case BUTTON_OFF: |
@@ -1001,28 +1002,23 @@ void sokoban_loop(void) { | |||
1001 | case BUTTON_F3: | 1002 | case BUTTON_F3: |
1002 | /* increase level */ | 1003 | /* increase level */ |
1003 | boxes_to_go=0; | 1004 | boxes_to_go=0; |
1005 | idle=true; | ||
1004 | break; | 1006 | break; |
1005 | 1007 | ||
1006 | case BUTTON_F2: | 1008 | case BUTTON_F2: |
1007 | /* same level */ | 1009 | /* same level */ |
1008 | load_level(current_level); | 1010 | load_level(current_level); |
1009 | lcd_clear_display(); | ||
1010 | update_screen(); | ||
1011 | moves=0; | 1011 | moves=0; |
1012 | idle=true; | ||
1012 | break; | 1013 | break; |
1013 | 1014 | ||
1014 | case BUTTON_F1: | 1015 | case BUTTON_F1: |
1015 | /* previous level */ | 1016 | /* previous level */ |
1016 | if (current_level==0) { | 1017 | if (current_level) |
1017 | current_level=0; | ||
1018 | } | ||
1019 | else { | ||
1020 | current_level--; | 1018 | current_level--; |
1021 | } | ||
1022 | load_level(current_level); | 1019 | load_level(current_level); |
1023 | lcd_clear_display(); | ||
1024 | update_screen(); | ||
1025 | moves=0; | 1020 | moves=0; |
1021 | idle=true; | ||
1026 | break; | 1022 | break; |
1027 | 1023 | ||
1028 | case BUTTON_LEFT: | 1024 | case BUTTON_LEFT: |
@@ -1031,16 +1027,12 @@ void sokoban_loop(void) { | |||
1031 | board[row][col-1]=5; | 1027 | board[row][col-1]=5; |
1032 | board[row][col]=current_spot; | 1028 | board[row][col]=current_spot; |
1033 | current_spot=1; | 1029 | current_spot=1; |
1034 | col--; | ||
1035 | moves++; | ||
1036 | break; | 1030 | break; |
1037 | 1031 | ||
1038 | case 3: /* if it is a home spot */ | 1032 | case 3: /* if it is a home spot */ |
1039 | board[row][col-1]=5; | 1033 | board[row][col-1]=5; |
1040 | board[row][col]=current_spot; | 1034 | board[row][col]=current_spot; |
1041 | current_spot=3; | 1035 | current_spot=3; |
1042 | col--; | ||
1043 | moves++; | ||
1044 | break; | 1036 | break; |
1045 | 1037 | ||
1046 | case 4: | 1038 | case 4: |
@@ -1050,13 +1042,6 @@ void sokoban_loop(void) { | |||
1050 | board[row][col-1]=board[row][col]; | 1042 | board[row][col-1]=board[row][col]; |
1051 | board[row][col]=current_spot; | 1043 | board[row][col]=current_spot; |
1052 | current_spot=1; | 1044 | current_spot=1; |
1053 | col--; | ||
1054 | moves++; | ||
1055 | break; | ||
1056 | |||
1057 | /* if there is a wall then do not move the box */ | ||
1058 | case 2: | ||
1059 | /* do nothing */ | ||
1060 | break; | 1045 | break; |
1061 | 1046 | ||
1062 | case 3: /* if we are going from a blank to home */ | 1047 | case 3: /* if we are going from a blank to home */ |
@@ -1064,9 +1049,11 @@ void sokoban_loop(void) { | |||
1064 | board[row][col-1]=board[row][col]; | 1049 | board[row][col-1]=board[row][col]; |
1065 | board[row][col]=current_spot; | 1050 | board[row][col]=current_spot; |
1066 | current_spot=1; | 1051 | current_spot=1; |
1067 | col--; | ||
1068 | boxes_to_go--; | 1052 | boxes_to_go--; |
1069 | moves++; | 1053 | break; |
1054 | |||
1055 | default: | ||
1056 | idle = true; | ||
1070 | break; | 1057 | break; |
1071 | } | 1058 | } |
1072 | break; | 1059 | break; |
@@ -1078,14 +1065,7 @@ void sokoban_loop(void) { | |||
1078 | board[row][col-1]=board[row][col]; | 1065 | board[row][col-1]=board[row][col]; |
1079 | board[row][col]=current_spot; | 1066 | board[row][col]=current_spot; |
1080 | current_spot=3; | 1067 | current_spot=3; |
1081 | col--; | ||
1082 | boxes_to_go++; | 1068 | boxes_to_go++; |
1083 | moves++; | ||
1084 | break; | ||
1085 | |||
1086 | /* if there is a wall then do not move the box */ | ||
1087 | case 2: | ||
1088 | /* do nothing */ | ||
1089 | break; | 1069 | break; |
1090 | 1070 | ||
1091 | case 3: /* if we are going from a home to home */ | 1071 | case 3: /* if we are going from a home to home */ |
@@ -1093,13 +1073,20 @@ void sokoban_loop(void) { | |||
1093 | board[row][col-1]=board[row][col]; | 1073 | board[row][col-1]=board[row][col]; |
1094 | board[row][col]=current_spot; | 1074 | board[row][col]=current_spot; |
1095 | current_spot=3; | 1075 | current_spot=3; |
1096 | col--; | 1076 | break; |
1097 | moves++; | 1077 | |
1078 | default: | ||
1079 | idle = true; | ||
1098 | break; | 1080 | break; |
1099 | } | 1081 | } |
1082 | break; | ||
1083 | |||
1084 | default: | ||
1085 | idle = true; | ||
1086 | break; | ||
1100 | } | 1087 | } |
1101 | lcd_clear_display(); | 1088 | if (!idle) |
1102 | update_screen(); | 1089 | col--; |
1103 | break; | 1090 | break; |
1104 | 1091 | ||
1105 | case BUTTON_RIGHT: /* if it is a blank spot */ | 1092 | case BUTTON_RIGHT: /* if it is a blank spot */ |
@@ -1108,16 +1095,12 @@ void sokoban_loop(void) { | |||
1108 | board[row][col+1]=5; | 1095 | board[row][col+1]=5; |
1109 | board[row][col]=current_spot; | 1096 | board[row][col]=current_spot; |
1110 | current_spot=1; | 1097 | current_spot=1; |
1111 | col++; | ||
1112 | moves++; | ||
1113 | break; | 1098 | break; |
1114 | 1099 | ||
1115 | case 3: /* if it is a home spot */ | 1100 | case 3: /* if it is a home spot */ |
1116 | board[row][col+1]=5; | 1101 | board[row][col+1]=5; |
1117 | board[row][col]=current_spot; | 1102 | board[row][col]=current_spot; |
1118 | current_spot=3; | 1103 | current_spot=3; |
1119 | col++; | ||
1120 | moves++; | ||
1121 | break; | 1104 | break; |
1122 | 1105 | ||
1123 | case 4: | 1106 | case 4: |
@@ -1127,13 +1110,6 @@ void sokoban_loop(void) { | |||
1127 | board[row][col+1]=board[row][col]; | 1110 | board[row][col+1]=board[row][col]; |
1128 | board[row][col]=current_spot; | 1111 | board[row][col]=current_spot; |
1129 | current_spot=1; | 1112 | current_spot=1; |
1130 | col++; | ||
1131 | moves++; | ||
1132 | break; | ||
1133 | |||
1134 | /* if there is a wall then do not move the box */ | ||
1135 | case 2: | ||
1136 | /* do nothing */ | ||
1137 | break; | 1113 | break; |
1138 | 1114 | ||
1139 | case 3: /* if we are going from a blank to home */ | 1115 | case 3: /* if we are going from a blank to home */ |
@@ -1141,9 +1117,11 @@ void sokoban_loop(void) { | |||
1141 | board[row][col+1]=board[row][col]; | 1117 | board[row][col+1]=board[row][col]; |
1142 | board[row][col]=current_spot; | 1118 | board[row][col]=current_spot; |
1143 | current_spot=1; | 1119 | current_spot=1; |
1144 | col++; | ||
1145 | boxes_to_go--; | 1120 | boxes_to_go--; |
1146 | moves++; | 1121 | break; |
1122 | |||
1123 | default: | ||
1124 | idle = true; | ||
1147 | break; | 1125 | break; |
1148 | } | 1126 | } |
1149 | break; | 1127 | break; |
@@ -1155,14 +1133,7 @@ void sokoban_loop(void) { | |||
1155 | board[row][col+1]=board[row][col]; | 1133 | board[row][col+1]=board[row][col]; |
1156 | board[row][col]=current_spot; | 1134 | board[row][col]=current_spot; |
1157 | current_spot=3; | 1135 | current_spot=3; |
1158 | col++; | ||
1159 | boxes_to_go++; | 1136 | boxes_to_go++; |
1160 | moves++; | ||
1161 | break; | ||
1162 | |||
1163 | /* if there is a wall then do not move the box */ | ||
1164 | case 2: | ||
1165 | /* do nothing */ | ||
1166 | break; | 1137 | break; |
1167 | 1138 | ||
1168 | case 3: | 1139 | case 3: |
@@ -1170,14 +1141,20 @@ void sokoban_loop(void) { | |||
1170 | board[row][col+1]=board[row][col]; | 1141 | board[row][col+1]=board[row][col]; |
1171 | board[row][col]=current_spot; | 1142 | board[row][col]=current_spot; |
1172 | current_spot=3; | 1143 | current_spot=3; |
1173 | col++; | 1144 | break; |
1174 | moves++; | 1145 | |
1146 | default: | ||
1147 | idle = true; | ||
1175 | break; | 1148 | break; |
1176 | } | 1149 | } |
1177 | break; | 1150 | break; |
1151 | |||
1152 | default: | ||
1153 | idle = true; | ||
1154 | break; | ||
1178 | } | 1155 | } |
1179 | lcd_clear_display(); | 1156 | if (!idle) |
1180 | update_screen(); | 1157 | col++; |
1181 | break; | 1158 | break; |
1182 | 1159 | ||
1183 | case BUTTON_UP: | 1160 | case BUTTON_UP: |
@@ -1186,16 +1163,12 @@ void sokoban_loop(void) { | |||
1186 | board[row-1][col]=5; | 1163 | board[row-1][col]=5; |
1187 | board[row][col]=current_spot; | 1164 | board[row][col]=current_spot; |
1188 | current_spot=1; | 1165 | current_spot=1; |
1189 | row--; | ||
1190 | moves++; | ||
1191 | break; | 1166 | break; |
1192 | 1167 | ||
1193 | case 3: /* if it is a home spot */ | 1168 | case 3: /* if it is a home spot */ |
1194 | board[row-1][col]=5; | 1169 | board[row-1][col]=5; |
1195 | board[row][col]=current_spot; | 1170 | board[row][col]=current_spot; |
1196 | current_spot=3; | 1171 | current_spot=3; |
1197 | row--; | ||
1198 | moves++; | ||
1199 | break; | 1172 | break; |
1200 | 1173 | ||
1201 | case 4: | 1174 | case 4: |
@@ -1205,13 +1178,6 @@ void sokoban_loop(void) { | |||
1205 | board[row-1][col]=board[row][col]; | 1178 | board[row-1][col]=board[row][col]; |
1206 | board[row][col]=current_spot; | 1179 | board[row][col]=current_spot; |
1207 | current_spot=1; | 1180 | current_spot=1; |
1208 | row--; | ||
1209 | moves++; | ||
1210 | break; | ||
1211 | |||
1212 | /* if there is a wall then do not move the box */ | ||
1213 | case 2: | ||
1214 | /* do nothing */ | ||
1215 | break; | 1181 | break; |
1216 | 1182 | ||
1217 | case 3: /* if we are going from a blank to home */ | 1183 | case 3: /* if we are going from a blank to home */ |
@@ -1219,9 +1185,11 @@ void sokoban_loop(void) { | |||
1219 | board[row-1][col]=board[row][col]; | 1185 | board[row-1][col]=board[row][col]; |
1220 | board[row][col]=current_spot; | 1186 | board[row][col]=current_spot; |
1221 | current_spot=1; | 1187 | current_spot=1; |
1222 | row--; | ||
1223 | boxes_to_go--; | 1188 | boxes_to_go--; |
1224 | moves++; | 1189 | break; |
1190 | |||
1191 | default: | ||
1192 | idle = true; | ||
1225 | break; | 1193 | break; |
1226 | } | 1194 | } |
1227 | break; | 1195 | break; |
@@ -1233,14 +1201,7 @@ void sokoban_loop(void) { | |||
1233 | board[row-1][col]=board[row][col]; | 1201 | board[row-1][col]=board[row][col]; |
1234 | board[row][col]=current_spot; | 1202 | board[row][col]=current_spot; |
1235 | current_spot=3; | 1203 | current_spot=3; |
1236 | row--; | ||
1237 | boxes_to_go++; | 1204 | boxes_to_go++; |
1238 | moves++; | ||
1239 | break; | ||
1240 | |||
1241 | /* if there is a wall then do not move the box */ | ||
1242 | case 2: | ||
1243 | /* do nothing */ | ||
1244 | break; | 1205 | break; |
1245 | 1206 | ||
1246 | case 3: /* if we are going from a home to home */ | 1207 | case 3: /* if we are going from a home to home */ |
@@ -1248,14 +1209,20 @@ void sokoban_loop(void) { | |||
1248 | board[row-1][col]=board[row][col]; | 1209 | board[row-1][col]=board[row][col]; |
1249 | board[row][col]=current_spot; | 1210 | board[row][col]=current_spot; |
1250 | current_spot=3; | 1211 | current_spot=3; |
1251 | row--; | 1212 | break; |
1252 | moves++; | 1213 | |
1214 | default: | ||
1215 | idle = true; | ||
1253 | break; | 1216 | break; |
1254 | } | 1217 | } |
1255 | break; | 1218 | break; |
1219 | |||
1220 | default: | ||
1221 | idle = true; | ||
1222 | break; | ||
1256 | } | 1223 | } |
1257 | lcd_clear_display(); | 1224 | if (!idle) |
1258 | update_screen(); | 1225 | row--; |
1259 | break; | 1226 | break; |
1260 | 1227 | ||
1261 | case BUTTON_DOWN: | 1228 | case BUTTON_DOWN: |
@@ -1264,16 +1231,12 @@ void sokoban_loop(void) { | |||
1264 | board[row+1][col]=5; | 1231 | board[row+1][col]=5; |
1265 | board[row][col]=current_spot; | 1232 | board[row][col]=current_spot; |
1266 | current_spot=1; | 1233 | current_spot=1; |
1267 | row++; | ||
1268 | moves++; | ||
1269 | break; | 1234 | break; |
1270 | 1235 | ||
1271 | case 3: /* if it is a home spot */ | 1236 | case 3: /* if it is a home spot */ |
1272 | board[row+1][col]=5; | 1237 | board[row+1][col]=5; |
1273 | board[row][col]=current_spot; | 1238 | board[row][col]=current_spot; |
1274 | current_spot=3; | 1239 | current_spot=3; |
1275 | row++; | ||
1276 | moves++; | ||
1277 | break; | 1240 | break; |
1278 | 1241 | ||
1279 | case 4: | 1242 | case 4: |
@@ -1283,13 +1246,6 @@ void sokoban_loop(void) { | |||
1283 | board[row+1][col]=board[row][col]; | 1246 | board[row+1][col]=board[row][col]; |
1284 | board[row][col]=current_spot; | 1247 | board[row][col]=current_spot; |
1285 | current_spot=1; | 1248 | current_spot=1; |
1286 | row++; | ||
1287 | moves++; | ||
1288 | break; | ||
1289 | |||
1290 | /* if there is a wall then do not move the box */ | ||
1291 | case 2: | ||
1292 | /* do nothing */ | ||
1293 | break; | 1249 | break; |
1294 | 1250 | ||
1295 | case 3: /* if we are going from a blank to home */ | 1251 | case 3: /* if we are going from a blank to home */ |
@@ -1297,9 +1253,11 @@ void sokoban_loop(void) { | |||
1297 | board[row+1][col]=board[row][col]; | 1253 | board[row+1][col]=board[row][col]; |
1298 | board[row][col]=current_spot; | 1254 | board[row][col]=current_spot; |
1299 | current_spot=1; | 1255 | current_spot=1; |
1300 | row++; | ||
1301 | boxes_to_go--; | 1256 | boxes_to_go--; |
1302 | moves++; | 1257 | break; |
1258 | |||
1259 | default: | ||
1260 | idle = true; | ||
1303 | break; | 1261 | break; |
1304 | } | 1262 | } |
1305 | break; | 1263 | break; |
@@ -1311,14 +1269,7 @@ void sokoban_loop(void) { | |||
1311 | board[row+1][col]=board[row][col]; | 1269 | board[row+1][col]=board[row][col]; |
1312 | board[row][col]=current_spot; | 1270 | board[row][col]=current_spot; |
1313 | current_spot=3; | 1271 | current_spot=3; |
1314 | row++; | ||
1315 | boxes_to_go++; | 1272 | boxes_to_go++; |
1316 | moves++; | ||
1317 | break; | ||
1318 | |||
1319 | /* if there is a wall then do not move the box */ | ||
1320 | case 2: | ||
1321 | /* do nothing */ | ||
1322 | break; | 1273 | break; |
1323 | 1274 | ||
1324 | case 3: /* if we are going from a home to home */ | 1275 | case 3: /* if we are going from a home to home */ |
@@ -1326,16 +1277,33 @@ void sokoban_loop(void) { | |||
1326 | board[row+1][col]=board[row][col]; | 1277 | board[row+1][col]=board[row][col]; |
1327 | board[row][col]=current_spot; | 1278 | board[row][col]=current_spot; |
1328 | current_spot=3; | 1279 | current_spot=3; |
1329 | row++; | 1280 | break; |
1330 | moves++; | 1281 | |
1282 | default: | ||
1283 | idle = true; | ||
1331 | break; | 1284 | break; |
1332 | } | 1285 | } |
1286 | break; | ||
1287 | |||
1288 | default: | ||
1289 | idle = true; | ||
1290 | break; | ||
1333 | } | 1291 | } |
1334 | lcd_clear_display(); | 1292 | if (!idle) |
1335 | update_screen(); | 1293 | row++; |
1336 | break; | 1294 | break; |
1295 | |||
1296 | default: | ||
1297 | idle = true; | ||
1298 | break; | ||
1299 | } | ||
1300 | |||
1301 | if (!idle) { | ||
1302 | moves++; | ||
1303 | lcd_clear_display(); | ||
1304 | update_screen(); | ||
1337 | } | 1305 | } |
1338 | 1306 | ||
1339 | if (boxes_to_go==0) { | 1307 | if (boxes_to_go==0) { |
1340 | moves=0; | 1308 | moves=0; |
1341 | current_level++; | 1309 | current_level++; |