2222#include " batattacksummon.h"
2323#include " battleattackinfo.h"
2424#include " battlemsgdata.h"
25+ #include " battlemsgdataview.h"
2526#include " game.h"
2627#include " globaldata.h"
2728#include " itemview.h"
@@ -44,7 +45,8 @@ namespace hooks {
4445static int getSummonLevel (const game::CMidUnit* summoner,
4546 game::TUsUnitImpl* summonImpl,
4647 const game::IMidgardObjectMap* objectMap,
47- const game::CMidgardID* unitOrItemId)
48+ const game::CMidgardID* unitOrItemId,
49+ const game::BattleMsgData* battleMsgData)
4850{
4951 using namespace game ;
5052
@@ -58,12 +60,13 @@ static int getSummonLevel(const game::CMidUnit* summoner,
5860 try {
5961 const bindings::UnitView summonerUnit{summoner};
6062 const bindings::UnitImplView impl{summonImpl};
63+ const bindings::BattleMsgDataView battleView{battleMsgData, objectMap};
6164
6265 if (CMidgardIDApi::get ().getType (unitOrItemId) == IdType::Item) {
6366 const bindings::ItemView itemView{unitOrItemId, objectMap};
64- return (*getLevel)(summonerUnit, impl, &itemView);
67+ return (*getLevel)(summonerUnit, impl, &itemView, battleView );
6568 } else
66- return (*getLevel)(summonerUnit, impl, nullptr );
69+ return (*getLevel)(summonerUnit, impl, nullptr , battleView );
6770 } catch (const std::exception& e) {
6871 showErrorMessageBox (fmt::format (" Failed to run '{:s}' script.\n "
6972 " Reason: '{:s}'" ,
@@ -138,8 +141,8 @@ void __fastcall summonAttackOnHitHooked(game::CBatAttackSummon* thisptr,
138141
139142 auto summoner = fn.findUnitById (objectMap, &thisptr->unitId );
140143 auto summonImpl = static_cast <TUsUnitImpl*>(global.findById (globalData->units , &summonImplId));
141- const auto summonLevel = getSummonLevel (summoner, summonImpl, objectMap,
142- &thisptr-> unitOrItemId );
144+ const auto summonLevel = getSummonLevel (summoner, summonImpl, objectMap, &thisptr-> unitOrItemId ,
145+ battleMsgData );
143146
144147 CUnitGenerator* unitGenerator = globalData->unitGenerator ;
145148
0 commit comments