Map: zoomed-view symbols centred, 10x reveal and enemy range; progress screen on the menu background
- Megamap / TAB map zoomed view: heroes' markers and the other symbols (integer 200h centre immediates) follow the view's centre. - Map reveal: the hero's reveal stamp scaled 10x (mods/mapreveal.cpp, docs/map-reveal.md); creatures on the zoomed map shown within 10x the sight range. - Load / save progress screen drawn on the rock background across the full width, the picture blended over it (mods/loadingscreen.cpp); the classic 1024x768 frame is gone. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
3f03228c29
commit
b452558122
18 files changed
+435
-40
No files matched your search
@@ -0,0 +1,44 @@
|
||||
# Map reveal (fog of war)
|
||||
|
||||
## Request (2026-10-25)
|
||||
|
||||
"Can we increase the base vision range (for map fog of war reveal) by x10 or
|
||||
so?"
|
||||
|
||||
## Measured
|
||||
|
||||
- Each sector (64x64 tiles) keeps a 32x32 bit mask at +0x180 (128 bytes, one
|
||||
bit per 2x2 tiles): `Sector_SetExplored` 0x622bf0, copied out by 0x622c60,
|
||||
loaded from the save by 0x622c80 (0x606ae0). The zoomed map view turns it
|
||||
into its fog texture (FOGOFWAR01.TGA, 0x639030).
|
||||
- `World_SetExplored` 0x638f00 (thiscall on `*0xad14e0`, (tile x, tile y,
|
||||
explored), ret 0xc) finds the tile's sector; tiles >= 0x2000 and sectors
|
||||
that aren't loaded are ignored.
|
||||
- `RevealAroundHero` 0x599730 (creature thiscall (tile x, tile y, sight), ret
|
||||
0xc), called from about ten places in the creature code: only for the local
|
||||
hero, only when its tile changed (last tile 0xad2384 / 0xad2388), it calls
|
||||
`World_SetExplored` for every tile of a stamp centred on the hero. Sight 0:
|
||||
the 29x29 circle at 0x88f5cc (radius 14 tiles). The callers choose 1 or 2
|
||||
from the weather object (0x417e50: +0x9e0c set -> 2, 0x41ba90 true -> 1);
|
||||
those use the 15x15 stamps at 0x88f328 + (sight - 1) * 225 (radius 7, 5;
|
||||
a third one, radius 3, is unused).
|
||||
|
||||
## Mod (`mods/mapreveal.cpp`)
|
||||
|
||||
After the original revealed at a new tile, the same stamp scaled up 10x is
|
||||
revealed too, one cell (2x2 tiles) at a time through `World_SetExplored`: by
|
||||
day a circle of about 140 tiles radius, at night / in fog 70 / 50. About 15000
|
||||
cells per tile step by day. Sectors beyond the loaded ones are not marked.
|
||||
|
||||
## Creatures on the map (2026-10-25)
|
||||
|
||||
"Enemies on the TAB map don't show unless in very short range." The zoomed
|
||||
map view (0x6cc950, large map and TAB map) draws a creature off explored
|
||||
ground, or a hostile one, only within a sight range of the hero: |dx| and |dy|
|
||||
(world units, about 53.7 per tile) against a float at [esp+14h], 650 by
|
||||
default (0x6ce677), 300 where 0x63d280 holds for the hero's area (0x6ce6b5),
|
||||
350 when the weather object's 0x41ba40 is false (0x6ce6cf), plus a skill
|
||||
(0x355, 0x570d90) and equipment bonuses. Out of range only the debug flag
|
||||
0x182cdb8 & 2 shows them. The mod scales the three base values by 10 as well
|
||||
(about 120 tiles by day). The view only lists creatures of the sectors around
|
||||
the hero (25 entries at [esp+1ech]).
|
||||
Reference in new issue
Block a user