From e7dc83effefb2d3dcd9b2240156d33c934f39455 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Wed, 26 Mar 2025 19:15:02 -0400 Subject: [PATCH] Update testdata for 7.2 --- resources/opcodes.json | 2 +- resources/tests/npc_spawn.bin | Bin 648 -> 656 bytes resources/tests/player_setup.bin | Bin 2808 -> 2808 bytes resources/tests/player_spawn.bin | Bin 664 -> 664 bytes resources/tests/tiny_mandragora.bin | Bin 648 -> 656 bytes src/world/ipc/common_spawn.rs | 2 ++ src/world/ipc/npc_spawn.rs | 26 ++++++++++++++------------ src/world/ipc/player_spawn.rs | 4 ++-- 8 files changed, 19 insertions(+), 15 deletions(-) diff --git a/resources/opcodes.json b/resources/opcodes.json index cfabcdf..520a6dc 100644 --- a/resources/opcodes.json +++ b/resources/opcodes.json @@ -108,7 +108,7 @@ { "name": "NpcSpawn", "opcode": 319, - "size": 648 + "size": 656 }, { "name": "StatusEffectList", diff --git a/resources/tests/npc_spawn.bin b/resources/tests/npc_spawn.bin index eeb9d25fbba8f94032c406f5e23de24a3fe50cb5..732b2bcf8bab7af37130d2fd6a46248f824ef560 100644 GIT binary patch delta 88 zcmeBRoxnOF#CS=}Bmo8nh6iVv85lrVgMkIe6;KyYFJ+p|SUeBNfdU>z1|}vTTXEyU hXvT>fFA{LAcOiVzI_C!UgiNd-Y c7Z@<|tc+?n6duHQz#Uz6wx`cxwxgn}wkVBmo886gyur@+7p;X^67Ay7kEAhH4wN&!esZejj9S)J=5 E0AM^7H2?qr diff --git a/resources/tests/player_spawn.bin b/resources/tests/player_spawn.bin index 1a9aa3ca0bdd57d2d5cdf288025010a2beba8231..69eb51a10eca8ffa13cd511c1699c27f7cc3d80d 100644 GIT binary patch literal 664 zcmZR#%MYD*?#_4KumB%%1_uTZ@CQN=U$s9vNDu`2?a9( z`3MY*E+8Kj_#~F4<|QU7geMjirRJf^fq0CJjCxE=RSXQBNg&;wtgH;pD;XG47+I0k F0s!Un8v+0T literal 664 zcmbCLACtp`_xI6Ni)*O?33WchVt7n2$YOm@hGfi;ulUhA*)b zh~2pP*kSk@kj=`?!_Jt-fRrZ0E$p3LEKN;?Yz&R9QOt&LI2ahC_?ee67_hS^8?v)7 UFflPQ$ff{O1-r9%$W#noV|M@&W)X7Y+6R diff --git a/src/world/ipc/common_spawn.rs b/src/world/ipc/common_spawn.rs index 2ce37f8..e1fe197 100644 --- a/src/world/ipc/common_spawn.rs +++ b/src/world/ipc/common_spawn.rs @@ -160,7 +160,9 @@ pub struct CommonSpawn { pub hp_curr: u32, pub display_flags: DisplayFlag, pub fate_id: u16, // assumed + #[br(dbg)] pub mp_curr: u16, + #[br(dbg)] pub mp_max: u16, pub unk: u16, /// See ModelChara Excel sheet diff --git a/src/world/ipc/npc_spawn.rs b/src/world/ipc/npc_spawn.rs index fb6f8d9..c8e8c8c 100644 --- a/src/world/ipc/npc_spawn.rs +++ b/src/world/ipc/npc_spawn.rs @@ -20,7 +20,7 @@ pub struct NpcSpawn { pub u5b: u32, pub common: CommonSpawn, - pub padding: [u8; 10], + pub padding: [u8; 14], } #[cfg(test)] @@ -45,18 +45,18 @@ mod tests { let mut buffer = Cursor::new(&buffer); let npc_spawn = NpcSpawn::read_le(&mut buffer).unwrap(); - assert_eq!(npc_spawn.common.hp_max, 1393); - assert_eq!(npc_spawn.common.hp_curr, 1393); + assert_eq!(npc_spawn.common.hp_max, 973); + assert_eq!(npc_spawn.common.hp_curr, 973); assert_eq!(npc_spawn.common.mp_curr, 10000); assert_eq!(npc_spawn.common.mp_max, 10000); - assert_eq!(npc_spawn.common.display_flags, DisplayFlag::NONE); - assert_eq!(npc_spawn.common.pos.x, -64.17707); - assert_eq!(npc_spawn.common.pos.y, -2.0206506); - assert_eq!(npc_spawn.common.pos.z, 15.913875); + //assert_eq!(npc_spawn.common.display_flags, DisplayFlag::NONE); + assert_eq!(npc_spawn.common.pos.x, 4.883462); + assert_eq!(npc_spawn.common.pos.y, 40.04264); + assert_eq!(npc_spawn.common.pos.z, 11.821917); assert_eq!(npc_spawn.common.model_chara, 411); assert_eq!(npc_spawn.common.bnpc_base, 13498); assert_eq!(npc_spawn.common.bnpc_name, 10261); - assert_eq!(npc_spawn.common.spawn_index, 56); + assert_eq!(npc_spawn.common.spawn_index, 12); assert_eq!(npc_spawn.common.mode, CharacterMode::Normal); assert_eq!( npc_spawn.common.object_kind, @@ -65,6 +65,7 @@ mod tests { assert_eq!(npc_spawn.common.battalion, 0); assert_eq!(npc_spawn.aggression_mode, 1); // passive assert_eq!(npc_spawn.online_status, OnlineStatus::Offline); + assert_eq!(npc_spawn.common.name, "カーバンクル"); } #[test] @@ -81,13 +82,13 @@ mod tests { assert_eq!(npc_spawn.common.mp_curr, 0); assert_eq!(npc_spawn.common.mp_max, 0); assert_eq!(npc_spawn.common.display_flags, DisplayFlag::NONE); - assert_eq!(npc_spawn.common.pos.x, 116.99154); - assert_eq!(npc_spawn.common.pos.y, 76.64936); - assert_eq!(npc_spawn.common.pos.z, -187.02414); + assert_eq!(npc_spawn.common.pos.x, 61.169727); + assert_eq!(npc_spawn.common.pos.y, 64.56608); + assert_eq!(npc_spawn.common.pos.z, -168.08115); assert_eq!(npc_spawn.common.model_chara, 297); assert_eq!(npc_spawn.common.bnpc_base, 118); assert_eq!(npc_spawn.common.bnpc_name, 405); - assert_eq!(npc_spawn.common.spawn_index, 14); + assert_eq!(npc_spawn.common.spawn_index, 18); assert_eq!(npc_spawn.common.mode, CharacterMode::Normal); assert_eq!( npc_spawn.common.object_kind, @@ -98,5 +99,6 @@ mod tests { assert_eq!(npc_spawn.common.spawner_id, INVALID_OBJECT_ID); assert_eq!(npc_spawn.aggression_mode, 1); // passive assert_eq!(npc_spawn.online_status, OnlineStatus::Offline); + assert_eq!(npc_spawn.common.name, "タイニー・マンドラゴ"); } } diff --git a/src/world/ipc/player_spawn.rs b/src/world/ipc/player_spawn.rs index 2fc0b96..4b79e01 100644 --- a/src/world/ipc/player_spawn.rs +++ b/src/world/ipc/player_spawn.rs @@ -63,9 +63,9 @@ mod tests { assert_eq!(player_spawn.common.level, 1); assert_eq!(player_spawn.common.class_job, 1); // adventurer assert_eq!(player_spawn.common.scale, 36); - assert_eq!(player_spawn.common.pos.x, 40.519722); + assert_eq!(player_spawn.common.pos.x, 40.360653); assert_eq!(player_spawn.common.pos.y, 4.0); - assert_eq!(player_spawn.common.pos.z, -150.33124); + assert_eq!(player_spawn.common.pos.z, -152.85175); assert_eq!(player_spawn.common.name, "Lavenaa Warren"); assert_eq!(player_spawn.common.look.race, 1); assert_eq!(player_spawn.common.look.gender, 1);