home *** CD-ROM | disk | FTP | other *** search
/ Enter 2005 March / ENTER.ISO / files / fwp-0.0.6-win32-installer.exe / Gui.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2004-12-06  |  6.3 KB  |  255 lines

  1. #include "Gui.h"
  2.  
  3. #include "log.h"
  4. #include "FontHandler.h"
  5.  
  6.  
  7. ErrorMenu* Gui::errorMenu = NULL;
  8. MainMenu* Gui::mainMenu = NULL;
  9. OptionsMenu* Gui::optionsMenu = NULL;
  10. InGameMenu* Gui::inGameMenu = NULL;
  11. CreditsMenu* Gui::creditsMenu = NULL;
  12. LoadingMenu* Gui::loadingMenu = NULL;
  13. StartServerMenu* Gui::startServerMenu = NULL;
  14. ConnectToServerMenu* Gui::connectToServerMenu = NULL;
  15.  
  16. Hud* Gui::hud = NULL;
  17.  
  18.  
  19. bool Gui::initialized = false;
  20. bool Gui::hudInitialized = false;
  21.  
  22. bool Gui::init(){
  23.     if(initialized){
  24.         error("(in Gui::init()): Gui is already initialized.\n\n");
  25.         return false;
  26.     }
  27.  
  28.     log("\n");
  29.     log("*********************************************\n");
  30.     log("*** Initializing Graphical User Interface ***\n");
  31.     log("*********************************************\n");
  32.     log("\n");
  33.  
  34.     info.var.menu_tinyFont = FontHandler::getFont("gui/fonts/courier_tiny_bold.font");
  35.     info.var.menu_smallFont = FontHandler::getFont("gui/fonts/courier_small_bold.font");
  36.     info.var.menu_bigFont = FontHandler::getFont("gui/fonts/scifi_big.font");
  37.  
  38.     if(info.var.menu_smallFont==NULL || info.var.menu_bigFont==NULL || info.var.menu_tinyFont==NULL){
  39.         error("(Gui::init()): Couldn't load menu fonts.\n\n");
  40.         return false;
  41.     }
  42.  
  43. //    log("Loading sounds...\n");
  44.     Menu::pressButtonSound = Sound::loadWAV("gui/menu/menu_press_button.wav");
  45.     Menu::toggleSound = Sound::loadWAV("gui/menu/menu_toggle.wav");
  46.     Menu::errorSound = Sound::loadWAV("gui/menu/menu_error.wav");
  47.  
  48.     Gui::errorMenu = new ErrorMenu();
  49.     log("ErrorMenu created.\n");
  50.  
  51.     // LOADING MENU
  52.     Gui::loadingMenu=new LoadingMenu();
  53.     log("LoadingMenu created.\n");
  54.  
  55.     // OPTIONS MENU
  56.     Gui::optionsMenu=new OptionsMenu();
  57.     log("OptionsMenu created.\n");
  58.  
  59.     // MAIN MENU
  60.     Gui::mainMenu=new MainMenu();
  61.     log("MainMenu created.\n");
  62.  
  63.     // IN GAME MENU
  64.     Gui::inGameMenu=new InGameMenu();
  65.     log("InGameMenu created.\n");
  66.  
  67.     // CREDITS MENU
  68.     Gui::creditsMenu=new CreditsMenu();
  69.     log("CreditsMenu created.\n");
  70.  
  71.     // START SERVER MENU
  72.     Gui::startServerMenu = new StartServerMenu();
  73.     log("StartServerMenu created.\n");
  74.  
  75.     // CONNECT TO SERVER MENU
  76.     Gui::connectToServerMenu = new ConnectToServerMenu();
  77.     log("ConnectToServerMenu created.\n");
  78.  
  79.     initialized=true;
  80.  
  81.     return true;
  82. }
  83.  
  84. bool Gui::shutdown(){
  85.     if(!initialized){
  86.         error("(in Gui::shutdown()): Gui is not initialized.\n\n");
  87.         return false;
  88.     }
  89.  
  90.     log("\n");
  91.     log("==============================================\n");
  92.     log("=== Shutting down Graphical User Interface ===\n");
  93.     log("==============================================\n");
  94.     log("\n");
  95.  
  96.     if(Gui::mainMenu){
  97.         delete Gui::mainMenu;
  98.         Gui::mainMenu=NULL;
  99.         log("MainMenu destroyed.\n");
  100.     }else{
  101.         error("(in Gui::shutdown()): MainMenu not initialized (apperently...).\n\n");
  102.         return false;
  103.     }
  104.     if(Gui::optionsMenu){
  105.         delete Gui::optionsMenu;
  106.         Gui::optionsMenu=NULL;
  107.         log("OptionsMenu destroyed.\n");
  108.     }else{
  109.         error("(in Gui::shutdown()): OptionsMenu not initialized (apperently...).\n\n");
  110.         return false;
  111.  
  112.     }
  113.     if(Gui::inGameMenu){
  114.         delete Gui::inGameMenu;
  115.         Gui::inGameMenu=NULL;
  116.         log("InGameMenu destroyed.\n");
  117.     }else{
  118.         error("(in Gui::shutdown()): InGameMenu not initialized (apperently...).\n\n");
  119.         return false;
  120.     }
  121.     if(Gui::loadingMenu){
  122.         delete Gui::loadingMenu;
  123.         Gui::loadingMenu=NULL;
  124.         log("LoadingGameMenu destroyed.\n");
  125.     }else{
  126.         error("(in Gui::shutdown()): LoadingMenu not initialized (apperently...).\n\n");
  127.         return false;
  128.     }
  129.     if(Gui::creditsMenu){
  130.         delete Gui::creditsMenu;
  131.         Gui::creditsMenu=NULL;
  132.         log("CreditsMenu destroyed.\n");
  133.     }else{
  134.         error("(in Gui::shutdown()): CreditsMenu not initialized (apperently...).\n\n");
  135.         return false;
  136.     }
  137.     if(Gui::errorMenu){
  138.         delete Gui::errorMenu;
  139.         Gui::errorMenu=NULL;
  140.         log("ErrorMenu destroyed.\n");
  141.     }else{
  142.         error("(in Gui::shutdown()): ErrorMenu not initialized (apperently...).\n\n");
  143.         return false;
  144.     }
  145.     if(Gui::startServerMenu){
  146.         delete Gui::startServerMenu;
  147.         Gui::startServerMenu=NULL;
  148.         log("StartServerMenu destroyed.\n");
  149.     }else{
  150.         error("(in Gui::shutdown()): StartServerMenu not initialized (apperently...).\n\n");
  151.         return false;
  152.     }
  153.     if(Gui::connectToServerMenu){
  154.         delete Gui::connectToServerMenu;
  155.         Gui::connectToServerMenu=NULL;
  156.         log("ConnectToServerMenu destroyed.\n");
  157.     }else{
  158.         error("(in Gui::shutdown()): ConnectToServerMenu not initialized (apperently...).\n\n");
  159.         return false;
  160.     }
  161.  
  162.     if(info.var.menu_tinyFont!=NULL)
  163.         FontHandler::releaseFont(info.var.menu_tinyFont);
  164.     if(info.var.menu_smallFont!=NULL)
  165.         FontHandler::releaseFont(info.var.menu_smallFont);
  166.     if(info.var.menu_bigFont!=NULL)
  167.         FontHandler::releaseFont(info.var.menu_bigFont);
  168.  
  169.     if( Menu::pressButtonSound != NULL ){
  170.         Mix_FreeChunk(Menu::pressButtonSound);
  171.         Menu::pressButtonSound = NULL;
  172.     }
  173.     if( Menu::toggleSound != NULL ){
  174.         Mix_FreeChunk(Menu::toggleSound);
  175.         Menu::toggleSound = NULL;
  176.     }
  177.     if( Menu::errorSound != NULL ){
  178.         Mix_FreeChunk(Menu::errorSound);
  179.         Menu::errorSound = NULL;
  180.     }
  181.         
  182.     
  183.     initialized=false;
  184.  
  185.     return true;
  186. }
  187.  
  188. bool Gui::wasInit(){
  189.     return initialized;
  190. }
  191.  
  192.  
  193.  
  194. bool Gui::initHud(){
  195.     if(hudInitialized){
  196.         error("(in Gui::initHud()): Hud is already initialized.\n\n");
  197.         return false;
  198.     }
  199.     if(!initialized){
  200.         error("(in Gui::initHud()): Gui is not initialized.\n\n");
  201.         return false;
  202.     }
  203.  
  204.     if(Gui::loadingMenu)
  205.         Gui::loadingMenu->updateStatusBar("initializing hud");
  206.     log("\n");
  207.     log("************************\n");
  208.     log("*** Initializing HUD ***\n");
  209.     log("************************\n");
  210.     log("\n");
  211.  
  212.     Gui::hud=new Hud();
  213.  
  214.     hudInitialized=true;
  215.  
  216.     return true;
  217. }
  218.  
  219.  
  220. bool Gui::shutdownHud(){
  221.     if(!hudInitialized){
  222.         error("(in Gui::shutdownHud()): Hud is not initialized.\n\n");
  223.         return false;
  224.     }
  225.     log("\n");
  226.     log("=========================\n");
  227.     log("=== Shutting down HUD ===\n");
  228.     log("=========================\n");
  229.     log("\n");
  230.  
  231.     if(Gui::hud){
  232.         delete Gui::hud;
  233.         Gui::hud=NULL;
  234.     }else{
  235.         error("(in Gui::shutdownHud()): hud not initialized (apperently...).\n\n");
  236.         return false;
  237.     }
  238.  
  239.     hudInitialized=false;
  240.  
  241.     return false;
  242. }
  243.  
  244. bool Gui::wasHudInit(){
  245.     return hudInitialized;
  246. }
  247.  
  248. bool Gui::registerCVarsAndCCmds(){
  249.     return info.registerCVarsAndCCmds();
  250. }
  251.  
  252. bool Gui::unregisterCVarsAndCCmds(){
  253.     return info.unregisterCVarsAndCCmds();
  254. }
  255.