From: Andrew C. <ac...@us...> - 2002-12-20 22:54:30
|
Update of /cvsroot/planeshift/planeshift/src/common/admin In directory sc8-pr-cvs1:/tmp/cvs-serv5007/src/common/admin Modified Files: adminmessage.cpp adminmessage.h Log Message: Cleaned up code a little and added more doxygen comments Index: adminmessage.cpp =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/common/admin/adminmessage.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** adminmessage.cpp 12 Dec 2002 05:24:46 -0000 1.7 --- adminmessage.cpp 20 Dec 2002 22:54:26 -0000 1.8 *************** *** 1,2 **** --- 1,21 ---- + /* + * adminmessage.cpp + * + * Copyright (C) 2002 PlaneShift Team (in...@pl..., + * http://www.planeshift.it) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation (version 2 of the License) + * 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 General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * Helper classes for cracking Admin data + */ #include <config.h> *************** *** 57,62 **** psAdminRaceList::~psAdminRaceList() { ! for ( int x = 0; x < races.Length(); x++ ) ! delete races[x]; } --- 76,84 ---- psAdminRaceList::~psAdminRaceList() { ! while ( races.Length() > 0 ) ! { ! delete races[0]; ! races.Delete(0); ! } } *************** *** 65,75 **** } ! void psAdminRaceList::AddRace(const char* race) { ! outBuffer.Append("<RACE N=\""); ! outBuffer.Append(race); ! outBuffer.Append("\"/>"); ! } //-------------------------------------------------------------------------- --- 87,108 ---- } ! void psAdminRaceList::AddRace(const char* newRace) { ! csString *race = new csString(newRace); ! races.Push(race); ! } + const char* psAdminRaceList::XML() + { + network.Clear(); + for ( int x = 0; x < races.Length(); x++ ) + { + network.Append( "<RACE N=\"" ); + network.Append( races[x]->GetData() ); + network.Append(" \"/>" ); + } + + return network.GetData(); + } //-------------------------------------------------------------------------- *************** *** 96,110 **** psAdminKnowledgeAreaList::~psAdminKnowledgeAreaList() { ! for ( int x = 0; x < areas.Length(); x++ ) ! delete areas[x]; } ! void psAdminKnowledgeAreaList::AddArea(const char* area) { ! outBuffer.Append("<KA N=\""); ! outBuffer.Append(area); ! outBuffer.Append("\"/>"); } //-------------------------------------------------------------------------- --- 129,156 ---- psAdminKnowledgeAreaList::~psAdminKnowledgeAreaList() { ! while ( areas.Length() > 0 ) ! { ! delete areas[0]; ! areas.Delete(0); ! } } ! void psAdminKnowledgeAreaList::AddArea(const char* newArea) { ! csString *area = new csString(newArea); ! areas.Push(area); } + const char* psAdminKnowledgeAreaList::XML() + { + network.Clear(); + for ( int x = 0; x < areas.Length(); x++ ) + { + network.Append( "<KA N=\"" ); + network.Append( areas[x]->GetData() ); + network.Append( "\"/>" ); + } + return network.GetData(); + } //-------------------------------------------------------------------------- *************** *** 167,171 **** psXMLString dialogData; main.GetTagSection( start, "specificknowledge", dialogData ); ! dialog.Crack( dialogData.GetData() ); } --- 213,217 ---- psXMLString dialogData; main.GetTagSection( start, "specificknowledge", dialogData ); ! // Crack this section of dialogs dialog.Crack( dialogData.GetData() ); } *************** *** 254,258 **** char* psAdminNPCData::XML() { - csString network; char buffer[1024]; --- 300,303 ---- *************** *** 385,396 **** const char* psAdminTriggerList::XML() { for ( int x = 0; x < triggers.Length(); x++ ) { char buffer[256]; sprintf( buffer, "<TRIG STR=\"%s\" />", triggers[x]->GetData()); ! outBuffer.Append(buffer); } ! return outBuffer.GetData(); } --- 430,443 ---- const char* psAdminTriggerList::XML() { + network.Clear(); + for ( int x = 0; x < triggers.Length(); x++ ) { char buffer[256]; sprintf( buffer, "<TRIG STR=\"%s\" />", triggers[x]->GetData()); ! network.Append(buffer); } ! return network.GetData(); } *************** *** 459,474 **** } ! void psAdminResponseList::AddTrigger( const char* trigger ) { ! char temp[1024]; ! sprintf(temp, "<TRIGGER STR=\"%s\" />", trigger); ! outbuffer.Append(temp); } ! void psAdminResponseList::AddArea( const char* area ) { ! char temp[1024]; ! sprintf(temp, "<AREA STR=\"%s\" />", area ); ! outbuffer.Append(temp); } --- 506,517 ---- } ! void psAdminResponseList::AddTrigger( const char* newTrigger ) { ! trigger.Replace( newTrigger ); } ! void psAdminResponseList::AddArea( const char* newArea ) { ! area.Replace( newArea ); } *************** *** 479,484 **** } - - void psAdminResponseList::AddPronounSet( const char* prohim, const char* proher, --- 522,525 ---- *************** *** 495,507 **** const char* psAdminResponseList::XML() { for ( int x = 0; x < responses.Length(); x++ ) { ! char temp[1024]; ! sprintf(temp, "<RESPONSE STR=\"%s\" />", responses[x]->GetData()); ! outbuffer.Append(temp); } - char temp[1024]; sprintf(temp, "<PRONOUNSET PRO_HIM=\"%s\" " "PRO_HER=\"%s\" " --- 536,556 ---- const char* psAdminResponseList::XML() { + network.Clear(); + + char temp[1024]; + sprintf( temp, "<TRIGGER STR=\"%s\" />", trigger.GetData() ); + network.Append( temp ); + + sprintf( temp, "<AREA STR=\"%s\" />", area ); + network.Append(temp); + + // Add in the responses for ( int x = 0; x < responses.Length(); x++ ) { ! sprintf( temp, "<RESPONSE STR=\"%s\" />", responses[x]->GetData() ); ! network.Append(temp); } sprintf(temp, "<PRONOUNSET PRO_HIM=\"%s\" " "PRO_HER=\"%s\" " *************** *** 512,518 **** it.GetData(), them.GetData() ); ! outbuffer.Append( temp ); ! return outbuffer.GetData(); } --- 561,568 ---- it.GetData(), them.GetData() ); ! network.Append( temp ); ! return network.GetData(); } + Index: adminmessage.h =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/common/admin/adminmessage.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** adminmessage.h 12 Dec 2002 05:24:46 -0000 1.6 --- adminmessage.h 20 Dec 2002 22:54:26 -0000 1.7 *************** *** 1,3 **** ! #ifndef ADMIN_MESSAGE_H #define ADMIN_MESSAGE_H --- 1,21 ---- ! /* ! * adminmessage.h ! * ! * Copyright (C) 2002 PlaneShift Team (in...@pl..., ! * http://www.planeshift.it) ! * ! * This program is free software; you can redistribute it and/or ! * modify it under the terms of the GNU General Public License ! * as published by the Free Software Foundation (version 2 of the License) ! * 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 General Public License for more details. ! * You should have received a copy of the GNU General Public License ! * along with this program; if not, write to the Free Software ! * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ! * ! * Helper classes for cracking Admin data ! */ #ifndef ADMIN_MESSAGE_H #define ADMIN_MESSAGE_H *************** *** 27,76 **** CS_TYPEDEF_GROWING_ARRAY(stringList, csString*); CS_TYPEDEF_GROWING_ARRAY(idList, int); ! class psAdminMessage : public psMessageCracker { public: psAdminMessage( uint32_t clientnum, ! int command, ! const char* data ); psAdminMessage( const MsgEntry *mesgEntry ); int command; csString data; }; //-------------------------------------------------------------------------- class psAdminTriggerList { public: psAdminTriggerList(); psAdminTriggerList( csString &str ); ~psAdminTriggerList(); void AddTrigger(const char* name); const char* XML(); stringList triggers; idList id; private: ! csString outBuffer; }; //-------------------------------------------------------------------------- ! class psAdminResponseList { public: psAdminResponseList(); psAdminResponseList( csString& str ); ~psAdminResponseList(); void AddTrigger( const char* trigger ); void AddArea( const char* area ); void AddResponse( const char* response ); void AddPronounSet( const char* him, const char* her, --- 45,153 ---- CS_TYPEDEF_GROWING_ARRAY(stringList, csString*); CS_TYPEDEF_GROWING_ARRAY(idList, int); + /** \addtogroup Admin Common Admin Library + * \@{*/ ! ! //! Main admin message cracker. ! /*! ! * This class will either construct a message based on a command and an XML ! * string of data or will take an admin message and crack out the command and ! * XML data. ! */ class psAdminMessage : public psMessageCracker { public: + //! Construct a new admin message. + /*! + * Builds up an admin message using a command and data + * @param clientnum The client to go to. 0 for server. + * @param command One of the many admin commands available + * @param data The data to go with this command. + */ psAdminMessage( uint32_t clientnum, ! int command, ! const char* data ); ! ! ! //! Crack out the message into the commands and data. ! /*! ! * Will take a network message and break it out into it's command ! * and command data. ! * @param mesgEntry The network message ! */ psAdminMessage( const MsgEntry *mesgEntry ); + /// The command that this message has. int command; + + /// The command data csString data; }; + //-------------------------------------------------------------------------- + //! A list of triggers + /*! + * This is a helper class that can break/construct an XML string of triggers. + * All triggers are stored in the stringList called triggers. + */ class psAdminTriggerList { public: + //! Default constuctor psAdminTriggerList(); + + //! Construct Trigger list from data psAdminTriggerList( csString &str ); ~psAdminTriggerList(); + //! Add new trigger to the list. void AddTrigger(const char* name); + + //! Build the XML data for network use. const char* XML(); + /// List of trigger strings. stringList triggers; + + /// If used on the server side, stores the id of this trigger. idList id; + private: ! //! The string to go to the network. ! csString network; }; //-------------------------------------------------------------------------- ! //! A list of responses ! /*! ! * This helper class is used to construct the network data for a response to ! * a dialog trigger. It should have a max of 5 responses since that is all the ! * database supports at the moment. ! */ class psAdminResponseList { public: psAdminResponseList(); + //! Construct from data psAdminResponseList( csString& str ); ~psAdminResponseList(); + //! Add the trigger this response is for. void AddTrigger( const char* trigger ); + + //! Add the area this response is for. void AddArea( const char* area ); + + //! Insert a new response to the list void AddResponse( const char* response ); + + //! Create the pronoun set for this dialog response. + /*! + * All 5 responses to the trigger must share the same pronoun set. + */ void AddPronounSet( const char* him, const char* her, *************** *** 84,95 **** const char* GetPronounIt() { return it; } const char* GetPronounThem(){ return them; } const char* XML(); stringList responses; private: - - csString outbuffer; - csString him; csString her; --- 161,172 ---- const char* GetPronounIt() { return it; } const char* GetPronounThem(){ return them; } + + //! Construct the XML data to go out to the network. const char* XML(); + /// Store the responses. stringList responses; private: csString him; csString her; *************** *** 99,118 **** csString trigger; csString area; - }; class psAdminRaceList { public: ! psAdminRaceList(csString& data); ! psAdminRaceList(); ~psAdminRaceList(); ! void AddRace(const char* race); stringList races; - csString outBuffer; private: }; --- 176,209 ---- csString trigger; csString area; + //! The string to go to the network. + csString network; + }; + //! A list of races + /*! + * The helper class helps to send a list of races across the network. + * All races are stored in the vector array races. + */ class psAdminRaceList { public: ! //! Build A race list from data. ! psAdminRaceList(csString& data); ! psAdminRaceList(); ~psAdminRaceList(); ! //! Add a new race to the list. ! void AddRace(const char* race); ! ! //! Construct the XML data to go out to the network. ! const char* XML(); + //! A vector array of races stringList races; private: + //! The string to go to the network. + csString network; }; *************** *** 120,126 **** --- 211,223 ---- //-------------------------------------------------------------------------- + //! A list of NPC dialog knowledge areas + /*! + * The helper class helps to send a list of knowledge areas across the + network. + */ class psAdminKnowledgeAreaList { public: + //! Constuct a knowledge area list from data. psAdminKnowledgeAreaList(csString& data); psAdminKnowledgeAreaList(); *************** *** 129,134 **** void AddArea(const char* data); stringList areas; ! csString outBuffer; }; --- 226,238 ---- void AddArea(const char* data); + //! Construct the string for this list that should go over the network. + const char* XML(); + + //! A vector of knowledge areas stringList areas; ! ! private: ! //! The string to go to the network. ! csString network; }; *************** *** 136,139 **** --- 240,248 ---- //-------------------------------------------------------------------------- + //! A complete set of triggers/responses for an NPC dialog. + /*! + * This Helper Class basicly maintains a list of triggers and responses that + * a NPC has. + */ class psAdminNPCDialogSet { *************** *** 141,151 **** ~psAdminNPCDialogSet(); void Crack ( const char* data ); struct dialog { ! psAdminTriggerList triggers; psAdminResponseList responses; int databaseResponseID; int prior; }; --- 250,272 ---- ~psAdminNPCDialogSet(); + //! Crack out the data. + /*! This constucts many sets of dialog from the XML string. + * @param data The XML string that has the data. + */ void Crack ( const char* data ); + //! A dialog/response set struct dialog { ! //! List of triggers that the response is good for. ! psAdminTriggerList triggers; ! ! //! A ResponseSet that is good for 5 responses. psAdminResponseList responses; + + // If used on the server, stores the id of the response. int databaseResponseID; + + // Stores the prior response that this dialog set has. int prior; }; *************** *** 158,161 **** --- 279,288 ---- //-------------------------------------------------------------------------- + + //! A complete NPC specified in XML. + /*! + * This Helper Class is used to get a NPC definition from an XML file that + * can be easily sent across the network to create in the database. + */ class psAdminNPCData { *************** *** 195,201 **** csString sector; }; ! #endif --- 322,332 ---- csString sector; + //! The string to go to the network. + csString network; }; ! /*\@}*/ #endif + + |