From 9c7ab93e21389c686cc41e88838c8dd1dfade681 Mon Sep 17 00:00:00 2001 From: terminx Date: Wed, 10 Apr 2013 23:47:14 +0000 Subject: [PATCH] Fix something I fucked up with GRP scanning when I added support for the Megaton addon GRPs. git-svn-id: https://svn.eduke32.com/eduke32@3661 1a8010ca-5511-0410-912e-c29ae57300e0 --- polymer/eduke32/source/grpscan.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/polymer/eduke32/source/grpscan.c b/polymer/eduke32/source/grpscan.c index 6eacb2263..ac0dffd65 100644 --- a/polymer/eduke32/source/grpscan.c +++ b/polymer/eduke32/source/grpscan.c @@ -106,7 +106,7 @@ static void FreeGroupsCache(void) void RemoveGroup(int32_t crcval) { - struct grpfile *grp, *fg; + struct grpfile *grp; for (grp = foundgrps; grp; grp=grp->next) { @@ -114,15 +114,27 @@ void RemoveGroup(int32_t crcval) { if (grp == foundgrps) foundgrps = grp->next; - else fg->next = grp->next; + else + { + struct grpfile *fg; + + for (fg = foundgrps; fg; fg=fg->next) + { + if (fg->next == grp) + { + fg->next = grp->next; + break; + } + } + } Bfree((char *)grp->name); Bfree(grp); + RemoveGroup(crcval); + break; } - - fg = grp; } } @@ -242,7 +254,7 @@ int32_t ScanGroups(void) int32_t i; for (i = 0; icrcval == grpfiles[i].crcval) break; - if (i == NUMGRPFILES) continue; // unrecognised grp file + if (i == NUMGRPFILES) { grp=grp->next; continue; } // unrecognised grp file if (grpfiles[i].dependency) {