Doing some tests with the start screen.

Fixed tabs in files.
This commit is contained in:
SaffronCR
2020-02-01 14:13:31 +01:00
parent 6d274b9cd5
commit 6d0a419af8
13 changed files with 184 additions and 112 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

BIN
art/intro01.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

BIN
art/strtscr.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

1
dsk/intro01.sf5 Normal file

File diff suppressed because one or more lines are too long

Binary file not shown.

1
dsk/strtscr.sf5 Normal file

File diff suppressed because one or more lines are too long

View File

@@ -462,7 +462,7 @@ void sf_set_dungeon_state(void)
// Generate dungeon.
Cls();
sf_draw_text("Entering the old ruins...", 8, 8, 15, 0);
sf_draw_text("Entering the Underruins...", 8, 8, 15, 0);
db_state = ReadyToSwitch;
dungeon_map = NULL;

218
font.c
View File

@@ -159,108 +159,140 @@
#define exclax 0+8+8+8
#define exclay 172
// Textbox
#define uplbx 16+8+8+8+8+8+8+8+8+8
#define uplby 204
#define uprbx 16+8+8+8+8+8+8+8+8+8+8+8
#define uprby 204
#define dwnlbx 16+8+8+8+8+8+8+8+8+8+8+8
#define dwnlby 188
#define dwnrbx 16+8+8+8+8+8+8+8+8+8+8+8+8
#define dwnrby 188
#define midbx 16+8+8+8+8+8+8+8+8+8+8
#define midby 204
#define latbx 16+8+8+8+8+8+8+8+8+8+8+8+8
#define latby 204
void sf_draw_char(char character, int x, int y, char log_op)
{
switch (character)
{
case 'a': sf_screen_copy(lax,lay, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'b': sf_screen_copy(lbx,lby, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'c': sf_screen_copy(lcx,lcy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'd': sf_screen_copy(ldx,ldy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'e': sf_screen_copy(lex,ley, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'f': sf_screen_copy(lfx,lfy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'g': sf_screen_copy(lgx,lgy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'h': sf_screen_copy(lhx,lhy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'i': sf_screen_copy(lix,liy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'j': sf_screen_copy(ljx,ljy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'k': sf_screen_copy(lkx,lky, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'l': sf_screen_copy(llx,lly, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'm': sf_screen_copy(lmx,lmy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'n': sf_screen_copy(lnx,lny, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'o': sf_screen_copy(lox,loy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'p': sf_screen_copy(lpx,lpy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'q': sf_screen_copy(lqx,lqy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'r': sf_screen_copy(lrx,lry, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 's': sf_screen_copy(lsx,lsy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 't': sf_screen_copy(ltx,lty, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'u': sf_screen_copy(lux,luy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'v': sf_screen_copy(lvx,lvy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'w': sf_screen_copy(lwx,lwy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'x': sf_screen_copy(lxx,lxy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'y': sf_screen_copy(lyx,lyy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'z': sf_screen_copy(lzx,lzy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
switch (character)
{
case 'a': sf_screen_copy(lax,lay, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'b': sf_screen_copy(lbx,lby, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'c': sf_screen_copy(lcx,lcy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'd': sf_screen_copy(ldx,ldy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'e': sf_screen_copy(lex,ley, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'f': sf_screen_copy(lfx,lfy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'g': sf_screen_copy(lgx,lgy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'h': sf_screen_copy(lhx,lhy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'i': sf_screen_copy(lix,liy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'j': sf_screen_copy(ljx,ljy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'k': sf_screen_copy(lkx,lky, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'l': sf_screen_copy(llx,lly, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'm': sf_screen_copy(lmx,lmy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'n': sf_screen_copy(lnx,lny, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'o': sf_screen_copy(lox,loy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'p': sf_screen_copy(lpx,lpy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'q': sf_screen_copy(lqx,lqy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'r': sf_screen_copy(lrx,lry, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 's': sf_screen_copy(lsx,lsy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 't': sf_screen_copy(ltx,lty, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'u': sf_screen_copy(lux,luy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'v': sf_screen_copy(lvx,lvy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'w': sf_screen_copy(lwx,lwy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'x': sf_screen_copy(lxx,lxy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'y': sf_screen_copy(lyx,lyy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'z': sf_screen_copy(lzx,lzy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'A': sf_screen_copy(uax,uay, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'B': sf_screen_copy(ubx,uby, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'C': sf_screen_copy(ucx,ucy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'D': sf_screen_copy(udx,udy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'E': sf_screen_copy(uex,uey, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'F': sf_screen_copy(ufx,ufy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'G': sf_screen_copy(ugx,ugy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'H': sf_screen_copy(uhx,uhy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'I': sf_screen_copy(uix,uiy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'J': sf_screen_copy(ujx,ujy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'K': sf_screen_copy(ukx,uky, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'L': sf_screen_copy(ulx,uly, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'M': sf_screen_copy(umx,umy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'N': sf_screen_copy(unx,uny, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'O': sf_screen_copy(uox,uoy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'P': sf_screen_copy(upx,upy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'Q': sf_screen_copy(uqx,uqy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'R': sf_screen_copy(urx,ury, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'S': sf_screen_copy(usx,usy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'T': sf_screen_copy(utx,uty, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'U': sf_screen_copy(uux,uuy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'V': sf_screen_copy(uvx,uvy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'W': sf_screen_copy(uwx,uwy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'X': sf_screen_copy(uxx,uxy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'Y': sf_screen_copy(uyx,uyy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'Z': sf_screen_copy(uzx,uzy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'A': sf_screen_copy(uax,uay, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'B': sf_screen_copy(ubx,uby, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'C': sf_screen_copy(ucx,ucy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'D': sf_screen_copy(udx,udy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'E': sf_screen_copy(uex,uey, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'F': sf_screen_copy(ufx,ufy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'G': sf_screen_copy(ugx,ugy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'H': sf_screen_copy(uhx,uhy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'I': sf_screen_copy(uix,uiy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'J': sf_screen_copy(ujx,ujy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'K': sf_screen_copy(ukx,uky, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'L': sf_screen_copy(ulx,uly, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'M': sf_screen_copy(umx,umy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'N': sf_screen_copy(unx,uny, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'O': sf_screen_copy(uox,uoy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'P': sf_screen_copy(upx,upy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'Q': sf_screen_copy(uqx,uqy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'R': sf_screen_copy(urx,ury, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'S': sf_screen_copy(usx,usy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'T': sf_screen_copy(utx,uty, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'U': sf_screen_copy(uux,uuy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'V': sf_screen_copy(uvx,uvy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'W': sf_screen_copy(uwx,uwy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'X': sf_screen_copy(uxx,uxy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'Y': sf_screen_copy(uyx,uyy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case 'Z': sf_screen_copy(uzx,uzy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '0': sf_screen_copy(zerox,zeroy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '1': sf_screen_copy(onex,oney, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '2': sf_screen_copy(twox,twoy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '3': sf_screen_copy(threex,threey, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '4': sf_screen_copy(fourx,foury, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '5': sf_screen_copy(fivex,fivey, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '6': sf_screen_copy(sixx,sixy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '7': sf_screen_copy(sevenx,seveny, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '8': sf_screen_copy(eightx,eighty, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '9': sf_screen_copy(ninex,niney, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '0': sf_screen_copy(zerox,zeroy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '1': sf_screen_copy(onex,oney, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '2': sf_screen_copy(twox,twoy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '3': sf_screen_copy(threex,threey, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '4': sf_screen_copy(fourx,foury, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '5': sf_screen_copy(fivex,fivey, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '6': sf_screen_copy(sixx,sixy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '7': sf_screen_copy(sevenx,seveny, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '8': sf_screen_copy(eightx,eighty, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '9': sf_screen_copy(ninex,niney, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case ' ': sf_screen_copy(spacex,spacey, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '!': sf_screen_copy(exclax,exclay, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '^': sf_screen_copy(heartx,hearty, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '@': sf_screen_copy(copyx,copyy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
}
case ' ': sf_screen_copy(spacex,spacey, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '!': sf_screen_copy(exclax,exclay, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '^': sf_screen_copy(heartx,hearty, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '@': sf_screen_copy(copyx,copyy, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '<': sf_screen_copy(uplbx,uplby, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '[': sf_screen_copy(dwnlbx,dwnlby, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '_': sf_screen_copy(midbx,midby, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '>': sf_screen_copy(uprbx,uprby, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case ']': sf_screen_copy(dwnrbx,dwnrby, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
case '|': sf_screen_copy(latbx,latby, FONT_SIZE_X,FONT_SIZE_Y, x,y, FONT_PAGE, back_page, log_op); break;
}
}
void sf_draw_text(char *text, int x, int y, char text_color, char border_color)
{
char log_op = LOGICAL_IMP;
char log_op = LOGICAL_IMP;
while (*text)
{
if (border_color != 0)
{
// Color border, original color (white) text.
LMMV(x, y + back_page * 256, FONT_SIZE_X, FONT_SIZE_Y, 16-border_color, LOGICAL_IMP);
sf_draw_char(*text, x, y, LOGICAL_TIMP);
}
else if (text_color == 0)
{
// Transparent border, original color (white) text.
sf_draw_char(*text, x, y, LOGICAL_IMP);
}
else
{
// Transparent border, color text.
LMMV(x, y + back_page * 256, FONT_SIZE_X, FONT_SIZE_Y, 15-text_color, LOGICAL_IMP);
sf_draw_char(*text, x, y, LOGICAL_XOR);
sf_draw_char(*text, x, y, LOGICAL_AND);
}
while (*text)
{
if (border_color != 0)
{
// Color border.
LMMV(x, y + back_page * 256, FONT_SIZE_X, FONT_SIZE_Y, border_color, LOGICAL_IMP);
sf_draw_char(*text, x, y, LOGICAL_TIMP);
text++;
x += FONT_SIZE_X;
}
// Only for color text.
if (text_color != 0)
{
LMMV(x, y + back_page * 256, FONT_SIZE_X, FONT_SIZE_Y, 15-text_color, LOGICAL_IMP);
sf_draw_char(*text, x, y, LOGICAL_XOR);
sf_draw_char(*text, x, y, LOGICAL_AND);
}
}
else
{
// Transparent border.
sf_draw_char(*text, x, y, LOGICAL_IMP);
// Only for color text.
if (text_color != 0)
{
LMMV(x, y + back_page * 256, FONT_SIZE_X, FONT_SIZE_Y, 15-text_color, LOGICAL_IMP);
sf_draw_char(*text, x, y, LOGICAL_XOR);
sf_draw_char(*text, x, y, LOGICAL_AND);
}
}
text++;
x += FONT_SIZE_X;
}
}

2
font.h
View File

@@ -11,6 +11,6 @@
// Prototypes.
//------------------------------------------------------------------
void sf_draw_text(char *text, int x, int y, char border_color, char text_color);
void sf_draw_text(char *text, int x, int y, char text_color, char border_color);
#endif

View File

@@ -1,3 +1,5 @@
@echo off
img2sf5 ./art/bg.png ./dsk/bg.sf5
img2sf5 ./art/walls.png ./dsk/walls.sf5
img2sf5 ./art/walls.png ./dsk/walls.sf5
img2sf5 ./art/strtscr.png ./dsk/strtscr.sf5
img2sf5 ./art/intro01.png ./dsk/intro01.sf5

14
main.c
View File

@@ -260,7 +260,7 @@ void sf_blit_screen(void)
back_page = !back_page;
SetDisplayPage(!back_page);
SetActivePage(back_page);
SetActivePage(back_page);
db_state = Finished;
}
@@ -286,7 +286,7 @@ void sf_set_game_state(char new_state)
switch(game_state)
{
case StartScreen: sf_set_startscreen_state(); break;
case Dungeon: sf_set_dungeon_state(); break;
case Dungeon: sf_set_dungeon_state(); break;
}
}
@@ -295,9 +295,9 @@ void main(void)
{
// If MSX is Turbo-R Switch CPU to Z80 Mode.
if(ReadMSXtype() == 3)
{
{
ChangeCPU(0);
}
}
// Init random.
srand(rand_seed);
@@ -329,7 +329,9 @@ void main(void)
// Load screens.
SetSC5Palette((Palette *)palette);
sf_load_sf5_image("BG.SF5", 256 * SPRITES_PAGE, load_buffer);
sf_load_sf5_image("WALLS.SF5", 256 * WALLS_PAGE, load_buffer);
sf_load_sf5_image("intro01.SF5", 256 * 0, load_buffer);
//sf_load_sf5_image("STRTSCR.SF5", 256 * 0, load_buffer);
//sf_load_sf5_image("WALLS.SF5", 256 * WALLS_PAGE, load_buffer);
// Set interrupt.
InitInterruptHandler();
@@ -352,7 +354,7 @@ void main(void)
switch (game_state)
{
case StartScreen: sf_update_startscreen_state(); break;
case Dungeon: sf_update_dungeon_state(); break;
case Dungeon: sf_update_dungeon_state(); break;
}
}
}

View File

@@ -17,21 +17,55 @@
void sf_draw_startscreen_intro_text(void)
{
// Intro text.
db_state = Updating;
Cls();
SetColors(0, 0, 0);
sf_draw_text("@SAFFRON SOFT 2020", 8*6, 100, 2, 0);
// PutText(0, 90, "********************************", LOGICAL_IMP);
db_state = ReadyToSwitch;
sf_wait(200);
db_state = Updating;
// Cls();
SetColors(0, 0, 14);
// Go to dungeon state.
sf_set_game_state(Dungeon);
sf_draw_text("Deep in space far away", 8*4, 8*19, 15, 14);
sf_draw_text("from the inhabited regions", 8*3, 8*19+9, 15, 14);
sf_draw_text("of the galaxy lies a long", 8*3, 8*19+9+9, 15, 14);
sf_draw_text("forgotten alien station", 8*3, 8*19+9+9+9, 15, 14);
// sf_draw_text("PRESS SPACE KEY", 8*8, 8*18, 15, 14);
// sf_draw_text("@2020 SAFFRON SOFT", 8*7, 8*24, 15, 14);
//sf_draw_text("@SAFFRON SOFT 2020", 8*6, 100, 2, 0);
// PutText(0, 90, "********************************", LOGICAL_IMP);
/*
sf_draw_text("<______________>", 8*6, 70, 8, 0);
sf_draw_text("| |", 8*6, 70+8, 8, 0);
sf_draw_text("[______________]", 8*6, 70+8+8, 8, 0);
sf_draw_text("SAFFRON SOFT", 8*6+8+8, 70+8, 15, 0);
*/
/*
sf_draw_text("<_____COMMAND_____>", 8*6, 8+8, 13, 14);
sf_draw_text("| |", 8*6, 8+8+8, 13, 14);
sf_draw_text("| |", 8*6, 8+8+8+8, 13, 14);
sf_draw_text("| |", 8*6, 8+8+8+8+8, 13, 14);
sf_draw_text("| |", 8*6, 8+8+8+8+8+8, 13, 14);
sf_draw_text("| |", 8*6, 8+8+8+8+8+8+8, 13, 14);
sf_draw_text("| |", 8*6, 8+8+8+8+8+8+8+8, 13, 14);
sf_draw_text("| |", 8*6, 8+8+8+8+8+8+8+8+8, 13, 14);
sf_draw_text("| |", 8*6, 8+8+8+8+8+8+8+8+8+8, 13, 14);
sf_draw_text("[_________________]", 8*6, 8+8+8+8+8+8+8+8+8+8+8, 13, 14);
sf_draw_text("^TALK SPELL", 8*6+8, 8+8+8+8, 15, 14);
sf_draw_text("STATUS ITEM", 8*6+8+8, 8+8+8+8+8+8, 15, 14);
sf_draw_text("EQUIP TACTICS", 8*6+8+8, 8+8+8+8+8+8+8+8, 15, 14);
sf_draw_text("DOOR SEARCH", 8*6+8+8, 8+8+8+8+8+8+8+8+8+8, 15, 14);
*/
db_state = ReadyToSwitch;
sf_wait(1000);
// Go to dungeon state.
sf_set_game_state(Dungeon);
}
void sf_set_startscreen_state(void)
{
sf_draw_startscreen_intro_text();
sf_draw_startscreen_intro_text();
}
void sf_update_startscreen_state(void)