Use an enum class to prevent implicit conversion between trigger behavior flags and other integers. Fix up various resulting breaks, which look like bugs: - Descent 2 editor mode could modify trigger::flags, but used TRIGGER_FLAG_* values, which specify the actions for a Descent 1 trigger when it executes, not the behavior properties for a trigger. - Adding a trigger set its flags to 0, then cleared all flags except TRIGGER_ON. Since the flags were just set to 0, the mask operation is useless. Remove it. - trigger_turn_all_ON cleared all flags except TRIGGER_ON. This seems to be completely wrong. Change it to remove trigger_behavior_flags::disabled. Descent 1 has no (working) support for disabling triggers, so make trigger_turn_all_ON exclusive to Descent 2. - wall_restore_all would enable TRIGGER_ON in both games. Descent 1 never reads TRIGGER_ON. Descent 2 uses this field for trigger behavior flags, and TRIGGER_ON is not a behavior flag. - For Descent 1 builds, remove the modification of the field. - For Descent 2 builds, change it to clear trigger_behavior_flags::disabled. |
||
---|---|---|
.. | ||
2d | ||
3d | ||
arch | ||
editor | ||
main | ||
misc |