mirror of
https://github.com/halpz/re3.git
synced 2025-06-29 17:26:21 +00:00
Merge branch 'master' into garages_dev
This commit is contained in:
@ -11,19 +11,10 @@ CPathFind &ThePaths = *(CPathFind*)0x8F6754;
|
||||
|
||||
WRAPPER bool CPedPath::CalcPedRoute(uint8, CVector, CVector, CVector*, int16*, int16) { EAXJMP(0x42E680); }
|
||||
|
||||
enum
|
||||
{
|
||||
NodeTypeExtern = 1,
|
||||
NodeTypeIntern = 2,
|
||||
|
||||
ObjectFlag1 = 1,
|
||||
ObjectEastWest = 2,
|
||||
|
||||
MAX_DIST = INT16_MAX-1
|
||||
};
|
||||
#define MAX_DIST INT16_MAX-1
|
||||
|
||||
// object flags:
|
||||
// 1
|
||||
// 1 UseInRoadBlock
|
||||
// 2 east/west road(?)
|
||||
|
||||
CPathInfoForObject *&InfoForTileCars = *(CPathInfoForObject**)0x8F1A8C;
|
||||
@ -218,14 +209,14 @@ CPathFind::PreparePathData(void)
|
||||
if(numIntern == 1 && numExtern == 2){
|
||||
if(numLanes < 4){
|
||||
if((i & 7) == 4){ // WHAT?
|
||||
m_objectFlags[i] |= ObjectFlag1;
|
||||
m_objectFlags[i] |= UseInRoadBlock;
|
||||
if(maxX > maxY)
|
||||
m_objectFlags[i] |= ObjectEastWest;
|
||||
else
|
||||
m_objectFlags[i] &= ~ObjectEastWest;
|
||||
}
|
||||
}else{
|
||||
m_objectFlags[i] |= ObjectFlag1;
|
||||
m_objectFlags[i] |= UseInRoadBlock;
|
||||
if(maxX > maxY)
|
||||
m_objectFlags[i] |= ObjectEastWest;
|
||||
else
|
||||
|
@ -9,6 +9,15 @@ public:
|
||||
static bool CalcPedRoute(uint8, CVector, CVector, CVector*, int16*, int16);
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
NodeTypeExtern = 1,
|
||||
NodeTypeIntern = 2,
|
||||
|
||||
UseInRoadBlock = 1,
|
||||
ObjectEastWest = 2,
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
PATH_CAR = 0,
|
||||
|
@ -1,7 +1,37 @@
|
||||
#include "common.h"
|
||||
#include "patcher.h"
|
||||
#include "RoadBlocks.h"
|
||||
#include "PathFind.h"
|
||||
|
||||
int16 &CRoadBlocks::NumRoadBlocks = *(int16*)0x95CC34;
|
||||
int16 (&CRoadBlocks::RoadBlockObjects)[NUMROADBLOCKS] = *(int16(*)[NUMROADBLOCKS]) * (uintptr*)0x72B3A8;
|
||||
bool (&CRoadBlocks::InOrOut)[NUMROADBLOCKS] = *(bool(*)[NUMROADBLOCKS]) * (uintptr*)0x733810;
|
||||
|
||||
WRAPPER void CRoadBlocks::Init(void) { EAXJMP(0x436F50); }
|
||||
WRAPPER void CRoadBlocks::GenerateRoadBlockCopsForCar(CVehicle*, int32, int16) { EAXJMP(0x4376A0); }
|
||||
WRAPPER void CRoadBlocks::GenerateRoadBlocks(void) { EAXJMP(0x436FA0); }
|
||||
WRAPPER void CRoadBlocks::GenerateRoadBlocks(void) { EAXJMP(0x436FA0); }
|
||||
|
||||
void
|
||||
CRoadBlocks::Init(void)
|
||||
{
|
||||
NumRoadBlocks = 0;
|
||||
for (int objId = 0; objId < ThePaths.m_numMapObjects; objId++) {
|
||||
if (ThePaths.m_objectFlags[objId] & UseInRoadBlock) {
|
||||
if (NumRoadBlocks < 600) {
|
||||
InOrOut[NumRoadBlocks] = true;
|
||||
RoadBlockObjects[NumRoadBlocks] = objId;
|
||||
NumRoadBlocks++;
|
||||
} else {
|
||||
#ifndef MASTER
|
||||
printf("Not enough room for the potential roadblocks\n");
|
||||
#endif
|
||||
// FIX: Don't iterate loop after NUMROADBLOCKS
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
STARTPATCHES
|
||||
InjectHook(0x436F50, &CRoadBlocks::Init, PATCH_JUMP);
|
||||
ENDPATCHES
|
@ -6,6 +6,10 @@ class CVehicle;
|
||||
class CRoadBlocks
|
||||
{
|
||||
public:
|
||||
static int16 (&NumRoadBlocks);
|
||||
static int16 (&RoadBlockObjects)[NUMROADBLOCKS];
|
||||
static bool (&InOrOut)[NUMROADBLOCKS];
|
||||
|
||||
static void Init(void);
|
||||
static void GenerateRoadBlockCopsForCar(CVehicle*, int32, int16);
|
||||
static void GenerateRoadBlocks(void);
|
||||
|
@ -2,5 +2,10 @@
|
||||
#include "patcher.h"
|
||||
#include "SceneEdit.h"
|
||||
|
||||
int32 &CSceneEdit::m_bCameraFollowActor = *(int*)0x940590;
|
||||
bool &CSceneEdit::m_bRecording = *(bool*)0x95CD1F;
|
||||
CVector &CSceneEdit::m_vecCurrentPosition = *(CVector*)0x943064;
|
||||
CVector &CSceneEdit::m_vecCamHeading = *(CVector*)0x942F8C;
|
||||
|
||||
WRAPPER void CSceneEdit::Update(void) { EAXJMP(0x585570); }
|
||||
WRAPPER void CSceneEdit::Init(void) { EAXJMP(0x585170); }
|
||||
|
@ -3,6 +3,11 @@
|
||||
class CSceneEdit
|
||||
{
|
||||
public:
|
||||
static int32 &m_bCameraFollowActor;
|
||||
static bool &m_bRecording;
|
||||
static CVector &m_vecCurrentPosition;
|
||||
static CVector &m_vecCamHeading;
|
||||
|
||||
static void Update(void);
|
||||
static void Init(void);
|
||||
};
|
||||
|
@ -1,3 +1,4 @@
|
||||
#define WITHWINDOWS // for our script loading hack
|
||||
#include "common.h"
|
||||
#include "patcher.h"
|
||||
|
||||
|
Reference in New Issue
Block a user