fix: trade gate round 4 - "The trade has been cancelled." + retail's
staged-item trading marker - Cancel text: ClientTradeSystem::Handle_Trade__Recv_CloseTrade @0x0056DE30 shows "The trade has been cancelled." UNCONDITIONALLY (every close reason) as 0x1A ClientLocal - the yellow top-center SpewBox line. Wired at the router's onTradeClose beside ApplyClose; the string lives in ClientTextRefusals with its citation. - Staged-item marker: retail's mechanism decoded end-to-end - the UIItem prototype (catalog 0x21000037) authors overlay child 0x10000438 (sprite 0x06001DAE, the green frame + corner trade icon), bound @0x004E18FC and SetVisible(tradeState != 0) @0x004E2420; gmSecureTradeUI::AddItem @0x004CA801 sets ACCWeenieObject::SetTradeState(1) on YOUR staged items. Ported as: UiItemSlot.ShowTradeOverlay + TradeOverlaySprite (drawn over the icon), set on the trade window's self-grid cells; and RuntimeTradeState now borrows the canonical object table and maintains ClientObject.TradeState (1 at stage, 0 at remove/failure/ reset/close/clear) - which also brings the ALREADY-PORTED placement policy's "You cannot move an item while it is being traded" refusal to life (its input field previously had no live producer). Runtime 1,626, App 4,992/3 - green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
ffc73f80bf
commit
be3e617a2b
7 changed files with 119 additions and 6 deletions
|
|
@ -65,6 +65,13 @@ public static class ClientTextRefusals
|
|||
/// </summary>
|
||||
public const string CantJumpRecent = "You've jumped too recently!";
|
||||
|
||||
/// <summary>
|
||||
/// <c>ClientTradeSystem::Handle_Trade__Recv_CloseTrade @ 0x0056DE30</c>
|
||||
/// — shown UNCONDITIONALLY (every close reason) as LogTextType 0x1A
|
||||
/// ClientLocal, the yellow top-center SpewBox line.
|
||||
/// </summary>
|
||||
public const string TradeCancelled = "The trade has been cancelled.";
|
||||
|
||||
/// <summary>
|
||||
/// <c>WeenieError.YouAreTooTiredToDoThat (0x003E)</c> —
|
||||
/// <c>CommandInterpreter::MovePlayer</c>'s stamina-exhausted refusal
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue