diff --git a/docs/rh-log.txt b/docs/rh-log.txt index 436836e97..8c676eb35 100644 --- a/docs/rh-log.txt +++ b/docs/rh-log.txt @@ -1,4 +1,7 @@ December 28, 2009 (Changes by Graf Zahl) +- Added full sound definitions for Heretic's ChickenPlayer and Hexen's + PigPlayer (submitted by NeuralStunner.) +- Added unmorph fix by Gez. - merged all portals with the same displacement together. While this provides a mild performance increase it's not what I hoped it would do... - Moved portal initialization for the portal things to P_SpawnSpecials diff --git a/src/g_shared/a_morph.cpp b/src/g_shared/a_morph.cpp index 4a730eb2f..a807ad70b 100644 --- a/src/g_shared/a_morph.cpp +++ b/src/g_shared/a_morph.cpp @@ -192,7 +192,7 @@ bool P_UndoPlayerMorph (player_t *activator, player_t *player, int unmorphflag, return false; } - bool DeliberateUnmorphIsOkay = !!(player->MorphStyle & unmorphflag); + bool DeliberateUnmorphIsOkay = !!(MORPH_STANDARDUNDOING & unmorphflag); if ((pmo->flags2 & MF2_INVULNERABLE) // If the player is invulnerable && ((player != activator) // and either did not decide to unmorph, diff --git a/src/g_shared/a_morph.h b/src/g_shared/a_morph.h index 1ddbf863d..e86332b3d 100644 --- a/src/g_shared/a_morph.h +++ b/src/g_shared/a_morph.h @@ -23,6 +23,9 @@ enum MORPH_UNDOBYDEATH = 0x00000200, // Actor unmorphs when killed and (unless MORPH_UNDOBYDEATHSAVES) stays dead MORPH_UNDOBYDEATHFORCED = 0x00000400, // Actor (if unmorphed when killed) forces unmorph (not very useful with UNDOBYDEATHSAVES) MORPH_UNDOBYDEATHSAVES = 0x00000800, // Actor (if unmorphed when killed) regains their health and doesn't die + MORPH_UNDOBYTIMEOUT = 0x00001000, // Player unmorphs once countdown expires + + MORPH_STANDARDUNDOING = MORPH_UNDOBYTOMEOFPOWER | MORPH_UNDOBYCHAOSDEVICE | MORPH_UNDOBYTIMEOUT, }; struct PClass; diff --git a/src/p_user.cpp b/src/p_user.cpp index 2792f22fa..ff3c8c01e 100644 --- a/src/p_user.cpp +++ b/src/p_user.cpp @@ -2309,7 +2309,7 @@ void P_PlayerThink (player_t *player) } if (!--player->morphTics) { // Attempt to undo the chicken/pig - P_UndoPlayerMorph (player, player); + P_UndoPlayerMorph (player, player, MORPH_UNDOBYTIMEOUT); } } // Cycle psprites diff --git a/wadsrc/static/sndinfo.txt b/wadsrc/static/sndinfo.txt index c8840310e..c69ef903e 100644 --- a/wadsrc/static/sndinfo.txt +++ b/wadsrc/static/sndinfo.txt @@ -545,6 +545,10 @@ $playersound player male *jump plrjmp $playersound player male *burndeath hedat1 $playeralias chicken male *usefail chicken/peck +$PlayerAlias Chicken Male *Grunt chicken/pain +$PlayerAlias Chicken Male *Land chicken/pain +$PlayerAlias Chicken Male *Jump chicken/active +$PlayerAlias Chicken Male *EvilLaugh chicken/active chicken/sight chicpai chicken/pain chicpai @@ -887,6 +891,14 @@ $playeralias mage male *puzzfail PuzzleFailMage $playersound mage male *jump mgjump $playeralias pig male *usefail PigActive1 +$PlayerAlias Pig Male *UseFail PigActive1 +$playeralias Pig Male *PuzzFail PigActive2 +$PlayerAlias Pig Male *Grunt PigActive1 +$PlayerAlias Pig Male *Land PigActive2 +$PlayerAlias Pig Male *Jump PigActive1 +$PlayerAlias Pig Male *Poison PigActive2 +$PlayerAlias Pig Male *Falling PigPain +$PlayerAlias Pig Male *Splat PigDeath $alias world/drip Ambient10 $alias world/watersplash WaterSplash