|
| 1 | +#ifndef GOLFILEPARSER_H |
| 2 | +#define GOLFILEPARSER_H |
| 3 | + |
| 4 | +#include "golfile.h" |
| 5 | + |
| 6 | +#include <string.h> |
| 7 | + |
| 8 | +// SIZE 0x1f0 |
| 9 | +// VTABLE: GOLDP 0x100578bc |
| 10 | +// VTABLE: LEGORACERS 0x004b0ffc |
| 11 | +class GolFileParser : public GolFile { |
| 12 | +public: |
| 13 | + enum ParserErrorCode { |
| 14 | + e_syntaxerror = 0, |
| 15 | + e_numericTooLong = 1, |
| 16 | + e_expectedString = 2, |
| 17 | + e_expectedFloat = 3, |
| 18 | + e_expectedInt = 4, |
| 19 | + e_expectedLeftCurly = 5, |
| 20 | + e_expectedRightCurly = 6, |
| 21 | + e_expectedLeftBracket = 7, |
| 22 | + e_expectedRightBracket = 8, |
| 23 | + e_expectedComma = 9, |
| 24 | + e_expectedSimicolon = 10, |
| 25 | + e_expectedEOF = 11, |
| 26 | + e_expectedStringOrBracket = 12, |
| 27 | + e_invalidKeyword = 13, |
| 28 | + e_invalidString = 14, |
| 29 | + e_invalidValue = 15, |
| 30 | + e_duplicateName = 16, |
| 31 | + e_unsuported = 17, |
| 32 | + e_unsuportedKeyword = 18, |
| 33 | + e_expectedKeyword = 19 |
| 34 | + }; |
| 35 | + |
| 36 | + GolFileParser(); |
| 37 | + ~GolFileParser() override; |
| 38 | + |
| 39 | + LegoS32 Dispose() override; // vtable+0x20 |
| 40 | + virtual void VTable0x38(undefined4); // vtable+0x38 |
| 41 | + virtual const LegoChar* GetSuffix(); // vtable+0x3c |
| 42 | + virtual void VTable0x40(undefined4) = 0; // vtable+0x40 |
| 43 | + virtual undefined4 VTable0x44(); // vtable+0x44 |
| 44 | + virtual undefined4 VTable0x48(undefined4, undefined4); // vtable+0x48 |
| 45 | + virtual void VTable0x4c() = 0; // vtable+0x4c |
| 46 | + virtual void VTable0x50() = 0; // vtable+0x50 |
| 47 | + virtual void VTable0x54() = 0; // vtable+0x54 |
| 48 | + virtual void VTable0x58() = 0; // vtable+0x58 |
| 49 | + virtual void VTable0x5c() = 0; // vtable+0x5c |
| 50 | + virtual void VTable0x60() = 0; // vtable+0x60 |
| 51 | + virtual void VTable0x64() = 0; // vtable+0x64 |
| 52 | + virtual void VTable0x68() = 0; // vtable+0x68 |
| 53 | + virtual void VTable0x6c() = 0; // vtable+0x6c |
| 54 | + virtual void VTable0x70() = 0; // vtable+0x70 |
| 55 | + virtual void VTable0x74() = 0; // vtable+0x74 |
| 56 | + |
| 57 | + void FUN_10032580(LegoS32 p_code); |
| 58 | + void FUN_10032670(const LegoChar* p_suffix); |
| 59 | + undefined4 FUN_100326a0(); |
| 60 | + float FUN_100326c0(); |
| 61 | + LegoChar* FUN_100326e0(); |
| 62 | + LegoChar* FUN_10032700(size_t p_len); |
| 63 | + void FUN_10032740(undefined4 p_expected); |
| 64 | + void FUN_10032760(); |
| 65 | + void FUN_10032780(); |
| 66 | + void FUN_100327a0(); |
| 67 | + void FUN_100327c0(); |
| 68 | + undefined4 FUN_100327e0(); |
| 69 | + |
| 70 | + const LegoChar* ParserErrorCodeToString(LegoS32 p_code); |
| 71 | + |
| 72 | + // SYNTHETIC: GOLDP 0x10032480 |
| 73 | + // SYNTHETIC: LEGORACERS 0x0044e5c0 |
| 74 | + // GolFileParser::`scalar deleting destructor' |
| 75 | + |
| 76 | +private: |
| 77 | + undefined4 m_unk0x30; // 0x30 |
| 78 | + undefined4 m_unk0x34; // 0x34 |
| 79 | + undefined4 m_unk0x38; // 0x38 |
| 80 | + undefined m_unk0x3c[0x40 - 0x3c]; // 0x3c |
| 81 | + float m_unk0x40; // 0x40 |
| 82 | + LegoChar m_unk0x44[0x84 - 0x44]; // 0x44 |
| 83 | + undefined m_unk0x84[0xa4 - 0x84]; // 0x84 |
| 84 | + LegoChar* m_unk0xa4; // 0xa4 |
| 85 | + undefined m_unk0xa8[0x1a4 - 0xa8]; // 0xa8 |
| 86 | + LegoChar* m_filePath; // 0x1a4 |
| 87 | + LegoChar m_unk0x1a8[0x1e8 - 0x1a8]; // 0x1a8 |
| 88 | + LegoChar m_suffix[5]; // 0x1a8 |
| 89 | +}; |
| 90 | + |
| 91 | +#endif // GOLFILEPARSER_H |
0 commit comments