Merge remote-tracking branch 'refs/remotes/origin/master' into buuump

# Conflicts:
#	src/f_finale.c
This commit is contained in:
TehRealSalt 2018-01-15 16:20:10 -05:00
commit 0401a8654a
6 changed files with 66 additions and 30 deletions

View File

@ -341,7 +341,10 @@ static void D_Display(void)
case GS_INTRO:
F_IntroDrawer();
if (wipegamestate == (gamestate_t)-1)
{
wipe = true;
wipedefindex = gamestate; // wipe_xxx_toblack
}
break;
case GS_CUTSCENE:
@ -523,7 +526,7 @@ static void D_Display(void)
else
py = viewwindowy + 4;
patch = W_CachePatchName("M_PAUSE", PU_CACHE);
V_DrawScaledPatch(viewwindowx + (viewwidth - SHORT(patch->width))/2, py, 0, patch);
V_DrawScaledPatch(viewwindowx + (BASEVIDWIDTH - SHORT(patch->width))/2, py, 0, patch);
}
// vid size change is now finished if it was on...

View File

@ -35,7 +35,7 @@
// Stage of animation:
// 0 = text, 1 = art screen
static INT32 finalecount;
INT32 titlescrollspeed = 80;
INT32 titlescrollspeed = 5;
static INT32 timetonext; // Delay between screen changes
static INT32 continuetime; // Short delay when continuing
@ -52,23 +52,10 @@ static UINT8 curDemo = 0;
static UINT32 demoDelayLeft;
static UINT32 demoIdleLeft;
/*static patch_t *ttbanner; // white banner with "robo blast" and "2"
static patch_t *ttwing; // wing background
static patch_t *ttsonic; // "SONIC"
static patch_t *ttswave1; // Title Sonics
static patch_t *ttswave2;
static patch_t *ttswip1;
static patch_t *ttsprep1;
static patch_t *ttsprep2;
static patch_t *ttspop1;
static patch_t *ttspop2;
static patch_t *ttspop3;
static patch_t *ttspop4;
static patch_t *ttspop5;
static patch_t *ttspop6;
static patch_t *ttspop7;*/
static patch_t *kartttl; // SONIC ROBO BLAST 2 KART
static patch_t *ttbanner; // SONIC ROBO BLAST 2
static patch_t *ttkart; // *vroom* KART
static patch_t *ttcheckers; // *vroom* KART
static patch_t *ttkflash; // flash screen
static void F_SkyScroll(INT32 scrollspeed);
@ -366,6 +353,11 @@ void F_IntroDrawer(void)
}
D_StartTitle();
// Yes, this is a weird hack, we need to force a wipe for this because the game state has changed in the middle of where it would normally wipe
// Need to set the wipe start and then draw the first frame of the title screen to get it working
F_WipeStartScreen();
F_TitleScreenDrawer();
wipegamestate = -1; // force a wipe
return;
}
@ -927,14 +919,18 @@ void F_StartTitleScreen(void)
// IWAD dependent stuff.
S_ChangeMusicInternal("titles", looptitle);
// music is started in the ticker
S_StopMusic();
animtimer = 0;
demoDelayLeft = demoDelayTime;
demoIdleLeft = demoIdleTime;
kartttl = W_CachePatchName("KARTTTL", PU_LEVEL);
ttbanner = W_CachePatchName("TTKBANNR", PU_LEVEL);
ttkart = W_CachePatchName("TTKART", PU_LEVEL);
ttcheckers = W_CachePatchName("TTCHECK", PU_LEVEL);
ttkflash = W_CachePatchName("TTKFLASH", PU_LEVEL);
}
// (no longer) De-Demo'd Title Screen
@ -943,22 +939,58 @@ void F_TitleScreenDrawer(void)
if (modeattacking)
return; // We likely came here from retrying. Don't do a damn thing.
// Draw that sky!
F_SkyScroll(titlescrollspeed);
if (finalecount < 50)
V_DrawFill(0, 0, 320, 200, 31);
else
// Draw that sky!
F_SkyScroll(titlescrollspeed);
// Don't draw outside of the title screewn, or if the patch isn't there.
if (!kartttl || (gamestate != GS_TITLESCREEN && gamestate != GS_WAITINGPLAYERS))
if (!ttbanner || (gamestate != GS_TITLESCREEN && gamestate != GS_WAITINGPLAYERS))
return;
V_DrawScaledPatch(84, 36, 0, kartttl);
V_DrawSmallScaledPatch(84, 36, 0, ttbanner);
if (finalecount < 20)
{
if (finalecount >= 10)
V_DrawSciencePatch((84<<FRACBITS) - FixedDiv(180<<FRACBITS, 10<<FRACBITS)*(20-finalecount), (87<<FRACBITS), 0, ttkart, FRACUNIT/2);
}
else
{
V_DrawSmallScaledPatch(84, 87, 0, ttkart);
// Checkers, only need to be drawn after the whiteout, but we can do it here because it won't be seen before anyway
V_DrawSciencePatch(0, 0 - FixedMul(40<<FRACBITS, FixedDiv(finalecount%70, 70)), V_SNAPTOTOP|V_SNAPTOLEFT, ttcheckers, FRACUNIT);
V_DrawSciencePatch(280<<FRACBITS, -(40<<FRACBITS) + FixedMul(40<<FRACBITS, FixedDiv(finalecount%70, 70)), V_SNAPTOTOP|V_SNAPTORIGHT, ttcheckers, FRACUNIT);
}
if (finalecount >= 50 && finalecount < 55)
{
V_DrawFill(0, 0, 320, 200, 120);
V_DrawSmallScaledPatch(84, 36, 0, ttkflash);
}
}
// (no longer) De-Demo'd Title Screen
void F_TitleScreenTicker(boolean run)
{
if (run)
{
finalecount++;
if (finalecount == 10)
{
S_StartSound(NULL, sfx_spin);
}
else if (finalecount == 50)
{
// Now start the music
S_ChangeMusicInternal("titles", looptitle);
S_StartSound(NULL, sfx_zoom);
}
}
// don't trigger if doing anything besides idling on title
if (gameaction != ga_nothing || gamestate != GS_TITLESCREEN)
return;

View File

@ -48,7 +48,7 @@ UINT8 wipedefs[NUMWIPEDEFS] = {
0, // wipe_level_toblack
UINT8_MAX, // wipe_intermission_toblack
UINT8_MAX, // wipe_continuing_toblack
0, // wipe_titlescreen_toblack
3, // wipe_titlescreen_toblack
0, // wipe_timeattack_toblack
99, // wipe_credits_toblack
0, // wipe_evaluation_toblack
@ -63,7 +63,7 @@ UINT8 wipedefs[NUMWIPEDEFS] = {
0, // wipe_level_final
0, // wipe_intermission_final
0, // wipe_continuing_final
0, // wipe_titlescreen_final
3, // wipe_titlescreen_final
0, // wipe_timeattack_final
99, // wipe_credits_final
0, // wipe_evaluation_final

View File

@ -125,7 +125,7 @@ INT16 spstage_start;
INT16 sstage_start;
INT16 sstage_end;
boolean looptitle = false;
boolean looptitle = true;
boolean useNightsSS = false;
UINT8 skincolor_redteam = SKINCOLOR_RED;

View File

@ -7855,7 +7855,7 @@ void M_QuitResponse(INT32 ch)
ptime = I_GetTime() + NEWTICRATE*2; // Shortened the quit time, used to be 2 seconds Tails 03-26-2001
while (ptime > I_GetTime())
{
V_DrawScaledPatch(0, 0, 0, W_CachePatchName("GAMEQUIT", PU_CACHE)); // Demo 3 Quit Screen Tails 06-16-2001
V_DrawSmallScaledPatch(0, 0, 0, W_CachePatchName("GAMEQUIT", PU_CACHE)); // Demo 3 Quit Screen Tails 06-16-2001
I_FinishUpdate(); // Update the screen with the image Tails 06-19-2001
I_Sleep();
}

View File

@ -476,7 +476,8 @@ void V_DrawFixedPatch(fixed_t x, fixed_t y, fixed_t pscale, INT32 scrn, patch_t
desttop += (vid.height - (BASEVIDHEIGHT * dupy)) * vid.width / 2;
}
// if it's meant to cover the whole screen, black out the rest
if (x == 0 && SHORT(patch->width) == BASEVIDWIDTH && y == 0 && SHORT(patch->height) == BASEVIDHEIGHT)
if (x == 0 && FixedMul(SHORT(patch->width)<<FRACBITS, pscale)>>FRACBITS == BASEVIDWIDTH
&& y == 0 && FixedMul(SHORT(patch->height)<<FRACBITS, pscale)>>FRACBITS == BASEVIDHEIGHT)
{
column = (const column_t *)((const UINT8 *)(patch) + LONG(patch->columnofs[0]));
source = (const UINT8 *)(column) + 3;