2008-07-20 14:42:54 +00:00
|
|
|
#ifndef __A_SPECSPOT_H
|
|
|
|
#define __A_SPECSPOT_H
|
|
|
|
|
|
|
|
#include "actor.h"
|
|
|
|
#include "tarray.h"
|
|
|
|
|
|
|
|
class ASpecialSpot : public AActor
|
|
|
|
{
|
2008-08-03 19:10:48 +00:00
|
|
|
DECLARE_CLASS (ASpecialSpot, AActor)
|
2008-07-20 14:42:54 +00:00
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
void BeginPlay();
|
|
|
|
void Destroy();
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
struct FSpotList;
|
|
|
|
|
|
|
|
|
|
|
|
class DSpotState : public DThinker
|
|
|
|
{
|
|
|
|
DECLARE_CLASS(DSpotState, DThinker)
|
|
|
|
static TObjPtr<DSpotState> SpotState;
|
|
|
|
TArray<FSpotList *> SpotLists;
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
|
|
DSpotState ();
|
|
|
|
void Destroy ();
|
|
|
|
void Tick ();
|
|
|
|
static DSpotState *GetSpotState(bool create = true);
|
|
|
|
FSpotList *FindSpotList(const PClass *type);
|
|
|
|
bool AddSpot(ASpecialSpot *spot);
|
|
|
|
bool RemoveSpot(ASpecialSpot *spot);
|
|
|
|
void Serialize(FArchive &arc);
|
|
|
|
ASpecialSpot *GetNextInList(const PClass *type, int skipcounter);
|
2010-07-23 21:55:01 +00:00
|
|
|
ASpecialSpot *GetSpotWithMinMaxDistance(const PClass *type, fixed_t x, fixed_t y, fixed_t mindist, fixed_t maxdist);
|
2008-07-20 14:42:54 +00:00
|
|
|
ASpecialSpot *GetRandomSpot(const PClass *type, bool onlyonce = false);
|
|
|
|
};
|
|
|
|
|
|
|
|
|
2008-07-31 17:13:21 +00:00
|
|
|
#endif
|
2008-08-03 12:00:36 +00:00
|
|
|
|