Skip to content

Commit 2933118

Browse files
authored
Merge branch 'master' into AmberHaze0x20-methods
2 parents f4ae42a + f6c9f20 commit 2933118

2 files changed

Lines changed: 238 additions & 61 deletions

File tree

GolDP/include/bronzefalcon0xc8770.h

Lines changed: 94 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -140,69 +140,105 @@ class BronzeFalcon0xc8770 : public WhiteFalcon0x140 {
140140
void FUN_1000a950(DuskwindBananaRelic0x24*);
141141
void FUN_1000ac00(undefined4*);
142142
void FUN_1000b4a0();
143+
void FUN_1000c630(undefined4, undefined4, undefined4);
144+
void FUN_1000edf0(undefined4, undefined4, undefined4);
143145
void FUN_10012f50();
144146
void Reset();
145147
static HRESULT CALLBACK CountTextureFormatsCallback(DDPIXELFORMAT* p_format, void* p_context);
146148
static HRESULT CALLBACK EnumerateTextureFormatsCallback(DDPIXELFORMAT* p_format, void* p_context);
147149

148-
GolDrawDPState* m_drawState; // 0x140
149-
LPDIRECT3DDEVICE3 m_d3dDevice; // 0x144
150-
D3DDEVICEDESC m_d3dDeviceDesc; // 0x148
151-
LPDIRECT3DVIEWPORT3 m_d3dViewport; // 0x244
152-
D3DVIEWPORT2 m_viewportParams; // 0x248
153-
D3DMATERIAL m_materialParams; // 0x274
154-
LPDIRECT3DMATERIAL3 m_backgroundMaterial; // 0x2c4
155-
D3DMATERIALHANDLE m_backgroundMaterialHandle; // 0x2c8
156-
ColorRGBA m_unk0x2cc; // 0x2cc
157-
LegoU32 m_unk0x2d0; // 0x2d0
158-
DuskwindBananaRelic0x30 m_unk0x2d4; // 0x2d4
159-
SlatePeak0x58* m_unk0x304; // 0x304
160-
SlatePeak0x58* m_renderTargetInfo; // 0x308
161-
BronzeFalconSurface0x5c* m_unk0x30c; // 0x30c
162-
DepthBuffer0x38 m_depthBuffer; // 0x310
163-
D3DTLVERTEX m_unk0x348[25000]; // 0x348
164-
undefined4 m_unk0xc3848; // 0xc3848
165-
undefined4 m_unk0xc384c; // 0xc384c
166-
undefined m_unk0xc3850[0xc83b4 - 0xc3850]; // 0xc3850
167-
Field0xc83b4 m_unk0xc83b4; // 0xc83b4
168-
undefined4 m_unk0xc83c4; // 0xc83c4
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
195-
SoftwareRenderer0x58 m_softwareRenderer; // 0xc8698
196-
SoftwareRenderer0x58::Command0x14* m_unk0xc86f0; // 0xc86f0
197-
LegoS32 m_unk0xc86f4; // 0xc86f4
198-
LegoS32 m_unk0xc86f8; // 0xc86f8
199-
float m_unk0xc86fc; // 0xc86fc
200-
undefined4 m_unk0xc8700; // 0xc8700
201-
undefined m_unk0xc8704[0xc8708 - 0xc8704]; // 0xc8704
202-
D3DBLEND m_unk0xc8708[11]; // 0xc8708
203-
D3DBLEND m_unk0xc8734[11]; // 0xc8734
204-
undefined m_unk0xc8760[0xc876c - 0xc8760]; // 0xc8760
205-
void (BronzeFalcon0xc8770::*m_unk0xc876c)(DuskwindBananaRelic0x24*); // 0xc876c
150+
GolDrawDPState* m_drawState; // 0x140
151+
LPDIRECT3DDEVICE3 m_d3dDevice; // 0x144
152+
D3DDEVICEDESC m_d3dDeviceDesc; // 0x148
153+
LPDIRECT3DVIEWPORT3 m_d3dViewport; // 0x244
154+
D3DVIEWPORT2 m_viewportParams; // 0x248
155+
D3DMATERIAL m_materialParams; // 0x274
156+
LPDIRECT3DMATERIAL3 m_backgroundMaterial; // 0x2c4
157+
D3DMATERIALHANDLE m_backgroundMaterialHandle; // 0x2c8
158+
ColorRGBA m_unk0x2cc; // 0x2cc
159+
LegoU32 m_unk0x2d0; // 0x2d0
160+
DuskwindBananaRelic0x30 m_unk0x2d4; // 0x2d4
161+
SlatePeak0x58* m_unk0x304; // 0x304
162+
SlatePeak0x58* m_renderTargetInfo; // 0x308
163+
BronzeFalconSurface0x5c* m_unk0x30c; // 0x30c
164+
DepthBuffer0x38 m_depthBuffer; // 0x310
165+
D3DTLVERTEX m_unk0x348[25000]; // 0x348
166+
undefined4 m_unk0xc3848; // 0xc3848
167+
undefined4 m_unk0xc384c; // 0xc384c
168+
undefined m_unk0xc3850[0xc38ec - 0xc3850]; // 0xc3850
169+
undefined4 m_unk0xc38ec[(0xc426c - 0xc38ec) / sizeof(undefined4)]; // 0xc38ec
170+
undefined m_unk0xc426c[0xc428c - 0xc426c]; // 0xc426c
171+
undefined4 m_unk0xc428c[(0xc4c0c - 0xc428c) / sizeof(undefined4)]; // 0xc428c
172+
undefined4 m_unk0xc4c0c; // 0xc4c0c
173+
undefined4 m_unk0xc4c10; // 0xc4c10
174+
undefined4 m_unk0xc4c14; // 0xc4c14
175+
undefined4 m_unk0xc4c18; // 0xc4c18
176+
undefined m_unk0xc4c1c[0xc53a0 - 0xc4c1c]; // 0xc4c1c
177+
D3DTLVERTEX m_unk0xc53a0[(0xc83a0 - 0xc53a0) / sizeof(D3DTLVERTEX)]; // 0xc53a0
178+
undefined4 m_unk0xc83a0; // 0xc83a0
179+
undefined4 m_unk0xc83a4; // 0xc83a4
180+
undefined4 m_unk0xc83a8; // 0xc83a8
181+
undefined4 m_unk0xc83ac; // 0xc83ac
182+
undefined4 m_unk0xc83b0; // 0xc83b0
183+
Field0xc83b4 m_unk0xc83b4; // 0xc83b4
184+
undefined4 m_unk0xc83c4; // 0xc83c4
185+
undefined4 m_unk0xc83c8; // 0xc83c8
186+
undefined4 m_unk0xc83cc; // 0xc83cc
187+
undefined4 m_unk0xc83d0; // 0xc83d0
188+
undefined4 m_unk0xc83d4; // 0xc83d4
189+
undefined4 m_unk0xc83d8; // 0xc83d8
190+
undefined4 m_unk0xc83dc; // 0xc83dc
191+
undefined4 m_unk0xc83e0; // 0xc83e0
192+
undefined4 m_unk0xc83e4; // 0xc83e4
193+
LegoBool32 m_unk0xc83e8; // 0xc83e8
194+
undefined4 m_unk0xc83ec; // 0xc83ec
195+
undefined4 m_unk0xc83f0; // 0xc83f0
196+
undefined4 m_unk0xc83f4; // 0xc83f4
197+
LegoBool32 m_unk0xc83f8; // 0xc83f8
198+
LegoU32 m_unk0xc83fc; // 0xc83fc
199+
undefined4 m_unk0xc8400[4]; // 0xc8400
200+
D3DMATRIX m_unk0xc8410; // 0xc8410
201+
D3DMATRIX m_unk0xc8450; // 0xc8450
202+
undefined4 m_unk0xc8490; // 0xc8490
203+
undefined4 m_unk0xc8494; // 0xc8494
204+
undefined m_unk0xc8498[0xc8518 - 0xc8498]; // 0xc8498
205+
undefined4 m_unk0xc8518; // 0xc8518
206+
undefined4 m_unk0xc851c; // 0xc851c
207+
undefined4 m_unk0xc8520; // 0xc8520
208+
undefined4 m_unk0xc8524; // 0xc8524
209+
undefined4 m_unk0xc8528; // 0xc8528
210+
LegoFloat m_unk0xc852c; // 0xc852c
211+
void* m_unk0xc8530; // 0xc8530
212+
void* m_unk0xc8534; // 0xc8534
213+
DuskwindBananaRelic0x24* m_unk0xc8538; // 0xc8538
214+
void* m_unk0xc853c; // 0xc853c
215+
void* m_unk0xc8540; // 0xc8540
216+
void* m_unk0xc8544; // 0xc8544
217+
void* m_unk0xc8548; // 0xc8548
218+
void* m_unk0xc854c[(0xc8568 - 0xc854c) / sizeof(void*)]; // 0xc854c
219+
undefined4 m_unk0xc8568; // 0xc8568
220+
ColorRGBA m_unk0xc856c; // 0xc856c
221+
undefined4 m_unk0xc8570; // 0xc8570
222+
undefined4 m_unk0xc8574; // 0xc8574
223+
undefined4 m_unk0xc8578; // 0xc8578
224+
undefined4 m_unk0xc857c; // 0xc857c
225+
ColorRGBA m_unk0xc8580[2]; /* Unknown size */ // 0xc8580
226+
undefined m_unk0xc8588[0xc859c - 0xc8588]; // 0xc8588
227+
FColorRGB m_unk0xc859c[2]; /* Unknown size */ // 0xc859c
228+
undefined m_unk0xc85b4[0xc8698 - 0xc85b4]; // 0xc85b4
229+
SoftwareRenderer0x58 m_softwareRenderer; // 0xc8698
230+
SoftwareRenderer0x58::Command0x14* m_unk0xc86f0; // 0xc86f0
231+
LegoS32 m_unk0xc86f4; // 0xc86f4
232+
LegoS32 m_unk0xc86f8; // 0xc86f8
233+
float m_unk0xc86fc; // 0xc86fc
234+
undefined4 m_unk0xc8700; // 0xc8700
235+
undefined4 m_unk0xc8704; // 0xc8704
236+
D3DBLEND m_unk0xc8708[11]; // 0xc8708
237+
D3DBLEND m_unk0xc8734[11]; // 0xc8734
238+
undefined m_unk0xc8760[0xc8764 - 0xc8760]; // 0xc8760
239+
void (BronzeFalcon0xc8770::*m_unk0xc8764)(undefined4, undefined4, undefined4); // 0xc8764
240+
void (BronzeFalcon0xc8770::*m_unk0xc8768)(undefined4, undefined4, undefined4); // 0xc8768
241+
void (BronzeFalcon0xc8770::*m_unk0xc876c)(DuskwindBananaRelic0x24*); // 0xc876c
206242
};
207243

208244
#endif // BRONZEFALCON0XC8770_H

GolDP/src/bronzefalcon0xc8770.cpp

Lines changed: 144 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,13 @@
99
#include "rectangle.h"
1010

1111
#include <stdio.h>
12+
#include <string.h>
1213

1314
DECOMP_SIZE_ASSERT(BronzeFalcon0xc8770, 0xc8770)
1415
DECOMP_SIZE_ASSERT(BronzeFalcon0xc8770::TextureFormat, 0x18)
1516
DECOMP_SIZE_ASSERT(BronzeFalcon0xc8770::Field0xc83b4, 0x10)
1617
DECOMP_SIZE_ASSERT(ColorRGBA, 0x4)
18+
DECOMP_SIZE_ASSERT(D3DTLVERTEX, 0x20)
1719
DECOMP_SIZE_ASSERT(Rect, 0x10)
1820

1921
// GLOBAL: GOLDP 0x10056540
@@ -70,11 +72,138 @@ BronzeFalcon0xc8770::~BronzeFalcon0xc8770()
7072
VTable0x18();
7173
}
7274

73-
// STUB: GOLDP 0x10007a00
75+
// FUNCTION: GOLDP 0x10007a00
7476
void BronzeFalcon0xc8770::Reset()
7577
{
76-
// TODO
77-
STUB(0x10007a00);
78+
LegoU32 i;
79+
80+
m_drawState = NULL;
81+
m_d3dDevice = NULL;
82+
::memset(&m_d3dDeviceDesc, 0, sizeof(m_d3dDeviceDesc));
83+
m_d3dDeviceDesc.dwSize = sizeof(m_d3dDeviceDesc);
84+
m_d3dViewport = NULL;
85+
86+
::memset(&m_viewportParams, 0, sizeof(m_viewportParams));
87+
m_viewportParams.dwSize = sizeof(m_viewportParams);
88+
m_viewportParams.dwX = 0;
89+
m_viewportParams.dwY = 0;
90+
m_viewportParams.dwWidth = 640;
91+
m_viewportParams.dwHeight = 480;
92+
m_viewportParams.dvClipX = -1.0f;
93+
m_viewportParams.dvClipY = -0.75f;
94+
m_viewportParams.dvClipWidth = 2.0f;
95+
m_viewportParams.dvClipHeight = 1.5f;
96+
m_viewportParams.dvMinZ = 0.0f;
97+
m_viewportParams.dvMaxZ = 1.0f;
98+
99+
::memset(&m_materialParams, 0, sizeof(m_materialParams));
100+
m_materialParams.dwSize = sizeof(m_materialParams);
101+
m_materialParams.dwRampSize = 1;
102+
m_backgroundMaterial = NULL;
103+
m_backgroundMaterialHandle = 0;
104+
m_unk0x2cc.m_alp = 0;
105+
m_unk0x2cc.m_red = 0;
106+
m_unk0x2cc.m_grn = 0;
107+
m_unk0x2cc.m_blu = 0;
108+
m_unk0x2d0 = 0;
109+
m_unk0x304 = NULL;
110+
m_renderTargetInfo = NULL;
111+
m_unk0x30c = NULL;
112+
113+
::memset(m_unk0x348, 0, 0xcc8 - 0x348);
114+
::memset(m_unk0xc38ec, 0, sizeof(m_unk0xc38ec));
115+
::memset(m_unk0xc428c, 0, sizeof(m_unk0xc428c));
116+
m_unk0xc86f0 = NULL;
117+
m_unk0xc86f4 = 0;
118+
m_unk0xc86f8 = 0;
119+
m_unk0xc83ac = 0;
120+
m_unk0xc83b0 = 0;
121+
m_unk0xc852c = 1.0f;
122+
::memset(&m_unk0xc83b4, 0, sizeof(m_unk0xc83b4));
123+
m_unk0xc83c4 = 0;
124+
m_unk0xc86fc = 0.0f;
125+
m_unk0xc3848 = 0;
126+
m_unk0xc384c = 0;
127+
m_unk0xc4c0c = 0;
128+
m_unk0xc4c10 = 0;
129+
m_unk0xc4c14 = 0;
130+
m_unk0xc4c18 = 0;
131+
m_unk0xc83e4 = 0;
132+
m_unk0xc83e8 = 0;
133+
m_unk0xc83f0 = 0;
134+
m_unk0xc83ec = 0;
135+
m_unk0xc876c = &BronzeFalcon0xc8770::FUN_1000a2c0;
136+
m_unk0xc83f4 = 0;
137+
m_unk0xc83a0 = 0;
138+
m_unk0xc83a4 = 0;
139+
m_unk0xc83a8 = 0;
140+
m_unk0xc83c8 = 0;
141+
m_unk0xc83cc = 0;
142+
m_unk0xc83e0 = 255;
143+
m_unk0xc8568 = 0;
144+
m_unk0xc83f8 = 0;
145+
m_unk0xc83fc = -1;
146+
::memset(m_unk0xc8400, 0, sizeof(m_unk0xc8400));
147+
m_unk0xc8490 = 0;
148+
m_unk0xc8494 = 0;
149+
m_unk0xc8518 = 0;
150+
m_unk0xc851c = 0;
151+
m_unk0xc8520 = 0;
152+
m_unk0xc8524 = 0;
153+
m_unk0xc8528 = 0;
154+
::memset(&m_unk0xc8530, 0, 0xc854c - 0xc8530);
155+
::memset(m_unk0xc854c, 0, sizeof(m_unk0xc854c));
156+
m_unk0xc8530 = this;
157+
m_unk0xc853c = m_unk0xc428c;
158+
m_unk0xc8538 = NULL;
159+
m_unk0xc854c[0] = this;
160+
m_unk0xc854c[3] = m_unk0xc428c;
161+
m_unk0xc8410._11 = 1.0f;
162+
m_unk0xc8450._11 = 1.0f;
163+
m_unk0xc8410._12 = 0.0f;
164+
m_unk0xc8450._12 = 0.0f;
165+
m_unk0xc8410._13 = 0.0f;
166+
m_unk0xc8450._13 = 0.0f;
167+
m_unk0xc8410._14 = 0.0f;
168+
m_unk0xc8450._14 = 0.0f;
169+
m_unk0xc8410._21 = 0.0f;
170+
m_unk0xc8450._21 = 0.0f;
171+
m_unk0xc8410._22 = 1.0f;
172+
m_unk0xc8450._22 = 1.0f;
173+
m_unk0xc8410._23 = 0.0f;
174+
m_unk0xc8450._23 = 0.0f;
175+
m_unk0xc8410._24 = 0.0f;
176+
m_unk0xc8450._24 = 0.0f;
177+
m_unk0xc8410._31 = 0.0f;
178+
m_unk0xc8450._31 = 0.0f;
179+
m_unk0xc8410._32 = 0.0f;
180+
m_unk0xc8450._32 = 0.0f;
181+
m_unk0xc8410._33 = 1.0f;
182+
m_unk0xc8450._33 = 1.0f;
183+
m_unk0xc8410._34 = 0.0f;
184+
m_unk0xc8450._34 = 0.0f;
185+
m_unk0xc8410._41 = 0.0f;
186+
m_unk0xc8450._41 = 0.0f;
187+
m_unk0xc8410._42 = 0.0f;
188+
m_unk0xc8450._42 = 0.0f;
189+
m_unk0xc8410._43 = 0.0f;
190+
m_unk0xc8450._43 = 0.0f;
191+
m_unk0xc8410._44 = 1.0f;
192+
m_unk0xc8450._44 = 1.0f;
193+
m_unk0xc8764 = &BronzeFalcon0xc8770::FUN_1000c630;
194+
m_unk0xc8768 = &BronzeFalcon0xc8770::FUN_1000edf0;
195+
196+
for (i = 0; i < (0xcc8 - 0x348) / sizeof(*m_unk0x348); i++) {
197+
m_unk0x348[i].color = 0xffffffff;
198+
m_unk0x348[i].specular = 0xffffffff;
199+
}
200+
201+
for (i = 0; i < sizeOfArray(m_unk0xc53a0); i++) {
202+
m_unk0xc53a0[i].color = 0xffffffff;
203+
m_unk0xc53a0[i].specular = 0xffffffff;
204+
}
205+
206+
m_unk0xc8704 = 0;
78207
}
79208

80209
// FUNCTION: GOLDP 0x10007d80
@@ -1406,6 +1535,18 @@ HRESULT BronzeFalcon0xc8770::EnumerateTextureFormatsCallback(DDPIXELFORMAT* p_fo
14061535
return TRUE;
14071536
}
14081537

1538+
// STUB: GOLDP 0x1000c630
1539+
void BronzeFalcon0xc8770::FUN_1000c630(undefined4, undefined4, undefined4)
1540+
{
1541+
STUB(0x1000c630);
1542+
}
1543+
1544+
// STUB: GOLDP 0x1000edf0
1545+
void BronzeFalcon0xc8770::FUN_1000edf0(undefined4, undefined4, undefined4)
1546+
{
1547+
STUB(0x1000edf0);
1548+
}
1549+
14091550
// STUB: GOLDP 0x10012f50 FOLDED
14101551
void BronzeFalcon0xc8770::FUN_10012f50()
14111552
{

0 commit comments

Comments
 (0)