This is his changelog.
Code: Select all
In Spring.exe:
-Bug fix:Objects with equal address in CReg (Serializer.h,Serializer.cpp)
-Bug fix:Serializing of Synched*** (VarTypes.cpp)
-set<class *> replaced by list<class *> in serializable classes (CObject.h,CObject.cpp,FeatureHandler.h,FeatureHandler.cpp,UnitHandler.h,UnitHandler.cpp,
UnitTracker.cpp,PlasmaRepulser.h,PlasmaRepulser.cpp,LuaSyncedCtrl.cpp,LuaSyncedRead.cpp,
LuaUnsyncedRead.cpp,SpawnScript.cpp,Game.h,Game.cpp,SelectedUnits.h,SelectedUnits.cpp,Team.h,Team.cpp
WaitCommandsAI.h,WaitCommandsAI.cpp,MiniMap.cpp,MouseHandler.cpp,SelectionKeyHandler.cpp)
-Added/fixed CReg metadata registration (GlobalStuff.h,GlobalStuff.cpp,Feature.h,Feature.cpp,FeatureHandler.h,FeatureHandler.cpp,
TAAirMoveType.h,TAAirMoveType.cpp,AirMoveType.cpp,groundmovetype.cpp,ScriptMoveType.cpp,
BeamLaserProjectile.cpp,EmgProjectile.cpp,ExplosionGenerator.h,ExplosionGenerator.cpp,
FireBallProjectile.cpp,FlameProjectile.cpp,FlareProjectile.h,FlareProjectile.cpp,
LargeBeamLaserProjectile.cpp,LaserProjectile.cpp,MissileProjectile.cpp,MuzzleFlame.h,
MuzzleFlame.cpp,PieceProjectile.h,PieceProjectile.cpp,ProjectileHandler.h,ProjectileHandler.cpp,
RepulseGfx.cpp,ShieldPartProjectile.cpp,StarburstProjectile.cpp,WeaponProjectile.h,WeaponProjectile.cpp,
WreckProjectile.h,WreckProjectile.cpp,Unit.h,Unit.cpp,AirCAI.h,AirCAI.cpp,BuilderCAI.h,BuilderCAI.cpp,
CommandAI.h,CommandAI.cpp,CommandQueue.h,FactoryCAI.h,FactoryCAI.cpp,MobileCAI.h,MobileCAI.cpp,
TransportCAI.h,TransportCAI.cpp,Builder.h,Builder.cpp,Building.h,Building.cpp,ExtractorBuilding.h,
ExtractorBuilding.cpp,Factory.h,Factory.cpp,TransportUnit.h,TransportUnit.cpp,bombdropper.cpp,
TorpedoLauncher.cpp,Weapon.cpp,GroundFlash.h,GroundFlash.cpp,MetalMap.h,MetalMap.cpp,command.h,
command.cpp,Game.h,Game.cpp,Player.h,Player.cpp,Team.h,Team.cpp,aikey.h,GlobalAI.h,GlobalAI.cpp,
GlobalAIHandler.h,GlobalAIHandler.cpp,Group.h,Group.cpp,GroupHandler.h,GroupHandler.cpp)
-Fixed bug with death dependances from nonserialized CObject-based classes (CObject.cpp)
-Reduced save size (LosHandler.h,LosHandler.cpp)
-Replaced type* by vector<type> (LosHandler.h,LosHandler.cpp,RadarHandler.h,RadarHandler.cpp,QuadField.h,QuadField.cpp,UnitHandler.h,
UnitHandler.cpp,MetalMap.h,MetalMap.cpp,ReadMap.h,ReadMap.cpp,BaseGroundDrawer.cpp,GuiHandler.cpp,
AICallback.h,AICallback.cpp,)
-Load/Save fixed (LoadScript.h,LoadScript.cpp)
-Directory for saves (Game.cpp,LoadScript.cpp)
-F8 now save to QuickSave.ssf (Game.cpp)
-Added game command .save [-y ]<savename> (Game.cpp,WordCompletion.cpp)
-Added Save/Load interface for AI(ai versions incremented) (GlobalAI.h,GlobalAI.cpp,GlobalAIHandler.h,GlobalAIHandler.cpp,GroupHandler.h,GroupHandler.cpp,IGlobalAI.h,IGroupAI.h)
-Added metal/energy storade to CUnit (Unit.h,Unit.cpp,CommanderScript.cpp)
-Fixed possible bug with time profiler (UnitLoader.cpp)
-Added Land at 80 for air units (doesn't work) (AirCAI.cpp)
-Ground flashes can be permanent (GroundFlash.cpp)
-Log message text instead Loading step... (for save/load screen) (myGL.cpp)
-Added CScript::ScriptSelected (Script.h,Script.cpp,LoadScript.h,LoadScript.cpp)
-Edited camera (CameraController.cpp)
-Main camera draw moved from CGame::Draw to CGame::DrawWorld (Game.h,Game.cpp)
-Added group handler per team (Game.cpp,SelectedUnits.cpp,LuaUI.cpp,GlobalAICallback.cpp,AICallback.cpp,GroupHandler.cpp,GlobalAI.h,GlobalAI.cpp)
-Added max time diff (Game.cpp,GameServer.cpp)
-Added time profiling for draw (Game.cpp)
-Fixed load from CPreGame(doesn't work) (PreGame.cpp)
-In end game box hide second stat by default (EndGameBox.cpp)
-Draw minimap before interface (Game.cpp)
-Don't draw main camera if minimap is maximized (Game.cpp,MiniMap.h,MiniMap.cpp)
-Added GetStartPos to CAICallback (AICallback.h,AICallback.cpp,IAICallback.h)
-Fixed CCommandQueue in ai interface (AICallback.h,IAICallback.h)
-Hide gaia team (QuitBox.cpp,ShareBox.cpp)
-Add - between unit name and description (SelectionKeyHandler.cpp)
-Added windows SEH support (main.cpp,seh.cpp,seh.h)
-Use crashrpt instead crashreport (main.cpp)
-SimplePositiveInfinity from <limits> (temp) (lmathlib.cpp)
-Delete #include<math.h> (FontTexture.cpp)
-Streflop math.h renamed to smath.h (smath.h,streflop.h,e_***.cpp)
-Removed CUnit::loaded from c# interface (IUnitDef.cs,IUnitDef_generated.h,IUnitDef_generated.cpp)
AI:
GroupAI and GlobalTestAI sln converted to vs8
Changes in AAI and KAI-0.22
Added save/load support to KAI-0.22,EconomyAI,MexUpgraderAI
RadarHandler from old NTAI copied to KAI-0.22 (CoverageHandler.h,CoverageHandler.cpp)
CrashRpt:
sln converted to vs8
TODO:
-Add save/load support for other global ais
-Add save/load for COB
-Add save/load for start scripts
-Add save/load for CGameSetup(for load from pre-game menu)
-Add save/load for restrictions
Save/Load now works only through CGameSetup scripts(ScriptName=Load ***.ssf)
I've converted it to a large patch (http://user.supradigital.org/jcnossen/V ... trib.patch) (801k !), maybe someone else can take a look at it, split it up, commit it... because I have exams in 2 days
Since otherwise noone probably wanted to fix my saving code including me, this is a really big thing.
EDIT: Tested the saving without AIs, it works fine.