X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fanim.c;h=39f7e6469280c5a8da51dbc1bf13a0d0aaf92aaf;hb=ebd52bd119746407c06131563cc9b5c1b7c3d01d;hp=3393d93912eef6cc0fb7e29cf1000c7cb157d8cd;hpb=bafdb99744ce47f225e6bdd54afbcd056a7bfa76;p=rocksndiamonds.git diff --git a/src/anim.c b/src/anim.c index 3393d939..39f7e646 100644 --- a/src/anim.c +++ b/src/anim.c @@ -961,7 +961,7 @@ static boolean SetGlobalAnimPart_Viewport(struct GlobalAnimPartControlInfo *part viewport_width = part->graphic_info.width; viewport_height = part->graphic_info.height; - part->drawing_stage = DRAW_GLOBAL_ANIM_STAGE_2; + part->drawing_stage = DRAW_GLOBAL_ANIM_STAGE_3; // do not use global animation mouse pointer when reloading artwork if (global.anim_status != GAME_MODE_LOADING) @@ -1082,6 +1082,13 @@ static void StopGlobalAnimMusic(struct GlobalAnimPartControlInfo *part) if (music == MUS_UNDEFINED) return; + char *anim_music = getMusicInfoEntryFilename(music); + char *curr_music = getCurrentlyPlayingMusicFilename(); + + // do not stop music if global anim music differs from current music + if (!strEqual(curr_music, anim_music)) + return; + StopMusic(); #if 0 @@ -1997,6 +2004,18 @@ static void ResetGlobalAnim_Clicked(void) InitGlobalAnim_Clicked(-1, -1, ANIM_CLICKED_RESET); } +void RestartGlobalAnimsByStatus(int status) +{ + int anim_status_last = global.anim_status; + + global.anim_status = status; + + // force restarting global animations by changed global animation status + SDLRedrawWindow(); + + global.anim_status = anim_status_last; +} + boolean HandleGlobalAnimClicks(int mx, int my, int button, boolean force_click) { static boolean click_consumed = FALSE;