// Ryzom - MMORPG Framework // Copyright (C) 2010 Winch Gate Property Limited // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as // published by the Free Software Foundation, either version 3 of the // License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . //----------------------------------------------------------------------------- // includes //----------------------------------------------------------------------------- #include "stat_character.h" //----------------------------------------------------------------------------- // namespaces //----------------------------------------------------------------------------- using namespace std; using namespace NLMISC; #define PERSISTENT_TOKEN_FAMILY RyzomTokenFamily //----------------------------------------------------------------------------- // Globals //----------------------------------------------------------------------------- // If the following macro is defined then the macros such as PERSISTENT_CLASS, PERSISTENT_DATA, PERSISTENT_PRE_STORE, etc // are undefined after inclusion of perstent_data_template.h #define PERSISTENT_MACROS_AUTO_UNDEF //----------------------------------------------------------------------------- // Persistent data for CStatsScanMissionHistory //----------------------------------------------------------------------------- #define PERSISTENT_CLASS CStatsScanMissionHistory #define PERSISTENT_DATA\ PROP(bool, Successfull)\ PROP(TGameCycle, LastSuccessDate)\ #include "game_share/persistent_data_template.h" //----------------------------------------------------------------------------- // Persistent data for CStatsScanDeathPenalties //----------------------------------------------------------------------------- #define PERSISTENT_CLASS CStatsScanDeathPenalties #define PERSISTENT_DATA\ PROP(uint8,_NbDeath)\ PROP(double,_CurrentDeathXP)\ PROP(double,_DeathXPToGain)\ PROP(uint32,_BonusUpdateTime)\ #include "game_share/persistent_data_template.h" //----------------------------------------------------------------------------- // Persistent data for CStatsScanRespawnPoints //----------------------------------------------------------------------------- #define PERSISTENT_CLASS CStatsScanRespawnPoints #define PERSISTENT_DATA\ PROP_VECT(CSString,RespawnPoints)\ #include "game_share/persistent_data_template.h" //----------------------------------------------------------------------------- // Persistent data for CStatsScanFameContainerEntry //----------------------------------------------------------------------------- #define PERSISTENT_CLASS CStatsScanFameContainerEntry #define PERSISTENT_DATA\ PROP(sint32,Fame)\ PROP(sint32,FameMemory)\ PROP(CSString,LastFameChangeTrend)\ #include "game_share/persistent_data_template.h" //----------------------------------------------------------------------------- // Persistent data for CStatsScanFameContainer //----------------------------------------------------------------------------- #define PERSISTENT_CLASS CStatsScanFameContainer #define PERSISTENT_DATA\ STRUCT_MAP(CSheetId,CStatsScanFameContainerEntry,_Fame)\ #include "game_share/persistent_data_template.h" //----------------------------------------------------------------------------- // Persistent data for CStatsScanEncyCharThema //----------------------------------------------------------------------------- #define PERSISTENT_CLASS CStatsScanEncyCharThema #define PERSISTENT_DATA\ PROP(uint8,ThemaState)\ PROP(uint16,RiteTaskStatePacked)\ #include "game_share/persistent_data_template.h" //----------------------------------------------------------------------------- // Persistent data for CStatsScanEncyCharAlbum //----------------------------------------------------------------------------- #define PERSISTENT_CLASS CStatsScanEncyCharAlbum #define PERSISTENT_DATA\ PROP(uint8,AlbumState)\ STRUCT_VECT(Themas)\ #include "game_share/persistent_data_template.h" //----------------------------------------------------------------------------- // Persistent data for CStatsScanCharaterEncyclopedia //----------------------------------------------------------------------------- #define PERSISTENT_CLASS CStatsScanCharaterEncyclopedia #define PERSISTENT_DATA\ STRUCT_VECT(_EncyCharAlbums)\ #include "game_share/persistent_data_template.h" //----------------------------------------------------------------------------- // Persistent data for CStatsScanCharacterLogTime //----------------------------------------------------------------------------- #define PERSISTENT_CLASS CStatsScanCharacterLogTime #define PERSISTENT_DATA\ PROP(uint32,LoginTime)\ PROP(uint32,LogoffTime)\ #include "game_share/persistent_data_template.h" //----------------------------------------------------------------------------- // Persistent data for CStatsScanGameEvent //----------------------------------------------------------------------------- #define PERSISTENT_CLASS CStatsScanGameEvent #define PERSISTENT_DATA\ PROP(uint32,_Date)\ PROP(CSString,_EventFaction)\ #include "game_share/persistent_data_template.h" //----------------------------------------------------------------------------- // Persistent data for CStatsScanPosition //----------------------------------------------------------------------------- #define PERSISTENT_CLASS CStatsScanPosition #define PERSISTENT_DATA\ PROP(sint32,X)\ PROP(sint32,Y)\ PROP(sint32,Z)\ PROP(float,Heading)\ #include "game_share/persistent_data_template.h" //----------------------------------------------------------------------------- // Persistent data for CStatsScanPositionStackEntry //----------------------------------------------------------------------------- #define PERSISTENT_CLASS CStatsScanPositionStackEntry #define PERSISTENT_DATA\ PROP(uint32,SessionId)\ STRUCT(PosState)\ #include "game_share/persistent_data_template.h" //----------------------------------------------------------------------------- // Persistent data for CStatsScanPositionStack //----------------------------------------------------------------------------- #define PERSISTENT_CLASS CStatsScanPositionStack #define PERSISTENT_DATA\ STRUCT_VECT(_Vec)\ #include "game_share/persistent_data_template.h" //----------------------------------------------------------------------------- // Persistent data for CStatsScanPact //----------------------------------------------------------------------------- #define PERSISTENT_CLASS CStatsScanPact #define PERSISTENT_DATA\ PROP(uint8,PactNature)\ PROP(uint8,PactType)\ #include "game_share/persistent_data_template.h" //----------------------------------------------------------------------------- // Persistent data for CStatsScanPetAnimal //----------------------------------------------------------------------------- #define PERSISTENT_CLASS CStatsScanPetAnimal #define PERSISTENT_DATA\ PROP(CSheetId,TicketPetSheetId)\ PROP(CSheetId,PetSheetId)\ PROP(uint32,Price)\ PROP(CEntityId,OwnerId)\ PROP(TAIAlias,StableAlias)\ PROP(sint32,Landscape_X)\ PROP(sint32,Landscape_Y)\ PROP(sint32,Landscape_Z)\ PROP(uint32,DeathTick)\ PROP(uint16,PetStatus)\ PROP(sint16,Slot)\ PROP(bool,IsFollowing)\ PROP(bool,IsMounted)\ PROP(bool,IsTpAllowed)\ #include "game_share/persistent_data_template.h" //----------------------------------------------------------------------------- // Persistent data for CStatsScanPhysCharacs //----------------------------------------------------------------------------- #define PERSISTENT_CLASS CStatsScanPhysCharacs #define PERSISTENT_DATA\ PROP_MAP(CSString,sint32,_PhysicalCharacteristics)\ #include "game_share/persistent_data_template.h" //----------------------------------------------------------------------------- // Persistent data for CStatsScanPhysScoresEntry //----------------------------------------------------------------------------- #define PERSISTENT_CLASS CStatsScanPhysScoresEntry #define PERSISTENT_DATA\ PROP(sint32,Current)\ PROP(sint32,Base)\ PROP(sint32,Max)\ PROP(float,BaseRegenerateRepos)\ PROP(float,BaseRegenerateAction)\ PROP(float,CurrentRegenerate)\ #include "game_share/persistent_data_template.h" //----------------------------------------------------------------------------- // Persistent data for CStatsScanPhysScores //----------------------------------------------------------------------------- #define PERSISTENT_CLASS CStatsScanPhysScores #define PERSISTENT_DATA\ PROP(float,BaseWalkSpeed)\ PROP(float,BaseRunSpeed)\ PROP(float,CurrentWalkSpeed)\ PROP(float,CurrentRunSpeed)\ STRUCT_MAP(CSString,CStatsScanPhysScoresEntry,PhysicalScores)\ #include "game_share/persistent_data_template.h" //----------------------------------------------------------------------------- // Persistent data for CStatsScanSkillsEntry //----------------------------------------------------------------------------- #define PERSISTENT_CLASS CStatsScanSkillsEntry #define PERSISTENT_DATA\ PROP(sint32,Base)\ PROP(sint32,Current)\ PROP(sint32,MaxLvlReached)\ PROP(double,Xp)\ PROP(double,XpNextLvl)\ #include "game_share/persistent_data_template.h" //----------------------------------------------------------------------------- // Persistent data for CStatsScanSkills //----------------------------------------------------------------------------- #define PERSISTENT_CLASS CStatsScanSkills #define PERSISTENT_DATA\ STRUCT_MAP(CSString,CStatsScanSkillsEntry,Skills)\ #include "game_share/persistent_data_template.h" //----------------------------------------------------------------------------- // Persistent data for CStatsScanItemCraftParameters //----------------------------------------------------------------------------- #define PERSISTENT_CLASS CStatsScanItemCraftParameters #define PERSISTENT_DATA\ PROP(float,Durability)\ PROP(float,Weight)\ PROP(float,SapLoad)\ PROP(float,StatEnergy)\ PROP(float,Dmg)\ PROP(float,Speed)\ PROP(float,Range)\ PROP(float,DodgeModifier)\ PROP(float,ParryModifier)\ PROP(float,AdversaryDodgeModifier)\ PROP(float,AdversaryParryModifier)\ PROP(float,ProtectionFactor)\ PROP(float,MaxSlashingProtection)\ PROP(float,MaxBluntProtection)\ PROP(float,MaxPiercingProtection)\ PROP(float,ElementalCastingTimeFactor)\ PROP(float,ElementalPowerFactor)\ PROP(float,OffensiveAfflictionCastingTimeFactor)\ PROP(float,OffensiveAfflictionPowerFactor)\ PROP(float,HealCastingTimeFactor)\ PROP(float,HealPowerFactor)\ PROP(float,DefensiveAfflictionCastingTimeFactor)\ PROP(float,DefensiveAfflictionPowerFactor)\ PROP(uint8,Color)\ PROP(sint32,ChaScore1Buff)\ PROP(sint32,ChaScore3Buff)\ PROP(sint32,ChaScore2Buff)\ PROP(sint32,ChaScore4Buff)\ PROP(CSString,Protection)\ #include "game_share/persistent_data_template.h" //----------------------------------------------------------------------------- // Persistent data for CStatsScanItem //----------------------------------------------------------------------------- #define PERSISTENT_CLASS CStatsScanItem #define PERSISTENT_DATA\ PROP(CSheetId,_SheetId)\ PROP(sint16,_ClientInventoryPosition)\ PROP(uint32,_HP)\ PROP(uint32,_Recommended)\ PROP(CEntityId,_CreatorId)\ PROP(uint8,_LocSlot)\ PROP(CSString,_PhraseId)\ PROP(uint16,_SlotImage)\ PROP(sint16,_SlotCount)\ PROP(uint32,_SapLoad)\ PROP(bool,_Dropable)\ PROP(bool,_Destroyable)\ PROP(uint32,StackSize)\ STRUCT(_CraftParameters)\ PROP_VECT(CSheetId,_Enchantment)\ STRUCT_VECT(Child)\ #include "game_share/persistent_data_template.h" //----------------------------------------------------------------------------- // Persistent data for CStatsScanInventory //----------------------------------------------------------------------------- #define PERSISTENT_CLASS CStatsScanInventory #define PERSISTENT_DATA\ STRUCT_VECT(_Item)\ #include "game_share/persistent_data_template.h" //----------------------------------------------------------------------------- // Persistent data for CStatsScanPlayerRoom //----------------------------------------------------------------------------- #define PERSISTENT_CLASS CStatsScanPlayerRoom #define PERSISTENT_DATA\ PROP(TAIAlias,Building)\ STRUCT(Inventory)\ PROP(sint32,Bulk)\ PROP(sint32,MaxBulk)\ #include "game_share/persistent_data_template.h" //----------------------------------------------------------------------------- // Persistent data for CStatsScanEntityPosition //----------------------------------------------------------------------------- #define PERSISTENT_CLASS CStatsScanEntityPosition #define PERSISTENT_DATA\ PROP(sint32,X)\ PROP(sint32,Y)\ PROP(sint32,Z)\ PROP(float,Heading)\ #include "game_share/persistent_data_template.h" //----------------------------------------------------------------------------- // Persistent data for CStatsScanEntityBase //----------------------------------------------------------------------------- #define PERSISTENT_CLASS CStatsScanEntityBase #define PERSISTENT_DATA\ STRUCT(_EntityPosition)\ PROP(uint32,_SheetId)\ PROP(CSString,_Name)\ PROP(CSString,_Race)\ PROP(uint8,_Gender)\ PROP(uint8,_Size)\ PROP(bool,_DodgeAsDefense)\ STRUCT(_PhysCharacs)\ STRUCT(_PhysScores)\ STRUCT(_Skills)\ \ PROP(sint32,MeleeAttackModifierOnEnemy)\ PROP(sint32,MeleeAttackModifierOnSelf)\ PROP(sint32,MagicCastingModifierOnSelf)\ PROP(sint32,MagicCastingModifierOnEnemy)\ PROP(sint32,RangeAttackModifierOnEnemy)\ PROP(sint32,RangeAttackModifierOnSelf)\ PROP(sint32,AttackModifierOnSelf)\ PROP(sint32,ChanceToFailStrategy)\ PROP(sint32,ChanceToFailSpell)\ PROP(sint32,ChanceToFailFaber)\ PROP(sint32,ChanceToFailHarvest)\ PROP(sint32,ChanceToFailTracking)\ PROP(sint32,MeleeAttackSlow)\ PROP(sint32,MeleeSlashingDamageArmor)\ PROP(sint32,MeleeBluntDamageArmor)\ PROP(sint32,MeleePiercingDamageArmor)\ PROP(sint32,MeleeDamageModifierFactor)\ PROP(sint32,RangeDamageModifierFactor)\ PROP(sint32,CreatureMeleeTakenDamageFactor)\ PROP(sint32,CreatureRangeTakenDamageFactor)\ PROP(sint32,CombatBrickLatencyMultiplier)\ PROP(sint32,MagicBrickLatencyMultiplier)\ PROP(sint32,ArmorQualityModifier)\ PROP(sint32,WeaponQualityModifier)\ PROP(sint32,ArmorAbsorbtionMultiplier)\ #include "game_share/persistent_data_template.h" //----------------------------------------------------------------------------- // Persistent data for CCharacter //----------------------------------------------------------------------------- #define PERSISTENT_CLASS CStatsScanCharacter #define PERSISTENT_DATA\ PROP(uint32,VERSION)\ \ PROP(uint8, _HairType)\ PROP(uint8, _HairColor)\ PROP(uint8, _HatColor)\ PROP(uint8, _JacketColor)\ PROP(uint8, _ArmsColor)\ PROP(uint8, _TrousersColor)\ PROP(uint8, _FeetColor)\ PROP(uint8, _HandsColor)\ PROP(uint64,_Money)\ PROP(uint32,_GuildId)\ PROP(bool, _NewCharacter)\ PROP(uint8, _CreationPointsRepartition)\ PROP(uint32,_ForbidAuraUseEndDate)\ PROP(CSString,_Title)\ PROP(CSString,DeclaredCult)\ PROP(CSString,DeclaredCiv)\ \ /* Visual Properties */\ PROP(uint8,HairType)\ PROP(uint8,HairColor)\ PROP(uint8,GabaritHeight)\ PROP(uint8,GabaritTorsoWidth)\ PROP(uint8,GabaritArmsWidth)\ PROP(uint8,GabaritLegsWidth)\ PROP(uint8,GabaritBreastSize)\ PROP(uint8,MorphTarget1)\ PROP(uint8,MorphTarget2)\ PROP(uint8,MorphTarget3)\ PROP(uint8,MorphTarget4)\ PROP(uint8,MorphTarget5)\ PROP(uint8,MorphTarget6)\ PROP(uint8,MorphTarget7)\ PROP(uint8,MorphTarget8)\ PROP(uint8,EyesColor)\ PROP(uint8,Tattoo)\ PROP(uint8,NameStringId)\ \ PROP(bool, _HairCuteDiscount )\ PROP(float,_NextDeathPenaltyFactor)\ \ PROP(uint32, _FirstConnectedTime)\ PROP(uint32, _LastConnectedTime)\ PROP(uint32, _PlayedTime)\ STRUCT_LIST(CStatsScanCharacterLogTime, _LastLogStats)\ \ STRUCT(_DeathPenalties)\ STRUCT(_PlayerRoom)\ STRUCT(EntityBase)\ STRUCT(RespawnPoints)\ STRUCT(_Fames)\ STRUCT(_EncycloChar)\ STRUCT(_GameEvent)\ STRUCT(NormalPositions)\ \ PROP_VECT(CSheetId,_BoughtPhrases)\ PROP_VECT(CSheetId,_KnownBricks)\ PROP_VECT(CEntityId,_FriendsList)\ PROP_VECT(CEntityId,_IgnoreList)\ PROP_VECT(CEntityId,_IsFriendOf)\ PROP_VECT(CEntityId,_IsIgnoredBy)\ \ STRUCT_VECT(_Pact)\ \ PROP_MAP(CSString,double,SkillPoints)\ PROP_MAP(CSString,uint32,SpentSkillPoints)\ PROP_MAP(CSString,sint32,ScorePermanentModifiers)\ PROP_MAP(CSString,uint8,StartingCharacteristicValues)\ PROP_MAP(CSString,uint32,FactionPoints)\ \ STRUCT_MAP(TAIAlias,CStatsScanMissionHistory,_MissionHistories)\ STRUCT_MAP(uint32,CStatsScanPetAnimal,_PlayerPets)\ STRUCT_MAP(CSString,CStatsScanInventory,Inventory)\ #include "game_share/persistent_data_template.h"