- unsigned int x, y, temp;
-
- lev.width = 64;
- lev.height = 32;
- temp = ((src[0x83E] << 8 | src[0x83F]) * 25 + 3) / 4; if(temp == 0 || temp > 9999) temp = 9999;
- lev.time = temp;
- lev.required = src[0x82F];
-
- temp = src[0x830] << 8 | src[0x831];
- ply1.oldx = ply1.x = (temp & 63) + 1;
- ply1.oldy = ply1.y = (temp >> 6 & 31) + 1;
- temp = src[0x832] << 8 | src[0x833];
- ply2.oldx = ply2.x = (temp & 63) + 1;
- ply2.oldy = ply2.y = (temp >> 6 & 31) + 1;
-
- lev.alien_score = src[0x826];
- temp = (src[0x834] << 8 | src[0x835]) * 28; if(temp > 9999) temp = 9999;
- lev.ameuba_time = temp;
- lev.android_move_cnt = lev.android_move_time = src[0x874] << 8 | src[0x875];
- lev.android_clone_cnt = lev.android_clone_time = src[0x876] << 8 | src[0x877];
- lev.ball_pos = 0;
- lev.ball_random = src[0x872] & 1 ? 1 : 0;
- lev.ball_state = src[0x872] & 128 ? 1 : 0;
- lev.ball_cnt = lev.ball_time = src[0x870] << 8 | src[0x871];
- lev.bug_score = src[0x828];
- lev.diamond_score = src[0x825];
- lev.dynamite_score = src[0x82B];
- lev.eater_pos = 0;
- lev.eater_score = src[0x829];
- lev.emerald_score = src[0x824];
- lev.exit_score = src[0x82D] * 8 / 5;
- lev.key_score = src[0x82C];
- lev.lenses_cnt = 0;
- lev.lenses_score = src[0x867];
- lev.lenses_time = src[0x86A] << 8 | src[0x86B];
- lev.magnify_cnt = 0;
- lev.magnify_score = src[0x868];
- lev.magnify_time = src[0x86C] << 8 | src[0x86D];
- lev.nut_score = src[0x82A];
- lev.shine_cnt = 0;
- lev.slurp_score = src[0x869];
- lev.tank_score = src[0x827];
- lev.wheel_cnt = 0;
- lev.wheel_x = 1;
- lev.wheel_y = 1;
- lev.wheel_time = src[0x838] << 8 | src[0x839];
- lev.wind_cnt = src[0x865] & 15 ? 9999 : 0;
- temp = src[0x865];
- lev.wind_direction = temp & 8 ? 0 : temp & 1 ? 1 : temp & 2 ? 2 : temp & 4 ? 3 : 0;
- lev.wind_time = 9999;
- lev.wonderwall_state = 0;
- lev.wonderwall_time = src[0x836] << 8 | src[0x837];
-
- for(x = 0; x < 9; x++) lev.eater_array[0][x] = remap_emerald[src[0x800 + x]];
- for(x = 0; x < 9; x++) lev.eater_array[1][x] = remap_emerald[src[0x809 + x]];
- for(x = 0; x < 9; x++) lev.eater_array[2][x] = remap_emerald[src[0x812 + x]];
- for(x = 0; x < 9; x++) lev.eater_array[3][x] = remap_emerald[src[0x81B + x]];
- for(x = 0; x < 9; x++) lev.eater_array[4][x] = remap_emerald[src[0x840 + x]];
- for(x = 0; x < 9; x++) lev.eater_array[5][x] = remap_emerald[src[0x849 + x]];
- for(x = 0; x < 9; x++) lev.eater_array[6][x] = remap_emerald[src[0x852 + x]];
- for(x = 0; x < 9; x++) lev.eater_array[7][x] = remap_emerald[src[0x85B + x]];
- temp = remap_emerald[src[0x86F]];
- for(y = 0; y < 8; y++) {
- if(src[0x872] & 1) {
- for(x = 0; x < 8; x++) lev.ball_array[y][x] = temp;
- } else {
- lev.ball_array[y][1] = (src[0x873] & 1) ? temp : Xblank; /* north */
- lev.ball_array[y][6] = (src[0x873] & 2) ? temp : Xblank; /* south */
- lev.ball_array[y][3] = (src[0x873] & 4) ? temp : Xblank; /* west */
- lev.ball_array[y][4] = (src[0x873] & 8) ? temp : Xblank; /* east */
- lev.ball_array[y][7] = (src[0x873] & 16) ? temp : Xblank; /* south east */
- lev.ball_array[y][5] = (src[0x873] & 32) ? temp : Xblank; /* south west */
- lev.ball_array[y][2] = (src[0x873] & 64) ? temp : Xblank; /* north east */
- lev.ball_array[y][0] = (src[0x873] & 128) ? temp : Xblank; /* north west */
- }
- }
- for(temp = 0; temp < TILE_MAX; temp++) lev.android_array[temp] = Xblank;
- temp = src[0x878] << 8 | src[0x879];
- if(temp & 1) {
- lev.android_array[Xemerald] = lev.android_array[Xemerald_pause] =
- lev.android_array[Xemerald_fall] = lev.android_array[Yemerald_sB] =
- lev.android_array[Yemerald_eB] = lev.android_array[Yemerald_wB] = Xemerald;
- }
- if(temp & 2) {
- lev.android_array[Xdiamond] = lev.android_array[Xdiamond_pause] =
- lev.android_array[Xdiamond_fall] = lev.android_array[Ydiamond_sB] =
- lev.android_array[Ydiamond_eB] = lev.android_array[Ydiamond_wB] = Xdiamond;
- }
- if(temp & 4) {
- lev.android_array[Xstone] = lev.android_array[Xstone_pause] =
- lev.android_array[Xstone_fall] = lev.android_array[Ystone_sB] =
- lev.android_array[Ystone_eB] = lev.android_array[Ystone_wB] = Xstone;
- }
- if(temp & 8) {
- lev.android_array[Xbomb] = lev.android_array[Xbomb_pause] =
- lev.android_array[Xbomb_fall] = lev.android_array[Ybomb_sB] =
- lev.android_array[Ybomb_eB] = lev.android_array[Ybomb_wB] = Xbomb;
- }
- if(temp & 16) {
- lev.android_array[Xnut] = lev.android_array[Xnut_pause] =
- lev.android_array[Xnut_fall] = lev.android_array[Ynut_sB] =
- lev.android_array[Ynut_eB] = lev.android_array[Ynut_wB] = Xnut;
- }
- if(temp & 32) {
- lev.android_array[Xtank_n] = lev.android_array[Xtank_gon] = lev.android_array[Ytank_nB] =
- lev.android_array[Ytank_n_e] = lev.android_array[Ytank_n_w] = Xtank_n;
- lev.android_array[Xtank_e] = lev.android_array[Xtank_goe] = lev.android_array[Ytank_eB] =
- lev.android_array[Ytank_e_s] = lev.android_array[Ytank_e_n] = Xtank_e;
- lev.android_array[Xtank_s] = lev.android_array[Xtank_gos] = lev.android_array[Ytank_sB] =
- lev.android_array[Ytank_s_w] = lev.android_array[Ytank_s_e] = Xtank_s;
- lev.android_array[Xtank_w] = lev.android_array[Xtank_gow] = lev.android_array[Ytank_wB] =
- lev.android_array[Ytank_w_n] = lev.android_array[Ytank_w_s] = Xtank_w;
- }
- if(temp & 64) {
- lev.android_array[Xeater_n] = lev.android_array[Yeater_nB] = Xeater_n;
- lev.android_array[Xeater_e] = lev.android_array[Yeater_eB] = Xeater_e;
- lev.android_array[Xeater_s] = lev.android_array[Yeater_sB] = Xeater_s;
- lev.android_array[Xeater_w] = lev.android_array[Yeater_wB] = Xeater_w;
- }
- if(temp & 128) {
- lev.android_array[Xbug_n] = lev.android_array[Xbug_gon] = lev.android_array[Ybug_nB] =
- lev.android_array[Ybug_n_e] = lev.android_array[Ybug_n_w] = Xbug_gon;
- lev.android_array[Xbug_e] = lev.android_array[Xbug_goe] = lev.android_array[Ybug_eB] =
- lev.android_array[Ybug_e_s] = lev.android_array[Ybug_e_n] = Xbug_goe;
- lev.android_array[Xbug_s] = lev.android_array[Xbug_gos] = lev.android_array[Ybug_sB] =
- lev.android_array[Ybug_s_w] = lev.android_array[Ybug_s_e] = Xbug_gos;
- lev.android_array[Xbug_w] = lev.android_array[Xbug_gow] = lev.android_array[Ybug_wB] =
- lev.android_array[Ybug_w_n] = lev.android_array[Ybug_w_s] = Xbug_gow;
- }
- if(temp & 256) {
- lev.android_array[Xalien] = lev.android_array[Xalien_pause] =
- lev.android_array[Yalien_nB] = lev.android_array[Yalien_eB] =
- lev.android_array[Yalien_sB] = lev.android_array[Yalien_wB] = Xalien;
- }
- if(temp & 512) {
- lev.android_array[Xspring] = lev.android_array[Xspring_pause] =
- lev.android_array[Xspring_e] = lev.android_array[Yspring_eB] = lev.android_array[Yspring_kill_eB] =
- lev.android_array[Xspring_w] = lev.android_array[Yspring_wB] = lev.android_array[Yspring_kill_wB] =
- lev.android_array[Xspring_fall] = lev.android_array[Yspring_sB] = Xspring;
- }
- if(temp & 1024) {
- lev.android_array[Yballoon_nB] = lev.android_array[Yballoon_eB] =
- lev.android_array[Yballoon_sB] = lev.android_array[Yballoon_wB] =
- lev.android_array[Xballoon] = Xballoon;
- }
- if(temp & 2048) {
- lev.android_array[Xdripper] = lev.android_array[XdripperB] =
- lev.android_array[Xameuba_1] = lev.android_array[Xameuba_2] =
- lev.android_array[Xameuba_3] = lev.android_array[Xameuba_4] =
- lev.android_array[Xameuba_5] = lev.android_array[Xameuba_6] =
- lev.android_array[Xameuba_7] = lev.android_array[Xameuba_8] = Xdrip_eat;
- }
- if(temp & 4096) {
- lev.android_array[Xdynamite] = Xdynamite;
- }
-
- for(temp = 1; temp < 2047; temp++) {
- switch(src[temp]) {
- case 0x24: lev.wonderwall_state = 1; lev.wonderwall_time = 9999; break; /* wonderwall */
- case 0x28: lev.wheel_x = temp & 63; lev.wheel_y = temp >> 6; lev.wheel_cnt = lev.wheel_time; break; /* wheel */
+ unsigned int x, y, temp;
+
+ lev.width = 64;
+ lev.height = 32;
+
+ temp = ((src[0x83E] << 8 | src[0x83F]) * 25 + 3) / 4;
+ if (temp == 0 || temp > 9999)
+ temp = 9999;
+ lev.time = temp;
+ lev.required = src[0x82F];
+
+ temp = src[0x830] << 8 | src[0x831];
+ ply1.oldx = ply1.x = (temp & 63) + 1;
+ ply1.oldy = ply1.y = (temp >> 6 & 31) + 1;
+ temp = src[0x832] << 8 | src[0x833];
+ ply2.oldx = ply2.x = (temp & 63) + 1;
+ ply2.oldy = ply2.y = (temp >> 6 & 31) + 1;
+
+ lev.alien_score = src[0x826];
+
+ temp = (src[0x834] << 8 | src[0x835]) * 28;
+ if (temp > 9999)
+ temp = 9999;
+ lev.ameuba_time = temp;
+ lev.android_move_cnt = lev.android_move_time = src[0x874] << 8 | src[0x875];
+ lev.android_clone_cnt= lev.android_clone_time = src[0x876] << 8 | src[0x877];
+ lev.ball_pos = 0;
+ lev.ball_random = src[0x872] & 1 ? 1 : 0;
+ lev.ball_state = src[0x872] & 128 ? 1 : 0;
+ lev.ball_cnt = lev.ball_time = src[0x870] << 8 | src[0x871];
+ lev.bug_score = src[0x828];
+ lev.diamond_score = src[0x825];
+ lev.dynamite_score = src[0x82B];
+ lev.eater_pos = 0;
+ lev.eater_score = src[0x829];
+ lev.emerald_score = src[0x824];
+ lev.exit_score = src[0x82D] * 8 / 5;
+ lev.key_score = src[0x82C];
+ lev.lenses_cnt = 0;
+ lev.lenses_score = src[0x867];
+ lev.lenses_time = src[0x86A] << 8 | src[0x86B];
+ lev.magnify_cnt = 0;
+ lev.magnify_score = src[0x868];
+ lev.magnify_time = src[0x86C] << 8 | src[0x86D];
+ lev.nut_score = src[0x82A];
+ lev.shine_cnt = 0;
+ lev.slurp_score = src[0x869];
+ lev.tank_score = src[0x827];
+ lev.wheel_cnt = 0;
+ lev.wheel_x = 1;
+ lev.wheel_y = 1;
+ lev.wheel_time = src[0x838] << 8 | src[0x839];
+ lev.wind_cnt = src[0x865] & 15 ? 9999 : 0;
+ temp = src[0x865];
+ lev.wind_direction = (temp & 8 ? 0 :
+ temp & 1 ? 1 :
+ temp & 2 ? 2 :
+ temp & 4 ? 3 : 0);
+ lev.wind_time = 9999;
+ lev.wonderwall_state = 0;
+ lev.wonderwall_time = src[0x836] << 8 | src[0x837];
+
+ for (x = 0; x < 9; x++)
+ lev.eater_array[0][x] = remap_emerald[src[0x800 + x]];
+ for (x = 0; x < 9; x++)
+ lev.eater_array[1][x] = remap_emerald[src[0x809 + x]];
+ for (x = 0; x < 9; x++)
+ lev.eater_array[2][x] = remap_emerald[src[0x812 + x]];
+ for (x = 0; x < 9; x++)
+ lev.eater_array[3][x] = remap_emerald[src[0x81B + x]];
+ for (x = 0; x < 9; x++)
+ lev.eater_array[4][x] = remap_emerald[src[0x840 + x]];
+ for (x = 0; x < 9; x++)
+ lev.eater_array[5][x] = remap_emerald[src[0x849 + x]];
+ for (x = 0; x < 9; x++)
+ lev.eater_array[6][x] = remap_emerald[src[0x852 + x]];
+ for (x = 0; x < 9; x++)
+ lev.eater_array[7][x] = remap_emerald[src[0x85B + x]];
+
+ temp = remap_emerald[src[0x86F]];
+ for (y = 0; y < 8; y++)
+ {
+ if (src[0x872] & 1)
+ {
+ for (x = 0; x < 8; x++)
+ lev.ball_array[y][x] = temp;
+ }
+ else
+ {
+ lev.ball_array[y][1] = (src[0x873] & 1) ? temp : Xblank; /* north */
+ lev.ball_array[y][6] = (src[0x873] & 2) ? temp : Xblank; /* south */
+ lev.ball_array[y][3] = (src[0x873] & 4) ? temp : Xblank; /* west */
+ lev.ball_array[y][4] = (src[0x873] & 8) ? temp : Xblank; /* east */
+ lev.ball_array[y][7] = (src[0x873] & 16) ? temp : Xblank; /* southeast */
+ lev.ball_array[y][5] = (src[0x873] & 32) ? temp : Xblank; /* southwest */
+ lev.ball_array[y][2] = (src[0x873] & 64) ? temp : Xblank; /* northeast */
+ lev.ball_array[y][0] = (src[0x873] & 128) ? temp : Xblank;/* northwest */
+ }
+ }
+
+ for (temp = 0; temp < TILE_MAX; temp++)
+ lev.android_array[temp] = Xblank;
+
+ temp = src[0x878] << 8 | src[0x879];
+
+ if (temp & 1)
+ {
+ lev.android_array[Xemerald] =
+ lev.android_array[Xemerald_pause] =
+ lev.android_array[Xemerald_fall] =
+ lev.android_array[Yemerald_sB] =
+ lev.android_array[Yemerald_eB] =
+ lev.android_array[Yemerald_wB] = Xemerald;
+ }
+
+ if (temp & 2)
+ {
+ lev.android_array[Xdiamond] =
+ lev.android_array[Xdiamond_pause] =
+ lev.android_array[Xdiamond_fall] =
+ lev.android_array[Ydiamond_sB] =
+ lev.android_array[Ydiamond_eB] =
+ lev.android_array[Ydiamond_wB] = Xdiamond;
+ }
+
+ if (temp & 4)
+ {
+ lev.android_array[Xstone] =
+ lev.android_array[Xstone_pause] =
+ lev.android_array[Xstone_fall] =
+ lev.android_array[Ystone_sB] =
+ lev.android_array[Ystone_eB] =
+ lev.android_array[Ystone_wB] = Xstone;
+ }
+
+ if (temp & 8)
+ {
+ lev.android_array[Xbomb] =
+ lev.android_array[Xbomb_pause] =
+ lev.android_array[Xbomb_fall] =
+ lev.android_array[Ybomb_sB] =
+ lev.android_array[Ybomb_eB] =
+ lev.android_array[Ybomb_wB] = Xbomb;
+ }
+
+ if (temp & 16)
+ {
+ lev.android_array[Xnut] =
+ lev.android_array[Xnut_pause] =
+ lev.android_array[Xnut_fall] =
+ lev.android_array[Ynut_sB] =
+ lev.android_array[Ynut_eB] =
+ lev.android_array[Ynut_wB] = Xnut;
+ }
+
+ if (temp & 32)
+ {
+ lev.android_array[Xtank_n] =
+ lev.android_array[Xtank_gon] =
+ lev.android_array[Ytank_nB] =
+ lev.android_array[Ytank_n_e] =
+ lev.android_array[Ytank_n_w] = Xtank_n;
+
+ lev.android_array[Xtank_e] =
+ lev.android_array[Xtank_goe] =
+ lev.android_array[Ytank_eB] =
+ lev.android_array[Ytank_e_s] =
+ lev.android_array[Ytank_e_n] = Xtank_e;
+
+ lev.android_array[Xtank_s] =
+ lev.android_array[Xtank_gos] =
+ lev.android_array[Ytank_sB] =
+ lev.android_array[Ytank_s_w] =
+ lev.android_array[Ytank_s_e] = Xtank_s;
+
+ lev.android_array[Xtank_w] =
+ lev.android_array[Xtank_gow] =
+ lev.android_array[Ytank_wB] =
+ lev.android_array[Ytank_w_n] =
+ lev.android_array[Ytank_w_s] = Xtank_w;
+ }
+
+ if (temp & 64)
+ {
+ lev.android_array[Xeater_n] = lev.android_array[Yeater_nB] = Xeater_n;
+ lev.android_array[Xeater_e] = lev.android_array[Yeater_eB] = Xeater_e;
+ lev.android_array[Xeater_s] = lev.android_array[Yeater_sB] = Xeater_s;
+ lev.android_array[Xeater_w] = lev.android_array[Yeater_wB] = Xeater_w;
+ }
+
+ if (temp & 128)
+ {
+ lev.android_array[Xbug_n] =
+ lev.android_array[Xbug_gon] =
+ lev.android_array[Ybug_nB] =
+ lev.android_array[Ybug_n_e] =
+ lev.android_array[Ybug_n_w] = Xbug_gon;
+
+ lev.android_array[Xbug_e] =
+ lev.android_array[Xbug_goe] =
+ lev.android_array[Ybug_eB] =
+ lev.android_array[Ybug_e_s] =
+ lev.android_array[Ybug_e_n] = Xbug_goe;
+
+ lev.android_array[Xbug_s] =
+ lev.android_array[Xbug_gos] =
+ lev.android_array[Ybug_sB] =
+ lev.android_array[Ybug_s_w] =
+ lev.android_array[Ybug_s_e] = Xbug_gos;
+
+ lev.android_array[Xbug_w] =
+ lev.android_array[Xbug_gow] =
+ lev.android_array[Ybug_wB] =
+ lev.android_array[Ybug_w_n] =
+ lev.android_array[Ybug_w_s] = Xbug_gow;
+ }
+
+ if (temp & 256)
+ {
+ lev.android_array[Xalien] = lev.android_array[Xalien_pause] =
+ lev.android_array[Yalien_nB] = lev.android_array[Yalien_eB] =
+ lev.android_array[Yalien_sB] = lev.android_array[Yalien_wB] = Xalien;
+ }
+
+ if (temp & 512)
+ {
+ lev.android_array[Xspring] =
+ lev.android_array[Xspring_pause] =
+ lev.android_array[Xspring_e] =
+ lev.android_array[Yspring_eB] =
+ lev.android_array[Yspring_kill_eB] =
+ lev.android_array[Xspring_w] =
+ lev.android_array[Yspring_wB] =
+ lev.android_array[Yspring_kill_wB] =
+ lev.android_array[Xspring_fall] =
+ lev.android_array[Yspring_sB] = Xspring;
+ }
+
+ if (temp & 1024)
+ {
+ lev.android_array[Yballoon_nB] =
+ lev.android_array[Yballoon_eB] =
+ lev.android_array[Yballoon_sB] =
+ lev.android_array[Yballoon_wB] =
+ lev.android_array[Xballoon] = Xballoon;
+ }
+
+ if (temp & 2048)
+ {
+ lev.android_array[Xdripper] =
+ lev.android_array[XdripperB] =
+ lev.android_array[Xameuba_1] =
+ lev.android_array[Xameuba_2] =
+ lev.android_array[Xameuba_3] =
+ lev.android_array[Xameuba_4] =
+ lev.android_array[Xameuba_5] =
+ lev.android_array[Xameuba_6] =
+ lev.android_array[Xameuba_7] =
+ lev.android_array[Xameuba_8] = Xdrip_eat;
+ }
+
+ if (temp & 4096)
+ {
+ lev.android_array[Xdynamite] = Xdynamite;
+ }
+
+ for (temp = 1; temp < 2047; temp++)
+ {
+ switch(src[temp])
+ {
+ case 0x24: /* wonderwall */
+ lev.wonderwall_state = 1;
+ lev.wonderwall_time = 9999;
+ break;
+
+ case 0x28: /* wheel */
+ lev.wheel_x = temp & 63;
+ lev.wheel_y = temp >> 6;
+ lev.wheel_cnt = lev.wheel_time;
+ break;
+