update some boss command notes

This commit is contained in:
Martin Michelsen
2025-11-30 08:50:11 -08:00
parent 2c333b51d2
commit ad91b6f6b7
2 changed files with 12 additions and 11 deletions
+10 -9
View File
@@ -4175,9 +4175,9 @@ struct G_DragonBossActions_6x10_6x11 {
template <bool BE>
struct G_DragonBossActionsT_6x12 {
G_EntityIDHeader header;
le_uint16_t unknown_a2 = 0;
le_uint16_t phase = 0;
le_uint16_t unknown_a3 = 0;
le_uint32_t unknown_a4 = 0;
le_uint32_t target_client_id = 0xFFFF; // 0xFFFF (not 0xFFFFFFFF) means no target
F32T<BE> x = 0.0f;
F32T<BE> z = 0.0f;
} __attribute__((packed));
@@ -4190,30 +4190,31 @@ check_struct_size(G_DragonBossActions_GC_6x12, 0x14);
struct G_DeRolLeBossActions_6x13 {
G_EntityIDHeader header;
le_uint16_t unknown_a2 = 0;
le_uint16_t phase = 0;
le_uint16_t unknown_a3 = 0;
} __packed_ws__(G_DeRolLeBossActions_6x13, 8);
// 6x14: De Rol Le boss actions (not valid on Episode 3)
struct G_DeRolLeBossActions_6x14 {
struct G_DeRolLeBossActionsWithTarget_6x14 {
G_EntityIDHeader header;
le_uint16_t unknown_a2 = 0;
le_uint16_t phase = 0;
le_uint16_t unknown_a3 = 0;
le_uint32_t unknown_a4 = 0;
} __packed_ws__(G_DeRolLeBossActions_6x14, 0x0C);
le_uint32_t target_client_id = 0xFFFF; // See 6x12
} __packed_ws__(G_DeRolLeBossActionsWithTarget_6x14, 0x0C);
// 6x15: Vol Opt boss actions (not valid on Episode 3)
struct G_VolOptBossActions_6x15 {
G_EntityIDHeader header;
le_uint16_t unknown_a2 = 0;
le_uint16_t action = 0;
le_uint16_t unknown_a3 = 0;
le_uint16_t unknown_a4 = 0;
le_uint16_t unknown_a5 = 0;
} __packed_ws__(G_VolOptBossActions_6x15, 0x0C);
// 6x16: Vol Opt boss actions (not valid on Episode 3)
// 6x16: Set Vol Opt entity index table (not valid on Episode 3)
// This command is used for shuffling the pillars during the first phase.
struct G_VolOptBossActions_6x16 {
G_EntityIDHeader header;
+2 -2
View File
@@ -3674,7 +3674,7 @@ static asio::awaitable<void> on_dragon_actions_6x12(shared_ptr<Client> c, Subcom
}
G_DragonBossActions_GC_6x12 sw_cmd = {{cmd.header.subcommand, cmd.header.size, cmd.header.entity_id.load()},
cmd.unknown_a2.load(), cmd.unknown_a3.load(), cmd.unknown_a4.load(), cmd.x.load(), cmd.z.load()};
cmd.phase.load(), cmd.unknown_a3.load(), cmd.target_client_id.load(), cmd.x.load(), cmd.z.load()};
bool sender_is_be = is_big_endian(c->version());
for (auto lc : l->clients) {
if (lc && (lc != c)) {
@@ -5471,7 +5471,7 @@ const vector<SubcommandDefinition> subcommand_definitions{
/* 6x11 */ {0x0F, 0x0F, 0x11, forward_subcommand_with_entity_id_transcode_t<G_DragonBossActions_6x10_6x11>},
/* 6x12 */ {0x10, 0x10, 0x12, on_dragon_actions_6x12},
/* 6x13 */ {0x11, 0x11, 0x13, forward_subcommand_with_entity_id_transcode_t<G_DeRolLeBossActions_6x13>},
/* 6x14 */ {0x12, 0x12, 0x14, forward_subcommand_with_entity_id_transcode_t<G_DeRolLeBossActions_6x14>},
/* 6x14 */ {0x12, 0x12, 0x14, forward_subcommand_with_entity_id_transcode_t<G_DeRolLeBossActionsWithTarget_6x14>},
/* 6x15 */ {0x13, 0x13, 0x15, forward_subcommand_with_entity_id_transcode_t<G_VolOptBossActions_6x15>},
/* 6x16 */ {0x14, 0x14, 0x16, on_vol_opt_actions_t<G_VolOptBossActions_6x16>},
/* 6x17 */ {0x15, 0x15, 0x17, on_set_entity_pos_and_angle_6x17},