diff --git a/src/d/actor/d_a_alink.cpp b/src/d/actor/d_a_alink.cpp index 86864e4c32..f2501e8f86 100644 --- a/src/d/actor/d_a_alink.cpp +++ b/src/d/actor/d_a_alink.cpp @@ -7569,12 +7569,7 @@ void daAlink_c::setBlendMoveAnime(f32 i_morf) { f32 sp2C; f32 sp28 = mpHIO->mMove.m.mFootPositionRatio; BOOL sp24 = checkEventRun(); - BOOL sp20 = checkBootsMoveAnime(1); -#if TARGET_PC - if (dusk::getSettings().game.enableFastIronBoots) { - sp20 = FALSE; - } -#endif + BOOL sp20 = checkBootsMoveAnime(1) IF_DUSK(&& !dusk::getSettings().game.enableFastIronBoots); f32 var_f29; @@ -8087,7 +8082,7 @@ void daAlink_c::setBlendAtnBackMoveAnime(f32 i_morf) { daAlink_ANM var_r27; daAlink_ANM var_r29; - if (checkBootsMoveAnime(1)) { + if (checkBootsMoveAnime(1) IF_DUSK(&& !dusk::getSettings().game.enableFastIronBoots)) { mMaxSpeed = mpHIO->mAtnMove.m.mMaxBackwardsSpeed; var_f27 = mpHIO->mAtnMove.m.mMinBackWalkFrame; var_f31 = mpHIO->mAtnMove.m.mBackWalkChangeRate; diff --git a/src/d/actor/d_a_e_mk.cpp b/src/d/actor/d_a_e_mk.cpp index dca3d670f4..6c7291a890 100644 --- a/src/d/actor/d_a_e_mk.cpp +++ b/src/d/actor/d_a_e_mk.cpp @@ -161,6 +161,21 @@ static void* s_h_sub(void* i_actor, void* i_data) { return NULL; } +#if TARGET_PC +static void sort_target_info_by_id() { + for (int i = 1; i < target_info_count; i++) { + void* key = target_info[i]; + fpc_ProcID key_id = fopAcM_GetID(key); + int j = i - 1; + while (j >= 0 && fopAcM_GetID(target_info[j]) > key_id) { + target_info[j + 1] = target_info[j]; + j--; + } + target_info[j + 1] = key; + } +} +#endif + static daPillar_c* search_hasira(e_mk_class* i_this) { fopEn_enemy_c* actor = (fopEn_enemy_c*)&i_this->actor; daPillar_c* pillar_p; @@ -174,6 +189,9 @@ static daPillar_c* search_hasira(e_mk_class* i_this) { if (i_this->firstHasiraFlag == 0) { i_this->firstHasiraFlag++; +#if TARGET_PC + sort_target_info_by_id(); +#endif return (daPillar_c*)target_info[TREG_S(7) + 5]; } diff --git a/src/d/d_bright_check.cpp b/src/d/d_bright_check.cpp index fc6924c9e7..ccb04c69e5 100644 --- a/src/d/d_bright_check.cpp +++ b/src/d/d_bright_check.cpp @@ -143,13 +143,12 @@ void dBrightCheck_c::modeMove() { if (mDoCPd_c::getTrigA(PAD_1) || mDoCPd_c::getTrigStart(PAD_1)) { mDoAud_seStart(Z2SE_ENTER_GAME, NULL, 0, 0); #ifdef TARGET_PC - dusk::speedrun::start(); - if (dusk::getSettings().game.speedrunMode && !dusk::getSettings().game.hideTvSettingsScreen) { // start a new run if a run isn't already in progress if (!dusk::m_speedrunInfo.m_isRunStarted) { dusk::resetForSpeedrunMode(); dusk::m_speedrunInfo.startRun(); + dusk::speedrun::start(); } } diff --git a/src/d/d_menu_window.cpp b/src/d/d_menu_window.cpp index 7f76f807df..e2e7b4e91f 100644 --- a/src/d/d_menu_window.cpp +++ b/src/d/d_menu_window.cpp @@ -26,6 +26,10 @@ #include "f_op/f_op_overlap_mng.h" #include "m_Do/m_Do_controller_pad.h" +#ifdef TARGET_PC +#include "dusk/frame_interpolation.h" +#endif + class dDlst_MENU_CAPTURE_c : public dDlst_base_c { public: virtual void draw() { @@ -1088,6 +1092,10 @@ void dMw_c::dMw_ring_create(u8 i_origin) { } mpCapture->setCaptureFlag(); + +#ifdef TARGET_PC + dusk::frame_interp::request_presentation_sync(); +#endif } bool dMw_c::dMw_ring_delete() { diff --git a/src/d/d_name.cpp b/src/d/d_name.cpp index e4b4b91b00..abc7512f14 100644 --- a/src/d/d_name.cpp +++ b/src/d/d_name.cpp @@ -77,16 +77,16 @@ static const char* l_mojiEisu[65] = { // That can't work on a modern platform, so instead I've filled them out ahead of time. static const char* l_mojiEisuPal_1[65] = { "A", "N", "\xC0", "\xCF", "1", "B", "O", "\xC1", "\xD0", "2", "C", "P", "\xC2", "\xD1", "3", "D", "Q", - "\xC3", "\xD2", "4", "E", "R", "\xC4", "\xD3", "5", "F", "S", "\xC5", "\xD4", "6", "G", "T", "\xC6", "\xD5", - "7", "H", "U", "\xC7", "\xD6", "8", "I", "V", "\xC8", "\xD7", "9", "J", "W", "\xC9", "\xD8", "0", "K", - "X", "\xCA", "\xD9", ",", "L", "Y", "\xCB", "\xDA", ".", "M", "Z", "\xCC", "\xDB", " ", + "\xC4", "\xD2", "4", "E", "R", "\xC6", "\xD3", "5", "F", "S", "\xC7", "\xD4", "6", "G", "T", "\xC8", "\xD6", + "7", "H", "U", "\xC9", "\x8C", "8", "I", "V", "\xCA", "\xD9", "9", "J", "W", "\xCB", "\xDA", "0", "K", + "X", "\xCC", "\xDB", ",", "L", "Y", "\xCD", "\xDC", ".", "M", "Z", "\xCE", "\x2D", " ", }; static const char* l_mojiEisuPal_2[65] = { "a", "n", "\xE0", "\xEF", "1", "b", "o", "\xE1", "\xF0", "2", "c", "p", "\xE2", "\xF1", "3", "d", "q", - "\xE3", "\xF2", "4", "e", "r", "\xE4", "\xF3", "5", "f", "s", "\xE5", "\xF4", "6", "g", "t", "\xE6", - "\xF5", "7", "h", "u", "\xE7", "\xF6", "8", "i", "v", "\xE8", "\xF7", "9", "j", "w", "\xE9", "\xF8", "0", - "k", "x", "\xEA", "\xF9", ",", "l", "y", "\xEB", "\xFA", ".", "m", "z", "\xEC", "\xFB", " ", + "\xE4", "\xF2", "4", "e", "r", "\xE6", "\xF3", "5", "f", "s", "\xE7", "\xF4", "6", "g", "t", "\xE8", + "\xF6", "7", "h", "u", "\xE9", "\x9C", "8", "i", "v", "\xEA", "\xF9", "9", "j", "w", "\xEB", "\xFA", "0", + "k", "x", "\xEC", "\xFB", ",", "l", "y", "\xED", "\xFC", ".", "m", "z", "\xEE", "\xDF", " ", }; #elif REGION_PAL static const char* l_mojiEisuPal_1[65] = { diff --git a/src/d/d_s_name.cpp b/src/d/d_s_name.cpp index c3ae12e992..92f5a6c518 100644 --- a/src/d/d_s_name.cpp +++ b/src/d/d_s_name.cpp @@ -10,6 +10,7 @@ #include "d/d_meter2_info.h" #include "d/d_s_name.h" #include "dusk/imgui/ImGuiConsole.hpp" +#include "dusk/livesplit.h" #include "dusk/memory.h" #include "dusk/speedrun.h" #include "dusk/settings.h" @@ -422,6 +423,7 @@ void dScnName_c::changeGameScene() { if (!dusk::m_speedrunInfo.m_isRunStarted) { dusk::resetForSpeedrunMode(); dusk::m_speedrunInfo.startRun(); + dusk::speedrun::start(); } }