diff --git a/Source/objects.cpp b/Source/objects.cpp index 5dde481a8..725df8ba3 100644 --- a/Source/objects.cpp +++ b/Source/objects.cpp @@ -2180,16 +2180,6 @@ void ObjSetMicro(Point position, int pn) } } -void objects_set_door_piece(Point position) -{ - int pn = dPiece[position.x][position.y] - 1; - - uint16_t *piece = &pLevelPieces[10 * pn + 8]; - - dpiece_defs_map_2[position.x][position.y].mt[0] = SDL_SwapLE16(piece[0]); - dpiece_defs_map_2[position.x][position.y].mt[1] = SDL_SwapLE16(piece[1]); -} - void ObjSetMini(Point position, int v) { MegaTile mega = pMegaTiles[v - 1]; @@ -2274,6 +2264,16 @@ void ObjL2Special(int x1, int y1, int x2, int y2) } } +void objects_set_door_piece(Point position) +{ + int pn = dPiece[position.x][position.y] - 1; + + uint16_t *piece = &pLevelPieces[10 * pn + 8]; + + dpiece_defs_map_2[position.x][position.y].mt[0] = SDL_SwapLE16(piece[0]); + dpiece_defs_map_2[position.x][position.y].mt[1] = SDL_SwapLE16(piece[1]); +} + void DoorSet(Point position, _object_id doorType) { int pn = dPiece[position.x][position.y]; @@ -5150,45 +5150,6 @@ void SyncBreakObj(int pnum, int oi) BreakBarrel(pnum, oi, 0, true, false); } -void SyncL1Doors(ObjectStruct &door) -{ - if (door._oVar4 == 0) { - door._oMissFlag = false; - return; - } - - door._oMissFlag = true; - door._oSelFlag = 2; - - Direction doorSetDirection { Direction::DIR_OMNI }; - if (currlevel < 17) { - if (door._otype == _object_id::OBJ_L1LDOOR) { - ObjSetMicro(door.position, door._oVar1 == 214 ? 408 : 393); - dSpecial[door.position.x][door.position.y] = 7; - objects_set_door_piece(door.position + Direction::DIR_NW); - doorSetDirection = Direction::DIR_NE; - } else { - ObjSetMicro(door.position, 395); - dSpecial[door.position.x][door.position.y] = 8; - objects_set_door_piece(door.position + Direction::DIR_NE); - doorSetDirection = Direction::DIR_NW; - } - } else { - if (door._otype == _object_id::OBJ_L1LDOOR) { - ObjSetMicro(door.position, 206); - dSpecial[door.position.x][door.position.y] = 1; - objects_set_door_piece(door.position + Direction::DIR_NW); - doorSetDirection = Direction::DIR_NE; - } else { - ObjSetMicro(door.position, 209); - dSpecial[door.position.x][door.position.y] = 2; - objects_set_door_piece(door.position + Direction::DIR_NE); - doorSetDirection = Direction::DIR_NW; - } - } - DoorSet(door.position + doorSetDirection, door._otype); -} - void SyncCrux(int i) { bool found = true; @@ -5240,6 +5201,45 @@ void SyncPedistal(int i) } } +void SyncL1Doors(ObjectStruct &door) +{ + if (door._oVar4 == 0) { + door._oMissFlag = false; + return; + } + + door._oMissFlag = true; + door._oSelFlag = 2; + + Direction doorSetDirection { Direction::DIR_OMNI }; + if (currlevel < 17) { + if (door._otype == _object_id::OBJ_L1LDOOR) { + ObjSetMicro(door.position, door._oVar1 == 214 ? 408 : 393); + dSpecial[door.position.x][door.position.y] = 7; + objects_set_door_piece(door.position + Direction::DIR_NW); + doorSetDirection = Direction::DIR_NE; + } else { + ObjSetMicro(door.position, 395); + dSpecial[door.position.x][door.position.y] = 8; + objects_set_door_piece(door.position + Direction::DIR_NE); + doorSetDirection = Direction::DIR_NW; + } + } else { + if (door._otype == _object_id::OBJ_L1LDOOR) { + ObjSetMicro(door.position, 206); + dSpecial[door.position.x][door.position.y] = 1; + objects_set_door_piece(door.position + Direction::DIR_NW); + doorSetDirection = Direction::DIR_NE; + } else { + ObjSetMicro(door.position, 209); + dSpecial[door.position.x][door.position.y] = 2; + objects_set_door_piece(door.position + Direction::DIR_NE); + doorSetDirection = Direction::DIR_NW; + } + } + DoorSet(door.position + doorSetDirection, door._otype); +} + void SyncL2Doors(ObjectStruct &door) { door._oMissFlag = door._oVar4 != 0;