00001 //---------------------------------------------------------------------------- 00002 /** @file VCCommands.hpp 00003 */ 00004 //---------------------------------------------------------------------------- 00005 00006 #ifndef VCCOMMANDS_HPP 00007 #define VCCOMMANDS_HPP 00008 00009 #include "Game.hpp" 00010 #include "HexBoard.hpp" 00011 #include "HexHtpEngine.hpp" 00012 #include "HexEnvironment.hpp" 00013 00014 _BEGIN_BENZENE_NAMESPACE_ 00015 00016 //---------------------------------------------------------------------------- 00017 00018 /** Commands for building/inspecting virtual connections. */ 00019 class VCCommands 00020 { 00021 public: 00022 VCCommands(Game& game, HexEnvironment& env); 00023 00024 ~VCCommands(); 00025 00026 void Register(GtpEngine& engine); 00027 00028 private: 00029 Game& m_game; 00030 00031 HexEnvironment& m_env; 00032 00033 VC::Type VCTypeArg(const HtpCommand& cmd, std::size_t number) const; 00034 void Register(GtpEngine& engine, const std::string& command, 00035 GtpCallback<VCCommands>::Method method); 00036 00037 void CmdGetVCsBetween(HtpCommand& cmd); 00038 void CmdGetCellsConnectedTo(HtpCommand& cmd); 00039 void CmdGetMustPlay(HtpCommand& cmd); 00040 void CmdVCIntersection(HtpCommand& cmd); 00041 void CmdVCUnion(HtpCommand& cmd); 00042 void CmdBuildStatic(HtpCommand& cmd); 00043 void CmdBuildIncremental(HtpCommand& cmd); 00044 void CmdUndoIncremental(HtpCommand& cmd); 00045 void CmdSetInfo(HtpCommand& cmd); 00046 void CmdBuilderStats(HtpCommand& cmd); 00047 }; 00048 00049 //---------------------------------------------------------------------------- 00050 00051 _END_BENZENE_NAMESPACE_ 00052 00053 #endif // VCCOMMANDS_HPP