raze/source/core/actorinfo.h
Christoph Oelckers 0398ba4ff0 - added all parts needed to implement the actor property parser.
Not hooked up yet with the rest of the code, this just adds the needed files in compilable form.
2022-01-23 13:03:39 +01:00

48 lines
993 B
C++

#pragma once
#include <stddef.h>
#include <stdint.h>
#include "dobject.h"
#include "m_fixed.h"
#include "m_random.h"
class FScanner;
class FInternalLightAssociation;
struct FActorInfo
{
TArray<FInternalLightAssociation *> LightAssociations;
PClassActor *Replacement = nullptr;
PClassActor *Replacee = nullptr;
int TypeNum = -1;
FActorInfo() = default;
FActorInfo(const FActorInfo & other) = delete;
};
// No objects of this type will be created ever - its only use is to static_cast
// PClass to it.
class PClassActor : public PClass
{
protected:
public:
static void StaticInit ();
void BuildDefaults();
void ApplyDefaults(uint8_t *defaults);
bool SetReplacement(FName replaceName);
void InitializeDefaults();
FActorInfo *ActorInfo() const
{
return (FActorInfo*)Meta;
}
PClassActor *GetReplacement();
PClassActor *GetReplacee();
// For those times when being able to scan every kind of actor is convenient
inline static TArray<PClassActor *> AllActorClasses;
};