RequestSectorStateMessage, 12903, one vint of client tick, sent through sendUdpMessage and so arriving on tcp like everything else. we were ignoring it. it matters because of how the client builds models. the factory marks a freshly created object at [obj+0x14], and only for those does LogicGameObjectManager::decode call the listener at [mgr+0x28] that builds the visual. every later snapshot matches the same object by global id and reuses it, so the flag is never set again - an object that was decoded before the battle screen installed its listener stays invisible for the whole battle while still walking and fighting. that is the tower archers and the invisible units; the knight shows because the client creates that one itself, after the screen is up. the client asks for the state when it is ready, and now it gets it. |
||
|---|---|---|
| .. | ||
| bin | ||
| backend.rs | ||
| config.rs | ||
| lib.rs | ||
| main.rs | ||
| message_manager.rs | ||
| session.rs | ||