- Adjust VisibleToPlayerClass to accept multiple classes as well as work with inheritance.
SVN r3291 (trunk)
This commit is contained in:
parent
c013e72caa
commit
faa122ede3
4 changed files with 22 additions and 9 deletions
|
|
@ -892,9 +892,21 @@ bool AActor::IsVisibleToPlayer() const
|
|||
|
||||
const player_t* pPlayer = players[consoleplayer].camera->player;
|
||||
|
||||
if ( ( VisibleToPlayerClass != NAME_None )
|
||||
&& pPlayer && pPlayer->mo && ( VisibleToPlayerClass != pPlayer->mo->GetClass()->TypeName ) )
|
||||
return false;
|
||||
if(pPlayer && pPlayer->mo && GetClass()->ActorInfo->VisibleToPlayerClass.Size() > 0)
|
||||
{
|
||||
bool visible = false;
|
||||
for(unsigned int i = 0;i < GetClass()->ActorInfo->VisibleToPlayerClass.Size();++i)
|
||||
{
|
||||
const PClass *cls = GetClass()->ActorInfo->VisibleToPlayerClass[i];
|
||||
if(cls && pPlayer->mo->GetClass()->IsDescendantOf(cls))
|
||||
{
|
||||
visible = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!visible)
|
||||
return false;
|
||||
}
|
||||
|
||||
// [BB] Passed all checks.
|
||||
return true;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue