00001
00002
00003
00004
00005
00006
00007
00009
00021 #ifndef __MENU_VIEWS__
00022 #define __MENU_VIEWS__
00023
00024 #include <string>
00025 #include <vector>
00026
00027 #include "utils.h"
00028 #include "defs.h"
00029 #include "video.h"
00030 #include "global.h"
00031
00032
00033
00034 namespace hoa_menu {
00035
00036 namespace private_menu {
00037
00039 enum ITEM_CATEGORY {
00040 ITEM_ALL = 0,
00041 ITEM_FIELD = 1,
00042 ITEM_BATTLE = 2,
00043 ITEM_EQUIPMENT = 3,
00044 ITEM_KEY = 4,
00045 ITEM_CATEGORY_SIZE = 5
00046 };
00047
00049 enum SKILL_CATEGORY {
00050 SKILL_ALL = 0,
00051 SKILL_FIELD = 1,
00052 SKILL_BATTLE = 2,
00053 SKILL_CATEGORY_SIZE = 3
00054 };
00055
00057 enum EQUIP_CATEGORY {
00058 EQUIP_WEAPON = 0,
00059 EQUIP_HEADGEAR = 1,
00060 EQUIP_BODYARMOR = 2,
00061 EQUIP_OFFHAND = 3,
00062 EQUIP_LEGGINGS = 4,
00063 EQUIP_CATEGORY_SIZE = 5
00064 };
00065
00067 enum ITEM_ACTIVE_OPTION {
00068 ITEM_ACTIVE_NONE = 0,
00069 ITEM_ACTIVE_CATEGORY = 1,
00070 ITEM_ACTIVE_LIST = 2,
00071 ITEM_ACTIVE_CHAR = 3,
00072 ITEM_ACTIVE_SIZE = 4
00073 };
00074
00076 enum SKILL_ACTIVE_OPTION {
00077 SKILL_ACTIVE_NONE = 0,
00078 SKILL_ACTIVE_CHAR = 1,
00079 SKILL_ACTIVE_CATEGORY = 2,
00080 SKILL_ACTIVE_LIST = 3,
00081 SKILL_ACTIVE_CHAR_APPLY = 4,
00082 SKILL_ACTIVE_SIZE = 5
00083 };
00084
00086 enum EQUIP_ACTIVE_OPTION {
00087 EQUIP_ACTIVE_NONE = 0,
00088 EQUIP_ACTIVE_CHAR = 1,
00089 EQUIP_ACTIVE_SELECT = 2,
00090 EQUIP_ACTIVE_LIST = 3,
00091 EQUIP_ACTIVE_SIZE = 4
00092 };
00093
00094
00095
00103 class CharacterWindow : public hoa_video::MenuWindow {
00104 private:
00106 uint32 _char_id;
00107
00109 hoa_video::StillImage _portrait;
00110
00111 public:
00112 CharacterWindow();
00113
00114 ~CharacterWindow();
00115
00119 void SetCharacter(hoa_global::GlobalCharacter *character);
00120
00124 void Draw();
00125 };
00126
00127
00128
00136
00137
00138
00139
00140
00141
00143
00144
00146
00147
00149
00150
00151
00152
00153
00155
00156
00157
00158
00159
00160
00162
00163
00165
00166
00168
00169
00171
00172
00174
00175
00176
00177
00178
00184 class InventoryWindow : public hoa_video::MenuWindow {
00185 public:
00186 InventoryWindow();
00187
00188 ~InventoryWindow();
00189
00193 void Activate(bool new_status);
00194
00198 bool IsActive()
00199 { return _active_box; }
00200
00202
00203
00207 void Update();
00208
00213 void Draw();
00214
00215 private:
00217 std::vector<hoa_video::StillImage> _portraits;
00218
00220 hoa_video::StillImage _location_graphic;
00221
00223 uint32 _active_box;
00224
00226 hoa_video::OptionBox _inventory_items;
00227
00229 hoa_video::OptionBox _char_select;
00230
00232 hoa_video::OptionBox _item_categories;
00233
00235 hoa_video::TextBox _description;
00236
00238 std::vector< hoa_global::GlobalObject* > _item_objects;
00239
00243 void _UpdateItemText();
00244
00248 void _InitInventoryItems();
00249
00253 void _InitCharSelect();
00254
00258 void _InitCategory();
00259
00260 };
00261
00262
00263
00270 class StatusWindow : public hoa_video::MenuWindow {
00271 private:
00273 std::vector<hoa_video::StillImage> _full_portraits;
00274
00276 hoa_video::StillImage _location_graphic;
00277
00279 hoa_global::GlobalCharacter *_current_char;
00280
00282 bool _char_select_active;
00283
00285 hoa_video::OptionBox _char_select;
00286
00290 void _InitCharSelect();
00291
00292 public:
00293
00294 StatusWindow();
00295 ~StatusWindow();
00296
00301 void Draw();
00302
00306 void Update();
00307
00312 inline bool IsActive() { return _char_select_active; }
00313
00318 void Activate(bool new_value);
00319
00320 };
00321
00322
00323
00331 class SkillsWindow : public hoa_video::MenuWindow {
00332 public:
00333 SkillsWindow();
00334
00335 ~SkillsWindow()
00336 {}
00337
00341 void Update();
00342
00347 void Draw();
00348
00353 void Activate(bool new_status);
00354
00359 bool IsActive()
00360 { return _active_box; }
00361
00362 private:
00364 uint32 _active_box;
00365
00367 hoa_video::OptionBox _char_select;
00368
00370 hoa_video::OptionBox _skills_categories;
00371
00373 hoa_video::OptionBox _skills_list;
00374
00376 hoa_video::TextBox _description;
00377
00379 int32 _char_skillset;
00380
00384 void _InitSkillsCategories();
00385
00389 void _InitSkillsList();
00390
00394 void _InitCharSelect();
00395
00399 void _UpdateSkillList();
00400
00401 };
00402
00403
00410 class EquipWindow : public hoa_video::MenuWindow {
00411 public:
00412 EquipWindow();
00413 ~EquipWindow();
00414
00419 void Draw();
00420
00424 void Update();
00425
00430 bool IsActive()
00431 { return _active_box; }
00432
00437 void Activate(bool new_status);
00438
00439 private:
00440
00442 hoa_video::OptionBox _char_select;
00443
00445 hoa_video::OptionBox _equip_select;
00446
00448 hoa_video::OptionBox _equip_list;
00449
00451 uint32 _active_box;
00452
00454 std::vector<hoa_video::StillImage> _equip_images;
00455
00459 void _InitCharSelect();
00460
00464 void _InitEquipmentSelect();
00465
00469 void _InitEquipmentList();
00470
00474 void _UpdateEquipList();
00475
00476 };
00477
00478
00479
00480 class FormationWindow : public hoa_video::MenuWindow {
00481 public:
00482 FormationWindow();
00483 ~FormationWindow();
00484 void Update();
00485 void Draw();
00486
00487 private:
00488
00489 };
00490
00491
00492 }
00493
00494 }
00495
00496 #endif