TapestryEngine

A 2D Platformer Game Engine
Log | Files | Refs

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 }