Fix main program crash
Changelog: - Init asset management and pass into scene initsscene_man
parent
d4dfe01182
commit
7c94ecde89
31
main.c
31
main.c
|
@ -7,7 +7,8 @@ Scene_t *scenes[N_SCENES];
|
||||||
static GameEngine_t engine = {
|
static GameEngine_t engine = {
|
||||||
.scenes = scenes,
|
.scenes = scenes,
|
||||||
.max_scenes = 2,
|
.max_scenes = 2,
|
||||||
.curr_scene = 0
|
.curr_scene = 0,
|
||||||
|
.assets = {0}
|
||||||
};
|
};
|
||||||
|
|
||||||
const int screenWidth = 1280;
|
const int screenWidth = 1280;
|
||||||
|
@ -15,6 +16,16 @@ const int screenHeight = 640;
|
||||||
|
|
||||||
static void load_assets(void)
|
static void load_assets(void)
|
||||||
{
|
{
|
||||||
|
Texture2D* tex = add_texture(&engine.assets, "plr_tex", "res/test_tex.png");
|
||||||
|
Sprite_t* spr = add_sprite(&engine.assets, "plr_stand", tex);
|
||||||
|
spr->origin = (Vector2){0, 0};
|
||||||
|
spr->frame_size = (Vector2){32, 32};
|
||||||
|
|
||||||
|
spr = add_sprite(&engine.assets, "plr_run", tex);
|
||||||
|
spr->frame_count = 4;
|
||||||
|
spr->origin = (Vector2){0, 0};
|
||||||
|
spr->frame_size = (Vector2){32, 32};
|
||||||
|
spr->speed = 15;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Maintain own queue to handle key presses
|
// Maintain own queue to handle key presses
|
||||||
|
@ -28,16 +39,20 @@ int main(void)
|
||||||
InitWindow(screenWidth, screenHeight, "raylib");
|
InitWindow(screenWidth, screenHeight, "raylib");
|
||||||
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
|
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
|
||||||
init_memory_pools();
|
init_memory_pools();
|
||||||
|
|
||||||
|
init_assets(&engine.assets);
|
||||||
|
load_assets();
|
||||||
|
|
||||||
LevelScene_t level_scene;
|
LevelScene_t level_scene;
|
||||||
init_level_scene(&level_scene);
|
|
||||||
level_scene.scene.engine = &engine;
|
level_scene.scene.engine = &engine;
|
||||||
|
init_level_scene(&level_scene);
|
||||||
MenuScene_t menu_scene;
|
MenuScene_t menu_scene;
|
||||||
init_menu_scene(&menu_scene);
|
|
||||||
menu_scene.scene.engine = &engine;
|
menu_scene.scene.engine = &engine;
|
||||||
|
init_menu_scene(&menu_scene);
|
||||||
scenes[0] = &menu_scene.scene;
|
scenes[0] = &menu_scene.scene;
|
||||||
scenes[1] = &level_scene.scene;
|
scenes[1] = &level_scene.scene;
|
||||||
load_assets();
|
|
||||||
change_scene(&engine, 0);
|
change_scene(&engine, 0);
|
||||||
|
|
||||||
//Camera2D camera = { 0 };
|
//Camera2D camera = { 0 };
|
||||||
//camera.offset = (Vector2){0,0};
|
//camera.offset = (Vector2){0,0};
|
||||||
//camera.rotation = 0.0f;
|
//camera.rotation = 0.0f;
|
||||||
|
@ -79,18 +94,16 @@ int main(void)
|
||||||
update_scene(curr_scene);
|
update_scene(curr_scene);
|
||||||
update_entity_manager(&curr_scene->ent_manager);
|
update_entity_manager(&curr_scene->ent_manager);
|
||||||
// This is needed to advance time delta
|
// This is needed to advance time delta
|
||||||
BeginDrawing();
|
render_scene(curr_scene);
|
||||||
render_scene(curr_scene);
|
|
||||||
ClearBackground(RAYWHITE);
|
|
||||||
EndDrawing();
|
|
||||||
|
|
||||||
if (curr_scene->state != SCENE_PLAYING)
|
if (curr_scene->state != SCENE_PLAYING)
|
||||||
{
|
{
|
||||||
sc_queue_clear(&key_buffer);
|
sc_queue_clear(&key_buffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CloseWindow();
|
|
||||||
free_level_scene(&level_scene);
|
free_level_scene(&level_scene);
|
||||||
free_menu_scene(&menu_scene);
|
free_menu_scene(&menu_scene);
|
||||||
sc_queue_term(&key_buffer);
|
sc_queue_term(&key_buffer);
|
||||||
|
term_assets(&engine.assets);
|
||||||
|
CloseWindow();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue