Decompile fn_21433 (CGameMode::NotifyUnknown0604)

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

- fn_21433 CGameMode::NotifyUnknown0604: logic confirmed by peer review

Peer-reviewed-by: ragnarok-clanker, eAthena
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 10:28:29 +00:00
commit fdda61f1aa
2 changed files with 52 additions and 2 deletions

View file

@ -147,6 +147,7 @@ public:
bool IsEffectId994Group(int id);
bool ConfirmDraggedItemUse();
void sub_CFE480(int actorId);
void NotifyUnknown0604(int value);
void WorldCell(float x, float z, int& column, int& row) const;
void SubcellPosition(int column, int row, int subColumn, int subRow, float& x, float& z) const;
void PlayerCell(int* column, int* row) const;
@ -407,8 +408,8 @@ public:
void sub_D63D70(const unsigned char* record);
void sub_D65FC0(const unsigned char* record);
void sub_D7B170(
int first, std::string text, int second, int third, int fourth, int fifth, int sixth, int seventh, int eighth,
int ninth, int tenth, int eleventh, int twelfth, int thirteenth, int fourteenth, int fifteenth
int first, int second, int third, int fourth, int fifth, int sixth, int seventh, int eighth, int ninth, int tenth,
int eleventh, int twelfth, int thirteenth, int fourteenth, std::string text, int fifteenth
);
void Slot7(int value) override;
void PlaceWindowAtActor(UIWindow* window, CGameActor* actor);

View file

@ -955,3 +955,52 @@ ReplayTime CGameMode::StopReplayRecording() {
Replay::Instance().CloseFile();
return duration;
}
#pragma pack(push, 1)
struct GameModeChunkHeader {
/* 0000 */ std::int16_t type;
/* 0002 */ std::uint32_t size;
};
#pragma pack(pop)
static_assert(sizeof(GameModeChunkHeader) == 6);
#pragma pack(push, 1)
struct GameModeStoredRecord00DA {
/* 0000 */ std::uint16_t type;
/* 0002 */ int value0002;
/* 0006 */ int value0006;
/* 000A */ std::uint16_t value000A;
/* 000C */ std::uint16_t value000C;
/* 000E */ unsigned char value000E;
/* 000F */ std::uint16_t value000F;
/* 0011 */ int value0011;
/* 0015 */ int value0015;
/* 0019 */ std::uint16_t value0019;
/* 001B */ std::uint16_t value001B;
/* 001D */ std::uint16_t value001D;
/* 001F */ std::uint16_t value001F;
/* 0021 */ std::uint16_t value0021;
/* 0023 */ std::uint16_t value0023;
/* 0025 */ char text[0x18];
/* 003D */ std::uint16_t value003D;
};
#pragma pack(pop)
static_assert(offsetof(GameModeStoredRecord00DA, text) == 0x25);
static_assert(offsetof(GameModeStoredRecord00DA, value003D) == 0x3D);
static_assert(sizeof(GameModeTextRecord) == 0x190);
static_assert(offsetof(GameModeTextRecord, buffer) == 0x1E);
// OFFSET: 0x00CFE4D0
// FUNCTION: fn_21433
void CGameMode::NotifyUnknown0604(int value) {
for (std::list<UIWindow*>::iterator it = this->unknown_0604.begin(); it != this->unknown_0604.end(); ++it) {
(*it)->SendMsg(nullptr, 60, value, 0, 0, 0);
}
}
// OFFSET: 0x00CEBF30
// OFFSET: 0x00CEC100