mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2024-11-17 02:01:15 +00:00
Merge branch 'master' into ric-flair
This commit is contained in:
commit
be376de48f
5 changed files with 27 additions and 518 deletions
|
@ -877,6 +877,14 @@ static void IdentifyVersion(void)
|
|||
D_AddFile(musicpath);
|
||||
else if (ms == 0)
|
||||
I_Error("File %s has been modified with non-music lumps",musicfile);
|
||||
|
||||
const char* kmusicfile = "music.kart";
|
||||
const char* kmusicpath = va(pandf,srb2waddir,kmusicfile);
|
||||
ms = W_VerifyNMUSlumps(kmusicpath);
|
||||
if (ms == 1)
|
||||
D_AddFile(kmusicpath);
|
||||
else if (ms == 0)
|
||||
I_Error("File %s has been modified with non-music lumps",kmusicfile);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
|
533
src/f_finale.c
533
src/f_finale.c
|
@ -43,7 +43,6 @@ static INT32 continuetime; // Short delay when continuing
|
|||
static tic_t animtimer; // Used for some animation timings
|
||||
static INT32 roidtics; // Asteroid spinning
|
||||
|
||||
static INT32 deplete;
|
||||
static tic_t stoptimer;
|
||||
|
||||
static boolean keypressed = false;
|
||||
|
@ -247,7 +246,7 @@ static void F_SkyScroll(INT32 scrollspeed)
|
|||
// =============
|
||||
// INTRO SCENE
|
||||
// =============
|
||||
#define NUMINTROSCENES 16
|
||||
#define NUMINTROSCENES 1
|
||||
INT32 intro_scenenum = 0;
|
||||
INT32 intro_curtime = 0;
|
||||
|
||||
|
@ -255,22 +254,7 @@ const char *introtext[NUMINTROSCENES];
|
|||
|
||||
static tic_t introscenetime[NUMINTROSCENES] =
|
||||
{
|
||||
7*TICRATE + (TICRATE/2), // STJr Presents
|
||||
11*TICRATE + (TICRATE/2), // Two months had passed since...
|
||||
15*TICRATE + (TICRATE/2), // As it was about to drain the rings...
|
||||
14*TICRATE, // What Sonic, Tails, and Knuckles...
|
||||
18*TICRATE, // About once every year, a strange...
|
||||
19*TICRATE + (TICRATE/2), // Curses! Eggman yelled. That ridiculous...
|
||||
19*TICRATE + (TICRATE/4), // It was only later that he had an idea...
|
||||
10*TICRATE + (TICRATE/2), // Before beginning his scheme, Eggman decided to give Sonic...
|
||||
16*TICRATE, // We're ready to fire in 15 seconds, the robot said...
|
||||
16*TICRATE, // Meanwhile, Sonic was tearing across the zones...
|
||||
16*TICRATE + (TICRATE/2), // Sonic knew he was getting closer to the city...
|
||||
17*TICRATE, // Greenflower City was gone...
|
||||
16*TICRATE + (TICRATE/2), // You're not quite as dead as we thought, huh?...
|
||||
18*TICRATE + (TICRATE/2), // Eggman took this as his cue and blasted off...
|
||||
16*TICRATE, // Easy! We go find Eggman and stop his...
|
||||
25*TICRATE, // I'm just finding what mission obje...
|
||||
8*TICRATE, // KART KR(eW
|
||||
};
|
||||
|
||||
// custom intros
|
||||
|
@ -289,149 +273,6 @@ void F_StartIntro(void)
|
|||
|
||||
introtext[0] = " #";
|
||||
|
||||
introtext[1] = M_GetText(
|
||||
"Two months had passed since Dr. Eggman\n"
|
||||
"tried to take over the world using his\n"
|
||||
"Ring Satellite.\n#");
|
||||
|
||||
introtext[2] = M_GetText(
|
||||
"As it was about to drain the rings\n"
|
||||
"away from the planet, Sonic burst into\n"
|
||||
"the Satellite and for what he thought\n"
|
||||
"would be the last time,\xB4 defeated\n"
|
||||
"Dr. Eggman.\n#");
|
||||
|
||||
introtext[3] = M_GetText(
|
||||
"\nWhat Sonic, Tails, and Knuckles had\n"
|
||||
"not anticipated was that Eggman would\n"
|
||||
"return,\xB8 bringing an all new threat.\n#");
|
||||
|
||||
introtext[4] = M_GetText(
|
||||
"\xA8""About once every year, a strange asteroid\n"
|
||||
"hovers around the planet.\xBF It suddenly\n"
|
||||
"appears from nowhere, circles around, and\n"
|
||||
"\xB6- just as mysteriously as it arrives -\xB6\n"
|
||||
"vanishes after about two months.\xBF\n"
|
||||
"No one knows why it appears, or how.\n#");
|
||||
|
||||
introtext[5] = M_GetText(
|
||||
"\xA7\"Curses!\"\xA9\xBA Eggman yelled. \xA7\"That hedgehog\n"
|
||||
"and his ridiculous friends will pay\n"
|
||||
"dearly for this!\"\xA9\xC8 Just then his scanner\n"
|
||||
"blipped as the Black Rock made its\n"
|
||||
"appearance from nowhere.\xBF Eggman looked at\n"
|
||||
"the screen, and just shrugged it off.\n#");
|
||||
|
||||
introtext[6] = M_GetText(
|
||||
"It was only later\n"
|
||||
"that he had an\n"
|
||||
"idea. \xBF\xA7\"The Black\n"
|
||||
"Rock usually has a\n"
|
||||
"lot of energy\n"
|
||||
"within it\xAC...\xA7\xBF\n"
|
||||
"If I can somehow\n"
|
||||
"harness this,\xB8 I\n"
|
||||
"can turn it into\n"
|
||||
"the ultimate\n"
|
||||
"battle station\xAC...\xA7\xBF\n"
|
||||
"And every last\n"
|
||||
"person will be\n"
|
||||
"begging for mercy,\xB8\xA8\n"
|
||||
"including Sonic!\"\n#");
|
||||
|
||||
introtext[7] = M_GetText(
|
||||
"\xA8\nBefore beginning his scheme,\n"
|
||||
"Eggman decided to give Sonic\n"
|
||||
"a reunion party...\n#");
|
||||
|
||||
introtext[8] = M_GetText(
|
||||
"\xA5\"We're\xB6 ready\xB6 to\xB4 fire\xB6 in\xB6 15\xB6 seconds!\"\xA8\xB8\n"
|
||||
"The robot said, his voice crackling a\n"
|
||||
"little down the com-link. \xBF\xA7\"Good!\"\xA8\xB8\n"
|
||||
"Eggman sat back in his Egg-Mobile and\n"
|
||||
"began to count down as he saw the\n"
|
||||
"GreenFlower city on the main monitor.\n#");
|
||||
|
||||
introtext[9] = M_GetText(
|
||||
"\xA5\"10...\xD2""9...\xD2""8...\"\xA8\xD2\n"
|
||||
"Meanwhile, Sonic was tearing across the\n"
|
||||
"zones. Everything became a blur as he\n"
|
||||
"ran around loops, skimmed over water,\n"
|
||||
"and catapulted himself off rocks with\n"
|
||||
"his phenomenal speed.\n#");
|
||||
|
||||
introtext[10] = M_GetText(
|
||||
"\xA5\"6...\xD2""5...\xD2""4...\"\xA8\xD2\n"
|
||||
"Sonic knew he was getting closer to the\n"
|
||||
"City, and pushed himself harder.\xB4 Finally,\n"
|
||||
"the city appeared in the horizon.\xD2\xD2\n"
|
||||
"\xA5\"3...\xD2""2...\xD2""1...\xD2""Zero.\"\n#");
|
||||
|
||||
introtext[11] = M_GetText(
|
||||
"GreenFlower City was gone.\xC4\n"
|
||||
"Sonic arrived just in time to see what\n"
|
||||
"little of the 'ruins' were left.\n"
|
||||
"Everyone and everything in the city\n"
|
||||
"had been obliterated.\n#");
|
||||
|
||||
introtext[12] = M_GetText(
|
||||
"\xA7\"You're not quite as dead as we thought,\n"
|
||||
"huh?\xBF Are you going to tell us your plan as\n"
|
||||
"usual or will I \xA8\xB4'have to work it out'\xA7 or\n"
|
||||
"something?\"\xD2\xD2\n"
|
||||
"\"We'll see\xAA...\xA7\xBF let's give you a quick warm\n"
|
||||
"up, Sonic!\xA6\xC4 JETTYSYNS!\xA7\xBD Open fire!\"\n#");
|
||||
|
||||
introtext[13] = M_GetText(
|
||||
"Eggman took this\n"
|
||||
"as his cue and\n"
|
||||
"blasted off,\n"
|
||||
"leaving Sonic\n"
|
||||
"and Tails behind.\xB6\n"
|
||||
"Tails looked at\n"
|
||||
"the ruins of the\n"
|
||||
"Greenflower City\n"
|
||||
"with a grim face\n"
|
||||
"and sighed.\xC6\n"
|
||||
"\xA7\"Now\xB6 what do we\n"
|
||||
"do?\",\xA9 he asked.\n#");
|
||||
|
||||
introtext[14] = M_GetText(
|
||||
"\xA7\"Easy!\xBF We go\n"
|
||||
"find Eggman\n"
|
||||
"and stop his\n"
|
||||
"latest\n"
|
||||
"insane plan.\xBF\n"
|
||||
"Just like\n"
|
||||
"we've always\n"
|
||||
"done,\xBA right?\xD2\n\n"
|
||||
"\xAE...\xA9\xD2\n\n"
|
||||
"\"Tails, what\n"
|
||||
"\xAA*ARE*\xA9 you\n"
|
||||
"doing?\"\n#");
|
||||
|
||||
introtext[15] = M_GetText(
|
||||
"\xA8\"I'm just finding what mission obje\xAC\xB1...\xBF\n"
|
||||
"\xA6""a-\xB8""ha!\xBF Here it is!\xA8\xBF This will only give us\n"
|
||||
"the robot's primary objective.\xBF It says\xAC\xB1...\"\n"
|
||||
"\xD2\xA3\x83"
|
||||
"* LOCATE AND RETRIEVE: CHAOS EMERALDS *"
|
||||
"\xBF\n"
|
||||
"* CLOSEST LOCATION: GREENFLOWER ZONE *"
|
||||
"\x80\n\xA9\xD2\xD2"
|
||||
"\"All right, then\xAF... \xD2\xD2\xA7let's go!\"\n#");
|
||||
|
||||
/*
|
||||
"What are we waiting for? The first emerald is ours!" Sonic was about to
|
||||
run, when he saw a shadow pass over him, he recognized the silhouette
|
||||
instantly.
|
||||
"Knuckles!" Sonic said. The echidna stopped his glide and landed
|
||||
facing Sonic. "What are you doing here?"
|
||||
He replied, "This crisis affects the Floating Island,
|
||||
if that explosion I saw is anything to go by."
|
||||
If you're willing to help then... let's go!"
|
||||
*/
|
||||
|
||||
G_SetGamestate(GS_INTRO);
|
||||
gameaction = ga_nothing;
|
||||
playerdeadview = false;
|
||||
|
@ -444,6 +285,7 @@ void F_StartIntro(void)
|
|||
finalecount = animtimer = stoptimer = 0;
|
||||
roidtics = BASEVIDWIDTH - 64;
|
||||
timetonext = introscenetime[intro_scenenum];
|
||||
S_StopMusic();
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -455,90 +297,25 @@ static void F_IntroDrawScene(void)
|
|||
INT32 cx = 8, cy = 128;
|
||||
patch_t *background = NULL;
|
||||
INT32 bgxoffs = 0;
|
||||
void *patch;
|
||||
|
||||
// DRAW A FULL PIC INSTEAD OF FLAT!
|
||||
if (intro_scenenum == 0);
|
||||
else if (intro_scenenum == 1)
|
||||
background = W_CachePatchName("INTRO1", PU_CACHE);
|
||||
else if (intro_scenenum == 2)
|
||||
if (intro_scenenum == 0)
|
||||
{
|
||||
background = W_CachePatchName("INTRO2", PU_CACHE);
|
||||
highres = true;
|
||||
if (finalecount == 8)
|
||||
S_StartSound(NULL, sfx_vroom);
|
||||
else if (finalecount == 47)
|
||||
{
|
||||
// Need to use M_Random otherwise it always uses the same sound
|
||||
INT32 rskin = M_RandomKey(numskins);
|
||||
UINT8 rtaunt = M_RandomKey(4);
|
||||
sfxenum_t rsound = skins[rskin].soundsid[SKSPLTNT1+rtaunt];
|
||||
S_StartSound(NULL, rsound);
|
||||
}
|
||||
else if (intro_scenenum == 3)
|
||||
background = W_CachePatchName("INTRO3", PU_CACHE);
|
||||
else if (intro_scenenum == 4)
|
||||
background = W_CachePatchName("INTRO4", PU_CACHE);
|
||||
else if (intro_scenenum == 5)
|
||||
{
|
||||
if (intro_curtime >= 5*TICRATE)
|
||||
background = W_CachePatchName("RADAR", PU_CACHE);
|
||||
else
|
||||
{
|
||||
background = W_CachePatchName("DRAT", PU_CACHE);
|
||||
highres = true;
|
||||
}
|
||||
}
|
||||
else if (intro_scenenum == 6)
|
||||
{
|
||||
background = W_CachePatchName("INTRO6", PU_CACHE);
|
||||
cx = 180;
|
||||
cy = 8;
|
||||
}
|
||||
else if (intro_scenenum == 7)
|
||||
{
|
||||
if (intro_curtime >= 6*TICRATE)
|
||||
background = W_CachePatchName("SGRASS5", PU_CACHE);
|
||||
else
|
||||
background = W_CachePatchName("SGRASS1", PU_CACHE);
|
||||
}
|
||||
else if (intro_scenenum == 8)
|
||||
{
|
||||
background = W_CachePatchName("WATCHING", PU_CACHE);
|
||||
highres = true;
|
||||
}
|
||||
else if (intro_scenenum == 9)
|
||||
{
|
||||
background = W_CachePatchName("ZOOMING", PU_CACHE);
|
||||
highres = true;
|
||||
}
|
||||
else if (intro_scenenum == 10);
|
||||
else if (intro_scenenum == 11)
|
||||
background = W_CachePatchName("INTRO5", PU_CACHE);
|
||||
else if (intro_scenenum == 12)
|
||||
{
|
||||
if (intro_curtime >= 7*TICRATE)
|
||||
background = W_CachePatchName("CONFRONT", PU_CACHE);
|
||||
else
|
||||
background = W_CachePatchName("REVENGE", PU_CACHE);
|
||||
highres = true;
|
||||
}
|
||||
else if (intro_scenenum == 13)
|
||||
{
|
||||
background = W_CachePatchName("TAILSSAD", PU_CACHE);
|
||||
highres = true;
|
||||
bgxoffs = 144;
|
||||
cx = 8;
|
||||
cy = 8;
|
||||
}
|
||||
else if (intro_scenenum == 14)
|
||||
{
|
||||
if (intro_curtime >= 7*TICRATE)
|
||||
background = W_CachePatchName("SONICDO2", PU_CACHE);
|
||||
else
|
||||
background = W_CachePatchName("SONICDO1", PU_CACHE);
|
||||
highres = true;
|
||||
cx = 224;
|
||||
cy = 8;
|
||||
}
|
||||
else if (intro_scenenum == 15)
|
||||
{
|
||||
background = W_CachePatchName("INTRO7", PU_CACHE);
|
||||
background = W_CachePatchName("KARTKREW", PU_CACHE);
|
||||
highres = true;
|
||||
}
|
||||
|
||||
V_DrawFill(0, 0, BASEVIDWIDTH, BASEVIDHEIGHT, 31);
|
||||
V_DrawFill(0, 0, BASEVIDWIDTH, BASEVIDHEIGHT, 120);
|
||||
|
||||
if (background)
|
||||
{
|
||||
|
@ -547,210 +324,12 @@ static void F_IntroDrawScene(void)
|
|||
else
|
||||
V_DrawScaledPatch(bgxoffs, 0, 0, background);
|
||||
}
|
||||
else if (intro_scenenum == 0) // STJr presents
|
||||
{
|
||||
// "Waaaaaaah" intro
|
||||
if (finalecount-TICRATE/2 < 4*TICRATE+23) {
|
||||
// aspect is FRACUNIT/2 for 4:3 (source) resolutions, smaller for 16:10 (SRB2) resolutions
|
||||
fixed_t aspect = (FRACUNIT + (FRACUNIT*4/3 - FRACUNIT*vid.width/vid.height)/2)>>1;
|
||||
fixed_t x,y;
|
||||
V_DrawFill(0, 0, BASEVIDWIDTH, BASEVIDHEIGHT, 2);
|
||||
if (finalecount < 30) { // Cry!
|
||||
if (finalecount < 4)
|
||||
S_StopMusic();
|
||||
if (finalecount == 4)
|
||||
S_ChangeMusicInternal("stjr", false);
|
||||
x = (BASEVIDWIDTH<<FRACBITS)/2 - FixedMul(334<<FRACBITS, aspect)/2;
|
||||
y = (BASEVIDHEIGHT<<FRACBITS)/2 - FixedMul(358<<FRACBITS, aspect)/2;
|
||||
V_DrawSciencePatch(x, y, 0, (patch = W_CachePatchName("WAHH1", PU_CACHE)), aspect);
|
||||
W_UnlockCachedPatch(patch);
|
||||
if (finalecount > 6) {
|
||||
V_DrawSciencePatch(x, y, 0, (patch = W_CachePatchName("WAHH2", PU_CACHE)), aspect);
|
||||
W_UnlockCachedPatch(patch);
|
||||
}
|
||||
if (finalecount > 10) {
|
||||
V_DrawSciencePatch(x, y, 0, (patch = W_CachePatchName("WAHH3", PU_CACHE)), aspect);
|
||||
W_UnlockCachedPatch(patch);
|
||||
}
|
||||
if (finalecount > 14) {
|
||||
V_DrawSciencePatch(x, y, 0, (patch = W_CachePatchName("WAHH4", PU_CACHE)), aspect);
|
||||
W_UnlockCachedPatch(patch);
|
||||
}
|
||||
}
|
||||
else if (finalecount-30 < 20) { // Big eggy
|
||||
background = W_CachePatchName("FEEDIN", PU_CACHE);
|
||||
x = (BASEVIDWIDTH<<FRACBITS)/2 - FixedMul(560<<FRACBITS, aspect)/2;
|
||||
y = (BASEVIDHEIGHT<<FRACBITS) - FixedMul(477<<FRACBITS, aspect);
|
||||
V_DrawSciencePatch(x, y, V_SNAPTOBOTTOM, background, aspect);
|
||||
}
|
||||
else if (finalecount-50 < 30) { // Zoom out
|
||||
fixed_t scale = FixedDiv(aspect, FixedDiv((finalecount-50)<<FRACBITS, (15<<FRACBITS))+FRACUNIT);
|
||||
background = W_CachePatchName("FEEDIN", PU_CACHE);
|
||||
x = (BASEVIDWIDTH<<FRACBITS)/2 - FixedMul(560<<FRACBITS, aspect)/2 + (FixedMul(560<<FRACBITS, aspect) - FixedMul(560<<FRACBITS, scale));
|
||||
y = (BASEVIDHEIGHT<<FRACBITS) - FixedMul(477<<FRACBITS, scale);
|
||||
V_DrawSciencePatch(x, y, V_SNAPTOBOTTOM, background, scale);
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
// Draw tiny eggy
|
||||
fixed_t scale = FixedMul(FRACUNIT/3, aspect);
|
||||
background = W_CachePatchName("FEEDIN", PU_CACHE);
|
||||
x = (BASEVIDWIDTH<<FRACBITS)/2 - FixedMul(560<<FRACBITS, aspect)/2 + (FixedMul(560<<FRACBITS, aspect) - FixedMul(560<<FRACBITS, scale));
|
||||
y = (BASEVIDHEIGHT<<FRACBITS) - FixedMul(477<<FRACBITS, scale);
|
||||
V_DrawSciencePatch(x, y, V_SNAPTOBOTTOM, background, scale);
|
||||
}
|
||||
|
||||
if (finalecount-84 < 58) { // Pure Fat is driving up!
|
||||
int ftime = (finalecount-84);
|
||||
x = (-189*FRACUNIT) + (FixedMul((6<<FRACBITS)+FRACUNIT/3, ftime<<FRACBITS) - FixedMul((6<<FRACBITS)+FRACUNIT/3, FixedDiv(FixedMul(ftime<<FRACBITS, ftime<<FRACBITS), 120<<FRACBITS)));
|
||||
y = (BASEVIDHEIGHT<<FRACBITS) - FixedMul(417<<FRACBITS, aspect);
|
||||
// Draw the body
|
||||
V_DrawSciencePatch(x, y, V_SNAPTOLEFT|V_SNAPTOBOTTOM, (patch = W_CachePatchName("PUREFAT1", PU_CACHE)), aspect);
|
||||
W_UnlockCachedPatch(patch);
|
||||
// Draw the door
|
||||
V_DrawSciencePatch(x+FixedMul(344<<FRACBITS, aspect), y+FixedMul(292<<FRACBITS, aspect), V_SNAPTOLEFT|V_SNAPTOBOTTOM, (patch = W_CachePatchName("PUREFAT2", PU_CACHE)), aspect);
|
||||
W_UnlockCachedPatch(patch);
|
||||
// Draw the wheel
|
||||
V_DrawSciencePatch(x+FixedMul(178<<FRACBITS, aspect), y+FixedMul(344<<FRACBITS, aspect), V_SNAPTOLEFT|V_SNAPTOBOTTOM, (patch = W_CachePatchName(va("TYRE%02u",(abs(finalecount-144)/3)%16), PU_CACHE)), aspect);
|
||||
W_UnlockCachedPatch(patch);
|
||||
// Draw the wheel cover
|
||||
V_DrawSciencePatch(x+FixedMul(88<<FRACBITS, aspect), y+FixedMul(238<<FRACBITS, aspect), V_SNAPTOLEFT|V_SNAPTOBOTTOM, (patch = W_CachePatchName("PUREFAT3", PU_CACHE)), aspect);
|
||||
W_UnlockCachedPatch(patch);
|
||||
} else { // Pure Fat has stopped!
|
||||
y = (BASEVIDHEIGHT<<FRACBITS) - FixedMul(417<<FRACBITS, aspect);
|
||||
// Draw the body
|
||||
V_DrawSciencePatch(0, y, V_SNAPTOLEFT|V_SNAPTOBOTTOM, (patch = W_CachePatchName("PUREFAT1", PU_CACHE)), aspect);
|
||||
W_UnlockCachedPatch(patch);
|
||||
// Draw the wheel
|
||||
V_DrawSciencePatch(FixedMul(178<<FRACBITS, aspect), y+FixedMul(344<<FRACBITS, aspect), V_SNAPTOLEFT|V_SNAPTOBOTTOM, (patch = W_CachePatchName("TYRE00", PU_CACHE)), aspect);
|
||||
W_UnlockCachedPatch(patch);
|
||||
// Draw the wheel cover
|
||||
V_DrawSciencePatch(FixedMul(88<<FRACBITS, aspect), y+FixedMul(238<<FRACBITS, aspect), V_SNAPTOLEFT|V_SNAPTOBOTTOM, (patch = W_CachePatchName("PUREFAT3", PU_CACHE)), aspect);
|
||||
W_UnlockCachedPatch(patch);
|
||||
// Draw the door
|
||||
if (finalecount-TICRATE/2 > 4*TICRATE) { // Door is being raised!
|
||||
int ftime = (finalecount-TICRATE/2-4*TICRATE);
|
||||
y -= FixedDiv((ftime*ftime)<<FRACBITS, 23<<FRACBITS);
|
||||
}
|
||||
V_DrawSciencePatch(FixedMul(344<<FRACBITS, aspect), y+FixedMul(292<<FRACBITS, aspect), V_SNAPTOLEFT|V_SNAPTOBOTTOM, (patch = W_CachePatchName("PUREFAT2", PU_CACHE)), aspect);
|
||||
W_UnlockCachedPatch(patch);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
V_DrawCreditString((160 - V_CreditStringWidth("SONIC TEAM JR")/2)<<FRACBITS, 80<<FRACBITS, 0, "SONIC TEAM JR");
|
||||
V_DrawCreditString((160 - V_CreditStringWidth("PRESENTS")/2)<<FRACBITS, 96<<FRACBITS, 0, "PRESENTS");
|
||||
}
|
||||
}
|
||||
else if (intro_scenenum == 10) // Sky Runner
|
||||
{
|
||||
if (timetonext > 5*TICRATE && timetonext < 6*TICRATE)
|
||||
{
|
||||
if (!(finalecount & 3))
|
||||
background = W_CachePatchName("BRITEGG1", PU_CACHE);
|
||||
else
|
||||
background = W_CachePatchName("DARKEGG1", PU_CACHE);
|
||||
|
||||
V_DrawScaledPatch(0, 0, 0, background);
|
||||
}
|
||||
else if (timetonext > 3*TICRATE && timetonext < 4*TICRATE)
|
||||
{
|
||||
if (!(finalecount & 3))
|
||||
background = W_CachePatchName("BRITEGG2", PU_CACHE);
|
||||
else
|
||||
background = W_CachePatchName("DARKEGG2", PU_CACHE);
|
||||
|
||||
V_DrawScaledPatch(0, 0, 0, background);
|
||||
}
|
||||
else if (timetonext > 1*TICRATE && timetonext < 2*TICRATE)
|
||||
{
|
||||
if (!(finalecount & 3))
|
||||
background = W_CachePatchName("BRITEGG3", PU_CACHE);
|
||||
else
|
||||
background = W_CachePatchName("DARKEGG3", PU_CACHE);
|
||||
|
||||
V_DrawScaledPatch(0, 0, 0, background);
|
||||
}
|
||||
else
|
||||
{
|
||||
F_SkyScroll(80*4);
|
||||
if (timetonext == 6)
|
||||
{
|
||||
stoptimer = finalecount;
|
||||
animtimer = finalecount % 16;
|
||||
}
|
||||
else if (timetonext >= 0 && timetonext < 6)
|
||||
{
|
||||
animtimer = stoptimer;
|
||||
deplete -= 32;
|
||||
}
|
||||
else
|
||||
{
|
||||
animtimer = finalecount % 16;
|
||||
deplete = 160;
|
||||
}
|
||||
|
||||
if (finalecount & 1)
|
||||
{
|
||||
V_DrawScaledPatch(deplete, 8, 0, (patch = W_CachePatchName("RUN2", PU_CACHE)));
|
||||
W_UnlockCachedPatch(patch);
|
||||
V_DrawScaledPatch(deplete, 72, 0, (patch = W_CachePatchName("PEELOUT2", PU_CACHE)));
|
||||
W_UnlockCachedPatch(patch);
|
||||
}
|
||||
else
|
||||
{
|
||||
V_DrawScaledPatch(deplete, 8, 0, (patch = W_CachePatchName("RUN1", PU_CACHE)));
|
||||
W_UnlockCachedPatch(patch);
|
||||
V_DrawScaledPatch(deplete, 72, 0, (patch = W_CachePatchName("PEELOUT1", PU_CACHE)));
|
||||
W_UnlockCachedPatch(patch);
|
||||
}
|
||||
|
||||
{ // Fixing up the black box rendering to look right in resolutions <16:10 -Red
|
||||
INT32 y = 112;
|
||||
INT32 h = BASEVIDHEIGHT - 112;
|
||||
if (vid.height != BASEVIDHEIGHT * vid.dupy)
|
||||
{
|
||||
INT32 adjust = (vid.height/vid.dupy)-200;
|
||||
adjust /= 2;
|
||||
y += adjust;
|
||||
h += adjust;
|
||||
V_DrawFill(0, 0, BASEVIDWIDTH, adjust, 31); // Render a black bar on top so it keeps the "cinematic" windowboxing... I just prefer it this way. -Red
|
||||
}
|
||||
V_DrawFill(0, y, BASEVIDWIDTH, h, 31);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
W_UnlockCachedPatch(background);
|
||||
|
||||
if (intro_scenenum == 4) // The asteroid SPINS!
|
||||
{
|
||||
if (roidtics >= 0)
|
||||
{
|
||||
V_DrawScaledPatch(roidtics, 24, 0,
|
||||
(patch = W_CachePatchName(va("ROID00%.2d", intro_curtime%35), PU_CACHE)));
|
||||
W_UnlockCachedPatch(patch);
|
||||
}
|
||||
}
|
||||
|
||||
if (animtimer)
|
||||
animtimer--;
|
||||
|
||||
if (intro_scenenum == 7 && intro_curtime > 7*TICRATE)
|
||||
{
|
||||
patch_t *sgrass;
|
||||
|
||||
if (intro_curtime >= 7*TICRATE + ((TICRATE/7)*2))
|
||||
sgrass = W_CachePatchName("SGRASS4", PU_CACHE);
|
||||
else if (intro_curtime >= 7*TICRATE + (TICRATE/7))
|
||||
sgrass = W_CachePatchName("SGRASS3", PU_CACHE);
|
||||
else
|
||||
sgrass = W_CachePatchName("SGRASS2", PU_CACHE);
|
||||
V_DrawScaledPatch(123, 4, 0, sgrass);
|
||||
|
||||
W_UnlockCachedPatch(sgrass);
|
||||
}
|
||||
|
||||
V_DrawString(cx, cy, 0, cutscene_disptext);
|
||||
}
|
||||
|
||||
|
@ -771,31 +350,6 @@ void F_IntroDrawer(void)
|
|||
F_RunWipe(99,true);
|
||||
}
|
||||
|
||||
S_ChangeMusicInternal("read_m", false);
|
||||
}
|
||||
else if (intro_scenenum == 3)
|
||||
roidtics = BASEVIDWIDTH - 64;
|
||||
else if (intro_scenenum == 10)
|
||||
{
|
||||
// The only fade to white in the entire damn game.
|
||||
if (rendermode != render_none)
|
||||
{
|
||||
F_WipeStartScreen();
|
||||
V_DrawFill(0, 0, BASEVIDWIDTH, BASEVIDHEIGHT, 0);
|
||||
F_WipeEndScreen();
|
||||
F_RunWipe(99,true);
|
||||
}
|
||||
}
|
||||
else if (intro_scenenum == 15)
|
||||
{
|
||||
if (rendermode != render_none)
|
||||
{
|
||||
F_WipeStartScreen();
|
||||
V_DrawFill(0, 0, BASEVIDWIDTH, BASEVIDHEIGHT, 31);
|
||||
F_WipeEndScreen();
|
||||
F_RunWipe(99,true);
|
||||
}
|
||||
|
||||
// Stay on black for a bit. =)
|
||||
{
|
||||
tic_t quittime;
|
||||
|
@ -812,6 +366,7 @@ void F_IntroDrawer(void)
|
|||
D_StartTitle();
|
||||
return;
|
||||
}
|
||||
|
||||
F_NewCutscene(introtext[++intro_scenenum]);
|
||||
timetonext = introscenetime[intro_scenenum];
|
||||
|
||||
|
@ -822,62 +377,6 @@ void F_IntroDrawer(void)
|
|||
|
||||
intro_curtime = introscenetime[intro_scenenum] - timetonext;
|
||||
|
||||
if (rendermode != render_none)
|
||||
{
|
||||
if (intro_scenenum == 5 && intro_curtime == 5*TICRATE)
|
||||
{
|
||||
patch_t *radar = W_CachePatchName("RADAR", PU_CACHE);
|
||||
|
||||
F_WipeStartScreen();
|
||||
V_DrawFill(0, 0, BASEVIDWIDTH, BASEVIDHEIGHT, 31);
|
||||
V_DrawScaledPatch(0, 0, 0, radar);
|
||||
W_UnlockCachedPatch(radar);
|
||||
V_DrawString(8, 128, 0, cutscene_disptext);
|
||||
|
||||
F_WipeEndScreen();
|
||||
F_RunWipe(99,true);
|
||||
}
|
||||
else if (intro_scenenum == 7 && intro_curtime == 6*TICRATE) // Force a wipe here
|
||||
{
|
||||
patch_t *grass = W_CachePatchName("SGRASS5", PU_CACHE);
|
||||
|
||||
F_WipeStartScreen();
|
||||
V_DrawFill(0, 0, BASEVIDWIDTH, BASEVIDHEIGHT, 31);
|
||||
V_DrawScaledPatch(0, 0, 0, grass);
|
||||
W_UnlockCachedPatch(grass);
|
||||
V_DrawString(8, 128, 0, cutscene_disptext);
|
||||
|
||||
F_WipeEndScreen();
|
||||
F_RunWipe(99,true);
|
||||
}
|
||||
else if (intro_scenenum == 12 && intro_curtime == 7*TICRATE)
|
||||
{
|
||||
patch_t *confront = W_CachePatchName("CONFRONT", PU_CACHE);
|
||||
|
||||
F_WipeStartScreen();
|
||||
V_DrawFill(0, 0, BASEVIDWIDTH, BASEVIDHEIGHT, 31);
|
||||
V_DrawSmallScaledPatch(0, 0, 0, confront);
|
||||
W_UnlockCachedPatch(confront);
|
||||
V_DrawString(8, 128, 0, cutscene_disptext);
|
||||
|
||||
F_WipeEndScreen();
|
||||
F_RunWipe(99,true);
|
||||
}
|
||||
if (intro_scenenum == 14 && intro_curtime == 7*TICRATE)
|
||||
{
|
||||
patch_t *sdo = W_CachePatchName("SONICDO2", PU_CACHE);
|
||||
|
||||
F_WipeStartScreen();
|
||||
V_DrawFill(0, 0, BASEVIDWIDTH, BASEVIDHEIGHT, 31);
|
||||
V_DrawSmallScaledPatch(0, 0, 0, sdo);
|
||||
W_UnlockCachedPatch(sdo);
|
||||
V_DrawString(224, 8, 0, cutscene_disptext);
|
||||
|
||||
F_WipeEndScreen();
|
||||
F_RunWipe(99,true);
|
||||
}
|
||||
}
|
||||
|
||||
F_IntroDrawScene();
|
||||
}
|
||||
|
||||
|
|
|
@ -3128,7 +3128,7 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da
|
|||
K_SpinPlayer(player, source);
|
||||
damage = player->mo->health - 1;
|
||||
P_RingDamage(player, inflictor, source, damage);
|
||||
if (inflictor->type == MT_GREENITEM || inflictor->type == MT_REDITEM || inflictor->type == MT_REDITEMDUD)
|
||||
if (inflictor && (inflictor->type == MT_GREENITEM || inflictor->type == MT_REDITEM || inflictor->type == MT_REDITEMDUD))
|
||||
P_PlayerRingBurst(player, 5);
|
||||
player->mo->momx = player->mo->momy = 0;
|
||||
if (P_IsLocalPlayer(player))
|
||||
|
|
|
@ -501,6 +501,7 @@ sfxinfo_t S_sfx[NUMSFX] =
|
|||
{"clash", false, 64, 8, -1, NULL, 0, -1, -1, LUMPERROR},
|
||||
{"tossed", false,150, 8, -1, NULL, 0, -1, -1, LUMPERROR},
|
||||
{"shelit", false, 64, 16, -1, NULL, 0, -1, -1, LUMPERROR},
|
||||
{"vroom", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
|
||||
|
||||
// SRB2kart - Skin sounds
|
||||
{"kwin", false, 64, 0, -1, NULL, 0, SKSWIN, -1, LUMPERROR},
|
||||
|
|
|
@ -572,6 +572,7 @@ typedef enum
|
|||
sfx_clash,
|
||||
sfx_tossed,
|
||||
sfx_shelit,
|
||||
sfx_vroom,
|
||||
|
||||
sfx_kwin,
|
||||
sfx_klose,
|
||||
|
|
Loading…
Reference in a new issue