1
Fork 0
mirror of https://github.com/redstrate/Kawari.git synced 2025-07-09 15:37:45 +00:00

Implement necessary packets for the Unending Journey event

This doesn't make cutscenes play *yet*, but stops the client from
getting stuck waiting for a cutscene to begin. Now the event script
continues, and ends the event.
This commit is contained in:
Joshua Goins 2025-07-04 16:18:39 -04:00
parent de2d32266d
commit cd55653077
3 changed files with 38 additions and 0 deletions

View file

@ -234,6 +234,11 @@
"name": "QuestCompleteList",
"opcode": 637,
"size": 760
},
{
"name": "UnkResponse2",
"opcode": 772,
"size": 8
}
],
"ClientZoneIpcType": [
@ -376,6 +381,11 @@
"name": "GilShopTransaction",
"opcode": 327,
"size": 24
},
{
"name": "UnkCall2",
"opcode": 632,
"size": 8
}
],
"ServerLobbyIpcType": [

View file

@ -935,6 +935,25 @@ async fn client_loop(
})
.await;
}
ClientZoneIpcData::UnkCall2 { .. } => {
let ipc = ServerZoneIpcSegment {
op_code: ServerZoneIpcType::UnkResponse2,
timestamp: timestamp_secs(),
data: ServerZoneIpcData::UnkResponse2 {
unk1: 1,
},
..Default::default()
};
connection
.send_segment(PacketSegment {
source_actor: connection.player_data.actor_id,
target_actor: connection.player_data.actor_id,
segment_type: SegmentType::Ipc,
data: SegmentData::Ipc { data: ipc },
})
.await;
}
ClientZoneIpcData::Unknown { .. } => {
tracing::warn!("Unknown packet {:?} recieved, this should be handled!", data.op_code);
}

View file

@ -341,6 +341,12 @@ pub enum ServerZoneIpcData {
#[bw(pad_size_to = 760)]
unk1: Vec<u8>,
},
/// Unsure the true purpose of this, but it's needed for the Unending Journey to function.
#[br(pre_assert(*magic == ServerZoneIpcType::UnkResponse2))]
UnkResponse2 {
#[brw(pad_after = 7)]
unk1: u8,
},
Unknown {
#[br(count = size - 32)]
unk: Vec<u8>,
@ -504,6 +510,9 @@ pub enum ClientZoneIpcData {
#[brw(pad_after = 8)]
unk3: u8,
},
/// Unsure the true purpose of this, but it's needed for the Unending Journey to function.
#[br(pre_assert(*magic == ClientZoneIpcType::UnkCall2))]
UnkCall2 { unk1: [u8; 8] },
Unknown {
#[br(count = size - 32)]
unk: Vec<u8>,