- backend update from GZDoom.

This commit is contained in:
Christoph Oelckers 2023-03-26 11:45:25 +02:00
parent 0840e547b7
commit b6da4ecddf
50 changed files with 5277 additions and 1366 deletions

View file

@ -53,6 +53,37 @@
#include "s_soundinternal.h"
#include "i_time.h"
#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
@ -1159,7 +1190,12 @@ 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)
DEFINE_GLOBAL(Bindings)
DEFINE_GLOBAL(AutomapBindings)
DEFINE_GLOBAL(generic_ui)