mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Fix slope spawning; let polyobjects spawn again
Move P_SpawnMapThings before P_SpawnSpecialsThatRequireObjects. Do not remove special from lines with ML_NETONLY or ML_NONET until after slopes are spawned.
This commit is contained in:
parent
285ec3e08c
commit
3cad7398f0
3 changed files with 55 additions and 38 deletions
|
|
@ -3986,11 +3986,12 @@ boolean P_LoadLevel(boolean fromnetsave)
|
||||||
|
|
||||||
P_SpawnSlopes(fromnetsave);
|
P_SpawnSlopes(fromnetsave);
|
||||||
|
|
||||||
P_RaiseThings();
|
P_SpawnSpecialsAfterSlopes();
|
||||||
|
|
||||||
|
P_SpawnMapThings(!fromnetsave);
|
||||||
|
|
||||||
P_SpawnSpecialsThatRequireObjects();
|
P_SpawnSpecialsThatRequireObjects();
|
||||||
|
|
||||||
P_SpawnMapThings(!fromnetsave);
|
|
||||||
skyboxmo[0] = skyboxviewpnts[0];
|
skyboxmo[0] = skyboxviewpnts[0];
|
||||||
skyboxmo[1] = skyboxcenterpnts[0];
|
skyboxmo[1] = skyboxcenterpnts[0];
|
||||||
|
|
||||||
|
|
|
||||||
84
src/p_spec.c
84
src/p_spec.c
|
|
@ -5545,26 +5545,6 @@ P_RaiseTaggedThingsToFakeFloor (
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
P_RaiseThings (void)
|
|
||||||
{
|
|
||||||
size_t i;
|
|
||||||
|
|
||||||
for (i = 0; i < numlines; ++i)
|
|
||||||
{
|
|
||||||
switch (lines[i].special)
|
|
||||||
{
|
|
||||||
case 80: // Raise tagged things by type to this FOF
|
|
||||||
P_RaiseTaggedThingsToFakeFloor(
|
|
||||||
( sides[lines[i].sidenum[0]].textureoffset >> FRACBITS ),
|
|
||||||
lines[i].tag,
|
|
||||||
lines[i].frontsector
|
|
||||||
);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// SPECIAL SPAWNING
|
// SPECIAL SPAWNING
|
||||||
//
|
//
|
||||||
|
|
@ -5953,6 +5933,26 @@ static void P_ApplyFlatAlignment(line_t *master, sector_t *sector, angle_t flata
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static boolean P_IsLineDisabled (const line_t * line)
|
||||||
|
{
|
||||||
|
if (line->special != 7) // This is a hack. I can at least hope nobody wants to prevent flat alignment in netgames...
|
||||||
|
{
|
||||||
|
if (netgame || multiplayer)
|
||||||
|
{
|
||||||
|
if (line->flags & ML_NONET)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (line->flags & ML_NETONLY)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/** After the map has loaded, scans for specials that spawn 3Dfloors and
|
/** After the map has loaded, scans for specials that spawn 3Dfloors and
|
||||||
* thinkers.
|
* thinkers.
|
||||||
*
|
*
|
||||||
|
|
@ -5973,6 +5973,8 @@ void P_SpawnSpecials(boolean fromnetsave)
|
||||||
// but currently isn't.
|
// but currently isn't.
|
||||||
(void)fromnetsave;
|
(void)fromnetsave;
|
||||||
|
|
||||||
|
CONS_Printf("%d\n", sectors[11].floorheight);
|
||||||
|
|
||||||
// yep, we do this here - "bossdisabled" is considered an apparatus of specials.
|
// yep, we do this here - "bossdisabled" is considered an apparatus of specials.
|
||||||
bossdisabled = 0;
|
bossdisabled = 0;
|
||||||
stoppedclock = false;
|
stoppedclock = false;
|
||||||
|
|
@ -6070,23 +6072,10 @@ void P_SpawnSpecials(boolean fromnetsave)
|
||||||
// Init line EFFECTs
|
// Init line EFFECTs
|
||||||
for (i = 0; i < numlines; i++)
|
for (i = 0; i < numlines; i++)
|
||||||
{
|
{
|
||||||
if (lines[i].special != 7) // This is a hack. I can at least hope nobody wants to prevent flat alignment in netgames...
|
if (P_IsLineDisabled(&lines[i]))
|
||||||
{
|
{
|
||||||
// set line specials to 0 here too, same reason as above
|
|
||||||
if (netgame || multiplayer)
|
|
||||||
{
|
|
||||||
if (lines[i].flags & ML_NONET)
|
|
||||||
{
|
|
||||||
lines[i].special = 0;
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else if (lines[i].flags & ML_NETONLY)
|
|
||||||
{
|
|
||||||
lines[i].special = 0;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (lines[i].special)
|
switch (lines[i].special)
|
||||||
{
|
{
|
||||||
|
|
@ -6987,6 +6976,33 @@ void P_SpawnSpecialsThatRequireObjects(void)
|
||||||
P_RunLevelLoadExecutors();
|
P_RunLevelLoadExecutors();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Fuck ML_NONET
|
||||||
|
*/
|
||||||
|
void P_SpawnSpecialsAfterSlopes(void)
|
||||||
|
{
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
for (i = 0; i < numlines; ++i)
|
||||||
|
{
|
||||||
|
if (P_IsLineDisabled(&lines[i]))
|
||||||
|
{
|
||||||
|
/* remove the special so it can't even be found during the level */
|
||||||
|
lines[i].special = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (lines[i].special)
|
||||||
|
{
|
||||||
|
case 80: // Raise tagged things by type to this FOF
|
||||||
|
P_RaiseTaggedThingsToFakeFloor(
|
||||||
|
( sides[lines[i].sidenum[0]].textureoffset >> FRACBITS ),
|
||||||
|
lines[i].tag,
|
||||||
|
lines[i].frontsector
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/** Adds 3Dfloors as appropriate based on a common control linedef.
|
/** Adds 3Dfloors as appropriate based on a common control linedef.
|
||||||
*
|
*
|
||||||
* \param line Control linedef to use.
|
* \param line Control linedef to use.
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ void P_SetupLevelFlatAnims(void);
|
||||||
// at map load
|
// at map load
|
||||||
void P_InitSpecials(void);
|
void P_InitSpecials(void);
|
||||||
void P_SpawnSpecials(boolean fromnetsave);
|
void P_SpawnSpecials(boolean fromnetsave);
|
||||||
void P_RaiseThings(void);
|
void P_SpawnSpecialsAfterSlopes(void);
|
||||||
void P_SpawnSpecialsThatRequireObjects(void);
|
void P_SpawnSpecialsThatRequireObjects(void);
|
||||||
|
|
||||||
// every tic
|
// every tic
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue