Back to Evolution Project page
00001 00002 #include "Application.h" 00003 #include "System.h" 00004 #include "configs.h" 00005 00006 #include "Screen.h" 00007 #include "ScreenMenu.h" 00008 #include "ScreenGame.h" 00009 #include "ScreenLevelEditor.h" 00010 #include "ScreenLoadLevel.h" 00011 00012 #include <stdio.h> 00013 00014 #include <ClanLib/core.h> 00015 00016 int TApplication::Run() { 00017 //*This recource will be shared with all screens. 00018 CL_ResourceManager *resources; 00019 TLevel *gamelevel; 00020 00021 TScreenMenu* screen_menu; 00022 TScreenGame* screen_game; 00023 TScreenLevelEditor* screen_level_editor; 00024 TScreenLoadLevel* screen_load_level; 00025 int next_screen=SCREEN_DEFAULT; 00026 00027 //* Init system... 00028 TSystem::init(); 00029 00030 //* Create Resources... 00031 try { 00032 resources = CL_ResourceManager::create("evolution.dat", true); 00033 } 00034 catch (CL_Error err) { 00035 resources = CL_ResourceManager::create("evolution.scr", false); 00036 } 00037 00038 gamelevel = new TLevel(); 00039 gamelevel->Init(5, 5); //Initialize level with a arbitrary value... 00040 gamelevel->set_window(4, 0, 26, 26); 00041 00044 do { 00045 switch(next_screen) { 00046 case SCREEN_MENU: 00047 screen_menu = new TScreenMenu(resources, gamelevel); 00048 next_screen = screen_menu->Show(); 00049 delete screen_menu; 00050 break; 00051 case SCREEN_GAME: 00052 screen_game = new TScreenGame(resources, gamelevel); 00053 next_screen = screen_game->Show(); 00054 delete screen_game; 00055 break; 00056 case SCREEN_EDITOR: 00057 screen_level_editor = new TScreenLevelEditor(resources, gamelevel); 00058 next_screen = screen_level_editor->Show(); 00059 delete screen_level_editor; 00060 break; 00061 case SCREEN_LOAD: 00062 screen_load_level = new TScreenLoadLevel(resources, gamelevel); 00063 next_screen = screen_load_level->Show(); 00064 delete screen_load_level; 00065 break; 00066 default: 00067 break; 00068 } 00069 printf("next screen: %d \n", next_screen); 00070 resources->unload_all_resources(); 00071 } while (next_screen!=SCREEN_QUIT); 00072 00073 printf ("Rodei! ;-) \n\n\n\n\n\n"); 00074 00075 //* De allocate memory 00076 // delete resources; 00077 00078 //*Finish the program... 00079 TSystem::finish(); 00080 return 0; 00081 } 00082 00083 00084 00085 00086 00087 00088 00089 00090 00091 00092 00093 00094 00095 00096 00097 00098 00099 00100 00101 00102 00103 00104 00105 00106 00107 00108 00109 00110 00111