44#include " amberlens0x344.h"
55#include " boundingshape0x2c.h"
66#include " cmbmodelpart0x34.h"
7+ #include " floatybarge0x4c.h"
78#include " gdbmodel0x48.h"
89#include " golerror.h"
910#include " greyfalconnode0x1c.h"
11+ #include " mabmaterialanimation0x14.h"
1012#include " purpleribbon0x24.h"
1113#include " shadowwolf0xc.h"
1214
@@ -34,91 +36,67 @@ FluffyGloomkins0x118::~FluffyGloomkins0x118()
3436}
3537
3638// FUNCTION: GOLDP 0x10017250
37- MagentaRibbon0x20* FluffyGloomkins0x118::VTable0x2c (LegoU32 p_index)
39+ MagentaRibbon0x20* FluffyGloomkins0x118::VTable0x2c (LegoU32 p_index) const
3840{
3941 return &m_unk0xf0[p_index];
4042}
4143
4244// FUNCTION: GOLDP 0x10017270
43- AmberHaze0x1c* FluffyGloomkins0x118::VTable0x30 (LegoU32 p_index)
45+ AmberHaze0x1c* FluffyGloomkins0x118::VTable0x30 (LegoU32 p_index) const
4446{
4547 return &m_unk0xf4[p_index];
4648}
4749
48- // STUB : GOLDP 0x10017290
49- CmbModelPart0x34* FluffyGloomkins0x118::VTable0x34 (LegoU32 p_index)
50+ // FUNCTION : GOLDP 0x10017290
51+ CmbModelPart0x34* FluffyGloomkins0x118::VTable0x34 (LegoU32 p_index) const
5052{
5153 return &m_unk0x10c[p_index];
5254}
5355
54- // STUB : GOLDP 0x100172b0
55- IGdbModel0x40* FluffyGloomkins0x118::VTable0x38 (LegoU32 p_index)
56+ // FUNCTION : GOLDP 0x100172b0
57+ IGdbModel0x40* FluffyGloomkins0x118::VTable0x38 (LegoU32 p_index) const
5658{
5759 return &m_unk0xf8[p_index];
5860}
5961
60- // STUB : GOLDP 0x100172d0
61- ShadowWolf0xc* FluffyGloomkins0x118::VTable0x3c (LegoU32 p_index)
62+ // FUNCTION : GOLDP 0x100172d0
63+ ShadowWolf0xc* FluffyGloomkins0x118::VTable0x3c (LegoU32 p_index) const
6264{
6365 return &m_unk0x104[p_index];
6466}
6567
66- // STUB : GOLDP 0x100172f0
67- undefined4 * FluffyGloomkins0x118::VTable0x40 (LegoU32 p_index)
68+ // FUNCTION : GOLDP 0x100172f0
69+ WhiteFalconNode0x18 * FluffyGloomkins0x118::VTable0x40 (LegoU32 p_index) const
6870{
69- #if 0
7071 return &m_unk0xfc[p_index];
71- #else
72- // TODO
73- STUB (0x100172f0 );
74- return NULL ;
75- #endif
7672}
7773
7874// FUNCTION: GOLDP 0x10017310
79- BoundingShape0x2c* FluffyGloomkins0x118::VTable0x44 (LegoU32 p_index)
75+ BoundingShape0x2c* FluffyGloomkins0x118::VTable0x44 (LegoU32 p_index) const
8076{
8177 return &m_unk0x110[p_index];
8278}
8379
84- // STUB : GOLDP 0x10017330
85- undefined4 * FluffyGloomkins0x118::VTable0x48 (LegoU32 p_index)
80+ // FUNCTION : GOLDP 0x10017330
81+ FloatyBoat0x28 * FluffyGloomkins0x118::VTable0x48 (LegoU32 p_index) const
8682{
87- #if 0
8883 return &m_unk0x100[p_index];
89- #else
90- // TODO
91- STUB (0x10017330 );
92- return NULL ;
93- #endif
9484}
9585
96- // STUB : GOLDP 0x10017350
97- undefined4 * FluffyGloomkins0x118::VTable0x4c (LegoU32 p_index)
86+ // FUNCTION : GOLDP 0x10017350
87+ MabMaterialAnimation0x14 * FluffyGloomkins0x118::VTable0x4c (LegoU32 p_index) const
9888{
99- #if 0
10089 return &m_unk0x108[p_index];
101- #else
102- // TODO
103- STUB (0x10017350 );
104- return NULL ;
105- #endif
10690}
10791
108- // STUB : GOLDP 0x10017370
109- undefined4 * FluffyGloomkins0x118::VTable0x50 (LegoU32 p_index)
92+ // FUNCTION : GOLDP 0x10017370
93+ AmberLensBase0x120 * FluffyGloomkins0x118::VTable0x50 (LegoU32 p_index) const
11094{
111- #if 0
11295 return &m_unk0x114[p_index];
113- #else
114- // TODO
115- STUB (0x10017370 );
116- return NULL ;
117- #endif
11896}
11997
120- // STUB : GOLDP 0x10017390
121- undefined4* FluffyGloomkins0x118::VTable0x08 ()
98+ // FUNCTION : GOLDP 0x10017390
99+ void FluffyGloomkins0x118::VTable0x08 ()
122100{
123101 if (GetUnk0x0c () != 0 ) {
124102 m_unk0xf0 = new PurpleRibbon0x24[GetUnk0x0c ()];
@@ -169,17 +147,26 @@ undefined4* FluffyGloomkins0x118::VTable0x08()
169147 }
170148 }
171149
172- // ...
150+ if (GetUnk0x6c () != 0 ) {
151+ m_unk0x100 = new FloatyBarge0x4c[GetUnk0x6c ()];
152+ if (m_unk0x100 == NULL ) {
153+ GOL_FATALERROR (c_golErrorOutOfMemory);
154+ }
155+ }
156+
157+ if (GetUnk0x74 () != 0 ) {
158+ m_unk0x108 = new MabMaterialAnimation0x14[GetUnk0x74 ()];
159+ if (m_unk0x108 == NULL ) {
160+ GOL_FATALERROR (c_golErrorOutOfMemory);
161+ }
162+ }
173163
174164 if (GetUnk0x7c ()) {
175165 m_unk0x114 = new AmberLens0x344[GetUnk0x7c ()];
176166 if (m_unk0x114 == NULL ) {
177167 GOL_FATALERROR (c_golErrorOutOfMemory);
178168 }
179169 }
180- // TODO
181- STUB (0x10017390 );
182- return NULL ;
183170}
184171
185172// STUB: GOLDP 0x10017ac0
@@ -190,14 +177,50 @@ undefined4* FluffyGloomkins0x118::VTable0x0c()
190177 return NULL ;
191178}
192179
193- // STUB : GOLDP 0x100180a0
180+ // FUNCTION : GOLDP 0x100180a0
194181void FluffyGloomkins0x118::VTable0x18 ()
195182{
196183 if (m_unk0x114) {
197184 delete[] m_unk0x114;
198185 m_unk0x114 = NULL ;
199186 }
200- STUB (0x100180a0 );
187+ if (m_unk0x100) {
188+ delete[] m_unk0x100;
189+ m_unk0x100 = NULL ;
190+ }
191+ if (m_unk0x110) {
192+ delete[] m_unk0x110;
193+ m_unk0x110 = NULL ;
194+ }
195+ if (m_unk0xfc) {
196+ delete[] m_unk0xfc;
197+ m_unk0xfc = NULL ;
198+ }
199+ if (m_unk0x104) {
200+ delete[] m_unk0x104;
201+ m_unk0x104 = NULL ;
202+ }
203+ if (m_unk0xf8) {
204+ delete[] m_unk0xf8;
205+ m_unk0xf8 = NULL ;
206+ }
207+ if (m_unk0x10c) {
208+ delete[] m_unk0x10c;
209+ m_unk0x10c = NULL ;
210+ }
211+ if (m_unk0xf4) {
212+ delete[] m_unk0xf4;
213+ m_unk0xf4 = NULL ;
214+ }
215+ if (m_unk0xf0) {
216+ delete[] m_unk0xf0;
217+ m_unk0xf0 = NULL ;
218+ }
219+ if (m_unk0x108) {
220+ delete[] m_unk0x108;
221+ m_unk0x108 = NULL ;
222+ }
223+ ZoweeBlubberworth0xf0::VTable0x18 ();
201224}
202225
203226// STUB: GOLDP 0x100181b0
0 commit comments