- VC++ doesn't seem to like the TArray serializer so I added a workaround
to be able to save the 3dMidtex attachment info. - Fixed: The TArray serializer needs to be declared as a friend of TArray in order to be able to access its fields. - Since there are no backwards compatibility issues due to savegame version bumping I closed all gaps in the level flag set. - Bumped min. Savegame version and Netgame version for 3dMidtex related changes. - Changed Jump and Crouch DMFlags into 3-way switches: 0: map default, 1: off, 2: on. Since I needed new bits the rest of the DMFlag bit values had to be changed as a result. - fixed: PTR_SlideTraverse didn't check ML_BLOCKMONSTERS for sliding actors without MF3_NOBLOCKMONST. - Added MAPINFO commands 'checkswitchrange' and 'nocheckswitchrange' that can enable or disable switch range checking globally per map. - Changed ML_3DMIDTEX to force ML_CHECKSWITCHRANGE. - Added a ML_CHECKSWITCHRANGE flag which allows checking whether the player can actually reach the switch he wants to use. - Made DActiveButton::EWhere global so that I can use it outside thr DActiveButton class. March 17, 2008 (Changes by Graf Zahl) - Changed P_LineOpening to pass its result in a struct instead of global variables. - Added Eternity's 3DMIDTEX feature (no Eternity code used though.) It should be feature complete with the exception of the ML_BLOCKMONSTERS flag handling. That particular part of Eternity's implementation is sub-optimal because it hijacks an existing flag and doesn't seem to make much sense to me. Maybe I'll implement it as a separate flag later. SVN r810 (trunk)
This commit is contained in:
parent
3720f7fa7d
commit
7c87465d35
30 changed files with 2361 additions and 5243 deletions
|
|
@ -333,6 +333,8 @@ void P_SerializeWorld (FArchive &arc)
|
|||
<< sec->FloorSkyBox << sec->CeilingSkyBox
|
||||
<< sec->ZoneNumber
|
||||
<< sec->oldspecial;
|
||||
|
||||
sec->e->Serialize(arc);
|
||||
if (arc.IsStoring ())
|
||||
{
|
||||
arc << sec->ColorMap->Color
|
||||
|
|
@ -406,6 +408,48 @@ void P_SerializeWorld (FArchive &arc)
|
|||
}
|
||||
}
|
||||
|
||||
#if 0
|
||||
// VC++ produces a linker error when using the templated << operator
|
||||
void extsector_t::Serialize(FArchive &arc)
|
||||
{
|
||||
arc << Midtex.Floor.AttachedLines
|
||||
<< Midtex.Floor.AttachedSectors
|
||||
<< Midtex.Ceiling.AttachedLines
|
||||
<< Midtex.Ceiling.AttachedSectors;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
// Remove this when the problem above has been sorted out.
|
||||
template<class T>
|
||||
void SaveArray (FArchive &arc, TArray<T> &self)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
if (arc.IsStoring())
|
||||
{
|
||||
arc.WriteCount(self.Size());
|
||||
}
|
||||
else
|
||||
{
|
||||
DWORD numStored = arc.ReadCount();
|
||||
self.Resize(numStored);
|
||||
}
|
||||
for (i = 0; i < self.Size(); ++i)
|
||||
{
|
||||
arc << self[i];
|
||||
}
|
||||
}
|
||||
|
||||
void extsector_t::Serialize(FArchive &arc)
|
||||
{
|
||||
SaveArray(arc, Midtex.Floor.AttachedLines);
|
||||
SaveArray(arc, Midtex.Floor.AttachedSectors);
|
||||
SaveArray(arc, Midtex.Ceiling.AttachedLines);
|
||||
SaveArray(arc, Midtex.Ceiling.AttachedSectors);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
//
|
||||
// Thinkers
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue