Separate Emerald Hunt emerald spawning into another function.
This commit is contained in:
parent
6fe6db8e18
commit
3dfa526eea
|
@ -1017,13 +1017,18 @@ static void P_PrepareRawThings(UINT8 *data, size_t i)
|
||||||
{
|
{
|
||||||
mt->x = READINT16(data);
|
mt->x = READINT16(data);
|
||||||
mt->y = READINT16(data);
|
mt->y = READINT16(data);
|
||||||
mt->z = 0;
|
|
||||||
|
|
||||||
mt->angle = READINT16(data);
|
mt->angle = READINT16(data);
|
||||||
mt->type = READUINT16(data);
|
mt->type = READUINT16(data);
|
||||||
mt->options = READUINT16(data);
|
mt->options = READUINT16(data);
|
||||||
mt->extrainfo = (UINT8)(mt->type >> 12);
|
mt->extrainfo = (UINT8)(mt->type >> 12);
|
||||||
|
|
||||||
mt->type &= 4095;
|
mt->type &= 4095;
|
||||||
|
|
||||||
|
if (mt->type == 1705 || (mt->type == 750 && mt->extrainfo)) // NiGHTS Hoops
|
||||||
|
mt->z = mthing->options;
|
||||||
|
else
|
||||||
|
mt->z = mthing->options >> ZSHIFT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1034,46 +1039,8 @@ static void P_PrepareThings(lumpnum_t lumpnum)
|
||||||
Z_Free(data);
|
Z_Free(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void P_LoadThings(boolean loademblems)
|
static void SpawnEmeraldHunt (void)
|
||||||
{
|
{
|
||||||
size_t i;
|
|
||||||
mapthing_t *mt;
|
|
||||||
|
|
||||||
// Spawn axis points first so they are at the front of the list for fast searching.
|
|
||||||
for (i = 0, mt = mapthings; i < nummapthings; i++, mt++)
|
|
||||||
{
|
|
||||||
switch (mt->type)
|
|
||||||
{
|
|
||||||
case 1700: // MT_AXIS
|
|
||||||
case 1701: // MT_AXISTRANSFER
|
|
||||||
case 1702: // MT_AXISTRANSFERLINE
|
|
||||||
mt->mobj = NULL;
|
|
||||||
P_SpawnMapThing(mt);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
numhuntemeralds = 0;
|
|
||||||
|
|
||||||
for (i = 0, mt = mapthings; i < nummapthings; i++, mt++)
|
|
||||||
{
|
|
||||||
if (mt->type == 1700 // MT_AXIS
|
|
||||||
|| mt->type == 1701 // MT_AXISTRANSFER
|
|
||||||
|| mt->type == 1702) // MT_AXISTRANSFERLINE
|
|
||||||
continue; // These were already spawned
|
|
||||||
|
|
||||||
if (!loademblems && mt->type == mobjinfo[MT_EMBLEM].doomednum)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
mt->mobj = NULL;
|
|
||||||
P_SpawnMapThing(mt);
|
|
||||||
}
|
|
||||||
|
|
||||||
// random emeralds for hunt
|
|
||||||
if (numhuntemeralds)
|
|
||||||
{
|
|
||||||
INT32 emer1, emer2, emer3;
|
INT32 emer1, emer2, emer3;
|
||||||
INT32 timeout = 0; // keeps from getting stuck
|
INT32 timeout = 0; // keeps from getting stuck
|
||||||
|
|
||||||
|
@ -1115,7 +1082,48 @@ static void P_LoadThings(boolean loademblems)
|
||||||
huntemeralds[emer3]->y<<FRACBITS,
|
huntemeralds[emer3]->y<<FRACBITS,
|
||||||
huntemeralds[emer3]->z<<FRACBITS, MT_EMERHUNT),
|
huntemeralds[emer3]->z<<FRACBITS, MT_EMERHUNT),
|
||||||
mobjinfo[MT_EMERHUNT].spawnstate+2);
|
mobjinfo[MT_EMERHUNT].spawnstate+2);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void P_LoadThings(boolean loademblems)
|
||||||
|
{
|
||||||
|
size_t i;
|
||||||
|
mapthing_t *mt;
|
||||||
|
|
||||||
|
// Spawn axis points first so they are at the front of the list for fast searching.
|
||||||
|
for (i = 0, mt = mapthings; i < nummapthings; i++, mt++)
|
||||||
|
{
|
||||||
|
switch (mt->type)
|
||||||
|
{
|
||||||
|
case 1700: // MT_AXIS
|
||||||
|
case 1701: // MT_AXISTRANSFER
|
||||||
|
case 1702: // MT_AXISTRANSFERLINE
|
||||||
|
mt->mobj = NULL;
|
||||||
|
P_SpawnMapThing(mt);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
numhuntemeralds = 0;
|
||||||
|
|
||||||
|
for (i = 0, mt = mapthings; i < nummapthings; i++, mt++)
|
||||||
|
{
|
||||||
|
if (mt->type == 1700 // MT_AXIS
|
||||||
|
|| mt->type == 1701 // MT_AXISTRANSFER
|
||||||
|
|| mt->type == 1702) // MT_AXISTRANSFERLINE
|
||||||
|
continue; // These were already spawned
|
||||||
|
|
||||||
|
if (!loademblems && mt->type == mobjinfo[MT_EMBLEM].doomednum)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
mt->mobj = NULL;
|
||||||
|
P_SpawnMapThing(mt);
|
||||||
|
}
|
||||||
|
|
||||||
|
// random emeralds for hunt
|
||||||
|
if (numhuntemeralds)
|
||||||
|
SpawnEmeraldHunt();
|
||||||
|
|
||||||
if (metalrecording) // Metal Sonic gets no rings to distract him.
|
if (metalrecording) // Metal Sonic gets no rings to distract him.
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in a new issue