Down to entropy

This commit is contained in:
jonschz 2025-06-21 08:27:22 +02:00
parent 4b0fef9205
commit 2417a96580
2 changed files with 29 additions and 20 deletions

View File

@ -151,6 +151,15 @@ class LegoGameState {
MxU8 m_scores[5][5]; // 0x02 MxU8 m_scores[5][5]; // 0x02
Username m_name; // 0x1c Username m_name; // 0x1c
MxS16 m_unk0x2a; // 0x2a MxS16 m_unk0x2a; // 0x2a
ScoreItem& operator=(const ScoreItem& p_other)
{
m_totalScore = p_other.m_totalScore;
memcpy(m_scores, p_other.m_scores, sizeof(m_scores));
m_name = p_other.m_name;
m_unk0x2a = p_other.m_unk0x2a;
return *this;
}
}; };
// SIZE 0x372 // SIZE 0x372

View File

@ -1567,32 +1567,32 @@ void LegoGameState::History::WriteScoreHistory()
// TODO: Possible operator= ? // TODO: Possible operator= ?
tmpItem.m_totalScore = m_scores[j - 1].m_totalScore; // tmpItem.m_totalScore = m_scores[j - 1].m_totalScore;
memcpy(tmpItem.m_scores, m_scores[j - 1].m_scores, sizeof(tmpItem.m_scores)); // memcpy(tmpItem.m_scores, m_scores[j - 1].m_scores, sizeof(tmpItem.m_scores));
// LINE: LEGO1 0x1003cbd3 // // LINE: LEGO1 0x1003cbd3
tmpItem.m_name = m_scores[j - 1].m_name; // tmpItem.m_name = m_scores[j - 1].m_name;
tmpItem.m_unk0x2a = m_scores[j - 1].m_unk0x2a; // tmpItem.m_unk0x2a = m_scores[j - 1].m_unk0x2a;
m_scores[j - 1].m_totalScore = m_scores[j].m_totalScore; // m_scores[j - 1].m_totalScore = m_scores[j].m_totalScore;
memcpy(m_scores[j - 1].m_scores, m_scores[j].m_scores, sizeof(m_scores[j - 1].m_scores)); // memcpy(m_scores[j - 1].m_scores, m_scores[j].m_scores, sizeof(m_scores[j - 1].m_scores));
// LINE: LEGO1 0x1003cc05 // // LINE: LEGO1 0x1003cc05
m_scores[j - 1].m_name = m_scores[j].m_name; // m_scores[j - 1].m_name = m_scores[j].m_name;
m_scores[j - 1].m_unk0x2a = m_scores[j].m_unk0x2a; // m_scores[j - 1].m_unk0x2a = m_scores[j].m_unk0x2a;
// LINE: LEGO1 0x1003cc1f // // LINE: LEGO1 0x1003cc1f
m_scores[j - 1].m_totalScore = tmpItem.m_totalScore; // m_scores[j - 1].m_totalScore = tmpItem.m_totalScore;
memcpy(m_scores[j].m_scores, tmpItem.m_scores, sizeof(m_scores[j].m_scores)); // memcpy(m_scores[j].m_scores, tmpItem.m_scores, sizeof(m_scores[j].m_scores));
m_scores[j].m_name = tmpItem.m_name; // m_scores[j].m_name = tmpItem.m_name;
m_scores[j].m_unk0x2a = tmpItem.m_unk0x2a; // m_scores[j].m_unk0x2a = tmpItem.m_unk0x2a;
// This version feels like it should be right, but it only produces 68.78 % // This version feels like it should be right, but it only produces 68.78 %
// tmpItem = m_scores[j - 1]; tmpItem = m_scores[j - 1];
// // LINE: LEGO1 0x1003cbf8 // LINE: LEGO1 0x1003cbf3
// m_scores[j - 1] = m_scores[j]; m_scores[j - 1] = m_scores[j];
// // LINE: LEGO1 0x1003cc24 // LINE: LEGO1 0x1003cc1f
// m_scores[j] = tmpItem; m_scores[j] = tmpItem;
} }
} }
} }