diff --git a/port/assets/menus/ce/main_menu.settings_select.player_setup.player_profile_edit.video_settings.fov_viewmodels.xml b/port/assets/menus/ce/main_menu.settings_select.player_setup.player_profile_edit.video_settings.fov_viewmodels.xml index 26986d63..1cea9b97 100644 --- a/port/assets/menus/ce/main_menu.settings_select.player_setup.player_profile_edit.video_settings.fov_viewmodels.xml +++ b/port/assets/menus/ce/main_menu.settings_select.player_setup.player_profile_edit.video_settings.fov_viewmodels.xml @@ -38,7 +38,7 @@ - + @@ -68,7 +68,7 @@ - + diff --git a/port/linux/README.md b/port/linux/README.md index 8a448957..2a6736b0 100644 --- a/port/linux/README.md +++ b/port/linux/README.md @@ -316,10 +316,11 @@ the setting for one start of the game. It has priority over the file. Video Setup's **FOV AND VIEWMODELS** category offers optional world and weapon field of view settings and first person visibility. **DEFAULT** keeps -the authored world projection. **SAME** keeps the original weapon view, and -viewmodels start **ON**. OK saves and applies changes. Cancel discards them. -The menu offers 80 to 150 degrees in steps of five. The config file accepts -20 to 150 degrees, including fractional values, or zero for Default and Same. +the authored world projection. **DEFAULT** for the weapon keeps its original +view, and viewmodels start **ON**. A chosen weapon angle is that FOV. OK +saves and applies changes. Cancel discards them. The menu offers 80 to 150 +degrees in steps of five. The config file accepts 20 to 150 degrees, +including fractional values, or zero for Default. Angles are horizontal at 16:9; other aspect ratios retain the same vertical view. World FOV applies to on-foot first-person views, preserving authored vehicle, death and cinematic cameras. Completed scopes keep their native @@ -343,7 +344,7 @@ only their display; firing, animation, sound and world lights continue. | `display.interpolation` | `true` | `HALO_INTERPOLATION` | `true`: one frame for each refresh of the display. `false`: 30 frames each second, as on the Xbox. Refer to "Frame rate". | | `display.direct_camera` | `true` | `HALO_DIRECT_CAMERA` | `true`: in first person, on foot, the view points where the player aims in each frame, not where the last tick left it. Refer to "Frame rate". | | `display.fov` | `0.0` | `HALO_FOV` | On-foot first-person horizontal FOV at 16:9, from 20 to 150 degrees. `0` keeps the authored view. Video Setup's FOV and Viewmodels screen sets it. | -| `display.viewmodel_fov` | `0.0` | `HALO_VIEWMODEL_FOV` | Independent weapon and hands horizontal FOV at 16:9, 20 to 150 degrees. `0` keeps the original weapon view. | +| `display.viewmodel_fov` | `0.0` | `HALO_VIEWMODEL_FOV` | Weapon and hands horizontal FOV at 16:9, 20 to 150 degrees. `0` is Default and keeps the original weapon view. A chosen angle is that FOV. | | `display.viewmodel_visible` | `true` | `HALO_VIEWMODEL_VIS` | Show first-person weapons, hands and attached visuals. This does not change gameplay or other players' models. | | `display.high_res_hud` | `true` | `HALO_HIGH_RES_HUD` | `true`: the HUD (meters, counters, panels and their outlines, the motion sensor, reticles, waypoints, scopes) is drawn from the high-res assets in `port/assets/hud`, 8x the size of the maps' bitmaps. The bitmaps with English text keep the maps' own. `false`: the maps' own bitmaps. | | `display.high_res_text` | `true` | `HALO_HIGH_RES_TEXT` | `true`: the menus' and HUD's text is drawn with the fonts in `port/assets/fonts` (Overpass, in place of the maps' Interstate) at the resolution the game draws at, laid out as before, and the menus' titles are drawn from the high-res pictures in `port/assets/titles`. `false`: the maps' bitmap fonts and titles. | diff --git a/port/linux/game/viewmodel_fov.c b/port/linux/game/viewmodel_fov.c index d815bf01..d049a836 100644 --- a/port/linux/game/viewmodel_fov.c +++ b/port/linux/game/viewmodel_fov.c @@ -43,8 +43,9 @@ void viewmodel_projection_begin(void) if (projection_depth++ != 0) return; projection_applied = FALSE; angle = viewmodel_vertical(); - /* SAME keeps the weapon at this frame's own angle. A wide world view - stretches arms and a gun that sit against the camera. */ + /* Default keeps the weapon at this frame's own angle. A chosen angle + is that FOV and is left as it is. A wide world view stretches arms + and a gun that sit against the camera, so Default does not follow it. */ if (!angle) angle = render_fov_authored_vertical(render.local_player_index); if (!angle || render.local_player_index < 0 || render.local_player_index >= MAXIMUM_LOCAL_PLAYERS || diff --git a/port/linux/src/port_config.c b/port/linux/src/port_config.c index c6d80449..c4104603 100644 --- a/port/linux/src/port_config.c +++ b/port/linux/src/port_config.c @@ -117,7 +117,8 @@ static const struct config_setting config_settings[] = "0 keeps the authored view. Other cameras keep their own FOV." }, { "display.viewmodel_fov", _config_real, "0.0", "HALO_VIEWMODEL_FOV", _environment_value, _platform_all, "Weapon and hands horizontal FOV at 16:9, in degrees (20 to 150);\n" - "0 keeps the original weapon view. Attached visuals use the same projection." }, + "0 is Default and keeps the original weapon view. A chosen angle is\n" + "that FOV. Attached visuals use the same projection." }, { "display.viewmodel_visible", _config_boolean, "true", "HALO_VIEWMODEL_VIS", _environment_value, _platform_all, "Draw the first-person weapon, hands and attached visuals. Turning\n" "this off does not change firing, animation, sound or world lights." }, diff --git a/tools/port_settings.py b/tools/port_settings.py index 53bddec6..0fb941f9 100644 --- a/tools/port_settings.py +++ b/tools/port_settings.py @@ -198,8 +198,8 @@ SCREENS["video_settings/fov_viewmodels"] = { "rows": [ ("FOV:", "display.fov", [("DEFAULT", "0")] + [(str(n), str(n)) for n in range(80, 151, 5)], "On-foot horizontal FOV at 16:9, in degrees.\nDefault keeps the authored view and scopes.", None), - ("VIEWMODEL FOV:", "display.viewmodel_fov", [("SAME", "0")] + [(str(n), str(n)) for n in range(80, 151, 5)], - "Weapon and hands horizontal FOV at 16:9, in degrees.\nSame keeps the original weapon view.", None), + ("VIEWMODEL FOV:", "display.viewmodel_fov", [("DEFAULT", "0")] + [(str(n), str(n)) for n in range(80, 151, 5)], + "Weapon and hands horizontal FOV at 16:9, in degrees.\nA number sets that FOV. Default keeps the original weapon view.", None), ("VIEWMODELS:", "display.viewmodel_visible", ON_OFF, "Draw first-person weapons, hands and attached\nvisuals. Gameplay and sound continue when off.", None), ],