From 36fa04d206d5ae33382017787f10806c8e91b643 Mon Sep 17 00:00:00 2001 From: LA_DI_DA <11174151+0O0o0oOoO00@users.noreply.github.com> Date: Tue, 1 Apr 2025 14:03:58 +0800 Subject: [PATCH] ref: simplify the judgment and logging of start stop function using macros --- blcrack/cracker/cracker.cpp | 128 ++++++++++++++++-------------------- 1 file changed, 56 insertions(+), 72 deletions(-) diff --git a/blcrack/cracker/cracker.cpp b/blcrack/cracker/cracker.cpp index 1fe434306..75e6b4806 100644 --- a/blcrack/cracker/cracker.cpp +++ b/blcrack/cracker/cracker.cpp @@ -7,6 +7,26 @@ #include "utils.hpp" +#define IS_ENABLED(n) \ + if (is_enabled(n)) { \ + SPDLOG_INFO("{} is enabled", #n); \ + return; \ + } \ + +#define ENABLE(n) \ + SPDLOG_INFO("Enable {}", #n); \ + enable_flag(n); + +#define IS_DISABLED(n) \ + if (is_disabled(n)) { \ + SPDLOG_INFO("{} is disabled", #n); \ + return; \ + } \ + +#define DISABLE(n) \ + SPDLOG_INFO("Disable {}", #n); \ + disable_flag(n); + Cracker::Cracker() : m_state(lua_newthread(Utils::get_lua_state())) { Lua::Table proxies = m_state["pg"]["proxyRegister"]["data"]; @@ -194,9 +214,7 @@ void Cracker::disable_all() { } void Cracker::enable_gg_factor() { - if (is_enabled(GG_FACTOR)) { - return; - } + IS_ENABLED(GG_FACTOR) m_original.Ship_intimacyAdditions = m_state["Ship"]["intimacyAdditions"]; m_state["Ship"]["intimacyAdditions"] = [this](Lua::VariadicArgs args) -> Lua::Object { Lua::Table self = args[0]; @@ -228,15 +246,13 @@ void Cracker::enable_gg_factor() { } return sol::nil; }; - enable_flag(GG_FACTOR); + ENABLE(GG_FACTOR) } void Cracker::disable_gg_factor() { - if (is_disabled(GG_FACTOR)) { - return; - } + IS_DISABLED(GG_FACTOR) m_state["Ship"]["intimacyAdditions"] = m_original.Ship_intimacyAdditions; - disable_flag(GG_FACTOR); + DISABLE(GG_FACTOR) } void Cracker::update_gg_factor(double factor) { @@ -244,26 +260,20 @@ void Cracker::update_gg_factor(double factor) { } void Cracker::enable_opsi_fast_move() { - if (is_enabled(OPSI_FAST_MOVE)) { - return; - } + IS_ENABLED(OPSI_FAST_MOVE) m_original.WorldConst_BaseMoveDuration = m_state["WorldConst"]["BaseMoveDuration"]; m_state["WorldConst"]["BaseMoveDuration"] = 0.0; - enable_flag(OPSI_FAST_MOVE); + ENABLE(OPSI_FAST_MOVE) } void Cracker::disable_opsi_fast_move() { - if (is_disabled(OPSI_FAST_MOVE)) { - return; - } + IS_DISABLED(OPSI_FAST_MOVE) m_state["WorldConst"]["BaseMoveDuration"] = m_original.WorldConst_BaseMoveDuration; - disable_flag(OPSI_FAST_MOVE); + ENABLE(OPSI_FAST_MOVE) } void Cracker::enable_no_emotion_warning() { - if (is_enabled(NO_EMOTION_WARNING)) { - return; - } + IS_ENABLED(NO_EMOTION_WARNING) m_original.Ship_cosumeEnergy = m_state["Ship"]["cosumeEnergy"]; m_original.Ship_getEnergy = m_state["Ship"]["getEnergy"]; @@ -274,22 +284,18 @@ void Cracker::enable_no_emotion_warning() { return sol::make_object(L, 150); }; - enable_flag(NO_EMOTION_WARNING); + ENABLE(NO_EMOTION_WARNING) } void Cracker::disable_no_emotion_warning() { - if (is_disabled(NO_EMOTION_WARNING)) { - return; - } + IS_DISABLED(NO_EMOTION_WARNING) m_state["Ship"]["cosumeEnergy"] = m_original.Ship_cosumeEnergy; m_state["Ship"]["getEnergy"] = m_original.Ship_getEnergy; - disable_flag(NO_EMOTION_WARNING); + DISABLE(NO_EMOTION_WARNING) } void Cracker::enable_no_bb_animation() { - if (is_enabled(NO_BB_ANIMATION)) { - return; - } + IS_ENABLED(NO_BB_ANIMATION) m_original.ys_Battle_BattleManualWeaponAutoBot_SetActive = m_state["ys"]["Battle"]["BattleManualWeaponAutoBot"]["SetActive"]; m_state["ys"]["Battle"]["BattleManualWeaponAutoBot"]["SetActive"] = [this](sol::this_state L, Lua::VariadicArgs args) -> Lua::Object { std::vector new_args(args.begin(), args.end()); @@ -297,21 +303,17 @@ void Cracker::enable_no_bb_animation() { Lua::Object res = m_original.ys_Battle_BattleManualWeaponAutoBot_SetActive(sol::as_args(new_args)); return res; }; - enable_flag(NO_BB_ANIMATION); + ENABLE(NO_BB_ANIMATION) } void Cracker::disable_no_bb_animation() { - if (is_disabled(NO_BB_ANIMATION)) { - return; - } + IS_DISABLED(NO_BB_ANIMATION) m_state["ys"]["Battle"]["BattleManualWeaponAutoBot"]["SetActive"] = m_original.ys_Battle_BattleManualWeaponAutoBot_SetActive; - disable_flag(NO_BB_ANIMATION); + DISABLE(NO_BB_ANIMATION) } void Cracker::enable_fake_player() { - if (is_enabled(FAKE_PLAYER_INFO)) { - return; - } + IS_ENABLED(FAKE_PLAYER_INFO) m_original.PlayerVitaeDetailPage_UpdateInfo = m_state["PlayerVitaeDetailPage"]["UpdateInfo"]; m_state["PlayerVitaeDetailPage"]["UpdateInfo"] = [this](Lua::VariadicArgs args) -> Lua::Object { Lua::Object res = m_original.PlayerVitaeDetailPage_UpdateInfo(args); @@ -330,15 +332,13 @@ void Cracker::enable_fake_player() { return res; }; - enable_flag(FAKE_PLAYER_INFO); + ENABLE(FAKE_PLAYER_INFO) } void Cracker::disable_fake_player() { - if (is_disabled(FAKE_PLAYER_INFO)) { - return; - } + IS_DISABLED(FAKE_PLAYER_INFO) m_state["PlayerVitaeDetailPage"]["UpdateInfo"] = m_original.PlayerVitaeDetailPage_UpdateInfo; - disable_flag(FAKE_PLAYER_INFO); + DISABLE(FAKE_PLAYER_INFO) } void Cracker::update_fake_player_info(const FakePlayerInfo& fake_info) { @@ -346,9 +346,7 @@ void Cracker::update_fake_player_info(const FakePlayerInfo& fake_info) { } void Cracker::enable_remove_hard_mode_ship_type_limit() { - if (is_enabled(REMOVE_HARD_MODE_SHIP_TYPE_LIMIT)) { - return; - } + IS_ENABLED(REMOVE_HARD_MODE_SHIP_TYPE_LIMIT) m_original.Chapter_getConfig = m_state["Chapter"]["getConfig"]; m_state["Chapter"]["getConfig"] = [this](sol::this_state L, Lua::VariadicArgs args) -> Lua::Object { Lua::Object first_arg = args[1]; @@ -365,21 +363,17 @@ void Cracker::enable_remove_hard_mode_ship_type_limit() { } return res; }; - enable_flag(REMOVE_HARD_MODE_SHIP_TYPE_LIMIT); + ENABLE(REMOVE_HARD_MODE_SHIP_TYPE_LIMIT) } void Cracker::disable_remove_hard_mode_ship_type_limit() { - if (is_disabled(REMOVE_HARD_MODE_SHIP_TYPE_LIMIT)) { - return; - } + IS_DISABLED(REMOVE_HARD_MODE_SHIP_TYPE_LIMIT) m_state["Chapter"]["getConfig"] = m_original.Chapter_getConfig; - disable_flag(REMOVE_HARD_MODE_SHIP_TYPE_LIMIT); + DISABLE(REMOVE_HARD_MODE_SHIP_TYPE_LIMIT) } void Cracker::enable_remove_hard_mode_ship_properties_limit() { - if (is_enabled(REMOVE_HARD_MODE_SHIP_PROPERTIES_LIMIT)) { - return; - } + IS_ENABLED(REMOVE_HARD_MODE_SHIP_PROPERTIES_LIMIT) m_original.WorldFleetSelectLayer_CheckValid = m_state["WorldFleetSelectLayer"]["CheckValid"]; m_original.BossSingleBattleFleetSelectSubPanel_CheckValid = m_state["BossSingleBattleFleetSelectSubPanel"]["CheckValid"]; @@ -395,25 +389,21 @@ void Cracker::enable_remove_hard_mode_ship_properties_limit() { return true; }; - enable_flag(REMOVE_HARD_MODE_SHIP_PROPERTIES_LIMIT); + ENABLE(REMOVE_HARD_MODE_SHIP_PROPERTIES_LIMIT) } void Cracker::disable_remove_hard_mode_ship_properties_limit() { - if (is_disabled(REMOVE_HARD_MODE_SHIP_PROPERTIES_LIMIT)) { - return; - } + IS_DISABLED(REMOVE_HARD_MODE_SHIP_PROPERTIES_LIMIT) m_state["WorldFleetSelectLayer"]["CheckValid"] = m_original.WorldFleetSelectLayer_CheckValid; m_state["BossSingleBattleFleetSelectSubPanel"]["CheckValid"] = m_original.BossSingleBattleFleetSelectSubPanel_CheckValid; m_state["Chapter"]["IsEliteFleetLegal"] = m_original.Chapter_IsEliteFleetLegal; - disable_flag(REMOVE_HARD_MODE_SHIP_PROPERTIES_LIMIT); + ENABLE(REMOVE_HARD_MODE_SHIP_PROPERTIES_LIMIT) } void Cracker::enable_fast_stage_move() { - if (is_enabled(FAST_STAGE_MOVE_CRACK)) { - return; - } + IS_ENABLED(FAST_STAGE_MOVE_CRACK) m_original.ChapterConst_ShipStepDuration = m_state["ChapterConst"]["ShipStepDuration"]; m_original.ChapterConst_ShipStepQuickPlayScale = m_state["ChapterConst"]["ShipStepQuickPlayScale"]; @@ -421,18 +411,16 @@ void Cracker::enable_fast_stage_move() { m_state["ChapterConst"]["ShipStepDuration"] = 0.0; m_state["ChapterConst"]["ShipStepQuickPlayScale"] = 0.0; - enable_flag(FAST_STAGE_MOVE_CRACK); + ENABLE(FAST_STAGE_MOVE_CRACK) } void Cracker::disable_fast_stage_move() { - if (is_disabled(FAST_STAGE_MOVE_CRACK)) { - return; - } + IS_DISABLED(FAST_STAGE_MOVE_CRACK) m_state["ChapterConst"]["ShipStepDuration"] = m_original.ChapterConst_ShipStepDuration; m_state["ChapterConst"]["ShipStepQuickPlayScale"] = m_original.ChapterConst_ShipStepQuickPlayScale; - disable_flag(FAST_STAGE_MOVE_CRACK); + ENABLE(FAST_STAGE_MOVE_CRACK) } void Cracker::update_global_ship_properties(const ShipProperties& properties) { @@ -440,24 +428,20 @@ void Cracker::update_global_ship_properties(const ShipProperties& properties) { } void Cracker::enable_global_ship_properties_crack() { - if (is_enabled(GLOBAL_SHIP_PROPERTIES_CRACK)) { - return; - } + IS_ENABLED(GLOBAL_SHIP_PROPERTIES_CRACK) m_original.Ship_getShipProperties = m_state["Ship"]["getShipProperties"]; m_state["Ship"]["getShipProperties"] = [this](Lua::VariadicArgs args) -> Lua::Object { Lua::Table properties = m_original.Ship_getShipProperties(args); modify_ship_properties(properties, m_globle_ship_properties); return properties; }; - enable_flag(GLOBAL_SHIP_PROPERTIES_CRACK); + ENABLE(GLOBAL_SHIP_PROPERTIES_CRACK) } void Cracker::disable_global_ship_properties_crack() { - if (is_disabled(GLOBAL_SHIP_PROPERTIES_CRACK)) { - return; - } + IS_DISABLED(GLOBAL_SHIP_PROPERTIES_CRACK) m_state["Ship"]["getShipProperties"] = m_original.Ship_getShipProperties; - disable_flag(GLOBAL_SHIP_PROPERTIES_CRACK); + DISABLE(GLOBAL_SHIP_PROPERTIES_CRACK) } bool Cracker::is_enabled(FunctionId id) {