lev.right = lev.left + lev.width;
lev.bottom = lev.top + lev.height;
- /* add linked cave buffer columns for wrap-around movement */
- for (x = 0; x < lev.left; x++)
+ if (cav.infinite)
{
- lev.cavecol[x] = lev.cavecol[lev.width + x];
- lev.nextcol[x] = lev.nextcol[lev.width + x];
- lev.drawcol[x] = lev.drawcol[lev.width + x];
- lev.boomcol[x] = lev.boomcol[lev.width + x];
-
- lev.cavecol[lev.right + x] = lev.cavecol[lev.left + x];
- lev.nextcol[lev.right + x] = lev.nextcol[lev.left + x];
- lev.drawcol[lev.right + x] = lev.drawcol[lev.left + x];
- lev.boomcol[lev.right + x] = lev.boomcol[lev.left + x];
+ /* add linked cave buffer columns for wrap-around movement */
+ for (x = 0; x < lev.left; x++)
+ {
+ lev.cavecol[x] = lev.cavecol[lev.width + x];
+ lev.nextcol[x] = lev.nextcol[lev.width + x];
+ lev.drawcol[x] = lev.drawcol[lev.width + x];
+ lev.boomcol[x] = lev.boomcol[lev.width + x];
+
+ lev.cavecol[lev.right + x] = lev.cavecol[lev.left + x];
+ lev.nextcol[lev.right + x] = lev.nextcol[lev.left + x];
+ lev.drawcol[lev.right + x] = lev.drawcol[lev.left + x];
+ lev.boomcol[lev.right + x] = lev.boomcol[lev.left + x];
+ }
}
for (x = 0; x < lev.width; x++)
lev.gems_needed = cav.gems_needed;
lev.score = 0;
+ lev.testmode = cav.testmode;
+
+ if (lev.testmode)
+ {
+ lev.time = 0;
+ lev.gems_needed = 0;
+ }
+
lev.eater_score = cav.eater_score;
lev.alien_score = cav.alien_score;
lev.bug_score = cav.bug_score;
for (i = 0; i < MAX_PLAYERS; i++)
{
- ply[i].exists = 0;
- ply[i].alive_initial = FALSE;
+ ply[i].exists = FALSE;
+ ply[i].alive = FALSE;
if (cav.player_x[i] != -1 &&
cav.player_y[i] != -1)
{
- ply[i].exists = 1;
+ ply[i].exists = TRUE;
lev.home_initial++;
}
{
if (players_left)
{
- ply[i].alive_initial = TRUE;
+ ply[i].alive = TRUE;
players_left--;
}
else
for (i = 0; i < MAX_PLAYERS; i++)
{
ply[i].num = i;
- ply[i].alive = ply[i].alive_initial;
ply[i].dynamite = 0;
ply[i].dynamite_cnt = 0;
ply[i].keys = 0;
ply[i].anim = 0;
- ply[i].oldx = ply[i].x = cav.player_x[i] + lev.left;
- ply[i].oldy = ply[i].y = cav.player_y[i] + lev.top;
+ ply[i].prev_x = ply[i].x = cav.player_x[i] + lev.left;
+ ply[i].prev_y = ply[i].y = cav.player_y[i] + lev.top;
ply[i].last_move_dir = MV_NONE;
ply[i].joy_n = ply[i].joy_e = ply[i].joy_s = ply[i].joy_w = 0;
- ply[i].joy_snap = ply[i].joy_drop = 0;
- ply[i].joy_stick = ply[i].joy_spin = 0;
+ ply[i].joy_snap = 0;
+ ply[i].joy_drop = 0;
+ ply[i].joy_stick = 0;
}
// the following engine variables are initialized to version-specific values