1
0
mirror of https://github.com/0O0o0oOoO00/Alas.git synced 2026-05-14 10:59:24 +08:00

add: skip air strike animation

This commit is contained in:
0O0o0oOoO00
2026-01-12 22:24:53 +08:00
parent ee73e57e15
commit aa12aa8511
16 changed files with 107 additions and 1 deletions

View File

@@ -321,6 +321,15 @@ void Cracker::disable_all() {
disable_chapter_auto_clear();
disable_skip_story();
disable_infinite_battle();
disable_skip_air_strike_animation();
}
void Cracker::enable_skip_air_strike_animation() {
ENABLE(SKIP_AIR_STRIKE_ANIMATION);
}
void Cracker::disable_skip_air_strike_animation() {
DISABLE(INFINITE_BATTLE);
}
void Cracker::enable_infinite_battle() {
@@ -762,11 +771,28 @@ void Cracker::load_lua_resources() {
m_original.Fleet_EnergyCheck = m_state["Fleet"]["EnergyCheck"];
m_original.ContinuousOperationRuntimeData_ConsumeBattleTime = m_state["ContinuousOperationRuntimeData"]["ConsumeBattleTime"];
m_original.ActivityProxy_UseContinuousTime = m_state["ActivityProxy"]["UseContinuousTime"];
m_original.LevelScene_doPlayAirStrike = m_state["LevelScene"]["doPlayAirStrike"];
}
void Cracker::hook_all_lua_functions() {
SPDLOG_INFO("Hook lua functions");
// skip_air_strike_animation
m_state["LevelScene"]["doPlayAirStrike"] = [this](sol::this_state L, Lua::VariadicArgs args) {
CALLED(LevelScene.doPlayAirStrike)
if (IS_ENABLED(SKIP_AIR_STRIKE_ANIMATION)) {
Lua::Object callback = args[3];
if (callback.is<Lua::Function>()) {
callback.as<Lua::Function>()(L);
} else {
m_original.LevelScene_doPlayAirStrike(L, args);
}
return;
}
m_original.LevelScene_doPlayAirStrike(L, args);
};
// infinite_battle
m_state["ContinuousOperationRuntimeData"]["ConsumeBattleTime"] = [this](sol::this_state L, Lua::VariadicArgs args) {
CALLED(ContinuousOperationRuntimeData.ConsumeBattleTime);
@@ -1565,6 +1591,7 @@ Cracker::Config Cracker::get_config() {
SET_CONFIG_FLAG(CHAPTER_AUTO_CLEAR),
SET_CONFIG_FLAG(SKIP_STORY),
SET_CONFIG_FLAG(INFINITE_BATTLE),
SET_CONFIG_FLAG(SKIP_AIR_STRIKE_ANIMATION),
},
.globle_ship_properties = m_globle_ship_properties,
.global_speedup_rate = static_cast<int>(m_global_speedup_rate),
@@ -1579,6 +1606,12 @@ Cracker::Config Cracker::get_config() {
#define IS_CONFIG_ENABLED(n) config.flag.n
void Cracker::apply_config(Config& config) {
if(IS_CONFIG_ENABLED(SKIP_AIR_STRIKE_ANIMATION)) {
enable_skip_air_strike_animation();
} else {
disable_skip_air_strike_animation();
}
if(IS_CONFIG_ENABLED(INFINITE_BATTLE)) {
enable_infinite_battle();
} else {