mirror of
https://github.com/ZDoom/raze-gles.git
synced 2025-01-12 03:00:38 +00:00
Lunatic/classic: in TROR maps (V10), enable non-power-of-two wall drawing.
Also, fix clearing a bunch in new-format-map (=Lunatic) build. git-svn-id: https://svn.eduke32.com/eduke32@3841 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
f0ed046a98
commit
358c7eb28b
1 changed files with 46 additions and 20 deletions
|
@ -52,9 +52,12 @@ L_State g_engState;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define CACHEAGETIME 16
|
#define CACHEAGETIME 16
|
||||||
//#define CLASSIC_NONPOW2_YSIZE_WALLS
|
|
||||||
#define CLASSIC_NONPOW2_YSIZE_SPRITES
|
#define CLASSIC_NONPOW2_YSIZE_SPRITES
|
||||||
|
|
||||||
|
#ifdef LUNATIC
|
||||||
|
# define CLASSIC_NONPOW2_YSIZE_WALLS
|
||||||
|
#endif
|
||||||
|
|
||||||
#define HIGH_PRECISION_SPRITE
|
#define HIGH_PRECISION_SPRITE
|
||||||
#define MULTI_COLUMN_VLINE
|
#define MULTI_COLUMN_VLINE
|
||||||
//#define DEBUG_TILESIZY_512
|
//#define DEBUG_TILESIZY_512
|
||||||
|
@ -76,6 +79,20 @@ const int32_t engine_v8 = 0;
|
||||||
float debug1, debug2;
|
float debug1, debug2;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
int32_t mapversion=7; // JBF 20040211: default mapversion to 7
|
||||||
|
|
||||||
|
static int32_t get_mapversion(void);
|
||||||
|
|
||||||
|
// Handle nonpow2-ysize walls walls the old way?
|
||||||
|
static inline int32_t oldnonpow2(void)
|
||||||
|
{
|
||||||
|
#if !defined CLASSIC_NONPOW2_YSIZE_WALLS
|
||||||
|
return 1;
|
||||||
|
#else
|
||||||
|
return (mapversion < 10);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
static void drawpixel_safe(void *s, char a)
|
static void drawpixel_safe(void *s, char a)
|
||||||
{
|
{
|
||||||
#if defined __GNUC__
|
#if defined __GNUC__
|
||||||
|
@ -167,7 +184,6 @@ palette_t palookupfog[MAXPALOOKUPS];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static int32_t artversion;
|
static int32_t artversion;
|
||||||
int32_t mapversion=7; // JBF 20040211: default mapversion to 7
|
|
||||||
static void *pic = NULL;
|
static void *pic = NULL;
|
||||||
static char tilefilenum[MAXTILES];
|
static char tilefilenum[MAXTILES];
|
||||||
static int32_t tilefileoffs[MAXTILES];
|
static int32_t tilefileoffs[MAXTILES];
|
||||||
|
@ -413,8 +429,10 @@ void yax_setbunch(int16_t i, int16_t cf, int16_t bunchnum)
|
||||||
|
|
||||||
#if !defined NEW_MAP_FORMAT
|
#if !defined NEW_MAP_FORMAT
|
||||||
*(§or[i].ceilingstat + cf) &= ~YAX_BIT;
|
*(§or[i].ceilingstat + cf) &= ~YAX_BIT;
|
||||||
#endif
|
|
||||||
YAX_BUNCHNUM(i, cf) = 0;
|
YAX_BUNCHNUM(i, cf) = 0;
|
||||||
|
#else
|
||||||
|
YAX_BUNCHNUM(i, cf) = -1;
|
||||||
|
#endif
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -630,6 +648,8 @@ void yax_update(int32_t resetstat)
|
||||||
|
|
||||||
#if !defined NEW_MAP_FORMAT
|
#if !defined NEW_MAP_FORMAT
|
||||||
editstatus = oeditstatus;
|
editstatus = oeditstatus;
|
||||||
|
#else
|
||||||
|
mapversion = (numyaxbunches>0) ? 10 : get_mapversion();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4461,13 +4481,13 @@ static void parascan(int32_t dax1, int32_t dax2, int32_t sectnum, char dastat, i
|
||||||
tsizy = tilesizy[globalpicnum];
|
tsizy = tilesizy[globalpicnum];
|
||||||
|
|
||||||
globalshiftval = logtilesizy;
|
globalshiftval = logtilesizy;
|
||||||
#if !defined CLASSIC_NONPOW2_YSIZE_WALLS
|
|
||||||
// before proper non-power-of-two tilesizy drawing
|
// before proper non-power-of-two tilesizy drawing
|
||||||
if (pow2long[logtilesizy] != tsizy)
|
if (oldnonpow2() && pow2long[logtilesizy] != tsizy)
|
||||||
globalshiftval++;
|
globalshiftval++;
|
||||||
#else
|
#ifdef CLASSIC_NONPOW2_YSIZE_WALLS
|
||||||
// non power-of-two y size textures!
|
// non power-of-two y size textures!
|
||||||
if (pow2long[logtilesizy] != tsizy || tsizy >= 512)
|
if ((!oldnonpow2() && pow2long[logtilesizy] != tsizy) || tsizy >= 512)
|
||||||
{
|
{
|
||||||
globaltilesizy = tsizy;
|
globaltilesizy = tsizy;
|
||||||
globalyscale = 65536 / tsizy;
|
globalyscale = 65536 / tsizy;
|
||||||
|
@ -4642,13 +4662,13 @@ static void setup_globals_wall2(const walltype *wal, uint8_t secvisibility, int3
|
||||||
globvis = mulscale4(globvis, (uint8_t)(secvisibility+16));
|
globvis = mulscale4(globvis, (uint8_t)(secvisibility+16));
|
||||||
|
|
||||||
globalshiftval = logtilesizy;
|
globalshiftval = logtilesizy;
|
||||||
#if !defined CLASSIC_NONPOW2_YSIZE_WALLS
|
|
||||||
// before proper non-power-of-two tilesizy drawing
|
// before proper non-power-of-two tilesizy drawing
|
||||||
if (pow2long[logtilesizy] != tsizy)
|
if (oldnonpow2() && pow2long[logtilesizy] != tsizy)
|
||||||
globalshiftval++;
|
globalshiftval++;
|
||||||
#else
|
#ifdef CLASSIC_NONPOW2_YSIZE_WALLS
|
||||||
// non power-of-two y size textures!
|
// non power-of-two y size textures!
|
||||||
if (pow2long[logtilesizy] != tsizy || tsizy >= 512)
|
if ((!oldnonpow2() && pow2long[logtilesizy] != tsizy) || tsizy >= 512)
|
||||||
{
|
{
|
||||||
globaltilesizy = tsizy;
|
globaltilesizy = tsizy;
|
||||||
globalyscale = divscale13(wal->yrepeat, tsizy);
|
globalyscale = divscale13(wal->yrepeat, tsizy);
|
||||||
|
@ -10504,6 +10524,20 @@ int32_t loadmaphack(const char *filename)
|
||||||
LUNATIC_CB int32_t (*saveboard_maptext)(const char *filename, const vec3_t *dapos, int16_t daang, int16_t dacursectnum);
|
LUNATIC_CB int32_t (*saveboard_maptext)(const char *filename, const vec3_t *dapos, int16_t daang, int16_t dacursectnum);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Get map version of binary map format (< map-int VX).
|
||||||
|
static int32_t get_mapversion(void)
|
||||||
|
{
|
||||||
|
#ifdef YAX_ENABLE
|
||||||
|
if (numyaxbunches > 0)
|
||||||
|
return 9;
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
if (numsectors > MAXSECTORSV7 || numwalls > MAXWALLSV7 || Numsprites > MAXSPRITESV7)
|
||||||
|
return 8;
|
||||||
|
|
||||||
|
return 7;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// saveboard
|
// saveboard
|
||||||
//
|
//
|
||||||
|
@ -10556,15 +10590,7 @@ int32_t saveboard(const char *filename, const vec3_t *dapos, int16_t daang, int1
|
||||||
}
|
}
|
||||||
|
|
||||||
// Determine the map version.
|
// Determine the map version.
|
||||||
#ifdef YAX_ENABLE
|
mapversion = get_mapversion();
|
||||||
if (numyaxbunches > 0)
|
|
||||||
mapversion = 9;
|
|
||||||
else
|
|
||||||
#endif
|
|
||||||
if (numsectors > MAXSECTORSV7 || numwalls > MAXWALLSV7 || numsprites > MAXSPRITESV7)
|
|
||||||
mapversion = 8;
|
|
||||||
else
|
|
||||||
mapversion = 7;
|
|
||||||
tl = B_LITTLE32(mapversion); Bwrite(fil,&tl,4);
|
tl = B_LITTLE32(mapversion); Bwrite(fil,&tl,4);
|
||||||
|
|
||||||
tl = B_LITTLE32(dapos->x); Bwrite(fil,&tl,4);
|
tl = B_LITTLE32(dapos->x); Bwrite(fil,&tl,4);
|
||||||
|
|
Loading…
Reference in a new issue