Fix Knuckles

This commit is contained in:
Radicalicious 2024-12-17 19:18:31 -06:00
parent cb233bd500
commit b20b71b895
4 changed files with 53 additions and 47 deletions

View file

@ -575,7 +575,6 @@ light_t *t_lspr[NUMSPRITES] =
&lspr[BLUEBALL_L], // SPR_SBFL, &lspr[BLUEBALL_L], // SPR_SBFL,
&lspr[BLUEBALL_L], // SPR_SBSK, &lspr[BLUEBALL_L], // SPR_SBSK,
&lspr[NOLIGHT], // SPR_BATT, &lspr[NOLIGHT], // SPR_BATT,
&lspr[NOLIGHT], // SPR_OLDK,
// Debris // Debris
&lspr[RINGSPARK_L], // SPR_SPRK &lspr[RINGSPARK_L], // SPR_SPRK
@ -615,6 +614,9 @@ light_t *t_lspr[NUMSPRITES] =
&lspr[NOLIGHT], // SPR_GWLG &lspr[NOLIGHT], // SPR_GWLG
&lspr[NOLIGHT], // SPR_GWLR &lspr[NOLIGHT], // SPR_GWLR
// LJ Knuckles
&lspr[NOLIGHT], // SPR_OLDK,
// Free slots // Free slots
&lspr[NOLIGHT], &lspr[NOLIGHT],
&lspr[NOLIGHT], &lspr[NOLIGHT],

View file

@ -486,7 +486,6 @@ char sprnames[NUMSPRITES + 1][MAXSPRITENAME + 1] =
"SBFL", "SBFL",
"SBSK", "SBSK",
"HBAT", "HBAT",
"OLDK",
// Debris // Debris
"SPRK", // Sparkle "SPRK", // Sparkle
@ -525,6 +524,9 @@ char sprnames[NUMSPRITES + 1][MAXSPRITENAME + 1] =
// Gravity Well Objects // Gravity Well Objects
"GWLG", "GWLG",
"GWLR", "GWLR",
// LJ Knuckles
"OLDK",
}; };
char spr2names[NUMPLAYERSPRITES][MAXSPRITENAME + 1] = char spr2names[NUMPLAYERSPRITES][MAXSPRITENAME + 1] =
@ -3937,11 +3939,6 @@ state_t states[NUMSTATES] =
{SPR_HBAT, 3, 1, {NULL}, 0, 0, S_HANGSTER_RETURN1, 0}, // S_HANGSTER_RETURN2 {SPR_HBAT, 3, 1, {NULL}, 0, 0, S_HANGSTER_RETURN1, 0}, // S_HANGSTER_RETURN2
{SPR_HBAT, 0, 15, {NULL}, 0, 0, S_HANGSTER_LOOK, 0}, // S_HANGSTER_RETURN3 {SPR_HBAT, 0, 15, {NULL}, 0, 0, S_HANGSTER_LOOK, 0}, // S_HANGSTER_RETURN3
{SPR_OLDK, FF_ANIMATE, -1, {NULL}, 1, 16, S_NULL, 0}, // S_OLDK_STND
{SPR_OLDK, 2, 0, {A_ForceWin}, 0, 0, S_OLDK_DIE1, 0}, // S_OLDK_DIE0
{SPR_OLDK, 2, 0, {A_Scream}, 0, 0, S_OLDK_DIE2, 0}, // S_OLDK_DIE1
{SPR_OLDK, 2, -1, {A_ZThrust}, 14, 1|(1<<16), S_NULL, 0}, // S_OLDK_DIE2
{SPR_NULL, 0, 35, {NULL}, 0, 0, S_CRUMBLE2, 0}, // S_CRUMBLE1 {SPR_NULL, 0, 35, {NULL}, 0, 0, S_CRUMBLE2, 0}, // S_CRUMBLE1
{SPR_NULL, 0, 105, {A_Scream}, 0, 0, S_NULL, 0}, // S_CRUMBLE2 {SPR_NULL, 0, 105, {A_Scream}, 0, 0, S_NULL, 0}, // S_CRUMBLE2
@ -4001,6 +3998,11 @@ state_t states[NUMSTATES] =
{SPR_BRIY, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 31, 1, S_NULL, 0}, // S_YELLOWBRICKDEBRIS {SPR_BRIY, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 31, 1, S_NULL, 0}, // S_YELLOWBRICKDEBRIS
{SPR_NULL, 0, 1, {NULL}, 0, 0, S_NULL, 0}, // S_NAMECHECK {SPR_NULL, 0, 1, {NULL}, 0, 0, S_NULL, 0}, // S_NAMECHECK
{SPR_OLDK, FF_ANIMATE, -1, {NULL}, 1, 16, S_NULL, 0}, // S_OLDK_STND
{SPR_OLDK, 2, 0, {A_ForceWin}, 0, 0, S_OLDK_DIE1, 0}, // S_OLDK_DIE0
{SPR_OLDK, 2, 0, {A_Scream}, 0, 0, S_OLDK_DIE2, 0}, // S_OLDK_DIE1
{SPR_OLDK, 2, -1, {A_ZThrust}, 14, 1|(1<<16), S_NULL, 0}, // S_OLDK_DIE2
}; };
mobjinfo_t mobjinfo[NUMMOBJTYPES] = mobjinfo_t mobjinfo[NUMMOBJTYPES] =
@ -20502,34 +20504,6 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate S_NULL // raisestate
}, },
// MT_OLDK
{
666, // doomednum
S_OLDK_STND, // spawnstate
2, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
32, // reactiontime
sfx_None, // attacksound
S_OLDK_DIE0, // painstate
128, // painchance
sfx_s3k35, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_OLDK_DIE0, // deathstate
S_NULL, // xdeathstate
sfx_s3k35, // deathsound
2*FRACUNIT, // speed
32*FRACUNIT, // radius
64*FRACUNIT, // height
0, // display offset
1000, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL|MF_SHOOTABLE|MF_NOGRAVITY|MF_BOSS, // flags
S_NULL // raisestate
},
{ // MT_TELEPORTMAN { // MT_TELEPORTMAN
751, // doomednum 751, // doomednum
S_INVISIBLE, // spawnstate S_INVISIBLE, // spawnstate
@ -21638,6 +21612,33 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
MF_NOBLOCKMAP|MF_NOSECTOR|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY, // flags MF_NOBLOCKMAP|MF_NOSECTOR|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY, // flags
S_NULL // raisestate S_NULL // raisestate
}, },
{ // MT_OLDK
666, // doomednum
S_OLDK_STND, // spawnstate
1, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
32, // reactiontime
sfx_None, // attacksound
S_OLDK_DIE0, // painstate
128, // painchance
sfx_s3k35, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_OLDK_DIE0, // deathstate
S_NULL, // xdeathstate
sfx_s3k35, // deathsound
2*FRACUNIT, // speed
32*FRACUNIT, // radius
64*FRACUNIT, // height
0, // display offset
1000, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL|MF_SHOOTABLE|MF_NOGRAVITY|MF_BOSS, // flags
S_NULL // raisestate
},
}; };
skincolor_t skincolors[MAXSKINCOLORS] = { skincolor_t skincolors[MAXSKINCOLORS] = {

View file

@ -1037,7 +1037,6 @@ typedef enum sprite
SPR_SBFL, SPR_SBFL,
SPR_SBSK, SPR_SBSK,
SPR_HBAT, SPR_HBAT,
SPR_OLDK,
// Debris // Debris
SPR_SPRK, // Sparkle SPR_SPRK, // Sparkle
@ -1077,6 +1076,9 @@ typedef enum sprite
SPR_GWLG, SPR_GWLG,
SPR_GWLR, SPR_GWLR,
// LJ Knuckles
SPR_OLDK,
SPR_FIRSTFREESLOT, SPR_FIRSTFREESLOT,
SPR_LASTFREESLOT = SPR_FIRSTFREESLOT + NUMSPRITEFREESLOTS - 1, SPR_LASTFREESLOT = SPR_FIRSTFREESLOT + NUMSPRITEFREESLOTS - 1,
NUMSPRITES NUMSPRITES
@ -4309,11 +4311,6 @@ typedef enum state
S_HANGSTER_RETURN2, S_HANGSTER_RETURN2,
S_HANGSTER_RETURN3, S_HANGSTER_RETURN3,
S_OLDK_STND,
S_OLDK_DIE0,
S_OLDK_DIE1,
S_OLDK_DIE2,
S_CRUMBLE1, S_CRUMBLE1,
S_CRUMBLE2, S_CRUMBLE2,
@ -4374,6 +4371,12 @@ typedef enum state
S_NAMECHECK, S_NAMECHECK,
// LJ Knuckles
S_OLDK_STND,
S_OLDK_DIE0,
S_OLDK_DIE1,
S_OLDK_DIE2,
S_FIRSTFREESLOT, S_FIRSTFREESLOT,
S_LASTFREESLOT = S_FIRSTFREESLOT + NUMSTATEFREESLOTS - 1, S_LASTFREESLOT = S_FIRSTFREESLOT + NUMSTATEFREESLOTS - 1,
NUMSTATES NUMSTATES
@ -5122,8 +5125,6 @@ typedef enum mobj_type
MT_SPINBOBERT_FIRE2, MT_SPINBOBERT_FIRE2,
MT_HANGSTER, MT_HANGSTER,
MT_OLDK,
// Utility Objects // Utility Objects
MT_TELEPORTMAN, MT_TELEPORTMAN,
MT_ALTVIEWMAN, MT_ALTVIEWMAN,
@ -5174,6 +5175,8 @@ typedef enum mobj_type
MT_NAMECHECK, MT_NAMECHECK,
MT_RAY, // General purpose mobj MT_RAY, // General purpose mobj
MT_OLDK,
MT_FIRSTFREESLOT, MT_FIRSTFREESLOT,
MT_LASTFREESLOT = MT_FIRSTFREESLOT + NUMMOBJFREESLOTS - 1, MT_LASTFREESLOT = MT_FIRSTFREESLOT + NUMMOBJFREESLOTS - 1,
NUMMOBJTYPES NUMMOBJTYPES

View file

@ -8061,6 +8061,10 @@ static boolean P_MobjBossThink(mobj_t *mobj)
case MT_METALSONIC_BATTLE: case MT_METALSONIC_BATTLE:
P_Boss9Thinker(mobj); P_Boss9Thinker(mobj);
break; break;
case MT_OLDK:
if (mobj->health <= 0)
mobj->momz -= (2*FRACUNIT)/3;
break;
default: // Generic SOC-made boss default: // Generic SOC-made boss
if (mobj->flags2 & MF2_SKULLFLY) if (mobj->flags2 & MF2_SKULLFLY)
P_SpawnGhostMobj(mobj); P_SpawnGhostMobj(mobj);
@ -9529,10 +9533,6 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
if (!P_HangsterThink(mobj)) if (!P_HangsterThink(mobj))
return false; return false;
break; break;
case MT_OLDK:
if (mobj->health <= 0)
mobj->momz -= ((2*FRACUNIT)/3);
break;
case MT_LHRT: case MT_LHRT:
mobj->momx = FixedMul(mobj->momx, mobj->extravalue2); mobj->momx = FixedMul(mobj->momx, mobj->extravalue2);
mobj->momy = FixedMul(mobj->momy, mobj->extravalue2); mobj->momy = FixedMul(mobj->momy, mobj->extravalue2);