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 "Types.h"
00023
00024 #include "OLCEditor.h"
00025 #include "CommandInfoObject.h"
00026 #include "CommandTable.h"
00027
00028 class EditorArea : public OLCEditor
00029 {
00030 public:
00031 typedef CommandInfoObject<EditorArea> AreaCommand;
00033 EditorArea(UBSocket* sock);
00034 ~EditorArea(void);
00035
00036 std::string name() { return "Area"; };
00037 std::string prompt() { return "Area> "; };
00038
00039 std::string lookup(const std::string& action);
00040 void dispatch(const std::string& action, const std::string& argument);
00041
00042 SavablePtr getEditing();
00043 TableImplPtr getTable();
00044 KeysPtr addNew();
00045 std::vector<std::string> getList();
00046 std::vector<std::string> getCommands();
00047 void setEditing(KeysPtr keys);
00048
00049 void editName(const std::string& argument);
00050 void editDescription(const std::string& argument);
00051 void editHeight(const std::string& argument);
00052 void editWidth(const std::string& argument);
00053 void startClusters(const std::string& argument);
00054 void startDetails(const std::string& argument);
00055 void showArea(const std::string& argument);
00056 void saveArea(const std::string& argument);
00057
00058 private:
00059 CommandTable<EditorArea> m_commands;
00060 mud::AreaPtr m_area;
00061
00062 EditorArea(const EditorArea& rhs);
00063 EditorArea operator=(const EditorArea& rhs);
00064 };