From 65a812e31617d97883c43dfb482bc3b83cdca132 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Thu, 31 Jan 2019 02:38:39 +0100 Subject: [PATCH] - moved the door thinkers into g_shared. --- src/CMakeLists.txt | 2 +- src/{p_doors.cpp => g_shared/a_doors.cpp} | 0 src/g_shared/a_doors.h | 87 ++++++++++++++++++++++ src/p_spec.h | 88 +---------------------- 4 files changed, 89 insertions(+), 88 deletions(-) rename src/{p_doors.cpp => g_shared/a_doors.cpp} (100%) create mode 100644 src/g_shared/a_doors.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 6670cf6b4..badc2e44a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -952,7 +952,6 @@ set (PCH_SOURCES p_ceiling.cpp p_conversation.cpp p_destructible.cpp - p_doors.cpp p_effect.cpp p_enemy.cpp p_floor.cpp @@ -1024,6 +1023,7 @@ set (PCH_SOURCES g_inventory/a_weapons.cpp g_shared/a_action.cpp g_shared/a_decals.cpp + g_shared/a_doors.cpp g_shared/a_dynlight.cpp g_shared/a_flashfader.cpp g_shared/a_lightning.cpp diff --git a/src/p_doors.cpp b/src/g_shared/a_doors.cpp similarity index 100% rename from src/p_doors.cpp rename to src/g_shared/a_doors.cpp diff --git a/src/g_shared/a_doors.h b/src/g_shared/a_doors.h new file mode 100644 index 000000000..88c0c5667 --- /dev/null +++ b/src/g_shared/a_doors.h @@ -0,0 +1,87 @@ +#pragma once + +// +// P_DOORS +// +class DDoor : public DMovingCeiling +{ + DECLARE_CLASS (DDoor, DMovingCeiling) +public: + enum EVlDoor + { + doorClose, + doorOpen, + doorRaise, + doorWaitRaise, + doorCloseWaitOpen, + doorWaitClose, + }; + + void Construct(sector_t *sector); + void Construct(sector_t *sec, EVlDoor type, double speed, int delay, int lightTag, int topcountdown); + + void Serialize(FSerializer &arc); + void Tick (); +protected: + EVlDoor m_Type; + double m_TopDist; + double m_BotDist, m_OldFloorDist; + vertex_t *m_BotSpot; + double m_Speed; + + // 1 = up, 0 = waiting at top, -1 = down + int m_Direction; + + // tics to wait at the top + int m_TopWait; + // (keep in case a door going down is reset) + // when it reaches 0, start going down + int m_TopCountdown; + + int m_LightTag; + + void DoorSound (bool raise, class DSeqNode *curseq=NULL) const; + +private: + friend struct FLevelLocals; +}; + +class DAnimatedDoor : public DMovingCeiling +{ + DECLARE_CLASS (DAnimatedDoor, DMovingCeiling) +public: + + enum EADType + { + adOpenClose, + adClose + }; + + void Construct(sector_t *sector); + void Construct(sector_t *sec, line_t *line, int speed, int delay, FDoorAnimation *anim, EADType type); + + void Serialize(FSerializer &arc); + void Tick (); + + bool StartClosing (); +protected: + line_t *m_Line1, *m_Line2; + int m_Frame; + FDoorAnimation *m_DoorAnim; + int m_Timer; + double m_BotDist; + int m_Status; + int m_Type; + enum + { + Opening, + Waiting, + Closing, + Dead + }; + int m_Speed; + int m_Delay; + bool m_SetBlocking1, m_SetBlocking2; + + friend struct FLevelLocals; +}; diff --git a/src/p_spec.h b/src/p_spec.h index 529b184ac..c95460915 100644 --- a/src/p_spec.h +++ b/src/p_spec.h @@ -224,93 +224,7 @@ protected: TObjPtr m_Interp_Floor; }; - -// -// P_DOORS -// -class DDoor : public DMovingCeiling -{ - DECLARE_CLASS (DDoor, DMovingCeiling) -public: - enum EVlDoor - { - doorClose, - doorOpen, - doorRaise, - doorWaitRaise, - doorCloseWaitOpen, - doorWaitClose, - }; - - void Construct(sector_t *sector); - void Construct(sector_t *sec, EVlDoor type, double speed, int delay, int lightTag, int topcountdown); - - void Serialize(FSerializer &arc); - void Tick (); -protected: - EVlDoor m_Type; - double m_TopDist; - double m_BotDist, m_OldFloorDist; - vertex_t *m_BotSpot; - double m_Speed; - - // 1 = up, 0 = waiting at top, -1 = down - int m_Direction; - - // tics to wait at the top - int m_TopWait; - // (keep in case a door going down is reset) - // when it reaches 0, start going down - int m_TopCountdown; - - int m_LightTag; - - void DoorSound (bool raise, class DSeqNode *curseq=NULL) const; - -private: - friend struct FLevelLocals; -}; - -class DAnimatedDoor : public DMovingCeiling -{ - DECLARE_CLASS (DAnimatedDoor, DMovingCeiling) -public: - - enum EADType - { - adOpenClose, - adClose - }; - - void Construct(sector_t *sector); - void Construct(sector_t *sec, line_t *line, int speed, int delay, FDoorAnimation *anim, EADType type); - - void Serialize(FSerializer &arc); - void Tick (); - - bool StartClosing (); -protected: - line_t *m_Line1, *m_Line2; - int m_Frame; - FDoorAnimation *m_DoorAnim; - int m_Timer; - double m_BotDist; - int m_Status; - int m_Type; - enum - { - Opening, - Waiting, - Closing, - Dead - }; - int m_Speed; - int m_Delay; - bool m_SetBlocking1, m_SetBlocking2; - - friend struct FLevelLocals; -}; - +#include "a_doors.h" // // P_CEILING //