| 3688 | } |
| 3689 | |
| 3690 | void ResyncDoors(WorldTilePosition p1, WorldTilePosition p2, bool sendmsg) |
| 3691 | { |
| 3692 | const WorldTileSize size { static_cast<WorldTileCoord>(p2.x - p1.x), static_cast<WorldTileCoord>(p2.y - p1.y) }; |
| 3693 | const WorldTileRectangle area { p1, size }; |
| 3694 | |
| 3695 | for (WorldTilePosition p : PointsInRectangleRange<WorldTileCoord> { area }) { |
| 3696 | Object *obj = FindObjectAtPosition(p); |
| 3697 | if (obj == nullptr) |
| 3698 | continue; |
| 3699 | if (IsNoneOf(obj->_otype, OBJ_L1LDOOR, OBJ_L1RDOOR, OBJ_L2LDOOR, OBJ_L2RDOOR, OBJ_L3LDOOR, OBJ_L3RDOOR, OBJ_L5LDOOR, OBJ_L5RDOOR)) |
| 3700 | continue; |
| 3701 | SyncDoor(*obj); |
| 3702 | if (sendmsg) { |
| 3703 | bool isOpen = obj->_oVar4 == DOOR_OPEN; |
| 3704 | NetSendCmdLoc(MyPlayerId, true, isOpen ? CMD_OPENDOOR : CMD_CLOSEDOOR, obj->position); |
| 3705 | } |
| 3706 | } |
| 3707 | } |
| 3708 | |
| 3709 | void UpdateState(Object &object, int frame) |
| 3710 | { |
no test coverage detected