Fix door lock/unlock triggers causing a crash when given an invalid wall location

This commit is contained in:
AlumiuN 2021-06-14 15:16:56 +12:00
parent a17129a9aa
commit b918d33e1c

View file

@ -132,6 +132,8 @@ static void do_unlock_doors(fvcsegptr &vcsegptr, fvmwallptr &vmwallptr, const tr
{
const auto op = [&vmwallptr](const shared_segment &segp, const unsigned sidenum) {
const auto wall_num = segp.sides[sidenum].wall_num;
if (wall_num == wall_none)
return;
auto &w = *vmwallptr(wall_num);
w.flags &= ~WALL_DOOR_LOCKED;
w.keys = wall_key::none;
@ -144,6 +146,8 @@ static void do_lock_doors(fvcsegptr &vcsegptr, fvmwallptr &vmwallptr, const trig
{
const auto op = [&vmwallptr](const shared_segment &segp, const unsigned sidenum) {
const auto wall_num = segp.sides[sidenum].wall_num;
if (wall_num == wall_none)
return;
auto &w = *vmwallptr(wall_num);
w.flags |= WALL_DOOR_LOCKED;
};