Room flip state and preview rotation for the client's AIR 13 parity - #213
Draft
SimoLeoLife wants to merge 6 commits into
Draft
Room flip state and preview rotation for the client's AIR 13 parity#213SimoLeoLife wants to merge 6 commits into
SimoLeoLife wants to merge 6 commits into
Conversation
…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.
SimoLeoLife
marked this pull request as draft
September 6, 2026 20:16
…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).
…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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Companion of the client's AIR 13 parity branch (
fix/air13-ux-parity, duckietm/Octane#476).isFlippedstate, 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.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.PointDataas well asPoint, so the client can pass a plain{x, y}without a runtime pixi import.Tests:
packages/roomflip 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-apion Polaris tracks duckietm/Polaris-Emulator#665 for the verify job).