mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-26 03:34:15 +01:00
Match compression behavior, for real
This commit is contained in:
parent
98e1c1994b
commit
48b65eecee
@ -773,14 +773,16 @@ void CalculateWaits(std::vector<Event>& events)
|
||||
}
|
||||
}
|
||||
|
||||
// This code is (purposely) buggy as shit, to mimic how the real mid2agb worked
|
||||
int CalculateCompressionScore(std::vector<Event>& events, int index)
|
||||
{
|
||||
int score = 0;
|
||||
std::uint8_t lastParam1 = events[index].param1;
|
||||
std::uint8_t lastParam1 = (std::uint8_t)events[index].type;
|
||||
std::uint8_t lastVelocity = 0x80u;
|
||||
EventType lastType = events[index].type;
|
||||
std::int32_t lastDuration = 0x80000000;
|
||||
std::uint8_t lastNote = 0x80u;
|
||||
std::int32_t lastParam2;
|
||||
|
||||
if (events[index].time > 0)
|
||||
score++;
|
||||
@ -791,10 +793,11 @@ int CalculateCompressionScore(std::vector<Event>& events, int index)
|
||||
{
|
||||
int val = 0;
|
||||
|
||||
if (events[i].note != lastNote)
|
||||
// BUG: uses type instead of note
|
||||
if ((std::uint8_t)events[i].type != lastNote)
|
||||
{
|
||||
val++;
|
||||
lastNote = events[i].note;
|
||||
lastNote = (std::uint8_t)events[i].type;
|
||||
}
|
||||
|
||||
if (events[i].param1 != lastVelocity)
|
||||
@ -840,7 +843,10 @@ int CalculateCompressionScore(std::vector<Event>& events, int index)
|
||||
}
|
||||
}
|
||||
|
||||
lastParam1 = events[i].param1;
|
||||
// BUG: uses type instead of param1
|
||||
lastParam1 = (std::uint8_t)events[i].type;
|
||||
// unused
|
||||
lastParam2 = events[i].param2;
|
||||
lastType = events[i].type;
|
||||
|
||||
if (events[i].time)
|
||||
|
Loading…
Reference in New Issue
Block a user