Polyphase Game Engine
Loading...
Searching...
No Matches
Datum.cpp File Reference
#include "Datum.h"
#include "TableDatum.h"
#include "ScriptFunc.h"
#include "SmartPointer.h"
#include "Asset.h"
#include "AssetRef.h"
#include "Log.h"
#include "Stream.h"
#include "World.h"
#include "NetworkManager.h"
#include "NodePath.h"
#include "Nodes/Node.h"
#include "NodeGraph/PointCloud.h"
#include "System/System.h"

Macros

#define DEFINE_GET_FIELD(KeyType, DatType, Type, Default)
 
#define DEFINE_SET_FIELD(KeyType, DatType, Type)
 

Macro Definition Documentation

◆ DEFINE_GET_FIELD

#define DEFINE_GET_FIELD (   KeyType,
  DatType,
  Type,
  Default 
)
Value:
Type Datum::Get##DatType##Field(KeyType key) \
{ \
Type ret = Default; \
if (mType == DatumType::Table) \
{ \
TableDatum* td = FindTableDatum(key); \
if (td != nullptr && td->GetType() == DatumType::DatType) \
{ \
ret = td->Get##DatType(); \
} \
} \
return ret; \
}
DatumType GetType() const
Definition Datum.cpp:171
Definition TableDatum.h:8

◆ DEFINE_SET_FIELD

#define DEFINE_SET_FIELD (   KeyType,
  DatType,
  Type 
)
Value:
void Datum::Set##DatType##Field(KeyType key, Type value) \
{ \
if (mType == DatumType::Table || mType == DatumType::Count) \
{ \
TableDatum* td = FindTableDatum(key); \
if (td == nullptr) \
{ \
PushBackTableDatum(TableDatum(key, value)); \
} \
else if (td->GetType() == DatumType::Count || td->GetType() == DatumType::DatType) \
{ \
td->Set##DatType(value); \
} \
else \
{ \
LogWarning("SetField() failed because of mismatching types"); \
} \
} \
}