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