Updated Boss Kills to Enums instead of numbers, fixed some Tinting weirdness

This commit is contained in:
Caladius 2024-03-02 18:01:14 -05:00
parent 37131d7b10
commit eebc78d399
12 changed files with 37 additions and 21 deletions

View File

@ -168,16 +168,16 @@ std::vector<TimeSplitObject> splitObjects = {
{ ITEM_STICK_UPGRADE_30, "Deku Stick Upgrade (30)", "ITEM_STICK"},
{ ITEM_NUT_UPGRADE_30, "Deku Nut Upgrade (30)", "ITEM_NUT"},
{ ITEM_NUT_UPGRADE_40, "Deku Nut Upgrade (40)", "ITEM_NUT"},
{ 657, "Queen Gohma", "SPECIAL_TRIFORCE_PIECE_WHITE"},
{ 658, "King Dodongo", "SPECIAL_TRIFORCE_PIECE_WHITE"},
{ 659, "Barinade", "SPECIAL_TRIFORCE_PIECE_WHITE"},
{ 660, "Phantom Ganon", "SPECIAL_TRIFORCE_PIECE_WHITE"},
{ 661, "Volvagia", "SPECIAL_TRIFORCE_PIECE_WHITE"},
{ 662, "Morpha", "SPECIAL_TRIFORCE_PIECE_WHITE"},
{ 663, "Bongo Bongo", "SPECIAL_TRIFORCE_PIECE_WHITE"},
{ 664, "Twinrova", "SPECIAL_TRIFORCE_PIECE_WHITE"},
{ 665, "Ganondorf", "SPECIAL_TRIFORCE_PIECE_WHITE"},
{ 666, "Ganon", "SPECIAL_TRIFORCE_PIECE_WHITE"},
{ BOSS_QUEEN_GOHMA, "Queen Gohma", "SPECIAL_TRIFORCE_PIECE_WHITE"},
{ BOSS_KING_DODONGO, "King Dodongo", "SPECIAL_TRIFORCE_PIECE_WHITE"},
{ BOSS_BARINADE, "Barinade", "SPECIAL_TRIFORCE_PIECE_WHITE"},
{ BOSS_PHANTOM_GANON, "Phantom Ganon", "SPECIAL_TRIFORCE_PIECE_WHITE"},
{ BOSS_VOLVAGIA, "Volvagia", "SPECIAL_TRIFORCE_PIECE_WHITE"},
{ BOSS_MORPHA, "Morpha", "SPECIAL_TRIFORCE_PIECE_WHITE"},
{ BOSS_BONGO_BONGO, "Bongo Bongo", "SPECIAL_TRIFORCE_PIECE_WHITE"},
{ BOSS_TWINROVA, "Twinrova", "SPECIAL_TRIFORCE_PIECE_WHITE"},
{ BOSS_GANONDORF, "Ganondorf", "SPECIAL_TRIFORCE_PIECE_WHITE"},
{ BOSS_GANON, "Ganon", "SPECIAL_TRIFORCE_PIECE_WHITE"},
};
std::string formatTimestampTimeSplit(uint32_t value) {
@ -401,6 +401,8 @@ void DrawTimeSplitSplits(){
itemNamer = obj.itemName;
if (obj.itemImage == "SPECIAL_TRIFORCE_PIECE_WHITE") {
TimeSplitColorTint();
} else {
pieceTint = { 1, 1, 1, 1 };
}
}
}

View File

@ -33,4 +33,18 @@ typedef struct {
uint32_t itemID;
const char* itemName;
const char* itemImage;
} TimeSplitObject;
} TimeSplitObject;
typedef enum {
START_VALUE = 656,
BOSS_QUEEN_GOHMA,
BOSS_KING_DODONGO,
BOSS_BARINADE,
BOSS_PHANTOM_GANON,
BOSS_VOLVAGIA,
BOSS_MORPHA,
BOSS_TWINROVA,
BOSS_BONGO_BONGO,
BOSS_GANONDORF,
BOSS_GANON
};

View File

@ -1549,7 +1549,7 @@ void BossDodongo_DeathCutscene(BossDodongo* this, PlayState* play) {
this->cameraAt.y = camera->at.y;
this->cameraAt.z = camera->at.z;
gSaveContext.sohStats.itemTimestamp[TIMESTAMP_DEFEAT_KING_DODONGO] = GAMEPLAYSTAT_TOTAL_TIME;
TimeSplitSplitsHandlerS(658);
TimeSplitSplitsHandlerS(BOSS_KING_DODONGO);
BossRush_HandleCompleteBoss(play);
break;
case 5:

View File

@ -902,7 +902,7 @@ void BossFd2_CollisionCheck(BossFd2* this, PlayState* play) {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_VALVAISA_DEAD);
Enemy_StartFinishingBlow(play, &this->actor);
gSaveContext.sohStats.itemTimestamp[TIMESTAMP_DEFEAT_VOLVAGIA] = GAMEPLAYSTAT_TOTAL_TIME;
TimeSplitSplitsHandlerS(661);
TimeSplitSplitsHandlerS(BOSS_VOLVAGIA);
BossRush_HandleCompleteBoss(play);
} else if (damage) {
BossFd2_SetupDamaged(this, play);

View File

@ -2814,7 +2814,7 @@ void BossGanon_UpdateDamage(BossGanon* this, PlayState* play) {
Audio_QueueSeqCmd(0x100100FF);
this->screenFlashTimer = 4;
gSaveContext.sohStats.itemTimestamp[TIMESTAMP_DEFEAT_GANONDORF] = GAMEPLAYSTAT_TOTAL_TIME;
TimeSplitSplitsHandlerS(665);
TimeSplitSplitsHandlerS(BOSS_GANONDORF);
BossRush_HandleCompleteBoss(play);
} else {
Audio_PlayActorSound2(&this->actor, NA_SE_EN_GANON_DAMAGE2);

View File

@ -1692,7 +1692,7 @@ void func_8090120C(BossGanon2* this, PlayState* play) {
gSaveContext.sohStats.itemTimestamp[TIMESTAMP_DEFEAT_GANON] = GAMEPLAYSTAT_TOTAL_TIME;
BossRush_HandleCompleteBoss(play);
gSaveContext.sohStats.gameComplete = true;
TimeSplitSplitsHandlerS(666);
TimeSplitSplitsHandlerS(BOSS_GANON);
this->unk_39E = Play_CreateSubCamera(play);
Play_ChangeCameraStatus(play, MAIN_CAM, CAM_STAT_WAIT);
Play_ChangeCameraStatus(play, this->unk_39E, CAM_STAT_ACTIVE);

View File

@ -1251,7 +1251,7 @@ void BossGanondrof_CollisionCheck(BossGanondrof* this, PlayState* play) {
BossGanondrof_SetupDeath(this, play);
Enemy_StartFinishingBlow(play, &this->actor);
gSaveContext.sohStats.itemTimestamp[TIMESTAMP_DEFEAT_PHANTOM_GANON] = GAMEPLAYSTAT_TOTAL_TIME;
TimeSplitSplitsHandlerS(660);
TimeSplitSplitsHandlerS(BOSS_PHANTOM_GANON);
BossRush_HandleCompleteBoss(play);
return;
}

View File

@ -1844,7 +1844,7 @@ void BossGoma_UpdateHit(BossGoma* this, PlayState* play) {
BossGoma_SetupDefeated(this, play);
Enemy_StartFinishingBlow(play, &this->actor);
gSaveContext.sohStats.itemTimestamp[TIMESTAMP_DEFEAT_GOHMA] = GAMEPLAYSTAT_TOTAL_TIME;
TimeSplitSplitsHandlerS(657);
TimeSplitSplitsHandlerS(BOSS_QUEEN_GOHMA);
BossRush_HandleCompleteBoss(play);
}

View File

@ -1795,7 +1795,7 @@ void BossMo_CoreCollisionCheck(BossMo* this, PlayState* play) {
((sMorphaTent1->csCamera == 0) && (sMorphaTent2 != NULL) && (sMorphaTent2->csCamera == 0))) {
Enemy_StartFinishingBlow(play, &this->actor);
gSaveContext.sohStats.itemTimestamp[TIMESTAMP_DEFEAT_MORPHA] = GAMEPLAYSTAT_TOTAL_TIME;
TimeSplitSplitsHandlerS(662);
TimeSplitSplitsHandlerS(BOSS_MORPHA);
BossRush_HandleCompleteBoss(play);
Audio_QueueSeqCmd(0x1 << 28 | SEQ_PLAYER_BGM_MAIN << 24 | 0x100FF);
this->csState = MO_DEATH_START;

View File

@ -2566,7 +2566,7 @@ void BossSst_HeadCollisionCheck(BossSst* this, PlayState* play) {
Enemy_StartFinishingBlow(play, &this->actor);
BossSst_HeadSetupDeath(this, play);
gSaveContext.sohStats.itemTimestamp[TIMESTAMP_DEFEAT_BONGO_BONGO] = GAMEPLAYSTAT_TOTAL_TIME;
TimeSplitSplitsHandlerS(663);
TimeSplitSplitsHandlerS(BOSS_BONGO_BONGO);
BossRush_HandleCompleteBoss(play);
} else {
BossSst_HeadSetupDamage(this);

View File

@ -5291,7 +5291,7 @@ void BossTw_TwinrovaDamage(BossTw* this, PlayState* play, u8 damage) {
Enemy_StartFinishingBlow(play, &this->actor);
Audio_PlayActorSound2(&this->actor, NA_SE_EN_TWINROBA_YOUNG_DEAD);
gSaveContext.sohStats.itemTimestamp[TIMESTAMP_DEFEAT_TWINROVA] = GAMEPLAYSTAT_TOTAL_TIME;
TimeSplitSplitsHandlerS(664);
TimeSplitSplitsHandlerS(BOSS_TWINROVA);
BossRush_HandleCompleteBoss(play);
return;
}

View File

@ -1400,7 +1400,7 @@ void BossVa_BodyPhase4(BossVa* this, PlayState* play) {
BossVa_SetupBodyDeath(this, play);
Enemy_StartFinishingBlow(play, &this->actor);
gSaveContext.sohStats.itemTimestamp[TIMESTAMP_DEFEAT_BARINADE] = GAMEPLAYSTAT_TOTAL_TIME;
TimeSplitSplitsHandlerS(659);
TimeSplitSplitsHandlerS(BOSS_BARINADE);
BossRush_HandleCompleteBoss(play);
return;
}