From d6b466b7dd4271d2468e449fa7d06bc9209187e9 Mon Sep 17 00:00:00 2001 From: wolfy852 Date: Sat, 5 Jul 2014 03:15:35 -0500 Subject: [PATCH] Add skin flag for running on water --- src/d_player.h | 1 + src/dehacked.c | 1 + src/p_mobj.c | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/d_player.h b/src/d_player.h index 65333ecc..3bced1a8 100644 --- a/src/d_player.h +++ b/src/d_player.h @@ -38,6 +38,7 @@ typedef enum SF_HIRES = 1<<3, // Draw the sprite 2x as small? SF_NOSKID = 1<<4, // No skid particles etc SF_NOSPEEDADJUST = 1<<5, // Skin-specific version of disablespeedadjust + SF_RUNONWATER = 1<<6, // Run on top of water FOFs? } skinflags_t; //Primary and secondary skin abilities diff --git a/src/dehacked.c b/src/dehacked.c index 284d82c3..37bd5295 100644 --- a/src/dehacked.c +++ b/src/dehacked.c @@ -7507,6 +7507,7 @@ struct { {"SF_HIRES",SF_HIRES}, {"SF_NOSKID",SF_NOSKID}, {"SF_NOSPEEDADJUST",SF_NOSPEEDADJUST}, + {"SF_RUNONWATER",SF_RUNONWATER}, // Character abilities! // Primary diff --git a/src/p_mobj.c b/src/p_mobj.c index 29ba5d04..eaf57e57 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -2398,7 +2398,7 @@ static boolean P_SceneryZMovement(mobj_t *mo) boolean P_CanRunOnWater(player_t *player, ffloor_t *rover) { if (!(player->pflags & PF_NIGHTSMODE) && !player->homing - && (((player->charability == CA_SWIM) || player->powers[pw_super]) && player->mo->ceilingz-*rover->topheight >= player->mo->height) + && (((player->charability == CA_SWIM) || player->powers[pw_super] || player->charflags & SF_RUNONWATER) && player->mo->ceilingz-*rover->topheight >= player->mo->height) && (rover->flags & FF_SWIMMABLE) && !(player->pflags & PF_SPINNING) && player->speed > FixedMul(player->runspeed, player->mo->scale) && !(player->pflags & PF_SLIDING) && abs(player->mo->z - *rover->topheight) < FixedMul(30*FRACUNIT, player->mo->scale))