- Added player MugShotMaxHealth property. Negative values use the player's

max health as the mug shot max health, zero uses 100 as the mug shot max
  health, and positive values used directly as the mug shot max health.


SVN r1757 (trunk)
This commit is contained in:
Randy Heit 2009-08-07 04:20:28 +00:00
parent f9088bd2cf
commit 63e26df7b2
5 changed files with 25 additions and 1 deletions

View file

@ -1,4 +1,7 @@
August 6, 2009 August 6, 2009
- Added player MugShotMaxHealth property. Negative values use the player's
max health as the mug shot max health, zero uses 100 as the mug shot max
health, and positive values used directly as the mug shot max health.
- Added buddha cheat. - Added buddha cheat.
- Added TELEFRAG_DAMAGE constant, and changed the two places that still used - Added TELEFRAG_DAMAGE constant, and changed the two places that still used
1000 as the threshold for god mode damage to use it instead. (Players with 1000 as the threshold for god mode damage to use it instead. (Players with

View file

@ -117,6 +117,7 @@ public:
int crouchsprite; int crouchsprite;
int MaxHealth; int MaxHealth;
int MugShotMaxHealth;
int RunHealth; int RunHealth;
int PlayerFlags; int PlayerFlags;
TObjPtr<AInventory> InvFirst; // first inventory item displayed on inventory bar TObjPtr<AInventory> InvFirst; // first inventory item displayed on inventory bar

View file

@ -40,6 +40,7 @@
#include "d_event.h" #include "d_event.h"
#include "sbar.h" #include "sbar.h"
#include "sbarinfo.h" #include "sbarinfo.h"
#include "templates.h"
#define ST_RAMPAGEDELAY (2*TICRATE) #define ST_RAMPAGEDELAY (2*TICRATE)
#define ST_MUCHPAIN 20 #define ST_MUCHPAIN 20
@ -476,7 +477,16 @@ FTexture *FMugShot::GetFace(player_t *player, const char *default_face, int accu
{ {
int angle = UpdateState(player, stateflags); int angle = UpdateState(player, stateflags);
int level = 0; int level = 0;
while (player->health < (accuracy-1-level) * (player->mo->GetMaxHealth()/accuracy)) int max = player->mo->MugShotMaxHealth;
if (max < 0)
{
max = player->mo->GetMaxHealth();
}
else if (max == 0)
{
max = 100;
}
while (player->health < (accuracy - 1 - level) * (max / accuracy))
{ {
level++; level++;
} }

View file

@ -1860,6 +1860,15 @@ DEFINE_CLASS_PROPERTY_PREFIX(player, maxhealth, I, PlayerPawn)
defaults->MaxHealth = z; defaults->MaxHealth = z;
} }
//==========================================================================
//
//==========================================================================
DEFINE_CLASS_PROPERTY_PREFIX(player, mugshotmaxhealth, I, PlayerPawn)
{
PROP_INT_PARM(z, 0);
defaults->MugShotMaxHealth = z;
}
//========================================================================== //==========================================================================
// //
//========================================================================== //==========================================================================

View file

@ -27,6 +27,7 @@ Actor PlayerPawn : Actor native
Player.ColorRange 0,0 Player.ColorRange 0,0
Player.SoundClass "player" Player.SoundClass "player"
Player.DamageScreenColor "ff 00 00" Player.DamageScreenColor "ff 00 00"
Player.MugShotMaxHealth 0
} }
Actor PlayerChunk : PlayerPawn native Actor PlayerChunk : PlayerPawn native