Investigated the prior round's flagged gap ("CanAct()'s Paralysis/Faint/Sleep
movement doors not wired into net_play.gd") via exhaustive reachability
tracing of the 40250 reference source. All three resolve to non-gaps:
- Paralysis: its only setter (__Shaman_SetParalysis, InstanceBaseEffect.cpp:821)
has zero callers anywhere in the reachable source -- dead code, never true
in live gameplay.
- Sleep: the AFFECT_SLEEP case in SetAffect() is commented out; the only live
setter is the AFFECT_STUN case (SetSleep(), InstanceBaseEffect.cpp:932-933),
i.e. IsSleep() is just an alias for AFFECT_STUN -- already covered by the
existing `stunned` field and _can_process_network_state()'s dead/stunned/
knock_down gate.
- Faint: only setter is chrFaintTest(), a debug-only Python binding operating
on GetSelectedInstancePtr(); unverifiable from the available 40250 checkout
(no root/ UI scripts) -- evidence-blocked, left unresolved per the skill's
reachability rule.
Byproduct finding while tracing IsStun(): main-character GC_STUN routes to
Die() in the reference (RecvStunPacket), not Stun(); verified this causes no
movement.keyboard.motion discrepancy since CanAct() blocks movement equally
on IsDead()/IsStun() and the current client already blocks movement equally
on dead/stunned. The Die()-vs-Stun() distinction only affects death-system
semantics, already tracked under combat.affect-status.md (Remaining #2, rows
63/67) -- not duplicated here.
No implementation code changed. Removed the resolved item from manifest.json
and movement.keyboard-motion.md's Remaining list; documented full evidence
in the contract doc and remediation roadmap. Contract stays PARTIAL
(AccumulationMovement root-motion, OnMove/OnMoving event-source parity,
sync/hit/death/warp gate stacking, and real-model bone-flip test remain open
for future rounds).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2.2 KiB
2.2 KiB
40250 parity audit coverage
Total contracts: 45
Status
- BLOCKED: 0
- EXCLUDED: 1
- IN_PROGRESS: 0
- MAPPED: 0
- PARTIAL: 44
- REGRESSION: 0
- STALE: 0
- STATIC_VERIFIED: 0
- TEST_VERIFIED: 0
- UNMAPPED: 0
Priority
- P0: 18
- P1: 23
- P2: 3
- P3: 1
Pending branch items
- Total: 224
- P0: 93
- P1: 118
- P2: 13
- P3: 0
- Routing: see
audit/remediation-roadmap.md
Pending
- [P0] combat.attack_combo_damage: PARTIAL
- [P0] combat.death.exp_drop: PARTIAL
- [P0] item.inventory_equipment_state: PARTIAL
- [P0] lifecycle.bootstrap_phase_host: PARTIAL
- [P0] movement.click_collision: PARTIAL
- [P0] movement.keyboard.motion: PARTIAL
- [P0] movement.remote_sync_state: PARTIAL
- [P0] network.character_select.create_delete: PARTIAL
- [P0] network.login.phase_flow: PARTIAL
- [P0] network.packet_dispatch_protocol: PARTIAL
- [P0] network.reconnect_warp: PARTIAL
- [P0] network.security_encoding: PARTIAL
- [P0] resource.pack_locale_proto: PARTIAL
- [P0] skill.cast.effect_timing: PARTIAL
- [P0] world.entity_spawn_state_sync: PARTIAL
- [P0] world.map_load_transition: PARTIAL
- [P0] world.reset_cleanup: PARTIAL
- [P0] world.terrain_water_collision: PARTIAL
- [P1] combat.affect_status: PARTIAL
- [P1] combat.flying_projectile: PARTIAL
- [P1] combat.target_selection_rules: PARTIAL
- [P1] item.consumable_action: PARTIAL
- [P1] item.drop_pickup: PARTIAL
- [P1] item.refine_socket_costume: PARTIAL
- [P1] movement.motion_resource_events: PARTIAL
- [P1] network.error_timeout_server_state: PARTIAL
- [P1] npc.dialog_shop: PARTIAL
- [P1] quest.quest_event_navigation: PARTIAL
- [P1] render.effect_particle_motion: PARTIAL
- [P1] render.model_attachment: PARTIAL
- [P1] skill.player_ui_cooldown: PARTIAL
- [P1] social.chat_text_tail: PARTIAL
- [P1] social.exchange_safebox: PARTIAL
- [P1] social.party_guild_messenger: PARTIAL
- [P1] ui.equipment.tooltip: PARTIAL
- [P1] ui.hud_target_minimap_status: PARTIAL
- [P1] ui.input_camera_mobile: PARTIAL
- [P1] world.dungeon_activity: PARTIAL
- [P1] world.fishing_mining: PARTIAL
- [P1] world.mount_pet_polymorph: PARTIAL
- [P1] world.npc_drop_actor_spawn: PARTIAL
- [P2] audio.bgm_ambience_3d: PARTIAL
- [P2] lifecycle.platform_release: PARTIAL
- [P2] world.environment_weather: PARTIAL