mirror of
https://github.com/isledecomp/isle-portable.git
synced 2024-11-29 19:05:34 -05:00
fix LegoState::VTable0x1C fake-match & implement LegoFileStream::FUN_10006030 (#217)
* fix LegoState::VTable0x1C fake-match, implement LegoFileStream::FUN_10006030 * Match and relocate FUN_10006030 --------- Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
parent
476af22b36
commit
7c26a4d2dc
3 changed files with 19 additions and 10 deletions
|
@ -18,16 +18,23 @@ MxBool LegoState::VTable0x18() {
|
|||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10005fb0
|
||||
MxResult LegoState::VTable0x1C(LegoState *p_legoState)
|
||||
MxResult LegoState::VTable0x1C(LegoFileStream *p_legoFileStream)
|
||||
{
|
||||
if (p_legoState->VTable0x14()) {
|
||||
p_legoState->FUN_10006030(this->ClassName());
|
||||
if (p_legoFileStream->IsWriteMode()) {
|
||||
p_legoFileStream->FUN_10006030(this->ClassName());
|
||||
}
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x10006030 STUB
|
||||
void LegoState::FUN_10006030(MxString p_str)
|
||||
// OFFSET: LEGO1 0x10006030
|
||||
LegoFileStream *LegoFileStream::FUN_10006030(MxString p_str)
|
||||
{
|
||||
// TODO
|
||||
const char *data = p_str.GetData();
|
||||
MxU32 fullLength = strlen(data);
|
||||
|
||||
MxU16 limitedLength = fullLength;
|
||||
Write(&limitedLength, sizeof(limitedLength));
|
||||
Write(data, (MxS16) fullLength);
|
||||
|
||||
return this;
|
||||
}
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
#include "mxcore.h"
|
||||
#include "mxstring.h"
|
||||
#include "legostream.h"
|
||||
|
||||
// VTABLE 0x100d46c0
|
||||
class LegoState : public MxCore
|
||||
|
@ -27,9 +28,7 @@ class LegoState : public MxCore
|
|||
|
||||
virtual MxBool VTable0x14(); // vtable+0x14
|
||||
virtual MxBool VTable0x18(); // vtable+0x18
|
||||
virtual MxResult VTable0x1C(LegoState *p_legoState); // vtable+0x1C
|
||||
|
||||
void FUN_10006030(MxString p_str);
|
||||
virtual MxResult VTable0x1C(LegoFileStream *p_legoFileStream); // vtable+0x1C
|
||||
};
|
||||
|
||||
#endif // LEGOSTATE_H
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
#include "compat.h"
|
||||
#include "decomp.h"
|
||||
#include "mxtypes.h"
|
||||
#include "mxstring.h"
|
||||
|
||||
#include <iosfwd>
|
||||
|
||||
|
@ -55,6 +56,8 @@ class LegoFileStream : public LegoStream
|
|||
|
||||
MxResult Open(const char* p_filename, OpenFlags p_mode);
|
||||
|
||||
LegoFileStream *FUN_10006030(MxString p_str);
|
||||
|
||||
private:
|
||||
FILE *m_hFile;
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue