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

Use LobbyCharacterActionKind in CharacterCreated Lobby IPC

Instead of the magic unknown number, replace at least one byte of it with
something that's known!
This commit is contained in:
Joshua Goins 2025-03-22 17:38:34 -04:00
parent 107a00aa92
commit 55d0b81ae4
2 changed files with 16 additions and 5 deletions

View file

@ -381,7 +381,9 @@ impl LobbyConnection {
timestamp: 0, timestamp: 0,
data: ServerLobbyIpcData::CharacterCreated { data: ServerLobbyIpcData::CharacterCreated {
sequence: character_action.sequence + 1, sequence: character_action.sequence + 1,
unk: 0x00010101, unk1: 0x1,
unk2: 0x1,
action: LobbyCharacterActionKind::ReserveName,
details: CharacterDetails { details: CharacterDetails {
character_name: character_action.name.clone(), character_name: character_action.name.clone(),
origin_server_name: self.world_name.clone(), origin_server_name: self.world_name.clone(),
@ -468,7 +470,9 @@ impl LobbyConnection {
timestamp: 0, timestamp: 0,
data: ServerLobbyIpcData::CharacterCreated { data: ServerLobbyIpcData::CharacterCreated {
sequence: character_action.sequence + 1, sequence: character_action.sequence + 1,
unk: 0x00020101, unk1: 0x1,
unk2: 0x1,
action: LobbyCharacterActionKind::Create,
details: CharacterDetails { details: CharacterDetails {
actor_id: our_actor_id, actor_id: our_actor_id,
content_id: our_content_id, content_id: our_content_id,
@ -518,7 +522,9 @@ impl LobbyConnection {
timestamp: 0, timestamp: 0,
data: ServerLobbyIpcData::CharacterCreated { data: ServerLobbyIpcData::CharacterCreated {
sequence: character_action.sequence + 1, sequence: character_action.sequence + 1,
unk: 0x00040101, // TODO: probably LobbyCharacterAction actually, see create character packet too unk1: 0x1,
unk2: 0x1,
action: LobbyCharacterActionKind::Delete,
details: CharacterDetails { details: CharacterDetails {
actor_id: 0, // TODO: fill maybe? actor_id: 0, // TODO: fill maybe?
content_id: character_action.content_id, content_id: character_action.content_id,

View file

@ -192,7 +192,10 @@ pub enum ServerLobbyIpcData {
}, },
CharacterCreated { CharacterCreated {
sequence: u64, sequence: u64,
unk: u32, unk1: u8,
unk2: u8,
#[brw(pad_after = 1)] // empty
action: LobbyCharacterActionKind,
#[brw(pad_before = 36)] // empty #[brw(pad_before = 36)] // empty
#[brw(pad_after = 1336)] // empty and garbage #[brw(pad_after = 1336)] // empty and garbage
details: CharacterDetails, details: CharacterDetails,
@ -252,7 +255,9 @@ mod tests {
ServerLobbyIpcType::CharacterCreated, ServerLobbyIpcType::CharacterCreated,
ServerLobbyIpcData::CharacterCreated { ServerLobbyIpcData::CharacterCreated {
sequence: 0, sequence: 0,
unk: 0, unk1: 0,
unk2: 0,
action: LobbyCharacterActionKind::ReserveName,
details: CharacterDetails::default(), details: CharacterDetails::default(),
}, },
), ),