From ca9e4c8f6e2455325db0d960fd16fbfa9c275b90 Mon Sep 17 00:00:00 2001 From: Misa Date: Thu, 9 Jul 2020 23:03:16 -0700 Subject: [PATCH] Only set game.customscript if index is inbounds game.customscript is an unnecessary middleman, but it will be kept around for compatibility reasons. However, it's still possible to crash the game, so I'm adding this bounds check. --- desktop_version/src/Map.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/desktop_version/src/Map.cpp b/desktop_version/src/Map.cpp index 0cb8d431..5a96f941 100644 --- a/desktop_version/src/Map.cpp +++ b/desktop_version/src/Map.cpp @@ -1773,7 +1773,10 @@ void mapclass::loadlevel(int rx, int ry) break; } case 19: //Script Box - game.customscript[tempscriptbox]=edentity[edi].scriptname; + if (INBOUNDS_ARR(tempscriptbox, game.customscript)) + { + game.customscript[tempscriptbox]=edentity[edi].scriptname; + } obj.createblock(1, (edentity[edi].x*8)- ((rx-100)*40*8), (edentity[edi].y*8)- ((ry-100)*30*8), edentity[edi].p1*8, edentity[edi].p2*8, 300+tempscriptbox, "custom_" + edentity[edi].scriptname); tempscriptbox++;