diff --git a/src/Etterna/Models/Misc/PlayerAI.cpp b/src/Etterna/Models/Misc/PlayerAI.cpp index ee3d1eabfa..a393b5b0b5 100644 --- a/src/Etterna/Models/Misc/PlayerAI.cpp +++ b/src/Etterna/Models/Misc/PlayerAI.cpp @@ -7,7 +7,10 @@ #include "RageUtil/Utils/RageUtil.h" #include "RadarValues.h" #include "PlayerStageStats.h" +#include "Etterna/Models/StepsAndStyles/Style.h" #include "Etterna/Actor/Gameplay/LifeMeterBar.h" +#include "Etterna/Models/NoteData/NoteDataUtil.h" +#include "Etterna/Models/Misc/GameConstantsAndTypes.h" HighScore* PlayerAI::pScoreData = nullptr; TimingData* PlayerAI::pReplayTiming = nullptr; @@ -270,6 +273,22 @@ PlayerAI::SetUpSnapshotMap(NoteData* pNoteData, set validNoterows) } } + // Have to account for mirror being in the highscore options + // please dont change styles in the middle of calculation and break this + // thanks + if (pScoreData->GetModifiers().find("mirror") != string::npos || + pScoreData->GetModifiers().find("Mirror") != string::npos) { + PlayerOptions po; + po.Init(); + po.m_bTurns[PlayerOptions::TURN_MIRROR] = true; + NoteDataUtil::TransformNoteData( + *pNoteData, + *pReplayTiming, + po, + GAMESTATE->GetCurrentStyle(GAMESTATE->m_pPlayerState->m_PlayerNumber) + ->m_StepsType); + } + // Now handle misses and holds. // For every row in notedata... FOREACH_NONEMPTY_ROW_ALL_TRACKS(*pNoteData, row)