Skip to content

Commit

Permalink
Docs for DoorState, switched closeSpeed with openSpeed
Browse files Browse the repository at this point in the history
  • Loading branch information
captainurist committed Dec 10, 2023
1 parent eb27120 commit 0a11152
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 13 deletions.
10 changes: 5 additions & 5 deletions src/Engine/Graphics/FaceEnums.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,12 +56,12 @@ using enum DoorAttribute;
MM_DECLARE_FLAGS(DoorAttributes, DoorAttribute)
MM_DECLARE_OPERATORS_FOR_FLAGS(DoorAttributes)

// TODO(captainurist): most closed doors are in DOOR_OPEN, and most open doors are in DOOR_CLOSED. Rename states.
// TODO(captainurist): most closed doors are in DOOR_OPEN, and most open doors are in DOOR_CLOSED. Rename states?
enum class DoorState : uint16_t {
DOOR_CLOSED = 0,
DOOR_OPENING = 1,
DOOR_OPEN = 2,
DOOR_CLOSING = 3
DOOR_CLOSED = 0, // Initial state, door mesh is at a position where BLVDoor::p[XYZ]Offsets point.
DOOR_OPENING = 1, // Going into alternative state.
DOOR_OPEN = 2, // Alternative state, door mesh is at BLVDoor::p[XYZ]Offsets + BLVDoor::vDirection * BLVDoor::uMoveLength.
DOOR_CLOSING = 3, // Going into initial state.
};
using enum DoorState;

Expand Down
8 changes: 4 additions & 4 deletions src/Engine/Graphics/Indoor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -688,7 +688,7 @@ void BLV_UpdateDoors() {

int openDistance; // [sp+60h] [bp-4h]@6
if (door->uState == DOOR_OPENING) {
openDistance = door->uTimeSinceTriggered.toRealtimeMilliseconds() * door->uCloseSpeed / 1000;
openDistance = door->uTimeSinceTriggered.toRealtimeMilliseconds() * door->uOpenSpeed / 1000;

if (openDistance >= door->uMoveLength) {
openDistance = door->uMoveLength;
Expand All @@ -701,7 +701,7 @@ void BLV_UpdateDoors() {
} else {
assert(door->uState == DOOR_CLOSING);

int closeDistance = door->uTimeSinceTriggered.toRealtimeMilliseconds() * door->uOpenSpeed / 1000;
int closeDistance = door->uTimeSinceTriggered.toRealtimeMilliseconds() * door->uCloseSpeed / 1000;
if (closeDistance >= door->uMoveLength) {
openDistance = 0;
door->uState = DOOR_CLOSED;
Expand Down Expand Up @@ -1842,7 +1842,7 @@ void switchDoorAnimation(unsigned int uDoorID, DoorAction a2) {
door.uTimeSinceTriggered = Duration::zero();
} else if (door.uTimeSinceTriggered != Duration::fromTicks(15360)) {
door.uTimeSinceTriggered = Duration::fromTicks(
(door.uMoveLength << 7) / door.uOpenSpeed - ((signed int) (door.uTimeSinceTriggered.ticks() * door.uCloseSpeed) / 128 << 7) / door.uOpenSpeed);
(door.uMoveLength << 7) / door.uCloseSpeed - ((signed int) (door.uTimeSinceTriggered.ticks() * door.uOpenSpeed) / 128 << 7) / door.uCloseSpeed);
}
door.uState = DOOR_CLOSING;
} else if (a2 == DOOR_ACTION_OPEN) {
Expand All @@ -1853,7 +1853,7 @@ void switchDoorAnimation(unsigned int uDoorID, DoorAction a2) {
door.uTimeSinceTriggered = Duration::zero();
} else if (door.uTimeSinceTriggered != Duration::fromTicks(15360)) {
door.uTimeSinceTriggered = Duration::fromTicks(
(door.uMoveLength << 7) / door.uCloseSpeed - ((signed int) (door.uTimeSinceTriggered.ticks() * door.uOpenSpeed) / 128 << 7) / door.uCloseSpeed);
(door.uMoveLength << 7) / door.uOpenSpeed - ((signed int) (door.uTimeSinceTriggered.ticks() * door.uCloseSpeed) / 128 << 7) / door.uOpenSpeed);
}
door.uState = DOOR_OPENING;
}
Expand Down
2 changes: 1 addition & 1 deletion src/Engine/Graphics/Indoor.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ struct BLVDoor { // 50h
Duration uTimeSinceTriggered;
Vec3i vDirection; // Fixpoint direction vector
int32_t uMoveLength;
int32_t uOpenSpeed;
int32_t uCloseSpeed;
int32_t uOpenSpeed;
int16_t *pVertexIDs;
int16_t *pFaceIDs;
int16_t *pSectorIDs;
Expand Down
4 changes: 2 additions & 2 deletions src/Engine/Snapshots/EntitySnapshots.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1336,8 +1336,8 @@ void snapshot(const BLVDoor &src, BLVDoor_MM7 *dst) {
dst->uTimeSinceTriggered = src.uTimeSinceTriggered.ticks();
dst->vDirection = src.vDirection;
dst->uMoveLength = src.uMoveLength;
dst->uOpenSpeed = src.uOpenSpeed;
dst->uCloseSpeed = src.uCloseSpeed;
dst->uOpenSpeed = src.uOpenSpeed;
dst->uNumVertices = src.uNumVertices;
dst->uNumFaces = src.uNumFaces;
dst->uNumSectors = src.uNumSectors;
Expand All @@ -1351,8 +1351,8 @@ void reconstruct(const BLVDoor_MM7 &src, BLVDoor *dst) {
dst->uTimeSinceTriggered = Duration::fromTicks(src.uTimeSinceTriggered);
dst->vDirection = src.vDirection;
dst->uMoveLength = src.uMoveLength;
dst->uOpenSpeed = src.uOpenSpeed;
dst->uCloseSpeed = src.uCloseSpeed;
dst->uOpenSpeed = src.uOpenSpeed;
dst->uNumVertices = src.uNumVertices;
dst->uNumFaces = src.uNumFaces;
dst->uNumSectors = src.uNumSectors;
Expand Down
2 changes: 1 addition & 1 deletion src/Engine/Snapshots/EntitySnapshots.h
Original file line number Diff line number Diff line change
Expand Up @@ -778,8 +778,8 @@ struct BLVDoor_MM7 {
uint32_t uTimeSinceTriggered;
Vec3i vDirection;
uint32_t uMoveLength;
uint32_t uOpenSpeed;
uint32_t uCloseSpeed;
uint32_t uOpenSpeed;
uint32_t pVertexIDs;
uint32_t pFaceIDs;
uint32_t pSectorIDs;
Expand Down

0 comments on commit 0a11152

Please sign in to comment.