engine/ai/graphTransient.h

50 lines
1.6 KiB
C
Raw Permalink Normal View History

2024-01-07 04:36:33 +00:00
//-----------------------------------------------------------------------------
// V12 Engine
//
// Copyright (c) 2001 GarageGames.Com
// Portions Copyright (c) 2001 by Sierra Online, Inc.
//-----------------------------------------------------------------------------
#ifndef _GRAPHTRANSIENT_H_
#define _GRAPHTRANSIENT_H_
class TransientNode : public RegularNode
{
friend class NavigationGraph;
GraphEdgeList mSearchEdges;
S32 mGroundStart;
const GraphNode * mClosest, * mSaveClosest;
const GraphNode * mFirstHook;
public:
TransientNode(S32 index);
GraphEdgeArray getEdges(GraphEdge*) const;
GraphEdgeArray getHookedEdges() const;
void informPushed();
void makeEdgeList(const Point3F& loc, const GraphNodeList& list);
void connectOutdoor(GraphNode* outdoorNode, bool all=true);
void setLoc(const Point3F& loc) {mLoc = loc;}
void setEdges(const GraphEdgeList& edges) {mEdges=edges;}
void setClosest(const GraphNode* closest) {mClosest=closest;}
Point3F getRenderPos() const;
S32 volumeIndex() const;
};
class GraphHookRequest
{
private:
TransientNode& getHook(S32 N);
S32 mIncarnation;
S32 mPairLookup;
public:
GraphHookRequest();
~GraphHookRequest();
TransientNode& getHook1() { return getHook(0); }
TransientNode& getHook2() { return getHook(1); }
bool iGrowOld() const;
void reset();
};
#endif