|
1 | 1 | #include "ironflame0x944.h" |
2 | 2 |
|
| 3 | +#include "../../GolDP/include/gol.h" |
| 4 | +#include "gol.h" |
| 5 | +#include "golerror.h" |
| 6 | +#include "golinterface.h" |
| 7 | + |
| 8 | +#include <stdio.h> |
| 9 | + |
3 | 10 | DECOMP_SIZE_ASSERT(IronFlame0x944, 0x944) |
4 | 11 |
|
5 | 12 | // FUNCTION: LEGORACERS 0x4164d0 |
6 | 13 | IronFlame0x944::IronFlame0x944() |
7 | 14 | { |
8 | | - m_unk0x830 = 0; |
9 | | - m_unk0x800 = 0; |
| 15 | + m_golLibrary = NULL; |
| 16 | + m_golExport = NULL; |
10 | 17 | m_unk0x924 = 0; |
11 | 18 | m_unk0x928 = 0; |
12 | 19 | m_unk0x92c = 0; |
@@ -44,11 +51,39 @@ void IronFlame0x944::VTable0x10() |
44 | 51 | STUB(0x4167e0); |
45 | 52 | } |
46 | 53 |
|
47 | | -// STUB: LEGORACERS 0x416960 |
| 54 | +// FUNCTION: LEGORACERS 0x416960 |
48 | 55 | void IronFlame0x944::VTable0x14() |
49 | 56 | { |
50 | | - // TODO |
51 | | - STUB(0x416960); |
| 57 | + char buffer[100]; |
| 58 | + // const char *dllname; |
| 59 | + GolImport gol_import; |
| 60 | + |
| 61 | + if (m_unk0x928 & 0x2) { |
| 62 | + m_golLibrary = LoadLibraryA("GolGlide.DLL"); |
| 63 | + } |
| 64 | + else if (m_unk0x928 & 0x1) { |
| 65 | + m_golLibrary = LoadLibraryA("GolSoft.DLL"); |
| 66 | + } |
| 67 | + else if (m_unk0x928 & 0x4) { |
| 68 | + m_golLibrary = LoadLibraryA("GolD3D.DLL"); |
| 69 | + // dllname = "GolD3D.DLL"; |
| 70 | + } |
| 71 | + else { |
| 72 | + m_golLibrary = LoadLibraryA("GolDP.DLL"); |
| 73 | + // dllname = "GolDP.DLL"; |
| 74 | + } |
| 75 | + if (m_golLibrary == NULL) { |
| 76 | + sprintf(buffer, "Unable to find a valid Gol DLL\nError Code = %d", GetLastError()); |
| 77 | + GOL_FATALERROR_MESSAGE(buffer); |
| 78 | + } |
| 79 | + GolEntryCBFN* golEntry = (GolEntryCBFN*) GetProcAddress(m_golLibrary, "GolEntry"); |
| 80 | + if (golEntry == NULL) { |
| 81 | + GOL_FATALERROR_MESSAGE("Invalid Gol DLL - cannot call entry procedure"); |
| 82 | + } |
| 83 | + CreateGolImport(&gol_import); |
| 84 | + gol_import.m_fatalErrorMessage = GolFatalErrorMessage; |
| 85 | + m_golExport = golEntry(&gol_import); |
| 86 | + m_golDrawState = m_golExport->VTable0x04(); |
52 | 87 | } |
53 | 88 |
|
54 | 89 | // STUB: LEGORACERS 0x416a30 |
|
0 commit comments