menu_views.h

Go to the documentation of this file.
00001 
00002 //            Copyright (C) 2004-2007 by The Allacrost Project
00003 //                         All Rights Reserved
00004 //
00005 // This code is licensed under the GNU GPL version 2. It is free software
00006 // and you may modify it and/or redistribute it under the terms of this license.
00007 // See http://www.gnu.org/copyleft/gpl.html for details.
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 }; // class CharacterWindow : public hoa_video::MenuWindow
00126 
00127 
00128 
00136 /*class MiniCharacterSelectWindow : public hoa_video::MenuWindow {
00137 public:
00138   MiniCharacterSelectWindow();
00139 
00140   ~MiniCharacterSelectWindow();
00141 
00143   void Update();
00144 
00146   void Draw();
00147 
00149   void Activate(bool new_status);
00150 
00151   bool IsActive()
00152     { return _char_window_active; }
00153 
00155 
00156   void SetSelectedIndex(uint32 selected)
00157     { _selected_item_index = selected; }
00158 
00159   uint32 GetSelectedIndex()
00160     { return _selected_item_index; }
00162 
00163 private:
00165   bool _char_window_active;
00166 
00168   uint32 _current_char_selected;
00169 
00171   uint32 _selected_item_index;
00172 
00174   MiniCharacterSelectWindow(MiniCharacterSelectWindow &other);
00175 }; // class MiniCharacterSelectWindow : public hoa_video::MenuWindow
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   //bool CanCancel();
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 }; // class InventoryWindow : public hoa_video::MenuWindow
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 }; // class StatusWindow : public hoa_video::MenuWindow
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 }; //class SkillsWindow : public hoa_video::MenuWindow
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 }; // class EquipWindow : public hoa_video::MenuWindow
00477 
00478 
00479 // TODO: implement and comment me
00480 class FormationWindow : public hoa_video::MenuWindow {
00481 public:
00482   FormationWindow();
00483   ~FormationWindow();
00484   void Update();
00485   void Draw();
00486 
00487 private:
00488 
00489 }; // class FormationWindow : public hoa_video::MenuWindow
00490 
00491 
00492 } // namespace private_menu
00493 
00494 } // namespace hoa_menu
00495 
00496 #endif

Generated on Fri Jul 6 23:11:19 2007 for Hero of Allacrost by  doxygen 1.5.1