Clean up parallaxed sky functionality, part 2.

- Rename sky_t members: yscale -> horizfrac, bits -> lognumtiles.
- Add default sky (8 tiles, horizfrac=32768 (i.e. 1/2 the scene horiz), offsets
  all zero) and CLOUDYOCEAN sky (8 tiles, horizfrac=65536, offsets all zero)
  to multipsky[].
- Get rid of "psky_t g_psky", merely maintaining a g_pskyidx instead. Set it up
  at map load time so as to keep the behavior of the legacy per-map psky:
  the last sector index with a matching psky ceiling wins.
- In mapstate_t, save g_pskyidx too, not (former) pskybits and pskyoffs[].
- Make on-map-load global psky setup consistent for the game and editor by
  factoring it out into common.c: G_SetupGlobalPsky().
- Remove a couple of useless initializations, add some static assertions.

This commit is more likely to introduce subtle differences in behavior.
Specifically, getpsky() now always returns the default sky properties instead of
the global sky ones (but with all-zero offsets) when no match for a suiting
multi-psky is found. This is only likely to affect the yscale/horizfrac of
non-multi-pskies when a global non-default multi-psky has been set up.
Bump BYTEVERSION again.

git-svn-id: https://svn.eduke32.com/eduke32@3976 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
helixhorned 2013-08-04 20:37:48 +00:00
parent 46e8549b5e
commit a374a401be
15 changed files with 94 additions and 114 deletions

View file

@ -766,8 +766,8 @@ typedef struct {
int8_t tileofs[MAXPSKYTILES]; // for 0 <= j < (1<<bits): tile offset relative to basetile int8_t tileofs[MAXPSKYTILES]; // for 0 <= j < (1<<bits): tile offset relative to basetile
} psky_t; } psky_t;
// Original multi-psky handling, only one per map: // Index of map-global (legacy) multi-sky:
EXTERN psky_t g_psky; EXTERN int32_t g_pskyidx;
// New multi-psky -- up to MAXPSKYMULTIS (effectively constant after initialization): // New multi-psky -- up to MAXPSKYMULTIS (effectively constant after initialization):
EXTERN int32_t pskynummultis; EXTERN int32_t pskynummultis;
EXTERN psky_t multipsky[MAXPSKYMULTIS]; EXTERN psky_t multipsky[MAXPSKYMULTIS];

View file

@ -77,23 +77,6 @@ void COMMON_clearbackground(int32_t numcols, int32_t numrows);
#define EDUKE32_TMRTIC t[ti++]=getticks() #define EDUKE32_TMRTIC t[ti++]=getticks()
#define EDUKE32_TMRPRN do { int ii=0; fprintf(stderr,"%s: ",tmrstr); for (ii=1; ii<ti; ii++) fprintf(stderr,"%d ", t[ii]-t[ii-1]); fprintf(stderr,"\n"); } while (0) #define EDUKE32_TMRPRN do { int ii=0; fprintf(stderr,"%s: ",tmrstr); for (ii=1; ii<ti; ii++) fprintf(stderr,"%d ", t[ii]-t[ii-1]); fprintf(stderr,"\n"); } while (0)
// Get the multi-psky index corresponding to a base tile number of the sky (for
// the game: the *static* value!), or -1 if it's not a multi-psky base tile.
static inline int32_t MultiPsky_TileToIdx(int32_t tilenum)
{
switch (tilenum)
{
case 80: // MOONSKY1__STATIC:
return 0;
case 84: // BIGORBIT1__STATIC:
return 1;
case 89: // LA__STATIC:
return 2;
default:
return -1;
}
}
#ifdef EXTERNC #ifdef EXTERNC
} }
#endif #endif

View file

@ -4485,6 +4485,8 @@ static void parascan(int32_t dax1, int32_t dax2, int32_t sectnum, char dastat, i
if (tsizy==0) if (tsizy==0)
return; return;
dapskyoff = getpsky(&dapyscale, &dapskybits);
globalshiftval = logtilesizy; globalshiftval = logtilesizy;
// before proper non-power-of-two tilesizy drawing // before proper non-power-of-two tilesizy drawing
@ -4497,20 +4499,18 @@ static void parascan(int32_t dax1, int32_t dax2, int32_t sectnum, char dastat, i
globaltilesizy = tsizy; globaltilesizy = tsizy;
globalyscale = 65536 / tsizy; globalyscale = 65536 / tsizy;
globalshiftval = 0; globalshiftval = 0;
globalzd = divscale32(((tsizy>>1)+g_psky.yoffs), tsizy) + ((uint32_t)globalypanning<<24); globalzd = divscale32(((tsizy>>1)/*+g_psky.yoffs*/), tsizy) + ((uint32_t)globalypanning<<24);
} }
else else
#endif #endif
{ {
globalshiftval = 32-globalshiftval; globalshiftval = 32-globalshiftval;
globalyscale = (8<<(globalshiftval-19)); globalyscale = (8<<(globalshiftval-19));
globalzd = (((tsizy>>1)+g_psky.yoffs)<<globalshiftval) + ((uint32_t)globalypanning<<24); globalzd = (((tsizy>>1)/*+g_psky.yoffs*/)<<globalshiftval) + ((uint32_t)globalypanning<<24);
} }
//if (globalorientation&256) globalyscale = -globalyscale, globalzd = -globalzd; //if (globalorientation&256) globalyscale = -globalyscale, globalzd = -globalzd;
dapskyoff = getpsky(&dapyscale, &dapskybits);
if (dapyscale != 65536) if (dapyscale != 65536)
globalhoriz = mulscale16(globalhoriz-(ydimen>>1),dapyscale) + (ydimen>>1); globalhoriz = mulscale16(globalhoriz-(ydimen>>1),dapyscale) + (ydimen>>1);
@ -8631,7 +8631,6 @@ int32_t initengine(void)
xyaspect = -1; xyaspect = -1;
parallaxtype = 2; g_psky.horizfrac = 65536;
showinvisibility = 0; showinvisibility = 0;
for (i=1; i<1024; i++) for (i=1; i<1024; i++)

View file

@ -217,25 +217,16 @@ static inline void bricolor(palette_t *wpptr, int32_t dacol)
static inline const int8_t *getpsky(int32_t *dapyscale, int32_t *dapskybits) static inline const int8_t *getpsky(int32_t *dapyscale, int32_t *dapskybits)
{ {
int32_t j; int32_t j;
static const int8_t zeropskyoff[MAXPSKYTILES] = { 0 };
// First, try a multi-sky. // First, try a multi-sky.
for (j=0; j<pskynummultis; j++) for (j=pskynummultis; j>0; j--) // NOTE: j==0 on non-early loop end
{
if (globalpicnum == multipskytile[j]) if (globalpicnum == multipskytile[j])
{ break; // Have a match.
// Have a match.
*dapskybits = multipsky[j].lognumtiles;
if (dapyscale)
*dapyscale = multipsky[j].horizfrac;
return multipsky[j].tileofs;
}
}
// Fall back to map-global sky. *dapskybits = multipsky[j].lognumtiles;
*dapskybits = g_psky.lognumtiles;
if (dapyscale) if (dapyscale)
*dapyscale = g_psky.horizfrac; *dapyscale = multipsky[j].horizfrac;
return zeropskyoff;
return multipsky[j].tileofs;
} }
#endif /* ENGINE_PRIV_H */ #endif /* ENGINE_PRIV_H */

View file

@ -3914,11 +3914,11 @@ static void polymer_drawartsky(int16_t tilenum, char palnum, int8_t shad
} }
i = 0; i = 0;
j = (1<<g_psky.lognumtiles); j = 8; //(1<<g_psky.lognumtiles);
while (i < j) while (i < j)
{ {
GLint oldswrap; GLint oldswrap;
const int8_t tileofs = g_psky.tileofs[i]; const int8_t tileofs = multipsky[g_pskyidx].tileofs[i];
bglColor4f(glcolors[tileofs][0], glcolors[tileofs][1], glcolors[tileofs][2], 1.0f); bglColor4f(glcolors[tileofs][0], glcolors[tileofs][1], glcolors[tileofs][2], 1.0f);
bglBindTexture(GL_TEXTURE_2D, glpics[tileofs]); bglBindTexture(GL_TEXTURE_2D, glpics[tileofs]);

View file

@ -2400,7 +2400,7 @@ static void polymost_drawalls(int32_t bunch)
dd[0] = (float)xdimen*.0000001; //Adjust sky depth based on screen size! dd[0] = (float)xdimen*.0000001; //Adjust sky depth based on screen size!
t = (double)((1<<(picsiz[globalpicnum]&15))<<dapskybits); t = (double)((1<<(picsiz[globalpicnum]&15))<<dapskybits);
vv[1] = dd[0]*((double)xdimscale*(double)viewingrange)/(65536.0*65536.0); vv[1] = dd[0]*((double)xdimscale*(double)viewingrange)/(65536.0*65536.0);
vv[0] = dd[0]*((double)((tilesizy[globalpicnum]>>1)+g_psky.yoffs)) - vv[1]*ghoriz; vv[0] = dd[0]*((double)((tilesizy[globalpicnum]>>1)/*+g_psky.yoffs*/)) - vv[1]*ghoriz;
i = (1<<(picsiz[globalpicnum]>>4)); if (i != tilesizy[globalpicnum]) i += i; i = (1<<(picsiz[globalpicnum]>>4)); if (i != tilesizy[globalpicnum]) i += i;
//Hack to draw black rectangle below sky when looking down... //Hack to draw black rectangle below sky when looking down...
@ -2668,7 +2668,7 @@ static void polymost_drawalls(int32_t bunch)
dd[0] = (float)xdimen*.0000001; //Adjust sky depth based on screen size! dd[0] = (float)xdimen*.0000001; //Adjust sky depth based on screen size!
t = (double)((1<<(picsiz[globalpicnum]&15))<<dapskybits); t = (double)((1<<(picsiz[globalpicnum]&15))<<dapskybits);
vv[1] = dd[0]*((double)xdimscale*(double)viewingrange)/(65536.0*65536.0); vv[1] = dd[0]*((double)xdimscale*(double)viewingrange)/(65536.0*65536.0);
vv[0] = dd[0]*((double)((tilesizy[globalpicnum]>>1)+g_psky.yoffs)) - vv[1]*ghoriz; vv[0] = dd[0]*((double)((tilesizy[globalpicnum]>>1)/*+g_psky.yoffs*/)) - vv[1]*ghoriz;
i = (1<<(picsiz[globalpicnum]>>4)); if (i != tilesizy[globalpicnum]) i += i; i = (1<<(picsiz[globalpicnum]>>4)); if (i != tilesizy[globalpicnum]) i += i;
//Hack to draw black rectangle below sky when looking down... //Hack to draw black rectangle below sky when looking down...

View file

@ -722,29 +722,14 @@ void ExtSetupMapFilename(const char *mapname)
void ExtLoadMap(const char *mapname) void ExtLoadMap(const char *mapname)
{ {
int32_t i;
int32_t mskyidx=0;
getmessageleng = 0; getmessageleng = 0;
getmessagetimeoff = 0; getmessagetimeoff = 0;
ExtSetupMapFilename(mapname); ExtSetupMapFilename(mapname);
// old-fashioned multi-psky handling // Old-fashioned multi-psky handling setup.
G_SetupGlobalPsky();
Bmemset(g_psky.tileofs, 0, sizeof(g_psky.tileofs));
for (i=0; i<numsectors; i++)
{
mskyidx = MultiPsky_TileToIdx(sector[i].ceilingpicnum);
if (mskyidx >= 0)
break;
}
if (mskyidx >= 0)
Bmemcpy(g_psky.tileofs, multipsky[mskyidx].tileofs, sizeof(g_psky.tileofs));
g_psky.lognumtiles = 3;
parallaxtype = 0; parallaxtype = 0;
////////// //////////
@ -10470,7 +10455,7 @@ int32_t ExtInit(void)
ReadHelpFile("m32help.hlp"); ReadHelpFile("m32help.hlp");
G_MultiPskyInit(MOONSKY1, BIGORBIT1, LA); G_InitMultiPsky(CLOUDYOCEAN, MOONSKY1, BIGORBIT1, LA);
#ifdef LUNATIC #ifdef LUNATIC
if (Em_CreateState(&g_EmState) == 0) if (Em_CreateState(&g_EmState) == 0)

View file

@ -152,32 +152,48 @@ const char *G_ConFile(void)
////////// //////////
#define NUMPSKYMULTIS 5
EDUKE32_STATIC_ASSERT(NUMPSKYMULTIS <= MAXPSKYMULTIS);
EDUKE32_STATIC_ASSERT(PSKYOFF_MAX <= MAXPSKYTILES);
// Set up new-style multi-psky handling. // Set up new-style multi-psky handling.
// NOTE: When adding more multi-pskies, take a look whether the engine-side // KEEPINSYNC MultiPsky_TileToIdx().
// MAXPSKYMULTIS needs to be increased. void G_InitMultiPsky(int32_t CLOUDYOCEAN__DYN, int32_t MOONSKY1__DYN, int32_t BIGORBIT1__DYN, int32_t LA__DYN)
void G_MultiPskyInit(int32_t MOONSKY1__DYN, int32_t BIGORBIT1__DYN, int32_t LA__DYN)
{ {
int32_t i; int32_t i;
psky_t *moonsky = &multipsky[0]; psky_t *defaultsky = &multipsky[0];
psky_t *spacesky = &multipsky[1]; psky_t *oceansky = &multipsky[1];
psky_t *citysky = &multipsky[2]; psky_t *moonsky = &multipsky[2];
psky_t *spacesky = &multipsky[3];
psky_t *citysky = &multipsky[4];
static int32_t inited; static int32_t inited;
if (inited) if (inited)
return; return;
inited = 1; inited = 1;
multipskytile[0] = MOONSKY1__DYN; multipskytile[0] = -1;
multipskytile[1] = BIGORBIT1__DYN; multipskytile[1] = CLOUDYOCEAN__DYN;
multipskytile[2] = LA__DYN; multipskytile[2] = MOONSKY1__DYN;
multipskytile[3] = BIGORBIT1__DYN;
multipskytile[4] = LA__DYN;
pskynummultis = 3; pskynummultis = NUMPSKYMULTIS;
// When adding other multi-skies, take care that the tileofs[] values are // When adding other multi-skies, take care that the tileofs[] values are
// <= PSKYOFF_MAX. (It can be increased up to MAXPSKYTILES, but should be // <= PSKYOFF_MAX. (It can be increased up to MAXPSKYTILES, but should be
// set as tight as possible.) // set as tight as possible.)
// The default sky properties (all others are implicitly zero):
defaultsky->lognumtiles = 3;
defaultsky->horizfrac = 32768;
// CLOUDYOCEAN
// Aligns with the drawn scene horizon because it has one itself.
oceansky->lognumtiles = 3;
oceansky->horizfrac = 65536;
// MOONSKY1 // MOONSKY1
// earth mountain mountain sun // earth mountain mountain sun
moonsky->lognumtiles = 3; moonsky->lognumtiles = 3;
@ -215,9 +231,25 @@ void G_MultiPskyInit(int32_t MOONSKY1__DYN, int32_t BIGORBIT1__DYN, int32_t LA__
for (j=0; j<(1<<multipsky[i].lognumtiles); ++j) for (j=0; j<(1<<multipsky[i].lognumtiles); ++j)
Bassert(multipsky[i].tileofs[j] <= PSKYOFF_MAX); Bassert(multipsky[i].tileofs[j] <= PSKYOFF_MAX);
} }
}
// default in game: void G_SetupGlobalPsky(void)
g_psky.horizfrac = 32768; {
int32_t i, mskyidx=0;
// NOTE: Loop must be running backwards for the same behavior as the game
// (greatest sector index with matching parallaxed sky takes precedence).
for (i=numsectors-1; i>=0; i--)
{
if (sector[i].ceilingstat & 1)
{
mskyidx = MultiPsky_TileToIdx(sector[i].ceilingpicnum);
if (mskyidx > 0)
break;
}
}
g_pskyidx = mskyidx;
} }
////////// //////////

View file

@ -58,7 +58,28 @@ extern void clearScriptNamePtr(void);
////////// //////////
extern void G_MultiPskyInit(int32_t MOONSKY1__DYN, int32_t BIGORBIT1__DYN, int32_t LA__DYN); extern void G_InitMultiPsky(int32_t CLOUDYOCEAN__DYN, int32_t MOONSKY1__DYN, int32_t BIGORBIT1__DYN, int32_t LA__DYN);
extern void G_SetupGlobalPsky(void);
// Get the multi-psky index corresponding to a base tile number of the sky (for
// the game: the *static* value!), or 0 as the catch-all.
// KEEPINSYNC G_InitMultiPsky().
static inline int32_t MultiPsky_TileToIdx(int32_t tilenum)
{
switch (tilenum)
{
default:
return 0;
case 78: // CLOUDYOCEAN__STATIC
return 1;
case 80: // MOONSKY1__STATIC:
return 2;
case 84: // BIGORBIT1__STATIC:
return 3;
case 89: // LA__STATIC:
return 4;
}
}
////////// //////////

View file

@ -59,10 +59,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
// increase by 3, because atomic GRP adds 1, and Shareware adds 2 // increase by 3, because atomic GRP adds 1, and Shareware adds 2
#ifdef LUNATIC #ifdef LUNATIC
// Lunatic // Lunatic
# define BYTEVERSION_JF 282 # define BYTEVERSION_JF 285
#else #else
// Non-Lua build // Non-Lua build
# define BYTEVERSION_JF 282 # define BYTEVERSION_JF 285
#endif #endif
#define BYTEVERSION_13 27 #define BYTEVERSION_13 27

View file

@ -10719,7 +10719,7 @@ static void G_Startup(void)
G_InitDynamicSounds(); G_InitDynamicSounds();
// These depend on having the dynamic tile and/or sound mappings set up: // These depend on having the dynamic tile and/or sound mappings set up:
G_MultiPskyInit(MOONSKY1, BIGORBIT1, LA); G_InitMultiPsky(CLOUDYOCEAN, MOONSKY1, BIGORBIT1, LA);
Gv_FinalizeWeaponDefaults(); Gv_FinalizeWeaponDefaults();
G_PostCreateGameState(); G_PostCreateGameState();

View file

@ -5537,8 +5537,7 @@ void G_SaveMapState(void)
Bmemcpy(&save->clouds[0],&clouds[0],sizeof(clouds)); Bmemcpy(&save->clouds[0],&clouds[0],sizeof(clouds));
Bmemcpy(&save->cloudx[0],&cloudx[0],sizeof(cloudx)); Bmemcpy(&save->cloudx[0],&cloudx[0],sizeof(cloudx));
Bmemcpy(&save->cloudy[0],&cloudy[0],sizeof(cloudy)); Bmemcpy(&save->cloudy[0],&cloudy[0],sizeof(cloudy));
Bmemcpy(&save->pskyoff[0],g_psky.tileofs,sizeof(g_psky.tileofs)); Bmemcpy(&save->pskyidx,&g_pskyidx,sizeof(g_pskyidx));
Bmemcpy(&save->pskybits,&g_psky.lognumtiles,sizeof(g_psky.lognumtiles));
Bmemcpy(&save->animategoal[0],&animategoal[0],sizeof(animategoal)); Bmemcpy(&save->animategoal[0],&animategoal[0],sizeof(animategoal));
Bmemcpy(&save->animatevel[0],&animatevel[0],sizeof(animatevel)); Bmemcpy(&save->animatevel[0],&animatevel[0],sizeof(animatevel));
Bmemcpy(&save->g_animateCount,&g_animateCount,sizeof(g_animateCount)); Bmemcpy(&save->g_animateCount,&g_animateCount,sizeof(g_animateCount));
@ -5643,8 +5642,7 @@ void G_RestoreMapState(void)
Bmemcpy(&clouds[0],&save->clouds[0],sizeof(clouds)); Bmemcpy(&clouds[0],&save->clouds[0],sizeof(clouds));
Bmemcpy(&cloudx[0],&save->cloudx[0],sizeof(cloudx)); Bmemcpy(&cloudx[0],&save->cloudx[0],sizeof(cloudx));
Bmemcpy(&cloudy[0],&save->cloudy[0],sizeof(cloudy)); Bmemcpy(&cloudy[0],&save->cloudy[0],sizeof(cloudy));
Bmemcpy(g_psky.tileofs,&save->pskyoff[0],sizeof(g_psky.tileofs)); Bmemcpy(&g_pskyidx,&save->pskyidx,sizeof(g_pskyidx));
Bmemcpy(&g_psky.lognumtiles,&save->pskybits,sizeof(g_psky.lognumtiles));
Bmemcpy(&animategoal[0],&save->animategoal[0],sizeof(animategoal)); Bmemcpy(&animategoal[0],&save->animategoal[0],sizeof(animategoal));
Bmemcpy(&animatevel[0],&save->animatevel[0],sizeof(animatevel)); Bmemcpy(&animatevel[0],&save->animatevel[0],sizeof(animatevel));
Bmemcpy(&g_animateCount,&save->g_animateCount,sizeof(g_animateCount)); Bmemcpy(&g_animateCount,&save->g_animateCount,sizeof(g_animateCount));

View file

@ -964,35 +964,6 @@ static void resetprestat(int32_t snum,int32_t g)
} }
static inline void G_SetupBackdrop(int16_t sky)
{
// Get the static value of the base sky tile number.
const int32_t ssky = DYNAMICTILEMAP(sky);
Bmemset(g_psky.tileofs, 0, sizeof(g_psky.tileofs));
// XXX: why the condition?
if (g_psky.horizfrac != 65536)
g_psky.horizfrac = 32768;
if (ssky == CLOUDYOCEAN__STATIC)
{
g_psky.horizfrac = 65536;
}
else
{
int32_t mskyidx = MultiPsky_TileToIdx(ssky);
if (mskyidx >= 0)
{
Bmemcpy(g_psky.tileofs, multipsky[mskyidx].tileofs, sizeof(g_psky.tileofs));
if (ssky == LA__STATIC)
g_psky.horizfrac = 16384+1024;
}
}
g_psky.lognumtiles = 3;
}
// tweak moving sectors with these SE lotags // tweak moving sectors with these SE lotags
#define FIXSPR_SELOTAGP(k) ((k==0) || (k==6) || (k==14)) #define FIXSPR_SELOTAGP(k) ((k==0) || (k==6) || (k==14))
@ -1064,6 +1035,8 @@ static inline void prelevel(char g)
resetprestat(0,g); resetprestat(0,g);
g_numClouds = 0; g_numClouds = 0;
G_SetupGlobalPsky();
for (i=0; i<numsectors; i++) for (i=0; i<numsectors; i++)
{ {
sector[i].extra = 256; sector[i].extra = 256;
@ -1085,7 +1058,6 @@ static inline void prelevel(char g)
for (j=0; j<5; j++) for (j=0; j<5; j++)
tloadtile(sector[i].ceilingpicnum+j, 0); tloadtile(sector[i].ceilingpicnum+j, 0);
} }
G_SetupBackdrop(sector[i].ceilingpicnum);
if (sector[i].ceilingpicnum == CLOUDYSKIES && g_numClouds < 127) if (sector[i].ceilingpicnum == CLOUDYSKIES && g_numClouds < 127)
clouds[g_numClouds++] = i; clouds[g_numClouds++] = i;
@ -1432,7 +1404,6 @@ void G_NewGame(int32_t vn, int32_t ln, int32_t sk)
ud.player_skill = sk; ud.player_skill = sk;
ud.secretlevel = 0; ud.secretlevel = 0;
ud.from_bonus = 0; ud.from_bonus = 0;
g_psky.horizfrac = 0;
ud.last_level = -1; ud.last_level = -1;
g_lastSaveSlot = -1; g_lastSaveSlot = -1;

View file

@ -1028,7 +1028,7 @@ static const dataspec_t svgm_anmisc[] =
{ 0, &clouds[0], sizeof(clouds), 1 }, { 0, &clouds[0], sizeof(clouds), 1 },
{ 0, &cloudx[0], sizeof(cloudx), 1 }, { 0, &cloudx[0], sizeof(cloudx), 1 },
{ 0, &cloudy[0], sizeof(cloudy), 1 }, { 0, &cloudy[0], sizeof(cloudy), 1 },
{ 0, &g_psky, sizeof(g_psky), 1 }, // DS_NOCHK? { 0, &g_pskyidx, sizeof(g_pskyidx), 1 }, // DS_NOCHK?
{ 0, &g_earthquakeTime, sizeof(g_earthquakeTime), 1 }, { 0, &g_earthquakeTime, sizeof(g_earthquakeTime), 1 },
{ DS_SAVEFN|DS_LOADFN|DS_NOCHK, (void *)sv_prequote, 0, 1 }, { DS_SAVEFN|DS_LOADFN|DS_NOCHK, (void *)sv_prequote, 0, 1 },

View file

@ -44,6 +44,7 @@ typedef struct {
int32_t lockclock; int32_t lockclock;
int32_t msx[2048], msy[2048]; int32_t msx[2048], msy[2048];
int32_t randomseed, g_globalRandom; int32_t randomseed, g_globalRandom;
int32_t pskyidx;
int16_t SpriteDeletionQueue[1024],g_spriteDeleteQueuePos; int16_t SpriteDeletionQueue[1024],g_spriteDeleteQueuePos;
int16_t animatesect[MAXANIMATES]; int16_t animatesect[MAXANIMATES];
@ -63,7 +64,6 @@ typedef struct {
int16_t numwalls; int16_t numwalls;
int16_t prevspritesect[MAXSPRITES]; int16_t prevspritesect[MAXSPRITES];
int16_t prevspritestat[MAXSPRITES]; int16_t prevspritestat[MAXSPRITES];
int16_t pskyoff[MAXPSKYTILES], pskybits;
uint16_t g_earthquakeTime; uint16_t g_earthquakeTime;
int8_t g_numPlayerSprites; int8_t g_numPlayerSprites;