| 1152 | } |
| 1153 | |
| 1154 | void SetDoorStateOpen(Object &door) |
| 1155 | { |
| 1156 | door._oVar4 = DOOR_OPEN; |
| 1157 | door._oPreFlag = true; |
| 1158 | door._oMissFlag = true; |
| 1159 | door._oSelFlag = 2; |
| 1160 | |
| 1161 | switch (door._otype) { |
| 1162 | case OBJ_L1LDOOR: |
| 1163 | // 214: blood splater |
| 1164 | // 407: blood pool |
| 1165 | // 392: open door (no frame) |
| 1166 | ObjSetMicro(door.position, door._oVar1 == 214 ? 407 : 392); |
| 1167 | dSpecial[door.position.x][door.position.y] = 7; |
| 1168 | DoorSet(door.position + Direction::NorthEast, true); |
| 1169 | break; |
| 1170 | case OBJ_L1RDOOR: |
| 1171 | ObjSetMicro(door.position, 394); |
| 1172 | dSpecial[door.position.x][door.position.y] = 8; |
| 1173 | DoorSet(door.position + Direction::NorthWest, false); |
| 1174 | break; |
| 1175 | case OBJ_L2LDOOR: |
| 1176 | ObjSetMicro(door.position, 12); |
| 1177 | dSpecial[door.position.x][door.position.y] = 5; |
| 1178 | break; |
| 1179 | case OBJ_L2RDOOR: |
| 1180 | ObjSetMicro(door.position, 16); |
| 1181 | dSpecial[door.position.x][door.position.y] = 6; |
| 1182 | break; |
| 1183 | case OBJ_L3LDOOR: |
| 1184 | ObjSetMicro(door.position, 537); |
| 1185 | break; |
| 1186 | case OBJ_L3RDOOR: |
| 1187 | ObjSetMicro(door.position, 540); |
| 1188 | break; |
| 1189 | case OBJ_L5LDOOR: |
| 1190 | ObjSetMicro(door.position, 205); |
| 1191 | CryptDoorSet(door.position + Direction::NorthEast, true); |
| 1192 | break; |
| 1193 | case OBJ_L5RDOOR: |
| 1194 | ObjSetMicro(door.position, 208); |
| 1195 | CryptDoorSet(door.position + Direction::NorthWest, false); |
| 1196 | break; |
| 1197 | default: |
| 1198 | break; |
| 1199 | } |
| 1200 | } |
| 1201 | |
| 1202 | void SetDoorStateClosed(Object &door) |
| 1203 | { |
no test coverage detected