mirror of
https://github.com/DrBeef/Raze.git
synced 2024-11-15 08:52:00 +00:00
Double the size of clouds[] (holding sectors with CLOUDYSKIES ceilings).
Also, make cloudx[] and cloudy[] scalars, as the per-sector values were always identical. In prelevel(), warn if some CLOUDYSKIES-ceiling sectors could not be set up due to reaching the new 256 sector limit. git-svn-id: https://svn.eduke32.com/eduke32@5156 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
cf7de5b43a
commit
474efef336
7 changed files with 27 additions and 17 deletions
|
@ -55,10 +55,10 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|||
// increase by 3, because atomic GRP adds 1, and Shareware adds 2
|
||||
#ifdef LUNATIC
|
||||
// Lunatic
|
||||
# define BYTEVERSION_JF 300
|
||||
# define BYTEVERSION_JF 303
|
||||
#else
|
||||
// Non-Lua build
|
||||
# define BYTEVERSION_JF 300
|
||||
# define BYTEVERSION_JF 303
|
||||
#endif
|
||||
|
||||
//#define BYTEVERSION_13 27
|
||||
|
|
|
@ -3020,13 +3020,13 @@ static inline void G_MoveClouds(void)
|
|||
|
||||
cloudtotalclock = totalclock+6;
|
||||
|
||||
cloudx += sintable[(g_player[screenpeek].ps->ang+512)&2047]>>9;
|
||||
cloudy += sintable[g_player[screenpeek].ps->ang&2047]>>9;
|
||||
|
||||
for (i=g_numClouds-1; i>=0; i--)
|
||||
{
|
||||
cloudx[i] += (sintable[(g_player[screenpeek].ps->ang+512)&2047]>>9);
|
||||
cloudy[i] += (sintable[g_player[screenpeek].ps->ang&2047]>>9);
|
||||
|
||||
sector[clouds[i]].ceilingxpanning = cloudx[i]>>6;
|
||||
sector[clouds[i]].ceilingypanning = cloudy[i]>>6;
|
||||
sector[clouds[i]].ceilingxpanning = cloudx>>6;
|
||||
sector[clouds[i]].ceilingypanning = cloudy>>6;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5643,8 +5643,8 @@ void G_SaveMapState(void)
|
|||
Bmemcpy(&save->show2dsector[0],&show2dsector[0],sizeof(show2dsector));
|
||||
Bmemcpy(&save->g_numClouds,&g_numClouds,sizeof(g_numClouds));
|
||||
Bmemcpy(&save->clouds[0],&clouds[0],sizeof(clouds));
|
||||
Bmemcpy(&save->cloudx[0],&cloudx[0],sizeof(cloudx));
|
||||
Bmemcpy(&save->cloudy[0],&cloudy[0],sizeof(cloudy));
|
||||
Bmemcpy(&save->cloudx,&cloudx,sizeof(cloudx));
|
||||
Bmemcpy(&save->cloudy,&cloudy,sizeof(cloudy));
|
||||
Bmemcpy(&save->pskyidx,&g_pskyidx,sizeof(g_pskyidx));
|
||||
Bmemcpy(&save->animategoal[0],&animategoal[0],sizeof(animategoal));
|
||||
Bmemcpy(&save->animatevel[0],&animatevel[0],sizeof(animatevel));
|
||||
|
@ -5767,8 +5767,8 @@ void G_RestoreMapState(void)
|
|||
Bmemcpy(&show2dsector[0],&save->show2dsector[0],sizeof(show2dsector));
|
||||
Bmemcpy(&g_numClouds,&save->g_numClouds,sizeof(g_numClouds));
|
||||
Bmemcpy(&clouds[0],&save->clouds[0],sizeof(clouds));
|
||||
Bmemcpy(&cloudx[0],&save->cloudx[0],sizeof(cloudx));
|
||||
Bmemcpy(&cloudy[0],&save->cloudy[0],sizeof(cloudy));
|
||||
Bmemcpy(&cloudx,&save->cloudx,sizeof(cloudx));
|
||||
Bmemcpy(&cloudy,&save->cloudy,sizeof(cloudy));
|
||||
Bmemcpy(&g_pskyidx,&save->pskyidx,sizeof(g_pskyidx));
|
||||
Bmemcpy(&animategoal[0],&save->animategoal[0],sizeof(animategoal));
|
||||
Bmemcpy(&animatevel[0],&save->animatevel[0],sizeof(animatevel));
|
||||
|
|
|
@ -83,7 +83,7 @@ G_EXTERN int16_t cyclers[MAXCYCLERS][6],g_numCyclers;
|
|||
G_EXTERN int16_t g_globalRandom;
|
||||
G_EXTERN int16_t g_mirrorWall[64],g_mirrorSector[64],g_mirrorCount;
|
||||
G_EXTERN int16_t g_numAnimWalls;
|
||||
G_EXTERN int16_t g_numClouds,clouds[128],cloudx[128],cloudy[128];
|
||||
G_EXTERN int16_t g_numClouds,clouds[256],cloudx,cloudy;
|
||||
G_EXTERN int16_t myang,omyang,mycursectnum,myjumpingcounter;
|
||||
G_EXTERN int16_t myhoriz,omyhoriz,myhorizoff,omyhorizoff;
|
||||
G_EXTERN int32_t *animateptr[MAXANIMATES];
|
||||
|
|
|
@ -1043,6 +1043,8 @@ static void prelevel(char g)
|
|||
|
||||
VM_OnEvent(EVENT_PRELEVEL, -1, -1);
|
||||
|
||||
int missedCloudSectors = 0;
|
||||
|
||||
for (i=0; i<numsectors; i++)
|
||||
{
|
||||
sector[i].extra = 256;
|
||||
|
@ -1065,8 +1067,13 @@ static void prelevel(char g)
|
|||
tloadtile(sector[i].ceilingpicnum+j, 0);
|
||||
}
|
||||
|
||||
if (sector[i].ceilingpicnum == CLOUDYSKIES && g_numClouds < 127)
|
||||
if (sector[i].ceilingpicnum == CLOUDYSKIES)
|
||||
{
|
||||
if (g_numClouds < ARRAY_SSIZE(clouds))
|
||||
clouds[g_numClouds++] = i;
|
||||
else
|
||||
missedCloudSectors++;
|
||||
}
|
||||
|
||||
if (g_player[0].ps->one_parallax_sectnum == -1)
|
||||
g_player[0].ps->one_parallax_sectnum = i;
|
||||
|
@ -1086,6 +1093,9 @@ static void prelevel(char g)
|
|||
}
|
||||
}
|
||||
|
||||
if (missedCloudSectors > 0)
|
||||
OSD_Printf(OSDTEXT_RED "Map warning: have %d unhandled CLOUDYSKIES ceilings.\n", missedCloudSectors);
|
||||
|
||||
// NOTE: must be safe loop because callbacks could delete sprites.
|
||||
for (SPRITES_OF_STAT_SAFE(STAT_DEFAULT, i, nexti))
|
||||
{
|
||||
|
|
|
@ -1128,8 +1128,8 @@ static const dataspec_t svgm_anmisc[] =
|
|||
{ 0, &show2dsector[0], sizeof(uint8_t), MAXSECTORS>>3 },
|
||||
{ DS_NOCHK, &g_numClouds, sizeof(g_numClouds), 1 },
|
||||
{ 0, &clouds[0], sizeof(clouds), 1 },
|
||||
{ 0, &cloudx[0], sizeof(cloudx), 1 },
|
||||
{ 0, &cloudy[0], sizeof(cloudy), 1 },
|
||||
{ 0, &cloudx, sizeof(cloudx), 1 },
|
||||
{ 0, &cloudy, sizeof(cloudy), 1 },
|
||||
{ 0, &g_pskyidx, sizeof(g_pskyidx), 1 }, // DS_NOCHK?
|
||||
{ 0, &g_earthquakeTime, sizeof(g_earthquakeTime), 1 },
|
||||
|
||||
|
|
|
@ -57,7 +57,7 @@ typedef struct {
|
|||
int16_t cyclers[MAXCYCLERS][6];
|
||||
int16_t g_mirrorWall[64], g_mirrorSector[64], g_mirrorCount;
|
||||
int16_t g_numAnimWalls;
|
||||
int16_t g_numClouds,clouds[128],cloudx[128],cloudy[128];
|
||||
int16_t g_numClouds,clouds[256],cloudx,cloudy;
|
||||
int16_t g_numCyclers;
|
||||
|
||||
int32_t numsprites;
|
||||
|
|
Loading…
Reference in a new issue