Skip to content

Commit 6fb574c

Browse files
committed
Implement BronzeDuneBag0xc methods (except one)
1 parent 43f304a commit 6fb574c

2 files changed

Lines changed: 49 additions & 32 deletions

File tree

GolDP/include/bronzedunebag0xc.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,15 @@ class BronzeDuneBag0xc : public IPalette0x4 {
1919
LegoU32 GetPaletteSize() override; // vtable+0x
2020
virtual ~BronzeDuneBag0xc(); // vtable+0x00
2121

22-
void FUN_1002a120(undefined4);
22+
void FUN_1002a120(undefined4*);
2323
void FUN_1002a1b0();
2424

2525
// SYNTHETIC: GOLDP 0x1002a0b0
2626
// BronzeDuneBag0xc::`scalar deleting destructor'
2727

2828
protected:
29-
undefined4* m_unk0x4;
30-
; // 0x4
31-
undefined4 m_unk0x8; // 0x8
29+
PALETTEENTRY* m_entries; // 0x4
30+
LegoU32 m_size; // 0x8
3231
};
3332

3433
#endif // BRONZEDUNEBAG0XC_H

GolDP/src/bronzedunebag0xc.cpp

Lines changed: 46 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -5,68 +5,86 @@
55
// FUNCTION: GOLDP 0x1002a090
66
BronzeDuneBag0xc::BronzeDuneBag0xc()
77
{
8-
m_unk0x4 = NULL;
9-
m_unk0x8 = 0;
8+
m_entries = NULL;
9+
m_size = 0;
1010
}
1111

1212
// FUNCTION: GOLDP 0x1002a0f0
1313
BronzeDuneBag0xc::~BronzeDuneBag0xc()
1414
{
15-
m_unk0x8 = 0;
16-
if (m_unk0x4 != NULL) {
17-
delete[] m_unk0x4;
18-
m_unk0x4 = NULL;
15+
m_size = 0;
16+
if (m_entries != NULL) {
17+
delete[] m_entries;
18+
m_entries = NULL;
1919
}
2020
}
2121

2222
// STUB: GOLDP 0x1002a120
23-
void BronzeDuneBag0xc::FUN_1002a120(undefined4)
23+
void BronzeDuneBag0xc::FUN_1002a120(undefined4*)
2424
{
2525
// TODO
2626
STUB(0x1002a120);
2727
}
2828

29-
// STUB: GOLDP 0x1002a1b0
29+
// FUNCTION: GOLDP 0x1002a1b0
3030
void BronzeDuneBag0xc::FUN_1002a1b0()
3131
{
32-
// TODO
33-
STUB(0x1002a1b0);
32+
m_size = 0;
33+
if (m_entries != NULL) {
34+
delete[] m_entries;
35+
m_entries = NULL;
36+
}
3437
}
3538

36-
// STUB: GOLDP 0x1002a1e0
39+
// FUNCTION: GOLDP 0x1002a1e0
3740
void BronzeDuneBag0xc::GetEntries(PALETTEENTRY* p_entries, LegoU32 p_start, LegoU32 p_count)
3841
{
39-
// TODO
40-
STUB(0x1002a1e0);
42+
for (LegoU32 i = 0; i < p_count; i++) {
43+
p_entries[i].peRed = m_entries[p_start + i].peRed;
44+
p_entries[i].peGreen = m_entries[p_start + i].peGreen;
45+
p_entries[i].peBlue = m_entries[p_start + i].peBlue;
46+
p_entries[i].peFlags = m_entries[p_start + i].peFlags;
47+
}
4148
}
4249

43-
// STUB: GOLDP 0x1002a230
50+
// FUNCTION: GOLDP 0x1002a230
4451
void BronzeDuneBag0xc::SetEntries(PALETTEENTRY* p_entries, LegoU32 p_start, LegoU32 p_count)
4552
{
46-
// TODO
47-
STUB(0x1002a230);
53+
for (LegoU32 i = 0; i < p_count; i++) {
54+
m_entries[p_start + i].peRed = p_entries[i].peRed;
55+
m_entries[p_start + i].peGreen = p_entries[i].peGreen;
56+
m_entries[p_start + i].peBlue = p_entries[i].peBlue;
57+
m_entries[p_start + i].peFlags = p_entries[i].peFlags;
58+
}
4859
}
4960

50-
// STUB: GOLDP 0x1002a290
61+
// FUNCTION: GOLDP 0x1002a290
5162
void BronzeDuneBag0xc::GetEntry(PALETTEENTRY* p_entry, LegoU32 p_index)
5263
{
53-
// TODO
54-
STUB(0x1002a290);
64+
p_entry->peRed = m_entries[p_index].peRed;
65+
p_entry->peGreen = m_entries[p_index].peGreen;
66+
p_entry->peBlue = m_entries[p_index].peBlue;
67+
p_entry->peFlags = m_entries[p_index].peFlags;
5568
}
5669

57-
// STUB: GOLDP 0x1002a2d0
70+
// FUNCTION: GOLDP 0x1002a2d0
5871
void BronzeDuneBag0xc::CopyEntriesFrom(IPalette0x4* p_source)
5972
{
60-
// TODO
61-
STUB(0x1002a2d0);
73+
p_source->GetEntries(m_entries, 0, p_source->GetEntryCount());
6274
}
6375

64-
// STUB: GOLDP 0x1002a300
76+
// FUNCTION: GOLDP 0x1002a300
6577
LegoS32 BronzeDuneBag0xc::FindEntry(PALETTEENTRY* p_entry)
6678
{
67-
// TODO
68-
STUB(0x1002a300);
69-
return 0;
79+
LegoU32 i;
80+
81+
for (i = 0; i < m_size; i++) {
82+
if (m_entries[i].peRed == p_entry->peRed && m_entries[i].peGreen == p_entry->peGreen &&
83+
m_entries[i].peBlue == p_entry->peBlue && m_entries[i].peFlags == p_entry->peFlags) {
84+
return i;
85+
}
86+
}
87+
return -1;
7088
}
7189

7290
// STUB: GOLDP 0x100016f0 FOLDED
@@ -79,11 +97,11 @@ LegoU32 BronzeDuneBag0xc::GetFirstEntry()
7997
// STUB: GOLDP 0x1002a350 FOLDED
8098
LegoU32 BronzeDuneBag0xc::GetEntryCount()
8199
{
82-
return m_unk0x8;
100+
return m_size;
83101
}
84102

85103
// STUB: GOLDP 0x1002a350 FOLDED
86104
LegoU32 BronzeDuneBag0xc::GetPaletteSize()
87105
{
88-
return m_unk0x8;
106+
return m_size;
89107
}

0 commit comments

Comments
 (0)