Skip to content

Commit c51111c

Browse files
committed
Implement BronzeFalcon0xc8770::FUN_1000a2c0
1 parent 8f6392a commit c51111c

6 files changed

Lines changed: 345 additions & 40 deletions

File tree

GolDP/include/bronzefalcon0xc8770.h

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ class BronzeFalcon0xc8770 : public WhiteFalcon0x140 {
100100
void VTable0xb4() override; // vtable+0xb4
101101
void SetAlphaOverride(undefined4 p_alpha, undefined4 p_flags) override; // vtable+0xb8
102102
void ClearAlphaOverride() override; // vtable+0xbc
103-
void VTable0xc0(undefined4*) override; // vtable+0xc0
103+
void VTable0xc0(const ColorRGBA&) override; // vtable+0xc0
104104
void VTable0xc4() override; // vtable+0xc4
105105
void VTable0xc8() override; // vtable+0xc8
106106
void VTable0xcc() override; // vtable+0xcc
@@ -140,6 +140,7 @@ class BronzeFalcon0xc8770 : public WhiteFalcon0x140 {
140140
void FUN_1000a950(DuskwindBananaRelic0x24*);
141141
void FUN_1000ac00(undefined4*);
142142
void FUN_1000b4a0();
143+
void FUN_10012f50();
143144
void Reset();
144145
static HRESULT CALLBACK CountTextureFormatsCallback(DDPIXELFORMAT* p_format, void* p_context);
145146
static HRESULT CALLBACK EnumerateTextureFormatsCallback(DDPIXELFORMAT* p_format, void* p_context);
@@ -165,16 +166,41 @@ class BronzeFalcon0xc8770 : public WhiteFalcon0x140 {
165166
undefined m_unk0xc3850[0xc83b4 - 0xc3850]; // 0xc3850
166167
Field0xc83b4 m_unk0xc83b4; // 0xc83b4
167168
undefined4 m_unk0xc83c4; // 0xc83c4
168-
undefined m_unk0xc83c8[0xc8698 - 0xc83c8]; // 0xc83c8
169+
undefined4 m_unk0xc83c8; // 0xc83c8
170+
undefined m_unk0xc83cc[0xc83d0 - 0xc83cc]; // 0xc83cc
171+
undefined4 m_unk0xc83d0; // 0xc83d0
172+
undefined4 m_unk0xc83d4; // 0xc83d4
173+
undefined4 m_unk0xc83d8; // 0xc83d8
174+
undefined4 m_unk0xc83dc; // 0xc83dc
175+
undefined4 m_unk0xc83e0; // 0xc83e0
176+
undefined m_unk0xc83e4[0xc83e8 - 0xc83e4]; // 0xc83e4
177+
LegoBool32 m_unk0xc83e8; // 0xc83e8
178+
undefined4 m_unk0xc83ec; // 0xc83ec
179+
undefined m_unk0xc83f0[0xc83f8 - 0xc83f0]; // 0xc83f0
180+
LegoBool32 m_unk0xc83f8; // 0xc83f8
181+
LegoU32 m_unk0xc83fc; // 0xc83fc
182+
undefined m_unk0xc8400[0xc8538 - 0xc8400]; // 0xc8400
183+
DuskwindBananaRelic0x24* m_unk0xc8538; // 0xc8538
184+
undefined m_unk0xc853c[0xc8568 - 0xc853c]; // 0xc853c
185+
undefined4 m_unk0xc8568; // 0xc8568
186+
ColorRGBA m_unk0xc856c; // 0xc856c
187+
undefined4 m_unk0xc8570; // 0xc8570
188+
undefined4 m_unk0xc8574; // 0xc8574
189+
undefined4 m_unk0xc8578; // 0xc8578
190+
undefined4 m_unk0xc857c; // 0xc857c
191+
ColorRGBA m_unk0xc8580[2]; /* Unknown size */ // 0xc8580
192+
undefined m_unk0xc8588[0xc859c - 0xc8588]; // 0xc8588
193+
FColorRGB m_unk0xc859c[2]; /* Unknown size */ // 0xc859c
194+
undefined m_unk0xc85b4[0xc8698 - 0xc85b4]; // 0xc85b4
169195
SoftwareRenderer0x58 m_softwareRenderer; // 0xc8698
170196
SoftwareRenderer0x58::Command0x14* m_unk0xc86f0; // 0xc86f0
171197
LegoS32 m_unk0xc86f4; // 0xc86f4
172198
LegoS32 m_unk0xc86f8; // 0xc86f8
173199
float m_unk0xc86fc; // 0xc86fc
174200
undefined4 m_unk0xc8700; // 0xc8700
175201
undefined m_unk0xc8704[0xc8708 - 0xc8704]; // 0xc8704
176-
undefined4 m_unk0xc8708[11]; // 0xc8708
177-
undefined4 m_unk0xc8734[11]; // 0xc8734
202+
D3DBLEND m_unk0xc8708[11]; // 0xc8708
203+
D3DBLEND m_unk0xc8734[11]; // 0xc8734
178204
undefined m_unk0xc8760[0xc876c - 0xc8760]; // 0xc8760
179205
void (BronzeFalcon0xc8770::*m_unk0xc876c)(DuskwindBananaRelic0x24*); // 0xc876c
180206
};

GolDP/include/color.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,21 @@
33

44
#include "types.h"
55

6+
#define ARGBU32(A, R, G, B) ((((A) & 0xff) << 24) | (((R) & 0xff) << 16) | (((G) & 0xff) << 8) | (((B) & 0xff) << 0))
7+
8+
// SIZE: 0x4
69
struct ColorRGBA {
710
LegoU8 m_red; // 0x00
811
LegoU8 m_grn; // 0x01
912
LegoU8 m_blu; // 0x02
1013
LegoU8 m_alp; // 0x03
1114
};
1215

16+
// SIZE: 0xc
17+
struct FColorRGB {
18+
LegoFloat m_red; // 0x00
19+
LegoFloat m_grn; // 0x04
20+
LegoFloat m_blu; // 0x08
21+
};
22+
1323
#endif // COLOR_H

GolDP/include/duskwindbananarelic0x24.h

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,43 @@ class DuskwindBananaRelic0x24 {
2525
public:
2626
enum {
2727
c_flagBit0 = 1 << 0,
28+
c_flagBit8 = 1 << 8,
29+
c_flagBit9 = 1 << 9,
30+
c_flagBit11 = 1 << 11,
31+
c_flagBit12 = 1 << 12,
2832
c_flagBit14 = 1 << 14,
2933
};
3034

35+
enum {
36+
c_flag0x08Bit1 = 1 << 1,
37+
c_flag0x08Bit2 = 1 << 2,
38+
c_flag0x08Bit3 = 1 << 3,
39+
c_flag0x08Bit4 = 1 << 4,
40+
c_flag0x08Bit5 = 1 << 5,
41+
c_flag0x08Bit6 = 1 << 6,
42+
c_flag0x08Bit7 = 1 << 7,
43+
c_flag0x08Bit8 = 1 << 8,
44+
c_flag0x08Bit9 = 1 << 9,
45+
c_flag0x08Bit10 = 1 << 10,
46+
c_flag0x08Bit11 = 1 << 11,
47+
c_flag0x08Bit12 = 1 << 12,
48+
c_flag0x08Bit13 = 1 << 13,
49+
c_flag0x08Bit14 = 1 << 14,
50+
c_flag0x08Bit15 = 1 << 15,
51+
c_flag0x08Bit16 = 1 << 16,
52+
};
53+
3154
DuskwindBananaRelic0x24();
3255
virtual ~DuskwindBananaRelic0x24(); // vtable+0x00
3356

3457
undefined4* GetUnk0x04() const { return m_unk0x04; }
3558
LegoU32 GetUnk0x08() const { return m_unk0x08; }
36-
59+
const DuskwindBananaRelicColor& GetColor0x0c() const { return m_unk0x0c; }
60+
const DuskwindBananaRelicColor& GetColor0x10() const { return m_unk0x10; }
61+
undefined GetAlphaFunc() const { return m_unk0x20; }
62+
undefined GetAlphaRef() const { return m_unk0x21; }
63+
undefined GetSrcBlend() const { return m_unk0x22; }
64+
undefined GetDestBlend() const { return m_unk0x23; }
3765
// SYNTHETIC: GOLDP 0x100257b0
3866
// DuskwindBananaRelic0x24::`scalar deleting destructor'
3967

GolDP/include/whitefalcon0x140.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ class WhiteFalcon0x140 {
128128
virtual void VTable0xb4() = 0; // vtable+0xb4
129129
virtual void SetAlphaOverride(undefined4 p_alpha, undefined4 p_flags); // vtable+0xb8
130130
virtual void ClearAlphaOverride(); // vtable+0xbc
131-
virtual void VTable0xc0(undefined4* p_param); // vtable+0xc0
131+
virtual void VTable0xc0(const ColorRGBA& p_param); // vtable+0xc0
132132
virtual void VTable0xc4(); // vtable+0xc4
133133
virtual void VTable0xc8(); // vtable+0xc8
134134
virtual void VTable0xcc(); // vtable+0xcc
@@ -196,7 +196,7 @@ class WhiteFalcon0x140 {
196196
CinderBasin0x28* m_fontLists; // 0x44
197197
BronzeFalcon0xc8770* m_nextDrawStateRenderer; // 0x48
198198
undefined m_unk0x4c[0x118 - 0x4c]; // 0x4c
199-
undefined4 m_unk0x118; // 0x118
199+
ColorRGBA m_unk0x118; // 0x118
200200
undefined4 m_unk0x11c; // 0x11c
201201
undefined4 m_unk0x120; // 0x120
202202
undefined4 m_unk0x124[7]; // 0x124

0 commit comments

Comments
 (0)