added ranks to nes/gb versions
This commit is contained in:
+14
-11
@@ -89,8 +89,14 @@ void game_startup() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Win screen display */
|
/* Win screen display */
|
||||||
|
static char* ranks[] = {"Survivor", "Master", "Epic", "Legend", "God"};
|
||||||
void win_screen(s16 score) {
|
void win_screen(s16 score) {
|
||||||
u8 i, j;
|
u8 i, j, r;
|
||||||
|
if(score > 29) r = 4;
|
||||||
|
else if(score > 24) r = 3;
|
||||||
|
else if(score > 19) r = 2;
|
||||||
|
else if(score > 9) r = 1;
|
||||||
|
else r = 0;
|
||||||
termreset();
|
termreset();
|
||||||
cputs( \
|
cputs( \
|
||||||
" \x1d \x1c \x0e\x0e\x0e \x1c \x1c" NL
|
" \x1d \x1c \x0e\x0e\x0e \x1c \x1c" NL
|
||||||
@@ -102,9 +108,10 @@ void win_screen(s16 score) {
|
|||||||
cputsxy(0, 7, " You made it across");
|
cputsxy(0, 7, " You made it across");
|
||||||
cputsxy(0, 8, " the dangerous");
|
cputsxy(0, 8, " the dangerous");
|
||||||
cputsxy(0, 9, " dungeon alive!");
|
cputsxy(0, 9, " dungeon alive!");
|
||||||
gotoxy(0, 11);
|
gotoxy(1, 11);
|
||||||
cprintf(" Your score: ");
|
cprintf("Score: %d", score);
|
||||||
printnum(score);
|
gotoxy(SCREEN_WIDTH-3-strlen(ranks[r]), 11);
|
||||||
|
cprintf("|%s|", ranks[r]);
|
||||||
chlinexy(0, 12, SCREEN_WIDTH);
|
chlinexy(0, 12, SCREEN_WIDTH);
|
||||||
cputs(" By: Luxferre, 2026");
|
cputs(" By: Luxferre, 2026");
|
||||||
cputs(NL NL " Orig: Zach Gage," NL " Kurt Bieg, 2011");
|
cputs(NL NL " Orig: Zach Gage," NL " Kurt Bieg, 2011");
|
||||||
@@ -184,13 +191,9 @@ void render_room_item(u8 i, u8 v) {
|
|||||||
rect(topleft_x, topleft_y, cwidth, cheight);
|
rect(topleft_x, topleft_y, cwidth, cheight);
|
||||||
gotoxy(topleft_x + 1, topleft_y + 1);
|
gotoxy(topleft_x + 1, topleft_y + 1);
|
||||||
/* draw text */
|
/* draw text */
|
||||||
if(v < 14) {
|
if(v < 14) cputs("ENMY");
|
||||||
cputs("ENMY");
|
else if(v < 23) cputs("WEAP");
|
||||||
} else if(v < 23) {
|
else cputs("POTI");
|
||||||
cputs("WEAP");
|
|
||||||
} else {
|
|
||||||
cputs("POTI");
|
|
||||||
}
|
|
||||||
gotoxy(topleft_x + 2, topleft_y + 2);
|
gotoxy(topleft_x + 2, topleft_y + 2);
|
||||||
if(v < 14) printnum(v + 1);
|
if(v < 14) printnum(v + 1);
|
||||||
else if(v < 23) printnum(v - 12);
|
else if(v < 23) printnum(v - 12);
|
||||||
|
|||||||
+18
@@ -37,6 +37,7 @@
|
|||||||
#define EZJOY_B 6
|
#define EZJOY_B 6
|
||||||
#define EZJOY_SL 7
|
#define EZJOY_SL 7
|
||||||
#define EZJOY_ST 8
|
#define EZJOY_ST 8
|
||||||
|
#define EZJOY_COMBO 9
|
||||||
|
|
||||||
#define EZ_CORNER_UL (char) 20
|
#define EZ_CORNER_UL (char) 20
|
||||||
#define EZ_CORNER_UR (char) 18
|
#define EZ_CORNER_UR (char) 18
|
||||||
@@ -197,6 +198,23 @@ void wait_for_start_rand() {
|
|||||||
srand(_ez_entropy);
|
srand(_ez_entropy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* wait for Start or a button combination */
|
||||||
|
u8 wait_for_start_or_combo(u8 combo_mask) {
|
||||||
|
u8 last_joy = 0, joy, pressed;
|
||||||
|
/* wait until the previous key is released */
|
||||||
|
while(joy_read(JOY_1));
|
||||||
|
/* wait for a new press */
|
||||||
|
while(1) {
|
||||||
|
++_ez_entropy;
|
||||||
|
joy = joy_read(JOY_1);
|
||||||
|
pressed = joy & ~last_joy;
|
||||||
|
if(pressed == combo_mask) return EZJOY_COMBO;
|
||||||
|
if(pressed & JOY_BTN_4_MASK) return EZJOY_ST;
|
||||||
|
last_joy = joy;
|
||||||
|
waitvsync();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Generic helper methods */
|
/* Generic helper methods */
|
||||||
|
|
||||||
/* Array shuffle method */
|
/* Array shuffle method */
|
||||||
|
|||||||
+25
-3
@@ -96,8 +96,18 @@ void game_startup() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Win screen display */
|
/* Win screen display */
|
||||||
|
static char* ranks[] = {"Survivor", "Master", "Epic", "Legend", "God"};
|
||||||
|
static u8 sb1[] = { 6, 0x14, 3, 16, 0x75, 0, 0x1E, 7, 0x14, 0x1C, 0x1B, 0x1C, 0x14, 0x1B, 6, 0};
|
||||||
|
static u8 sb2[] = { 0x13, 7, 0x1A, 0x18, 0x75, 15, 16, 0x16, 1, 0x14, 1, 0x1A, 7, 6, 0x1D, 0x1C, 5, 0 };
|
||||||
|
static u8 sb3[] = { 0xF9, 0xFA, 0xF8, 0xEF, 0xEB, 0xEE, 0x8A, 0xFE, 0xE2, 0xEF, 0x8A, 0xFD,
|
||||||
|
0xE5, 0xF8, 0xEE, 0};
|
||||||
void win_screen(s16 score) {
|
void win_screen(s16 score) {
|
||||||
u8 i, j;
|
u8 i, j, r;
|
||||||
|
if(score > 29) r = 4;
|
||||||
|
else if(score > 24) r = 3;
|
||||||
|
else if(score > 19) r = 2;
|
||||||
|
else if(score > 9) r = 1;
|
||||||
|
else r = 0;
|
||||||
clrscr();
|
clrscr();
|
||||||
ppu_off();
|
ppu_off();
|
||||||
for(j=0;j<12;j+=4)
|
for(j=0;j<12;j+=4)
|
||||||
@@ -111,7 +121,9 @@ void win_screen(s16 score) {
|
|||||||
" |::.|:. |::.|::.| |\r\n" \
|
" |::.|:. |::.|::.| |\r\n" \
|
||||||
" `--- ---`---`--- ---'");
|
" `--- ---`---`--- ---'");
|
||||||
cputsxy(0, 12, " Congratulations! You made it\r\n through the dangerous\r\n dungeon alive!\r\n\r\n");
|
cputsxy(0, 12, " Congratulations! You made it\r\n through the dangerous\r\n dungeon alive!\r\n\r\n");
|
||||||
cprintf(" Your score: %d\r\n\r\n", score);
|
cprintf(" Score: %d", score);
|
||||||
|
gotoxy(SCREEN_WIDTH - 8 - strlen(ranks[r]), 16);
|
||||||
|
cprintf("Rank: %s", ranks[r]);
|
||||||
chlinexy(0, 17, SCREEN_WIDTH);
|
chlinexy(0, 17, SCREEN_WIDTH);
|
||||||
cputs("Created by Luxferre in 2026\r\nReleased into public domain\r\n");
|
cputs("Created by Luxferre in 2026\r\nReleased into public domain\r\n");
|
||||||
cputs("\r\nOriginal concept by Zach Gage\r\nand Kurt Bieg, 2011");
|
cputs("\r\nOriginal concept by Zach Gage\r\nand Kurt Bieg, 2011");
|
||||||
@@ -120,7 +132,17 @@ void win_screen(s16 score) {
|
|||||||
ppu_on();
|
ppu_on();
|
||||||
waitvsync();
|
waitvsync();
|
||||||
beep_win();
|
beep_win();
|
||||||
wait_for_start();
|
for(i=0;i<15;++i) sb1[i] ^= 0x55;
|
||||||
|
for(i=0;i<17;++i) sb2[i] ^= 0x55;
|
||||||
|
for(i=0;i<15;++i) sb3[i] ^= 0xaa;
|
||||||
|
do {
|
||||||
|
r = wait_for_start_or_combo(JOY_BTN_1_MASK | JOY_BTN_2_MASK);
|
||||||
|
if(r == EZJOY_COMBO) {
|
||||||
|
cputsxy(8, 1, sb1);
|
||||||
|
cputsxy(7, 2, sb2);
|
||||||
|
cputsxy(8, 10, sb3);
|
||||||
|
}
|
||||||
|
} while(r != EZJOY_ST);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* UI choices */
|
/* UI choices */
|
||||||
|
|||||||
Reference in New Issue
Block a user