little fixes
This commit is contained in:
parent
ec61964bce
commit
223b49e3be
@ -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);
|
||||||
|
@ -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);
|
||||||
|
@ -509,10 +509,18 @@ CStreaming::ConvertBufferToObject(int8 *buf, int32 streamId)
|
|||||||
mi = CModelInfo::GetModelInfo(streamId);
|
mi = CModelInfo::GetModelInfo(streamId);
|
||||||
|
|
||||||
// Txd has to be loaded
|
// Txd has to be loaded
|
||||||
|
#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
|
||||||
debug("failed to load %s because TXD %s is not in memory\n", mi->GetName(), CTxdStore::GetTxdName(mi->GetTxdSlot()));
|
debug("failed to load %s because TXD %s is not in memory\n", mi->GetName(), CTxdStore::GetTxdName(mi->GetTxdSlot()));
|
||||||
RemoveModel(streamId);
|
RemoveModel(streamId);
|
||||||
|
#ifndef FIX_BUGS
|
||||||
|
// if we're just waiting for it to load, don't remove this
|
||||||
RemoveTxd(mi->GetTxdSlot());
|
RemoveTxd(mi->GetTxdSlot());
|
||||||
|
#endif
|
||||||
ReRequestModel(streamId);
|
ReRequestModel(streamId);
|
||||||
RwStreamClose(stream, &mem);
|
RwStreamClose(stream, &mem);
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
Reference in New Issue
Block a user