From 45e3e48fba46eeade4940822dd0902731c4f08ed Mon Sep 17 00:00:00 2001 From: Mircea TheHonestCTO Date: Wed, 19 Nov 2025 18:01:34 +0100 Subject: [PATCH] nullkiller2: Add battleEnded() callback to AIGateway for NK2 AI but leave it deactivated because it crashes NK during computer turns if it fights --- AI/Nullkiller2/AIGateway.cpp | 8 ++++++++ AI/Nullkiller2/AIGateway.h | 1 + 2 files changed, 9 insertions(+) diff --git a/AI/Nullkiller2/AIGateway.cpp b/AI/Nullkiller2/AIGateway.cpp index ef6362f93..5343b3c30 100644 --- a/AI/Nullkiller2/AIGateway.cpp +++ b/AI/Nullkiller2/AIGateway.cpp @@ -414,6 +414,14 @@ void AIGateway::battleResultsApplied() status.setBattle(NO_BATTLE); } +void AIGateway::battleEnded() +{ + // TODO: Mircea: Mirroring what was just added for NK1 doesn't work, crashes the game when NK2 fights during computer turns + // LOG_TRACE(logAi); + // assert(status.getBattle() == ENDING_BATTLE); + // status.setBattle(NO_BATTLE); +} + void AIGateway::beforeObjectPropertyChanged(const SetObjectProperty * sop) { diff --git a/AI/Nullkiller2/AIGateway.h b/AI/Nullkiller2/AIGateway.h index b4091c0aa..607771d30 100644 --- a/AI/Nullkiller2/AIGateway.h +++ b/AI/Nullkiller2/AIGateway.h @@ -141,6 +141,7 @@ public: void heroManaPointsChanged(const CGHeroInstance * hero) override; void heroSecondarySkillChanged(const CGHeroInstance * hero, int which, int val) override; void battleResultsApplied() override; + void battleEnded() override; void beforeObjectPropertyChanged(const SetObjectProperty * sop) override; void objectPropertyChanged(const SetObjectProperty * sop) override; void buildChanged(const CGTownInstance * town, BuildingID buildingID, int what) override;