diff --git a/src/input.c b/src/input.c index b6b01dc..29cb900 100644 --- a/src/input.c +++ b/src/input.c @@ -24,6 +24,7 @@ void input_pollKeyDown(SDL_Scancode code) { printf("Scancode: %d\n", code); keyEvent_t * handlers = eventsKeyDown[code]; for(int i = 0; i < eventKeyDown_counts[code]; i++) { + printf("Given\n"); handlers[i](); } } diff --git a/src/main.c b/src/main.c index 4c29dd2..24184ea 100644 --- a/src/main.c +++ b/src/main.c @@ -63,7 +63,7 @@ static void game_loop(void) { } -int main(void) { +int main(int argc, char ** argv) { TTF_Init(); if(Mix_OpenAudio(22050, MIX_DEFAULT_FORMAT, 2, 4096) != 0){ printf("Music sound could not be open!\n" @@ -75,7 +75,7 @@ int main(void) { timecode = clock(); Mix_Init(MIX_INIT_MP3); - renderer_main(game_setup, game_loop); + renderer_main(argc, argv, game_setup, game_loop); Mix_CloseAudio(); text_freeFontCache(); diff --git a/src/renderer.c b/src/renderer.c index 08279e0..5880952 100644 --- a/src/renderer.c +++ b/src/renderer.c @@ -4,7 +4,9 @@ #include #include #include +#include #include +#include #include #include #include @@ -19,20 +21,47 @@ SDL_Window* win; SDL_Renderer * renderer; const Scene_t * scene; int scenesCount = 0; +bool fullscreen = false; + + +static void toggleFullscreen(void) { + printf("Toggling\n"); + if(!fullscreen) { + SDL_SetWindowFullscreen(win, SDL_WINDOW_FULLSCREEN); + fullscreen = true; + } + else { + SDL_SetWindowFullscreen(win, 0); + fullscreen = false; + } +} //int (*compar)(const void [.size], const void [.size], void *) -void renderer_main(void(*game_setup)(void), void(*game_loop)(void)) { +void renderer_main(int argc, char ** argv, void(*game_setup)(void), void(*game_loop)(void)) { // returns zero on success else non-zero if (SDL_Init(SDL_INIT_EVERYTHING) != 0) { printf("error initializing SDL: %s\n", SDL_GetError()); } + + int width = 1280; + int height = 720; + + if(argc > 2) { + width = atoi(argv[1]); + height = atoi(argv[2]); + } + + win = SDL_CreateWindow("The legend of ADAM", // creates a window SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, - 1280, 720, 0); + width, height, 0); Uint32 render_flags = SDL_RENDERER_ACCELERATED; + input_init(); + input_listenKeyDown(SDL_SCANCODE_F11, toggleFullscreen); + // creates a renderer to render our images renderer = SDL_CreateRenderer(win, -1, render_flags); @@ -42,7 +71,6 @@ void renderer_main(void(*game_setup)(void), void(*game_loop)(void)) { SDL_GetRendererOutputSize(renderer, &monitorSize.width, &monitorSize.height); - input_init(); running = true; diff --git a/src/renderer.h b/src/renderer.h index 827cf5f..83e3151 100644 --- a/src/renderer.h +++ b/src/renderer.h @@ -16,7 +16,7 @@ typedef struct MonitorSize { int width, height; } MonitorSize_t; -void renderer_main(void(*game_setup)(void), void(*game_loop)(void)); +void renderer_main(int argc, char ** argv, void(*game_setup)(void), void(*game_loop)(void)); MonitorSize_t renderer_getMonitorSize(void); void renderer_setScene(const Scene_t * newScene); const Scene_t * renderer_getScene(void); diff --git a/src/scene.c b/src/scene.c index 6237ef6..5831921 100644 --- a/src/scene.c +++ b/src/scene.c @@ -62,8 +62,6 @@ RenderId_t scene_addRenderObject(Scene_t * scene, RenderObject_t object, int x, scene->objectCount++; RenderId_t itemId = scene->lastId++; - printf("adding item: %s: %d\n", object.name, itemId); - if(scene->objectCount * sizeof(SceneObject_t) > scene->objectArraySize) { scene->objectArraySize = scene->objectCount * sizeof(SceneObject_t); scene->objects = realloc(scene->objects, scene->objectArraySize); @@ -121,9 +119,6 @@ void scene_removeRenderObject(Scene_t * scene, RenderId_t id) { if(index < 0) return; - printf("removing item: %s: %d\n", scene->objects[index].renderObj.name, id); - - scene->objectCount--; for(int i = index; i < scene->objectCount; i++) {