Code: Select all
void screenTrans(void){
if (fadeState == FADEOUT){
// prepare palettes
if (ISTITLEMAP) memcpy(&palette[0], titlescr.palette->data, 16 * 2);
//if (ISSELECTMAP) memcpy(&palette[0], selectscr.palette->data, 16 * 2);
//if (ISINTROMAP) memcpy(&palette[0], introscr.palette->data, 16 * 2);
// fade out
//VDP_fadeOut((u16*)palette, palette_black,20, FALSE);
VDP_fadeOut((unsigned char*)titlescr.palette->data , palette_black, 40, FALSE);
VDP_waitFadeCompletion();
fadeState = FADEINDONE;
if (fadeState == FADEOUTDONE && ISTITLEMAP) {
cMap = SELECTMAP;
assetsToRam();
fadeState = FADEIN;
}else if (fadeState == FADEOUTDONE && ISSELECTMAP) {
cMap = INTROMAP;
assetsToRam();
fadeState = FADEIN;
}else if (fadeState == FADEOUTDONE && ISINTROMAP) {
cMap = SHOREMAP;
assetsToRam();
fadeState = FADEIN;
}
}else if (fadeState == FADEIN){
VDP_setPaletteColors(0, (u16*)palette_black, 64);
// prepare palettes
if (ISTITLEMAP) memcpy(&palette[0], titlescr.palette->data, 16 * 2);
if (ISSELECTMAP) memcpy(&palette[0], selectscr.palette->data, 16 * 2);
if (ISINTROMAP) memcpy(&palette[0], introscr.palette->data, 16 * 2);
//memcpy(&palette[16], bga_image.palette->data, 16 * 2);
//memcpy(&palette[32], sonic_sprite.palette->data, 16 * 2);
//memcpy(&palette[48], enemies_sprite.palette->data, 16 * 2);
// fade in
VDP_fadeIn(0, (4 * 16) - 1, palette, 20, FALSE);
VDP_waitFadeCompletion();
fadeState = FADEINDONE;
}
}