From 65ab6cb4d8887261d7f35908bc4cad85fdf4d970 Mon Sep 17 00:00:00 2001 From: inspectredc Date: Sat, 3 Feb 2024 22:08:13 +0000 Subject: [PATCH 1/2] dont let k overflow --- soh/soh/z_scene_otr.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/soh/soh/z_scene_otr.cpp b/soh/soh/z_scene_otr.cpp index 54065e27e64..7ebbd136480 100644 --- a/soh/soh/z_scene_otr.cpp +++ b/soh/soh/z_scene_otr.cpp @@ -177,7 +177,7 @@ bool Scene_CommandObjectList(PlayState* play, LUS::ISceneCommand* cmd) { // Loop until a mismatch in the object lists // Then clear all object ids past that in the context object list and kill actors for those objects - for (i = play->objectCtx.unk_09, k = 0; i < play->objectCtx.num; i++, k++) { + for (i = play->objectCtx.unk_09, k = 0; i < play->objectCtx.num, k < cmdObj->objects.size(); i++, k++) { if (play->objectCtx.status[i].id != cmdObj->objects[k]) { for (j = i; j < play->objectCtx.num; j++) { play->objectCtx.status[j].id = OBJECT_INVALID; From bd483b82063b34586feaf109809e8a7826262024 Mon Sep 17 00:00:00 2001 From: inspectredc <78732756+inspectredc@users.noreply.github.com> Date: Mon, 5 Feb 2024 23:25:19 +0000 Subject: [PATCH 2/2] Update soh/soh/z_scene_otr.cpp Co-authored-by: Archez --- soh/soh/z_scene_otr.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/soh/soh/z_scene_otr.cpp b/soh/soh/z_scene_otr.cpp index 7ebbd136480..33104326e3a 100644 --- a/soh/soh/z_scene_otr.cpp +++ b/soh/soh/z_scene_otr.cpp @@ -177,8 +177,8 @@ bool Scene_CommandObjectList(PlayState* play, LUS::ISceneCommand* cmd) { // Loop until a mismatch in the object lists // Then clear all object ids past that in the context object list and kill actors for those objects - for (i = play->objectCtx.unk_09, k = 0; i < play->objectCtx.num, k < cmdObj->objects.size(); i++, k++) { - if (play->objectCtx.status[i].id != cmdObj->objects[k]) { + for (i = play->objectCtx.unk_09, k = 0; i < play->objectCtx.num; i++, k++) { + if (i >= cmdObj->objects.size() || play->objectCtx.status[i].id != cmdObj->objects[k]) { for (j = i; j < play->objectCtx.num; j++) { play->objectCtx.status[j].id = OBJECT_INVALID; }