From: <ma...@us...> - 2013-02-02 16:10:26
|
Revision: 8570 http://planeshift.svn.sourceforge.net/planeshift/?rev=8570&view=rev Author: magodra Date: 2013-02-02 16:10:13 +0000 (Sat, 02 Feb 2013) Log Message: ----------- - Fixed doxcygen warnings from server. Modified Paths: -------------- trunk/src/server/bulkobjects/dictionary.h trunk/src/server/bulkobjects/psactionlocationinfo.h trunk/src/server/bulkobjects/pscharacter.h trunk/src/server/bulkobjects/pscharacterloader.cpp trunk/src/server/bulkobjects/pscharacterloader.h trunk/src/server/bulkobjects/pscharinventory.h trunk/src/server/bulkobjects/psguildinfo.h trunk/src/server/bulkobjects/psinventorycachesvr.h trunk/src/server/bulkobjects/psitem.h trunk/src/server/bulkobjects/psitemstats.h trunk/src/server/bulkobjects/psmerchantinfo.h trunk/src/server/bulkobjects/psquestprereqops.cpp trunk/src/server/bulkobjects/psquestprereqops.h trunk/src/server/bulkobjects/psspell.h trunk/src/server/bulkobjects/pstrade.h trunk/src/server/marriagemanager.h trunk/src/server/minigamemanager.h trunk/src/server/msgmanager.h trunk/src/server/netmanager.cpp trunk/src/server/netmanager.h trunk/src/server/progressionmanager.h trunk/src/server/psserver.h Modified: trunk/src/server/bulkobjects/dictionary.h =================================================================== --- trunk/src/server/bulkobjects/dictionary.h 2013-01-30 15:41:03 UTC (rev 8569) +++ trunk/src/server/bulkobjects/dictionary.h 2013-02-02 16:10:13 UTC (rev 8570) @@ -40,8 +40,6 @@ //============================================================================= #include "psquestprereqops.h" -#define MAX_RESP 5 - class NpcTerm; class NpcTriggerGroupEntry; class NpcTrigger; @@ -58,6 +56,12 @@ struct iDocumentNode; struct Faction; +/** + * \addtogroup bulkobjects + * @{ */ + +#define MAX_RESP 5 + template<typename K, typename K2> class NpcTriggerOrdering : public CS::Container::RedBlackTreeOrderingTotal<NpcTrigger,NpcTrigger> { public: @@ -74,15 +78,15 @@ csHash<NpcTriggerGroupEntry*, csString> trigger_groups; csHash<NpcTriggerGroupEntry*> trigger_groups_by_id; NpcTriggerTree triggers; - csHash<NpcTrigger*> trigger_by_id; - csHash<NpcResponse*> responses; + csHash<NpcTrigger*> trigger_by_id; + csHash<NpcResponse*> responses; csHash<bool, csString> disallowed_words; - csHash<csString,csString> knowledgeAreas; /// Collection of all referenced knowledge areas + csHash<csString,csString> knowledgeAreas; /// Collection of all referenced knowledge areas - /// This is a storage area for popup menus parsed during quest loading, which is done before NPCs are spawned. - csHash<NpcDialogMenu*,csString> initial_popup_menus; + /// This is a storage area for popup menus parsed during quest loading, which is done before NPCs are spawned. + csHash<NpcDialogMenu*,csString> initial_popup_menus; - int dynamic_id; + int dynamic_id; bool LoadSynonyms(iDataConnection *db); bool LoadTriggerGroups(iDataConnection *db); @@ -355,16 +359,16 @@ /// Used for when a response number is unneeded (debug printf around in psnpcdialog) const char *GetResponse() { int number = 0; return GetResponse(number); } - /// Returns the VFS path to the audio file which represents this response on the server, or NULL if one was not specified. - const char *GetVoiceFile(int &number) { return voiceAudioPath[number]; } + /// Returns the VFS path to the audio file which represents this response on the server, or NULL if one was not specified. + const char *GetVoiceFile(int &number) { return voiceAudioPath[number]; } /// Check for SayResponseOp with public flag set, which tells chat whether it is public or private. bool HasPublicResponse(); bool ParseResponseScript(const char *xmlstr,bool insertBeginning=false); - - /** - * Returns SIZET_NOT_FOUND (-1) if it fails, or csTicks of response duration if successful - */ + + /** + * Returns SIZET_NOT_FOUND (-1) if it fails, or csTicks of response duration if successful + */ csTicks ExecuteScript(gemActor *player, gemNPC* target); csString GetResponseScript(); @@ -382,7 +386,7 @@ * Add a prerequisite to the prerequisite for this response. * * @param op The prerequisite op to add - * @insertBeginning Insert at beginning or at end (Default at end). + * @param insertBeginning Insert at beginning or at end (Default at end). * @return True if successfully added. */ bool AddPrerequisite(csRef<psQuestPrereqOp> op, bool insertBeginning = false); @@ -759,7 +763,7 @@ * This script operation invokes the progression manager to run a script, * as part of his response to a player event. * - * Syntax: <pre>\<run script="name" with="...mathscript to add bindings..."/\></pre> + * Syntax: \<run script="name" with="...mathscript to add bindings..."/\> */ class RunScriptResponseOp : public ResponseOperation { @@ -874,4 +878,6 @@ virtual bool Run(gemNPC *who, gemActor *target,NpcResponse *owner,csTicks& timeDelay, int& voiceNumber); }; +/** @} */ + #endif Modified: trunk/src/server/bulkobjects/psactionlocationinfo.h =================================================================== --- trunk/src/server/bulkobjects/psactionlocationinfo.h 2013-01-30 15:41:03 UTC (rev 8569) +++ trunk/src/server/bulkobjects/psactionlocationinfo.h 2013-02-02 16:10:13 UTC (rev 8570) @@ -48,6 +48,10 @@ class MathExpression; /** + * \addtogroup bulkobjects + * @{ */ + +/** * This huge class stores all the properties of any object * a player can have in the game. All stats, bonuses, maluses, * magic stat alterations, combat properties, spell effects, @@ -183,10 +187,9 @@ /// Static reference to the pool for all psItem objects static PoolAllocator<psActionLocation> actionpool; - /// Sets up member variables for different response strings. - /// You can add code here when new response string XML is needed or parse it dynamically - /// @param action The action location to which you want to setup - /// @param xxxxxxxxNode The action location response XML node + /** + * Sets up member variables for different response strings. + */ void SetupEntrance(csRef<iDocumentNode> entranceNode); void SetupReturn(csRef<iDocumentNode> returnNode); void SetupContainer(csRef<iDocumentNode> containerNode); @@ -244,7 +247,7 @@ bool DeleteByKey ( const char *table, const char *idname, const char *idvalue ); }; +/** @} */ - #endif Modified: trunk/src/server/bulkobjects/pscharacter.h =================================================================== --- trunk/src/server/bulkobjects/pscharacter.h 2013-01-30 15:41:03 UTC (rev 8569) +++ trunk/src/server/bulkobjects/pscharacter.h 2013-02-02 16:10:13 UTC (rev 8570) @@ -59,9 +59,32 @@ class psItem; class psQuest; +struct psRaceInfo; +class psSectorInfo; + +class ExchangeManager; +class MathScript; +class NpcResponse; +class gemActor; +struct psGuildLevel; +class psGuildMember; +class psLootMessage; +class psMerchantInfo; +class psQuestListMessage; +class psSpell; +class psTradeTransformations; +class psTradeProcesses; +class psTrainerInfo; +struct psTrait; +class psWorkGameEvent; + struct Result; struct Faction; +/** + * \addtogroup bulkobjects + * @{ */ + /** "Normalizes" name of character i.e. makes the first letter uppercase and all the rest downcase */ csString NormalizeCharacterName(const csString & name); @@ -81,7 +104,9 @@ #define PSCHARACTER_BULK_COUNT INVENTORY_BULK_COUNT #define PSCHARACTER_BANK_BULK_COUNT 16 -/// Base class for several other classes which hold character attributes of different sorts +/** + * Base class for several other classes which hold character attributes of different sorts. + */ class CharacterAttribute { protected: @@ -162,43 +187,11 @@ /// Set if this slot can attack even when empty - requires that a default psItem be set in default_if_empty #define PSCHARACTER_EQUIPMENTFLAG_ATTACKIFEMPTY 0x00000004 -// Dirty bits for STATDRDATA -//#define PSCHARACTER_STATDRDATA_DIRTY_HITPOINTS 0x00000001 -//#define PSCHARACTER_STATDRDATA_DIRTY_HITPOINTS_MAX 0x00000002 -//#define PSCHARACTER_STATDRDATA_DIRTY_HITPOINTS_RATE 0x00000004 -//#define PSCHARACTER_STATDRDATA_DIRTY_MANA 0x00000008 -//#define PSCHARACTER_STATDRDATA_DIRTY_MANA_MAX 0x00000010 -//#define PSCHARACTER_STATDRDATA_DIRTY_MANA_RATE 0x00000020 -//#define PSCHARACTER_STATDRDATA_DIRTY_STAMINA 0x00000040 -//#define PSCHARACTER_STATDRDATA_DIRTY_STAMINA_MAX 0x00000080 -//#define PSCHARACTER_STATDRDATA_DIRTY_STAMINA_RATE 0x00000100 - - -struct psRaceInfo; -class psSectorInfo; - -class ExchangeManager; -class MathScript; -class NpcResponse; -class gemActor; -struct psGuildLevel; -class psGuildMember; -class psLootMessage; -class psMerchantInfo; -class psQuestListMessage; -class psSpell; -class psTradeTransformations; -class psTradeProcesses; -class psTrainerInfo; -struct psTrait; -class psWorkGameEvent; - - - //----------------------------------------------------------------------------- -/** Class to handle buddies. -*/ +/** + * Class to handle buddies. + */ class psBuddyManager { public: @@ -208,47 +201,55 @@ PID playerId; ///< The PID of the player that is the buddy. }; - /** @brief Setup the buddy manager + /** + * Setup the buddy manager. * * @param charID The PID of the owner of this buddy manager. */ - void Initialize(PID charId) { characterId = charId; } + void Initialize(PID charID) { characterId = charID; } - /** @brief Add the player with a certain Player ID to this character buddy list + /** + * Add the player with a certain Player ID to this character buddy list. * - * @param buddyID the Player ID which we are going to add to the character buddy list + * @param buddyID the Player ID which we are going to add to the character buddy list + * @param name The name of the buddy. */ bool AddBuddy(PID buddyID, csString & name); - /** @brief Remove the player with a certain Player ID from this character buddy list + /** + * Remove the player with a certain Player ID from this character buddy list. * - * @param buddyID the Player ID which we are going to remove from the character buddy list + * @param buddyID the Player ID which we are going to remove from the character buddy list */ - void RemoveBuddy(PID buddyId); + void RemoveBuddy(PID buddyID); - /** @brief Checks if a playerID is a buddy of this character + /** + * Checks if a playerID is a buddy of this character. * - * @param buddyID the Player ID of which we are checking the presence in the character buddy list - * @return true if the provided PID was found in this character. + * @param buddyID the Player ID of which we are checking the presence in the character buddy list + * @return true if the provided PID was found in this character. */ - bool IsBuddy(PID buddyId); + bool IsBuddy(PID buddyID); - /** @brief Adds this player as having this character on their buddy list. + /** + * Adds this player as having this character on their buddy list. * - * @param buddyID the Player ID of the character that has this character as a buddy. + * @param buddyID the Player ID of the character that has this character as a buddy. */ void AddBuddyOf(PID buddyID); - /** @brief Remove character as having this character on their buddy list. + /** + * Remove character as having this character on their buddy list. * - * @param buddyID the Player ID of the character that has removed this character as a buddy. + * @param buddyID the Player ID of the character that has removed this character as a buddy. */ void RemoveBuddyOf(PID buddyID); - /** @brief Load the set of my buddies as well as those that have me as a buddy. + /** + * Load the set of my buddies as well as those that have me as a buddy. * - * @param myBuddies The database set of characters that are my buddy. - * @param buddyOf The database set of characters that have me as a buddy. + * @param myBuddies The database set of characters that are my buddy. + * @param buddyOf The database set of characters that have me as a buddy. */ bool LoadBuddies( Result& myBuddies, Result& buddyOf ); @@ -300,7 +301,8 @@ CharStat stats[PSITEMSTATS_STAT_COUNT]; }; -/** A structure that holds the knowledge/practice/rank of each player skill. +/** + * A structure that holds the knowledge/practice/rank of each player skill. */ struct Skill { @@ -325,58 +327,66 @@ */ bool CanTrain() { return y < yCost; } - /** @brief Train a skill by a particular amount. - * - * This does range checking on the training level and will cap it at the - * max allowable level. - * @param yIncrease The amount to try to increase the skill by. - */ + /** + * Train a skill by a particular amount. + * + * This does range checking on the training level and will cap it at the + * max allowable level. + * + * @param yIncrease The amount to try to increase the skill by. + */ void Train( int yIncrease ); - /** @brief Check if skill will rank and rank it up. - * - * This checks a couple of things. - * 1) If the player has the required knowledge to allow for training. - * 2) If the amount of practice causes a rank change it will increase - * the rank of the skill and reset the knowledge/practice levels. - * - * @param user The character this was for. - * - * @return True if the practice causes a rank change, false if not. - */ + /** + * Check if skill will rank and rank it up. + * + * This checks a couple of things. + * 1) If the player has the required knowledge to allow for training. + * 2) If the amount of practice causes a rank change it will increase + * the rank of the skill and reset the knowledge/practice levels. + * + * @param user The character this was for. + * + * @return True if the practice causes a rank change, false if not. + */ bool CheckDoRank( psCharacter* user ); - /** @brief Practice this skill. - * - * This checks a couple of things. - * 1) If the player has the required knowledge to allow for training. - * 2) If the amount of practice causes a rank change it will increase - * the rank of the skill and reset the knowledge/practice levels. - * - * @param amount The amount of practice on this skill. - * @param actuallyAdded [CHANGES] If the amount added causes a rank change - * only the amount required is added and this variable - * stores that. - * @param user The character this was for. - * - * @return True if the practice causes a rank change, false if not. - */ - bool Practice( unsigned int amount, unsigned int& actuallyAdded,psCharacter* user ); + /** + * Practice this skill. + * + * This checks a couple of things. + * 1) If the player has the required knowledge to allow for training. + * 2) If the amount of practice causes a rank change it will increase + * the rank of the skill and reset the knowledge/practice levels. + * + * @param amount The amount of practice on this skill. + * @param actuallyAdded [CHANGES] If the amount added causes a rank change + * only the amount required is added and this variable + * stores that. + * @param user The character this was for. + * + * @return True if the practice causes a rank change, false if not. + */ + bool Practice( unsigned int amount, unsigned int& actuallyAdded, psCharacter* user ); }; -/** A list of skills. - * This maintains a list of all the skills and the player's current levels - * in them. - */ +/** + * A list of skills. + * + * This maintains a list of all the skills and the player's current levels + * in them. + */ class SkillSet : public CharacterAttribute { protected: csArray<Skill> skills; ///< Array to store all the skills. public: - /** Constructor. - * @param self The psCharacter this skillset is associated with. + /** + * Constructor. + * + * @param self The psCharacter this skillset is associated with. */ SkillSet(psCharacter *self); @@ -389,60 +399,67 @@ */ void SetSkillInfo( PSSKILL which, psSkillInfo* info, bool recalculatestats = true); - /** @brief Sets the practice level for the skill. - * - * Does no error or range checking on the z value. Simply assigns. - * - * @param which The skill we want to set. - * @param z_value The practice level of that skill. - */ - void SetSkillPractice(PSSKILL which,int z_value); + /** + * Sets the practice level for the skill. + * + * Does no error or range checking on the z value. Simply assigns. + * + * @param which The skill we want to set. + * @param z_value The practice level of that skill. + */ + void SetSkillPractice(PSSKILL which, int z_value); - /** @brief Set a skill knowledge level. + /** + * Set a skill knowledge level. * - * Sets a skill to a particular knowledge level. This does no checking - * of allowed values. It just sets it to a particular value. + * Sets a skill to a particular knowledge level. This does no checking + * of allowed values. It just sets it to a particular value. * - * @param which Skill name. One of the PSSKILL enum values. - * @param y_value The value to set this skill knowledge at. + * @param which Skill name. One of the PSSKILL enum values. + * @param y_value The value to set this skill knowledge at. */ - void SetSkillKnowledge(PSSKILL which,int y_value); + void SetSkillKnowledge(PSSKILL which, int y_value); - /** @brief Set a skill rank level. + /** + * Set a skill rank level. * - * Sets a skill to a particular rank level. This does no checking - * of allowed values. It just sets it to a particular value. + * Sets a skill to a particular rank level. This does no checking + * of allowed values. It just sets it to a particular value. * - * @param which Skill name. One of the PSSKILL enum values. - * @param rank The value to set this skill rank at. - * @param recalculatestats if true, stats of player will be recalculated taking into account the new skill rank + * @param which Skill name. One of the PSSKILL enum values. + * @param rank The value to set this skill rank at. + * @param recalculatestats if true, stats of player will be recalculated taking into account the new skill rank */ void SetSkillRank( PSSKILL which, unsigned int rank, bool recalculatestats = true); - /** Update the costs for all the skills. + /** + * Update the costs for all the skills. */ void Calculate(); - /** @brief Figure out if this skill can be trained. - * - * Checks the current knowledge of the skill. If it is already maxed out then - * can train no more. - * - * @param skill The skill we want to train. - * @return True if the skill still requires Y credits before it is fully trained. - */ + /** + * Figure out if this skill can be trained. + * + * Checks the current knowledge of the skill. If it is already maxed out then + * can train no more. + * + * @param skill The skill we want to train. + * @return True if the skill still requires Y credits before it is fully trained. + */ bool CanTrain( PSSKILL skill ); - /** @brief Checks if a skill should rank and ranks it. + /** + * Checks if a skill should rank and ranks it. * - * It checks if practice and knowledge is reached to rank the skill. + * It checks if practice and knowledge is reached to rank the skill. * - * @param skill The skill we want to check. + * @param skill The skill we want to check. */ void CheckDoRank( PSSKILL skill ); - /** @brief Trains a skill. + /** + * Trains a skill. * * It will only train up to the cost of the next rank. So the yIncrease is * capped by the cost and anything over will be lost. @@ -453,41 +470,46 @@ void Train( PSSKILL skill, int yIncrease ); - /** @brief Get the current rank of a skill. + /** + * Get the current rank of a skill. * * @param which The skill that we want the rank for. * @return The rank of the requested skill. */ SkillRank & GetSkillRank(PSSKILL which); - /** @brief Get the current knowledge level of a skill. + /** + * Get the current knowledge level of a skill. * * @param skill the enum of the skill that we want. * @return The Y value of that skill. */ unsigned int GetSkillKnowledge( PSSKILL skill ); - /** @brief Get the current practice level of a skill. + /** + * Get the current practice level of a skill. * * @param skill the enum of the skill that we want. * @return The Z value of that skill. */ unsigned int GetSkillPractice(PSSKILL skill); - /** @brief Add some practice to a skill. - * - * @param skill The skill we want to practice - * @param val The amount we want to practice the skill by. This value could - * be capped if the amount of practice causes a rank up. - * @param added [CHANGES] The amount the skill changed by ( if any ) - * - * @return True if practice caused a rank up. - */ + /** + * Add some practice to a skill. + * + * @param skill The skill we want to practice + * @param val The amount we want to practice the skill by. This value could + * be capped if the amount of practice causes a rank up. + * @param added [CHANGES] The amount the skill changed by ( if any ) + * + * @return True if practice caused a rank up. + */ bool AddToSkillPractice(PSSKILL skill, unsigned int val, unsigned int& added ); int AddSkillPractice(PSSKILL skill, unsigned int val); - /** @brief Get the slot that is the best skill in the set. + /** + * Get the slot that is the best skill in the set. * * @param withBuff Apply any skill buffs? * @return The slot the best skill is in. @@ -522,10 +544,12 @@ float defense_absorb_mod; }; -/** This is used to char a charVariable. - * This is a variable which can be set and then accessed from various places - * allowing for example scripts or quests to check if they are set and or - * with what value. The names must be unique (only one per character) +/** + * This is used to char a charVariable. + * + * This is a variable which can be set and then accessed from various places + * allowing for example scripts or quests to check if they are set and or + * with what value. The names must be unique (only one per character) */ class charVariable { @@ -553,23 +577,31 @@ { public: - /** Constructor, wants a @see psRaceInfo pointer which should be the default one usually. - * @param race A pointer to a @see psRaceInfo. + /** + * Constructor, wants a @see psRaceInfo pointer which should be the default one usually. + * + * @param race A pointer to a @see psRaceInfo. */ OverridableRace(psRaceInfo* race) : Overridable<psRaceInfo*>(race) {} - /// Destructor + /** + * Destructor. + */ virtual ~OverridableRace() { } - /** Sets a which character owns this overridableRace. - * @param psChar A pointer to a pscharacter. + /** + * Sets a which character owns this overridableRace. + * + * @param psChar A pointer to a pscharacter. */ void SetCharacter(psCharacter *psChar) { character = psChar; } protected: - /** Function called when the overridable is changed. It sets the base - * values of the race and the helm/belt... groups. + /** + * Function called when the overridable is changed. + * + * It sets the base values of the race and the helm/belt... groups. */ virtual void OnChange(); @@ -613,21 +645,24 @@ psMoney& BankMoney() { return bankMoney; } void SetMoney(psMoney m); - /** @brief Add a money object to the current wallet. - * - * This is used when money is picked up and will destory the object passed in. - * - * @param moneyObject The money object that was just picked up. - */ + + /** + * Add a money object to the current wallet. + * + * This is used when money is picked up and will destory the object passed in. + * + * @param moneyObject The money object that was just picked up. + */ void SetMoney( psItem *& moneyObject ); - /** @brief Add a certain amount of a money object to the current wallet based on the baseitem data. - * - * This is used to give rewards in gmeventmanager for now. - * - * @param MoneyObject The money base object which was rewarded. - * @param amount The amount of the base object which was rewarded. - */ + /** + * Add a certain amount of a money object to the current wallet based on the baseitem data. + * + * This is used to give rewards in gmeventmanager for now. + * + * @param MoneyObject The money base object which was rewarded. + * @param amount The amount of the base object which was rewarded. + */ void SetMoney(psItemStats* MoneyObject, int amount); void AdjustMoney(psMoney m, bool bank); @@ -732,7 +767,9 @@ csString GetLastLoginTime() const { return lastlogintime; } void SetSpouseName(const char* name); - /** @brief Gets Spouse Name of a character. + + /** + * Gets Spouse Name of a character. * * @return SpouseName or "" if not married. */ @@ -740,33 +777,41 @@ void SetIsMarried( bool married ) { isMarried = married; } bool GetIsMarried() const { return isMarried; } - /** Sets the provided race info as the base default one. - * Don't use this to change temporarily the raceinfo but only definitely - * (or upon load) - * @param rinfo A pointer to a @see psRaceInfo + /** + * Sets the provided race info as the base default one. + * + * Don't use this to change temporarily the raceinfo but only definitely + * (or upon load) + * + * @param rinfo A pointer to a @see psRaceInfo */ void SetRaceInfo(psRaceInfo *rinfo); - /** Gets the pointer to the global current raceinfo applied to this character. - * @return A @see psRaceInfo pointer + /** + * Gets the pointer to the global current raceinfo applied to this character. + * + * @return A @see psRaceInfo pointer */ psRaceInfo *GetRaceInfo(); - /** Gets a reference to the overridable race allowing to override it or check the base race. + /** + * Gets a reference to the overridable race allowing to override it or check the base race. * - * @return A @see OverridableRace reference in this psCharacter + * @return A @see OverridableRace reference in this psCharacter */ OverridableRace & GetOverridableRace(); - /** @brief Add a new explored area. + /** + * Add a new explored area. * - * @param explored The PID of the area npc. + * @param explored The PID of the area npc. */ bool AddExploredArea(PID explored); - /** @brief Check if an area has already been explored. + /** + * Check if an area has already been explored. * - * @param explored The PID of the area npc. + * @param explored The PID of the area npc. */ bool HasExploredArea(PID explored); @@ -774,16 +819,22 @@ void SetLootCategory(int id) { lootCategoryId = id; } int GetLootCategory() const { return lootCategoryId; } - /** Removes an item from the loot loaded on the character due to it's defeat. - * It searches for an item with the base stats item having the passed id and returns it - * if it was found, removing it from the list of the lootable items. - * @param id The base item stats id of the item. - * @return The psItem whch void DiscardQuest(QuestAssignment *q, bool force = false);corresponds to the base stats item searched for. + + /** + * Removes an item from the loot loaded on the character due to it's defeat. + * + * It searches for an item with the base stats item having the passed id and returns it + * if it was found, removing it from the list of the lootable items. + * + * @param id The base item stats id of the item. + * @return The psItem whch void DiscardQuest(QuestAssignment *q, bool force = false);corresponds to the base stats item searched for. */ psItem* RemoveLootItem(int id); - /** Adds the supplied psItem to the list of lootable items from this character. - * @param psItem A pointer to the item being lootable from this character. + /** + * Adds the supplied psItem to the list of lootable items from this character. + * + * @param item A pointer to the item being lootable from this character. */ void AddLootItem(psItem *item); void AddLootMoney(int money) { lootMoney += money; } @@ -802,39 +853,51 @@ void CombatDrain(int); - /** Checks if a variable was defined for this character. - * @param name The name of the variable to search for. - * @return TRUE if the variable was found. + /** + * Checks if a variable was defined for this character. + * + * @param name The name of the variable to search for. + * @return TRUE if the variable was found. */ bool HasVariableDefined(const csString &name); - /** Returns the value of a variable. - * @param name The name of the variable to search for. - * @return A csString with the value of the variable. + /** + * Returns the value of a variable. + * + * @param name The name of the variable to search for. + * @return A csString with the value of the variable. */ csString GetVariableValue(csString &name); - /** Returns the reference to a buffable variable. If not existant a temporary - * one is created with the passed value. - * @param name The name of the variable to search for. - * @return A buffable<int> with the value of the variable. + /** + * Returns the reference to a buffable variable. + * + * If not existant a temporary one is created with the passed value. + * @param name The name of the variable to search for. + * @param value The value. + * @return A buffable<int> with the value of the variable. */ Buffable<int>& GetBuffableVariable(const csString& name, const csString& value = "0"); - /** Sets a new variable for this character. - * @param name The name of the new variable. - * @param value The value of the new variable. + /** + * Sets a new variable for this character. + * + * @param name The name of the new variable. + * @param value The value of the new variable. */ void SetVariable(const csString &name, const csString &value); - /** Sets a new variable for this character. - * The value will be set to a default empty string. - * @param name The name of the new variable. + /** + * Sets a new variable for this character. + * + * The value will be set to a default empty string. + * @param name The name of the new variable. */ void SetVariable(const csString &name); - /** Remove a variable from this character. - * @param name The name of the variable to remove. + /** + * Remove a variable from this character. + * @param name The name of the variable to remove. */ void UnSetVariable(const csString &name); @@ -858,11 +921,16 @@ unsigned int GetDeaths() const { return deaths; } unsigned int GetSuicides() const { return suicides; } - /** @brief Drops an item into the world (one meter from this character's position) - * - * @param Item to be dropped - * @param Transient flag (decay?) (default=true) - */ + /** + * Drops an item into the world (one meter from this character's position). + * + * @param item to be dropped + * @param pos the position + * @param rot the rotation + * @param guarded TRUE if guarded + * @param transient flag (decay?) (default=true) + * @param inplace TRUE if in place. + */ void DropItem(psItem *&item, csVector3 pos = 0, const csVector3& rot = csVector3(0), bool guarded = true, bool transient = true, bool inplace = false); float GetHP(); @@ -893,15 +961,18 @@ void SetStaminaRegenerationStill(bool physical = true, bool mental = true); void SetStaminaRegenerationWork(int skill); - /** Recalculate the maximm stamina for the character. + /** + * Recalculate the maximm stamina for the character. */ void CalculateMaxStamina(); - /** Return the dirty flags for vitals. + /** + * Return the dirty flags for vitals. */ unsigned int GetStatsDirtyFlags() const; - /** Cleare the dirty flags for vitals. + /** + * Cleare the dirty flags for vitals. */ void ClearStatsDirtyFlags( unsigned int dirtyFlags ); @@ -920,8 +991,9 @@ void CompleteGMEvent(bool playerIsGM); void RemoveGMEvent(int id, bool playerIsGM=false); - /** Update a npc's default spawn position with given data. - */ + /** + * Update a npc's default spawn position with given data. + */ void UpdateRespawn(csVector3 pos, float yrot, psSectorInfo *sector, InstanceID instance); @@ -942,6 +1014,7 @@ /** * Resets the song's execution data. This must always be called when a song ends. + * * @param bonusTime when the next song starts, bonusTime will be summed to the * actual execution time. */ @@ -952,11 +1025,15 @@ */ csTicks GetSongStartTime() const { return songExecutionTime; } - /** Check if the character is a banker */ + /** + * Check if the character is a banker. + */ bool IsBanker() const { return banker; } - /** Check if the character is a storage - * @return TRUE if the character mantains a storage + /** + * Check if the character is a storage. + * + * @return TRUE if the character mantains a storage */ bool IsStorage() const { return IsBanker(); } void RecalculateStats(); @@ -965,6 +1042,7 @@ /** * Used to determine if this character is a player. + * * @return TRUE if the character is a player. */ bool IsPlayer() { return characterType == PSCHARACTER_TYPE_PLAYER; }; @@ -985,9 +1063,11 @@ bool UpdateStatDRData(csTicks now); bool SendStatDRMessage(uint32_t clientnum, EID eid, int flags, csRef<PlayerGroup> group = NULL); - /** Returns true if the character is able to attack with the current slot. - * This could be true even if the slot is empty (as in fists). - * It could also be false due to effects or other properties. + /** + * Returns true if the character is able to attack with the current slot. + * + * This could be true even if the slot is empty (as in fists). + * It could also be false due to effects or other properties. */ bool GetSlotAttackable(INVENTORY_SLOT_NUMBER slot); @@ -1038,17 +1118,19 @@ psCharacter *GetTrainer() { return trainer; } void SetTrainer(psCharacter *trainer) { this->trainer = trainer; } - /** @brief Figure out if this skill can be trained. - * - * Checks the current knowledge of the skill. If it is already maxed out then - * can train no more. - * - * @param skill The skill we want to train. - * @return True if the skill still requires Y credits before it is fully trained. - */ + /** + * Figure out if this skill can be trained. + * + * Checks the current knowledge of the skill. If it is already maxed out then + * can train no more. + * + * @param skill The skill we want to train. + * @return True if the skill still requires Y credits before it is fully trained. + */ bool CanTrain( PSSKILL skill ); - /** @brief Trains a skill. + /** + * Trains a skill. * * It will only train up to the cost of the next rank. So the yIncrease is * capped by the cost and anything over will be lost. @@ -1058,8 +1140,10 @@ */ void Train( PSSKILL skill, int yIncrease ); - /** Directly sets rank of given skill. It completely bypasses the skill logic, - it is used for testing only. */ + /** + * Directly sets rank of given skill. It completely bypasses the skill logic, + * it is used for testing only. + */ void SetSkillRank( PSSKILL which, unsigned int rank); psSpell * GetSpellByName(const csString& spellName); @@ -1088,49 +1172,58 @@ unsigned int GetTimeConnected() { return timeconnected; } - /** @brief This is used to get the stored player description. - * @return Returns a pointer to the stored player description. + /** + * This is used to get the stored player description. + * @return Returns a pointer to the stored player description. */ const char* GetDescription(); - /** @brief This is used to store the player description. - * @param newValue: A pointer to the new string to set as player description. + /** + * This is used to store the player description. + * @param newValue: A pointer to the new string to set as player description. */ void SetDescription(const char* newValue); - /** @brief This is used to get the stored player OOC description. - * @return Returns a pointer to the stored player OOC description. + /** + * This is used to get the stored player OOC description. + * @return Returns a pointer to the stored player OOC description. */ const char* GetOOCDescription(); - /** @brief This is used to store the player OOC description. - * @param newValue: A pointer to the new string to set as player OOC description. + /** + * This is used to store the player OOC description. + * @param newValue: A pointer to the new string to set as player OOC description. */ void SetOOCDescription(const char* newValue); - /** @brief This is used to get the stored informations from the char creation. - * @return Returns a pointer to the stored informations from the char creation. + /** + * This is used to get the stored informations from the char creation. + * @return Returns a pointer to the stored informations from the char creation. */ const char* GetCreationInfo(); - /** @brief This is used to store the informations from the char creation. Players shouldn't be able to edit this. - * @param newValue: A pointer to the new string to set as char creation data. + /** + * This is used to store the informations from the char creation. Players shouldn't be able to edit this. + * @param newValue: A pointer to the new string to set as char creation data. */ void SetCreationInfo(const char* newValue); - /** @brief Gets dynamic life events generated from the factions of the character. - * @param factionDescription: where to store the dynamically generated data. - * @return Returns true if there were some dynamic life events founds else false. + /** + * Gets dynamic life events generated from the factions of the character. + * @param factionDescription: where to store the dynamically generated data. + * @return Returns true if there were some dynamic life events founds else false. */ bool GetFactionEventsDescription(csString & factionDescription); - /** @brief This is used to get the stored informations from the custom life events made by players. - * @return Returns a pointer to the stored informations from the custom life events made by players. + /** + * This is used to get the stored informations from the custom life events made by players. + * @return Returns a pointer to the stored informations from the custom life events made by players. */ const char* GetLifeDescription(); - /** @brief This is used to store the informations sent by players for their custom life events. - * @param newValue: A pointer to the new string to set as custom life events. + /** + * This is used to store the informations sent by players for their custom life events. + * @param newValue: A pointer to the new string to set as custom life events. */ void SetLifeDescription(const char* newValue); @@ -1163,19 +1256,22 @@ /// The delete operator is overriden to call PoolAllocator template functions void operator delete(void *); - /** @brief Get the account ID that this character is attached to. - * @return The account ID that this character is attached to. - */ + /** + * Get the account ID that this character is attached to. + * @return The account ID that this character is attached to. + */ AccountID GetAccountId() { return accountid; } - /** @brief Get the character spawn location. - * @return The struct that has the information about where the character spawns. - */ + /** + * Get the character spawn location. + * @return The struct that has the information about where the character spawns. + */ st_location GetSpawnLocation() { return spawnLoc; } - /** @brief Get the character location - * @return The struct that has the information about where the character is - */ + /** + * Get the character location + * @return The struct that has the information about where the character is + */ st_location GetLocation() const { return location; } friend class psCharacterLoader; @@ -1194,8 +1290,10 @@ bool LoadFactions(PID pid); /// Helper function which saves the factions to the database. void UpdateFactions(); - /** Helper function which loads the character variables from the database. - * @return TRUE always. bool was used for consistancy. + + /** + * Helper function which loads the character variables from the database. + * @return TRUE always. bool was used for consistancy. */ bool LoadVariables(PID pid); /// Helper function which saves the character variables to the database. @@ -1334,27 +1432,38 @@ csTicks songExecutionTime; ///< Keeps track of the execution time of a player's song. - /** Some races share helms so this tells which - group it's in. If empty assume in racial group. */ + /** + * Some races share helms so this tells which + * group it's in. If empty assume in racial group. + */ csString helmGroup; - /** Some races share bracers so this tells which - group it's in. If empty assume in racial group.*/ + /** + * Some races share bracers so this tells which + * group it's in. If empty assume in racial group. + */ csString BracerGroup; - /** Some races share belts so this tells which - group it's in. If empty assume in racial group.*/ + /** + * Some races share belts so this tells which + * group it's in. If empty assume in racial group. + */ csString BeltGroup; - /** Some races share cloaks so this tells which - group it's in. If empty assume in racial group.*/ + /** + * Some races share cloaks so this tells which + * group it's in. If empty assume in racial group. + */ csString CloakGroup; bool banker; ///< Whether or not the character is a banker + /// Static reference to the pool for all psItem objects static PoolAllocator<psCharacter> characterpool; }; +/** @} */ + #endif Modified: trunk/src/server/bulkobjects/pscharacterloader.cpp =================================================================== --- trunk/src/server/bulkobjects/pscharacterloader.cpp 2013-01-30 15:41:03 UTC (rev 8569) +++ trunk/src/server/bulkobjects/pscharacterloader.cpp 2013-02-02 16:10:13 UTC (rev 8570) @@ -593,7 +593,9 @@ /// Let GMEventManager sort the DB out, as it is a bit complex, and its cached too if (!psserver->GetGMEventManager()->RemovePlayerFromGMEvents(pid)) + { Error2("Failed to remove %s from GM events database/cache", ShowID(pid)); + } csArray<gemObject*> list; psserver->entitymanager->GetGEM()->GetPlayerObjects(pid, list); Modified: trunk/src/server/bulkobjects/pscharacterloader.h =================================================================== --- trunk/src/server/bulkobjects/pscharacterloader.h 2013-01-30 15:41:03 UTC (rev 8569) +++ trunk/src/server/bulkobjects/pscharacterloader.h 2013-02-02 16:10:13 UTC (rev 8570) @@ -49,6 +49,9 @@ class psItemStats; class gemActor; +/** + * \addtogroup bulkobjects + * @{ */ /* Why isn't there a LoadItem() call here? * @@ -60,123 +63,149 @@ * (x,y,z,sector), possibly based on some other criteria. */ -/** This class controls loading and saving Characters and Character specific data to and from an iDatabase. -* -* The class's primary goal is to keep the lower level psdatabase from knowing too much about how tables relate -* and to keep the higher level psCharacter, psItem, etc from knowing how the data is stored at all. -* A secondary goal of the interface is that it should allow for delayed processing in the future with minimal changes. -* As the project grows in players and complexity the amount of data passing to and from the server will grow as well. -* It will become unacceptable to wait for the database to respond to each and every query before continuing processing -* other tasks. -* In order to achieve this, three conditions must be met: -* 1) Calls that access the database server must be able to return immediately. -* 2) Calls that store data in the database must make a local copy of the data to be stored so that the original data may continue -* to be modified by the server unrestricted. -* 3) Calls that retrieve data from the database must have a mechanism to check for retrieved data or errors. -* -* -* While these are not all currently met, the design is such that it would take only minor restructuring to meet them all. -*/ +/** + * This class controls loading and saving Characters and Character specific data to and from an iDatabase. + * + * The class's primary goal is to keep the lower level psdatabase from knowing too much about how tables relate + * and to keep the higher level psCharacter, psItem, etc from knowing how the data is stored at all. + * A secondary goal of the interface is that it should allow for delayed processing in the future with minimal changes. + * As the project grows in players and complexity the amount of data passing to and from the server will grow as well. + * It will become unacceptable to wait for the database to respond to each and every query before continuing processing + * other tasks. + * In order to achieve this, three conditions must be met: + * 1) Calls that access the database server must be able to return immediately. + * 2) Calls that store data in the database must make a local copy of the data to be stored so that the original data may continue + * to be modified by the server unrestricted. + * 3) Calls that retrieve data from the database must have a mechanism to check for retrieved data or errors. + * + * + * While these are not all currently met, the design is such that it would take only minor restructuring to meet them all. + */ class psCharacterLoader { public: - /// Construct a new psCharacterLoader, optionally specifying an iDatabase interface to use for database calls + /** + * Construct a new psCharacterLoader, optionally specifying an iDatabase interface to use for database calls. + */ psCharacterLoader(); + + /** + * Destructor. + */ ~psCharacterLoader(); - /// Initializes settings related to this class. Call this before using any functions. + /** + * Initializes settings related to this class. + * + * Call this before using any functions. + */ bool Initialize(); - /// Loads the names of characters for a given account for charpick screen on login + /** + * Loads the names of characters for a given account for charpick screen on login. + */ psCharacterList *LoadCharacterList(AccountID accountid); psCharacter **LoadAllNPCCharacterData(psSectorInfo *sector,int &count); - - /** Loads data for a character from the database and constructs and fills a new psCharacter object with the data. + /** + * Loads data for a character from the database and constructs and fills a new psCharacter object with the data. * - * NOTE: This function call must block for database access. It will need to be redesigned for deferred database - * in the future. - * @param uid The unique ID of the character to load data for. Usually obtained from the account. - * @param forceReload Ignores (and empties) the cache if set to true. + * @note This function call must block for database access. It will need to be redesigned for deferred database + * in the future. + * @param pid The unique ID of the character to load data for. Usually obtained from the account. + * @param forceReload Ignores (and empties) the cache if set to true. * - * @return Pointer to a newly created psCharacter object, or NULL if the data could not be loaded. - * + * @return Pointer to a newly created psCharacter object, or NULL if the data could not be loaded. */ psCharacter *LoadCharacterData(PID pid, bool forceReload); - /// Load just enough of the character data to know what it looks like (for selection screen) + /** + * Load just enough of the character data to know what it looks like (for selection screen). + */ psCharacter *QuickLoadCharacterData(PID pid, bool noInventory); - /** Creates a new character entry to store the provided character data. + /** + * Creates a new character entry to store the provided character data. * - * NOTE: This function call must block for database access. It will need to be redesigned for deferred database - * in the future. + * @note This function call must block for database access. It will need to be redesigned for deferred database + * in the future. * - * @param accountid A numeric account identifier with which this character should be associated. - * @param chardata Pointer to a psCharacter object containing the Character data to be stored as a new character. + * @param accountid A numeric account identifier with which this character should be associated. + * @param chardata Pointer to a psCharacter object containing the Character data to be stored as a new character. * - * @return true - Save progressing. false - Could not save. - * When this function returns the UID member of the chardata structure will contain the unique id for this - * character >0 if and only if the save was successful. + * @return true - Save progressing. false - Could not save. + * When this function returns the UID member of the chardata structure will contain the unique id for this + * character >0 if and only if the save was successful. */ bool NewCharacterData(AccountID accountid, psCharacter *chardata); bool NewNPCCharacterData(AccountID accountid,psCharacter *chardata); unsigned int InsertNewCharacterData(const char **fieldnames, psStringArray& fieldvalues); - /** Saves character data to the database. + /** + * Saves character data to the database. * - * This function call does not need to block for database access. It can copy the psCharacter object and - * related sub-objects and verify some integrity of the data before queueing a database write and returning - * true. + * This function call does not need to block for database access. It can copy the psCharacter object and + * related sub-objects and verify some integrity of the data before queueing a database write and returning + * true. * - * @param chardata Pointer to a psCharacter object containing the Character data to be updated. + * @param chardata Pointer to a psCharacter object containing the Character data to be updated. * The uid member of chardata must be valid and unique. The UID value can only be set * by creating a new character and calling NewCharacterData(). - * @return true - Save progressing. false - Could not save. + * @param actor A pointer to the actor. + * @param charRecordOnly Should only char record be saved. + * @return true - Save progressing. false - Could not save. */ bool SaveCharacterData(psCharacter *chardata,gemActor *actor,bool charRecordOnly=false); - /** Deletes character data to the database. + /** + * Deletes character data to the database. * - * This function call does not need to block for database access. + * This function call does not need to block for database access. * - * @param charID The unique ID of the character to erase data for. Usually obtained from the account. - * - * @return true - Delete progressing. false - Could not delete. + * @param pid The unique ID of the character to erase data for. Usually obtained from the account. + * @param error A error message in case character could not be deleted. + * @return true - Delete progressing. false - Could not delete. */ bool DeleteCharacterData(PID pid, csString& error ); - /** This function finds a character's ID given a character name. + /** + * This function finds a character's ID given a character name. * * We go straight to the database currently for this information. + * * @param character_name The name of the character we are looking for * @param excludeNPCs If we should exclude NPC's from the search. * @return The ID of the character or 0 if not found */ PID FindCharacterID(const char *character_name, bool excludeNPCs=true); - /** This function finds a character's ID given a character name and the ID of the - * account that this character is supposed to be on. + /** + * This function finds a character's ID given a character name and the ID of the + * account that this character is supposed to be on. * - * We go straight to the database currently for this information. - * @param accountID The account the character is supposedly on - * @param character_name The name of the character we are looking for - * @return The ID of the character or 0 if not found + * We go straight to the database currently for this information. + * + * @param accountID The account the character is supposedly on + * @param character_name The name of the character we are looking for + * @return The ID of the character or 0 if not found */ PID FindCharacterID(AccountID accountID, const char *character_name); - /** Checks to see if the character name is owned by a particular ID. - * - * @param characterName The character name we want to check - * @param accountID The account this character should belong to. - * @return true If the character name given belongs to the accountID given. - */ + /** + * Checks to see if the character name is owned by a particular ID. + * + * @param characterName The character name we want to check + * @param accountID The account this character should belong to. + * @return true If the character name given belongs to the accountID given. + */ bool AccountOwner( const char* characterName, AccountID accountID ); - /// Update the skill in the database + /** + * Update the skill in the database. + */ bool UpdateCharacterSkill(PID pid, unsigned int skill_id, unsigned int skill_z, unsigned int skill_y, unsigned int skill_rank); @@ -199,7 +228,9 @@ //----------------------------------------------------------------------------- -/** This is an event that schedules regular saving of character data. +/** + * This is an event that schedules regular saving of character data. + * * This is done to allow some preservation of character data on a server crash. * When a player logs in this event is pushed into the queue with a default * delay. When this message triggers it will re-add itself to the queue until @@ -215,24 +246,33 @@ gemActor* actor; /// The GEM object want to save data with. - /** Construct the message. - * @param actor The actor that has the character that we want to save. - */ + /** + * Construct the message. + * + * @param actor The actor that has the character that we want to save. + */ psSaveCharEvent(gemActor* actor); - /** Destory Message */ + /** + * Destory Message. + */ ~psSaveCharEvent(); - /** Trigger this message and re-insert it back into queue. */ + /** + * Trigger this message and re-insert it back into queue. + */ virtual void Trigger(); // Abstract event processing function - /** This is called when the client we were tracking has logged out and this mesage - * is no longer required. - * @param object The gem object that we had registered to. - */ + /** + * This is called when the client we were tracking has logged out and this mesage + * is no longer required. + * + * @param object The gem object that we had registered to. + */ virtual void DeleteObjectCallback(iDeleteNotificationObject * object); }; +/** @} */ #endif Modified: trunk/src/server/bulkobjects/pscharinventory.h =================================================================== --- trunk/src/server/bulkobjects/pscharinventory.h 2013-01-30 15:41:03 UTC (rev 8569) +++ trunk/src/server/bulkobjects/pscharinventory.h 2013-02-02 16:10:13 UTC (rev 8570) @@ -50,9 +50,12 @@ class psItem; class gemContainer; struct psRaceInfo; +class gemActor; +/** + * \addtogroup bulkobjects + * @{ */ - /// Set if this slot should continuously attack while in combat #define PSCHARACTER_EQUIPMENTFLAG_AUTOATTACK 0x00000001 /// Set if this slot can attack when the client specifically requests (and only when the client specifically requests) @@ -61,9 +64,6 @@ #define PSCHARACTER_EQUIPMENTFLAG_ATTACKIFEMPTY 0x00000004 -class gemActor; - - //----------------------------------------------------------------------------- /// used by psCharacter::CreateGlyphList() @@ -147,44 +147,63 @@ /// Load the inventory for the owner. bool Load(); - /** Load the inventory using a particular ID. This is useful for NPCs that have their own - * inventory as well as a common base one they need to load. - * @param id The key into the character table for the character who's inventory we should load. - * @return true if the inventory was loaded without error. - */ + /** + * Load the inventory using a particular ID. + * + * This is useful for NPCs that have their own + * inventory as well as a common base one they need to load. + * + * @param id The key into the character table for the character who's inventory we should load. + * @return true if the... [truncated message content] |