Argentum Online - Cliente
hud.h
1 #ifndef __HUD_H
2 #define __HUD_H
3 #include "../../chat_buffer.h"
4 #include "../../engine/ECS/entity.h"
5 #include "../../engine/SDL/sdl_bitmap_text.h"
6 #include "../../engine/SDL/sdl_text.h"
7 #include "../../engine/SDL/sdl_texture.h"
8 #include "../../engine/SDL/sdl_window.h"
9 #include "../../engine/UI/stat_bar.h"
10 #include "../../inventory_buffer.h"
11 #include "../../player_info_monitor.h"
12 #include "../responsive_scaler.h"
13 #include "SDL2/SDL.h"
14 #include "cast_button.h"
15 #include "chat.h"
16 #include "equipment.h"
17 #include "inventory.h"
18 
19 class StatsComponent;
24 class Hud {
25  private:
26  ResponsiveScaler& scaler;
27  SDLWindow& window;
28  Entity& player;
29  ChatBuffer& chat_buffer;
30  InventoryBuffer& inventory_buffer;
31  PlayerInfoMonitor& player_info_monitor;
32  Chat chat;
33  StatBar mana_bar;
34  StatBar health_bar;
35  StatBar experience_bar;
36  // IconGrid equipped_items;
37  Equipment equipment;
38  Inventory inventory;
39  bool attempting_cast;
40  bool render_help;
41  CastButton cast_button;
42  SDLTexture& side_panel_background;
43  SDLTexture& help_panel;
44  SDLText gold_text;
45  SDLText level_text;
46  SDLText spell_name_text;
47  SDLText attack_points_text;
48  SDLText defense_points_text;
49  SDLText selected_item_text;
50  friend class UiEventHandler;
51 
52  SDL_Rect _get_scaled_dest(SDLText &text,SDL_Rect dest);
53 
54  void _render_gold_amount();
55  void _render_level();
56  void _render_player_info();
57  void _render_help_panel();
58  void _render_selected_item_text();
59 
60  void _update_stats();
61  void _update_inventory();
62  void _update_equipment();
63  void _update_player_info();
64 
65  public:
76  Hud(ResponsiveScaler& scaler, SDLWindow& window, ChatBuffer& chat_buffers,
77  InventoryBuffer& inventory_buffer,
78  PlayerInfoMonitor& player_info_monitor, Entity& player,
79  SocketManager& socket_manager);
80  ~Hud();
81 
87  void handle_event(SDL_Event& e);
88 
93  void update();
94 
99  void render();
100 };
101 
102 #endif
SDLWindow
Objeto ventana de SDL.
Definition: sdl_window.h:17
SocketManager
Definition: socket_manager.h:12
PlayerInfoMonitor
Definition: player_info_monitor.h:9
ResponsiveScaler
Escalador para hacer las areas responsive.
Definition: responsive_scaler.h:10
ChatBuffer
Buffer donde se almacenan los mensajes de chat provenientes del servidor.
Definition: chat_buffer.h:15
Chat
Chat del juego.
Definition: chat.h:12
Equipment
Definition: equipment.h:10
Hud::Hud
Hud(ResponsiveScaler &scaler, SDLWindow &window, ChatBuffer &chat_buffers, InventoryBuffer &inventory_buffer, PlayerInfoMonitor &player_info_monitor, Entity &player, SocketManager &socket_manager)
Constructor de hud.
Definition: hud.cpp:13
Hud::handle_event
void handle_event(SDL_Event &e)
Realiza las modificaciones / acciones necesarias segun el evento.
Definition: hud.cpp:250
StatsComponent
Componente de stats de cualquier entidad.
Definition: stats_component.h:16
CastButton
Boton de "Lanzar" en el juego.
Definition: cast_button.h:10
Hud
HUD del juego (informacion del jugador).
Definition: hud.h:24
SDLTexture
Objeto de textura de SDL.
Definition: sdl_texture.h:13
InventoryBuffer
Buffer en el cual se almacena la informacion del inventario recibida.
Definition: inventory_buffer.h:12
Entity
Entidad (NPCs y personajes)
Definition: entity.h:17
UiEventHandler
Handler de eventos de usuario de la vista principal.
Definition: ui_event_handler.h:17
Hud::render
void render()
Renderiza el HUD.
Definition: hud.cpp:232
Hud::update
void update()
Actualiza el HUD.
Definition: hud.cpp:224
Inventory
Inventario del jugador.
Definition: inventory.h:15
SDLText
Objeto de texto de SDL.
Definition: sdl_text.h:13
StatBar
Barra de stat, usado en HP, MP y Experiencia.
Definition: stat_bar.h:11