dxx-rebirth/common/include
Kp d085175cbd Scrub invalid primary textures at level load
Past releases, when rendering an invalid primary texture, would
Int3() and then reset the texture to zero.  Commit d767f7c changed the
logic to return without resetting the texture, since the reset seemed to
be unnecessary.  Unfortunately, it is necessary.  Some levels, including
those shipped with the retail game data, specify bogus primary textures
on some surfaces.  After d767f7c, rendering a surface with an invalid
primary texture causes the surface to be invisible, even if it has a
valid secondary texture.

Remove the return statement added in d767f7c.  Extend
validate_segment_side to validate the primary texture on the tested
side.  When an invalid texture is found, reset it and log a diagnostic.
For built-in levels, log at level CON_VERBOSE since players cannot
readily fix the level.  For external levels, log at level CON_URGENT so
that level authors know to fix their level before releasing it.

Fixes: d767f7cd5e ("Pass vcsegptridx to render_face")
2016-12-22 05:21:16 +00:00
..
editor When switching to the editor in a game, use a proper saved game 2016-11-21 15:22:11 +08:00
3d.h Move OGL to dxxsconf.h; rename to DXX_USE_OGL 2016-09-24 18:06:11 +00:00
args.h Rename MAX_JOYSTICKS to DXX_MAX_JOYSTICKS 2016-09-25 04:52:48 +00:00
byteutil.h Move endian handling into SConf 2016-10-09 17:35:03 +00:00
compiler-addressof.h
compiler-array.h Remove support for array other than std::array 2016-07-31 22:25:49 +00:00
compiler-begin.h
compiler-exchange.h
compiler-integer_sequence.h
compiler-lengthof.h
compiler-make_unique.h
compiler-range_for.h Require C++11 range-based for 2016-08-08 00:07:19 +00:00
compiler-static_assert.h
compiler-type_traits.h Move <type_traits> test to Cxx11RequiredFeature 2016-08-08 00:07:20 +00:00
console.h Prefer DXX_CONSTANT_TRUE over DXX_HAVE_BUILTIN_CONSTANT_P 2016-11-12 18:10:09 +00:00
countarray.h Expand single-use typedef in place 2016-09-11 18:49:13 +00:00
digi_audio.h
digi_mixer.h
digi_mixer_music.h
dsx-ns.h Add preprocessor hook for selective dsx migration 2016-10-02 19:35:35 +00:00
dxxerror.h Scrub invalid primary textures at level load 2016-12-22 05:21:16 +00:00
event.h Change window_event_result back to a uint8_t with the only forward declaration in fwd-event.h and fix the errors that result. 2016-10-31 10:17:54 +08:00
fmtcheck.h Prefer DXX_CONSTANT_TRUE over DXX_HAVE_BUILTIN_CONSTANT_P 2016-11-12 18:10:09 +00:00
func.h
fwd-event.h Include cstdint in common/include/fwd-event.h instead of pstypes.h to only include required uint8_t 2016-11-06 13:44:29 +08:00
fwd-gr.h Pass grs_main_bitmap to gr_init_bitmap_alloc 2016-10-29 23:16:15 +00:00
fwd-partial_range.h
fwd-valptridx.h Derive vptr factory from ptr factory 2016-12-10 17:51:07 +00:00
fwd-vecmat.h Move EDITOR to dxxsconf.h; rename to DXX_USE_EDITOR 2016-09-11 18:49:16 +00:00
fwd-window.h Use virtual function to dispatch window events 2016-11-19 17:24:52 +00:00
gr.h Pass grs_main_bitmap to gr_init_bitmap_alloc 2016-10-29 23:16:15 +00:00
grdef.h
hash.h
hmp.h
iff.h
ignorecase.h
internal.h Fix various check_header_includes=1 failures 2016-12-05 00:26:11 +00:00
interp.h Rename WORDS_NEED_ALIGNMENT to DXX_WORDS_NEED_ALIGNMENT 2016-10-09 17:35:03 +00:00
joy.h Merging in unification/master, resolving conflict in similar/main/kmatrix.cpp 2016-11-06 14:20:18 +08:00
jukebox.h
key.h Pass the most significant window_event_result to the caller of event_process 2016-10-28 14:43:20 +08:00
loadgl.h Convert loadgl.h dll_GetSymbol calls to reinterpret_cast 2016-09-09 01:35:43 +00:00
makesig.h Rewrite parenthesized uses of old-style numeric casts to static_cast 2016-07-31 22:25:49 +00:00
maths.h
messagebox.h
mouse.h Pass the most significant window_event_result to the caller of event_process 2016-10-28 14:43:20 +08:00
ntstring.h
null_sentinel_iterator.h
ogl_extensions.h Unify OpenGL extension handling between OpenGL and OpenGL ES code paths. 2016-11-03 21:59:11 +01:00
ogl_init.h Unify OpenGL extension handling between OpenGL and OpenGL ES code paths. 2016-11-03 21:59:11 +01:00
ogl_sync.h
pack.h
palette.h Move OGL to dxxsconf.h; rename to DXX_USE_OGL 2016-09-24 18:06:11 +00:00
partial_range.h Prefer DXX_CONSTANT_TRUE over DXX_HAVE_BUILTIN_CONSTANT_P 2016-11-12 18:10:09 +00:00
pcx.h Fix various check_header_includes=1 failures 2016-12-05 00:26:11 +00:00
physfs-serial.h
physfs_list.h Expand single-use typedef in place 2016-09-11 18:49:13 +00:00
physfsx.h Require support for reference qualified methods 2016-12-10 17:51:07 +00:00
poison.h Fix clean test of Valgrind poison support 2016-12-11 23:47:40 +00:00
pstypes.h Change window_event_result back to a uint8_t with the only forward declaration in fwd-event.h and fix the errors that result. 2016-10-31 10:17:54 +08:00
rbaudio.h
reverse.h
rle.h
serial.h Allow rvalue references for some serial.h process_buffer overloads 2016-08-28 22:41:47 +00:00
strutil.h Move strutil qsort comparator casts into function 2016-09-04 19:10:42 +00:00
texmap.h Move OGL to dxxsconf.h; rename to DXX_USE_OGL 2016-09-24 18:06:11 +00:00
timer.h
u_mem.h
ui.h Allow the user to carry on as usual if any of the editor files are missing (i.e. before editor was loaded). 2016-11-11 16:09:57 +08:00
valptridx.h Define valptridx factories of non-const types as mutable 2016-12-10 17:51:08 +00:00
varutil.h
vecmat.h
window.h Fix memory corruption starting multiplayer game 2016-11-19 18:09:26 +00:00