From 6f02c6b0f7fa264ac5d4ccb6a54924bc6bb43b76 Mon Sep 17 00:00:00 2001 From: Asdow <20314541+Asdow@users.noreply.github.com> Date: Thu, 19 Jan 2023 00:44:46 +0200 Subject: [PATCH] Prevent illegal array access if GridNo = NOWHERE --- TileEngine/renderworld.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/TileEngine/renderworld.cpp b/TileEngine/renderworld.cpp index a2fd01fbe..35617d944 100644 --- a/TileEngine/renderworld.cpp +++ b/TileEngine/renderworld.cpp @@ -1042,6 +1042,11 @@ inline UINT16 * GetShadeTable(LEVELNODE * pNode, SOLDIERTYPE * pSoldier, SOLDIER // Shade guy always lighter than scene default! { const auto GridNo = pSoldier->sGridNo; + if (GridNo == NOWHERE) + { + pShadeTable = pPaletteTable->pCurrentShade = pPaletteTable->pShades[DEFAULT_SHADE_LEVEL]; + return pShadeTable; + } UINT8 ubShadeLevel = gpWorldLevelData[GridNo].pLandHead->ubShadeLevel; // If merc is on a roof, shade according to roof brightness if (pSoldier->pathing.bLevel > 0 && gpWorldLevelData[GridNo].pRoofHead != NULL)