Skip to content

Commit f4ae42a

Browse files
committed
~85%
1 parent 4744514 commit f4ae42a

5 files changed

Lines changed: 53 additions & 35 deletions

File tree

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ set(GOLDP_INLINE_EXPANSION_SOURCES
113113
GolDP/src/golfont0xa0.cpp
114114
GolDP/src/bronzedune0x4c.cpp
115115
GolDP/src/purpleribbon0x24.cpp
116-
GolDP/src/amberhaze0x20.cpp
116+
GolDP/src/amberhaze0x20.cpp
117117
)
118118

119119
add_library(common_goldp OBJECT ${COMMON_SOURCES})

GolDP/include/duskwindbananarelic0x24.h

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ struct DuskwindBananaRelicColor {
2424

2525
// SIZE 0x14
2626
struct DuskWindBananaRelicParams {
27+
DuskWindBananaRelicParams() {}
28+
DuskWindBananaRelicParams(LegoU8 p_fullIntensity);
29+
2730
LegoU32 m_unk0x00;
2831
undefined4* m_unk0x04;
2932
DuskwindBananaRelicColor m_unk0x08;
@@ -108,4 +111,26 @@ class DuskwindBananaRelic0x24 {
108111
undefined m_unk0x23;
109112
};
110113

114+
inline DuskWindBananaRelicParams::DuskWindBananaRelicParams(LegoU8 p_fullIntensity)
115+
{
116+
m_unk0x0c.m_unk0x0 = p_fullIntensity;
117+
m_unk0x0c.m_unk0x1 = p_fullIntensity;
118+
m_unk0x0c.m_unk0x2 = p_fullIntensity;
119+
m_unk0x0c.m_unk0x3 = p_fullIntensity;
120+
m_unk0x08.m_unk0x0 = p_fullIntensity;
121+
m_unk0x08.m_unk0x1 = p_fullIntensity;
122+
m_unk0x08.m_unk0x2 = p_fullIntensity;
123+
m_unk0x08.m_unk0x3 = p_fullIntensity;
124+
m_unk0x00 = DuskwindBananaRelic0x24::c_flag0x08Bit2 | DuskwindBananaRelic0x24::c_flag0x08Bit4 |
125+
DuskwindBananaRelic0x24::c_flag0x08Bit7 | DuskwindBananaRelic0x24::c_flag0x08Bit9 |
126+
DuskwindBananaRelic0x24::c_flag0x08Bit10 | DuskwindBananaRelic0x24::c_flag0x08Bit13 |
127+
DuskwindBananaRelic0x24::c_flag0x08Bit15 | DuskwindBananaRelic0x24::c_flag0x08Bit20 |
128+
DuskwindBananaRelic0x24::c_flag0x08Bit22;
129+
m_unk0x04 = NULL;
130+
m_unk0x10 = 2;
131+
m_unk0x11 = 0;
132+
m_unk0x12 = 1;
133+
m_unk0x13 = 0;
134+
}
135+
111136
#endif // DUSKWINDBANANARELIC0x24_H

GolDP/src/amberhaze0x1c.cpp

Lines changed: 24 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,12 @@ void AmberHaze0x1c::VTable0x24(WhiteFalcon0x140* p_renderer, const LegoChar* p_f
3737
if (m_renderer != NULL) {
3838
Clear();
3939
}
40+
4041
m_renderer = p_renderer;
4142
p_renderer->AddMaterialList(this);
4243
m_unk0x14 = NULL;
4344
GolFileParser* parser;
45+
4446
if (p_binary) {
4547
parser = new GolBinParser;
4648
if (parser == NULL) {
@@ -54,17 +56,22 @@ void AmberHaze0x1c::VTable0x24(WhiteFalcon0x140* p_renderer, const LegoChar* p_f
5456
GOL_FATALERROR(c_golErrorOutOfMemory);
5557
}
5658
}
59+
5760
parser->OpenFileForRead(p_fileName);
5861
parser->AssertNextTokenIs(GolFileParser::e_unknown0x27);
5962
m_numItems = parser->FUN_100327e0();
63+
6064
if (m_numItems == 0) {
6165
parser->HandleUnexpectedToken(GolFileParser::e_int);
6266
}
67+
6368
GolNameTable::Allocate(m_numItems);
6469
VTable0x14();
6570
LegoU32 i;
6671
LegoU32 j;
6772
LegoChar textureName[8];
73+
LegoU8 fullIntensity = 0xff;
74+
6875
for (i = 0; i < m_numItems; i++) {
6976
parser->AssertNextTokenIs(GolFileParser::e_unknown0x27);
7077
DuskWindName0x8 name;
@@ -76,28 +83,10 @@ void AmberHaze0x1c::VTable0x24(WhiteFalcon0x140* p_renderer, const LegoChar* p_f
7683
DuskwindBananaRelic0x24* material = VTable0x28(i);
7784
AddName(name.m_unk0x0, material);
7885
parser->ReadLeftCurly();
79-
DuskWindBananaRelicParams params;
80-
params.m_unk0x0c.m_unk0x0 = 0xff;
81-
params.m_unk0x0c.m_unk0x1 = 0xff;
82-
params.m_unk0x0c.m_unk0x2 = 0xff;
83-
params.m_unk0x0c.m_unk0x3 = 0xff;
84-
params.m_unk0x08.m_unk0x0 = 0xff;
85-
params.m_unk0x08.m_unk0x1 = 0xff;
86-
params.m_unk0x08.m_unk0x2 = 0xff;
87-
params.m_unk0x08.m_unk0x3 = 0xff;
88-
params.m_unk0x00 = DuskwindBananaRelic0x24::c_flag0x08Bit2 | DuskwindBananaRelic0x24::c_flag0x08Bit4 |
89-
DuskwindBananaRelic0x24::c_flag0x08Bit7 | DuskwindBananaRelic0x24::c_flag0x08Bit9 |
90-
DuskwindBananaRelic0x24::c_flag0x08Bit10 | DuskwindBananaRelic0x24::c_flag0x08Bit13 |
91-
DuskwindBananaRelic0x24::c_flag0x08Bit15 | DuskwindBananaRelic0x24::c_flag0x08Bit20 |
92-
DuskwindBananaRelic0x24::c_flag0x08Bit22;
93-
params.m_unk0x04 = NULL;
94-
params.m_unk0x10 = 2;
95-
params.m_unk0x11 = 0;
96-
params.m_unk0x12 = 1;
97-
params.m_unk0x13 = 0;
86+
DuskWindBananaRelicParams params(fullIntensity);
9887

99-
GolFileParser::ParserTokenType token;
100-
while ((token = parser->GetNextToken()) != GolFileParser::e_rightCurly) {
88+
GolFileParser::ParserTokenType token = parser->GetNextToken();
89+
while (token != GolFileParser::e_rightCurly) {
10190
switch (token) {
10291
case GolFileParser::e_unknown0x28:
10392
params.m_unk0x08.m_unk0x0 = parser->ReadInteger();
@@ -121,7 +110,7 @@ void AmberHaze0x1c::VTable0x24(WhiteFalcon0x140* p_renderer, const LegoChar* p_f
121110
break;
122111
case GolFileParser::e_unknown0x2c:
123112
::strncpy(textureName, parser->ReadStringWithMaxLength(8), 8);
124-
params.m_unk0x04 = m_renderer->FindTextureByName(textureName);
113+
params.m_unk0x04 = p_renderer->FindTextureByName(textureName);
125114
if (params.m_unk0x04 == NULL) {
126115
char message[128];
127116
::strcpy(message, "Mat def file references unknown texture: ");
@@ -234,13 +223,6 @@ void AmberHaze0x1c::VTable0x24(WhiteFalcon0x140* p_renderer, const LegoChar* p_f
234223
params.m_unk0x00 &= ~DuskwindBananaRelic0x24::c_flag0x08Bit10;
235224
params.m_unk0x00 |= DuskwindBananaRelic0x24::c_flag0x08Bit11;
236225
break;
237-
case GolFileParser::e_unknown0x46:
238-
case GolFileParser::e_unknown0x4e:
239-
params.m_unk0x13 = parser->ReadInteger();
240-
params.m_unk0x00 &=
241-
~(DuskwindBananaRelic0x24::c_flag0x08Bit8 | DuskwindBananaRelic0x24::c_flag0x08Bit13);
242-
params.m_unk0x00 |= DuskwindBananaRelic0x24::c_flag0x08Bit9 | DuskwindBananaRelic0x24::c_flag0x08Bit12;
243-
break;
244226
case GolFileParser::e_unknown0x47:
245227
params.m_unk0x00 |= DuskwindBananaRelic0x24::c_flag0x08Bit14;
246228
break;
@@ -263,14 +245,21 @@ void AmberHaze0x1c::VTable0x24(WhiteFalcon0x140* p_renderer, const LegoChar* p_f
263245
params.m_unk0x00 &= ~DuskwindBananaRelic0x24::c_flag0x08Bit22;
264246
params.m_unk0x00 |= DuskwindBananaRelic0x24::c_flag0x08Bit21;
265247
break;
266-
case GolFileParser::e_unknown0x4d:
267-
case GolFileParser::e_unknown0x50:
248+
case GolFileParser::e_unknown0x46:
249+
case GolFileParser::e_unknown0x4e:
268250
params.m_unk0x13 = parser->ReadInteger();
269251
params.m_unk0x00 &=
270252
~(DuskwindBananaRelic0x24::c_flag0x08Bit8 | DuskwindBananaRelic0x24::c_flag0x08Bit13);
271253
params.m_unk0x00 |= DuskwindBananaRelic0x24::c_flag0x08Bit9 | DuskwindBananaRelic0x24::c_flag0x08Bit12;
272254
break;
273255
case GolFileParser::e_unknown0x4f:
256+
params.m_unk0x13 = parser->ReadInteger();
257+
params.m_unk0x00 = (params.m_unk0x00 & ~(DuskwindBananaRelic0x24::c_flag0x08Bit8 |
258+
DuskwindBananaRelic0x24::c_flag0x08Bit13)) |
259+
(DuskwindBananaRelic0x24::c_flag0x08Bit9 | DuskwindBananaRelic0x24::c_flag0x08Bit12);
260+
break;
261+
case GolFileParser::e_unknown0x4d:
262+
case GolFileParser::e_unknown0x50:
274263
params.m_unk0x13 = parser->ReadInteger();
275264
params.m_unk0x00 &=
276265
~(DuskwindBananaRelic0x24::c_flag0x08Bit8 | DuskwindBananaRelic0x24::c_flag0x08Bit13);
@@ -280,10 +269,12 @@ void AmberHaze0x1c::VTable0x24(WhiteFalcon0x140* p_renderer, const LegoChar* p_f
280269
parser->HandleUnexpectedToken(GolFileParser::e_syntaxerror);
281270
break;
282271
}
272+
token = parser->GetNextToken();
283273
}
284274
material->m_unk0x18 = name;
285275
material->FUN_100257e0(m_renderer, params);
286276
}
277+
287278
parser->ReadRightCurly();
288279
parser->Dispose();
289280
FUN_10026970();
@@ -325,6 +316,7 @@ void AmberHaze0x1c::VTable0x20(WhiteFalcon0x140* p_renderer, undefined4* p_arg2,
325316
if (m_renderer != NULL) {
326317
Clear();
327318
}
319+
328320
m_renderer = p_renderer;
329321
p_renderer->AddMaterialList(this);
330322
m_unk0x14 = p_arg2;
@@ -355,6 +347,7 @@ void AmberHaze0x1c::VTable0x1c(WhiteFalcon0x140* p_renderer, LegoU32 p_capacity)
355347
if (m_renderer != NULL) {
356348
Clear();
357349
}
350+
358351
m_renderer = p_renderer;
359352
p_renderer->AddMaterialList(this);
360353
m_numItems = p_capacity;

GolDP/src/fluffygloomkins0x118.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,14 +116,14 @@ undefined4* FluffyGloomkins0x118::VTable0x08()
116116

117117
if (GetUnk0x0c() != 0) {
118118
m_unk0xf0 = new PurpleRibbon0x24[GetUnk0x0c()];
119-
if (m_unk0xf0 != NULL) {
119+
if (m_unk0xf0 == NULL) {
120120
GOL_FATALERROR(c_golErrorOutOfMemory);
121121
}
122122
}
123123

124124
if (GetUnk0x14() != 0) {
125125
m_unk0xf4 = new AmberHaze0x20[GetUnk0x14()];
126-
if (m_unk0xf4 != NULL) {
126+
if (m_unk0xf4 == NULL) {
127127
GOL_FATALERROR(c_golErrorOutOfMemory);
128128
}
129129
}

GolDP/src/goldpexport.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ GolDPExport::~GolDPExport()
3030
// FUNCTION: GOLDP 0x10015090
3131
GolDrawState* GolDPExport::VTable0x04()
3232
{
33-
return &this->m_state;
33+
return &m_state;
3434
}
3535

3636
// FUNCTION: GOLDP 0x100150a0

0 commit comments

Comments
 (0)