home *** CD-ROM | disk | FTP | other *** search
- #ifndef __Hud_h__
- #define __Hud_h__
-
- #include "texfont.h"
- #include "SDL.h"
- #include "Game.h"
-
- #define HUD_MESSAGE_BOX_MAX_MESSAGES 10
- #define HUD_MESSAGE_BOX_MESSAGE_LIFETIME 5000
-
- class HudMessagebox;
- class HudCenterOfScreenMessages;
- class HudChatPrompt;
- class HudCrosshair;
- class HudDebugInfo;
- class HudStatusbar;
- class HudScoreboard;
- class HudTakeDamageIndicator;
- //class HudWeaponInfo;
-
- class Hud{
- public:
- texFont_t* font;
- HudMessagebox* messagebox;
- HudCenterOfScreenMessages* centerOfScreenMessages;
- HudChatPrompt* chatPrompt;
- HudCrosshair* crosshair;
- HudStatusbar* statusbar;
- HudDebugInfo* debugInfo;
- HudScoreboard* scoreboard;
- HudTakeDamageIndicator* takeDamageIndicator;
-
- Hud();
- ~Hud();
-
- void draw();
- void drawFPS();
- void drawPing();
- void drawTarget();
- void drawHelp();
- // void drawCenterOfScreenMessages();
- void drawTakeDamageIndicator();
- void renderTeamMarkers();
-
- Shader* teamMarkerShader;
- Texture* hudReferenceTexture;
- };
-
- class Message{
- public:
- char* string;
- unsigned long spawntime;
-
- Message(const char* string);
- ~Message();
- };
-
- class HudMessagebox{
- public:
- // bool visible;
- Mix_Chunk* chatMessageSound;
-
- HudMessagebox();
- ~HudMessagebox();
-
-
- void addMessage(Message* message);
- void addChatMessage(Client* fromClient, chatMessagePacket_t* cm);
- void deleteMessage(Message* message);
- void draw();
-
- protected:
- texFont_t* font;
- Message* messages[HUD_MESSAGE_BOX_MAX_MESSAGES];
- };
-
- class HudCenterOfScreenMessages{
- public:
- char* message;
- unsigned long lastMessageMillis;
-
- HudCenterOfScreenMessages();
- ~HudCenterOfScreenMessages();
-
- void setMessage(const char* formatString, ...);
-
- void draw();
- };
-
- class HudChatPrompt{
- public:
- bool isActive;
- int mode;
-
- HudChatPrompt();
- ~HudChatPrompt();
-
- void activate(int mode);
- void deactivate();
-
- void receiveKey(SDL_keysym* keysym);
-
- void draw();
-
- protected:
- texFont_t* font;
- char* promptStr;
-
- char* inputStr;
- int inputStrIndex;
-
- };
-
- class HudCrosshair{
- public:
-
- HudCrosshair();
- ~HudCrosshair();
-
- void draw();
- protected:
- Texture* crosshairTextures[8];
- };
-
- class HudStatusbar{
- public:
- int min[2];
- int max[2];
-
- HudStatusbar();
- ~HudStatusbar();
-
- void draw();
- protected:
- Texture* background;
- Texture* energyIcon;
- Texture* armorIcon;
- Texture* weaponThumbnails[GAME_NUM_WEAPONS];
-
- void drawBackground();
- };
-
- class HudScoreboard{
- public:
-
- HudScoreboard();
- ~HudScoreboard();
-
- void draw();
- void drawMiniscoreboard();
-
- protected:
- texFont_t* font;
- void drawBackground();
- void drawDeathmatchScoreboard();
- void drawTeamDeathmatchScoreboard();
- };
-
-
- class HudTakeDamageIndicator{
- public:
-
- HudTakeDamageIndicator();
- ~HudTakeDamageIndicator();
-
- void draw();
- protected:
- Texture* texture;
- };
-
-
-
- class HudDebugInfo{
- public:
- // bool visible;
- int min[2];
- int max[2];
-
- HudDebugInfo();
- ~HudDebugInfo();
-
- void draw();
- protected:
- texFont_t* font;
- void drawBackground();
- };
-
-
-
- #endif /* __Hud_h__ */
-