parent
893fc1c73f
commit
0c461d3167
13
main.c
13
main.c
|
@ -10,7 +10,7 @@
|
|||
Scene_t *scenes[N_SCENES];
|
||||
static GameEngine_t engine = {
|
||||
.scenes = scenes,
|
||||
.max_scenes = 3,
|
||||
.max_scenes = 4,
|
||||
.curr_scene = 0,
|
||||
.assets = {0}
|
||||
};
|
||||
|
@ -74,9 +74,16 @@ int main(void)
|
|||
MenuScene_t menu_scene;
|
||||
menu_scene.scene.engine = &engine;
|
||||
init_menu_scene(&menu_scene);
|
||||
|
||||
LevelSelectScene_t level_sel_scene;
|
||||
level_sel_scene.scene.engine = &engine;
|
||||
level_sel_scene.data.level_pack = pack;
|
||||
init_level_select_scene(&level_sel_scene);
|
||||
|
||||
scenes[0] = &menu_scene.scene;
|
||||
scenes[1] = &level_scene.scene;
|
||||
scenes[2] = &sandbox_scene.scene;
|
||||
scenes[1] = &level_sel_scene.scene;
|
||||
scenes[2] = &level_scene.scene;
|
||||
scenes[3] = &sandbox_scene.scene;
|
||||
change_scene(&engine, 0);
|
||||
|
||||
const float DT = 1.0f/60.0f;
|
||||
|
|
|
@ -57,14 +57,28 @@ void init_level_select_scene(LevelSelectScene_t* scene)
|
|||
scene->data.scroll = 400;
|
||||
scene->data.level_display = LoadRenderTexture(300, 800);
|
||||
const unsigned int n_elems = 800 / (12+3);
|
||||
char buf[32];
|
||||
BeginTextureMode(scene->data.level_display);
|
||||
ClearBackground(GRAY);
|
||||
if (scene->data.level_pack != NULL)
|
||||
{
|
||||
for (unsigned int i = 0; i < scene->data.level_pack->n_levels; ++i)
|
||||
{
|
||||
DrawText(scene->data.level_pack->levels[i].level_name, 0, (12+3) * i, 12, BLACK);
|
||||
}
|
||||
for (unsigned int i = scene->data.level_pack->n_levels; i < n_elems; ++i)
|
||||
{
|
||||
DrawText("---", 0, (12+3) * i, 12, BLACK);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (unsigned int i = 0; i < n_elems; ++i)
|
||||
{
|
||||
char buf[32];
|
||||
sprintf(buf, "Level %u", i);
|
||||
DrawText(buf, 0, (12+3) * i, 12, BLACK);
|
||||
}
|
||||
}
|
||||
EndTextureMode();
|
||||
|
||||
sc_array_add(&scene->scene.systems, &level_select_render_func);
|
||||
|
|
|
@ -89,6 +89,7 @@ typedef struct MenuScene {
|
|||
typedef struct LevelSelectSceneData {
|
||||
RenderTexture2D level_display;
|
||||
float scroll;
|
||||
LevelPack_t* level_pack;
|
||||
} LevelSelectSceneData_t;
|
||||
|
||||
typedef struct LevelSelectScene {
|
||||
|
|
Loading…
Reference in New Issue