From 46cf7d42009c42d6a48e4c20269fad6dd2d5fca9 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Sun, 13 Jul 2025 08:58:46 -0400 Subject: [PATCH] Add ActorGauge IPC opcode --- resources/opcodes.json | 5 +++++ src/ipc/zone/mod.rs | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/resources/opcodes.json b/resources/opcodes.json index 3809a64..8e3992f 100644 --- a/resources/opcodes.json +++ b/resources/opcodes.json @@ -264,6 +264,11 @@ "name": "ObjectSpawn", "opcode": 425, "size": 64 + }, + { + "name": "ActorGauge", + "opcode": 424, + "size": 16 } ], "ClientZoneIpcType": [ diff --git a/src/ipc/zone/mod.rs b/src/ipc/zone/mod.rs index 32e1036..f45ac8c 100644 --- a/src/ipc/zone/mod.rs +++ b/src/ipc/zone/mod.rs @@ -441,6 +441,8 @@ pub enum ServerZoneIpcData { ContentFinderFound2 { unk1: [u8; 8] }, #[br(pre_assert(*magic == ServerZoneIpcType::ObjectSpawn))] ObjectSpawn(ObjectSpawn), + #[br(pre_assert(*magic == ServerZoneIpcType::ActorGauge))] + ActorGauge { classjob_id: u8, data: [u8; 15] }, Unknown { #[br(count = size - 32)] unk: Vec, @@ -881,6 +883,13 @@ mod tests { ServerZoneIpcType::ObjectSpawn, ServerZoneIpcData::ObjectSpawn(ObjectSpawn::default()), ), + ( + ServerZoneIpcType::ActorGauge, + ServerZoneIpcData::ActorGauge { + classjob_id: 0, + data: [0; 15], + }, + ), ]; for (opcode, data) in &ipc_types {