diff --git a/source/blood/src/mirrors.cpp b/source/blood/src/mirrors.cpp index 6e44e7146..6811022d7 100644 --- a/source/blood/src/mirrors.cpp +++ b/source/blood/src/mirrors.cpp @@ -401,9 +401,7 @@ void DrawMirrors(int x, int y, int z, fixed_t a, fixed_t horiz, int smooth, int gPlayer[viewPlayer].pSprite->cstat |= 514; } } - yax_preparedrawrooms(); renderDrawRoomsQ16(x+mirror[i].at8, y+mirror[i].atc, z+mirror[i].at10, a, horiz, nSector|MAXSECTORS); - yax_drawrooms(viewProcessSprites, nSector, 0, smooth); viewProcessSprites(x+mirror[i].at8, y+mirror[i].atc, z+mirror[i].at10, FixedToInt(a), smooth); short cstat = sector[nSector].ceilingstat; sector[nSector].ceilingstat |= 1; diff --git a/source/build/include/build.h b/source/build/include/build.h index 5909fe80a..8709b9682 100644 --- a/source/build/include/build.h +++ b/source/build/include/build.h @@ -19,10 +19,6 @@ static_assert('\xff' == 255, "Char must be unsigned!"); # error C++11 or greater is required. #endif -#if defined _MSC_VER && _MSC_VER < 1800 -# error Visual Studio 2013 is the minimum supported version. -#endif - #include "compat.h" #include "palette.h" #include "pragmas.h" @@ -47,51 +43,38 @@ enum rendmode_t { #define BANG2RAD (PI * (1./1024.)) -#define MAXSECTORSV8 4096 -#define MAXWALLSV8 16384 -#define MAXSPRITESV8 16384 +enum +{ + MAXSECTORS = 4096, + MAXWALLS = 16384, + MAXSPRITES = 16384, -#define MAXVOXMIPS 5 + MAXVOXMIPS = 5, + + MAXXDIM = 7680, + MAXYDIM = 3200, + MINXDIM = 640, + MINYDIM = 480, + + MAXWALLSB = ((MAXWALLS >> 2) + (MAXWALLS >> 3)), + + MAXVOXELS = 1024, + MAXSTATUS = 1024, + // Maximum number of component tiles in a multi-psky: + MAXPSKYTILES = 16, + MAXSPRITESONSCREEN = 2560, + MAXUNIQHUDID = 256, //Extra slots so HUD models can store animation state without messing game sprites + + TSPR_TEMP = 99, + + CLIPMASK0 = (IntToFixed(1)+1), + CLIPMASK1 = (IntToFixed(256)+64), +}; -# define MAXSECTORS MAXSECTORSV8 -# define MAXWALLS MAXWALLSV8 -# define MAXSPRITES MAXSPRITESV8 -# define MAXXDIM 7680 -# define MAXYDIM 3200 -# define MINXDIM 640 -# define MINYDIM 480 - -#define MAXWALLSB ((MAXWALLS>>2)+(MAXWALLS>>3)) - -#define MAXVOXELS 1024 -#define MAXSTATUS 1024 -// Maximum number of component tiles in a multi-psky: -#define MAXPSKYTILES 16 -#define MAXSPRITESONSCREEN 2560 -#define MAXUNIQHUDID 256 //Extra slots so HUD models can store animation state without messing game sprites - -#define TSPR_TEMP 99 - -#define PR_LIGHT_PRIO_MAX 0 -#define PR_LIGHT_PRIO_MAX_GAME 1 -#define PR_LIGHT_PRIO_HIGH 2 -#define PR_LIGHT_PRIO_HIGH_GAME 3 -#define PR_LIGHT_PRIO_LOW 4 -#define PR_LIGHT_PRIO_LOW_GAME 5 - -#define SPRITES_OF_SECT(Sectnum, Iter) Iter=headspritesect[Sectnum]; Iter>=0; Iter=nextspritesect[Iter] - - -#define CLIPMASK0 (IntToFixed(1)+1) -#define CLIPMASK1 (IntToFixed(256)+64) - -#define NEXTWALL(i) (wall[wall[i].nextwall]) #define POINT2(i) (wall[wall[i].point2]) -// max x/y val (= max editorgridextent in Mapster32) -#define BXY_MAX 524288 // rotatesprite 'orientation' (actually much more) bits enum { @@ -127,22 +110,6 @@ enum { # define EXTERN extern #endif -#define TrackerCast(x) x - - -// Links to various ABIs specifying (or documenting non-normatively) the -// alignment requirements of aggregates: -// -// System V AMD64: http://www.x86-64.org/documentation/abi-0.99.pdf -// (x86-64.org down as of 2013-02-02?) -// "An array uses the same alignment as its elements, except that a local or global -// array variable of length at least 16 bytes or a C99 variable-length array variable -// always has alignment of at least 16 bytes." -// (Not reproducible with GCC or LuaJIT on Ubuntu) -// -// Win64: http://msdn.microsoft.com/en-us/library/9dbwhz68.aspx -// -// x86: http://en.wikipedia.org/wiki/Data_structure_alignment#Typical_alignment_of_C_structs_on_x86 enum { SPR_XFLIP = 4, @@ -352,7 +319,7 @@ typedef struct { // New multi-psky EXTERN TArray multipskies; -static FORCE_INLINE psky_t *getpskyidx(int32_t picnum) +static inline psky_t *getpskyidx(int32_t picnum) { for (auto& sky : multipskies) if (picnum == sky.tilenum) return &sky; diff --git a/source/sw/src/draw.cpp b/source/sw/src/draw.cpp index ce45d14cb..23a606929 100644 --- a/source/sw/src/draw.cpp +++ b/source/sw/src/draw.cpp @@ -1212,10 +1212,10 @@ void PrintSpriteInfo(PLAYERp pp) } if (sp) { - Printf("POSX:%d, ", TrackerCast(sp->x)); - Printf("POSY:%d, ", TrackerCast(sp->y)); - Printf("POSZ:%d,", TrackerCast(sp->z)); - Printf("ANG:%d\n", TrackerCast(sp->ang)); + Printf("POSX:%d, ", sp->x); + Printf("POSY:%d, ", sp->y); + Printf("POSZ:%d,", sp->z); + Printf("ANG:%d\n", sp->ang); } } } diff --git a/source/sw/src/jsector.cpp b/source/sw/src/jsector.cpp index 3680c5a51..831f197d9 100644 --- a/source/sw/src/jsector.cpp +++ b/source/sw/src/jsector.cpp @@ -374,8 +374,8 @@ void JS_InitMirrors(void) if (!Found_Cam) { - Printf("Cound not find the camera view sprite for match %d\n",TrackerCast(wall[i].hitag)); - Printf("Map Coordinates: x = %d, y = %d\n",TrackerCast(wall[i].x),TrackerCast(wall[i].y)); + Printf("Cound not find the camera view sprite for match %d\n", wall[i].hitag); + Printf("Map Coordinates: x = %d, y = %d\n", wall[i].x, wall[i].y); break; } @@ -402,9 +402,9 @@ void JS_InitMirrors(void) if (!Found_Cam) { - Printf("Did not find drawtotile for camera number %d\n",mirrorcnt); - Printf("wall[%d].hitag == %d\n",i,TrackerCast(wall[i].hitag)); - Printf("Map Coordinates: x = %d, y = %d\n", TrackerCast(wall[i].x), TrackerCast(wall[i].y)); + Printf("Did not find drawtotile for camera number %d\n", mirrorcnt); + Printf("wall[%d].hitag == %d\n", i, wall[i].hitag); + Printf("Map Coordinates: x = %d, y = %d\n", wall[i].x, wall[i].y); RESET_BOOL1(&sprite[mirror[mirrorcnt].camera]); } } @@ -1205,16 +1205,16 @@ JS_PlockError(short wall_num, short t) switch (t) { case 1: - Printf("wall %d, x %d, y %d, pic %d\n", wall_num, TrackerCast(wall[wall_num].x), TrackerCast(wall[wall_num].y), TrackerCast(wall[wall_num].picnum)); + Printf("wall %d, x %d, y %d, pic %d\n", wall_num, wall[wall_num].x, wall[wall_num].y, wall[wall_num].picnum); break; case 2: - Printf("wall %d, x %d, y %d, OVERpic %d\n", wall_num, TrackerCast(wall[wall_num].x), TrackerCast(wall[wall_num].y), TrackerCast(wall[wall_num].overpicnum)); + Printf("wall %d, x %d, y %d, OVERpic %d\n", wall_num, wall[wall_num].x, wall[wall_num].y, wall[wall_num].overpicnum); break; case 3: - Printf("sector %d, ceiling %d\n", wall_num, TrackerCast(sector[wall_num].ceilingpicnum)); + Printf("sector %d, ceiling %d\n", wall_num, sector[wall_num].ceilingpicnum); break; case 4: - Printf("sector %d, floor %d\n", wall_num, TrackerCast(sector[wall_num].floorpicnum)); + Printf("sector %d, floor %d\n", wall_num, sector[wall_num].floorpicnum); break; } } diff --git a/source/sw/src/sprite.cpp b/source/sw/src/sprite.cpp index 688ece610..55f93eda2 100644 --- a/source/sw/src/sprite.cpp +++ b/source/sw/src/sprite.cpp @@ -1082,7 +1082,7 @@ ActorTestSpawn(SPRITEp sp) default: c = "?"; break; } Printf("WARNING: skill-masked %s at %d,%d,%d not being killed because it " - "activates something\n", c, TrackerCast(sp->x), TrackerCast(sp->y), TrackerCast(sp->z)); + "activates something\n", c, sp->x, sp->y, sp->z); return true; } //always spawn girls in addons @@ -2882,7 +2882,7 @@ SpriteSetup(void) { if (sprite[i].hitag == sp->hitag && sprite[i].lotag == sp->lotag) { - I_Error("Two VIEW_THRU_ tags with same match found on level\n1: x %d, y %d \n2: x %d, y %d", TrackerCast(sp->x), TrackerCast(sp->y), TrackerCast(sprite[i].x), TrackerCast(sprite[i].y)); + I_Error("Two VIEW_THRU_ tags with same match found on level\n1: x %d, y %d \n2: x %d, y %d", sp->x, sp->y, sprite[i].x, sprite[i].y); } } change_sprite_stat(SpriteNum, STAT_FAF); diff --git a/source/sw/src/track.cpp b/source/sw/src/track.cpp index c35c451d8..d9f04782b 100644 --- a/source/sw/src/track.cpp +++ b/source/sw/src/track.cpp @@ -1597,7 +1597,7 @@ PlaceActorsOnTracks(void) if (Track[u->track].NumPoints == 0) { - Printf("WARNING: Sprite %d (%d, %d) placed on track %d with no points!\n", i, TrackerCast(sp->x), TrackerCast(sp->y), u->track); + Printf("WARNING: Sprite %d (%d, %d) placed on track %d with no points!\n", i, sp->x, sp->y, u->track); continue; }