Merge pull request #894 from erorcun/miami

signed/unsigned fixes, and some other fixes
This commit is contained in:
erorcun 2020-12-25 12:56:31 +03:00 committed by GitHub
commit 3b85457020
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 57 additions and 54 deletions

View file

@ -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);

View file

@ -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);

View file

@ -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){

View file

@ -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];

View file

@ -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);
} }

View file

@ -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);

View file

@ -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,

View file

@ -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);

View file

@ -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);
} }
} }

View file

@ -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

View file

@ -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;

View file

@ -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()) {

View file

@ -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);

View file

@ -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++) {

View file

@ -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)
{ {