Set first scene again to disclaimer

This commit is contained in:
Lucas S. Vieira 2025-01-11 17:05:10 -03:00
parent 4cc5a9ab01
commit 564429104d
3 changed files with 27 additions and 44 deletions

View file

@ -197,8 +197,7 @@ _draw_glyph(
setRGB0(sprt, font_color[0], font_color[1], font_color[2]);
increment_prim(sizeof(SPRT));
setXY0(sprt, vx, vy);
sprt->w = w;
sprt->h = h;
setWH(sprt, w, h);
setUV0(sprt, u0, v0);
sprt->clut = getClut(0, 490);
sort_prim(sprt, OTZ_LAYER_HUD);

View file

@ -72,8 +72,7 @@ main(void)
/* mdec_fmv_init(); */
// Set first scene
//scene_change(SCREEN_DISCLAIMER);
scene_change(SCREEN_SPRITETEST);
scene_change(SCREEN_DISCLAIMER);
while(1) {
// Update systems

View file

@ -14,7 +14,6 @@ extern uint8_t frame_debug;
typedef struct {
Chara chara;
VECTOR pos;
int16_t frame;
uint8_t play_frames;
uint8_t flipx;
@ -36,13 +35,12 @@ screen_sprite_test_load()
load_chara(&data->chara, "\\SPRITES\\SONIC.CHARA;1", &tim);
data->pos = (VECTOR){ .vx = CENTERX, .vy = CENTERY };
data->frame = 0;
data->play_frames = 0;
data->angle = 0;
data->flipx = 0;
level_fade = 0x7f;
set_clear_color(36, 0, 180);
set_clear_color(0x64, 0x95, 0xed);
}
void
@ -62,22 +60,6 @@ screen_sprite_test_update(void *d)
const int32_t spd = 5;
const int32_t rotspd = 5;
if(pad_pressing(PAD_UP)) {
data->pos.vy -= spd;
}
if(pad_pressing(PAD_DOWN)) {
data->pos.vy += spd;
}
if(pad_pressing(PAD_RIGHT)) {
data->pos.vx += spd;
}
if(pad_pressing(PAD_LEFT)) {
data->pos.vx -= spd;
}
if(pad_pressed(PAD_START)) {
data->play_frames ^= 1;
}
@ -94,16 +76,20 @@ screen_sprite_test_update(void *d)
scene_change(SCREEN_LEVELSELECT);
}
if(pad_pressed(PAD_CIRCLE)) {
data->angle = 0;
}
if(data->play_frames) {
if(!(get_global_frames() % 30))
data->frame++;
} else {
if(pad_pressed(PAD_CIRCLE)) data->frame++;
else if(pad_pressed(PAD_SQUARE)) data->frame--;
if(pad_pressed(PAD_R1)) data->frame++;
else if(pad_pressed(PAD_L1)) data->frame--;
}
if(pad_pressing(PAD_R1)) data->angle -= rotspd;
else if(pad_pressing(PAD_L1)) data->angle += rotspd;
if(pad_pressing(PAD_RIGHT)) data->angle += rotspd;
else if(pad_pressing(PAD_LEFT)) data->angle -= rotspd;
if(data->frame < 0) data->frame = data->chara.numframes - 1;
else if(data->frame >= data->chara.numframes) data->frame = 0;
@ -119,30 +105,29 @@ screen_sprite_test_draw(void *d)
char buffer[80];
sprintf(buffer,
"POS %04x %04x\n"
"FRAME %02d/%02d\n"
"ANGLE %04x",
data->pos.vx,
data->pos.vy,
"FRAME %02d - %02d\n"
"ANGLE %04x\n"
"FLIPX %s\n"
"DEBUG %s"
,
data->frame + 1,
data->chara.numframes,
data->angle);
data->angle,
data->flipx ? "TRUE" : "FALSE",
frame_debug ? "TRUE" : "FALSE");
font_set_color(128, 128, 128);
font_set_color(0xc8, 0xc8, 0xc8);
font_draw_sm(buffer, 10, 10);
chara_draw_gte(&data->chara,
data->frame,
(int16_t)(data->pos.vx),
(int16_t)(data->pos.vy),
data->flipx,
data->angle);
font_set_color(0xc8, 0xc8, 0xc8);
// Video debug
snprintf(buffer, 255,
"%4s %3d",
GetVideoMode() == MODE_PAL ? "PAL" : "NTSC", get_frame_rate());
font_draw_sm(buffer, 248, 12);
chara_draw_gte(&data->chara,
data->frame,
(int16_t)CENTERX,
(int16_t)CENTERY,
data->flipx,
data->angle);
}