- And another batch of serializers.

This commit is contained in:
Christoph Oelckers 2016-09-19 15:07:53 +02:00
parent a542e99143
commit 88eab9d1f9
22 changed files with 456 additions and 98 deletions

View file

@ -69,7 +69,7 @@
#include "i_system.h" #include "i_system.h"
#include "doomerrors.h" #include "doomerrors.h"
#include "p_effect.h" #include "p_effect.h"
#include "farchive.h" #include "serializer.h"
#include "vmbuilder.h" #include "vmbuilder.h"
// [SO] Just the way Randy said to do it :) // [SO] Just the way Randy said to do it :)
@ -3198,8 +3198,8 @@ PClassActor *ADehackedPickup::DetermineType ()
return NULL; return NULL;
} }
void ADehackedPickup::Serialize(FArchive &arc) void ADehackedPickup::Serialize(FSerializer &arc)
{ {
Super::Serialize(arc); Super::Serialize(arc);
arc << droppedbymonster; arc("droppedbymonster", droppedbymonster);
} }

View file

@ -48,7 +48,8 @@ public:
bool TryPickup (AActor *&toucher); bool TryPickup (AActor *&toucher);
void PlayPickupSound (AActor *toucher); void PlayPickupSound (AActor *toucher);
void DoPickupSpecial (AActor *toucher); void DoPickupSpecial (AActor *toucher);
void Serialize(FArchive &arc); DECLARE_OLD_SERIAL
void Serialize(FSerializer &arc);
private: private:
PClassActor *DetermineType (); PClassActor *DetermineType ();
AInventory *RealPickup; AInventory *RealPickup;

View file

@ -102,7 +102,8 @@ class APlayerPawn : public AActor
DECLARE_CLASS_WITH_META(APlayerPawn, AActor, PClassPlayerPawn) DECLARE_CLASS_WITH_META(APlayerPawn, AActor, PClassPlayerPawn)
HAS_OBJECT_POINTERS HAS_OBJECT_POINTERS
public: public:
virtual void Serialize(FArchive &arc); DECLARE_OLD_SERIAL
virtual void Serialize(FSerializer &arc);
virtual void PostBeginPlay(); virtual void PostBeginPlay();
virtual void Tick(); virtual void Tick();

View file

@ -28,7 +28,7 @@
#include "p_3dmidtex.h" #include "p_3dmidtex.h"
#include "r_data/r_interpolate.h" #include "r_data/r_interpolate.h"
#include "statnums.h" #include "statnums.h"
#include "farchive.h" #include "serializer.h"
#include "doomstat.h" #include "doomstat.h"
IMPLEMENT_CLASS (DSectorEffect) IMPLEMENT_CLASS (DSectorEffect)
@ -64,10 +64,10 @@ DSectorEffect::DSectorEffect (sector_t *sector)
m_Sector = sector; m_Sector = sector;
} }
void DSectorEffect::Serialize(FArchive &arc) void DSectorEffect::Serialize(FSerializer &arc)
{ {
Super::Serialize (arc); Super::Serialize (arc);
arc << m_Sector; arc("sector", m_Sector);
} }
IMPLEMENT_POINTY_CLASS (DMover) IMPLEMENT_POINTY_CLASS (DMover)
@ -90,10 +90,10 @@ void DMover::Destroy()
Super::Destroy(); Super::Destroy();
} }
void DMover::Serialize(FArchive &arc) void DMover::Serialize(FSerializer &arc)
{ {
Super::Serialize (arc); Super::Serialize (arc);
arc << interpolation; arc("interpolation", interpolation);
} }
void DMover::StopInterpolation(bool force) void DMover::StopInterpolation(bool force)

View file

@ -10,7 +10,8 @@ class DSectorEffect : public DThinker
public: public:
DSectorEffect (sector_t *sector); DSectorEffect (sector_t *sector);
void Serialize(FArchive &arc); DECLARE_OLD_SERIAL
void Serialize(FSerializer &arc);
void Destroy(); void Destroy();
sector_t *GetSector() const { return m_Sector; } sector_t *GetSector() const { return m_Sector; }
@ -32,7 +33,8 @@ protected:
private: private:
protected: protected:
DMover (); DMover ();
void Serialize(FArchive &arc); DECLARE_OLD_SERIAL
void Serialize(FSerializer &arc);
void Destroy(); void Destroy();
}; };

View file

@ -14,7 +14,6 @@
#include "templates.h" #include "templates.h"
#include "r_data/r_translate.h" #include "r_data/r_translate.h"
#include "doomstat.h" #include "doomstat.h"
#include "farchive.h"
#include "d_player.h" #include "d_player.h"
#include "a_morph.h" #include "a_morph.h"
#include "p_spec.h" #include "p_spec.h"

View file

@ -1142,10 +1142,11 @@ class APhoenixRod : public AWeapon
{ {
DECLARE_CLASS (APhoenixRod, AWeapon) DECLARE_CLASS (APhoenixRod, AWeapon)
public: public:
void Serialize(FArchive &arc) DECLARE_OLD_SERIAL
void Serialize(FSerializer &arc)
{ {
Super::Serialize (arc); Super::Serialize (arc);
arc << FlameCount; arc("flamecount", FlameCount);
} }
int FlameCount; // for flamethrower duration int FlameCount; // for flamethrower duration
}; };

View file

@ -31,10 +31,11 @@ class ACWeapWraithverge : public AClericWeapon
{ {
DECLARE_CLASS (ACWeapWraithverge, AClericWeapon) DECLARE_CLASS (ACWeapWraithverge, AClericWeapon)
public: public:
void Serialize(FArchive &arc) DECLARE_OLD_SERIAL
void Serialize(FSerializer &arc)
{ {
Super::Serialize (arc); Super::Serialize (arc);
arc << CHolyCount; arc("cholycount", CHolyCount);
} }
PalEntry GetBlend () PalEntry GetBlend ()
{ {

View file

@ -29,10 +29,11 @@ class AMWeapBloodscourge : public AMageWeapon
{ {
DECLARE_CLASS (AMWeapBloodscourge, AMageWeapon) DECLARE_CLASS (AMWeapBloodscourge, AMageWeapon)
public: public:
void Serialize(FArchive &arc) DECLARE_OLD_SERIAL
void Serialize(FSerializer &arc)
{ {
Super::Serialize (arc); Super::Serialize (arc);
arc << MStaffCount; arc("mstaffcount", MStaffCount);
} }
PalEntry GetBlend () PalEntry GetBlend ()
{ {

View file

@ -19,7 +19,7 @@
#include "g_level.h" #include "g_level.h"
#include "doomstat.h" #include "doomstat.h"
#include "v_palette.h" #include "v_palette.h"
#include "farchive.h" #include "serializer.h"
#include "r_utility.h" #include "r_utility.h"
#include "r_data/colormaps.h" #include "r_data/colormaps.h"
@ -101,12 +101,15 @@ bool APowerupGiver::Use (bool pickup)
// //
//=========================================================================== //===========================================================================
void APowerupGiver::Serialize(FArchive &arc) void APowerupGiver::Serialize(FSerializer &arc)
{ {
Super::Serialize (arc); Super::Serialize (arc);
arc << PowerupType; auto def = (APowerupGiver*)GetDefault();
arc << EffectTics << BlendColor << Mode; arc("poweruptype", PowerupType, def->PowerupType)
arc << Strength; ("effecttics", EffectTics, def->EffectTics)
("blendcolor", BlendColor, def->BlendColor)
("mode", Mode, def->Mode)
("strength", Strength, def->Strength);
} }
// Powerup ------------------------------------------------------------------- // Powerup -------------------------------------------------------------------
@ -136,11 +139,14 @@ void APowerup::Tick ()
// //
//=========================================================================== //===========================================================================
void APowerup::Serialize(FArchive &arc) void APowerup::Serialize(FSerializer &arc)
{ {
Super::Serialize (arc); Super::Serialize (arc);
arc << EffectTics << BlendColor << Mode; auto def = (APowerup*)GetDefault();
arc << Strength; arc("effecttics", EffectTics, def->EffectTics)
("blendcolor", BlendColor, def->BlendColor)
("mode", Mode, def->Mode)
("strength", Strength, def->Strength);
} }
//=========================================================================== //===========================================================================
@ -901,10 +907,11 @@ IMPLEMENT_CLASS (APowerTorch)
// //
//=========================================================================== //===========================================================================
void APowerTorch::Serialize(FArchive &arc) void APowerTorch::Serialize(FSerializer &arc)
{ {
Super::Serialize (arc); Super::Serialize (arc);
arc << NewTorch << NewTorchDelta; arc("newtorch", NewTorch)
("newtorchdelta", NewTorchDelta);
} }
//=========================================================================== //===========================================================================
@ -963,10 +970,10 @@ IMPLEMENT_CLASS (APowerFlight)
// //
//=========================================================================== //===========================================================================
void APowerFlight::Serialize(FArchive &arc) void APowerFlight::Serialize(FSerializer &arc)
{ {
Super::Serialize (arc); Super::Serialize (arc);
arc << HitCenterFrame; arc("hitcenterframe", HitCenterFrame);
} }
//=========================================================================== //===========================================================================
@ -1217,10 +1224,10 @@ IMPLEMENT_CLASS (APowerSpeed)
// //
//=========================================================================== //===========================================================================
void APowerSpeed::Serialize(FArchive &arc) void APowerSpeed::Serialize(FSerializer &arc)
{ {
Super::Serialize (arc); Super::Serialize (arc);
arc << SpeedFlags; arc("speedflags", SpeedFlags);
} }
//=========================================================================== //===========================================================================
@ -1899,11 +1906,14 @@ IMPLEMENT_CLASS(APowerMorph)
// //
//=========================================================================== //===========================================================================
void APowerMorph::Serialize(FArchive &arc) void APowerMorph::Serialize(FSerializer &arc)
{ {
Super::Serialize (arc); Super::Serialize (arc);
arc << PlayerClass << MorphStyle << MorphFlash << UnMorphFlash; arc("playerclass", PlayerClass)
arc << Player; ("morphstyle", MorphStyle)
("morphflash", MorphFlash)
("unmorphflash", UnMorphFlash)
("player", Player);
} }
//=========================================================================== //===========================================================================

View file

@ -16,7 +16,8 @@ public:
virtual bool HandlePickup (AInventory *item); virtual bool HandlePickup (AInventory *item);
virtual AInventory *CreateCopy (AActor *other); virtual AInventory *CreateCopy (AActor *other);
virtual AInventory *CreateTossable (); virtual AInventory *CreateTossable ();
virtual void Serialize(FArchive &arc); DECLARE_OLD_SERIAL
virtual void Serialize(FSerializer &arc);
virtual void OwnerDied (); virtual void OwnerDied ();
virtual bool GetNoTeleportFreeze(); virtual bool GetNoTeleportFreeze();
virtual PalEntry GetBlend (); virtual PalEntry GetBlend ();
@ -51,7 +52,8 @@ class APowerupGiver : public AInventory
DECLARE_CLASS_WITH_META (APowerupGiver, AInventory, PClassPowerupGiver) DECLARE_CLASS_WITH_META (APowerupGiver, AInventory, PClassPowerupGiver)
public: public:
virtual bool Use (bool pickup); virtual bool Use (bool pickup);
virtual void Serialize(FArchive &arc); DECLARE_OLD_SERIAL
virtual void Serialize(FSerializer &arc);
PClassActor *PowerupType; PClassActor *PowerupType;
@ -121,7 +123,8 @@ class APowerTorch : public APowerLightAmp
{ {
DECLARE_CLASS (APowerTorch, APowerLightAmp) DECLARE_CLASS (APowerTorch, APowerLightAmp)
public: public:
void Serialize(FArchive &arc); DECLARE_OLD_SERIAL
virtual void Serialize(FSerializer &arc);
protected: protected:
void DoEffect (); void DoEffect ();
int NewTorch, NewTorchDelta; int NewTorch, NewTorchDelta;
@ -132,7 +135,8 @@ class APowerFlight : public APowerup
DECLARE_CLASS (APowerFlight, APowerup) DECLARE_CLASS (APowerFlight, APowerup)
public: public:
bool DrawPowerup (int x, int y); bool DrawPowerup (int x, int y);
void Serialize(FArchive &arc); DECLARE_OLD_SERIAL
virtual void Serialize(FSerializer &arc);
protected: protected:
void InitEffect (); void InitEffect ();
@ -155,7 +159,8 @@ class APowerSpeed : public APowerup
DECLARE_CLASS (APowerSpeed, APowerup) DECLARE_CLASS (APowerSpeed, APowerup)
protected: protected:
void DoEffect (); void DoEffect ();
void Serialize(FArchive &arc); DECLARE_OLD_SERIAL
virtual void Serialize(FSerializer &arc);
double GetSpeedFactor(); double GetSpeedFactor();
public: public:
int SpeedFlags; int SpeedFlags;
@ -272,7 +277,8 @@ class APowerMorph : public APowerup
{ {
DECLARE_CLASS( APowerMorph, APowerup ) DECLARE_CLASS( APowerMorph, APowerup )
public: public:
void Serialize(FArchive &arc); DECLARE_OLD_SERIAL
virtual void Serialize(FSerializer &arc);
void SetNoCallUndoMorph() { bNoCallUndoMorph = true; } void SetNoCallUndoMorph() { bNoCallUndoMorph = true; }
FNameNoInit PlayerClass, MorphFlash, UnMorphFlash; FNameNoInit PlayerClass, MorphFlash, UnMorphFlash;

View file

@ -36,7 +36,7 @@
#include "info.h" #include "info.h"
#include "a_sharedglobal.h" #include "a_sharedglobal.h"
#include "p_local.h" #include "p_local.h"
#include "farchive.h" #include "serializer.h"
#include "math/cmath.h" #include "math/cmath.h"
/* /*
@ -55,7 +55,8 @@ public:
void PostBeginPlay (); void PostBeginPlay ();
void Tick (); void Tick ();
void Serialize(FArchive &arc); DECLARE_OLD_SERIAL
void Serialize(FSerializer &arc);
protected: protected:
DAngle Center; DAngle Center;
DAngle Acc; DAngle Acc;
@ -65,10 +66,13 @@ protected:
IMPLEMENT_CLASS (ASecurityCamera) IMPLEMENT_CLASS (ASecurityCamera)
void ASecurityCamera::Serialize(FArchive &arc) void ASecurityCamera::Serialize(FSerializer &arc)
{ {
Super::Serialize (arc); Super::Serialize (arc);
arc << Center << Acc << Delta << Range; arc("center", Center)
("acc", Acc)
("delta", Delta)
("range", Range);
} }
void ASecurityCamera::PostBeginPlay () void ASecurityCamera::PostBeginPlay ()
@ -114,17 +118,18 @@ public:
void PostBeginPlay (); void PostBeginPlay ();
void Tick (); void Tick ();
void Serialize(FArchive &arc); DECLARE_OLD_SERIAL
void Serialize(FSerializer &arc);
protected: protected:
DAngle MaxPitchChange; DAngle MaxPitchChange;
}; };
IMPLEMENT_CLASS (AAimingCamera) IMPLEMENT_CLASS (AAimingCamera)
void AAimingCamera::Serialize(FArchive &arc) void AAimingCamera::Serialize(FSerializer &arc)
{ {
Super::Serialize (arc); Super::Serialize (arc);
arc << MaxPitchChange; arc("maxpitchchange", MaxPitchChange);
} }
void AAimingCamera::PostBeginPlay () void AAimingCamera::PostBeginPlay ()

View file

@ -11,9 +11,10 @@
#include "a_morph.h" #include "a_morph.h"
#include "doomstat.h" #include "doomstat.h"
#include "g_level.h" #include "g_level.h"
#include "farchive.h" #include "serializer.h"
#include "p_enemy.h" #include "p_enemy.h"
#include "d_player.h" #include "d_player.h"
#include "r_data/sprites.h"
static FRandom pr_morphmonst ("MorphMonster"); static FRandom pr_morphmonst ("MorphMonster");
@ -634,10 +635,16 @@ int AMorphProjectile::DoSpecialDamage (AActor *target, int damage, FName damaget
return -1; return -1;
} }
void AMorphProjectile::Serialize(FArchive &arc) void AMorphProjectile::Serialize(FSerializer &arc)
{ {
Super::Serialize (arc); Super::Serialize (arc);
arc << PlayerClass << MonsterClass << Duration << MorphStyle << MorphFlash << UnMorphFlash; auto def = (AMorphProjectile*)GetDefault();
arc("playerclass", PlayerClass, def->PlayerClass)
("monsterclass", MonsterClass, def->MonsterClass)
("duration", Duration, def->Duration)
("morphstyle", MorphStyle, def->MorphStyle)
("morphflash", MorphFlash, def->MorphFlash)
("unmorphflash", UnMorphFlash, def->UnMorphFlash);
} }
@ -647,10 +654,14 @@ IMPLEMENT_POINTY_CLASS (AMorphedMonster)
DECLARE_POINTER (UnmorphedMe) DECLARE_POINTER (UnmorphedMe)
END_POINTERS END_POINTERS
void AMorphedMonster::Serialize(FArchive &arc) void AMorphedMonster::Serialize(FSerializer &arc)
{ {
Super::Serialize (arc); Super::Serialize (arc);
arc << UnmorphedMe << UnmorphTime << MorphStyle << MorphExitFlash << FlagsSave; arc("unmorphedme", UnmorphedMe)
("unmorphtime", UnmorphTime)
("morphstyle", MorphStyle)
("morphexitflash", MorphExitFlash)
("flagsave", FlagsSave);
} }
void AMorphedMonster::Destroy () void AMorphedMonster::Destroy ()

View file

@ -37,7 +37,7 @@
#include "p_local.h" #include "p_local.h"
#include "p_lnspec.h" #include "p_lnspec.h"
#include "doomstat.h" #include "doomstat.h"
#include "farchive.h" #include "serializer.h"
/* /*
== InterpolationPoint: node along a camera's path == InterpolationPoint: node along a camera's path
@ -60,7 +60,8 @@ public:
AInterpolationPoint *ScanForLoop (); AInterpolationPoint *ScanForLoop ();
void FormChain (); void FormChain ();
void Serialize(FArchive &arc); DECLARE_OLD_SERIAL
void Serialize(FSerializer &arc);
TObjPtr<AInterpolationPoint> Next; TObjPtr<AInterpolationPoint> Next;
}; };
@ -69,10 +70,10 @@ IMPLEMENT_POINTY_CLASS (AInterpolationPoint)
DECLARE_POINTER (Next) DECLARE_POINTER (Next)
END_POINTERS END_POINTERS
void AInterpolationPoint::Serialize(FArchive &arc) void AInterpolationPoint::Serialize(FSerializer &arc)
{ {
Super::Serialize (arc); Super::Serialize (arc);
arc << Next; arc("next", Next);
} }
void AInterpolationPoint::BeginPlay () void AInterpolationPoint::BeginPlay ()
@ -166,7 +167,8 @@ protected:
virtual bool Interpolate (); virtual bool Interpolate ();
virtual void NewNode (); virtual void NewNode ();
void Serialize(FArchive &arc); DECLARE_OLD_SERIAL
void Serialize(FSerializer &arc);
bool bActive, bJustStepped; bool bActive, bJustStepped;
TObjPtr<AInterpolationPoint> PrevNode, CurrNode; TObjPtr<AInterpolationPoint> PrevNode, CurrNode;
@ -179,10 +181,15 @@ IMPLEMENT_POINTY_CLASS (APathFollower)
DECLARE_POINTER (CurrNode) DECLARE_POINTER (CurrNode)
END_POINTERS END_POINTERS
void APathFollower::Serialize(FArchive &arc) void APathFollower::Serialize(FSerializer &arc)
{ {
Super::Serialize (arc); Super::Serialize (arc);
arc << bActive << bJustStepped << PrevNode << CurrNode << Time << HoldTime; arc("active", bActive)
("juststepped", bJustStepped)
("prevnode", PrevNode)
("currnode", CurrNode)
("time", Time)
("holdtime", HoldTime);
} }
// Interpolate between p2 and p3 along a Catmull-Rom spline // Interpolate between p2 and p3 along a Catmull-Rom spline
@ -577,7 +584,8 @@ class AMovingCamera : public APathFollower
public: public:
void PostBeginPlay (); void PostBeginPlay ();
void Serialize(FArchive &arc); DECLARE_OLD_SERIAL
void Serialize(FSerializer &arc);
protected: protected:
bool Interpolate (); bool Interpolate ();
@ -588,10 +596,10 @@ IMPLEMENT_POINTY_CLASS (AMovingCamera)
DECLARE_POINTER (Activator) DECLARE_POINTER (Activator)
END_POINTERS END_POINTERS
void AMovingCamera::Serialize(FArchive &arc) void AMovingCamera::Serialize(FSerializer &arc)
{ {
Super::Serialize (arc); Super::Serialize (arc);
arc << Activator; arc("activator", Activator);
} }
void AMovingCamera::PostBeginPlay () void AMovingCamera::PostBeginPlay ()

View file

@ -194,7 +194,8 @@ class AMorphProjectile : public AActor
DECLARE_CLASS (AMorphProjectile, AActor) DECLARE_CLASS (AMorphProjectile, AActor)
public: public:
int DoSpecialDamage (AActor *target, int damage, FName damagetype); int DoSpecialDamage (AActor *target, int damage, FName damagetype);
void Serialize(FArchive &arc); DECLARE_OLD_SERIAL
void Serialize(FSerializer &arc);
FNameNoInit PlayerClass, MonsterClass, MorphFlash, UnMorphFlash; FNameNoInit PlayerClass, MonsterClass, MorphFlash, UnMorphFlash;
int Duration, MorphStyle; int Duration, MorphStyle;
@ -206,7 +207,8 @@ class AMorphedMonster : public AActor
HAS_OBJECT_POINTERS HAS_OBJECT_POINTERS
public: public:
void Tick (); void Tick ();
void Serialize(FArchive &arc); DECLARE_OLD_SERIAL
void Serialize(FSerializer &arc);
void Die (AActor *source, AActor *inflictor, int dmgflags); void Die (AActor *source, AActor *inflictor, int dmgflags);
void Destroy (); void Destroy ();

View file

@ -65,7 +65,7 @@
#include "s_sound.h" #include "s_sound.h"
#include "m_random.h" #include "m_random.h"
#include "s_sndseq.h" #include "s_sndseq.h"
#include "farchive.h" #include "serializer.h"
// SoundSequenceSlot -------------------------------------------------------- // SoundSequenceSlot --------------------------------------------------------
@ -74,7 +74,8 @@ class ASoundSequenceSlot : public AActor
DECLARE_CLASS (ASoundSequenceSlot, AActor) DECLARE_CLASS (ASoundSequenceSlot, AActor)
HAS_OBJECT_POINTERS HAS_OBJECT_POINTERS
public: public:
void Serialize(FArchive &arc); DECLARE_OLD_SERIAL
void Serialize(FSerializer &arc);
TObjPtr<DSeqNode> Sequence; TObjPtr<DSeqNode> Sequence;
}; };
@ -89,10 +90,10 @@ END_POINTERS
// //
//========================================================================== //==========================================================================
void ASoundSequenceSlot::Serialize(FArchive &arc) void ASoundSequenceSlot::Serialize(FSerializer &arc)
{ {
Super::Serialize (arc); Super::Serialize (arc);
arc << Sequence; arc("sequence", Sequence);
} }
// SoundSequence ------------------------------------------------------------ // SoundSequence ------------------------------------------------------------

View file

@ -55,7 +55,8 @@ class ASigil : public AWeapon
public: public:
bool HandlePickup (AInventory *item); bool HandlePickup (AInventory *item);
AInventory *CreateCopy (AActor *other); AInventory *CreateCopy (AActor *other);
void Serialize(FArchive &arc); DECLARE_OLD_SERIAL
void Serialize(FSerializer &arc);
bool SpecialDropAction (AActor *dropper); bool SpecialDropAction (AActor *dropper);
static int GiveSigilPiece (AActor *daPlayer); static int GiveSigilPiece (AActor *daPlayer);
void BeginPlay(); void BeginPlay();

View file

@ -18,7 +18,7 @@
#include "templates.h" #include "templates.h"
#include "d_event.h" #include "d_event.h"
#include "v_font.h" #include "v_font.h"
#include "farchive.h" #include "serializer.h"
#include "p_spec.h" #include "p_spec.h"
#include "portal.h" #include "portal.h"

View file

@ -753,10 +753,11 @@ void ASigil::BeginPlay()
// //
//============================================================================ //============================================================================
void ASigil::Serialize(FArchive &arc) void ASigil::Serialize(FSerializer &arc)
{ {
Super::Serialize (arc); Super::Serialize (arc);
arc << NumPieces << DownPieces; arc("numpieces", NumPieces)
("downpieces", DownPieces);
} }
//============================================================================ //============================================================================

View file

@ -53,6 +53,7 @@
#include "d_net.h" #include "d_net.h"
#include "gstrings.h" #include "gstrings.h"
#include "farchive.h" #include "farchive.h"
#include "serializer.h"
#include "r_renderer.h" #include "r_renderer.h"
#include "d_player.h" #include "d_player.h"
#include "r_utility.h" #include "r_utility.h"
@ -631,29 +632,32 @@ END_POINTERS
IMPLEMENT_CLASS (APlayerChunk) IMPLEMENT_CLASS (APlayerChunk)
void APlayerPawn::Serialize(FArchive &arc) void APlayerPawn::Serialize(FSerializer &arc)
{ {
Super::Serialize (arc); Super::Serialize (arc);
auto def = (APlayerPawn*)GetDefault();
arc << JumpZ arc("jumpz", JumpZ, def->JumpZ)
<< MaxHealth ("maxhealth", MaxHealth, def->MaxHealth)
<< RunHealth ("runhealth", RunHealth, def->RunHealth)
<< SpawnMask ("spawnmask", SpawnMask, def->SpawnMask)
<< ForwardMove1 ("forwardmove1", ForwardMove1, def->ForwardMove1)
<< ForwardMove2 ("forwardmove2", ForwardMove2, def->ForwardMove2)
<< SideMove1 ("sidemove1", SideMove1, def->SideMove1)
<< SideMove2 ("sidemove2", SideMove2, def->SideMove2)
<< ScoreIcon ("scoreicon", ScoreIcon, def->ScoreIcon)
<< InvFirst ("invfirst", InvFirst)
<< InvSel ("invsel", InvSel)
<< MorphWeapon ("morphweapon", MorphWeapon, def->MorphWeapon)
<< DamageFade ("damagefade", DamageFade, def->DamageFade)
<< PlayerFlags ("playerflags", PlayerFlags, def->PlayerFlags)
<< FlechetteType; ("flechettetype", FlechetteType, def->FlechetteType)
arc << GruntSpeed << FallingScreamMinSpeed << FallingScreamMaxSpeed; ("gruntspeed", GruntSpeed, def->GruntSpeed)
arc << UseRange; ("fallingscreammin", FallingScreamMinSpeed, def->FallingScreamMinSpeed)
arc << AirCapacity; ("fallingscreammaxn", FallingScreamMaxSpeed, def->FallingScreamMaxSpeed)
arc << ViewHeight; ("userange", UseRange, def->UseRange)
("aircapacity", AirCapacity, def->AirCapacity)
("viewheight", ViewHeight, def->ViewHeight);
} }
//=========================================================================== //===========================================================================

View file

@ -50,7 +50,7 @@
#include "d_netinf.h" #include "d_netinf.h"
#include "i_system.h" #include "i_system.h"
#include "d_player.h" #include "d_player.h"
#include "farchive.h" #include "serializer.h"
// MACROS ------------------------------------------------------------------ // MACROS ------------------------------------------------------------------
@ -2102,7 +2102,8 @@ class AAmbientSound : public AActor
{ {
DECLARE_CLASS (AAmbientSound, AActor) DECLARE_CLASS (AAmbientSound, AActor)
public: public:
void Serialize(FArchive &arc); DECLARE_OLD_SERIAL
void Serialize(FSerializer &arc);
void MarkPrecacheSounds () const; void MarkPrecacheSounds () const;
void BeginPlay (); void BeginPlay ();
@ -2125,10 +2126,11 @@ IMPLEMENT_CLASS (AAmbientSound)
// //
//========================================================================== //==========================================================================
void AAmbientSound::Serialize(FArchive &arc) void AAmbientSound::Serialize(FSerializer &arc)
{ {
Super::Serialize (arc); Super::Serialize (arc);
arc << bActive << NextCheck; arc("active", bActive)
("nextcheck", NextCheck);
} }
//========================================================================== //==========================================================================

View file

@ -1,8 +1,11 @@
#ifdef COMMON_STUFF #ifdef COMMON_STUFF
#include "a_doomglobal.h" #include "a_doomglobal.h"
#include "a_hexenglobal.h"
#include "a_strifeglobal.h"
#include "ravenshared.h" #include "ravenshared.h"
#include "a_weaponpiece.h" #include "a_weaponpiece.h"
#include "d_dehacked.h"
// For NULL states, which aren't owned by any actor, the owner // For NULL states, which aren't owned by any actor, the owner
// is recorded as AActor with the following state. AActor should // is recorded as AActor with the following state. AActor should
@ -1037,6 +1040,304 @@ void AWeaponPiece::Serialize(FArchive &arc)
arc << WeaponClass << FullWeapon << PieceValue; arc << WeaponClass << FullWeapon << PieceValue;
} }
void DSectorEffect::Serialize(FArchive &arc)
{
Super::Serialize(arc);
arc << m_Sector;
}
void DMover::Serialize(FArchive &arc)
{
Super::Serialize(arc);
arc << interpolation;
}
class AAmbientSound : public AActor
{
DECLARE_CLASS(AAmbientSound, AActor)
public:
DECLARE_OLD_SERIAL
void Serialize(FSerializer &arc);
void MarkPrecacheSounds() const;
void BeginPlay();
void Tick();
void Activate(AActor *activator);
void Deactivate(AActor *activator);
protected:
bool bActive;
private:
void SetTicker(struct FAmbientSound *ambient);
int NextCheck;
};
void AAmbientSound::Serialize(FArchive &arc)
{
Super::Serialize(arc);
arc << bActive << NextCheck;
}
class AInterpolationPoint : public AActor
{
DECLARE_CLASS(AInterpolationPoint, AActor)
HAS_OBJECT_POINTERS
public:
void BeginPlay();
void HandleSpawnFlags();
void Tick() {} // Nodes do no thinking
AInterpolationPoint *ScanForLoop();
void FormChain();
DECLARE_OLD_SERIAL
void Serialize(FSerializer &arc);
TObjPtr<AInterpolationPoint> Next;
};
class APathFollower : public AActor
{
DECLARE_CLASS(APathFollower, AActor)
HAS_OBJECT_POINTERS
public:
void BeginPlay();
void PostBeginPlay();
void Tick();
void Activate(AActor *activator);
void Deactivate(AActor *activator);
protected:
double Splerp(double p1, double p2, double p3, double p4);
double Lerp(double p1, double p2);
virtual bool Interpolate();
virtual void NewNode();
DECLARE_OLD_SERIAL
void Serialize(FSerializer &arc);
bool bActive, bJustStepped;
TObjPtr<AInterpolationPoint> PrevNode, CurrNode;
float Time; // Runs from 0.0 to 1.0 between CurrNode and CurrNode->Next
int HoldTime;
};
void AInterpolationPoint::Serialize(FArchive &arc)
{
Super::Serialize(arc);
arc << Next;
}
void APathFollower::Serialize(FArchive &arc)
{
Super::Serialize(arc);
arc << bActive << bJustStepped << PrevNode << CurrNode << Time << HoldTime;
}
class AMovingCamera : public APathFollower
{
DECLARE_CLASS(AMovingCamera, APathFollower)
HAS_OBJECT_POINTERS
public:
void PostBeginPlay();
DECLARE_OLD_SERIAL
void Serialize(FSerializer &arc);
protected:
bool Interpolate();
TObjPtr<AActor> Activator;
};
void AMovingCamera::Serialize(FArchive &arc)
{
Super::Serialize(arc);
arc << Activator;
}
void AMorphProjectile::Serialize(FArchive &arc)
{
Super::Serialize(arc);
arc << PlayerClass << MonsterClass << Duration << MorphStyle << MorphFlash << UnMorphFlash;
}
void AMorphedMonster::Serialize(FArchive &arc)
{
Super::Serialize(arc);
arc << UnmorphedMe << UnmorphTime << MorphStyle << MorphExitFlash << FlagsSave;
}
void ADehackedPickup::Serialize(FArchive &arc)
{
Super::Serialize(arc);
arc << droppedbymonster;
}
class ASoundSequenceSlot : public AActor
{
DECLARE_CLASS(ASoundSequenceSlot, AActor)
HAS_OBJECT_POINTERS
public:
DECLARE_OLD_SERIAL
TObjPtr<DSeqNode> Sequence;
};
void ASoundSequenceSlot::Serialize(FArchive &arc)
{
Super::Serialize(arc);
arc << Sequence;
}
void APlayerPawn::Serialize(FArchive &arc)
{
Super::Serialize(arc);
arc << JumpZ
<< MaxHealth
<< RunHealth
<< SpawnMask
<< ForwardMove1
<< ForwardMove2
<< SideMove1
<< SideMove2
<< ScoreIcon
<< InvFirst
<< InvSel
<< MorphWeapon
<< DamageFade
<< PlayerFlags
<< FlechetteType;
arc << GruntSpeed << FallingScreamMinSpeed << FallingScreamMaxSpeed;
arc << UseRange;
arc << AirCapacity;
arc << ViewHeight;
}
class APhoenixRod : public AWeapon
{
DECLARE_CLASS(APhoenixRod, AWeapon)
public:
DECLARE_OLD_SERIAL
int FlameCount; // for flamethrower duration
};
void APhoenixRod::Serialize(FArchive &arc)
{
Super::Serialize(arc);
arc << FlameCount;
}
class ACWeapWraithverge : public AClericWeapon
{
DECLARE_CLASS(ACWeapWraithverge, AClericWeapon)
public:
void Serialize(FArchive &arc);
BYTE CHolyCount;
};
void ACWeapWraithverge::Serialize(FArchive &arc)
{
Super::Serialize(arc);
arc << CHolyCount;
}
class AMWeapBloodscourge : public AMageWeapon
{
DECLARE_CLASS(AMWeapBloodscourge, AMageWeapon)
public:
void Serialize(FArchive &arc);
BYTE MStaffCount;
};
void AMWeapBloodscourge::Serialize(FArchive &arc)
{
Super::Serialize(arc);
arc << MStaffCount;
}
void ASigil::Serialize(FArchive &arc)
{
Super::Serialize(arc);
arc << NumPieces << DownPieces;
}
class ASecurityCamera : public AActor
{
DECLARE_CLASS(ASecurityCamera, AActor)
public:
void PostBeginPlay();
void Tick();
void Serialize(FArchive &arc);
protected:
DAngle Center;
DAngle Acc;
DAngle Delta;
DAngle Range;
};
void ASecurityCamera::Serialize(FArchive &arc)
{
Super::Serialize(arc);
arc << Center << Acc << Delta << Range;
}
class AAimingCamera : public ASecurityCamera
{
DECLARE_CLASS(AAimingCamera, ASecurityCamera)
public:
void PostBeginPlay();
void Tick();
void Serialize(FArchive &arc);
protected:
DAngle MaxPitchChange;
};
void AAimingCamera::Serialize(FArchive &arc)
{
Super::Serialize(arc);
arc << MaxPitchChange;
}
void APowerupGiver::Serialize(FArchive &arc)
{
Super::Serialize(arc);
arc << PowerupType;
arc << EffectTics << BlendColor << Mode;
arc << Strength;
}
void APowerup::Serialize(FArchive &arc)
{
Super::Serialize(arc);
arc << EffectTics << BlendColor << Mode;
arc << Strength;
}
void APowerTorch::Serialize(FArchive &arc)
{
Super::Serialize(arc);
arc << NewTorch << NewTorchDelta;
}
void APowerFlight::Serialize(FArchive &arc)
{
Super::Serialize(arc);
arc << HitCenterFrame;
}
void APowerSpeed::Serialize(FArchive &arc)
{
Super::Serialize(arc);
arc << SpeedFlags;
}
void APowerMorph::Serialize(FArchive &arc)
{
Super::Serialize(arc);
arc << PlayerClass << MorphStyle << MorphFlash << UnMorphFlash;
arc << Player;
}
#endif #endif