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
|
||||
|
||||
#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)
|
||||
|
||||
|
|
|
@ -32,6 +32,8 @@
|
|||
#define MEDIUM_MAP_LINE1 RGB555(25,20,17)
|
||||
#define MEDIUM_MAP_LINE2 RGB555(31,22,6)
|
||||
|
||||
#define AUTOMAP_FONT_COLOR (RGB555(0,0,0)|FONT_TSHADOW_GRAY)
|
||||
|
||||
word stairs_colors[7]=
|
||||
{AUTOMAP_LINE1,
|
||||
RGB555(14,12,11),
|
||||
|
@ -162,7 +164,7 @@ void ukaz_vsechny_texty_v_mape(void)
|
|||
char *c;
|
||||
|
||||
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);
|
||||
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);
|
||||
c = va_arg(msg->data, char *);
|
||||
|
||||
set_font(H_FLITT5,NOSHADOW(0));
|
||||
set_font(H_FLITT5,AUTOMAP_FONT_COLOR);
|
||||
strcpy(text,c);
|
||||
save=(char *)getmem(strlen(text)+1);
|
||||
strcpy(save,text);
|
||||
|
@ -243,15 +245,18 @@ void psani_poznamek_event(EVENT_MSG *msg,void **data)
|
|||
char c;
|
||||
|
||||
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)
|
||||
{
|
||||
switch (c)
|
||||
{
|
||||
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);
|
||||
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)
|
||||
{
|
||||
text[index]=c;
|
||||
|
@ -290,7 +295,7 @@ int hledej_poznamku(int x,int y,int depth)
|
|||
y=(y-197)+map_yr;
|
||||
if (texty_v_mape==NULL) return -1;
|
||||
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++)
|
||||
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++) {}
|
||||
if (i!=4) {set_font(H_FSYMB,0x3e0);print_symbol(x,y,'T');}
|
||||
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
|
||||
|
@ -477,7 +482,7 @@ static void zobraz_herni_cas(void)
|
|||
strcat(text,cas);
|
||||
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);
|
||||
outtext(text);
|
||||
}
|
||||
|
@ -878,7 +883,7 @@ void wire_kniha(void)
|
|||
put_picture(0,0,ablock(H_KNIHA));
|
||||
change_click_map(clk_kniha,CLK_KNIHA);
|
||||
unwire_proc=unwire_kniha;
|
||||
set_font(H_FONT6,NOSHADOW(0));
|
||||
set_font(H_FONT6,AUTOMAP_FONT_COLOR);
|
||||
write_book(cur_page);
|
||||
ukaz_mysku();
|
||||
showview(0,0,0,0);
|
||||
|
|
|
@ -43,15 +43,15 @@
|
|||
|
||||
#define HUMAN_ADJUST 97
|
||||
|
||||
unsigned short barvy_skupin[POCET_POSTAV+1]=
|
||||
unsigned int barvy_skupin[POCET_POSTAV+1]=
|
||||
{
|
||||
RGB555(8,8,8),
|
||||
RGB555(31,28,00),
|
||||
RGB555(00,23,06),
|
||||
RGB555(31,11,13),
|
||||
RGB555(22,16,31),
|
||||
RGB555(28,13,31),
|
||||
RGB555(00,29,26)
|
||||
RGB555(8,8,8)|FONT_TSHADOW,
|
||||
RGB555(31,28,00)|FONT_TSHADOW,
|
||||
RGB555(00,23,06)|FONT_TSHADOW,
|
||||
RGB555(31,11,13)|FONT_TSHADOW,
|
||||
RGB555(22,16,31)|FONT_TSHADOW,
|
||||
RGB555(28,13,31)|FONT_TSHADOW,
|
||||
RGB555(00,29,26)|FONT_TSHADOW
|
||||
};
|
||||
|
||||
char reverse_draw=0;
|
||||
|
|
|
@ -891,8 +891,8 @@ static int cur_story_pos=0;
|
|||
static char load_mode;
|
||||
|
||||
#define SLOT_SPACE 33
|
||||
#define SELECT_COLOR RGB555(31,31,31)
|
||||
#define NORMAL_COLOR RGB555(10,31,10)
|
||||
#define SELECT_COLOR (RGB555(31,31,31)|FONT_TSHADOW)
|
||||
#define NORMAL_COLOR (RGB555(12,31,12)|FONT_TSHADOW)
|
||||
#define STORY_X 57
|
||||
#define STORY_Y 50
|
||||
#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 uint8_t cur_group; //cislo aktualni skupiny
|
||||
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_mode; //rezim bitvy 0=programovani
|
||||
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);
|
||||
void objekty_mimo(void);
|
||||
void mouse_set_cursor(int cursor);
|
||||
#define FONT_TSHADOW 0x10000
|
||||
#define FONT_TSHADOW_GRAY 0x30000
|
||||
void set_font(int font,int c1,...);
|
||||
void bott_draw(char);
|
||||
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 BAR_COLOR RGB555(15,13,11)
|
||||
#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_Y 100
|
||||
#define S_WINPOS_XS 320
|
||||
|
|
|
@ -181,6 +181,7 @@ static T_CLK_MAP message_win[]=
|
|||
};
|
||||
|
||||
#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)
|
||||
{
|
||||
|
@ -190,7 +191,7 @@ void open_message_win(int pocet_textu,char **texts)
|
|||
int i;
|
||||
char *text;
|
||||
|
||||
set_font(H_FBOLD,MSG_COLOR1);
|
||||
set_font(H_FBOLD,MSG_COLOR_T);
|
||||
text=alloca(strlen(texts[0])+2);
|
||||
zalamovani(texts[0],text,MES_MAXSIZE,&maxxs,&maxys);
|
||||
maxws=0;wsys=0;
|
||||
|
|
|
@ -81,7 +81,7 @@ static TSHOP_ALL_STATE shop_all_state;
|
|||
#define INV_YS 60
|
||||
#define INV_NAME_X 129
|
||||
#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_INFO_X 298
|
||||
#define INV_INFO_Y 343
|
||||
|
|
|
@ -462,6 +462,8 @@ void mouse_set_default(int cursor)
|
|||
void set_font(int font,int c1,...)
|
||||
{
|
||||
static int last_font=-1;
|
||||
va_list lst;
|
||||
va_start(lst, c1);
|
||||
int i;
|
||||
|
||||
if (last_font!=-1 && last_font!=font)
|
||||
|
@ -476,17 +478,20 @@ void set_font(int font,int c1,...)
|
|||
charcolors[0]=0xFFFF;
|
||||
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;
|
||||
for (i=1;i<5;i++) charcolors[i]=c1 & ~0x20;
|
||||
}
|
||||
else if (c1==-2)
|
||||
{
|
||||
int *p;
|
||||
|
||||
p=&c1;p++;
|
||||
for (i=0;i<5;i++) charcolors[i]=*p++;
|
||||
for (i=0;i<7;i++) charcolors[i]=va_arg(lst, int);
|
||||
}
|
||||
last_font=font;
|
||||
default_font=curfont;
|
||||
|
@ -1593,7 +1598,7 @@ void show_help(const char *arg0) {
|
|||
}
|
||||
|
||||
void show_help_short() {
|
||||
printf("add -h to print help\n");
|
||||
printf("Use -h for help\n");
|
||||
}
|
||||
|
||||
void quit_cb_exit_wait(void *) {
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "memman.h"
|
||||
|
||||
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;
|
||||
word *writepos,writeposx;
|
||||
byte fontdsize=0;
|
||||
|
|
|
@ -147,7 +147,10 @@ chr5:
|
|||
if (al == 0) goto chr2;
|
||||
if (al >= 8) goto chr3;
|
||||
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;
|
||||
goto chr4;
|
||||
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 *c = new INI_CONFIG;
|
||||
|
||||
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) {
|
||||
INI_CONFIG::Config::iterator iter = c->data.find(section);
|
||||
if (iter == c->data.end()) {
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
#define BGSWITCHBIT 0x0020
|
||||
|
||||
|
||||
#define SKELDALINI "skeldal.ini"
|
||||
|
||||
#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 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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue