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

  1. #include "ConsoleInfo.h"
  2.  
  3. #include "log.h"
  4. #include "Console.h"
  5. #include "ConsoleFrontEnd.h"
  6. #include "ConsoleCCmds.h"
  7. #include "vectormath.h"
  8.  
  9. #ifndef WIN32
  10. #include <string.h>
  11. #endif
  12.  
  13.  
  14. ConsoleInfoVar_t ConsoleInfo::var;
  15. ConsoleInfoCVar_t ConsoleInfo::cvar;
  16. ConsoleInfoCCmd_t ConsoleInfo::ccmd;
  17.  
  18. bool ConsoleInfo::initialized = false;
  19. bool ConsoleInfo::frontEndInitialized = false;
  20.  
  21. bool ConsoleInfo::init(){
  22.     if(initialized){
  23.         error("(in Console::init()): Console is already initialized.\n\n");
  24.         return false;
  25.     }
  26.  
  27.     console=new Console();
  28.     if(console==NULL){
  29.         fatal("(in Console::init()): Couldn't generate new Console object. (Not enough memory?)\n\n");
  30.         return false;
  31.     }
  32.  
  33.     console->startLog("console.log");    // TODO: raus fⁿr release
  34.  
  35.     log("\n");
  36.     log("****************************\n");
  37.     log("*** Initializing Console ***\n");
  38.     log("****************************\n");
  39.     log("\n");
  40.  
  41.  
  42.     
  43.     initialized=true;
  44.  
  45.     return true;
  46. }
  47.  
  48. bool ConsoleInfo::shutdown(){
  49.     if(!initialized){
  50.         error("(in Console::shutdown()): Console is not initialized.\n\n");
  51.         return false;
  52.     }
  53.  
  54.     log("\n");
  55.     log("=============================\n");
  56.     log("=== Shutting down Console ===\n");
  57.     log("=============================\n");
  58.     log("\n");
  59.  
  60.  
  61.     if(console){
  62.         delete console;
  63.         console=NULL;
  64.     }else{
  65.         error("(in Console::shutdown()): console is NULL.\n\n");
  66.         return false;
  67.     }
  68.  
  69.     initialized=false;
  70.  
  71.     return true;
  72. }
  73.  
  74. bool ConsoleInfo::wasInit(){
  75.     return initialized;
  76. }
  77.  
  78.  
  79. bool ConsoleInfo::initFrontEnd(){
  80.     if(!initialized){
  81.         error("(in Console::initFrontEnd()): Console is not initialized.\n\n");
  82.         return false;
  83.     }
  84.  
  85.     if(frontEndInitialized){
  86.         error("(in Console::initFrontEnd()): ConsoleFrontEnd is already initialized.\n\n");
  87.         return false;
  88.     }
  89.  
  90.     log("\n");
  91.     log("************************************\n");
  92.     log("*** Initializing ConsoleFrontEnd ***\n");
  93.     log("************************************\n");
  94.     log("\n");
  95.  
  96.     consoleFrontEnd=new ConsoleFrontEnd(console);
  97.     if(consoleFrontEnd==NULL){
  98.         fatal("(in Console::initFrontEnd()): Couldn't generate new ConsoleFrontEnd object. (Not enough memory?)\n\n");
  99.         return false;
  100.     }
  101.  
  102.  
  103.     frontEndInitialized=true;
  104.  
  105.     return true;
  106. }
  107.  
  108. bool ConsoleInfo::shutdownFrontEnd(){
  109.     if(!frontEndInitialized){
  110.         error("(in Console::shutdownFrontEnd()): ConsoleFrontEnd is not initialized.\n\n");
  111.         return false;
  112.     }
  113.  
  114.     log("\n");
  115.     log("=====================================\n");
  116.     log("=== Shutting down ConsoleFrontEnd ===\n");
  117.     log("=====================================\n");
  118.     log("\n");
  119.  
  120.     if(consoleFrontEnd){
  121.         delete consoleFrontEnd;
  122.         consoleFrontEnd=NULL;
  123.     }else{
  124.         error("(in Console::shutdownFrontEnd()): consoleFrontEnd is NULL.\n\n");
  125.         return false;
  126.  
  127.     }
  128.  
  129.     frontEndInitialized=false;
  130.  
  131.     return true;
  132. }
  133.  
  134. bool ConsoleInfo::wasFrontEndInit(){
  135.     return frontEndInitialized;
  136. }
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143. bool ConsoleInfo::registerCVarsAndCCmds(){
  144.     var.fontColor=new float[4];
  145.     vectorInit4d(0.0f, 0.5f, 1.0f, 1.0f, var.fontColor);
  146.     cvar.console_fontColor = new CVarRealVector("console.fontColor", &var.fontColor, 4, true);
  147.     cvar.console_fontColor->flags |= CON_FLAG_SYSTEM;
  148.     cvar.console_fontColor->setValRange(0.0f, 1.0f);
  149.     console->registerCVar(cvar.console_fontColor);
  150. /*
  151.     var.backgroundColor=new float[4];
  152.     vectorInit4d(0.0f, 0.5f, 1.0f, 1.0f, var.backgroundColor);
  153.     cvar.console_backgroundColor=new CVarRealVector("console.backgroundColor", &var.backgroundColor, 4, true);
  154.     cvar.console_backgroundColor->setValRange(0.0f, 1.0f);
  155.     console->registerCVar(cvar.console_backgroundColor);
  156.  
  157.     var.backgroundTexture=new char[CON_MAX_STRING_LENGTH];
  158.     strcpy(var.backgroundTexture, "gui/console/console_background.bmp");
  159.     cvar.console_backgroundTexture=new CVarString("console.backgroundTexture", &var.backgroundTexture, false);
  160.     cvar.console_backgroundTexture->changeStr="(changes will take effect after a 'console.restart')";
  161.     console->registerCVar(cvar.console_backgroundTexture);
  162. */
  163.  
  164.     console->registerCCmd(new CCmdRegister());    // THINKABOUTME: schon im Konstruktor reinhauen?
  165.     console->registerCCmd(new CCmdUnregister());
  166.     console->registerCCmd(new CCmdSet());
  167.     console->registerCCmd(new CCmdVal());
  168.     console->registerCCmd(new CCmdHelp());
  169.     console->registerCCmd(new CCmdInfo());
  170.     console->registerCCmd(new CCmdUsage());
  171.     console->registerCCmd(new CCmdToggle());
  172.     console->registerCCmd(new CCmdExecCVar());
  173.     console->registerCCmd(new CCmdExecFile());
  174.     console->registerCCmd(new CCmdExec());
  175.     console->registerCCmd(new CCmdCVarList());
  176.     console->registerCCmd(new CCmdCCmdList());
  177.     console->registerCCmd(new CCmdEcho());
  178.     console->registerCCmd(new CCmdAlias());
  179.     console->registerCCmd(new CCmdDeleteAlias());
  180.     console->registerCCmd(new CCmdAliasList());
  181.  
  182.     ccmd.console_toggle=new CCmdConsoleToggle();
  183.     console->registerCCmd(ccmd.console_toggle);
  184.  
  185.     ccmd.console_clear=new CCmdConsoleClear();
  186.     console->registerCCmd(ccmd.console_clear);
  187.  
  188.     ccmd.console_startLog=new CCmdConsoleStartLog();
  189.     console->registerCCmd(ccmd.console_startLog);
  190.  
  191.     ccmd.console_endLog=new CCmdConsoleEndLog();
  192.     console->registerCCmd(ccmd.console_endLog);
  193.  
  194.     ccmd.console_restart=new CCmdConsoleRestart();
  195.     console->registerCCmd(ccmd.console_restart);
  196.  
  197.     return true;
  198. }
  199.  
  200. bool ConsoleInfo::unregisterCVarsAndCCmds(){
  201.     console->unregisterCVar(cvar.console_fontColor);
  202.     delete cvar.console_fontColor;
  203.     delete[] var.fontColor;
  204. /*
  205.     console->unregisterCVar(cvar.console_backgroundColor);
  206.     delete[] var.backgroundColor;
  207.  
  208.     console->unregisterCVar(cvar.console_backgroundTexture);
  209.     delete[] var.backgroundTexture;
  210. */
  211.  
  212.     console->unregisterCCmd(ccmd.console_toggle);
  213.     delete ccmd.console_toggle;
  214.  
  215.     console->unregisterCCmd(ccmd.console_clear);
  216.     delete ccmd.console_clear;
  217.  
  218.     console->unregisterCCmd(ccmd.console_startLog);
  219.     delete ccmd.console_startLog;
  220.  
  221.     console->unregisterCCmd(ccmd.console_endLog);
  222.     delete ccmd.console_endLog;
  223.  
  224.     console->unregisterCCmd(ccmd.console_restart);
  225.     delete ccmd.console_restart;
  226.  
  227.     return true;
  228. }
  229.