55// FUNCTION: GOLDP 0x1002a090
66BronzeDuneBag0xc::BronzeDuneBag0xc ()
77{
8- m_unk0x4 = NULL ;
9- m_unk0x8 = 0 ;
8+ m_entries = NULL ;
9+ m_size = 0 ;
1010}
1111
1212// FUNCTION: GOLDP 0x1002a0f0
1313BronzeDuneBag0xc::~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
3030void 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
3740void 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
4451void 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
5162void 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
5871void 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
6577LegoS32 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
8098LegoU32 BronzeDuneBag0xc::GetEntryCount ()
8199{
82- return m_unk0x8 ;
100+ return m_size ;
83101}
84102
85103// STUB: GOLDP 0x1002a350 FOLDED
86104LegoU32 BronzeDuneBag0xc::GetPaletteSize ()
87105{
88- return m_unk0x8 ;
106+ return m_size ;
89107}
0 commit comments