mirror of
https://github.com/ondra-novak/gates_of_skeldal.git
synced 2025-07-18 04:06:45 -04:00
no loading between levels, many improvements in code
This commit is contained in:
parent
77f1700902
commit
a8a87d514c
55 changed files with 628 additions and 763 deletions
|
@ -242,7 +242,7 @@ void psani_poznamek_event(EVENT_MSG *msg,void **data)
|
|||
{
|
||||
char c;
|
||||
|
||||
c=va_arg(msg->data, int);
|
||||
c=quit_request_as_escape(va_arg(msg->data, int));
|
||||
set_font(H_FLITT5,NOSHADOW(0));
|
||||
if (c)
|
||||
{
|
||||
|
@ -630,7 +630,7 @@ void *map_keyboard(EVENT_MSG *msg,void **usr)
|
|||
if (msg->msg==E_AUTOMAP_REDRAW) draw=4;
|
||||
if (msg->msg==E_KEYBOARD)
|
||||
{
|
||||
int d = va_arg(msg->data, int);
|
||||
int d = quit_request_as_escape(va_arg(msg->data, int));
|
||||
c=d>>8;
|
||||
switch (c)
|
||||
{
|
||||
|
@ -773,13 +773,13 @@ static void wire_glob_map_control(void)
|
|||
|
||||
char map_menu(int id,int xa,int ya,int xr,int yr)
|
||||
{
|
||||
char *s;
|
||||
word *c;
|
||||
const char *s;
|
||||
const word *c;
|
||||
|
||||
ya;xa;id;
|
||||
id=set_select_mode(0);
|
||||
s=ablock(H_CHARGENM);
|
||||
c=ablock(H_CHARGENM);
|
||||
c=(const word *)s;
|
||||
s+=*c*yr+xr+6;
|
||||
id=*s;
|
||||
if (!id) return 1;
|
||||
|
@ -897,7 +897,7 @@ void map_teleport_keyboard(EVENT_MSG *msg,void **usr)
|
|||
{
|
||||
usr;
|
||||
if (msg->msg==E_KEYBOARD) {
|
||||
int c = va_arg(msg->data, int);
|
||||
int c = quit_request_as_escape(va_arg(msg->data, int));
|
||||
switch (c>>8)
|
||||
{
|
||||
case 1:
|
||||
|
|
|
@ -287,14 +287,14 @@ word *bott_clear(void)
|
|||
|
||||
static void draw_small_icone(int num,int x,int y)
|
||||
{
|
||||
word *pic;
|
||||
const word *pic;
|
||||
|
||||
pic=ablock(H_POSTUP);
|
||||
num*=13;x+=num;
|
||||
put_textured_bar(pic,x,y,13,13,num,0);
|
||||
}
|
||||
|
||||
static void bott_fletna_normal(void **pp,int32_t *s)
|
||||
static const void *bott_fletna_normal(const void *pp, int32_t *s)
|
||||
{
|
||||
word *bott_scr;
|
||||
int i,x;
|
||||
|
@ -307,12 +307,13 @@ static void bott_fletna_normal(void **pp,int32_t *s)
|
|||
{
|
||||
set_aligned_position(x,32,1,1,texty[180+i]);outtext(texty[180+i]);
|
||||
}
|
||||
*pp=GetScreenAdr();
|
||||
void *out=GetScreenAdr();
|
||||
*s=GetScreenSizeBytes();
|
||||
RestoreScreen();
|
||||
return out;
|
||||
}
|
||||
|
||||
static void bott_draw_normal(void **pp,int32_t *s)
|
||||
static const void *bott_draw_normal(const void *pp, int32_t *s)
|
||||
{
|
||||
int i,j;int x,xs=0,y;
|
||||
word *bott_scr;
|
||||
|
@ -404,9 +405,10 @@ static void bott_draw_normal(void **pp,int32_t *s)
|
|||
outtext(s);
|
||||
}
|
||||
*/
|
||||
*pp=GetScreenAdr();
|
||||
void *out = GetScreenAdr();
|
||||
*s=GetScreenSizeBytes();
|
||||
RestoreScreen();
|
||||
return out;
|
||||
}
|
||||
|
||||
|
||||
|
@ -420,7 +422,7 @@ void bott_timer_draw(struct the_timer *q)
|
|||
bott_timer=NULL;
|
||||
}
|
||||
|
||||
void bott_disp_text_proc(void **pp,int32_t *ss)
|
||||
const void *bott_disp_text_proc(const void *pp, int32_t *ss)
|
||||
{
|
||||
char *p,*text;
|
||||
int y=20;
|
||||
|
@ -442,9 +444,10 @@ void bott_disp_text_proc(void **pp,int32_t *ss)
|
|||
p=strchr(p,0)+1;
|
||||
}
|
||||
while (p[0]);
|
||||
*pp=GetScreenAdr();
|
||||
void *out = GetScreenAdr();
|
||||
*ss=GetScreenSizeBytes();
|
||||
RestoreScreen();
|
||||
return out;
|
||||
}
|
||||
|
||||
void bott_disp_text(const char *text)
|
||||
|
@ -460,7 +463,7 @@ void bott_disp_text(const char *text)
|
|||
strcpy(bott_text,text);
|
||||
}
|
||||
|
||||
static void MaskPutPicture(int x, int y, char mask, word color, char blend, void *pic)
|
||||
static void MaskPutPicture(int x, int y, char mask, word color, char blend, const void *pic)
|
||||
{
|
||||
short *info=(short *)pic;
|
||||
char *data=(char *)(info+3+256);
|
||||
|
@ -479,7 +482,7 @@ static void MaskPutPicture(int x, int y, char mask, word color, char blend, void
|
|||
}
|
||||
|
||||
|
||||
void bott_draw_rune(void **pp,int32_t *ss)
|
||||
const void *bott_draw_rune(const void *pp, int32_t *ss)
|
||||
{
|
||||
int sel_zivel=showrune/10;
|
||||
int sel_rune=showrune%10;
|
||||
|
@ -504,9 +507,10 @@ void bott_draw_rune(void **pp,int32_t *ss)
|
|||
position (75,60);
|
||||
outtext(buff);
|
||||
put_picture(70,30,ablock(glob_items[showruneitem].vzhled+face_arr[0]));
|
||||
*pp=GetScreenAdr();
|
||||
void *out = GetScreenAdr();
|
||||
*ss=GetScreenSizeBytes();
|
||||
RestoreScreen();
|
||||
return out;
|
||||
}
|
||||
|
||||
void bott_disp_rune(char rune, int item)
|
||||
|
@ -527,14 +531,15 @@ void bott_text_forever()
|
|||
bott_timer=NULL;
|
||||
}
|
||||
|
||||
void bott_draw_proc(void **p,int32_t *s)
|
||||
const void *bott_draw_proc(const void *p, int32_t *s)
|
||||
{
|
||||
switch (bott_display)
|
||||
{
|
||||
case BOTT_NORMAL:bott_draw_normal(p,s);break;
|
||||
case BOTT_TEXT:bott_disp_text_proc(p,s);break;
|
||||
case BOTT_FLETNA:bott_fletna_normal(p,s);break;
|
||||
case BOTT_RUNA:bott_draw_rune(p,s);break;
|
||||
case BOTT_NORMAL:return bott_draw_normal(p,s);break;
|
||||
case BOTT_TEXT:return bott_disp_text_proc(p,s);break;
|
||||
case BOTT_FLETNA:return bott_fletna_normal(p,s);break;
|
||||
case BOTT_RUNA:return bott_draw_rune(p,s);break;
|
||||
default: return p;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -562,7 +567,7 @@ void bott_draw_fletna()
|
|||
void draw_spell(int handle,int phase,int xicht)
|
||||
{
|
||||
int x,y,i;
|
||||
word *w;
|
||||
const word *w;
|
||||
int32_t scr_linelen2 = GetScreenPitch();
|
||||
|
||||
|
||||
|
@ -721,9 +726,9 @@ static __inline int toInt( float fval )
|
|||
}
|
||||
|
||||
|
||||
static void *check_autofade(void *image, char ceil, int dark)
|
||||
static const void *check_autofade(const void *image, char ceil, int dark)
|
||||
{
|
||||
char *data=image;
|
||||
const char *data=image;
|
||||
if (data[5]==0x80)
|
||||
{
|
||||
word *xy=(word *)image;
|
||||
|
@ -781,7 +786,7 @@ int draw_basic_floor(int celx,int cely,int sector)
|
|||
|
||||
static int calc_item_shiftup(TITEM *it)
|
||||
{
|
||||
short *s;
|
||||
const short *s;
|
||||
char *c;
|
||||
int y,x,xs,ys,t;
|
||||
|
||||
|
@ -1098,7 +1103,7 @@ static char set_blind(void) {
|
|||
|
||||
extern char folow_mode;
|
||||
|
||||
static void zobraz_lodku(word *lodka, word *screen, int size)
|
||||
static void zobraz_lodku(const word *lodka, word *screen, int size)
|
||||
{
|
||||
int32_t scr_linelen2 = GetScreenPitch();
|
||||
|
||||
|
@ -1193,8 +1198,8 @@ void render_scene(int sector, int smer)
|
|||
// trace_for_bgr(smer);
|
||||
i=VIEW3D_Z-1;
|
||||
s=minimap[i][VIEW3D_X];
|
||||
if (s && !map_sectors[s].ceil) clear_buff(ablock(H_BGR_BUFF),back_color,360);
|
||||
else clear_buff(ablock(H_BGR_BUFF),back_color,80);
|
||||
if (s && !map_sectors[s].ceil) clear_buff(ablock_copy(H_BGR_BUFF),back_color,360);
|
||||
else clear_buff(ablock_copy(H_BGR_BUFF),back_color,80);
|
||||
for(i=-VIEW3D_X+1;i<VIEW3D_X;i++)
|
||||
if ((s=minimap[VIEW3D_Z-1][VIEW3D_X+i])!=0)
|
||||
if (map_coord[s].flags & MC_SHADING) back_clear(i,0);
|
||||
|
@ -1336,7 +1341,7 @@ static FX_PLAY *fx_data=NULL;
|
|||
|
||||
void draw_fx()
|
||||
{
|
||||
word *c;
|
||||
const word *c;
|
||||
FX_PLAY *fx;
|
||||
FX_PLAY **last;
|
||||
|
||||
|
|
|
@ -227,7 +227,7 @@ static void draw_other_bar()
|
|||
int i;
|
||||
int32_t scr_linelen2 = GetScreenPitch();
|
||||
|
||||
word *bbar=ablock(H_BOTTBAR);
|
||||
const word *bbar=ablock(H_BOTTBAR);
|
||||
word *screen=GetScreenAdr()+(480-102)*scr_linelen2;
|
||||
for (i=0;i<102;i++,screen+=scr_linelen2,bbar+=scr_linelen2) memcpy(screen,bbar,scr_linelen2*2);
|
||||
//put_8bit_clipped(ablock(H_GEN_OKBUTT),378*640+520+screen,0,120,102);
|
||||
|
@ -239,7 +239,7 @@ static void draw_other_bar()
|
|||
|
||||
static void display_character(THUMAN *p,char i)
|
||||
{
|
||||
word *w;
|
||||
const word *w;
|
||||
put_picture(4,SCREEN_OFFLINE,ablock(H_IOBLOUK));
|
||||
if (p->used)
|
||||
{
|
||||
|
@ -277,11 +277,11 @@ static void vypocet_perly(int angle,int xp,int yp,int *x,int *y)
|
|||
|
||||
static void zobraz_perlu(void)
|
||||
{
|
||||
word *perla;
|
||||
const word *perla;
|
||||
int x,y;
|
||||
word *scr,*sss;
|
||||
char *p;
|
||||
word *b;
|
||||
const word *b;
|
||||
int xs,ys,xxs;
|
||||
|
||||
int32_t scr_linelen2 = GetScreenPitch();
|
||||
|
@ -567,7 +567,6 @@ static void def_entries()
|
|||
|
||||
sprintf(s,CHAR_NAME,i);
|
||||
def_handle(H_GEN_POSTAVY+i,s,pcx_8bit_decomp,SR_BGRAFIKA);
|
||||
apreload(H_GEN_POSTAVY+i);
|
||||
mix_back_sound(0);
|
||||
}
|
||||
for(i=0;i<MAX_XICHTS;i++)
|
||||
|
@ -576,14 +575,13 @@ static void def_entries()
|
|||
|
||||
sprintf(s,XICHT_NAME,i);
|
||||
def_handle(H_GEN_XICHTY+i,s,pcx_8bit_decomp,SR_BGRAFIKA);
|
||||
apreload(H_GEN_XICHTY+i);
|
||||
mix_back_sound(0);
|
||||
}
|
||||
}
|
||||
|
||||
static char go_next_page(int id,int xa,int ya,int xr,int yr)
|
||||
{
|
||||
word *w;
|
||||
const word *w;
|
||||
char *b;
|
||||
|
||||
xa,ya;
|
||||
|
@ -714,7 +712,7 @@ char potvrzeno(char *text,void (*redraw)(char))
|
|||
|
||||
static char view_another_click2(int id,int xa,int ya,int xr,int yr)
|
||||
{
|
||||
short *w;
|
||||
const short *w;
|
||||
|
||||
id,xa,ya,xr,yr;
|
||||
w=ablock(H_OKNO);
|
||||
|
@ -760,21 +758,28 @@ static void enter_reaction(EVENT_MSG *msg,void **unused)
|
|||
if (msg->msg==E_KEYBOARD)
|
||||
{
|
||||
int c = va_arg(msg->data, int);
|
||||
if (c==13 && !shut_downing_text)
|
||||
if ((c >> 1) == 1 || c == E_QUIT_GAME_KEY) {
|
||||
gen_exit_editor(2,0,0,0,0);
|
||||
return;
|
||||
} else if ((c & 0xFF)==13 && !shut_downing_text)
|
||||
{
|
||||
send_message(E_KEYBOARD,13);
|
||||
bott_draw(1);
|
||||
redraw_generator(1);
|
||||
msg->msg=-1;
|
||||
was_enter=1;
|
||||
}
|
||||
was_enter=1;
|
||||
}
|
||||
}
|
||||
|
||||
static void enter_reaction2(EVENT_MSG *msg,void **_)
|
||||
{
|
||||
int c = va_arg(msg->data, int);
|
||||
if (msg->msg==E_KEYBOARD && c==13 && !shut_downing_text && ~b_disables & 0x3)
|
||||
if ((c >> 1) == 1 || c == E_QUIT_GAME_KEY) {
|
||||
gen_exit_editor(1,0,0,0,0);
|
||||
return;
|
||||
}
|
||||
if (msg->msg==E_KEYBOARD && (c & 0xFF)==13 && !shut_downing_text && ~b_disables & 0x3)
|
||||
{
|
||||
send_message(E_KEYBOARD,13);
|
||||
bott_draw(1);
|
||||
|
@ -804,6 +809,7 @@ char gen_exit_editor(int id,int xa,int ya,int xr,int yr)
|
|||
}
|
||||
else
|
||||
{
|
||||
game_display_cancel_quit_request();
|
||||
if (id==2)redraw_generator(1);
|
||||
else redraw_svitek(0);
|
||||
edit_name();
|
||||
|
@ -848,10 +854,13 @@ char enter_generator()
|
|||
{
|
||||
send_message(E_ADD,E_KEYBOARD,enter_reaction);
|
||||
EVENT_MSG *ev= task_wait_event(E_CLOSE_GEN);;
|
||||
i=va_arg(ev->data, int);
|
||||
i=ev?va_arg(ev->data, int):255;
|
||||
send_message(E_DONE,E_KEYBOARD,enter_reaction);
|
||||
if (i==3 && potvrzeno(texty[116],redraw_generator)) goto znova;
|
||||
if (i==255) return 1;
|
||||
if (i==255) {
|
||||
term_task(edit_task);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
while (cur_xicht==-1 || i==3);
|
||||
send_message(E_KEYBOARD,13);
|
||||
|
|
|
@ -67,7 +67,7 @@ char clk_touch_vyk(int sector,int side,int xr,int yr)
|
|||
else
|
||||
{
|
||||
int fc;
|
||||
word *w;
|
||||
const word *w;
|
||||
for(i=0;v->items[i];i++);
|
||||
if (i==8)
|
||||
{
|
||||
|
@ -202,7 +202,10 @@ char konec(int id,int xa,int ya,int xr,int yr)
|
|||
if (cur_mode==MD_ANOTHER_MAP) unwire_proc(),wire_proc();
|
||||
send_message(E_CLOSE_MAP);
|
||||
}
|
||||
else wire_proc();
|
||||
else {
|
||||
wire_proc();
|
||||
game_display_cancel_quit_request();
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -234,7 +237,7 @@ char start_invetory(int id,int xa,int ya,int xr,int yr)
|
|||
{
|
||||
THUMAN *p;
|
||||
int i;
|
||||
word *xs;
|
||||
const word *xs;
|
||||
|
||||
id;xa;ya;yr;
|
||||
if (cur_mode==MD_ANOTHER_MAP) unwire_proc(),wire_proc();
|
||||
|
@ -382,7 +385,7 @@ char empty_clk(int id,int xa,int ya,int xr,int yr) //tato udalost slouzi ke zrus
|
|||
|
||||
static char sing_song_clk(int id,int xa,int ya,int xr,int yr)
|
||||
{
|
||||
char *xadr;
|
||||
const char *xadr;
|
||||
word *xs;
|
||||
static char playing=0;
|
||||
char standardflute=map_sectors[viewsector].sector_type>=S_FLT_SMER &&
|
||||
|
|
|
@ -125,16 +125,16 @@ static int glob_y;
|
|||
|
||||
static int last_pgf;
|
||||
|
||||
static word *paleta;
|
||||
static const word *paleta;
|
||||
static int32_t loc_anim_render_buffer;
|
||||
static short task_num=-1;
|
||||
|
||||
void small_anm_buff(void *target,void *buff,void *paleta);
|
||||
void small_anm_buff(void *target,const void *buff,const void *paleta);
|
||||
//#pragma aux small_anm_buff parm[edi][esi][ebx] modify [eax ecx]
|
||||
void small_anm_delta(void *target,void *buff,void *paleta);
|
||||
void small_anm_delta(void *target,const void *buff,const void *paleta);
|
||||
//#pragma aux small_anm_delta parm[edi][esi][ebx] modify [eax ecx]
|
||||
|
||||
static void animace_kouzla(int act,void *data,int csize)
|
||||
static void animace_kouzla(int act,const void *data,int csize)
|
||||
{
|
||||
word *p=GetScreenAdr()+loc_anim_render_buffer;
|
||||
switch (act)
|
||||
|
@ -154,7 +154,7 @@ static void dialog_anim(va_list args)
|
|||
int speed=va_arg(args,int);
|
||||
int rep=va_arg(args,int);
|
||||
|
||||
void *anm;
|
||||
const void *anm;
|
||||
void *aptr;
|
||||
char hid;
|
||||
int spdc=0,cntr=rep,tm,tm2;
|
||||
|
@ -235,7 +235,7 @@ static T_PARAGRAPH *find_paragraph(int num)
|
|||
T_PARAGRAPH *z;
|
||||
|
||||
num+=local_pgf;
|
||||
pp=(int *)ablock(H_DIALOGY_DAT);
|
||||
pp=(int *)ablock_copy(H_DIALOGY_DAT);
|
||||
pocet=*pp;pp+=2;
|
||||
z=(T_PARAGRAPH *)pp;
|
||||
for(i=0;i<pocet;i++,z++) if (z->num==(unsigned)num) return z;
|
||||
|
@ -256,7 +256,7 @@ static int find_pgnum(char *pc)
|
|||
int pocet;
|
||||
int pcc,i;
|
||||
|
||||
pp=(int *)ablock(H_DIALOGY_DAT);
|
||||
pp=(int *)ablock_copy(H_DIALOGY_DAT);
|
||||
pocet=*pp;pp+=2;
|
||||
pcc=pc-(char *)pp-8-sizeof(T_PARAGRAPH)*pocet;
|
||||
z=(T_PARAGRAPH *)pp;
|
||||
|
@ -275,7 +275,7 @@ static void goto_paragraph(int prgf)
|
|||
if (z->visited) z->first=1;
|
||||
if (z->alt==z->num || !z->visited)
|
||||
{
|
||||
pc=((char *)ablock(H_DIALOGY_DAT))+*((int *)ablock(H_DIALOGY_DAT))*sizeof(T_PARAGRAPH)+8+z->position;
|
||||
pc=((char *)ablock_copy(H_DIALOGY_DAT))+*((int *)ablock_copy(H_DIALOGY_DAT))*sizeof(T_PARAGRAPH)+8+z->position;
|
||||
last_pgf=prgf;
|
||||
z->visited=1;
|
||||
return;
|
||||
|
@ -527,7 +527,7 @@ static int get_last_his_line()
|
|||
|
||||
static void draw_all()
|
||||
{
|
||||
void *c;
|
||||
const void *c;
|
||||
show_desc();
|
||||
if (back_pic_enable) c=back_pic;else c=ablock(H_DIALOG_PIC);
|
||||
other_draw();
|
||||
|
@ -991,7 +991,7 @@ static char ask_who_proc(int id,int xa,int ya,int xr,int yr)
|
|||
{
|
||||
THUMAN *p;
|
||||
int i;
|
||||
word *xs;
|
||||
const word *xs;
|
||||
|
||||
if (id==2)
|
||||
{
|
||||
|
@ -1367,7 +1367,7 @@ char save_dialog_info(TMPFILE_WR *f)
|
|||
T_PARAGRAPH *q;
|
||||
|
||||
SEND_LOG("(DIALOGS)(SAVELOAD) Saving dialogs info...");
|
||||
p=ablock(H_DIALOGY_DAT);
|
||||
p=ablock_copy(H_DIALOGY_DAT);
|
||||
pgf_pocet=*p;
|
||||
temp_storage_write(&pgf_pocet,1*4,f);
|
||||
siz=(pgf_pocet+3)/4;
|
||||
|
@ -1375,7 +1375,7 @@ char save_dialog_info(TMPFILE_WR *f)
|
|||
{
|
||||
c=getmem(siz);
|
||||
memset(c,0,siz);
|
||||
p=ablock(H_DIALOGY_DAT);
|
||||
p=ablock_copy(H_DIALOGY_DAT);
|
||||
q=(T_PARAGRAPH *)(p+2);
|
||||
for(i=0;i<pgf_pocet;i++)
|
||||
{
|
||||
|
@ -1399,7 +1399,7 @@ char load_dialog_info(TMPFILE_RD *f)
|
|||
T_PARAGRAPH *q;
|
||||
|
||||
SEND_LOG("(DIALOGS)(SAVELOAD) Loading dialogs info...");
|
||||
p=ablock(H_DIALOGY_DAT);
|
||||
p=ablock_copy(H_DIALOGY_DAT);
|
||||
aswap(H_DIALOGY_DAT);
|
||||
temp_storage_read(&pgf_pocet,1*4,f);
|
||||
siz=(pgf_pocet+3)/4;
|
||||
|
@ -1413,7 +1413,7 @@ char load_dialog_info(TMPFILE_RD *f)
|
|||
{
|
||||
c=getmem(siz);
|
||||
res|=(temp_storage_read(c,1*siz,f)!=siz);
|
||||
p=ablock(H_DIALOGY_DAT);
|
||||
p=ablock_copy(H_DIALOGY_DAT);
|
||||
q=(T_PARAGRAPH *)(p+2);
|
||||
for(i=0;i<pgf_pocet;i++)
|
||||
{
|
||||
|
|
|
@ -203,7 +203,7 @@ void init_mobs()
|
|||
send_message(E_ADD,E_KOUZLO_KOLO,mob_reload);
|
||||
}
|
||||
|
||||
static void register_mob_graphics(int num,char *name_part,char *anims,char *seq)
|
||||
static void register_mob_graphics(int num,char *name_part,const char *anims,const char *seq)
|
||||
{
|
||||
char fulname[14];
|
||||
char znaky[]=MOB_ZNAKY;
|
||||
|
@ -949,9 +949,9 @@ void draw_blood(int zasah,int celx,int cely,int posx,int posy)
|
|||
draw_placed_texture(ablock(H_MZASAH1+zasah-1),celx,cely,posx+64,posy+64,75,0);
|
||||
}
|
||||
*/
|
||||
static void *mob_select_palette(TMOB *p)
|
||||
static const void *mob_select_palette(TMOB *p)
|
||||
{
|
||||
char *palet;
|
||||
const char *palet;
|
||||
|
||||
palet=ablock(p->cislo_vzoru+6*16+4+monster_block);
|
||||
return palet+(p->palette)*PIC_FADE_PAL_SIZE;
|
||||
|
|
|
@ -76,7 +76,7 @@ void scroll_support_64(void *lbuf,void *src1,void *src2,int size1,void *xlat);
|
|||
//#pragma aux scroll_support_64 parm [EDI][ESI][EDX][ECX][EBX] modify [EAX];
|
||||
void scroll_support_64b(void *lbuf,void *src1,void *src2,int size1,void *xlat);
|
||||
//#pragma aux scroll_support_64b parm [EDI][ESI][EDX][ECX][EBX] modify [EAX];*/
|
||||
void fcdraw(void *source,void *target, void *table);
|
||||
void fcdraw(const void *source,void *target,const void *table);
|
||||
//#pragma aux fcdraw parm [EDX][EBX][EAX] modify [ECX ESI EDI];
|
||||
|
||||
/*void lodka32(void *source,void *target,void *background,void *xlat,int32_t xysize);
|
||||
|
@ -451,7 +451,7 @@ void create_zooming(void)
|
|||
}
|
||||
}
|
||||
|
||||
static void zooming_forward_backward(word *background,char back)
|
||||
static void zooming_forward_backward(const word *background,char back)
|
||||
{
|
||||
if (!zooming_step) return;
|
||||
{
|
||||
|
@ -477,12 +477,12 @@ static void zooming_forward_backward(word *background,char back)
|
|||
}
|
||||
}
|
||||
|
||||
void zooming_forward(word *background)
|
||||
void zooming_forward(const word *background)
|
||||
{
|
||||
zooming_forward_backward(background,0);
|
||||
}
|
||||
|
||||
void zooming_backward(word *background)
|
||||
void zooming_backward(const word *background)
|
||||
{
|
||||
zooming_forward_backward(background,1);
|
||||
}
|
||||
|
@ -577,12 +577,13 @@ void turn_right()
|
|||
*/
|
||||
}
|
||||
|
||||
void show_cel(int celx,int cely,void *stena,int xofs,int yofs,char rev)
|
||||
void show_cel(int celx,int cely,const void *stena,int xofs,int yofs,char rev)
|
||||
{
|
||||
T_INFO_X_3D *x3d,*x0d;
|
||||
T_INFO_Y *yd,*yp;
|
||||
int txtsx,txtsy,realsx,realsy,x,i,yss,ysd;
|
||||
char *p;int plac;
|
||||
const char *p;
|
||||
int plac;
|
||||
|
||||
int32_t scr_linelen2 = GetScreenPitch();
|
||||
|
||||
|
@ -649,12 +650,13 @@ void show_cel(int celx,int cely,void *stena,int xofs,int yofs,char rev)
|
|||
}
|
||||
|
||||
|
||||
void show_cel2(int celx,int cely,void *stena,int xofs,int yofs,char rev)
|
||||
void show_cel2(int celx,int cely,const void *stena,int xofs,int yofs,char rev)
|
||||
{
|
||||
T_INFO_X *x3d;
|
||||
T_INFO_Y *yd;
|
||||
int txtsx,txtsy,realsx,realsy,x,i;
|
||||
char *p;int plac;
|
||||
const char *p;
|
||||
int plac;
|
||||
|
||||
int32_t scr_linelen2 = GetScreenPitch();
|
||||
|
||||
|
@ -716,7 +718,7 @@ void show_cel2(int celx,int cely,void *stena,int xofs,int yofs,char rev)
|
|||
|
||||
|
||||
|
||||
void draw_floor_ceil(int celx,int cely,char f_c,void *txtr)
|
||||
void draw_floor_ceil(int celx,int cely,char f_c,const void *txtr)
|
||||
{
|
||||
int y;
|
||||
|
||||
|
@ -1051,7 +1053,7 @@ void map_pos(int celx,int cely,int posx,int posy,int posz,int *x,int *y)
|
|||
*/
|
||||
|
||||
static int items_indextab[][2]={{0,0},{-1,3},{1,7},{-1,7},{1,10},{-1,10},{0,10},{-2,15}};
|
||||
void draw_item(int celx,int cely,int posx,int posy,short *txtr,int index)
|
||||
void draw_item(int celx,int cely,int posx,int posy,const short *txtr,int index)
|
||||
{
|
||||
int x,y;
|
||||
int clipl,clipr;
|
||||
|
@ -1076,10 +1078,10 @@ void draw_item(int celx,int cely,int posx,int posy,short *txtr,int index)
|
|||
}
|
||||
|
||||
|
||||
void put_textured_bar(void *src,int x,int y,int xs,int ys,int xofs,int yofs)
|
||||
void put_textured_bar(const void *src,int x,int y,int xs,int ys,int xofs,int yofs)
|
||||
{
|
||||
word *pos;
|
||||
word *xy;
|
||||
const word *xy;
|
||||
int32_t scr_linelen2 = GetScreenPitch();
|
||||
|
||||
|
||||
|
@ -1092,7 +1094,7 @@ void put_textured_bar(void *src,int x,int y,int xs,int ys,int xofs,int yofs)
|
|||
put_textured_bar_(src,pos,xs,ys,xofs,yofs);
|
||||
}
|
||||
|
||||
void draw_placed_texture(short *txtr,int celx,int cely,int posx,int posy,int posz,char turn)
|
||||
void draw_placed_texture(const short *txtr,int celx,int cely,int posx,int posy,int posz,char turn)
|
||||
{
|
||||
int x,y;
|
||||
int clipl,clipr;
|
||||
|
@ -1295,7 +1297,7 @@ void draw_enemy(DRW_ENEMY *drw)
|
|||
}
|
||||
}
|
||||
|
||||
void draw_player(short *txtr,int celx,int cely,int posx,int posy,int adjust,char *name)
|
||||
void draw_player( const short *txtr,int celx,int cely,int posx,int posy,int adjust, const char *name)
|
||||
{
|
||||
int x,y,yc,lx,sd;
|
||||
int clipl,clipr;
|
||||
|
@ -1330,7 +1332,7 @@ void draw_player(short *txtr,int celx,int cely,int posx,int posy,int adjust,char
|
|||
}
|
||||
|
||||
|
||||
void draw_spectxtr(short *txtr,int celx,int cely,int xpos)
|
||||
void draw_spectxtr(const short *txtr,int celx,int cely,int xpos)
|
||||
{
|
||||
int x,y,clipl,clipr;
|
||||
int32_t scr_linelen2 = GetScreenPitch();
|
||||
|
@ -1349,7 +1351,7 @@ void draw_spectxtr(short *txtr,int celx,int cely,int xpos)
|
|||
}
|
||||
|
||||
|
||||
void draw_item2(int celx,int cely,int xpos,int ypos,void *txtr,int index)
|
||||
void draw_item2(int celx,int cely,int xpos,int ypos, const void *txtr,int index)
|
||||
{
|
||||
int x,y,xs,ys,abc,asc,clipl,clipr;
|
||||
static int indextab[][2]={{0,0},{0,1},{1,0},{-1,0},{1,2},{-1,1},{-2,1},{2,1}};
|
||||
|
@ -1441,7 +1443,7 @@ void set_backgrnd_mode(int mode)
|
|||
backgrnd_mode=mode;
|
||||
}
|
||||
|
||||
int get_item_top(int celx,int cely,int posx,int posy,word *txtr,int index)
|
||||
int get_item_top(int celx,int cely,int posx,int posy,const word *txtr,int index)
|
||||
{
|
||||
int x,y;
|
||||
int randx,randy;
|
||||
|
|
|
@ -28,19 +28,19 @@
|
|||
|
||||
|
||||
void general_engine_init(void);
|
||||
void draw_floor_ceil(int celx,int cely,char f_c,void *txtr);
|
||||
void show_cel2(int celx,int cely,void *stena,int xofs,int yofs,char rev);
|
||||
void draw_floor_ceil(int celx,int cely,char f_c,const void *txtr);
|
||||
void show_cel2(int celx,int cely,const void *stena,int xofs,int yofs,char rev);
|
||||
//zobrazi primou stenu ktera lezi pred nebo napravo od pozorovatele
|
||||
void show_cel(int celx,int cely,void *stena,int xofs,int yofs,char rev);
|
||||
void show_cel(int celx,int cely,const void *stena,int xofs,int yofs,char rev);
|
||||
void turn_left(void);
|
||||
void turn_right(void);
|
||||
void zooming_backward(word *background);
|
||||
void zooming_forward(word *background);
|
||||
void zooming_backward(const word *background);
|
||||
void zooming_forward(const word *background);
|
||||
void OutBuffer2nd(void);
|
||||
void CopyBuffer2nd(void);
|
||||
void report_mode(int);
|
||||
void draw_item(int celx,int cely,int posx,int posy,short *pic,int index);
|
||||
void draw_item2(int celx,int cely,int xpos,int ypos,void *texture,int index);
|
||||
void draw_item(int celx,int cely,int posx,int posy,const short *pic,int index);
|
||||
void draw_item2(int celx,int cely,int xpos,int ypos,const void *texture,int index);
|
||||
//void textmode_effekt(void);
|
||||
//#pragma aux textmode_effekt modify[eax ebx ecx edx edi];
|
||||
|
||||
|
@ -49,7 +49,8 @@ void clear_buff(word *background,word backcolor,int lines);
|
|||
|
||||
typedef struct zoominfo
|
||||
{
|
||||
void *startptr, *texture;
|
||||
void *startptr;
|
||||
const void *texture;
|
||||
int32_t texture_line,line_len;
|
||||
int32_t *xtable;
|
||||
short *ytable;
|
||||
|
@ -122,41 +123,41 @@ typedef short palette_t[256];
|
|||
|
||||
typedef struct drw_enemy_struct
|
||||
{
|
||||
void *txtr;
|
||||
const void *txtr;
|
||||
int celx,cely,posx,posy,adjust,shiftup,num;
|
||||
char mirror;
|
||||
char stoned;
|
||||
palette_t *palette;
|
||||
const palette_t *palette;
|
||||
}DRW_ENEMY;
|
||||
|
||||
|
||||
|
||||
|
||||
void enemy_draw(void *src,void *trg,int shade,int scale,int maxspace,int clip);
|
||||
void enemy_draw(const void *src,void *trg,int shade,int scale,int maxspace,int clip);
|
||||
//#pragma aux enemy_draw parm[ESI][EDI][EBX][EDX][EAX][ECX]
|
||||
void enemy_draw_transp(void *src,void *trg,void *shade,int scale,int maxspace,int clip);
|
||||
void enemy_draw_transp(const void *src,void *trg, const void *shade,int scale,int maxspace,int clip);
|
||||
//#pragma aux enemy_draw_transp parm[ESI][EDI][EBX][EDX][EAX][ECX]
|
||||
void enemy_draw_mirror_transp(void *src,void *trg,void *shade,int scale,int maxspace,int clip);
|
||||
void enemy_draw_mirror_transp(const void *src,void *trg, const void *shade,int scale,int maxspace,int clip);
|
||||
//#pragma aux enemy_draw_mirror_transp parm[ESI][EDI][EBX][EDX][EAX][ECX]
|
||||
void enemy_draw_mirror(void *src,void *trg,int shade,int scale,int maxspace,int clip);
|
||||
void enemy_draw_mirror(const void *src,void *trg,int shade,int scale,int maxspace,int clip);
|
||||
//#pragma aux enemy_draw_mirror parm[ESI][EDI][EBX][EDX][EAX][ECX]
|
||||
//clip je v poradi vpravo - vlevo (HiLo)
|
||||
|
||||
void draw_enemy(DRW_ENEMY *drw);
|
||||
void draw_player(short *txtr,int celx,int cely,int posx,int posy,int adjust,char *name);
|
||||
void draw_player(const short *txtr,int celx,int cely,int posx,int posy,int adjust, const char *name);
|
||||
|
||||
void set_lclip_rclip(int celx,int cely,int lc,int rc);
|
||||
void draw_spectxtr(short *txtr,int celx,int cely,int xpos);
|
||||
void draw_spectxtr(const short *txtr,int celx,int cely,int xpos);
|
||||
|
||||
int turn_speed(int turnspeed); //oba je nutne volat na zacatku
|
||||
int zoom_speed(int zoomspeed);
|
||||
|
||||
void scroll_and_copy(void *pic,void *slide, void *scr, int size,int shift, void *lineinfo);
|
||||
void scroll_and_copy(const void *pic,void *slide, void *scr, int size,int shift, void *lineinfo);
|
||||
//#pragma aux scroll_and_copy parm[esi][ebx][edi][ecx][edx][eax]
|
||||
|
||||
void set_backgrnd_mode(int mode);
|
||||
|
||||
int get_item_top(int celx,int cely,int posx,int posy,word *txtr,int index);
|
||||
int get_item_top(int celx,int cely,int posx,int posy,const word *txtr,int index);
|
||||
//vraci nejnizsi souradnici y predmetu leziciho na zemi v celx, cely na pozici posx,posy;
|
||||
|
||||
#endif
|
||||
|
|
|
@ -155,7 +155,7 @@ skpskp: add edx,2 ;dalsi hodnota v tabulce
|
|||
}
|
||||
|
||||
|
||||
void fcdraw(void *source,void *target, void *table)
|
||||
void fcdraw(const void *source,void *target, const void *table)
|
||||
//#pragma aux fcdraw parm [EDX][EBX][EAX] modify [ECX ESI EDI];
|
||||
{
|
||||
|
||||
|
@ -445,7 +445,7 @@ shmad4: add edi,scr_linelen
|
|||
|
||||
|
||||
|
||||
void scroll_and_copy(void *pic,void *slide, void *scr, int _size,int shift, void *lineinfo)
|
||||
void scroll_and_copy(const void *pic,void *slide, void *scr, int _size,int shift, void *lineinfo)
|
||||
//#pragma aux scroll_and_copy parm[esi][ebx][edi][ecx][edx][eax]
|
||||
{
|
||||
int32_t scr_linelen2 = GetScreenPitch();
|
||||
|
@ -570,7 +570,7 @@ sac_end:sub ecx,2 ;odecti counter
|
|||
#define ed_stk1 600*4
|
||||
|
||||
|
||||
void enemy_draw(void *src,void *trg,int shade,int scale,int maxspace,int clip)
|
||||
void enemy_draw(const void *src,void *trg,int shade,int scale,int maxspace,int clip)
|
||||
//#pragma aux enemy_draw parm[ESI][EDI][EBX][EDX][EAX][ECX]
|
||||
{
|
||||
int32_t scr_linelen2 = GetScreenPitch();
|
||||
|
@ -756,7 +756,7 @@ ed_err: add esp,ed_stack;vymaz tabulku
|
|||
}
|
||||
*/
|
||||
}
|
||||
void enemy_draw_transp(void *src,void *trg,void *shade,int scale,int maxspace,int clip)
|
||||
void enemy_draw_transp(const void *src,void *trg,const void *shade,int scale,int maxspace,int clip)
|
||||
//#pragma aux enemy_draw_transp parm[ESI][EDI][EBX][EDX][EAX][ECX]
|
||||
{
|
||||
|
||||
|
@ -945,7 +945,7 @@ et_err: add esp,ed_stack;vymaz tabulku
|
|||
}*/
|
||||
}
|
||||
|
||||
void enemy_draw_mirror_transp(void *src,void *trg,void *shade,int scale,int maxspace,int clip)
|
||||
void enemy_draw_mirror_transp(const void *src,void *trg,const void *shade,int scale,int maxspace,int clip)
|
||||
//#pragma aux enemy_draw_mirror_transp parm[ESI][EDI][EBX][EDX][EAX][ECX]
|
||||
{
|
||||
|
||||
|
@ -1132,7 +1132,7 @@ etmerr: add esp,ed_stack;vymaz tabulku
|
|||
}
|
||||
*/
|
||||
}
|
||||
void enemy_draw_mirror(void *src,void *trg,int shade,int scale,int maxspace,int clip)
|
||||
void enemy_draw_mirror(const void *src,void *trg,int shade,int scale,int maxspace,int clip)
|
||||
//#pragma aux enemy_draw_mirror parm[ESI][EDI][EBX][EDX][EAX][ECX]
|
||||
//clip je v poradi vpravo - vlevo (HiLo)
|
||||
{
|
||||
|
|
|
@ -1358,7 +1358,7 @@ static void saveload_keyboard(EVENT_MSG *msg,void **_)
|
|||
{
|
||||
if (msg->msg == E_KEYBOARD)
|
||||
{
|
||||
int v = va_arg(msg->data, int);
|
||||
int v = quit_request_as_escape(va_arg(msg->data, int));
|
||||
switch (v>>8)
|
||||
{
|
||||
case 1:unwire_proc();wire_proc();break;
|
||||
|
@ -1377,6 +1377,7 @@ static void saveload_keyboard(EVENT_MSG *msg,void **_)
|
|||
|
||||
void unwire_save_load()
|
||||
{
|
||||
term_task_wait(clk_ask_name[0].id);
|
||||
if (back_texture!=NULL) free(back_texture);
|
||||
back_texture=NULL;
|
||||
if (story_text!=NULL)release_list(story_text);
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <libs/memman.h>
|
||||
|
||||
#define POCET_POSTAV 6
|
||||
#define HODINA 360
|
||||
|
@ -470,7 +471,7 @@ typedef struct tdregisters
|
|||
{
|
||||
int h_num;
|
||||
char name[13];
|
||||
void (*proc)(void **,int32_t *);
|
||||
ABLOCK_DECODEPROC proc;
|
||||
char path;
|
||||
}TDREGISTERS;
|
||||
|
||||
|
@ -646,17 +647,17 @@ void calc_animations(void);
|
|||
int load_map(char *filename);
|
||||
void other_draw(void);
|
||||
void refresh_scene(void);
|
||||
void pcx_fade_decomp(void **p,int32_t *s);
|
||||
void pcx_15bit_decomp(void **p,int32_t *s);
|
||||
void pcx_15bit_autofade(void **p,int32_t *s);
|
||||
void pcx_15bit_backgrnd(void **p,int32_t *s);
|
||||
void pcx_8bit_decomp(void **p,int32_t *s);
|
||||
void hi_8bit_correct(void **p,int32_t *s);
|
||||
void pcx_8bit_nopal(void **p,int32_t *s);
|
||||
void set_background(void **p,int32_t *s);
|
||||
void wav_load(void **p,int32_t *s);
|
||||
void load_mob_legacy_format(void **p, int32_t *s);
|
||||
void load_spells_legacy_format(void **p, int32_t *s);
|
||||
const void *pcx_fade_decomp(const void *p, int32_t *s);
|
||||
const void *pcx_15bit_decomp(const void *p, int32_t *s);
|
||||
const void *pcx_15bit_autofade(const void *p, int32_t *s);
|
||||
const void *pcx_15bit_backgrnd(const void *p, int32_t *s);
|
||||
const void *pcx_8bit_decomp(const void *p, int32_t *s);
|
||||
const void *hi_8bit_correct(const void *p, int32_t *s);
|
||||
const void *pcx_8bit_nopal(const void *p, int32_t *s);
|
||||
const void *set_background(const void *p, int32_t *s);
|
||||
const void *wav_load(const void *p, int32_t *s);
|
||||
const void *load_mob_legacy_format(const void *p, int32_t *s);
|
||||
const void *load_spells_legacy_format(const void *p, int32_t *s);
|
||||
void wire_main_functs(void);
|
||||
void ukaz_kompas(char mode);
|
||||
void *timming(EVENT_MSG *msg,void **data);
|
||||
|
@ -669,8 +670,7 @@ void objekty_mimo(void);
|
|||
void mouse_set_cursor(int cursor);
|
||||
void set_font(int font,int c1,...);
|
||||
void bott_draw(char);
|
||||
void bott_draw_proc(void **p,int32_t *s);
|
||||
THE_TIMER *add_to_timer(int id,int delay,int maxcall,void *proc);
|
||||
const void *bott_draw_proc(const void *p, int32_t *s);
|
||||
void mouse_set_default(int cursor);
|
||||
void create_frame(int x,int y,int xs,int ys,char clear);
|
||||
void save_dump(const uint16_t *screen_addr,
|
||||
|
@ -993,7 +993,7 @@ void calc_fly(void);
|
|||
void zmen_skupinu(THUMAN *p);
|
||||
void add_to_group(int num);
|
||||
void group_all(void);
|
||||
void build_items_called(void **p,int32_t *s);
|
||||
const void *build_items_called(const void *p, int32_t *s);
|
||||
void real_regeneration(void); //regenerace postav behem hry v realu (pouze kondice a mana)
|
||||
char sleep_regenerace(THUMAN *p); //regenerace postav behem spani
|
||||
char check_jidlo_voda(THUMAN *p);
|
||||
|
@ -1666,7 +1666,7 @@ int message(int butts,char def,char canc,char *keys,...);
|
|||
void type_text(EVENT_MSG *msg,void **data); //event procedura (parms: X,Y,TEXT,MAX_SPACE,MAX_CHARS);
|
||||
void type_text_v2(va_list args);//char *text_buffer,int x,int y,int max_size,int max_chars,int font,int color,void (*exit_proc)(char));
|
||||
void zalamovani(char *source,char *target,int maxxs,int *xs,int *ys);
|
||||
void col_load(void **data,int32_t *size);
|
||||
const void *col_load(const void *data, int32_t *size);
|
||||
void open_story_file(void);
|
||||
void write_story_text(char *text);
|
||||
void close_story_file(void);
|
||||
|
@ -1781,5 +1781,9 @@ static __inline char TimerEvents(int sector, int side, int32_t time)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static __inline int quit_request_as_escape(int c) {
|
||||
if (c == E_QUIT_GAME_KEY) return 0x011B;else return c;
|
||||
}
|
||||
|
||||
//extras
|
||||
#include "extras.h"
|
||||
|
|
|
@ -507,7 +507,7 @@ void global_map_point(EVENT_MSG *msg,void **_)
|
|||
if(msg->msg == E_MOUSE)
|
||||
{
|
||||
int x,y,i,xs,ys;
|
||||
char *ptr;
|
||||
const char *ptr;
|
||||
ms=get_mouse(msg);
|
||||
if (ms->event_type & 0x1)
|
||||
{
|
||||
|
|
|
@ -429,8 +429,7 @@ void type_text_v2(va_list args)
|
|||
showview(x,y,xs,ys);
|
||||
|
||||
EVENT_MSG *ev= task_wait_event(E_KEYBOARD); //proces bude cekat na klavesu
|
||||
if (ev == NULL) return;
|
||||
znak=va_arg(ev->data, int);
|
||||
znak=ev?va_arg(ev->data, int):27;
|
||||
schovej_mysku();
|
||||
if (task_quitmsg()==1) znak=27;
|
||||
switch(znak & 0xff)
|
||||
|
@ -507,21 +506,22 @@ void type_text_v2(va_list args)
|
|||
}
|
||||
|
||||
|
||||
void col_load(void **data,int32_t *size)
|
||||
const void *col_load(const void *data, int32_t *size)
|
||||
{
|
||||
int siz=*size;
|
||||
char *s,*c;
|
||||
char *s;
|
||||
const char *c;
|
||||
int palcount;
|
||||
int i;//,j,k;
|
||||
|
||||
palcount=siz/COL_SIZE;
|
||||
*size=PIC_FADE_PAL_SIZE*palcount;
|
||||
s=getmem(*size);
|
||||
c=*data;c+=8;
|
||||
for(i=0;i<palcount;i++,c+=COL_SIZE)
|
||||
c=data;c+=8;
|
||||
for(i=0;i<palcount;i++,c+=COL_SIZE) {
|
||||
palette_shadow(c,(void *)(&s[i*PIC_FADE_PAL_SIZE]),mglob.fade_r,mglob.fade_g,mglob.fade_b);
|
||||
free(*data);
|
||||
*data=s;
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
|
||||
|
@ -917,7 +917,7 @@ void check_number_1phase(char *exename) //check serial number!
|
|||
*/
|
||||
static void skeldal_checkbox_draw(int x1,int y1,int x2,int y2,OBJREC *o)
|
||||
{
|
||||
word *obr;
|
||||
const word *obr;
|
||||
char *data;
|
||||
int phase;
|
||||
int32_t scr_linelen2 = GetScreenPitch();
|
||||
|
@ -1006,7 +1006,7 @@ static void setup_button_draw(int x1,int y1,int x2,int y2,OBJREC *o)
|
|||
char data;
|
||||
void **z;
|
||||
word *pic;
|
||||
word *bb;
|
||||
const word *bb;
|
||||
int x,y;
|
||||
|
||||
z=(void **)o->userptr;
|
||||
|
@ -1088,7 +1088,7 @@ static void skeldal_soupak_draw (int x1,int y1,int x2,int y2,OBJREC *o)
|
|||
skeldal_soupak_params *z;
|
||||
int rozsah;
|
||||
int value;
|
||||
word *pic;
|
||||
const word *pic;
|
||||
word *back;
|
||||
int total;
|
||||
int xpos;
|
||||
|
@ -1120,7 +1120,7 @@ static void skeldal_soupak_event(EVENT_MSG *msg,OBJREC *o)
|
|||
skeldal_soupak_params *z;
|
||||
int rozsah;
|
||||
int total;
|
||||
word *pic;
|
||||
const word *pic;
|
||||
int ypos,newvalue;
|
||||
|
||||
ms=get_mouse(msg);
|
||||
|
|
36
game/inv.c
36
game/inv.c
|
@ -109,7 +109,7 @@ void zkontroluj_postavu();
|
|||
|
||||
void place_human_item(word *obrazek,int x,int y,int item)
|
||||
{
|
||||
word *p;
|
||||
const word *p;
|
||||
|
||||
p=ablock(item);
|
||||
put_picture2picture(p,obrazek,PO_XSS-p[0]/2+x,PO_YS-p[1]-y-20);
|
||||
|
@ -143,22 +143,25 @@ void item_sound_event(int item,int sector)
|
|||
play_sample_at_sector(glob_items[item].sound+sound_handle,viewsector,sector,0,0);
|
||||
}
|
||||
|
||||
static void items_15to16_correct(void **p,int32_t *s)
|
||||
static const void *items_15to16_correct(const void *p,int32_t *s)
|
||||
{
|
||||
int i,j;
|
||||
char *cur=(char *)(*p);
|
||||
void *np = getmem(*s);
|
||||
memcpy(np, p, *s);
|
||||
char *cur=(char *)(np);
|
||||
for (i=0;i<IT_LIB_SIZE;i++)
|
||||
{
|
||||
int pos=IT_ICONE_SIZE*i;
|
||||
word *pal;
|
||||
|
||||
if (pos>=*s) return;
|
||||
if (pos>=*s) return np;
|
||||
pal=((word *)(cur+pos))+3;
|
||||
for (j=0;j<256;j++,pal++)
|
||||
{
|
||||
*pal=RGB555(*pal>>10,(*pal>>5)& 0x1F,(*pal & 0x1F));
|
||||
}
|
||||
}
|
||||
return np;
|
||||
}
|
||||
|
||||
void load_items()
|
||||
|
@ -870,7 +873,8 @@ char exit_inv(int id,int xa,int ya,int xr,int yr)
|
|||
void definuj_postavy()
|
||||
{
|
||||
int i,num1,r,inv=0,z;
|
||||
char *c,*end,cc;
|
||||
const char *c,*end;
|
||||
char cc;
|
||||
int tmp;
|
||||
|
||||
c=ablock(H_POSTAVY_DAT);
|
||||
|
@ -1128,7 +1132,7 @@ void display_items_in_inv(THUMAN *h)
|
|||
short *p;
|
||||
|
||||
put_picture(266,TOP_OFS,ablock(H_IDESKA));
|
||||
p=ablock(H_IMRIZ1);
|
||||
p=ablock_copy(H_IMRIZ1);
|
||||
p[1]=INV_YS*((h->inv_size-1)/6)+58;
|
||||
put_picture(INV_X,INV_Y,p);
|
||||
xr=INV_X;x=0;
|
||||
|
@ -1176,7 +1180,8 @@ void display_rings()
|
|||
void *build_items_wearing(THUMAN *h, int32_t *s)
|
||||
{
|
||||
int i,vzhled,it;
|
||||
word *p,hx,hy;
|
||||
const word *p;
|
||||
word hx,hy;
|
||||
word *ob;
|
||||
size_t siz;
|
||||
char *pp;
|
||||
|
@ -1224,9 +1229,9 @@ void *build_items_wearing(THUMAN *h, int32_t *s)
|
|||
}
|
||||
|
||||
|
||||
void build_items_called(void **p,int32_t *s)
|
||||
const void *build_items_called(const void *p, int32_t *s)
|
||||
{
|
||||
*p=build_items_wearing(&postavy[memman_handle-H_POSTAVY], s);
|
||||
return build_items_wearing(&postavy[memman_handle-H_POSTAVY], s);
|
||||
}
|
||||
|
||||
void display_items_wearing(THUMAN *h)
|
||||
|
@ -1240,7 +1245,7 @@ void display_items_wearing(THUMAN *h)
|
|||
if (it)
|
||||
{
|
||||
TITEM *itt;
|
||||
word *w;int vzhled;
|
||||
const word *w;int vzhled;
|
||||
|
||||
itt=&glob_items[it-1];
|
||||
vzhled=itt->vzhled;
|
||||
|
@ -1860,7 +1865,7 @@ char bag_click(int id,int xa,int ya,int xr,int yr)
|
|||
char item_pointed(int k,int x,int y,short item,short kind)
|
||||
{
|
||||
int x1,y1,x2,y2,xs,ys,xsiz,ysiz,i;
|
||||
short *p;
|
||||
const short *p;
|
||||
char *c,cc;
|
||||
|
||||
if (!item) return 0;
|
||||
|
@ -2166,7 +2171,7 @@ void *inv_keyboard(EVENT_MSG *msg,void **usr)
|
|||
usr;
|
||||
if (msg->msg==E_KEYBOARD)
|
||||
{
|
||||
c=va_arg(msg->data, int)>>8;
|
||||
c=quit_request_as_escape(va_arg(msg->data, int))>>8;
|
||||
switch (c)
|
||||
{
|
||||
case 0x17:
|
||||
|
@ -2212,7 +2217,8 @@ void draw_fly_items(int celx,int cely,int sector,int side)
|
|||
{
|
||||
LETICI_VEC *p;
|
||||
int xpos,ypos;
|
||||
short *pic,picnum;char turn,smr;
|
||||
const short *pic;
|
||||
short picnum;char turn,smr;
|
||||
TITEM *it;
|
||||
int i;
|
||||
|
||||
|
@ -2692,7 +2698,7 @@ static void block_back()
|
|||
|
||||
static void redraw_keepers_items()
|
||||
{
|
||||
word *w;
|
||||
const word *w;
|
||||
schovej_mysku();
|
||||
w=ablock(H_SHOP_PIC);
|
||||
display_keepers_items();
|
||||
|
@ -2934,7 +2940,7 @@ void enter_shop(int shopid)
|
|||
|
||||
char shop_change_player(int id, int xa, int ya,int xr,int yr)
|
||||
{
|
||||
word *xs;
|
||||
const word *xs;
|
||||
int i;
|
||||
|
||||
id;xa;ya;yr;
|
||||
|
|
|
@ -337,7 +337,7 @@ static int get_data_handle(char *filename,void *dec)
|
|||
static void insert_picture(char *filename,int align,int line,int lsize)
|
||||
{
|
||||
int x, y;
|
||||
short *psiz;
|
||||
const short *psiz;
|
||||
char *c=write_buff;
|
||||
|
||||
psiz=ablock(get_data_handle(filename,pcx_8bit_decomp));
|
||||
|
@ -568,7 +568,7 @@ static char *displ_picture(char *c)
|
|||
{
|
||||
char *d;
|
||||
int x,y,hn,z,ln,sl;
|
||||
short *sh;
|
||||
const short *sh;
|
||||
int32_t scr_linelen2 = GetScreenPitch();
|
||||
|
||||
|
||||
|
|
|
@ -161,43 +161,45 @@ unsigned char twins;
|
|||
|
||||
static short rand_value;
|
||||
|
||||
static word *paleta;
|
||||
static word paleta[256];
|
||||
|
||||
void show_full_lfb12e(void *target,void *buff,void *paleta);
|
||||
void show_full_lfb12e(void *target,const void *buff,const void *paleta);
|
||||
//#pragma aux show_full_lfb12e parm[edi][esi][ebx] modify [eax ecx]
|
||||
void show_delta_lfb12e(void *target,void *buff,void *paleta);
|
||||
void show_delta_lfb12e(void *target,const void *buff,const void *paleta);
|
||||
//#pragma aux show_delta_lfb12e parm[edi][esi][ebx] modify [eax ecx]
|
||||
char mob_check_next_sector(int sect,int dir,char alone,char passable);
|
||||
char mob_check_next_sector(int sect,int dir,const char alone,char passable);
|
||||
|
||||
void call_spell(int i);
|
||||
int calculatePhaseDoor(int sector, int dir, int um);
|
||||
|
||||
|
||||
static void animace_kouzla(int act,void *data, int ssize)
|
||||
static void animace_kouzla(int act,const void *data, int ssize)
|
||||
{
|
||||
switch (act)
|
||||
{
|
||||
case MGIF_LZW:
|
||||
case MGIF_COPY:show_full_lfb12e(anim_render_buffer,data,paleta);break;
|
||||
case MGIF_DELTA:show_delta_lfb12e(anim_render_buffer,data,paleta);break;
|
||||
case MGIF_PAL:paleta=data;*paleta|=0x8000;break;
|
||||
case MGIF_PAL:memcpy(paleta,data,sizeof(paleta));paleta[0]|=0x8000;break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void load_spells_legacy_format(void **p, int32_t *s) {
|
||||
TKOUZLO *k = (*p);
|
||||
TKOUZLO *end = (TKOUZLO *)((char *)(*p) + k->start);
|
||||
const void *load_spells_legacy_format(const void *p, int32_t *s) {
|
||||
void *np = getmem(*s);
|
||||
memcpy(np,p,*s);
|
||||
TKOUZLO *k = (np);
|
||||
TKOUZLO *end = (TKOUZLO *)((char *)(np) + k->start);
|
||||
++k;
|
||||
int count = 1;
|
||||
while (k < end) {
|
||||
++count;
|
||||
TKOUZLO *end2 = (TKOUZLO *)((char *)(*p) + k->start);
|
||||
TKOUZLO *end2 = (TKOUZLO *)((char *)(np) + k->start);
|
||||
if (end2 < end) end = end2;
|
||||
++k;
|
||||
}
|
||||
SEND_LOG("(SPELL) Loading spell table: count %d", count);
|
||||
k = (*p);
|
||||
k = (np);
|
||||
for (int i = 0; i < count; ++i) {
|
||||
char *b = (char *)k;
|
||||
char traceon = *(k->spellname-1); //traceon was there;
|
||||
|
@ -207,6 +209,7 @@ void load_spells_legacy_format(void **p, int32_t *s) {
|
|||
k->traceon = traceon;
|
||||
++k;
|
||||
}
|
||||
return np;
|
||||
}
|
||||
|
||||
|
||||
|
@ -215,7 +218,7 @@ static void play_anim(va_list args) //tasked animation
|
|||
{
|
||||
int block=va_arg(args,int);
|
||||
#define ANIM_SIZE (320*180*2)
|
||||
void *anm;
|
||||
const void *anm;
|
||||
int32_t *l,c;
|
||||
|
||||
if (running_anm)
|
||||
|
|
34
game/menu.c
34
game/menu.c
|
@ -62,7 +62,7 @@ static char vymacknout(int id,int xa,int ya,int xr,int yr)
|
|||
|
||||
static char promacknuti(int id,int xa,int ya,int xr,int yr)
|
||||
{
|
||||
char *z;
|
||||
const char *z;
|
||||
word *w;
|
||||
|
||||
z=ablock(H_MENU_MASK);w=(word *)z;
|
||||
|
@ -122,18 +122,17 @@ jp1:lodsb
|
|||
}
|
||||
}*/
|
||||
|
||||
static void nahraj_rozdilovy_pcx(void **pp,int32_t *s)
|
||||
static const void *nahraj_rozdilovy_pcx(const void *pp, int32_t *s)
|
||||
{
|
||||
char *org,*pos;
|
||||
char *vysl;
|
||||
word *size,*paltab;
|
||||
word *hicolor,*p;
|
||||
void *origin;
|
||||
const void *origin;
|
||||
int siz;
|
||||
|
||||
load_pcx((char *)*pp,*s,A_8BIT,&vysl);
|
||||
load_pcx((char *)pp,*s,A_8BIT,&vysl);
|
||||
size=(word *)vysl;
|
||||
free(*pp);
|
||||
siz=size[0]*size[1];
|
||||
p=hicolor=getmem(siz*2+12);
|
||||
*p++=size[0];
|
||||
|
@ -145,8 +144,8 @@ static void nahraj_rozdilovy_pcx(void **pp,int32_t *s)
|
|||
paltab=(word *)vysl+3;
|
||||
rozdily((uint8_t *)org,(uint8_t *)pos,hicolor+3,paltab,siz);
|
||||
free(vysl);
|
||||
*pp=hicolor;
|
||||
*s=siz*2+12;
|
||||
return hicolor;
|
||||
}
|
||||
|
||||
|
||||
|
@ -204,7 +203,7 @@ jp2: inc ebx
|
|||
}
|
||||
}
|
||||
*/
|
||||
static void zobraz_podle_masky_asm(char barva, uint16_t *scr, uint16_t *data, uint8_t *maska, int xs, int ys, int scr_linelen) {
|
||||
static void zobraz_podle_masky_asm(char barva, uint16_t *scr, const uint16_t *data, const uint8_t *maska, int xs, int ys, int scr_linelen) {
|
||||
int width = xs;
|
||||
|
||||
for (int y = 0; y < ys; y++) {
|
||||
|
@ -221,8 +220,8 @@ static void zobraz_podle_masky_asm(char barva, uint16_t *scr, uint16_t *data, ui
|
|||
|
||||
static void zobraz_podle_masky(char barva,char anim)
|
||||
{
|
||||
char *maska;
|
||||
word *data;
|
||||
const char *maska;
|
||||
const word *data;
|
||||
int32_t scr_linelen2 = GetScreenPitch();
|
||||
word *obr=GetScreenAdr()+300*scr_linelen2+220;
|
||||
word xs,ys;
|
||||
|
@ -272,11 +271,11 @@ static void prehraj_animaci_v_menu(EVENT_MSG *msg,char **unused)
|
|||
}
|
||||
|
||||
|
||||
#if 0
|
||||
static void preload_anim(va_list args)
|
||||
{
|
||||
int i;
|
||||
|
||||
low_mem=0;
|
||||
ablock(H_ANIM+29);
|
||||
for(i=0;i<30;i+=2)
|
||||
{
|
||||
|
@ -305,6 +304,7 @@ static void preload_anim(va_list args)
|
|||
task_wait_event(E_TIMER);
|
||||
load_ok=1;
|
||||
}
|
||||
#endif
|
||||
|
||||
static void klavesnice(EVENT_MSG *msg,void **unused)
|
||||
{
|
||||
|
@ -317,7 +317,11 @@ static void klavesnice(EVENT_MSG *msg,void **unused)
|
|||
for(cursor=0;cursor<5;cursor++) if (cur_dir[cursor]==SELECT) break;
|
||||
if (cursor==5) cursor=-1;
|
||||
int c = va_arg(msg->data,int);
|
||||
switch(c)
|
||||
if (c ==E_QUIT_GAME_KEY) {
|
||||
send_message(E_MENU_SELECT,4);
|
||||
return;
|
||||
}
|
||||
switch(c >> 8)
|
||||
{
|
||||
case 'H':cursor--;if (cursor<0) cursor=0;break;
|
||||
case 'P':cursor++;if (cursor>4) cursor=4;break;
|
||||
|
@ -328,14 +332,12 @@ static void klavesnice(EVENT_MSG *msg,void **unused)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
int enter_menu(char open)
|
||||
{
|
||||
uint8_t c;
|
||||
|
||||
init_menu_entries();
|
||||
add_task(2048,preload_anim);
|
||||
load_ok=0;
|
||||
while(!load_ok) task_sleep();
|
||||
if (!open)
|
||||
{
|
||||
change_music(get_next_music_from_playlist());
|
||||
|
@ -353,7 +355,7 @@ int enter_menu(char open)
|
|||
ms_last_event.event_type=0x1;
|
||||
send_message(E_MOUSE,&ms_last_event);
|
||||
EVENT_MSG *ev = task_wait_event(E_MENU_SELECT);
|
||||
c=va_arg(ev->data, int);
|
||||
c=ev?va_arg(ev->data, int):-1;
|
||||
disable_click_map();
|
||||
send_message(E_DONE,E_KEYBOARD,klavesnice);
|
||||
cur_dir[c]=UNSELECT;
|
||||
|
@ -516,7 +518,7 @@ void titles(va_list args)
|
|||
char send_back=va_arg(args,int);
|
||||
char *textname=va_arg(args,char *);
|
||||
|
||||
void *picture;
|
||||
const void *picture;
|
||||
word *scr,*buff;
|
||||
int counter,newc;
|
||||
int lcounter=1;
|
||||
|
|
|
@ -125,45 +125,7 @@ void prepare_graphics(int *ofs,char *names,int32_t size,void *decomp,int class)
|
|||
}
|
||||
}
|
||||
|
||||
static void preload_percent(int cur,int max)
|
||||
{
|
||||
int pos;
|
||||
pos=cur*640/max;
|
||||
if (pos>640) pos=640;
|
||||
curcolor=RGB555(16,16,16);hor_line32(0,476,pos);
|
||||
curcolor=RGB555(8,8,8);hor_line32(0,477,pos);
|
||||
curcolor=RGB555(31,31,31);hor_line32(0,475,pos);
|
||||
showview(0,460,640,20);
|
||||
do_events();
|
||||
}
|
||||
|
||||
void preload_objects(int ofsts)
|
||||
//#pragma preload_objects parm [];
|
||||
{
|
||||
int i;
|
||||
char lodka=1;
|
||||
|
||||
for(i=1;i<mapsize;i++) if (map_sectors[i].sector_type==S_LODKA) break;
|
||||
if (i==mapsize) lodka=0;
|
||||
// const char *c = build_pathname(2, pathname[SR_DATA], "LOADING.MUS");
|
||||
// change_music(c);
|
||||
trans_bar(0,460,640,20,0);
|
||||
position(0,460);
|
||||
set_font(H_FBOLD,RGB555(0,31,0));
|
||||
const char *c = concat2(texty[TX_LOAD], mglob.mapname);
|
||||
outtext(c);
|
||||
for(i=0;i<ofsts;i++)
|
||||
{
|
||||
if (i<H_LODKA0 || i>H_LODKA7 || lodka) apreload_sign(i,ofsts);
|
||||
}
|
||||
apreload_start(preload_percent);
|
||||
/* for(i=0;i<ofsts;i++)
|
||||
{
|
||||
ablock(ofsts-i-1);
|
||||
preload_percent(i+ofsts,ofsts);
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
int load_level_texts(const char *filename)
|
||||
{
|
||||
|
@ -194,21 +156,6 @@ char *change_extension_support(char *buffer, const char *filename,char *new_exte
|
|||
|
||||
#define set_file_extension(filename, extension) change_extension_support((char *)alloca(strlen(filename)+strlen(extension)), (filename), (extension))
|
||||
|
||||
void show_loading_picture(char *filename)
|
||||
{
|
||||
void *p;
|
||||
int32_t s;
|
||||
|
||||
p=afile(filename,SR_BGRAFIKA,&s);
|
||||
put_picture(0,0,p);
|
||||
showview(0,0,0,0);
|
||||
free(p);
|
||||
#ifdef LOGFILE
|
||||
display_ver(639,0,2,0);
|
||||
#endif
|
||||
cancel_pass=1;
|
||||
}
|
||||
|
||||
extern int snd_devnum;
|
||||
|
||||
int load_map(char *filename)
|
||||
|
@ -228,8 +175,6 @@ int load_map(char *filename)
|
|||
const char *mpath = build_pathname(2, gpathtable[SR_MAP], filename);
|
||||
mpath = local_strdup(mpath);
|
||||
schovej_mysku();
|
||||
if (level_preload) show_loading_picture("LOADING.HI");
|
||||
change_music("?");
|
||||
zobraz_mysku();
|
||||
f=fopen_icase(mpath,"rb");
|
||||
if (level_fname!=NULL) free(level_fname);
|
||||
|
@ -317,7 +262,7 @@ int load_map(char *filename)
|
|||
SEND_LOG("(GAME) Loading enemies...");
|
||||
if (mob_template==NULL)
|
||||
{
|
||||
int32_t h;char *p;
|
||||
int32_t h;const char *p;
|
||||
|
||||
alock(H_ENEMY);
|
||||
p=ablock(H_ENEMY);
|
||||
|
@ -370,7 +315,6 @@ int load_map(char *filename)
|
|||
fclose(f);
|
||||
flag_map=(char *)getmem(mapsize*4);
|
||||
memset(minimap,0,sizeof(minimap));
|
||||
if (level_preload) preload_objects(ofsts);
|
||||
end_ptr=ofsts;
|
||||
const char *tpath=set_file_extension(mpath,".txt");
|
||||
suc=load_level_texts(tpath);
|
||||
|
@ -1866,16 +1810,16 @@ void sleep_players(va_list args)
|
|||
|
||||
void *game_keyboard(EVENT_MSG *msg,void **usr)
|
||||
{
|
||||
uint8_t c;
|
||||
int c;
|
||||
|
||||
usr;
|
||||
if (pass_zavora) return NULL;
|
||||
if (cur_mode==MD_END_GAME) return NULL;
|
||||
if (msg->msg==E_KEYBOARD)
|
||||
{
|
||||
c=va_arg(msg->data, int)>>8;
|
||||
c=quit_request_as_escape(va_arg(msg->data, int));
|
||||
while (_bios_keybrd(_KEYBRD_READY) ) _bios_keybrd(_KEYBRD_READ);
|
||||
switch (c)
|
||||
switch (c >> 8)
|
||||
{
|
||||
case 'H':step_zoom(0);break;
|
||||
case 'P':step_zoom(2);break;
|
||||
|
|
|
@ -83,7 +83,7 @@ static void setup_keyboard(EVENT_MSG *msg,void **_)
|
|||
{
|
||||
if (msg->msg == E_KEYBOARD)
|
||||
{
|
||||
char c= va_arg(msg->data, int);
|
||||
char c= quit_request_as_escape(va_arg(msg->data, int));
|
||||
if (c==27)
|
||||
{
|
||||
unwire_proc();
|
||||
|
|
101
game/skeldal.c
101
game/skeldal.c
|
@ -91,11 +91,11 @@ static int init_music_vol=127;
|
|||
static int init_gfx_vol=255;
|
||||
static char titles_on=0;
|
||||
|
||||
void pcx_fade_decomp(void **p,int32_t *s);
|
||||
void pcx_15bit_decomp(void **p,int32_t *s);
|
||||
void pcx_15bit_autofade(void **p,int32_t *s);
|
||||
void pcx_15bit_backgrnd(void **p,int32_t *s);
|
||||
void pcx_8bit_decomp(void **p,int32_t *s);
|
||||
const void *pcx_fade_decomp(const void *p, int32_t *s);
|
||||
const void *pcx_15bit_decomp(const void *p, int32_t *s);
|
||||
const void *pcx_15bit_autofade(const void *p, int32_t *s);
|
||||
const void *pcx_15bit_backgrnd(const void *p, int32_t *s);
|
||||
const void *pcx_8bit_decomp(const void *p, int32_t *s);
|
||||
|
||||
char *texty_knihy;
|
||||
static char *patch_file=NULL;
|
||||
|
@ -280,82 +280,80 @@ void purge_temps(char _) {
|
|||
temp_storage_clear();
|
||||
}
|
||||
|
||||
void pcx_fade_decomp(void **p,int32_t *s)
|
||||
const void *pcx_fade_decomp(const void *p, int32_t *s)
|
||||
{
|
||||
char *buff;
|
||||
int r = load_pcx(*p,*s,A_FADE_PAL,&buff,mglob.fade_r,mglob.fade_g,mglob.fade_b);
|
||||
int r = load_pcx(p,*s,A_FADE_PAL,&buff,mglob.fade_r,mglob.fade_g,mglob.fade_b);
|
||||
assert(r > 0);
|
||||
*s=r;
|
||||
free(*p);
|
||||
*p=buff;
|
||||
return buff;
|
||||
}
|
||||
|
||||
void pcx_15bit_decomp(void **p,int32_t *s)
|
||||
const void *pcx_15bit_decomp(const void *p, int32_t *s)
|
||||
{
|
||||
char *buff;
|
||||
int r = load_pcx(*p,*s,A_16BIT,&buff);
|
||||
int r = load_pcx(p,*s,A_16BIT,&buff);
|
||||
assert(r > 0);
|
||||
*s=r;
|
||||
free(*p);
|
||||
*p=buff;
|
||||
return buff;
|
||||
}
|
||||
|
||||
void pcx_15bit_autofade(void **p,int32_t *s)
|
||||
const void *pcx_15bit_autofade(const void *p, int32_t *s)
|
||||
{
|
||||
char *buff;
|
||||
int r = load_pcx(*p,*s,A_16BIT,&buff);
|
||||
int r = load_pcx(p,*s,A_16BIT,&buff);
|
||||
assert(r > 0);
|
||||
*s=r;
|
||||
free(*p);
|
||||
*p=buff;
|
||||
buff[5]=0x80;
|
||||
return buff;
|
||||
}
|
||||
|
||||
void pcx_15bit_backgrnd(void **p,int32_t *s)
|
||||
const void *pcx_15bit_backgrnd(const void *p, int32_t *s)
|
||||
{
|
||||
char *buff;
|
||||
int32_t i;int32_t *z;
|
||||
|
||||
if (*p!=NULL)
|
||||
if (p!=NULL)
|
||||
{
|
||||
int r = load_pcx(*p,*s,A_16BIT,&buff);
|
||||
int r = load_pcx(p,*s,A_16BIT,&buff);
|
||||
assert(r>0);
|
||||
z=(int32_t *)buff;
|
||||
*s=r;
|
||||
for(i=*s;i>0;i-=4,z++) *z|=0x80008000;
|
||||
free(*p);
|
||||
*p=buff;
|
||||
return buff;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void pcx_8bit_nopal(void **p,int32_t *s)
|
||||
const void *pcx_8bit_nopal(const void *p,int32_t *s)
|
||||
{
|
||||
char *buff;
|
||||
char *buff = NULL;
|
||||
|
||||
if (*p!=NULL)
|
||||
if (p!=NULL)
|
||||
{
|
||||
int r = load_pcx(*p,*s,A_8BIT_NOPAL,&buff);
|
||||
int r = load_pcx(p,*s,A_8BIT_NOPAL,&buff);
|
||||
assert(r>0);
|
||||
*s=r;
|
||||
free(*p);
|
||||
*p=buff;
|
||||
}
|
||||
return buff;
|
||||
}
|
||||
|
||||
|
||||
void pcx_8bit_decomp(void **p,int32_t *s)
|
||||
|
||||
const void *pcx_8bit_decomp(const void *p, int32_t *s)
|
||||
{
|
||||
char *buff;
|
||||
int r = load_pcx(*p,*s,A_8BIT,&buff);
|
||||
int r = load_pcx(p,*s,A_8BIT,&buff);
|
||||
assert(r>0);
|
||||
*s=r;
|
||||
free(*p);
|
||||
*p=buff;
|
||||
return buff;
|
||||
}
|
||||
|
||||
void hi_8bit_correct(void **p,int32_t *s)
|
||||
const void *hi_8bit_correct(const void *p,int32_t *s)
|
||||
{
|
||||
word *ptr=(word *)*p;
|
||||
word *out = (word *)getmem(*s);
|
||||
memcpy(out, p, *s);
|
||||
word *ptr=out;
|
||||
int i;
|
||||
if (ptr[2]==8)
|
||||
{
|
||||
|
@ -364,13 +362,14 @@ void hi_8bit_correct(void **p,int32_t *s)
|
|||
ptr[i+3]=((ptr[i+3] & ~0x1F)+ptr[i+3]);
|
||||
}
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
|
||||
void load_mob_legacy_format(void **p, int32_t *s) {
|
||||
const void *load_mob_legacy_format(const void *p, int32_t *s) {
|
||||
const int sz = 376;
|
||||
int count = *s / sz;;
|
||||
char *c = *p;
|
||||
const char *c = p;
|
||||
TMOB *out = getmem(count * sizeof(TMOB));
|
||||
|
||||
memset(out, 0 , sizeof(TMOB)*count);
|
||||
|
@ -393,33 +392,34 @@ void load_mob_legacy_format(void **p, int32_t *s) {
|
|||
memcpy(d, c, nx - ofs); //last padding 1
|
||||
c+=nx - ofs - 1;
|
||||
}
|
||||
free(*p);
|
||||
*p =out;
|
||||
*s = count * sizeof(TMOB);
|
||||
return out;
|
||||
}
|
||||
|
||||
|
||||
void set_background(void **p,int32_t *s)
|
||||
const void *set_background(const void *p, int32_t *s)
|
||||
{
|
||||
word *data;
|
||||
const word *data;
|
||||
word *ptr;
|
||||
word *pal;
|
||||
const word *pal;
|
||||
char *pic;
|
||||
void *out;
|
||||
int counter;
|
||||
|
||||
|
||||
if (!bgr_handle) return;
|
||||
if (bgr_distance==-1) return;
|
||||
if (!bgr_handle) return p;
|
||||
if (bgr_distance==-1) return p;
|
||||
int32_t scr_linelen2 = GetScreenPitch();
|
||||
data=ablock(bgr_handle);
|
||||
*s=scr_linelen2*360*2;
|
||||
ptr=*p=getmem(*s);
|
||||
out = ptr=getmem(*s);
|
||||
counter=scr_linelen2*360;
|
||||
pal=data+3+bgr_distance*256;
|
||||
pic=(char *)data+PIC_FADE_PAL_SIZE;
|
||||
do
|
||||
*ptr++=pal[(uint8_t)*pic++] | BGSWITCHBIT;
|
||||
while (--counter);
|
||||
return out;
|
||||
}
|
||||
|
||||
void mouse_set_cursor(int cursor)
|
||||
|
@ -1268,6 +1268,7 @@ void play_anim(int anim_num)
|
|||
char *t,*z;
|
||||
TSTR_LIST titl=NULL;
|
||||
const char *s = build_pathname(2,gpathtable[SR_VIDEO], texty[anim_num]);
|
||||
s = local_strdup(s);
|
||||
if (snd_devnum==DEV_NOSOUND || titles_on)
|
||||
{
|
||||
concat(t,s," ");
|
||||
|
@ -1433,7 +1434,7 @@ static void load_saved_game(void)
|
|||
update_mysky();
|
||||
{
|
||||
EVENT_MSG *msg = task_wait_event(E_CLOSE_MAP);
|
||||
game = va_arg(msg->data, int);
|
||||
game = msg?va_arg(msg->data, int):-1;
|
||||
}
|
||||
unwire_proc();
|
||||
disable_click_map();
|
||||
|
@ -1485,6 +1486,7 @@ static void start(va_list args)
|
|||
volba=enter_menu(openning);openning=1;
|
||||
switch (volba)
|
||||
{
|
||||
default:
|
||||
case V_KONEC:exit_wait=1;break;
|
||||
case V_NOVA_HRA: if (!enter_generator())
|
||||
{
|
||||
|
@ -1594,6 +1596,10 @@ void show_help_short() {
|
|||
printf("add -h to print help\n");
|
||||
}
|
||||
|
||||
void quit_cb_exit_wait(void *) {
|
||||
exit_wait = 1;
|
||||
}
|
||||
|
||||
int main(int argc,char *argv[])
|
||||
{
|
||||
def_mman_group_table(gpathtable);
|
||||
|
@ -1638,9 +1644,12 @@ int main(int argc,char *argv[])
|
|||
|
||||
init_skeldal(cfg);
|
||||
|
||||
add_task(65536,start);
|
||||
int start_task = add_task(65536,start);
|
||||
|
||||
escape();
|
||||
|
||||
term_task_wait(start_task);
|
||||
|
||||
closemode();
|
||||
|
||||
ini_close(cfg);
|
||||
|
|
|
@ -196,17 +196,17 @@ int calcul_volume(int chan,int x,int y,int side,int volume)
|
|||
return 0;
|
||||
}
|
||||
|
||||
void wav_load(void **p,int32_t *s)
|
||||
const void *wav_load(const void *p, int32_t *s)
|
||||
{
|
||||
char *sr;
|
||||
const char *sr;
|
||||
char *tg;
|
||||
void *tgr;
|
||||
struct t_wave x[3];
|
||||
|
||||
sr=*p;
|
||||
sr=p;
|
||||
sr=find_chunk(sr,WAV_FMT);
|
||||
read_chunk(sr,&x);
|
||||
sr=*p;
|
||||
sr=p;
|
||||
sr=find_chunk(sr,WAV_DATA);
|
||||
*s=get_chunk_size(sr);
|
||||
tgr=tg=getmem(*s+sizeof(struct t_wave)+4);
|
||||
|
@ -215,31 +215,9 @@ void wav_load(void **p,int32_t *s)
|
|||
*(int *)tg=*s;
|
||||
tg+=4;
|
||||
read_chunk(sr,tg);
|
||||
free(*p);
|
||||
*p=tgr;
|
||||
|
||||
*s+=sizeof(struct t_wave)+4;
|
||||
/* if (x[0].freq!=x[0].bps)
|
||||
{
|
||||
char s;
|
||||
|
||||
siz>>=1;
|
||||
s=siz & 1;
|
||||
siz>>=1;
|
||||
d=tg;
|
||||
for(;siz--;d++) *d^=0x80008000;
|
||||
if (s) {c=(char *)d;c[1]^=0x80;}
|
||||
}
|
||||
else
|
||||
{
|
||||
char s;
|
||||
|
||||
s=siz & 3;
|
||||
siz>>=2;
|
||||
d=(int32_t *)tg;
|
||||
for(;siz--;d++) *d^=0x80808080;
|
||||
c=(char *)d;
|
||||
for(;s--;c++) *c^=0x80;
|
||||
}*/
|
||||
return tgr;
|
||||
}
|
||||
|
||||
void play_effekt(int x,int y,int xd,int yd,int side,int sided,const TMA_SOUND *p)
|
||||
|
@ -247,7 +225,7 @@ void play_effekt(int x,int y,int xd,int yd,int side,int sided,const TMA_SOUND *p
|
|||
int chan;
|
||||
int blockid;
|
||||
SND_INFO *track;
|
||||
char *s;
|
||||
const char *s;
|
||||
|
||||
if (!sound_enabled) return;
|
||||
side;
|
||||
|
@ -273,8 +251,6 @@ void play_effekt(int x,int y,int xd,int yd,int side,int sided,const TMA_SOUND *p
|
|||
if (blockid == -1) {
|
||||
def_handle(end_ptr, p->filename, wav_load, SR_ZVUKY);
|
||||
blockid = end_ptr++;
|
||||
if (level_preload)
|
||||
apreload(blockid);
|
||||
}
|
||||
|
||||
alock(blockid);
|
||||
|
@ -414,7 +390,7 @@ void purge_playlist()
|
|||
void play_sample_at_sector(int sample,int sector1,int sector2,int track, char loop)
|
||||
{
|
||||
int x,y,xd,yd,chan;
|
||||
char *s;
|
||||
const char *s;
|
||||
struct t_wave *p;
|
||||
int siz;
|
||||
int oldtrack;
|
||||
|
@ -450,7 +426,7 @@ void play_sample_at_sector(int sample,int sector1,int sector2,int track, char lo
|
|||
|
||||
void play_sample_at_channel(int sample,int channel,int vol)
|
||||
{
|
||||
char *s;
|
||||
const char *s;
|
||||
struct t_wave *p;
|
||||
int siz;
|
||||
|
||||
|
@ -486,7 +462,7 @@ void create_sound_table(char *template,int32_t size)
|
|||
|
||||
void create_sound_table_old()
|
||||
{
|
||||
char *c,*s;
|
||||
const char *c,*s;
|
||||
int32_t pocet;
|
||||
int i=0;
|
||||
|
||||
|
@ -547,8 +523,8 @@ static int flute_canal=30;
|
|||
|
||||
void start_play_flute(char note)
|
||||
{
|
||||
void *q;
|
||||
char *w;
|
||||
const void *q;
|
||||
const char *w;
|
||||
float realfrq;
|
||||
int vol=50;
|
||||
|
||||
|
@ -569,8 +545,8 @@ void start_play_flute(char note)
|
|||
|
||||
void stop_play_flute()
|
||||
{
|
||||
void *q;
|
||||
char *w;
|
||||
const void *q;
|
||||
const char *w;
|
||||
|
||||
if (check_snd_effect(SND_GFX))
|
||||
{
|
||||
|
|
|
@ -1415,7 +1415,7 @@ char ask_who_proc(int id,int xa,int ya,int xr,int yr)
|
|||
{
|
||||
THUMAN *p;
|
||||
int i;
|
||||
word *xs;
|
||||
const word *xs;
|
||||
|
||||
xs=ablock(H_OKNO);
|
||||
i=xr/xs[0];yr;xa;ya;id;
|
||||
|
@ -1492,7 +1492,7 @@ char runes_mask(int id,int xa,int ya,int xr,int yr)
|
|||
{
|
||||
char *c;
|
||||
int cc;
|
||||
short *d;
|
||||
const short *d;
|
||||
|
||||
id;ya;xa;
|
||||
d=ablock(H_RUNEMASK);
|
||||
|
@ -1927,7 +1927,7 @@ void programming_keyboard(EVENT_MSG *msg,void **unused)
|
|||
unused;
|
||||
if (msg->msg==E_KEYBOARD)
|
||||
{
|
||||
c=va_arg(msg->data, int)>>8;
|
||||
c=quit_request_as_escape(va_arg(msg->data, int))>>8;
|
||||
while (_bios_keybrd(_KEYBRD_READY) ) _bios_keybrd(_KEYBRD_READ);
|
||||
switch (c)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue