diff --git a/App.c b/App.c new file mode 100644 index 0000000..ed61454 --- /dev/null +++ b/App.c @@ -0,0 +1,32 @@ + +#include "App.h" +#include "Input.h" +#include "Physics_Component.h" +#include "Player_Component.h" +#include + + +App *app_NewApp() { + App *app = malloc(sizeof(App)); + + app->input = input_NewSystem(app); + app->physics = physics_NewSystem(app); + app->player = player_NewSystem(app); + + return app; +} + +void app_DeleteApp(App *app) { + input_DeleteSystem(app->input); + physics_DeleteSystem(app->physics); + player_DeleteSystem(app->player); + + free(app); +} + + +void app_Advance(App *app, Duration deltaTime) { + input_Advance(app->input); + player_Advance(app->player, deltaTime); + physics_Advance(app->physics, deltaTime); +} diff --git a/App.h b/App.h index 9ddb249..7ae70c4 100644 --- a/App.h +++ b/App.h @@ -4,6 +4,7 @@ #include "Physics_Component.h" #include "Player_Component.h" #include "Input.h" +#include "Types.h" typedef struct _App { @@ -11,3 +12,9 @@ typedef struct _App { System_Player *player; System_Input *input; } App; + +App *app_NewApp(); +void app_DeleteApp(App *app); + +void app_Advance(App *app, Duration deltaTime); +void app_Render();