Browse Source

Move objects_set_door_piece next to DoorSet

these two functions are always called together, can probably be combined or have a wrapper introduced

Move SyncL1Doors to near declarations of other SyncDoors functions
pull/2332/head
ephphatha 5 years ago committed by Anders Jenbo
parent
commit
da4ae52886
  1. 98
      Source/objects.cpp

98
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;

Loading…
Cancel
Save