mirror of
https://github.com/kichikuou/system3-sdl2.git
synced 2026-10-03 04:18:04 +03:00
Rewrite fade in / fade out implementation
Before this change, fade in and fade out was implemented using a 16-steps dithering pattern. Now fading uses alpha-blending. It behaves like the PC98 version, where fading was done by palette animation. This reduces `sizeof(AGS)` by 1.2MB.
This commit is contained in:
+2
-20
@@ -1160,29 +1160,11 @@ void NACT_Sys3::cmd_y()
|
||||
break;
|
||||
case 40:
|
||||
case 42:
|
||||
if(ags->now_fade()) {
|
||||
Uint32 dwStart = SDL_GetTicks();
|
||||
for(int i = 0; i < 16; i++) {
|
||||
ags->fade_in(i);
|
||||
int32 ms = dwStart + param * 1000 / 60 * i - SDL_GetTicks();
|
||||
if (ms > 0)
|
||||
sys_sleep(ms);
|
||||
}
|
||||
ags->fade_end();
|
||||
}
|
||||
ags->fade_in(param * 16 * 1000 / 60);
|
||||
break;
|
||||
case 41:
|
||||
case 43:
|
||||
if(!ags->now_fade()) {
|
||||
ags->fade_start();
|
||||
Uint32 dwStart = SDL_GetTicks();
|
||||
for(int i = 0; i < 16; i++) {
|
||||
ags->fade_out(i, (cmd == 41) ? false : true);
|
||||
int32 ms = dwStart + param * 1000 / 60 * i - SDL_GetTicks();
|
||||
if (ms > 0)
|
||||
sys_sleep(ms);
|
||||
}
|
||||
}
|
||||
ags->fade_out(param * 16 * 1000 / 60, cmd == 43);
|
||||
break;
|
||||
case 45:
|
||||
ags->extract_palette = param ? true : false;
|
||||
|
||||
Reference in New Issue
Block a user