This cannot use the last color found while reading ahead - it must pick the last color of the string part that just got broken out into its own line when starting the next one.
Especially in the thinker code this is needed for software rendering.
Strictly speaking, the software renderer should do the same, but it checks r_dynlight in so many places deep in the logic where the level is not available.
Prompted by 'Hurt' which has > 4000 lights and runs into both performance issues and unpredictable light selection for the limited amount of shadowmap slots.
src/common/engine/serializer_internal.h:241: warning: format specifies type 'long long' but the argument has type 'int64_t' (aka 'long') [-Wformat]
src/common/engine/serializer_internal.h:250: warning: format specifies type 'long long' but the argument has type 'int64_t' (aka 'long') [-Wformat]
src/common/rendering/vulkan/system/vk_device.cpp:364:29: warning: format specifies type 'unsigned long long' but the argument has type 'uint64_t' (aka 'unsigned long') [-Wformat]
src/common/rendering/vulkan/system/vk_framebuffer.cpp:701:57: warning: format specifies type 'unsigned long long' but the argument has type 'VkDeviceSize' (aka 'unsigned long') [-Wformat]
While 'block players' was just a simple remap, 'block land monsters' required quite a bit of work...
This also fixes the bug that BLOCK_FLOATERS was never checked for sliding against a wall.
When built against 10.15 SDK or earlier, macOS 11.0+ returns 10.16 for compatibility, and external process is needed to output the actual version for us
There is no `TVector2<>` constructor that accepts a pointer to float. However, there is such constructor in `TVector3<>`, so `TVector2<>` can be constructed from `float*` implicitly via temporary `TVector3<>` object.
This eliminates nearly all palette dependencies, most importantly font translation will now be done on True Color data, making translations on True Color font less destructive.
This reverts commit 668f8f2cf6.
Revert "- added a proper error message when '--' or '++' gets used on 8 or 16 bit values."
This reverts commit a94f5dd1b3.
None of this was necessary - the triggered assert was bogus and had to be removed.
Both synth and sound font can be very relevant here for the final volume so using the same song with different settings needs to create different strings.
Re-worded error messages which were unprecise or unfitting before (model index below 0 was not acknowledged at all, or grouped together with a "too many models" message).
modelIDs are given a default value of -1.
Important: A MODELDEF's FrameIndex lines can no longer refer to model indices that are beyond the number of models of that MODELDEF entry. There is in fact a check to avoid going beyond the number of an actor's models which would abort program operation at startup, but it never caught any such occurances.
surfaceSkinIDs was two-dimensional and is now a one-dimensional TArray as well, elements are accessed via [Row + Column * NumRows], in this case surfaceIndex + modelIndex * MD3_MAX_SURFACES]
Used TArray.Alloc to make TArrays have the correct size depending on the number of models.
Also removed MAX_MODELS_PER_FRAME.
Edited skinSurfaceIDs access for one-dimensional TArray
Added MD3_MODELS_MIN
To ensure compatibility with mods, all model-related TArrays (four in total) have a minimum size of 4, defined by MD3_MODELS_MIN.
The problem I discovered is that these backends do not respect the GUI-side system setting for swapping the buttons, so this needs to be done in-application so that swapped buttons can behave the same in the menu and the game.
* Changed model-related arrays to TArrays.
* Update models.cpp
Used TArray.Alloc to make TArrays have the correct size depending on the number of models.
surfaceSkinIDs was two-dimensional and is now a one-dimensional TArray as well, it's size is now (models * MD3_MAX_SURFACES)
surfaceSkinIDs was two-dimensional and is now a one-dimensional TArray as well, elements are accessed via [Row + Column * NumRows], in this case sSurfaceIndex + modelIndex * MD3_MAX_SURFACES]
* Edited skinSurfaceIDs access for one-dimensional TArray
* Edited skinSurfaceIDs access for one-dimensional TArray
* Edited skinSurfaceIDs access for one-dimensional TArray
* Changed model-related arrays to TArrays.
Also removed MAX_MODELS_PER_FRAME.
* Used TArray.Alloc to make TArrays have the correct size depending on the number of models.
surfaceSkinIDs was two-dimensional and is now a one-dimensional TArray as well, elements are accessed via [Row + Column * NumRows], in this case surfaceIndex + modelIndex * MD3_MAX_SURFACES]
* Used TArray.Alloc to make TArrays have the correct size depending on the number of models.
surfaceSkinIDs was two-dimensional and is now a one-dimensional TArray as well, elements are accessed via [Row + Column * NumRows], in this case surfaceIndex + modelIndex * MD3_MAX_SURFACES]
* Update models.h
* Edited MAX_MODELS_MD3
* Update models_obj.cpp
This was the result of an issue which stumped the entire Discord, which led to me having to debug from source to find why some relatively standard publicly available PBR materials work. GZDoom is the ONLY program in the typical development stack (GIMP, Slade, UDB) with this narrow of support for the PNG format. As such, the average developer will have no other way to figure out what's going wrong without these: these CANNOT be allowed to fail silently. As things like PNG-compression and 64-bit color become more common in royalty-free PBR materials, support should be an eventual target. Even then, these warnings should remain to prevent this from being an issue the next time things change.
Prototype of overridden function with optional argument(s) missing could extend unrelated prototype of previously defined function when their arguments and return value(s) match
https://forum.zdoom.org/viewtopic.php?t=71340
- vid_aspect is now set to change to 21:9's ACTUAL aspect - 64:27
- screen elements now scale to 64:27 properly. to restore classic behavior, set cvar `vid_allowtrueultrawide` to false
* Added SBSLETTERBOX to menudef.txt
* Changed PresentSideBySide in gl_renderer
Needed for new side-by-side mode
* Added VR_SIDEBYSIDELETTERBOX to gl_stereo3d.cpp
For side by side letterbox display mode
* Added VR_SIDEBYSIDELETTERBOX to hw_modes.h
For new side by side letterbox display mode
* Added VR_SIDEBYSIDELETTERBOX to hw_vrmodes.cpp
For Side By Side Letterbox display mode
* - modify Shape2D so that it manages its own vertex buffer
* - fix the last commit failing on Shape2Ds that were modified after AddShape was called
* - make buffers an array of F2DVertexBuffers instead of an array of pointers
* - fix AddShape with the same VBO but different transformation crashing the game
* - formatting fixes
commit bbfb934e808c6602d3a059adf270e997b71b900c
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date: Sun Dec 6 23:50:15 2020 -0500
- and now it builds! but ... does it run?
commit 67096c8966f28dcff40c998d10e5510d6a689a13
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date: Sun Dec 6 22:25:13 2020 -0500
- one more step closer to compile
commit 5a0c84dd2d3e1798e7a99f4ec1696f678708f0e6
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date: Sun Dec 6 22:13:39 2020 -0500
- set up dynamic opengl load for windows
commit 6ef8118b801f305000ce881a4b04aaaef0196226
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date: Sat Dec 5 16:38:53 2020 -0500
- allow compiling for win-arm64
commit 7d6f3797c4393fa7b0ed567b94d1de135ecb5ac6
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date: Fri Dec 4 05:18:29 2020 -0500
- allow targeting ARM64 on Windows
Co-authored-by: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
With fixed point math barely being used anywhere with the vast majority of calls in the software voxel drawer it makes sense to reduce the function interface to the minimum possible and move the shift value into the function call as an argument.
include\algorithm(7419,17): error C3892: '_First': you cannot assign to a variable that is const (compiling source file src\rendering\hwrenderer\scene\hw_drawlist.cpp)
src/common/console/c_console.cpp:1032:4: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/common/console/c_console.cpp:958:4: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/common/scripting/backend/codegen.cpp:2969:4: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/common/scripting/frontend/zcc_compile.cpp:2656:4: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/common/scripting/frontend/zcc_compile.cpp:521:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/common/scripting/jit/jit_math.cpp:966:19: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/d_main.cpp:1538:3: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/d_main.cpp:1549:3: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/d_main.cpp:3820:3: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/gameconfigfile.cpp:544:25: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/gamedata/p_xlat.cpp:193:11: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/gamedata/p_xlat.cpp:200:11: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/gamedata/p_xlat.cpp:210:11: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/g_game.cpp:1145:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/maploader/maploader.cpp:2142:3: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/menu/doommenu.cpp:159:28: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/m_cheat.cpp:109:3: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/playsim/mapthinkers/a_ceiling.cpp:254:24: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/playsim/mapthinkers/a_floor.cpp:322:18: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/playsim/mapthinkers/a_floor.cpp:330:18: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/playsim/mapthinkers/a_floor.cpp:344:10: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/playsim/mapthinkers/a_plats.cpp:129:47: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/playsim/mapthinkers/a_plats.cpp:284:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/playsim/p_acs.cpp:6302:18: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/playsim/p_acs.cpp:8111:16: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/playsim/p_spec.cpp:344:6: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/scripting/decorate/thingdef_parse.cpp:1343:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/scripting/zscript/zcc_compile_doom.cpp:298:12: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/wi_stuff.cpp:463:14: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/common/menu/menudef.cpp:785:19: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
src/playsim/p_pspr.cpp:178:3: warning: field 'processPending' will be initialized after field 'HAlign' [-Wreorder]
Syntax: AddListMenu "MenuName" [<before|after> "SubMenuName"] { ... }
By default, new items will be added to the end of the menu. Specifying before/after allows inserting items before or after a specific submenu item.
The real issue is that the number of unattenuated sounds was unchecked and the near limit never kicked in.
To do this properly it is necessary to adjust the limit distance by the attenuation - zero attenuation must mean infinite distance and for high attenuations the distance must be lowered for limiting to work as intended.
The limit for the Doom boss sounds was increased to 4 to compensate for this change.
# Conflicts:
# src/common/audio/sound/oalsound.cpp
* it is now possible to switch back to the main intro loop from the fullscreen console.
* do not distort the background of the fullscreen console. Always draw the console on top of what the main loop currently displays with a translucent black overlay.
* do not use the CONPIC for the fullscreen console as it tends to be more of a distraction than an asset when filling the entire screen.
* cleaned up c_console.cpp and moved several pieces of code unrelated to actual console management out of it.
This only concerns the actual horizontal scroller. The vertical one still needs work and the "The End" screen only works if the second picture of the scroller is the full widescreen image because this page is done as a regular single image page which does not know anything about widescreen asset replacements.
The option still remains for cases where it does not work but the cases where mode 3 causes real problems are rare.
All I could find were a handful of poor intermission pics in some old mods which aren't worth keeping this artificial limitation.
This should only flag the tree as new if it is different from the last one.
This not only caused issues with dynamic updates but also made the renderer recreate the tree's data structures repeatedly.
Mainly to allow using 'if constexpr'.
Older CI compiler setups like GCC 5 for Linux were removed as a consequence.
Windows 32 bit was also removed because there are no plans to do any more 32 bit releases of GZDoom.