From ac43540f18038bf7056bee0664569261c354d827 Mon Sep 17 00:00:00 2001 From: ragnarok-clanker Date: Wed, 28 Oct 2026 19:10:30 +0000 Subject: [PATCH] Decompile fn_24219 (SendClientOption) Batch #1572 by eAthena: 0 byte-identical, 1 confirmed by peer review. - fn_24219 SendClientOption: logic confirmed by peer review Reviewed-by: ragnarok-clanker Adds to the build: Source/Network/ClientOptionPacket.cpp --- Source/Network/ClientOptionPacket.cpp | 26 ++++++++++++++++++++++++++ Source/Network/ClientOptionPacket.h | 9 +++++++++ data/compile.json | 1 + 3 files changed, 36 insertions(+) create mode 100644 Source/Network/ClientOptionPacket.cpp create mode 100644 Source/Network/ClientOptionPacket.h diff --git a/Source/Network/ClientOptionPacket.cpp b/Source/Network/ClientOptionPacket.cpp new file mode 100644 index 0000000..4d5a3f4 --- /dev/null +++ b/Source/Network/ClientOptionPacket.cpp @@ -0,0 +1,26 @@ +#include "Network/ClientOptionPacket.h" +#include "Network/Connection/Connection.h" +#include "Network/Packets/PacketLengths.h" + +#include + +namespace { +#pragma pack(push, 1) + struct ClientOptionPacket { + /* 0000 */ std::int16_t id; + /* 0002 */ int option; + /* 0006 */ int value; + }; +#pragma pack(pop) + static_assert(sizeof(ClientOptionPacket) == 10); +} + +// OFFSET: 0x00E48400 +// FUNCTION: fn_24219 +void SendClientOption(unsigned char value, CConnection& connection, const PacketLengths& lengths) { + ClientOptionPacket packet; + packet.id = 0x02D8; + packet.option = 6; + packet.value = value; + connection.Send(lengths.FixedLength(packet.id), &packet); +} diff --git a/Source/Network/ClientOptionPacket.h b/Source/Network/ClientOptionPacket.h new file mode 100644 index 0000000..d6448ca --- /dev/null +++ b/Source/Network/ClientOptionPacket.h @@ -0,0 +1,9 @@ +#ifndef RAGNAROK_SOURCE_NETWORK_CLIENTOPTIONPACKET_H +#define RAGNAROK_SOURCE_NETWORK_CLIENTOPTIONPACKET_H + +class CConnection; +class PacketLengths; + +void SendClientOption(unsigned char value, CConnection& connection, const PacketLengths& lengths); + +#endif diff --git a/data/compile.json b/data/compile.json index 63324a0..e0f1d7b 100644 --- a/data/compile.json +++ b/data/compile.json @@ -444,6 +444,7 @@ "Source/File/ResourcePath.cpp": 1, "Source/File/ShortcutFilename.cpp": 1, "Source/Network/ClientKeepalive.cpp": 0, + "Source/Network/ClientOptionPacket.cpp": 0, "Source/Network/Connection/Connection.cpp": 0, "Source/Network/Connection/ConnectionBuffer.cpp": 0, "Source/Network/Connection/ConnectionRuntime.cpp": 0,