pause screen red coins

This commit is contained in:
mineqwerty
2023-06-04 22:29:37 -04:00
parent 0d14f6bb58
commit af53a42b0b
4 changed files with 34 additions and 8 deletions

View File

@@ -18,8 +18,8 @@ void bhv_orange_number_loop(void) {
}
s32 offsetX, offsetZ;
offsetX = o->oOrangeNumberOffset * sins(gLakituState.nextYaw + 0x4000);
offsetZ = o->oOrangeNumberOffset * coss(gLakituState.nextYaw + 0x4000);
offsetX = o->oOrangeNumberOffset * sins(gCamera->nextYaw + 0x4000);
offsetZ = o->oOrangeNumberOffset * coss(gCamera->nextYaw + 0x4000);
o->oPosX = o->oHomeX + offsetX;
o->oPosZ = o->oHomeZ + offsetZ;

View File

@@ -52,12 +52,12 @@ void bhv_red_coin_loop(void) {
// Spawn the orange number counter, as long as it isn't the last coin.
if (o->parentObj->oHiddenStarTriggerCounter != o->parentObj->oHiddenStarTriggerTotal) {
if (o->parentObj->oHiddenStarTriggerCounter >= 99) {
spawn_orange_number(9, 14, 0, 0);
spawn_orange_number(9, -14, 0, 0);
spawn_orange_number(9, 28, 0, 0);
spawn_orange_number(9, -28, 0, 0);
}
else if (o->parentObj->oHiddenStarTriggerCounter >= 10) {
spawn_orange_number(o->parentObj->oHiddenStarTriggerCounter % 10, 14, 0, 0);
spawn_orange_number(o->parentObj->oHiddenStarTriggerCounter / 10, -14, 0, 0);
spawn_orange_number(o->parentObj->oHiddenStarTriggerCounter % 10, 28, 0, 0);
spawn_orange_number(o->parentObj->oHiddenStarTriggerCounter / 10, -28, 0, 0);
}
else {
spawn_orange_number(o->parentObj->oHiddenStarTriggerCounter, 0, 0, 0);

View File

@@ -1518,8 +1518,31 @@ void print_animated_red_coin(s16 x, s16 y) {
void render_pause_red_coins(void) {
s8 x;
for (x = 0; x < gRedCoinsCollected; x++) {
print_animated_red_coin(GFX_DIMENSIONS_FROM_RIGHT_EDGE(30) - x * 20, 16);
if (gRedCoinsCollected <= 9) {
for (x = 0; x < gRedCoinsCollected; x++) {
print_animated_red_coin(GFX_DIMENSIONS_FROM_RIGHT_EDGE(30) - x * 20, 16);
}
}
else {
print_animated_red_coin(GFX_DIMENSIONS_FROM_RIGHT_EDGE(108), 16);
Mtx *mtx;
mtx = alloc_display_list(sizeof(*mtx));
if (mtx == NULL) {
return;
}
guOrtho(mtx, 0.0f, SCREEN_WIDTH, 0.0f, SCREEN_HEIGHT, -10.0f, 10.0f, 1.0f);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(mtx), G_MTX_PROJECTION | G_MTX_LOAD | G_MTX_NOPUSH);
gSPDisplayList(gDisplayListHead++, dl_hud_img_begin);
add_glyph_texture(GLYPH_MULTIPLY);
render_textrect(GFX_DIMENSIONS_FROM_RIGHT_EDGE(100), 16, 0);
add_glyph_texture(char_to_glyph_index((char) (48 + (gRedCoinsCollected / 10))));
render_textrect(GFX_DIMENSIONS_FROM_RIGHT_EDGE(86), 16, 0);
add_glyph_texture(char_to_glyph_index((char) (48 + (gRedCoinsCollected % 10))));
render_textrect(GFX_DIMENSIONS_FROM_RIGHT_EDGE(86), 16, 1);
gSPDisplayList(gDisplayListHead++, dl_hud_img_end);
}
}

View File

@@ -34,5 +34,8 @@ void print_text_fmt_int(s32 x, s32 y, const char *str, s32 n);
void print_text(s32 x, s32 y, const char *str);
void print_text_centered(s32 x, s32 y, const char *str);
void render_text_labels(void);
s32 char_to_glyph_index(char c);
void add_glyph_texture(s8 glyphIndex);
void render_textrect(s32 x, s32 y, s32 pos);
#endif // PRINT_H