X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ftools.c;h=9530644e204d1787fbe18e240867c44b5923b7e9;hb=585994e9f3f77300b730f790062010518f35a739;hp=ba774925f95d7128c5a3c9c8be3f48cbdf8b9aa8;hpb=13543405e2c3cb994b33161dd12202205158f919;p=rocksndiamonds.git diff --git a/src/tools.c b/src/tools.c index ba774925..9530644e 100644 --- a/src/tools.c +++ b/src/tools.c @@ -662,25 +662,46 @@ void FadeCrossSaveBackbuffer() BlitBitmap(backbuffer, bitmap_db_cross, 0, 0, WIN_XSIZE, WIN_YSIZE, 0, 0); } +static void FadeSetLeaveNext(struct TitleFadingInfo fading_leave, boolean set) +{ + static struct TitleFadingInfo fading_leave_stored; + + if (set) + fading_leave_stored = fading_leave; + else + fading = fading_leave_stored; +} + void FadeSetEnterMenu() { fading = menu.enter_menu; + + FadeSetLeaveNext(fading, TRUE); /* (keep same fade mode) */ } void FadeSetLeaveMenu() { fading = menu.leave_menu; + + FadeSetLeaveNext(fading, TRUE); /* (keep same fade mode) */ +} + +void FadeSetEnterScreen() +{ + fading = menu.enter_screen[game_status]; + + FadeSetLeaveNext(menu.leave_screen[game_status], TRUE); /* store */ } -void FadeSetStartItem() +void FadeSetLeaveScreen() { - fading = menu.start_item; + FadeSetLeaveNext(menu.leave_screen[game_status], FALSE); /* recall */ } void FadeSetFromType(int type) { if (type & TYPE_ENTER_SCREEN) - FadeSetStartItem(); + FadeSetEnterScreen(); else if (type & TYPE_ENTER) FadeSetEnterMenu(); else if (type & TYPE_LEAVE)