mirror of
https://github.com/GTAmodding/re3.git
synced 2024-12-25 18:25:42 +00:00
Merge pull request #894 from erorcun/miami
signed/unsigned fixes, and some other fixes
This commit is contained in:
commit
3b85457020
15 changed files with 57 additions and 54 deletions
|
@ -3395,12 +3395,12 @@ CCamera::LoadTrainCamNodes(char const *name)
|
||||||
char token[16] = { 0 };
|
char token[16] = { 0 };
|
||||||
char filename[16] = { 0 };
|
char filename[16] = { 0 };
|
||||||
uint8 *buf;
|
uint8 *buf;
|
||||||
size_t bufpos = 0;
|
ssize_t bufpos = 0;
|
||||||
int field = 0;
|
int field = 0;
|
||||||
int tokpos = 0;
|
int tokpos = 0;
|
||||||
char c;
|
char c;
|
||||||
int i;
|
int i;
|
||||||
size_t len;
|
ssize_t len;
|
||||||
|
|
||||||
strcpy(filename, name);
|
strcpy(filename, name);
|
||||||
len = (int)strlen(filename);
|
len = (int)strlen(filename);
|
||||||
|
|
|
@ -31,7 +31,7 @@ bool
|
||||||
CDirectory::WriteDirFile(const char *filename)
|
CDirectory::WriteDirFile(const char *filename)
|
||||||
{
|
{
|
||||||
int fd;
|
int fd;
|
||||||
size_t n;
|
ssize_t n;
|
||||||
fd = CFileMgr::OpenFileForWriting(filename);
|
fd = CFileMgr::OpenFileForWriting(filename);
|
||||||
n = CFileMgr::Write(fd, (char*)entries, numEntries*sizeof(DirectoryInfo));
|
n = CFileMgr::Write(fd, (char*)entries, numEntries*sizeof(DirectoryInfo));
|
||||||
CFileMgr::CloseFile(fd);
|
CFileMgr::CloseFile(fd);
|
||||||
|
|
|
@ -120,7 +120,7 @@ CEventList::RegisterEvent(eEventType type, eEventEntity entityType, CEntity *ent
|
||||||
}
|
}
|
||||||
|
|
||||||
if(criminal == FindPlayerPed())
|
if(criminal == FindPlayerPed())
|
||||||
ReportCrimeForEvent(type, (uintptr)ent, copsDontCare);
|
ReportCrimeForEvent(type, (intptr)ent, copsDontCare);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -198,7 +198,7 @@ CEventList::FindClosestEvent(eEventType type, CVector posn, int32 *event)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
CEventList::ReportCrimeForEvent(eEventType type, size_t crimeId, bool copsDontCare)
|
CEventList::ReportCrimeForEvent(eEventType type, intptr crimeId, bool copsDontCare)
|
||||||
{
|
{
|
||||||
eCrimeType crime;
|
eCrimeType crime;
|
||||||
switch(type){
|
switch(type){
|
||||||
|
|
|
@ -62,7 +62,7 @@ public:
|
||||||
static bool GetEvent(eEventType type, int32 *event);
|
static bool GetEvent(eEventType type, int32 *event);
|
||||||
static void ClearEvent(int32 event);
|
static void ClearEvent(int32 event);
|
||||||
static bool FindClosestEvent(eEventType type, CVector posn, int32 *event);
|
static bool FindClosestEvent(eEventType type, CVector posn, int32 *event);
|
||||||
static void ReportCrimeForEvent(eEventType type, size_t, bool);
|
static void ReportCrimeForEvent(eEventType type, intptr, bool);
|
||||||
};
|
};
|
||||||
|
|
||||||
extern CEvent gaEvent[NUMEVENTS];
|
extern CEvent gaEvent[NUMEVENTS];
|
|
@ -240,20 +240,22 @@ CFileMgr::SetDirMyDocuments(void)
|
||||||
mychdir(_psGetUserFilesFolder());
|
mychdir(_psGetUserFilesFolder());
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t
|
ssize_t
|
||||||
CFileMgr::LoadFile(const char *file, uint8 *buf, int unused, const char *mode)
|
CFileMgr::LoadFile(const char *file, uint8 *buf, int unused, const char *mode)
|
||||||
{
|
{
|
||||||
int fd;
|
int fd;
|
||||||
size_t n, len;
|
ssize_t n, len;
|
||||||
|
|
||||||
fd = myfopen(file, mode);
|
fd = myfopen(file, mode);
|
||||||
if(fd == 0)
|
if(fd == 0)
|
||||||
return 0;
|
return -1;
|
||||||
len = 0;
|
len = 0;
|
||||||
do{
|
do{
|
||||||
n = myfread(buf + len, 1, 0x4000, fd);
|
n = myfread(buf + len, 1, 0x4000, fd);
|
||||||
|
#ifndef FIX_BUGS
|
||||||
if (n < 0)
|
if (n < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
#endif
|
||||||
len += n;
|
len += n;
|
||||||
}while(n == 0x4000);
|
}while(n == 0x4000);
|
||||||
buf[len] = 0;
|
buf[len] = 0;
|
||||||
|
@ -274,13 +276,13 @@ CFileMgr::OpenFileForWriting(const char *file)
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t
|
size_t
|
||||||
CFileMgr::Read(int fd, const char *buf, size_t len)
|
CFileMgr::Read(int fd, const char *buf, ssize_t len)
|
||||||
{
|
{
|
||||||
return myfread((void*)buf, 1, len, fd);
|
return myfread((void*)buf, 1, len, fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t
|
size_t
|
||||||
CFileMgr::Write(int fd, const char *buf, size_t len)
|
CFileMgr::Write(int fd, const char *buf, ssize_t len)
|
||||||
{
|
{
|
||||||
return myfwrite((void*)buf, 1, len, fd);
|
return myfwrite((void*)buf, 1, len, fd);
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,12 +9,12 @@ public:
|
||||||
static void ChangeDir(const char *dir);
|
static void ChangeDir(const char *dir);
|
||||||
static void SetDir(const char *dir);
|
static void SetDir(const char *dir);
|
||||||
static void SetDirMyDocuments(void);
|
static void SetDirMyDocuments(void);
|
||||||
static size_t LoadFile(const char *file, uint8 *buf, int unused, const char *mode);
|
static ssize_t LoadFile(const char *file, uint8 *buf, int unused, const char *mode);
|
||||||
static int OpenFile(const char *file, const char *mode);
|
static int OpenFile(const char *file, const char *mode);
|
||||||
static int OpenFile(const char *file) { return OpenFile(file, "rb"); }
|
static int OpenFile(const char *file) { return OpenFile(file, "rb"); }
|
||||||
static int OpenFileForWriting(const char *file);
|
static int OpenFileForWriting(const char *file);
|
||||||
static size_t Read(int fd, const char *buf, size_t len);
|
static size_t Read(int fd, const char *buf, ssize_t len);
|
||||||
static size_t Write(int fd, const char *buf, size_t len);
|
static size_t Write(int fd, const char *buf, ssize_t len);
|
||||||
static bool Seek(int fd, int offset, int whence);
|
static bool Seek(int fd, int offset, int whence);
|
||||||
static bool ReadLine(int fd, char *buf, int len);
|
static bool ReadLine(int fd, char *buf, int len);
|
||||||
static int CloseFile(int fd);
|
static int CloseFile(int fd);
|
||||||
|
|
|
@ -46,7 +46,7 @@ CFire::ProcessFire(void)
|
||||||
float fDamagePlayer;
|
float fDamagePlayer;
|
||||||
float fDamagePeds;
|
float fDamagePeds;
|
||||||
float fDamageVehicle;
|
float fDamageVehicle;
|
||||||
int8 nRandNumber;
|
int16 nRandNumber;
|
||||||
float fGreen;
|
float fGreen;
|
||||||
float fRed;
|
float fRed;
|
||||||
CVector lightpos;
|
CVector lightpos;
|
||||||
|
@ -152,11 +152,10 @@ CFire::ProcessFire(void)
|
||||||
CShadows::StoreStaticShadow((uintptr)this, SHADOWTYPE_ADDITIVE, gpShadowExplosionTex, &lightpos, 7.0f, 0.0f, 0.0f, -7.0f, 0, nRandNumber / 2,
|
CShadows::StoreStaticShadow((uintptr)this, SHADOWTYPE_ADDITIVE, gpShadowExplosionTex, &lightpos, 7.0f, 0.0f, 0.0f, -7.0f, 0, nRandNumber / 2,
|
||||||
nRandNumber / 2, 0, 10.0f, 1.0f, 40.0f, 0, 0.0f);
|
nRandNumber / 2, 0, 10.0f, 1.0f, 40.0f, 0, 0.0f);
|
||||||
}
|
}
|
||||||
fGreen = nRandNumber / 128;
|
fGreen = nRandNumber / 128.f;
|
||||||
fRed = nRandNumber / 128;
|
fRed = nRandNumber / 128.f;
|
||||||
|
|
||||||
CPointLights::AddLight(0, m_vecPos, CVector(0.0f, 0.0f, 0.0f),
|
CPointLights::AddLight(CPointLights::LIGHT_POINT, m_vecPos, CVector(0.0f, 0.0f, 0.0f), 12.0f, fRed, fGreen, 0.0f, 0, 0);
|
||||||
12.0f, fRed, fGreen, 0, 0, 0);
|
|
||||||
} else {
|
} else {
|
||||||
Extinguish();
|
Extinguish();
|
||||||
}
|
}
|
||||||
|
@ -395,19 +394,16 @@ CFireManager::ExtinguishPoint(CVector point, float range)
|
||||||
bool
|
bool
|
||||||
CFireManager::ExtinguishPointWithWater(CVector point, float range)
|
CFireManager::ExtinguishPointWithWater(CVector point, float range)
|
||||||
{
|
{
|
||||||
int fireI = 0;
|
int i;
|
||||||
for (int i = 0; i < NUM_FIRES; i++) {
|
for (i = 0; i < NUM_FIRES;) {
|
||||||
if (m_aFires[i].m_bIsOngoing) {
|
if (m_aFires[i].m_bIsOngoing && (point - m_aFires[i].m_vecPos).MagnitudeSqr() < sq(range)) {
|
||||||
if ((point - m_aFires[i].m_vecPos).MagnitudeSqr() < sq(range)) {
|
|
||||||
fireI = i;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
if (++i >= NUM_FIRES)
|
||||||
}
|
|
||||||
if (fireI == NUM_FIRES)
|
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
CFire *fireToExtinguish = &m_aFires[fireI];
|
CFire *fireToExtinguish = &m_aFires[i];
|
||||||
fireToExtinguish->m_fWaterExtinguishCountdown -= 0.012f * CTimer::GetTimeStep();
|
fireToExtinguish->m_fWaterExtinguishCountdown -= 0.012f * CTimer::GetTimeStep();
|
||||||
CVector steamPos = fireToExtinguish->m_vecPos +
|
CVector steamPos = fireToExtinguish->m_vecPos +
|
||||||
CVector((CGeneral::GetRandomNumber() - 128) * 3.1f / 200.f,
|
CVector((CGeneral::GetRandomNumber() - 128) * 3.1f / 200.f,
|
||||||
|
|
|
@ -197,11 +197,11 @@ public:
|
||||||
static void DeleteFarAwayRwObjects(const CVector &pos);
|
static void DeleteFarAwayRwObjects(const CVector &pos);
|
||||||
static void DeleteAllRwObjects(void);
|
static void DeleteAllRwObjects(void);
|
||||||
static void DeleteRwObjectsAfterDeath(const CVector &pos);
|
static void DeleteRwObjectsAfterDeath(const CVector &pos);
|
||||||
static void DeleteRwObjectsBehindCamera(size_t mem);
|
static void DeleteRwObjectsBehindCamera(size_t mem); // originally signed
|
||||||
static void DeleteRwObjectsInSectorList(CPtrList &list);
|
static void DeleteRwObjectsInSectorList(CPtrList &list);
|
||||||
static void DeleteRwObjectsInOverlapSectorList(CPtrList &list, int32 x, int32 y);
|
static void DeleteRwObjectsInOverlapSectorList(CPtrList &list, int32 x, int32 y);
|
||||||
static bool DeleteRwObjectsBehindCameraInSectorList(CPtrList &list, size_t mem);
|
static bool DeleteRwObjectsBehindCameraInSectorList(CPtrList &list, size_t mem); // originally signed
|
||||||
static bool DeleteRwObjectsNotInFrustumInSectorList(CPtrList &list, size_t mem);
|
static bool DeleteRwObjectsNotInFrustumInSectorList(CPtrList &list, size_t mem); // originally signed
|
||||||
|
|
||||||
static void LoadScene(const CVector &pos);
|
static void LoadScene(const CVector &pos);
|
||||||
static void LoadSceneCollision(const CVector &pos);
|
static void LoadSceneCollision(const CVector &pos);
|
||||||
|
|
|
@ -209,6 +209,9 @@ CTheZones::PostZoneCreation(void)
|
||||||
for(i = 1; i < TotalNumberOfNavigationZones; i++)
|
for(i = 1; i < TotalNumberOfNavigationZones; i++)
|
||||||
InsertZoneIntoZoneHierarchy(&NavigationZoneArray[i]);
|
InsertZoneIntoZoneHierarchy(&NavigationZoneArray[i]);
|
||||||
InitialiseAudioZoneArray();
|
InitialiseAudioZoneArray();
|
||||||
|
#ifndef MASTER
|
||||||
|
CheckZonesForOverlap();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -222,8 +225,7 @@ CTheZones::CheckZonesForOverlap(void)
|
||||||
|
|
||||||
for(j = 1; j < TotalNumberOfInfoZones; j++)
|
for(j = 1; j < TotalNumberOfInfoZones; j++)
|
||||||
if(i != j && ZoneIsEntirelyContainedWithinOtherZone(&InfoZoneArray[i], &InfoZoneArray[j]))
|
if(i != j && ZoneIsEntirelyContainedWithinOtherZone(&InfoZoneArray[i], &InfoZoneArray[j]))
|
||||||
sprintf(str, "Info zone %s contains %s\n",
|
sprintf(str, "Info zone %s contains %s\n", InfoZoneArray[j].name, InfoZoneArray[i].name);
|
||||||
&InfoZoneArray[j].name, &InfoZoneArray[i].name);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -73,11 +73,16 @@ typedef int16_t int16;
|
||||||
typedef uint32_t uint32;
|
typedef uint32_t uint32;
|
||||||
typedef int32_t int32;
|
typedef int32_t int32;
|
||||||
typedef uintptr_t uintptr;
|
typedef uintptr_t uintptr;
|
||||||
|
typedef intptr_t intptr;
|
||||||
typedef uint64_t uint64;
|
typedef uint64_t uint64;
|
||||||
typedef int64_t int64;
|
typedef int64_t int64;
|
||||||
// hardcode ucs-2
|
// hardcode ucs-2
|
||||||
typedef uint16_t wchar;
|
typedef uint16_t wchar;
|
||||||
|
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
typedef ptrdiff_t ssize_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef nil
|
#ifndef nil
|
||||||
#define nil NULL
|
#define nil NULL
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -47,7 +47,7 @@ CPedType::LoadPedData(void)
|
||||||
char *buf;
|
char *buf;
|
||||||
char line[256];
|
char line[256];
|
||||||
char word[32];
|
char word[32];
|
||||||
size_t bp, buflen;
|
ssize_t bp, buflen;
|
||||||
int lp, linelen;
|
int lp, linelen;
|
||||||
int type;
|
int type;
|
||||||
uint32 flags;
|
uint32 flags;
|
||||||
|
@ -248,7 +248,7 @@ CPedStats::LoadPedStats(void)
|
||||||
char *buf;
|
char *buf;
|
||||||
char line[256];
|
char line[256];
|
||||||
char name[32];
|
char name[32];
|
||||||
size_t bp, buflen;
|
ssize_t bp, buflen;
|
||||||
int lp, linelen;
|
int lp, linelen;
|
||||||
int type;
|
int type;
|
||||||
float fleeDist, headingChangeRate, attackStrength, defendWeakness;
|
float fleeDist, headingChangeRate, attackStrength, defendWeakness;
|
||||||
|
|
|
@ -872,12 +872,12 @@ CVisibilityPlugins::FrameCopyConstructor(void *dst, const void *src, int32, int3
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
CVisibilityPlugins::SetFrameHierarchyId(RwFrame *frame, uintptr id)
|
CVisibilityPlugins::SetFrameHierarchyId(RwFrame *frame, intptr id)
|
||||||
{
|
{
|
||||||
FRAMEEXT(frame)->id = id;
|
FRAMEEXT(frame)->id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
uintptr
|
intptr
|
||||||
CVisibilityPlugins::GetFrameHierarchyId(RwFrame *frame)
|
CVisibilityPlugins::GetFrameHierarchyId(RwFrame *frame)
|
||||||
{
|
{
|
||||||
return FRAMEEXT(frame)->id;
|
return FRAMEEXT(frame)->id;
|
||||||
|
@ -914,7 +914,7 @@ void
|
||||||
CVisibilityPlugins::SetClumpModelInfo(RpClump *clump, CClumpModelInfo *modelInfo)
|
CVisibilityPlugins::SetClumpModelInfo(RpClump *clump, CClumpModelInfo *modelInfo)
|
||||||
{
|
{
|
||||||
CVehicleModelInfo *vmi;
|
CVehicleModelInfo *vmi;
|
||||||
SetFrameHierarchyId(RpClumpGetFrame(clump), (uintptr)modelInfo);
|
SetFrameHierarchyId(RpClumpGetFrame(clump), (intptr)modelInfo);
|
||||||
|
|
||||||
// Unused
|
// Unused
|
||||||
switch (modelInfo->GetModelType()) {
|
switch (modelInfo->GetModelType()) {
|
||||||
|
|
|
@ -115,10 +115,10 @@ public:
|
||||||
struct FrameExt
|
struct FrameExt
|
||||||
{
|
{
|
||||||
// BUG: this is abused to hold a pointer by SetClumpModelInfo
|
// BUG: this is abused to hold a pointer by SetClumpModelInfo
|
||||||
uintptr id;
|
intptr id;
|
||||||
};
|
};
|
||||||
static void SetFrameHierarchyId(RwFrame *frame, uintptr id);
|
static void SetFrameHierarchyId(RwFrame *frame, intptr id);
|
||||||
static uintptr GetFrameHierarchyId(RwFrame *frame);
|
static intptr GetFrameHierarchyId(RwFrame *frame);
|
||||||
|
|
||||||
static void *FrameConstructor(void *object, int32 offset, int32 len);
|
static void *FrameConstructor(void *object, int32 offset, int32 len);
|
||||||
static void *FrameDestructor(void *object, int32 offset, int32 len);
|
static void *FrameDestructor(void *object, int32 offset, int32 len);
|
||||||
|
|
|
@ -318,7 +318,7 @@ CKeyArray::Load(size_t length, int file, size_t* offset)
|
||||||
entries = new CKeyEntry[numEntries];
|
entries = new CKeyEntry[numEntries];
|
||||||
rawbytes = (char*)entries;
|
rawbytes = (char*)entries;
|
||||||
|
|
||||||
#if DUMB
|
#if THIS_IS_STUPID
|
||||||
for (uint32 i = 0; i < length; i++) {
|
for (uint32 i = 0; i < length; i++) {
|
||||||
CFileMgr::Read(file, &rawbytes[i], 1);
|
CFileMgr::Read(file, &rawbytes[i], 1);
|
||||||
(*offset)++;
|
(*offset)++;
|
||||||
|
@ -412,7 +412,7 @@ CData::Load(size_t length, int file, size_t * offset)
|
||||||
chars = new wchar[numChars];
|
chars = new wchar[numChars];
|
||||||
rawbytes = (char*)chars;
|
rawbytes = (char*)chars;
|
||||||
|
|
||||||
#if DUMB
|
#if THIS_IS_STUPID
|
||||||
for(uint32 i = 0; i < length; i++){
|
for(uint32 i = 0; i < length; i++){
|
||||||
CFileMgr::Read(file, &rawbytes[i], 1);
|
CFileMgr::Read(file, &rawbytes[i], 1);
|
||||||
(*offset)++;
|
(*offset)++;
|
||||||
|
@ -434,7 +434,7 @@ CData::Unload(void)
|
||||||
void
|
void
|
||||||
CMissionTextOffsets::Load(size_t table_size, int file, size_t *offset, int)
|
CMissionTextOffsets::Load(size_t table_size, int file, size_t *offset, int)
|
||||||
{
|
{
|
||||||
#if DUMB
|
#if THIS_IS_STUPID
|
||||||
size_t num_of_entries = table_size / sizeof(CMissionTextOffsets::Entry);
|
size_t num_of_entries = table_size / sizeof(CMissionTextOffsets::Entry);
|
||||||
for (size_t mi = 0; mi < num_of_entries; mi++) {
|
for (size_t mi = 0; mi < num_of_entries; mi++) {
|
||||||
for (uint32 i = 0; i < sizeof(data[mi].szMissionName); i++) {
|
for (uint32 i = 0; i < sizeof(data[mi].szMissionName); i++) {
|
||||||
|
|
|
@ -105,7 +105,6 @@ CWeaponInfo::GetWeaponInfo(eWeaponType weaponType)
|
||||||
return &ms_apWeaponInfos[weaponType];
|
return &ms_apWeaponInfos[weaponType];
|
||||||
}
|
}
|
||||||
|
|
||||||
// --MIAMI: done except WEAPONTYPE_TOTALWEAPONS value
|
|
||||||
void
|
void
|
||||||
CWeaponInfo::Initialise(void)
|
CWeaponInfo::Initialise(void)
|
||||||
{
|
{
|
||||||
|
@ -142,7 +141,6 @@ CWeaponInfo::Initialise(void)
|
||||||
debug("CWeaponInfo ready\n");
|
debug("CWeaponInfo ready\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
// --MIAMI: Done, commented parts wait for weapons port
|
|
||||||
void
|
void
|
||||||
CWeaponInfo::LoadWeaponData(void)
|
CWeaponInfo::LoadWeaponData(void)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue