mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-23 04:22:34 +00:00
62 lines
2.8 KiB
C
62 lines
2.8 KiB
C
|
#pragma once
|
||
|
|
||
|
#include "serializer.h"
|
||
|
|
||
|
class player_t;
|
||
|
struct sector_t;
|
||
|
struct line_t;
|
||
|
struct side_t;
|
||
|
struct vertex_t;
|
||
|
struct ticcmd_t;
|
||
|
struct usercmd_t;
|
||
|
class PClassActor;
|
||
|
struct FStrifeDialogueNode;
|
||
|
struct FState;
|
||
|
struct FDoorAnimation;
|
||
|
struct FPolyObj;
|
||
|
struct FInterpolator;
|
||
|
struct FLevelLocals;
|
||
|
|
||
|
class FDoomSerializer : public FSerializer
|
||
|
{
|
||
|
|
||
|
void CloseReaderCustom() override;
|
||
|
|
||
|
public:
|
||
|
FLevelLocals* Level;
|
||
|
|
||
|
FDoomSerializer(FLevelLocals *l) : Level(l)
|
||
|
{}
|
||
|
|
||
|
FSerializer &Sprite(const char *key, int32_t &spritenum, int32_t *def) override;
|
||
|
|
||
|
};
|
||
|
|
||
|
FSerializer &SerializeArgs(FSerializer &arc, const char *key, int *args, int *defargs, int special);
|
||
|
FSerializer &SerializeTerrain(FSerializer &arc, const char *key, int &terrain, int *def = nullptr);
|
||
|
|
||
|
FSerializer& Serialize(FSerializer& arc, const char* key, char& value, char* defval);
|
||
|
FSerializer &Serialize(FSerializer &arc, const char *key, ticcmd_t &sid, ticcmd_t *def);
|
||
|
FSerializer &Serialize(FSerializer &arc, const char *key, usercmd_t &cmd, usercmd_t *def);
|
||
|
FSerializer &Serialize(FSerializer &arc, const char *key, FInterpolator &rs, FInterpolator *def);
|
||
|
|
||
|
template<> FSerializer &Serialize(FSerializer &arc, const char *key, FPolyObj *&value, FPolyObj **defval);
|
||
|
template<> FSerializer &Serialize(FSerializer &arc, const char *key, sector_t *&value, sector_t **defval);
|
||
|
template<> FSerializer &Serialize(FSerializer &arc, const char *key, const FPolyObj *&value, const FPolyObj **defval);
|
||
|
template<> FSerializer &Serialize(FSerializer &arc, const char *key, const sector_t *&value, const sector_t **defval);
|
||
|
template<> FSerializer &Serialize(FSerializer &arc, const char *key, player_t *&value, player_t **defval);
|
||
|
template<> FSerializer &Serialize(FSerializer &arc, const char *key, line_t *&value, line_t **defval);
|
||
|
template<> FSerializer &Serialize(FSerializer &arc, const char *key, side_t *&value, side_t **defval);
|
||
|
template<> FSerializer &Serialize(FSerializer &arc, const char *key, vertex_t *&value, vertex_t **defval);
|
||
|
template<> FSerializer &Serialize(FSerializer &arc, const char *key, PClassActor *&clst, PClassActor **def);
|
||
|
template<> FSerializer &Serialize(FSerializer &arc, const char *key, FStrifeDialogueNode *&node, FStrifeDialogueNode **def);
|
||
|
template<> FSerializer &Serialize(FSerializer &arc, const char *key, FString *&pstr, FString **def);
|
||
|
template<> FSerializer &Serialize(FSerializer &arc, const char *key, FDoorAnimation *&pstr, FDoorAnimation **def);
|
||
|
template<> FSerializer &Serialize(FSerializer &arc, const char *key, char *&pstr, char **def);
|
||
|
template<> FSerializer &Serialize(FSerializer &arc, const char *key, FLevelLocals *&font, FLevelLocals **def);
|
||
|
FSerializer &Serialize(FSerializer &arc, const char *key, FState *&state, FState **def, bool *retcode);
|
||
|
template<> inline FSerializer &Serialize(FSerializer &arc, const char *key, FState *&state, FState **def)
|
||
|
{
|
||
|
return Serialize(arc, key, state, def, nullptr);
|
||
|
}
|