714d9bfd99174866cc74794cb862be771581ced5.svn-base (3536B)
1 #include "Utils.h" 2 #include "Console.h" 3 #include "MiscDraw.h" 4 #include "DiagnosticDraw.h" 5 #include "ActorCollision.h" 6 #include "Input.h" 7 #include "Actor.h" 8 #include "sound.h" 9 10 #include "Dialogue.h" 11 12 #include "Loading.h" 13 #include "Level.h" 14 15 #include "BinaryTree.h" //remove later 16 17 int main(int argc, char *argv[]) 18 { 19 gTime = new Time(); 20 21 // BinaryTree TestTree = BinaryTree(new Node(10, NULL)); 22 // TestTree.Insert(5, NULL); 23 // TestTree.Insert(15, NULL); 24 // TestTree.Insert(7, NULL); 25 // TestTree.Insert(2, NULL); 26 // TestTree.Insert(20, NULL); 27 // TestTree.Insert(17, NULL); 28 // TestTree.Insert(35, NULL); 29 // TestTree.Insert(31, NULL); 30 // int s = TestTree.Size(); 31 32 // Node** contents = TestTree.Dump(); 33 34 //Node* tar = TestTree.Search(5);//->Delete(); 35 36 //char buff1[256]; 37 //memset(buff1, 0, sizeof(buff1)); 38 //ReadBTree(&TestTree, buff1); 39 //tar->Delete(); 40 //char buff2[256]; 41 //memset(buff2, 0, sizeof(buff2)); 42 //ReadBTree(&TestTree, buff2); 43 44 // Node* Tree = new Node(); 45 // Tree->InsertNode() 46 47 if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_EVENTS | SDL_INIT_AUDIO) != 0) 48 { 49 gCons->ConsPrintf("SDL_Init Error: %s\n", SDL_GetError()); 50 SDL_Quit(); 51 return 1; 52 } 53 54 Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 2048); 55 // Mix_Init(MIX_INIT_MP3); 56 57 if (TTF_Init() != 0) 58 { 59 gCons->ConsPrintf("TTF_Init Error: %s\n", TTF_GetError()); 60 TTF_Quit(); 61 SDL_Quit(); 62 return 1; 63 } 64 65 66 SDL_Window* window = SDL_CreateWindow("Bandana Marathon", 10, 30, SCREEN_W, SCREEN_H, SDL_WINDOW_SHOWN); 67 if (window == NULL) 68 { 69 gCons->ConsPrintf("SDL_CreateWindow Error: %s", SDL_GetError()); 70 SDL_Quit(); 71 return 1; 72 } 73 74 SDL_Renderer* ren = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); 75 if (ren == NULL) 76 { 77 gCons->ConsPrintf("SDL_CreateRenderer Error: %s", SDL_GetError()); 78 SDL_Quit(); 79 return 1; 80 } 81 82 SDL_Color fg = { 255, 255, 255 }; 83 SDL_Color bg = { 0, 0, 255 }; 84 gCons = new Console("ARIAL.TTF", 12, fg, bg); 85 //gCons = new Console("Tapestry.ttf", 16, fg, bg); 86 87 Control ctrl = Control(); 88 89 ContextManager ConMan = ContextManager("level_arid_land.json"); 90 91 Level* lvl = new Level(ren, &ctrl); 92 ConMan.LogContext(lvl, "level"); 93 //DiagnosticDraw* gDiagDraw = new DiagnosticDraw(ren, lvl->mCam); 94 95 Loading* load = new Loading(ren); 96 ConMan.LogContext(load, "load"); 97 98 ConMan.LoadContext("load"); 99 ConMan.ContextUpdate(); 100 SDL_RenderPresent(ren); 101 102 ConMan.LoadContext("level"); 103 104 //Mix_Chunk* dhaka = LoadSound("Dhaka.mp3"); 105 //Mix_Chunk* ftst = LoadSound("footstep.wav"); 106 107 SDL_Event e; 108 109 //if (Mix_PlayingMusic() == false) 110 //{ 111 //Mix_PlayMusic(dhaka, -1); 112 //Mix_Volume(1, 6); 113 //Mix_VolumeChunk(dhaka, 6); 114 //Mix_PlayChannel(1, dhaka, -1); 115 116 //} 117 bool quit = false; 118 while (!quit) 119 { 120 int CycleStart = GetRealTimeMS(); 121 122 SDL_RenderClear(ren); 123 124 ctrl.ProcessKeyboard(); 125 126 ConMan.ContextUpdate(); 127 128 //PrintBTree(&TestTree); 129 130 #ifdef DEBUG 131 gCons->DrawConsole(ren); //Console is currently causing crashes for unknown reasons. No changes made to console system; very confusing 132 #endif 133 134 SDL_RenderPresent(ren); 135 136 SDL_PollEvent(&e); 137 138 if (e.type == SDL_QUIT) 139 { 140 quit = true; 141 } 142 143 gTime->ProgressCycle(); 144 145 int DeltaTime = (GetRealTimeMS() - CycleStart); 146 assert(DeltaTime >= 0); 147 148 int DelayTime = MS_PER_FRAME - DeltaTime; 149 150 if (DelayTime >= 0) 151 { 152 //gCons->ConsPrintf("Delay Time: %i \n", DelayTime); 153 SDL_Delay(DelayTime); 154 } 155 else 156 { 157 //gCons->ConsPrintf("Delay Time: %i FRAME DROP\n", DelayTime); 158 } 159 } 160 161 delete gCons; 162 SDL_DestroyWindow(window); 163 SDL_Quit(); 164 return 0; 165 }