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:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user