mirror of
https://github.com/ondra-novak/gates_of_skeldal.git
synced 2025-07-14 10:21:51 -04:00
improve fonts and fix bugs
This commit is contained in:
parent
a8a87d514c
commit
99378da298
12 changed files with 55 additions and 35 deletions
|
@ -31,7 +31,8 @@ char *AutodetectWinAmp();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define RGB888(r,g,b) ((unsigned short)((((r)<<8)&0xF800) | (((g)<<3) & 0x7C0) | ((b)>>3)))
|
#define RGB888(r,g,b) ((unsigned short)((((r)<<8)&0xF800) | (((g)<<3) & 0x7C0) | ((b)>>3)))
|
||||||
#define RGB555(r,g,b) ((unsigned short)(((r)<<11) | ((g)<<6) | (b)))
|
#define RGB555(r,g,b) ((unsigned short)(((r)<<11) | (((g) & 0xF8)<<6) | (b)))
|
||||||
|
#define RGB555_ALPHA(r,g,b) ((unsigned short)(((r)<<11) | ((((g) & 0xF8) | 0x04)<<6) | (b)))
|
||||||
|
|
||||||
#pragma warning (disable : 4244 4761 4133)
|
#pragma warning (disable : 4244 4761 4133)
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,8 @@
|
||||||
#define MEDIUM_MAP_LINE1 RGB555(25,20,17)
|
#define MEDIUM_MAP_LINE1 RGB555(25,20,17)
|
||||||
#define MEDIUM_MAP_LINE2 RGB555(31,22,6)
|
#define MEDIUM_MAP_LINE2 RGB555(31,22,6)
|
||||||
|
|
||||||
|
#define AUTOMAP_FONT_COLOR (RGB555(0,0,0)|FONT_TSHADOW_GRAY)
|
||||||
|
|
||||||
word stairs_colors[7]=
|
word stairs_colors[7]=
|
||||||
{AUTOMAP_LINE1,
|
{AUTOMAP_LINE1,
|
||||||
RGB555(14,12,11),
|
RGB555(14,12,11),
|
||||||
|
@ -162,7 +164,7 @@ void ukaz_vsechny_texty_v_mape(void)
|
||||||
char *c;
|
char *c;
|
||||||
|
|
||||||
if (texty_v_mape==NULL) return;
|
if (texty_v_mape==NULL) return;
|
||||||
set_font(H_FLITT5,NOSHADOW(0));
|
set_font(H_FLITT5,AUTOMAP_FONT_COLOR);
|
||||||
cn=str_count(texty_v_mape);
|
cn=str_count(texty_v_mape);
|
||||||
for(i=0;i<cn;i++)
|
for(i=0;i<cn;i++)
|
||||||
{
|
{
|
||||||
|
@ -215,7 +217,7 @@ void psani_poznamek_event(EVENT_MSG *msg,void **data)
|
||||||
y = va_arg(msg->data, int);
|
y = va_arg(msg->data, int);
|
||||||
c = va_arg(msg->data, char *);
|
c = va_arg(msg->data, char *);
|
||||||
|
|
||||||
set_font(H_FLITT5,NOSHADOW(0));
|
set_font(H_FLITT5,AUTOMAP_FONT_COLOR);
|
||||||
strcpy(text,c);
|
strcpy(text,c);
|
||||||
save=(char *)getmem(strlen(text)+1);
|
save=(char *)getmem(strlen(text)+1);
|
||||||
strcpy(save,text);
|
strcpy(save,text);
|
||||||
|
@ -243,15 +245,18 @@ void psani_poznamek_event(EVENT_MSG *msg,void **data)
|
||||||
char c;
|
char c;
|
||||||
|
|
||||||
c=quit_request_as_escape(va_arg(msg->data, int));
|
c=quit_request_as_escape(va_arg(msg->data, int));
|
||||||
set_font(H_FLITT5,NOSHADOW(0));
|
set_font(H_FLITT5,AUTOMAP_FONT_COLOR);
|
||||||
if (c)
|
if (c)
|
||||||
{
|
{
|
||||||
switch (c)
|
switch (c)
|
||||||
{
|
{
|
||||||
case 8:if (index) index--; text[index]=0;break;
|
case 8:if (index) index--; text[index]=0;break;
|
||||||
case 27:strcpy(text,save);break;
|
case 27:strcpy(text,save);
|
||||||
|
[[fallthrough]];
|
||||||
case 13:save_text_to_map(x,y,cur_depth,text);
|
case 13:save_text_to_map(x,y,cur_depth,text);
|
||||||
send_message(E_DONE,E_MOUSE,psani_poznamek_event);msg->msg=-2;return;
|
send_message(E_DONE,E_MOUSE,psani_poznamek_event);
|
||||||
|
msg->msg=-2;
|
||||||
|
return;
|
||||||
default:if (c>=32)
|
default:if (c>=32)
|
||||||
{
|
{
|
||||||
text[index]=c;
|
text[index]=c;
|
||||||
|
@ -290,7 +295,7 @@ int hledej_poznamku(int x,int y,int depth)
|
||||||
y=(y-197)+map_yr;
|
y=(y-197)+map_yr;
|
||||||
if (texty_v_mape==NULL) return -1;
|
if (texty_v_mape==NULL) return -1;
|
||||||
count=str_count(texty_v_mape);
|
count=str_count(texty_v_mape);
|
||||||
set_font(H_FLITT5,NOSHADOW(0));
|
set_font(H_FLITT5,AUTOMAP_FONT_COLOR);
|
||||||
for(i=0;i<count;i++)
|
for(i=0;i<count;i++)
|
||||||
if (texty_v_mape[i]!=NULL)
|
if (texty_v_mape[i]!=NULL)
|
||||||
{
|
{
|
||||||
|
@ -412,7 +417,7 @@ static void draw_amap_sector(int x,int y,int sector,int mode,int turn,int line1,
|
||||||
for(i=0,sd=map_sides+sector*4;i<4 && ~sd->flags & SD_SEC_VIS;i++,sd++) {}
|
for(i=0,sd=map_sides+sector*4;i<4 && ~sd->flags & SD_SEC_VIS;i++,sd++) {}
|
||||||
if (i!=4) {set_font(H_FSYMB,0x3e0);print_symbol(x,y,'T');}
|
if (i!=4) {set_font(H_FSYMB,0x3e0);print_symbol(x,y,'T');}
|
||||||
break;
|
break;
|
||||||
case S_DIRA:set_font(H_FSYMB,NOSHADOW(0));print_symbol(x,y,'N');break;
|
case S_DIRA:set_font(H_FSYMB,AUTOMAP_FONT_COLOR);print_symbol(x,y,'N');break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -477,7 +482,7 @@ static void zobraz_herni_cas(void)
|
||||||
strcat(text,cas);
|
strcat(text,cas);
|
||||||
old_time=game_time;
|
old_time=game_time;
|
||||||
}
|
}
|
||||||
set_font(H_FONT6,NOSHADOW(0));
|
set_font(H_FONT6,AUTOMAP_FONT_COLOR);
|
||||||
set_aligned_position(635,372,2,2,text);
|
set_aligned_position(635,372,2,2,text);
|
||||||
outtext(text);
|
outtext(text);
|
||||||
}
|
}
|
||||||
|
@ -878,7 +883,7 @@ void wire_kniha(void)
|
||||||
put_picture(0,0,ablock(H_KNIHA));
|
put_picture(0,0,ablock(H_KNIHA));
|
||||||
change_click_map(clk_kniha,CLK_KNIHA);
|
change_click_map(clk_kniha,CLK_KNIHA);
|
||||||
unwire_proc=unwire_kniha;
|
unwire_proc=unwire_kniha;
|
||||||
set_font(H_FONT6,NOSHADOW(0));
|
set_font(H_FONT6,AUTOMAP_FONT_COLOR);
|
||||||
write_book(cur_page);
|
write_book(cur_page);
|
||||||
ukaz_mysku();
|
ukaz_mysku();
|
||||||
showview(0,0,0,0);
|
showview(0,0,0,0);
|
||||||
|
|
|
@ -43,15 +43,15 @@
|
||||||
|
|
||||||
#define HUMAN_ADJUST 97
|
#define HUMAN_ADJUST 97
|
||||||
|
|
||||||
unsigned short barvy_skupin[POCET_POSTAV+1]=
|
unsigned int barvy_skupin[POCET_POSTAV+1]=
|
||||||
{
|
{
|
||||||
RGB555(8,8,8),
|
RGB555(8,8,8)|FONT_TSHADOW,
|
||||||
RGB555(31,28,00),
|
RGB555(31,28,00)|FONT_TSHADOW,
|
||||||
RGB555(00,23,06),
|
RGB555(00,23,06)|FONT_TSHADOW,
|
||||||
RGB555(31,11,13),
|
RGB555(31,11,13)|FONT_TSHADOW,
|
||||||
RGB555(22,16,31),
|
RGB555(22,16,31)|FONT_TSHADOW,
|
||||||
RGB555(28,13,31),
|
RGB555(28,13,31)|FONT_TSHADOW,
|
||||||
RGB555(00,29,26)
|
RGB555(00,29,26)|FONT_TSHADOW
|
||||||
};
|
};
|
||||||
|
|
||||||
char reverse_draw=0;
|
char reverse_draw=0;
|
||||||
|
|
|
@ -891,8 +891,8 @@ static int cur_story_pos=0;
|
||||||
static char load_mode;
|
static char load_mode;
|
||||||
|
|
||||||
#define SLOT_SPACE 33
|
#define SLOT_SPACE 33
|
||||||
#define SELECT_COLOR RGB555(31,31,31)
|
#define SELECT_COLOR (RGB555(31,31,31)|FONT_TSHADOW)
|
||||||
#define NORMAL_COLOR RGB555(10,31,10)
|
#define NORMAL_COLOR (RGB555(12,31,12)|FONT_TSHADOW)
|
||||||
#define STORY_X 57
|
#define STORY_X 57
|
||||||
#define STORY_Y 50
|
#define STORY_Y 50
|
||||||
#define STORY_XS (298-57)
|
#define STORY_XS (298-57)
|
||||||
|
|
|
@ -580,7 +580,7 @@ extern int num_ofsets[]; //tabulka offsetu pro steny
|
||||||
extern int back_color; //cislo barvy pozadi
|
extern int back_color; //cislo barvy pozadi
|
||||||
extern uint8_t cur_group; //cislo aktualni skupiny
|
extern uint8_t cur_group; //cislo aktualni skupiny
|
||||||
extern uint8_t group_select; //1 = prave byla sestavena nova skupina
|
extern uint8_t group_select; //1 = prave byla sestavena nova skupina
|
||||||
extern unsigned short barvy_skupin[POCET_POSTAV+1]; //cisla barev skupin
|
extern unsigned int barvy_skupin[POCET_POSTAV+1]; //cisla barev skupin
|
||||||
extern char battle; //jednicka znaci ze bezi bitva
|
extern char battle; //jednicka znaci ze bezi bitva
|
||||||
extern char battle_mode; //rezim bitvy 0=programovani
|
extern char battle_mode; //rezim bitvy 0=programovani
|
||||||
extern char neco_v_pohybu; //jednicka znaci ze se nektere potvory jeste hejbou
|
extern char neco_v_pohybu; //jednicka znaci ze se nektere potvory jeste hejbou
|
||||||
|
@ -668,6 +668,8 @@ void delete_from_timer(int id);
|
||||||
THE_TIMER *find_timer(int id);
|
THE_TIMER *find_timer(int id);
|
||||||
void objekty_mimo(void);
|
void objekty_mimo(void);
|
||||||
void mouse_set_cursor(int cursor);
|
void mouse_set_cursor(int cursor);
|
||||||
|
#define FONT_TSHADOW 0x10000
|
||||||
|
#define FONT_TSHADOW_GRAY 0x30000
|
||||||
void set_font(int font,int c1,...);
|
void set_font(int font,int c1,...);
|
||||||
void bott_draw(char);
|
void bott_draw(char);
|
||||||
const void *bott_draw_proc(const void *p, int32_t *s);
|
const void *bott_draw_proc(const void *p, int32_t *s);
|
||||||
|
@ -1648,7 +1650,7 @@ void spell_teleport(int cil,int owner, int teleport_target);
|
||||||
#define WINCOLOR RGB555(24,24,24) // 11000 11000 0 11000
|
#define WINCOLOR RGB555(24,24,24) // 11000 11000 0 11000
|
||||||
#define BAR_COLOR RGB555(15,13,11)
|
#define BAR_COLOR RGB555(15,13,11)
|
||||||
#define SETUP_COL1 RGB555(20,31,20)
|
#define SETUP_COL1 RGB555(20,31,20)
|
||||||
#define SETUP_COL2 RGB555(31,31,12)
|
#define SETUP_COL2 (RGB555(31,31,16) | FONT_TSHADOW)
|
||||||
#define S_WINPOS_X 100
|
#define S_WINPOS_X 100
|
||||||
#define S_WINPOS_Y 100
|
#define S_WINPOS_Y 100
|
||||||
#define S_WINPOS_XS 320
|
#define S_WINPOS_XS 320
|
||||||
|
|
|
@ -181,6 +181,7 @@ static T_CLK_MAP message_win[]=
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MSG_COLOR1 (RGB555(30,30,23))
|
#define MSG_COLOR1 (RGB555(30,30,23))
|
||||||
|
#define MSG_COLOR_T -2,RGB555_ALPHA(0,0,0),RGB555(24,31,24),RGB555(24,31,24),RGB555(24,31,24),RGB555(24,31,24)
|
||||||
|
|
||||||
void open_message_win(int pocet_textu,char **texts)
|
void open_message_win(int pocet_textu,char **texts)
|
||||||
{
|
{
|
||||||
|
@ -190,7 +191,7 @@ void open_message_win(int pocet_textu,char **texts)
|
||||||
int i;
|
int i;
|
||||||
char *text;
|
char *text;
|
||||||
|
|
||||||
set_font(H_FBOLD,MSG_COLOR1);
|
set_font(H_FBOLD,MSG_COLOR_T);
|
||||||
text=alloca(strlen(texts[0])+2);
|
text=alloca(strlen(texts[0])+2);
|
||||||
zalamovani(texts[0],text,MES_MAXSIZE,&maxxs,&maxys);
|
zalamovani(texts[0],text,MES_MAXSIZE,&maxxs,&maxys);
|
||||||
maxws=0;wsys=0;
|
maxws=0;wsys=0;
|
||||||
|
|
|
@ -81,7 +81,7 @@ static TSHOP_ALL_STATE shop_all_state;
|
||||||
#define INV_YS 60
|
#define INV_YS 60
|
||||||
#define INV_NAME_X 129
|
#define INV_NAME_X 129
|
||||||
#define INV_NAME_Y 349
|
#define INV_NAME_Y 349
|
||||||
#define INV_NAME_COL (RGB555(10,31,31))
|
#define INV_NAME_COL (RGB555(10,31,31)|FONT_TSHADOW_GRAY)
|
||||||
#define INV_DESK 266
|
#define INV_DESK 266
|
||||||
#define INV_INFO_X 298
|
#define INV_INFO_X 298
|
||||||
#define INV_INFO_Y 343
|
#define INV_INFO_Y 343
|
||||||
|
|
|
@ -462,6 +462,8 @@ void mouse_set_default(int cursor)
|
||||||
void set_font(int font,int c1,...)
|
void set_font(int font,int c1,...)
|
||||||
{
|
{
|
||||||
static int last_font=-1;
|
static int last_font=-1;
|
||||||
|
va_list lst;
|
||||||
|
va_start(lst, c1);
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (last_font!=-1 && last_font!=font)
|
if (last_font!=-1 && last_font!=font)
|
||||||
|
@ -476,17 +478,20 @@ void set_font(int font,int c1,...)
|
||||||
charcolors[0]=0xFFFF;
|
charcolors[0]=0xFFFF;
|
||||||
for (i=1;i<5;i++) charcolors[i]=c1 & ~0x20;
|
for (i=1;i<5;i++) charcolors[i]=c1 & ~0x20;
|
||||||
}
|
}
|
||||||
else
|
else if (c1 & FONT_TSHADOW) {
|
||||||
|
if ((c1 & FONT_TSHADOW_GRAY) == FONT_TSHADOW_GRAY)
|
||||||
|
charcolors[0]=RGB555_ALPHA(16,16,15);
|
||||||
|
else
|
||||||
|
charcolors[0]=BGSWITCHBIT;
|
||||||
|
for (i=1;i<5;i++) charcolors[i]=c1 & ~0x20;
|
||||||
|
}else
|
||||||
{
|
{
|
||||||
charcolors[0]=0;
|
charcolors[0]=0;
|
||||||
for (i=1;i<5;i++) charcolors[i]=c1 & ~0x20;
|
for (i=1;i<5;i++) charcolors[i]=c1 & ~0x20;
|
||||||
}
|
}
|
||||||
else if (c1==-2)
|
else if (c1==-2)
|
||||||
{
|
{
|
||||||
int *p;
|
for (i=0;i<7;i++) charcolors[i]=va_arg(lst, int);
|
||||||
|
|
||||||
p=&c1;p++;
|
|
||||||
for (i=0;i<5;i++) charcolors[i]=*p++;
|
|
||||||
}
|
}
|
||||||
last_font=font;
|
last_font=font;
|
||||||
default_font=curfont;
|
default_font=curfont;
|
||||||
|
@ -1593,7 +1598,7 @@ void show_help(const char *arg0) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void show_help_short() {
|
void show_help_short() {
|
||||||
printf("add -h to print help\n");
|
printf("Use -h for help\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void quit_cb_exit_wait(void *) {
|
void quit_cb_exit_wait(void *) {
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
#include "memman.h"
|
#include "memman.h"
|
||||||
|
|
||||||
word *screen;
|
word *screen;
|
||||||
word curcolor,charcolors[7] = {0x0000,RGB555(0,31,0),RGB555(0,28,0),RGB555(0,24,0),RGB555(0,20,0),0x0000,0x0000};
|
word curcolor,charcolors[7] = {RGB555_ALPHA(0,0,0),RGB555(12,31,12),RGB555(12,30,12),RGB555(12,28,12),RGB555(12,20,12),0x0000,0x0000};
|
||||||
const word *curfont;
|
const word *curfont;
|
||||||
word *writepos,writeposx;
|
word *writepos,writeposx;
|
||||||
byte fontdsize=0;
|
byte fontdsize=0;
|
||||||
|
|
|
@ -147,7 +147,10 @@ chr5:
|
||||||
if (al == 0) goto chr2;
|
if (al == 0) goto chr2;
|
||||||
if (al >= 8) goto chr3;
|
if (al >= 8) goto chr3;
|
||||||
ax = charcolors[(al-1)];
|
ax = charcolors[(al-1)];
|
||||||
if (ax == 0xffff) goto chr4;
|
if (ax == 0xFFFF) goto chr4;
|
||||||
|
if (ax & BGSWITCHBIT) {
|
||||||
|
ax = ((*ebx & 0xF7DF) + (ax & 0xF7DF)) >> 1;
|
||||||
|
}
|
||||||
*ebx = ax;
|
*ebx = ax;
|
||||||
goto chr4;
|
goto chr4;
|
||||||
chr3:if (al == 255) goto chrend;
|
chr3:if (al == 255) goto chrend;
|
||||||
|
|
|
@ -58,10 +58,10 @@ void parseIniStream(std::istream& input, Callback &&callback) {
|
||||||
|
|
||||||
|
|
||||||
INI_CONFIG* ini_open(const char *filename) {
|
INI_CONFIG* ini_open(const char *filename) {
|
||||||
INI_CONFIG *c = new INI_CONFIG;
|
|
||||||
|
|
||||||
std::fstream input(filename);
|
std::fstream input(filename);
|
||||||
if (!input) return c;
|
if (!input) return NULL;
|
||||||
|
INI_CONFIG *c = new INI_CONFIG;
|
||||||
parseIniStream(input, [&](std::string_view section, std::string_view key, std::string_view value) {
|
parseIniStream(input, [&](std::string_view section, std::string_view key, std::string_view value) {
|
||||||
INI_CONFIG::Config::iterator iter = c->data.find(section);
|
INI_CONFIG::Config::iterator iter = c->data.find(section);
|
||||||
if (iter == c->data.end()) {
|
if (iter == c->data.end()) {
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
#define BGSWITCHBIT 0x0020
|
#define BGSWITCHBIT 0x0020
|
||||||
|
|
||||||
|
|
||||||
#define SKELDALINI "skeldal.ini"
|
#define SKELDALINI "skeldal.ini"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@ -24,7 +25,9 @@ uint32_t _bios_keybrd(int mode);
|
||||||
|
|
||||||
|
|
||||||
#define RGB888(r,g,b) ((unsigned short)((((r)<<8)&0xF800) | (((g)<<3) & 0x7C0) | ((b)>>3)))
|
#define RGB888(r,g,b) ((unsigned short)((((r)<<8)&0xF800) | (((g)<<3) & 0x7C0) | ((b)>>3)))
|
||||||
#define RGB555(r,g,b) ((unsigned short)(((r)<<11) | ((g)<<6) | (b)))
|
#define RGB555(r,g,b) (((unsigned short)(((r)<<11) | ((g)<<6) | (b))) & ~BGSWITCHBIT)
|
||||||
|
#define RGB555_ALPHA(r,g,b) (((unsigned short)(((r)<<11) | ((g)<<6) | (b))) | BGSWITCHBIT)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
///build pathname from parts
|
///build pathname from parts
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue