Skills, auto-attack, aura and chain lightning rework, Esc, cache fix
- 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>
This commit is contained in:
1 parent
f721d2a486
commit
1fd89524d3
41 files changed
+2347
-214
No files matched your search
+47
-1
@@ -115,6 +115,51 @@ the 1024 frame (66-78 px each side). In the widened view the centred bar has
|
||||
room for that (16:9: 1365 wide, 170 px each side). Decision 2026-10-14: keep
|
||||
the original spacing; 4:3 is not a target (cut off there).
|
||||
|
||||
### Art slots without selection (2026-10-15)
|
||||
|
||||
Decision: art slots are no longer selected. Slot 0 (leftmost) is always the
|
||||
right mouse button's art; left click stays the normal attack. Keys 0-6 cast
|
||||
slots 0-6 directly (`src/mods/skillkeys.cpp`): key 0 presses the right
|
||||
button, keys 1-6 select their slot for as long as the key is held and press
|
||||
the right button. Without a held skill key the selection returns to slot 0
|
||||
(engine tick). `cUI_Taskbar2::SelectSkillSlot` turns every other request
|
||||
(clicks on the bar, wheel, COMBINE_SLOTS, slot count check) into slot 0;
|
||||
slots on the bar are only filled by drag & drop. Weapon sets are still
|
||||
selected (F1-F7, clicks).
|
||||
|
||||
How a slot is drawn (`RenderArtSlots` `0x6e31e0`): each slot is a
|
||||
`UI_STATIC` control drawn by its vf14; the function swaps the control's atlas
|
||||
entry and rect, draws, and restores them. An art has 3 icons (indices into
|
||||
`g_uiAtlasEntries` `0x9eaee0`, 0x54 each): ready + selected slot uses the
|
||||
third, otherwise the first; while recharging, the slot is drawn twice, split
|
||||
vertically by the ready fraction (first icon above, second below). Icons
|
||||
0x276-0x278 replace them when the art cannot be used mounted and
|
||||
`0x54fa90` holds (fill from creature +0x4e8 / +0x4ec). Over the icon a frame
|
||||
is drawn: `g_uiTaskbarArtFrameSelected` `0x9f4be4` / `g_uiTaskbarArtFrame`
|
||||
`0x9f7f14`, `0x9f5d9c` as a drop target, `0x9f696c` with creature flag
|
||||
0x2000. `UpdateSlotHighlight` (`0x6df9a0`) sets the slot backgrounds
|
||||
(`0x9ed084` selected / `0x9ed030`). Patched (`kTaskbarSkillSelectionLook`):
|
||||
frame and background test "slot 0" instead of "selected slot", and every
|
||||
ready art uses its third icon. Slots 1-6 are moved right by half a slot
|
||||
(0x21) after the layout, and the decorative strip right of the centre starts
|
||||
that much further right (`add ecx, 23Ah` at `0x6e01cc`).
|
||||
|
||||
Weapon set clicks (2026-10-15): with an empty cursor, the taskbar's mouse
|
||||
handling jumps to `0x6e10d8` (`je` at `0x6e0ca7`; taskbar in esi, inventory
|
||||
in ebp, set at [esp+0B8h], hand at [esp+0BCh]), which takes the set's weapon
|
||||
onto the cursor (`TakeWeaponSetItem`) and re-selects the selected set. That
|
||||
jump now goes through `WeaponSetClickThunk`: a click on a set that is not
|
||||
selected only selects it (exit `0x6e124d`, al = 1); dragging starts from the
|
||||
selected set only.
|
||||
|
||||
Negative x (2026-10-15): with 7 slots the leftmost weapon set (set 1, F1)
|
||||
lies at x = -68..-2 of the layout. The taskbar's own hit test accepts it,
|
||||
but every place that asks the slot controls (`vf1c`, signed compares) passes
|
||||
the position as `and reg, 0FFFFh`, so -43 became 65493 and the set could
|
||||
not be clicked. `kTaskbarSignedHitTests` sign-extends them (slot lookups
|
||||
`0x6dfcfe`/`0x6dfd5e`, the click loops `0x6e1a0c`/`0x6e1a5c`, drop and
|
||||
drag `0x6e1e8e`.. `0x6e20f2`).
|
||||
|
||||
The two 5 x 0xbc blocks at +0x258 / +0x604 are the belt (3D item views), not
|
||||
slots. Still to map: rendering of the slot contents (icons, cooldowns,
|
||||
`Render` `0x6e3ac0`), drag & drop onto slots (`HandleEvent` mouse branch,
|
||||
@@ -142,4 +187,5 @@ only (or disabled in multiplayer).
|
||||
(agreed 2026-10-14).
|
||||
5. Taskbar: 7 controls each (arrays inside the object are fixed at 5: own
|
||||
table for the extra controls), layout, rendering, hit tests, drag & drop.
|
||||
6. Keys: 1-7 select and cast art slots, F1-F7 select weapon sets.
|
||||
6. Keys: 0-6 cast art slots (since 2026-10-15; before: 1-7 select and
|
||||
cast), F1-F7 select weapon sets.
|
||||
Reference in new issue
Block a user