mirror of
https://github.com/UberGames/EF2GameSource.git
synced 2025-04-18 21:10:42 +00:00
reformat
This commit is contained in:
parent
61be76cf60
commit
2e3001da5b
1 changed files with 118 additions and 120 deletions
|
@ -1,120 +1,118 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// $Logfile:: /Code/DLLs/game/actor_enemymanager.h $
|
||||
// $Revision:: 16 $
|
||||
// $Author:: Steven $
|
||||
// $Date:: 10/13/03 8:53a $
|
||||
//
|
||||
// Copyright (C) 2001 by Ritual Entertainment, Inc.
|
||||
// All rights reserved.
|
||||
//
|
||||
// This source may not be distributed and/or modified without
|
||||
// expressly written permission by Ritual Entertainment, Inc.
|
||||
//
|
||||
//
|
||||
// DESCRIPTION:
|
||||
// EnemyManager class for Actors -- Handles all the hatelist management
|
||||
//
|
||||
|
||||
class EnemyManager;
|
||||
|
||||
#ifndef __ACTOR_ENEMYMANAGER_H__
|
||||
#define __ACTOR_ENEMYMANAGER_H__
|
||||
|
||||
#include "actor.h"
|
||||
#include "actorincludes.h"
|
||||
#include "weapon.h"
|
||||
|
||||
//============================
|
||||
// Class EnemyManager
|
||||
//============================
|
||||
//
|
||||
// Class used to handle all enemy management by actors.
|
||||
//
|
||||
// Notes:
|
||||
// _currentEnemy and _alternateTarget -- _currentEnemy should always be used to
|
||||
// house the Sentient ( i.e. Actor or Player ) at the top of the hatelist.
|
||||
// _alternateTarget should be used for "non-living" things ( Like ThrowObjects or
|
||||
// ExplodingObjects... things like that.
|
||||
//
|
||||
// As behaviors get used, and proves necessary, we can add a flag that will allow the
|
||||
// state machine to set and use the _alternateTarget
|
||||
class EnemyManager
|
||||
{
|
||||
public:
|
||||
EnemyManager();
|
||||
EnemyManager( Actor *actor );
|
||||
~EnemyManager();
|
||||
|
||||
void FindHighestHateEnemy();
|
||||
void FindNextEnemy();
|
||||
void FindClosestEnemy();
|
||||
void ClearCurrentEnemy();
|
||||
void ClearHateList();
|
||||
qboolean Hates( Entity *ent );
|
||||
qboolean Likes( Entity *ent );
|
||||
qboolean CanAttack( Entity *ent );
|
||||
qboolean CanAttackAnyEnemy();
|
||||
|
||||
EntityPtr GetCurrentEnemy();
|
||||
void SetCurrentEnemy( Entity *enemy );
|
||||
|
||||
bool CanGetToEntity(Entity *enemy);
|
||||
|
||||
EntityPtr GetAlternateTarget();
|
||||
void SetAlternateTarget( Entity *target );
|
||||
|
||||
void TryToAddToHateList( Entity *enemy );
|
||||
qboolean IsInHateList( Entity *enemy );
|
||||
qboolean IsLastInHateList( Entity* enemy );
|
||||
|
||||
void AdjustHate( Entity *enemy , float adjustment );
|
||||
void AdjustDamageCaused( Entity *enemy, float adjustment );
|
||||
|
||||
void TrivialUpdate();
|
||||
void Update();
|
||||
void UpdateDistance( HateListEntry_t *listIndex );
|
||||
void UpdateCanSee( HateListEntry_t *listIndex );
|
||||
void UpdateAttackers( HateListEntry_t *listIndex );
|
||||
|
||||
void LockOnCurrentEnemy( qboolean lock );
|
||||
qboolean IsLockedOnCurrentEnemy();
|
||||
|
||||
Vector GetAwayFromEnemies();
|
||||
qboolean InEnemyLineOfFire();
|
||||
float GetDistanceFromEnemy();
|
||||
void TrySleep( void );
|
||||
|
||||
bool HasEnemy();
|
||||
|
||||
// Utility Functions
|
||||
qboolean IsValidEnemy( Entity *enemy );
|
||||
bool IsAnyEnemyInRange( float range );
|
||||
float getEnemyCount();
|
||||
|
||||
|
||||
// Archiving
|
||||
virtual void Archive( Archiver &arc );
|
||||
void DoArchive ( Archiver &arc , Actor *actor );
|
||||
|
||||
|
||||
protected: //Member Functions
|
||||
void _AddToHateList( Entity *enemy );
|
||||
int _findEntityInHateList( Entity *searchEnt );
|
||||
|
||||
|
||||
private: //Member Variables
|
||||
Container<HateListEntry_t> _hateList;
|
||||
EntityPtr _currentEnemy;
|
||||
EntityPtr _lastEnemy;
|
||||
EntityPtr _alternateTarget;
|
||||
qboolean _lockedOnCurrentEnemy;
|
||||
float _currentEnemyHate;
|
||||
|
||||
|
||||
Actor *act;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif /* __ACTOR_ENEMYMANAGER_H__ */
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// $Logfile:: /Code/DLLs/game/actor_enemymanager.h $
|
||||
// $Revision:: 16 $
|
||||
// $Author:: Steven $
|
||||
// $Date:: 10/13/03 8:53a $
|
||||
//
|
||||
// Copyright (C) 2001 by Ritual Entertainment, Inc.
|
||||
// All rights reserved.
|
||||
//
|
||||
// This source may not be distributed and/or modified without
|
||||
// expressly written permission by Ritual Entertainment, Inc.
|
||||
//
|
||||
//
|
||||
// DESCRIPTION:
|
||||
// EnemyManager class for Actors -- Handles all the hatelist management
|
||||
//
|
||||
|
||||
class EnemyManager;
|
||||
|
||||
#ifndef __ACTOR_ENEMYMANAGER_H__
|
||||
#define __ACTOR_ENEMYMANAGER_H__
|
||||
|
||||
#include "actor.h"
|
||||
#include "actorincludes.h"
|
||||
#include "weapon.h"
|
||||
|
||||
//============================
|
||||
// Class EnemyManager
|
||||
//============================
|
||||
//
|
||||
// Class used to handle all enemy management by actors.
|
||||
//
|
||||
// Notes:
|
||||
// _currentEnemy and _alternateTarget -- _currentEnemy should always be used to
|
||||
// house the Sentient ( i.e. Actor or Player ) at the top of the hatelist.
|
||||
// _alternateTarget should be used for "non-living" things ( Like ThrowObjects or
|
||||
// ExplodingObjects... things like that.
|
||||
//
|
||||
// As behaviors get used, and proves necessary, we can add a flag that will allow the
|
||||
// state machine to set and use the _alternateTarget
|
||||
class EnemyManager {
|
||||
public:
|
||||
EnemyManager();
|
||||
EnemyManager(Actor* actor);
|
||||
~EnemyManager();
|
||||
|
||||
void FindHighestHateEnemy();
|
||||
void FindNextEnemy();
|
||||
void FindClosestEnemy();
|
||||
void ClearCurrentEnemy();
|
||||
void ClearHateList();
|
||||
qboolean Hates(Entity* ent);
|
||||
qboolean Likes(Entity* ent);
|
||||
qboolean CanAttack(Entity* ent);
|
||||
qboolean CanAttackAnyEnemy();
|
||||
|
||||
EntityPtr GetCurrentEnemy();
|
||||
void SetCurrentEnemy(Entity* enemy);
|
||||
|
||||
bool CanGetToEntity(Entity* enemy);
|
||||
|
||||
EntityPtr GetAlternateTarget();
|
||||
void SetAlternateTarget(Entity* target);
|
||||
|
||||
void TryToAddToHateList(Entity* enemy);
|
||||
qboolean IsInHateList(Entity* enemy);
|
||||
qboolean IsLastInHateList(Entity* enemy);
|
||||
|
||||
void AdjustHate(Entity* enemy, float adjustment);
|
||||
void AdjustDamageCaused(Entity* enemy, float adjustment);
|
||||
|
||||
void TrivialUpdate();
|
||||
void Update();
|
||||
void UpdateDistance(HateListEntry_t* listIndex);
|
||||
void UpdateCanSee(HateListEntry_t* listIndex);
|
||||
void UpdateAttackers(HateListEntry_t* listIndex);
|
||||
|
||||
void LockOnCurrentEnemy(qboolean lock);
|
||||
qboolean IsLockedOnCurrentEnemy();
|
||||
|
||||
Vector GetAwayFromEnemies();
|
||||
qboolean InEnemyLineOfFire();
|
||||
float GetDistanceFromEnemy();
|
||||
void TrySleep(void);
|
||||
|
||||
bool HasEnemy();
|
||||
|
||||
// Utility Functions
|
||||
qboolean IsValidEnemy(Entity* enemy);
|
||||
bool IsAnyEnemyInRange(float range);
|
||||
float getEnemyCount();
|
||||
|
||||
|
||||
// Archiving
|
||||
virtual void Archive(Archiver& arc);
|
||||
void DoArchive(Archiver& arc, Actor* actor);
|
||||
|
||||
|
||||
protected: //Member Functions
|
||||
void _AddToHateList(Entity* enemy);
|
||||
int _findEntityInHateList(Entity* searchEnt);
|
||||
|
||||
|
||||
private: //Member Variables
|
||||
Container<HateListEntry_t> _hateList;
|
||||
EntityPtr _currentEnemy;
|
||||
EntityPtr _lastEnemy;
|
||||
EntityPtr _alternateTarget;
|
||||
qboolean _lockedOnCurrentEnemy;
|
||||
float _currentEnemyHate;
|
||||
|
||||
Actor* act;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif /* __ACTOR_ENEMYMANAGER_H__ */
|
||||
|
|
Loading…
Reference in a new issue