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

Add more fields & actions for LobbyCharacterAction

Thanks to TemporalStasis, again.
This commit is contained in:
Joshua Goins 2025-03-11 21:31:52 -04:00
parent 5bcdadf058
commit 2b5e0a7a48
2 changed files with 20 additions and 20 deletions

View file

@ -62,22 +62,9 @@ async fn main() {
send_lobby_info(&mut write, &mut state, *sequence).await; send_lobby_info(&mut write, &mut state, *sequence).await;
} }
IPCStructData::LobbyCharacterAction { IPCStructData::LobbyCharacterAction { .. } => tracing::info!(
sequence, "Client is doing a character-related action in the lobby, but we don't support any yet! Ignoring..."
action, ),
name,
} => match &action {
kawari::ipc::LobbyCharacterAction::Delete => {
tracing::info!(
"Client is requesting character named {name} to be deleted. Ignoring since it's not implemented yet."
);
}
kawari::ipc::LobbyCharacterAction::Request => {
tracing::info!(
"Client is requesting character data! Ignoring since it's not implemented yet."
);
}
},
IPCStructData::RequestEnterWorld { IPCStructData::RequestEnterWorld {
sequence, sequence,
lookup_id, lookup_id,

View file

@ -112,7 +112,17 @@ pub struct CharacterDetails {
#[brw(repr = u8)] #[brw(repr = u8)]
#[derive(Clone, PartialEq, Debug)] #[derive(Clone, PartialEq, Debug)]
pub enum LobbyCharacterAction { pub enum LobbyCharacterAction {
ReserveName = 0x1,
Create = 0x2,
Rename = 0x3,
Delete = 0x4, Delete = 0x4,
Move = 0x5,
RemakeRetainer = 0x6,
RemakeChara = 0x7,
SettingsUploadBegin = 0x8,
SettingsUpload = 0xC,
WorldVisit = 0xE,
DataCenterToken = 0xF,
Request = 0x15, Request = 0x15,
} }
@ -159,17 +169,20 @@ pub enum IPCStructData {
}, },
#[br(pre_assert(*magic == IPCOpCode::LobbyCharacterAction))] #[br(pre_assert(*magic == IPCOpCode::LobbyCharacterAction))]
LobbyCharacterAction { LobbyCharacterAction {
#[brw(pad_before = 16)] request_number: u32,
sequence: u64, unk1: u32,
#[brw(pad_before = 1)] character_id: u64,
#[br(pad_before = 8)]
character_index: u8,
action: LobbyCharacterAction, action: LobbyCharacterAction,
#[brw(pad_before = 2)] world_id: u16,
#[bw(pad_size_to = 32)] #[bw(pad_size_to = 32)]
#[br(count = 32)] #[br(count = 32)]
#[br(map = read_string)] #[br(map = read_string)]
#[bw(map = write_string)] #[bw(map = write_string)]
name: String, name: String,
// TODO: what else is in here? // TODO: what else is in here?
// according to TemporalStatis, chara make data? (probably op specific)
}, },
#[br(pre_assert(*magic == IPCOpCode::RequestEnterWorld))] #[br(pre_assert(*magic == IPCOpCode::RequestEnterWorld))]
RequestEnterWorld { RequestEnterWorld {