Most Pipe Towers stuff, I'm tired

Added Linedef type 430: Bounce Player, bouncy FOFs suck ass
Revamped a few existing PTZ assets
Added most new PTZ decorations, only missing shield mushrooms and trampolines (but I'll probably replace the latter with springs idk)
also Dave goes by Skydusk now
This commit is contained in:
Radicalicious 2024-12-19 21:49:52 -06:00
parent 5205d64f4a
commit db5d9053f2
10 changed files with 688 additions and 64 deletions

View file

@ -3185,37 +3185,28 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi
"S_RINGEXPLODE",
"S_COIN1",
"S_COIN2",
"S_COIN3",
// Mario-specific stuff
"S_COIN",
"S_COINSPARKLE1",
"S_COINSPARKLE2",
"S_COINSPARKLE3",
"S_COINSPARKLE4",
"S_GOOMBA1",
"S_GOOMBA1B",
"S_GOOMBA2",
"S_GOOMBA3",
"S_GOOMBA4",
"S_GOOMBA5",
"S_GOOMBA6",
"S_GOOMBA7",
"S_GOOMBA8",
"S_GOOMBA9",
"S_GOOMBA_DEAD",
"S_GOOMBA_DEAD2",
"S_GOOMBA_DEAD3",
"S_BLUEGOOMBA1",
"S_BLUEGOOMBA1B",
"S_BLUEGOOMBA2",
"S_BLUEGOOMBA3",
"S_BLUEGOOMBA4",
"S_BLUEGOOMBA5",
"S_BLUEGOOMBA6",
"S_BLUEGOOMBA7",
"S_BLUEGOOMBA8",
"S_BLUEGOOMBA9",
"S_BLUEGOOMBA_DEAD",
// Mario-specific stuff
"S_BLUEGOOMBA_DEAD2",
"S_BLUEGOOMBA_DEAD3",
"S_FIREFLOWER1",
"S_FIREFLOWER2",
"S_FIREFLOWER3",
@ -3223,6 +3214,13 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi
"S_FIREBALL",
"S_FIREBALLTRAIL1",
"S_FIREBALLTRAIL2",
"S_GREENKOOPASPAWN",
"S_GREENKOOPA1",
"S_GREENKOOPA2",
"S_GREENKOOPA3",
"S_GREENKOOPA4",
"S_GREENKOOPADEATH1",
"S_GREENKOOPADEATH2",
"S_SHELL",
"S_PUMA_START1",
"S_PUMA_START2",
@ -3248,6 +3246,21 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi
"S_MARIOBUSH1",
"S_MARIOBUSH2",
"S_TOAD",
"S_PTZSHROOM",
"S_PTZFLAG1",
"S_PTZFLAG2",
"S_PTZFLAG3",
"S_PTZFLAG4",
"S_PTZFLAG5",
"S_MARIOBUSH",
"S_BSBSHROOM",
"S_BLBSHROOM",
"S_BNWSHROOM",
"S_REDMFLOWER",
"S_BLUEMFLOWER",
"S_YELLOWMFLOWER",
"S_WHITEDANDELION",
"S_MAR64TREE",
// Nights-specific stuff
"S_NIGHTSDRONE_MAN1",
@ -3550,6 +3563,11 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi
"S_REDBRICKDEBRIS",
"S_BLUEBRICKDEBRIS",
"S_YELLOWBRICKDEBRIS",
"S_MARIOBRICKDEBRIS",
"S_MARIOBRICKDEBRISS",
"S_MARIOBRICKDEBRISB",
"S_MARIOBRICKDEBRISC",
"S_MARIOBRICKDEBRISM",
"S_NAMECHECK",
};
@ -4219,6 +4237,7 @@ const char *const MOBJTYPE_LIST[] = { // array length left dynamic for sanity t
"MT_FIREFLOWER",
"MT_FIREBALL",
"MT_FIREBALLTRAIL",
"MT_GREENKOOPA",
"MT_SHELL",
"MT_PUMA",
"MT_PUMATRAIL",
@ -4229,6 +4248,17 @@ const char *const MOBJTYPE_LIST[] = { // array length left dynamic for sanity t
"MT_MARIOBUSH1",
"MT_MARIOBUSH2",
"MT_TOAD",
"MT_PTZSHROOM",
"MT_PTZFLAG",
"MT_BSBSHROOM",
"MT_BLBSHROOM",
"MT_BNWSHROOM",
"MT_MARIOBUSH",
"MT_REDMFLOWER",
"MT_BLUEMFLOWER",
"MT_YELLOWMFLOWER",
"MT_WHITEDANDELION",
"MT_MAR64TREE",
// NiGHTS Stuff
"MT_AXIS",
@ -4326,6 +4356,11 @@ const char *const MOBJTYPE_LIST[] = { // array length left dynamic for sanity t
"MT_REDBRICKDEBRIS",
"MT_BLUEBRICKDEBRIS",
"MT_YELLOWBRICKDEBRIS",
"MT_MARIOBRICKDEBRIS",
"MT_MARIOBRICKDEBRISS",
"MT_MARIOBRICKDEBRISB",
"MT_MARIOBRICKDEBRISC",
"MT_MARIOBRICKDEBRISM",
"MT_NAMECHECK",
"MT_RAY",

View file

@ -1104,7 +1104,6 @@ static const char *credits[] = {
"\"ChrispyPixels\"",
"Paul \"Boinciel\" Clempson",
"Sally \"TehRealSalt\" Cochenour",
"\"Dave Lite\"",
"Desmond \"Blade\" DesJardins",
"Sherman \"CoatRack\" DesJardins",
"\"DirkTheHusky\"",
@ -1124,6 +1123,7 @@ static const char *credits[] = {
"\"MotorRoach\"",
"Phillip \"TelosTurntable\" Robinson",
"\"Scizor300\"",
"\"Skydusk\"",
"Wessel \"sphere\" Smit",
"David \"Instant Sonic\" Spencer Jr.",
"\"SSNTails\"",
@ -1173,6 +1173,7 @@ static const char *credits[] = {
"\"Radicalicious\"",
"\"Revan\"",
"Anna \"QueenDelta\" Sandlin",
"\"Skydusk\"",
"Wessel \"sphere\" Smit",
"\"SSNTails\"",
"Aaron \"Othius\" Stojkov",

View file

@ -539,6 +539,7 @@ light_t *t_lspr[NUMSPRITES] =
&lspr[NOLIGHT], // SPR_BGOM
&lspr[REDBALL_L], // SPR_FFWR
&lspr[SMALLREDBALL_L], // SPR_FBLL
&lspr[NOLIGHT], // SPR_MKOP
&lspr[NOLIGHT], // SPR_SHLL
&lspr[REDBALL_L], // SPR_PUMA
&lspr[NOLIGHT], // SPR_HAMM
@ -609,6 +610,22 @@ light_t *t_lspr[NUMSPRITES] =
&lspr[NOLIGHT], // SPR_BRIR
&lspr[NOLIGHT], // SPR_BRIB
&lspr[NOLIGHT], // SPR_BRIY
&lspr[NOLIGHT], // SPR_MBRI
&lspr[NOLIGHT], // SPR_MBRS
&lspr[NOLIGHT], // SPR_MBRB
&lspr[NOLIGHT], // SPR_MBRC
&lspr[NOLIGHT], // SPR_MTRI
&lspr[NOLIGHT], // SPR_MARS
&lspr[NOLIGHT], // SPR_MRFL
&lspr[NOLIGHT], // SPR_MAUH
&lspr[NOLIGHT], // SPR_MBSA
&lspr[NOLIGHT], // SPR_MBSB
&lspr[NOLIGHT], // SPR_MBSC
&lspr[NOLIGHT], // SPR_MFRE
&lspr[NOLIGHT], // SPR_MFYE
&lspr[NOLIGHT], // SPR_MFBE
&lspr[NOLIGHT], // SPR_MFWD
&lspr[NOLIGHT], // SPR_MUS3
// Gravity Well Objects
&lspr[NOLIGHT], // SPR_GWLG

View file

@ -450,6 +450,7 @@ char sprnames[NUMSPRITES + 1][MAXSPRITENAME + 1] =
"BGOM",
"FFWR",
"FBLL",
"MKOP",
"SHLL",
"PUMA",
"HAMM",
@ -459,6 +460,17 @@ char sprnames[NUMSPRITES + 1][MAXSPRITENAME + 1] =
"MUS1",
"MUS2",
"TOAD",
"MARS",
"MRFL",
"MAUH",
"MBSA",
"MBSB",
"MBSC",
"MFRE",
"MFYE",
"MFBE",
"MFWD",
"MUS3",
// NiGHTS Stuff
"NDRN", // NiGHTS drone
@ -520,6 +532,11 @@ char sprnames[NUMSPRITES + 1][MAXSPRITENAME + 1] =
"BRIR", // CEZ3 colored bricks
"BRIB", // CEZ3 colored bricks
"BRIY", // CEZ3 colored bricks
"MBRI",
"MBRS",
"MBRB",
"MBRC",
"MTRI",
// Gravity Well Objects
"GWLG",
@ -3599,41 +3616,33 @@ state_t states[NUMSTATES] =
{SPR_NULL, 0, 1, {A_RingExplode}, 0, 0, S_XPLD1, 0}, // S_RINGEXPLODE
// Coin
{SPR_COIN, FF_FULLBRIGHT, 5, {NULL}, 0, 0, S_COIN2, 0}, // S_COIN1
{SPR_COIN, FF_FULLBRIGHT|1, 5, {NULL}, 0, 0, S_COIN3, 0}, // S_COIN2
{SPR_COIN, FF_FULLBRIGHT|2, 5, {NULL}, 0, 0, S_COIN1, 0}, // S_COIN3
{SPR_COIN, FF_ANIMATE, 32, {NULL}, 15, 2, S_COIN, 0}, // S_COIN
// Coin Sparkle
{SPR_CPRK, FF_FULLBRIGHT, 5, {NULL}, 0, 0, S_COINSPARKLE2, 0}, // S_COINSPARKLE1
{SPR_CPRK, FF_FULLBRIGHT|1, 5, {NULL}, 0, 0, S_COINSPARKLE3, 0}, // S_COINSPARKLE2
{SPR_CPRK, FF_FULLBRIGHT|2, 5, {NULL}, 0, 0, S_COINSPARKLE4, 0}, // S_COINSPARKLE3
{SPR_CPRK, FF_FULLBRIGHT|3, 5, {NULL}, 0, 0, S_NULL, 0}, // S_COINSPARKLE4
{SPR_CPRK, 1|FF_FULLBRIGHT|FF_TRANS30|FF_ADD, 2, {A_ForceStop}, 0, 0, S_COINSPARKLE2, 0}, // S_COINSPARKLE1
{SPR_CPRK, 2|FF_FULLBRIGHT|FF_ANIMATE|FF_TRANS30|FF_ADD, 20, {NULL}, 9, 2, S_NULL, 0}, // S_COINSPARKLE2
// Goomba
{SPR_GOOM, 0, 6, {A_Look}, 0, 0, S_GOOMBA1B, 0}, // S_GOOMBA1
{SPR_GOOM, 1, 6, {A_Look}, 0, 0, S_GOOMBA1, 0}, // S_GOOMBA1B
{SPR_GOOM, 0, 3, {A_Chase}, 0, 0, S_GOOMBA3, 0}, // S_GOOMBA2
{SPR_GOOM, 0, 3, {A_Chase}, 0, 0, S_GOOMBA4, 0}, // S_GOOMBA3
{SPR_GOOM, 1, 3, {A_Chase}, 0, 0, S_GOOMBA5, 0}, // S_GOOMBA4
{SPR_GOOM, 1, 3, {A_Chase}, 0, 0, S_GOOMBA6, 0}, // S_GOOMBA5
{SPR_GOOM, 0, 3, {A_Chase}, 0, 0, S_GOOMBA7, 0}, // S_GOOMBA6
{SPR_GOOM, 0, 3, {A_Chase}, 0, 0, S_GOOMBA8, 0}, // S_GOOMBA7
{SPR_GOOM, 1, 3, {A_Chase}, 0, 0, S_GOOMBA9, 0}, // S_GOOMBA8
{SPR_GOOM, 1, 3, {A_Chase}, 0, 0, S_GOOMBA2, 0}, // S_GOOMBA9
{SPR_GOOM, 2, 16, {A_Scream}, 0, 0, S_NULL, 0}, // S_GOOMBA_DEAD
{SPR_GOOM, 0, 6, {A_Chase}, 0, 0, S_GOOMBA3, 0}, // S_GOOMBA2
{SPR_GOOM, 1, 6, {A_Chase}, 0, 0, S_GOOMBA4, 0}, // S_GOOMBA3
{SPR_GOOM, 2, 6, {A_Chase}, 0, 0, S_GOOMBA5, 0}, // S_GOOMBA4
{SPR_GOOM, 3, 6, {A_Chase}, 0, 0, S_GOOMBA2, 0}, // S_GOOMBA5
{SPR_GOOM, 4, 8, {A_Scream}, 0, 0, S_GOOMBA_DEAD2, 0}, // S_GOOMBA_DEAD
{SPR_GOOM, 5, 4, {NULL}, 0, 0, S_GOOMBA_DEAD3, 0}, // S_GOOMBA_DEAD2
{SPR_GOOM, 4, 15, {NULL}, 0, 0, S_NULL, 0}, // S_GOOMBA_DEAD3
// Blue Goomba
{SPR_BGOM, 0, 6, {A_Look}, 0, 0, S_BLUEGOOMBA1B, 0}, // S_BLUEGOOMBA1
{SPR_BGOM, 1, 6, {A_Look}, 0, 0, S_BLUEGOOMBA1, 0}, // S_BLUEGOOMBA1B
{SPR_BGOM, 0, 3, {A_Chase}, 0, 0, S_BLUEGOOMBA3, 0}, // S_BLUEGOOMBA2
{SPR_BGOM, 0, 3, {A_Chase}, 0, 0, S_BLUEGOOMBA4, 0}, // S_BLUEGOOMBA3
{SPR_BGOM, 1, 3, {A_Chase}, 0, 0, S_BLUEGOOMBA5, 0}, // S_BLUEGOOMBA4
{SPR_BGOM, 1, 3, {A_Chase}, 0, 0, S_BLUEGOOMBA6, 0}, // S_BLUEGOOMBA5
{SPR_BGOM, 0, 3, {A_Chase}, 0, 0, S_BLUEGOOMBA7, 0}, // S_BLUEGOOMBA6
{SPR_BGOM, 0, 3, {A_Chase}, 0, 0, S_BLUEGOOMBA8, 0}, // S_BLUEGOOMBA7
{SPR_BGOM, 1, 3, {A_Chase}, 0, 0, S_BLUEGOOMBA9, 0}, // S_BLUEGOOMBA8
{SPR_BGOM, 1, 3, {A_Chase}, 0, 0, S_BLUEGOOMBA2, 0}, // S_BLUEGOOMBA9
{SPR_BGOM, 2, 16, {A_Scream}, 0, 0, S_NULL, 0}, // S_BLUEGOOMBA_DEAD
{SPR_BGOM, 0, 6, {A_Chase}, 0, 0, S_BLUEGOOMBA3, 0}, // S_BLUEGOOMBA2
{SPR_BGOM, 1, 6, {A_Chase}, 0, 0, S_BLUEGOOMBA4, 0}, // S_BLUEGOOMBA3
{SPR_BGOM, 2, 6, {A_Chase}, 0, 0, S_BLUEGOOMBA5, 0}, // S_BLUEGOOMBA4
{SPR_BGOM, 3, 6, {A_Chase}, 0, 0, S_BLUEGOOMBA2, 0}, // S_BLUEGOOMBA5
{SPR_BGOM, 4, 8, {A_Scream}, 0, 0, S_BLUEGOOMBA_DEAD2, 0}, // S_BLUEGOOMBA_DEAD
{SPR_BGOM, 5, 4, {NULL}, 0, 0, S_BLUEGOOMBA_DEAD3, 0}, // S_BLUEGOOMBA_DEAD2
{SPR_BGOM, 4, 15, {NULL}, 0, 0, S_NULL, 0}, // S_BLUEGOOMBA_DEAD3
// Fire Flower
{SPR_FFWR, 0, 3, {NULL}, 0, 0, S_FIREFLOWER2, 0}, // S_FIREFLOWER1
@ -3646,7 +3655,16 @@ state_t states[NUMSTATES] =
{SPR_FBLL, 1|FF_FULLBRIGHT|FF_TRANS50, 1, {A_SetScale}, FRACUNIT*3/4, 0, S_FIREBALLTRAIL2, 0}, // S_FIREBALLTRAIL1
{SPR_FBLL, 1|FF_FULLBRIGHT|FF_TRANS50, 8, {A_SetScale}, FRACUNIT/6, 1, S_NULL, 0}, // S_FIREBALLTRAIL2
// Turtle Shell
// Green Koopa
{SPR_MKOP, 0, 1, {A_Look}, 0, 0, S_GREENKOOPASPAWN, 0}, // S_GREENKOOPASPAWN
{SPR_MKOP, 0, 5, {A_GuardChase}, 1, 0, S_GREENKOOPA2, 0}, // S_GREENKOOPA1
{SPR_MKOP, 1, 5, {A_GuardChase}, 1, 0, S_GREENKOOPA3, 0}, // S_GREENKOOPA2
{SPR_MKOP, 2, 5, {A_GuardChase}, 1, 0, S_GREENKOOPA4, 0}, // S_GREENKOOPA3
{SPR_MKOP, 3, 5, {A_GuardChase}, 1, 0, S_GREENKOOPA1, 0}, // S_GREENKOOPA4
{SPR_MKOP, 3, 1, {A_Scream}, 0, 0, S_GREENKOOPADEATH2, 0}, // S_GREENKOOPADEATH1
{SPR_MKOP, 3, 1, {A_SpawnObjectRelative}, 0|0, 0|MT_SHELL, S_NULL, 0}, // S_GREENKOOPADEATH2
// Koopa Shell
{SPR_SHLL, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_SHELL
// Puma (Mario fireball)
@ -3684,6 +3702,22 @@ state_t states[NUMSTATES] =
{SPR_MUS2, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_MARIOBUSH2
{SPR_TOAD, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_TOAD
{SPR_MARS, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_PTZSHROOM
{SPR_MRFL, 0|FF_PAPERSPRITE, 4, {NULL}, 0, 0, S_PTZFLAG2, 0}, // S_PTZFLAG1
{SPR_MRFL, 1|FF_PAPERSPRITE, 4, {NULL}, 0, 0, S_PTZFLAG3, 0}, // S_PTZFLAG2
{SPR_MRFL, 2|FF_PAPERSPRITE, 4, {NULL}, 0, 0, S_PTZFLAG4, 0}, // S_PTZFLAG3
{SPR_MRFL, 3|FF_PAPERSPRITE, 4, {NULL}, 0, 0, S_PTZFLAG5, 0}, // S_PTZFLAG4
{SPR_MRFL, 4|FF_PAPERSPRITE, 4, {NULL}, 0, 0, S_PTZFLAG1, 0}, // S_PTZFLAG5
{SPR_MAUH, FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL, 0}, // S_MARIOBUSH
{SPR_MBSA, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSBSHROOM
{SPR_MBSB, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BLBSHROOM
{SPR_MBSC, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BNWSHROOM
{SPR_MFRE, FF_ANIMATE, -1, {NULL}, 3, 4, S_NULL, 0}, // S_REDMFLOWER
{SPR_MFBE, FF_ANIMATE, -1, {NULL}, 3, 4, S_NULL, 0}, // S_BLUEMFLOWER
{SPR_MFYE, FF_ANIMATE, -1, {NULL}, 3, 4, S_NULL, 0}, // S_YELLOWMFLOWER
{SPR_MFWD, FF_ANIMATE, -1, {NULL}, 3, 6, S_NULL, 0}, // S_WHITEDANDELION
{SPR_MUS3, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_MAR64TREE
// Nights Drone
{SPR_NDRN, 0, -1, {NULL}, 0, 0, S_NIGHTSDRONE_MAN2, 0}, // S_NIGHTSDRONE_MAN1
{SPR_NDRN, 0, -1, {NULL}, 0, 0, S_NIGHTSDRONE_MAN1, 0}, // S_NIGHTSDRONE_MAN2
@ -3996,6 +4030,11 @@ state_t states[NUMSTATES] =
{SPR_BRIR, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 31, 1, S_NULL, 0}, // S_REDBRICKDEBRIS
{SPR_BRIB, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 31, 1, S_NULL, 0}, // S_BLUEBRICKDEBRIS
{SPR_BRIY, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 31, 1, S_NULL, 0}, // S_YELLOWBRICKDEBRIS
{SPR_MBRI, FF_ANIMATE, 50, {NULL}, 9, 2, S_NULL, 0}, // S_MARIOBRICKDEBRIS
{SPR_MBRS, FF_ANIMATE, 50, {NULL}, 9, 2, S_NULL, 0}, // S_MARIOBRICKDEBRISS
{SPR_MBRB, FF_ANIMATE, 50, {NULL}, 9, 2, S_NULL, 0}, // S_MARIOBRICKDEBRISB
{SPR_MBRC, FF_ANIMATE, 50, {NULL}, 9, 2, S_NULL, 0}, // S_MARIOBRICKDEBRISC
{SPR_MTRI, FF_ANIMATE, 50, {NULL}, 3, 4, S_NULL, 0}, // S_MARIOBRICKDEBRISM
{SPR_NULL, 0, 1, {NULL}, 0, 0, S_NULL, 0}, // S_NAMECHECK
@ -18887,7 +18926,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
{ // MT_COIN
1800, // doomednum
S_COIN1, // spawnstate
S_COIN, // spawnstate
1000, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
@ -18914,7 +18953,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
{ // MT_FLINGCOIN
-1, // doomednum
S_COIN1, // spawnstate
S_COIN, // spawnstate
1000, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
@ -19074,6 +19113,33 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate
},
{ // MT_GREENKOOPA
1832, // doomednum
S_GREENKOOPASPAWN, // spawnstate
1, // spawnhealth
S_GREENKOOPA1, // seestate
sfx_None, // seesound
1, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
0, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_GREENKOOPADEATH1, // deathstate
S_NULL, // xdeathstate
sfx_mario2, // deathsound
12, // speed
16*FRACUNIT, // radius
48*FRACUNIT, // height
0, // display offset
100, // mass
1, // damage
sfx_mario1, // activesound
MF_SPECIAL|MF_SHOOTABLE|MF_BOUNCE, // flags
S_NULL // raisestate
},
{ // MT_SHELL
1804, // doomednum
S_SHELL, // spawnstate
@ -19343,6 +19409,303 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate
},
{ // MT_PTZSHROOM
1811, // doomednum
S_PTZSHROOM, // 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
0, // speed
16*FRACUNIT, // radius
96*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIP|MF_SCENERY, // flags
S_NULL // raisestate
},
{ // MT_PTZFLAG
1812, // doomednum
S_PTZFLAG1, // 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
0, // speed
16*FRACUNIT, // radius
96*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIP|MF_SCENERY, // flags
S_NULL // raisestate
},
{ // MT_MARIOBUSH
1819, // doomednum
S_MARIOBUSH, // 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
0, // speed
16*FRACUNIT, // radius
96*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIP|MF_SCENERY, // flags
S_NULL // raisestate
},
{ // MT_BSBSHROOM
1820, // doomednum
S_BSBSHROOM, // 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
0, // speed
16*FRACUNIT, // radius
96*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIP|MF_SCENERY, // flags
S_NULL // raisestate
},
{ // MT_BLBSHROOM
1821, // doomednum
S_BLBSHROOM, // 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
0, // speed
16*FRACUNIT, // radius
96*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIP|MF_SCENERY, // flags
S_NULL // raisestate
},
{ // MT_BNWSHROOM
1822, // doomednum
S_BNWSHROOM, // 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
0, // speed
16*FRACUNIT, // radius
96*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIP|MF_SCENERY, // flags
S_NULL // raisestate
},
{ // MT_REDMFLOWER
1823, // doomednum
S_REDMFLOWER, // 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
0, // speed
16*FRACUNIT, // radius
96*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIP|MF_SCENERY, // flags
S_NULL // raisestate
},
{ // MT_BLUEMFLOWER
1842, // doomednum
S_BLUEMFLOWER, // 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
0, // speed
16*FRACUNIT, // radius
96*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIP|MF_SCENERY, // flags
S_NULL // raisestate
},
{ // MT_YELLOWMFLOWER
1824, // doomednum
S_YELLOWMFLOWER,// 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
0, // speed
16*FRACUNIT, // radius
96*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIP|MF_SCENERY, // flags
S_NULL // raisestate
},
{ // MT_WHITEDANDELION
1840, // doomednum
S_WHITEDANDELION, // 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
0, // speed
16*FRACUNIT, // radius
96*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIP|MF_SCENERY, // flags
S_NULL // raisestate
},
{ // MT_MAR64TREE
1847, // doomednum
S_MAR64TREE, // 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
0, // speed
16*FRACUNIT, // radius
150*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIP|MF_SCENERY, // flags
S_NULL // raisestate
},
{ // MT_AXIS
1700, // doomednum
S_INVISIBLE, // spawnstate
@ -21559,6 +21922,141 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate
},
{ // MT_MARIOBRICKDEBRIS
-1, // doomednum
S_MARIOBRICKDEBRIS, // spawnstate
1, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
35, // 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
6, // speed
16*FRACUNIT, // radius
48*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_marioc, // activesound
MF_NOCLIPHEIGHT|MF_SCENERY, // flags
S_NULL // raisestate
},
{ // MT_MARIOBRICKDEBRISS
-1, // doomednum
S_MARIOBRICKDEBRISS, // spawnstate
1, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
35, // 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
6, // speed
16*FRACUNIT, // radius
48*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_marioc, // activesound
MF_NOCLIPHEIGHT|MF_SCENERY, // flags
S_NULL // raisestate
},
{ // MT_MARIOBRICKDEBRISB
-1, // doomednum
S_MARIOBRICKDEBRISB, // spawnstate
1, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
35, // 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
6, // speed
16*FRACUNIT, // radius
48*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_marioc, // activesound
MF_NOCLIPHEIGHT|MF_SCENERY, // flags
S_NULL // raisestate
},
{ // MT_MARIOBRICKDEBRISC
-1, // doomednum
S_MARIOBRICKDEBRISC, // spawnstate
1, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
35, // 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
6, // speed
16*FRACUNIT, // radius
48*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_marioc, // activesound
MF_NOCLIPHEIGHT|MF_SCENERY, // flags
S_NULL // raisestate
},
{ // MT_MARIOBRICKDEBRISM
-1, // doomednum
S_MARIOBRICKDEBRISM, // spawnstate
1, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
35, // 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
6, // speed
16*FRACUNIT, // radius
48*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_marioc, // activesound
MF_NOCLIPHEIGHT|MF_SCENERY, // flags
S_NULL // raisestate
},
{ // MT_NAMECHECK
-1, // doomednum
S_NAMECHECK, // spawnstate

View file

@ -1001,6 +1001,7 @@ typedef enum sprite
SPR_BGOM,
SPR_FFWR,
SPR_FBLL,
SPR_MKOP,
SPR_SHLL,
SPR_PUMA,
SPR_HAMM,
@ -1010,6 +1011,17 @@ typedef enum sprite
SPR_MUS1,
SPR_MUS2,
SPR_TOAD,
SPR_MARS,
SPR_MRFL,
SPR_MAUH,
SPR_MBSA,
SPR_MBSB,
SPR_MBSC,
SPR_MFRE,
SPR_MFYE,
SPR_MFBE,
SPR_MFWD,
SPR_MUS3,
// NiGHTS Stuff
SPR_NDRN, // NiGHTS drone
@ -1071,6 +1083,11 @@ typedef enum sprite
SPR_BRIR, // CEZ3 colored bricks
SPR_BRIB,
SPR_BRIY,
SPR_MBRI,
SPR_MBRS,
SPR_MBRB,
SPR_MBRC,
SPR_MTRI,
// Gravity Well Objects
SPR_GWLG,
@ -4003,37 +4020,28 @@ typedef enum state
S_RINGEXPLODE,
S_COIN1,
S_COIN2,
S_COIN3,
// Mario-specific stuff
S_COIN,
S_COINSPARKLE1,
S_COINSPARKLE2,
S_COINSPARKLE3,
S_COINSPARKLE4,
S_GOOMBA1,
S_GOOMBA1B,
S_GOOMBA2,
S_GOOMBA3,
S_GOOMBA4,
S_GOOMBA5,
S_GOOMBA6,
S_GOOMBA7,
S_GOOMBA8,
S_GOOMBA9,
S_GOOMBA_DEAD,
S_GOOMBA_DEAD2,
S_GOOMBA_DEAD3,
S_BLUEGOOMBA1,
S_BLUEGOOMBA1B,
S_BLUEGOOMBA2,
S_BLUEGOOMBA3,
S_BLUEGOOMBA4,
S_BLUEGOOMBA5,
S_BLUEGOOMBA6,
S_BLUEGOOMBA7,
S_BLUEGOOMBA8,
S_BLUEGOOMBA9,
S_BLUEGOOMBA_DEAD,
// Mario-specific stuff
S_BLUEGOOMBA_DEAD2,
S_BLUEGOOMBA_DEAD3,
S_FIREFLOWER1,
S_FIREFLOWER2,
S_FIREFLOWER3,
@ -4041,6 +4049,13 @@ typedef enum state
S_FIREBALL,
S_FIREBALLTRAIL1,
S_FIREBALLTRAIL2,
S_GREENKOOPASPAWN,
S_GREENKOOPA1,
S_GREENKOOPA2,
S_GREENKOOPA3,
S_GREENKOOPA4,
S_GREENKOOPADEATH1,
S_GREENKOOPADEATH2,
S_SHELL,
S_PUMA_START1,
S_PUMA_START2,
@ -4066,6 +4081,21 @@ typedef enum state
S_MARIOBUSH1,
S_MARIOBUSH2,
S_TOAD,
S_PTZSHROOM,
S_PTZFLAG1,
S_PTZFLAG2,
S_PTZFLAG3,
S_PTZFLAG4,
S_PTZFLAG5,
S_MARIOBUSH,
S_BSBSHROOM,
S_BLBSHROOM,
S_BNWSHROOM,
S_REDMFLOWER,
S_BLUEMFLOWER,
S_YELLOWMFLOWER,
S_WHITEDANDELION,
S_MAR64TREE,
// Nights-specific stuff
S_NIGHTSDRONE_MAN1,
@ -4368,6 +4398,11 @@ typedef enum state
S_REDBRICKDEBRIS, // for CEZ3
S_BLUEBRICKDEBRIS, // for CEZ3
S_YELLOWBRICKDEBRIS, // for CEZ3
S_MARIOBRICKDEBRIS,
S_MARIOBRICKDEBRISS,
S_MARIOBRICKDEBRISB,
S_MARIOBRICKDEBRISC,
S_MARIOBRICKDEBRISM,
S_NAMECHECK,
@ -5064,6 +5099,7 @@ typedef enum mobj_type
MT_FIREFLOWER,
MT_FIREBALL,
MT_FIREBALLTRAIL,
MT_GREENKOOPA,
MT_SHELL,
MT_PUMA,
MT_PUMATRAIL,
@ -5074,6 +5110,17 @@ typedef enum mobj_type
MT_MARIOBUSH1,
MT_MARIOBUSH2,
MT_TOAD,
MT_PTZSHROOM,
MT_PTZFLAG,
MT_BSBSHROOM,
MT_BLBSHROOM,
MT_BNWSHROOM,
MT_MARIOBUSH,
MT_REDMFLOWER,
MT_BLUEMFLOWER,
MT_YELLOWMFLOWER,
MT_WHITEDANDELION,
MT_MAR64TREE,
// NiGHTS Stuff
MT_AXIS,
@ -5171,6 +5218,11 @@ typedef enum mobj_type
MT_REDBRICKDEBRIS, // for CEZ3
MT_BLUEBRICKDEBRIS, // for CEZ3
MT_YELLOWBRICKDEBRIS, // for CEZ3
MT_MARIOBRICKDEBRIS,
MT_MARIOBRICKDEBRISS,
MT_MARIOBRICKDEBRISB,
MT_MARIOBRICKDEBRISC,
MT_MARIOBRICKDEBRISM,
MT_NAMECHECK,
MT_RAY, // General purpose mobj

View file

@ -7837,13 +7837,14 @@ void A_BuzzFly(mobj_t *actor)
// Function: A_GuardChase
//
// Description: Modified A_Chase for Egg Guard
// Description: Modified A_Chase for Egg Guard and Koopa Troopas
//
// var1 = unused
// var1 = shield (0) or no shield (1)
// var2 = unused
//
void A_GuardChase(mobj_t *actor)
{
INT32 locvar1 = var1;
INT32 delta;
if (LUA_CallAction(A_GUARDCHASE, actor))
@ -7852,11 +7853,11 @@ void A_GuardChase(mobj_t *actor)
if (actor->reactiontime)
actor->reactiontime--;
if (actor->threshold != 42) // In formation...
if (actor->threshold != 42 || locvar1 == 1) // In formation...
{
fixed_t speed;
if (!actor->tracer || !actor->tracer->health)
if ((!actor->tracer || !actor->tracer->health) && locvar1 == 0)
{
P_SetTarget(&actor->tracer, NULL);
actor->threshold = 42;
@ -7945,7 +7946,7 @@ void A_GuardChase(mobj_t *actor)
// Now that we've moved, its time for our shield to move!
// Otherwise it'll never act as a proper overlay.
if (actor->tracer && actor->tracer->state
&& actor->tracer->state->action.acp1)
&& actor->tracer->state->action.acp1 && locvar1 == 0)
{
var1 = actor->tracer->state->var1, var2 = actor->tracer->state->var2;
actor->tracer->state->action.acp1(actor->tracer);

View file

@ -5866,6 +5866,10 @@ static void P_ConvertBinaryLinedefTypes(void)
lines[i].args[0] = tag;
lines[i].args[1] = !!(lines[i].flags & ML_NOCLIMB);
break;
case 465: // Bounce Player (purely for backwards compatibility with new Pipe Towers)
lines[i].args[0] = (FixedHypot(lines[i].dx, lines[i].dy) / 8) >> FRACBITS;
lines[i].special = 430;
break;
case 466: //Set level failure state
lines[i].args[0] = !!(lines[i].flags & ML_NOCLIMB);
break;

View file

@ -2702,6 +2702,18 @@ static void P_ProcessLineSpecial(line_t *line, mobj_t *mo, sector_t *callsec)
EV_DoCrush(line->args[0], line, crushBothOnce);
break;
case 430: // Bounce Player
if (mo && mo->player)
{
P_SetObjectMomZ(mo, line->args[0]*FRACUNIT, false);
S_StartSound(NULL, sfx_s3k8a);
mo->player->pflags |= PF_JUMPED;
if (skins[mo->player->skin]->flags & SF_NOJUMPSPIN)
P_SetMobjState(mo, S_PLAY_SPRING);
else
P_SetMobjState(mo, S_PLAY_JUMP);
}
break;
case 432: // Enable/Disable 2D Mode
if (mo && mo->player)
{

View file

@ -284,6 +284,8 @@ sfxinfo_t S_sfx[NUMSFX] =
{"mario8", false, 48, SF_X4AWAYSOUND, -1, NULL, 0, -1, -1, LUMPERROR, "Hurt"},
{"mario9", true, 120, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Emerging power-up"},
{"marioa", true, 192, 0, -1, NULL, 0, -1, -1, LUMPERROR, "One-up"},
{"mariob", true, 127, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Spring"},
{"marioc", true, 127, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Crumbling"},
{"thwomp", true, 127, SF_X4AWAYSOUND, -1, NULL, 0, -1, -1, LUMPERROR, "Thwomp"},
// Black Eggman

View file

@ -332,6 +332,8 @@ typedef enum
sfx_mario8,
sfx_mario9,
sfx_marioa,
sfx_mariob,
sfx_marioc,
sfx_thwomp,
// Black Eggman