Open GooberRF opened 1 month ago
These are 3 features for one PR. One PR for each feature please.
These are 3 features for one PR. One PR for each feature please.
This is a single change that contains 3 options (well, 6 options technically). Especially given the way flags are indicated in DashFactionJoinAcceptPacketExt
, it would be both confusing and unnecessarily technically onerous to split this branch and associated PR into separate parts.
All of these options should be available from the Dash setup options. Similar to #296 these should not be buried away as console commands, because the vast majority of users will never seek them out or know they're an option.
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