mirror of
https://github.com/GTAmodding/re3.git
synced 2025-10-20 08:49:23 +00:00
cleaned up MIAMI ifdefs
This commit is contained in:
parent
2c0b82ec1a
commit
e81652c2fc
46 changed files with 95 additions and 2006 deletions
|
@ -9,9 +9,6 @@ enum
|
|||
{
|
||||
NodeTypeExtern = 1,
|
||||
NodeTypeIntern = 2,
|
||||
|
||||
UseInRoadBlock = 1,
|
||||
ObjectEastWest = 2,
|
||||
};
|
||||
|
||||
enum
|
||||
|
@ -55,33 +52,6 @@ public:
|
|||
|
||||
struct CPathNode
|
||||
{
|
||||
#ifndef MIAMI
|
||||
CVector pos;
|
||||
CPathNode *prev;
|
||||
CPathNode *next;
|
||||
int16 distance; // in path search
|
||||
int16 objectIndex;
|
||||
int16 firstLink;
|
||||
uint8 numLinks;
|
||||
|
||||
uint8 unkBits : 2;
|
||||
uint8 bDeadEnd : 1;
|
||||
uint8 bDisabled : 1;
|
||||
uint8 bBetweenLevels : 1;
|
||||
|
||||
int8 group;
|
||||
|
||||
CVector &GetPosition(void) { return pos; }
|
||||
void SetPosition(const CVector &p) { pos = p; }
|
||||
float GetX(void) { return pos.x; }
|
||||
float GetY(void) { return pos.y; }
|
||||
float GetZ(void) { return pos.z; }
|
||||
|
||||
CPathNode *GetPrev(void) { return prev; }
|
||||
CPathNode *GetNext(void) { return next; }
|
||||
void SetPrev(CPathNode *node) { prev = node; }
|
||||
void SetNext(CPathNode *node) { next = node; }
|
||||
#else
|
||||
int16 prevIndex;
|
||||
int16 nextIndex;
|
||||
int16 x;
|
||||
|
@ -118,7 +88,6 @@ struct CPathNode
|
|||
CPathNode *GetNext(void);
|
||||
void SetPrev(CPathNode *node);
|
||||
void SetNext(CPathNode *node);
|
||||
#endif
|
||||
};
|
||||
|
||||
union CConnectionFlags
|
||||
|
@ -132,24 +101,6 @@ union CConnectionFlags
|
|||
|
||||
struct CCarPathLink
|
||||
{
|
||||
#ifndef MIAMI
|
||||
CVector2D pos;
|
||||
CVector2D dir;
|
||||
int16 pathNodeIndex;
|
||||
int8 numLeftLanes;
|
||||
int8 numRightLanes;
|
||||
uint8 trafficLightType;
|
||||
|
||||
uint8 bBridgeLights : 1;
|
||||
// more?
|
||||
|
||||
CVector2D &GetPosition(void) { return pos; }
|
||||
CVector2D &GetDirection(void) { return dir; }
|
||||
float GetX(void) { return pos.x; }
|
||||
float GetY(void) { return pos.y; }
|
||||
float GetDirX(void) { return dir.x; }
|
||||
float GetDirY(void) { return dir.y; }
|
||||
#else
|
||||
int16 x;
|
||||
int16 y;
|
||||
int16 pathNodeIndex;
|
||||
|
@ -168,7 +119,6 @@ struct CCarPathLink
|
|||
float GetY(void) { return y/8.0f; }
|
||||
float GetDirX(void) { return dirX/100.0f; }
|
||||
float GetDirY(void) { return dirY/100.0f; }
|
||||
#endif
|
||||
|
||||
float OneWayLaneOffset()
|
||||
{
|
||||
|
@ -183,16 +133,6 @@ struct CCarPathLink
|
|||
// This is what we're reading from the files, only temporary
|
||||
struct CPathInfoForObject
|
||||
{
|
||||
#ifndef MIAMI
|
||||
int16 x;
|
||||
int16 y;
|
||||
int16 z;
|
||||
int8 type;
|
||||
int8 next;
|
||||
int8 numLeftLanes;
|
||||
int8 numRightLanes;
|
||||
uint8 crossing : 1;
|
||||
#else
|
||||
float x;
|
||||
float y;
|
||||
float z;
|
||||
|
@ -213,7 +153,6 @@ struct CPathInfoForObject
|
|||
uint8 spawnRate : 4;
|
||||
|
||||
void SwapConnectionsToBeRightWayRound(void);
|
||||
#endif
|
||||
};
|
||||
extern CPathInfoForObject *InfoForTileCars;
|
||||
extern CPathInfoForObject *InfoForTilePeds;
|
||||
|
@ -221,15 +160,6 @@ extern CPathInfoForObject *InfoForTilePeds;
|
|||
struct CTempNode
|
||||
{
|
||||
CVector pos;
|
||||
#ifndef MIAMI
|
||||
float dirX;
|
||||
float dirY;
|
||||
int16 link1;
|
||||
int16 link2;
|
||||
int8 numLeftLanes;
|
||||
int8 numRightLanes;
|
||||
int8 linkState;
|
||||
#else
|
||||
int8 dirX; // *100
|
||||
int8 dirY;
|
||||
int16 link1;
|
||||
|
@ -239,10 +169,8 @@ struct CTempNode
|
|||
int8 width;
|
||||
bool isCross;
|
||||
int8 linkState;
|
||||
#endif
|
||||
};
|
||||
|
||||
#ifdef MIAMI
|
||||
struct CTempNodeExternal // made up name
|
||||
{
|
||||
CVector pos;
|
||||
|
@ -252,14 +180,6 @@ struct CTempNodeExternal // made up name
|
|||
int8 width;
|
||||
bool isCross;
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifndef MIAMI
|
||||
struct CTempDetachedNode // unused
|
||||
{
|
||||
uint8 foo[20];
|
||||
};
|
||||
#endif
|
||||
|
||||
class CPathFind
|
||||
{
|
||||
|
@ -267,15 +187,8 @@ public:
|
|||
CPathNode m_pathNodes[NUM_PATHNODES];
|
||||
CCarPathLink m_carPathLinks[NUM_CARPATHLINKS];
|
||||
CTreadable *m_mapObjects[NUM_MAPOBJECTS];
|
||||
#ifndef MIAMI
|
||||
uint8 m_objectFlags[NUM_MAPOBJECTS];
|
||||
int16 m_connections[NUM_PATHCONNECTIONS];
|
||||
int16 m_distances[NUM_PATHCONNECTIONS];
|
||||
CConnectionFlags m_connectionFlags[NUM_PATHCONNECTIONS];
|
||||
#else
|
||||
uint16 m_connections[NUM_PATHCONNECTIONS]; // and flags
|
||||
uint8 m_distances[NUM_PATHCONNECTIONS];
|
||||
#endif
|
||||
int16 m_carPathConnections[NUM_PATHCONNECTIONS];
|
||||
|
||||
int32 m_numPathNodes;
|
||||
|
@ -293,20 +206,12 @@ public:
|
|||
void RegisterMapObject(CTreadable *mapObject);
|
||||
void StoreNodeInfoPed(int16 id, int16 node, int8 type, int8 next, int16 x, int16 y, int16 z, int16 width, bool crossing);
|
||||
void StoreNodeInfoCar(int16 id, int16 node, int8 type, int8 next, int16 x, int16 y, int16 z, int16 width, int8 numLeft, int8 numRight);
|
||||
#ifndef MIAMI
|
||||
void CalcNodeCoors(int16 x, int16 y, int16 z, int32 id, CVector *out);
|
||||
#else
|
||||
void CalcNodeCoors(float x, float y, float z, int32 id, CVector *out);
|
||||
#endif
|
||||
bool LoadPathFindData(void);
|
||||
void PreparePathData(void);
|
||||
void CountFloodFillGroups(uint8 type);
|
||||
void PreparePathDataForType(uint8 type, CTempNode *tempnodes, CPathInfoForObject *objectpathinfo,
|
||||
#ifndef MIAMI
|
||||
float maxdist, CTempDetachedNode *detachednodes, int32 numDetached);
|
||||
#else
|
||||
float maxdist, CPathInfoForObject *detachednodes, int32 numDetached);
|
||||
#endif
|
||||
|
||||
bool IsPathObject(int id) { return id < PATHNODESIZE && (InfoForTileCars[id*12].type != 0 || InfoForTilePeds[id*12].type != 0); }
|
||||
|
||||
|
@ -324,27 +229,19 @@ public:
|
|||
void MarkRoadsBetweenLevelsNodeAndNeighbours(int32 nodeId);
|
||||
void MarkRoadsBetweenLevelsInArea(float x1, float x2, float y1, float y2, float z1, float z2);
|
||||
void PedMarkRoadsBetweenLevelsInArea(float x1, float x2, float y1, float y2, float z1, float z2);
|
||||
#ifndef MIAMI
|
||||
int32 FindNodeClosestToCoors(CVector coors, uint8 type, float distLimit, bool ignoreDisabled = false, bool ignoreBetweenLevels = false);
|
||||
#else
|
||||
//--MIAMI: TODO: check callers for new arguments
|
||||
// TODO(MIAMI): check callers for new arguments
|
||||
int32 FindNodeClosestToCoors(CVector coors, uint8 type, float distLimit, bool ignoreDisabled = false, bool ignoreBetweenLevels = false, bool ignoreFlagB4 = false, bool bWaterPath = false);
|
||||
#endif
|
||||
int32 FindNodeClosestToCoorsFavourDirection(CVector coors, uint8 type, float dirX, float dirY);
|
||||
float FindNodeOrientationForCarPlacement(int32 nodeId);
|
||||
float FindNodeOrientationForCarPlacementFacingDestination(int32 nodeId, float x, float y, bool towards);
|
||||
bool NewGenerateCarCreationCoors(float x, float y, float dirX, float dirY, float spawnDist, float angleLimit, bool forward, CVector *pPosition, int32 *pNode1, int32 *pNode2, float *pPositionBetweenNodes, bool ignoreDisabled = false);
|
||||
bool GeneratePedCreationCoors(float x, float y, float minDist, float maxDist, float minDistOffScreen, float maxDistOffScreen, CVector *pPosition, int32 *pNode1, int32 *pNode2, float *pPositionBetweenNodes, CMatrix *camMatrix);
|
||||
#ifndef MIAMI
|
||||
CTreadable *FindRoadObjectClosestToCoors(CVector coors, uint8 type);
|
||||
#endif
|
||||
void FindNextNodeWandering(uint8, CVector, CPathNode**, CPathNode**, uint8, uint8*);
|
||||
void DoPathSearch(uint8 type, CVector start, int32 startNodeId, CVector target, CPathNode **nodes, int16 *numNodes, int16 maxNumNodes, CVehicle *vehicle, float *dist, float distLimit, int32 forcedTargetNode);
|
||||
bool TestCoorsCloseness(CVector target, uint8 type, CVector start);
|
||||
void Save(uint8 *buf, uint32 *size);
|
||||
void Load(uint8 *buf, uint32 size);
|
||||
|
||||
#ifdef MIAMI
|
||||
CPathNode *GetNode(int16 index);
|
||||
int16 GetIndex(CPathNode *node);
|
||||
|
||||
|
@ -352,27 +249,16 @@ public:
|
|||
bool ConnectionCrossesRoad(int id) { return !!(m_connections[id] & 0x8000); }
|
||||
bool ConnectionHasTrafficLight(int id) { return !!(m_connections[id] & 0x4000); }
|
||||
void ConnectionSetTrafficLight(int id) { m_connections[id] |= 0x4000; }
|
||||
#else
|
||||
uint16 ConnectedNode(int id) { return m_connections[id]; }
|
||||
bool ConnectionCrossesRoad(int id) { return m_connectionFlags[id].bCrossesRoad; }
|
||||
bool ConnectionHasTrafficLight(int id) { return m_connectionFlags[id].bTrafficLight; }
|
||||
void ConnectionSetTrafficLight(int id) { m_connectionFlags[id].bTrafficLight = true; }
|
||||
#endif
|
||||
|
||||
void DisplayPathData(void);
|
||||
};
|
||||
#ifndef MIAMI
|
||||
static_assert(sizeof(CPathFind) == 0x49bf4, "CPathFind: error");
|
||||
#endif
|
||||
|
||||
extern CPathFind ThePaths;
|
||||
|
||||
#ifdef MIAMI
|
||||
inline CPathNode *CPathNode::GetPrev(void) { return ThePaths.GetNode(prevIndex); }
|
||||
inline CPathNode *CPathNode::GetNext(void) { return ThePaths.GetNode(nextIndex); }
|
||||
inline void CPathNode::SetPrev(CPathNode *node) { prevIndex = ThePaths.GetIndex(node); }
|
||||
inline void CPathNode::SetNext(CPathNode *node) { nextIndex = ThePaths.GetIndex(node); }
|
||||
#endif
|
||||
|
||||
extern bool gbShowPedPaths;
|
||||
extern bool gbShowCarPaths;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue