struct GraphicInfo graphic_info;
struct GraphicInfo control_info;
- boolean class_playfield;
+ boolean class_playfield_or_door;
int viewport_x;
int viewport_y;
return compare_result;
}
-static boolean isPausedOnPlayfield(struct GlobalAnimPartControlInfo *part)
+static boolean isPausedOnPlayfieldOrDoor(struct GlobalAnimPartControlInfo *part)
{
- // only pause playfield animations when playing
+ // only pause playfield and door animations when playing
if (game_status != GAME_MODE_PLAYING)
return FALSE;
if (checkGameEnded())
return FALSE;
- // only pause animations on playfield
- if (!part->class_playfield)
+ // only pause animations on playfield and doors
+ if (!part->class_playfield_or_door)
return FALSE;
// only pause animations when engine is paused or request dialog is open(ing)
if (part->drawing_stage != drawing_stage)
continue;
- // if game is paused, also pause playfield animations
- if (isPausedOnPlayfield(part))
+ // if game is paused, also pause playfield and door animations
+ if (isPausedOnPlayfieldOrDoor(part))
part->initial_anim_sync_frame++;
sync_frame = anim_sync_frame - part->initial_anim_sync_frame;
part->drawing_stage = DRAW_GLOBAL_ANIM_STAGE_1;
- part->class_playfield = FALSE;
+ part->class_playfield_or_door = FALSE;
if (part->control_info.class == get_hash_from_key("window") ||
part->control_info.class == get_hash_from_key("border"))
viewport_y = DY;
viewport_width = DXSIZE;
viewport_height = DYSIZE;
+
+ part->class_playfield_or_door = TRUE;
}
else if (part->control_info.class == get_hash_from_key("door_2"))
{
viewport_width = VXSIZE;
viewport_height = VYSIZE;
}
+
+ part->class_playfield_or_door = TRUE;
}
else // default: "playfield"
{
viewport_width = FULL_SXSIZE;
viewport_height = FULL_SYSIZE;
- part->class_playfield = TRUE;
+ part->class_playfield_or_door = TRUE;
}
if (viewport_x != part->viewport_x ||
struct GraphicInfo *c = &part->control_info;
boolean viewport_changed = SetGlobalAnimPart_Viewport(part);
- // if game is paused, also pause playfield animations
- if (isPausedOnPlayfield(part))
+ // if game is paused, also pause playfield and door animations
+ if (isPausedOnPlayfieldOrDoor(part))
return state;
if (viewport_changed)