diff --git a/common/main/switch.h b/common/main/switch.h index 7dad46d33..7ebd67251 100644 --- a/common/main/switch.h +++ b/common/main/switch.h @@ -139,7 +139,6 @@ enum TRIGGER_FLAG : uint16_t SHIELD_DAMAGE = 2, // Shield Damage Trigger ENERGY_DRAIN = 4, // Energy Drain Trigger EXIT = 8, // End of level Trigger - ON = 16, // Whether Trigger is active ONE_SHOT = 32, // If Trigger can only be triggered once MATCEN = 64, // Trigger for materialization centers ILLUSION_OFF = 128, // Switch Illusion OFF trigger @@ -157,7 +156,6 @@ enum TRIGGER_FLAG : uint16_t #define TRIGGER_SHIELD_DAMAGE TRIGGER_FLAG::SHIELD_DAMAGE #define TRIGGER_ENERGY_DRAIN TRIGGER_FLAG::ENERGY_DRAIN #define TRIGGER_EXIT TRIGGER_FLAG::EXIT -#define TRIGGER_ON TRIGGER_FLAG::ON #define TRIGGER_ONE_SHOT TRIGGER_FLAG::ONE_SHOT #define TRIGGER_MATCEN TRIGGER_FLAG::MATCEN #define TRIGGER_ILLUSION_OFF TRIGGER_FLAG::ILLUSION_OFF diff --git a/similar/editor/eswitch.cpp b/similar/editor/eswitch.cpp index 1ee98784a..6c531260d 100644 --- a/similar/editor/eswitch.cpp +++ b/similar/editor/eswitch.cpp @@ -349,7 +349,7 @@ static window_event_result trigger_dialog_created(UI_DIALOG *const w, trigger_di t->triggerFlag[4] = ui_add_gadget_checkbox(w, 22, i, 16, 16, 0, "One-shot"); i+=22; t->triggerFlag[5] = ui_add_gadget_checkbox(w, 22, i, 16, 16, 0, "Illusion ON"); i+=22; t->triggerFlag[6] = ui_add_gadget_checkbox(w, 22, i, 16, 16, 0, "Illusion OFF"); i+=22; - t->triggerFlag[7] = ui_add_gadget_checkbox(w, 22, i, 16, 16, 0, "Trigger ON"); i+=22; + t->triggerFlag[7] = ui_add_gadget_checkbox(w, 22, i, 16, 16, 0, "Unused"); i+=22; t->triggerFlag[8] = ui_add_gadget_checkbox(w, 22, i, 16, 16, 0, "Matcen Trigger"); i+=22; t->triggerFlag[9] = ui_add_gadget_checkbox(w, 22, i, 16, 16, 0, "Secret Exit"); i+=22; #endif @@ -434,7 +434,7 @@ window_event_result trigger_dialog_handler(UI_DIALOG *dlg,const d_event &event, ui_checkbox_check(t->triggerFlag[4].get(), trig->flags & TRIGGER_ONE_SHOT); ui_checkbox_check(t->triggerFlag[5].get(), trig->flags & TRIGGER_ILLUSION_ON); ui_checkbox_check(t->triggerFlag[6].get(), trig->flags & TRIGGER_ILLUSION_OFF); - ui_checkbox_check(t->triggerFlag[7].get(), trig->flags & TRIGGER_ON); + ui_checkbox_check(t->triggerFlag[7].get(), 0); ui_checkbox_check(t->triggerFlag[8].get(), trig->flags & TRIGGER_MATCEN); ui_checkbox_check(t->triggerFlag[9].get(), trig->flags & TRIGGER_SECRET_EXIT); #endif @@ -464,7 +464,8 @@ window_event_result trigger_dialog_handler(UI_DIALOG *dlg,const d_event &event, else if (GADGET_PRESSED(t->triggerFlag[6].get())) trigger_flag_Markedside(TRIGGER_ILLUSION_OFF, t->triggerFlag[6]->flag); else if (GADGET_PRESSED(t->triggerFlag[7].get())) - trigger_flag_Markedside(TRIGGER_ON, t->triggerFlag[7]->flag); + { + } else if (GADGET_PRESSED(t->triggerFlag[8].get())) trigger_flag_Markedside(TRIGGER_MATCEN, t->triggerFlag[8]->flag); else if (GADGET_PRESSED(t->triggerFlag[9].get())) diff --git a/similar/main/switch.cpp b/similar/main/switch.cpp index 96c76b3af..51c10f504 100644 --- a/similar/main/switch.cpp +++ b/similar/main/switch.cpp @@ -568,8 +568,6 @@ window_event_result check_trigger(const vcsegptridx_t seg, const unsigned side, auto &t = *vmtrgptr(trigger_num); if (t.flags & TRIGGER_ONE_SHOT) { - t.flags &= ~TRIGGER_ON; - const shared_segment &csegp = *vcsegptr(seg->children[side]); auto cside = find_connect_side(seg, csegp); Assert(cside != side_none); @@ -577,10 +575,6 @@ window_event_result check_trigger(const vcsegptridx_t seg, const unsigned side, const auto cwall_num = csegp.sides[cside].wall_num; if (cwall_num == wall_none) return window_event_result::ignored; - - const auto ctrigger_num = vcwallptr(cwall_num)->trigger; - auto &ct = *vmtrgptr(ctrigger_num); - ct.flags &= ~TRIGGER_ON; } #endif if (Game_mode & GM_MULTI) @@ -716,7 +710,7 @@ static trigger_action trigger_type_from_flags(short flags) static void v30_trigger_to_v31_trigger(trigger &t, const v30_trigger &trig) { - t.type = trigger_type_from_flags(trig.flags & ~TRIGGER_ON); + t.type = trigger_type_from_flags(trig.flags); t.flags = (trig.flags & TRIGGER_ONE_SHOT) ? trigger_behavior_flags::one_shot : trigger_behavior_flags{0}; t.num_links = trig.num_links; t.num_links = trig.num_links;