diff --git a/src/object_state_update.c b/src/object_state_update.c index 469b610..18a2675 100644 --- a/src/object_state_update.c +++ b/src/object_state_update.c @@ -276,13 +276,11 @@ _goal_sign_update(ObjectState *state, ObjectTableEntry *, VECTOR *pos) screen_level_setstate(3); } else if(screen_level_getstate() == 4) { uint8_t lvl = screen_level_getlevel(); - // TODO: This is temporary and goes only upto R2Z1 - if(lvl < 10) { - if(lvl == 4) { - // Transition from GHZ1 to SWZ1 - // TODO: THIS IS TEMPORARY - screen_level_setlevel(6); - } else if(lvl == 6) { + if(lvl == 3) { + // Finished engine test + scene_change(SCREEN_TITLE); + } else if(lvl < 10) { + if(lvl == 6) { // Transition from SWZ1 to AOZ1 // TODO: THIS IS TEMPORARY screen_level_setlevel(10); diff --git a/src/screen_charselect.c b/src/screen_charselect.c index 8009065..eef9de9 100644 --- a/src/screen_charselect.c +++ b/src/screen_charselect.c @@ -113,7 +113,8 @@ screen_charselect_update(void *d) if(pad_pressed(PAD_CROSS) || pad_pressed(PAD_START)) { screen_level_setcharacter(data->character); - screen_level_setlevel(6); + // NOTE: screen_level_setlevel should have + // been called from previous screen screen_level_setmode(LEVEL_MODE_NORMAL); scene_change(SCREEN_LEVEL); } diff --git a/src/screen_disclaimer.c b/src/screen_disclaimer.c index 93231f5..e0e88ca 100644 --- a/src/screen_disclaimer.c +++ b/src/screen_disclaimer.c @@ -49,8 +49,9 @@ screen_disclaimer_update(void *d) data->disclaimer_timer++; if((data->disclaimer_timer > 1200) || pad_pressed(PAD_START) || pad_pressed(PAD_CROSS)) { if(pad_pressing(PAD_SQUARE)) { - // Change to level select scene_change(SCREEN_LEVELSELECT); + } else if(pad_pressing(PAD_CIRCLE)) { + scene_change(SCREEN_TITLE); } else { screen_slide_set_next(SLIDE_SEGALOGO); scene_change(SCREEN_SLIDE); diff --git a/src/screen_level.c b/src/screen_level.c index dd43484..259c41a 100644 --- a/src/screen_level.c +++ b/src/screen_level.c @@ -781,7 +781,7 @@ level_load_level(screen_level_data *data) data->level_name = "PLACEHOLDER"; switch(level) { - case 0: case 1: case 2: case 3: // Playground + case 0: case 1: case 2: case 3: // Test level data->level_name = "TEST LEVEL"; data->level_round = 0; data->level_act = level; diff --git a/src/screen_title.c b/src/screen_title.c index fd01a6e..5f042bf 100644 --- a/src/screen_title.c +++ b/src/screen_title.c @@ -183,7 +183,7 @@ screen_title_update(void *d) } if(pad_pressed(PAD_START)) { - // TODO: Check for saved data + // TODO: Check for saved data? data->menu_option = 2; // New Game //data->menu_option = 1; // Continue } @@ -196,17 +196,19 @@ screen_title_update(void *d) if(pad_pressed(PAD_START) || pad_pressed(PAD_CROSS)) { data->selected = 1; switch(data->menu_option) { - case 1: // Continue - // For now, this redirects you to Surely Wood Zone + case 1: // Engine Test screen_title_reset_demo(); - screen_level_setlevel(6); + // Go to Engine Test + screen_level_setlevel(0); screen_level_setmode(LEVEL_MODE_NORMAL); - data->next_scene = SCREEN_LEVEL; + data->next_scene = SCREEN_CHARSELECT; level_score_count = 0; break; case 2: // New Game - // Use Surely Wood Zone 1 as first level screen_title_reset_demo(); + // Use Surely Wood Zone 1 as first level + screen_level_setlevel(6); + screen_level_setmode(LEVEL_MODE_NORMAL); data->next_scene = SCREEN_CHARSELECT; level_score_count = 0; break; @@ -290,7 +292,7 @@ screen_title_drawtxt(screen_title_data *data, uint8_t idx, int16_t cx, int16_t c u0 + w , v0, u0, v0 + h, u0 + w , v0 + h); - sort_prim(poly, OTZ_LAYER_HUD); + sort_prim(poly, OTZ_LAYER_TOPMOST); } static void @@ -415,13 +417,36 @@ screen_title_draw(void *d) /* render_model(&data->planet); */ if(data->rgb_count >= 128) { - screen_title_drawtxt(data, data->menu_option, CENTERX, 208); + // New menu text + const char *menutxt = NULL; + switch(data->menu_option) { + case 0: menutxt = "PRESS START"; break; + case 1: menutxt = "ENGINE TEST"; break; + case 2: menutxt = "START GAME"; break; + case 3: menutxt = "LEVEL SELECT"; break; + case 4: menutxt = "SCENE SELECT"; break; + default: menutxt = "????????"; break; + } + uint16_t txt_hsize = font_measurew_big(menutxt) >> 1; + int16_t vx = CENTERX - txt_hsize; + font_set_color(0xc8, 0xc8, 0x00); + font_draw_big(menutxt, vx, 200); if(data->menu_option > 0) { if(data->menu_option > 1) - screen_title_drawtxt(data, 4, CENTERX - 60, 208); + screen_title_drawtxt(data, 4, CENTERX - txt_hsize - 12, 205); if(data->menu_option < 3) - screen_title_drawtxt(data, 5, CENTERX + 60, 208); + screen_title_drawtxt(data, 5, CENTERX + txt_hsize + 12, 205); } + font_reset_color(); + + /* // Old menu text */ + /* screen_title_drawtxt(data, data->menu_option, CENTERX, 208); */ + /* if(data->menu_option > 0) { */ + /* if(data->menu_option > 1) */ + /* screen_title_drawtxt(data, 4, CENTERX - 60, 208); */ + /* if(data->menu_option < 3) */ + /* screen_title_drawtxt(data, 5, CENTERX + 60, 208); */ + /* } */ } int16_t x;