static int game_mode_anim_classes[NUM_GAME_MODES];
static int anim_class_game_modes[NUM_ANIM_CLASSES];
static int game_mode_anim_classes[NUM_GAME_MODES];
static int anim_class_game_modes[NUM_ANIM_CLASSES];
anim_class_game_modes[anim_class_game_modes_list[i].class_bit] =
anim_class_game_modes_list[i].game_mode;
anim_class_game_modes[anim_class_game_modes_list[i].class_bit] =
anim_class_game_modes_list[i].game_mode;
// ---------- part 1 ------------------------------------------------------
// start or stop global animations by change of game mode
// (special handling of animations for "current screen" and "all screens")
// ---------- part 1 ------------------------------------------------------
// start or stop global animations by change of game mode
// (special handling of animations for "current screen" and "all screens")
- // stop animations for last screen
- game_mode_anim_action[anim_status_last] = ANIM_STOP;
+ if (global.anim_status_next != anim_status_last_before_fading)
+ {
+ // stop animations for last screen before fading to new screen
+ game_mode_anim_action[anim_status_last] = ANIM_STOP;
- // start animations for current screen
- game_mode_anim_action[global.anim_status] = ANIM_START;
+ // start animations for current screen after fading to new screen
+ game_mode_anim_action[global.anim_status] = ANIM_START;
+ }
// start animations for all screens after loading new artwork set
if (anim_status_last == GAME_MODE_LOADING)
// start animations for all screens after loading new artwork set
if (anim_status_last == GAME_MODE_LOADING)
if (isClickedPart(part, mx, my, clicked))
{
if (isClickedPart(part, mx, my, clicked))
{
// check if this click is defined to trigger other animations
int gic_anim_nr = part->old_anim_nr + 1; // X as in "anim_X"
// check if this click is defined to trigger other animations
int gic_anim_nr = part->old_anim_nr + 1; // X as in "anim_X"
struct GlobalAnimPartControlInfo *part2 = &anim2->part[part2_nr];
if (isClickablePart(part2, mask))
struct GlobalAnimPartControlInfo *part2 = &anim2->part[part2_nr];
if (isClickablePart(part2, mask))