1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-05-29 22:57:49 +02:00
vcmi/lib/RegisterTypes.cpp
Michał W. Urbańczyk 617e1f962e New files for lib:
* lib/ERMScriptModule.cpp
* lib/ERMScriptModule.h
* lib/CObstacleInstance.h

More jugglery with callbacks. Moving stuff from CGameState to CGameInfoCallback. Work on unified game events interface for player (AI or GUI) and script module. Directing events to ERM interpretetr, first attempts of calling some triggers. Crashy, if there any scripts.
Some other changes, including fighting amount of includes in includes and tracking of hero visits (need further work).
2011-05-09 22:20:47 +00:00

239 lines
8.8 KiB
C++

#include "Connection.h"
#include "NetPacks.h"
#include "VCMI_Lib.h"
#include "CArtHandler.h"
#include "CObjectHandler.h"
#include "CGameState.h"
#include "CHeroHandler.h"
#include "CTownHandler.h"
/*
* RegisterTypes.cpp, part of VCMI engine
*
* Authors: listed in file AUTHORS in main folder
*
* License: GNU General Public License v2.0 or later
* Full text of license available in license.txt file, in main folder
*
*/
#ifndef VCMI_DLL
#undef DLL_EXPORT
#define DLL_EXPORT
#endif
#include "RegisterTypes.h"
template<typename Serializer> DLL_EXPORT
void registerTypes1(Serializer &s)
{
//map objects
s.template registerType<CGHeroPlaceholder>();
s.template registerType<CGHeroInstance>();
s.template registerType<CGTownInstance>();
s.template registerType<CTownBonus>();
s.template registerType<CGPandoraBox>();
s.template registerType<CGEvent>();
s.template registerType<CGDwelling>();
s.template registerType<CGVisitableOPH>();
s.template registerType<CGVisitableOPW>();
s.template registerType<CGTeleport>();
s.template registerType<CGPickable>();
s.template registerType<CGCreature>();
s.template registerType<CGSignBottle>();
s.template registerType<CGSeerHut>();
s.template registerType<CGQuestGuard>();
s.template registerType<CGWitchHut>();
s.template registerType<CGScholar>();
s.template registerType<CGGarrison>();
s.template registerType<CGArtifact>();
s.template registerType<CGResource>();
s.template registerType<CGMine>();
s.template registerType<CGShrine>();
s.template registerType<CGBonusingObject>();
s.template registerType<CGMagicSpring>();
s.template registerType<CGMagicWell>();
s.template registerType<CGObservatory>();
s.template registerType<CGKeys>();
s.template registerType<CGKeymasterTent>();
s.template registerType<CGBorderGuard>();
s.template registerType<CGBoat>();
s.template registerType<CGMagi>();
s.template registerType<CGSirens>();
s.template registerType<CGOnceVisitable>();
s.template registerType<CBank>();
s.template registerType<CGPyramid>();
s.template registerType<CGShipyard>();
s.template registerType<CCartographer>();
s.template registerType<CGObjectInstance>();
s.template registerType<COPWBonus>();
s.template registerType<CGDenOfthieves>();
s.template registerType<CGObelisk>();
s.template registerType<CGLighthouse>();
s.template registerType<CGMarket>();
s.template registerType<CGBlackMarket>();
s.template registerType<CGUniversity>();
//end of objects
s.template registerType<IPropagator>();
s.template registerType<CPropagatorNodeType>();
s.template registerType<ILimiter>();
s.template registerType<CCreatureTypeLimiter>();
s.template registerType<HasAnotherBonusLimiter>();
s.template registerType<CreatureNativeTerrainLimiter>();
s.template registerType<CreatureFactionLimiter>();
s.template registerType<CreatureAlignmentLimiter>();
s.template registerType<RankRangeLimiter>();
s.template registerType<StackOwnerLimiter>();
s.template registerType<CBonusSystemNode>();
s.template registerType<CArtifact>();
s.template registerType<CCreature>();
s.template registerType<CStackInstance>();
s.template registerType<PlayerState>();
s.template registerType<TeamState>();
s.template registerType<CGameState>();
s.template registerType<CGHeroInstance::HeroSpecial>();
s.template registerType<CArmedInstance>();
s.template registerType<CStack>();
s.template registerType<BattleInfo>();
s.template registerType<CArtifactInstance>();
s.template registerType<CCombinedArtifactInstance>();
}
template<typename Serializer> DLL_EXPORT
void registerTypes2(Serializer &s)
{
s.template registerType<PackageApplied>();
s.template registerType<SystemMessage>();
s.template registerType<PlayerBlocked>();
s.template registerType<YourTurn>();
s.template registerType<SetResource>();
s.template registerType<SetResources>();
s.template registerType<SetPrimSkill>();
s.template registerType<SetSecSkill>();
s.template registerType<HeroVisitCastle>();
s.template registerType<ChangeSpells>();
s.template registerType<SetMana>();
s.template registerType<SetMovePoints>();
s.template registerType<FoWChange>();
s.template registerType<SetAvailableHeroes>();
s.template registerType<GiveBonus>();
s.template registerType<ChangeObjPos>();
s.template registerType<PlayerEndsGame>();
s.template registerType<RemoveBonus>();
s.template registerType<UpdateCampaignState>();
s.template registerType<RemoveObject>();
s.template registerType<TryMoveHero>();
//s.template registerType<SetGarrisons>();
s.template registerType<NewStructures>();
s.template registerType<RazeStructures>();
s.template registerType<SetAvailableCreatures>();
s.template registerType<SetHeroesInTown>();
//s.template registerType<SetHeroArtifacts>();
s.template registerType<HeroRecruited>();
s.template registerType<GiveHero>();
s.template registerType<NewTurn>();
s.template registerType<InfoWindow>();
s.template registerType<SetObjectProperty>();
s.template registerType<SetHoverName>();
s.template registerType<HeroLevelUp>();
s.template registerType<BlockingDialog>();
s.template registerType<GarrisonDialog>();
s.template registerType<BattleStart>();
s.template registerType<BattleNextRound>();
s.template registerType<BattleSetActiveStack>();
s.template registerType<BattleResult>();
s.template registerType<BattleStackMoved>();
s.template registerType<BattleStackAttacked>();
s.template registerType<BattleAttack>();
s.template registerType<StartAction>();
s.template registerType<EndAction>();
s.template registerType<BattleSpellCast>();
s.template registerType<SetStackEffect>();
s.template registerType<StacksInjured>();
s.template registerType<BattleResultsApplied>();
s.template registerType<StacksHealedOrResurrected>();
s.template registerType<ObstaclesRemoved>();
s.template registerType<CatapultAttack>();
s.template registerType<BattleStacksRemoved>();
s.template registerType<ShowInInfobox>();
s.template registerType<AdvmapSpellCast>();
s.template registerType<OpenWindow>();
s.template registerType<NewObject>();
s.template registerType<NewArtifact>();
s.template registerType<ChangeStackCount>();
s.template registerType<SetStackType>();
s.template registerType<EraseStack>();
s.template registerType<SwapStacks>();
s.template registerType<InsertNewStack>();
s.template registerType<RebalanceStacks>();
s.template registerType<SetAvailableArtifacts>();
s.template registerType<PutArtifact>();
s.template registerType<EraseArtifact>();
s.template registerType<MoveArtifact>();
s.template registerType<AssembledArtifact>();
s.template registerType<DisassembledArtifact>();
s.template registerType<HeroVisit>();
s.template registerType<SaveGame>();
s.template registerType<SetSelection>();
s.template registerType<PlayerMessage>();
s.template registerType<CenterView>();
}
template<typename Serializer> DLL_EXPORT
void registerTypes3(Serializer &s)
{
s.template registerType<CloseServer>();
s.template registerType<EndTurn>();
s.template registerType<DismissHero>();
s.template registerType<MoveHero>();
s.template registerType<ArrangeStacks>();
s.template registerType<DisbandCreature>();
s.template registerType<BuildStructure>();
s.template registerType<RecruitCreatures>();
s.template registerType<UpgradeCreature>();
s.template registerType<GarrisonHeroSwap>();
s.template registerType<ExchangeArtifacts>();
s.template registerType<AssembleArtifacts>();
s.template registerType<BuyArtifact>();
s.template registerType<TradeOnMarketplace>();
s.template registerType<SetFormation>();
s.template registerType<HireHero>();
s.template registerType<BuildBoat>();
s.template registerType<QueryReply>();
s.template registerType<MakeAction>();
s.template registerType<MakeCustomAction>();
s.template registerType<DigWithHero>();
s.template registerType<CastAdvSpell>();
s.template registerType<CastleTeleportHero>();
s.template registerType<SaveGame>();
s.template registerType<SetSelection>();
s.template registerType<PlayerMessage>();
}
template<typename Serializer> DLL_EXPORT
void registerTypes4(Serializer &s)
{
s.template registerType<ChatMessage>();
s.template registerType<QuitMenuWithoutStarting>();
s.template registerType<PlayerJoined>();
s.template registerType<SelectMap>();
s.template registerType<UpdateStartOptions>();
s.template registerType<PregameGuiAction>();
s.template registerType<RequestOptionsChange>();
s.template registerType<PlayerLeft>();
s.template registerType<PlayersNames>();
s.template registerType<StartWithCurrentSettings>();
}
template<typename Serializer> DLL_EXPORT
void registerTypes(Serializer &s)
{
registerTypes1(s);
registerTypes2(s);
registerTypes3(s);
registerTypes4(s);
}