From 90909fb803e0c40a67b08cd41f6d0d447ee62f74 Mon Sep 17 00:00:00 2001 From: Steph Enders Date: Sat, 17 Dec 2022 11:54:18 -0500 Subject: Fix door logic, off by 1 error We were popping the door from the vector and then referencing it by it's index which meant we'd always reference the WRONG door --- maps/lvl5/dng.map | 16 ++++++++++++++++ src/CApi.h | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 maps/lvl5/dng.map diff --git a/maps/lvl5/dng.map b/maps/lvl5/dng.map new file mode 100644 index 0000000..0ad94ca --- /dev/null +++ b/maps/lvl5/dng.map @@ -0,0 +1,16 @@ +w w w w w w w w w +w 0 0 0 0 a 0 2 w +w p 0 0 0 w w w w +w 0 0 0 0 b 0 3 w +w 0 0 0 0 w w w w +w 0 0 0 0 c 0 4 w +w 0 0 0 0 w w w w +w 0 0 0 0 d 1 t w +w 0 0 0 0 w w w w +w 0 0 0 0 d 0 4 w +w 0 0 0 0 w w w w +w 0 0 0 0 a 0 t w +w 0 0 0 0 w w w w +w 0 0 0 0 w w w w +w 0 0 0 0 0 0 1 w +w w w w w w w w w diff --git a/src/CApi.h b/src/CApi.h index c6ffea3..9dbf4d9 100644 --- a/src/CApi.h +++ b/src/CApi.h @@ -236,9 +236,9 @@ static int c_open_door(lua_State *L) { can_open = true; // erase key lvl->heldKeys.erase(lvl->heldKeys.begin() + k); - lvl->doorPositions.erase(lvl->doorPositions.begin() + i); lvl->map[lvl->doorPositions[i].y][lvl->doorPositions[i].x] = BLANK_SPACE; + lvl->doorPositions.erase(lvl->doorPositions.begin() + i); break; } } -- cgit v1.2.3-54-g00ecf