mirror of
https://github.com/luksamuk/engine-psx.git
synced 2025-04-28 13:28:02 +03:00
Change title screen options and level ordering
This commit is contained in:
parent
5ef1ad42ce
commit
05c8bc2c2f
5 changed files with 45 additions and 20 deletions
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue