signed/unsigned fixes, and some other fixes

This commit is contained in:
erorcun 2020-12-27 05:23:37 +03:00
parent c5010d443c
commit 36e64dbd22
13 changed files with 48 additions and 43 deletions

View File

@ -2986,12 +2986,12 @@ CCamera::LoadTrainCamNodes(char const *name)
char token[16] = { 0 };
char filename[16] = { 0 };
uint8 *buf;
size_t bufpos = 0;
ssize_t bufpos = 0;
int field = 0;
int tokpos = 0;
char c;
int i;
size_t len;
ssize_t len;
strcpy(filename, name);
len = (int)strlen(filename);

View File

@ -120,7 +120,7 @@ CEventList::RegisterEvent(eEventType type, eEventEntity entityType, CEntity *ent
}
if(criminal == FindPlayerPed())
ReportCrimeForEvent(type, (uintptr)ent, copsDontCare);
ReportCrimeForEvent(type, (intptr)ent, copsDontCare);
}
void
@ -198,7 +198,7 @@ CEventList::FindClosestEvent(eEventType type, CVector posn, int32 *event)
}
void
CEventList::ReportCrimeForEvent(eEventType type, int32 crimeId, bool copsDontCare)
CEventList::ReportCrimeForEvent(eEventType type, intptr crimeId, bool copsDontCare)
{
eCrimeType crime;
switch(type){

View File

@ -59,7 +59,7 @@ public:
static bool GetEvent(eEventType type, int32 *event);
static void ClearEvent(int32 event);
static bool FindClosestEvent(eEventType type, CVector posn, int32 *event);
static void ReportCrimeForEvent(eEventType type, int32, bool);
static void ReportCrimeForEvent(eEventType type, intptr, bool);
};
extern CEvent gaEvent[NUMEVENTS];

View File

@ -240,20 +240,22 @@ CFileMgr::SetDirMyDocuments(void)
mychdir(_psGetUserFilesFolder());
}
size_t
ssize_t
CFileMgr::LoadFile(const char *file, uint8 *buf, int unused, const char *mode)
{
int fd;
size_t n, len;
ssize_t n, len;
fd = myfopen(file, mode);
if(fd == 0)
return 0;
return -1;
len = 0;
do{
n = myfread(buf + len, 1, 0x4000, fd);
if(n < 0)
#ifndef FIX_BUGS
if (n < 0)
return -1;
#endif
len += n;
}while(n == 0x4000);
buf[len] = 0;
@ -274,13 +276,13 @@ CFileMgr::OpenFileForWriting(const char *file)
}
size_t
CFileMgr::Read(int fd, const char *buf, int len)
CFileMgr::Read(int fd, const char *buf, ssize_t len)
{
return myfread((void*)buf, 1, len, fd);
}
size_t
CFileMgr::Write(int fd, const char *buf, int len)
CFileMgr::Write(int fd, const char *buf, ssize_t len)
{
return myfwrite((void*)buf, 1, len, fd);
}

View File

@ -9,12 +9,12 @@ public:
static void ChangeDir(const char *dir);
static void SetDir(const char *dir);
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) { return OpenFile(file, "rb"); }
static int OpenFileForWriting(const char *file);
static size_t Read(int fd, const char *buf, int len);
static size_t Write(int fd, const char *buf, int len);
static size_t Read(int fd, const char *buf, ssize_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 ReadLine(int fd, char *buf, int len);
static int CloseFile(int fd);

View File

@ -43,7 +43,7 @@ CFire::ProcessFire(void)
float fDamagePlayer;
float fDamagePeds;
float fDamageVehicle;
int8 nRandNumber;
int16 nRandNumber;
float fGreen;
float fRed;
CVector lightpos;
@ -135,11 +135,10 @@ CFire::ProcessFire(void)
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);
}
fGreen = nRandNumber / 128;
fRed = nRandNumber / 128;
fGreen = nRandNumber / 128.f;
fRed = nRandNumber / 128.f;
CPointLights::AddLight(0, m_vecPos, CVector(0.0f, 0.0f, 0.0f),
12.0f, fRed, fGreen, 0, 0, 0);
CPointLights::AddLight(CPointLights::LIGHT_POINT, m_vecPos, CVector(0.0f, 0.0f, 0.0f), 12.0f, fRed, fGreen, 0, 0, 0);
} else {
Extinguish();
}

View File

@ -140,7 +140,7 @@ public:
static bool RemoveLeastUsedModel(void);
static void RemoveAllUnusedModels(void);
static void RemoveUnusedModelsInLoadedList(void);
static bool RemoveReferencedTxds(size_t mem);
static bool RemoveReferencedTxds(size_t mem); // originally signed
static int32 GetAvailableVehicleSlot(void);
static bool IsTxdUsedByRequestedModels(int32 txdId);
static bool AddToLoadedVehiclesList(int32 modelId);
@ -176,11 +176,11 @@ public:
static void DeleteFarAwayRwObjects(const CVector &pos);
static void DeleteAllRwObjects(void);
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 DeleteRwObjectsInOverlapSectorList(CPtrList &list, int32 x, int32 y);
static bool DeleteRwObjectsBehindCameraInSectorList(CPtrList &list, size_t mem);
static bool DeleteRwObjectsNotInFrustumInSectorList(CPtrList &list, size_t mem);
static bool DeleteRwObjectsBehindCameraInSectorList(CPtrList &list, size_t mem); // originally signed
static bool DeleteRwObjectsNotInFrustumInSectorList(CPtrList &list, size_t mem); // originally signed
static void LoadScene(const CVector &pos);

View File

@ -73,11 +73,16 @@ typedef int16_t int16;
typedef uint32_t uint32;
typedef int32_t int32;
typedef uintptr_t uintptr;
typedef intptr_t intptr;
typedef uint64_t uint64;
typedef int64_t int64;
// hardcode ucs-2
typedef uint16_t wchar;
#if defined(_MSC_VER)
typedef ptrdiff_t ssize_t;
#endif
#ifndef nil
#define nil NULL
#endif

View File

@ -45,7 +45,7 @@ CPedType::LoadPedData(void)
char *buf;
char line[256];
char word[32];
size_t bp, buflen;
ssize_t bp, buflen;
int lp, linelen;
int type;
uint32 flags;
@ -54,9 +54,9 @@ CPedType::LoadPedData(void)
type = NUM_PEDTYPES;
buf = new char[16 * 1024];
CFileMgr::SetDir("DATA");
buflen = CFileMgr::LoadFile("PED.DAT", (uint8*)buf, 16 * 1024, "r");
CFileMgr::SetDir("");
CFileMgr::SetDir("DATA");
buflen = CFileMgr::LoadFile("PED.DAT", (uint8*)buf, 16 * 1024, "r");
CFileMgr::SetDir("");
for(bp = 0; bp < buflen; ){
// read file line by line
@ -246,19 +246,18 @@ CPedStats::LoadPedStats(void)
char *buf;
char line[256];
char name[32];
size_t bp, buflen;
ssize_t bp, buflen;
int lp, linelen;
int type;
float fleeDist, headingChangeRate, attackStrength, defendWeakness;
int fear, temper, lawfullness, sexiness, flags;
type = 0;
buf = new char[16 * 1024];
CFileMgr::SetDir("DATA");
buflen = CFileMgr::LoadFile("PEDSTATS.DAT", (uint8*)buf, 16 * 1024, "r");
CFileMgr::SetDir("");
CFileMgr::SetDir("DATA");
buflen = CFileMgr::LoadFile("PEDSTATS.DAT", (uint8*)buf, 16 * 1024, "r");
CFileMgr::SetDir("");
for(bp = 0; bp < buflen; ){
// read file line by line

View File

@ -936,12 +936,12 @@ CVisibilityPlugins::FrameCopyConstructor(void *dst, const void *src, int32, int3
}
void
CVisibilityPlugins::SetFrameHierarchyId(RwFrame *frame, uintptr id)
CVisibilityPlugins::SetFrameHierarchyId(RwFrame *frame, intptr id)
{
FRAMEEXT(frame)->id = id;
}
uintptr
intptr
CVisibilityPlugins::GetFrameHierarchyId(RwFrame *frame)
{
return FRAMEEXT(frame)->id;
@ -978,7 +978,7 @@ void
CVisibilityPlugins::SetClumpModelInfo(RpClump *clump, CClumpModelInfo *modelInfo)
{
CVehicleModelInfo *vmi;
SetFrameHierarchyId(RpClumpGetFrame(clump), (uintptr)modelInfo);
SetFrameHierarchyId(RpClumpGetFrame(clump), (intptr)modelInfo);
// Unused
switch (modelInfo->GetModelType()) {

View File

@ -103,10 +103,10 @@ public:
struct FrameExt
{
// BUG: this is abused to hold a pointer by SetClumpModelInfo
uintptr id;
intptr id;
};
static void SetFrameHierarchyId(RwFrame *frame, uintptr id);
static uintptr GetFrameHierarchyId(RwFrame *frame);
static void SetFrameHierarchyId(RwFrame *frame, intptr id);
static intptr GetFrameHierarchyId(RwFrame *frame);
static void *FrameConstructor(void *object, int32 offset, int32 len);
static void *FrameDestructor(void *object, int32 offset, int32 len);

View File

@ -23,7 +23,7 @@ CText::Load(void)
{
uint8 *filedata;
char filename[32], type[4];
intptr_t offset, length;
ssize_t offset, length;
size_t sectlen;
Unload();
@ -176,7 +176,7 @@ CText::UpperCase(wchar *s)
void
CKeyArray::Load(size_t length, uint8 *data, intptr_t *offset)
CKeyArray::Load(size_t length, uint8 *data, ssize_t *offset)
{
size_t i;
uint8 *rawbytes;
@ -256,7 +256,7 @@ CKeyArray::Search(const char *key)
void
CData::Load(size_t length, uint8 *data, intptr_t *offset)
CData::Load(size_t length, uint8 *data, ssize_t *offset)
{
size_t i;
uint8 *rawbytes;

View File

@ -26,7 +26,7 @@ public:
CKeyArray(void) : entries(nil), numEntries(0) {}
~CKeyArray(void) { Unload(); }
void Load(size_t length, uint8 *data, intptr_t *offset);
void Load(size_t length, uint8 *data, ssize_t *offset);
void Unload(void);
void Update(wchar *chars);
CKeyEntry *BinarySearch(const char *key, CKeyEntry *entries, int16 low, int16 high);
@ -45,7 +45,7 @@ public:
CData(void) : chars(nil), numChars(0) {}
~CData(void) { Unload(); }
void Load(size_t length, uint8 *data, intptr_t *offset);
void Load(size_t length, uint8 *data, ssize_t *offset);
void Unload(void);
};