00001 #ifndef GUI_INTERFACE_HH_
00002 # define GUI_INTERFACE_HH_
00003
00004 # include <vector>
00005 # include <map>
00006
00007 # include "gui_fwd.hh"
00008 # include "environment_fwd.hh"
00009
00010 namespace gui
00011 {
00012 class GraphicInterface
00013 {
00014 public:
00015 typedef void (*CallBackFunction)();
00016 enum CallBackFunctionID
00017 {
00018 cbf_set_selected_server = 0,
00019 cbf_get_server_list,
00020 cbf_get_username,
00021 cbf_get_password,
00022 cbf_set_username,
00023 cbf_set_password,
00024 cbf_get_selected_server,
00025 cbf_get_characters,
00026 cbf_set_character,
00027 cbf_get_character,
00028 cbf_quit,
00029 cbf_say,
00030 cbf_get_player_id,
00031 cbf_get_current_activity,
00032 cbf_get_activity_list,
00033 cbf_start_activity,
00034 cbf_assign_status,
00035 cbf_assign_skill,
00036 cbf_enable_support_skill,
00037 cbf_enable_attack_skill,
00038 cbf_receive_hunt_courses,
00039 cbf_set_desired_hunt_course,
00040 cbf_get_environment_variable,
00041 cbf_set_environment_variable,
00042 cbf_get_environment_variable_list,
00043 cbf_clear_personal_shop,
00044 cbf_add_personal_shop_item,
00045 cbf_set_personal_shop_message
00046 };
00047
00048 public:
00049 GraphicInterface();
00050 ~GraphicInterface();
00051
00052
00053 static GraphicInterface &get_instance();
00054 void start();
00055 void select_character();
00056
00057
00058 void chat(const std::string &name, const std::string &text) const;
00059 void character_enter(int id, const std::string &name,
00060 int hp, int class_id) const;
00061 void character_exit(int id) const;
00062 void character_position(int id, int x, int y, int z) const;
00063 void character_health(int id, int hp) const;
00064
00065 void value_name(const std::string &name) const;
00066 void value_class(int value) const;
00067 void value_level(int value) const;
00068 void value_str(int value) const;
00069 void value_sta(int value) const;
00070 void value_dex(int value) const;
00071 void value_int(int value) const;
00072 void value_fame(int value) const;
00073 void value_free_status_points(int value) const;
00074 void value_free_skill_points(int value) const;
00075
00076 void value_money(int value) const;
00077 void value_bank(int value) const;
00078 void value_health(const std::string &value) const;
00079 void value_mana(const std::string &value) const;
00080 void value_weight(const std::string &value) const;
00081 void value_experience(double value) const;
00082 void task_name(const std::string &name) const;
00083
00084 void add_item(int id, const std::string &name,
00085 int count, const std::string &desc) const;
00086 void remove_item(int id) const;
00087 void add_skill(int skill_id, const std::string &name, int level = 0) const;
00088 void set_skill_level(int skill_id, int level) const;
00089
00090 void personal_shop_info(const std::string &name, const std::string &message) const;
00091 void personal_shop_item_info(int id, int price, int status, int count) const;
00092 void refresh_personal_shop() const;
00093
00094 void register_hunt_course(int map_id, const std::string &hunt_course_name) const;
00095 void write_log(std::string log) const;
00096
00097 protected:
00098 std::vector<CallBackFunction> _callback_functions;
00099 };
00100 }
00101
00102 #endif