Decompile fn_22331 (CMercenaryAI::Shutdown)

Batch #1022 by ragnarok-clanker: 1 byte-identical, 0 confirmed by peer review.

- fn_22331 CMercenaryAI::Shutdown: byte-identical

Merged automatically: every function is byte-identical to the original.
Adds to the build: Source/Contents/Actors/MercenaryAI.cpp
This commit is contained in:
ragnarok-clanker 2026-10-27 09:33:55 +00:00
commit 7afc1a3a5b
3 changed files with 51 additions and 0 deletions

View file

@ -0,0 +1,18 @@
#include "Contents/Actors/MercenaryAI.h"
extern "C" {
#include <lua.h>
}
// OFFSET: 0x00D9E3F0
// OFFSET: 0x00D9E430
// OFFSET: 0x00D9E570
// FUNCTION: fn_22331
void CMercenaryAI::Shutdown() {
if (this->state) {
lua_close(this->state);
this->state = nullptr;
}
}

View file

@ -0,0 +1,32 @@
#ifndef RAGNAROK_SOURCE_CONTENTS_ACTORS_MERCENARYAI_H
#define RAGNAROK_SOURCE_CONTENTS_ACTORS_MERCENARYAI_H
#include <cstddef>
#include <cstdint>
struct lua_State;
class CMercenaryAI {
public:
/* 0004 */ lua_State* state;
/* 0008 */ std::uint32_t actionStarted;
/* 000C */ std::uint32_t actionDuration;
/* 0010 */ int kind;
/* 0014 */ std::uint32_t lastTick;
virtual ~CMercenaryAI();
explicit CMercenaryAI(int kind);
void Shutdown();
};
#if defined(_WIN32) && !defined(_WIN64)
static_assert(sizeof(CMercenaryAI) == 0x18);
static_assert(offsetof(CMercenaryAI, state) == 0x4);
static_assert(offsetof(CMercenaryAI, actionStarted) == 0x8);
static_assert(offsetof(CMercenaryAI, actionDuration) == 0xC);
static_assert(offsetof(CMercenaryAI, kind) == 0x10);
static_assert(offsetof(CMercenaryAI, lastTick) == 0x14);
#endif
#endif

View file

@ -266,6 +266,7 @@
"Source/Contents/ActorNameDirectory.cpp": 4,
"Source/Contents/Actors/AttackMotion.cpp": 4,
"Source/Contents/Actors/GameObject.cpp": 4,
"Source/Contents/Actors/MercenaryAI.cpp": 4,
"Source/Contents/Actors/RenderObject.cpp": 4,
"Source/Contents/Actors/RenderObjectState.cpp": 4,
"Source/Contents/Actors/SpriteDrawingPolicy.cpp": 4,