From 52bd4b05e1d4d74083e6c50331df07363e92e73d Mon Sep 17 00:00:00 2001 From: toaster Date: Fri, 15 Nov 2019 15:20:36 +0000 Subject: [PATCH 1/3] * Make the Egg Capsule only explode for one second, but have the number of explosions (and flickies) multiplied 1.5 times. * If the player is spindashing when the level is exited, they will un-spindash. (Currently you get stuck in charging) --- src/p_inter.c | 2 +- src/p_mobj.c | 6 +++--- src/p_user.c | 5 +++++ 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/p_inter.c b/src/p_inter.c index b0a401b10..4f1b5c5bb 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -2741,7 +2741,7 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, UINT8 damaget case MT_EGGTRAP: // Time for birdies! Yaaaaaaaay! - target->fuse = TICRATE*2; + target->fuse = TICRATE; break; case MT_MINECART: diff --git a/src/p_mobj.c b/src/p_mobj.c index 5d6a8a10f..2fff12fa4 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -8227,7 +8227,7 @@ void P_MobjThinker(mobj_t *mobj) mobj->flags2 ^= MF2_DONTDRAW; break; case MT_EGGTRAP: // Egg Capsule animal release - if (mobj->fuse > 0 && mobj->fuse < 2*TICRATE-(TICRATE/7)) + if (mobj->fuse > 0)// && mobj->fuse < TICRATE-(TICRATE/7)) { INT32 i; fixed_t x,y,z; @@ -8236,9 +8236,9 @@ void P_MobjThinker(mobj_t *mobj) mobj_t *flicky; z = mobj->subsector->sector->floorheight + FRACUNIT + (P_RandomKey(64)<x + FixedMul(FINESINE(fa),ns); y = mobj->y + FixedMul(FINECOSINE(fa),ns); diff --git a/src/p_user.c b/src/p_user.c index 3c481e7e2..f992ae679 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -2158,6 +2158,11 @@ void P_DoPlayerExit(player_t *player) player->pflags |= P_GetJumpFlags(player); P_SetPlayerMobjState(player->mo, S_PLAY_JUMP); } + else if (player->pflags & PF_STARTDASH) + { + player->pflags &= ~PF_STARTDASH; + P_SetPlayerMobjState(player->mo, S_PLAY_STND); + } player->powers[pw_underwater] = 0; player->powers[pw_spacetime] = 0; P_RestoreMusic(player); From 0c98fb746ca395b9440f387699a61491ff82049a Mon Sep 17 00:00:00 2001 From: toaster Date: Sun, 17 Nov 2019 18:04:02 +0000 Subject: [PATCH 2/3] Add some NiGHTS animations which default to normal player sprite2s to the existing player->panim set list, which makes Tails' tails appear due to how P_DoTailsOverlay is coded (assuming the skin is Tails, requiring them to have SPR2_NFLY available). --- src/p_mobj.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/p_mobj.c b/src/p_mobj.c index 5d6a8a10f..3479f2f0f 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -246,6 +246,7 @@ boolean P_SetPlayerMobjState(mobj_t *mobj, statenum_t state) { case S_PLAY_STND: case S_PLAY_WAIT: + case S_PLAY_NIGHTS_STAND: player->panim = PA_IDLE; break; case S_PLAY_EDGE: @@ -254,6 +255,7 @@ boolean P_SetPlayerMobjState(mobj_t *mobj, statenum_t state) case S_PLAY_WALK: case S_PLAY_SKID: case S_PLAY_FLOAT: + case S_PLAY_NIGHTS_FLOAT: player->panim = PA_WALK; break; case S_PLAY_RUN: @@ -269,6 +271,7 @@ boolean P_SetPlayerMobjState(mobj_t *mobj, statenum_t state) break; case S_PLAY_ROLL: //case S_PLAY_SPINDASH: -- everyone can ROLL thanks to zoom tubes... + case S_PLAY_NIGHTS_ATTACK: player->panim = PA_ROLL; break; case S_PLAY_JUMP: From ef5558af97ea44c963bb14fc4c1f139a7c1c7b07 Mon Sep 17 00:00:00 2001 From: toaster Date: Sun, 17 Nov 2019 20:34:25 +0000 Subject: [PATCH 3/3] Hardcode DrT's FHZ improvements. Puttin' the FREEZE in feature freeze amirite haha --- src/dehacked.c | 4 ++++ src/info.c | 44 +++++++++++++++++++++++++++++++++++++------- src/info.h | 4 ++++ src/sounds.c | 2 +- 4 files changed, 46 insertions(+), 8 deletions(-) diff --git a/src/dehacked.c b/src/dehacked.c index fff9dbee8..8d59f33ae 100644 --- a/src/dehacked.c +++ b/src/dehacked.c @@ -7497,6 +7497,9 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit "S_POPHAT_SHOOT1", "S_POPHAT_SHOOT2", "S_POPHAT_SHOOT3", + "S_POPHAT_SHOOT4", + "S_POPSHOT", + "S_POPSHOT_TRAIL", "S_HIVEELEMENTAL_LOOK", "S_HIVEELEMENTAL_PREPARE1", @@ -8361,6 +8364,7 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s "MT_PENGUINATOR", "MT_POPHAT", "MT_POPSHOT", + "MT_POPSHOT_TRAIL", "MT_HIVEELEMENTAL", "MT_BUMBLEBORE", diff --git a/src/info.c b/src/info.c index ed29fe2bf..9373b67d8 100644 --- a/src/info.c +++ b/src/info.c @@ -3722,9 +3722,12 @@ state_t states[NUMSTATES] = {SPR_PENG, 0, 5, {A_FaceTarget}, 0, 0, S_PENGUINATOR_LOOK}, // S_PENGUINATOR_SLIDE5 {SPR_POPH, 0, 2, {A_Look}, (2048<<16)|1, 0, S_POPHAT_LOOK}, // S_POPHAT_LOOK - {SPR_POPH, 1, 2, {A_LobShot}, MT_POPSHOT, (70<<16)|60, S_POPHAT_SHOOT2}, // S_POPHAT_SHOOT1 - {SPR_POPH, 2, 1, {NULL}, 0, 0, S_POPHAT_SHOOT3}, // S_POPHAT_SHOOT2 - {SPR_POPH, 0, 57, {NULL}, 0, 0, S_POPHAT_LOOK}, // S_POPHAT_SHOOT3 + {SPR_POPH, 1, 0, {A_MultiShotDist}, (MT_SPINDUST<<16)|4, 24, S_POPHAT_SHOOT2}, // S_POPHAT_SHOOT1 + {SPR_POPH, 1, 2, {A_LobShot}, MT_POPSHOT, (70<<16)|60, S_POPHAT_SHOOT3}, // S_POPHAT_SHOOT2 + {SPR_POPH, 2, 1, {NULL}, 0, 0, S_POPHAT_SHOOT4}, // S_POPHAT_SHOOT3 + {SPR_POPH, 0, 57, {NULL}, 0, 0, S_POPHAT_LOOK}, // S_POPHAT_SHOOT4 + {SPR_POPH, 3, 3, {A_SpawnObjectRelative}, 0, MT_POPSHOT_TRAIL, S_POPSHOT}, // S_POPSHOT + {SPR_NULL, 0, 2, {NULL}, 0, 0, S_SPINDUST1}, // S_POPSHOT_TRAIL {SPR_HIVE, 0, 5, {A_Look}, 1, 1, S_HIVEELEMENTAL_LOOK}, // S_HIVEELEMENTAL_LOOK {SPR_HIVE, 0, 14, {A_PlaySound}, sfx_s3k76, 1, S_HIVEELEMENTAL_PREPARE2}, // S_HIVEELEMENTAL_PREPARE1 @@ -19989,10 +19992,10 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = { // MT_POPSHOT -1, // doomednum - S_ROCKCRUMBLEI, // spawnstate + S_POPSHOT, // spawnstate 1, // spawnhealth S_NULL, // seestate - sfx_cannon, // seesound + sfx_kc4c, // seesound 0, // reactiontime sfx_None, // attacksound S_NULL, // painstate @@ -20000,9 +20003,9 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = sfx_None, // painsound S_NULL, // meleestate S_NULL, // missilestate - S_XPLD1, // deathstate + S_SONIC3KBOSSEXPLOSION1, // deathstate S_NULL, // xdeathstate - sfx_pop, // deathsound + sfx_cybdth, // deathsound 0, // speed 16*FRACUNIT, // radius 32*FRACUNIT, // height @@ -20014,6 +20017,33 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, + { // MT_POPSHOT_TRAIL + -1, // doomednum + S_POPSHOT_TRAIL,// 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 + 4*FRACUNIT, // speed + 4*FRACUNIT, // radius + 4*FRACUNIT, // height + 0, // display offset + 4, // mass + 0, // damage + sfx_None, // activesound + MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_NOCLIP, // flags + S_NULL // raisestate + }, + { // MT_HIVEELEMENTAL 127, // doomednum S_HIVEELEMENTAL_LOOK, // spawnstate diff --git a/src/info.h b/src/info.h index bbb6a21fc..622f86f23 100644 --- a/src/info.h +++ b/src/info.h @@ -3812,6 +3812,9 @@ typedef enum state S_POPHAT_SHOOT1, S_POPHAT_SHOOT2, S_POPHAT_SHOOT3, + S_POPHAT_SHOOT4, + S_POPSHOT, + S_POPSHOT_TRAIL, S_HIVEELEMENTAL_LOOK, S_HIVEELEMENTAL_PREPARE1, @@ -4698,6 +4701,7 @@ typedef enum mobj_type MT_PENGUINATOR, MT_POPHAT, MT_POPSHOT, + MT_POPSHOT_TRAIL, MT_HIVEELEMENTAL, MT_BUMBLEBORE, diff --git a/src/sounds.c b/src/sounds.c index b067903b1..ba2402eb9 100644 --- a/src/sounds.c +++ b/src/sounds.c @@ -779,7 +779,7 @@ sfxinfo_t S_sfx[NUMSFX] = {"kc49", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, ""}, {"kc4a", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, ""}, {"kc4b", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, ""}, - {"kc4c", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, ""}, + {"kc4c", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Pop-shot"}, {"kc4d", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Power up"}, {"kc4e", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, ""}, {"kc4f", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, ""},