From 1ce11ff02af05f3bf5897e07cc662104ef54f541 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sat, 11 Apr 2020 19:29:18 +0200 Subject: [PATCH] - dictionary can also go to 'common'. --- src/CMakeLists.txt | 2 +- .../scripting/core}/dictionary.cpp | 0 .../scripting/core}/dictionary.h | 0 src/common/scripting/core/types.cpp | 94 ++++++++++--------- 4 files changed, 50 insertions(+), 46 deletions(-) rename src/{scripting => common/scripting/core}/dictionary.cpp (100%) rename src/{scripting => common/scripting/core}/dictionary.h (100%) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 0e20c70eb..deef95e1c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1037,7 +1037,6 @@ set (PCH_SOURCES r_data/models/models_voxel.cpp r_data/models/models_ue1.cpp r_data/models/models_obj.cpp - scripting/dictionary.cpp scripting/vmiterators.cpp scripting/vmthunks.cpp scripting/vmthunks_actors.cpp @@ -1151,6 +1150,7 @@ set (PCH_SOURCES common/objects/dobject.cpp common/objects/dobjgc.cpp common/objects/dobjtype.cpp + common/scripting/core/dictionary.cpp common/scripting/core/symbols.cpp common/scripting/core/types.cpp common/scripting/core/scopebarrier.cpp diff --git a/src/scripting/dictionary.cpp b/src/common/scripting/core/dictionary.cpp similarity index 100% rename from src/scripting/dictionary.cpp rename to src/common/scripting/core/dictionary.cpp diff --git a/src/scripting/dictionary.h b/src/common/scripting/core/dictionary.h similarity index 100% rename from src/scripting/dictionary.h rename to src/common/scripting/core/dictionary.h diff --git a/src/common/scripting/core/types.cpp b/src/common/scripting/core/types.cpp index 6b8bd4a8f..f9a8074a6 100644 --- a/src/common/scripting/core/types.cpp +++ b/src/common/scripting/core/types.cpp @@ -39,8 +39,6 @@ #include "printf.h" #include "textureid.h" #include "version.h" -#include "info.h" -#include "serializer_doom.h" FTypeTable TypeTable; @@ -1439,49 +1437,6 @@ PPointer *NewPointer(PClass *cls, bool isconst) return static_cast(ptype); } -/* PStatePointer **********************************************************/ - -//========================================================================== -// -// PStatePointer Default Constructor -// -//========================================================================== - -PStatePointer::PStatePointer() -{ - mDescriptiveName = "Pointer"; - PointedType = NewStruct(NAME_State, nullptr, true); - IsConst = true; -} - -//========================================================================== -// -// PStatePointer :: WriteValue -// -//========================================================================== - -void PStatePointer::WriteValue(FSerializer &ar, const char *key, const void *addr) const -{ -#ifdef GZDOOM - ar(key, *(FState **)addr); -#endif -} - -//========================================================================== -// -// PStatePointer :: ReadValue -// -//========================================================================== - -bool PStatePointer::ReadValue(FSerializer &ar, const char *key, void *addr) const -{ - bool res = false; -#ifdef GZDOOM - ::Serialize(ar, key, *(FState **)addr, nullptr, &res); -#endif - return res; -} - /* PClassPointer **********************************************************/ @@ -2569,3 +2524,52 @@ CCMD(typetable) DumpTypeTable(); } +// fixme: The VM depends on this but it's engine specific. Needs a better solution. + +/* PStatePointer **********************************************************/ +#ifdef GZDOOM +#include "info.h" +#include "serializer_doom.h" +#endif + +//========================================================================== +// +// PStatePointer Default Constructor +// +//========================================================================== + +PStatePointer::PStatePointer() +{ + mDescriptiveName = "Pointer"; + PointedType = NewStruct(NAME_State, nullptr, true); + IsConst = true; +} + +//========================================================================== +// +// PStatePointer :: WriteValue +// +//========================================================================== + +void PStatePointer::WriteValue(FSerializer& ar, const char* key, const void* addr) const +{ +#ifdef GZDOOM + ar(key, *(FState**)addr); +#endif +} + +//========================================================================== +// +// PStatePointer :: ReadValue +// +//========================================================================== + +bool PStatePointer::ReadValue(FSerializer& ar, const char* key, void* addr) const +{ + bool res = false; +#ifdef GZDOOM + ::Serialize(ar, key, *(FState**)addr, nullptr, &res); +#endif + return res; +} +