Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2Internal.git into shield-actions

This commit is contained in:
toasterbabe 2016-10-23 14:47:37 +01:00
commit c18c014bef
15 changed files with 50 additions and 770 deletions

View file

@ -837,6 +837,18 @@ static void IdentifyVersion(void)
I_Error("File %s has been modified with non-music lumps",musicfile);
}
#endif
#if 1 // This section can be deleted when music_new is merged with music.dta
{
const char *musicfile = "music_new.dta";
const char *musicpath = va(pandf,srb2waddir,musicfile);
int ms = W_VerifyNMUSlumps(musicpath); // Don't forget the music!
if (ms == 1)
D_AddFile(musicpath);
else if (ms == 0)
I_Error("File %s has been modified with non-music lumps",musicfile);
}
#endif
}
/* ======================================================================== */

View file

@ -6089,70 +6089,6 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
"S_ROCKCRUMBLEO",
"S_ROCKCRUMBLEP",
"S_SRB1_CRAWLA1",
"S_SRB1_CRAWLA2",
"S_SRB1_CRAWLA3",
"S_SRB1_CRAWLA4",
"S_SRB1_BAT1",
"S_SRB1_BAT2",
"S_SRB1_BAT3",
"S_SRB1_BAT4",
"S_SRB1_ROBOFISH1",
"S_SRB1_ROBOFISH2",
"S_SRB1_ROBOFISH3",
"S_SRB1_VOLCANOGUY1",
"S_SRB1_VOLCANOGUY2",
"S_SRB1_HOPPY1",
"S_SRB1_HOPPY2",
"S_SRB1_HOPPYWATER1",
"S_SRB1_HOPPYWATER2",
"S_SRB1_HOPPYSKYLAB1",
"S_SRB1_MMZFLYING1",
"S_SRB1_MMZFLYING2",
"S_SRB1_MMZFLYING3",
"S_SRB1_MMZFLYING4",
"S_SRB1_MMZFLYING5",
"S_SRB1_UFO1",
"S_SRB1_UFO2",
"S_SRB1_GRAYBOT1",
"S_SRB1_GRAYBOT2",
"S_SRB1_GRAYBOT3",
"S_SRB1_GRAYBOT4",
"S_SRB1_GRAYBOT5",
"S_SRB1_GRAYBOT6",
"S_SRB1_ROBOTOPOLIS1",
"S_SRB1_ROBOTOPOLIS2",
"S_SRB1_RBZBUZZ1",
"S_SRB1_RBZBUZZ2",
"S_SRB1_RBZSPIKES1",
"S_SRB1_RBZSPIKES2",
"S_SRB1_METALSONIC1",
"S_SRB1_METALSONIC2",
"S_SRB1_METALSONIC3",
"S_SRB1_GOLDBOT1",
"S_SRB1_GOLDBOT2",
"S_SRB1_GOLDBOT3",
"S_SRB1_GOLDBOT4",
"S_SRB1_GOLDBOT5",
"S_SRB1_GOLDBOT6",
"S_SRB1_GENREX1",
"S_SRB1_GENREX2",
#ifdef SEENAMES
"S_NAMECHECK",
#endif
@ -6676,22 +6612,6 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
"MT_ROCKCRUMBLE15",
"MT_ROCKCRUMBLE16",
"MT_SRB1_CRAWLA",
"MT_SRB1_BAT",
"MT_SRB1_ROBOFISH",
"MT_SRB1_VOLCANOGUY",
"MT_SRB1_HOPPY",
"MT_SRB1_HOPPYWATER",
"MT_SRB1_HOPPYSKYLAB",
"MT_SRB1_MMZFLYING",
"MT_SRB1_UFO",
"MT_SRB1_GRAYBOT",
"MT_SRB1_ROBOTOPOLIS",
"MT_SRB1_RBZBUZZ",
"MT_SRB1_RBZSPIKES",
"MT_SRB1_METALSONIC",
"MT_SRB1_GOLDBOT",
"MT_SRB1_GENREX",
#ifdef SEENAMES
"MT_NAMECHECK",
#endif

View file

@ -559,7 +559,7 @@ static void F_IntroDrawScene(void)
if (finalecount < 4)
S_StopMusic();
if (finalecount == 4)
S_ChangeMusicInternal("stjr", false);
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);
@ -771,7 +771,7 @@ void F_IntroDrawer(void)
F_RunWipe(99,true);
}
S_ChangeMusicInternal("read_m", false);
S_ChangeMusicInternal("_intro", false);
}
else if (intro_scenenum == 3)
roidtics = BASEVIDWIDTH - 64;
@ -1130,7 +1130,7 @@ void F_StartCredits(void)
CON_ClearHUD();
S_StopMusic();
S_ChangeMusicInternal("credit", false);
S_ChangeMusicInternal("_creds", false);
finalecount = 0;
animtimer = 0;
@ -1427,7 +1427,7 @@ void F_StartTitleScreen(void)
// IWAD dependent stuff.
S_ChangeMusicInternal("titles", looptitle);
S_ChangeMusicInternal("_title", looptitle);
animtimer = 0;
@ -1593,7 +1593,7 @@ void F_StartContinue(void)
// In case menus are still up?!!
M_ClearMenus(true);
S_ChangeMusicInternal("contsc", false);
S_ChangeMusicInternal("_conti", false);
S_StopSounds();
timetonext = TICRATE*11;

View file

@ -482,23 +482,6 @@ light_t *t_lspr[NUMSPRITES] =
&lspr[NOLIGHT], // SPR_GWLG
&lspr[NOLIGHT], // SPR_GWLR
// SRB1 Sprites
&lspr[NOLIGHT], // SPR_SRBA
&lspr[NOLIGHT], // SPR_SRBB
&lspr[NOLIGHT], // SPR_SRBC
&lspr[NOLIGHT], // SPR_SRBD
&lspr[NOLIGHT], // SPR_SRBE
&lspr[NOLIGHT], // SPR_SRBF
&lspr[NOLIGHT], // SPR_SRBG
&lspr[NOLIGHT], // SPR_SRBH
&lspr[NOLIGHT], // SPR_SRBI
&lspr[NOLIGHT], // SPR_SRBJ
&lspr[NOLIGHT], // SPR_SRBK
&lspr[NOLIGHT], // SPR_SRBL
&lspr[NOLIGHT], // SPR_SRBM
&lspr[NOLIGHT], // SPR_SRBN
&lspr[NOLIGHT], // SPR_SRBO
// Free slots
&lspr[NOLIGHT],
&lspr[NOLIGHT],

View file

@ -368,23 +368,6 @@ char sprnames[NUMSPRITES + 1][5] =
// Gravity Well Objects
"GWLG",
"GWLR",
// SRB1 Sprites
"SRBA",
"SRBB",
"SRBC",
"SRBD",
"SRBE",
"SRBF",
"SRBG",
"SRBH",
"SRBI",
"SRBJ",
"SRBK",
"SRBL",
"SRBM",
"SRBN",
"SRBO",
};
char spr2names[NUMPLAYERSPRITES][5] =
@ -2871,69 +2854,6 @@ state_t states[NUMSTATES] =
{SPR_ROIO, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 4, 2, S_ROCKCRUMBLEO}, // S_ROCKCRUMBLEO
{SPR_ROIP, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 4, 2, S_ROCKCRUMBLEP}, // S_ROCKCRUMBLEP
{SPR_SRBA, 0, 5, {A_Look}, 0, 0, S_SRB1_CRAWLA1}, // S_SRB1_CRAWLA1
{SPR_SRBA, 0, 3, {A_Chase}, 0, 0, S_SRB1_CRAWLA3}, // S_SRB1_CRAWLA2
{SPR_SRBA, 1, 3, {A_Chase}, 0, 0, S_SRB1_CRAWLA4}, // S_SRB1_CRAWLA3
{SPR_SRBA, 2, 3, {A_Chase}, 0, 0, S_SRB1_CRAWLA2}, // S_SRB1_CRAWLA4
{SPR_SRBB, 0, 2, {A_Look}, 0, 0, S_SRB1_BAT2}, // S_SRB1_BAT1
{SPR_SRBB, 1, 2, {A_Look}, 0, 0, S_SRB1_BAT1}, // S_SRB1_BAT2
{SPR_SRBB, 0, 2, {A_BuzzFly}, 0, 0, S_SRB1_BAT4}, // S_SRB1_BAT3
{SPR_SRBB, 1, 2, {A_BuzzFly}, 0, 0, S_SRB1_BAT3}, // S_SRB1_BAT4
{SPR_SRBC, 0, 2, {A_Look}, 0, 0, S_SRB1_ROBOFISH1}, // S_SRB1_ROBOFISH1
{SPR_SRBC, 1, 2, {A_BuzzFly}, 0, 0, S_SRB1_ROBOFISH3}, // S_SRB1_ROBOFISH2
{SPR_SRBC, 0, 2, {A_BuzzFly}, 0, 0, S_SRB1_ROBOFISH2}, // S_SRB1_ROBOFISH3
{SPR_SRBD, 0, 2, {A_Look}, 0, 0, S_SRB1_VOLCANOGUY1}, // S_SRB1_VOLCANOGUY1
{SPR_SRBD, 0, 2, {A_BuzzFly}, 0, 0, S_SRB1_VOLCANOGUY2}, // S_SRB1_VOLCANOGUY2
{SPR_SRBE, 0, 2, {A_BunnyHop}, 7, 2, S_SRB1_HOPPY2}, // S_SRB1_HOPPY1
{SPR_SRBE, 1, 2, {A_BunnyHop}, 7, -2, S_SRB1_HOPPY1}, // S_SRB1_HOPPY2
{SPR_SRBE, 0, 2, {A_BunnyHop}, 4, 2, S_SRB1_HOPPYWATER2}, // S_SRB1_HOPPYWATER1
{SPR_SRBE, 1, 2, {A_BunnyHop}, 4, -2, S_SRB1_HOPPYWATER1}, // S_SRB1_HOPPYWATER2
{SPR_SRBF, 0, 2, {A_BunnyHop}, 7, 0, S_SRB1_HOPPYSKYLAB1}, // S_SRB1_HOPPYSKYLAB1
{SPR_SRBG, 0, 16, {A_MoveAbsolute}, 0, 5, S_SRB1_MMZFLYING2}, // S_SRB1_MMZFLYING1
{SPR_SRBG, 0, 16, {A_MoveAbsolute}, 180, 5, S_SRB1_MMZFLYING3}, // S_SRB1_MMZFLYING2
{SPR_SRBG, 0, 1, {A_MoveAbsolute}, 0, 5, S_SRB1_MMZFLYING4}, // S_SRB1_MMZFLYING3
{SPR_SRBG, 0, 7, {A_MoveAbsolute}, 0, 5, S_SRB1_MMZFLYING5}, // S_SRB1_MMZFLYING4
{SPR_SRBG, 0, 8, {A_MoveAbsolute}, 180, 5, S_SRB1_MMZFLYING1}, // S_SRB1_MMZFLYING5
{SPR_SRBH, 0, 16, {A_MoveAbsolute}, 180, 5, S_SRB1_UFO2}, // S_SRB1_UFO1
{SPR_SRBH, 0, 16, {A_MoveAbsolute}, 0, 5, S_SRB1_UFO1}, // S_SRB1_UFO2
{SPR_SRBI, 0, 4, {A_MoveAbsolute}, 0, 7, S_SRB1_GRAYBOT2}, // S_SRB1_GRAYBOT1
{SPR_SRBI, 1, 4, {A_MoveAbsolute}, 0, 7, S_SRB1_GRAYBOT3}, // S_SRB1_GRAYBOT2
{SPR_SRBI, 0, 4, {A_MoveAbsolute}, 0, 7, S_SRB1_GRAYBOT4}, // S_SRB1_GRAYBOT3
{SPR_SRBI, 1, 4, {A_MoveAbsolute}, 180, 7, S_SRB1_GRAYBOT5}, // S_SRB1_GRAYBOT4
{SPR_SRBI, 0, 4, {A_MoveAbsolute}, 180, 7, S_SRB1_GRAYBOT6}, // S_SRB1_GRAYBOT5
{SPR_SRBI, 1, 4, {A_MoveAbsolute}, 180, 7, S_SRB1_GRAYBOT1}, // S_SRB1_GRAYBOT6
{SPR_SRBJ, 0, 8, {A_MoveAbsolute}, 0, 5, S_SRB1_ROBOTOPOLIS2}, // S_SRB1_ROBOTOPOLIS1
{SPR_SRBJ, 1, 8, {A_MoveAbsolute}, 0, -5, S_SRB1_ROBOTOPOLIS1}, // S_SRB1_ROBOTOPOLIS2
{SPR_SRBK, 0, 8, {A_MoveAbsolute}, 0, 5, S_SRB1_RBZBUZZ2}, // S_SRB1_RBZBUZZ1
{SPR_SRBK, 1, 8, {A_MoveAbsolute}, 0, -5, S_SRB1_RBZBUZZ1}, // S_SRB1_RBZBUZZ2
{SPR_SRBL, 0, 35, {A_ZThrust}, 4, (1<<16)+1, S_SRB1_RBZSPIKES2}, // S_SRB1_RBZSPIKES1
{SPR_SRBL, 0, 35, {A_ZThrust}, -4, (1<<16)+1, S_SRB1_RBZSPIKES1}, // S_SRB1_RBZSPIKES2
{SPR_SRBM, 0, 4, {NULL}, 0, 0, S_SRB1_METALSONIC2}, // S_SRB1_METALSONIC1
{SPR_SRBM, 1, 4, {NULL}, 0, 0, S_SRB1_METALSONIC3}, // S_SRB1_METALSONIC2
{SPR_SRBM, 2, 4, {NULL}, 0, 0, S_SRB1_METALSONIC1}, // S_SRB1_METALSONIC3
{SPR_SRBN, 0, 2, {A_MoveAbsolute}, 0, 7, S_SRB1_GOLDBOT2}, // S_SRB1_GOLDBOT1
{SPR_SRBN, 1, 2, {A_MoveAbsolute}, 0, 7, S_SRB1_GOLDBOT3}, // S_SRB1_GOLDBOT2
{SPR_SRBN, 0, 2, {A_MoveAbsolute}, 0, 7, S_SRB1_GOLDBOT4}, // S_SRB1_GOLDBOT3
{SPR_SRBN, 1, 2, {A_MoveAbsolute}, 180, 7, S_SRB1_GOLDBOT5}, // S_SRB1_GOLDBOT4
{SPR_SRBN, 0, 2, {A_MoveAbsolute}, 180, 7, S_SRB1_GOLDBOT6}, // S_SRB1_GOLDBOT5
{SPR_SRBN, 1, 2, {A_MoveAbsolute}, 180, 7, S_SRB1_GOLDBOT1}, // S_SRB1_GOLDBOT6
{SPR_SRBO, 0, 2, {A_Look}, 0, 0, S_SRB1_GENREX1}, // S_SRB1_GENREX1
{SPR_SRBO, 0, 2, {A_BuzzFly}, 0, 0, S_SRB1_GENREX2}, // S_SRB1_GENREX2
#ifdef SEENAMES
{SPR_NULL, 0, 1, {NULL}, 0, 0, S_NULL}, // S_NAMECHECK
#endif
@ -14400,438 +14320,6 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate
},
{ // MT_SRB1_CRAWLA
4000, // doomednum
S_SRB1_CRAWLA1, // spawnstate
1, // spawnhealth
S_SRB1_CRAWLA2, // seestate
sfx_None, // seesound
32, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
200, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_XPLD1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
3, // speed
20*FRACUNIT, // radius
40*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL|MF_SHOOTABLE|MF_ENEMY, // flags
S_NULL // raisestate
},
{ // MT_SRB1_BAT
4001, // doomednum
S_SRB1_BAT1, // spawnstate
1, // spawnhealth
S_SRB1_BAT3, // seestate
sfx_None, // seesound
2, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
3072, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_XPLD1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
4*FRACUNIT, // speed
17*FRACUNIT, // radius
40*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL|MF_SHOOTABLE|MF_ENEMY|MF_NOGRAVITY|MF_SLIDEME, // flags
S_NULL // raisestate
},
{ // MT_SRB1_ROBOFISH
4002, // doomednum
S_SRB1_ROBOFISH1, // spawnstate
1, // spawnhealth
S_SRB1_ROBOFISH2, // seestate
sfx_None, // seesound
2, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
3072, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_XPLD1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
4*FRACUNIT, // speed
22*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL|MF_SHOOTABLE|MF_ENEMY|MF_NOGRAVITY|MF_SLIDEME, // flags
S_NULL // raisestate
},
{ // MT_SRB1_VOLCANOGUY
4003, // doomednum
S_SRB1_VOLCANOGUY1, // spawnstate
1, // spawnhealth
S_SRB1_VOLCANOGUY2, // seestate
sfx_None, // seesound
2, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
3072, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_XPLD1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
4*FRACUNIT, // speed
20*FRACUNIT, // radius
40*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL|MF_SHOOTABLE|MF_ENEMY|MF_NOGRAVITY|MF_SLIDEME, // flags
S_NULL // raisestate
},
{ // MT_SRB1_HOPPY
4004, // doomednum
S_SRB1_HOPPY1, // spawnstate
1, // spawnhealth
S_SRB1_HOPPY1, // seestate
sfx_None, // seesound
2, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
3072, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_XPLD1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
FRACUNIT, // speed
20*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL|MF_SHOOTABLE|MF_ENEMY, // flags
S_NULL // raisestate
},
{ // MT_SRB1_HOPPYWATER
4005, // doomednum
S_SRB1_HOPPYWATER1, // spawnstate
1, // spawnhealth
S_SRB1_HOPPYWATER1, // seestate
sfx_None, // seesound
2, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
3072, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_XPLD1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
FRACUNIT, // speed
20*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL|MF_SHOOTABLE|MF_ENEMY, // flags
S_NULL // raisestate
},
{ // MT_SRB1_HOPPYSKYLAB
4006, // doomednum
S_SRB1_HOPPYSKYLAB1, // spawnstate
1, // spawnhealth
S_SRB1_HOPPYSKYLAB1, // seestate
sfx_None, // seesound
2, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
3072, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_XPLD1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
FRACUNIT, // speed
10*FRACUNIT, // radius
34*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL|MF_SHOOTABLE|MF_ENEMY, // flags
S_NULL // raisestate
},
{ // MT_SRB1_MMZFLYING
4007, // doomednum
S_SRB1_MMZFLYING1, // spawnstate
1, // spawnhealth
S_SRB1_MMZFLYING1, // seestate
sfx_None, // seesound
32, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
200, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_XPLD1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
FRACUNIT, // speed
24*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL|MF_SHOOTABLE|MF_ENEMY|MF_NOGRAVITY|MF_FLOAT, // flags
S_NULL // raisestate
},
{ // MT_SRB1_UFO
4008, // doomednum
S_SRB1_UFO1, // spawnstate
1, // spawnhealth
S_SRB1_UFO1, // seestate
sfx_None, // seesound
32, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
200, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_XPLD1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
3, // speed
24*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL|MF_SHOOTABLE|MF_ENEMY|MF_NOGRAVITY|MF_FLOAT|MF_SPAWNCEILING, // flags
S_NULL // raisestate
},
{ // MT_SRB1_GRAYBOT
4009, // doomednum
S_SRB1_GRAYBOT1,// spawnstate
1, // spawnhealth
S_SRB1_GRAYBOT1,// seestate
sfx_None, // seesound
32, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
200, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_XPLD1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
3, // speed
21*FRACUNIT, // radius
69*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL|MF_SHOOTABLE|MF_ENEMY|MF_NOGRAVITY|MF_FLOAT, // flags
S_NULL // raisestate
},
{ // MT_SRB1_ROBOTOPOLIS
4010, // doomednum
S_SRB1_ROBOTOPOLIS1, // spawnstate
1, // spawnhealth
S_SRB1_ROBOTOPOLIS1, // seestate
sfx_None, // seesound
32, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
200, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_XPLD1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
3, // speed
36*FRACUNIT, // radius
62*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL|MF_SHOOTABLE|MF_ENEMY|MF_NOGRAVITY|MF_FLOAT, // flags
S_NULL // raisestate
},
{ // MT_SRB1_RBZBUZZ
4011, // doomednum
S_SRB1_RBZBUZZ1,// spawnstate
1, // spawnhealth
S_SRB1_RBZBUZZ1,// seestate
sfx_None, // seesound
32, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
200, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_XPLD1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
3, // speed
44*FRACUNIT, // radius
45*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL|MF_SHOOTABLE|MF_ENEMY|MF_NOGRAVITY|MF_FLOAT, // flags
S_NULL // raisestate
},
{ // MT_SRB1_RBZSPIKES
4012, // doomednum
S_SRB1_RBZSPIKES1, // spawnstate
1, // spawnhealth
S_SRB1_RBZSPIKES1, // seestate
sfx_None, // seesound
32, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
200, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_XPLD1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
3, // speed
10*FRACUNIT, // radius
53*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL|MF_SOLID|MF_ENEMY|MF_NOGRAVITY|MF_FLOAT, // flags
S_NULL // raisestate
},
{ // MT_SRB1_METALSONIC
4013, // doomednum
S_SRB1_METALSONIC1, // spawnstate
1000, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
0, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_NULL, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
21*FRACUNIT, // speed
16*FRACUNIT, // radius
40*FRACUNIT, // height
0, // display offset
100, // mass
1, // damage
sfx_None, // activesound
MF_SLIDEME|MF_SOLID|MF_PUSHABLE, // flags
S_NULL // raisestate
},
{ // MT_SRB1_GOLDBOT
4014, // doomednum
S_SRB1_GOLDBOT1,// spawnstate
1, // spawnhealth
S_SRB1_GOLDBOT1,// seestate
sfx_None, // seesound
32, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
200, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_XPLD1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
3, // speed
21*FRACUNIT, // radius
69*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL|MF_SHOOTABLE|MF_ENEMY|MF_NOGRAVITY|MF_FLOAT, // flags
S_NULL // raisestate
},
{ // MT_SRB1_GENREX
4015, // doomednum
S_SRB1_GENREX1, // spawnstate
1, // spawnhealth
S_SRB1_GENREX2, // seestate
sfx_None, // seesound
2, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
3072, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_XPLD1, // deathstate
S_NULL, // xdeathstate
sfx_pop, // deathsound
4*FRACUNIT, // speed
17*FRACUNIT, // radius
40*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL|MF_SHOOTABLE|MF_ENEMY|MF_NOGRAVITY|MF_SLIDEME, // flags
S_NULL // raisestate
},
#ifdef SEENAMES
{ // MT_NAMECHECK
-1, // doomednum

View file

@ -564,23 +564,6 @@ typedef enum sprite
SPR_GWLG,
SPR_GWLR,
// SRB1 Sprites
SPR_SRBA,
SPR_SRBB,
SPR_SRBC,
SPR_SRBD,
SPR_SRBE,
SPR_SRBF,
SPR_SRBG,
SPR_SRBH,
SPR_SRBI,
SPR_SRBJ,
SPR_SRBK,
SPR_SRBL,
SPR_SRBM,
SPR_SRBN,
SPR_SRBO,
SPR_FIRSTFREESLOT,
SPR_LASTFREESLOT = SPR_FIRSTFREESLOT + NUMSPRITEFREESLOTS - 1,
NUMSPRITES
@ -3003,70 +2986,6 @@ typedef enum state
S_ROCKCRUMBLEO,
S_ROCKCRUMBLEP,
S_SRB1_CRAWLA1,
S_SRB1_CRAWLA2,
S_SRB1_CRAWLA3,
S_SRB1_CRAWLA4,
S_SRB1_BAT1,
S_SRB1_BAT2,
S_SRB1_BAT3,
S_SRB1_BAT4,
S_SRB1_ROBOFISH1,
S_SRB1_ROBOFISH2,
S_SRB1_ROBOFISH3,
S_SRB1_VOLCANOGUY1,
S_SRB1_VOLCANOGUY2,
S_SRB1_HOPPY1,
S_SRB1_HOPPY2,
S_SRB1_HOPPYWATER1,
S_SRB1_HOPPYWATER2,
S_SRB1_HOPPYSKYLAB1,
S_SRB1_MMZFLYING1,
S_SRB1_MMZFLYING2,
S_SRB1_MMZFLYING3,
S_SRB1_MMZFLYING4,
S_SRB1_MMZFLYING5,
S_SRB1_UFO1,
S_SRB1_UFO2,
S_SRB1_GRAYBOT1,
S_SRB1_GRAYBOT2,
S_SRB1_GRAYBOT3,
S_SRB1_GRAYBOT4,
S_SRB1_GRAYBOT5,
S_SRB1_GRAYBOT6,
S_SRB1_ROBOTOPOLIS1,
S_SRB1_ROBOTOPOLIS2,
S_SRB1_RBZBUZZ1,
S_SRB1_RBZBUZZ2,
S_SRB1_RBZSPIKES1,
S_SRB1_RBZSPIKES2,
S_SRB1_METALSONIC1,
S_SRB1_METALSONIC2,
S_SRB1_METALSONIC3,
S_SRB1_GOLDBOT1,
S_SRB1_GOLDBOT2,
S_SRB1_GOLDBOT3,
S_SRB1_GOLDBOT4,
S_SRB1_GOLDBOT5,
S_SRB1_GOLDBOT6,
S_SRB1_GENREX1,
S_SRB1_GENREX2,
#ifdef SEENAMES
S_NAMECHECK,
#endif
@ -3609,22 +3528,6 @@ typedef enum mobj_type
MT_ROCKCRUMBLE15,
MT_ROCKCRUMBLE16,
MT_SRB1_CRAWLA,
MT_SRB1_BAT,
MT_SRB1_ROBOFISH,
MT_SRB1_VOLCANOGUY,
MT_SRB1_HOPPY,
MT_SRB1_HOPPYWATER,
MT_SRB1_HOPPYSKYLAB,
MT_SRB1_MMZFLYING,
MT_SRB1_UFO,
MT_SRB1_GRAYBOT,
MT_SRB1_ROBOTOPOLIS,
MT_SRB1_RBZBUZZ,
MT_SRB1_RBZSPIKES,
MT_SRB1_METALSONIC,
MT_SRB1_GOLDBOT,
MT_SRB1_GENREX,
#ifdef SEENAMES
MT_NAMECHECK,
#endif

View file

@ -369,6 +369,8 @@ static int libd_drawScaled(lua_State *L)
x = luaL_checkinteger(L, 1);
y = luaL_checkinteger(L, 2);
scale = luaL_checkinteger(L, 3);
if (scale < 0)
return luaL_error(L, "negative scale");
patch = *((patch_t **)luaL_checkudata(L, 4, META_PATCH));
flags = luaL_optinteger(L, 5, 0);
if (!lua_isnoneornil(L, 6))

View file

@ -565,7 +565,7 @@ extraemblem_t extraemblems[MAXEXTRAEMBLEMS] =
{"Game Complete", "Complete 1P Mode", 10, 'X', SKINCOLOR_BLUE, 0},
{"All Emeralds", "Complete 1P Mode with all Emeralds", 11, 'V', SKINCOLOR_GREY, 0},
{"Perfect Bonus", "Perfect Bonus on a non-secret stage", 30, 'P', SKINCOLOR_GOLD, 0},
{"SRB1 Remake", "Complete SRB1 Remake", 21, 'O', SKINCOLOR_RUST, 0},
{"PLACEHOLDER", "PLACEHOLDER", 0, 'O', SKINCOLOR_RUST, 0},
{"NiGHTS Mastery", "Show your mastery of NiGHTS!", 22, 'W', SKINCOLOR_TEAL, 0},
};
@ -586,9 +586,9 @@ unlockable_t unlockables[MAXUNLOCKABLES] =
/* 08 */ {"BONUS LEVELS", "", 100, 0, SECRET_HEADER, 0, true, true, 0},
/* 09 */ {"SRB1 Remake", "Collect 20 Emblems", 130, 40, SECRET_WARP, 101, false, false, 0},
/* 09 */ {"PLACEHOLDER", "PLACEHOLDER", 0, 0, SECRET_NONE, 0, true, true, 0},
/* 10 */ {"Mario Koopa Blast", "Collect 60 Emblems", 110, 42, SECRET_WARP, 30, false, false, 0},
/* 11 */ {"SRB1 Level Select", "Complete SRB1 Remake", 140, 21, SECRET_LEVELSELECT, 2, false, true, 0},
/* 11 */ {"PLACEHOLDER", "PLACEHOLDER", 0, 0, SECRET_NONE, 0, true, true, 0},
/* 12 */ {"Spring Hill Zone", "Collect 100 Emblems", 0, 44, SECRET_NONE, 0, false, false, 0},
/* 13 */ {"Black Hole", "A Rank in all Special Stages", 0, 50, SECRET_NONE, 0, false, true, 0},
@ -624,9 +624,6 @@ void M_SetupDefaultConditionSets(void)
// -- 20: Beat AGZ
M_AddRawCondition(20, 1, UC_MAPBEATEN, 40, 0, 0);
// -- 21: Beat SRB1 Remake
M_AddRawCondition(21, 1, UC_MAPBEATEN, 132, 0, 0);
// -- 22: Beat Black Hole
M_AddRawCondition(22, 1, UC_MAPBEATEN, 57, 0, 0);

View file

@ -4836,7 +4836,7 @@ static void M_SetupChoosePlayer(INT32 choice)
if (Playing() == false)
{
S_StopMusic();
S_ChangeMusicInternal("chrsel", true);
S_ChangeMusicInternal("_chsel", true);
}
SP_PlayerDef.prevMenu = currentMenu;
@ -5271,7 +5271,7 @@ void M_DrawTimeAttackMenu(void)
lumpnum_t lumpnum;
char beststr[40];
S_ChangeMusicInternal("racent", true); // Eww, but needed for when user hits escape during demo playback
S_ChangeMusicInternal("_inter", true); // Eww, but needed for when user hits escape during demo playback
V_DrawPatchFill(W_CachePatchName("SRB2BACK", PU_CACHE));
@ -5434,7 +5434,7 @@ static void M_TimeAttack(INT32 choice)
itemOn = tastart; // "Start" is selected.
G_SetGamestate(GS_TIMEATTACK);
S_ChangeMusicInternal("racent", true);
S_ChangeMusicInternal("_inter", true);
}
// Drawing function for Nights Attack
@ -5444,7 +5444,7 @@ void M_DrawNightsAttackMenu(void)
lumpnum_t lumpnum;
char beststr[40];
S_ChangeMusicInternal("racent", true); // Eww, but needed for when user hits escape during demo playback
S_ChangeMusicInternal("_inter", true); // Eww, but needed for when user hits escape during demo playback
V_DrawPatchFill(W_CachePatchName("SRB2BACK", PU_CACHE));
@ -5567,7 +5567,7 @@ static void M_NightsAttack(INT32 choice)
itemOn = nastart; // "Start" is selected.
G_SetGamestate(GS_TIMEATTACK);
S_ChangeMusicInternal("racent", true);
S_ChangeMusicInternal("_inter", true);
}
// Player has selected the "START" from the nights attack screen
@ -5801,7 +5801,7 @@ static void M_ModeAttackEndGame(INT32 choice)
itemOn = currentMenu->lastOn;
G_SetGamestate(GS_TIMEATTACK);
modeattacking = ATTACKING_NONE;
S_ChangeMusicInternal("racent", true);
S_ChangeMusicInternal("_inter", true);
// Update replay availability.
CV_AddValue(&cv_nextmap, 1);
CV_AddValue(&cv_nextmap, -1);
@ -7016,7 +7016,7 @@ static void M_ToggleDigital(void)
if (nodigimusic) return;
S_Init(cv_soundvolume.value, cv_digmusicvolume.value, cv_midimusicvolume.value);
S_StopMusic();
S_ChangeMusicInternal("lclear", false);
S_ChangeMusicInternal("_clear", false);
M_StartMessage(M_GetText("Digital Music Enabled\n"), NULL, MM_NOTHING);
}
else
@ -7043,7 +7043,7 @@ static void M_ToggleMIDI(void)
I_InitMIDIMusic();
if (nomidimusic) return;
S_Init(cv_soundvolume.value, cv_digmusicvolume.value, cv_midimusicvolume.value);
S_ChangeMusicInternal("lclear", false);
S_ChangeMusicInternal("_clear", false);
M_StartMessage(M_GetText("MIDI Music Enabled\n"), NULL, MM_NOTHING);
}
else

View file

@ -3153,7 +3153,7 @@ void A_Invincibility(mobj_t *actor)
S_StopMusic();
if (mariomode)
G_GhostAddColor(GHC_INVINCIBLE);
S_ChangeMusicInternal((mariomode) ? "minvnc" : "invinc", false);
S_ChangeMusicInternal((mariomode) ? "_minv" : "_inv", false);
}
}
@ -3189,7 +3189,7 @@ void A_SuperSneakers(mobj_t *actor)
else
{
S_StopMusic();
S_ChangeMusicInternal("shoes", false);
S_ChangeMusicInternal("_shoes", false);
}
}
}

View file

@ -2145,7 +2145,7 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, UINT8 damaget
if (P_IsLocalPlayer(target->player)/* && target->player == &players[consoleplayer] */)
{
S_StopMusic(); // Stop the Music! Tails 03-14-2000
S_ChangeMusicInternal("gmover", false); // Yousa dead now, Okieday? Tails 03-14-2000
S_ChangeMusicInternal("_gover", false); // Yousa dead now, Okieday? Tails 03-14-2000
}
}
}
@ -2543,7 +2543,7 @@ static inline void P_NiGHTSDamage(mobj_t *target, mobj_t *source)
&& player->nightstime < 10*TICRATE)
{
//S_StartSound(NULL, sfx_timeup); // that creepy "out of time" music from NiGHTS. Dummied out, as some on the dev team thought it wasn't Sonic-y enough (Mystic, notably). Uncomment to restore. -SH
S_ChangeMusicInternal("drown",false);
S_ChangeMusicInternal("_drown",false);
}
}
}

View file

@ -2410,13 +2410,13 @@ static void P_AdjustMobjFloorZ_FFloors(mobj_t *mo, sector_t *sector, UINT8 motyp
delta2 = thingtop - (bottomheight + ((topheight - bottomheight)/2));
if (topheight > mo->floorz && abs(delta1) < abs(delta2)
&& !(rover->flags & FF_REVERSEPLATFORM)
&& ((P_MobjFlip(mo)*mo->momz > 0) || (!(rover->flags & FF_PLATFORM)))) // In reverse gravity, only clip for FOFs that are intangible from their bottom (the "top" you're falling through) if you're coming from above ("below" in your frame of reference)
&& ((P_MobjFlip(mo)*mo->momz >= 0) || (!(rover->flags & FF_PLATFORM)))) // In reverse gravity, only clip for FOFs that are intangible from their bottom (the "top" you're falling through) if you're coming from above ("below" in your frame of reference)
{
mo->floorz = topheight;
}
if (bottomheight < mo->ceilingz && abs(delta1) >= abs(delta2)
&& !(rover->flags & FF_PLATFORM)
&& ((P_MobjFlip(mo)*mo->momz > 0) || (!(rover->flags & FF_REVERSEPLATFORM)))) // In normal gravity, only clip for FOFs that are intangible from the top if you're coming from below
&& ((P_MobjFlip(mo)*mo->momz >= 0) || (!(rover->flags & FF_REVERSEPLATFORM)))) // In normal gravity, only clip for FOFs that are intangible from the top if you're coming from below
{
mo->ceilingz = bottomheight;
}

View file

@ -6717,31 +6717,6 @@ static void Add_Scroller(INT32 type, fixed_t dx, fixed_t dy, INT32 control, INT3
P_AddThinker(&s->thinker);
}
/** Adds a wall scroller.
* Scroll amount is rotated with respect to wall's linedef first, so that
* scrolling towards the wall in a perpendicular direction is translated into
* vertical motion, while scrolling along the wall in a parallel direction is
* translated into horizontal motion.
*
* \param dx x speed of scrolling or its acceleration.
* \param dy y speed of scrolling or its acceleration.
* \param l Line whose front side will scroll.
* \param control Sector whose heights control this scroller's effect
* remotely, or -1 if there is no control sector.
* \param accel Nonzero for an accelerative effect.
* \sa Add_Scroller, P_SpawnScrollers
*/
static void Add_WallScroller(fixed_t dx, fixed_t dy, const line_t *l, INT32 control, INT32 accel)
{
fixed_t x = abs(l->dx), y = abs(l->dy), d;
if (y > x)
d = x, x = y, y = d;
d = FixedDiv(x, FINESINE((tantoangle[FixedDiv(y, x) >> DBITS] + ANGLE_90) >> ANGLETOFINESHIFT));
x = -FixedDiv(FixedMul(dy, l->dy) + FixedMul(dx, l->dx), d);
y = -FixedDiv(FixedMul(dx, l->dy) - FixedMul(dy, l->dx), d);
Add_Scroller(sc_side, x, y, control, *l->sidenum, accel, 0);
}
/** Initializes the scrollers.
*
* \todo Get rid of all the magic numbers.
@ -6824,7 +6799,7 @@ static void P_SpawnScrollers(void)
case 502:
for (s = -1; (s = P_FindLineFromLineTag(l, s)) >= 0 ;)
if (s != (INT32)i)
Add_WallScroller(dx, dy, lines+s, control, accel);
Add_Scroller(sc_side, dx, dy, control, lines[s].sidenum[0], accel, 0);
break;
case 505:
@ -7427,7 +7402,7 @@ void T_Pusher(pusher_t *p)
}
else
{
if (top < thing->z || referrer->floorheight > (thing->z + (thing->height >> 1)))
if (top < thing->z || bottom > (thing->z + (thing->height >> 1)))
continue;
if (thing->z + thing->height > top)
touching = true;

View file

@ -975,7 +975,7 @@ void P_DoSuperTransformation(player_t *player, boolean giverings)
if (!(mapheaderinfo[gamemap-1]->levelflags & LF_NOSSMUSIC) && P_IsLocalPlayer(player))
{
S_StopMusic();
S_ChangeMusicInternal("supers", true);
S_ChangeMusicInternal("_super", true);
}
S_StartSound(NULL, sfx_supert); //let all players hear it -mattw_cfi
@ -1111,7 +1111,7 @@ void P_PlayLivesJingle(player_t *player)
if (player)
player->powers[pw_extralife] = extralifetics + 1;
S_StopMusic(); // otherwise it won't restart if this is done twice in a row
S_ChangeMusicInternal("xtlife", false);
S_ChangeMusicInternal("_1up", false);
}
}
@ -1129,9 +1129,9 @@ void P_RestoreMusic(player_t *player)
return;
S_SpeedMusic(1.0f);
if (player->powers[pw_super] && !(mapheaderinfo[gamemap-1]->levelflags & LF_NOSSMUSIC))
S_ChangeMusicInternal("supers", true);
S_ChangeMusicInternal("_super", true);
else if (player->powers[pw_invulnerability] > 1)
S_ChangeMusicInternal((mariomode) ? "minvnc" : "invinc", false);
S_ChangeMusicInternal((mariomode) ? "_minv" : "_inv", false);
else if (player->powers[pw_sneakers] > 1 && !player->powers[pw_super])
{
if (mapheaderinfo[gamemap-1]->levelflags & LF_SPEEDMUSIC)
@ -1140,7 +1140,7 @@ void P_RestoreMusic(player_t *player)
S_ChangeMusic(mapmusname, mapmusflags, true);
}
else
S_ChangeMusicInternal("shoes", true);
S_ChangeMusicInternal("_shoes", true);
}
else
S_ChangeMusic(mapmusname, mapmusflags, true);
@ -2169,7 +2169,7 @@ static void P_CheckUnderwaterAndSpaceTimer(player_t *player)
&& player == &players[consoleplayer])
{
S_StopMusic();
S_ChangeMusicInternal("drown", false);
S_ChangeMusicInternal("_drown", false);
}
}
@ -5773,7 +5773,7 @@ static void P_NiGHTSMovement(player_t *player)
}
else if (P_IsLocalPlayer(player) && player->nightstime == 10*TICRATE)
// S_StartSound(NULL, sfx_timeup); // that creepy "out of time" music from NiGHTS. Dummied out, as some on the dev team thought it wasn't Sonic-y enough (Mystic, notably). Uncomment to restore. -SH
S_ChangeMusicInternal("drown",false);
S_ChangeMusicInternal("_drown",false);
if (player->mo->z < player->mo->floorz)
@ -9004,7 +9004,7 @@ void P_PlayerThink(player_t *player)
if (countdown == 11*TICRATE - 1)
{
if (P_IsLocalPlayer(player))
S_ChangeMusicInternal("drown", false);
S_ChangeMusicInternal("_drown", false);
}
// If you've hit the countdown and you haven't made

View file

@ -679,7 +679,7 @@ void Y_Ticker(void)
boolean anybonuses = false;
if (!intertic) // first time only
S_ChangeMusicInternal("lclear", false); // don't loop it
S_ChangeMusicInternal("_clear", false); // don't loop it
if (intertic < TICRATE) // one second pause before tally begins
return;
@ -740,7 +740,7 @@ void Y_Ticker(void)
if (!intertic) // first time only
{
S_ChangeMusicInternal("lclear", false); // don't loop it
S_ChangeMusicInternal("_clear", false); // don't loop it
tallydonetic = 0;
}
@ -801,7 +801,7 @@ void Y_Ticker(void)
else if (intertype == int_match || intertype == int_ctf || intertype == int_teammatch) // match
{
if (!intertic) // first time only
S_ChangeMusicInternal("racent", true); // loop it
S_ChangeMusicInternal("_inter", true); // loop it
// If a player has left or joined, recalculate scores.
if (data.match.numplayers != D_NumPlayers())
@ -810,7 +810,7 @@ void Y_Ticker(void)
else if (intertype == int_race || intertype == int_classicrace) // race
{
if (!intertic) // first time only
S_ChangeMusicInternal("racent", true); // loop it
S_ChangeMusicInternal("_inter", true); // loop it
// Don't bother recalcing for race. It doesn't make as much sense.
}