- Added AActor::SetFriendPlayer() to make setting FriendPlayer cleaner to read when doing it with

a player_t pointer.

SVN r3681 (trunk)
This commit is contained in:
Randy Heit 2012-06-09 04:15:56 +00:00
parent 2c6763d750
commit 086d0a797e
8 changed files with 28 additions and 49 deletions

View file

@ -768,6 +768,8 @@ public:
return bloodcls;
}
inline void SetFriendPlayer(player_t *player);
bool IsVisibleToPlayer() const;
// Calculate amount of missile damage

View file

@ -424,6 +424,18 @@ FArchive &operator<< (FArchive &arc, player_t *&p);
void P_CheckPlayerSprites();
inline void AActor::SetFriendPlayer(player_t *player)
{
if (player == NULL)
{
FriendPlayer = 0;
}
else
{
FriendPlayer = int(player - players) + 1;
}
}
#define CROUCHSPEED (FRACUNIT/12)

View file

@ -72,10 +72,7 @@ DEFINE_ACTION_FUNCTION(AActor, A_Summon)
mo->tracer = self->tracer; // Pointer to master
AInventory *power = Spawn<APowerMinotaur> (0, 0, 0, NO_REPLACE);
power->CallTryPickup (self->tracer);
if (self->tracer->player != NULL)
{
mo->FriendPlayer = int(self->tracer->player - players + 1);
}
mo->SetFriendPlayer(self->tracer->player);
}
// Make smoke puff

View file

@ -100,7 +100,7 @@ DEFINE_ACTION_FUNCTION(AActor, A_Beacon)
{
rebel->Translation = owner->Translation;
}
rebel->FriendPlayer = owner->player != NULL ? BYTE(owner->player - players + 1) : 0;
rebel->SetFriendPlayer(owner->player);
// Set the rebel's target to whatever last hurt the player, so long as it's not
// one of the player's other rebels.
if (owner->target != NULL && !rebel->IsFriend (owner->target))

View file

@ -532,13 +532,9 @@ AActor *P_SpawnSubMissile (AActor *source, const PClass *type, AActor *target)
{
other->FriendPlayer = source->FriendPlayer;
}
else if (target->player != NULL)
{
other->FriendPlayer = int(target->player - players) + 1;
}
else
{
other->FriendPlayer = 0;
other->SetFriendPlayer(target->player);
}
}
@ -925,7 +921,7 @@ DEFINE_ACTION_FUNCTION(AActor, A_FireSigil1)
}
if (spot != NULL)
{
spot->FriendPlayer = int(player-players)+1;
spot->SetFriendPlayer(player);
spot->target = self;
}
}

View file

@ -2656,7 +2656,7 @@ int DoSetMaster (AActor *self, AActor *master)
self->master = NULL;
level.total_monsters -= self->CountsAsKill();
self->flags|=MF_FRIENDLY;
self->FriendPlayer = int(master->player-players+1);
self->SetFriendPlayer(master->player);
AActor * attacker=master->player->attacker;
if (attacker)

View file

@ -5387,14 +5387,7 @@ AActor *P_SpawnMissileXYZ (fixed_t x, fixed_t y, fixed_t z,
if (th->flags4 & MF4_SPECTRAL)
{
if (owner->player != NULL)
{
th->FriendPlayer = int(owner->player - players) + 1;
}
else
{
th->FriendPlayer = 0;
}
th->SetFriendPlayer(owner->player);
}
return (!checkspawn || P_CheckMissileSpawn (th)) ? th : NULL;
@ -5424,14 +5417,7 @@ AActor * P_OldSpawnMissile(AActor * source, AActor * owner, AActor * dest, const
if (th->flags4 & MF4_SPECTRAL)
{
if (owner->player != NULL)
{
th->FriendPlayer = int(owner->player - players) + 1;
}
else
{
th->FriendPlayer = 0;
}
th->SetFriendPlayer(owner->player);
}
P_CheckMissileSpawn(th);
@ -5520,14 +5506,7 @@ AActor *P_SpawnMissileAngleZSpeed (AActor *source, fixed_t z,
if (mo->flags4 & MF4_SPECTRAL)
{
if (owner->player != NULL)
{
mo->FriendPlayer = int(owner->player - players) + 1;
}
else
{
mo->FriendPlayer = 0;
}
mo->SetFriendPlayer(owner->player);
}
return (!checkspawn || P_CheckMissileSpawn(mo)) ? mo : NULL;
@ -5642,14 +5621,7 @@ AActor *P_SpawnPlayerMissile (AActor *source, fixed_t x, fixed_t y, fixed_t z,
if (MissileActor->flags4 & MF4_SPECTRAL)
{
if (source->player != NULL)
{
MissileActor->FriendPlayer = int(source->player - players) + 1;
}
else
{
MissileActor->FriendPlayer = 0;
}
MissileActor->SetFriendPlayer(source->player);
}
if (P_CheckMissileSpawn (MissileActor))
{

View file

@ -963,11 +963,11 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_CustomMissile)
missile->tracer=self->target;
}
// we must redo the spectral check here because the owner is set after spawning so the FriendPlayer value may be wrong
if (missile->flags4&MF4_SPECTRAL)
if (missile->flags4 & MF4_SPECTRAL)
{
if (missile->target != NULL && missile->target->player != NULL)
if (missile->target != NULL)
{
missile->FriendPlayer = int(missile->target->player - players) + 1;
missile->SetFriendPlayer(missile->target->player);
}
else
{
@ -1737,8 +1737,8 @@ static bool InitSpawnedItem(AActor *self, AActor *mo, int flags)
else if (originator->player)
{
// A player always spawns a monster friendly to him
mo->flags|=MF_FRIENDLY;
mo->FriendPlayer = int(originator->player-players+1);
mo->flags |= MF_FRIENDLY;
mo->SetFriendPlayer(originator->player);
AActor * attacker=originator->player->attacker;
if (attacker)