MCPcopy Create free account
hub / github.com/diasurgical/DevilutionX / ResyncDoors

Function ResyncDoors

Source/objects.cpp:3690–3707  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3688}
3689
3690void 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
3709void UpdateState(Object &object, int frame)
3710{

Callers 2

ObjChangeMapFunction · 0.85
ObjChangeMapResyncFunction · 0.85

Calls 4

FindObjectAtPositionFunction · 0.85
IsNoneOfFunction · 0.85
SyncDoorFunction · 0.85
NetSendCmdLocFunction · 0.85

Tested by

no test coverage detected