1
Fork 0
mirror of https://github.com/redstrate/Kawari.git synced 2025-04-25 00:17:45 +00:00

Extract maximum char name length into a const

This commit is contained in:
Joshua Goins 2025-03-13 00:18:00 -04:00
parent 34aa046b21
commit d1139b4618
4 changed files with 17 additions and 9 deletions

View file

@ -1,6 +1,7 @@
use binrw::binrw; use binrw::binrw;
use crate::{ use crate::{
CHAR_NAME_MAX_LENGTH,
common::{read_string, write_string}, common::{read_string, write_string},
world::{ world::{
ActorControlSelf, InitZone, PlayerSetup, PlayerSpawn, PlayerStats, Position, ActorControlSelf, InitZone, PlayerSetup, PlayerSpawn, PlayerStats, Position,
@ -120,8 +121,8 @@ pub struct CharacterDetails {
pub origin_server_id: u16, pub origin_server_id: u16,
pub current_server_id: u16, pub current_server_id: u16,
pub unk1: [u8; 16], pub unk1: [u8; 16],
#[bw(pad_size_to = 32)] #[bw(pad_size_to = CHAR_NAME_MAX_LENGTH)]
#[br(count = 32)] #[br(count = CHAR_NAME_MAX_LENGTH)]
#[br(map = read_string)] #[br(map = read_string)]
#[bw(map = write_string)] #[bw(map = write_string)]
pub character_name: String, pub character_name: String,
@ -196,8 +197,8 @@ pub enum IPCStructData {
character_index: u8, character_index: u8,
action: LobbyCharacterAction, action: LobbyCharacterAction,
world_id: u16, world_id: u16,
#[bw(pad_size_to = 32)] #[bw(pad_size_to = CHAR_NAME_MAX_LENGTH)]
#[br(count = 32)] #[br(count = CHAR_NAME_MAX_LENGTH)]
#[br(map = read_string)] #[br(map = read_string)]
#[bw(map = write_string)] #[bw(map = write_string)]
name: String, name: String,

View file

@ -23,6 +23,9 @@ pub const ZONE_ID: u16 = 1255;
pub const CONTENT_ID: u64 = 11111111111111111; pub const CONTENT_ID: u64 = 11111111111111111;
/// Maxmimum length of a character's name.
pub const CHAR_NAME_MAX_LENGTH: usize = 32;
pub fn generate_sid() -> String { pub fn generate_sid() -> String {
let random_id: String = rand::thread_rng() let random_id: String = rand::thread_rng()
.sample_iter(&Alphanumeric) .sample_iter(&Alphanumeric)

View file

@ -1,6 +1,9 @@
use binrw::binrw; use binrw::binrw;
use crate::common::{read_string, write_string}; use crate::{
CHAR_NAME_MAX_LENGTH,
common::{read_string, write_string},
};
#[binrw] #[binrw]
#[derive(Debug, Clone, Default)] #[derive(Debug, Clone, Default)]
@ -80,8 +83,8 @@ pub struct PlayerSetup {
pub mount_guide_mask: Vec<u8>, pub mount_guide_mask: Vec<u8>,
pub ornament_mask: [u8; 4], pub ornament_mask: [u8; 4],
pub unknown281: [u8; 23], pub unknown281: [u8; 23],
#[br(count = 32)] #[br(count = CHAR_NAME_MAX_LENGTH)]
#[bw(pad_size_to = 32)] #[bw(pad_size_to = CHAR_NAME_MAX_LENGTH)]
#[br(map = read_string)] #[br(map = read_string)]
#[bw(map = write_string)] #[bw(map = write_string)]
pub name: String, pub name: String,

View file

@ -1,5 +1,6 @@
use binrw::binrw; use binrw::binrw;
use crate::CHAR_NAME_MAX_LENGTH;
use crate::client_select_data::ClientCustomizeData; use crate::client_select_data::ClientCustomizeData;
use crate::common::{read_string, write_string}; use crate::common::{read_string, write_string};
@ -82,8 +83,8 @@ pub struct PlayerSpawn {
pub models: [u32; 10], pub models: [u32; 10],
pub unknown6_58: [u8; 10], pub unknown6_58: [u8; 10],
pub padding3: [u8; 4], pub padding3: [u8; 4],
#[br(count = 32)] #[br(count = CHAR_NAME_MAX_LENGTH)]
#[bw(pad_size_to = 32)] #[bw(pad_size_to = CHAR_NAME_MAX_LENGTH)]
#[br(map = read_string)] #[br(map = read_string)]
#[bw(map = write_string)] #[bw(map = write_string)]
pub name: String, pub name: String,