#pragma once #include #include "HotKeyDefine.h" class KeyCommand { public: KeyCommand() {} virtual ~KeyCommand() {} virtual void OnAction(HOT_KEY_FUNCTION_INDEX hot_key_function, KEY_BIND_PAIR key_bind_pair) = 0; }; ////////////////////////////////////////////////////////////////////////// class DialogToggleCommand : public KeyCommand, public util::Singleton { typedef void (*ActionFunction)(); typedef STLX_MAP ActionFunctionMap; public: DialogToggleCommand() {} virtual ~DialogToggleCommand() {} virtual void OnAction(HOT_KEY_FUNCTION_INDEX hot_key_function, KEY_BIND_PAIR key_bind_pair); void RegisterActionFunction(HOT_KEY_FUNCTION_INDEX hot_key_function, ActionFunction action_function_ptr); private: ActionFunctionMap& action_function_container() { return action_function_container_; } private: ActionFunctionMap action_function_container_; }; class SystemMenuNCancelCommand : public KeyCommand, public util::Singleton { public: SystemMenuNCancelCommand() {} virtual ~SystemMenuNCancelCommand() {} virtual void OnAction(HOT_KEY_FUNCTION_INDEX hot_key_function, KEY_BIND_PAIR key_bind_pair); }; class QuickSlotModeCommand : public KeyCommand, public util::Singleton { public: QuickSlotModeCommand() {} virtual ~QuickSlotModeCommand() {} virtual void OnAction(HOT_KEY_FUNCTION_INDEX hot_key_function, KEY_BIND_PAIR key_bind_pair); }; class QuickSlotUseCommand : public KeyCommand, public util::Singleton { public: QuickSlotUseCommand() {} virtual ~QuickSlotUseCommand() {} virtual void OnAction(HOT_KEY_FUNCTION_INDEX hot_key_function, KEY_BIND_PAIR key_bind_pair); }; class SummonControlCommand : public KeyCommand, public util::Singleton { public: SummonControlCommand() {} virtual ~SummonControlCommand() {} virtual void OnAction(HOT_KEY_FUNCTION_INDEX hot_key_function, KEY_BIND_PAIR key_bind_pair); }; class TargetEnemyCommand : public KeyCommand, public util::Singleton { public: TargetEnemyCommand() {} virtual ~TargetEnemyCommand() {} virtual void OnAction(HOT_KEY_FUNCTION_INDEX hot_key_function, KEY_BIND_PAIR key_bind_pair); }; class TargetPartyMemberCommand : public KeyCommand, public util::Singleton { public: TargetPartyMemberCommand() {} virtual ~TargetPartyMemberCommand() {} virtual void OnAction(HOT_KEY_FUNCTION_INDEX hot_key_function, KEY_BIND_PAIR key_bind_pair); }; class ScreenShotCommand : public KeyCommand, public util::Singleton { public: ScreenShotCommand() {} virtual ~ScreenShotCommand() {} virtual void OnAction(HOT_KEY_FUNCTION_INDEX hot_key_function, KEY_BIND_PAIR key_bind_pair); }; class ChatOpenNSendCommand : public KeyCommand, public util::Singleton { public: ChatOpenNSendCommand() {} virtual ~ChatOpenNSendCommand() {} virtual void OnAction(HOT_KEY_FUNCTION_INDEX hot_key_function, KEY_BIND_PAIR key_bind_pair); }; class CameraControlCommand : public KeyCommand, public util::Singleton { public: CameraControlCommand() {} virtual ~CameraControlCommand() {} virtual void OnAction(HOT_KEY_FUNCTION_INDEX hot_key_function, KEY_BIND_PAIR key_bind_pair); }; class HeroAutoRunCommand : public KeyCommand, public util::Singleton { public: HeroAutoRunCommand() {} virtual ~HeroAutoRunCommand() {} virtual void OnAction(HOT_KEY_FUNCTION_INDEX hot_key_function, KEY_BIND_PAIR key_bind_pair); }; class HeroMoveCommand : public KeyCommand, public util::Singleton { public: HeroMoveCommand() {} virtual ~HeroMoveCommand() {} virtual void OnAction(HOT_KEY_FUNCTION_INDEX hot_key_function, KEY_BIND_PAIR key_bind_pair); }; class HeroJumpCommand : public KeyCommand, public util::Singleton { public: HeroJumpCommand() {} virtual ~HeroJumpCommand() {} virtual void OnAction(HOT_KEY_FUNCTION_INDEX hot_key_function, KEY_BIND_PAIR key_bind_pair); }; class HeroActionSkillCommand : public KeyCommand, public util::Singleton { public: HeroActionSkillCommand() {} virtual ~HeroActionSkillCommand() {} virtual void OnAction(HOT_KEY_FUNCTION_INDEX hot_key_function, KEY_BIND_PAIR key_bind_pair); }; class HeroSpreadWingCommand : public KeyCommand, public util::Singleton { public: HeroSpreadWingCommand() {} virtual ~HeroSpreadWingCommand() {} virtual void OnAction(HOT_KEY_FUNCTION_INDEX hot_key_function, KEY_BIND_PAIR key_bind_pair); };