1
Fork 0
mirror of https://github.com/redstrate/Kawari.git synced 2025-04-24 16:17:44 +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 crate::{
CHAR_NAME_MAX_LENGTH,
common::{read_string, write_string},
world::{
ActorControlSelf, InitZone, PlayerSetup, PlayerSpawn, PlayerStats, Position,
@ -120,8 +121,8 @@ pub struct CharacterDetails {
pub origin_server_id: u16,
pub current_server_id: u16,
pub unk1: [u8; 16],
#[bw(pad_size_to = 32)]
#[br(count = 32)]
#[bw(pad_size_to = CHAR_NAME_MAX_LENGTH)]
#[br(count = CHAR_NAME_MAX_LENGTH)]
#[br(map = read_string)]
#[bw(map = write_string)]
pub character_name: String,
@ -196,8 +197,8 @@ pub enum IPCStructData {
character_index: u8,
action: LobbyCharacterAction,
world_id: u16,
#[bw(pad_size_to = 32)]
#[br(count = 32)]
#[bw(pad_size_to = CHAR_NAME_MAX_LENGTH)]
#[br(count = CHAR_NAME_MAX_LENGTH)]
#[br(map = read_string)]
#[bw(map = write_string)]
name: String,

View file

@ -23,6 +23,9 @@ pub const ZONE_ID: u16 = 1255;
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 {
let random_id: String = rand::thread_rng()
.sample_iter(&Alphanumeric)

View file

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

View file

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