Smooth camera and unit motion: display positions, camera target smoothing, pan speed setting

This commit is contained in:
Richard Zink committed 2026-11-04 13:56:11 +01:00
1 parent 583c3fcdaf
commit eb11cca8cb
10 files changed
+107 -23

No files matched your search

+5 -1
View File
@@ -41,6 +41,7 @@ pub enum Item {
MusicVolume,
Mute,
RotateSpeed,
PanSpeed,
ZoomSpeed,
EdgeScroll,
InvertMouse,
@@ -59,7 +60,7 @@ fn tab_items(tab: usize) -> &'static [Item] {
use Item::*;
match tab {
0 => &[Language, Volume, MusicVolume, Mute, Voice],
1 => &[RotateSpeed, ZoomSpeed, EdgeScroll, InvertMouse],
1 => &[RotateSpeed, PanSpeed, ZoomSpeed, EdgeScroll, InvertMouse],
2 => &[Outlines, WallDetail, Lights, UiScale, RenderScale],
3 => &[GameSpeed, Hints, TouchUi],
_ => &[],
@@ -73,6 +74,7 @@ fn item_label(it: Item) -> String {
Item::MusicVolume => "set.music",
Item::Mute => "set.mute",
Item::RotateSpeed => "set.rotate_speed",
Item::PanSpeed => "set.pan_speed",
Item::ZoomSpeed => "set.zoom_speed",
Item::EdgeScroll => "set.edge_scroll",
Item::InvertMouse => "set.invert",
@@ -104,6 +106,7 @@ fn item_value(it: Item, s: &Settings) -> String {
Item::Mute => onoff(s.muted),
Item::Voice => onoff(s.voice),
Item::RotateSpeed => pct(s.rotate_speed),
Item::PanSpeed => pct(s.pan_speed),
Item::ZoomSpeed => pct(s.zoom_speed),
Item::EdgeScroll => onoff(s.edge_scroll),
Item::InvertMouse => onoff(s.invert_mouse),
@@ -162,6 +165,7 @@ fn item_change(it: Item, s: &mut Settings, d: i32) {
Item::Mute => s.muted = !s.muted,
Item::Voice => s.voice = !s.voice,
Item::RotateSpeed => s.rotate_speed = step(s.rotate_speed, d, 0.25, 2.5, 0.25),
Item::PanSpeed => s.pan_speed = step(s.pan_speed, d, 0.25, 2.5, 0.25),
Item::ZoomSpeed => s.zoom_speed = step(s.zoom_speed, d, 0.25, 2.5, 0.25),
Item::EdgeScroll => s.edge_scroll = !s.edge_scroll,
Item::InvertMouse => s.invert_mouse = !s.invert_mouse,