From 64ead818ca91d9ff559027d891f345cd7de77e3e Mon Sep 17 00:00:00 2001 From: NepDisk Date: Tue, 18 Nov 2025 18:27:32 -0500 Subject: [PATCH 1/3] Fix noverifyiwads cmake flag --- CMakeLists.txt | 5 ----- src/CMakeLists.txt | 4 ++++ 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b7c84acbd..546ce6f20 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -92,11 +92,6 @@ set(SRB2_CONFIG_ASSET_DIRECTORY "" CACHE PATH "Path to directory that contains a option(SRB2_CONFIG_LTO "Enable link time optimizations, improves performance at the cost of longer link times." ON) option(SRB2_CONFIG_TIDY "Enable clang tiny, checks compiled code for issues at the cost of longer compile times." OFF) -if(SRB2_CONFIG_NOVERIFYIWADS) - target_compile_definitions(SRB2SDL2 PRIVATE -DNOVERIFYIWADS) -endif() - - if(SRB2_CONFIG_ENABLE_TESTS) # https://github.com/catchorg/Catch2 CPMAddPackage( diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 78191082d..0478bcb71 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -232,6 +232,10 @@ if(SRB2_CONFIG_TIDY) set(CMAKE_CXX_CLANG_TIDY "clang-tidy;-checks=*") endif() +if(SRB2_CONFIG_NOVERIFYIWADS) + target_compile_definitions(SRB2SDL2 PRIVATE -DNOVERIFYIWADS) +endif() + add_subdirectory(blua) add_subdirectory(blan) add_subdirectory(sdl) From 5f6c7e212790e077e1ee3d230315fc472ce4add0 Mon Sep 17 00:00:00 2001 From: NepDisk Date: Wed, 19 Nov 2025 19:19:32 -0500 Subject: [PATCH 2/3] Fix oversight in software plane and sprite secbright handling https://codeberg.org/srb2classic/srb2classic/pulls/86/commits/c54aaf1cdb8bcf385c266822655e0873004d5ffc --- src/r_plane.cpp | 10 +++++----- src/r_things.cpp | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/r_plane.cpp b/src/r_plane.cpp index 1f44bb27b..60fba5854 100644 --- a/src/r_plane.cpp +++ b/src/r_plane.cpp @@ -1038,7 +1038,7 @@ void R_DrawSinglePlane(drawspandata_t *ds, visplane_t *pl, boolean allow_paralle spanfunctype = SPANDRAWFUNC_SPLAT; if (pl->polyobj->translucency == 0 || (pl->extra_colormap && (pl->extra_colormap->flags & CMF_FOG))) - light = std::max((pl->lightlevel >> LIGHTSEGSHIFT), cv_secbright.value); + light = (std::max(pl->lightlevel, cv_secbright.value) >> LIGHTSEGSHIFT); else light = LIGHTLEVELS-1; } @@ -1079,17 +1079,17 @@ void R_DrawSinglePlane(drawspandata_t *ds, visplane_t *pl, boolean allow_paralle } if ((spanfunctype == SPANDRAWFUNC_SPLAT) || (pl->extra_colormap && (pl->extra_colormap->flags & CMF_FOG))) - light = std::max((pl->lightlevel >> LIGHTSEGSHIFT), cv_secbright.value); + light = (std::max(pl->lightlevel, cv_secbright.value) >> LIGHTSEGSHIFT); else light = LIGHTLEVELS-1; } else if (pl->ffloor->fofflags & FOF_FOG) { spanfunctype = SPANDRAWFUNC_FOG; - light = std::max((pl->lightlevel >> LIGHTSEGSHIFT), cv_secbright.value); + light = (std::max(pl->lightlevel, cv_secbright.value) >> LIGHTSEGSHIFT); } else - light = std::max((pl->lightlevel >> LIGHTSEGSHIFT), cv_secbright.value); + light = (std::max(pl->lightlevel, cv_secbright.value) >> LIGHTSEGSHIFT); debug = SW_HI_FOFPLANES; } @@ -1149,7 +1149,7 @@ void R_DrawSinglePlane(drawspandata_t *ds, visplane_t *pl, boolean allow_paralle } } else - light = std::max((pl->lightlevel >> LIGHTSEGSHIFT), cv_secbright.value); + light = (std::max(pl->lightlevel, cv_secbright.value) >> LIGHTSEGSHIFT); } ds->currentplane = pl; diff --git a/src/r_things.cpp b/src/r_things.cpp index c537c5745..f61cf7350 100644 --- a/src/r_things.cpp +++ b/src/r_things.cpp @@ -1320,7 +1320,7 @@ static void R_SplitSprite(vissprite_t *sprite) newsprite->cut = static_cast(newsprite->cut | SC_TOP); if (!(sector->lightlist[i].caster->fofflags & FOF_NOSHADE)) { - lightnum = std::max((*sector->lightlist[i].lightlevel >> LIGHTSEGSHIFT), cv_secbright.value); + lightnum = (std::max((INT32)*sector->lightlist[i].lightlevel, cv_secbright.value)) >> LIGHTSEGSHIFT; if (lightnum < 0) spritelights = scalelight[0]; @@ -2354,7 +2354,7 @@ static void R_ProjectSprite(mobj_t *thing) lightnum = thing->subsector->sector->lightlevel; } - lightnum = std::max((lightnum + R_ThingLightLevel(thing)) >> LIGHTSEGSHIFT, cv_secbright.value); + lightnum = (std::max((lightnum + R_ThingLightLevel(thing)), cv_secbright.value) >> LIGHTSEGSHIFT); if (maplighting.directional == true && P_SectorUsesDirectionalLighting(thing->subsector->sector)) { @@ -2780,7 +2780,7 @@ void R_AddSprites(sector_t *sec, INT32 lightlevel) { if (sec->heightsec == -1) lightlevel = sec->lightlevel; - lightnum = std::max((lightlevel >> LIGHTSEGSHIFT), cv_secbright.value); + lightnum = (std::max(lightlevel, cv_secbright.value) >> LIGHTSEGSHIFT); if (lightnum < 0) spritelights = scalelight[0]; From 0534eb4121a7681ae14ab5b3d58af8b0a25b3502 Mon Sep 17 00:00:00 2001 From: NepDisk Date: Wed, 19 Nov 2025 23:04:44 -0500 Subject: [PATCH 3/3] Also apply this to r_segs --- src/r_segs.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/r_segs.cpp b/src/r_segs.cpp index af01e3f3d..247233ebc 100644 --- a/src/r_segs.cpp +++ b/src/r_segs.cpp @@ -274,7 +274,7 @@ static void R_RenderMaskedSegLoop(drawcolumndata_t* dc, drawseg_t *drawseg, INT3 if ((R_CheckColumnFunc(COLDRAWFUNC_FUZZY) == false) || (rlight->flags & FOF_FOG) || (rlight->extra_colormap && (rlight->extra_colormap->flags & CMF_FOG))) - lightnum = std::max((rlight->lightlevel >> LIGHTSEGSHIFT), cv_secbright.value); + lightnum = (std::max((INT32)rlight->lightlevel, cv_secbright.value) >> LIGHTSEGSHIFT); else lightnum = LIGHTLEVELS - 1; @@ -921,7 +921,7 @@ void R_RenderThickSideRange(drawseg_t *ds, INT32 x1, INT32 x2, ffloor_t *pfloor) if (pfloor->fofflags & FOF_FOG) rlight->lightnum = std::max((pfloor->master->frontsector->lightlevel >> LIGHTSEGSHIFT), cv_secbright.value); else - rlight->lightnum = std::max((rlight->lightlevel >> LIGHTSEGSHIFT), cv_secbright.value); + rlight->lightnum = (std::max((INT32)rlight->lightlevel, cv_secbright.value) >> LIGHTSEGSHIFT); if (pfloor->fofflags & FOF_FOG || rlight->flags & FOF_FOG || (rlight->extra_colormap && (rlight->extra_colormap->flags & CMF_FOG))) ; @@ -937,14 +937,14 @@ void R_RenderThickSideRange(drawseg_t *ds, INT32 x1, INT32 x2, ffloor_t *pfloor) { // Get correct light level! if ((frontsector->extra_colormap && (frontsector->extra_colormap->flags & CMF_FOG))) - lightnum = std::max((frontsector->lightlevel >> LIGHTSEGSHIFT), cv_secbright.value); + lightnum = (std::max((INT32)frontsector->lightlevel, cv_secbright.value) >> LIGHTSEGSHIFT); else if (pfloor->fofflags & FOF_FOG) - lightnum = std::max((pfloor->master->frontsector->lightlevel >> LIGHTSEGSHIFT), cv_secbright.value); + lightnum = (std::max((INT32)pfloor->master->frontsector->lightlevel, cv_secbright.value) >> LIGHTSEGSHIFT); else if (R_CheckColumnFunc(COLDRAWFUNC_FUZZY) == true) lightnum = LIGHTLEVELS-1; else - lightnum = std::max((R_FakeFlat(frontsector, &tempsec, &templight, &templight, false) - ->lightlevel >> LIGHTSEGSHIFT), cv_secbright.value); + lightnum = (std::max((INT32)(R_FakeFlat(frontsector, &tempsec, &templight, &templight, false) + ->lightlevel), cv_secbright.value) >> LIGHTSEGSHIFT); if (pfloor->fofflags & FOF_FOG || (frontsector->extra_colormap && (frontsector->extra_colormap->flags & CMF_FOG))) ; @@ -1556,7 +1556,7 @@ static void R_RenderSegLoop (drawcolumndata_t* dc) for (i = 0; i < dc->numlights; i++) { INT32 lightnum; - lightnum = std::max((dc->lightlist[i].lightlevel >> LIGHTSEGSHIFT), cv_secbright.value); + lightnum = (std::max((INT32)dc->lightlist[i].lightlevel, cv_secbright.value) >> LIGHTSEGSHIFT); if (dc->lightlist[i].extra_colormap) ; @@ -2665,7 +2665,7 @@ void R_StoreWallRange(INT32 start, INT32 stop) // use different light tables // for horizontal / vertical / diagonal // OPTIMIZE: get rid of LIGHTSEGSHIFT globally - lightnum = std::max((frontsector->lightlevel >> LIGHTSEGSHIFT), cv_secbright.value); + lightnum = (std::max((INT32)frontsector->lightlevel, cv_secbright.value) >> LIGHTSEGSHIFT); if (P_ApplyLightOffset(lightnum, frontsector)) lightnum += curline->lightOffset;