From 05820dc5367794f3b06f5cf71efab0ca31f982ec Mon Sep 17 00:00:00 2001 From: Nunuhara Cabbage Date: Sun, 16 Aug 2026 10:56:34 -0700 Subject: [PATCH] parts: RemoveController returns delegate indices The returned integer array contains p->delegate_index, not p->no. I don't think this caused any bugs, because the game code rejects returned indices that are > the delegate array length, and the delegate index appears to always be -1 when this function is called. --- src/parts/parts.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/parts/parts.c b/src/parts/parts.c index cb13567..e63cd55 100644 --- a/src/parts/parts.c +++ b/src/parts/parts.c @@ -2157,7 +2157,7 @@ void PE_RemoveController(struct page **erase_number_list, int index) struct parts *next = TAILQ_NEXT(p, parts_list_entry); if (p->controller_no == ctrl_no) { *erase_number_list = array_pushback(*erase_number_list, - (union vm_value){.i = p->no}, AIN_ARRAY_INT, -1); + (union vm_value){.i = p->delegate_index}, AIN_ARRAY_INT, -1); parts_release(p->no); } p = next;