little fixes

This commit is contained in:
aap 2021-01-08 13:51:42 +01:00
parent 824ca7599c
commit 8be0567924
5 changed files with 12 additions and 4 deletions

View File

@ -286,6 +286,7 @@ CPhoneInfo::Initialise(void)
CBuilding *building = pool->GetSlot(i); CBuilding *building = pool->GetSlot(i);
if (building) { if (building) {
if (building->GetModelIndex() == MI_PHONEBOOTH1) { if (building->GetModelIndex() == MI_PHONEBOOTH1) {
assert(m_nMax < ARRAY_SIZE(m_aPhones) && "NUMPHONES should be increased");
CPhone *maxPhone = &m_aPhones[m_nMax]; CPhone *maxPhone = &m_aPhones[m_nMax];
maxPhone->m_nState = PHONE_STATE_FREE; maxPhone->m_nState = PHONE_STATE_FREE;
maxPhone->m_vecPos = building->GetPosition(); maxPhone->m_vecPos = building->GetPosition();

View File

@ -241,7 +241,7 @@ CFileMgr::SetDirMyDocuments(void)
} }
ssize_t ssize_t
CFileMgr::LoadFile(const char *file, uint8 *buf, int unused, const char *mode) CFileMgr::LoadFile(const char *file, uint8 *buf, int maxlen, const char *mode)
{ {
int fd; int fd;
ssize_t n, len; ssize_t n, len;
@ -257,6 +257,7 @@ CFileMgr::LoadFile(const char *file, uint8 *buf, int unused, const char *mode)
return -1; return -1;
#endif #endif
len += n; len += n;
assert(len < maxlen);
}while(n == 0x4000); }while(n == 0x4000);
buf[len] = 0; buf[len] = 0;
myfclose(fd); myfclose(fd);

View File

@ -9,7 +9,7 @@ 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 ssize_t LoadFile(const char *file, uint8 *buf, int unused, const char *mode); static ssize_t LoadFile(const char *file, uint8 *buf, int maxlen, 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);

View File

@ -526,7 +526,12 @@ CStreaming::ConvertBufferToObject(int8 *buf, int32 streamId)
// Txd and anim have to be loaded // Txd and anim have to be loaded
int animId = mi->GetAnimFileIndex(); int animId = mi->GetAnimFileIndex();
#ifdef FIX_BUGS
if(!HasTxdLoaded(mi->GetTxdSlot()) ||
#else
// texDict will exist even if only first part has loaded
if(CTxdStore::GetSlot(mi->GetTxdSlot())->texDict == nil || if(CTxdStore::GetSlot(mi->GetTxdSlot())->texDict == nil ||
#endif
animId != -1 && !CAnimManager::GetAnimationBlock(animId)->isLoaded){ animId != -1 && !CAnimManager::GetAnimationBlock(animId)->isLoaded){
RemoveModel(streamId); RemoveModel(streamId);
ReRequestModel(streamId); ReRequestModel(streamId);

View File

@ -172,8 +172,9 @@ CTimeCycle::Initialise(void)
for(w = 0; w < NUMWEATHERS; w++) for(w = 0; w < NUMWEATHERS; w++)
for(h = 0; h < NUMHOURS; h++){ for(h = 0; h < NUMHOURS; h++){
li = 0; li = 0;
while(work_buff[bi] == '/'){ while(work_buff[bi] == '/' || work_buff[bi] == '\n' ||
while(work_buff[bi] != '\n') work_buff[bi] == '\0' || work_buff[bi] == ' ' || work_buff[bi] == '\r'){
while(work_buff[bi] != '\n' && work_buff[bi] != '\0' && work_buff[bi] != '\r')
bi++; bi++;
bi++; bi++;
} }