Main Page | Namespace List | Class Hierarchy | Compound List | File List | Compound Members | File Members

core.cpp

Go to the documentation of this file.
00001 #include "core.h"
00002 
00003 #include "common_vars_gui.h"
00004 #include "common_gui_funcs.h"
00005 #include "common_vars_game.h"
00006 
00007 void GameCore::act_on_state() {
00008   switch(game_state) {
00009     case GSTATE_PREGAME:
00010       _make_main_menu(NULL);
00011       break;
00012     case GSTATE_GAMEOK:
00013       game_state = GSTATE_INGAME;
00014       _clear_total_menu();
00015       _register_glutfuncs_game();
00016       break;
00017     case GSTATE_GAMEOVER:
00018       game_state = GSTATE_PREGAME;
00019       _register_glutfuncs_menuonly();
00020       _make_main_menu(NULL);
00021       break;
00022     default:
00023       fprintf(stderr, "unknown state %i when act_on_state() called\n", 
00024           game_state);
00025       break;
00026   }
00027 }
00028 
00029 GameCore::GameCore(ssgRoot* r) {
00030   sceneref = r;
00031   user = NULL;
00032   game_state = GSTATE_PREGAME;
00033   core_is_single = true;
00034   if (loc_core != NULL) {
00035     fprintf(stderr, "WTF? already a core present at %p, probably setup as local...\n",
00036         loc_core);
00037   }
00038   else {
00039     loc_core = this;
00040   }
00041   act_on_state();
00042 }
00043 
00044 
00045 void GameCore::regenerate() {
00046 }
00047 
00048 bool GameCore::saveGame(char* fname, bool over) {
00049   FILE* f;
00050   f = fopen(fname, "w");
00051   if (user->save(f)) {
00052     fclose(f);
00053     return false;
00054   }
00055   else {
00056     fclose(f);
00057   }
00058   return true;
00059 }
00060 
00061 bool GameCore::loadGame(char* fname) {
00062   if (user != NULL)
00063     delete user;
00064   user = new userData(fname);
00065   regenerate();
00066   dirty_game = false;
00067   loc_player = user;
00068   game_state = GSTATE_GAMEOK;
00069   return true;
00070 }
00071 
00072 
00073 GameCore::~GameCore() {
00074   if (core_is_single) {
00075     fprintf(stderr, "clearing total menu\n");
00076     _clear_total_menu();
00077     if (overlay_menu != NULL)
00078       delete overlay_menu;
00079     fprintf(stderr, "deleted overlay\n");
00080     overlay_menu = NULL;
00081   }
00082 }

Generated on Sat Jul 12 04:29:20 2003 for glPirates by doxygen 1.3.2