JacksEscape/app.h

50 lines
968 B
C
Raw Normal View History

2024-03-01 17:09:24 +08:00
#pragma once
2024-03-05 11:40:42 +08:00
#include "entity.h"
2024-04-22 05:11:11 +08:00
#include "gametime.h"
2024-03-05 11:40:42 +08:00
#include "physics.h"
#include "player.h"
#include "input.h"
2024-03-08 14:51:29 +08:00
#include "camera.h"
#include "particle.h"
2024-03-05 11:40:42 +08:00
#include "types.h"
#include "util/vector.h"
2024-03-01 17:09:24 +08:00
2024-03-04 15:05:21 +08:00
#ifdef __cplusplus
extern "C" {
#endif
2024-03-01 17:09:24 +08:00
typedef struct _App {
2024-04-22 04:29:48 +08:00
void *window; // HWND pointer; window handle set by main()
System_Physics *physics;
System_Player *player;
System_Input *input;
System_Entity *entity;
System_Camera *camera;
System_Particle *particle;
2024-04-22 05:11:11 +08:00
System_GameTime *time;
2024-03-04 15:05:21 +08:00
2024-04-15 16:21:24 +08:00
char *switch_level;
uint32_t clear_color;
2024-04-16 20:29:38 +08:00
bool wantQuit, debugOn;
2024-03-01 17:09:24 +08:00
} App;
2024-03-04 13:41:01 +08:00
App *app_NewApp();
void app_DeleteApp(App *app);
void app_Advance(App *app, Duration deltaTime);
2024-03-04 16:13:43 +08:00
void app_Render(App *app);
2024-03-04 15:05:21 +08:00
void app_DebugText(App *app, vector_Vector *vec_string);
2024-04-02 15:42:04 +08:00
// Trigger the app to reload all entities before next frame update.
void app_QueueLoadLevel(App *app, const char *level_name);
void _app_SwitchLevel(App *app);
2024-03-04 15:05:21 +08:00
#ifdef __cplusplus
}
#endif