In the Underworld the potion opens the Underworld portals (busy dialog mode
6, as the teleporters there do); g_campaign moved to game/addresses.h.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- Skill bar: no art selection; slot 0 is the right-click art, keys 0-6 cast
slots directly; cooldown labels in exact seconds; slot 0 set apart.
- Arts regenerate on their own (casting no longer refills the group).
- Auto-attack after targeting or casting at a hostile creature, at the speed
of a held button.
- Auras can be recast while active (renew, no second visual).
- Blicke wie Klingen hits every enemy in range, physical, with life leech.
- Blitzschlag steers the game's own chain: 3 + level/5 hits, 1 + level/10
chains, re-hits a lone enemy.
- Weapon sets: click selects, drag only from the selected set; the leftmost
set is clickable (signed hit tests).
- Esc closes open windows before opening the game menu.
- HUD: standalone buttons and texts are centred.
- Record cache sized for widened views (town lag while walking).
- Shared game code: orders, fx events, text drawing, cooldowns, effects.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
cUI_Taskbar2's slot arrays move behind the (enlarged) object with room
for 7 each; all instructions addressing them, the relative accesses
between the two arrays, the slot loops and the count clamp are patched
from tables in game/addresses.h (belt loops untouched). Slots 6 / 7
unlock at levels 45 / 65; AssignArtToSlot accepts slots up to 6. Slot
keys call the taskbar's selection directly (honouring COMBINE_SLOTS).
Shared code: re::PatchAll / PatchInstructionByte for patch tables,
game/engine/objects.h for object, RTTI and kernel calls, slot-hook
templates in skillslots.cpp.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- Creatures were culled beyond 1024+200 x 768+200 screen pixels (cmp 4C8h /
3C8h in both object passes): invisible in the right part of a wide view,
and the player too once the centre passed 1224. The bounds follow the
render size now.
- Centre immediates written as negatives (-200h / -180h), missed before:
the row renderer's static object origin (0x62babb) and aiming at the
cursor (0x4fb620).
- HUD: moved windows no longer shift the shared mouse cursor object; the
cursor accessor (0x6550f0) hands them a per-thread shifted copy and writes
back what they changed. World input on other threads read the shifted
position now and then, which made hold-to-move jerky.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- Alt object labels and floating texts are packed into a 1024x768 area
(push 300h/400h at 0x6272f8 and 0x60e940): widened to the render size.
- Screen centre immediates in the light/effect position list (0x41b1xx..)
and the floating text (damage number) projection 0x41e460/0x41eaf0 now use
the render centre; lights were offset from the player before.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Windows poll the mouse cursor object (0xcdbadc, x +4) for hover; it is
shifted inside a moved window's render/event scope like the events.
Tooltips are separate windows placed by the hovered window in its 1024
layout, so cUI_Tooltip renders with the offset of the moved window under
the cursor. Adds Move-To to the test input helpers.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- Default render size is 768 high and as wide as the monitor aspect
(1835x768 on 3440x1440), scaled up: everything keeps the size players
know and the view only grows sideways. Height=0 keeps native 1:1.
- Ground: 818/888 clip limits, screen centre floats and integer
immediates, ground quad list (capped at 1749) moved with the tile list.
- 3D: cGranny ortho (+-512 x +-384, incl. HUD items) scaled; inverse
projection 0x623a20 (1/1024, 1/768) follows the render size, which fixes
the camera following the player ("outside world") and the missing
player / ESC menu.
- tools: game-input.ps1 + autotest-load.ps1 drive the game (load the first
save game, screenshots in-game and with the ESC menu).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- mods/widescreen: redirect the world view's reads of the 1024.0/768.0
constants and the 3D ortho extents to our variables; render size =
monitor; relocate the world view's tile draw list (1750 entries, no
bounds check) into an enlarged object (16384 entries).
- mods/dxwrapper: route DirectDraw through dxwrapper (Dd7to9, D3D9) since
Windows' D3D7 cannot render to targets larger than 2048; fix the game's
device info GUID pointer that dxwrapper's enumeration leaves invalid.
Pinned release fetched by CMake (hash-checked), installed next to the DLL.
- Main menu (UI thread) and loading screen render in a 1024x768 viewport
and are presented scaled ("classic" layout); in-game uses the full size.
- re/patch: verified code patches (operand redirect, push immediates,
displacements) and startup hooks; build.ps1/CMake download fixes.
In-game view untested yet; HUD still at the top-left.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Hooks now refer to addr::* instead of literal addresses; the header also
lists the world view's users of the 1024.0/768.0 constants and the ortho
projection extent pushes for the widescreen work.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>