skip room unlock events in switch assist

This commit is contained in:
Martin Michelsen
2022-04-03 23:32:31 -07:00
parent 06fd71f7a6
commit 88f0c90aba
3 changed files with 4 additions and 3 deletions
+2 -1
View File
@@ -1245,7 +1245,8 @@ struct G_ItemSubcommand {
struct G_SwitchStateChanged_6x05 {
uint8_t subcommand;
uint8_t size;
parray<uint8_t, 8> unknown; // includes switch ID
le_uint16_t switch_id; // 0xFFFF for room clear when all enemies defeated
parray<uint8_t, 6> unknown;
uint8_t area;
uint8_t enabled;
};
+1 -1
View File
@@ -648,7 +648,7 @@ bool process_client_60_62_6C_6D_C9_CB<void>(shared_ptr<ServerState>,
if (!data.empty() && (data[0] == 0x05) && session.enable_switch_assist) {
auto& cmd = check_size_t<G_SwitchStateChanged_6x05>(data);
if (cmd.enabled) {
if (cmd.enabled && cmd.switch_id != 0xFFFF) {
if (session.last_switch_enabled_command.subcommand == 0x05) {
session.log(INFO, "Switch assist: replaying previous enable command");
session.send_to_end(true, 0x60, 0x00, &session.last_switch_enabled_command,
+1 -1
View File
@@ -214,7 +214,7 @@ static void process_subcommand_switch_state_changed(shared_ptr<ServerState>,
return;
}
forward_subcommand(l, c, command, flag, data);
if (cmd.enabled) {
if (cmd.enabled && cmd.switch_id != 0xFFFF) {
if ((l->flags & Lobby::Flag::CHEATS_ENABLED) && c->switch_assist &&
(c->last_switch_enabled_command.subcommand == 0x05)) {
log(INFO, "[Switch assist] Replaying previous enable command");