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
Username m_name; // 0x1c
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

View File

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