Merge branch 'back_to_basics2' into Blood_InputReworking

# Conflicts:
#	source/blood/src/hudsprites.cpp
#	source/exhumed/src/status.cpp
#	source/games/duke/src/game_misc.cpp
#	source/sw/src/draw.cpp
This commit is contained in:
Mitchell Richters 2020-09-22 07:34:39 +10:00
commit d40a2d3e95
20 changed files with 72 additions and 51 deletions

View file

@ -207,9 +207,9 @@ if( MSVC )
# Function-level linking # Function-level linking
# Disable run-time type information # Disable run-time type information
if ( HAVE_VULKAN ) if ( HAVE_VULKAN )
set( ALL_C_FLAGS "/GF /Gy /permissive- /DHAVE_VULKAN /DHAVE_SOFTPOLY" ) set( ALL_C_FLAGS "/GF /Gy /permissive- /DHAVE_VULKAN" )
else() else()
set( ALL_C_FLAGS "/GF /Gy /permissive- /DHAVE_SOFTPOLY" ) set( ALL_C_FLAGS "/GF /Gy /permissive-" )
endif() endif()
# Use SSE 2 as minimum always as the true color drawers needs it for __vectorcall # Use SSE 2 as minimum always as the true color drawers needs it for __vectorcall
@ -253,9 +253,9 @@ if( MSVC )
else() else()
set( REL_LINKER_FLAGS "" ) set( REL_LINKER_FLAGS "" )
if ( HAVE_VULKAN ) if ( HAVE_VULKAN )
set( ALL_C_FLAGS "-ffp-contract=off -DHAVE_VULKAN -DHAVE_SOFTPOLY" ) set( ALL_C_FLAGS "-ffp-contract=off -DHAVE_VULKAN" )
else() else()
set( ALL_C_FLAGS "-ffp-contract=off -DHAVE_SOFTPOLY" ) set( ALL_C_FLAGS "-ffp-contract=off" )
endif() endif()
set( ALL_C_FLAGS "${ALL_C_FLAGS} -DUSE_OPENGL=1 -DNOASM=1" ) set( ALL_C_FLAGS "${ALL_C_FLAGS} -DUSE_OPENGL=1 -DNOASM=1" )

View file

@ -680,7 +680,6 @@ set( POLYRENDER_SOURCES
# without being compiled. # without being compiled.
set( NOT_COMPILED_SOURCE_FILES set( NOT_COMPILED_SOURCE_FILES
${OTHER_SYSTEM_SOURCES} ${OTHER_SYSTEM_SOURCES}
${POLYRENDER_SOURCES}
sc_man_scanner.h sc_man_scanner.h
common/engine/sc_man_scanner.re common/engine/sc_man_scanner.re
common/scripting/frontend/zcc-parse.lemon common/scripting/frontend/zcc-parse.lemon
@ -704,7 +703,6 @@ set( VM_JIT_SOURCES
set( FASTMATH_SOURCES set( FASTMATH_SOURCES
common/rendering/gl_load/gl_load.c common/rendering/gl_load/gl_load.c
common/rendering/polyrenderer/poly_all.cpp
common/textures/hires/hqnx/init.cpp common/textures/hires/hqnx/init.cpp
common/textures/hires/hqnx/hq2x.cpp common/textures/hires/hqnx/hq2x.cpp
common/textures/hires/hqnx/hq3x.cpp common/textures/hires/hqnx/hq3x.cpp
@ -755,7 +753,7 @@ set (POLYBACKEND_SOURCES
common/rendering/polyrenderer/backend/poly_hwtexture.cpp common/rendering/polyrenderer/backend/poly_hwtexture.cpp
common/rendering/polyrenderer/backend/poly_renderstate.cpp common/rendering/polyrenderer/backend/poly_renderstate.cpp
) )
set (FASTMATH_SOURCES ${FASTMATH_SOURCES} ${POLYBACKEND_SOURCES}) set (FASTMATH_SOURCES ${FASTMATH_SOURCES})
set (PCH_SOURCES set (PCH_SOURCES

View file

@ -103,7 +103,7 @@ void hudDraw(PLAYER *gView, VIEW *pView, int nSectnum, double bobx, double boby,
double look_anghalf = getHalfLookAng(pView->q16look_ang, gView->q16look_ang, cl_syncinput, smoothratio); double look_anghalf = getHalfLookAng(pView->q16look_ang, gView->q16look_ang, cl_syncinput, smoothratio);
double looking_arc = fabs(look_anghalf) / 4.5; double looking_arc = fabs(look_anghalf) / 4.5;
DrawCrosshair(kCrosshairTile, gView->pXSprite->health >> 4, -look_anghalf, 2); DrawCrosshair(kCrosshairTile, gView->pXSprite->health >> 4, -look_anghalf, 0, 2);
double cX = 160 - look_anghalf; double cX = 160 - look_anghalf;
double cY = 220 + looking_arc; double cY = 220 + looking_arc;

View file

@ -706,9 +706,10 @@ void MyLoadSave::Save(void)
int nXSprite = sprite[nSprite].extra; int nXSprite = sprite[nSprite].extra;
if (nXSprite > 0) if (nXSprite > 0)
{ {
auto saved = xsprite[nXSprite].aiState;
IndexAIState(xsprite[nXSprite].aiState); IndexAIState(xsprite[nXSprite].aiState);
Write(&xsprite[nXSprite], sizeof(XSPRITE)); Write(&xsprite[nXSprite], sizeof(XSPRITE));
UnindexAIState(xsprite[nXSprite].aiState); xsprite[nXSprite].aiState = saved;
} }
} }
} }

View file

@ -178,7 +178,7 @@ fixed_t qglobalhoriz;
float fglobalposx, fglobalposy, fglobalposz; float fglobalposx, fglobalposy, fglobalposz;
int16_t globalang, globalcursectnum; int16_t globalang, globalcursectnum;
fixed_t qglobalang; fixed_t qglobalang;
int32_t globalpal, cosglobalang, singlobalang; int32_t globalpal, globalfloorpal, cosglobalang, singlobalang;
int32_t cosviewingrangeglobalang, sinviewingrangeglobalang; int32_t cosviewingrangeglobalang, sinviewingrangeglobalang;
int32_t xyaspect; int32_t xyaspect;
@ -1767,7 +1767,7 @@ void renderDrawMapView(int32_t dax, int32_t day, int32_t zoome, int16_t ang)
globalorientation = (int32_t)sec->floorstat; globalorientation = (int32_t)sec->floorstat;
if ((globalorientation&1) != 0) continue; if ((globalorientation&1) != 0) continue;
globalpal = sec->floorpal; globalfloorpal = globalpal = sec->floorpal;
globalpicnum = sec->floorpicnum; globalpicnum = sec->floorpicnum;
if ((unsigned)globalpicnum >= (unsigned)MAXTILES) globalpicnum = 0; if ((unsigned)globalpicnum >= (unsigned)MAXTILES) globalpicnum = 0;

View file

@ -1494,6 +1494,7 @@ static int32_t polymost_md3draw(md3model_t *m, tspriteptr_t tspr)
} }
#endif #endif
int palid = TRANSLATION(Translation_Remap + curbasepal, globalpal); int palid = TRANSLATION(Translation_Remap + curbasepal, globalpal);
GLInterface.SetFade(sector[tspr->sectnum].floorpal);
GLInterface.SetTexture(-1, tex, palid, CLAMP_XY); GLInterface.SetTexture(-1, tex, palid, CLAMP_XY);
if (tspr->clipdist & TSPR_FLAGS_MDHACK) if (tspr->clipdist & TSPR_FLAGS_MDHACK)

View file

@ -299,7 +299,7 @@ static void polymost_drawpoly(vec2f_t const * const dpxy, int32_t const n, int32
} }
if (!lookups.checkTable(globalpal)) if (!lookups.checkTable(globalpal))
globalpal = 0; globalfloorpal = globalpal = 0;
//Load texture (globalpicnum) //Load texture (globalpicnum)
setgotpic(globalpicnum); setgotpic(globalpicnum);
@ -377,6 +377,7 @@ static void polymost_drawpoly(vec2f_t const * const dpxy, int32_t const n, int32
int palid = TRANSLATION(Translation_Remap + curbasepal, globalpal); int palid = TRANSLATION(Translation_Remap + curbasepal, globalpal);
GLInterface.SetFade(globalfloorpal);
bool success = GLInterface.SetTexture(globalpicnum, tileGetTexture(globalpicnum), palid, sampleroverride); bool success = GLInterface.SetTexture(globalpicnum, tileGetTexture(globalpicnum), palid, sampleroverride);
if (!success) if (!success)
{ {
@ -1567,7 +1568,7 @@ static void polymost_drawalls(int32_t const bunch)
globalpicnum = sec->floorpicnum; globalpicnum = sec->floorpicnum;
globalshade = sec->floorshade; globalshade = sec->floorshade;
globalpal = sec->floorpal; globalfloorpal = globalpal = sec->floorpal;
globalorientation = sec->floorstat; globalorientation = sec->floorstat;
GLInterface.SetVisibility(sectorVisibility(sectnum)); GLInterface.SetVisibility(sectorVisibility(sectnum));
@ -1808,7 +1809,7 @@ static void polymost_drawalls(int32_t const bunch)
globalpicnum = sec->ceilingpicnum; globalpicnum = sec->ceilingpicnum;
globalshade = sec->ceilingshade; globalshade = sec->ceilingshade;
globalpal = sec->ceilingpal; globalfloorpal = globalpal = sec->ceilingpal;
globalorientation = sec->ceilingstat; globalorientation = sec->ceilingstat;
GLInterface.SetVisibility(sectorVisibility(sectnum)); GLInterface.SetVisibility(sectorVisibility(sectnum));
@ -2074,7 +2075,7 @@ static void polymost_drawalls(int32_t const bunch)
if (((cy0 < ocy0) || (cy1 < ocy1)) && (!((sec->ceilingstat&sector[nextsectnum].ceilingstat)&1))) if (((cy0 < ocy0) || (cy1 < ocy1)) && (!((sec->ceilingstat&sector[nextsectnum].ceilingstat)&1)))
{ {
globalpicnum = wal->picnum; globalshade = wal->shade; globalpal = (int32_t)((uint8_t)wal->pal); globalpicnum = wal->picnum; globalshade = wal->shade; globalfloorpal = globalpal = (int32_t)((uint8_t)wal->pal);
GLInterface.SetVisibility(sectorVisibility(sectnum)); GLInterface.SetVisibility(sectorVisibility(sectnum));
globalorientation = wal->cstat; globalorientation = wal->cstat;
tileUpdatePicnum(&globalpicnum, wallnum+16384); tileUpdatePicnum(&globalpicnum, wallnum+16384);
@ -2109,7 +2110,7 @@ static void polymost_drawalls(int32_t const bunch)
xtex.u += (float)(nwal->xpanning - wal->xpanning) * xtex.d; xtex.u += (float)(nwal->xpanning - wal->xpanning) * xtex.d;
ytex.u += (float)(nwal->xpanning - wal->xpanning) * ytex.d; ytex.u += (float)(nwal->xpanning - wal->xpanning) * ytex.d;
} }
globalpicnum = nwal->picnum; globalshade = nwal->shade; globalpal = (int32_t)((uint8_t)nwal->pal); globalpicnum = nwal->picnum; globalshade = nwal->shade; globalfloorpal = globalpal = (int32_t)((uint8_t)nwal->pal);
GLInterface.SetVisibility(sectorVisibility(sectnum)); GLInterface.SetVisibility(sectorVisibility(sectnum));
globalorientation = nwal->cstat; globalorientation = nwal->cstat;
tileUpdatePicnum(&globalpicnum, wallnum+16384); tileUpdatePicnum(&globalpicnum, wallnum+16384);
@ -2150,7 +2151,7 @@ static void polymost_drawalls(int32_t const bunch)
globalpicnum = (nextsectnum < 0) ? wal->picnum : wal->overpicnum; globalpicnum = (nextsectnum < 0) ? wal->picnum : wal->overpicnum;
globalshade = wal->shade; globalshade = wal->shade;
globalpal = wal->pal; globalfloorpal = globalpal = wal->pal;
GLInterface.SetVisibility(sectorVisibility(sectnum)); GLInterface.SetVisibility(sectorVisibility(sectnum));
globalorientation = wal->cstat; globalorientation = wal->cstat;
tileUpdatePicnum(&globalpicnum, wallnum+16384); tileUpdatePicnum(&globalpicnum, wallnum+16384);
@ -2670,7 +2671,7 @@ static void polymost_drawmaskwallinternal(int32_t wallIndex)
GLInterface.SetVisibility(sectorVisibility(sectnum)); GLInterface.SetVisibility(sectorVisibility(sectnum));
globalshade = (int32_t)wal->shade; globalshade = (int32_t)wal->shade;
globalpal = (int32_t)((uint8_t)wal->pal); globalfloorpal = globalpal = (int32_t)((uint8_t)wal->pal);
vec2f_t s0 = { (float)(wal->x-globalposx), (float)(wal->y-globalposy) }; vec2f_t s0 = { (float)(wal->x-globalposx), (float)(wal->y-globalposy) };
vec2f_t p0 = { s0.y*gcosang - s0.x*gsinang, s0.x*gcosang2 + s0.y*gsinang2 }; vec2f_t p0 = { s0.y*gcosang - s0.x*gsinang, s0.x*gcosang2 + s0.y*gsinang2 };
@ -3043,6 +3044,7 @@ void polymost_drawsprite(int32_t snum)
globalpicnum = tspr->picnum; globalpicnum = tspr->picnum;
globalshade = tspr->shade; globalshade = tspr->shade;
globalpal = tspr->pal; globalpal = tspr->pal;
globalfloorpal = sector[tspr->sectnum].floorpal;
globalorientation = tspr->cstat; globalorientation = tspr->cstat;
GLInterface.SetVisibility(sectorVisibility(tspr->sectnum)); GLInterface.SetVisibility(sectorVisibility(tspr->sectnum));

View file

@ -1008,7 +1008,7 @@ voxmodel_t *loadkvxfrombuf(const char *kvxbuffer, int32_t length)
//Draw voxel model as perfect cubes //Draw voxel model as perfect cubes
// Note: This is a hopeless mess that totally forfeits any chance of using a vertex buffer with its messy coordinate adjustments. :( // Note: This is a hopeless mess that totally forfeits any chance of using a vertex buffer with its messy coordinate adjustments. :(
int32_t polymost_voxdraw(voxmodel_t *m, tspriteptr_t const tspr) int32_t polymost_voxdraw(voxmodel_t* m, tspriteptr_t const tspr)
{ {
// float clut[6] = {1.02,1.02,0.94,1.06,0.98,0.98}; // float clut[6] = {1.02,1.02,0.94,1.06,0.98,0.98};
float f, g, k0, zoff; float f, g, k0, zoff;
@ -1016,7 +1016,7 @@ int32_t polymost_voxdraw(voxmodel_t *m, tspriteptr_t const tspr)
if ((intptr_t)m == (intptr_t)(-1)) // hackhackhack if ((intptr_t)m == (intptr_t)(-1)) // hackhackhack
return 0; return 0;
if ((tspr->cstat&48)==32) if ((tspr->cstat & 48) == 32)
return 0; return 0;
polymost_outputGLDebugMessage(3, "polymost_voxdraw(m:%p, tspr:%p)", m, tspr); polymost_outputGLDebugMessage(3, "polymost_voxdraw(m:%p, tspr:%p)", m, tspr);
@ -1150,6 +1150,7 @@ int32_t polymost_voxdraw(voxmodel_t *m, tspriteptr_t const tspr)
} }
GLInterface.SetPalswap(globalpal); GLInterface.SetPalswap(globalpal);
GLInterface.SetFade(sector[tspr->sectnum].floorpal);
// The texture here is already translated. // The texture here is already translated.
GLInterface.SetTexture(-1, htex, 0/*TRANSLATION(Translation_Remap + curbasepal, globalpal)*/, CLAMP_NOFILTER_XY, true); GLInterface.SetTexture(-1, htex, 0/*TRANSLATION(Translation_Remap + curbasepal, globalpal)*/, CLAMP_NOFILTER_XY, true);

View file

@ -1394,7 +1394,7 @@ void DrawGenericCrosshair(int num, int phealth, double xdelta)
} }
void DrawCrosshair(int deftile, int health, double xdelta, double scale, PalEntry color) void DrawCrosshair(int deftile, int health, double xdelta, double ydelta, double scale, PalEntry color)
{ {
int type = -1; int type = -1;
if (automapMode == am_off && cl_crosshair) if (automapMode == am_off && cl_crosshair)
@ -1405,7 +1405,7 @@ void DrawCrosshair(int deftile, int health, double xdelta, double scale, PalEntr
if (tile) if (tile)
{ {
double crosshair_scale = cl_crosshairscale * .01 * scale; double crosshair_scale = cl_crosshairscale * .01 * scale;
DrawTexture(twod, tile, 160 + xdelta, 100, DTA_Color, color, DrawTexture(twod, tile, 160 + xdelta, 100 + ydelta, DTA_Color, color,
DTA_FullscreenScale, FSMode_Fit320x200, DTA_ScaleX, crosshair_scale, DTA_ScaleY, crosshair_scale, DTA_CenterOffsetRel, true, DTA_FullscreenScale, FSMode_Fit320x200, DTA_ScaleX, crosshair_scale, DTA_ScaleY, crosshair_scale, DTA_CenterOffsetRel, true,
DTA_ViewportX, windowxy1.x, DTA_ViewportY, windowxy1.y, DTA_ViewportWidth, windowxy2.x - windowxy1.x + 1, DTA_ViewportHeight, windowxy2.y - windowxy1.y + 1, TAG_DONE); DTA_ViewportX, windowxy1.x, DTA_ViewportY, windowxy1.y, DTA_ViewportWidth, windowxy2.x - windowxy1.x + 1, DTA_ViewportHeight, windowxy2.y - windowxy1.y + 1, TAG_DONE);

View file

@ -58,7 +58,7 @@ void CONFIG_ReadCombatMacros();
int GameMain(); int GameMain();
int GetAutomapZoom(int gZoom); int GetAutomapZoom(int gZoom);
void DrawCrosshair(int deftile, int health, double xdelta, double scale, PalEntry color = 0xffffffff); void DrawCrosshair(int deftile, int health, double xdelta, double ydelta, double scale, PalEntry color = 0xffffffff);
void updatePauseStatus(); void updatePauseStatus();
void DeferedStartGame(MapRecord* map, int skill); void DeferedStartGame(MapRecord* map, int skill);
void ChangeLevel(MapRecord* map, int skill); void ChangeLevel(MapRecord* map, int skill);

View file

@ -165,20 +165,20 @@ inline void videoclearFade()
void videoTintBlood(int32_t r, int32_t g, int32_t b); void videoTintBlood(int32_t r, int32_t g, int32_t b);
extern int32_t globalpal; extern int32_t globalpal, globalfloorpal;
extern void paletteLoadFromDisk(void); extern void paletteLoadFromDisk(void);
typedef struct glblenddef_ struct glblenddef_t
{ {
float alpha; float alpha;
uint8_t src, dst, flags; uint8_t src, dst, flags;
} glblenddef_t; };
typedef struct glblend_ struct glblend_t
{ {
glblenddef_t def[2]; glblenddef_t def[2];
} glblend_t; };
extern glblend_t const nullglblend, defaultglblend; extern glblend_t const nullglblend, defaultglblend;
extern glblend_t glblend[MAXBLENDTABS]; extern glblend_t glblend[MAXBLENDTABS];

View file

@ -107,7 +107,7 @@ void GameInterface::Render()
DrawView(smoothratio); DrawView(smoothratio);
DrawStatusBar(); DrawStatusBar();
DrawCrosshair(MAXTILES, PlayerList[nLocalPlayer].nHealth >> 3, -look_anghalf, 1); DrawCrosshair(MAXTILES, PlayerList[nLocalPlayer].nHealth >> 3, -look_anghalf, 0, 1);
if (paused && !M_Active()) if (paused && !M_Active())
{ {

View file

@ -300,7 +300,7 @@ void drawoverlays(double smoothratio)
if (ps[myconnectindex].newowner == -1 && ud.camerasprite == -1) if (ps[myconnectindex].newowner == -1 && ud.camerasprite == -1)
{ {
DrawCrosshair(TILE_CROSSHAIR, ps[screenpeek].last_extra, -getHalfLookAng(pp->oq16look_ang, pp->q16look_ang, cl_syncinput, smoothratio), isRR() ? 0.5 : 1); DrawCrosshair(TILE_CROSSHAIR, ps[screenpeek].last_extra, -getHalfLookAng(pp->oq16look_ang, pp->q16look_ang, cl_syncinput, smoothratio), 0, isRR() ? 0.5 : 1);
} }
if (paused == 2) if (paused == 2)

View file

@ -152,7 +152,14 @@ void GLInstance::SetIdentityMatrix(int num)
void GLInstance::SetPalswap(int index) void GLInstance::SetPalswap(int index)
{ {
renderState.ShadeDiv = lookups.tables[index].ShadeFactor; renderState.ShadeDiv = lookups.tables[index].ShadeFactor;
renderState.FogColor = lookups.getFade(index); }
void GLInstance::SetFade(int index)
{
if (!hw_useindexedcolortextures)
renderState.FogColor = lookups.getFade(index);
else
renderState.FogColor = 0;
} }
void PolymostRenderState::Apply(FRenderState& state, GLState& oldState) void PolymostRenderState::Apply(FRenderState& state, GLState& oldState)
@ -227,17 +234,24 @@ void PolymostRenderState::Apply(FRenderState& state, GLState& oldState)
state.SetDepthFunc(DepthFunc); state.SetDepthFunc(DepthFunc);
oldState.DepthFunc = DepthFunc; oldState.DepthFunc = DepthFunc;
} }
bool foggy = (GLInterface.useMapFog || FogColor);
// Disable brightmaps if non-black fog is used. // Disable brightmaps if non-black fog is used.
if (!(Flags & RF_FogDisabled) && ShadeDiv >= 1 / 1000.f && (GLInterface.useMapFog || FogColor)) if (!(Flags & RF_FogDisabled) && ShadeDiv >= 1 / 1000.f && foggy)
{ {
state.EnableFog(1); state.EnableFog(1);
float density = GLInterface.useMapFog ? 350.f : 350.f - Scale(numshades - Shade, 150, numshades);
state.SetFog((GLInterface.useMapFog) ? PalEntry(0x999999) : FogColor, density);
state.SetSoftLightLevel(255);
state.SetLightParms(128.f, 1/1000.f);
}
else
{
state.EnableFog(0);
state.SetSoftLightLevel(ShadeDiv >= 1 / 1000.f ? 255 - Scale(Shade, 255, numshades) : 255);
state.SetLightParms(VisFactor, ShadeDiv / (numshades - 2));
} }
else state.EnableFog(0);
state.SetFog((GLInterface.useMapFog) ? PalEntry(0x999999) : FogColor, 350.f); // Fixme: The real density still needs to be implemented. 350 is a reasonable default only.
state.SetSoftLightLevel(ShadeDiv >= 1 / 1000.f ? 255 - Scale(Shade, 255, numshades) : 255);
state.SetLightParms(VisFactor, ShadeDiv / (numshades - 2));
state.SetTextureMode(TextureMode); state.SetTextureMode(TextureMode);
state.SetNpotEmulation(NPOTEmulation.Y, NPOTEmulation.X); state.SetNpotEmulation(NPOTEmulation.Y, NPOTEmulation.X);
@ -339,6 +353,7 @@ void WriteSavePic(FileWriter* file, int width, int height)
RenderState.EnableDrawBuffers(1, true); RenderState.EnableDrawBuffers(1, true);
screen->SetViewportRects(&bounds); screen->SetViewportRects(&bounds);
twodpsp.Clear();
bool didit = gi->GenerateSavePic(); bool didit = gi->GenerateSavePic();
float Brightness = 8.f / (r_scenebrightness + 8.f); float Brightness = 8.f / (r_scenebrightness + 8.f);

View file

@ -140,6 +140,7 @@ public:
} }
void SetPalswap(int index); void SetPalswap(int index);
void SetFade(int palette);
void SetShade(int32_t shade, int numshades) void SetShade(int32_t shade, int numshades)
{ {

View file

@ -28,7 +28,6 @@ BEGIN
PUSHBUTTON "E&xit",IDCANCEL,166,228,50,14 PUSHBUTTON "E&xit",IDCANCEL,166,228,50,14
CONTROL "&OpenGL",IDC_WELCOME_VULKAN1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,13,167,41,10 CONTROL "&OpenGL",IDC_WELCOME_VULKAN1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,13,167,41,10
CONTROL "&Vulkan",IDC_WELCOME_VULKAN2,"Button",BS_AUTORADIOBUTTON,13,177,37,10 CONTROL "&Vulkan",IDC_WELCOME_VULKAN2,"Button",BS_AUTORADIOBUTTON,13,177,37,10
CONTROL "&SoftPoly",IDC_WELCOME_VULKAN3,"Button",BS_AUTORADIOBUTTON,13,188,43,10
END END
IDD_CRASHDIALOG DIALOGEX 0, 0, 415, 308 IDD_CRASHDIALOG DIALOGEX 0, 0, 415, 308

View file

@ -1262,7 +1262,7 @@ void DrawCrosshair(PLAYERp pp)
if (!(CameraTestMode) && !TEST(pp->Flags, PF_VIEW_FROM_OUTSIDE)) if (!(CameraTestMode) && !TEST(pp->Flags, PF_VIEW_FROM_OUTSIDE))
{ {
USERp u = User[pp->PlayerSprite]; USERp u = User[pp->PlayerSprite];
::DrawCrosshair(2326, u->Health, -getHalfLookAng(pp->oq16look_ang, pp->q16look_ang, cl_syncinput, smoothratio), 2, shadeToLight(10)); ::DrawCrosshair(2326, u->Health, -getHalfLookAng(pp->oq16look_ang, pp->q16look_ang, cl_syncinput, smoothratio), 0, 2, shadeToLight(10));
} }
} }
@ -1733,8 +1733,11 @@ drawscreen(PLAYERp pp, double smoothratio)
if (!TEST(pp->Flags, PF_VIEW_FROM_CAMERA|PF_VIEW_FROM_OUTSIDE)) if (!TEST(pp->Flags, PF_VIEW_FROM_CAMERA|PF_VIEW_FROM_OUTSIDE))
{ {
tz += bob_amt; if (cl_viewbob)
tz += pp->obob_z + xs_CRoundToInt(fmulscale16(pp->bob_z - pp->obob_z, smoothratio)); {
tz += bob_amt;
tz += pp->obob_z + xs_CRoundToInt(fmulscale16(pp->bob_z - pp->obob_z, smoothratio));
}
// recoil only when not in camera // recoil only when not in camera
tq16horiz = tq16horiz + pp->recoil_horizoff; tq16horiz = tq16horiz + pp->recoil_horizoff;
@ -1773,7 +1776,7 @@ drawscreen(PLAYERp pp, double smoothratio)
renderSetAspect(viewingRange, divscale16(ydim * 8, xdim * 5)); renderSetAspect(viewingRange, divscale16(ydim * 8, xdim * 5));
UpdatePanel(smoothratio); if (!ScreenSavePic) UpdatePanel(smoothratio);
#define SLIME 2305 #define SLIME 2305
// Only animate lava if its picnum is on screen // Only animate lava if its picnum is on screen
@ -1789,6 +1792,13 @@ drawscreen(PLAYERp pp, double smoothratio)
} }
#endif #endif
// if doing a screen save don't need to process the rest
if (ScreenSavePic)
{
DrawScreen = false;
return;
}
MarkSectorSeen(pp->cursectnum); MarkSectorSeen(pp->cursectnum);
@ -1817,13 +1827,6 @@ drawscreen(PLAYERp pp, double smoothratio)
} }
// if doing a screen save don't need to process the rest
if (ScreenSavePic)
{
DrawScreen = false;
return;
}
//PrintLocationInfo(pp); //PrintLocationInfo(pp);
//PrintSpriteInfo(pp); //PrintSpriteInfo(pp);

View file

@ -29,8 +29,8 @@ tilefromtexture 2556 { file "tiles/duke3d/2556.png" xoffset -1 yoffset -2 ifcrc
tilefromtexture 2557 { file "tiles/duke3d/2557.png" xoffset -1 yoffset -2 ifcrc 3133384900 } tilefromtexture 2557 { file "tiles/duke3d/2557.png" xoffset -1 yoffset -2 ifcrc 3133384900 }
// Level Ending Screens (by fgsfds) // Level Ending Screens (by fgsfds)
tilefromtexture 3240 { file "duke3d/3240.png" ifcrc -2916948 } tilefromtexture 3240 { file "tiles/duke3d/3240.png" ifcrc -2916948 }
tilefromtexture 3245 { file "duke3d/3245.png" ifcrc -721918170 } tilefromtexture 3245 { file "tiles/duke3d/3245.png" ifcrc -721918170 }
// VACATION // VACATION

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Before After
Before After

View file

@ -60,5 +60,5 @@ vec4 ProcessTexel()
color.rgb = uFogColor.rgb * (1.0-fogfactor) + color.rgb * fogfactor;// mix(vec3(0.6), color.rgb, fogfactor); color.rgb = uFogColor.rgb * (1.0-fogfactor) + color.rgb * fogfactor;// mix(vec3(0.6), color.rgb, fogfactor);
} }
if (color.a < uAlphaThreshold) discard; // it's only here that we have the alpha value available to be able to perform the alpha test. if (color.a < uAlphaThreshold) discard; // it's only here that we have the alpha value available to be able to perform the alpha test.
return vec4(color.rgb / 0.85, vColor.a); return vec4(color.rgb, 1.0);
} }