Decompile fn_21953 (CGameMode::ApplyStatusChange)

Batch #8194 by eAthena: 0 byte-identical, 1 confirmed by peer review.

- fn_21953 CGameMode::ApplyStatusChange: logic confirmed by peer review

Peer-reviewed-by: ragnarok-clanker, Yommy, secret
Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes).
This commit is contained in:
ragnarok-clanker 2026-10-31 14:59:36 +00:00
commit 3eaee5f692
5 changed files with 1611 additions and 1 deletions

View file

@ -598,6 +598,9 @@ public:
void ReceiveVendingItemSoldNow(const unsigned char* data);
void ReceiveNotifyGroundSkill(const unsigned char* packet);
void ReceiveAcceptEnter(const unsigned char* data);
void ApplyStatusChange(
std::uint32_t aid, unsigned char on, int type, std::uint32_t remaining, int value1, int value2, int value3, unsigned char flag, std::uint32_t total
);
};
void LaunchRollingCutterEffect(CGameActor* actor);

File diff suppressed because it is too large Load diff

View file

@ -8,6 +8,7 @@
#include "Contents/Skills/PlayerSkillBundle.h"
#include "Contents/UserData/NormalItemSlots.h"
#include "Resource/XmlNode.h"
#include "UI/Cooldowns/CooldownState.h"
#include <cstddef>
#include <cstdint>
@ -85,6 +86,9 @@ struct ProhibitionLogEntry {
struct SessionRequestTimer {
/* 0000 */ int requestId;
/* 0004 */ unsigned long readyTime;
/* 0008 */ std::uint32_t duration;
/* 000C */ std::list<CooldownState> main;
/* 0014 */ std::list<CooldownState> alternate;
};
struct SessionRecord0734 {
@ -450,7 +454,9 @@ public:
/* 6B68 */ ITEM_INFO unknown_6B68[10];
/* 7518 */ unsigned char unknown_7518[0x9B0];
/* 7EC8 */ std::uint32_t unknown_7EC8;
/* 7ECC */ unsigned char unknown_7ECC[0x0C];
/* 7ECC */ unsigned char unknown_7ECC[0x04];
/* 7ED0 */ int unknown_7ED0;
/* 7ED4 */ std::uint32_t unknown_7ED4;
/* 7ED8 */ int m_swapEquipmentMode = 0;
/* 7EDC */ unsigned char unknown_7EDC[4];
/* 7EE0 */ std::map<int, RobeAlpha> m_robeAlpha;

View file

@ -103,6 +103,8 @@ public:
/* 0010 */ RenderObjectState render;
};
extern int g_seasonalMonsterSprites;
#if defined(_WIN32) && !defined(_WIN64)
static_assert(sizeof(RenderBounds) == 0x14);
static_assert(sizeof(CRenderObject) == 0x138);

View file

@ -17,6 +17,13 @@ public:
CooldownState* Find(unsigned id);
void Erase(unsigned id);
// INLINED
void Remove(unsigned id) {
const auto entry = this->m_values.find(id);
if (entry != this->m_values.end()) {
this->m_values.erase(entry);
}
}
// INLINED
CooldownDrawing& Drawing() {
return this->m_drawing;
}