You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 375365f
Browse filesBrowse the repository at this point in the historyBrowse files
Hold the gamepad **Start button** for a configurable duration to open the **world map**. A short press opens whatever Start is natively bound to (Journal Menu or Tween Menu) as normal.
3
+
Hold the gamepad **Start button** for a configurable duration to open the **world map**. A short press opens the Journal Menu (or Tween Menu) as normal.
4
4
5
-
Inspired by Red Dead Redemption 2's hold-start-to-open-map mechanic.
5
+
> **Gamepad only.** Keyboard and mouse users are unaffected — vanilla behaviour is fully preserved.
6
6
7
-
Supports building on **Linux** (cross-compilation via `clang-cl` + [xwin](https://github.com/Jake-Shadle/xwin)) and **Windows** (MSVC).
7
+
Inspired by Red Dead Redemption 2's hold-Start-to-open-map mechanic.
8
8
9
9
---
10
10
11
-
## Prerequisites
11
+
## Requirements
12
12
13
-
### All platforms
13
+
-[Skyrim Special Edition](https://store.steampowered.com/app/489830) or Anniversary Edition
14
+
-[SKSE64](https://skse.silverlock.org/)
15
+
-[Address Library for SKSE Plugins](https://www.nexusmods.com/skyrimspecialedition/mods/32444)
16
+
17
+
## Installation
18
+
19
+
**Mod manager (recommended):**
20
+
1. Install the requirements above.
21
+
2. Install QuickMap via your mod manager.
22
+
3. Launch Skyrim via SKSE.
23
+
24
+
**Manual:**
25
+
1. Install the requirements above.
26
+
2. Copy `QuickMap.dll` and `QuickMap.ini` to `Data\SKSE\Plugins\`.
27
+
3. Launch Skyrim via SKSE.
28
+
29
+
## Configuration
30
+
31
+
Edit `Data\SKSE\Plugins\QuickMap.ini`:
32
+
33
+
```ini
34
+
[General]
35
+
; Duration in seconds the Start button must be held to open the map (default: 1.0)
36
+
fHoldDuration=1.0
37
+
```
38
+
39
+
Logs are written to:
40
+
```
41
+
%USERPROFILE%\Documents\My Games\Skyrim Special Edition\SKSE\QuickMap.log
42
+
```
43
+
44
+
---
45
+
46
+
## Development
47
+
48
+
### Prerequisites
49
+
50
+
#### All platforms
14
51
-[Git](https://git-scm.com/)
15
52
-[CMake](https://cmake.org/download/) 3.21+
16
-
-[vcpkg](https://vcpkg.io/en/getting-started) — set `VCPKG_ROOT` in your environment
-[xwin](https://github.com/Jake-Shadle/xwin) — downloads the Windows SDK and MSVC CRT headers/libs
21
58
-[Ninja](https://ninja-build.org/)
22
59
23
-
```bash
24
-
# Arch / CachyOS
25
-
sudo pacman -S clang lld llvm ninja
60
+
```bash
61
+
# Arch / CachyOS
62
+
sudo pacman -S clang lld llvm ninja
26
63
27
-
# Install xwin (requires Rust/cargo)
28
-
cargo install xwin
64
+
# Install xwin (requires Rust/cargo)
65
+
cargo install xwin
29
66
30
-
# Fetch Windows SDK + MSVC CRT headers to ~/.xwin (one-time, ~700 MB)
31
-
xwin splat --output ~/.xwin
32
-
```
67
+
# Fetch Windows SDK + MSVC CRT headers to ~/.xwin (one-time, ~700 MB)
68
+
xwin splat --output ~/.xwin
69
+
```
33
70
34
-
### Windows
71
+
> **Note:** On first CMake configure, `cmake/toolchains/clang-cl-cross.cmake` creates TitleCase symlinks inside your xwin installation (e.g. `Advapi32.lib → advapi32.lib`). The originals are untouched. This is required because `lld-link` is case-sensitive but CommonLibSSE-NG references libs with mixed-case names.
72
+
73
+
#### Windows
35
74
-[Visual Studio 2022](https://visualstudio.microsoft.com/) with **Desktop development with C++**
> lld-link is case-sensitive but CommonLibSSE-NG references libs with mixed-case names.
77
-
> The originals are untouched.
78
-
79
-
#### Deploy to mod manager
112
+
##### Deploy to mod manager
80
113
81
114
```bash
82
115
./scripts/deploy.sh
83
116
# or directly (deploy.sh sources .env for you; cmake does not):
84
117
source .env && cmake --workflow --preset deploy
85
118
```
86
119
87
-
This configures, builds, and copies `QuickMap.dll` + `QuickMap.pdb` directly into:
88
-
```
89
-
$SKYRIM_MODS_FOLDER/QuickMap/SKSE/Plugins/
90
-
```
91
-
92
-
Vortex will detect the new mod folder automatically. Enable it in Vortex, then launch Skyrim.
93
-
94
-
On subsequent builds (no config change needed):
95
-
```bash
96
-
./scripts/deploy.sh
97
-
```
120
+
Copies `QuickMap.dll`, `QuickMap.pdb`, and `QuickMap.ini` into `$SKYRIM_MODS_FOLDER/QuickMap/SKSE/Plugins/`.
98
121
99
122
#### Windows (MSVC)
100
123
@@ -107,83 +130,35 @@ The DLL lands in `build/msvc/Release/QuickMap.dll`.
107
130
108
131
---
109
132
110
-
## What QuickMap Does
111
-
112
-
When loaded by Skyrim the plugin:
113
-
114
-
1.**Writes a log** to `%USERPROFILE%\Documents\My Games\Skyrim Special Edition\SKSE\QuickMap.log` via spdlog.
115
-
2.**Registers an input sink** at `kInputLoaded` to intercept gamepad Start button events.
116
-
3.**Refreshes the short-press binding** at `kInputLoaded`, `kPostLoadGame`, and `kNewGame` by querying `ControlMap`.
117
-
118
-
Hold duration is configurable via `Data/SKSE/Plugins/QuickMap.ini`:
119
-
120
-
```ini
121
-
[General]
122
-
fHoldDuration=1.0
123
-
```
124
-
125
-
---
126
-
127
-
## GitHub Actions CI
128
-
129
-
| Workflow | Trigger | What it does |
130
-
|---|---|---|
131
-
|`setup.yml`| First push in a repo created from this template | Renames placeholders using the repo name, then self-deletes |
132
-
|`build.yml`| PRs to `main` touching source/cmake/vcpkg | Builds on Windows (MSVC + vcpkg), uploads DLL + PDB |
133
-
|`release.yml`| Push of a `v*` tag (or manual `workflow_dispatch`) | Same build, publishes a GitHub Release with DLL + PDB; opt-in Nexus Mods upload via dispatch input |
134
-
|`format.yml`| PRs touching `src/**` or `.clang-format`| Checks C++ formatting with clang-format |
135
-
|`tidy.yml`| PRs touching `src/**`, cmake, or `.clang-tidy`| Runs clang-tidy static analysis on Windows (MSVC headers) |
136
-
|`lint.yml`| PRs touching `scripts/`| Runs shellcheck on shell scripts |
|`release.yml`| Push of a `v*` tag or manual `workflow_dispatch`| Builds release DLL, publishes GitHub Release; opt-in Nexus Mods upload via dispatch input |
177
+
|`lint.yml`| PRs touching `scripts/`| shellcheck on shell scripts |
0 commit comments