Initial Prey Game integration support.

This commit is contained in:
Justin Marshall
2026-05-05 15:01:01 -07:00
parent a6c6f1ed26
commit 8d5f678b25
552 changed files with 265551 additions and 209 deletions
+82
View File
@@ -0,0 +1,82 @@
#ifndef __GAME_MINE_H__
#define __GAME_MINE_H__
extern const idEventDef EV_ExplodeDamage;
class hhMineSpawner;
class hhMine : public hhMoveable {
public:
CLASS_PROTOTYPE( hhMine );
void Spawn( void );
void Save( idSaveGame *savefile ) const;
void Restore( idRestoreGame *savefile );
void Launch(idVec3 &velocity, idVec3 &avelocity);
virtual bool AllowCollision( const trace_t &collision );
virtual void ApplyImpulse(idEntity * ent, int id, const idVec3 &point, const idVec3 &impulse);
virtual bool Collide( const trace_t &collision, const idVec3 &velocity );
virtual void Killed( idEntity *inflictor, idEntity *attacker, int damage, const idVec3 &dir, int location );
void Explode( idEntity *attacker );
void SetSpawner(hhMineSpawner *s) { spawner = s; }
bool WasSpawnedBy(idEntity *theSpawner);
virtual void Damage( idEntity *inflictor, idEntity *attacker, const idVec3 &dir, const char *damageDefName, const float damageScale, const int location );
virtual void Think();
protected:
void SpawnTrigger();
void Event_ExplodeDamage( idEntity *attacker );
void Event_Trigger( idEntity *activator );
virtual void Event_Remove();
void Event_ExplodedBy( idEntity *activator);
void Event_MineHover();
protected:
hhMineSpawner * spawner; // Entity that spawned this object
bool bDetonateOnCollision;
bool bDamageOnCollision;
idInterpolate<float> fadeAlpha;
bool bScaleIn;
bool bExploded;
};
extern const idEventDef EV_SpawnMine;
class hhMineSpawner : public hhAnimatedEntity {
public:
CLASS_PROTOTYPE( hhMineSpawner );
void Spawn( void );
void Save( idSaveGame *savefile ) const;
void Restore( idRestoreGame *savefile );
void MineRemoved(hhMine *mine);
void DormantBegin();
void DormantEnd();
protected:
virtual void SpawnMine();
void CheckPopulation();
void Event_Activate(idEntity *activator);
void Event_SpawnMine();
virtual void Event_Remove();
protected:
int population;
int targetPopulation;
idVec3 mineVelocity;
idVec3 mineAVelocity;
bool bRandomDirection;
bool bRandomRotation;
float speed; // Precomputed speed based on mineVelocity
float aspeed; // Precomputed speed based on mineAVelocity
int spawnDelay;
bool active;
};
#endif