Skip to content

Commit

Permalink
- moved all service code to 'common'.
Browse files Browse the repository at this point in the history
This needs to work on Raze as well!
  • Loading branch information
coelckers committed Mar 26, 2023
1 parent 7537f41 commit 9fbac8f
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 27 deletions.
31 changes: 29 additions & 2 deletions src/common/scripting/interface/vmnatives.cpp
Expand Up @@ -55,6 +55,35 @@

#include "maps.h"

static ZSMap<FName, DObject*> AllServices;

static void MarkServices() {

ZSMap<FName, DObject*>::Iterator it(AllServices);
ZSMap<FName, DObject*>::Pair* pair;
while (it.NextPair(pair))
{
GC::Mark<DObject>(pair->Value);
}
}

void InitServices()
{
PClass* cls = PClass::FindClass("Service");
for (PClass* clss : PClass::AllClasses)
{
if (clss != cls && cls->IsAncestorOf(clss))
{
DObject* obj = clss->CreateNew();
obj->ObjectFlags |= OF_Transient;
AllServices.Insert(clss->TypeName, obj);
}
}
GC::AddMarkerFunc(&MarkServices);
}



//==========================================================================
//
// status bar exports
Expand Down Expand Up @@ -1161,8 +1190,6 @@ DEFINE_FIELD_X(MusPlayingInfo, MusPlayingInfo, baseorder);
DEFINE_FIELD_X(MusPlayingInfo, MusPlayingInfo, loop);
DEFINE_FIELD_X(MusPlayingInfo, MusPlayingInfo, handle);

extern ZSMap<FName, DObject* > AllServices;

DEFINE_GLOBAL_NAMED(PClass::AllClasses, AllClasses)

DEFINE_GLOBAL(AllServices)
Expand Down
28 changes: 3 additions & 25 deletions src/gamedata/info.cpp
Expand Up @@ -369,18 +369,7 @@ static void LoadAltHudStuff()
// PClassActor :: StaticInit STATIC
//
//==========================================================================

ZSMap<FName, DObject*> AllServices;

static void MarkServices(){

ZSMap<FName, DObject*>::Iterator it(AllServices);
ZSMap<FName, DObject*>::Pair *pair;
while (it.NextPair(pair))
{
GC::Mark<DObject>(pair->Value);
}
}
void InitServices();

void PClassActor::StaticInit()
{
Expand All @@ -407,6 +396,8 @@ void PClassActor::StaticInit()
if (!batchrun) Printf ("LoadActors: Load actor definitions.\n");
ClearStrifeTypes();
LoadActors ();
InitServices();


for (auto cls : AllClasses)
{
Expand All @@ -416,19 +407,6 @@ void PClassActor::StaticInit()
}
}

PClass * cls = PClass::FindClass("Service");
for(PClass * clss : PClass::AllClasses)
{
if(clss != cls && cls->IsAncestorOf(clss))
{
DObject * obj = clss->CreateNew();
obj->ObjectFlags |= OF_Transient;
AllServices.Insert(clss->TypeName, obj);
}
}

GC::AddMarkerFunc(&MarkServices);

LoadAltHudStuff();
InitBotStuff();

Expand Down

0 comments on commit 9fbac8f

Please sign in to comment.