Skip to content

Room flip state and preview rotation for the client's AIR 13 parity - #213

Draft
SimoLeoLife wants to merge 6 commits into
Devfrom
fix/room-flip-zoom-api
Draft

Room flip state and preview rotation for the client's AIR 13 parity#213
SimoLeoLife wants to merge 6 commits into
Devfrom
fix/room-flip-zoom-api

Conversation

@SimoLeoLife

@SimoLeoLife SimoLeoLife commented Sep 6, 2026

Copy link
Copy Markdown
Collaborator

Companion of the client's AIR 13 parity branch (fix/air13-ux-parity, duckietm/Octane#476).

  • The flip command set the canvas scale to -1 and nothing remembered it, so the room could not flip back and no widget could ask. The canvas now keeps an isFlipped state, negating both axes as the official client does (class_2861.as:509), suspends offset scrolling while flipped and mirrors hit-testing, sprite visibility, the boundary mask and the object location helpers.
  • The engine exposes the state per canvas (getRoomInstanceRenderingCanvasIsFlipped) and can rotate the object preview being placed (rotateActiveObjectPreview), so the client can turn a furni with the mouse wheel like the official room desktop.
  • Anchor parameters accept PointData as well as Point, so the client can pass a plain {x, y} without a runtime pixi import.

Tests: packages/room flip toggle and getter, rotate preview, and the existing suite.

Second pass: the user preference composers (2506 chat preferences, 818 online indicator, 1226 wired menu settings) with the five trailing values of the user-settings parser, and the personal word filter packets (145, 68, 1996 out; 3883, 3333 in). Server side: duckietm/Polaris-Emulator#665.

Third pass: the classic quest packets gain the seasonal fields and the reject composer; daily tasks (4100/4101, 2900/670/9451) and the reward track (1111/3022/9450, 2327/596->9452/2142/2248) with their data classes; hot looks (9360 both ways); the kick composer's block flag and the blocked rank; the badges parser reads owner count and rarity per slot; the snowwar ending and lobby parsers read the appended stats and skill levels. The packet contract manifest mirrors the emulator branch (fix/room-flip-zoom-api on Polaris tracks duckietm/Polaris-Emulator#665 for the verify job).

…rni being placed

The flip command set the canvas scale to -1 and nothing remembered it,
so the room could not flip back and no widget could ask. The canvas now
keeps an isFlipped state, negating both axes as the official client
does, and suspends offset scrolling while flipped; the engine exposes
the state per canvas and can rotate the object preview being placed,
so the client can turn a furni with the mouse wheel.
…ence composers

Headers 2506, 818 and 1226 as the AIR 13 client sends them; the user
settings parser reads the five trailing values the server now sends.
GetCustomFilter (145), AddCustomFilterWord (68), RemoveCustomFilterWord
(1996), CustomFilterResult (3883) and ModifyCustomFilterResult (3333).
SimoLeoLife and others added 3 commits September 7, 2026 21:21
…he contract manifest

Mirrors the emulator's manifest: the three preference composers are
exempted (their Java side reads through a shared parser), the word
filter packets carry their fields, and the user settings contract
lists the five trailing values.
The user settings contract carries the five trailing preference values
and the flood control entry follows dev.
…oup block, badge tiers, snowwar stats

The classic quest packets gain the seasonal fields and the reject
composer; daily tasks (4100/4101, 2900/670/9451) and the reward track
(1111/3022/9450, 2327/596->9452/2142/2248) arrive with their data
classes; hot looks (9360 both ways); the kick composer's block flag
and the blocked rank; the badges parser reads owner count and rarity
tier per slot; the snowwar ending and lobby parsers read the appended
stats and skill levels. Packet contract manifest mirrored from the
emulator.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant