Don't add a TOL_ twice.

This commit is contained in:
Jaime Passos 2020-02-09 16:11:52 -03:00
parent 1d2f6c9581
commit d0d7fd1589
1 changed files with 31 additions and 14 deletions

View File

@ -585,17 +585,26 @@ static void readfreeslots(MYFILE *f)
continue; continue;
// Copy in the spr2 name and increment free_spr2. // Copy in the spr2 name and increment free_spr2.
if (free_spr2 < NUMPLAYERSPRITES) { if (free_spr2 < NUMPLAYERSPRITES) {
CONS_Printf("Sprite SPR2_%s allocated.\n",word);
strncpy(spr2names[free_spr2],word,4); strncpy(spr2names[free_spr2],word,4);
spr2defaults[free_spr2] = 0; spr2defaults[free_spr2] = 0;
spr2names[free_spr2++][4] = 0; spr2names[free_spr2++][4] = 0;
} else } else
CONS_Alert(CONS_WARNING, "Ran out of free SPR2 slots!\n"); deh_warning("Ran out of free SPR2 slots!\n");
} }
else if (fastcmp(type, "TOL")) else if (fastcmp(type, "TOL"))
{ {
if (lastcustomtol > 31) // Search if we already have a typeoflevel by that name...
CONS_Alert(CONS_WARNING, "Ran out of free typeoflevel slots!\n"); for (i = 0; i < numtolinfo; i++)
if (fastcmp(word, TYPEOFLEVEL[i].name))
break;
// We found it? Then don't allocate another one.
if (i < numtolinfo)
continue;
// We don't, so freeslot it.
if (lastcustomtol > 31) // Unless you have way too many, since they're flags.
deh_warning("Ran out of free typeoflevel slots!\n");
else else
{ {
G_AddTOL((1<<lastcustomtol), word); G_AddTOL((1<<lastcustomtol), word);
@ -10465,16 +10474,24 @@ static inline int lib_freeslot(lua_State *L)
} }
else if (fastcmp(type, "TOL")) else if (fastcmp(type, "TOL"))
{ {
if (lastcustomtol > 31) // Search if we already have a typeoflevel by that name...
CONS_Alert(CONS_WARNING, "Ran out of free typeoflevel slots!\n"); int i;
else for (i = 0; i < numtolinfo; i++)
{ if (fastcmp(word, TYPEOFLEVEL[i].name))
UINT32 newtol = (1<<lastcustomtol); break;
CONS_Printf("TypeOfLevel TOL_%s allocated.\n",word);
G_AddTOL(newtol, word); // We don't, so allocate a new one.
lua_pushinteger(L, newtol); if (i >= numtolinfo) {
lastcustomtol++; if (lastcustomtol > 31) // Unless you have way too many, since they're flags.
r++; CONS_Alert(CONS_WARNING, "Ran out of free typeoflevel slots!\n");
else {
UINT32 newtol = (1<<lastcustomtol);
CONS_Printf("TypeOfLevel TOL_%s allocated.\n",word);
G_AddTOL(newtol, word);
lua_pushinteger(L, newtol);
lastcustomtol++;
r++;
}
} }
} }
Z_Free(s); Z_Free(s);