63 lines
2.1 KiB
Markdown
63 lines
2.1 KiB
Markdown
# Discord Presence test component
|
|
|
|
This test branch builds two 32-bit native Windows components:
|
|
|
|
- `DiscordPresence.dll` — loaded by VanillaFixes; reads WoW 1.12.1 character state read-only, writes the status snapshot, and starts the companion from its worker thread after WoW startup.
|
|
- `DiscordPresence.exe` — invisible companion that only reads the status file and talks to Discord IPC. It no longer launches WoW.
|
|
|
|
The normal game launch path stays unchanged:
|
|
|
|
```
|
|
Play Modernized WoW
|
|
-> VanillaFixes.exe WoW_Modernized.exe
|
|
-> WoW_Modernized.exe
|
|
-> DiscordPresence.dll
|
|
-> DiscordPresence.exe
|
|
```
|
|
|
|
The OctoWoW Discord Application ID is built into `DiscordPresence.exe`:
|
|
|
|
```
|
|
1544072796098011176
|
|
```
|
|
|
|
No manual Application ID setup is required. Advanced users may optionally create a
|
|
`discord_application_id` text file to override the built-in ID.
|
|
|
|
Runtime data is stored under:
|
|
|
|
```
|
|
<WoW folder>\.modernization_tool\DiscordPresence\
|
|
discord_wow_status.json
|
|
discord_broadcast_flags
|
|
DiscordPresence.log
|
|
discord_application_id (optional override)
|
|
```
|
|
|
|
The companion is never launched from `DllMain`; it is started only from the DLL worker
|
|
thread after the startup delay. The DLL never performs Discord IPC, and the companion
|
|
never reads or writes WoW memory.
|
|
|
|
## OctoWoW race mapping
|
|
|
|
For OctoWoW, the helper treats:
|
|
|
|
- race id 9 as `Goblin` / Horde
|
|
- race id 10 as `High Elf` / Alliance
|
|
- race id 16 as a `High Elf` / Alliance compatibility fallback
|
|
|
|
The companion reads the `race` field from `discord_wow_status.json` and includes it in
|
|
Rich Presence details, e.g. `Lvl 1 Priest · High Elf · Alliance`.
|
|
|
|
|
|
## Independent sampler implementation
|
|
|
|
The WoW memory sampler is implemented in this repository with its own internal
|
|
organization. It preserves the existing runtime contract (same status JSON,
|
|
broadcast flags, timings, read-only memory access, and exact-PID companion
|
|
startup) so DiscordPresence.exe does not need to change.
|
|
|
|
The client addresses/field offsets are compatibility data for WoW 1.12.1 build
|
|
5875. IchaLaunch remains credited as an earlier Rich Presence implementation
|
|
that inspired this integration; its source code is not bundled here.
|