Skip to content

Commit dd010ab

Browse files
committed
Implement AmberHaze0x20 methods
1 parent e2a4046 commit dd010ab

18 files changed

Lines changed: 635 additions & 50 deletions

CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +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
116117
)
117118

118119
add_library(common_goldp OBJECT ${COMMON_SOURCES})
@@ -159,6 +160,7 @@ add_library(goldp SHARED
159160
GolDP/src/ddrawutil.cpp
160161
GolDP/src/jadeorbitbase0x10.cpp
161162
GolDP/src/amberhaze0x1c.cpp
163+
GolDP/src/amberhaze0x20.cpp
162164
GolDP/src/cinderbasin0x28.cpp
163165
GolDP/src/golfontbase0x40.cpp
164166
GolDP/src/magentaribbon0x20.cpp

GolDP/include/amberhaze0x1c.h

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,14 @@
22
#define AMBERHAZE0X1C_H
33

44
#include "golnametable.h"
5+
#include "goltxtparser.h"
56

6-
class BronzeFalcon0xc8770;
7+
// SIZE 0x1fc
8+
// VTABLE: GOLDP 0x10057160
9+
class MdbTxtParser : public GolTxtParser {};
10+
11+
class WhiteFalcon0x140;
12+
class DuskwindBananaRelic0x24;
713

814
// VTABLE: GOLDP 0x10057134
915
// SIZE 0x1c
@@ -13,30 +19,34 @@ class AmberHaze0x1c : public GolNameTable {
1319
~AmberHaze0x1c() override; // vtable+0x00
1420
void Clear() override; // vtable+0x08
1521

16-
virtual void VTable0x0c(); // vtable+0x0c
17-
virtual void VTable0x10(); // vtable+0x10
18-
virtual void VTable0x14() = 0; // vtable+0x14
19-
virtual void VTable0x18() = 0; // vtable+0x18
20-
virtual void VTable0x1c(BronzeFalcon0xc8770* p_renderer, LegoU32 p_capacity); // vtable+0x1c
21-
virtual void VTable0x20(BronzeFalcon0xc8770* p_renderer, undefined4 p_unk0x08, LegoU32 p_capacity); // vtable+0x20
22+
virtual void VTable0x0c(); // vtable+0x0c
23+
virtual void VTable0x10(); // vtable+0x10
24+
virtual void VTable0x14() = 0; // vtable+0x14
25+
virtual void VTable0x18(LegoU32 p_index) = 0; // vtable+0x18
26+
virtual void VTable0x1c(WhiteFalcon0x140* p_renderer, LegoU32 p_capacity); // vtable+0x1c
27+
virtual void VTable0x20(WhiteFalcon0x140* p_renderer, undefined4* p_arg2, LegoU32 p_capacity); // vtable+0x20
2228
virtual void VTable0x24(
23-
BronzeFalcon0xc8770* p_renderer,
29+
WhiteFalcon0x140* p_renderer,
2430
const LegoChar* p_fileName,
2531
LegoBool32 p_binary
26-
); // vtable+0x24
27-
virtual undefined4 VTable0x28(undefined4 p_index) = 0; // vtable+0x28
32+
); // vtable+0x24
33+
virtual DuskwindBananaRelic0x24* VTable0x28(LegoU32 p_index) const = 0; // vtable+0x28
2834

2935
// SYNTHETIC: GOLDP 0x100261d0
3036
// AmberHaze0x1c::`scalar deleting destructor'
3137

3238
AmberHaze0x1c* GetNext() const { return m_next; }
3339
void SetNext(AmberHaze0x1c* p_next) { m_next = p_next; }
3440

35-
private:
36-
BronzeFalcon0xc8770* m_renderer; // 0x0c
37-
AmberHaze0x1c* m_next; // 0x10
38-
undefined4 m_unk0x14; // 0x14
39-
LegoU32 m_numItems; // 0x18
41+
LegoU32 GetItemCount() const { return m_numItems; }
42+
43+
protected:
44+
void FUN_10026970();
45+
46+
WhiteFalcon0x140* m_renderer; // 0x0c
47+
AmberHaze0x1c* m_next; // 0x10
48+
undefined4* m_unk0x14; // 0x14
49+
LegoU32 m_numItems; // 0x18
4050
};
4151

4252
#endif // AMBERHAZE0X1C_H

GolDP/include/amberhaze0x20.h

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#ifndef AMBERHAZE0X20_H
2+
#define AMBERHAZE0X20_H
3+
4+
#include "amberhaze0x1c.h"
5+
6+
class DuskwindBananaRelic0x30;
7+
8+
// VTABLE: GOLDP 0x100563d0
9+
// SIZE 0x20
10+
class AmberHaze0x20 : public AmberHaze0x1c {
11+
public:
12+
AmberHaze0x20();
13+
~AmberHaze0x20() override; // vtable+0x00
14+
15+
void Clear() override; // vtable+0x08
16+
void VTable0x0c() override; // vtable+0x0c
17+
void VTable0x10() override; // vtable+0x10
18+
void VTable0x14() override; // vtable+0x14
19+
void VTable0x18(LegoU32 p_index) override; // vtable+0x18
20+
DuskwindBananaRelic0x24* VTable0x28(LegoU32 p_index) const override; // vtable+0x28
21+
22+
// SYNTHETIC: GOLDP 0x10017820
23+
// AmberHaze0x20::`vector deleting destructor'
24+
25+
private:
26+
DuskwindBananaRelic0x30* m_unk0x1c; // 0x1c
27+
};
28+
29+
#endif // AMBERHAZE0X20_H

GolDP/include/duskwindbananarelic0x24.h

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,11 @@
44
#include "decomp.h"
55
#include "types.h"
66

7+
class WhiteFalcon0x140;
8+
79
// SIZE 0x08
810
struct DuskwindBananaRelicColor {
11+
DuskwindBananaRelicColor() {}
912
DuskwindBananaRelicColor(undefined4 p_arg0, undefined4 p_arg1, undefined4 p_arg2, undefined4 p_arg3)
1013
{
1114
m_unk0x0 = p_arg0;
@@ -19,12 +22,29 @@ struct DuskwindBananaRelicColor {
1922
undefined m_unk0x3; // 0x3
2023
};
2124

25+
struct DuskWindBananaRelicParams {
26+
LegoU32 m_unk0x00;
27+
undefined4* m_unk0x04;
28+
DuskwindBananaRelicColor m_unk0x08;
29+
DuskwindBananaRelicColor m_unk0x0c;
30+
undefined m_unk0x10;
31+
undefined m_unk0x11;
32+
undefined m_unk0x12;
33+
undefined m_unk0x13;
34+
};
35+
36+
// SIZE 0x8
37+
struct DuskWindName0x8 {
38+
LegoChar m_unk0x0[8];
39+
};
40+
2241
// VTABLE: GOLDP 0x10057030
2342
// SIZE 0x24
2443
class DuskwindBananaRelic0x24 {
2544
public:
2645
enum {
2746
c_flagBit0 = 1 << 0,
47+
c_flagBit7 = 1 << 7,
2848
c_flagBit8 = 1 << 8,
2949
c_flagBit9 = 1 << 9,
3050
c_flagBit11 = 1 << 11,
@@ -49,6 +69,11 @@ class DuskwindBananaRelic0x24 {
4969
c_flag0x08Bit14 = 1 << 14,
5070
c_flag0x08Bit15 = 1 << 15,
5171
c_flag0x08Bit16 = 1 << 16,
72+
c_flag0x08Bit17 = 1 << 17,
73+
c_flag0x08Bit19 = 1 << 19,
74+
c_flag0x08Bit20 = 1 << 20,
75+
c_flag0x08Bit21 = 1 << 21,
76+
c_flag0x08Bit22 = 1 << 22,
5277
};
5378

5479
DuskwindBananaRelic0x24();
@@ -65,13 +90,17 @@ class DuskwindBananaRelic0x24 {
6590
// SYNTHETIC: GOLDP 0x100257b0
6691
// DuskwindBananaRelic0x24::`scalar deleting destructor'
6792

93+
void FUN_100257e0(WhiteFalcon0x140*, const DuskWindBananaRelicParams&);
94+
95+
friend class AmberHaze0x1c;
96+
6897
protected:
6998
undefined4* m_unk0x04;
7099
LegoU32 m_unk0x08;
71100
DuskwindBananaRelicColor m_unk0x0c;
72101
DuskwindBananaRelicColor m_unk0x10;
73102
undefined4 m_unk0x14;
74-
undefined m_unk0x18[0x20 - 0x18];
103+
DuskWindName0x8 m_unk0x18;
75104
undefined m_unk0x20;
76105
undefined m_unk0x21;
77106
undefined m_unk0x22;

GolDP/include/duskwindbananarelic0x30.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
#include <d3d.h>
88

9-
class BronzeFalcon0xc8770;
9+
class WhiteFalcon0x140;
1010

1111
// VTABLE: GOLDP 0x100563c4
1212
// SIZE 0x30
@@ -15,7 +15,7 @@ class DuskwindBananaRelic0x30 : public DuskwindBananaRelic0x24 {
1515
DuskwindBananaRelic0x30();
1616
~DuskwindBananaRelic0x30() override; // vtable+0x00
1717

18-
void FUN_10006320(BronzeFalcon0xc8770& p_renderer);
18+
void FUN_10006320(WhiteFalcon0x140& p_renderer);
1919

2020
// SYNTHETIC: GOLDP 0x10004b00
2121
// DuskwindBananaRelic0x30::`vector deleting destructor'

GolDP/include/fluffygloomkins0x118.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include "decomp.h"
66
#include "zoweeblubberworth0xf0.h"
77

8+
class AmberHaze0x20;
89
class AmberLensBase0x120;
910
class BoundingShape0x2c;
1011
class PurpleRibbon0x24;
@@ -40,7 +41,7 @@ class FluffyGloomkins0x118 : public ZoweeBlubberworth0xf0 {
4041
void FUN_10017390();
4142

4243
PurpleRibbon0x24* m_unk0xf0; // 0xf0
43-
undefined4* m_unk0xf4; // 0xf4
44+
AmberHaze0x20* m_unk0xf4; // 0xf4
4445
undefined4* m_unk0xf8; // 0xf8
4546
undefined4* m_unk0xfc; // 0xfc
4647
undefined4* m_unk0x100; // 0x100

GolDP/include/gol.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
typedef void FatalErrorMessageCBFN(const LegoChar* p_message, const LegoChar* p_file, LegoS32 p_line);
1515
typedef void GolExitCBFN();
1616

17+
class AmberHaze0x1c;
1718
class BoundingShape0x2c;
1819
class GolFontBase0x40;
1920
class GolHashTable;
@@ -47,7 +48,7 @@ class GolExport {
4748
virtual GolDrawState* VTable0x04() = 0; // vtable+0x04
4849
virtual ZoweeBlubberworth0xf0* VTable0x08() = 0; // vtable+0x08
4950
virtual MagentaRibbon0x20* VTable0x0c() = 0; // vtable+0x0c
50-
virtual undefined4* VTable0x10() = 0; // vtable+0x10
51+
virtual AmberHaze0x1c* VTable0x10() = 0; // vtable+0x10
5152
virtual undefined4* VTable0x14() = 0; // vtable+0x14
5253
virtual undefined4* VTable0x18() = 0; // vtable+0x18
5354
virtual BoundingShape0x2c* VTable0x1c() = 0; // vtable+0x1c

GolDP/include/golddune0x38.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ class GoldDune0x38 : public SilverDune0x30 {
2626
) = 0; // vtable+0x34
2727
virtual void VTable0x38() = 0; // vtable+0x38
2828

29+
LegoU16 GetUnk0x36() const { return m_unk0x36; }
30+
2931
// SYNTHETIC: GOLDP 0x10004470 FOLDED
3032
// GoldDune0x38::~GoldDune0x38
3133

GolDP/include/goldpexport.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class GolDPExport : public GolExport {
1818
GolDrawState* VTable0x04() override; // vtable+0x04
1919
ZoweeBlubberworth0xf0* VTable0x08() override; // vtable+0x08
2020
MagentaRibbon0x20* VTable0x0c() override; // vtable+0x0c
21-
undefined4* VTable0x10() override; // vtable+0x10
21+
AmberHaze0x1c* VTable0x10() override; // vtable+0x10
2222
undefined4* VTable0x14() override; // vtable+0x14
2323
undefined4* VTable0x18() override; // vtable+0x18
2424
BoundingShape0x2c* VTable0x1c() override; // vtable+0x1c

GolDP/include/zoweeblubberworth0xf0.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ class ZoweeBlubberworth0xf0 {
3535
// ZoweeBlubberworth0xf0::`scalar deleting destructor'
3636

3737
undefined4 GetUnk0x0c() const { return m_unk0x0c; }
38+
undefined4 GetUnk0x14() const { return m_unk0x14; }
3839
undefined4 GetUnk0x3c() const { return m_unk0x3c; }
3940
undefined4 GetUnk0x7c() const { return m_unk0x7c; }
4041

0 commit comments

Comments
 (0)