From d292e1d676a776c4037af75a2f3b6f7b3cc2a08c Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Wed, 25 Jun 2025 23:28:12 -0400 Subject: [PATCH] Fix signedness of scene yield params According to the decompiled Lua code, they sometimes can return negative numbers (like -1, to indicate an error.) I also improved the debug display of these in the server log a bit. --- src/bin/kawari-world.rs | 2 +- src/ipc/zone/mod.rs | 2 +- src/world/event.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/bin/kawari-world.rs b/src/bin/kawari-world.rs index 32dff12..8c5e22a 100644 --- a/src/bin/kawari-world.rs +++ b/src/bin/kawari-world.rs @@ -874,7 +874,7 @@ async fn client_loop( } } ClientZoneIpcData::EventHandlerReturn { handler_id, scene, error_code, num_results, params } => { - tracing::info!("Finishing this event... {handler_id} {error_code} {scene} {params:#?}"); + tracing::info!("Finishing this event... {handler_id} {error_code} {scene} {:?}", ¶ms[..*num_results as usize]); connection .event diff --git a/src/ipc/zone/mod.rs b/src/ipc/zone/mod.rs index 1f5ea8d..5ceed0f 100644 --- a/src/ipc/zone/mod.rs +++ b/src/ipc/zone/mod.rs @@ -418,7 +418,7 @@ pub enum ClientZoneIpcData { scene: u16, error_code: u8, num_results: u8, - params: [u32; 2], + params: [i32; 2], }, #[br(pre_assert(*magic == ClientZoneIpcType::Config))] Config(Config), diff --git a/src/world/event.rs b/src/world/event.rs index b3c77e0..bc35e53 100644 --- a/src/world/event.rs +++ b/src/world/event.rs @@ -86,7 +86,7 @@ impl Event { } } - pub fn finish(&mut self, scene: u16, results: &[u32], player: &mut LuaPlayer) { + pub fn finish(&mut self, scene: u16, results: &[i32], player: &mut LuaPlayer) { let mut run_script = || { self.lua.scope(|scope| { let player = scope.create_userdata_ref_mut(player)?;