mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-04-22 10:11:05 +00:00
Handle stage data initialization and defaults in a separate function.
This commit is contained in:
parent
3b216441d4
commit
793a2b8ce1
1 changed files with 156 additions and 61 deletions
217
src/p_setup.c
217
src/p_setup.c
|
@ -675,62 +675,6 @@ static void P_LoadRawSectors(UINT8 *data)
|
|||
ss->spawn_lightlevel = SHORT(ms->lightlevel);
|
||||
ss->special = SHORT(ms->special);
|
||||
ss->tag = SHORT(ms->tag);
|
||||
ss->nexttag = ss->firsttag = -1;
|
||||
ss->spawn_nexttag = ss->spawn_firsttag = -1;
|
||||
|
||||
memset(&ss->soundorg, 0, sizeof(ss->soundorg));
|
||||
ss->validcount = 0;
|
||||
|
||||
ss->thinglist = NULL;
|
||||
ss->touching_thinglist = NULL;
|
||||
ss->preciplist = NULL;
|
||||
ss->touching_preciplist = NULL;
|
||||
|
||||
ss->floordata = NULL;
|
||||
ss->ceilingdata = NULL;
|
||||
ss->lightingdata = NULL;
|
||||
|
||||
ss->linecount = 0;
|
||||
ss->lines = NULL;
|
||||
|
||||
ss->heightsec = -1;
|
||||
ss->camsec = -1;
|
||||
ss->floorlightsec = -1;
|
||||
ss->ceilinglightsec = -1;
|
||||
ss->crumblestate = 0;
|
||||
ss->ffloors = NULL;
|
||||
ss->lightlist = NULL;
|
||||
ss->numlights = 0;
|
||||
ss->attached = NULL;
|
||||
ss->attachedsolid = NULL;
|
||||
ss->numattached = 0;
|
||||
ss->maxattached = 1;
|
||||
ss->moved = true;
|
||||
|
||||
ss->extra_colormap = NULL;
|
||||
ss->spawn_extra_colormap = NULL;
|
||||
|
||||
ss->floor_xoffs = ss->ceiling_xoffs = ss->floor_yoffs = ss->ceiling_yoffs = 0;
|
||||
ss->spawn_flr_xoffs = ss->spawn_ceil_xoffs = ss->spawn_flr_yoffs = ss->spawn_ceil_yoffs = 0;
|
||||
ss->floorpic_angle = ss->ceilingpic_angle = 0;
|
||||
ss->spawn_flrpic_angle = ss->spawn_ceilpic_angle = 0;
|
||||
ss->gravity = NULL;
|
||||
ss->cullheight = NULL;
|
||||
ss->verticalflip = false;
|
||||
ss->flags = 0;
|
||||
ss->flags |= SF_FLIPSPECIAL_FLOOR;
|
||||
|
||||
ss->floorspeed = 0;
|
||||
ss->ceilspeed = 0;
|
||||
|
||||
#ifdef HWRENDER // ----- for special tricks with HW renderer -----
|
||||
ss->pseudoSector = false;
|
||||
ss->virtualFloor = false;
|
||||
ss->virtualCeiling = false;
|
||||
ss->sectorLines = NULL;
|
||||
ss->stackList = NULL;
|
||||
ss->lineoutLength = -1.0l;
|
||||
#endif // ----- end special tricks -----
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -759,6 +703,160 @@ static void P_LoadRawNodes(UINT8 *data)
|
|||
}
|
||||
}
|
||||
|
||||
static void GeneralDefaults(void)
|
||||
{
|
||||
UINT32 i;
|
||||
// UINT32 j;
|
||||
|
||||
line_t *ld;
|
||||
// side_t *sd;
|
||||
sector_t *sc;
|
||||
// mapthing_t *mt;
|
||||
// vertex_t* vt;
|
||||
|
||||
for (i = 0, ld = lines; i < numlines; i++, ld++)
|
||||
{
|
||||
// Initialization.
|
||||
ld->frontsector = ld->backsector = NULL;
|
||||
ld->validcount = 0;
|
||||
ld->firsttag = ld->nexttag = -1;
|
||||
ld->callcount = 0;
|
||||
#ifdef POLYOBJECTS
|
||||
ld->polyobj = NULL;
|
||||
#endif
|
||||
#ifdef WALLSPLATS
|
||||
ld->splats = NULL;
|
||||
#endif
|
||||
// Defaults.
|
||||
/*
|
||||
ld->alpha = FRACUNIT;
|
||||
|
||||
for (j = 0; j < NUMLINEARGS; j++)
|
||||
ld->args[j] = 0;
|
||||
|
||||
ld->executordelay = 0;
|
||||
ld->udmfflags = 0;*/
|
||||
}
|
||||
/*
|
||||
for (i = 0, sd = sides; i < numsides; i++, sd++)
|
||||
{
|
||||
// Initialization.
|
||||
|
||||
// Defaults.
|
||||
sd->scalex_top = sd->scaley_top = sd->scalex_mid = sd->scaley_mid = sd->scalex_bot = sd->scaley_bot = FRACUNIT;
|
||||
sd->offsetx_top = sd->offsety_top = sd->offsetx_mid = sd->offsety_mid = sd->offsetx_bot = sd->offsety_bot = 0;
|
||||
sd->light = 0;
|
||||
sd->lightabsolute = false;
|
||||
}
|
||||
*/
|
||||
for (i = 0, sc = sectors; i < numsectors; i++, sc++)
|
||||
{
|
||||
// Initialization.
|
||||
sc->nexttag = sc->firsttag = -1;
|
||||
sc->spawn_nexttag = sc->spawn_firsttag = -1;
|
||||
|
||||
memset(&sc->soundorg, 0, sizeof(sc->soundorg));
|
||||
sc->validcount = 0;
|
||||
|
||||
sc->thinglist = NULL;
|
||||
sc->touching_thinglist = NULL;
|
||||
sc->preciplist = NULL;
|
||||
sc->touching_preciplist = NULL;
|
||||
|
||||
sc->floordata = NULL;
|
||||
sc->ceilingdata = NULL;
|
||||
sc->lightingdata = NULL;
|
||||
|
||||
sc->linecount = 0;
|
||||
sc->lines = NULL;
|
||||
|
||||
sc->heightsec = -1;
|
||||
sc->camsec = -1;
|
||||
sc->floorlightsec = -1;
|
||||
sc->ceilinglightsec = -1;
|
||||
sc->crumblestate = 0;
|
||||
sc->ffloors = NULL;
|
||||
sc->lightlist = NULL;
|
||||
sc->numlights = 0;
|
||||
sc->attached = NULL;
|
||||
sc->attachedsolid = NULL;
|
||||
sc->numattached = 0;
|
||||
sc->maxattached = 1;
|
||||
sc->moved = true;
|
||||
|
||||
sc->extra_colormap = NULL;
|
||||
// sc->gravityptr = NULL;
|
||||
sc->cullheight = NULL;
|
||||
sc->flags = 0;
|
||||
sc->flags |= SF_FLIPSPECIAL_FLOOR;
|
||||
|
||||
sc->floorspeed = 0;
|
||||
sc->ceilspeed = 0;
|
||||
|
||||
// sc->floor_scale = FRACUNIT;
|
||||
// sc->ceiling_scale = FRACUNIT;
|
||||
|
||||
#ifdef HWRENDER // ----- for special tricks with HW renderer -----
|
||||
sc->pseudoSector = false;
|
||||
sc->virtualFloor = false;
|
||||
sc->virtualCeiling = false;
|
||||
sc->sectorLines = NULL;
|
||||
sc->stackList = NULL;
|
||||
sc->lineoutLength = -1.0l;
|
||||
#endif // ----- end special tricks -----
|
||||
|
||||
// Defaults.
|
||||
sc->floor_xoffs = sc->ceiling_xoffs = sc->floor_yoffs = sc->ceiling_yoffs = 0;
|
||||
sc->floorpic_angle = sc->ceilingpic_angle = 0;
|
||||
//sc->gravity = FRACUNIT;
|
||||
sc->gravity = NULL;
|
||||
sc->verticalflip = false;
|
||||
// sc->udmfflags = 0;
|
||||
|
||||
sc->spawn_extra_colormap = NULL;
|
||||
|
||||
sc->spawn_lightlevel = sc->lightlevel;
|
||||
sc->spawn_flr_xoffs = sc->floor_xoffs;
|
||||
sc->spawn_ceil_xoffs = sc->ceiling_xoffs;
|
||||
sc->spawn_flr_yoffs = sc->floor_yoffs;
|
||||
sc->spawn_ceil_yoffs = sc->ceiling_yoffs;
|
||||
sc->spawn_flrpic_angle = sc->floorpic_angle;
|
||||
sc->spawn_ceilpic_angle = sc->ceilingpic_angle;
|
||||
|
||||
// sc->lightfloor = sc->lightceiling = 0;
|
||||
// sc->lightfloorabsolute = sc->lightceilingabsolute = false;
|
||||
}
|
||||
/*
|
||||
for (i = 0, mt = mapthings; i < nummapthings; i++, mt++)
|
||||
{
|
||||
// Initialization.
|
||||
|
||||
// Defaults.
|
||||
mt->pitch = mt->roll = 0;
|
||||
mt->scale = FRACUNIT;
|
||||
for (j = 0; j < NUMTHINGPARAMS; j++)
|
||||
mt->params[j] = 0;
|
||||
mt->spawntrigger = 0;
|
||||
mt->seetrigger = 0;
|
||||
mt->paintrigger = 0;
|
||||
mt->meleetrigger = 0;
|
||||
mt->missiletrigger = 0;
|
||||
mt->deathtrigger = 0;
|
||||
mt->xdeathtrigger = 0;
|
||||
mt->raisetrigger = 0;
|
||||
}
|
||||
|
||||
for (i = 0, vt = vertexes; i < numvertexes; i++, vt++)
|
||||
{
|
||||
// Initialization.
|
||||
|
||||
// Defaults.
|
||||
vt->floorzset = false;
|
||||
vt->ceilingzset = false;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
//
|
||||
// P_ReloadRings
|
||||
// Used by NiGHTS, clears all ring/wing/etc items and respawns them
|
||||
|
@ -1166,11 +1264,6 @@ static void SetupLines (void)
|
|||
}
|
||||
}
|
||||
|
||||
ld->frontsector = ld->backsector = NULL;
|
||||
ld->validcount = 0;
|
||||
ld->firsttag = ld->nexttag = -1;
|
||||
ld->callcount = 0;
|
||||
|
||||
// killough 11/98: fix common wad errors (missing sidedefs):
|
||||
if (ld->sidenum[0] == 0xffff)
|
||||
{
|
||||
|
@ -2256,6 +2349,8 @@ static void LoadMapData (const virtres_t* virt)
|
|||
lines = Z_Calloc(numlines * sizeof (*lines), PU_LEVEL, NULL);
|
||||
mapthings= Z_Calloc(nummapthings * sizeof (*mapthings), PU_LEVEL, NULL);
|
||||
|
||||
GeneralDefaults();
|
||||
|
||||
// Allocate a big chunk of memory as big as our MAXLEVELFLATS limit.
|
||||
//Fab : FIXME: allocate for whatever number of flats - 512 different flats per level should be plenty
|
||||
foundflats = calloc(MAXLEVELFLATS, sizeof (*foundflats));
|
||||
|
|
Loading…
Reference in a new issue