mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Refactor TextmapCount
This commit is contained in:
parent
6fe6cfad1a
commit
9c07bde69c
1 changed files with 53 additions and 54 deletions
|
|
@ -1245,36 +1245,50 @@ UINT32 sidesPos[UINT16_MAX];
|
||||||
UINT32 vertexesPos[UINT16_MAX];
|
UINT32 vertexesPos[UINT16_MAX];
|
||||||
UINT32 sectorsPos[UINT16_MAX];
|
UINT32 sectorsPos[UINT16_MAX];
|
||||||
|
|
||||||
|
// Determine total amount of map data in TEXTMAP.
|
||||||
static boolean TextmapCount(UINT8 *data, size_t size)
|
static boolean TextmapCount(UINT8 *data, size_t size)
|
||||||
{
|
{
|
||||||
char *nsp1 = M_GetToken((char *)data);
|
char *tkn = M_GetToken((char *)data);
|
||||||
boolean ret = true;
|
|
||||||
|
nummapthings = 0;
|
||||||
|
numlines = 0;
|
||||||
|
numsides = 0;
|
||||||
|
numvertexes = 0;
|
||||||
|
numsectors = 0;
|
||||||
|
|
||||||
// Determine total amount of map data in TEXTMAP.
|
|
||||||
// Look for namespace at the beginning.
|
// Look for namespace at the beginning.
|
||||||
if (fastcmp(nsp1, "namespace"))
|
if (!fastcmp(tkn, "namespace"))
|
||||||
{
|
{
|
||||||
char *nsp2 = M_GetToken(NULL);
|
Z_Free(tkn);
|
||||||
char *tkn = M_GetToken(NULL);
|
CONS_Alert(CONS_WARNING, "No namespace at beginning of lump!\n");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
Z_Free(tkn);
|
||||||
|
|
||||||
// Check if namespace is valid.
|
// Check if namespace is valid.
|
||||||
if (!fastcmp(nsp2, "srb2"))
|
tkn = M_GetToken(NULL);
|
||||||
CONS_Alert(CONS_WARNING, "Invalid namespace '%s', only 'srb2' is supported.\n", nsp2);
|
if (!fastcmp(tkn, "srb2"))
|
||||||
Z_Free(nsp2);
|
CONS_Alert(CONS_WARNING, "Invalid namespace '%s', only 'srb2' is supported.\n", tkn);
|
||||||
|
Z_Free(tkn);
|
||||||
|
|
||||||
while (tkn != NULL && M_GetTokenPos() < size)
|
tkn = M_GetToken(NULL);
|
||||||
|
while (tkn && M_GetTokenPos() < size)
|
||||||
{
|
{
|
||||||
// Avoid anything inside bracketed stuff, only look for external keywords.
|
// Avoid anything inside bracketed stuff, only look for external keywords.
|
||||||
// Assuming there's only one level of bracket nesting.
|
// Assuming there's only one level of bracket nesting.
|
||||||
if (fastcmp(tkn, "{"))
|
if (fastcmp(tkn, "{"))
|
||||||
{
|
{
|
||||||
Z_Free(tkn);
|
do
|
||||||
tkn = M_GetToken(NULL);
|
|
||||||
while (!fastcmp(tkn, "}"))
|
|
||||||
{
|
{
|
||||||
Z_Free(tkn);
|
Z_Free(tkn);
|
||||||
tkn = M_GetToken(NULL);
|
tkn = M_GetToken(NULL);
|
||||||
|
if (!tkn || M_GetTokenPos() >= size)
|
||||||
|
{
|
||||||
|
Z_Free(tkn);
|
||||||
|
CONS_Alert(CONS_WARNING, "Opening bracket not closed!\n");
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
} while (!fastcmp(tkn, "}"));
|
||||||
}
|
}
|
||||||
// Check for valid fields.
|
// Check for valid fields.
|
||||||
else if (fastcmp(tkn, "thing"))
|
else if (fastcmp(tkn, "thing"))
|
||||||
|
|
@ -1293,15 +1307,9 @@ static boolean TextmapCount (UINT8 *data, size_t size)
|
||||||
Z_Free(tkn);
|
Z_Free(tkn);
|
||||||
tkn = M_GetToken(NULL);
|
tkn = M_GetToken(NULL);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
CONS_Alert(CONS_WARNING, "No namespace at beginning of lump!\n");
|
|
||||||
ret = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
Z_Free(nsp1);
|
Z_Free(tkn);
|
||||||
return ret;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static char* dat;
|
static char* dat;
|
||||||
|
|
@ -1597,17 +1605,8 @@ static void P_LoadMapData(const virtres_t *virt)
|
||||||
virtlump_t *textmap = vres_Find(virt, "TEXTMAP");
|
virtlump_t *textmap = vres_Find(virt, "TEXTMAP");
|
||||||
|
|
||||||
// Count map data.
|
// Count map data.
|
||||||
if (textmap)
|
if (textmap) // Count how many entries for each type we got in textmap.
|
||||||
{
|
|
||||||
nummapthings = 0;
|
|
||||||
numlines = 0;
|
|
||||||
numsides = 0;
|
|
||||||
numvertexes = 0;
|
|
||||||
numsectors = 0;
|
|
||||||
|
|
||||||
// Count how many entries for each type we got in textmap.
|
|
||||||
TextmapCount(textmap->data, textmap->size);
|
TextmapCount(textmap->data, textmap->size);
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
virtthings = vres_Find(virt, "THINGS");
|
virtthings = vres_Find(virt, "THINGS");
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue