Add commonly requested multiplayer visibility options (with server approval required) #285
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds:
lightmaps_only
,mesh_fullbright
, anddisable_screenshake
(all default to false)$DF Allow Fullbright Meshes
,$DF Allow Lightmaps Only Mode
, and$DF Allow Disable Screenshake
(all default to false)Explanation of features:
lightmaps_only
: Render levels in lightmap only mode, providing enhanced visibility.mesh_fullbright
: Render all meshes fullbright (255, 255, 255). This is in effect the same as the mapping design choice commonly referred to as the "lighting trick", though unlike that approach, does not require a new version of the map to exist. The practice of mappers "applying the lighting trick" can be sunset by the existence of this feature, meaning mappers can make artistic choices in their competitively-designed levels that are impossible today, while the highly important capability still exists for competitive players to use.disable_screenshake
: Disable all use of screenshake. Most noticeable is when firing the SMG and Assault Rifle.In essence, the concept behind this change is that clients can "desire" these options apply. If so, they will apply in single player, in listen servers hosted by that player, and in any multiplayer servers where the server operator has explicitly allowed use of that option via the new dedicated server config options. They will however NOT apply in any servers where they have not been explicitly allowed. This approach allows clients to decide to use these enhanced visibility options if they so choose, assuming the server "approves" of it, similar to how server operators can already decide the maximum horizontal FOV allowed for players in their server.
Notably, these options will be treated as false (ie. players cannot use these options) in any servers that either do not explicitly allow them, and any servers running older versions of Dash from before the options existed. This means that there is no relevant risk of clients using these features to "cheat".
Resolves #111
Resolves #182