From f667e68c94bbd62d56c9b242ee00cace51133b47 Mon Sep 17 00:00:00 2001 From: Randy Heit Date: Fri, 25 Dec 2009 01:02:19 +0000 Subject: [PATCH] - Fixed: P_CheckPlayerSprites() ignored the MF4_NOSKIN flag. It now also sets the X scale, so switching skins while morphed does not produce weird stretching upon unmorphing. SVN r2042 (trunk) --- docs/rh-log.txt | 3 +++ src/p_user.cpp | 10 +++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/docs/rh-log.txt b/docs/rh-log.txt index bd6e9ca3ec..901dd172f9 100644 --- a/docs/rh-log.txt +++ b/docs/rh-log.txt @@ -1,4 +1,7 @@ December 24, 2009 +- Fixed: P_CheckPlayerSprites() ignored the MF4_NOSKIN flag. It now also sets + the X scale, so switching skins while morphed does not produce weird + stretching upon unmorphing. - Fixed: Calling S_ChangeMusic() with the same song but a different looping flag now restarts the song so that the new looping setting can be applied. (This was easier than modifying every music handler to support modifying diff --git a/src/p_user.cpp b/src/p_user.cpp index 82914b1f66..6f951ad24c 100644 --- a/src/p_user.cpp +++ b/src/p_user.cpp @@ -1399,10 +1399,12 @@ void P_CheckPlayerSprites() { int crouchspriteno; fixed_t defscaleY = mo->GetDefault()->scaleY; + fixed_t defscaleX = mo->GetDefault()->scaleX; - if (player->userinfo.skin != 0) + if (player->userinfo.skin != 0 && !(player->mo->flags4 & MF4_NOSKIN)) { defscaleY = skins[player->userinfo.skin].ScaleY; + defscaleX = skins[player->userinfo.skin].ScaleX; } // Set the crouch sprite @@ -1413,8 +1415,9 @@ void P_CheckPlayerSprites() { crouchspriteno = mo->crouchsprite; } - else if (mo->sprite == skins[player->userinfo.skin].sprite || - mo->sprite == skins[player->userinfo.skin].crouchsprite) + else if (!(player->mo->flags4 & MF4_NOSKIN) && + (mo->sprite == skins[player->userinfo.skin].sprite || + mo->sprite == skins[player->userinfo.skin].crouchsprite)) { crouchspriteno = skins[player->userinfo.skin].crouchsprite; } @@ -1446,6 +1449,7 @@ void P_CheckPlayerSprites() } mo->scaleY = defscaleY; } + mo->scaleX = defscaleX; } } }