00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #pragma once
00021
00022 #include "SavableHeaders.h"
00023 #include "SavableTypes.h"
00024
00025 namespace mud
00026 {
00027 class CharacterManager;
00028
00029 class Character : public Savable
00030 {
00031 public:
00032 virtual void OnSend(const std::string& msg);
00033 virtual void OnSendf(const char* format, ...);
00034
00035
00036
00037
00038 virtual void OnAreaList(const std::string& msg);
00039 virtual void OnColourList(const std::string& msg);
00040 virtual void OnLook(const std::string& msg);
00041 virtual void OnRaceList(const std::string& msg);
00042 virtual void OnRoomList(const std::string& msg);
00043 virtual void OnScore(const std::string& msg);
00044 virtual void OnSay(const std::string& msg);
00045
00046
00047
00048
00049
00050
00051
00052 value_type getID() const;
00053 const std::string& getName() const;
00054 const std::string& getDescription() const;
00055 value_type getRace() const;
00056 value_type getRoom() const;
00057
00058
00059
00060
00061 void setName(const std::string& name);
00062 void setDescription(const std::string& description);
00063 void setRace(value_type race);
00064 void setRoom(value_type room);
00065
00066
00067
00068
00069 void MoveToRoom(value_type room);
00070
00071
00072
00073
00074 void Delete();
00075 void Save();
00076 void Discard();
00077 bool Exists();
00078
00079
00080
00081
00082 SavableManagerPtr getManager() const;
00083 TableImplPtr getTable() const;
00084
00085 protected:
00086 SavableManagerPtr m_character;
00088 Character(SavableManagerPtr character);
00089 virtual ~Character(void);
00090
00091 friend class mud::CharacterManager;
00092 friend SmartPtrDelete(mud::Character);
00093
00094 private:
00095 Character(const Character& rhs);
00096 Character operator=(const Character& rhs);
00097 };
00098 }