From 64edd91dbd56de778695abb533590eac0f5df767 Mon Sep 17 00:00:00 2001 From: ZipperQR Date: Wed, 22 Apr 2020 00:59:12 +0300 Subject: [PATCH] Dust devil support --- src/d_player.h | 3 ++- src/dehacked.c | 1 + src/p_enemy.c | 5 ++++- src/p_user.c | 3 +++ 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/d_player.h b/src/d_player.h index 8697e9836..e5c7e7298 100644 --- a/src/d_player.h +++ b/src/d_player.h @@ -239,7 +239,8 @@ typedef enum CR_MACESPIN, CR_MINECART, CR_ROLLOUT, - CR_PTERABYTE + CR_PTERABYTE, + CR_DUSTDEVIL } carrytype_t; // pw_carry // Player powers. (don't edit this comment) diff --git a/src/dehacked.c b/src/dehacked.c index e9d029be0..15e5bb060 100644 --- a/src/dehacked.c +++ b/src/dehacked.c @@ -9468,6 +9468,7 @@ struct { {"CR_MINECART",CR_MINECART}, {"CR_ROLLOUT",CR_ROLLOUT}, {"CR_PTERABYTE",CR_PTERABYTE}, + {"CR_DUSTDEVIL",CR_DUSTDEVIL}, // Ring weapons (ringweapons_t) // Useful for A_GiveWeapon diff --git a/src/p_enemy.c b/src/p_enemy.c index 2341be6d3..58f09cacb 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -13311,8 +13311,9 @@ static boolean PIT_DustDevilLaunch(mobj_t *thing) P_ResetPlayer(player); A_PlayActiveSound(dustdevil); } + player->powers[pw_carry] = CR_DUSTDEVIL; player->powers[pw_nocontrol] = 2; - player->drawangle += ANG20; + P_SetTarget(&thing->tracer, dustdevil); P_SetPlayerMobjState(thing, S_PLAY_PAIN); if (dist > dragamount) @@ -13332,7 +13333,9 @@ static boolean PIT_DustDevilLaunch(mobj_t *thing) P_ResetPlayer(player); thing->z = dustdevil->z + dustdevil->height; thrust = 20 * FRACUNIT; + player->powers[pw_carry] = CR_NONE; player->powers[pw_nocontrol] = 0; + P_SetTarget(&thing->tracer, NULL); S_StartSound(thing, sfx_wdjump); P_SetPlayerMobjState(thing, S_PLAY_FALL); } diff --git a/src/p_user.c b/src/p_user.c index 1f46a2dff..28d2d6a5e 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -11950,6 +11950,9 @@ void P_PlayerThink(player_t *player) break; } /* FALLTHRU */ + case CR_DUSTDEVIL: + player->drawangle += ANG20; + break; default: player->drawangle = player->mo->angle; break;