From d893b356f175996e9215b97b1e3a50b919f04032 Mon Sep 17 00:00:00 2001 From: elasota Date: Sat, 18 Apr 2020 00:42:45 -0400 Subject: [PATCH] Fix dynamic indexes desynchronizing on resolution change (fixes Slumberland boombox switch not working if you change resolution on the screen with the switch) --- GpApp/ObjectDrawAll.cpp | 13 +++++-------- GpApp/RoomGraphics.cpp | 4 ++++ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/GpApp/ObjectDrawAll.cpp b/GpApp/ObjectDrawAll.cpp index 3442ef4..0a8d9ae 100644 --- a/GpApp/ObjectDrawAll.cpp +++ b/GpApp/ObjectDrawAll.cpp @@ -953,15 +953,12 @@ void DrawARoomsObjects (short neighbor, Boolean redraw) } } - - if (!redraw) // set up links + + for (n = 0; n < numMasterObjects; n++) { - for (n = 0; n < numMasterObjects; n++) - { - if ((masterObjects[n].objectNum == i) && - (masterObjects[n].roomNum == localNumbers[neighbor])) - masterObjects[n].dynaNum = dynamicNum; - } + if ((masterObjects[n].objectNum == i) && + (masterObjects[n].roomNum == localNumbers[neighbor])) + masterObjects[n].dynaNum = dynamicNum; } } } diff --git a/GpApp/RoomGraphics.cpp b/GpApp/RoomGraphics.cpp index 437d6b3..cb0ae4e 100644 --- a/GpApp/RoomGraphics.cpp +++ b/GpApp/RoomGraphics.cpp @@ -50,6 +50,10 @@ void ResetLocale (Boolean soft) { RemoveSavedMapsNotInRoom(localNumbers[kCentralRoom]); ZeroDinahsNotInRoom(localNumbers[kCentralRoom]); + + // Clear all dinah indexes, they'll be remapped + for (int i = 0; i < numMasterObjects; i++) + masterObjects[i].dynaNum = -1; } else {