From: Wintermute Date: Sun, 20 Oct 2013 19:21:40 +0000 (+0200) Subject: Level-MenĂ¼ in Simulator X-Git-Url: https://git.rohieb.name/hackover2013-badge-firmware.git/commitdiff_plain/6fc75eb6ef197f7eefb586c09ca2bc79a50e7fd6 Level-MenĂ¼ in Simulator --- diff --git a/badge/jumpnrun/game_state.c b/badge/jumpnrun/game_state.c index 386a7a1..d8186d5 100644 --- a/badge/jumpnrun/game_state.c +++ b/badge/jumpnrun/game_state.c @@ -2,7 +2,7 @@ void jumpnrun_game_state_init(jumpnrun_game_state *state, jumpnrun_level const *lv) { memset(state, 0, sizeof(*state)); - jumpnrun_player_spawn(&state->player, lv->start_pos, 99); + jumpnrun_player_spawn(&state->player, lv->start_pos, 5); } void jumpnrun_game_state_respawn(jumpnrun_game_state *state, jumpnrun_level const *lv) { diff --git a/mock/badge_main_loop.c b/mock/badge_main_loop.c index 3a1c3d2..e893c18 100644 --- a/mock/badge_main_loop.c +++ b/mock/badge_main_loop.c @@ -11,37 +11,30 @@ #include #include +#define MAX_LEVELS 1024 + void badge_main_loop(void) { - char const *const menu[] = { - "smb", - "skynet", - "wrongturn", - "lubiXOXO", - "lubilove", - "gnobbel", - "foo", - "mean", - "xyzzy", - "abc", - "nonsense" - }; - - size_t choice = badge_menu(menu, ARRAY_SIZE(menu), 0, 0); - - printf("%zu\n", choice); + char menu_buf[MAX_LEVELS][32]; + FILE *fd = fopen("../badge/jumpnrun/levels.txt", "r"); + + int i; + + for(i = 0; i < MAX_LEVELS && fgets(menu_buf[i], sizeof(menu_buf[i]), fd); ++i) { + menu_buf[i][strlen(menu_buf[i]) - 1] = '\0'; + } + + fclose(fd); + + char const *menu[i]; + for(int j = 0; j < i; ++j) { + menu[j] = menu_buf[j]; + } for(;;) { - FILE *fd = fopen("../badge/jumpnrun/levels.txt", "r"); - char buf[12]; - - while(fgets(buf, sizeof(buf), fd)) { - buf[strlen(buf) - 1] = '\0'; - char lvname[256]; - sprintf(lvname, "../badge/jumpnrun/%s.lvl", buf); - while(jumpnrun_play(lvname) != JUMPNRUN_WON) - ; - } - - fclose(fd); + size_t choice = badge_menu(menu, ARRAY_SIZE(menu), 0, 0); + char lvname[256]; + sprintf(lvname, "../badge/jumpnrun/%s.lvl", menu[choice]); + + jumpnrun_play(lvname); } }