1
Fork 0
mirror of https://github.com/redstrate/Kawari.git synced 2025-04-25 08:27:44 +00:00
kawari/src/lobby/ipc/character_action.rs

55 lines
1.2 KiB
Rust

use binrw::binrw;
use crate::common::CHAR_NAME_MAX_LENGTH;
use super::{read_string, write_string};
#[binrw]
#[derive(Clone, PartialEq, Debug)]
pub enum LobbyCharacterActionKind {
#[brw(magic = 0x1u8)]
ReserveName,
#[brw(magic = 0x2u8)]
Create,
#[brw(magic = 0x3u8)]
Rename,
#[brw(magic = 0x4u8)]
Delete,
#[brw(magic = 0x5u8)]
Move,
#[brw(magic = 0x6u8)]
RemakeRetainer,
#[brw(magic = 0x7u8)]
RemakeChara,
#[brw(magic = 0x8u8)]
SettingsUploadBegin,
#[brw(magic = 0xCu8)]
SettingsUpload,
#[brw(magic = 0xEu8)]
WorldVisit,
#[brw(magic = 0xFu8)]
DataCenterToken,
#[brw(magic = 0x15u8)]
Request,
}
#[binrw]
#[derive(Clone, PartialEq, Debug)]
pub struct LobbyCharacterAction {
pub sequence: u64,
pub content_id: u64,
#[br(pad_before = 8)]
pub character_index: u8,
pub action: LobbyCharacterActionKind,
pub world_id: u16,
#[bw(pad_size_to = CHAR_NAME_MAX_LENGTH)]
#[br(count = CHAR_NAME_MAX_LENGTH)]
#[br(map = read_string)]
#[bw(map = write_string)]
pub name: String,
#[bw(pad_size_to = 436)]
#[br(count = 436)]
#[br(map = read_string)]
#[bw(map = write_string)]
pub json: String,
}