metaforce/Runtime/World/CAi.hpp

180 lines
8.0 KiB
C++

#ifndef __URDE_CAI_HPP__
#define __URDE_CAI_HPP__
#include "GCNTypes.hpp"
#include "ScriptObjectSupport.hpp"
#include "RetroTypes.hpp"
#include "CEntity.hpp"
#include "CPhysicsActor.hpp"
#include "CDamageVulnerability.hpp"
#include "zeus/zeus.hpp"
namespace urde
{
/* TODO: Figure out what all this is for and move it somewhere appropriate */
enum class EStateMsg
{
};
enum class EListenNoiseType
{
};
class CAiFuncMap
{
/* TODO: Figure out return type, I think it's a string */
void GetStateFunc(const char*);
void GetTriggerFunc(const char*);
};
/* TODO: Move these */
class CHealthInfo
{
float x0_;
float x4_;
public:
CHealthInfo(CInputStream& in) : x0_(in.readFloatBig()), x4_(in.readFloatBig()) {}
};
class CStateManager;
class CAi : public CPhysicsActor
{
CHealthInfo x240_healthInfo;
CDamageVulnerability x248_damageVulnerability;
public:
void CreateFuncLookup(CAiFuncMap* funcMap) { }
void GetStateFunc(const char*) {}
void GetTrigerFunc(const char*) {}
void GetStateMachine() {}
/* TODO: Figure out the return types, if any, and fix these prototypes */
virtual void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) {}
virtual CHealthInfo HealthInfo(CStateManager&) { return x240_healthInfo; }
virtual CHealthInfo GetHealthInfo(const CStateManager&) { return x240_healthInfo; }
virtual CDamageVulnerability GetDamageVulnerability() { return x248_damageVulnerability; }
virtual void TakeDamage(const zeus::CVector3f&, float) {}
virtual bool CanBeShot(const CStateManager&, int) { return true; }
virtual bool IsListening() { return false; }
virtual int Listen(const zeus::CVector3f&, EListenNoiseType) { return 0; }
virtual void Patrol(CStateManager&, EStateMsg, float) {}
virtual void FollowPattern(CStateManager&, EStateMsg, float) {}
virtual void Dead(CStateManager&, EStateMsg, float) {}
virtual void PathFind(CStateManager&, EStateMsg, float) {}
virtual void Start(CStateManager&, EStateMsg, float) {}
virtual void SelectTarget(CStateManager&, EStateMsg, float) {}
virtual void TargetPatrol(CStateManager&, EStateMsg, float) {}
virtual void TargetPlayer(CStateManager&, EStateMsg, float) {}
virtual void TargetCover(CStateManager&, EStateMsg, float) {}
virtual void Halt(CStateManager&, EStateMsg, float) {}
virtual void Walk(CStateManager&, EStateMsg, float) {}
virtual void Run(CStateManager&, EStateMsg, float) {}
virtual void Generate(CStateManager&, EStateMsg, float) {}
virtual void Deactivate(CStateManager&, EStateMsg, float) {}
virtual void Attack(CStateManager&, EStateMsg, float) {}
virtual void LoopedAttack(CStateManager&, EStateMsg, float) {}
virtual void JumpBack(CStateManager&, EStateMsg, float) {}
virtual void DoubleSnap(CStateManager&, EStateMsg, float) {}
virtual void Shuffle(CStateManager&, EStateMsg, float) {}
virtual void TurnAround(CStateManager&, EStateMsg, float) {}
virtual void Skid(CStateManager&, EStateMsg, float) {}
virtual void Active(CStateManager&, EStateMsg, float) {}
virtual void InActive(CStateManager&, EStateMsg, float) {}
virtual void CoverAttack(CStateManager&, EStateMsg, float) {}
virtual void Crouch(CStateManager&, EStateMsg, float) {}
virtual void FadeIn(CStateManager&, EStateMsg, float) {}
virtual void FadeOut(CStateManager&, EStateMsg, float) {}
virtual void GetUp(CStateManager&, EStateMsg, float) {}
virtual void Taunt(CStateManager&, EStateMsg, float) {}
virtual void Suck(CStateManager&, EStateMsg, float) {}
virtual void Flee(CStateManager&, EStateMsg, float) {}
virtual void Lurk(CStateManager&, EStateMsg, float) {}
virtual void ProjectileAttack(CStateManager&, EStateMsg, float) {}
virtual void Flinch(CStateManager&, EStateMsg, float) {}
virtual void Hurled(CStateManager&, EStateMsg, float) {}
virtual void TelegraphAttack(CStateManager&, EStateMsg, float) {}
virtual void Jump(CStateManager&, EStateMsg, float) {}
virtual void Explode(CStateManager&, EStateMsg, float) {}
virtual void Dodge(CStateManager&, EStateMsg, float) {}
virtual void Retreat(CStateManager&, EStateMsg, float) {}
virtual void Cover(CStateManager&, EStateMsg, float) {}
virtual void Approach(CStateManager&, EStateMsg, float) {}
virtual void WallHang(CStateManager&, EStateMsg, float) {}
virtual void WallDetach(CStateManager&, EStateMsg, float) {}
virtual void Enraged(CStateManager&, EStateMsg, float) {}
virtual void SpecialAttack(CStateManager&, EStateMsg, float) {}
virtual void Growth(CStateManager&, EStateMsg, float) {}
virtual void Faint(CStateManager&, EStateMsg, float) {}
virtual void BulbAttack(CStateManager&, EStateMsg, float) {}
virtual void PodAttack(CStateManager&, EStateMsg, float) {}
virtual void InAttackPosition(CStateManager&, float) {}
virtual void Leash(CStateManager&, float) {}
virtual void OffLine(CStateManager&,float) {}
virtual void Attacked(CStateManager&, float) {}
virtual void PathShagged(CStateManager&,float) {}
virtual void PathOver(CStateManager&,float) {}
virtual void TooClose(CStateManager&,float) {}
virtual void InRange(CStateManager&,float) {}
virtual void InMaxRange(CStateManager&,float) {}
virtual void InDetectionRange(CStateManager&,float) {}
virtual void SpotPlayer(CStateManager&,float) {}
virtual void PlayerSpot(CStateManager&,float) {}
virtual void PatternOver(CStateManager&,float) {}
virtual void PatternedShagged(CStateManager&,float) {}
virtual void HasAttackPattern(CStateManager&,float) {}
virtual void HasPatrolPath(CStateManager&,float) {}
virtual void HasRetreatPattern(CStateManager&,float) {}
virtual void Delay(CStateManager&,float) {}
virtual void RandomDelay(CStateManager&,float) {}
virtual void FixedDelay(CStateManager&,float) {}
virtual void AnimOver(CStateManager&, float) {}
virtual void ShouldAttack(CStateManager&,float) {}
virtual void ShouldDoubleSnap(CStateManager&,float) {}
virtual void InPosition(CStateManager&,float) {}
virtual void ShouldTurn(CStateManager&,float) {}
virtual void HitSomething(CStateManager&,float) {}
virtual void ShouldJumpBack(CStateManager&,float) {}
virtual void Stuck(CStateManager&,float) {}
virtual void NoPathNodes(CStateManager&,float) {}
virtual void Landed(CStateManager&,float) {}
virtual void HearShot(CStateManager&,float) {}
virtual void HearPlayer(CStateManager&,float) {}
virtual void CoverCheck(CStateManager&, float) {}
virtual void CoverFind(CStateManager&, float) {}
virtual void CoverBlown(CStateManager&, float) {}
virtual void CoverNearlyBlown(CStateManager&, float) {}
virtual void CoveringFire(CStateManager&, float) {}
virtual void GotUp(CStateManager&,float) {}
virtual void LineOfSight(CStateManager&,float) {}
virtual void AggressionCheck(CStateManager&, float) {}
virtual void AttackOver(CStateManager&, float) {}
virtual void ShouldTaunt(CStateManager&,float) {}
virtual void Inside(CStateManager&,float) {}
virtual void ShouldFire(CStateManager&,float) {}
virtual void ShouldFlinch(CStateManager&,float) {}
virtual void PatrolPathOver(CStateManager&,float) {}
virtual void ShouldDodge(CStateManager&,float) {}
virtual void ShouldRetreat(CStateManager&,float) {}
virtual void ShouldCrouch(CStateManager&,float) {}
virtual void ShouldMove(CStateManager&,float) {}
virtual void ShotAt(CStateManager&,float) {}
virtual void HasTargettingPoint(CStateManager&,float) {}
virtual void ShouldWallHang(CStateManager&,float) {}
virtual void SetAIStage(CStateManager&,float) {}
virtual void AIStage(CStateManager&,float) {}
virtual void StartAttack(CStateManager&,float) {}
virtual void BreakAttack(CStateManager&, float) {}
virtual void ShoulStrafe(CStateManager&,float) {}
virtual void ShouldSpecialAttack(CStateManager&,float) {}
virtual void LostInterest(CStateManager&,float) {}
};
}
#endif // __URDE_CAI_HPP__