diff --git a/LEGO1/lego/legoomni/include/ambulancemissionstate.h b/LEGO1/lego/legoomni/include/ambulancemissionstate.h index 93ad6003..88bcf4b8 100644 --- a/LEGO1/lego/legoomni/include/ambulancemissionstate.h +++ b/LEGO1/lego/legoomni/include/ambulancemissionstate.h @@ -26,19 +26,19 @@ class AmbulanceMissionState : public LegoState { inline void SetUnknown0x08(undefined4 p_unk0x08) { m_unk0x08 = p_unk0x08; } - inline MxU16 GetColor(MxU8 p_id) + inline MxU16 GetScore(MxU8 p_id) { switch (p_id) { case 1: - return m_color1; + return m_score1; case 2: - return m_color2; + return m_score2; case 3: - return m_color3; + return m_score3; case 4: - return m_color4; + return m_score4; case 5: - return m_color5; + return m_score5; default: return 0; } @@ -55,11 +55,11 @@ class AmbulanceMissionState : public LegoState { MxU16 m_unk0x14; // 0x14 MxU16 m_unk0x16; // 0x16 MxU16 m_unk0x18; // 0x18 - MxU16 m_color1; // 0x1a - MxU16 m_color2; // 0x1c - MxU16 m_color3; // 0x1e - MxU16 m_color4; // 0x20 - MxU16 m_color5; // 0x22 + MxU16 m_score1; // 0x1a + MxU16 m_score2; // 0x1c + MxU16 m_score3; // 0x1e + MxU16 m_score4; // 0x20 + MxU16 m_score5; // 0x22 }; #endif // AMBULANCEMISSIONSTATE_H diff --git a/LEGO1/lego/legoomni/include/pizzamissionstate.h b/LEGO1/lego/legoomni/include/pizzamissionstate.h index e421b9fe..1796dde4 100644 --- a/LEGO1/lego/legoomni/include/pizzamissionstate.h +++ b/LEGO1/lego/legoomni/include/pizzamissionstate.h @@ -9,7 +9,7 @@ struct PizzaMissionStateEntry { undefined2 m_unk0x00; // 0x00 MxU8 m_id; // 0x02 undefined m_unk0x03[0x15]; // 0x03 - MxU16 m_color; // 0x18 + MxU16 m_score; // 0x18 undefined m_unk0x18[6]; // 0x1a }; @@ -32,7 +32,7 @@ class PizzaMissionState : public LegoState { MxResult Serialize(LegoFile* p_legoFile) override; // vtable+0x1c - inline MxU16 GetColor(MxU8 p_id) { return GetState(p_id)->m_color; } + inline MxU16 GetScore(MxU8 p_id) { return GetState(p_id)->m_score; } // SYNTHETIC: LEGO1 0x10039350 // PizzaMissionState::`scalar deleting destructor' diff --git a/LEGO1/lego/legoomni/include/racestate.h b/LEGO1/lego/legoomni/include/racestate.h index e86cb3f1..e2321be1 100644 --- a/LEGO1/lego/legoomni/include/racestate.h +++ b/LEGO1/lego/legoomni/include/racestate.h @@ -7,12 +7,12 @@ struct RaceStateEntry { public: inline MxS16 GetUnknown0x02() { return m_unk0x02; } - inline MxU16 GetColor() { return m_color; } + inline MxU16 GetScore() { return m_score; } // TODO: Possibly private MxU8 m_id; // 0x00 MxS16 m_unk0x02; // 0x02 - MxU16 m_color; // 0x04 + MxU16 m_score; // 0x04 }; // VTABLE: LEGO1 0x100d5e30 diff --git a/LEGO1/lego/legoomni/include/score.h b/LEGO1/lego/legoomni/include/score.h index 67a2a30b..9ee47851 100644 --- a/LEGO1/lego/legoomni/include/score.h +++ b/LEGO1/lego/legoomni/include/score.h @@ -41,7 +41,7 @@ class Score : public LegoWorld { void Paint(); MxLong FUN_10001510(MxEndActionNotificationParam& p_param); MxLong FUN_100016d0(LegoControlManagerEvent& p_param); - void FillArea(MxU32 p_x, MxU32 p_y, MxS16 p_color); + void FillArea(MxU32 i_activity, MxU32 i_actor, MxS16 score); protected: void DeleteScript(); diff --git a/LEGO1/lego/legoomni/include/towtrackmissionstate.h b/LEGO1/lego/legoomni/include/towtrackmissionstate.h index 053be7d8..da9361f2 100644 --- a/LEGO1/lego/legoomni/include/towtrackmissionstate.h +++ b/LEGO1/lego/legoomni/include/towtrackmissionstate.h @@ -24,19 +24,19 @@ class TowTrackMissionState : public LegoState { MxResult Serialize(LegoFile* p_legoFile) override; // vtable+0x1c - inline MxU16 GetColor(MxU8 p_id) + inline MxU16 GetScore(MxU8 p_id) { switch (p_id) { case 1: - return m_color1; + return m_score1; case 2: - return m_color2; + return m_score2; case 3: - return m_color3; + return m_score3; case 4: - return m_color4; + return m_score4; case 5: - return m_color5; + return m_score5; default: return 0; } @@ -54,11 +54,11 @@ class TowTrackMissionState : public LegoState { MxU16 m_unk0x16; // 0x16 MxU16 m_unk0x18; // 0x18 MxU16 m_unk0x1a; // 0x1a - MxU16 m_color1; // 0x1c - MxU16 m_color2; // 0x1e - MxU16 m_color3; // 0x20 - MxU16 m_color4; // 0x22 - MxU16 m_color5; // 0x24 + MxU16 m_score1; // 0x1c + MxU16 m_score2; // 0x1e + MxU16 m_score3; // 0x20 + MxU16 m_score4; // 0x22 + MxU16 m_score5; // 0x24 }; #endif // TOWTRACKMISSIONSTATE_H diff --git a/LEGO1/lego/legoomni/src/hospital/ambulancemissionstate.cpp b/LEGO1/lego/legoomni/src/hospital/ambulancemissionstate.cpp index d146249a..860bd0f0 100644 --- a/LEGO1/lego/legoomni/src/hospital/ambulancemissionstate.cpp +++ b/LEGO1/lego/legoomni/src/hospital/ambulancemissionstate.cpp @@ -12,11 +12,11 @@ AmbulanceMissionState::AmbulanceMissionState() m_unk0x16 = 0; m_unk0x0c = 0; m_unk0x18 = 0; - m_color1 = 0; - m_color2 = 0; - m_color3 = 0; - m_color4 = 0; - m_color5 = 0; + m_score1 = 0; + m_score2 = 0; + m_score3 = 0; + m_score4 = 0; + m_score5 = 0; } // STUB: LEGO1 0x10037440 diff --git a/LEGO1/lego/legoomni/src/towtrack/towtrackmissionstate.cpp b/LEGO1/lego/legoomni/src/towtrack/towtrackmissionstate.cpp index 327286a6..bbf080ff 100644 --- a/LEGO1/lego/legoomni/src/towtrack/towtrackmissionstate.cpp +++ b/LEGO1/lego/legoomni/src/towtrack/towtrackmissionstate.cpp @@ -13,11 +13,11 @@ TowTrackMissionState::TowTrackMissionState() m_unk0x0c = 0; m_unk0x1a = 0; m_unk0x10 = 0; - m_color1 = 0; - m_color2 = 0; - m_color3 = 0; - m_color4 = 0; - m_color5 = 0; + m_score1 = 0; + m_score2 = 0; + m_score3 = 0; + m_score4 = 0; + m_score5 = 0; } // FUNCTION: LEGO1 0x1004dde0 @@ -31,11 +31,11 @@ MxResult TowTrackMissionState::Serialize(LegoFile* p_legoFile) p_legoFile->Read(&m_unk0x16, sizeof(m_unk0x16)); p_legoFile->Read(&m_unk0x18, sizeof(m_unk0x18)); p_legoFile->Read(&m_unk0x1a, sizeof(m_unk0x1a)); - p_legoFile->Read(&m_color1, sizeof(m_color1)); - p_legoFile->Read(&m_color2, sizeof(m_color2)); - p_legoFile->Read(&m_color3, sizeof(m_color3)); - p_legoFile->Read(&m_color4, sizeof(m_color4)); - p_legoFile->Read(&m_color5, sizeof(m_color5)); + p_legoFile->Read(&m_score1, sizeof(m_score1)); + p_legoFile->Read(&m_score2, sizeof(m_score2)); + p_legoFile->Read(&m_score3, sizeof(m_score3)); + p_legoFile->Read(&m_score4, sizeof(m_score4)); + p_legoFile->Read(&m_score5, sizeof(m_score5)); } else if (p_legoFile->IsWriteMode()) { MxU16 write = m_unk0x12; @@ -53,19 +53,19 @@ MxResult TowTrackMissionState::Serialize(LegoFile* p_legoFile) write = m_unk0x1a; p_legoFile->Write(&write, sizeof(m_unk0x12)); - write = m_color1; + write = m_score1; p_legoFile->Write(&write, sizeof(m_unk0x12)); - write = m_color2; + write = m_score2; p_legoFile->Write(&write, sizeof(m_unk0x12)); - write = m_color3; + write = m_score3; p_legoFile->Write(&write, sizeof(m_unk0x12)); - write = m_color4; + write = m_score4; p_legoFile->Write(&write, sizeof(m_unk0x12)); - write = m_color5; + write = m_score5; p_legoFile->Write(&write, sizeof(m_unk0x12)); } diff --git a/LEGO1/lego/legoomni/src/worlds/score.cpp b/LEGO1/lego/legoomni/src/worlds/score.cpp index 31537d06..6e614cab 100644 --- a/LEGO1/lego/legoomni/src/worlds/score.cpp +++ b/LEGO1/lego/legoomni/src/worlds/score.cpp @@ -262,23 +262,23 @@ void Score::Paint() m_surface = (MxU8*) desc.lpSurface; - for (MxU8 id = 1; id <= 5; id++) { - MxU16 color; + for (MxU8 actor = 1; actor <= 5; actor++) { + MxU16 score; - color = carRaceState ? carRaceState->GetState(id)->GetColor() : 0; - FillArea(0, id - 1, color); + score = carRaceState ? carRaceState->GetState(actor)->GetScore() : 0; + FillArea(0, actor - 1, score); - color = jetskiRaceState ? jetskiRaceState->GetState(id)->GetColor() : 0; - FillArea(1, id - 1, color); + score = jetskiRaceState ? jetskiRaceState->GetState(actor)->GetScore() : 0; + FillArea(1, actor - 1, score); - color = pizzaMissionState ? pizzaMissionState->GetColor(id) : 0; - FillArea(2, id - 1, color); + score = pizzaMissionState ? pizzaMissionState->GetScore(actor) : 0; + FillArea(2, actor - 1, score); - color = towTrackMissionState ? towTrackMissionState->GetColor(id) : 0; - FillArea(3, id - 1, color); + score = towTrackMissionState ? towTrackMissionState->GetScore(actor) : 0; + FillArea(3, actor - 1, score); - color = ambulanceMissionState ? ambulanceMissionState->GetColor(id) : 0; - FillArea(4, id - 1, color); + score = ambulanceMissionState ? ambulanceMissionState->GetScore(actor) : 0; + FillArea(4, actor - 1, score); } cube->m_surface->Unlock(desc.lpSurface); @@ -289,39 +289,21 @@ void Score::Paint() } // FUNCTION: LEGO1 0x10001d20 -void Score::FillArea(MxU32 p_x, MxU32 p_y, MxS16 p_color) +// FUNCTION: BETA10 0x100f4a52 +void Score::FillArea(MxU32 i_activity, MxU32 i_actor, MxS16 score) { - MxU32 data[24]; - data[9] = 0x2b00; - data[10] = 0x5700; - data[11] = 0x8000; - data[19] = 0x2a; - data[12] = 0xab00; - data[13] = 0xd600; - data[20] = 0x27; - data[21] = 0x29; - data[22] = 0x29; - data[23] = 0x2a; - data[4] = 0x2f; - data[5] = 0x56; - data[6] = 0x81; - data[15] = 0x29; - data[16] = 0x27; - data[7] = 0xaa; - data[8] = 0xd4; - data[14] = 0x25; - data[0] = 0x11; - data[17] = 0x28; - data[18] = 0x28; - data[1] = 0x0f; - MxU32 size = data[p_x + 14]; - MxU8* ptr = data[p_x + 4] + data[p_y + 9] + m_surface; - MxS32 count = data[p_y + 19]; - data[2] = 0x08; - data[3] = 0x05; - MxU32 value = data[p_color]; - for (; count > 0; count--) { - memset(ptr++, value, size); + MxS32 local_3c[] = {0x2b00, 0x5700, 0x8000, 0xab00, 0xd600}; + MxS32 local_14[] = {0x2a, 0x27, 0x29, 0x29, 0x2a}; + MxS32 local_50[] = {0x2f, 0x56, 0x81, 0xaa, 0xd4}; + MxS32 local_28[] = {0x25, 0x29, 0x27, 0x28, 0x28}; + MxS32 local_60[] = {0x11, 0xf, 0x08, 0x05}; + + MxU8* ptr = m_surface + local_3c[i_actor] + local_50[i_activity]; + MxS32 val = local_60[score]; + MxS32 size = local_28[i_activity]; + + for (MxS32 i = 0; i < local_14[i_actor]; i++) { + memset(ptr, val, size); ptr += 0x100; } } diff --git a/tools/ncc/skip.yml b/tools/ncc/skip.yml index cf3ed584..6da0cc9c 100644 --- a/tools/ncc/skip.yml +++ b/tools/ncc/skip.yml @@ -26,3 +26,6 @@ m_AnimTreePtr: "Allow original naming from beta" m_BADuration: "Allow original naming from beta" m_assAnimP: "Allow original naming from beta" m_disAnimP: "Allow original naming from beta" +i_activity: "Allow original naming from beta" +i_actor: "Allow original naming from beta" +score: "Allow original naming from beta"