add missing tools/pngdump to the repo
[gbajam22] / src / menuscr.c
index 43b9204..7db5542 100644 (file)
@@ -6,6 +6,7 @@
 #include "input.h"
 #include "sprite.h"
 #include "debug.h"
+#include "scoredb.h"
 
 enum {
        MENU_START,
@@ -67,8 +68,8 @@ static int menuscr_start(void)
        wait_vblank();
        spr_clear();
 
-       cur_x = pos[0][0] - CUR_XOFFS;
-       cur_y = pos[0][1];
+       cur_x = pos[sel][0] - CUR_XOFFS;
+       cur_y = pos[sel][1];
 
        running = 1;
        return 0;
@@ -85,11 +86,24 @@ static void menuscr_frame(void)
 {
        update_keyb();
 
-       if(KEYPRESS(BN_START) || (sel == 0 && KEYPRESS(BN_A))) {
+       if(KEYPRESS(BN_START)) {
                change_screen(find_screen("game"));
                return;
        }
 
+       if(KEYPRESS(BN_A)) {
+               switch(sel) {
+               case MENU_START:
+                       change_screen(find_screen("game"));
+                       return;
+               case MENU_CTRL:
+                       change_screen(find_screen("controls"));
+                       return;
+               default:
+                       break;
+               }
+       }
+
        if(KEYPRESS(BN_DOWN) && sel <= NUM_MENU_ITEMS) {
                cur_x = pos[++sel][0] - CUR_XOFFS;
                cur_y = pos[sel][1];
@@ -101,6 +115,8 @@ static void menuscr_frame(void)
        if((KEYPRESS(BN_LEFT) || KEYPRESS(BN_RIGHT)) && sel == MENU_COLORS) {
                gba_colors ^= 1;
                setup_palette();
+               scores[10].score = (scores[10].score & ~1) | (gba_colors & 1);
+               save_scores();
        }
 
        wait_vblank();