mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Allow smaller flat sizes
With mobj scale, smaller flats are pretty reasonable to want to use. Fixes a visual bug in Endless Mine.
This commit is contained in:
parent
2890ce500a
commit
e202f244b9
5 changed files with 83 additions and 112 deletions
|
|
@ -31,6 +31,7 @@
|
||||||
#include "../p_local.h" // stplyr
|
#include "../p_local.h" // stplyr
|
||||||
#include "../g_game.h" // players
|
#include "../g_game.h" // players
|
||||||
#include "../k_hud.h"
|
#include "../k_hud.h"
|
||||||
|
#include "../r_plane.h" // R_FlatDimensionsFromLumpSize
|
||||||
|
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include "../i_video.h" // for rendermode != render_glide
|
#include "../i_video.h" // for rendermode != render_glide
|
||||||
|
|
@ -482,42 +483,17 @@ void HWR_DrawPic(INT32 x, INT32 y, lumpnum_t lumpnum)
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
void HWR_DrawFlatFill (INT32 x, INT32 y, INT32 w, INT32 h, lumpnum_t flatlumpnum)
|
void HWR_DrawFlatFill (INT32 x, INT32 y, INT32 w, INT32 h, lumpnum_t flatlumpnum)
|
||||||
{
|
{
|
||||||
FOutVector v[4];
|
|
||||||
double dflatsize;
|
|
||||||
INT32 flatflag;
|
|
||||||
const size_t len = W_LumpLength(flatlumpnum);
|
const size_t len = W_LumpLength(flatlumpnum);
|
||||||
|
|
||||||
switch (len)
|
size_t sflatsize;
|
||||||
{
|
double dflatsize;
|
||||||
case 4194304: // 2048x2048 lump
|
INT32 flatflag;
|
||||||
dflatsize = 2048.0f;
|
|
||||||
flatflag = 2047;
|
FOutVector v[4];
|
||||||
break;
|
|
||||||
case 1048576: // 1024x1024 lump
|
sflatsize = R_FlatDimensionsFromLumpSize(len);
|
||||||
dflatsize = 1024.0f;
|
dflatsize = (double)sflatsize;
|
||||||
flatflag = 1023;
|
flatflag = sflatsize - 1;
|
||||||
break;
|
|
||||||
case 262144:// 512x512 lump
|
|
||||||
dflatsize = 512.0f;
|
|
||||||
flatflag = 511;
|
|
||||||
break;
|
|
||||||
case 65536: // 256x256 lump
|
|
||||||
dflatsize = 256.0f;
|
|
||||||
flatflag = 255;
|
|
||||||
break;
|
|
||||||
case 16384: // 128x128 lump
|
|
||||||
dflatsize = 128.0f;
|
|
||||||
flatflag = 127;
|
|
||||||
break;
|
|
||||||
case 1024: // 32x32 lump
|
|
||||||
dflatsize = 32.0f;
|
|
||||||
flatflag = 31;
|
|
||||||
break;
|
|
||||||
default: // 64x64 lump
|
|
||||||
dflatsize = 64.0f;
|
|
||||||
flatflag = 63;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 3--2
|
// 3--2
|
||||||
// | /|
|
// | /|
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,7 @@
|
||||||
// SRB2Kart
|
// SRB2Kart
|
||||||
#include "../k_kart.h" // HITLAGJITTERS
|
#include "../k_kart.h" // HITLAGJITTERS
|
||||||
#include "../r_fps.h"
|
#include "../r_fps.h"
|
||||||
|
#include "../r_plane.h" // R_FlatDimensionsFromLumpSize
|
||||||
|
|
||||||
#ifdef NEWCLIP
|
#ifdef NEWCLIP
|
||||||
#include "hw_clip.h"
|
#include "hw_clip.h"
|
||||||
|
|
@ -393,31 +394,9 @@ static void HWR_RenderPlane(subsector_t *subsector, extrasubsector_t *xsub, bool
|
||||||
if (levelflat->type == LEVELFLAT_FLAT)
|
if (levelflat->type == LEVELFLAT_FLAT)
|
||||||
{
|
{
|
||||||
size_t len = W_LumpLength(levelflat->u.flat.lumpnum);
|
size_t len = W_LumpLength(levelflat->u.flat.lumpnum);
|
||||||
switch (len)
|
size_t sflatsize = R_FlatDimensionsFromLumpSize(len);
|
||||||
{
|
fflatwidth = fflatheight = (double)sflatsize;
|
||||||
case 4194304: // 2048x2048 lump
|
flatflag = sflatsize-1;
|
||||||
fflatwidth = fflatheight = 2048.0f;
|
|
||||||
break;
|
|
||||||
case 1048576: // 1024x1024 lump
|
|
||||||
fflatwidth = fflatheight = 1024.0f;
|
|
||||||
break;
|
|
||||||
case 262144:// 512x512 lump
|
|
||||||
fflatwidth = fflatheight = 512.0f;
|
|
||||||
break;
|
|
||||||
case 65536: // 256x256 lump
|
|
||||||
fflatwidth = fflatheight = 256.0f;
|
|
||||||
break;
|
|
||||||
case 16384: // 128x128 lump
|
|
||||||
fflatwidth = fflatheight = 128.0f;
|
|
||||||
break;
|
|
||||||
case 1024: // 32x32 lump
|
|
||||||
fflatwidth = fflatheight = 32.0f;
|
|
||||||
break;
|
|
||||||
default: // 64x64 lump
|
|
||||||
fflatwidth = fflatheight = 64.0f;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
flatflag = ((INT32)fflatwidth)-1;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -2756,31 +2735,9 @@ static void HWR_RenderPolyObjectPlane(polyobj_t *polysector, boolean isceiling,
|
||||||
if (levelflat->type == LEVELFLAT_FLAT)
|
if (levelflat->type == LEVELFLAT_FLAT)
|
||||||
{
|
{
|
||||||
size_t len = W_LumpLength(levelflat->u.flat.lumpnum);
|
size_t len = W_LumpLength(levelflat->u.flat.lumpnum);
|
||||||
switch (len)
|
size_t sflatsize = R_FlatDimensionsFromLumpSize(len);
|
||||||
{
|
fflatwidth = fflatheight = (double)sflatsize;
|
||||||
case 4194304: // 2048x2048 lump
|
flatflag = sflatsize-1;
|
||||||
fflatwidth = fflatheight = 2048.0f;
|
|
||||||
break;
|
|
||||||
case 1048576: // 1024x1024 lump
|
|
||||||
fflatwidth = fflatheight = 1024.0f;
|
|
||||||
break;
|
|
||||||
case 262144:// 512x512 lump
|
|
||||||
fflatwidth = fflatheight = 512.0f;
|
|
||||||
break;
|
|
||||||
case 65536: // 256x256 lump
|
|
||||||
fflatwidth = fflatheight = 256.0f;
|
|
||||||
break;
|
|
||||||
case 16384: // 128x128 lump
|
|
||||||
fflatwidth = fflatheight = 128.0f;
|
|
||||||
break;
|
|
||||||
case 1024: // 32x32 lump
|
|
||||||
fflatwidth = fflatheight = 32.0f;
|
|
||||||
break;
|
|
||||||
default: // 64x64 lump
|
|
||||||
fflatwidth = fflatheight = 64.0f;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
flatflag = ((INT32)fflatwidth)-1;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -89,6 +89,7 @@ visplane_t *R_CheckPlane(visplane_t *pl, INT32 start, INT32 stop);
|
||||||
void R_ExpandPlane(visplane_t *pl, INT32 start, INT32 stop);
|
void R_ExpandPlane(visplane_t *pl, INT32 start, INT32 stop);
|
||||||
void R_PlaneBounds(visplane_t *plane);
|
void R_PlaneBounds(visplane_t *plane);
|
||||||
|
|
||||||
|
size_t R_FlatDimensionsFromLumpSize(size_t size);
|
||||||
void R_CheckFlatLength(size_t size);
|
void R_CheckFlatLength(size_t size);
|
||||||
boolean R_CheckPowersOfTwo(void);
|
boolean R_CheckPowersOfTwo(void);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -656,6 +656,44 @@ boolean R_CheckPowersOfTwo(void)
|
||||||
return ds_powersoftwo;
|
return ds_powersoftwo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// R_FlatDimensionsFromLumpSize
|
||||||
|
//
|
||||||
|
// Returns the flat's square size from its lump length.
|
||||||
|
//
|
||||||
|
size_t R_FlatDimensionsFromLumpSize(size_t size)
|
||||||
|
{
|
||||||
|
switch (size)
|
||||||
|
{
|
||||||
|
case 4194304: // 2048x2048 lump
|
||||||
|
return 2048;
|
||||||
|
|
||||||
|
case 1048576: // 1024x1024 lump
|
||||||
|
return 1024;
|
||||||
|
|
||||||
|
case 262144:// 512x512 lump
|
||||||
|
return 512;
|
||||||
|
|
||||||
|
case 65536: // 256x256 lump
|
||||||
|
return 256;
|
||||||
|
|
||||||
|
case 16384: // 128x128 lump
|
||||||
|
return 128;
|
||||||
|
|
||||||
|
case 1024: // 32x32 lump
|
||||||
|
return 32;
|
||||||
|
|
||||||
|
case 256: // 16x16 lump
|
||||||
|
return 16;
|
||||||
|
|
||||||
|
case 64: // 8x8 lump
|
||||||
|
return 8;
|
||||||
|
|
||||||
|
default: // 64x64 lump
|
||||||
|
return 64;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// R_CheckFlatLength
|
// R_CheckFlatLength
|
||||||
//
|
//
|
||||||
|
|
@ -707,6 +745,20 @@ void R_CheckFlatLength(size_t size)
|
||||||
nflatshiftup = 11;
|
nflatshiftup = 11;
|
||||||
ds_flatwidth = ds_flatheight = 32;
|
ds_flatwidth = ds_flatheight = 32;
|
||||||
break;
|
break;
|
||||||
|
case 256: // 16x16 lump
|
||||||
|
nflatmask = 0xF0;
|
||||||
|
nflatxshift = 28;
|
||||||
|
nflatyshift = 24;
|
||||||
|
nflatshiftup = 12;
|
||||||
|
ds_flatwidth = ds_flatheight = 16;
|
||||||
|
break;
|
||||||
|
case 64: // 8x8 lump
|
||||||
|
nflatmask = 0x38;
|
||||||
|
nflatxshift = 29;
|
||||||
|
nflatyshift = 26;
|
||||||
|
nflatshiftup = 13;
|
||||||
|
ds_flatwidth = ds_flatheight = 8;
|
||||||
|
break;
|
||||||
default: // 64x64 lump
|
default: // 64x64 lump
|
||||||
nflatmask = 0xFC0;
|
nflatmask = 0xFC0;
|
||||||
nflatxshift = 26;
|
nflatxshift = 26;
|
||||||
|
|
@ -774,30 +826,7 @@ Rloadflats (INT32 i, INT32 w)
|
||||||
W_ReadLumpHeaderPwad(wadnum, lumpnum, header, sizeof header, 0);
|
W_ReadLumpHeaderPwad(wadnum, lumpnum, header, sizeof header, 0);
|
||||||
lumplength = W_LumpLengthPwad(wadnum, lumpnum);
|
lumplength = W_LumpLengthPwad(wadnum, lumpnum);
|
||||||
|
|
||||||
switch (lumplength)
|
flatsize = R_FlatDimensionsFromLumpSize(lumplength);
|
||||||
{
|
|
||||||
case 4194304: // 2048x2048 lump
|
|
||||||
flatsize = 2048;
|
|
||||||
break;
|
|
||||||
case 1048576: // 1024x1024 lump
|
|
||||||
flatsize = 1024;
|
|
||||||
break;
|
|
||||||
case 262144:// 512x512 lump
|
|
||||||
flatsize = 512;
|
|
||||||
break;
|
|
||||||
case 65536: // 256x256 lump
|
|
||||||
flatsize = 256;
|
|
||||||
break;
|
|
||||||
case 16384: // 128x128 lump
|
|
||||||
flatsize = 128;
|
|
||||||
break;
|
|
||||||
case 1024: // 32x32 lump
|
|
||||||
flatsize = 32;
|
|
||||||
break;
|
|
||||||
default: // 64x64 lump
|
|
||||||
flatsize = 64;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//CONS_Printf("\n\"%s\" is a flat, dimensions %d x %d",W_CheckNameForNumPwad((UINT16)w,texstart+j),flatsize,flatsize);
|
//CONS_Printf("\n\"%s\" is a flat, dimensions %d x %d",W_CheckNameForNumPwad((UINT16)w,texstart+j),flatsize,flatsize);
|
||||||
texture = textures[i] = Z_Calloc(sizeof(texture_t) + sizeof(texpatch_t), PU_STATIC, NULL);
|
texture = textures[i] = Z_Calloc(sizeof(texture_t) + sizeof(texpatch_t), PU_STATIC, NULL);
|
||||||
|
|
|
||||||
|
|
@ -1236,19 +1236,19 @@ void V_DrawFlatFill(INT32 x, INT32 y, INT32 w, INT32 h, lumpnum_t flatnum)
|
||||||
{
|
{
|
||||||
case 4194304: // 2048x2048 lump
|
case 4194304: // 2048x2048 lump
|
||||||
lflatsize = 2048;
|
lflatsize = 2048;
|
||||||
flatshift = 10;
|
flatshift = 11;
|
||||||
break;
|
break;
|
||||||
case 1048576: // 1024x1024 lump
|
case 1048576: // 1024x1024 lump
|
||||||
lflatsize = 1024;
|
lflatsize = 1024;
|
||||||
flatshift = 9;
|
flatshift = 10;
|
||||||
break;
|
break;
|
||||||
case 262144:// 512x512 lump
|
case 262144:// 512x512 lump
|
||||||
lflatsize = 512;
|
lflatsize = 512;
|
||||||
flatshift = 8;
|
flatshift = 9;
|
||||||
break;
|
break;
|
||||||
case 65536: // 256x256 lump
|
case 65536: // 256x256 lump
|
||||||
lflatsize = 256;
|
lflatsize = 256;
|
||||||
flatshift = 7;
|
flatshift = 8;
|
||||||
break;
|
break;
|
||||||
case 16384: // 128x128 lump
|
case 16384: // 128x128 lump
|
||||||
lflatsize = 128;
|
lflatsize = 128;
|
||||||
|
|
@ -1258,6 +1258,14 @@ void V_DrawFlatFill(INT32 x, INT32 y, INT32 w, INT32 h, lumpnum_t flatnum)
|
||||||
lflatsize = 32;
|
lflatsize = 32;
|
||||||
flatshift = 5;
|
flatshift = 5;
|
||||||
break;
|
break;
|
||||||
|
case 256: // 16x16 lump
|
||||||
|
lflatsize = 16;
|
||||||
|
flatshift = 4;
|
||||||
|
break;
|
||||||
|
case 64: // 8x8 lump
|
||||||
|
lflatsize = 8;
|
||||||
|
flatshift = 3;
|
||||||
|
break;
|
||||||
default: // 64x64 lump
|
default: // 64x64 lump
|
||||||
lflatsize = 64;
|
lflatsize = 64;
|
||||||
flatshift = 6;
|
flatshift = 6;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue