From a72199e5afeae8798c79053f2c3d3daa30ca0b01 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Sun, 16 Mar 2025 14:43:30 -0400 Subject: [PATCH] Use the same nameday/deity/etc information everywhere, add tests for PlayerSpawn This doesn't really fix anything functionally, but makes the Character window look nicer. The same (currently unchangable) data is now reflected in the lobby. --- resources/tests/player_setup.bin | Bin 0 -> 2784 bytes src/bin/kawari-world.rs | 12 +++++++++- src/ipc.rs | 2 +- src/lib.rs | 5 +++++ src/lobby/connection.rs | 15 +++++++------ src/world/player_setup.rs | 37 ++++++++++++++++++++++++++++++- 6 files changed, 61 insertions(+), 10 deletions(-) create mode 100644 resources/tests/player_setup.bin diff --git a/resources/tests/player_setup.bin b/resources/tests/player_setup.bin new file mode 100644 index 0000000000000000000000000000000000000000..602220c6c91e817b6b275070ab6dd7bcd658a33c GIT binary patch literal 2784 zcmd-L3-A$Va9}_O&&x^#U}F1W464&9tUx0fnHU)vIT#t4IU(k=FfgzfVp_#&!~j&s zh$%4$MJRLSY=%yT1yEm6X3`)G8mN;F_}O#YbMN=t?>De+^hqpB%}Y#F2v003O3kB( zTO8Z|, +} + +#[cfg(test)] +mod tests { + use std::{fs::read, io::Cursor, path::PathBuf}; + + use binrw::BinRead; + + use super::*; + + #[test] + fn read_playerspawn() { + let mut d = PathBuf::from(env!("CARGO_MANIFEST_DIR")); + d.push("resources/tests/player_setup.bin"); + + let buffer = read(d).unwrap(); + let mut buffer = Cursor::new(&buffer); + + let player_setup = PlayerSetup::read_le(&mut buffer).unwrap(); + assert_eq!(player_setup.content_id, 0x004000174c50560d); + assert_eq!(player_setup.char_id, 0x107476e7); + assert_eq!(player_setup.name, "Lavenaa Warren"); + assert_eq!(player_setup.max_level, 100); + assert_eq!(player_setup.gender, 1); + assert_eq!(player_setup.race, 1); + assert_eq!(player_setup.tribe, 2); + assert_eq!(player_setup.expansion, 5); + assert_eq!(player_setup.current_job, 1); // adventurer + assert_eq!(player_setup.current_class, 1); // ditto + assert_eq!(player_setup.levels[1], 1); // adventurer + } }