game folder "just" compiles (not link)

This commit is contained in:
Ondřej Novák 2025-01-25 13:08:41 +01:00
parent 13d3908273
commit 1b0f7fe0c2
135 changed files with 2161 additions and 2336 deletions

4
.gitignore vendored
View file

@ -5,3 +5,7 @@
_UpgradeReport_Files
/Bin
/Debug
/build
/.cproject
/.project
/.settings

1
.settings/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
/language.settings.xml

6
CMakeLists.txt Normal file
View file

@ -0,0 +1,6 @@
cmake_minimum_required(VERSION 3.28)
project(skeldal)
include_directories(platform libs)
add_compile_options(-funsigned-char)
add_subdirectory(game)

View file

@ -1,81 +0,0 @@
#include <skeldal_win.h>
#include <stdio.h>
#include <bgraph.h>
#include <dos.h>
#include <memman.h>
#include <debug.h>
static int latest_version(char *wild,int numpos)
{
WIN32_FIND_DATA ff;
HANDLE rc;
int i=0,j=-1;
char *p;
rc=FindFirstFile(wild,&ff);
if (rc!=INVALID_HANDLE_VALUE)
do
{
p=ff.cFileName+numpos;
sscanf(p,"%d",&i);
if (i>j) j=i;
}
while (FindNextFile(rc,&ff));
FindClose(rc);
return j;
}
void save_dump()
{
static dump_counter=-1;
FILE *f;
int i,r,g,b,x,y;
word *a;
char c[20];
if (dump_counter==-1)
{
dump_counter=latest_version("DUMP*.BMP",4);
SEND_LOG("(DUMP) Dump counter sets to %d",dump_counter,0);
}
sprintf(c,"DUMP%04d.BMP",++dump_counter);
SEND_LOG("(DUMP) Saving screen shot named '%s'",c,0);
f=fopen(c,"wb");
fputc('B',f);fputc('M',f);
i=DxGetResX()*DxGetResY()*3+0x36;
fwrite(&i,1,4,f);i=0;
fwrite(&i,1,4,f);
i=0x36;
fwrite(&i,1,4,f);
i=0x28;
fwrite(&i,1,4,f);
i=DxGetResX();
fwrite(&i,1,4,f);
i=DxGetResY();
fwrite(&i,1,4,f);
i=1;
fwrite(&i,1,2,f);
i=24;
fwrite(&i,1,2,f);
i=0;
fwrite(&i,1,4,f);
i=DxGetResX()*DxGetResY()*3;
fwrite(&i,1,4,f);
for(i=4,r=0;i>0;i--) fwrite(&r,1,4,f);
for(y=DxGetResY();y>0;y--)
{
word *scr=GetScreenAdr();
a=scr+(y-1)*scr_linelen2;
for(x=0;x<DxGetResX();x++)
{
i=a[x];
b=(i & 0x1f)<<3;
g=(i & 0x7ff)>>3;
r=i>>8;
i=((r*256)+g)*256+b;
fwrite(&i,1,3,f);
}
}
fclose(f);
}

View file

@ -169,10 +169,10 @@ static void cpy_error_proc(int event,char *name)
switch(event)
{
case CPERR_OPEN:hlaska="Nemohu otev©¡t soubor :";break;
case CPERR_READ:hlaska="Nastala chyba p©i ‡ten¡ z CD. Vyjmˆte CD, o‡istˆte jej a opˆt ho vlote do mechaniky";break;
case CPERR_WRITE:hlaska="Nastala chyba p©i zapisu na disk. Mon  u je pln˜. Soubor:";break;
default:hlaska="Nastala nezn ma chyba. ";
case CPERR_OPEN:hlaska="Nemohu otev<EFBFBD><EFBFBD>t soubor :";break;
case CPERR_READ:hlaska="Nastala chyba p<EFBFBD>i <20>ten<65> z CD. Vyjm<6A>te CD, o<>ist<73>te jej a op<6F>t ho vlo<6C>te do mechaniky";break;
case CPERR_WRITE:hlaska="Nastala chyba p<EFBFBD>i zapisu na disk. Mo<4D>n<EFBFBD> u<> je pln<6C>. Soubor:";break;
default:hlaska="Nastala nezn<EFBFBD>ma chyba. ";
}
text=alloca(strlen(hlaska)+strlen(name)+10);
strcpy(text,hlaska);
@ -187,7 +187,7 @@ static void cpy_error_proc(int event,char *name)
static void stop_copy()
{
if (msg_box("Konec instalace?",'\x2',"Hra je¨tˆ nen¡ kompletnˆ nainstalov na. Opravdu chce¨ ukon‡it instal tora?","Ano","Ne",NULL)==1)
if (msg_box("Konec instalace?",'\x2',"Hra je<EFBFBD>t<EFBFBD> nen<65> kompletn<74> nainstalov<6F>na. Opravdu chce<63> ukon<6F>it instal<61>tora?","Ano","Ne",NULL)==1)
{
close_ini();
shutdown();
@ -197,7 +197,7 @@ static void stop_copy()
static void stop_setup()
{
if (msg_box("Konec?",'\x2',"Tato volba ukon‡¡ SETUP bez uloen¡ zmˆn. Opravdu chce¨ ukon‡it program?","Ano","Ne",NULL)==1)
if (msg_box("Konec?",'\x2',"Tato volba ukon<EFBFBD><EFBFBD> SETUP bez ulo<6C>en<65> zm<7A>n. Opravdu chce<63> ukon<6F>it program?","Ano","Ne",NULL)==1)
{
shutdown();
home_path(target_path);
@ -208,10 +208,10 @@ static void stop_setup()
static void display_progress(void)
{
def_dialoge(312,380,310,75,"Kop¡ruj¡ se soubory...",3);
def_dialoge(312,380,310,75,"Kop<EFBFBD>ruj<EFBFBD> se soubory...",3);
define(10,10,27,290,15,0,done_bar,100);
property(bbutt,NULL,flat_color(0x1e0),WINCOLOR);
define(30,5,5,80,15,2,button,"P©eru¨it");on_change(stop_copy);
define(30,5,5,80,15,2,button,"P<EFBFBD>eru<EFBFBD>it");on_control_change(stop_copy);
property(def_border(1,0),&font6x9,flat_color(0),BUTTONCOLOR);
define(20,5,10,200,12,3,input_line,2048);set_default("");
property(NULL,&font6x9,flat_color(0),WINCOLOR);
@ -303,9 +303,9 @@ static void open_handbook(char *file)
if (find_window(win_handbook)!=NULL) close_window(find_window(win_handbook));
if (handbook!=NULL) release_list(handbook);
handbook=read_text(file);
win_handbook=def_dialoge(54,54,450,350,"P©¡ru‡ka",2);
win_handbook=def_dialoge(54,54,450,350,"P<EFBFBD><EFBFBD>ru<EFBFBD>ka",2);
def_listbox(9,5,25,420,290,handbook,0,WINCOLOR);property(def_border(0,WINCOLOR),&font6x9,NULL,WINCOLOR);
define(20,5,5,60,15,2,button2,"Zav©¡t");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(close_current);
define(20,5,5,60,15,2,button2,"Zav<EFBFBD><EFBFBD>t");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(close_current);
redraw_window();
}
@ -341,7 +341,7 @@ static void read_dirlist()
else
if (dirlist[i]!=NULL && !strcmp(dirlist[i],".."))
{
str_insline(&dirlist,0,"<- zpˆt");
str_insline(&dirlist,0,"<- zp<EFBFBD>t");
str_replace(&dirlist,i,NULL);
i++;
}
@ -390,7 +390,7 @@ static void select_dir()
{
int i=f_get_value(0,59);
if (dirlist[i]==NULL) return;
if (!strcmp(dirlist[i],"<- zpˆt")) chdir("..");else chdir(dirlist[i]);
if (!strcmp(dirlist[i],"<- zp<EFBFBD>t")) chdir("..");else chdir(dirlist[i]);
update_list();
}
@ -403,7 +403,7 @@ static get_script(char *source,char *target)
if (i)
{
shutdown();
if (i==1) puts("Nemohu na‡¡st INSTALL.INF");
if (i==1) puts("Nemohu na<EFBFBD><EFBFBD>st INSTALL.INF");
if (i==2) puts("Chyba kompilace scriptu INSTALL.INF");
abort();
}
@ -435,20 +435,20 @@ static load_window()
read_dirlist();
read_disk_list();
def_dialoge(200,100,340,300,PRG_HEADER,3);
define(-1,5,20,1,1,0,label,"Jmno sloky");
define(-1,5,20,1,1,0,label,"Jm<EFBFBD>no slo<6C>ky");
define(10,5,35,330,10,0,input_line,2048);property(def_border(5,WINCOLOR),&font6x9,NULL,0x7fff);
set_full_target_path(0);
for(i=0;i<str_count(disklist);i++) if (target_path[0]==disklist[i][2]) break;
default_font=&font6x9;
define(150,70,5,60,20,2,button,"Ok");on_change(terminate);property(bbutt,&font6x9,NULL,BUTTONCOLOR);
define(160,5,5,60,20,2,button,"Storno");on_change(terminate);property(bbutt,&font6x9,NULL,BUTTONCOLOR);
define(150,70,5,60,20,2,button,"Ok");on_control_change(terminate_gui);property(bbutt,&font6x9,NULL,BUTTONCOLOR);
define(160,5,5,60,20,2,button,"Storno");on_control_change(terminate_gui);property(bbutt,&font6x9,NULL,BUTTONCOLOR);
default_font=vga_font;
def_listbox(59,70,60,100,200,dirlist,0,0x03ff);c_default(0);on_change(select_dir);
def_listbox(69,5,60,40,200,disklist,0,0x03ff);on_change(change_disk);
def_listbox(59,70,60,100,200,dirlist,0,0x03ff);c_default(0);on_control_change(select_dir);
def_listbox(69,5,60,40,200,disklist,0,0x03ff);on_control_change(change_disk);
c_default(i);
default_font=&font6x9;
define(-1,215,135,110,80,0,win_label,"");property(def_border(5,0x631f),NULL,NULL,0x631f);
define(-1,220,140,1,1,0,label,"Voln na HD:");
define(-1,220,140,1,1,0,label,"Voln<EFBFBD> na HD:");
define(100,240,150,80,10,0,view_line,20);set_default("");property(NULL,&font6x9,NULL,0x631f);
default_font=vga_font;
redraw_window();
@ -469,13 +469,13 @@ static void autodetect()
default_font=&font6x9;
def_dialoge(12,12,324,140,"Autodetekce",2);
define(-1,5,22,1,1,0,label,"Grafick  karta:");
define(-1,5,22,1,1,0,label,"Grafick<EFBFBD> karta:");
define(-1,5,34,1,1,0,label,"Typ SVGA:");
define(-1,5,46,1,1,0,label,"Rozli¨en¡:");
define(-1,5,62,1,1,0,label,"Zvukov  karta:");
define(-1,5,46,1,1,0,label,"Rozli<EFBFBD>en<EFBFBD>:");
define(-1,5,62,1,1,0,label,"Zvukov<EFBFBD> karta:");
define(-1,5,74,1,1,0,label,"Parametry:");
define(-1,5,90,1,1,0,label,"CD-ROM:");
define(-1,5,110,1,1,0,label,"My¨:");
define(-1,5,110,1,1,0,label,"My<EFBFBD>:");
define(10,5,22,120,10,1,view_line,256);set_default("");
define(20,5,34,160,10,1,view_line,256);set_default("");
define(30,5,46,150,10,1,view_line,256);set_default("");
@ -488,8 +488,8 @@ static void autodetect()
do_events();
if (getsvgainfo(&si))
{
set_value(0,10,"<nen¡>");
set_value(0,20,"<nen¡>");
set_value(0,10,"<nen<EFBFBD>>");
set_value(0,20,"<nen<EFBFBD>>");
}
else
{
@ -521,7 +521,7 @@ static EVENT_PROC(esc_mode2)
zobraz_mysku();
redraw_desktop();
goto_control(0);
terminate();
terminate_gui();
}
}
}
@ -531,9 +531,9 @@ static char test_mode()
char i,j,c;
if (msg_box("Test grafiky",'\x1',
"Instal tor nyn¡ vyzkou¨¡ zvolen˜ grafick˜ reim. "
"Pokud obrazovka zstane ‡ern , nebo zobraz¡ nesmysly, stisknˆte "
"ESC a instal tor obnov¡ pvodn¡ reim.","Start","Zru¨it",NULL)==2) return 0;
"Instal<EFBFBD>tor nyn<79> vyzkou<6F><75> zvolen<65> grafick<63> re<72>im. "
"Pokud obrazovka z<EFBFBD>stane <20>ern<72>, nebo zobraz<61> nesmysly, stiskn<6B>te "
"ESC a instal<EFBFBD>tor obnov<6F> p<>vodn<64> re<72>im.","Start","Zru<EFBFBD>it",NULL)==2) return 0;
send_message(E_ADD,E_KEYBOARD,esc_mode2);
donegr();
i=initgr_spec(f_get_value(0,9));
@ -542,7 +542,7 @@ static char test_mode()
zobraz_mysku();
redraw_desktop();
}
if (!i && (j=msg_box("Test grafiky",'\x2',"Vidi¨ prost©ed¡ instal toru spr vnˆ?","Ano","Ne",NULL))==1)
if (!i && (j=msg_box("Test grafiky",'\x2',"Vidi<EFBFBD> prost<73>ed<65> instal<61>toru spr<70>vn<76>?","Ano","Ne",NULL))==1)
{
vmode=f_get_value(0,9);
if (vmode==0) initgr_low();
@ -583,7 +583,7 @@ static void select_vga()
def_dialoge(20,300,156,156,"Kvalita grafiky",2);
define(9,0,20,156,80,0,listbox,video_ls,0x03ff,0);c_default(vmode);
property(NULL,vga_font,NULL,WINCOLOR);
define(20,38,5,80,20,3,button,"Zmˆnit teƒ");on_change(test_mode);
define(20,38,5,80,20,3,button,"Zm<EFBFBD>nit te<74>");on_control_change(test_mode);
property(bbutt,NULL,NULL,BUTTONCOLOR);
redraw_window();
}
@ -611,19 +611,19 @@ static void select_mode_win()
{
def_dialoge(224,270,192,156,"Instalovat",2);
default_font=&font6x9;
define(10,30,40,132,30,0,button,"Automaticky");property(bbutt,NULL,NULL,BUTTONCOLOR);on_change(terminate);
define(30,30,80,132,30,0,button,"Podle p© ");property(bbutt,NULL,NULL,BUTTONCOLOR);on_change(terminate);
define(40,50,15,92,20,3,button,"Konec");property(bbutt,NULL,NULL,BUTTONCOLOR);on_change(stop_copy);
define(10,30,40,132,30,0,button,"Automaticky");property(bbutt,NULL,NULL,BUTTONCOLOR);on_control_change(terminate_gui);
define(30,30,80,132,30,0,button,"Podle p<EFBFBD><EFBFBD>n<EFBFBD>");property(bbutt,NULL,NULL,BUTTONCOLOR);on_control_change(terminate_gui);
define(40,50,15,92,20,3,button,"Konec");property(bbutt,NULL,NULL,BUTTONCOLOR);on_control_change(stop_copy);
redraw_window();
}
static void select_mode_win_setup()
{
def_dialoge(224,270,192,156,"Monosti:",2);
def_dialoge(224,270,192,156,"Mo<EFBFBD>nosti:",2);
default_font=&font6x9;
define(10,30,40,132,30,0,button,"Nastaven¡");property(bbutt,NULL,NULL,BUTTONCOLOR);on_change(terminate);
define(30,30,80,132,30,0,button,"Odinstalov ");property(bbutt,NULL,NULL,BUTTONCOLOR);on_change(terminate);
define(40,50,15,92,20,3,button,"Konec");property(bbutt,NULL,NULL,BUTTONCOLOR);on_change(stop_setup);
define(10,30,40,132,30,0,button,"Nastaven<EFBFBD>");property(bbutt,NULL,NULL,BUTTONCOLOR);on_control_change(terminate_gui);
define(30,30,80,132,30,0,button,"Odinstalov<EFBFBD>n<EFBFBD>");property(bbutt,NULL,NULL,BUTTONCOLOR);on_control_change(terminate_gui);
define(40,50,15,92,20,3,button,"Konec");property(bbutt,NULL,NULL,BUTTONCOLOR);on_control_change(stop_setup);
redraw_window();
}
@ -657,7 +657,7 @@ static void device_select2()
char c;
def_dialoge(270,240,100,100,device_name(i),3);
define(10,10,25,60,40,0,radio_butts,3,"LPT 1","LPT 2","PC Speaker");c_default(0);
define(20,10,5,80,20,2,button,"Ok");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(terminate);
define(20,10,5,80,20,2,button,"Ok");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(terminate_gui);
redraw_window();
escape();
c=f_get_value(0,10);
@ -674,7 +674,7 @@ static void device_select2()
static void select_sound();
static void detect_sound()
{
if (msg_box("Rozpozn n¡ zvukov karty",'\x2',"Opravdu chce¨ nechat rozpoznat zvukovou kartu? Na nˆkter˜ch po‡¡ta‡¡ch me automatick rozpozn v n¡ zpsobit zatuhnut¡ po‡¡ta‡e.","Ano","Ne",NULL)==2) return;
if (msg_box("Rozpozn<EFBFBD>n<EFBFBD> zvukov<6F> karty",'\x2',"Opravdu chce<EFBFBD> nechat rozpoznat zvukovou kartu? Na n<>kter<65>ch po<70><6F>ta<74><61>ch m<><6D>e automatick<63> rozpozn<7A>v<EFBFBD>n<EFBFBD> zp<7A>sobit zatuhnut<75> po<70><6F>ta<74>e.","Ano","Ne",NULL)==2) return;
if (mixer_running) stop_mixing();
mixer_running=0;
set_enable(0,70,mixer_running);
@ -695,15 +695,15 @@ static char sound_scan()
if (sound_info.device!=DEV_NOSOUND)
{
if (sound_info.device==DEV_DAC)
if (msg_box("Varov !",'\x1',"Vybran zvukov za©¡zen¡ pou¡v  nestandardn¡ p©¡stupy a vyu¡v  "
"nˆkter˜ch skryt˜ch trik systmu. Na nˆkter˜ch po‡¡ta‡¡ch nemus¡ pracovat spr vnˆ. "
"Toto za©¡zen¡ nedok e pracovat pod WINDOWS95 nebo jin˜m OS v˜jma DOSu. "
"Pro zrychlen¡ pr ce odinstalujte ze systmu jak˜koliv EMM manager (EMM386, QEMM, apod.) "
"Chcete pokraovat?","Ano","Ne",NULL)==2) return 1;
if (msg_box("Varov<EFBFBD>n<EFBFBD>!",'\x1',"Vybran<EFBFBD> zvukov<6F> za<7A><61>zen<65> pou<6F><75>v<EFBFBD> nestandardn<64> p<><70>stupy a vyu<79><75>v<EFBFBD> "
"n<EFBFBD>kter<EFBFBD>ch skryt<79>ch trik<69> syst<73>mu. Na n<>kter<65>ch po<70><6F>ta<74><61>ch nemus<75> pracovat spr<70>vn<76>. "
"Toto za<EFBFBD><EFBFBD>zen<EFBFBD> nedok<6F><6B>e pracovat pod WINDOWS95 nebo jin<69>m OS v<>jma DOSu. "
"Pro zrychlen<EFBFBD> pr<70>ce odinstalujte ze syst<73>mu jak<61>koliv EMM manager (EMM386, QEMM, apod.) "
"Chcete pokra<EFBFBD>ovat?","Ano","Ne",NULL)==2) return 1;
get_value(sound_win,20,buffer);
if (sscanf(buffer,"%x",&sound_info.port)!=1)
{
msg_box("Pozor!",'\x1',"Mus¡¨ vyplnit spr vnˆ Port","Ok",NULL);
msg_box("Pozor!",'\x1',"Mus<EFBFBD><EFBFBD> vyplnit spr<70>vn<76> Port","Ok",NULL);
return 1;
}
}
@ -746,22 +746,22 @@ void select_sound()
default_font=&font6x9;
for(i=0;i<8;i++) str_add(&ls,device_name(i));
str_replace(&ls,0,"<bez zvuku>");
sound_win=def_dialoge(200,300,300,156,"Zvukov  karta",2);
define(9,2,20,170,85,0,listbox,ls,0x03ff,0);c_default(sound_info.device);on_change(device_select2);
sound_win=def_dialoge(200,300,300,156,"Zvukov<EFBFBD> karta",2);
define(9,2,20,170,85,0,listbox,ls,0x03ff,0);c_default(sound_info.device);on_control_change(device_select2);
property(def_border(0,0x4210),vga_font,NULL,WINCOLOR);
define(-1,180,20,1,1,0,label,"Port:");
define(20,10,20,30,12,1,input_line,3);property(def_border(0,0x4210),vga_font,NULL,WINCOLOR);
set_default(itoa(sound_info.port,buff,16));
define(-1,180,40,1,1,0,label,"DMA:");
i=sound_info.dma;i-=(i>2)+(i>4);
define(30,40,40,30,30,1,radio_butts,3,"0","1","3");c_default(i);on_change(change_dma);
define(35,10,40,30,30,1,radio_butts,3,"5","6","7");c_default(i-3);on_change(change_dma);
define(30,40,40,30,30,1,radio_butts,3,"0","1","3");c_default(i);on_control_change(change_dma);
define(35,10,40,30,30,1,radio_butts,3,"5","6","7");c_default(i-3);on_control_change(change_dma);
define(-1,180,80,1,1,0,label,"IRQ:");
i=sound_info.irq;i-=2*(i>1)+(i>4)+(i>6);
define(40,40,80,30,40,1,radio_butts,4,"2","3","5","7");c_default(i);
define(50,10,5,80,20,2,button,"Test");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(test_sound);
define(60,100,5,80,20,2,button,"Rozpoznat");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(detect_sound);
define(70,190,5,80,20,2,button,"Stop");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(stop_sound);
define(50,10,5,80,20,2,button,"Test");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(test_sound);
define(60,100,5,80,20,2,button,"Rozpoznat");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(detect_sound);
define(70,190,5,80,20,2,button,"Stop");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(stop_sound);
redraw_window();
set_enable(0,70,mixer_running);
device_select();
@ -773,7 +773,7 @@ static void back_start()
stop_sound();
sound_scan();
while (waktual!=NULL) close_current();
terminate();
terminate_gui();
}
static void control_window(void *forward,void *back,void *help);
@ -823,7 +823,7 @@ void static show_space(char device)
if (device>='A' && device<='Z')
{
if (device!=lastdevice) lastvalue=get_disk_free(device-'@')/1024;
sprintf(buff,"Na disku %c: je voln˜ch %d Kb",device,lastvalue);
sprintf(buff,"Na disku %c: je voln<EFBFBD>ch %d Kb",device,lastvalue);
lastdevice=device;
set_value(0,80,buff);
}
@ -932,7 +932,7 @@ static void start_install()
strupr(target_path);
if (validate_path(target_path)==0)
{
msg_box("Cesta je ¨patnˆ",'\x1',"Cesta s c¡lov˜m adres ©em je chybnˆ zad na. Nepou¡vejte dlouh n zvy z WINDOWS 95!","OK",NULL);
msg_box("Cesta je <EFBFBD>patn<EFBFBD>",'\x1',"Cesta s c<EFBFBD>lov<EFBFBD>m adres<65><73>em je chybn<62> zad<61>na. Nepou<6F><75>vejte dlouh<75> n<>zvy z WINDOWS 95!","OK",NULL);
return;
}
get_script(_SOURCE_,target_path);
@ -946,21 +946,21 @@ static void start_install()
diskfree=get_disk_free(target_path[0]-'@');
if (maxcopy>diskfree)
{
if (msg_box("Nedostatek m¡sta!",'\x1',"Instal tor vypo‡¡tal, e BS zaberou v¡ce m¡sta ne m te na svm disku. "
"Pokud v¨ak pou¡vate komprima‡n¡ program jako je t©eba DRVSPACE, pak mohou b˜t £daje o "
"volnm m¡stu nep©esne. I p©es to, e nen¡ voln m¡sto chcete pokra‡ovat?","Ano","Ne",NULL)==2) return;
if (msg_box("Nedostatek m<EFBFBD>sta!",'\x1',"Instal<EFBFBD>tor vypo<70><6F>tal, <20>e BS zaberou v<>ce m<>sta ne<6E> m<>te na sv<73>m disku. "
"Pokud v<EFBFBD>ak pou<6F><75>vate komprima<6D>n<EFBFBD> program jako je t<>eba DRVSPACE, pak mohou b<>t <20>daje o "
"voln<EFBFBD>m m<>stu nep<65>esne. I p<>es to, <20>e nen<65> voln<6C> m<>sto chcete pokra<72>ovat?","Ano","Ne",NULL)==2) return;
}
else if (maxcopy+1024*1024>diskfree)
{
if (msg_box("M lo m¡sta",'\x2',"Po nainstalov n¡ by mˆlo zb˜t alespo¤ 1MB pro bˆh. Sou‡asn˜ prostor"
"umo¤uje hru nainstalovat, av¨ak hru nebude mon spustit. Pokra‡ovat?","Ano","Ne",NULL)==2) return;
if (msg_box("M<EFBFBD>lo m<>sta",'\x2',"Po nainstalov<EFBFBD>n<EFBFBD> by m<>lo zb<7A>t alespo<70> 1MB pro b<>h. Sou<6F>asn<73> prostor"
"umo<EFBFBD><EFBFBD>uje hru nainstalovat, av<61>ak hru nebude mo<6D>n<EFBFBD> spustit. Pokra<72>ovat?","Ano","Ne",NULL)==2) return;
}
maxcopy=maxcopy<<1;
while (waktual!=NULL) close_current();
cascade_mkdir(target_path);
if (create_ini(target_path,SKELDAL_INI))
{
msg_box(PRG_HEADER,'\x1',"Nemohu vytvo©it konfigura‡n¡ soubor. Zkontroluj spravnost z pisu cesty","Ok",NULL);
msg_box(PRG_HEADER,'\x1',"Nemohu vytvo<EFBFBD>it konfigura<72>n<EFBFBD> soubor. Zkontroluj spravnost z<>pisu cesty","Ok",NULL);
clean_up();
return;
}
@ -981,7 +981,7 @@ static void start_install()
if (error) shutdown(),exit(1);
close_current();
do_events();
if (!autostart) msg_box("Hotovo",' ',"Hra 'Br ny Skeldalu' je £spˆ¨nˆ nainstalov na. Spu¨tˆn¡ proveƒte z p©¡kazov © dky naps m 'SKELDAL'","Konec",NULL);
if (!autostart) msg_box("Hotovo",' ',"Hra 'Br<EFBFBD>ny Skeldalu' je <20>sp<73><70>n<EFBFBD> nainstalov<6F>na. Spu<70>t<EFBFBD>n<EFBFBD> prove<76>te z p<><70>kazov<6F> <20><>dky naps<70>n<EFBFBD>m 'SKELDAL'","Konec",NULL);
purge_file_list();
shutdown();
home_path(target_path);
@ -1028,26 +1028,26 @@ static void rozsah_window()
exit_wait=0;
default_font=&font6x9;
def_dialoge(146,160,348,264,"Rozsah instalace",2);
define(10,10,30,70,30,0,button,"Minim ln¡");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(start_install);
define(-1,90,30,1,1,0,label,"Instaluje jen nejdleitˆj¨¡ soubory na HD");
define(-1,90,40,1,1,0,label,"V¨e ostatn¡ se pak na‡¡t  p©¡mo z CD");
define(10,10,30,70,30,0,button,"Minim<EFBFBD>ln<EFBFBD>");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(start_install);
define(-1,90,30,1,1,0,label,"Instaluje jen nejd<EFBFBD>le<EFBFBD>it<EFBFBD>j<EFBFBD><EFBFBD> soubory na HD");
define(-1,90,40,1,1,0,label,"V<EFBFBD>e ostatn<74> se pak na<6E><61>t<EFBFBD> p<><70>mo z CD");
sprintf(buff,text,install_sizes[0]/1024);
define(-1,90,50,1,1,0,label,buff);
define(20,10,80,70,30,0,button,"St©edn¡");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(start_install);
define(-1,90,80,1,1,0,label,"Instaluje v¨echny datov soubory na HD");
define(-1,90,90,1,1,0,label,"Hudba a video se ‡tou p©¡mo z CD");
define(20,10,80,70,30,0,button,"St<EFBFBD>edn<EFBFBD>");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(start_install);
define(-1,90,80,1,1,0,label,"Instaluje v<EFBFBD>echny datov<6F> soubory na HD");
define(-1,90,90,1,1,0,label,"Hudba a video se <EFBFBD>tou p<><70>mo z CD");
sprintf(buff,text,install_sizes[1]/1024);
define(-1,90,100,1,1,0,label,buff);
define(30,10,130,70,30,0,button,"Maxim ln¡");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(start_install);
define(-1,90,130,1,1,0,label,"Instaluje v¨e na v ¨ HD v‡etnˆ hudby");
define(-1,90,140,1,1,0,label,"a videa. Z CD se nena‡¡t  vbec nic.");
define(30,10,130,70,30,0,button,"Maxim<EFBFBD>ln<EFBFBD>");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(start_install);
define(-1,90,130,1,1,0,label,"Instaluje v<EFBFBD>e na v<><76> HD v<>etn<74> hudby");
define(-1,90,140,1,1,0,label,"a videa. Z CD se nena<EFBFBD><EFBFBD>t<EFBFBD> v<>bec nic.");
sprintf(buff,text,install_sizes[2]/1024);
define(-1,90,150,1,1,0,label,buff);
define(40,10,180,70,20,0,button,"Sloka");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(open_load_window);
define(40,10,180,70,20,0,button,"Slo<EFBFBD>ka");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(open_load_window);
define(60,90,185,250,11,0,input_line,2048);property(def_border(1,0x4210),&font6x9,NULL,0x7fff);
set_default(target_path);
on_event(show_space_event);on_exit(show_space_exit);
define(70,40,220,200,10,0,check_box,"Po nainstalov  hru automaticky spustit.");c_default(1);
define(70,40,220,200,10,0,check_box,"Po nainstalov<EFBFBD>n<EFBFBD> hru automaticky spustit.");c_default(1);
define(80,10,10,250,11,2,view_line,100);set_default("");
show_space(target_path[0]);
}
@ -1055,17 +1055,17 @@ static void rozsah_window()
static void automatic_window()
{
char buff[100];
char *text="Hra zabere zhruba %d KB m¡sta";
char *text="Hra zabere zhruba %d KB m<EFBFBD>sta";
exit_wait=0;
default_font=&font6x9;
def_dialoge(110,200,420,80,"Instalovat kam?",2);
define(40,10,33,70,15,0,button,"Naj¡t");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(open_load_window);
define(40,10,33,70,15,0,button,"Naj<EFBFBD>t");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(open_load_window);
define(60,90,35,310,11,0,input_line,2048);property(def_border(1,0x4210),&font6x9,NULL,0x7fff);
set_default(target_path);
on_event(show_space_event);on_exit(show_space_exit);
define(10,10,10,70,20,2,button,"Start");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(start_install);
define(20,90,10,70,20,2,button,"<< Zpˆt");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(back_start);
define(10,10,10,70,20,2,button,"Start");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(start_install);
define(20,90,10,70,20,2,button,"<< Zp<EFBFBD>t");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(back_start);
sprintf(buff,text,install_sizes[0]/1024);
define(90,180,20,200,10,2,view_line,100);set_default(buff);
define(80,180,10,200,10,2,view_line,100);set_default("");
@ -1085,12 +1085,12 @@ static void control_next1()
static void control_window(void *forward,void *back,void *help)
{
def_dialoge(524,300,96,156,"Monosti",2);
define(10,8,30,80,20,0,button,"Dal¨¡ >>");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(forward);
define(20,8,60,80,20,0,button,"<< Zpˆt");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(back);
define(30,8,90,80,20,0,button,"? Pomoc");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(help);
def_dialoge(524,300,96,156,"Mo<EFBFBD>nosti",2);
define(10,8,30,80,20,0,button,"Dal<EFBFBD><EFBFBD> >>");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(forward);
define(20,8,60,80,20,0,button,"<< Zp<EFBFBD>t");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(back);
define(30,8,90,80,20,0,button,"? Pomoc");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(help);
define(40,8,10,80,20,3,button,"Konec");property(bbutt,&font6x9,NULL,BUTTONCOLOR);
if (setup_mode) on_change(stop_setup);else on_change(stop_copy);
if (setup_mode) on_control_change(stop_setup);else on_control_change(stop_copy);
set_enable(0,10,forward!=NULL);
set_enable(0,20,back!=NULL);
set_enable(0,30,help!=NULL);
@ -1164,7 +1164,7 @@ static void save_ini()
char err=1;
if (sound_scan()) return;
d=msg_box("Potvrzen¡?",'\x2',"Chce¨ zapsat zmˆny do konfigura‡n¡ho souboru hry?","Ano","Ne","Zru¨it",NULL);
d=msg_box("Potvrzen<EFBFBD>?",'\x2',"Chce<EFBFBD> zapsat zm<7A>ny do konfigura<72>n<EFBFBD>ho souboru hry?","Ano","Ne","Zru<EFBFBD>it",NULL);
if (d==3) return;
if (d==1)
{
@ -1193,12 +1193,12 @@ static void deinstall()
char ig;
int x,y;
def_dialoge(200,200,250,156,"Odinstalovat?",2);
define(-1,10,30,200,100,0,label,"Tato volba odstran¡ hru z va¨eho disku.");
define(-1,10,40,200,100,0,label,"Pot ji nebude mone hru spustit");
define(-1,10,50,200,100,0,label,"do novho nainstalov  z CD.");
define(10,30,80,150,10,0,check_box,"Zachovat uloen pozice");c_default(1);
define(20,10,10,80,30,3,button,"Ano");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(terminate);
define(30,10,10,80,30,2,button,"Proboha NE");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(terminate);
define(-1,10,30,200,100,0,label,"Tato volba odstran<EFBFBD> hru z va<76>eho disku.");
define(-1,10,40,200,100,0,label,"Pot<EFBFBD> ji<6A> nebude mo<6D>ne hru spustit");
define(-1,10,50,200,100,0,label,"do nov<EFBFBD>ho nainstalov<6F>n<EFBFBD> z CD.");
define(10,30,80,150,10,0,check_box,"Zachovat ulo<EFBFBD>en<EFBFBD> pozice");c_default(1);
define(20,10,10,80,30,3,button,"Ano");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(terminate_gui);
define(30,10,10,80,30,2,button,"Proboha NE");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(terminate_gui);
redraw_window();
escape();
if (o_aktual->id==30)
@ -1266,12 +1266,12 @@ void warning()
_outtext("(C)1998 Napoleon gameS - Setup version 1.0 written by Ondrej Novak\n"
"Instalacni program ke hre Brany Skeldalu\n\nUpozorneni:\n");
_settextcolor(15);
_outtext("Ú"); REPEAT(i,78) _outtext("Ä");_outtext("¿");
_outtext("<EFBFBD>"); REPEAT(i,78) _outtext("<EFBFBD>");_outtext("<EFBFBD>");
REPEAT(j,5)
{
_outtext("³"); REPEAT(i,78)_outtext(" ");_outtext("³");
_outtext("<EFBFBD>"); REPEAT(i,78)_outtext(" ");_outtext("<EFBFBD>");
}
_outtext("À"); REPEAT(i,78) _outtext("Ä");_outtext("Ù");
_outtext("<EFBFBD>"); REPEAT(i,78) _outtext("<EFBFBD>");_outtext("<EFBFBD>");
_settextcolor(13);
_settextwindow(6,2,20,79);
_outtext("Stiskem jakekoliv klavesy spustite instalacni program. Pokud potom obrazovka"
@ -1296,9 +1296,9 @@ static void ask_video()
ask_video_win=def_dialoge(242,100,156,156,"Vyber grafiku",3);
define(9,0,20,156,80,0,listbox,video_ls,0x03ff,0);c_default(vmode);
property(NULL,vga_font,NULL,WINCOLOR);
define(20,5,5,60,20,2,button,"Konec");on_change(terminate);
define(20,5,5,60,20,2,button,"Konec");on_control_change(terminate_gui);
property(bbutt,NULL,NULL,BUTTONCOLOR);
define(20,70,5,60,20,2,button,"OK");on_change(test_mode_xxx);
define(20,70,5,60,20,2,button,"OK");on_control_change(test_mode_xxx);
property(bbutt,NULL,NULL,BUTTONCOLOR);
redraw_window();
}
@ -1316,7 +1316,7 @@ static EVENT_PROC(esc_mode)
rescue_mode=1;
redraw_desktop();
vmode=0;
terminate();
terminate_gui();
}
}
}
@ -1327,10 +1327,10 @@ static void about_window()
char r=!rescue_mode;
if (r) send_message(E_ADD,E_KEYBOARD,esc_mode);
def_dialoge(200,100,240,144,PRG_HEADER,2);
define(-1,10,30,220,10,0,mid_label,"V¡tej u instal toru hry:");
define(-1,10,42,220,10,0,mid_label,"Br ny Skeldalu");
define(-1,10,80,220,10,0,mid_label,"Instala‡n¡ program napsal:");
define(-1,10,92,220,10,0,mid_label,"Ond©ej Nov k");
define(-1,10,30,220,10,0,mid_label,"V<EFBFBD>tej u instal<61>toru hry:");
define(-1,10,42,220,10,0,mid_label,"Br<EFBFBD>ny Skeldalu");
define(-1,10,80,220,10,0,mid_label,"Instala<EFBFBD>n<EFBFBD> program napsal:");
define(-1,10,92,220,10,0,mid_label,"Ond<EFBFBD>ej Nov<6F>k");
define(-1,10,110,220,10,0,mid_label,"(C)1998 Napoleon gameS");
redraw_window();
escape();

View file

@ -143,7 +143,7 @@ long def_window(word xs,word ys,char *name)
if (xs>=70)
{
define(1,1,1,19,16,1,button,"\x0f");
property(NULL,icones,&icone_color,WINCOLOR);on_change(close_current);
property(NULL,icones,&icone_color,WINCOLOR);on_control_change(close_current);
}
return q;
}
@ -188,9 +188,9 @@ void def_listbox(int id,word x,word y,word xs,word ys,TSTR_LIST ls,int ofs,int c
define(id+1,x+xs+4,y+18,15,ys-35,0,scroll_bar_v,0,10,1,0x0200);
property(&b2,NULL,NULL,WINCOLOR);
define(id+2,x+xs+4,y,14,14,0,scroll_button,-1,0,"\x4");
property(&b1,icones,black,WINCOLOR);on_change(scroll_support);
property(&b1,icones,black,WINCOLOR);on_control_change(scroll_support);
define(id+3,x+xs+4,y+ys-14,14,14,0,scroll_button,1,10,"\6");
property(&b1,icones,black,WINCOLOR);on_change(scroll_support);
property(&b1,icones,black,WINCOLOR);on_control_change(scroll_support);
define(id,x,y,xs,ys,0,listbox,ls,color,ofs);
property(&b2,NULL,NULL,WINCOLOR);
}

View file

@ -189,10 +189,10 @@ char edit_side_save(int target,int smer)
int selmode;
apl=get_bit_fields(0,400,4);
if (apl==0) return msg_box("Editor stˆn",2,"Nen¡ za¨krtnut   dn  strana. Pokra‡ovat?","Ano","Ne",NULL)==1;
if (apl==0) return msg_box("Editor st<EFBFBD>n",2,"Nen<EFBFBD> za<7A>krtnut<75> <20><>dn<64> strana. Pokra<72>ovat?","Ano","Ne",NULL)==1;
if (smer!=-1)
if (count_of_sel()>1)
selmode=msg_box("Editor stˆn",'\x2',"Je ozna‡eno v¡ce sektor. Chce¨ upravit pouze ...","Aktu ln¡","V¨echny","Zmˆny","Zpˆt",NULL);
selmode=msg_box("Editor st<EFBFBD>n",'\x2',"Je ozna<EFBFBD>eno v<>ce sektor<6F>. Chce<63> upravit pouze ...","Aktu<EFBFBD>ln<EFBFBD>","V<EFBFBD>echny","Zm<EFBFBD>ny","Zp<EFBFBD>t",NULL);
else selmode=(apl!=1 && apl!=2 && apl!=4 && apl!=8 && target!=0)?3:1;
else
smer=0,apl=0xf,selmode=1;
@ -267,7 +267,7 @@ void *edit_side_predvolba_0(EVENT_MSG *msg)
if (msg->msg==E_INIT) return &edit_side_predvolba_0;
if (msg->msg==E_DONE) return NULL;
c=(char *)msg->data;
strcpy(c,"Vlastnosti nastaveny jako p©edvolba...");
strcpy(c,"Vlastnosti nastaveny jako p<EFBFBD>edvolba...");
c=strchr(c,'\0');
msg->data=(void *)c;
msg->msg=-1;
@ -303,11 +303,11 @@ void action_flags()
flags=f_get_value(0,350);
memcpy(&b1,def_border(1,0),sizeof(CTL3D));
def_dialoge(300,220,300,210,"V¡ce vlajek");
define(CANCEL_BUTT,11,5,80,20,2,button,"Zru¨it");property(&b1,NULL,NULL,WINCOLOR);
on_change(terminate);
def_dialoge(300,220,300,210,"V<EFBFBD>ce vlajek");
define(CANCEL_BUTT,11,5,80,20,2,button,"Zru<EFBFBD>it");property(&b1,NULL,NULL,WINCOLOR);
on_control_change(terminate_gui);
define(OK_BUTT,100,5,80,20,2,button,"Ok");property(&b1,NULL,NULL,WINCOLOR);
on_change(terminate);
on_control_change(terminate_gui);
define(10,10,20,250,10,0,check_box,side_flgs[24]);
define(20,10,32,250,10,0,check_box,side_flgs[25]);
define(30,10,44,250,10,0,check_box,side_flgs[26]);
@ -363,7 +363,7 @@ static void edit_vyklenek_start()
id=find_free_vyklenek();
if (id==-1)
{
msg_box("Omezeni!",'\x1',"V mapˆ je pouito ji mnoho v˜klenk ve zdi. Maxim ln¡ po‡et je 256","Ok",NULL);
msg_box("Omezeni!",'\x1',"V map<EFBFBD> je pou<6F>ito ji<6A> mnoho v<>klenk<6E> ve zdi. Maxim<69>ln<6C> po<70>et je 256","Ok",NULL);
return;
}
v=vyklenky+id;
@ -391,46 +391,46 @@ void edit_side(int source,int smer)
memcpy(&b3,def_border(6,WINCOLOR),sizeof(CTL3D));
default_font=vga_font;
memcpy(f_default,flat_color(0x0000),sizeof(charcolors));
sprintf(s,"Vlastnosti stˆn, sektor %d stˆna %d",source,smer);
sprintf(s,"Vlastnosti st<EFBFBD>n, sektor %d st<73>na %d",source,smer);
def_window(400,324,s);
waktual->x=125;
waktual->y=60;
waktual->modal=1;
define(CANCEL_BUTT,10,5,80,20,2,button,"Zru¨it");property(&b1,NULL,NULL,WINCOLOR);
on_change(close_current);
define(CANCEL_BUTT,10,5,80,20,2,button,"Zru<EFBFBD>it");property(&b1,NULL,NULL,WINCOLOR);
on_control_change(close_current);
define(OK_BUTT,190,5,80,20,2,button,"Ok");property(&b1,NULL,NULL,WINCOLOR);
on_change(edit_side_ok);
define(3400,100,5,80,20,2,button,"P©edvolba");property(&b1,NULL,NULL,WINCOLOR);
on_change(edit_side_predvolba_1);on_exit(edit_side_predvolba_2);
define(10,5,20,300,35,0,label,"Prim rn¡: Sekundarn¡: Oblouk:");property(&b3,NULL,NULL,WINCOLOR);
on_control_change(edit_side_ok);
define(3400,100,5,80,20,2,button,"P<EFBFBD>edvolba");property(&b1,NULL,NULL,WINCOLOR);
on_control_change(edit_side_predvolba_1);on_control_exit(edit_side_predvolba_2);
define(10,5,20,300,35,0,label,"Prim<EFBFBD>rn<EFBFBD>: Sekundarn<72>: Oblouk:");property(&b3,NULL,NULL,WINCOLOR);
define(20,10,35,90,12,0,str_line,side_names);property(&b2,NULL,NULL,WINCOLOR);c_default(p->prim);
on_enter(string_list_sup);
on_control_enter(string_list_sup);
define(30,110,35,90,12,0,str_line,side_names);property(&b2,NULL,NULL,WINCOLOR);c_default(p->sec);
on_enter(string_list_sup);
on_control_enter(string_list_sup);
define(40,210,35,90,12,0,str_line,oblouky);property(&b2,NULL,NULL,WINCOLOR);c_default(p->oblouk & 0x0f);
on_enter(string_list_sup);
define(-1,5,60,250,12,0,label,"Animace primarn¡:");
define(-1,5,75,250,12,0,label,"Animace sekundarn¡:");
define(-1,5,90,250,12,0,label,"X pozice sek. stˆny:");
define(-1,5,105,250,12,0,label,"Y pozice sek. stˆny:");
define(-1,5,120,250,12,0,label,"C¡lov˜ sektor ud losti:");
define(-1,5,135,250,12,0,label,"C¡lov  stˆna ud losti:");
on_control_enter(string_list_sup);
define(-1,5,60,250,12,0,label,"Animace primarn<EFBFBD>:");
define(-1,5,75,250,12,0,label,"Animace sekundarn<EFBFBD>:");
define(-1,5,90,250,12,0,label,"X pozice sek. st<EFBFBD>ny:");
define(-1,5,105,250,12,0,label,"Y pozice sek. st<EFBFBD>ny:");
define(-1,5,120,250,12,0,label,"C<EFBFBD>lov<EFBFBD> sektor ud<75>losti:");
define(-1,5,135,250,12,0,label,"C<EFBFBD>lov<EFBFBD> st<73>na ud<75>losti:");
define(-1,5,150,250,12,0,label,"Popis akce:");
define(-1,260,60,100,12,0,label,"Aplikuj na stˆnu:");
define(-1,260,60,100,12,0,label,"Aplikuj na st<EFBFBD>nu:");
define(50,200,60,50,10,0,input_line,10,1,16,"%6d");property(&b2,NULL,NULL,WINCOLOR);
set_default(strs((p->prim_anim & 0xf)+1));on_exit(test_int);
set_default(strs((p->prim_anim & 0xf)+1));on_control_exit(test_int);
define(60,200,75,50,10,0,input_line,10,1,16,"%6d");property(&b2,NULL,NULL,WINCOLOR);
set_default(strs((p->sec_anim & 0xf)+1));on_exit(test_int);
set_default(strs((p->sec_anim & 0xf)+1));on_control_exit(test_int);
define(70,200,90,50,10,0,input_line,10,0,499,"%6d");property(&b2,NULL,NULL,WINCOLOR);
set_default(strs(p->xsec<<1));on_exit(test_int);
set_default(strs(p->xsec<<1));on_control_exit(test_int);
define(80,200,105,50,10,0,input_line,10,0,511,"%6d");property(&b2,NULL,NULL,WINCOLOR);
set_default(strs(p->ysec<<1));on_exit(test_int);
set_default(strs(p->ysec<<1));on_control_exit(test_int);
define(90,200,120,50,10,0,input_line,10,0,65535,"%6d");property(&b2,NULL,NULL,WINCOLOR);
set_default(strs(p->sector_tag));on_exit(test_int);
set_default(strs(p->sector_tag));on_control_exit(test_int);
define(100,200,135,50,10,0,str_line,steny2);property(&b2,NULL,NULL,WINCOLOR);
c_default(p->side_tag & 0x3);on_enter(string_list_sup);
c_default(p->side_tag & 0x3);on_control_enter(string_list_sup);
define(110,100,150,150,10,0,str_line,actions);property(&b2,NULL,NULL,WINCOLOR);
on_enter(string_list_sup); c_default(p->action);
on_control_enter(string_list_sup); c_default(p->action);
define(120,10,175,150,10,0,check_box,side_flgs[0]);
define(130,10,187,150,10,0,check_box,side_flgs[1]);
define(140,10,199,150,10,0,check_box,side_flgs[2]);
@ -451,23 +451,23 @@ void edit_side(int source,int smer)
define(290,10,283,75,10,0,check_box,side_flgs[17]);
define(300,190,271,150,10,0,check_box,side_flgs[18]);
define(310,10,295,75,11,0,check_box,side_flgs[19]);
define(400,290,80,100,10,0,check_box,"Severn¡");
define(410,290,95,100,10,0,check_box,"V˜chodn¡");
define(420,290,110,100,10,0,check_box,"Ji");
define(430,290,125,100,10,0,check_box,"Z padn¡");
define(340,290,150,100,15,0,button2,"V¡ce >>");on_change(action_flags);
define(400,290,80,100,10,0,check_box,"Severn<EFBFBD>");
define(410,290,95,100,10,0,check_box,"V<EFBFBD>chodn<EFBFBD>");
define(420,290,110,100,10,0,check_box,"Ji<EFBFBD>n<EFBFBD>");
define(430,290,125,100,10,0,check_box,"Z<EFBFBD>padn<EFBFBD>");
define(340,290,150,100,15,0,button2,"V<EFBFBD>ce >>");on_control_change(action_flags);
define(350,290,150,100,15,0,value_store,4);c_default(p->flags & 0xfff00000);
define(360,290,150,100,15,0,value_store,4);c_default(source);
define(370,290,150,100,15,0,value_store,4);c_default(smer);
define(-1,5,20,60,10,1,label,"Lclip:");
define(440,30,35,30,12,1,input_line,3,0,255,"%3d");
property(&b2,NULL,NULL,WINCOLOR);
set_default(strs(p->lclip));on_exit(test_int);
set_default(strs(p->lclip));on_control_exit(test_int);
define(450,10,220,30,30,1,radio_butts,3,"-","\x4","\x6");c_default((p->oblouk>>5) & 0x3);
property(NULL,icones,NULL,WINCOLOR);
define(460,10,175,80,12,1,button,"V˜klenek");on_change(edit_vyklenek_start);
define(470,190,283,150,10,0,check_box,"Lze poloit za");c_default(p->oblouk>>7);
define(480,10,307,75,10,0,check_box,"P©edsunout s.");c_default(p->side_tag>>7);
define(460,10,175,80,12,1,button,"V<EFBFBD>klenek");on_control_change(edit_vyklenek_start);
define(470,190,283,150,10,0,check_box,"Lze polo<EFBFBD>it za");c_default(p->oblouk>>7);
define(480,10,307,75,10,0,check_box,"P<EFBFBD>edsunout s.");c_default(p->side_tag>>7);
fill_bit_fields(0,120,p->flags,20); if (source)
fill_bit_fields(0,400,1<<smer,4); else fill_bit_fields(0,400,0xf,4);
set_enable(0,3400,source!=0);
@ -501,15 +501,15 @@ void edit_sector(int source)
property(NULL,NULL,NULL,WINCOLOR);
o_end->autoresizey=1;
define(11,1,20,21,17,1,scroll_button,-1,0,"\x1e");
property(NULL,icones,NULL,WINCOLOR);on_change(scroll_support);
property(NULL,icones,NULL,WINCOLOR);on_control_change(scroll_support);
define(12,1,22,21,17,2,scroll_button,1,10,"\x1f");
property(NULL,icones,NULL,WINCOLOR);on_change(scroll_support);
property(NULL,icones,NULL,WINCOLOR);on_control_change(scroll_support);
define(20,1,1,10,10,2,resizer);
/* define(OK_BUTT,100,5,80,20,2,button,"Ok");property(&b1,NULL,NULL,WINCOLOR);
on_change(terminate);
define(CANCEL_BUTT,10,5,80,20,2,button,"Zru¨it");property(&b1,NULL,NULL,WINCOLOR);
define(CANCEL_BUTT,10,5,80,20,2,button,"Zru<EFBFBD>it");property(&b1,NULL,NULL,WINCOLOR);
on_change(terminate);
define(-1,5,20,100,12,0,label,"P©ipojen¡:");
define(-1,5,20,100,12,0,label,"P<EFBFBD>ipojen<EFBFBD>:");
define(10,10,35,50,12,0,input_line,20,0,MAPSIZE-1,"%6d");property(&b2,NULL,NULL,WINCOLOR);
set_default(strs(p->step_next[0]));on_exit(test_int);
define(20,10,50,50,12,0,input_line,20,0,MAPSIZE-1,"%6d");property(&b2,NULL,NULL,WINCOLOR);
@ -519,9 +519,9 @@ void edit_sector(int source)
define(40,10,80,50,12,0,input_line,20,0,MAPSIZE-1,"%6d");property(&b2,NULL,NULL,WINCOLOR);
set_default(strs(p->step_next[3]));on_exit(test_int);
define(50,70,35,80,12,0,button,"Sever");property(&b1,NULL,NULL,WINCOLOR);on_change(edit_side_sup);
define(60,70,50,80,12,0,button,"V˜chod");property(&b1,NULL,NULL,WINCOLOR);on_change(edit_side_sup);
define(60,70,50,80,12,0,button,"V<EFBFBD>chod");property(&b1,NULL,NULL,WINCOLOR);on_change(edit_side_sup);
define(70,70,65,80,12,0,button,"Jih");property(&b1,NULL,NULL,WINCOLOR);on_change(edit_side_sup);
define(80,70,80,80,12,0,button,"Z pad");property(&b1,NULL,NULL,WINCOLOR);on_change(edit_side_sup);
define(80,70,80,80,12,0,button,"Z<EFBFBD>pad");property(&b1,NULL,NULL,WINCOLOR);on_change(edit_side_sup);
temp_source=source;
*/redraw_window();
escape();
@ -679,47 +679,47 @@ void sector_details_call(int sect_num)
define(-1,30,30,100,12,0,label,"Strop:");
define(-1,30,50,100,12,0,label,"Podlaha:");
define(-1,30,70,100,12,0,label,"Sektor:");
define(-1,30,90,100,12,0,label,"C¡l akce:");
define(-1,30,110,100,12,0,label,"Stˆna akce:");
define(-1,30,90,100,12,0,label,"C<EFBFBD>l akce:");
define(-1,30,110,100,12,0,label,"St<EFBFBD>na akce:");
define(-1,30,130,100,12,0,label,"Popis akce:");
define(10,30,28,100,13,1,str_line,ceils);property(&b2,NULL,NULL,WINCOLOR);
c_default(p->ceil); on_enter(string_list_sup);
c_default(p->ceil); on_control_enter(string_list_sup);
define(20,30,48,100,13,1,str_line,floors);property(&b2,NULL,NULL,WINCOLOR);
c_default(p->floor); on_enter(string_list_sup);
c_default(p->floor); on_control_enter(string_list_sup);
define(30,30,68,100,13,1,str_line,sector_types);property(&b2,NULL,NULL,WINCOLOR);
c_default(p->sector_type); on_enter(string_list_sup);
c_default(p->sector_type); on_control_enter(string_list_sup);
define(40,30,88,50,13,1,input_line,10,0,MAPSIZE,"%6d");property(&b2,NULL,NULL,WINCOLOR);
set_default(strs(p->sector_tag));on_exit(test_int);
set_default(strs(p->sector_tag));on_control_exit(test_int);
define(50,30,108,100,13,1,str_line,steny2);property(&b2,NULL,NULL,WINCOLOR);
c_default(p->side_tag & 3); on_enter(string_list_sup);
c_default(p->side_tag & 3); on_control_enter(string_list_sup);
define(60,30,128,150,13,1,str_line,actions);property(&b2,NULL,NULL,WINCOLOR);
c_default(p->action); on_enter(string_list_sup);
c_default(p->action); on_control_enter(string_list_sup);
define(70,5,150,214,80,0,radio_butts,7,
"(1) Norm ln¡ podlaha",
"(1) Norm<EFBFBD>ln<EFBFBD> podlaha",
"(2) Dva druhy podlah",
"(3) Dva smˆry",
"(4) Dva smˆry a druhy",
"(5) €ty©i smˆry",
"(6) €ty©i smˆry a dva druhy",
"(7) achovnice");c_default(p->flags & 0x7);
"(3) Dva sm<EFBFBD>ry",
"(4) Dva sm<EFBFBD>ry a druhy",
"(5) <EFBFBD>ty<EFBFBD>i sm<73>ry",
"(6) <EFBFBD>ty<EFBFBD>i sm<73>ry a dva druhy",
"(7) <EFBFBD>achovnice");c_default(p->flags & 0x7);
define(80,5,150,214,80,1,radio_butts,7,
"(1) Norm ln¡ strop",
"(1) Norm<EFBFBD>ln<EFBFBD> strop",
"(2) Dva druhy strop",
"(3) Dva smˆry",
"(4) Dva smˆry a druhy",
"(5) €ty©i smˆry",
"(6) €ty©i smˆry a dva druhy",
"(7) achovnice");c_default(p->flags >> 4 & 0x7);
"(3) Dva sm<EFBFBD>ry",
"(4) Dva sm<EFBFBD>ry a druhy",
"(5) <EFBFBD>ty<EFBFBD>i sm<73>ry",
"(6) <EFBFBD>ty<EFBFBD>i sm<73>ry a dva druhy",
"(7) <EFBFBD>achovnice");c_default(p->flags >> 4 & 0x7);
define(90,5,240,214,10,0,check_box,"(?)Animace podlahy");c_default((p->flags & 0x8)!=0);
define(95,5,240,214,10,1,check_box,"(?)Animace stropu");c_default((p->flags & 0x80)!=0);
define(65,5,252,214,10,0,check_box,"Sekundarni shading");c_default((minfo[sect_num].flags & 0x100)>>8);
define(75,5,258,214,40,1,radio_butts,4,"*default*","ipka","Schody","Bez symbolu");c_default((minfo[sect_num].flags & 0x600)>>9);
define(75,5,258,214,40,1,radio_butts,4,"*default*","<EFBFBD>ipka","Schody","Bez symbolu");c_default((minfo[sect_num].flags & 0x600)>>9);
define(83,5,264,214,10,0,check_box,"!Automap (kouzlem)");c_default((minfo[sect_num].flags & 0x800)>>11);
define(85,5,276,214,10,0,check_box,"!Summon");c_default((minfo[sect_num].flags & 0x1000)>>12);
define(87,5,288,214,10,0,check_box,"Neprojde hledan¡m cesty");c_default((minfo[sect_num].flags & 0x2000)>>13);
define(100,10,10,80,20,3,button,"Ok");property(&b1,NULL,NULL,WINCOLOR);on_change(terminate);
define(110,10,10,80,20,2,button,"Zru¨it");property(&b1,NULL,NULL,WINCOLOR);on_change(terminate);
define(120,100,10,80,20,2,button,"P©edvolba");property(&b1,NULL,NULL,WINCOLOR);on_change(terminate);
define(87,5,288,214,10,0,check_box,"Neprojde hledan<EFBFBD>m cesty");c_default((minfo[sect_num].flags & 0x2000)>>13);
define(100,10,10,80,20,3,button,"Ok");property(&b1,NULL,NULL,WINCOLOR);on_control_change(terminate_gui);
define(110,10,10,80,20,2,button,"Zru<EFBFBD>it");property(&b1,NULL,NULL,WINCOLOR);on_control_change(terminate_gui);
define(120,100,10,80,20,2,button,"P<EFBFBD>edvolba");property(&b1,NULL,NULL,WINCOLOR);on_control_change(terminate_gui);
set_enable(0,120,sect_num!=0);
redraw_window();
do
@ -735,8 +735,8 @@ void sector_details_call(int sect_num)
}
else
{
if (count_of_sel()<2 || (i=msg_box("Co teƒ?",'\x2',"M m vlastnosti aplikovat na jeden sektor nebo na vybranou oblast?",
"Na sektor","Na oblast","Zru¨it",NULL))==1)
if (count_of_sel()<2 || (i=msg_box("Co te<EFBFBD>?",'\x2',"M<EFBFBD>m vlastnosti aplikovat na jeden sektor nebo na vybranou oblast?",
"Na sektor","Na oblast","Zru<EFBFBD>it",NULL))==1)
{
start=sect_num;
end=sect_num;
@ -797,7 +797,7 @@ void get_error(char *err)
p=(short *)0xb8000;
if (p[0]==0xff)
{
strcpy(err,"Neo‡ek van zhroucen¡.");
strcpy(err,"Neo<EFBFBD>ek<EFBFBD>van<EFBFBD> zhroucen<65>.");
return;
}
mezera=1;spc=1;
@ -883,48 +883,48 @@ void open_sector_win(void)
memcpy(&f_sel,flat_color(0x0017),sizeof(charcolors));
sektor_win=def_window(120,325,"Vlastnosti");
waktual->y=2;waktual->x=SCR_WIDTH_X-120-3;
on_change(close_sector_win);
define(100,4,19,59,14,0,button2,"Sever:");on_change(run_edit_side);
define(110,4,49,59,14,0,button2,"V˜chod:");on_change(run_edit_side);
define(120,4,79,59,14,0,button2,"Jih:");on_change(run_edit_side);
define(130,4,109,59,14,0,button2,"Z pad:");on_change(run_edit_side);
on_control_change(close_sector_win);
define(100,4,19,59,14,0,button2,"Sever:");on_control_change(run_edit_side);
define(110,4,49,59,14,0,button2,"V<EFBFBD>chod:");on_control_change(run_edit_side);
define(120,4,79,59,14,0,button2,"Jih:");on_control_change(run_edit_side);
define(130,4,109,59,14,0,button2,"Z<EFBFBD>pad:");on_control_change(run_edit_side);
define(-1,5,140,59,10,0,label,"Strop:");
define(-1,5,170,59,10,0,label,"Podlaha:");
define(-1,5,200,59,10,0,label,"Typ sektoru:");
define(10,65,20,50,12,0,input_line,20,0,MAPSIZE-1,"%5d");property(&b2,NULL,&f_sel,WINCOLOR);
set_default("0");on_exit(test_int);on_event(chozeni);
set_default("0");on_control_exit(test_int);on_event(chozeni);
define(20,65,50,50,12,0,input_line,20,0,MAPSIZE-1,"%5d");property(&b2,NULL,&f_sel,WINCOLOR);
set_default("0");on_exit(test_int);on_event(chozeni);
set_default("0");on_control_exit(test_int);on_event(chozeni);
define(30,65,80,50,12,0,input_line,20,0,MAPSIZE-1,"%5d");property(&b2,NULL,&f_sel,WINCOLOR);
set_default("0");on_exit(test_int);on_event(chozeni);
set_default("0");on_control_exit(test_int);on_event(chozeni);
define(40,65,110,50,12,0,input_line,20,0,MAPSIZE-1,"%5d");property(&b2,NULL,&f_sel,WINCOLOR);
set_default("0");on_exit(test_int);on_event(chozeni);
set_default("0");on_control_exit(test_int);on_event(chozeni);
define(50,5,35,95,12,0,str_line,side_names);property(&b2,NULL,&f_sel,WINCOLOR);
c_default(0); on_enter(string_list_sup);on_change(set_change_map);
c_default(0); on_control_enter(string_list_sup);on_control_change(set_change_map);
define(60,5,65,95,12,0,str_line,side_names);property(&b2,NULL,&f_sel,WINCOLOR);
c_default(0); on_enter(string_list_sup);on_change(set_change_map);
c_default(0); on_control_enter(string_list_sup);on_control_change(set_change_map);
define(70,5,95,95,12,0,str_line,side_names);property(&b2,NULL,&f_sel,WINCOLOR);
c_default(0); on_enter(string_list_sup);on_change(set_change_map);
c_default(0); on_control_enter(string_list_sup);on_control_change(set_change_map);
define(80,5,125,95,12,0,str_line,side_names);property(&b2,NULL,&f_sel,WINCOLOR);
c_default(0); on_enter(string_list_sup);on_change(set_change_map);
c_default(0); on_control_enter(string_list_sup);on_control_change(set_change_map);
define(140,103,35,12,12,0,check_box,"");o_end->runs[2]=o_end->events[3];
define(150,103,65,12,12,0,check_box,"");o_end->runs[2]=o_end->events[3];
define(160,103,95,12,12,0,check_box,"");o_end->runs[2]=o_end->events[3];
define(170,103,125,12,12,0,check_box,"");o_end->runs[2]=o_end->events[3];
define(200,5,155,110,12,0,str_line,ceils);property(&b2,NULL,&f_sel,WINCOLOR);
c_default(0); on_enter(string_list_sup);on_change(set_change_map);
c_default(0); on_control_enter(string_list_sup);on_control_change(set_change_map);
define(210,5,185,110,12,0,str_line,floors);property(&b2,NULL,&f_sel,WINCOLOR);
c_default(0); on_enter(string_list_sup);on_change(set_change_map);
c_default(0); on_control_enter(string_list_sup);on_control_change(set_change_map);
define(220,5,215,110,12,0,str_line,sector_types);property(&b2,NULL,&f_sel,WINCOLOR);
c_default(0); on_enter(string_list_sup);on_change(set_change_map);
c_default(0); on_control_enter(string_list_sup);on_control_change(set_change_map);
define(-1,1,30,60,10,3,label,"Sektor:");
define(OK_BUTT,60,67,55,17,3,button2,"Aplikuj");on_change(Apply);
define(300,4,67,55,17,3,button2,"Detaily");on_change(sector_details);
define(OK_BUTT,60,67,55,17,3,button2,"Aplikuj");on_control_change(Apply);
define(300,4,67,55,17,3,button2,"Detaily");on_control_change(sector_details);
define(5,60,30,55,12,3,input_line,20,0,MAPSIZE-1,"%5d");property(&b2,NULL,NULL,WINCOLOR);
set_default("?");on_change(chozeni2);
define(310,4,3,112,20,3,button,"Testovat mapu");on_change(testmap);
define(320,4,47,55,17,2,button2,"Zoom+");on_change(zoomin);
define(330,4,47,55,17,3,button2,"Zoom-");on_change(zoomout);
set_default("?");on_control_change(chozeni2);
define(310,4,3,112,20,3,button,"Testovat mapu");on_control_change(testmap);
define(320,4,47,55,17,2,button2,"Zoom+");on_control_change(zoomin);
define(330,4,47,55,17,3,button2,"Zoom-");on_control_change(zoomout);
send_message(E_ADD,E_KEYBOARD,chozeni2);
waktual->popup=1;
}
@ -992,20 +992,20 @@ void open_draw_win(void)
memcpy(&f_sel,flat_color(0x0017),sizeof(charcolors));
draw_win=def_window(120,165,"Vlajky");
waktual->y=2;waktual->x=SCR_WIDTH_X-120-3;
define(10,5,30,100,10,0,check_box,"Rozdˆlit");c_default(1);
on_change(draw_win_1);
define(20,5,45,100,10,0,check_box,"!Hra");c_default(0);
on_change(draw_win_2);
define(30,5,60,100,10,0,check_box,"!Nestvra");c_default(0);
on_change(draw_win_2);
define(40,5,75,100,10,0,check_box,"!Vˆc");c_default(0);
on_change(draw_win_2);
define(10,5,30,100,10,0,check_box,"Rozd<EFBFBD>lit");c_default(1);
on_control_change(draw_win_1);
define(20,5,45,100,10,0,check_box,"!Hra<EFBFBD>");c_default(0);
on_control_change(draw_win_2);
define(30,5,60,100,10,0,check_box,"!Nestv<EFBFBD>ra");c_default(0);
on_control_change(draw_win_2);
define(40,5,75,100,10,0,check_box,"!V<EFBFBD>c");c_default(0);
on_control_change(draw_win_2);
define(50,5,90,100,10,0,check_box,"!Zvuk");c_default(0);
on_change(draw_win_2);
on_control_change(draw_win_2);
define(60,5,105,100,10,0,check_box,"PrimVis");c_default(0);
on_change(draw_win_2);
define(70,5,18,110,17,3,button2,"Zoom in");on_change(zoomin);
define(80,5,1,110,17,3,button2,"Zoom out");on_change(zoomout);
on_control_change(draw_win_2);
define(70,5,18,110,17,3,button2,"Zoom in");on_control_change(zoomin);
define(80,5,1,110,17,3,button2,"Zoom out");on_control_change(zoomout);
waktual->popup=1;
}
@ -1039,7 +1039,7 @@ static void veci_ve_vyklenku(TSTR_LIST *ls,short *list)
for(i=0;list[i]!=0;i++)
{
int it=list[i]-1;
if (it>=max_items) str_add(ls,"<P©edmˆt neexistuje>");else str_add(ls,item_list[it].jmeno);
if (it>=max_items) str_add(ls,"<P<EFBFBD>edm<EFBFBD>t neexistuje>");else str_add(ls,item_list[it].jmeno);
}
}
@ -1116,40 +1116,40 @@ void edit_vyklenek(int idnum)
memcpy(&old,v,sizeof(TVYKLENEK));
veci_ve_vyklenku(&vyklist,&v->items);
create_isort_list(&ls_sorts,-1);
def_dialoge(70,100,500,200,"Oprava v˜klenk");
def_dialoge(70,100,500,200,"Oprava v<EFBFBD>klenk<EFBFBD>");
define(9,10,20,200,126,0,listbox,ls_sorts,RGB555(31,31,31),0);
property(&b3,NULL,NULL,WINCOLOR);c_default(0);
define(10,216,40,21,87,0,scroll_bar_v,0,10,1,SCROLLBARCOL);
property(&b2,NULL,NULL,WINCOLOR);
define(11,216,20,21,17,0,scroll_button,-1,0,"\x1e");
property(&b1,icones,NULL,WINCOLOR);on_change(scroll_support);
property(&b1,icones,NULL,WINCOLOR);on_control_change(scroll_support);
define(12,216,130,21,17,0,scroll_button,1,10,"\x1f");
property(&b1,icones,NULL,WINCOLOR);on_change(scroll_support);
property(&b1,icones,NULL,WINCOLOR);on_control_change(scroll_support);
define(20,0,0,0,0,0,value_store,4);c_default(idnum);
define(29,10,20,200,120,1,listbox,vyklist,RGB555(31,31,31),0);
property(&b3,NULL,NULL,WINCOLOR);c_default(0);
define(40,242,40,40,15,0,button,">>");on_change(add_to_vyk);
define(50,242,60,40,15,0,button,"<<");on_change(remove_from_vyk);
define(40,242,40,40,15,0,button,">>");on_control_change(add_to_vyk);
define(50,242,60,40,15,0,button,"<<");on_control_change(remove_from_vyk);
define(80,30,150,120,12,1,str_line,typy_veci);c_default(0);
property(&b2,NULL,NULL,WINCOLOR);on_enter(string_list_sup);on_change(change_grep);
property(&b2,NULL,NULL,WINCOLOR);on_control_enter(string_list_sup);on_control_change(change_grep);
define(-1,150,150,50,10,1,label,"Filtr:");
define(90,10,150,10,10,1,check_box,"");c_default(0);on_change(change_grep);
define(90,10,150,10,10,1,check_box,"");c_default(0);on_control_change(change_grep);
define(-1,10,30,1,10,3,label,"Xpos Ypos Xsiz Ysiz Sector Pos");
define(100,8,12,40,12,3,input_line,10,0,500,"%4d");set_default(strs(v->xpos));
property(&b2,NULL,NULL,WINCOLOR);on_exit(test_int);
property(&b2,NULL,NULL,WINCOLOR);on_control_exit(test_int);
define(110,53,12,40,12,3,input_line,10,0,500,"%4d");set_default(strs(v->ypos));
property(&b2,NULL,NULL,WINCOLOR);on_exit(test_int);
property(&b2,NULL,NULL,WINCOLOR);on_control_exit(test_int);
define(120,98,12,40,12,3,input_line,10,0,500,"%4d");set_default(strs(v->xs));
property(&b2,NULL,NULL,WINCOLOR);on_exit(test_int);
property(&b2,NULL,NULL,WINCOLOR);on_control_exit(test_int);
define(130,143,12,40,12,3,input_line,10,0,500,"%4d");set_default(strs(v->ys));
property(&b2,NULL,NULL,WINCOLOR);on_exit(test_int);
property(&b2,NULL,NULL,WINCOLOR);on_control_exit(test_int);
define(140,188,12,40,12,3,input_line,10,0,maplen,"%4d");set_default(strs(v->sector));
property(&b2,NULL,NULL,WINCOLOR);on_exit(test_int);
property(&b2,NULL,NULL,WINCOLOR);on_control_exit(test_int);
define(150,233,12,40,12,3,input_line,10,0,3,"%4d");set_default(strs(v->dir));
property(&b2,NULL,NULL,WINCOLOR);on_exit(test_int);
define(200,5,5,60,20,2,button,"Ok");on_change(terminate);property(&b1,NULL,NULL,WINCOLOR);
define(210,70,5,60,20,2,button,"Zru¨it");on_change(terminate);property(&b1,NULL,NULL,WINCOLOR);
define(220,135,5,60,20,2,button,"Vymazat");on_change(terminate);property(&b1,NULL,NULL,WINCOLOR);
property(&b2,NULL,NULL,WINCOLOR);on_control_exit(test_int);
define(200,5,5,60,20,2,button,"Ok");on_control_change(terminate_gui);property(&b1,NULL,NULL,WINCOLOR);
define(210,70,5,60,20,2,button,"Zru<EFBFBD>it");on_control_change(terminate_gui);property(&b1,NULL,NULL,WINCOLOR);
define(220,135,5,60,20,2,button,"Vymazat");on_control_change(terminate_gui);property(&b1,NULL,NULL,WINCOLOR);
redraw_window();
opp:
escape();
@ -1163,7 +1163,7 @@ void edit_vyklenek(int idnum)
v->dir=vals(150);
}
else if (o_aktual->id==220)
if (msg_box("Mapedit",'\x2',"Chce¨ opravdu v˜klenek zbourat?","Ano","Ne",NULL)==1)
if (msg_box("Mapedit",'\x2',"Chce<EFBFBD> opravdu v<>klenek zbourat?","Ano","Ne",NULL)==1)
{
v->sector=0;
}

View file

@ -184,14 +184,14 @@ void generate_item_tree(TITEM *start,TSTR_LIST *list, char first)
char *d;
d=strchr(tree,'\0')-3;
strcpy(d,"ÀÄ ");
strcpy(d,"<EFBFBD><EFBFBD> ");
}
else
{
char *d;
d=strchr(tree,'\0')-3;
strcpy(d,"ÃÄ ");
strcpy(d,"<EFBFBD><EFBFBD> ");
}
if (start->jmeno[0]=='~')
sprintf(c,"%08X %s%s",(int)start,tree,start->popis);
@ -213,7 +213,7 @@ void generate_item_tree(TITEM *start,TSTR_LIST *list, char first)
char *d;
d=strchr(tree,'\0')-3;
strcpy(d,"³\xdb ");
strcpy(d,"<EFBFBD>\xdb ");
}
generate_item_tree(start->inside,list,0);
}
@ -550,15 +550,15 @@ int select_ikon_lib(int last)
for (i=0;i<30;i++)
{
define(i+10,x,y,45,55,0,ikona);c_default(last+i);
property(def_border(5,WINCOLOR),NULL,NULL,WINCOLOR);on_change(terminate);
property(def_border(5,WINCOLOR),NULL,NULL,WINCOLOR);on_control_change(terminate_gui);
x+=48;if (x+48>490) {y+=58;x=5;}
}
define(300,10,10,80,20,3,button,"<<");
property(def_border(1,0),NULL,NULL,WINCOLOR);on_change(terminate);
property(def_border(1,0),NULL,NULL,WINCOLOR);on_control_change(terminate_gui);
define(310,10,10,80,20,2,button,">>");
property(def_border(1,0),NULL,NULL,WINCOLOR);on_change(terminate);
define(320,175-40,10,80,20,3,button,"Zru¨it");
property(def_border(1,0),NULL,NULL,WINCOLOR);on_change(terminate);
property(def_border(1,0),NULL,NULL,WINCOLOR);on_control_change(terminate_gui);
define(320,175-40,10,80,20,3,button,"Zru<EFBFBD>it");
property(def_border(1,0),NULL,NULL,WINCOLOR);on_control_change(terminate_gui);
redraw_window();
do
{
@ -587,10 +587,10 @@ void change_item_ikone()
}
char nvlast[][16]=
{"cS¡la","Schopnost magie","Pohyblivost","Obratnost","Max zranˆ",
"Kondice","Max mana","Obrana(doln¡)","Obrana(Horn¡)","—tok(Doln¡)",
"—tok(Horn¡)","Ohe¤","Voda","Zemˆ","Vzduch","Mysl","Magick la(D)",
"Magick la(H)","\0"};
{"cS<EFBFBD>la","Schopnost magie","Pohyblivost","Obratnost","Max zran<EFBFBD>n<EFBFBD>",
"Kondice","Max mana","Obrana(doln<EFBFBD>)","Obrana(Horn<72>)","<EFBFBD>tok(Doln<6C>)",
"<EFBFBD>tok(Horn<72>)","Ohe<EFBFBD>","Voda","Zem<EFBFBD>","Vzduch","Mysl","Magick<EFBFBD> s<>la(D)",
"Magick<EFBFBD> s<>la(H)","\0"};
void ukaz_vlastnosti(int pocet,int x,int y,int id,short *it)
{
@ -633,13 +633,13 @@ void oprav_vlastnosti(TITEM *it)
define(190,5,272,100,10,0,check_box,"Na nohy");
define(200,105,200,100,10,0,check_box,"Na chodidla");
define(210,105,212,100,10,0,check_box,"Na ramena");
define(220,105,224,100,10,0,check_box,"Na z da");
define(300,10,10,80,20,2,button,"Zru¨it");on_change(terminate);
define(220,105,224,100,10,0,check_box,"Na z<EFBFBD>da");
define(300,10,10,80,20,2,button,"Zru<EFBFBD>it");on_control_change(terminate_gui);
property(def_border(1,0),NULL,NULL,WINCOLOR);
define(310,10,40,80,20,2,button,"Ok");on_change(terminate);
define(310,10,40,80,20,2,button,"Ok");on_control_change(terminate_gui);
property(def_border(1,0),NULL,NULL,WINCOLOR);
define(-1,225,206,70,10,0,label,"Magick˜ £tok");
define(250,225,218,70,70,0,radio_butts,5,"Ohe¤","Voda","Zemˆ","Vzduch","Mysl");
define(-1,225,206,70,10,0,label,"Magick<EFBFBD> <20>tok");
define(250,225,218,70,70,0,radio_butts,5,"Ohe<EFBFBD>","Voda","Zem<EFBFBD>","Vzduch","Mysl");
c_default(it->zmeny[VLS_MGZIVEL]);
fill_bit_fields(0,130,it->place_map,11);
redraw_window();
@ -679,7 +679,7 @@ void save_edited_item()
it->magie=vals(110);
it->silaspell=vals(120);
it->ikona=f_get_value(0,130);
terminate();
terminate_gui();
}
TITEM *select_item(TITEM *it);
@ -695,17 +695,17 @@ void e_item_insert_inside()
it=isolate_item(it);
if (insert_inside(it,is)==NULL)
{
msg_box("Chyba integrity:",'\x1',"Nelze vloit tento p©edmˆt do zvolenho "
"Patrnˆ se pokou¨¡¨ vloit tut vˆc samu do sebe. Nebo vˆc nen¡ "
"izolov na, nebo ji nelze izolovat. Je mon e se sna¡¨ vloit "
"vˆc do vˆci, kter  je uvnit© tto vˆci, nebo v uvnit© vˆci, kter  "
"je uvnit© vˆci, do kter chce¨ vˆc um¡stit atd. Mohlo by dojit k "
"zacyklen¡ a to nelze dopustit. Program bude vˆc izolovat, jeliko "
"ji nelze rekonstruovat pvodn¡ stav","Budu si pamatovat",NULL);
msg_box("Chyba integrity:",'\x1',"Nelze vlo<EFBFBD>it tento p<>edm<64>t do zvolen<65>ho "
"Patrn<EFBFBD> se pokou<6F><75><EFBFBD> vlo<6C>it tut<75><74> v<>c samu do sebe. Nebo v<>c nen<65> "
"izolov<EFBFBD>na, nebo ji nelze izolovat. Je mo<6D>n<EFBFBD> <20>e se sna<6E><61><EFBFBD> vlo<6C>it "
"v<EFBFBD>c do v<>ci, kter<65> je uvnit<69> t<>to v<>ci, nebo v uvnit<69> v<>ci, kter<65> "
"je uvnit<EFBFBD> v<>ci, do kter<65> chce<63> v<>c um<75>stit atd. Mohlo by dojit k "
"zacyklen<EFBFBD> a to nelze dopustit. Program bude v<>c izolovat, jeliko<6B> "
"ji<EFBFBD> nelze rekonstruovat p<>vodn<64> stav","Budu si pamatovat",NULL);
insert_isolated(it);
return;
}
terminate();
terminate_gui();
}
void e_item_insert_map()
@ -721,23 +721,23 @@ void item_edit(TITEM *it)
CTL3D *c;
c=def_border(5,WINCOLOR);
def_dialoge(120,80,410,300,"Oprava £daj o p©edmˆtu");
def_dialoge(120,80,410,300,"Oprava <EFBFBD>daj<EFBFBD> o p<>edm<64>tu");
curfont=vga_font;
default_font=curfont;
define(-1,5,20,50,10,0,label,"Jmno (31 znak)");
define(-1,5,20,50,10,0,label,"Jm<EFBFBD>no (31 znak<61>)");
define(15,10,35,288,12,0,input_line,31);set_default(it->jmeno);
property(def_border(2,WINCOLOR),NULL,flat_color(RGB555(15,0,0)),WINCOLOR);
define(-1,5,50,50,10,0,label,"Popis (63 znak)");
define(-1,5,50,50,10,0,label,"Popis (63 znak<EFBFBD>)");
define(20,10,65,380,12,0,input_line,63);set_default(it->popis);
property(def_border(2,WINCOLOR),NULL,flat_color(0xF),WINCOLOR);
define(5,0,0,0,0,0,value_store,4);set_default(&it);
define(30,10,30,80,20,1,button,"Vlastnosti");
property(def_border(1,0),NULL,NULL,WINCOLOR);on_change(otevri_vlastnosti);
property(def_border(1,0),NULL,NULL,WINCOLOR);on_control_change(otevri_vlastnosti);
define(-1,5,80,100,10,0,label,"Hmotnost");
define(-1,5,95,100,10,0,label,"Nosnost");
define(-1,5,110,100,10,0,label,"ID Kl¡‡e");
define(-1,5,110,100,10,0,label,"ID Kl<EFBFBD><EFBFBD>e");
define(-1,5,125,100,10,0,label,"?Hodnota");
define(-1,5,140,100,10,0,label,"€.Ud losti");
define(-1,5,140,100,10,0,label,"<EFBFBD>.Ud<55>losti");
define(-1,5,155,100,10,0,label,"Druh");
def_border(5,WINCOLOR);
define(40,105,80,60,12,0,input_line,7,-32767,+32767,"%6d");
@ -752,18 +752,18 @@ void item_edit(TITEM *it)
property(c,NULL,NULL,WINCOLOR);on_exit(test_int);set_default(strs(it->use_event));
define(90,80,155,120,108,0,radio_butts,10,
"Nespecif.",
"Brnˆ",
"Ru‡n¡ zbra¤",
"Brn<EFBFBD>n<EFBFBD>",
"Ru<EFBFBD>n<EFBFBD> zbra<72>",
"Svitek/Hulka",
"St©eln  zbr.",
"Vrhac¡",
"Lektvar/Mˆch",
"J¡dlo",
"St<EFBFBD>eln<EFBFBD> zbr.",
"Vrhac<EFBFBD>",
"Lektvar/M<EFBFBD>ch",
"J<EFBFBD>dlo",
"Batoh/Truhla",
"Specialn¡");c_default(it->druh);
"Specialn<EFBFBD>");c_default(it->druh);
define(-1,105,80,100,10,1,label,"Kouzlo:");
define(-1,105,95,100,10,1,label,"Mana celk:");
define(-1,105,110,100,10,1,label,"S¡la kouzla");
define(-1,105,110,100,10,1,label,"S<EFBFBD>la kouzla");
define(100,55,80,60,12,1,input_line,7,-32767,32767,"%6d");on_exit(test_int);
property(c,NULL,NULL,WINCOLOR);set_default(strs(it->spell));
define(110,55,95,60,12,1,input_line,7,-32767,32767,"%6d");on_exit(test_int);
@ -771,11 +771,11 @@ void item_edit(TITEM *it)
define(120,55,110,60,12,1,input_line,7,-32767,32767,"%6d");on_exit(test_int);
property(c,NULL,NULL,WINCOLOR);set_default(strs(it->silaspell));
define(130,10,180,45,55,0,ikona);c_default(it->ikona);
property(c,NULL,NULL,WINCOLOR);on_change(change_item_ikone);
define(300,10,10,80,20,3,button,"Ulo");property(def_border(1,0),NULL,NULL,RGB(0,24,0));on_change(save_edited_item);
define(310,100,10,80,20,3,button,"Vloit do");property(def_border(1,0),NULL,NULL,WINCOLOR);on_change(e_item_insert_inside);
define(320,100,10,80,20,2,button,"Um¡stit");property(def_border(1,0),NULL,NULL,WINCOLOR);on_change(e_item_insert_map);
define(330,10,10,80,20,2,button,"Zru¨it");property(def_border(1,0),NULL,flat_color(RGB555(31,31,31)),RGB555(16,0,0);on_change(terminate);
property(c,NULL,NULL,WINCOLOR);on_control_change(change_item_ikone);
define(300,10,10,80,20,3,button,"Ulo<EFBFBD>");property(def_border(1,0),NULL,NULL,RGB(0,24,0));on_control_change(save_edited_item);
define(310,100,10,80,20,3,button,"Vlo<EFBFBD>it do");property(def_border(1,0),NULL,NULL,WINCOLOR);on_control_change(e_item_insert_inside);
define(320,100,10,80,20,2,button,"Um<EFBFBD>stit");property(def_border(1,0),NULL,NULL,WINCOLOR);on_control_change(e_item_insert_map);
define(330,10,10,80,20,2,button,"Zru<EFBFBD>it");property(def_border(1,0),NULL,flat_color(RGB555(31,31,31)),RGB555(16,0,0);on_control_change(terminate_gui);
redraw_window();
escape();
close_current();
@ -794,7 +794,7 @@ void select_item_edit()
sscanf(ls[i],"%X",&it);
if ((unsigned short)it->druh>=256)
{
msg_box("Nelze!",'\x1',"Nelze upravovat tento druh vˆci","Beru na vˆdom¡",NULL);
msg_box("Nelze!",'\x1',"Nelze upravovat tento druh v<EFBFBD>ci","Beru na v<>dom<6F>",NULL);
return;
}
item_edit(it);
@ -815,12 +815,12 @@ void select_item_klon()
sscanf(ls[i],"%X",&it);
if ((unsigned short)it->druh>=256)
{
msg_box("Nelze!",'\x1',"Nelze klonovat tento druh vˆci","Beru na vˆdom¡",NULL);
msg_box("Nelze!",'\x1',"Nelze klonovat tento druh v<EFBFBD>ci","Beru na v<>dom<6F>",NULL);
return;
}
if (it->inside!=NULL)
{
i=msg_box("Klonovat",'\x2',"Klonovat i vˆci uvnit©?","Ano","Ne",NULL);
i=msg_box("Klonovat",'\x2',"Klonovat i v<EFBFBD>ci uvnit<69>?","Ano","Ne",NULL);
}
it=clone_item(it,i==1);
generate_item_tree(item_tree,&ls,1);
@ -875,10 +875,10 @@ void select_item_delete()
sscanf(ls[i],"%X",&it);
if (item_tree==it && it->next==NULL)
{
msg_box("Nelze!",'\x1',"Jeden p©edmˆt mus¡ zstat","Ok",NULL);
msg_box("Nelze!",'\x1',"Jeden p<EFBFBD>edm<EFBFBD>t mus<75> z<>stat","Ok",NULL);
return;
}
if (msg_box("P©edmˆty",'\x2',"Vymazat vybranou vˆc","Souhlas","Ne",NULL)==2) return;
if (msg_box("P<EFBFBD>edm<EFBFBD>ty",'\x2',"Vymazat vybranou v<EFBFBD>c","Souhlas","Ne",NULL)==2) return;
isolate_item(it);
delete_item(it);
check_for_empty_loc();
@ -945,7 +945,7 @@ TITEM *select_item(TITEM *it)
if (q==it) break;
}
if (i==ls) i=0;
def_dialoge(120,80,410,300,"P©edmˆty");
def_dialoge(120,80,410,300,"P<EFBFBD>edm<EFBFBD>ty");
default_font=vga_font;
memcpy(&b2,def_border(5,WINCOLOR),sizeof(CTL3D));
define(9,5,20,380,210,0,listbox,il,RGB555(31,31,31),9);
@ -953,23 +953,23 @@ TITEM *select_item(TITEM *it)
define(10,1,40,19,171,1,scroll_bar_v,0,10,1,SCROLLBARCOL);
property(&b2,NULL,NULL,WINCOLOR);c_default(0);c_default(i);
define(11,1,20,21,17,1,scroll_button,-1,0,"\x1e");
property(NULL,icones,NULL,WINCOLOR);on_change(scroll_support);
property(NULL,icones,NULL,WINCOLOR);on_control_change(scroll_support);
define(12,1,213,21,17,1,scroll_button,1,10,"\x1f");
property(NULL,icones,NULL,WINCOLOR);on_change(scroll_support);
property(NULL,icones,NULL,WINCOLOR);on_control_change(scroll_support);
define(5,0,0,0,0,0,value_store,4);set_default(&it);
define(20,5,5,80,15,3,button,"Upravit");on_change(select_item_edit);
define(20,5,5,80,15,3,button,"Upravit");on_control_change(select_item_edit);
property(def_border(1,0),NULL,NULL,WINCOLOR);
define(30,5,25,80,15,3,button,"Klonovat");on_change(select_item_klon);
define(30,5,25,80,15,3,button,"Klonovat");on_control_change(select_item_klon);
property(def_border(1,0),NULL,NULL,WINCOLOR);
define(40,5,45,80,15,3,button,"Vymazat");on_change(select_item_delete);
define(40,5,45,80,15,3,button,"Vymazat");on_control_change(select_item_delete);
property(def_border(1,0),NULL,NULL,WINCOLOR);
define(50,5,5,80,15,2,button,"Zru¨it");on_change(terminate);
define(50,5,5,80,15,2,button,"Zru<EFBFBD>it");on_control_change(terminate_gui);
property(def_border(1,0),NULL,NULL,WINCOLOR);
define(60,5,25,80,15,2,button,"Vyber");on_change(terminate);
define(60,5,25,80,15,2,button,"Vyber");on_control_change(terminate_gui);
property(def_border(1,0),NULL,NULL,WINCOLOR);
define(70,90,5,80,15,3,button,"Izoluj");on_change(select_item_isolate);
define(70,90,5,80,15,3,button,"Izoluj");on_control_change(select_item_isolate);
property(def_border(1,0),NULL,NULL,WINCOLOR);
define(80,90,25,80,15,3,button,"Mapa");on_change(items_on_map_show);
define(80,90,25,80,15,3,button,"Mapa");on_control_change(items_on_map_show);
property(def_border(1,0),NULL,NULL,WINCOLOR);
redraw_window();
escape();

View file

@ -190,15 +190,15 @@ int select_ikon_lib(int last)
for (i=0;i<30;i++)
{
define(i+10,x,y,45,55,0,ikona);c_default(last+i);
property(def_border(5,WINCOLOR),NULL,NULL,0);on_change(terminate);
property(def_border(5,WINCOLOR),NULL,NULL,0);on_control_change(terminate_gui);
x+=48;if (x+48>490) {y+=58;x=5;}
}
define(300,10,10,80,20,3,button,"<<");
property(def_border(1,0),NULL,NULL,WINCOLOR);on_change(terminate);
property(def_border(1,0),NULL,NULL,WINCOLOR);on_control_change(terminate_gui);
define(310,10,10,80,20,2,button,">>");
property(def_border(1,0),NULL,NULL,WINCOLOR);on_change(terminate);
define(320,175-40,10,80,20,3,button,"Zru¨it");
property(def_border(1,0),NULL,NULL,WINCOLOR);on_change(terminate);
property(def_border(1,0),NULL,NULL,WINCOLOR);on_control_change(terminate_gui);
define(320,175-40,10,80,20,3,button,"Zru<EFBFBD>it");
property(def_border(1,0),NULL,NULL,WINCOLOR);on_control_change(terminate_gui);
redraw_window();
do
{
@ -227,10 +227,10 @@ void change_item_ikone()
}
char nvlast[][16]=
{"S¡la","Schopnost magie","Pohyblivost","Obratnost","Max zranˆ",
"Kondice","Max mana","Obrana(doln¡)","Obrana(Horn¡)","—tok(Doln¡)",
"—tok(Horn¡)","Ohe¤","Voda","Zemˆ","Vzduch","Mysl","ivoty Regen",
"Mana Regen","Kondice Regen","Magick  s¡la(D)", "Magick  s¡la(H)","","—‡innek z sahu","*"};
{"S<EFBFBD>la","Schopnost magie","Pohyblivost","Obratnost","Max zran<EFBFBD>n<EFBFBD>",
"Kondice","Max mana","Obrana(doln<EFBFBD>)","Obrana(Horn<72>)","<EFBFBD>tok(Doln<6C>)",
"<EFBFBD>tok(Horn<72>)","Ohe<EFBFBD>","Voda","Zem<EFBFBD>","Vzduch","Mysl","<EFBFBD>ivoty Regen",
"Mana Regen","Kondice Regen","Magick<EFBFBD> s<>la(D)", "Magick<EFBFBD> s<>la(H)","","<EFBFBD><EFBFBD>innek z<>sahu","*"};
void ukaz_vlastnosti(int pocet,int x,int y,int id,short *it)
{
@ -277,13 +277,13 @@ void oprav_vlastnosti(TITEM *it)
define(190,5,272,100,10,0,check_box,"Na nohy");
define(200,105,200,100,10,0,check_box,"Na chodidla");
define(210,105,212,100,10,0,check_box,"Na ramena");
define(220,105,224,100,10,0,check_box,"Na z da"); */
define(300,10,10,80,20,2,button,"Zru¨it");on_change(terminate);
define(220,105,224,100,10,0,check_box,"Na z<EFBFBD>da"); */
define(300,10,10,80,20,2,button,"Zru<EFBFBD>it");on_control_change(terminate_gui);
property(def_border(1,0),NULL,NULL,WINCOLOR);
define(310,10,40,80,20,2,button,"Ok");on_change(terminate);
define(310,10,40,80,20,2,button,"Ok");on_control_change(terminate_gui);
property(def_border(1,0),NULL,NULL,WINCOLOR);
define(-1,225,216,70,10,0,label,"Magick˜ £tok");
define(250,225,228,70,70,0,radio_butts,5,"Ohe¤","Voda","Zemˆ","Vzduch","Mysl");
define(-1,225,216,70,10,0,label,"Magick<EFBFBD> <20>tok");
define(250,225,228,70,70,0,radio_butts,5,"Ohe<EFBFBD>","Voda","Zem<EFBFBD>","Vzduch","Mysl");
c_default(it->zmeny[VLS_MGZIVEL]);
// fill_bit_fields(0,130,it->place_map,11);
redraw_window();
@ -311,7 +311,7 @@ void item_special(TITEM *it)
int i,y;
CTL3D *c;
def_dialoge(140,100,410,320,"Special - obr zky v letu");
def_dialoge(140,100,410,320,"Special - obr<EFBFBD>zky v letu");
y=20;c=def_border(5,WINCOLOR);
for(i=0;i<16;i++)
{
@ -321,10 +321,10 @@ void item_special(TITEM *it)
}
define(-1,5,20,1,1,0,label,"Zezadu");
define(-1,5,85,1,1,0,label,"Ze strany");
define(-1,5,150,1,1,0,label,"Zep©edu");
define(-1,5,215,1,1,0,label,"V˜buch");
define(300,10,10,80,20,2,button,"Zru¨it");on_change(terminate);
define(310,100,10,80,20,2,button,"Ok");on_change(terminate);
define(-1,5,150,1,1,0,label,"Zep<EFBFBD>edu");
define(-1,5,215,1,1,0,label,"V<EFBFBD>buch");
define(300,10,10,80,20,2,button,"Zru<EFBFBD>it");on_control_change(terminate_gui);
define(310,100,10,80,20,2,button,"Ok");on_control_change(terminate_gui);
redraw_window();
escape();
if (o_aktual->id==310)
@ -394,14 +394,14 @@ void items_adjusting()
yy2=350-y2-vec[1];
if (yy1<0 || yy2<0)
{
msg_box("Chyba!",'\x1',"Nelze zobrazit, protoe n hled je z‡ sti mimo obrazovku!","Ok",NULL);
msg_box("Chyba!",'\x1',"Nelze zobrazit, proto<EFBFBD>e n<>hled je z<><7A>sti mimo obrazovku!","Ok",NULL);
return;
}
preview_win=def_window(300,400,"View");
define(10,150-malexs/2,350-maleys,malexs,maleys,0,pcx_view);set_default(ITEM_MALE);
define(20,150+x1-vec[0]/2,yy1,1,1,0,pcx_view);set_default(filename);
define(30,150+x2-vec[0]/2,yy2,1,1,0,pcx_view);set_default(filename);
define(40,5,5,80,20,2,button,"Ok");on_change(close_current);
define(40,5,5,80,20,2,button,"Ok");on_control_change(close_current);
movesize_win(waktual,0,0,300,400);
redraw_window();
free(vec);
@ -440,18 +440,18 @@ void item_sound_call(TITEM *it)
memcpy(&b3,def_border(6,WINCOLOR),sizeof(CTL3D));
default_font=vga_font;
memcpy(f_default,flat_color(0x0000),sizeof(charcolors));
def_dialoge(100,50,300,250,"Zvuk p©i dopadu (destrukci)");
def_dialoge(100,50,300,250,"Zvuk p<EFBFBD>i dopadu (destrukci)");
concat(c,sample_path,"*.wav");
list=read_directory(c,DIR_BREIF,_A_NORMAL);
read_ddl_list_wav(&list);
define(9,10,20,200,126,0,listbox,list,0x7fff,0);
property(&b3,NULL,NULL,WINCOLOR);c_default(0);on_change(mob_test_sound);
property(&b3,NULL,NULL,WINCOLOR);c_default(0);on_control_change(mob_test_sound);
define(10,217,40,19,87,0,scroll_bar_v,0,10,1,SCROLLBARCOL);
property(&b2,NULL,NULL,WINCOLOR);
define(11,216,20,21,17,0,scroll_button,-1,0,"\x1e");
property(NULL,icones,NULL,WINCOLOR);on_change(scroll_support);
property(NULL,icones,NULL,WINCOLOR);on_control_change(scroll_support);
define(12,216,130,21,17,0,scroll_button,1,10,"\x1f");
property(NULL,icones,NULL,WINCOLOR);on_change(scroll_support);
property(NULL,icones,NULL,WINCOLOR);on_control_change(scroll_support);
{
int z,y;
char *s;
@ -462,10 +462,10 @@ void item_sound_call(TITEM *it)
define(20,120,y,120,12,0,input_line,13);property(&b2,NULL,NULL,WINCOLOR);
set_default(s);
define(40,245,y,20,12,0,button,"<");
property(&b1,NULL,NULL,WINCOLOR);on_change(mob_sound_copy);
property(&b1,NULL,NULL,WINCOLOR);on_control_change(mob_sound_copy);
}
define(100,5,5,80,20,2,button,"Ok");on_change(terminate); property(&b1,NULL,NULL,WINCOLOR);
define(110,90,5,80,20,2,button,"Zru¨it");on_change(terminate); property(&b1,NULL,NULL,WINCOLOR);
define(100,5,5,80,20,2,button,"Ok");on_control_change(terminate_gui); property(&b1,NULL,NULL,WINCOLOR);
define(110,90,5,80,20,2,button,"Zru<EFBFBD>it");on_control_change(terminate_gui); property(&b1,NULL,NULL,WINCOLOR);
redraw_window();
escape();
if (o_aktual->id==100)
@ -523,7 +523,7 @@ void save_edited_item()
it->shiftup=0xff;
w=find_window(preview_win);
if (w!=NULL) close_window(w);
terminate();
terminate_gui();
}
@ -593,23 +593,23 @@ void item_edit(TITEM *it)
if (anm>=str_count(weapons)) anm=0;
c=def_border(5,WINCOLOR);
def_dialoge(220,80,410,350,"Oprava £daj o p©edmˆtu");
def_dialoge(220,80,410,350,"Oprava <EFBFBD>daj<EFBFBD> o p<>edm<64>tu");
curfont=vga_font;
default_font=curfont;
define(-1,5,20,50,10,0,label,"Jmno (31 znak)");
define(-1,5,20,50,10,0,label,"Jm<EFBFBD>no (31 znak<61>)");
define(15,10,35,288,12,0,input_line,31);set_default(it->jmeno);
property(def_border(2,WINCOLOR),NULL,flat_color(RGB555(16,0,0)),WINCOLOR);
define(-1,5,50,50,10,0,label,"Popis (31 znak)");
define(-1,5,50,50,10,0,label,"Popis (31 znak<EFBFBD>)");
define(20,10,65,380,12,0,input_line,31);set_default(it->popis);
property(def_border(2,WINCOLOR),NULL,flat_color(0xF),WINCOLOR);
define(5,0,0,0,0,0,value_store,4);set_default(&it);
define(30,10,30,80,20,1,button,"Vlastnosti");
property(def_border(1,0),NULL,NULL,WINCOLOR);on_change(otevri_vlastnosti);
property(def_border(1,0),NULL,NULL,WINCOLOR);on_control_change(otevri_vlastnosti);
define(-1,5,80,100,10,0,label,"Hmotnost");
define(-1,5,95,100,10,0,label,"Nosnost");
define(-1,5,110,100,10,0,label,"ID Kl¡‡e");
define(-1,5,110,100,10,0,label,"ID Kl<EFBFBD><EFBFBD>e");
define(-1,5,125,100,10,0,label,"?Hodnota");
define(-1,5,140,100,10,0,label,"€.Ud losti");
define(-1,5,140,100,10,0,label,"<EFBFBD>.Ud<55>losti");
define(-1,5,155,100,10,0,label,"Druh");
def_border(5,WINCOLOR);
define(40,105,80,60,12,0,input_line,7,-32767,+32767,"%6d");
@ -626,7 +626,7 @@ void item_edit(TITEM *it)
on_enter(string_list_sup);c_default(it->druh);
define(-1,105,80,100,10,1,label,"Kouzlo:");
define(-1,105,95,100,10,1,label,"Mana celk:");
define(-1,105,110,100,10,1,label,"Cena vˆci");
define(-1,105,110,100,10,1,label,"Cena v<EFBFBD>ci");
define(-1,105,125,100,10,1,label,"Poloha1(XY)");
define(-1,105,140,100,10,1,label,"Poloha2(XY)");
define(100,55,80,50,12,1,input_line,7,-32767,32767,"%6d");on_exit(test_int);
@ -643,29 +643,29 @@ void item_edit(TITEM *it)
property(c,NULL,NULL,WINCOLOR);set_default(strs(it->polohy[1][0]));on_event(adjust_enter);
define(170,5,140,45,12,1,input_line,7,-32767,32767,"%5d");on_exit(test_int);
property(c,NULL,NULL,WINCOLOR);set_default(strs(it->polohy[1][1]));on_event(adjust_enter);
define(175,5,155,60,20,1,button,"Zobraz");on_change(items_adjusting);
define(175,5,155,60,20,1,button,"Zobraz");on_control_change(items_adjusting);
define(180,80,175,220,12,0,str_line,umisteni_veci);property(c,NULL,NULL,WINCOLOR);
on_enter(string_list_sup);c_default(it->umisteni);
define(200,80,190,220,12,0,str_line,typy_zbrani);property(c,NULL,NULL,WINCOLOR);
on_enter(string_list_sup);c_default(it->typ_zbrane);
define(210,80,205,220,10,0,check_box,"P©i dopadu se zni‡¡");
define(220,80,217,220,10,0,check_box,"Existuje dokud je pou¡v n");
define(210,80,205,220,10,0,check_box,"P<EFBFBD>i dopadu se zni<6E><69>");
define(220,80,217,220,10,0,check_box,"Existuje dokud je pou<EFBFBD><EFBFBD>v<EFBFBD>n");
define(130,10,180,45,55,0,ikona);c_default(it->ikona);
property(c,NULL,NULL,0);on_change(change_item_ikone);
define(-1,150,25,120,12,2,label,"Obr zkov˜ script");
property(c,NULL,NULL,0);on_control_change(change_item_ikone);
define(-1,150,25,120,12,2,label,"Obr<EFBFBD>zkov<EFBFBD> script");
define(190,150,10,120,12,2,str_line,vzhled_veci);property(c,NULL,NULL,WINCOLOR);
c_default(it->vzhled); on_enter(string_list_sup);
define(-1,150,60,120,12,2,label,"Animace zbranˆ");
define(-1,150,60,120,12,2,label,"Animace zbran<EFBFBD>");
define(400,150,45,120,12,2,str_line,weapons);property(c,NULL,NULL,WINCOLOR);
c_default(anm); on_enter(string_list_sup);on_change(update_hitpos);
c_default(anm); on_enter(string_list_sup);on_control_change(update_hitpos);
define(-1,10,45,1,12,3,label,"Hit Pos:");
define(410,90,45,40,12,3,input_line,7,0,255,"%4d");on_exit(test_int);
property(c,NULL,NULL,WINCOLOR);set_default(strs(it->hitpos));
define(300,10,35,80,20,2,button,"Ulo");property(def_border(1,0),NULL,NULL,RGB555(0,20,0));on_change(save_edited_item);
define(320,10,70,80,20,2,button,"Zvuk");property(def_border(1,0),NULL,NULL,WINCOLOR);on_change(item_sound);
define(330,10,10,80,20,2,button,"Zru¨it");property(def_border(1,0),NULL,flat_color(RGB555(31,31,31)),RGB555(20,0,0));on_change(terminate);
define(310,10,10,80,20,3,button,"Special");property(def_border(1,0),NULL,NULL,WINCOLOR);on_change(otevri_special);
define(340,10,95,80,20,2,button,"Aff");property(def_border(1,0),NULL,NULL,WINCOLOR);on_change(spell_affections);
define(300,10,35,80,20,2,button,"Ulo<EFBFBD>");property(def_border(1,0),NULL,NULL,RGB555(0,20,0));on_control_change(save_edited_item);
define(320,10,70,80,20,2,button,"Zvuk");property(def_border(1,0),NULL,NULL,WINCOLOR);on_control_change(item_sound);
define(330,10,10,80,20,2,button,"Zru<EFBFBD>it");property(def_border(1,0),NULL,flat_color(RGB555(31,31,31)),RGB555(20,0,0));on_control_change(terminate_gui);
define(310,10,10,80,20,3,button,"Special");property(def_border(1,0),NULL,NULL,WINCOLOR);on_control_change(otevri_special);
define(340,10,95,80,20,2,button,"Aff");property(def_border(1,0),NULL,NULL,WINCOLOR);on_control_change(spell_affections);
define(700,0,0,0,0,0,value_store,4);c_default(it->zmeny[VLS_KOUZLA]);
redraw_window();
fill_bit_fields(0,210,it->flags,2);
@ -695,7 +695,7 @@ void create_ibuffer_list()
else sprintf(c,"%3d %s",i,q->jmeno);
if (str_replace(&ls_buffer,i,c)==NULL) return;
}
if (i==0) str_replace(&ls_buffer,0," -1 <adn p©edmˆty>");
if (i==0) str_replace(&ls_buffer,0," -1 <<EFBFBD>adn<EFBFBD> p<>edm<64>ty>");
str_delfreelines(&ls_buffer);
}
@ -716,7 +716,7 @@ void create_isort_list(TSTR_LIST *ls_sorts,int filter)
cc=1;
}
}
if (!cc) str_replace(ls_sorts,0," -1 <adn vzory>");
if (!cc) str_replace(ls_sorts,0," -1 <<EFBFBD>adn<EFBFBD> vzory>");
str_delfreelines(ls_sorts);
}
@ -732,7 +732,7 @@ void save_items()
f=fopen(ITEMS_DAT,"wb");
if (f==NULL)
{
msg_box("Chyba",'\x1',"Nemohu uloit vzory p©edmˆt","Panika",NULL);
msg_box("Chyba",'\x1',"Nemohu ulo<EFBFBD>it vzory p<>edm<64>t<EFBFBD>","Panika",NULL);
return;
}
save_section(f,item_list,SV_ITLIST,sizeof(TITEM)*max_items);
@ -817,7 +817,7 @@ void clone_item()
j=aloc_free_item();
if (j==-1)
{
msg_box("Nelze!",'\0x1',"MAPEDIT je omezen na po‡et v¨ech mon˜ch vzor ve h©e","Ok",NULL);
msg_box("Nelze!",'\0x1',"MAPEDIT je omezen na po<EFBFBD>et v<>ech mo<6D>n<EFBFBD>ch vzor<6F> ve h<>e","Ok",NULL);
return;
}
i=f_get_value(0,9);
@ -853,11 +853,11 @@ void delete_item_sort()
i=f_get_value(0,9);
sscanf(ls_sorts[i],"%d",&i);
if (i<0 || i>=max_items) return;
if (msg_box("Dotaz?",'\x02',"Opravdu m ¨ v £myslu vymazat tento vzor? Je mon,"
" e na tento vzor se odvol v j¡ p©edmˆty v jin mapˆ. MAPEDIT je "
"neme vymazat, a mohou se dal¨¡ pr c¡ zmˆnit v p©edmˆt jin˜!",
"P©esto vymazat","Zru¨it",NULL)==2) return;
strcpy(item_list[i].jmeno,"??? Vymaz n");
if (msg_box("Dotaz?",'\x02',"Opravdu m<EFBFBD><EFBFBD> v <20>myslu vymazat tento vzor? Je mo<6D>n<EFBFBD>,"
" <EFBFBD>e na tento vzor se odvol<6F>v<EFBFBD>j<EFBFBD> p<>edm<64>ty v jin<69> map<61>. MAPEDIT je "
"nem<EFBFBD><EFBFBD>e vymazat, a mohou se dal<61><6C> pr<70>c<EFBFBD> zm<7A>nit v p<>edm<64>t jin<69>!",
"P<EFBFBD>esto vymazat","Zru<EFBFBD>it",NULL)==2) return;
strcpy(item_list[i].jmeno,"??? Vymaz<EFBFBD>n");
while (max_items && item_list[max_items-1].jmeno[0]=='?') max_items--;
create_isort_list(&ls_sorts,grep_num);
send_message(E_GUI,9,E_CONTROL,1,ls_sorts);
@ -899,27 +899,27 @@ void open_item_win()
default_font=vga_font;
memcpy(f_default,flat_color(0x0000),sizeof(charcolors));
memcpy(&f_sel,flat_color(RGB555(0,0,24)),sizeof(charcolors));
item_win=def_window(200,300,"P©edmˆty");
item_win=def_window(200,300,"P<EFBFBD>edm<EFBFBD>ty");
waktual->y=2;waktual->x=SCR_WIDTH_X-20-160-3;
waktual->minsizx=120;
waktual->minsizy=100;
on_change(close_current);
on_control_change(close_current);
define(9,5,20,170,240,0,listbox,ls_buffer,RGB555(31,31,0),0);c_default(0);
property(&b2,NULL,&f_sel,WINCOLOR);
o_end->autoresizex=1;
o_end->autoresizey=1;
define(10,3,41,19,198,1,scroll_bar_v,0,10,1,SCROLLBARCOL);
property(&b2,NULL,NULL,WINCOLOR);on_change(scroll_support);
property(&b2,NULL,NULL,WINCOLOR);on_control_change(scroll_support);
o_end->autoresizey=1;
define(11,3,20,19,19,1,scroll_button,-1,0,"\x1e");
property(NULL,icones,NULL,WINCOLOR);on_change(scroll_support);
property(NULL,icones,NULL,WINCOLOR);on_control_change(scroll_support);
define(12,3,40,19,19,2,scroll_button,1,10,"\x1f");
property(NULL,icones,NULL,WINCOLOR);on_change(scroll_support);
property(NULL,icones,NULL,WINCOLOR);on_control_change(scroll_support);
define(20,3,1,10,10,2,resizer);
define(30,5,10,50,20,3,button,"P©ekr.");
property(&b1,NULL,NULL,WINCOLOR);on_change(refresh_itm);
define(30,60,10,50,20,3,button,"Vyma");
property(&b1,NULL,NULL,WINCOLOR);on_change(it_kos);
define(30,5,10,50,20,3,button,"P<EFBFBD>ekr.");
property(&b1,NULL,NULL,WINCOLOR);on_control_change(refresh_itm);
define(30,60,10,50,20,3,button,"Vyma<EFBFBD>");
property(&b1,NULL,NULL,WINCOLOR);on_control_change(it_kos);
movesize_win(waktual,waktual->x,waktual->y,waktual->xs,150);
redraw_window();
@ -934,7 +934,7 @@ void umisti_item()
if (selected_place==-1)
{
msg_box("Nic nen¡ vybr no",'\x01',"Nejd©¡ve klikni my¨¡ na mapˆ, na m¡sto kam chce¨ p©edmˆt um¡stit","Ok",NULL);
msg_box("Nic nen<EFBFBD> vybr<62>no",'\x01',"Nejd<EFBFBD><EFBFBD>ve klikni my<6D><79> na map<61>, na m<>sto kam chce<63> p<>edm<64>t um<75>stit","Ok",NULL);
return;
}
i=f_get_value(0,9);
@ -942,7 +942,7 @@ void umisti_item()
for(j=0;j<ITEM_BUFFER && item_buffer[j];j++);
if (j==ITEM_BUFFER)
{
msg_box("Omezeni.",' ',"MAPEDIT omezil po‡et p©edmˆt na jednom poli‡ku. Dal¨¡ ji nelze vloit","Ok",NULL);
msg_box("Omezeni.",' ',"MAPEDIT omezil po<EFBFBD>et p<>edm<64>t<EFBFBD> na jednom poli<6C>ku. Dal<61><6C> ji<6A> nelze vlo<6C>it","Ok",NULL);
return;
}
item_buffer[j]=i+1;
@ -970,7 +970,7 @@ void vloz_do_item()
void inv_testmap()
{
if (selected_place<0)
msg_box("Nic nen¡ vybr no",'\x01',"Nejd©¡ve klikni my¨¡ na mapˆ, na m¡sto kde chce¨ za‡¡t","Ok",NULL);
msg_box("Nic nen<EFBFBD> vybr<62>no",'\x01',"Nejd<EFBFBD><EFBFBD>ve klikni my<6D><79> na map<61>, na m<>sto kde chce<63> za<7A><61>t","Ok",NULL);
else
call_testmap(selected_place/4);
}
@ -1007,35 +1007,35 @@ void editor_vzoru()
vzor_win=def_window(200,370,"Vzory");
waktual->minsizx=130;
waktual->minsizy=170;
on_change(close_current);
on_control_change(close_current);
define(9,5,20,170,240,0,listbox,ls_sorts,RGB555(31,31,0),0);c_default(0);
property(&b2,NULL,&f_sel,WINCOLOR);
o_end->autoresizex=1;
o_end->autoresizey=1;
define(10,3,41,19,198,1,scroll_bar_v,0,10,1,SCROLLBARCOL);
property(&b2,NULL,NULL,WINCOLOR);on_change(scroll_support);
property(&b2,NULL,NULL,WINCOLOR);on_control_change(scroll_support);
o_end->autoresizey=1;
define(11,3,20,19,19,1,scroll_button,-1,0,"\x1e");
property(NULL,icones,NULL,WINCOLOR);on_change(scroll_support);
property(NULL,icones,NULL,WINCOLOR);on_control_change(scroll_support);
define(12,3,110,19,19,2,scroll_button,1,10,"\x1f");
property(NULL,icones,NULL,WINCOLOR);on_change(scroll_support);
property(NULL,icones,NULL,WINCOLOR);on_control_change(scroll_support);
define(20,3,1,10,10,2,resizer);
define(30,5,35,50,20,3,button,"Vyma");on_change(delete_item_sort);
define(30,5,35,50,20,3,button,"Vyma<EFBFBD>");on_control_change(delete_item_sort);
property(&b1,NULL,NULL,WINCOLOR);
define(40,5,60,50,20,3,button,"Klonuj");on_change(clone_item);
define(40,5,60,50,20,3,button,"Klonuj");on_control_change(clone_item);
property(&b1,NULL,NULL,WINCOLOR);
define(50,5,85,50,20,3,button,"Oprav");on_change(edit_selected_item);
define(50,5,85,50,20,3,button,"Oprav");on_control_change(edit_selected_item);
property(&b1,NULL,NULL,WINCOLOR);
define(60,10,35,60,20,2,button,"Um¡stit");on_change(umisti_item);
define(60,10,35,60,20,2,button,"Um<EFBFBD>stit");on_control_change(umisti_item);
property(&b1,NULL,NULL,WINCOLOR);
define(70,10,60,60,20,2,button,"Vlo do");on_change(vloz_do_item);
define(70,10,60,60,20,2,button,"Vlo<EFBFBD> do");on_control_change(vloz_do_item);
property(&b1,NULL,NULL,WINCOLOR);
define(80,10,85,60,20,2,button,"Test");on_change(inv_testmap);
define(80,10,85,60,20,2,button,"Test");on_control_change(inv_testmap);
property(&b1,NULL,NULL,WINCOLOR);
define(90,5,10,170,12,3,str_line,typy_veci);c_default(grep_num>-1?grep_num:0);
property(&b2,NULL,&f_sel,WINCOLOR);on_enter(string_list_sup);on_change(change_grep);
property(&b2,NULL,&f_sel,WINCOLOR);on_enter(string_list_sup);on_control_change(change_grep);
o_end->autoresizex=1;
define(100,10,10,10,10,2,check_box,"");c_default(grep_num>-1);on_change(change_grep);
define(100,10,10,10,10,2,check_box,"");c_default(grep_num>-1);on_control_change(change_grep);
movesize_win(waktual,waktual->x,160,waktual->xs,SCR_WIDTH_Y-20-160);
redraw_window();
}
@ -1198,7 +1198,7 @@ void re_build_shop_list(TSTR_LIST *ls,TSHOP *p, int count)
str_add(ls,s);
p++;
}
str_add(ls,"<nov˜ obchod>");
str_add(ls,"<nov<EFBFBD> obchod>");
}
@ -1218,7 +1218,7 @@ void re_build_item_list(TSTR_LIST *ls,TPRODUCT *p,int count)
*ls=create_list(16);
if (!count || p==NULL)
{
str_add(ls,"< dn˜ p©edmˆt>");
str_add(ls,"<<EFBFBD><EFBFBD>dn<EFBFBD> p<>edm<64>t>");
return;
}
while (count--)
@ -1229,7 +1229,7 @@ void re_build_item_list(TSTR_LIST *ls,TPRODUCT *p,int count)
d=p->item;
if (p->trade_flags & SHP_TYPE)
sprintf(s,"typ: <%s>",typy_veci[d]);
else if (d>=max_items) strcpy(s,"<p©edmˆt vymaz n!>");
else if (d>=max_items) strcpy(s,"<p<EFBFBD>edm<EFBFBD>t vymaz<61>n!>");
else
sprintf(s,"%c%c%c%c %s (%d)",(p->trade_flags & SHP_SELL?'P':219),
(p->trade_flags & SHP_BUY?'N':219),
@ -1270,17 +1270,17 @@ static void close_edit_shop()
p->spec_max=vals(230);
if (s[0]==0)
{
msg_box("Editor obchod",'\x1',"Obchod mus¡ m¡t svho prodava‡e (shopkeeppera). Obchod bude ozna‡en jako smazan˜.","Ok",NULL);
strcpy(s,"*vymaz n*");
msg_box("Editor obchod<EFBFBD>",'\x1',"Obchod mus<EFBFBD> m<>t sv<73>ho prodava<76>e (shopkeeppera). Obchod bude ozna<6E>en jako smazan<61>.","Ok",NULL);
strcpy(s,"*vymaz<EFBFBD>n*");
}
if (s[0]=='<')
{
msg_box("Editor obchod",'\x1',"Obchodn¡k m  neplatn jmno","Ok",NULL);
msg_box("Editor obchod<EFBFBD>",'\x1',"Obchodn<EFBFBD>k m<> neplatn<74> jm<6A>no","Ok",NULL);
return;
}
strcpy(p->keeper,s);
if (!p->products && s[0]!='*')
msg_box("Editor obchod",'\x1',"S ni‡¡m se neobchoduje. Nejsou definov ny  dn produkty. Tato situace me vst ke krachu hry!","Beru na vˆdom¡",NULL);
msg_box("Editor obchod<EFBFBD>",'\x1',"S ni<EFBFBD><EFBFBD>m se neobchoduje. Nejsou definov<6F>ny <20><>dn<64> produkty. Tato situace m<><6D>e v<>st ke krachu hry!","Beru na v<>dom<6F>",NULL);
send_message(E_GUI,9,E_CONTROL,0,&ls);
release_list(ls);
close_current();
@ -1428,42 +1428,42 @@ void edit_shop(int i)
re_build_item_list(&ls,shp->list,shp->products);
memcpy(&ctl1,def_border(1,0),sizeof(ctl1));
memcpy(&ctl2,def_border(2,WINCOLOR),sizeof(ctl2));
def_window(400,300,"Editor obchod");
on_change(close_edit_shop);
def_window(400,300,"Editor obchod<EFBFBD>");
on_control_change(close_edit_shop);
define(500,0,0,0,0,0,value_store,4);c_default(i);
define(9,10,20,200,166,0,listbox,ls,RGB555(31,31,31),0);
property(&ctl1,NULL,NULL,WINCOLOR);c_default(0);on_change(show_selected);
property(&ctl1,NULL,NULL,WINCOLOR);c_default(0);on_control_change(show_selected);
define(10,217,40,19,127,0,scroll_bar_v,0,10,1,SCROLLBARCOL);
property(&ctl1,NULL,NULL,WINCOLOR);
define(11,216,20,21,17,0,scroll_button,-1,0,"\x1e");
property(NULL,icones,NULL,WINCOLOR);on_change(scroll_support);
property(NULL,icones,NULL,WINCOLOR);on_control_change(scroll_support);
define(12,216,170,21,17,0,scroll_button,1,10,"\x1f");
property(NULL,icones,NULL,WINCOLOR);on_change(scroll_support);
define(20,75,30,60,20,1,button,"Voit");property(&ctl1,NULL,NULL,WINCOLOR);on_change(add_item);
define(60,75,55,60,20,1,button,"P©epsat");property(&ctl1,NULL,NULL,WINCOLOR);on_change(rewrite_item);
define(30,10,30,60,20,1,button,"Typ");property(&ctl1,NULL,NULL,WINCOLOR);on_change(add_type);
define(40,10,55,60,20,1,button,"Odebrat");property(&ctl1,NULL,NULL,WINCOLOR);on_change(remove_item);
define(50,10,10,80,20,2,button,"Zav©¡t");property(&ctl1,NULL,NULL,WINCOLOR);on_change(close_edit_shop);
property(NULL,icones,NULL,WINCOLOR);on_control_change(scroll_support);
define(20,75,30,60,20,1,button,"Vo<EFBFBD>it");property(&ctl1,NULL,NULL,WINCOLOR);on_control_change(add_item);
define(60,75,55,60,20,1,button,"P<EFBFBD>epsat");property(&ctl1,NULL,NULL,WINCOLOR);on_control_change(rewrite_item);
define(30,10,30,60,20,1,button,"Typ");property(&ctl1,NULL,NULL,WINCOLOR);on_control_change(add_type);
define(40,10,55,60,20,1,button,"Odebrat");property(&ctl1,NULL,NULL,WINCOLOR);on_control_change(remove_item);
define(50,10,10,80,20,2,button,"Zav<EFBFBD><EFBFBD>t");property(&ctl1,NULL,NULL,WINCOLOR);on_control_change(close_edit_shop);
define(100,10,80,150,12,1,str_line,shop_items);property(&ctl2,NULL,NULL,WINCOLOR);
c_default(0); on_enter(string_list_sup);on_change(zjisti_cenu);
c_default(0); on_enter(string_list_sup);on_control_change(zjisti_cenu);
define(-1,155,100,1,1,1,label,"Cena:");
define(110,10,100,90,12,1,input_line,10,0,9999999,"%7d");property(&ctl2,NULL,NULL,WINCOLOR);
set_default(strs(item_list[0].cena));on_exit(test_int);
define(-1,155,120,1,1,1,label,"Poet:");
define(-1,155,120,1,1,1,label,"Po<EFBFBD>et:");
define(120,10,120,90,12,1,input_line,10,-1,9999999,"%7d");property(&ctl2,NULL,NULL,WINCOLOR);
set_default(strs(1));on_exit(test_int);
define(130,10,135,150,10,1,check_box,"Prod vat");c_default(1);
define(130,10,135,150,10,1,check_box,"Prod<EFBFBD>vat");c_default(1);
define(140,10,147,150,10,1,check_box,"Nakupovat");c_default(0);
define(150,10,159,150,10,1,check_box,"Zbo‘¡ p©ib˜v ");c_default(0);
define(160,10,171,150,10,1,check_box,"Nen¡ vdy na skladˆ");c_default(0);
define(150,10,159,150,10,1,check_box,"Zbo<EFBFBD><EFBFBD> p<>ib<69>v<EFBFBD>");c_default(0);
define(160,10,171,150,10,1,check_box,"Nen<EFBFBD> v<>dy na sklad<61>");c_default(0);
define(-1,10,200,1,1,0,label,"Shopkeeper:");
define(200,100,200,200,12,0,input_line,15);set_default(shp->keeper);property(&ctl2,NULL,NULL,WINCOLOR);
define(-1,10,220,1,1,0,label,"Obr zek:");
define(-1,10,220,1,1,0,label,"Obr<EFBFBD>zek:");
define(210,100,220,100,12,0,input_line,12);set_default(shp->picture);property(&ctl2,NULL,NULL,WINCOLOR);
define(215,220,218,80,14,0,button,"Nalistuj");property(&ctl1,NULL,NULL,WINCOLOR);on_change(browse_dialogs);
define(215,220,218,80,14,0,button,"Nalistuj");property(&ctl1,NULL,NULL,WINCOLOR);on_control_change(browse_dialogs);
define(-1,10,240,1,1,0,label,"Rozptyl cen +/- [%]");
define(220,150,240,60,12,0,input_line,6,0,100,"%5d");set_default(strs(shp->koef));on_exit(test_int);property(&ctl2,NULL,NULL,WINCOLOR);
define(-1,220,240,1,1,0,label,"Poet spec:");
define(-1,220,240,1,1,0,label,"Po<EFBFBD>et spec:");
define(230,320,240,60,12,0,input_line,6,0,100,"%5d");set_default(strs(shp->spec_max));on_exit(test_int);property(&ctl2,NULL,NULL,WINCOLOR);
{
char s[50];
@ -1482,7 +1482,7 @@ static void close_shop_list()
send_message(E_GUI,9,E_CONTROL,0,&ls);
for(i=0;i<max_shops;i++) if (shopstate[i]==1)
{
msg_box("Toto okno nelze uzav©¡t!",'\x1',"Program ‡ek  na dokon‡en¡ prace v nˆkterm z pod©¡zen˜ch oken","Ok",NULL);
msg_box("Toto okno nelze uzav<EFBFBD><EFBFBD>t!",'\x1',"Program <EFBFBD>ek<EFBFBD> na dokon<6F>en<65> prace v n<>kter<65>m z pod<6F><64>zen<65>ch oken","Ok",NULL);
return;
}
for(i=0;i<max_shops;)
@ -1523,7 +1523,7 @@ void open_shop_editor()
if (ls[i]==NULL) return;
if (shopstate[i]==1)
{
msg_box("Seznam obchod",'\x1',"Tento obchod je ji opravov n v jinm oknˆ. Nelze jej znovu otev©¡t","Ok",NULL);
msg_box("Seznam obchod<EFBFBD>",'\x1',"Tento obchod je ji<EFBFBD> opravov<6F>n v jin<69>m okn<6B>. Nelze jej znovu otev<65><76>t","Ok",NULL);
return;
}
shopstate[i]=1;
@ -1545,12 +1545,12 @@ static void erase_shop()
if (ls[i]==NULL) return;
if (ls[i][0]=='<')
{
msg_box("Seznam obchod",'\x1',"Tento obchod je opravov n v jinm oknˆ. Nelze jej vymazat","Ok",NULL);
msg_box("Seznam obchod<EFBFBD>",'\x1',"Tento obchod je opravov<EFBFBD>n v jin<69>m okn<6B>. Nelze jej vymazat","Ok",NULL);
return;
}
if (msg_box("Vymazat obchod?",'\x2',"Opravdu chce¨ vymazat obchod?","Ano","Ne",NULL)==2) return;
if (msg_box("Vymazat obchod?",'\x2',"Opravdu chce<EFBFBD> vymazat obchod?","Ano","Ne",NULL)==2) return;
p=shop_list+i;
strcpy(p->keeper,"*vymaz n*");
strcpy(p->keeper,"*vymaz<EFBFBD>n*");
re_build_shop_list(&ls,shop_list,max_shops);
send_message(E_GUI,9,E_CONTROL,1,ls);
}
@ -1570,18 +1570,18 @@ void open_shop_list()
ls_sorts=NULL;
re_build_shop_list(&ls,shop_list,max_shops);
memcpy(&ctl1,def_border(1,0),sizeof(ctl1));
shop_window=def_window(250,220,"Seznam obchod");
on_change(close_shop_list);
shop_window=def_window(250,220,"Seznam obchod<EFBFBD>");
on_control_change(close_shop_list);
define(9,10,20,200,166,0,listbox,ls,RGB555(31,31,31),0);
property(&ctl1,NULL,NULL,WINCOLOR);c_default(0);//on_change(edit_shop_item);
define(10,217,40,19,127,0,scroll_bar_v,0,10,1,SCROLLBARCOL);
property(&ctl1,NULL,NULL,WINCOLOR);
define(11,216,20,21,17,0,scroll_button,-1,0,"\x1e");
property(NULL,icones,NULL,WINCOLOR);on_change(scroll_support);
property(NULL,icones,NULL,WINCOLOR);on_control_change(scroll_support);
define(12,216,170,21,17,0,scroll_button,1,10,"\x1f");
property(NULL,icones,NULL,WINCOLOR);on_change(scroll_support);
define(200,5,5,70,20,3,button,"Oprava");on_change(open_shop_editor);property(&ctl1,NULL,NULL,WINCOLOR);
define(210,80,5,70,20,3,button,"Vymazat");on_change(erase_shop);property(&ctl1,NULL,NULL,WINCOLOR);
property(NULL,icones,NULL,WINCOLOR);on_control_change(scroll_support);
define(200,5,5,70,20,3,button,"Oprava");on_control_change(open_shop_editor);property(&ctl1,NULL,NULL,WINCOLOR);
define(210,80,5,70,20,3,button,"Vymazat");on_control_change(erase_shop);property(&ctl1,NULL,NULL,WINCOLOR);
movesize_win(waktual,10,10,250,220);
}
else select_window(shop_window);
@ -1618,7 +1618,7 @@ void save_shop(TSHOP *p,FILE *f)
{
char s[300];
sprintf(s,"Duplicitn¡ p©edmˆt v definici v obchodu '%s'. Soubor obchodu bude uloen, ale vlastn¡ hra me na tomto p©edmˆtu zkrachovat!",p->keeper);
sprintf(s,"Duplicitn<EFBFBD> p<>edm<64>t v definici v obchodu '%s'. Soubor obchodu bude ulo<6C>en, ale vlastn<74> hra m<><6D>e na tomto p<>edm<64>tu zkrachovat!",p->keeper);
msg_box("Shop edit",'\x1',s,"Ok",NULL);
typs++;
}

View file

@ -46,10 +46,10 @@ word icone_color[7]={RGB555(8,8,8),RGB555(31,31,31),RGB555(0,0,15),RGB555(16,16,
extern word sipka;
static char *error_texts[]=
{
"Progamov  chyba",
"Pr vˆ bˆ¡c¡ ud lost zpsobila neplatnou referenci pamˆŸi!",
"Pr vˆ bˆ¡c¡ ud lost zpsobila zpracov n¡ neplatn instrukce!",
"Systm zachytil neo‡ek vanou chybu programu!"
"Progamov<EFBFBD> chyba",
"Pr<EFBFBD>v<EFBFBD> b<><62><EFBFBD>c<EFBFBD> ud<75>lost zp<7A>sobila neplatnou referenci pam<61><6D>i!",
"Pr<EFBFBD>v<EFBFBD> b<><62><EFBFBD>c<EFBFBD> ud<75>lost zp<7A>sobila zpracov<6F>n<EFBFBD> neplatn<74> instrukce!",
"Syst<EFBFBD>m zachytil neo<65>ek<65>vanou chybu programu!"
};
static char ask_exit_status;
@ -123,7 +123,7 @@ EVENT_PROC(exit_key)
WHEN_MSG(E_KEYBOARD)
{
c=GET_DATA(int);
if ((c & 0xff)==0 && (c>>8)=='D') terminate();
if ((c & 0xff)==0 && (c>>8)=='D') terminate_gui();
if ((c & 0xff)==0 && (c>>8)==';') about();
if ((c & 0xff)==0 && (c>>8)=='?') save_dump();
if ((c & 0xff)==0 && (c>>8)=='<') movesize_test();
@ -141,7 +141,7 @@ EVENT_PROC(wait_ms_key)
WHEN_MSG(E_MOUSE)
{
ms=get_mouse(GET_MSG_VAR());
if (ms->event_type & 4) terminate();
if (ms->event_type & 4) terminate_gui();
}
}
@ -281,7 +281,7 @@ void prg_error(EVENT_MSG *msg,void **unused)
}
zobraz_mysku();
showview(0,0,0,0);
*err=2-msg_box(error_texts[0],' ',c,"Ignoruj","Konec","Ulo mapu",NULL);
*err=2-msg_box(error_texts[0],' ',c,"Ignoruj","Konec","Ulo<EFBFBD> mapu",NULL);
if (*err==-1) save_all_map();
}
}
@ -399,7 +399,7 @@ long def_window(word xs,word ys,char *name)
if (xs>=70)
{
define(1,1,1,19,16,1,button,"\x0f");
property(NULL,icones,&icone_color,WINCOLOR);on_change(close_test);
property(NULL,icones,&icone_color,WINCOLOR);on_control_change(close_test);
}
return q;
}
@ -465,14 +465,14 @@ void about()
define(-1,5,25,29,29,0,dtext,"\x8");property(NULL,icones,&c,WINCOLOR);
define(-1,75,25,100,29,0,dtext,"MAPEDIT");property(NULL,NULL,&c2,WINCOLOR);
define(-1,200,35,60,29,0,label,"verze 2.0");property(NULL,NULL,&c3,WINCOLOR);
define(-1,20,80,200,10,0,label,"Naps no pro hru \"Br ny Skeldalu\"");
define(-1,20,80,200,10,0,label,"Naps<EFBFBD>no pro hru \"Br<EFBFBD>ny Skeldalu\"");
define(-1,20,92,200,10,0,label,"(C) 1997 Napoleon gameS ");
define(-1,20,104,200,10,0,label,"Naprogamoval: Ond©ej Nov k ");
define(-1,20,116,200,10,0,label,"Tento software sm¡ b˜t pouit jen");
define(-1,20,128,200,10,0,label,"ve spojen¡ s v˜vojem hry \"Br ny");
define(-1,20,140,200,10,0,label,"Skeldalu\" (a p©¡padn dal¨¡ verze)");
define(-1,20,152,200,10,0,label,"a to pouze ‡leny v˜vojovho t˜mu.");
define(10,110,170,80,20,0,button,"Ok");on_change(close_test);
define(-1,20,104,200,10,0,label,"Naprogamoval: Ond<EFBFBD>ej Nov<6F>k ");
define(-1,20,116,200,10,0,label,"Tento software sm<EFBFBD> b<>t pou<6F>it jen");
define(-1,20,128,200,10,0,label,"ve spojen<EFBFBD> s v<>vojem hry \"Br<EFBFBD>ny");
define(-1,20,140,200,10,0,label,"Skeldalu\" (a p<EFBFBD><EFBFBD>padn<EFBFBD> dal<61><6C> verze)");
define(-1,20,152,200,10,0,label,"a to pouze <EFBFBD>leny v<>vojov<6F>ho t<>mu.");
define(10,110,170,80,20,0,button,"Ok");on_control_change(close_test);
}
else select_window(about_win);
redraw_window();
@ -500,7 +500,7 @@ void close_app(void)
desktop_add_window(w);
define(-1,0,0,mx,my,0,fog_bar);property(NULL,NULL,NULL,RGB555(16,0,0));
redraw_desktop();
if ((ask_exit_status=msg_box("Dotaz?",'\x2',"Chce¨ program ukon‡it, nebo nahr t jinou mapu?","Jinou mapu","Ukonit","Ne",NULL))!=3) terminate();
if ((ask_exit_status=msg_box("Dotaz?",'\x2',"Chce<EFBFBD> program ukon<6F>it, nebo nahr<68>t jinou mapu?","Jinou mapu","Ukon<EFBFBD>it","Ne",NULL))!=3) terminate_gui();
close_window(w);
do_events();
}
@ -563,11 +563,11 @@ void open_editor_win()
if (find_window(editor_win)==NULL)
{
editor_win=def_window(100,150,"Editory");
define(10,10,25,80,20,0,button,"map script");on_change(edit_script_file);
define(20,10,50,80,20,0,button,"map texty");on_change(edit_script_file);
define(30,10,75,80,20,0,button,"items.scr");on_change(edit_script_file);
define(40,10,100,80,20,0,button,"items.pic");on_change(edit_script_file);
define(50,10,125,80,20,0,button,"animator");on_change(call_animator);
define(10,10,25,80,20,0,button,"map script");on_control_change(edit_script_file);
define(20,10,50,80,20,0,button,"map texty");on_control_change(edit_script_file);
define(30,10,75,80,20,0,button,"items.scr");on_control_change(edit_script_file);
define(40,10,100,80,20,0,button,"items.pic");on_control_change(edit_script_file);
define(50,10,125,80,20,0,button,"animator");on_control_change(call_animator);
redraw_window();
}
else
@ -583,27 +583,27 @@ void create_menu(void)
menu_win=def_window(400,150,"Map Edit v2.0 for Windows - " MAPEDIT_VERSION );
waktual->x=120;
waktual->y=250;
on_change(close_app);
on_control_change(close_app);
curcolor=WINCOLOR;
default_font=icones;
define(10,5,25,29,29,0,button,"\x8");property(NULL,NULL,&c,WINCOLOR);on_change(edit_basic_maze);
define(20,5,55,29,29,0,button,"\x9");property(NULL,NULL,&c,WINCOLOR);on_change(editor_veci);
define(30,5,85,29,29,0,button,"\xA");property(NULL,NULL,&c,WINCOLOR);on_change(enemy_window);
define(10,5,25,29,29,0,button,"\x8");property(NULL,NULL,&c,WINCOLOR);on_control_change(edit_basic_maze);
define(20,5,55,29,29,0,button,"\x9");property(NULL,NULL,&c,WINCOLOR);on_control_change(editor_veci);
define(30,5,85,29,29,0,button,"\xA");property(NULL,NULL,&c,WINCOLOR);on_control_change(enemy_window);
c[1]=RGB555(20,0,0);c[2]=RGB555(0,0,16);
define(40,200,25,29,29,0,button,"e");property(NULL,NULL,&c,WINCOLOR);on_change(shop_train_edit);
define(40,200,25,29,29,0,button,"e");property(NULL,NULL,&c,WINCOLOR);on_control_change(shop_train_edit);
c[1]=RGB555(31,31,31);c[2]=RGB555(24,24,24);
c[3]=RGB555(20,0,0);c[4]=RGB555(0,0,16);
define(50,200,55,29,29,0,button,"E");property(NULL,NULL,&c,WINCOLOR);on_change(open_editor_win);
define(60,200,85,29,29,0,button,"S");property(NULL,NULL,&c,WINCOLOR);on_change(save_all_map);
define(70,5,115,29,29,0,button,"P");property(NULL,NULL,&c,WINCOLOR);on_change(pcxviewer);
define(50,200,55,29,29,0,button,"E");property(NULL,NULL,&c,WINCOLOR);on_control_change(open_editor_win);
define(60,200,85,29,29,0,button,"S");property(NULL,NULL,&c,WINCOLOR);on_control_change(save_all_map);
define(70,5,115,29,29,0,button,"P");property(NULL,NULL,&c,WINCOLOR);on_control_change(pcxviewer);
memcpy(c,flat_color(RGB555(0,0,15)),sizeof(FC_TABLE));
define(-1,45,35,90,20,0,label,"Kreslen¡ mapy");property(NULL,vga_font,&c,WINCOLOR);
define(-1,45,65,90,20,0,label,"Pokl d n¡ p©edmˆt");property(NULL,vga_font,&c,WINCOLOR);
define(-1,45,95,90,20,0,label,"Um¡sŸov n¡ nestvr");property(NULL,vga_font,&c,WINCOLOR);
define(-1,45,35,90,20,0,label,"Kreslen<EFBFBD> mapy");property(NULL,vga_font,&c,WINCOLOR);
define(-1,45,65,90,20,0,label,"Pokl<EFBFBD>d<EFBFBD>n<EFBFBD> p<>edm<64>t<EFBFBD>");property(NULL,vga_font,&c,WINCOLOR);
define(-1,45,95,90,20,0,label,"Um<EFBFBD>s<EFBFBD>ov<EFBFBD>n<EFBFBD> nestv<74>r");property(NULL,vga_font,&c,WINCOLOR);
define(-1,240,35,90,20,0,label,"Obchody");property(NULL,vga_font,&c,WINCOLOR);
define(-1,240,65,90,20,0,label,"Editor script");property(NULL,vga_font,&c,WINCOLOR);
define(-1,240,95,90,20,0,label,"Uloen¡ mapy");property(NULL,vga_font,&c,WINCOLOR);
define(-1,45,125,90,20,0,label,"Prohl¡e‡ PCX");property(NULL,vga_font,&c,WINCOLOR);
define(-1,240,65,90,20,0,label,"Editor script<EFBFBD>");property(NULL,vga_font,&c,WINCOLOR);
define(-1,240,95,90,20,0,label,"Ulo<EFBFBD>en<EFBFBD> mapy");property(NULL,vga_font,&c,WINCOLOR);
define(-1,45,125,90,20,0,label,"Prohl<EFBFBD><EFBFBD>e<EFBFBD> PCX");property(NULL,vga_font,&c,WINCOLOR);
default_font=vga_font;
memcpy(f_default,flat_color(0x0000),sizeof(charcolors));
//set_enable(0,20,0);
@ -715,8 +715,8 @@ static ask_password_event(EVENT_MSG *msg,OBJREC *obj)
WHEN_MSG(E_KEYBOARD)
{
char c=GET_DATA(char);
if (c==13) {goto_control(20);terminate();}
if (c==27) {goto_control(30);terminate();}
if (c==13) {goto_control(20);terminate_gui();}
if (c==27) {goto_control(30);terminate_gui();}
}
}
@ -726,19 +726,19 @@ char ask_password(char *pass,char text)
switch (text)
{
case 0:c="Provˆ©en¡";break;
case 1:c="Zmˆna hesla";break;
case 0:c="Prov<EFBFBD><EFBFBD>en<EFBFBD>";break;
case 1:c="Zm<EFBFBD>na hesla";break;
case 2:c="Kontrola";break;
}
def_dialoge(320-100,240-50,200,90,c);
define(-1,10,20,1,1,0,label,"Vlo heslo:");
define(-1,10,20,1,1,0,label,"Vlo<EFBFBD> heslo:");
define(10,10,40,180,12,0,input_line,49);
property(def_border(3,WINCOLOR),NULL,flat_color(RGB555(31,31,31)),RGB555(8,8,8));
if (text==1)set_default(pass);else set_default("");on_event(ask_password_event);
define(20,5,5,50,20,2,button,"OK");
property(def_border(1,0),NULL,NULL,WINCOLOR);on_change(terminate);
define(30,5,5,50,20,3,button,"Zru¨it");
property(def_border(1,0),NULL,NULL,WINCOLOR);on_change(terminate);
property(def_border(1,0),NULL,NULL,WINCOLOR);on_control_change(terminate_gui);
define(30,5,5,50,20,3,button,"Zru<EFBFBD>it");
property(def_border(1,0),NULL,NULL,WINCOLOR);on_control_change(terminate_gui);
redraw_window();
goto_control(10);
escape();
@ -763,7 +763,7 @@ char check_data_password(void)
if (ask_password(text,0)==0) return 0;
if (strcmp(data_password,text))
{
msg_box("Chyba!",1,"Chybn heslo! P©¡stup zam¡tnut!","OK",NULL);
msg_box("Chyba!",1,"Chybn<EFBFBD> heslo! P<><50>stup zam<61>tnut!","OK",NULL);
return 0;
}
else
@ -927,7 +927,7 @@ int main(int argc,char *argv[])
init_maps();
set_defaults();
if (load_map(filename))
msg_box(filename,'\01',"Tento soubor je buƒ ne‡iteln˜, nebo po¨kozen˜","Pokra‡ovat",NULL);
msg_box(filename,'\01',"Tento soubor je bu<EFBFBD> ne<6E>iteln<6C>, nebo po<70>kozen<65>","Pokra<EFBFBD>ovat",NULL);
if (check_password(NULL)==0)
if (ask_password(test,0)==0 || check_password(test)==0)
{
@ -937,8 +937,8 @@ int main(int argc,char *argv[])
}
if (maplen<2)
{
sel=msg_box(filename,' ',"Soubor neexistuje, bude vytvo©en nov˜. Nyn¡ je nutn nastavit z kladn¡ stˆny"
" a jin dal¨¡ parametry pro tuto mapu","Pokra‡ujem","Zav©it",NULL);
sel=msg_box(filename,' ',"Soubor neexistuje, bude vytvo<EFBFBD>en nov<6F>. Nyn<79> je nutn<74> nastavit z<>kladn<64> st<73>ny"
" a jin<EFBFBD> dal<61><6C> parametry pro tuto mapu","Pokra<EFBFBD>ujem","Zav<EFBFBD>it",NULL);
if (sel==1)
{
newmap=1;

View file

@ -34,37 +34,37 @@ static char nocenter=0;
#define MODRA RGB555(0,0,31)
char _actions []=
"< dn >\0"
"Otev©i dve©e\0"
"Zav©i dve©e\0"
"Otev©i nebo zav©i\0"
"Spusź animaci prim\0"
"Uka prim. st<73>nu\0"
"Schovej prim.st<73>nu\0"
"Uk/schov.pri.st<73>nu\0"
"Spusź animaci sek.\0"
"Uka sek. st<73>nu\0"
"Schovej sek. st<73>nu\0"
"Uk/schov.sek.st<73>nu\0"
"<<EFBFBD><EFBFBD>dn<EFBFBD>>\0"
"Otev<EFBFBD>i dve<76>e\0"
"Zav<EFBFBD>i dve<76>e\0"
"Otev<EFBFBD>i nebo zav<61>i\0"
"Spus<EFBFBD> animaci prim\0"
"Uka<EFBFBD> prim. st<73>nu\0"
"Schovej prim.st<73>nu\0"
"Uk/schov.pri.st<73>nu\0"
"Spus<EFBFBD> animaci sek.\0"
"Uka<EFBFBD> sek. st<73>nu\0"
"Schovej sek. st<73>nu\0"
"Uk/schov.sek.st<73>nu\0"
"Schovej prim.&sek.\0"
"Zobraz text\0"
"Kod.z mek (star<61>-Nepouˇvat!)\0"
"Otev©i teleport\0"
"Uzav©i teleport\0"
"Kodov<EFBFBD> z mek (log)\0"
"Kod.z<EFBFBD>mek (star<61>-Nepou<6F><75>vat!)\0"
"Otev<EFBFBD>i teleport\0"
"Uzav<EFBFBD>i teleport\0"
"Kodov<EFBFBD> z<EFBFBD>mek (log)\0"
"Konec hry\0"
"\\\0";
char chka[]={0,1,1,1,1,1,1,1,1,1,1,1,0};
char _steny2 []="Severnˇ\0V<EFBFBD>chodnˇ\0Ji\0Z padnˇ\0\\\0";
char _zivly []="Ohe¤\0Voda\0Zem<EFBFBD>\0Vzduch\0Mysl\0\\\0";
char _steny2 []="Severn<EFBFBD>\0V<EFBFBD>chodn<EFBFBD>\0Ji<EFBFBD>n<EFBFBD>\0Z<EFBFBD>padn<EFBFBD>\0\\\0";
char _zivly []="Ohe<EFBFBD>\0Voda\0Zem<EFBFBD>\0Vzduch\0Mysl\0\\\0";
char _sector_types[]=
"!Voln<6C>!\0""Normalnˇ\0""Schody\0""Lo<EFBFBD>ka na vod<6F>\0""L va\0"
"Sm<EFBFBD>r sever\0""Sm<EFBFBD>r v<>chod\0""Sm<EFBFBD>r jih\0""Sm<EFBFBD>r z pad\0""Voda\0""Sloup\0""Dira\0""Teleport\0"
"Tla‡ˇtko(norm)\0""Tla‡ˇtko(zma‡k)\0"
"Fltna (Sever)\0""Fltna (V<>chod)\0""Fltna (Jih)\0""Fltna (Z pad)\0"
"Opu¨t<EFBFBD>nˇ mapy\0""r\0""Sloup&Smrt\0""Ubˇra ivoty\0"
"!Voln<6C>!\0""Normaln<EFBFBD>\0""Schody\0""Lo<EFBFBD>ka na vod<6F>\0""L<EFBFBD>va\0"
"Sm<EFBFBD>r sever\0""Sm<EFBFBD>r v<>chod\0""Sm<EFBFBD>r jih\0""Sm<EFBFBD>r z<EFBFBD>pad\0""Voda\0""Sloup\0""Dira\0""Teleport\0"
"Tla<EFBFBD><EFBFBD>tko(norm)\0""Tla<EFBFBD><EFBFBD>tko(zma<6D>k)\0"
"Fl<EFBFBD>tna (Sever)\0""Fl<EFBFBD>tna (V<>chod)\0""Fl<EFBFBD>tna (Jih)\0""Fl<EFBFBD>tna (Z<>pad)\0"
"Opu<EFBFBD>t<EFBFBD>n<EFBFBD> mapy\0""V<EFBFBD>r\0""Sloup&Smrt\0""Ub<EFBFBD>ra <20>ivoty\0"
"\\\0";
char _type_multi_actions[]=
@ -80,82 +80,82 @@ char _type_multi_actions[]=
"\\\0";
char _typy_zbrani[]=
"Me‡ (t<>k  ostr  rovn )\0"
"Sekera (t<>k  ostr  ost.)\0"
"Kladivo (tup )\0"
"Hl\0"
"D<EFBFBD>ka (Lehk  ostr )\0"
"ˇp (st©eln )\0"
"Ostatnˇ / Spec\0"
"Me<EFBFBD> (t<><74>k<EFBFBD> ostr<74> rovn<76>)\0"
"Sekera (t<><EFBFBD>k<EFBFBD> ostr<74> ost.)\0"
"Kladivo (tup<EFBFBD>)\0"
"H<EFBFBD>l\0"
"D<EFBFBD>ka (Lehk<EFBFBD> ostr<74>)\0"
"<EFBFBD><EFBFBD>p (st<73>eln<6C>)\0"
"Ostatn<EFBFBD> / Spec\0"
"\\\0";
char _typy_veci[]=
"Nespecifikov no\0"
"Zbra¤ tv ©ˇ v tv ©\0"
"Vrhacˇ zbra¤\0"
"St©eln  zbra¤\0"
"Nespecifikov<EFBFBD>no\0"
"Zbra<EFBFBD> tv<74><76><EFBFBD> v tv<74><76>\0"
"Vrhac<EFBFBD> zbra<72>\0"
"St<EFBFBD>eln<EFBFBD> zbra<72>\0"
"Zbroj\0"
"Svitek / Hlka\0"
"Svitek / H<EFBFBD>lka\0"
"Lektvar\0"
"Voda\0"
"Jˇdlo\0"
"Speci lnˇ\0"
"J<EFBFBD>dlo\0"
"Speci<EFBFBD>ln<EFBFBD>\0"
"Runa\0"
"Penˇze\0"
"Pen<EFBFBD>ze\0"
"Svitek s textem\0"
"Prach\0"
"Ostatnˇ\0"
"Ostatn<EFBFBD>\0"
"\\\0";
char _umisteni_veci[]=
"Nikam\0"
"Zavazadlo\0"
"Na t<>lo (naho©e)\0"
"Na t<>lo (dole)\0"
"Na t<>lo (naho<EFBFBD>e)\0"
"Na t<>lo (dole)\0"
"Na hlavu\0"
"Na nohy\0"
"Kutna (na t<>lo/naho©e/dole/helma)\0"
"Kutna (na t<>lo/naho<EFBFBD>e/dole/helma)\0"
"Na krk\0"
"Do ruky\0"
"Obouru\0"
"Obouru<EFBFBD>\0"
"Prsten\0"
"›ˇp\0"
"<EFBFBD><EFBFBD>p\0"
"\\0";
char _side_flgs[]=
"Automap\0"
"Neprchozˇ(hr c)\0"
"Neprchozˇ(nestvra)\0"
"Neprchozˇ(v<>c)\0"
"Neprchozˇ(zvuk)\0"
"Nepr<EFBFBD>choz<EFBFBD>(hr<68>c)\0"
"Nepr<EFBFBD>choz<EFBFBD>(nestv<74>ra)\0"
"Nepr<EFBFBD>choz<EFBFBD>(v<>c)\0"
"Nepr<EFBFBD>choz<EFBFBD>(zvuk)\0"
"Poplach\0"
"Prchozˇ akce\0"
"Prchledn  st<73>na\0"
"Pr<EFBFBD>choz<EFBFBD> akce\0"
"Pr<EFBFBD>chledn<EFBFBD> st<73>na\0"
"Prim:Animace\0"
"Prim:Viditeln \0"
"Prim:Tam a zp<7A>t\0"
"Prim:Sm<53>r\0"
"Prim:Viditeln<EFBFBD>\0"
"Prim:Tam a zp<7A>t\0"
"Prim:Sm<53>r\0"
"Sek:Animace\0"
"Sek:Viditeln \0"
"Sek:Tam a zp<7A>t\0"
"Sek:Sm<53>r\0"
"Lev<EFBFBD> oblouk\0"
"Prav<EFBFBD> oblouk\0"
"Dva druhy st<73>n\0"
"Sek:Viditeln<EFBFBD>\0"
"Sek:Tam a zp<7A>t\0"
"Sek:Sm<53>r\0"
"Lev<EFBFBD> oblouk\0"
"Prav<EFBFBD> oblouk\0"
"Dva druhy st<73>n\0"
"Spec. mapovat\0"
"Kopˇruj p©ˇchozˇ ud lost\0"
"Po¨li jinou ud lost\0"
"Aplikuj i z druh strany\0"
"Autoanimace p©epˇna‡\0"
"Zm<EFBFBD>na automapingu\0"
"Zm<EFBFBD>na prchodnosti(hr )\0"
"Zm<EFBFBD>na prchodnosti(nestvra)\0"
"Zm<EFBFBD>na prchodnosti(v<>c)\0"
"Zm<EFBFBD>na prchodnosti(zvuk)\0"
"Tajn  st<73>na\0"
"Kop<EFBFBD>ruj p<><70>choz<6F> ud<75>lost\0"
"Po<EFBFBD>li jinou ud<75>lost\0"
"Aplikuj i z druh<EFBFBD> strany\0"
"Autoanimace p<EFBFBD>ep<EFBFBD>na<EFBFBD><EFBFBD>\0"
"Zm<EFBFBD>na automapingu\0"
"Zm<EFBFBD>na pr<EFBFBD>chodnosti(hr<68><72>)\0"
"Zm<EFBFBD>na pr<EFBFBD>chodnosti(nestv<74>ra)\0"
"Zm<EFBFBD>na pr<EFBFBD>chodnosti(v<>c)\0"
"Zm<EFBFBD>na pr<EFBFBD>chodnosti(zvuk)\0"
"Tajn<EFBFBD> st<73>na\0"
"TRUESEE (iluze)\0"
"Neviditeln  na map<61>\0"
"Potvora je ve h©e\0"
"Neviditeln<EFBFBD> na map<61>\0"
"Potvora je ve h<EFBFBD>e\0"
"Potvora je v oblasti\0"
"\\\0";
@ -918,9 +918,9 @@ void create_map_win(int xp,...)
autocenter_map();
cl[0]=0;cl[1]=0x610;
map_win=def_window(500,451,"Kreslenˇ mapy");
map_win=def_window(500,451,"Kreslen<EFBFBD> mapy");
waktual->x=7;waktual->y=2;
on_change(close_with_tool);
on_control_change(close_with_tool);
define(10,2,20,473,408,0,workspace);
property(def_border(1,0),NULL,NULL,WINCOLOR);
o_end->autoresizex=1;o_end->autoresizey=1;
@ -928,23 +928,23 @@ void create_map_win(int xp,...)
waktual->minsizx=140;
waktual->minsizy=90;
define(20,3,42,17,365,1,scroll_bar_v,-100,100,(59*8)/M_ZOOM,SCROLLBARCOL);
property(ctl,NULL,NULL,WINCOLOR);c_default(ymap_offs);on_change(scroll_workspace);
property(ctl,NULL,NULL,WINCOLOR);c_default(ymap_offs);on_control_change(scroll_workspace);
o_end->autoresizey=1;
define(21,1,20,21,17,1,scroll_button,-2,-100,"\x1e");
property(NULL,icones,&cl,WINCOLOR);on_change(scroll_support);
property(NULL,icones,&cl,WINCOLOR);on_control_change(scroll_support);
define(22,1,22,21,17,2,scroll_button,2,100,"\x1f");
property(NULL,icones,&cl,WINCOLOR);on_change(scroll_support);
property(NULL,icones,&cl,WINCOLOR);on_control_change(scroll_support);
define(30,26,3,352,15,3,scroll_bar_h,-100,100,(59*8)/M_ZOOM,SCROLLBARCOL);
property(ctl,NULL,NULL,WINCOLOR);c_default(xmap_offs);on_change(scroll_workspace);
property(ctl,NULL,NULL,WINCOLOR);c_default(xmap_offs);on_control_change(scroll_workspace);
o_end->autoresizex=1;
define(31,96,1,21,19,2,scroll_button,2,100,"\x1c");
property(NULL,icones,&cl,WINCOLOR);on_change(scroll_support);
property(NULL,icones,&cl,WINCOLOR);on_control_change(scroll_support);
define(32,1,1,21,19,3,scroll_button,-2,-100,"\x1d");
property(NULL,icones,&cl,WINCOLOR);on_change(scroll_support);
property(NULL,icones,&cl,WINCOLOR);on_control_change(scroll_support);
define(40,60,1,30,19,2,button,"/");property(NULL,icones,&cl,WINCOLOR);
on_enter(layer_show);on_exit(layer_hide);on_change(layer_plus);
on_control_enter(layer_show);on_control_exit(layer_hide);on_control_change(layer_plus);
define(50,28,1,30,19,2,button,"\\");property(NULL,icones,&cl,WINCOLOR);
on_enter(layer_show);on_exit(layer_hide);on_change(layer_minus);
on_control_enter(layer_show);on_control_exit(layer_hide);on_control_change(layer_minus);
define(60,1,1,19,19,2,resizer);
xpp=&xp;
xpp++;
@ -961,13 +961,13 @@ void create_map_win(int xp,...)
tool_bar=def_window(90,90,"Tools");
waktual->x=SCR_WIDTH_X-1-94;waktual->y=desktop_y_size-90-3;
define(20,1,55,40,34,0,toggle_button,"\xC");property(NULL,icones,&icone_color,WINCOLOR);
on_change(tool_select);c_default(tool_sel==20);
on_control_change(tool_select);c_default(tool_sel==20);
define(30,42,20,40,34,0,toggle_button,"\xD");property(NULL,icones,&icone_color,WINCOLOR);
on_change(tool_select);c_default(tool_sel==30);
on_control_change(tool_select);c_default(tool_sel==30);
define(40,42,55,40,34,0,toggle_button,"\xE");property(NULL,icones,&icone_color,WINCOLOR);
on_change(tool_select);c_default(tool_sel==40);
on_control_change(tool_select);c_default(tool_sel==40);
define(10,1,20,40,34,0,toggle_button,"\xB");property(NULL,icones,&icone_color,WINCOLOR);
on_change(tool_select);c_default(tool_sel==10);
on_control_change(tool_select);c_default(tool_sel==10);
}
if (tool_sel==10)open_draw_win();
if (tool_sel==40)open_wiz_tool();

View file

@ -236,7 +236,7 @@ void create_enemy_list()
str_add(&enemy_list,s);
}
else;
str_add(&enemy_list," -1 <nov  potvora>");
str_add(&enemy_list," -1 <nov<EFBFBD> potvora>");
}
@ -266,14 +266,14 @@ void new_mob()
}
static char nvlast[][16]=
{"S¡la","UM(%kouzlen¡)","Pohyblivost","Obratnost","Max zranˆ",
"","","Obrana(doln¡)","Obrana(Horn¡)","—tok(Doln¡)",
"—tok(Horn¡)","Ohe¤","Voda","Zemˆ","Vzduch","Mysl","ivoty Regen",
"","","Magick  s¡la(D)", "Magick  s¡la(H)","","—‡innek z sahu","*"};
{"S<EFBFBD>la","UM(%kouzlen<65>)","Pohyblivost","Obratnost","Max zran<EFBFBD>n<EFBFBD>",
"","","Obrana(doln<EFBFBD>)","Obrana(Horn<72>)","<EFBFBD>tok(Doln<6C>)",
"<EFBFBD>tok(Horn<72>)","Ohe<EFBFBD>","Voda","Zem<EFBFBD>","Vzduch","Mysl","<EFBFBD>ivoty Regen",
"","","Magick<EFBFBD> s<>la(D)", "Magick<EFBFBD> s<>la(H)","","<EFBFBD><EFBFBD>innek z<>sahu","*"};
char smery_anim[][7]=
{"Vp©ed","Vlevo","Vzad","Vpravo","—tok","Z sah"};
{"Vp<EFBFBD>ed","Vlevo","Vzad","Vpravo","<EFBFBD>tok","Z<EFBFBD>sah"};
char smery_znaky[]="FLBRCH";
char sekvence[]="0123456789ABCDEF";
@ -314,8 +314,8 @@ char load_sequence(char *mobname,int otoceni)
char text[256];
if (load_ddl_seq(st,otoceni)) return 0;
sprintf(text,"Nemohu nalezt soubor %s jen ma obsahovat sekvence animac¡ pro tuto potvoru...",s);
msg_box("Upozornˆ!",'\x1',text,"Beru na vˆdom¡",NULL);
sprintf(text,"Nemohu nalezt soubor %s jen<EFBFBD> ma obsahovat sekvence animac<61> pro tuto potvoru...",s);
msg_box("Upozorn<EFBFBD>n<EFBFBD>!",'\x1',text,"Beru na v<EFBFBD>dom<EFBFBD>",NULL);
return 1;
}
while(otoceni--)
@ -331,8 +331,8 @@ char load_sequence(char *mobname,int otoceni)
{
char text[256];
sprintf(text,"Soubor %s obsahuje chybn £daje",s);
msg_box("Upozornˆ!",'\x1',text,"Beru na vˆdom¡",NULL);
sprintf(text,"Soubor %s obsahuje chybn<EFBFBD> <20>daje",s);
msg_box("Upozorn<EFBFBD>n<EFBFBD>!",'\x1',text,"Beru na v<EFBFBD>dom<EFBFBD>",NULL);
return 1;
}
return 0;
@ -504,13 +504,13 @@ void mob_turn()
void mob_ask_delete()
{
if (msg_box("Dotaz?",'\x2',"Opravdu chce¨ potovoru vymazat ze seznam vzor? Ujisti se, e tuto potvoru nepou¡v ¨ v  dn jin mapˆ","Ano","Ne",NULL)==1)
terminate();
if (msg_box("Dotaz?",'\x2',"Opravdu chce<EFBFBD> potovoru vymazat ze seznam<61> vzor<6F>? Ujisti se, <20>e tuto potvoru nepou<6F><75>v<EFBFBD><76> v <20><>dn<64> jin<69> map<61>","Ano","Ne",NULL)==1)
terminate_gui();
o_aktual=find_object(waktual,260);
}
char *sound_ev[]=
{"P©i chzi","—tok","Z sah","Reserved"};
{"P<EFBFBD>i ch<63>zi","<EFBFBD>tok","Z<EFBFBD>sah","Reserved"};
void mob_test_sound()
{
@ -555,15 +555,15 @@ void mob_inv()
memcpy(&b1,def_border(1,0),sizeof(CTL3D));
default_font=vga_font;
memcpy(f_default,flat_color(0x0000),sizeof(charcolors));
def_dialoge(100,50,400,390,"Invent © potvory");
def_dialoge(100,50,400,390,"Invent<EFBFBD><EFBFBD> potvory");
str_insline(&ls_sorts,0,"<nic>");
for(i=0;i<MOBS_INV;i++)
{
define(i+10,10,20+i*15,250,10,0,str_line,ls_sorts);on_enter(string_list_sup);
c_default(moblist[m].inv[i]);
}
define(300,5,20,80,20,1,button,"Ok");property(&b1,NULL,NULL,WINCOLOR);on_change(terminate);
define(310,5,45,80,20,1,button,"Zru¨it");property(&b1,NULL,NULL,WINCOLOR);on_change(terminate);
define(300,5,20,80,20,1,button,"Ok");property(&b1,NULL,NULL,WINCOLOR);on_control_change(terminate_gui);
define(310,5,45,80,20,1,button,"Zru<EFBFBD>it");property(&b1,NULL,NULL,WINCOLOR);on_control_change(terminate_gui);
redraw_desktop();
escape();
if (o_aktual->id==300)
@ -576,20 +576,20 @@ static char *aff_list[]=
{
"INVIS",
"OKO ZA OKO",
"NASTAV TV<54>ž",
"NASTAV TV<54><EFBFBD>",
"ENERGY DRAIN",
"MANA SHIELD (*)",
"SANCTUARY SHIELD (1/2 zasahu)",
"HIGH SANCTUARY (omezit zasah)",
"BLIND (slepota)",
"REGENERACE (*)",
"OCHRANA PžED ZIMOU (*)",
"OCHRANA PžED <EFBFBD>REM (*)",
"OCHRANA P<EFBFBD>ED ZIMOU (*)",
"OCHRANA P<EFBFBD>ED <20><EFBFBD>REM (*)",
"KNOCK BACK",
"< volno >",
"< volno >",
"< volno >",
"Vyhrazeno pro dmona"
"Vyhrazeno pro d<EFBFBD>mona"
};
void spell_affections()
@ -607,14 +607,14 @@ void spell_affections()
{
define(i+10,10,20+i*12,250,10,0,check_box,aff_list[i]);c_default((m & (1<<i))!=0);
}
define(-1,10,230,1,1,0,label,"(*) - u nestvur neimplementov no");
define(-1,10,242,1,1,0,label,"Sanctuary bere potvo©e jen 1/2 ivot ze z sahu");
define(-1,10,254,1,1,0,label,"High Sanc. o©ez v  z sah na max 18 ivot");
define(-1,10,266,1,1,0,label,"Energy drain p©id  1/2 toho co ubere postav m");
define(-1,10,230,1,1,0,label,"(*) - u nestvur neimplementov<EFBFBD>no");
define(-1,10,242,1,1,0,label,"Sanctuary bere potvo<EFBFBD>e jen 1/2 <20>ivot<6F> ze z<>sahu");
define(-1,10,254,1,1,0,label,"High Sanc. o<EFBFBD>ez<EFBFBD>v<EFBFBD> z<>sah na max 18 <20>ivot<6F>");
define(-1,10,266,1,1,0,label,"Energy drain p<EFBFBD>id<EFBFBD> 1/2 toho co ubere postav<61>m");
define(-1,10,278,1,1,0,label,"BLIND - potvora je slepa (senceless)");
define(-1,10,290,1,1,0,label,"REGENERACE - Kad kolo +HPREG ivot");
define(300,5,20,80,20,1,button,"Ok");property(&b1,NULL,NULL,WINCOLOR);on_change(terminate);
define(310,5,45,80,20,1,button,"Zru¨it");property(&b1,NULL,NULL,WINCOLOR);on_change(terminate);
define(-1,10,290,1,1,0,label,"REGENERACE - Ka<EFBFBD>d<EFBFBD> kolo +HPREG <20>ivot<6F>");
define(300,5,20,80,20,1,button,"Ok");property(&b1,NULL,NULL,WINCOLOR);on_control_change(terminate_gui);
define(310,5,45,80,20,1,button,"Zru<EFBFBD>it");property(&b1,NULL,NULL,WINCOLOR);on_control_change(terminate_gui);
redraw_desktop();
escape();
if (o_aktual->id==300)
@ -643,13 +643,13 @@ void mob_sound_call(int mob)
list=read_directory(c,DIR_BREIF,_A_NORMAL);
read_ddl_list_wav(&list);
define(9,10,20,200,126,0,listbox,list,RGB555(31,31,31),0);
property(&b3,NULL,NULL,WINCOLOR);c_default(0);on_change(mob_test_sound);
property(&b3,NULL,NULL,WINCOLOR);c_default(0);on_control_change(mob_test_sound);
define(10,217,40,19,87,0,scroll_bar_v,0,10,1,SCROLLBARCOL);
property(&b2,NULL,NULL,WINCOLOR);
define(11,216,20,21,17,0,scroll_button,-1,0,"\x1e");
property(NULL,icones,NULL,WINCOLOR);on_change(scroll_support);
property(NULL,icones,NULL,WINCOLOR);on_control_change(scroll_support);
define(12,216,130,21,17,0,scroll_button,1,10,"\x1f");
property(NULL,icones,NULL,WINCOLOR);on_change(scroll_support);
property(NULL,icones,NULL,WINCOLOR);on_control_change(scroll_support);
for(j=0;j<MOB_SOUNDS-1;j++)
{
int z,y;
@ -661,11 +661,11 @@ void mob_sound_call(int mob)
if (z && enemy_sound!=NULL && (z<=str_count(enemy_sound)))
set_default(enemy_sound[z-1]);else set_default("");
define(j+40,245,y,20,12,0,button,"<");
property(&b1,NULL,NULL,WINCOLOR);on_change(mob_sound_copy);
property(&b1,NULL,NULL,WINCOLOR);on_control_change(mob_sound_copy);
}
define(90,5,30,100,10,2,check_box,"Loop (WALK!)");c_default((moblist[i].vlajky & 0x40)!=0);
define(100,5,5,80,20,2,button,"Ok");on_change(terminate); property(&b1,NULL,NULL,WINCOLOR);
define(110,90,5,80,20,2,button,"Zru¨it");on_change(terminate); property(&b1,NULL,NULL,WINCOLOR);
define(100,5,5,80,20,2,button,"Ok");on_control_change(terminate_gui); property(&b1,NULL,NULL,WINCOLOR);
define(110,90,5,80,20,2,button,"Zru<EFBFBD>it");on_control_change(terminate_gui); property(&b1,NULL,NULL,WINCOLOR);
redraw_window();
escape();
if (o_aktual->id==100)
@ -708,17 +708,17 @@ static void open_dialog_edit_box()
memcpy(&b3,def_border(6,WINCOLOR),sizeof(CTL3D));
default_font=vga_font;
memcpy(f_default,flat_color(0x0000),sizeof(charcolors));
def_dialoge(100,250,250,180,"P©i©aƒ dialog");
def_dialoge(100,250,250,180,"P<EFBFBD>i<EFBFBD>a<EFBFBD> dialog");
define(9,10,20,200,126,0,listbox,dlg_names,RGB555(31,31,31),0);
property(&b3,NULL,NULL,WINCOLOR);c_default(pgf2name(j));
define(10,217,40,19,87,0,scroll_bar_v,0,10,1,SCROLLBARCOL);
property(&b2,NULL,NULL,WINCOLOR);
define(11,216,20,21,17,0,scroll_button,-1,0,"\x1e");
property(NULL,icones,NULL,WINCOLOR);on_change(scroll_support);
property(NULL,icones,NULL,WINCOLOR);on_control_change(scroll_support);
define(12,216,130,21,17,0,scroll_button,1,10,"\x1f");
property(NULL,icones,NULL,WINCOLOR);on_change(scroll_support);
define(100,5,5,80,20,2,button,"Ok");on_change(terminate); property(&b1,NULL,NULL,WINCOLOR);
define(110,90,5,80,20,2,button,"Zru¨it");on_change(terminate); property(&b1,NULL,NULL,WINCOLOR);
property(NULL,icones,NULL,WINCOLOR);on_control_change(scroll_support);
define(100,5,5,80,20,2,button,"Ok");on_control_change(terminate_gui); property(&b1,NULL,NULL,WINCOLOR);
define(110,90,5,80,20,2,button,"Zru<EFBFBD>it");on_control_change(terminate_gui); property(&b1,NULL,NULL,WINCOLOR);
redraw_window();
escape();
if (o_aktual->id==100)
@ -753,7 +753,7 @@ void edit_mob(int i)
define(200,310,35,290,1,0,pcx_view);set_default("_");
define(205,310,35,290,370,0,symetry);c_default(moblist[i].adjusting[0]);
define(207,5,20,120,20,1,input_line,20);set_default("");
define(-1,190,20,100,12,0,label,"Jmno potvory");
define(-1,190,20,100,12,0,label,"Jm<EFBFBD>no potvory");
define(10,300,20,200,12,0,input_line,31);set_default(moblist[i].name);property(def_border(2,WINCOLOR),NULL,NULL,WINCOLOR);
z=0;b1=def_border(5,WINCOLOR);
for(y=20;y<380;)
@ -761,7 +761,7 @@ void edit_mob(int i)
if (nvlast[z][0])
{
define(-1,5,y,140,12,0,label,nvlast[z]);
define(z+20,120,y,60,12,0,input_line,8,-32767,32767,"%6d");set_default(strs(moblist[i].vlastnosti[z]));on_exit(test_int);
define(z+20,120,y,60,12,0,input_line,8,-32767,32767,"%6d");set_default(strs(moblist[i].vlastnosti[z]));on_control_exit(test_int);
property(b1,NULL,NULL,WINCOLOR);
y+=15;
}
@ -769,69 +769,69 @@ void edit_mob(int i)
if (nvlast[z][0]=='*') break;
}
y+=15;
define(-1,5,y,140,12,0,label,"ivel:");
define(-1,5,y,140,12,0,label,"<EFBFBD>ivel:");
define(102,120,y,60,12,0,str_line,zivly);c_default(moblist[i].vlastnosti[VLS_MGZIVEL]);on_enter(string_list_sup);property(b1,NULL,NULL,WINCOLOR);y+=15;
define(-1,5,y,140,12,0,label,"Jmno grafiky");
define(100,120,y,60,12,0,input_line,6);set_default(moblist[i].mobs_name);property(b1,NULL,NULL,WINCOLOR);on_exit(check_mobs_name);y+=15;
define(-1,5,y,140,12,0,label,"Jm<EFBFBD>no grafiky");
define(100,120,y,60,12,0,input_line,6);set_default(moblist[i].mobs_name);property(b1,NULL,NULL,WINCOLOR);on_control_exit(check_mobs_name);y+=15;
define(-1,5,y,140,12,0,label,"Rychlost");
define(101,130,y,30,12,0,input_line,3,0,128,"%3d");set_default(strs(moblist[i].speed));on_exit(test_int);property(b1,NULL,NULL,WINCOLOR);y+=15;
define(-1,5,y,140,12,0,label,"ance £tˆku");
define(103,130,y,30,12,0,input_line,3,0,255,"%3d");set_default(strs(moblist[i].flee_num));on_exit(test_int);property(b1,NULL,NULL,WINCOLOR);y+=15;
define(101,130,y,30,12,0,input_line,3,0,128,"%3d");set_default(strs(moblist[i].speed));on_control_exit(test_int);property(b1,NULL,NULL,WINCOLOR);y+=15;
define(-1,5,y,140,12,0,label,"<EFBFBD>ance <20>t<EFBFBD>ku");
define(103,130,y,30,12,0,input_line,3,0,255,"%3d");set_default(strs(moblist[i].flee_num));on_control_exit(test_int);property(b1,NULL,NULL,WINCOLOR);y+=15;
define(-1,5,y,140,12,0,label,"Kouzlo");
define(104,130,y,30,12,0,input_line,3,0,255,"%3d");set_default(strs(moblist[i].casting));on_exit(test_int);property(b1,NULL,NULL,WINCOLOR);y+=15;
define(104,130,y,30,12,0,input_line,3,0,255,"%3d");set_default(strs(moblist[i].casting));on_control_exit(test_int);property(b1,NULL,NULL,WINCOLOR);y+=15;
define(-1,5,y,140,12,0,label,"Specproc");
define(105,120,y,60,12,0,str_line,mob_procs);c_default(moblist[i].specproc);on_enter(string_list_sup);property(b1,NULL,NULL,WINCOLOR);y+=15;
y=260;define(-1,220,248,140,12,0,label,"Poet anim.");
y=260;define(-1,220,248,140,12,0,label,"Po<EFBFBD>et anim.");
for(z=0;z<6;z++)
{
define(-1,190,y,50,12,0,label,smery_anim[z]);
define(z+120,260,y,20,12,0,input_line,2,!z*2,15,"%2d");set_default(strs(moblist[i].anim_counts[z]));on_exit(test_int);
define(z+120,260,y,20,12,0,input_line,2,!z*2,15,"%2d");set_default(strs(moblist[i].anim_counts[z]));on_control_exit(test_int);
property(b1,NULL,NULL,WINCOLOR);
y+=15;
}
define(127,285,320,20,12,0,input_line,2,1,15,"%2d");set_default(strs(moblist[i].hit_pos));on_exit(test_int);
define(127,285,320,20,12,0,input_line,2,1,15,"%2d");set_default(strs(moblist[i].hit_pos));on_control_exit(test_int);
property(b1,NULL,NULL,WINCOLOR);
define(430,190,350,50,10,0,check_box,"Chod¡");
define(440,190,362,50,10,0,check_box,"—to‡¡");
define(450,190,374,50,10,0,check_box,"Sly¨¡");
define(460,250,350,100,10,0,check_box,"Jeden na pol¡‡ku");
define(470,250,362,60,10,0,check_box,"Str ce");
define(430,190,350,50,10,0,check_box,"Chod<EFBFBD>");
define(440,190,362,50,10,0,check_box,"<EFBFBD>to<EFBFBD><EFBFBD>");
define(450,190,374,50,10,0,check_box,"Sly<EFBFBD><EFBFBD>");
define(460,250,350,100,10,0,check_box,"Jeden na pol<EFBFBD><EFBFBD>ku");
define(470,250,362,60,10,0,check_box,"Str<EFBFBD><EFBFBD>ce");
define(480,250,374,40,10,0,check_box,"Sebere");
define(490,250,386,40,10,0,check_box,"Sb¡r ");
define(500,190,386,50,10,0,check_box,"St©¡l¡");
define(510,20,438,50,10,0,check_box,"Dialog.");c_default(moblist[i].dialog>=0);on_change(open_dialog_edit_box);
define(490,250,386,40,10,0,check_box,"Sb<EFBFBD>r<EFBFBD>");
define(500,190,386,50,10,0,check_box,"St<EFBFBD><EFBFBD>l<EFBFBD>");
define(510,20,438,50,10,0,check_box,"Dialog.");c_default(moblist[i].dialog>=0);on_control_change(open_dialog_edit_box);
define(-1,190,50,50,12,0,label,"Dohled");
define(-1,190,65,50,12,0,label,"Dosah");
define(-1,190,80,50,12,0,label,"Expy:");
define(-1,190,95,50,12,0,label,"Bonus:");
define(-1,190,110,50,12,0,label,"Pen¡ze:");
define(160,260,50,30,12,0,input_line,3,0,255,"%3d");set_default(strs(moblist[i].dohled));on_exit(test_int);property(b1,NULL,NULL,WINCOLOR);
define(170,260,65,30,12,0,input_line,3,0,255,"%3d");set_default(strs(moblist[i].dosah));on_exit(test_int);property(b1,NULL,NULL,WINCOLOR);
define(175,250,80,55,12,0,input_line,6,0,999999,"%6d");set_default(strs(moblist[i].experience));on_exit(test_int);property(b1,NULL,NULL,WINCOLOR);
define(176,250,95,55,12,0,input_line,6,0,65535,"%6d");set_default(strs(moblist[i].bonus));on_exit(test_int);property(b1,NULL,NULL,WINCOLOR);
define(177,255,110,50,12,0,input_line,6,0,65535,"%5d");set_default(strs(moblist[i].money));on_exit(test_int);property(b1,NULL,NULL,WINCOLOR);
define(-1,190,110,50,12,0,label,"Pen<EFBFBD>ze:");
define(160,260,50,30,12,0,input_line,3,0,255,"%3d");set_default(strs(moblist[i].dohled));on_control_exit(test_int);property(b1,NULL,NULL,WINCOLOR);
define(170,260,65,30,12,0,input_line,3,0,255,"%3d");set_default(strs(moblist[i].dosah));on_control_exit(test_int);property(b1,NULL,NULL,WINCOLOR);
define(175,250,80,55,12,0,input_line,6,0,999999,"%6d");set_default(strs(moblist[i].experience));on_control_exit(test_int);property(b1,NULL,NULL,WINCOLOR);
define(176,250,95,55,12,0,input_line,6,0,65535,"%6d");set_default(strs(moblist[i].bonus));on_control_exit(test_int);property(b1,NULL,NULL,WINCOLOR);
define(177,255,110,50,12,0,input_line,6,0,65535,"%5d");set_default(strs(moblist[i].money));on_control_exit(test_int);property(b1,NULL,NULL,WINCOLOR);
define(180,0,0,0,0,0,value_store,4);c_default(0);//cislo_animace
define(185,0,0,0,0,0,value_store,4);c_default(0);//cislo_pozice
define(190,0,0,0,0,0,value_store,4);c_default(i);//cislo_i
b1=def_border(1,0);
define(210,190,144,80,20,0,button,"Dal¨¡ >>");property(b1,NULL,NULL,WINCOLOR);on_change(mob_next);
define(220,190,166,80,20,0,button,"Otoit");property(b1,NULL,NULL,WINCOLOR);on_change(mob_turn);
define(230,190,188,80,20,0,button,"Test");property(b1,NULL,NULL,WINCOLOR);on_change(play_mob);
define(240,84,2,80,20,2,button,"Zru¨it");property(b1,NULL,NULL,WINCOLOR);on_change(terminate);
define(250,2,2,80,20,2,button,"Ok");property(b1,NULL,NULL,WINCOLOR);on_change(terminate);
define(260,166,2,80,20,2,button,"Vymazat");property(b1,NULL,NULL,WINCOLOR);on_change(mob_ask_delete);
define(270,2,24,80,20,2,button,"Zvuky");property(b1,NULL,NULL,WINCOLOR);on_change(mob_sound);
define(280,84,24,80,20,2,button,"Invent ©");property(b1,NULL,NULL,WINCOLOR);on_change(mob_inv);
define(290,166,24,80,20,2,button,"Aff");property(b1,NULL,NULL,WINCOLOR);on_change(spell_affections);
define(210,190,144,80,20,0,button,"Dal<EFBFBD><EFBFBD> >>");property(b1,NULL,NULL,WINCOLOR);on_control_change(mob_next);
define(220,190,166,80,20,0,button,"Oto<EFBFBD>it");property(b1,NULL,NULL,WINCOLOR);on_control_change(mob_turn);
define(230,190,188,80,20,0,button,"Test");property(b1,NULL,NULL,WINCOLOR);on_control_change(play_mob);
define(240,84,2,80,20,2,button,"Zru<EFBFBD>it");property(b1,NULL,NULL,WINCOLOR);on_control_change(terminate_gui);
define(250,2,2,80,20,2,button,"Ok");property(b1,NULL,NULL,WINCOLOR);on_control_change(terminate_gui);
define(260,166,2,80,20,2,button,"Vymazat");property(b1,NULL,NULL,WINCOLOR);on_control_change(mob_ask_delete);
define(270,2,24,80,20,2,button,"Zvuky");property(b1,NULL,NULL,WINCOLOR);on_control_change(mob_sound);
define(280,84,24,80,20,2,button,"Invent<EFBFBD><EFBFBD>");property(b1,NULL,NULL,WINCOLOR);on_control_change(mob_inv);
define(290,166,24,80,20,2,button,"Aff");property(b1,NULL,NULL,WINCOLOR);on_control_change(spell_affections);
define(-1,190,220,1,1,0,label,"Pals:");
define(520,230,220,30,12,0,input_line,3,-127,127,"%3d");set_default(strs(moblist[i].paletts_count));on_exit(test_int);property(b1,NULL,NULL,WINCOLOR);
define(520,230,220,30,12,0,input_line,3,-127,127,"%3d");set_default(strs(moblist[i].paletts_count));on_control_exit(test_int);property(b1,NULL,NULL,WINCOLOR);
for(y=0;y<6*16;y++) {define(300+y,0,0,0,0,0,value_store,4);c_default(moblist[i].adjusting[y]);}
define(630,0,0,0,0,0,value_store,1);c_default(0);//IN_BATTLE;
define(640,190,400,50,10,0,check_box,"Prchoz¡");
define(650,190,412,50,10,0,check_box,"C¡t¡");
define(640,190,400,50,10,0,check_box,"Pr<EFBFBD>choz<EFBFBD>");
define(650,190,412,50,10,0,check_box,"C<EFBFBD>t<EFBFBD>");
define(660,190,424,100,10,0,check_box,"Astral (wind)");
define(670,300,400,100,10,0,check_box,"Reload mob");
define(680,300,412,100,10,0,check_box,"Kouzl¡");
define(680,300,412,100,10,0,check_box,"Kouzl<EFBFBD>");
define(700,0,0,0,0,0,value_store,4);c_default(moblist[i].vlastnosti[VLS_KOUZLA]);
movesize_win(waktual,0,0,DxGetResX(),DxGetResY());
check_mobs_name();
@ -865,7 +865,7 @@ void edit_mob(int i)
for(z=0;z<6*16;z++) p->adjusting[z]=f_get_value(0,300+z);
if (p->name[0]=='\0')
{
msg_box("Doporu‡en¡",' ',"Bylo by dobr potvoru nazvat, kvuli snadn manipulaci","Ok",NULL);
msg_box("Doporu<EFBFBD>en<EFBFBD>",' ',"Bylo by dobr<EFBFBD> potvoru nazvat, kvuli snadn<64> manipulaci","Ok",NULL);
strcpy(p->name,p->mobs_name);
}
p->lives=p->vlastnosti[VLS_MAXHIT];
@ -889,7 +889,7 @@ void edit_mob(int i)
{
redraw=1;
jdi_na_sektor(j);
if (msg_box("Potvora je v mapˆ. Vymazat?",'\0x2',"Chce¨ vymazat tuto potvoru a v¨echny dal¨¡?","Ano","Ne",NULL)==2) return;
if (msg_box("Potvora je v map<EFBFBD>. Vymazat?",'\0x2',"Chce<EFBFBD> vymazat tuto potvoru a v<>echny dal<61><6C>?","Ano","Ne",NULL)==2) return;
break;
}
for(j=0;j<maplen;j++) if ((mob_map[j] & 0x3fff)==i) mob_map[j]=-1;
@ -957,13 +957,13 @@ void enemy_window()
property(b1,NULL,NULL,WINCOLOR);
o_end->autoresizey=1;
define(31,3,20,19,15,1,scroll_button,-1,0,"\x1e");
property(NULL,icones,NULL,WINCOLOR);on_change(scroll_support);
property(NULL,icones,NULL,WINCOLOR);on_control_change(scroll_support);
define(32,3,68,19,15,2,scroll_button,1,10,"\x1f");
property(NULL,icones,NULL,WINCOLOR);on_change(scroll_support);
define(40,5,5,60,20,3,button,"Vymazat");property(b1,NULL,NULL,WINCOLOR);on_change(vymazat_moba);
define(50,5,30,60,20,3,button,"Um¡stit");property(b1,NULL,NULL,WINCOLOR);on_change(umistit_moba);
define(60,70,5,60,20,3,button,"Novou");property(b1,NULL,NULL,WINCOLOR);on_change(new_mob);
define(70,70,30,60,20,3,button,"Opravit");property(b1,NULL,NULL,WINCOLOR);on_change(edit_mob_event);
property(NULL,icones,NULL,WINCOLOR);on_control_change(scroll_support);
define(40,5,5,60,20,3,button,"Vymazat");property(b1,NULL,NULL,WINCOLOR);on_control_change(vymazat_moba);
define(50,5,30,60,20,3,button,"Um<EFBFBD>stit");property(b1,NULL,NULL,WINCOLOR);on_control_change(umistit_moba);
define(60,70,5,60,20,3,button,"Novou");property(b1,NULL,NULL,WINCOLOR);on_control_change(new_mob);
define(70,70,30,60,20,3,button,"Opravit");property(b1,NULL,NULL,WINCOLOR);on_control_change(edit_mob_event);
movesize_win(waktual,SCR_WIDTH_X,0,170,SCR_WIDTH_Y-20);
redraw_window();
}
@ -1051,7 +1051,7 @@ void *save_mob_map(long *size)
for(i=0,c=0;i<maplen;i++)
if (mob_map[i]!=-1) c++;
if (!c) return NULL;
if (c>255) msg_box("Omezen¡",'\x1',"Nelze m¡t v jedn mapˆ v¡c potvor ne 255. MAPEDIT nˆkter nenahraje.","Ok",NULL);
if (c>255) msg_box("Omezen<EFBFBD>",'\x1',"Nelze m<EFBFBD>t v jedn<64> map<61> v<>c potvor ne<6E> 255. MAPEDIT n<>kter<65> nenahraje.","Ok",NULL);
p=data=getmem(*size=c*4);
for(i=0;i<maplen;i++)
if (mob_map[i]!=-1)
@ -1094,8 +1094,8 @@ static void check_correct_sounds()
if (err)
{
char text[200];
sprintf(text,"Nestvra \"%s\" m  ¨patnou referenci zvuku! Poloka bude vynulov na!",moblist[i].name);
if (msg_box("Chybn  reference",'\x1',text,"Pokraovat","Opravit",NULL)==2) mob_sound_call(i);
sprintf(text,"Nestv<EFBFBD>ra \"%s\" m<> <20>patnou referenci zvuku! Polo<6C>ka bude vynulov<6F>na!",moblist[i].name);
if (msg_box("Chybn<EFBFBD> reference",'\x1',text,"Pokra<EFBFBD>ovat","Opravit",NULL)==2) mob_sound_call(i);
}
}
}
@ -1136,7 +1136,7 @@ void load_sound_dat(void *p,long siz)
c=strchr(c,0);
if (c==NULL)
{
msg_box("Load Error",'\x1',"Chyba nastala p©i na‡¡t n¡ souboru SOUND.DAT: Nekonzistetn¡ £daje. Nˆkter zvuky nebudou p©i©azeny!","Ok",NULL);
msg_box("Load Error",'\x1',"Chyba nastala p<EFBFBD>i na<6E><61>t<EFBFBD>n<EFBFBD> souboru SOUND.DAT: Nekonzistetn<74> <20>daje. N<>kter<65> zvuky nebudou p<>i<EFBFBD>azeny!","Ok",NULL);
break;
}
c++;

View file

@ -239,7 +239,7 @@ static void clear_switchs()
}
#define ZMENIT "Zmˆnit grafiku"
#define ZMENIT "Zm<EFBFBD>nit grafiku"
static void zmenit()
{
int i,c,f;
@ -255,7 +255,7 @@ static void zmenit()
c=f_get_value(0,140);
if (c==0)
{
msg_box(ZMENIT,1,"Mus¡¨ vybrat nˆjakou grafiku. Klepni tam, jak je naps no <nic>",MSB_OK);
msg_box(ZMENIT,1,"Mus<EFBFBD><EFBFBD> vybrat n<>jakou grafiku. Klepni tam, jak je naps<70>no <nic>",MSB_OK);
return;
}
load_side_script(script_name);
@ -263,13 +263,13 @@ static void zmenit()
i=change_side(f_get_value(0,130),c-1,get_bit_fields(0,160,3),f-1,name);
if (i<-1)
{
msg_box(ZMENIT,1,"Program odm¡tl (z nˆjak˜ch dvod) akci provst. Zkontrolujte v¨echny £daje",MSB_OK);
msg_box(ZMENIT,1,"Program odm<EFBFBD>tl (z n<>jak<61>ch d<>vod<6F>) akci prov<6F>st. Zkontrolujte v<>echny <20>daje",MSB_OK);
discharge_side_script();
return;
}
if (i==-1)
{
msg_box(ZMENIT,1,"Nepovolen  kombinace pol¡ \"Hlavn¡\", \"Lev \" a \"Prav \"",MSB_OK);
msg_box(ZMENIT,1,"Nepovolen<EFBFBD> kombinace pol<6F> \"Hlavn<EFBFBD>\", \"Lev<EFBFBD>\" a \"Prav<EFBFBD>\"",MSB_OK);
discharge_side_script();
return;
}
@ -291,14 +291,14 @@ static void vymazat()
if (pos==0)
{
msg_box(VYMAZAT,1,"Mus¡¨ vybrat nˆjakou grafiku. Klepni tam, jak je naps no <nic>",MSB_OK);
msg_box(VYMAZAT,1,"Mus<EFBFBD><EFBFBD> vybrat n<>jakou grafiku. Klepni tam, jak je naps<70>no <nic>",MSB_OK);
return;
}
if (msg_box(VYMAZAT,1,"Vymazat grafiku v‡etnˆ p©¡padn˜ch animac¡?",MSB_ANONE)==2) return;
if (msg_box(VYMAZAT,1,"Vymazat grafiku v<EFBFBD>etn<EFBFBD> p<><70>padn<64>ch animac<61>?",MSB_ANONE)==2) return;
load_side_script(script_name);
if (delete_side(f_get_value(0,130),pos-1))
{
msg_box(VYMAZAT,1,"Program odm¡tl vymazat grafiky ze scriptu, nastala nˆjak  chyba.",MSB_OK);
msg_box(VYMAZAT,1,"Program odm<EFBFBD>tl vymazat grafiky ze scriptu, nastala n<>jak<61> chyba.",MSB_OK);
discharge_side_script();
return;
}
@ -306,18 +306,18 @@ static void vymazat()
refresh_scrs();
}
#define ZALOZIT "Zaloit grafiku"
#define ZALOZIT "Zalo<EFBFBD>it grafiku"
static void add_graphics()
{
char name[200];
int c,d;
get_value(0,100,name);
if (name[0]==0) {msg_box(ZALOZIT,1,"Mus¡¨ vepsat nˆjak jmno!",MSB_OK);return;}
if (name[0]==0) {msg_box(ZALOZIT,1,"Mus<EFBFBD><EFBFBD> vepsat n<>jak<61> jm<6A>no!",MSB_OK);return;}
load_side_script(script_name);
if ((c=add_side(f_get_value(0,130),name,vals(110)))==-1)
{
msg_box(ZALOZIT,1,"Nelze zaloit novou grafiku! P©¡li mnoho grafik, nebo nastala jin  chyba.",MSB_OK);
msg_box(ZALOZIT,1,"Nelze zalo<EFBFBD>it novou grafiku! P<><50>li<6C> mnoho grafik, nebo nastala jin<69> chyba.",MSB_OK);
discharge_side_script();
}
else save_side_script(script_name);
@ -350,12 +350,12 @@ static void nahled()
list=f_get_value(0,130);pos=f_get_value(0,140)-1+vals(150)-1;
if (pos<0)
{
msg_box("N hled",1,"Nen¡ co zobrazit!",MSB_OK);
msg_box("N<EFBFBD>hled",1,"Nen<EFBFBD> co zobrazit!",MSB_OK);
return;
}
load_side_script(script_name);
tady:
def_dialoge(2,2,630,440,"N hled grafiky");
def_dialoge(2,2,630,440,"N<EFBFBD>hled grafiky");
switch (list)
{
case 0: p1=def_nahled(10,5,25,get_side_name(list,pos,1));
@ -372,9 +372,9 @@ static void nahled()
swap=1;
break;
}
define(-1,5,5,80,20,2,button,"Ok");on_change(terminate);
define(110,100,5,80,20,2,button,">>");on_change(terminate);
define(120,190,5,80,20,2,button,"<<");on_change(terminate);
define(-1,5,5,80,20,2,button,"Ok");on_control_change(terminate_gui);
define(110,100,5,80,20,2,button,">>");on_control_change(terminate_gui);
define(120,190,5,80,20,2,button,"<<");on_control_change(terminate_gui);
redraw_window();
p4=get_side_name(list,pos,0);
if (p4!=NULL) set_enable(0,120,p4[0]=='*' && pos>0);
@ -404,51 +404,51 @@ void pcxviewer()
memcpy(&b1,def_border(1,0),sizeof(CTL3D));
memcpy(&b2,def_border(5,WINCOLOR),sizeof(CTL3D));
memcpy(&b3,def_border(6,WINCOLOR),sizeof(CTL3D));
pcxview_win=def_window(635,440,"Prohl¡e‡ obrazk PCX");
pcxview_win=def_window(635,440,"Prohl<EFBFBD><EFBFBD>e<EFBFBD> obrazk<7A> PCX");
default_font=vga_font;
memcpy(f_default,flat_color(0x0000),sizeof(charcolors));
on_change(close_pcx_window);
on_control_change(close_pcx_window);
define(9,10,20,110,376,0,listbox,ls,0x7fff,0);on_change(read_pcx);
define(9,10,20,110,376,0,listbox,ls,0x7fff,0);on_control_change(read_pcx);
property(&b3,NULL,NULL,WINCOLOR);c_default(0);
define(10,126,40,21,337,0,scroll_bar_v,0,10,1,0x0200);
property(&b2,NULL,NULL,WINCOLOR);
define(11,126,20,21,17,0,scroll_button,-1,0,"\x1e");
property(&b1,icones,NULL,WINCOLOR);on_change(scroll_support);
property(&b1,icones,NULL,WINCOLOR);on_control_change(scroll_support);
define(12,126,380,21,17,0,scroll_button,1,10,"\x1f");
property(&b1,icones,NULL,WINCOLOR);on_change(scroll_support);
property(&b1,icones,NULL,WINCOLOR);on_control_change(scroll_support);
define(-1,175,20,1,1,0,label,"Cesta:");
define(20,175,32,320,12,0,input_line,240);set_default(basic_path);
property(&b3,NULL,NULL,WINCOLOR);on_exit(get_directory);
property(&b3,NULL,NULL,WINCOLOR);on_control_exit(get_directory);
define(30,175,50,2,2,0,picture2);c_default(0);
define(40,10,10,80,10,3,check_box,"Otoit");c_default(swap);on_change(change_swap);
define(45,10,25,160,10,3,check_box,"Grafika Skeldalu");c_default(0);on_change(get_directory);
define(40,10,10,80,10,3,check_box,"Oto<EFBFBD>it");c_default(swap);on_control_change(change_swap);
define(45,10,25,160,10,3,check_box,"Grafika Skeldalu");c_default(0);on_control_change(get_directory);
define(-1,5,80,110,75,1,label,"");property(&b2,NULL,NULL,WINCOLOR);
define(-1,10,80,100,70,1,label,"Nov  grafika");
define(-1,10,80,100,70,1,label,"Nov<EFBFBD> grafika");
define(100,10,100,100,10,1,input_line,50);set_default("");property(&b3,NULL,NULL,WINCOLOR);
define(-1,10,115,100,12,1,label,"Sn¡mk");
define(-1,10,115,100,12,1,label,"Sn<EFBFBD>mk<EFBFBD>");
define(110,10,115,30,10,1,input_line,20,1,15,"%2d");set_default(strs(1));property(&b3,NULL,NULL,WINCOLOR);
on_exit(test_int);
define(120,10,130,60,20,1,button,"Zaloit");property(&b1,NULL,NULL,WINCOLOR);
on_change(add_graphics);
define(130,10,160,110,50,1,radio_butts,4,"Stˆna","Podlaha","Strop","Oblouk");c_default(0);on_change(refresh_scrs);
on_control_exit(test_int);
define(120,10,130,60,20,1,button,"Zalo<EFBFBD>it");property(&b1,NULL,NULL,WINCOLOR);
on_control_change(add_graphics);
define(130,10,160,110,50,1,radio_butts,4,"St<EFBFBD>na","Podlaha","Strop","Oblouk");c_default(0);on_control_change(refresh_scrs);
define(-1,5,230,110,110,1,label,"");property(&b2,NULL,NULL,WINCOLOR);
define(-1,10,230,100,10,1,label,"Vyber grafiku:");
define(140,10,255,100,10,1,str_line,side_names);on_enter(string_list_sup);c_default(0);property(&b2,NULL,NULL,WINCOLOR);
define(-1,10,270,100,12,1,label,"Sn¡mek");
define(-1,10,270,100,12,1,label,"Sn<EFBFBD>mek");
define(150,10,270,30,12,1,input_line,20,1,15,"%2d");set_default(strs(1));property(&b3,NULL,NULL,WINCOLOR);
on_exit(test_int);
define(160,10,300,100,10,1,check_box,"Hlavn¡");c_default(0);on_change(clear_switchs);
define(170,10,312,100,10,1,check_box,"Lev ");c_default(0);on_change(clear_switchs);
define(180,10,324,100,10,1,check_box,"Prav ");c_default(0);on_change(clear_switchs);
define(190,20,345,80,20,1,button,"P©i©adit");property(&b1,NULL,NULL,WINCOLOR);on_change(zmenit);
define(200,20,370,80,20,1,button,"Vymazat");property(&b1,NULL,NULL,WINCOLOR);on_change(vymazat);
define(200,20,395,80,20,1,button,"N hled");property(&b1,NULL,NULL,WINCOLOR);on_change(nahled);
on_control_exit(test_int);
define(160,10,300,100,10,1,check_box,"Hlavn<EFBFBD>");c_default(0);on_control_change(clear_switchs);
define(170,10,312,100,10,1,check_box,"Lev<EFBFBD>");c_default(0);on_control_change(clear_switchs);
define(180,10,324,100,10,1,check_box,"Prav<EFBFBD>");c_default(0);on_control_change(clear_switchs);
define(190,20,345,80,20,1,button,"P<EFBFBD>i<EFBFBD>adit");property(&b1,NULL,NULL,WINCOLOR);on_control_change(zmenit);
define(200,20,370,80,20,1,button,"Vymazat");property(&b1,NULL,NULL,WINCOLOR);on_control_change(vymazat);
define(200,20,395,80,20,1,button,"N<EFBFBD>hled");property(&b1,NULL,NULL,WINCOLOR);on_control_change(nahled);
define(-1,130,20,1,400,1,label,"");property(def_border(4,WINCOLOR),NULL,NULL,WINCOLOR);
define(-1,100,30,1,1,1,label,"Tvrce");
define(-1,100,45,1,1,1,label,"grafick˜ch");
define(-1,100,60,1,1,1,label,"script");
define(-1,100,30,1,1,1,label,"Tv<EFBFBD>rce");
define(-1,100,45,1,1,1,label,"grafick<EFBFBD>ch");
define(-1,100,60,1,1,1,label,"script<EFBFBD>");
}
else
{

View file

@ -163,7 +163,7 @@ void strlist_event(EVENT_MSG *msg,OBJREC *o)
i++;
}
*d=i;
terminate();
terminate_gui();
}
}
if (msg->msg==E_CONTROL)
@ -232,16 +232,16 @@ int string_list(char *c,int akt)
def_window(WLISTX,WLISTY,"Vyber");
waktual->x=x1;
waktual->y=y1;
on_change(terminate);
on_control_change(terminate_gui);
set_window_modal();
define(19,5,20,WLISTX-30,WLISTY-20,0,listbox,c,RGB555(31,31,31),0);c_default(akt);
on_change(terminate);
on_control_change(terminate_gui);
define(20,3,42,17,WLISTY-64,1,scroll_bar_v,0,1,18,SCROLLBARCOL);
property(ctl,NULL,NULL,WINCOLOR);c_default(0);
define(21,1,20,21,17,1,scroll_button,-1,0,"\x1e");
property(NULL,icones,&cl,WINCOLOR);on_change(scroll_support);
property(NULL,icones,&cl,WINCOLOR);on_control_change(scroll_support);
define(22,1,1,21,17,2,scroll_button,1,1,"\x1f");
property(NULL,icones,&cl,WINCOLOR);on_change(scroll_support);
property(NULL,icones,&cl,WINCOLOR);on_control_change(scroll_support);
redraw_window();
send_message(E_GUI,19,E_CONTROL,2);
redraw_window();

File diff suppressed because it is too large Load diff

View file

@ -63,7 +63,7 @@ static void f10exit()
do
{
c=*(int*)task_wait_event(E_KEYBOARD);
if ((c & 0xff)==0 && (c>>8)=='D') terminate();
if ((c & 0xff)==0 && (c>>8)=='D') terminate_gui();
if ((c & 0xff)==0 && (c>>8)=='C')
{
done_mysky();
@ -122,7 +122,7 @@ long def_window(word xs,word ys,char *name)
if (xs>=70)
{
define(1,1,1,19,16,1,button,"\x0f");
property(NULL,icones,&icone_color,WINCOLOR);on_change(close_current);
property(NULL,icones,&icone_color,WINCOLOR);on_control_change(close_current);
}
return q;
}
@ -149,10 +149,10 @@ int def_dialoge(word x,word y,word xs, word ys, char *name,char modal)
static void display_progress(void)
{
def_dialoge(10,300,620,80,"Na‡¡t m informace o filmu...",1);
def_dialoge(10,300,620,80,"Na<EFBFBD><EFBFBD>t<EFBFBD>m informace o filmu...",1);
define(10,10,20,600,30,0,done_bar,100);
property(def_border(3,WINCOLOR),NULL,flat_color(0x2e0),WINCOLOR);
define(30,5,5,80,20,2,button,"Konec");on_change(terminate);
define(30,5,5,80,20,2,button,"Konec");on_control_change(terminate_gui);
property(def_border(1,0),vga_font,flat_color(0),BUTTONCOLOR);
c_default(0);
redraw_window();
@ -222,11 +222,11 @@ void init_desktop(void)
define(5,1,1,14,14,1,color_box);c_default(LABELCOLOR);
define(10,2,20,320,180,0,pic_viewer);c_default(0);
define(20,26,4,271,17,3,scroll_bar_h,0,total_frames-1,total_frames/16,0x0200);
property(def_border(3,WINCOLOR),NULL,NULL,WINCOLOR);c_default(0);on_change(change_frame_pos);
property(def_border(3,WINCOLOR),NULL,NULL,WINCOLOR);c_default(0);on_control_change(change_frame_pos);
define(21,2,4,21,19,2,scroll_button,1,100,"\x1c");
property(NULL,icones,&cl,WINCOLOR);on_change(scroll_support);
property(NULL,icones,&cl,WINCOLOR);on_control_change(scroll_support);
define(22,2,4,21,19,3,scroll_button,-1,-100,"\x1d");
property(NULL,icones,&cl,WINCOLOR);on_change(scroll_support);
property(NULL,icones,&cl,WINCOLOR);on_control_change(scroll_support);
redraw_desktop();
show_frame(0);
}
@ -246,9 +246,9 @@ static void init_editor()
switch(examine_mgif_file(show_progress))
{
case EX_NOT_FOUND:chyba="MGIF soubor nenalezen!";break;
case EX_NO_SOUND:chyba="Film nem  zvukovou stopu. Sestav jej se zvukem.";break;
case EX_READ_ERROR:chyba="Chyba p©i ‡ten¡. Film je mon  po¨kozen";break;
case EX_SOUND_ERROR:chyba="Nekonzistentn¡ zvukov  stopa!";break;
case EX_NO_SOUND:chyba="Film nem<EFBFBD> zvukovou stopu. Sestav jej se zvukem.";break;
case EX_READ_ERROR:chyba="Chyba p<EFBFBD>i <20>ten<65>. Film je mo<6D>n<EFBFBD> po<70>kozen";break;
case EX_SOUND_ERROR:chyba="Nekonzistentn<EFBFBD> zvukov<6F> stopa!";break;
default:chyba=NULL;
}
if (chyba!=NULL)
@ -406,9 +406,9 @@ void open_program_window(int track)
cl1[0]=0x8000;cl1[1]=0xf;
memcpy(cl2,flat_color(0),sizeof(cl2));
win_program=def_dialoge(10,250,620,220,smp_prg[track].sample_name,0);
define(10,10,20,500,70,0,track_view,&smp_prg[track].levy);on_change(change_frame_clk1);
define(10,10,20,500,70,0,track_view,&smp_prg[track].levy);on_control_change(change_frame_clk1);
property(def_border(5,WINCOLOR),NULL,NULL,WINCOLOR);c_default(frame);
define(20,10,120,500,70,0,track_view,&smp_prg[track].pravy);on_change(change_frame_clk1);
define(20,10,120,500,70,0,track_view,&smp_prg[track].pravy);on_control_change(change_frame_clk1);
property(def_border(5,WINCOLOR),NULL,NULL,WINCOLOR);c_default(frame);
define(30,10,95,500,20,0,starts_view,smp_prg+track);
property(def_border(5,WINCOLOR),NULL,NULL,WINCOLOR);c_default(frame);
@ -416,27 +416,27 @@ void open_program_window(int track)
{
int y=i;
define(40+i,85,20+y,20,35,1,scroll_button,-1,0,"\x1e");
property(NULL,icones,&cl1,WINCOLOR);on_change(change_vpoint);on_event(step_clear);
property(NULL,icones,&cl1,WINCOLOR);on_control_change(change_vpoint);on_event(step_clear);
define(50+i,85,56+y,20,35,1,scroll_button,1,255,"\x1f");
property(NULL,icones,&cl1,WINCOLOR);on_change(change_vpoint);on_event(step_clear);
define(60+i,10,20+y,20,70,1,button,"X");on_change(change_vpoint);
property(NULL,icones,&cl1,WINCOLOR);on_control_change(change_vpoint);on_event(step_clear);
define(60+i,10,20+y,20,70,1,button,"X");on_control_change(change_vpoint);
property(NULL,vga_font,cl2,WINCOLOR);
define(70+i,32,20+y,50,20,1,button,"+ÄÄÄ+");on_change(change_vpoint);
define(70+i,32,20+y,50,20,1,button,"+<EFBFBD><EFBFBD><EFBFBD>+");on_control_change(change_vpoint);
property(NULL,vga_font,cl2,WINCOLOR);
define(80+i,32,45+y,50,20,1,scroll_button,-1,0,"+--+");
property(NULL,vga_font,&cl2,WINCOLOR);on_change(change_vpoint);on_event(step_clear);
property(NULL,vga_font,&cl2,WINCOLOR);on_control_change(change_vpoint);on_event(step_clear);
define(90+i,32,70+y,50,20,1,scroll_button,1,255,"+--+");
property(NULL,vga_font,&cl2,WINCOLOR);on_change(change_vpoint);on_event(step_clear);
property(NULL,vga_font,&cl2,WINCOLOR);on_control_change(change_vpoint);on_event(step_clear);
}
define(200,10,95,95,20,1,button,"(re)Start");property(NULL,vga_font,&cl2,WINCOLOR);
on_change(toggle_restart);
on_control_change(toggle_restart);
cl=def_border(1,0);
define(210,10,5,80,20,3,button,"Max");property(cl,vga_font,&cl2,BUTTONCOLOR);on_change(max_min_mid_align);
define(220,100,5,80,20,3,button,"Min");property(cl,vga_font,&cl2,BUTTONCOLOR);on_change(max_min_mid_align);
define(230,190,5,80,20,3,button,"St©ed");property(cl,vga_font,&cl2,BUTTONCOLOR);on_change(max_min_mid_align);
define(240,280,5,80,20,3,button,"Jako doln¡");property(cl,vga_font,&cl2,BUTTONCOLOR);on_change(max_min_mid_align);
define(250,370,5,80,20,3,button,"Jako horn¡");property(cl,vga_font,&cl2,BUTTONCOLOR);on_change(max_min_mid_align);
define(260,10,10,80,10,2,check_box,"Vypnut");on_change(mute_channel);c_default(smp_prg[cur_track].muted);
define(210,10,5,80,20,3,button,"Max");property(cl,vga_font,&cl2,BUTTONCOLOR);on_control_change(max_min_mid_align);
define(220,100,5,80,20,3,button,"Min");property(cl,vga_font,&cl2,BUTTONCOLOR);on_control_change(max_min_mid_align);
define(230,190,5,80,20,3,button,"St<EFBFBD>ed");property(cl,vga_font,&cl2,BUTTONCOLOR);on_control_change(max_min_mid_align);
define(240,280,5,80,20,3,button,"Jako doln<EFBFBD>");property(cl,vga_font,&cl2,BUTTONCOLOR);on_control_change(max_min_mid_align);
define(250,370,5,80,20,3,button,"Jako horn<EFBFBD>");property(cl,vga_font,&cl2,BUTTONCOLOR);on_control_change(max_min_mid_align);
define(260,10,10,80,10,2,check_box,"Vypnut");on_control_change(mute_channel);c_default(smp_prg[cur_track].muted);
redraw_window();
mute_channel();
}
@ -505,22 +505,22 @@ void new_edit_sample(int track)
memcpy(&b1,def_border(1,0),sizeof(CTL3D));
memcpy(&b2,def_border(5,WINCOLOR),sizeof(CTL3D));
memcpy(&b3,def_border(6,WINCOLOR),sizeof(CTL3D));
def_dialoge(20,140,600,200,"Vlo nov˜ zvuk",1);
def_dialoge(20,140,600,200,"Vlo<EFBFBD> nov<6F> zvuk",1);
dir=create_list(2);str_add(&dir,"<wait>");
define(9,10,20,120,166,0,listbox,dir,0x7fff,0);on_change(dopln_jmeno_samplu);
define(9,10,20,120,166,0,listbox,dir,0x7fff,0);on_control_change(dopln_jmeno_samplu);
property(&b3,NULL,NULL,WINCOLOR);c_default(0);
define(10,137,40,19,127,0,scroll_bar_v,0,10,1,0x0200);
property(&b2,NULL,NULL,WINCOLOR);
define(11,136,20,21,17,0,scroll_button,-1,0,"\x1e");
property(NULL,icones,NULL,WINCOLOR);on_change(scroll_support);
property(NULL,icones,NULL,WINCOLOR);on_control_change(scroll_support);
define(12,136,170,21,17,0,scroll_button,1,10,"\x1f");
property(NULL,icones,NULL,WINCOLOR);on_change(scroll_support);
define(20,170,20,420,12,0,input_line,255);set_default(last_path);on_exit(change_dir);
property(NULL,icones,NULL,WINCOLOR);on_control_change(scroll_support);
define(20,170,20,420,12,0,input_line,255);set_default(last_path);on_control_exit(change_dir);
property(&b3,vga_font,NULL,WINCOLOR);
define(-1,170,35,1,1,0,label,"Cesta a jmno zvuku");
define(-1,170,65,1,1,0,label,"Jmno stopy (voliteln)");
define(-1,170,95,1,1,0,label,"Za tek opakov  (-1 vyp)");
define(-1,170,125,1,1,0,label,"Konec opakov ");
define(-1,170,35,1,1,0,label,"Cesta a jm<EFBFBD>no zvuku");
define(-1,170,65,1,1,0,label,"Jm<EFBFBD>no stopy (voliteln<6C>)");
define(-1,170,95,1,1,0,label,"Za<EFBFBD><EFBFBD>tek opakov<6F>n<EFBFBD> (-1 vyp)");
define(-1,170,125,1,1,0,label,"Konec opakov<EFBFBD>n<EFBFBD>");
c=(smp_prg[track].sample_name);if (c==NULL) c=empty;
define(30,170,50,420,12,0,input_line,255);set_default(c);
property(&b3,vga_font,NULL,WINCOLOR);
@ -531,8 +531,8 @@ void new_edit_sample(int track)
property(&b3,vga_font,NULL,WINCOLOR);
define(60,290,140,100,12,0,input_line,199);set_default(itoa(smp_prg[track].loop_end,num,10));
property(&b3,vga_font,NULL,WINCOLOR);
define(100,10,10,80,20,2,button,"Storno");property(&b1,vga_font,NULL,BUTTONCOLOR);on_change(terminate);
define(110,10,35,80,20,2,button,"Ok");property(&b1,vga_font,NULL,BUTTONCOLOR);on_change(terminate);
define(100,10,10,80,20,2,button,"Storno");property(&b1,vga_font,NULL,BUTTONCOLOR);on_control_change(terminate_gui);
define(110,10,35,80,20,2,button,"Ok");property(&b1,vga_font,NULL,BUTTONCOLOR);on_control_change(terminate_gui);
define(120,10,70,38,20,2,button,"");property(&b1,vga_font,NULL,BUTTONCOLOR);
define(130,52,70,38,20,2,button,"");property(&b1,vga_font,NULL,BUTTONCOLOR);
redraw_window();
@ -620,7 +620,7 @@ static void delete_sample()
int i;
i=f_get_value(0,9);
if (i>=samples_total || i<0) return;
if (msg_box("Ot zka?",'\x2',"Odstranit zvuk?","Ano","Ne",NULL)==2) return;
if (msg_box("Ot<EFBFBD>zka?",'\x2',"Odstranit zvuk?","Ano","Ne",NULL)==2) return;
open_program_window(-1);
remove_sample(i);
update_sample_list();
@ -654,7 +654,7 @@ static void duplic_sample()
static void prehrat_cele()
{
show_frame(-1);
def_dialoge(2,42,635,378,"P©ehr t cel",1);
def_dialoge(2,42,635,378,"P<EFBFBD>ehr<EFBFBD>t cel<65>",1);
redraw_window();
curcolor=0;
start_mixing();
@ -680,9 +680,9 @@ static void prehrat_preview()
x=o->locx+320+4;
y=o->locy+180+4;
if (x>500) x=2;if (y>400) y=2;
def_dialoge(x,y,100,80,"N hled",1);
def_dialoge(x,y,100,80,"N<EFBFBD>hled",1);
define(10,10,25,80,30,0,button,"STOP");
property(def_border(1,0),vga_font,NULL,BUTTONCOLOR);on_change(stop_preview_clk);
property(def_border(1,0),vga_font,NULL,BUTTONCOLOR);on_control_change(stop_preview_clk);
redraw_window();
preview_block(f_get_value(win_preview,20),o->locx,o->locy);
close_current();
@ -695,8 +695,8 @@ static void make()
def_dialoge(10,300,620,80,"Sestavuji...",1);
define(10,10,20,600,30,0,done_bar,100);c_default(0);
property(def_border(3,WINCOLOR),NULL,flat_color(0x2e0),WINCOLOR);
define(20,5,5,480,12,3,input_line,100);set_default("Ukl d m projekt....");
define(30,5,5,80,20,2,button,"Stop");on_change(terminate);
define(20,5,5,480,12,3,input_line,100);set_default("Ukl<EFBFBD>d<EFBFBD>m projekt....");
define(30,5,5,80,20,2,button,"Stop");on_control_change(terminate_gui);
property(def_border(1,0),vga_font,NULL,BUTTONCOLOR);
redraw_window();
save_project(prj_name);
@ -708,7 +708,7 @@ static void build()
{
int i;
if (msg_box(PRG_HEADER,'\x2',"Chce¨ spustit REBUILD filmu? Tato funkce sestav¡ CELOU zvukovou stopu, co me zabrat dost ‡asu","Ano","Ne",NULL)==2) return;
if (msg_box(PRG_HEADER,'\x2',"Chce<EFBFBD> spustit REBUILD filmu? Tato funkce sestav<61> CELOU zvukovou stopu, co<63> m<><6D>e zabrat dost <20>asu","Ano","Ne",NULL)==2) return;
for(i=0;i<total_frames;i++)
mgf_frames[i].changed=1;
make();
@ -717,12 +717,12 @@ static void build()
static void exit_prog()
{
int i;
i=msg_box("Exit",'\x2',"Uloit projekt p©ed ukon‡en¡m programu?","Ano","Ne","Storno",NULL);
i=msg_box("Exit",'\x2',"Ulo<EFBFBD>it projekt p<>ed ukon<6F>en<65>m programu?","Ano","Ne","Storno",NULL);
switch (i)
{
case 3:return;
case 1:save_project(prj_name);
case 2:terminate();
case 2:terminate_gui();
}
}
@ -742,13 +742,13 @@ static void info()
{
"Film:",
"Project:",
"Celkem sn¡mk:",
"Pr zdn˜ch sn¡mk:",
"Vyuit  pamˆŸ(KB):",
"Sestavovac¡ pamˆŸ(KB):",
"Celkem sn<EFBFBD>mk<EFBFBD>:",
"Pr<EFBFBD>zdn<EFBFBD>ch sn<73>mk<6D>:",
"Vyu<EFBFBD>it<EFBFBD> pam<61><6D>(KB):",
"Sestavovac<EFBFBD> pam<61><6D>(KB):",
"Stop:",
"Sestaveno sn¡mk:",
"Cas sestaven¡:",
"Sestaveno sn<EFBFBD>mk<EFBFBD>:",
"Cas sestaven<EFBFBD>:",
};
char str[200];char *c;
int i;
@ -775,12 +775,12 @@ static void info()
"1/4",
"1/8",
"1/16");c_default(amplifikace);
define(100,5,5,60,20,2,button,"Ok");on_change(terminate);
define(100,5,5,60,20,2,button,"Ok");on_control_change(terminate_gui);
redraw_window();
escape();
if (amplifikace!=f_get_value(0,10))
{
msg_box(PRG_HEADER,'\x1',"Aby tato zmˆna mˆla spr vn˜ efekt, mus¡¨ provst BUILD!","Ok",NULL);
msg_box(PRG_HEADER,'\x1',"Aby tato zm<EFBFBD>na m<>la spr<70>vn<76> efekt, mus<75><73> prov<6F>st BUILD!","Ok",NULL);
amplifikace=f_get_value(0,10);
}
close_current();
@ -796,8 +796,8 @@ char how_frames(char *prompt,int *value)
define(10,5,20,1,1,0,label,prompt);
define(20,10,35,60,12,1,input_line,10);set_default(itoa(*value,buffer,10));
property(def_border(5,WINCOLOR),NULL,NULL,0x7fff);
define(30,5,5,80,20,2,button,"Ok");property(&b1,vga_font,NULL,BUTTONCOLOR);on_change(terminate);
define(40,90,5,80,20,2,button,"Zru¨it");property(&b1,vga_font,NULL,BUTTONCOLOR);on_change(terminate);
define(30,5,5,80,20,2,button,"Ok");property(&b1,vga_font,NULL,BUTTONCOLOR);on_control_change(terminate_gui);
define(40,90,5,80,20,2,button,"Zru<EFBFBD>it");property(&b1,vga_font,NULL,BUTTONCOLOR);on_control_change(terminate_gui);
redraw_window();
chyba:
escape();
@ -806,7 +806,7 @@ char how_frames(char *prompt,int *value)
get_value(0,20,buffer);
if (sscanf(buffer,"%d",value)!=1)
{
msg_box(PRG_HEADER,'\x1',"To mus¡ b˜t ‡¡slo!","Ok",NULL);
msg_box(PRG_HEADER,'\x1',"To mus<EFBFBD> b<>t <20><>slo!","Ok",NULL);
goto chyba;
}
close_current();
@ -823,7 +823,7 @@ static void ginsert()
frame=f_get_value(win_preview,20);
v=get_inserted_frames(frame);
if (how_frames("Kolik bylo vloeno?",&v)==0) return;
if (how_frames("Kolik bylo vlo<EFBFBD>eno?",&v)==0) return;
insert_global(frame,v);
redraw_desktop();
}
@ -835,7 +835,7 @@ static void gdelete()
frame=f_get_value(win_preview,20);
v=get_deleted_frames();
if (how_frames("Kolik bylo vymaz no?",&v)==0) return;
if (how_frames("Kolik bylo vymaz<EFBFBD>no?",&v)==0) return;
delete_global(frame,v);
redraw_desktop();
}
@ -854,26 +854,26 @@ void control_window()
memcpy(f_default,flat_color(0x0000),sizeof(charcolors));
win_control=def_dialoge(350,10,280,228,PRG_HEADER,0);
build_sample_list(&smp_list);
define(9,10,20,100,196,0,listbox,smp_list,0x7fff,0);on_change(select_sample);
define(9,10,20,100,196,0,listbox,smp_list,0x7fff,0);on_control_change(select_sample);
property(&b3,NULL,NULL,WINCOLOR);c_default(-1);
define(10,117,40,19,157,0,scroll_bar_v,0,10,1,0x0200);
property(&b2,NULL,NULL,WINCOLOR);
define(11,116,20,21,17,0,scroll_button,-1,0,"\x1e");
property(NULL,icones,NULL,WINCOLOR);on_change(scroll_support);
property(NULL,icones,NULL,WINCOLOR);on_control_change(scroll_support);
define(12,116,200,21,17,0,scroll_button,1,10,"\x1f");
property(NULL,icones,NULL,WINCOLOR);on_change(scroll_support);
define(20,140,20,65,20,0,button,"Nov˜");property(&b1,vga_font,NULL,BUTTONCOLOR);on_change(new_sample);
define(30,210,20,65,20,0,button,"Odstra¤");property(&b1,vga_font,NULL,BUTTONCOLOR);on_change(delete_sample);
define(40,140,45,65,20,0,button,"Oprav");property(&b1,vga_font,NULL,BUTTONCOLOR);on_change(edit_sample);
define(50,210,45,65,20,0,button,"Duplikuj");property(&b1,vga_font,NULL,BUTTONCOLOR);on_change(duplic_sample);
define(60,140,120,65,20,0,button,"P©ehr t");property(&b1,vga_font,NULL,BUTTONCOLOR);on_change(prehrat_cele);
define(70,210,120,65,20,0,button,"N hled");property(&b1,vga_font,NULL,BUTTONCOLOR);on_change(prehrat_preview);
define(80,140,145,65,20,0,button,"Make");property(&b1,vga_font,NULL,BUTTONCOLOR);on_change(make);
define(90,210,145,65,20,0,button,"Build");property(&b1,vga_font,NULL,BUTTONCOLOR);on_change(build);
define(100,210,10,65,20,3,button,"Exit");property(&b1,vga_font,NULL,BUTTONCOLOR);on_change(exit_prog);
define(110,140,10,65,20,3,button,"Info");property(&b1,vga_font,NULL,BUTTONCOLOR);on_change(info);
define(120,140,170,65,20,0,button,"GInsert");property(&b1,vga_font,NULL,BUTTONCOLOR);on_change(ginsert);
define(130,210,170,65,20,0,button,"GDelete");property(&b1,vga_font,NULL,BUTTONCOLOR);on_change(gdelete);
property(NULL,icones,NULL,WINCOLOR);on_control_change(scroll_support);
define(20,140,20,65,20,0,button,"Nov<EFBFBD>");property(&b1,vga_font,NULL,BUTTONCOLOR);on_control_change(new_sample);
define(30,210,20,65,20,0,button,"Odstra<EFBFBD>");property(&b1,vga_font,NULL,BUTTONCOLOR);on_control_change(delete_sample);
define(40,140,45,65,20,0,button,"Oprav");property(&b1,vga_font,NULL,BUTTONCOLOR);on_control_change(edit_sample);
define(50,210,45,65,20,0,button,"Duplikuj");property(&b1,vga_font,NULL,BUTTONCOLOR);on_control_change(duplic_sample);
define(60,140,120,65,20,0,button,"P<EFBFBD>ehr<EFBFBD>t");property(&b1,vga_font,NULL,BUTTONCOLOR);on_control_change(prehrat_cele);
define(70,210,120,65,20,0,button,"N<EFBFBD>hled");property(&b1,vga_font,NULL,BUTTONCOLOR);on_control_change(prehrat_preview);
define(80,140,145,65,20,0,button,"Make");property(&b1,vga_font,NULL,BUTTONCOLOR);on_control_change(make);
define(90,210,145,65,20,0,button,"Build");property(&b1,vga_font,NULL,BUTTONCOLOR);on_control_change(build);
define(100,210,10,65,20,3,button,"Exit");property(&b1,vga_font,NULL,BUTTONCOLOR);on_control_change(exit_prog);
define(110,140,10,65,20,3,button,"Info");property(&b1,vga_font,NULL,BUTTONCOLOR);on_control_change(info);
define(120,140,170,65,20,0,button,"GInsert");property(&b1,vga_font,NULL,BUTTONCOLOR);on_control_change(ginsert);
define(130,210,170,65,20,0,button,"GDelete");property(&b1,vga_font,NULL,BUTTONCOLOR);on_control_change(gdelete);
p=samples_total!=0;
set_enable(0,30,p);set_enable(0,40,p);set_enable(0,50,p);
redraw_window();
@ -884,7 +884,7 @@ void main(int argc,char **argv)
if (argc!=2)
{
puts("MGF SoundTrack Editor ... (C) 1998 Ond©ej Nov k\n");
puts("MGF SoundTrack Editor ... (C) 1998 Ond<EFBFBD>ej Nov<6F>k\n");
puts("Usage: MGIFEDIT <film.mgf>");
exit(1);
}
@ -893,8 +893,8 @@ void main(int argc,char **argv)
prj_name=get_project_name(mgif_filename);
switch (load_project(prj_name))
{
case -1:msg_box(PRG_HEADER,'\x1',"Chyba form tu v projektu!","Zav©¡t",NULL);shutdown();exit(1);
case -2:msg_box(PRG_HEADER,'\x1',"Neo‡ek van˜ eof souboru!","Zav©¡t",NULL);shutdown();exit(1);
case -1:msg_box(PRG_HEADER,'\x1',"Chyba form<EFBFBD>tu v projektu!","Zav<EFBFBD><EFBFBD>t",NULL);shutdown();exit(1);
case -2:msg_box(PRG_HEADER,'\x1',"Neo<EFBFBD>ek<EFBFBD>van<EFBFBD> eof souboru!","Zav<EFBFBD><EFBFBD>t",NULL);shutdown();exit(1);
}
init_editor();
warn_size_mistmach();

View file

@ -48,3 +48,4 @@ void SetWheelMapping(char up, char down);
#define WM_RELOADMAP (WM_APP+215)
#define E_RELOADMAP 40

5
game/CMakeLists.txt Normal file
View file

@ -0,0 +1,5 @@
SET(files automap.c clk_map.c dialogy.c dump.cpp enemy.c engine2.c globmap.c inv.c kouzla.c menu.c skeldal.c souboje.c
builder.c engine1.c gamesave.c interfac.c kniha.c macros.c realgame.c setup.c sndandmus.c specproc.c)
add_executable(skeldal ${files})

View file

@ -31,14 +31,14 @@
#define MEDIUM_MAP_LINE1 RGB555(25,20,17)
#define MEDIUM_MAP_LINE2 RGB555(31,22,6)
word stairs_colors[]=
word stairs_colors[7]=
{AUTOMAP_LINE1,
RGB555(14,12,11),
RGB555(15,14,12),
RGB555(16,15,12),
RGB555(17,16,13)};
word arrow_colors[]=
word arrow_colors[7]=
{
AUTOMAP_LINE1,
AUTOMAP_FORE
@ -389,6 +389,7 @@ static void draw_amap_sector(int x,int y,int sector,int mode,int turn,int line1,
set_font(H_FSYMB,0);k>>=9;
switch (k)
{
default:
case 3:break;
case 2:set_font(H_FSYMB,0);
font_color(stairs_colors);
@ -612,8 +613,8 @@ void unwire_automap()
void *map_keyboard(EVENT_MSG *msg,void **usr)
{
char c;
static draw=0;
static xr,yr;
static int draw=0;
static int xr,yr;
usr;
if (msg->msg==E_INIT) xr=yr=0;
@ -672,7 +673,7 @@ void show_automap(char full)
change_click_map(clk_map_view,CLK_MAP_VIEW);
}
static char mob_not_invis(sector)
static char mob_not_invis(int sector)
{
int m;
m=mob_map[sector];
@ -737,7 +738,7 @@ void draw_medium_map()
}
}
static char map_menu_glob_map(int id,int xa,int ya,int xr,int yr)
char map_menu_glob_map(int id,int xa,int ya,int xr,int yr)
{
id,xa,ya,xr,yr;
id=set_select_mode(0);
@ -881,7 +882,7 @@ void wire_kniha()
hold_timer(TM_FAST_TIMER,1);
}
static last_selected;
static int last_selected;
char map_target_cancel(int id,int xa,int ya,int xr,int yr)
{

View file

@ -1,7 +1,6 @@
#include <skeldal_win.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <malloc.h>
#include <math.h>
#include <bios.h>
@ -17,7 +16,7 @@
#include "engine1.h"
#include <pcx.h>
#include "globals.h"
#include "Version.h"
#include "version.h"
#define ZIVOTY_S 60
#define ZIVOTY_E 62
@ -182,7 +181,7 @@ void show_money()
{
char c[20];
set_font(H_FONT7,RGB555(28,28,21));
sprintf(c,"%d",money);
sprintf(c,"%ld",money);
set_aligned_position(460,13,2,2,c);
outtext(c);
}
@ -276,8 +275,9 @@ word *bott_clear(void)
{
word *bott_scr;
bott_scr=(word *)getmem(scr_linelen2*104*2);
memset(bott_scr,0,_msize(bott_scr));
long sz;
bott_scr=(word *)getmem(sz = scr_linelen2*104*2);
memset(bott_scr,0,sz);
return bott_scr;
}
@ -304,7 +304,7 @@ static void bott_fletna_normal(void **pp,long *s)
set_aligned_position(x,32,1,1,texty[180+i]);outtext(texty[180+i]);
}
*pp=GetScreenAdr();
*s=_msize(*pp);
*s=GetScreenSizeBytes();
RestoreScreen();
}
@ -400,7 +400,7 @@ static void bott_draw_normal(void **pp,long *s)
}
*/
*pp=GetScreenAdr();
*s=_msize(*pp);
*s=GetScreenSizeBytes();
RestoreScreen();
}
@ -438,11 +438,11 @@ void bott_disp_text_proc(void **pp,long *ss)
}
while (p[0]);
*pp=GetScreenAdr();
*ss=_msize(*pp);
*ss=GetScreenSizeBytes();
RestoreScreen();
}
void bott_disp_text(char *text)
void bott_disp_text(const char *text)
{
if (text==0) text="Chybi popisek!!";
zneplatnit_block(H_BOTTBAR);
@ -497,7 +497,7 @@ void bott_draw_rune(void **pp,long *ss)
outtext(buff);
put_picture(70,30,ablock(glob_items[showruneitem].vzhled+face_arr[0]));
*pp=GetScreenAdr();
*ss=_msize(*pp);
*ss=GetScreenSizeBytes();
RestoreScreen();
}
@ -642,7 +642,7 @@ int enter_tab[VIEW3D_Z+1][VIEW3D_X*2+1]=
void crt_minimap_itr(sector,smer,itrx,itry,automap)
void crt_minimap_itr(int sector,int smer,int itrx,int itry, int automap)
{
static int sector_temp;
static long sideflags;
@ -690,7 +690,7 @@ void crt_minimap_itr(sector,smer,itrx,itry,automap)
}
void create_minimap(sector,smer)
void create_minimap(int sector, int smer)
{
memset(minimap,0,sizeof(minimap));
dirs[1]=smer;
@ -702,7 +702,7 @@ void create_minimap(sector,smer)
static const float Inv2=0.5;
static const float Snapper=3<<22;
__inline int toInt( float fval )
static __inline int toInt( float fval )
{
fval += Snapper;
return ( (*(int *)&fval)&0x007fffff ) - 0x00400000;
@ -767,7 +767,7 @@ int draw_basic_floor(int celx,int cely,int sector)
return 0;
}
static calc_item_shiftup(TITEM *it)
static int calc_item_shiftup(TITEM *it)
{
short *s;
char *c;
@ -923,7 +923,7 @@ void draw_players(int sector,int dir,int celx,int cely)
int draw_sloup_sector(celx,cely,sector)
int draw_sloup_sector(int celx,int cely,int sector)
{
TSTENA *w,*q;
int obl;
@ -1100,7 +1100,7 @@ static void trace_for_bgr(int dir)
}
void render_scene(sector,smer)
void render_scene(int sector, int smer)
{
int i,j,s;
@ -1309,7 +1309,7 @@ void play_fx_at(int where)
void display_ver(int x,int y,int ax,int ay)
{
char *ver="Br ny Skeldalu version "VERSION" (C)1998";
char *ver="Br<EFBFBD>ny Skeldalu version "VERSION" (C)1998";
set_font(H_FTINY,RGB555(31,31,31));set_aligned_position(x,y,ax,ay,ver);
outtext(ver);showview(0,0,0,0);
}

View file

@ -53,7 +53,7 @@ typedef struct staty
static char women[MAX_XICHTS]={0,1,0,0,0,1,0,0};//,0,0};
static int cur_edited=0;
static int cur_xicht=-1;
static int cur_page=1;
int cur_page=1;
static int loc_select=-1;
#define CLK_PAGE1 3
@ -119,7 +119,7 @@ static void tlac2(int x,int y,char *text,int pushed)
set_aligned_position(x,y,1,1,text);outtext(text);
}
static tlac2_press(int x,int y,char *text)
static void tlac2_press(int x,int y,char *text)
{
schovej_mysku();
tlac2(x,y,text,1);
@ -319,7 +319,7 @@ static char page1_tlac2(int id,int xa,int ya,int xr,int yr)
}
void enter_generator()
char enter_generator()
{
int i;

View file

@ -251,7 +251,7 @@ char start_invetory(int id,int xa,int ya,int xr,int yr)
{
if (ms_last_event.event_type & 0x2)
{
if (GetKeyState(VK_CONTROL) & 0x80)
if (get_control_key_state())
{
if (p->sektor==viewsector)
{

View file

@ -18,6 +18,7 @@
#include "engine1.h"
#include <pcx.h>
#include "globals.h"
#include <stdarg.h>
typedef struct t_paragraph
{
@ -212,7 +213,7 @@ static void error(char *text)
{
char buff[256];
sprintf(buff,"%s v odstavci %d\r\nLocal_pgf=%d / DIALOG : %d / SENTENCE : %d\r\n",text,last_pgf+local_pgf,local_pgf,local_pgf/128,last_pgf);
MessageBox(NULL,buff,NULL,MB_OK|MB_ICONSTOP|MB_SYSTEMMODAL);
// MessageBox(NULL,buff,NULL,MB_OK|MB_ICONSTOP|MB_SYSTEMMODAL);
SEND_LOG("(DIALOGS) Dialog error detected at %d:%d",local_pgf/128,last_pgf);
SEND_LOG("(DIALOGS) Error description: %s",text,0);
}
@ -241,7 +242,7 @@ static T_PARAGRAPH *find_paragraph(int num)
{
char s[80];
sprintf(s,"Odstavec %d neexistuje! Odkaz byl vyvol n",num);
sprintf(s,"Odstavec %d neexistuje! Odkaz byl vyvol<EFBFBD>n",num);
error(s);
return (T_PARAGRAPH *)pp;
}
@ -392,7 +393,7 @@ static char *Get_string()
if (i<=0) c=conv_text(texty[abs(i)]);else c=conv_text(level_texts[i]);
return string_buffer;
}
error("O‡ek v  se ©etˆzec nebo index do tabulky ©etˆzc");
error("O<EFBFBD>ek<EFBFBD>v<EFBFBD> se <20>et<65>zec nebo index do tabulky <20>et<65>zc<7A>");
exit(0);
return NULL;
}
@ -414,7 +415,7 @@ static short Get_short()
pc+=2;
return varibles[p];
}
error("O‡ek v  se ‡¡slo");
error("O<EFBFBD>ek<EFBFBD>v<EFBFBD> se <20><>slo");
exit(0);
return 0;
}
@ -1009,7 +1010,7 @@ static char ask_who_proc(int id,int xa,int ya,int xr,int yr)
}
static dlg_ask_who()
static int dlg_ask_who()
{
draw_all();
mouse_set_default(H_MS_WHO);
@ -1031,7 +1032,7 @@ static dlg_ask_who()
extern word weapon_skill[];
static void pract(h,vls,how,max)
static void pract(int h,int vls,int how,int max)
{
iff=0;
if (vls>=100)
@ -1062,7 +1063,7 @@ static void pract(h,vls,how,max)
}
}
static void pract_to(h,vls,how)
static void pract_to(int h, int vls,int how)
{
iff=0;
if (vls>=100)
@ -1094,12 +1095,12 @@ static char oper_balance(int val1,int val2,int oper)
case OPER_BIGEQ:return val1>=val2;
case OPER_LOWEQ:return val1<=val2;
case OPER_NOEQ:return val1!=val2;
default:error("Chybn˜ operator porovn v ");
default:error("Chybn<EFBFBD> operator porovn<76>v<EFBFBD>n<EFBFBD>");
}
return 0;
}
static char test_vls(h,vls,oper,num)
static char test_vls(int h,int vls,int oper,int num)
{
int val;
if (vls>=100)
@ -1284,7 +1285,7 @@ void do_dialog()
default:
{
char s[80];
sprintf(s,"Nezn m  instrukce: %d",i);
sprintf(s,"Nezn<EFBFBD>m<EFBFBD> instrukce: %d",i);
error(s);
}
break;
@ -1348,7 +1349,7 @@ void call_dialog(int entr,int mob)
do_dialog();
}
char save_dialog_info(FILE *f)
char save_dialog_info(TMPFILE_WR *f)
{
int pgf_pocet;
int *p,i;
@ -1359,7 +1360,7 @@ char save_dialog_info(FILE *f)
SEND_LOG("(DIALOGS)(SAVELOAD) Saving dialogs info...",0,0);
p=ablock(H_DIALOGY_DAT);
pgf_pocet=*p;
fwrite(&pgf_pocet,1,4,f);
temp_storage_write(&pgf_pocet,1*4,f);
siz=(pgf_pocet+3)/4;
if (siz)
{
@ -1372,15 +1373,15 @@ char save_dialog_info(FILE *f)
int j=(i & 3)<<1;
c[i>>2]|=(q[i].visited<<j) | (q[i].first<<(j+1));
}
res|=fwrite(c,1,siz,f)!=siz;
temp_storage_write(c,1*siz,f);
free(c);
}
res|=(fwrite(_flag_map,1,sizeof(_flag_map),f)!=sizeof(_flag_map));
temp_storage_write(_flag_map,1*sizeof(_flag_map),f);
SEND_LOG("(DIALOGS)(SAVELOAD) Done...",0,0);
return res;
}
char load_dialog_info(FILE *f)
char load_dialog_info(TMPFILE_RD *f)
{
int pgf_pocet;
int *p,i;
@ -1391,18 +1392,18 @@ char load_dialog_info(FILE *f)
SEND_LOG("(DIALOGS)(SAVELOAD) Loading dialogs info...",0,0);
p=ablock(H_DIALOGY_DAT);
aswap(H_DIALOGY_DAT);
fread(&pgf_pocet,1,4,f);
temp_storage_read(&pgf_pocet,1*4,f);
siz=(pgf_pocet+3)/4;
if (pgf_pocet!=*p)
{
SEND_LOG("(ERROR) Dialogs has different sizes %d!=%d (can be skipped)",pgf_pocet,*p);
fseek(f,siz+sizeof(_flag_map),SEEK_CUR);
temp_storage_skip(f,siz+sizeof(_flag_map));
return 0;
}
if (siz)
{
c=getmem(siz);
res|=(fread(c,1,siz,f)!=siz);
res|=(temp_storage_read(c,1*siz,f)!=siz);
p=ablock(H_DIALOGY_DAT);
q=(T_PARAGRAPH *)(p+2);
for(i=0;i<pgf_pocet;i++)
@ -1413,7 +1414,7 @@ char load_dialog_info(FILE *f)
}
free(c);
}
res|=(fread(_flag_map,1,sizeof(_flag_map),f)!=sizeof(_flag_map));
res|=(temp_storage_read(_flag_map,1*sizeof(_flag_map),f)!=sizeof(_flag_map));
SEND_LOG("(DIALOGS)(SAVELOAD) Done...",0,0);
return res;
}

View file

@ -24,7 +24,6 @@
#include <strlite.h>
#include <memman.h>
#include <bgraph.h>
#include <conio.h>
FILE *dlg;
long *odstavce=NULL;

91
game/dump.cpp Normal file
View file

@ -0,0 +1,91 @@
#include <iostream>
#include <filesystem>
#include <regex>
#include <string>
#include <optional>
#include <memman.h>
int findMaxDumpNumber(const std::string &directoryPath) {
namespace fs = std::filesystem;
std::regex pattern(R"(dump(\d{4})\.bmp)");
int maxNumber = -1;
for (const auto &entry : fs::directory_iterator(directoryPath)) {
if (entry.is_regular_file()) {
std::smatch match;
std::string fileName = entry.path().filename().string();
if (std::regex_match(fileName, match, pattern)) {
int number = std::stoi(match[1]); // Extrahujeme číslo NNNN
if (number > maxNumber) {
maxNumber = number; // Aktualizujeme maximální číslo
}
}
}
}
return maxNumber;
}
extern "C" {
void save_dump(const uint16_t *screen_addr,
unsigned int width,
unsigned int height,
unsigned int linelen);
}
void save_dump(const uint16_t *screen_addr,
unsigned int width,
unsigned int height,
unsigned int linelen) {
static int dump_counter = -1;
FILE *f;
int i, r, g, b, x, y;
const uint16_t *a;
char c[20];
if (dump_counter == -1) {
dump_counter = findMaxDumpNumber(".");
SEND_LOG("(DUMP) Dump counter sets to %d", dump_counter, 0);
}
sprintf(c, "dump%04d.bmp", ++dump_counter);
SEND_LOG("(DUMP) Saving screen shot named '%s'", c, 0);
f = fopen(c, "wb");
fputc('B', f);
fputc('M', f);
i = width * height * 3 + 0x36;
fwrite(&i, 1, 4, f);
i = 0;
fwrite(&i, 1, 4, f);
i = 0x36;
fwrite(&i, 1, 4, f);
i = 0x28;
fwrite(&i, 1, 4, f);
i = width;
fwrite(&i, 1, 4, f);
i = height;
fwrite(&i, 1, 4, f);
i = 1;
fwrite(&i, 1, 2, f);
i = 24;
fwrite(&i, 1, 2, f);
i = 0;
fwrite(&i, 1, 4, f);
i = width * height * 3;
fwrite(&i, 1, 4, f);
for (i = 4, r = 0; i > 0; i--)
fwrite(&r, 1, 4, f);
for (y = height; y > 0; y--) {
const uint16_t *scr = screen_addr;
a = scr + (y - 1) * linelen;
for (x = 0; x < width; x++) {
i = a[x];
b = (i & 0x1f) << 3;
g = (i & 0x7ff) >> 3;
r = i >> 8;
i = ((r * 256) + g) * 256 + b;
fwrite(&i, 1, 3, f);
}
}
fclose(f);
}

View file

@ -106,38 +106,38 @@ void smeruj_moba(TMOB *m,int smer)
}
}
void save_enemy_paths(FILE *f)
void save_enemy_paths(TMPFILE_WR *f)
{
int i,s;
word *w;
for(i=0;i<MAX_MOBS;i++) if (mob_paths[i]!=NULL)
{
fwrite(&i,2,1,f);
temp_storage_write(&i,2*1,f);
w=mob_path_ptr[i];
s=1;while(*w++) s++;
fwrite(&s,1,sizeof(s),f);
fwrite(mob_path_ptr[i],s,2,f);
temp_storage_write(&s,1*sizeof(s),f);
temp_storage_write(mob_path_ptr[i],s*2,f);
}
s=-1;
fwrite(&s,1,2,f);
temp_storage_write(&s,1*2,f);
}
int load_enemy_paths(FILE *f)
int load_enemy_paths(TMPFILE_RD *f)
{
short i=-1;
int s;
word *w;
for(i=0;i<MAX_MOBS;i++) free_path(i);
fread(&i,2,1,f);
temp_storage_read(&i,2*1,f);
while(i!=-1)
{
fread(&s,1,sizeof(s),f);
temp_storage_read(&s,1*sizeof(s),f);
w=NewArr(word,s);
fread(w,s,2,f);
temp_storage_read(w,s*2,f);
register_mob_path(i,w);
if (fread(&i,2,1,f)==0) return 1;
if (temp_storage_read(&i,2*1,f)==0) return 1;
}
return 0;
}
@ -240,8 +240,8 @@ static void register_mob_graphics(int num,char *name_part,char *anims,char *seq)
{
char buff[256];
closemode();
sprintf(buff,"Soubor sekvence %s obsahuje chybne udaje nebo je sekvence je moc kratka\n");
MessageBox(NULL,buff,NULL,MB_OK|MB_ICONSTOP);
sprintf(buff,"Soubor sekvence %s obsahuje chybne udaje nebo je sekvence je moc kratka\n", fulname);
display_error(buff);
exit(0);
}
}
@ -377,7 +377,7 @@ void load_enemies(short *data,int size,int *grptr,TMOB *template,long tsize)
char buff[256];
closemode();
sprintf(buff,"Nestvura cislo #%d (%s) je spatne definovana (rychlost)",i,mobs[i].name);
MessageBox(NULL,buff,NULL,MB_OK|MB_ICONEXCLAMATION);
display_error(buff);
exit(1);
}
cisla[i]=mobs[i].cislo_vzoru;
@ -534,7 +534,7 @@ int q_vidis_postavu(int sector,int dir,TMOB *p,int *otocit_se,char ret)
THUMAN *ps=&postavy[i];
xs=map_coord[sector].x-map_coord[postavy[i].sektor].x;
ys=map_coord[sector].y-map_coord[postavy[i].sektor].y;
d=max(abs(xs),abs(ys));
d=MAX(abs(xs),abs(ys));
if (d<=p->dohled && (!(ps->vlastnosti[VLS_KOUZLA] & SPL_INVIS)||p->vlajky & MOB_SENSE) && ps->used && ps->lives)
switch(dir)
{
@ -832,7 +832,7 @@ void rozhodni_o_smeru(TMOB *p)
if (v==1 && p->stay_strategy & MOB_GUARD) r=return_home(p,&dir);
if (r)
{
if (v<2) r=1;else r=rand()*v/(RAND_MAX+1)+1;
if (v<2) r=1;else r=rnd(v)+1;
vdir=dir=mob_vyber_vychod(r,sect,dir,alone,passable);
//if ( p->stay_strategy & MOB_WATCH && rnd(100)<20 && lv<128 && dir!=p->dir) dir=-1;
}
@ -1071,7 +1071,7 @@ void otoc_moba(TMOB *p)
}
static mob_check_teleport(int sect,int num)
static int mob_check_teleport(int sect,int num)
{
int i;
if (!ISTELEPORTSECT(sect)) return sect;
@ -1203,7 +1203,7 @@ void vymaz_zasahy(THE_TIMER *q)
bott_draw(0);
}
static drop_inventory(TMOB *p)
static int drop_inventory(TMOB *p)
{
int i,x,y,pl;
short c[]={0,0};
@ -1322,7 +1322,7 @@ void mob_strelba(TMOB *p)
if (i==item_count)
{
closemode();
MessageBox(NULL,"Nestvura nemuze strilet. Neni nadefinovan obekt sipu",NULL,MB_OK|MB_ICONSTOP);
display_error("Nestvura nemuze strilet. Neni nadefinovan obekt sipu");
exit(1);
}
t=glob_items+i;
@ -1491,7 +1491,7 @@ void mobs_live(int num)
char buff[256];
closemode();
sprintf(buff,"Potvora v neexistujicim sektoru (%d, %d) ",num,p->sector);
MessageBox(NULL,buff,NULL,MB_OK|MB_ICONEXCLAMATION);
display_error(buff);
exit(1);
}
if (p->headx==p->locx && p->heady==p->locy && !p->anim_phase)

View file

@ -1,5 +1,4 @@
#include <skeldal_win.h>
#include <debug.h>
#include <types.h>
#include <stdio.h>
#include <stdlib.h>
@ -107,7 +106,7 @@ static long old_timer;
static void wait_timer()
{
Sleep(10);
sleep_ms(10);
}
/*void zooming1(void *source,long target,word *background,void *xlat,long xysize)
@ -634,14 +633,8 @@ void show_cel(int celx,int cely,void *stena,int xofs,int yofs,char rev)
zoom.ycount=realsy+1;
zoom.xmax=realsx;
zoom.line_len=scr_linelen;
__try
{
if (rev) sikma_zprava(); else sikma_zleva();
}
__finally
{
}
}
void show_cel2(int celx,int cely,void *stena,int xofs,int yofs,char rev)

View file

@ -1,8 +1,9 @@
#include <skeldal_win.h>
#include "types.h"
#include "Engine1.h"
#include "engine1.h"
#include <bgraph.h>
#include <string.h>
typedef ZOOMINFO tzoom;
@ -453,8 +454,8 @@ void scroll_and_copy(void *pic,void *slide, void *scr, int _size,int shift, void
int y;
for (y = 0; y < lc; y++ ) {
int left = __min(lnfo[0],lnfo[2]);
int right = __max(lnfo[1],lnfo[3]);
int left = MIN(lnfo[0],lnfo[2]);
int right = MAX(lnfo[1],lnfo[3]);
int x;
for (x = left; x <= right; x++) {

View file

@ -1,11 +1,8 @@
#include <skeldal_win.h>
#include <debug.h>
#include <dos.h>
#include <bios.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <malloc.h>
#include <mem.h>
#include <pcx.h>
@ -17,11 +14,13 @@
#include <bmouse.h>
#include <memman.h>
#include <fcntl.h>
#include <io.h>
#include <zvuk.h>
#include <SYS\STAT.H>
#include <stdarg.h>
#include "globals.h"
#include "temp_storage.h"
#include <assert.h>
#include <sys/stat.h>
#define STATE_CUR_VER 1
#define _GAME_ST "_GAME.TMP"
@ -38,7 +37,7 @@
#define SSAVE_VERSION 0
static FILE *story=NULL;
static TMPFILE_WR *story=NULL;
static char load_another;
char reset_mobiles=0;
@ -91,40 +90,30 @@ static word vypocet_crc(char *data,long delka)
while(delka>-1);
return l & 0xffff;
}
static unable_open_temp(char *c)
static int unable_open_temp(char *c)
{
char d[]="Unable to open the file : ",*e;
concat(e,d,c);
closemode();
MessageBox(NULL,e,NULL,MB_OK|MB_ICONSTOP);
display_error(e);
SEND_LOG("(SAVELOAD) Open temp error detected (%s)",c,0);
exit(1);
}
static unable_write_temp(char *c)
static void unable_write_temp(char *c)
{
char d[]="Unable to write to the temp file : ",*e;
concat(e,d,c);
closemode();
MessageBox(NULL,e,NULL,MB_OK|MB_ICONSTOP);
display_error(e);
SEND_LOG("(SAVELOAD) Open temp error detected (%s)",c,0);
exit(1);
}
void expand_map_file_name(char *s) //prepise *.map na fullpath\*.TMP
{
char *c;
char *st;
c=strchr(s,0);
while (c!=s && *c!='.' && *c!='\\') c--;
if (*c=='.') strcpy(c,".TMP");
concat(st,pathtable[SR_TEMP],s);
strcpy(s,st);
}
int load_org_map(char *filename,void **sides,void **sectors,void **coords,int *mapsize)
int load_org_map(char *filename,TSTENA **sides,TSECTOR **sectors,TMAP_EDIT_INFO **coords,int *mapsize)
{
FILE *f;
void *temp;
@ -174,18 +163,18 @@ int load_org_map(char *filename,void **sides,void **sectors,void **coords,int *m
return 0;
}
void save_daction(FILE *f,int count,D_ACTION *ptr)
void save_daction(TMPFILE_WR *f,int count,D_ACTION *ptr)
{
if (ptr!=NULL)
{
save_daction(f,count+1,ptr->next);
fwrite(ptr,1,sizeof(D_ACTION),f);
temp_storage_write(ptr,sizeof(D_ACTION),f);
}
else
fwrite(&count,1,2,f);
temp_storage_write(&count,2,f);
}
void load_daction(FILE *fsta)
void load_daction(TMPFILE_RD *fsta)
{
int i,j;
i=0;
@ -194,19 +183,19 @@ void load_daction(FILE *fsta)
D_ACTION *p;
p=d_action; d_action=p->next;free(p);
}
fread(&i,1,2,fsta);d_action=NULL;
temp_storage_read(&i,2,fsta);d_action=NULL;
for(j=0;j<i;j++)
{
D_ACTION *p;
p=(D_ACTION *)getmem(sizeof(D_ACTION));
fread(p,1,sizeof(D_ACTION),fsta);
temp_storage_read(p,sizeof(D_ACTION),fsta);
p->next=d_action;
d_action=p;
}
}
void save_items(FILE *f)
void save_items(TMPFILE_WR *f)
{
int i,j;
short *c;
@ -215,55 +204,55 @@ void save_items(FILE *f)
if (map_items[i]!=NULL)
{
for(j=1,c=map_items[i];*c;c++,j++);
fwrite(&i,1,2,f);
fwrite(&j,1,2,f);
fwrite(map_items[i],2,j,f);
temp_storage_write(&i,2,f);
temp_storage_write(&j,2,f);
temp_storage_write(map_items[i],2*j,f);
}
i=-1;
fwrite(&i,1,2,f);
temp_storage_write(&i,2,f);
}
void restore_items(FILE *f)
void restore_items(TMPFILE_RD *f)
{
short i,j;
for(i=0;i<mapsize*4;i++) if (map_items[i]!=NULL) free(map_items[i]);
memset(map_items,0,mapsize*16);
while(fread(&i,1,2,f) && i!=-1)
while(temp_storage_read(&i,1*2,f) && i!=-1)
{
fread(&j,1,2,f);
temp_storage_read(&j,1*2,f);
map_items[i]=(short *)getmem(j*2);
fread(map_items[i],2,j,f);
temp_storage_read(map_items[i],2*j,f);
}
}
extern TSTR_LIST texty_v_mape;
void save_map_description(FILE *f)
void save_map_description(TMPFILE_WR *f)
{
int count,max;
int i;
if (texty_v_mape==NULL) max=0;else max=str_count(texty_v_mape);
for(i=0,count=0;i<max;i++) if (texty_v_mape[i]!=NULL) count++;
fwrite(&count,1,sizeof(count),f);
temp_storage_write(&count,1*sizeof(count),f);
for(i=0;i<max;i++) if (texty_v_mape[i]!=NULL)
{
int len;
len=strlen(texty_v_mape[i]+12)+12+1;
fwrite(&len,1,2,f);
fwrite(texty_v_mape[i],1,len,f);
temp_storage_write(&len,1*2,f);
temp_storage_write(texty_v_mape[i],1*len,f);
}
}
void load_map_description(FILE *f)
void load_map_description(TMPFILE_RD *f)
{
int count;
int i;
word len;
if (texty_v_mape!=NULL)release_list(texty_v_mape);
fread(&count,1,sizeof(count),f);
temp_storage_read(&count,1*sizeof(count),f);
if (!count)
{
texty_v_mape=NULL;
@ -272,7 +261,7 @@ void load_map_description(FILE *f)
texty_v_mape=create_list(count);
for(i=0;i<count;i++)
{
fread(&len,1,2,f);
temp_storage_read(&len,1*2,f);
{
char *s;
s=(char *)alloca(len);
@ -280,59 +269,59 @@ void load_map_description(FILE *f)
s[len-1]=0;
str_replace(&texty_v_mape,i,s);
}
fread(texty_v_mape[i],1,len,f);
temp_storage_read(texty_v_mape[i],1*len,f);
}
}
void save_vyklenky(FILE *fsta)
void save_vyklenky(TMPFILE_WR *fsta)
{
fwrite(&vyk_max,1,sizeof(vyk_max),fsta);
temp_storage_write(&vyk_max,1*sizeof(vyk_max),fsta);
if (vyk_max)
fwrite(map_vyk,vyk_max,sizeof(TVYKLENEK),fsta);
temp_storage_write(map_vyk,vyk_max*sizeof(TVYKLENEK),fsta);
}
int load_vyklenky(FILE *fsta)
int load_vyklenky(TMPFILE_RD *fsta)
{
int i=0;
fread(&i,1,sizeof(vyk_max),fsta);
temp_storage_read(&i,1*sizeof(vyk_max),fsta);
if (vyk_max)
{
if (i>vyk_max) return -2;
fread(map_vyk,vyk_max,sizeof(TVYKLENEK),fsta);
temp_storage_read(map_vyk,vyk_max*sizeof(TVYKLENEK),fsta);
}
return 0;
}
void save_all_fly(FILE *fsta)
void save_all_fly(TMPFILE_WR *fsta)
{
LETICI_VEC *f;
f=letici_veci;
fwrite(&f,1,sizeof(f),fsta);
temp_storage_write(&f,1*sizeof(f),fsta);
while (f!=NULL)
{
short *c;
fwrite(f,1,sizeof(*f),fsta);
temp_storage_write(f,1*sizeof(*f),fsta);
c=f->items;
if (c!=NULL) do fwrite(c,1,2,fsta); while (*c++);
if (c!=NULL) do temp_storage_write(c,1*2,fsta); while (*c++);
f=f->next;
}
}
int load_all_fly(FILE *fsta)
int load_all_fly(TMPFILE_RD *fsta)
{
LETICI_VEC *f=NULL,*n,*p;
p=letici_veci;
while (p!=NULL) {stop_fly(letici_veci,0);p=p->next;}
fread(&f,1,sizeof(f),fsta);
temp_storage_read(&f,1*sizeof(f),fsta);
p=letici_veci;
while (f!=NULL)
{
short items[100],*c;
n=New(LETICI_VEC);
c=items;memset(items,0,sizeof(items));
if (fread(n,1,sizeof(*n),fsta)!=sizeof(*n))
if (temp_storage_read(n,1*sizeof(*n),fsta)!=sizeof(*n))
{
free(n);
if (p!=NULL) p->next=NULL;
@ -341,7 +330,7 @@ int load_all_fly(FILE *fsta)
if (n->items!=NULL)
{
do
fread(c,1,2,fsta);
temp_storage_read(c,1*2,fsta);
while (*c++);
n->items=NewArr(short,c-items);
memcpy(n->items,items,(c-items)*sizeof(short));
@ -361,65 +350,62 @@ int save_map_state() //uklada stav mapy pro savegame (neuklada aktualni pozici);
{
char sta[200];
char *bf;
FILE *fsta;
TMPFILE_WR *fsta;
int i;
long siz;
TSTENA *org_sides;
TSECTOR *org_sectors;
short res=-1;
int ver=0;
unsigned char ver=0;
restore_sound_names();
strcpy(sta,level_fname);
expand_map_file_name(sta);
fsta=fopen(sta,"wb");if (fsta==NULL) unable_open_temp(sta);
fsta=temp_storage_create(sta);if (fsta==NULL) unable_open_temp(sta);
SEND_LOG("(SAVELOAD) Saving map state for current map",0,0);
if (load_org_map(level_fname,&org_sides,&org_sectors,NULL,NULL)) goto err;
siz=(mapsize+7)/8;
bf=(char *)getmem(siz);
ver=0;
fwrite(&ver,sizeof(ver),1,fsta); //<-------------------------
ver=STATE_CUR_VER;
fwrite(&ver,sizeof(ver),1,fsta); //<-------------------------
fwrite(&mapsize,sizeof(mapsize),1,fsta); //<-------------------------
temp_storage_write(&ver,sizeof(ver)*1,fsta); //<-------------------------
temp_storage_write(&mapsize,sizeof(mapsize)*1,fsta); //<-------------------------
memset(bf,0,siz);
fwrite(&siz,1,sizeof(siz),fsta); //<-------------------------
temp_storage_write(&siz,1*sizeof(siz),fsta); //<-------------------------
for(i=0;i<mapsize;i++) //save automap
if (map_coord[i].flags & MC_AUTOMAP) bf[i>>3]|=1<<(i & 7);
if (!fwrite(bf,siz,1,fsta)) goto err; //<-------------------------
temp_storage_write(bf,siz*1,fsta);
for(i=0;i<mapsize;i++) //save disclosed
if (map_coord[i].flags & MC_DISCLOSED) bf[i>>3]|=1<<(i & 7);
if (!fwrite(bf,siz,1,fsta)) goto err; //<-------------------------
temp_storage_write(bf,siz*1,fsta);
save_map_description(fsta);
for(i=0;i<mapsize*4;i++) //save changed sides
if (memcmp(map_sides+i,org_sides+i,sizeof(TSTENA)))
{
fwrite(&i,1,2,fsta);
if (fwrite(map_sides+i,1,sizeof(TSTENA),fsta)!=sizeof(TSTENA)) goto err;
temp_storage_write(&i,1*2,fsta);
temp_storage_write(map_sides+i,1*sizeof(TSTENA),fsta);
}
i=-1;
fwrite(&i,1,2,fsta);
temp_storage_write(&i,1*2,fsta);
for(i=0;i<mapsize;i++) //save changed sectors
if (memcmp(map_sectors+i,org_sectors+i,sizeof(TSECTOR)))
{
fwrite(&i,1,2,fsta);
if (fwrite(map_sectors+i,1,sizeof(TSECTOR),fsta)!=sizeof(TSECTOR)) goto err;
temp_storage_write(&i,1*2,fsta);
temp_storage_write(map_sectors+i,1*sizeof(TSECTOR),fsta);
}
i=-1;
fwrite(&i,1,2,fsta);
temp_storage_write(&i,1*2,fsta);
for(i=0;i<MAX_MOBS;i++) if (mobs[i].vlajky & MOB_LIVE)
{
fwrite(&i,1,2,fsta);
fwrite(mobs+i,1,sizeof(TMOB),fsta); //save_mobmap
temp_storage_write(&i,1*2,fsta);
temp_storage_write(mobs+i,1*sizeof(TMOB),fsta); //save_mobmap
}
i=-1;
fwrite(&i,1,2,fsta);
temp_storage_write(&i,1*2,fsta);
i=mapsize*4;
fwrite(&i,1,sizeof(i),fsta); //save flag maps //<-------------------------
if (fwrite(flag_map,1,i,fsta)!=(unsigned)i) goto err; //<-------------------------
temp_storage_write(&i,1*sizeof(i),fsta); //save flag maps //<-------------------------
temp_storage_write(flag_map,1*i,fsta);
save_daction(fsta,0,d_action); //save dactions//<-------------------------
fwrite(&macro_block_size,1,sizeof(macro_block_size),fsta);
if (macro_block_size)fwrite(macro_block,1,macro_block_size,fsta);//save_macros
temp_storage_write(&macro_block_size,1*sizeof(macro_block_size),fsta);
if (macro_block_size)temp_storage_write(macro_block,1*macro_block_size,fsta);//save_macros
if (save_codelocks(fsta)) goto err;
save_items(fsta);
save_vyklenky(fsta);
@ -428,7 +414,7 @@ int save_map_state() //uklada stav mapy pro savegame (neuklada aktualni pozici);
res=0;
err:
SEND_LOG("(SAVELOAD) State of current map saved (err:%d)",res,0);
fclose(fsta);
temp_storage_close_wr(fsta);
free(org_sectors);
free(org_sides);
free(bf);
@ -444,76 +430,63 @@ int load_map_state() //obnovuje stav mapy; nutno volat po zavolani load_map;
{
char sta[200];
char *bf;
FILE *fsta;
TMPFILE_RD *fsta;
int i;
long siz;
short res=-2;
int ver=0;
unsigned char ver=0;
strcpy(sta,level_fname);
expand_map_file_name(sta);
fsta=fopen(sta,"rb");if (fsta==NULL) return -1;
i=0;fread(&i,sizeof(mapsize),1,fsta);
if (i==0)
{
if (!fread(&ver,sizeof(ver),1,fsta)) goto err;
fsta=temp_storage_open(sta);if (fsta==NULL) return -1;
i=0;
if (!temp_storage_read(&ver,sizeof(ver)*1,fsta)) goto err;
if (ver>STATE_CUR_VER) goto err;
if (!fread(&i,sizeof(mapsize),1,fsta)) goto err;
if (!temp_storage_read(&i,sizeof(mapsize)*1,fsta)) goto err;
if (mapsize!=i) goto err;
SEND_LOG("(SAVELOAD) Loading map state for current map",0,0);
fread(&siz,1,sizeof(siz),fsta);
temp_storage_read(&siz,1*sizeof(siz),fsta);
bf=(char *)getmem(siz);
if (!fread(bf,siz,1,fsta)) goto err;
if (!temp_storage_read(bf,siz*1,fsta)) goto err;
for (i=0;i<mapsize;i++)
if ((bf[i>>3]>>(i & 7)) & 1) map_coord[i].flags|=MC_AUTOMAP;
if (!fread(bf,siz,1,fsta)) goto err;
if (!temp_storage_read(bf,siz*1,fsta)) goto err;
for (i=0;i<mapsize;i++)
if ((bf[i>>3]>>(i & 7)) & 1) map_coord[i].flags|=MC_DISCLOSED;
}
else
{
if (mapsize!=i) return fclose(fsta);
SEND_LOG("(SAVELOAD) Loading map state for current map",0,0);
fread(&siz,1,sizeof(siz),fsta);
bf=(char *)getmem(siz);
if (!fread(bf,siz,1,fsta)) goto err;
for (i=0;i<mapsize;i++)
map_coord[i].flags|=(bf[i>>3]>>(i & 7)) & 1;
}
load_map_description(fsta);
while (fread(&i,1,2,fsta) && i<=mapsize*4)
if (fread(map_sides+i,1,sizeof(TSTENA),fsta)!=sizeof(TSTENA)) goto err;
while (fread(&i,1,2,fsta) && i<=mapsize)
if (fread(map_sectors+i,1,sizeof(TSECTOR),fsta)!=sizeof(TSECTOR)) goto err;
while (temp_storage_read(&i,1*2,fsta) && i<=mapsize*4)
if (temp_storage_read(map_sides+i,1*sizeof(TSTENA),fsta)!=sizeof(TSTENA)) goto err;
while (temp_storage_read(&i,1*2,fsta) && i<=mapsize)
if (temp_storage_read(map_sectors+i,1*sizeof(TSECTOR),fsta)!=sizeof(TSECTOR)) goto err;
if (reset_mobiles) //reloads mobiles if flag present
{
char mm[MAX_MOBS];
for(i=0;i<MAX_MOBS;mobs[i].vlajky &=~MOB_LIVE,i++)
if (mobs[i].vlajky & MOB_LIVE) mm[i]=1;else mm[i]=0;
while (fread(&i,1,2,fsta) && i<=MAX_MOBS)
while (temp_storage_read(&i,1*2,fsta) && i<=MAX_MOBS)
{
if (mm[i]) mobs[i].vlajky |=MOB_LIVE;
fseek(fsta,sizeof(TMOB),SEEK_CUR);
temp_storage_skip(fsta,sizeof(TMOB));
}
reset_mobiles=0;
}
else
{
for(i=0;i<MAX_MOBS;(mobs[i].vlajky &=~MOB_LIVE),i++);
while (fread(&i,1,2,fsta) && i<=MAX_MOBS)
if (fread(mobs+i,1,sizeof(TMOB),fsta)!=sizeof(TMOB)) goto err;
while (temp_storage_read(&i,1*2,fsta) && i<=MAX_MOBS)
if (temp_storage_read(mobs+i,1*sizeof(TMOB),fsta)!=sizeof(TMOB)) goto err;
}
for(i=0;i<MAX_MOBS;i++) mobs[i].vlajky &=~MOB_IN_BATTLE;
refresh_mob_map();
fread(&i,1,sizeof(i),fsta);
fread(flag_map,1,i,fsta);
temp_storage_read(&i,1*sizeof(i),fsta);
temp_storage_read(flag_map,1*i,fsta);
load_daction(fsta);
fread(&i,1,sizeof(macro_block_size),fsta);
if (macro_block_size && i==macro_block_size)fread(macro_block,1,macro_block_size,fsta);
temp_storage_read(&i,1*sizeof(macro_block_size),fsta);
if (macro_block_size && i==macro_block_size) {
temp_storage_read(macro_block,1*macro_block_size,fsta);
}
else
{
fseek(fsta,i,SEEK_CUR);
temp_storage_skip(fsta,i);
SEND_LOG("(ERROR) Multiaction: Sizes mismatch %d != %d",i,macro_block_size);
}
if (load_codelocks(fsta)) goto err;
@ -524,7 +497,7 @@ int load_map_state() //obnovuje stav mapy; nutno volat po zavolani load_map;
res|=load_enemy_paths(fsta);
err:
SEND_LOG("(SAVELOAD) State of current map loaded (err:%d)",res,0);
fclose(fsta);
temp_storage_close_rd(fsta);
free(bf);
return res;
}
@ -547,7 +520,7 @@ void restore_current_map() //pouze obnovuje ulozeny stav aktualni mapy
_inline unsigned char rotate(unsigned char c)
{
return (c >> 1) | (c << 7);
/*
__asm
{
mov al,c
@ -563,99 +536,66 @@ _inline unsigned char rotate(unsigned char c)
2 internal error
3 checksum error
*/
int pack_status_file(FILE *f,char *status_name)
int pack_status_file(FILE *f,const char *status_name)
{
int stt;
char rcheck=0;
long fsz;
uint32_t fsz;
char *buffer,*c,*fullnam;
word crc;
unsigned char name_len;
SEND_LOG("(SAVELOAD) Packing status file '%s'",status_name,0);
fullnam=alloca(strlen(status_name)+strlen(pathtable[SR_TEMP])+1);
if (fullnam==NULL) return 2;
strcpy(fullnam,pathtable[SR_TEMP]);
strcat(fullnam,status_name);
stt=open(fullnam,O_RDONLY | O_BINARY);
fsz=filelength(stt);
c=buffer=getmem(fsz+12+4+2);
strcpy(c,status_name);c+=12;
*(long *)c=fsz+2;
c+=sizeof(long);
read(stt,c,fsz);
close(stt);
crc=vypocet_crc(c,fsz);
c+=fsz;
memcpy(c,&crc,sizeof(crc));
fsz+=12+4+2;
fsz = temp_storage_find(status_name);
if (fsz < 0) return 2;
name_len = (unsigned char)strlen(status_name);
uint32_t extra = 1+name_len+4;
c=buffer=getmem(fsz+extra);
*c = name_len;
++c;
memcpy(c,status_name, name_len);
c += name_len;
memcpy(c,&fsz,4);
temp_storage_retrieve(status_name, c, fsz);
fsz+=extra;
rcheck=(fwrite(buffer,1,fsz,f)!=(unsigned)fsz);
free(buffer);
return rcheck;
return 0;
}
int unpack_status_file(FILE *f)
{
int stt;
char rcheck=0;
long fsz;
char *buffer,*c,*fullnam;
char name[13];
word crc,crccheck;
uint32_t fsz;
char *buffer;
unsigned char namelen = 0;
char name[256];
name[12]=0;
name[11]=0;
fread(name,1,12,f);
fread(&namelen, 1,1, f);
if (namelen == 0) return -1;
fread(name, 1, namelen, f);
SEND_LOG("(SAVELOAD) Unpacking status file '%s'",name,0);
if (name[0]==0) return -1;
fread(&fsz,1,4,f);
c=buffer=(char *)getmem(fsz);
buffer=(char *)getmem(fsz);
if (fread(buffer,1,fsz,f)!=(unsigned)fsz) return 1;
fullnam=alloca(strlen(name)+strlen(pathtable[SR_TEMP])+2);
if (fullnam==NULL) return 2;
strcpy(fullnam,pathtable[SR_TEMP]);
strcat(fullnam,name);
fsz-=2;
crc=vypocet_crc(c,fsz);
c+=fsz;memcpy(&crccheck,c,sizeof(crccheck));
if (crc!=crccheck)
{
temp_storage_store(name, buffer, fsz);
free(buffer);
return 3;
}
stt=open(fullnam,O_BINARY | O_RDWR | O_CREAT | O_TRUNC, _S_IREAD | _S_IWRITE);
if (stt==-1)
{
free(buffer);
return 1;
}
rcheck=(write(stt,buffer,fsz)!=fsz) ;
free(buffer);
close(stt);
return rcheck;
}
static void pack_status_file_cb(const char *name, void *ctx) {
pack_status_file((FILE *)ctx, name);
}
int pack_all_status(FILE *f)
{
char *c;
WIN32_FIND_DATA inf;
HANDLE res;
concat(c,pathtable[SR_TEMP],"*.TMP");
res=FindFirstFile(c,&inf);
if (res!=INVALID_HANDLE_VALUE)
do
{
int i;
if (inf.cFileName[0]!='~')
{
i=pack_status_file(f,inf.cFileName);
if (i) return i;
}
}
while (FindNextFile(res,&inf));
FindClose(res);
c[0]=0;
fwrite(c,1,12,f);
char c = 0;
temp_storage_list(pack_status_file_cb, f);
fwrite(&c,1,1,f);
return 0;
}
@ -671,7 +611,7 @@ int unpack_all_status(FILE *f)
int save_basic_info()
{
FILE *f;
TMPFILE_WR *f;
char *c;
S_SAVE s;
short *p;
@ -679,9 +619,8 @@ int save_basic_info()
char res=0;
THUMAN *h;
concat(c,pathtable[SR_TEMP],_GAME_ST);
SEND_LOG("(SAVELOAD) Saving basic info for game (file:%s)",c,0);
f=fopen(c,"wb");
SEND_LOG("(SAVELOAD) Saving basic info for game (file:%s)",_GAME_ST ,0);
f=temp_storage_create(_GAME_ST);
if (f==NULL) return 1;
s.viewsector=viewsector;
s.viewdir=viewdir;
@ -713,24 +652,24 @@ int save_basic_info()
for(i=1,p=picked_item;*p;i++,p++);else i=0;
s.picks=i;
s.items_added=item_count-it_count_orgn;
res|=(fwrite(&s,1,sizeof(s),f)!=sizeof(s));
temp_storage_write(&s,1*sizeof(s),f);
if (i)
res|=(fwrite(picked_item,2,i,f)!=(unsigned)i);
temp_storage_write(picked_item,2*i,f);
if (s.items_added)
res|=(fwrite(glob_items+it_count_orgn,sizeof(TITEM),s.items_added,f)!=(unsigned)s.items_added);
res|=save_spells(f);
if (!res) res|=(fwrite(postavy,1,sizeof(postavy),f)!=sizeof(postavy));
temp_storage_write(glob_items+it_count_orgn,sizeof(TITEM)*s.items_added,f);
save_spells(f);
temp_storage_write(postavy,1*sizeof(postavy),f);
for(i=0,h=postavy;i<POCET_POSTAV;h++,i++) if (h->demon_save!=NULL)
fwrite(h->demon_save,sizeof(THUMAN),1,f); //ulozeni polozek s demony
temp_storage_write(h->demon_save,sizeof(THUMAN)*1,f); //ulozeni polozek s demony
res|=save_dialog_info(f);
fclose(f);
temp_storage_close_wr(f);
SEND_LOG("(SAVELOAD) Done... Result: %d",res,0);
return res;
}
int load_basic_info()
{
FILE *f;
TMPFILE_RD *f;
char *c;
S_SAVE s;
int i;
@ -738,29 +677,28 @@ int load_basic_info()
TITEM *itg;
THUMAN *h;
concat(c,pathtable[SR_TEMP],_GAME_ST);
SEND_LOG("(SAVELOAD) Loading basic info for game (file:%s)",c,0);
f=fopen(c,"rb");
SEND_LOG("(SAVELOAD) Loading basic info for game (file:%s)",_GAME_ST,0);
f=temp_storage_open(_GAME_ST);
if (f==NULL) return 1;
res|=(fread(&s,1,sizeof(s),f)!=sizeof(s));
res|=(temp_storage_read(&s,1*sizeof(s),f)!=sizeof(s));
if (s.game_flags & GM_MAPENABLE) enable_glmap=1;else enable_glmap=0;
i=s.picks;
if (picked_item!=NULL) free(picked_item);
if (i)
{
picked_item=NewArr(short,i);
res|=(fread(picked_item,2,i,f)!=(unsigned)i);
res|=(temp_storage_read(picked_item,2*i,f)!=(unsigned)i);
}
else picked_item=NULL;
itg=NewArr(TITEM,it_count_orgn+s.items_added);
memcpy(itg,glob_items,it_count_orgn*sizeof(TITEM));
free(glob_items);glob_items=itg;
if (s.items_added)
res|=(fread(glob_items+it_count_orgn,sizeof(TITEM),s.items_added,f)!=(unsigned)s.items_added);
res|=(temp_storage_read(glob_items+it_count_orgn,sizeof(TITEM)*s.items_added,f)!=(unsigned)s.items_added);
item_count=it_count_orgn+s.items_added;
res|=load_spells(f);
for(i=0,h=postavy;i<POCET_POSTAV;h++,i++) if (h->demon_save!=NULL) free(h->demon_save);
if (!res) res|=(fread(postavy,1,sizeof(postavy),f)!=sizeof(postavy));
if (!res) res|=(temp_storage_read(postavy,1*sizeof(postavy),f)!=sizeof(postavy));
for(i=0,h=postavy;i<POCET_POSTAV;h++,i++)
{
h->programovano=0;
@ -769,11 +707,11 @@ int load_basic_info()
if (h->demon_save!=NULL)
{
h->demon_save=New(THUMAN);
fread(h->demon_save,sizeof(THUMAN),1,f);//obnova polozek s demony
temp_storage_read(h->demon_save,sizeof(THUMAN)*1,f);//obnova polozek s demony
}
}
res|=load_dialog_info(f);
fclose(f);
temp_storage_close_rd(f);
viewsector=s.viewsector;
viewdir=s.viewdir;
cur_group=s.cur_group;
@ -815,7 +753,7 @@ static void MakeSaveGameDir(const char *name)
char *p=(char *)alloca(strlen(name)+1);
strcpy(p,name);
p[strlen(p)-1]=0;
CreateDirectory(p,NULL);
mkdir(p,0666);
}
static int save_global_events()
@ -868,7 +806,7 @@ int save_game(int slotnum,char *gamename)
{
char buff[256];
sprintf(buff,"Nelze ulozit pozici na cestu: %s", ssn);
MessageBox(NULL,buff,NULL,MB_OK|MB_ICONSTOP|MB_SYSTEMMODAL);
display_error(buff);
}
else
{
@ -925,7 +863,7 @@ int load_game(int slotnum)
}
for(t=0;t<POCET_POSTAV;t++) postavy[t].zvolene_akce=NULL;
SEND_LOG("(SAVELOAD) Game loaded.... Result %d",r,0);
if (GetKeyState(VK_CONTROL) & 0x80) correct_level();
// if (GetKeyState(VK_CONTROL) & 0x80) correct_level();
return r;
}
@ -1083,8 +1021,7 @@ static void redraw_story_bar(int pos)
showview(x,STORY_Y+SCREEN_OFFLINE,STORY_XS,STORY_YS);
}
//#pragma aux read_story_task parm []
static read_story_task(va_list args)
static void read_story_task(va_list args)
{
int slot=va_arg(args,int);
@ -1132,7 +1069,7 @@ static read_story_task(va_list args)
static void read_story(int slot)
{
static task_num=-1;
static int task_num=-1;
if (task_num!=-1) term_task(task_num);
if (slot!=-1)
@ -1210,7 +1147,7 @@ static EVENT_PROC(updown_scroll_hold)
}
}
static char updown_scroll(int id,int xa,int ya,int xr,int yr)
char updown_scroll(int id,int xa,int ya,int xr,int yr)
{
int count;
xr,yr,xa,ya;
@ -1508,30 +1445,22 @@ void wire_save_load(char save)
void open_story_file()
{
char *c;
int err;
concat(c,pathtable[SR_TEMP],STORY_BOOK);
story=fopen(c,"a");
err=GetLastError();
if (story==NULL) story=fopen(c,"w");
if (story==NULL)
unable_open_temp(c);
story=temp_storage_append(STORY_BOOK);
SEND_LOG("(STORY) Story temp file is opened....",0,0);
}
void write_story_text(char *text)
{
if (fputs(text,story)==EOF)
unable_write_temp(STORY_BOOK);
if (fputs("\n",story)==EOF)
unable_write_temp(STORY_BOOK);
int l = strlen(text);
temp_storage_write( text, l, story);
temp_storage_write("\n", 1, story);
}
void close_story_file()
{
if (story!=NULL) fclose(story);
if (story!=NULL) temp_storage_close_wr(story);
story=NULL;
SEND_LOG("(STORY) Story temp file is closed...",0,0);
}
@ -1540,31 +1469,34 @@ static int load_map_state_partial(char *level_fname,int mapsize) //obnovuje stav
{
char sta[200];
char *bf;
FILE *fsta;
TMPFILE_RD *fsta;
int i;
long siz;
short res=-2;
unsigned char ver;
strcpy(sta,level_fname);
expand_map_file_name(sta);
fsta=fopen(sta,"rb");if (fsta==NULL) return -1;
i=0;fread(&i,sizeof(mapsize),1,fsta);if (mapsize!=i)goto err;
fsta=temp_storage_open(level_fname);
if (fsta==NULL) return -1;
if (!temp_storage_read(&ver,sizeof(ver)*1,fsta)) goto err;
if (ver>STATE_CUR_VER) goto err;
if (!temp_storage_read(&i,sizeof(mapsize)*1,fsta)) goto err;
if (mapsize!=i) goto err;
SEND_LOG("(SAVELOAD) Partial restore for map: %s (%s)",level_fname,"START");
fread(&siz,1,sizeof(siz),fsta);
temp_storage_read(&siz,1*sizeof(siz),fsta);
bf=(char *)getmem(siz);
if (!fread(bf,siz,1,fsta)) goto err;
if (!temp_storage_read(bf,siz*1,fsta)) goto err;
for (i=0;i<mapsize;i++)
map_coord[i].flags|=(bf[i>>3]>>(i & 7)) & 1;
load_map_description(fsta);
while (fread(&i,1,2,fsta) && i<=mapsize*4)
if (fread(map_sides+i,1,sizeof(TSTENA),fsta)!=sizeof(TSTENA)) goto err;
while (fread(&i,1,2,fsta) && i<=mapsize)
if (fread(map_sectors+i,1,sizeof(TSECTOR),fsta)!=sizeof(TSECTOR)) goto err;
while (temp_storage_read(&i,1*2,fsta) && i<=mapsize*4)
if (temp_storage_read(map_sides+i,1*sizeof(TSTENA),fsta)!=sizeof(TSTENA)) goto err;
while (temp_storage_read(&i,1*2,fsta) && i<=mapsize)
if (temp_storage_read(map_sectors+i,1*sizeof(TSECTOR),fsta)!=sizeof(TSECTOR)) goto err;
res=0;
err:
free(bf);
fclose(fsta);
temp_storage_close_rd(fsta);
SEND_LOG("(SAVELOAD) Partial restore for map: %s (%s)",level_fname,"DONE");
return res;
}

View file

@ -1,10 +1,15 @@
#include "types.h"
#include "engine1.h"
#include "temp_storage.h"
#include <stdint.h>
#include <stdlib.h>
#define POCET_POSTAV 6
#define HODINA 360
#define MAX_FILESYSTEM_PATH 256
#define A_SIDEMAP 0x8001
#define A_SECTMAP 0x8002
@ -79,7 +84,10 @@
#define SD_DIRECTION 0x03 //smer akce.
#define get_string(t) texty[t]
#define rnd(num) (rand()*(num)/(RAND_MAX+1))
static __inline unsigned int rnd(unsigned int max) {
return rand() % max;
}
static __inline int rangrnd(int a, int b) {return rnd(b-a+1)+a;}
@ -110,8 +118,7 @@ static __inline int rangrnd(int a, int b) {return rnd(b-a+1)+a;}
#define NOSHADOW(x) ((x)|BGSWITCHBIT)
#define SWAPPATH pathtable[SR_TEMP]
#define TEMP_FILE "~SKELDAL.TMP"
#define PICTURES "..\\OBRAZKY\\"
#define PIC_FADE_PAL_SIZE (10*512+6)
@ -625,7 +632,7 @@ void pcx_8bit_nopal(void **p,long *s);
void set_background(void **p,long *s);
void wav_load(void **p,long *s);
void wire_main_functs();
void ukaz_kompas();
void ukaz_kompas(char mode);
void *timming(EVENT_MSG *msg,void **data);
void do_timer();
void hold_timer(int id,char hld);
@ -640,8 +647,11 @@ void bott_draw_proc();
THE_TIMER *add_to_timer(int id,int delay,int maxcall,void *proc);
void mouse_set_default(int cursor);
void create_frame(int x,int y,int xs,int ys,char clear);
void save_dump();
void bott_disp_text(char *);
void save_dump(const uint16_t *screen_addr,
unsigned int width,
unsigned int height,
unsigned int linelen);
void bott_disp_text(const char *);
void bott_text_forever();
char chod_s_postavama(char sekupit);
void hide_ms_at(int line); //schova mysku ktera je nad line
@ -1059,41 +1069,41 @@ char load_saved_shops();
#define MAGLOB_LEAVEMAP 0 // v urcitou nastavenou hodinu a minutu dene
#define MAGLOB_STARTSLEEP 1 // postavy maji jit spat.
#define MAGLOB_ENDSLEEP 2 // postavy se probouzi
#define MAGLOB_CLICKSAVE 3 // před otevřením SAVE dialogu
#define MAGLOB_AFTERSAVE 4 // po uložení hry
#define MAGLOB_BEFOREMAGIC 5 // před vyvoláním kouzla
#define MAGLOB_AFTERMAGIC 6 //po vyvolání kouzla
#define MAGLOB_BEFOREMAPOPEN 7 //před otevřením mapy
#define MAGLOB_AFTERMAPOPEN 8 //po uzavření mapy
#define MAGLOB_BEFOREBATTLE 9 //před spuštěním souboje
#define MAGLOB_AFTERBATTLE 10 //po ukončení souboje
#define MAGLOB_BEFOREBOOK 11 //pred otevřením knihy
#define MAGLOB_AFTERBOOK 12 //po uzavření knihy
#define MAGLOB_ONROUND 13 //při každém kole nebo po 10s
#define MAGLOB_ONDEADMAN 14 //při umrtí muže
#define MAGLOB_ONDEADWOMAN 15 //při umrtí ženy
#define MAGLOB_ONDEADALL 16 //při umrtí všech postav
#define MAGLOB_ONHITMAN 17 //při zásahu muže
#define MAGLOB_ONHITWOMAN 18 //při zásahu ženy
#define MAGLOB_ONNEWRUNE 19 //při nalezení nové runy
#define MAGLOB_ONPICKITEM 20 //při sebrání předmětu (pro speciální předměty)
#define MAGLOB_ONSTEP 21 //při kroku (před animaci)
#define MAGLOB_ONTURN 22 //při otočení (před animaci)
#define MAGLOB_ALARM 23 //při spuštění alarmu
#define MAGLOB_CLICKSAVE 3 // p<EFBFBD>ed otev<65>en<65>m SAVE dialogu
#define MAGLOB_AFTERSAVE 4 // po ulo<EFBFBD>en<EFBFBD> hry
#define MAGLOB_BEFOREMAGIC 5 // p<EFBFBD>ed vyvol<6F>n<EFBFBD>m kouzla
#define MAGLOB_AFTERMAGIC 6 //po vyvol<EFBFBD>n<EFBFBD> kouzla
#define MAGLOB_BEFOREMAPOPEN 7 //p<EFBFBD>ed otev<65>en<65>m mapy
#define MAGLOB_AFTERMAPOPEN 8 //po uzav<EFBFBD>en<EFBFBD> mapy
#define MAGLOB_BEFOREBATTLE 9 //p<EFBFBD>ed spu<70>t<EFBFBD>n<EFBFBD>m souboje
#define MAGLOB_AFTERBATTLE 10 //po ukon<EFBFBD>en<EFBFBD> souboje
#define MAGLOB_BEFOREBOOK 11 //pred otev<EFBFBD>en<EFBFBD>m knihy
#define MAGLOB_AFTERBOOK 12 //po uzav<EFBFBD>en<EFBFBD> knihy
#define MAGLOB_ONROUND 13 //p<EFBFBD>i ka<6B>d<EFBFBD>m kole nebo po 10s
#define MAGLOB_ONDEADMAN 14 //p<EFBFBD>i umrt<72> mu<6D>e
#define MAGLOB_ONDEADWOMAN 15 //p<EFBFBD>i umrt<72> <20>eny
#define MAGLOB_ONDEADALL 16 //p<EFBFBD>i umrt<72> v<>ech postav
#define MAGLOB_ONHITMAN 17 //p<EFBFBD>i z<>sahu mu<6D>e
#define MAGLOB_ONHITWOMAN 18 //p<EFBFBD>i z<>sahu <20>eny
#define MAGLOB_ONNEWRUNE 19 //p<EFBFBD>i nalezen<65> nov<6F> runy
#define MAGLOB_ONPICKITEM 20 //p<EFBFBD>i sebr<62>n<EFBFBD> p<>edm<64>tu (pro speci<63>ln<6C> p<>edm<64>ty)
#define MAGLOB_ONSTEP 21 //p<EFBFBD>i kroku (p<>ed animaci)
#define MAGLOB_ONTURN 22 //p<EFBFBD>i oto<74>en<65> (p<>ed animaci)
#define MAGLOB_ALARM 23 //p<EFBFBD>i spu<70>t<EFBFBD>n<EFBFBD> alarmu
#define MAGLOB_ONFIREMAGIC 24
#define MAGLOB_ONWATERMAGIC 25
#define MAGLOB_ONGROUNDMAGIC 26
#define MAGLOB_ONAIRMAGIC 27
#define MAGLOB_ONMINDMAGIC 28
#define MAGLOB_ONSPELLID1 29 //při jednom konrétním kouzle
#define MAGLOB_ONSPELLID2 30 //při jednom konrétním kouzle
#define MAGLOB_ONSPELLID3 31 //při jednom konrétním kouzle
#define MAGLOB_ONSPELLID4 32 //při jednom konrétním kouzle
#define MAGLOB_ONSPELLID5 33 //při jednom konrétním kouzle
#define MAGLOB_ONSPELLID6 34 //při jednom konrétním kouzle
#define MAGLOB_ONSPELLID7 35 //při jednom konrétním kouzle
#define MAGLOB_ONSPELLID8 36 //při jednom konrétním kouzle
#define MAGLOB_ONSPELLID9 37 //při jednom konrétním kouzle
#define MAGLOB_ONSPELLID1 29 //p<EFBFBD>i jednom konr<6E>tn<74>m kouzle
#define MAGLOB_ONSPELLID2 30 //p<EFBFBD>i jednom konr<6E>tn<74>m kouzle
#define MAGLOB_ONSPELLID3 31 //p<EFBFBD>i jednom konr<6E>tn<74>m kouzle
#define MAGLOB_ONSPELLID4 32 //p<EFBFBD>i jednom konr<6E>tn<74>m kouzle
#define MAGLOB_ONSPELLID5 33 //p<EFBFBD>i jednom konr<6E>tn<74>m kouzle
#define MAGLOB_ONSPELLID6 34 //p<EFBFBD>i jednom konr<6E>tn<74>m kouzle
#define MAGLOB_ONSPELLID7 35 //p<EFBFBD>i jednom konr<6E>tn<74>m kouzle
#define MAGLOB_ONSPELLID8 36 //p<EFBFBD>i jednom konr<6E>tn<74>m kouzle
#define MAGLOB_ONSPELLID9 37 //p<EFBFBD>i jednom konr<6E>tn<74>m kouzle
#define MAGLOB_ONTIMER1 38 //cas - pocet hernich sekund od nastaveni
#define MAGLOB_ONTIMER2 39 //cas - pocet hernich sekund od nastaveni
#define MAGLOB_ONTIMER3 40 //cas - pocet hernich sekund od nastaveni
@ -1107,7 +1117,7 @@ char load_saved_shops();
#define MAGLOB_ONFLUTE7 48 //zahrani urcite melodie
#define MAGLOB_ONFLUTE8 49 //zahrani urcite melodie
#define MAGLOB_NEXTID 50 //musí být poslední
#define MAGLOB_NEXTID 50 //mus<EFBFBD> b<>t posledn<64>
@ -1283,8 +1293,8 @@ void call_macro(int side,int flags);
void call_macro_ex(int side,int flags, int runatsect);
char get_player_triggered(int p); //zjistuje zda hrac s cislem p byl makrem zasazen;
char save_load_trigger(short load); //uklada/obnovuje trigger vlajky. -1 uklada, jinak hodnota ulozeneho triggeru
char save_codelocks(FILE *fsta); //uklada do savegame nastaveni kodovych zamku (128 bytu);
char load_codelocks(FILE *fsta); //obnovuje ze savegame nastaveni kodovych zamku (128 bytu);
char save_codelocks(TMPFILE_WR *fsta); //uklada do savegame nastaveni kodovych zamku (128 bytu);
char load_codelocks(TMPFILE_RD *fsta); //obnovuje ze savegame nastaveni kodovych zamku (128 bytu);
typedef struct letici_vec
@ -1364,7 +1374,8 @@ void user_setup();
void setup_dialoge();
char game_setup(int id,int xa,int ya,int xr,int yr);
void GamePause();
void show_textured_button(int x,int y,int xs,int ys,int texture,void *border3d);
typedef struct ctl3d CTL3D;
void show_textured_button(int x,int y,int xs,int ys,int texture,CTL3D *border3d);
//sounder & music
@ -1387,11 +1398,12 @@ void mute_all_tracks(char all);
void kill_all_sounds();
void create_sound_table(char *template,long size);
void create_sound_table_old();
void start_play_flute();
void start_play_flute(char );
void stop_play_flute();
void pc_speak_play_sample(char *sample,int size,char step,int freq);
char enable_sound(char enbl);
void wire_main_functs();
void unwire_main_functs();
//enemy
#define MOBS_INV 16
@ -1438,8 +1450,8 @@ typedef struct tmob
short lives; //pocet zivotu potvory
short cislo_vzoru; //informace urcujici ze ktereho vzoru byl mob vytvoren
short speed; //rychlost pohybu
short dohled; //kam dohldne
short dosah; //okamik za‡ tku souboje
short dohled; //kam dohl<EFBFBD>dne
short dosah; //okam<EFBFBD>ik za<7A><61>tku souboje
char stay_strategy; //chovani moba ve statickem modu (nepronasleduje)
char walk_data; //cislo potrebne pro pohyb moba v bludisti
word bonus; //bonus za zabiti
@ -1492,8 +1504,8 @@ int vyber_potvoru(int sect,int dir,int *chaos); //vybere potvoru ze sektoru a sm
void load_enemies(short *data,int size,int *grptr,TMOB *template,long tsize);
char mob_test_na_bitvu(TMOB *p); //nastavi p->vlajky|MOB_INBATTLE pokud potvora muze vstoupit do bitvy;
void send_mob_to(int m,word *path);
void save_enemy_paths(FILE *f);
int load_enemy_paths(FILE *f);
void save_enemy_paths(TMPFILE_WR *f);
int load_enemy_paths(TMPFILE_RD *f);
void regen_all_mobs();
@ -1574,8 +1586,8 @@ void display_spell_in_icone(int handle,int xicht);
void reinit_kouzla_full();
char get_rune_enable(THUMAN *p,int strnum);
void remove_all_mob_spells();
int save_spells(FILE *f);
int load_spells(FILE *f);
int save_spells(TMPFILE_WR *f);
int load_spells(TMPFILE_RD *f);
char get_spell_track(int num);
void mob_cast(int num,TMOB *m,int mob_num);
void thing_cast(int num,int postava,int sector,TMOB *victim,char noanim);//vyvolavaji veci
@ -1648,8 +1660,8 @@ void show_jrc_logo(char *filename);
//dialogy
void call_dialog(int entr,int mob);
char save_dialog_info(FILE *f);
char load_dialog_info(FILE *f);
char save_dialog_info(TMPFILE_WR *f);
char load_dialog_info(TMPFILE_RD *f);
short *q_item_one(int i,int itnum); //test zda postava i ma vec itnum
short *q_item(int itnum,int sector); //test zda-li aspon jeden na sectoru ma vec itnum
void change_flag(int flag,char mode); //meni vlajku = 0 - reset, 1 - set, 2 - neg

View file

@ -1,5 +1,4 @@
#include <skeldal_win.h>
#include <debug.h>
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
@ -11,16 +10,15 @@
#include <memman.h>
#include <ctype.h>
#include <devices.h>
#include <conio.h>
#include <bmouse.h>
#include <bgraph.h>
#include <zvuk.h>
#include <io.h>
#include <strlite.h>
#include "engine1.h"
#include <pcx.h>
#include "globals.h"
#include <unistd.h>
#define GLOBMAP "GLOBMAP.DAT"
#define ODDELOVACE ";:=,\n{}"
@ -49,8 +47,8 @@ static int usemap;
static FILE *glbm;
static char oddelovace[]=ODDELOVACE;
static last_oddelovac;
static linecounter=0;
static int last_oddelovac;
static int linecounter=0;
static int enter_sector=0;
static char *symbolmap[]=
{
@ -173,7 +171,7 @@ static void error(char *text)
sprintf(popis,"Chyba v souboru "GLOBMAP" na radce %d.\r\n%s",linecounter,text);
SEND_LOG("(ERROR) %s : %s",popis,text);
closemode();
MessageBox(NULL,popis,NULL,MB_OK|MB_ICONSTOP);
display_error(popis);
exit(0);
}
@ -224,7 +222,7 @@ static char test_kriterii(void)
case OP_SEKTOR:
{
int c;
if (cti_int_num(&c)) error("O‡ek v  se ‡¡slo");
if (cti_int_num(&c)) error("O<EFBFBD>ek<EFBFBD>v<EFBFBD> se <20><>slo");
hodn=c==enter_sector;
}
break;
@ -233,7 +231,7 @@ static char test_kriterii(void)
break;
case OP_ISDEF:{
int c;
if (cti_int_num(&c)) error("O‡ek v  se ‡¡slo");
if (cti_int_num(&c)) error("O<EFBFBD>ek<EFBFBD>v<EFBFBD> se <20><>slo");
hodn=index_tab[c].defined;
}
break;
@ -241,8 +239,8 @@ static char test_kriterii(void)
{
int flag_num;
if (cti_int_num(&flag_num)) error("Za FLG mus¡ b˜t ‡¡slo!");
if (flag_num>255) error("€¡slo vlajky (FLG) mus¡ b˜t v rozsahu 0-255!");
if (cti_int_num(&flag_num)) error("Za FLG mus<EFBFBD> b<>t <20><>slo!");
if (flag_num>255) error("<EFBFBD><EFBFBD>slo vlajky (FLG) mus<75> b<>t v rozsahu 0-255!");
hodn=(test_flag(flag_num)!=0);
}
break;
@ -274,7 +272,7 @@ static char proved_prikaz()
do
{
while (ODD==OD_NEWLINE || ODD==OD_COMMAND) ODD=cti_oddelovac();
if (ODD!=0) error("O‡ek v  se jmno definice (p©¡klad: INDX=)");
if (ODD!=0) error("O<EFBFBD>ek<EFBFBD>v<EFBFBD> se jm<6A>no definice (p<><70>klad: INDX=)");
cti_retezec(20,prikaz,1,1);
op=get_symbol(prikaz);
if (op==OP_BREAK) return 1;
@ -303,9 +301,9 @@ static char proved_prikaz()
cti_retezec(20,file,1,1);
ODD=cti_oddelovac();if (ODD!=OD_COMMA)ex_error(OD_COMMA);
if (cti_int_num(&xp)) error("O‡ek v  se ‡¡slo xp");
if (cti_int_num(&xp)) error("O<EFBFBD>ek<EFBFBD>v<EFBFBD> se <20><>slo xp");
ODD=cti_oddelovac();if (ODD!=OD_COMMA)ex_error(OD_COMMA);
if (cti_int_num(&yp)) error("O‡ek v  se ‡¡slo yp");
if (cti_int_num(&yp)) error("O<EFBFBD>ek<EFBFBD>v<EFBFBD> se <20><>slo yp");
h=find_handle(file,pcx_8bit_decomp);
if (h==-1) def_handle(h=end_ptr++,file,pcx_8bit_decomp,SR_DIALOGS);
put_picture(xp,yp+SCREEN_OFFLINE,ablock(h));
@ -377,7 +375,7 @@ static void do_script(void)
linecounter=0;
glbm=fopen(s,"r");
free(s);
if (glbm==NULL) error("Chyb¡ uveden˜ soubor...");
if (glbm==NULL) error("Chyb<EFBFBD> uveden<65> soubor...");
ODD=cti_oddelovac();
do
{
@ -447,9 +445,9 @@ static int find_leave_place(int sector)
return found_place;
}
macro_load_another_map();
int macro_load_another_map();
static select_mode;
static int select_mode = 0;
static char load_index_map(int index)

View file

@ -1,14 +1,9 @@
#include <skeldal_win.h>
#include <dos.h>
#include <bios.h>
#include <stdlib.h>
#include <io.h>
#include <direct.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
//#include <dpmi.h>
#include <conio.h>
#include <malloc.h>
#include <mem.h>
#include <pcx.h>
@ -26,10 +21,11 @@
#include <time.h>
#include <mgfplay.h>
#include <wav.h>
#include <io.h>
#include <fcntl.h>
#include "globals.h"
#include "engine1.h"
#include <stdarg.h>
#include <unistd.h>
#define MES_MAXSIZE 500
#define CHECK_BOX_ANIM 6
@ -228,7 +224,7 @@ void open_message_win(int pocet_textu,char **texts)
{
define(i-1,wsx+10,wsy,maxws+10,wsys+10,3,button,texts[i]);
property(def_border(5,BAR_COLOR),curfont,flat_color(MSG_COLOR1),BAR_COLOR);
on_change(terminate);
on_control_change(terminate_gui);
wsx+=maxws+20;
}
redraw_window();
@ -262,7 +258,7 @@ EVENT_PROC(message_keyboard)
if (key!=-1)
{
goto_control(key);
terminate();
terminate_gui();
}
}
}
@ -708,7 +704,7 @@ void radio_butts_gr(OBJREC *o)
o->datasize=4;
}
char ask_test(char *text,char def)
/*char ask_test(char *text,char def)
{
char znak;
SEND_LOG("(START CHECK) %s",text,0);
@ -718,7 +714,7 @@ char ask_test(char *text,char def)
if (znak!='N' && znak!='A') znak=def;
return znak=='A';
}
*/
long get_disk_free(char disk)
{
return 10*1024*1024;
@ -738,7 +734,7 @@ void start_check()
get_mem_info(&memory);
concat(c,pathtable[SR_TEMP],TEMP_FILE);
// if (!access(c,F_OK))
// if (ask_test("Skeldal nebyl spr vnˆ ukon‡en. Mˆl bys provest kontrolu disku\n\rMam spustit SCANDISK?",'A'))
// if (ask_test("Skeldal nebyl spr<EFBFBD>vn<EFBFBD> ukon<6F>en. M<>l bys provest kontrolu disku\n\rMam spustit SCANDISK?",'A'))
// system("SCANDISK /NOSUMMARY");
if (pathtable[SR_TEMP][1]==':') drv=pathtable[SR_TEMP][0];else
{
@ -751,14 +747,14 @@ void start_check()
c=alloca(1024);
if (siz<1024)
{
sprintf(c,"Na disku %c: nen¡ pot©ebn 1 MB pro ukl d n¡ pozic. Hroz¡ e pozice nebude kam ukl dat\n\resto spustit?",drv);
sprintf(c,"Na disku %c: nen<EFBFBD> pot<6F>ebn<62> 1 MB pro ukl<6B>d<EFBFBD>n<EFBFBD> pozic. Hroz<6F> <20>e pozice nebude kam ukl<6B>dat\n\rP<EFBFBD>esto spustit?",drv);
if (!ask_test(c,'N')) exit(1);
}
else if (siz<50000 && level_preload==1 && memory.LargestBlockAvail<50000000)
{
sprintf(c,"Na disku %c: neni nutn˜ch 50 MB pro odkl d n¡ dat. Skeldal bude ¨et©it\n\r"
"s pamˆt¡ a nahr vat jen pot©ebn  data. Hra se me rapidnˆ zpomalit!\n\r"
"Mam to udˆlat?",drv);
sprintf(c,"Na disku %c: neni nutn<EFBFBD>ch 50 MB pro odkl<6B>d<EFBFBD>n<EFBFBD> dat. Skeldal bude <20>et<65>it\n\r"
"s pam<EFBFBD>t<EFBFBD> a nahr<68>vat jen pot<6F>ebn<62> data. Hra se m<><6D>e rapidn<64> zpomalit!\n\r"
"Mam to ud<EFBFBD>lat?",drv);
if (ask_test(c,'A')) level_preload=0;
}
*/
@ -1051,18 +1047,22 @@ void setup_ok_button(OBJREC *o)
//-----------------------------------------------------
typedef struct skeldal_soupak_params_t {
int range;
void *bgpic;
} skeldal_soupak_params;
static void skeldal_soupak_init (OBJREC *o,int *params)
{
void **d;
d=NewArr(void *,2);
d[0]=(void *)*params;
d[1]=NULL;
o->userptr=d;
skeldal_soupak_params *p = getmem(sizeof(skeldal_soupak_params));
p->range = *params;
p->bgpic = NULL;
o->userptr=p;
}
static void skeldal_soupak_draw (int x1,int y1,int x2,int y2,OBJREC *o)
{
void **z;
skeldal_soupak_params *z;
int rozsah;
int value;
word *pic;
@ -1071,17 +1071,17 @@ static void skeldal_soupak_draw (int x1,int y1,int x2,int y2,OBJREC *o)
int xpos;
z=o->userptr;
rozsah=(int)z[0];
rozsah=z->range;
pic=ablock(H_SOUPAK);
total=y2-y1-pic[1];
value=*(int *)o->data;
xpos=y2-pic[1]-value*total/rozsah;
back=z[1];
back=z->bgpic;
if (back==NULL)
{
back=NewArr(word,(x2-x1+1)*(y2-y1+1)+3);
get_picture(x1,y1,(x2-x1+1),(y2-y1+1),back);
z[1]=back;
z->bgpic=back;
pic=ablock(H_SOUPAK);
}
else
@ -1089,12 +1089,12 @@ static void skeldal_soupak_draw (int x1,int y1,int x2,int y2,OBJREC *o)
put_picture(x1,xpos,pic);
}
static skeldal_soupak_event(EVENT_MSG *msg,OBJREC *o)
static void skeldal_soupak_event(EVENT_MSG *msg,OBJREC *o)
{
if (msg->msg==E_MOUSE)
{
MS_EVENT *ms;
int *z;
skeldal_soupak_params *z;
int rozsah;
int total;
word *pic;
@ -1103,7 +1103,7 @@ static skeldal_soupak_event(EVENT_MSG *msg,OBJREC *o)
ms=get_mouse(msg);
if (ms->tl1)
{
z=o->userptr;rozsah=z[0];
z=o->userptr;rozsah=z->range;
pic=ablock(H_SOUPAK);
total=o->ys-pic[1];
ypos=ms->y-o->locy;
@ -1120,10 +1120,10 @@ static skeldal_soupak_event(EVENT_MSG *msg,OBJREC *o)
static void skeldal_soupak_done(OBJREC *o)
{
void **z;
skeldal_soupak_params *z;
z=o->userptr;
free(z[1]);
free(z->bgpic);
free(z);
o->userptr=NULL;
}
@ -1180,7 +1180,7 @@ static void play_wav(int wav,int sector)
}*/
}
static play_random_sound(int sector,int dir,int pos)
static void play_random_sound(int sector,int dir,int pos)
{
int seed;
int v;
@ -1197,7 +1197,7 @@ static play_random_sound(int sector,int dir,int pos)
srand(seed);
}
static play_correct_sound(int sector,int dir)
static void play_correct_sound(int sector,int dir)
{
play_wav(H_SND_SEVER+dir,sector);
}
@ -1474,15 +1474,15 @@ int smlouvat_prodej(int cena,int ponuka,int posledni,int puvod,int pocet)
return 5;
}
static smlouvat_enter(EVENT_MSG *msg,OBJREC *o)
static void smlouvat_enter(EVENT_MSG *msg,OBJREC *o)
{
o;
if (msg->msg==E_KEYBOARD)
{
switch( *(char *)msg->data)
{
case 13:goto_control(30);terminate();break;
case 27:goto_control(20);terminate();break;
case 13:goto_control(30);terminate_gui();break;
case 27:goto_control(20);terminate_gui();break;
}
}
}
@ -1501,9 +1501,9 @@ int smlouvat(int cena,int puvod,int pocet,int money,char mode)
set_font(H_FBOLD,MSG_COLOR1);
define(-1,10,30,1,1,0,label,texty[238]);
define(10,150,30,100,13,0,input_line,8);property(def_border(5,BAR_COLOR),NULL,NULL,0);set_default("");
on_event(smlouvat_enter);
define(20,20,20,80,20,2,button,texty[239]);property(def_border(5,BAR_COLOR),NULL,NULL,BAR_COLOR);on_change(terminate);
define(30,110,20,80,20,2,button,texty[230]);property(def_border(5,BAR_COLOR),NULL,NULL,BAR_COLOR);on_change(terminate);
on_control_event(smlouvat_enter);
define(20,20,20,80,20,2,button,texty[239]);property(def_border(5,BAR_COLOR),NULL,NULL,BAR_COLOR);on_control_change(terminate_gui);
define(30,110,20,80,20,2,button,texty[230]);property(def_border(5,BAR_COLOR),NULL,NULL,BAR_COLOR);on_control_change(terminate_gui);
do
{
redraw_window();
@ -1569,7 +1569,7 @@ void show_jrc_logo(char *filename)
change_music("?");
curcolor=0;bar(0,0,639,479);
showview(0,0,0,0);Sleep(1000);
showview(0,0,0,0);sleep_ms(1000);
concat(s,pathtable[SR_VIDEO],filename);
if (open_pcx(s,A_8BIT,&pcx)) return;
pcxw=(word *)pcx;

View file

@ -89,7 +89,7 @@ long shop_hacek_size=0; //toto je jeho delka
#define INV_LEVEL_COL1 (NOSHADOW(RGB555(0,0,15)))
#define INV_LEVEL_COL2 (RGB555(31,24,0))
unsigned short butt_plus[]={0x0,(RGB555(25,23,16)),(RGB555(18,17,14)),(RGB555(10,10,5)),(RGB555(31,27,14))};
unsigned short butt_plus[7]={0x0,(RGB555(25,23,16)),(RGB555(18,17,14)),(RGB555(10,10,5)),(RGB555(31,27,14))};
#define PO_XS 194
#define PO_YS 340
@ -181,7 +181,7 @@ void load_items()
if (f==NULL)
{
closemode();
MessageBox(NULL,"Selhalo otevreni souboru ITEMS.DAT. Zkotroluj zda vubec existuje.",NULL,MB_OK|MB_ICONSTOP);
display_error("Selhalo otevreni souboru ITEMS.DAT. Zkotroluj zda vubec existuje.");
exit(0);
}
do
@ -620,7 +620,7 @@ static char check_pick(int sect,int id,int idd,int y)
return y>min;
}
static get_top_of_next(int sect,int id) //vraci souradnici predmetu na nasledujicim sektoru
static int get_top_of_next(int sect,int id) //vraci souradnici predmetu na nasledujicim sektoru
{
int cnt,idd;
@ -661,7 +661,7 @@ char pick_item_(int id,int xa,int ya,int xr,int yr)
else
if (id>1 || ya>=get_top_of_next(sect,id))
{
if ((game_extras & EX_BAG_EXTENDED) && (GetKeyState(VK_CONTROL) & 0x80) &&
if ((game_extras & EX_BAG_EXTENDED) && (get_control_key_state()) &&
(glob_items[*picked_item-1].nosnost>0))
{
int curinside=count_items_inside(picked_item);
@ -845,8 +845,8 @@ void prepocitat_postavu(THUMAN *human_selected)
if (human_selected->lives>human_selected->vlastnosti[VLS_MAXHIT]) human_selected->lives=human_selected->vlastnosti[VLS_MAXHIT];
//if (human_selected->mana>human_selected->vlastnosti[VLS_MAXMANA]) human_selected->mana=human_selected->vlastnosti[VLS_MAXMANA];
if (human_selected->kondice>human_selected->vlastnosti[VLS_KONDIC]) human_selected->kondice=human_selected->vlastnosti[VLS_KONDIC];
v=MAX_HLAD(human_selected);human_selected->jidlo=min(human_selected->jidlo,v);
v=MAX_ZIZEN(human_selected);human_selected->voda=min(human_selected->voda,v);
v=MAX_HLAD(human_selected);human_selected->jidlo=MIN(human_selected->jidlo,v);
v=MAX_ZIZEN(human_selected);human_selected->voda=MIN(human_selected->voda,v);
}
@ -862,6 +862,7 @@ void definuj_postavy()
{
int i,num1,r,inv=0,z;
char *c,*end,cc;
int tmp;
c=ablock(H_POSTAVY_DAT);
end=c+get_handle(H_POSTAVY_DAT)->size;
@ -889,10 +890,10 @@ void definuj_postavy()
}
break;
case 128:r=sscanf(c,"%c%14[^\r]",&cc,p->jmeno);r--;break;
case 129:r=sscanf(c,"%hd",&p->female);break;
case 130:r=sscanf(c,"%hd",&p->xicht);break;
case 131:r=sscanf(c,"%hd",&p->level);break;
case 132:r=sscanf(c,"%d",&p->exp);break;
case 129:r=sscanf(c,"%d",&tmp);p->female = (char)tmp;break;
case 130:r=sscanf(c,"%d",&tmp);p->xicht = (char)tmp;break;
case 131:r=sscanf(c,"%d",&tmp);p->level = (short)tmp;break;
case 132:r=sscanf(c,"%d",&tmp);p->exp = tmp;break;
case 133:r=sscanf(c,"%d",&num1);
while(r==1 && num1!=-1)
{
@ -921,7 +922,7 @@ void definuj_postavy()
if (r!=1)
{
closemode();
MessageBox(NULL,"Error in file POSTAVY.DAT. May be missing a parameter in some definition.",NULL,MB_OK|MB_ICONSTOP);
display_error("Error in file POSTAVY.DAT. May be missing a parameter in some definition.");
exit(0);
}
c=strchr(c,'\n')+1;
@ -1163,7 +1164,7 @@ void display_rings()
}
}
void *build_items_wearing(THUMAN *h)
void *build_items_wearing(THUMAN *h, long *s)
{
int i,vzhled,it;
word *p,hx,hy;
@ -1177,6 +1178,7 @@ void *build_items_wearing(THUMAN *h)
ob=getmem(siz=(PO_XS*PO_YS+PIC_FADE_PAL_SIZE));
memset(ob,0,siz);
memcpy(ob,p,PIC_FADE_PAL_SIZE);
*s = siz;
ob[0]=PO_XS;
ob[1]=PO_YS;
put_picture2picture(p,ob,PO_XSS-(hx/2),PO_YS-hy-20);
@ -1215,8 +1217,7 @@ void *build_items_wearing(THUMAN *h)
void build_items_called(void **p,long *s)
{
*p=build_items_wearing(&postavy[memman_handle-H_POSTAVY]);
*s=(long)(_msize(*p));
*p=build_items_wearing(&postavy[memman_handle-H_POSTAVY], s);
}
void display_items_wearing(THUMAN *h)
@ -1277,14 +1278,14 @@ typedef struct t_inv_script
short parm1,parm2;
char lenght;
char align;
};
} T_INV_SCRIPT;
#define INFO_AP -1
#define INFO_EXP -2
#define LINE_STEP 6
#define COL_STEP 8
static struct t_inv_script script[]=
static T_INV_SCRIPT script[]=
{
{15,12,"%d",pvls(VLS_SILA),0,2+128,2},
{15,14,"%d",pvls(VLS_SMAGIE),0,2+128,2},
@ -1448,7 +1449,7 @@ void hide_inv_info_box()
void inv_info_box(char *text1,char *text2,char *text3,char asterix)
{
int x,y,ys;
static last_info_ys=0;
static int last_info_ys=0;
ys=INV_INFO_YS;
if (text3!=NULL) ys+=INV_INFO_XP;
if (info_box_below!=NULL && last_info_ys!=ys)
@ -1772,7 +1773,7 @@ static char MakeItemCombinations(short *itm1, short *itm2)
if (table==0 && pathtable[SR_MAP2][0])
{
concat(fname,pathtable[SR_MAP2],fname);
table=fopen(table,"r");
table=fopen(fname,"r");
}
if (table==0) return 0;
cnt=fscanf(table,"%d %d -> %d %d",&src1,&src2,&trg1,&trg2);
@ -2381,7 +2382,7 @@ static void shop_mouse_event(EVENT_MSG *msg,void **unused)
MS_EVENT *ms;
int x,y;
char cc=1;
static last_pos=-1;
static int last_pos=-1;
ms=get_mouse(msg);
x=ms->x-(BUYBOX_X+SHP_ICPLCX);
@ -2632,7 +2633,7 @@ static void redraw_keepers_items()
showview(BUYBOX_X,BUYBOX_Y,w[0],w[1]);
}
static char shop_keeper_click(int id, int xa, int ya,int xr,int yr)
char shop_keeper_click(int id, int xa, int ya,int xr,int yr)
{
id;xa;ya;
if (picked_item==NULL)
@ -2656,7 +2657,7 @@ static char shop_keeper_click(int id, int xa, int ya,int xr,int yr)
redraw_keepers_items();
ukaz_mysku();
update_mysky();
if ((GetKeyState(VK_CONTROL) & 0x80) && (game_extras & EX_FAST_TRADE) && get_sell_price(*picked_item)<=money)
if ((get_control_key_state()) && (game_extras & EX_FAST_TRADE) && get_sell_price(*picked_item)<=money)
{
play_sample_at_channel(H_SND_OBCHOD,1,100);
money-=get_sell_price(*picked_item);
@ -2734,7 +2735,7 @@ static char shop_keeper_click(int id, int xa, int ya,int xr,int yr)
}
static char shop_bag_click(int id,int xa,int ya,int xr,int yr)
char shop_bag_click(int id,int xa,int ya,int xr,int yr)
{
char s[200],p;
int price,z;
@ -2743,7 +2744,7 @@ static char shop_bag_click(int id,int xa,int ya,int xr,int yr)
{
id=bag_click(id,xa,ya,xr,yr);
cur_owner=picked_item!=NULL;
if (picked_item!=NULL && picked_item[1]==0 && (game_extras & EX_FAST_TRADE) && (GetKeyState(VK_CONTROL) & 0x80))
if (picked_item!=NULL && picked_item[1]==0 && (game_extras & EX_FAST_TRADE) && (get_control_key_state()))
{
short z;
price=make_offer(z=picked_item[0]);
@ -2796,7 +2797,7 @@ static char shop_bag_click(int id,int xa,int ya,int xr,int yr)
return 1;
}
static char shop_block_click(int id, int xa, int ya,int xr,int yr)
char shop_block_click(int id, int xa, int ya,int xr,int yr)
{
xa,ya,xr,yr;
if (id==1) block_back();else block_next();

View file

@ -98,7 +98,19 @@ static int picture_len=0;
static char winconv=0;
static int relpos=0;
static char xlat_table[128]="__†_____­_____¨__Ÿ__________________________________<EFBFBD>___Š__€<EFBFBD>__‰_…__¥•____ž¦—__<EFBFBD>___ ___<EFBFBD>__‡__ˆ¡_ƒ__¤¢____©£__˜";
//static char xlat_table[128]="<22>__<5F><5F>_____<5F>_____<5F>__<5F><5F>__________________________________<5F>___<5F>__<5F><5F>__<5F><5F>_<EFBFBD>__<5F><5F>____<5F><5F><EFBFBD>__<5F>___<5F>___<5F>__<5F><5F>__<5F><5F>_<EFBFBD>__<5F><5F>____<5F><5F><EFBFBD>__<5F>";
static char xlat_table[128] = {
0x9b, 0x5f, 0x5f, 0x86, 0x92, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0xad, 0x5f,
0x5f, 0x5f, 0x5f, 0x5f, 0xa8, 0x5f, 0x5f, 0x9f, 0x91, 0x5f, 0x5f, 0x5f,
0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f,
0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x8f, 0x5f, 0x5f, 0x5f, 0x8a,
0x5f, 0x5f, 0x80, 0x90, 0x5f, 0x5f, 0x89, 0x8b, 0x5f, 0x85, 0x5f, 0x5f,
0xa5, 0x95, 0x5f, 0x5f, 0x5f, 0x5f, 0x9e, 0xa6, 0x97, 0x5f, 0x5f, 0x9d,
0x5f, 0x5f, 0x5f, 0xa0, 0x5f, 0x5f, 0x5f, 0x8d, 0x5f, 0x5f, 0x87, 0x82,
0x5f, 0x5f, 0x88, 0xa1, 0x5f, 0x83, 0x5f, 0x5f, 0xa4, 0xa2, 0x5f, 0x5f,
0x5f, 0x5f, 0xa9, 0x96, 0xa3, 0x5f, 0x5f, 0x98, 0x0a
};
static int insert_num(char *text,int pos,int num)
{
@ -278,17 +290,18 @@ static char read_set(FILE *txt,char *var,char *set)
{
int c;
char *cc;
char d;
fscanf(txt,"%[^=]%c",var,&c);
fscanf(txt,"%[^=]%c",var,&d);
do
c=fgetc(txt);
while (c<33);
if (c=='"') fscanf(txt,"%[^\"]%c%c",set,&c,&c);
else if (c=='\'') fscanf(txt,"%[^']%c%c",set,&c,&c);
if (c=='"') fscanf(txt,"%[^\"]%c%c",set,&d,&d);
else if (c=='\'') fscanf(txt,"%[^']%c%c",set,&d,&d);
else
{
ungetc(c,txt);
fscanf(txt,"%[^> ]%c",set,&c);
fscanf(txt,"%[^> ]%c",set,&d);
}
while(c<33 && c!=EOF) c=fgetc(txt);
if (c!='>') ungetc(c,txt);
@ -525,7 +538,7 @@ void seek_section(FILE *txt,int sect_number)
{
char buff[256];
sprintf(buff,"Nemohu najit odstavec s cislem %d.",sect_number);
MessageBox(NULL,buff,NULL,MB_OK|MB_ICONSTOP);
display_error(buff);
}
exit(1);
}

View file

@ -10,6 +10,7 @@
//#include <i86.h>
#include <math.h>
#include <bmouse.h>
#include <stdarg.h>
#include "engine1.h"
#include "globals.h"
@ -150,7 +151,7 @@ static long _flag_map[MAX_SPELLS]; //tabulka nastavenych priznaku pro kouzl
//hornich 16 bitu je globalne
short parm1,parm2;
char twins;
unsigned char twins;
static short rand_value;
@ -717,7 +718,7 @@ void spell_hit(int cil,int min,int max,int owner)
vysl=min+rnd(max-min);
if (vysl<0)
{
h->lives-=vysl,h->lives=min(h->lives,h->vlastnosti[VLS_MAXHIT]);
h->lives-=vysl>h->vlastnosti[VLS_MAXHIT]?h->vlastnosti[VLS_MAXHIT]:vysl;
if (h->groupnum==0) h->groupnum=cur_group;
}
else player_hit(h,vysl,1);
@ -1377,9 +1378,10 @@ static void calc_rand_value(int val1,int val2)
void call_spell(int i)
{
TKOUZLO *p;
char *c;
unsigned char *c;
unsigned char *start;
int z;
char ext=0;
unsigned char ext=0;
int cil;
SEND_LOG("(SPELLS) Calculating spell ID: %d",i,0);
@ -1397,7 +1399,8 @@ void call_spell(int i)
}
if (p->delay) return;
if (p->wait) return;
c=(char *)ablock(H_KOUZLA);
c=(unsigned char *)ablock(H_KOUZLA);
start = c;
c+=p->start;
twins=0;
do
@ -1450,7 +1453,7 @@ void call_spell(int i)
case S_location_y: TelepLocation.loc_y=GET_WORD(c);TelepLocation.map=0;break;
default:
{
char *d="Chyba v popisu kouzel: Program narazil na neznamou instrukci %d (%02X) pri zpracovani kouzla s cislem %d. Kouzlo bylo ukoneno";
char *d="Chyba v popisu kouzel: Program narazil na neznamou instrukci %d (%02X) pri zpracovani kouzla s cislem %d. Kouzlo bylo ukon<EFBFBD>eno";
c=alloca(strlen(d)+20);
sprintf(c,d,*(c-1),*(c-1),p->num);
bott_disp_text(c);
@ -1461,7 +1464,7 @@ void call_spell(int i)
}
while(!ext);
p->start=c-(char *)ablock(H_KOUZLA);
p->start=c-start;
}
int add_spell(int num,int cil,int owner,char noanim)
@ -1728,7 +1731,7 @@ void mob_cast(int num,TMOB *m,int mob_num)
}
}
static int calculatePhaseDoor(int sector, int dir, int um)
int calculatePhaseDoor(int sector, int dir, int um)
{
int x=map_coord[sector].x;
int y=map_coord[sector].y;
@ -1864,27 +1867,25 @@ void remove_all_mob_spells()
}
int save_spells(FILE *f)
int save_spells(TMPFILE_WR *f)
{
char res=0;
int i,s;
SEND_LOG("(SPELLS) Saving spell table...",0,0);
for(i=0,s=0;i<MAX_SPELLS;i++)
if (spell_table[i]!=NULL) s++;
res|=(fwrite(&s,1,sizeof(s),f)!=sizeof(s));
for(i=0;i<MAX_SPELLS && !res;i++)
temp_storage_write(&s,1*sizeof(s),f);
for(i=0;i<MAX_SPELLS;i++)
if (spell_table[i]!=NULL)
{
res|=(fwrite(spell_table[i],1,sizeof(TKOUZLO),f)!=sizeof(TKOUZLO));
res|=(fwrite(vls_table[i],1,2*24,f)!=2*24);
res|=(fwrite(_flag_map+i,1,4,f)!=4);
temp_storage_write(spell_table[i],1*sizeof(TKOUZLO),f);
temp_storage_write(vls_table[i],1*2*24,f);
temp_storage_write(_flag_map+i,1*4,f);
}
return res;
return 0;
}
int load_spells(FILE *f)
int load_spells(TMPFILE_RD *f)
{
char res=0;
@ -1892,14 +1893,14 @@ int load_spells(FILE *f)
SEND_LOG("(SPELLS) Loading saved spell table...",0,0);
reinit_kouzla_full();
res|=(fread(&s,1,sizeof(s),f)!=sizeof(s));
res|=(temp_storage_read(&s,1*sizeof(s),f)!=sizeof(s));
for(i=0;i<s && !res;i++)
{
spell_table[i]=New(TKOUZLO);
vls_table[i]=NewArr(short,24);
res|=(fread(spell_table[i],1,sizeof(TKOUZLO),f)!=sizeof(TKOUZLO));
res|=(fread(vls_table[i],1,2*24,f)!=2*24);
res|=(fread(_flag_map+i,1,4,f)!=4);
res|=(temp_storage_read(spell_table[i],1*sizeof(TKOUZLO),f)!=sizeof(TKOUZLO));
res|=(temp_storage_read(vls_table[i],1*2*24,f)!=2*24);
res|=(temp_storage_read(_flag_map+i,1*4,f)!=4);
}
true_seeing=1;
hlubina_level=2;

View file

@ -17,6 +17,7 @@
#include <pcx.h>
#include "globals.h"
#include "specproc.h"
#include "temp_storage.h"
int **macros=NULL;
void *macro_block;
@ -256,26 +257,18 @@ char if_lock(int side,int key_id,int level,TMA_LOCK *lk)
return 0;
}
void xchg_block(void *b1,void *b2,int leng)
//#pragma aux xchg_block parm[edi][esi][ecx]=
{
__asm
{
mov edi,b1
mov esi,b2
mov ecx,leng
lp1: mov al,[edi]
mov ah,[esi]
mov [edi],ah
mov [esi],al
inc edi
inc esi
dec ecx
jnz lp1
void xchg_block(void *b1, void *b2, int leng) {
uint8_t *p1 = (uint8_t *)b1;
uint8_t *p2 = (uint8_t *)b2;
for (int i = 0; i < leng; i++) {
uint8_t temp = p1[i];
p1[i] = p2[i];
p2[i] = temp;
}
}
static void propadnout(int sector)
void propadnout(int sector)
{
short *i,c,m1,m2;
@ -369,7 +362,7 @@ static void hit_player(TMA_WOUND *w,int sector)
bott_draw(1);
}
static TMULTI_ACTION *go_macro(side,abs_pos)
static TMULTI_ACTION *go_macro(int side,int abs_pos)
{
int *r;
int mcsiz;
@ -567,7 +560,7 @@ static void build_trig_group(char mode,int side)
}
}
static ma_play_anim(char *filename,char cls)
static int ma_play_anim(char *filename,char cls)
{
char *a;
@ -754,41 +747,14 @@ static char lock_saved=255;
static char lock_empty=254;
char save_codelocks(FILE *fsta)
char save_codelocks(TMPFILE_WR *fsta)
{
char *c;
int i;
c=(char *)&codelock_memory;
i=sizeof(codelock_memory);
while(*c==0 && i) c++,i--;
if (!i)
{
SEND_LOG("(SAVELOAD) Codelocks wasn't used in this map... not saved",0,0);
return !fwrite(&lock_empty,sizeof(lock_empty),1,fsta);
}
SEND_LOG("(SAVELOAD) Storing code-locks...",0,0);
if (!fwrite(&lock_saved,sizeof(lock_saved),1,fsta)) return 1;
return !fwrite(codelock_memory,sizeof(codelock_memory),1,fsta);
temp_storage_write(codelock_memory,sizeof(codelock_memory)*1,fsta);
}
char load_codelocks(FILE *fsta)
char load_codelocks(TMPFILE_RD *fsta)
{
char c;
if (!fread(&c,sizeof(lock_empty),1,fsta)) return 1;
if (c!=lock_saved)
{
if (c!=lock_empty)
{
fseek(fsta,-1,SEEK_CUR); //uprav pripadne stare verze savegamu ktere nemaji codelocky
SEND_LOG("(ERROR) Invalid value for codelocks... may be it's old version of savegame",0,0);
}
memset(codelock_memory,0,sizeof(codelock_memory));
return 0;
}
SEND_LOG("(SAVELOAD) Restoring code-locks for this map...",0,0);
return !fread(codelock_memory,sizeof(codelock_memory),1,fsta);
return !temp_storage_read(codelock_memory,sizeof(codelock_memory)*1,fsta);
}

View file

@ -1,7 +1,6 @@
#include <skeldal_win.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <malloc.h>
#include <math.h>
#include <bios.h>
@ -14,7 +13,7 @@
#include <bgraph.h>
#include <zvuk.h>
#include <strlite.h>
//#include <vesa.h>
#include <stdarg.h>
#include "engine1.h"
#include <pcx.h>
#include "globals.h"
@ -37,10 +36,10 @@ int speedscroll=3;
char low_mem=0;
static volatile char load_ok=0;
static cur_pos[]={0,0,0,0,0};
static cur_dir[]={UNSELECT,UNSELECT,UNSELECT,UNSELECT,UNSELECT};
static int cur_pos[]={0,0,0,0,0};
static int cur_dir[]={UNSELECT,UNSELECT,UNSELECT,UNSELECT,UNSELECT};
static titlefont=H_FBIG;
static int titlefont=H_FBIG;
#define TITLE_HEAD 1
#define TITLE_NAME 2
@ -48,8 +47,8 @@ static titlefont=H_FBIG;
#define TITLE_CENTER 0
#define TITLE_KONEC 4
static title_mode=0;
static title_line=0;
static int title_mode=0;
static int title_line=0;
#define CLK_MAIN_MENU 4
@ -93,7 +92,15 @@ T_CLK_MAP clk_main_menu[]=
{-1,0,0,639,479,empty_clk,0xff,H_MS_DEFAULT},
};
void rozdily(void *orign,void *obr,void *hicolor,void *xtab,int pocet)
void rozdily(uint8_t *orign, uint8_t *obr, uint16_t *hicolor, uint16_t *xtab, size_t pocet) {
for (size_t i = 0; i < pocet; i++) {
uint8_t al = obr[i];
al ^= orign[i];
uint16_t result = xtab[al];
hicolor[i] = result;
}
}
/*void rozdily(void *orign,void *obr,void *hicolor,void *xtab,int pocet)
//#pragma aux rozdily parm[EDX][ESI][EDI][EBX][ECX]=
{
__asm
@ -113,7 +120,7 @@ jp1:lodsb
dec ecx
jnz jp1
}
}
}*/
static void nahraj_rozdilovy_pcx(void **pp,long *s)
{
@ -139,7 +146,7 @@ static void nahraj_rozdilovy_pcx(void **pp,long *s)
rozdily(org,pos,hicolor+3,paltab,siz);
free(vysl);
*pp=hicolor;
*s=_msize(*pp);
*s=siz*2+12;
}
@ -164,6 +171,7 @@ static void init_menu_entries(void)
}
}
/*
void zobraz_podle_masky_asm(char barva,void *scr,void *data, void *maska,int xs,int ys)
//#pragma aux zobraz_podle_masky_asm parm[al][edi][esi][ebx][edx][ecx]=
{
@ -195,6 +203,21 @@ jp2: inc ebx
pop ebp
}
}
*/
static void zobraz_podle_masky_asm(char barva, uint16_t *scr, uint16_t *data, uint8_t *maska, int xs, int ys, int scr_linelen) {
int width = xs;
for (int y = 0; y < ys; y++) {
for (int x = 0; x < width; x++) {
if (barva == maska[x]) {
scr[x] = data[x];
}
}
scr += scr_linelen; // Přeskoč na další řádek obrazovky
maska += width; // Přeskoč masku
data += width; // Přeskoč zdrojová data
}
}
static void zobraz_podle_masky(char barva,char anim)
{
@ -208,13 +231,13 @@ static void zobraz_podle_masky(char barva,char anim)
data=ablock(H_MENU_ANIM+anim);
xs=data[0];
ys=data[1];
zobraz_podle_masky_asm(barva,obr,data+3,maska+6+512,xs,ys);
zobraz_podle_masky_asm(barva,obr,data+3,maska+6+512,xs,ys,scr_linelen2);
aunlock(H_MENU_MASK);
}
static void prehraj_animaci_v_menu(EVENT_MSG *msg,char **unused)
{
static counter=0;
static int counter=0;
unused;
if (msg->msg==E_TIMER)
{
@ -340,7 +363,7 @@ int enter_menu(char open)
return c;
}
char *get_next_title(char control,char *filename)
char *get_next_title(signed char control,char *filename)
{
static FILE *titles=NULL;
static ENCFILE fl;
@ -360,7 +383,7 @@ char *get_next_title(char control,char *filename)
char popis[300];
closemode();
sprintf(popis,"Soubor nenalezen: %s%s nebo %s%s\n",pathtable[SR_MAP],filename,pathtable[SR_DATA],filename);
MessageBox(NULL,popis,NULL,MB_OK|MB_ICONSTOP);
display_error(popis);
exit(1);
}
}
@ -474,8 +497,8 @@ static void get_max_extend(int *l,int *r)
for(i=0;i<360;i++)
{
left=min(title_lines[i][0],left);
right=max(title_lines[i][1],right);
left=MIN(title_lines[i][0],left);
right=MAX(title_lines[i][1],right);
}
*l=left;
*r=right;
@ -484,7 +507,7 @@ static void get_max_extend(int *l,int *r)
void titles(va_list args)
//#pragma aux titles parm[]
{
char send_back=va_arg(args,char);
char send_back=va_arg(args,int);
char *textname=va_arg(args,char *);
void *picture;

View file

@ -296,7 +296,7 @@ int load_map(char *filename)
case A_MAPGLOB:
num_ofsets[BACK_NUM]=ofsts;
memset(&mglob,0,sizeof(mglob));
memcpy(&mglob,temp,__min(size,sizeof(mglob)));
memcpy(&mglob,temp,MIN(size,sizeof(mglob)));
free(temp);
for(r=0;r<4;r++)
def_handle(ofsts++,mglob.back_fnames[r],pcx_fade_decomp,SR_GRAFIKA);
@ -378,7 +378,7 @@ int load_map(char *filename)
if (!doNotLoadMapState && load_map_state()==-2)
{
closemode();
MessageBox(NULL,"Bug in temp file. Please purge some status blocks in last load savegame file.",NULL,MB_OK|MB_ICONSTOP);
display_error("Bug in temp file. Please purge some status blocks in last load savegame file.");
exit(0);
}
doNotLoadMapState=0;
@ -590,7 +590,9 @@ TFLY *duplic_fly(TFLY *p)
*q=*p;
if (q->items!=NULL)
{
int s=_msize(q->items);
int s=0;
while (q->items[s]) ++s;
++s;
q->items=(short *)getmem(s);
memcpy(q->items,p->items,s);
}
@ -799,7 +801,7 @@ void check_codelock_log(int sector,unsigned long flags)
}
int do_action(action_numb,sector,direct,flags,nosend)
int do_action(int action_numb,int sector, int direct,int flags, int nosend)
{
TSTENA *q;
TSECTOR *s;
@ -1184,7 +1186,7 @@ void calc_game()
}
}
void a_touch(sector,dir)
void a_touch(int sector,int dir)
{
TSTENA *q;
int sid;
@ -1204,7 +1206,7 @@ void a_touch(sector,dir)
call_macro(sid,MC_TOUCHSUC);
}
void a_pass(sector,dir)
void a_pass(int sector, int dir)
{
TSTENA *q;
@ -1493,7 +1495,7 @@ void postavy_teleport_effect(int sector,int dir,int postava,char effect)
{
char kolo=global_anim_counter;
int counter=0;
static zavora=0;
static int zavora=0;
if (zavora) return;
if (effect)
@ -1778,9 +1780,16 @@ int check_path(word **path,word tosect)
return tosect;
}
static unsigned int get_path_len(const word *w) {
unsigned int i = 0;
while (w[i]) ++i;
return i;
}
void recall()
{
int tosect,max,i,j;
int tosect;
unsigned int max,i,j;
word *paths[POCET_POSTAV];
for(i=0;i<POCET_POSTAV;i++)
@ -1793,9 +1802,10 @@ void recall()
do
{
max=0xffff;j=-1;
for(i=0;i<POCET_POSTAV;i++) if (paths[i]!=NULL && _msize(paths[i])<(unsigned)max)
unsigned int l;
for(i=0;i<POCET_POSTAV;i++) if (paths[i]!=NULL && (l=get_path_len(paths[i]))<(unsigned)max)
{
max=_msize(paths[i]);
max=l;
j=i;
}
if (j!=-1)
@ -1908,12 +1918,12 @@ void *game_keyboard(EVENT_MSG *msg,void **usr)
{
case 'H':step_zoom(0);break;
case 'P':step_zoom(2);break;
case 'M':if (GetKeyState(VK_CONTROL) & 0x80)
case 'M':if (get_control_key_state() & 0x80)
step_zoom(1);
else
turn_zoom(1);
break;
case 'K':if (GetKeyState(VK_CONTROL) & 0x80)
case 'K':if (get_control_key_state() & 0x80)
step_zoom(3);
else
turn_zoom(-1);

View file

@ -76,7 +76,7 @@ static void change_turn()
turn_speed((id-60)/10);
}
void unwire_setup();
static void unwire_setup();
static EVENT_PROC(setup_keyboard)
{
@ -155,21 +155,21 @@ void new_setup()
w=create_window(0,SCREEN_OFFLINE,639,359,0,&ctl);
w->draw_event=show_setup_desktop;
desktop_add_window(w);
define(10,50,270,190,20,0,skeldal_checkbox); c_default(get_snd_effect(SND_SWAP)); on_change(do_setup_change);
define(10,50,270,190,20,0,skeldal_checkbox); c_default(get_snd_effect(SND_SWAP)); on_control_change(do_setup_change);
if (check_snd_effect(SND_OUTFILTER))
{
define(20,50,300,190,20,0,skeldal_checkbox);c_default(get_snd_effect(SND_OUTFILTER));
on_change(do_setup_change);
on_control_change(do_setup_change);
}
define(30,410,60,90,20,0,skeldal_checkbox);c_default(zoom_speed(-1)==0);
on_change(change_zoom);
define(40,410,90,90,20,0,skeldal_checkbox);c_default(zoom_speed(-1)==1);on_change(change_zoom);
define(50,410,120,90,20,0,skeldal_checkbox);c_default(zoom_speed(-1)==2);on_change(change_zoom);
on_control_change(change_zoom);
define(40,410,90,90,20,0,skeldal_checkbox);c_default(zoom_speed(-1)==1);on_control_change(change_zoom);
define(50,410,120,90,20,0,skeldal_checkbox);c_default(zoom_speed(-1)==2);on_control_change(change_zoom);
define(60,510,60,90,20,0,skeldal_checkbox);c_default(turn_speed(-1)==0);on_change(change_turn);
define(70,510,90,90,20,0,skeldal_checkbox);c_default(turn_speed(-1)==1);on_change(change_turn);
define(80,510,120,90,20,0,skeldal_checkbox);c_default(turn_speed(-1)==2);on_change(change_turn);
define(60,510,60,90,20,0,skeldal_checkbox);c_default(turn_speed(-1)==0);on_control_change(change_turn);
define(70,510,90,90,20,0,skeldal_checkbox);c_default(turn_speed(-1)==1);on_control_change(change_turn);
define(80,510,120,90,20,0,skeldal_checkbox);c_default(turn_speed(-1)==2);on_control_change(change_turn);
for(i=0;i<5;i++)
{
@ -191,9 +191,9 @@ void new_setup()
if (check_snd_effect(effects[i]))
{
define(200+i*10,50+i*60,30,30,200,0,skeldal_soupak,effects[i]==SND_MUSIC?127:255);c_default(get_snd_effect(effects[i]));
on_change(do_setup_change);
on_control_change(do_setup_change);
}
define(300,559,336,81,21,0,setup_ok_button,texty[174]);on_change(unwire_setup);
define(300,559,336,81,21,0,setup_ok_button,texty[174]);on_control_change(unwire_setup);
property(NULL,ablock(H_FTINY),&color_topbar,0);
redraw_window();
add_to_timer(TM_CHECKBOX,4,-1,checkbox_animator);

View file

@ -1,18 +1,14 @@
#include <skeldal_win.h>
#include <debug.h>
#include <assert.h>
//#include <env.h>
#include <dos.h>
#include <stdarg.h>
#include <bios.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <malloc.h>
#include <mem.h>
#include <pcx.h>
#include <direct.h>
#include <types.h>
#include <bgraph.h>
#include <event.h>
@ -31,8 +27,8 @@
#include "engine1.h"
#include "wizard.h"
#include "version.h"
#include <uvodni.h>
#include <unistd.h>
#define CONFIG_NAME SKELDALINI
#define INI_TEXT 1
@ -95,7 +91,7 @@ TMA_LOADLEV loadlevel;
typedef struct inis
{
char heslo[15];
char heslo[25];
char parmtype;
}INIS;
@ -118,7 +114,8 @@ THUMAN postavy[POCET_POSTAV],postavy_save[POCET_POSTAV];
void (*unwire_proc)();
void (*wire_proc)();
char cur_mode,battle_mode;
static init_music_vol=127,init_gfx_vol=255;
static int init_music_vol=127;
static int init_gfx_vol=255;
static char full_video=0;
static char titles_on=0;
static char windowed=0;
@ -366,8 +363,9 @@ int ask_video()
void pcx_fade_decomp(void **p,long *s)
{
char *buff;
load_pcx(*p,*s,A_FADE_PAL,&buff,mglob.fade_r,mglob.fade_g,mglob.fade_b);
*s=_msize(buff);
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;
}
@ -375,8 +373,9 @@ void pcx_fade_decomp(void **p,long *s)
void pcx_15bit_decomp(void **p,long *s)
{
char *buff;
load_pcx(*p,*s,A_16BIT,&buff);
*s=_msize(buff);
int r = load_pcx(*p,*s,A_16BIT,&buff);
assert(r > 0);
*s=r;
free(*p);
*p=buff;
}
@ -384,8 +383,9 @@ void pcx_15bit_decomp(void **p,long *s)
void pcx_15bit_autofade(void **p,long *s)
{
char *buff;
load_pcx(*p,*s,A_16BIT,&buff);
*s=_msize(buff);
int r = load_pcx(*p,*s,A_16BIT,&buff);
assert(r > 0);
*s=r;
free(*p);
*p=buff;
buff[5]=0x80;
@ -398,9 +398,10 @@ void pcx_15bit_backgrnd(void **p,long *s)
if (*p!=NULL)
{
load_pcx(*p,*s,A_16BIT,&buff);
int r = load_pcx(*p,*s,A_16BIT,&buff);
assert(r>0);
z=(long *)buff;
*s=_msize(buff);
*s=r;
for(i=*s;i>0;i-=4,z++) *z|=0x80008000;
free(*p);
*p=buff;
@ -413,8 +414,9 @@ void pcx_8bit_nopal(void **p,long *s)
if (*p!=NULL)
{
load_pcx(*p,*s,A_8BIT_NOPAL,&buff);
*s=_msize(buff);
int r = load_pcx(*p,*s,A_8BIT_NOPAL,&buff);
assert(r>0);
*s=r;
free(*p);
*p=buff;
}
@ -424,8 +426,9 @@ void pcx_8bit_nopal(void **p,long *s)
void pcx_8bit_decomp(void **p,long *s)
{
char *buff;
load_pcx(*p,*s,A_8BIT,&buff);
*s=_msize(buff);
int r = load_pcx(*p,*s,A_8BIT,&buff);
assert(r>0);
*s=r;
free(*p);
*p=buff;
}
@ -572,41 +575,6 @@ void clrscr()
void purge_temps(char z)
{
HANDLE rc;
WIN32_FIND_DATA fi;
char c[200];
strcpy(c,SWAPPATH);
strcat(c,"*.TMP");
rc=FindFirstFile(c,&fi);
if (rc!=INVALID_HANDLE_VALUE)
do
{
strcpy(c,SWAPPATH);
strcat(c,fi.cFileName);
if (fi.cFileName[0]!='~')
{
SEND_LOG("(PURGE) Purging temp '%s'",c,0);
remove(c);
}
}
while (FindNextFile(rc,&fi));
FindClose(rc);
if (z)
{
strcpy(c,SWAPPATH);
strcat(c,TEMP_FILE);
SEND_LOG("(PURGE) Purging temp '%s'",c,0);
remove(c);
}
}
void back_music()
{
@ -881,7 +849,7 @@ void cti_texty()
case -3:sprintf(buff,"Memory very low (need min 4MB)\n");break;
default:sprintf(buff,"Error in string table at line %d\n",err);break;
}
MessageBox(NULL,buff,NULL,MB_OK|MB_ICONSTOP);
display_error(buff);
exit(1);
}
}
@ -895,7 +863,7 @@ void global_kbd(EVENT_MSG *msg,void **usr)
if (msg->msg==E_KEYBOARD)
{
c=(*(int *)msg->data)>>8;
if (c==';') save_dump();
if (c==';') save_dump(GetScreenAdr(), DxGetResX(), DxGetResY(), scr_linelen2);
}
return;
}
@ -924,13 +892,13 @@ void error_exception(EVENT_MSG *msg,void **unused)
SEND_LOG("(ERROR) Log: Last 'memman' handle: %x",memman_handle,0);
SEND_LOG("(ERROR) Log: Battle: %d Select_player %d",battle,select_player);
closemode();
printf("Program zpsobil bˆhovou chybu a bude ukon‡en\n"
"Posledn¡ zpracov van  data mˆla rukojeŸ ‡¡slo %xh\n",memman_handle);
printf("Program zp<EFBFBD>sobil b<>hovou chybu a bude ukon<6F>en\n"
"Posledn<EFBFBD> zpracov<6F>van<61> data m<>la rukoje<6A> <20><>slo %xh\n",memman_handle);
printf("Map: %s Sector %d Direction %d\n",level_fname==NULL?"<unknown>":level_fname,viewsector,viewdir);
printf("Nyn¡ se program pokus¡ uloit hru...\n\n");
printf("Nyn<EFBFBD> se program pokus<75> ulo<6C>it hru...\n\n");
autosave_enabled=1;
autosave();
printf("Hra byla £spˆ¨nˆ uloena pod n zvem AUTOSAVE\n");
printf("Hra byla <EFBFBD>sp<EFBFBD><EFBFBD>n<EFBFBD> ulo<6C>ena pod n<>zvem AUTOSAVE\n");
exit(0);
}
}
@ -943,7 +911,7 @@ void swap_error_exception()
"zaplnen. Uvolnete prosim nejake misto na odkladacim disku, nebo zmente \n"
"adresar odkladani na jednotku, kde je vice mista");
puts("Vase pozice bude ulozena pod nazvem AUTOSAVE\n"
"Pokud vsak mate pozice na stejnm disku jako odkladaci soubor (coz je\n"
"Pokud vsak mate pozice na stejn<EFBFBD>m disku jako odkladaci soubor (coz je\n"
"zakladni nastaveni) bude ulozeni z 90% bohuzel neuspesne...");
autosave_enabled=1;
autosave();
@ -1030,7 +998,6 @@ SEND_LOG("(INIT) Initializing engine.",0,0);
/*SEND_LOG("(INIT) Loading DOS error handler.",0,0);
install_dos_error(device_error,(char *)getmem(4096)+4096);*/
swap_error=swap_error_exception;
sprintf(c,"%s%s",SWAPPATH,TEMP_FILE);
sprintf(d,"%s%s",pathtable[SR_DATA],"skeldal.ddl");
SEND_LOG("(INIT) Initializing memory manager",0,0);
init_manager(d,c);
@ -1131,15 +1098,15 @@ void *map_keyboard(EVENT_MSG *msg,void **usr);
char doNotLoadMapState=0;
static reload_map_handler(EVENT_MSG *msg,void **usr)
static int reload_map_handler(EVENT_MSG *msg,void **usr)
{
extern char running_battle;
if (msg->msg==E_RELOADMAP)
{
int i;
va_list list=msg->data;
const char *fname=va_arg(list,const char *);
int sektor=va_arg(list,int);
ReloadMapInfo *minfo=(ReloadMapInfo *)msg->data;
const char *fname=minfo->fname;
int sektor=minfo->sektor;
strncpy(loadlevel.name,fname,sizeof(loadlevel.name));
loadlevel.start_pos=sektor;
for(i=0;i<POCET_POSTAV;i++)postavy[i].sektor=loadlevel.start_pos;
@ -1152,9 +1119,9 @@ extern char running_battle;
hl_ptr=ikon_libs;
destroy_fly_map();
load_items();
kill_block(H_ENEMY);
kill_block(H_SHOP_PIC);
kill_block(H_DIALOGY_DAT);
zneplatnit_block(H_ENEMY);
zneplatnit_block(H_SHOP_PIC);
zneplatnit_block(H_DIALOGY_DAT);
load_shops();
send_message(E_CLOSE_MAP);
}
@ -1232,7 +1199,7 @@ static int do_config_skeldal(int num,int numdata,char *txt)
case 23:windowedzoom=numdata;
case 24:monitor=numdata;
case 25:if (VERSIONNUM<numdata)
MessageBox(NULL,"Pozor! Hra je starsi verze, nez vyzaduje dobrodruzstvi. Ve vlastnim zajmu si stahnete novou verzi, protoze toto dobrodruzstvi nemusi byt s aktualni verzi dohratelne","Chybna verze hry",MB_OK);
display_error("Pozor! Hra je starsi verze, nez vyzaduje dobrodruzstvi. Ve vlastnim zajmu si stahnete novou verzi, protoze toto dobrodruzstvi nemusi byt s aktualni verzi dohratelne");
break;
case 26:refresh=numdata;
default:num-=CESTY_POS;
@ -1246,7 +1213,7 @@ static int do_config_skeldal(int num,int numdata,char *txt)
}
static void config_skeldal(char *line)
static void config_skeldal(const char *line)
{
int ndata=0,i,maxi;
@ -1300,7 +1267,7 @@ static void configure(char *filename)
SEND_LOG("(GAME) Done config.",0,0);
}
static update_config()
static int update_config()
{
SEND_LOG("(GAME) Updating config. file '%s'",CONFIG_NAME,NULL);
add_field_num(&cur_config,sinit[1].heslo,zoom_speed(-1));
@ -1477,7 +1444,7 @@ static void game_big_circle(char enforced)
case -3: sprintf(buff,"Map file is corrupted!\n");break;
default: sprintf(buff,"Error in string table at line %d",err);break;
}
MessageBox(NULL,buff,NULL,MB_OK|MB_ICONSTOP);
display_error(buff);
exit(1);
}
viewsector=loadlevel.start_pos;
@ -1666,22 +1633,21 @@ void disable_intro()
update_config();
}
#include "crashdump.h"
void main(int argc,char *argv[])
{
char *c,rm;
InitCrashDump();
if (argc>=3) rm=!strcmp(argv[1],"12345678");else rm=0;
if (!rm) if (OtevriUvodniOkno()==0) return;
//OPEN_LOG("syslog");
OPEN_LOG("con");
SEND_LOG("START --------------------------",0,0);
argv;
c=getcwd(NULL,_MAX_PATH+1);
c=getcwd(NULL,0);
pathtable[SR_SAVES]=getmem(strlen(c)+2);
strcpy(pathtable[SR_SAVES],c);
strcat(pathtable[SR_SAVES],"\\");
@ -1691,9 +1657,8 @@ void main(int argc,char *argv[])
mman_pathlist=pathtable;
zoom_speed(1);
turn_speed(1);
SetEnvironmentVariable("BSVER",VERSION);
configure(CONFIG_NAME);
if ((argc>=2 || SelectAdventure()) && !rm )
if ((argc>=2 ) && !rm )
{
char *adventure;
char **config=cur_config;
@ -1702,8 +1667,7 @@ void main(int argc,char *argv[])
mman_pathlist[SR_ORGMUSIC]=(char *)getmem(strlen(music)+1);
strcpy(mman_pathlist[SR_ORGMUSIC],music);
if (argc<2) adventure=GetSelectedAdventure();
else adventure=argv[1];
adventure=argv[1];
cur_config=NULL;
SEND_LOG("(GAME) Starting new adventure: %s",adventure,0);
configure(adventure);
@ -1741,12 +1705,8 @@ void main(int argc,char *argv[])
closemode();
}
int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
main(__argc, __argv);
}
#include "..\game\version.h"
#include "version.h"
int GetExeVersion()

View file

@ -1,5 +1,4 @@
#include <skeldal_win.h>
#include <debug.h>
#include <stdio.h>
#include <stdlib.h>
#include <mem.h>
@ -9,10 +8,9 @@
#include <event.h>
#include "globals.h"
#include <math.h>
//#include <i86.h> //Sound and Nosound
#include <strlite.h>
#include <io.h>
#include <unistd.h>
#define PL_RANDOM 1
#define PL_FORWARD 2
#define PL_FIRST 3
@ -35,7 +33,7 @@ typedef struct snd_info
static short chan_state[CHANNELS];
static short track_state[TRACKS];
static short sample_volume=255;
short sample_volume=255;
//static struct t_wave wav_last_head;
//static int wav_last_size;
@ -405,8 +403,8 @@ void create_playlist(char *playlist)
for (c=playlist;c!=NULL;c=strchr(c+1,' '))
{
char *e;
char d[MAX_PATH+2]="!";
strncat(d,c+j,MAX_PATH);d[MAX_PATH+1]=0;j=1;
char d[MAX_FILESYSTEM_PATH+2]="!";
strncat(d,c+j,MAX_FILESYSTEM_PATH);d[MAX_FILESYSTEM_PATH+1]=0;j=1;
if ((e=strchr(d,32))!=NULL) *e=0;
str_add(&cur_playlist,d);
}
@ -426,7 +424,7 @@ void create_playlist(char *playlist)
void play_next_music(char **c)
{
int i,step;
static char d[MAX_PATH];
static char d[MAX_FILESYSTEM_PATH];
*c=NULL;
if (cur_playlist==NULL) return;
@ -445,9 +443,9 @@ void play_next_music(char **c)
}
while (step);
playing_track=i;
sprintf_s(d,sizeof(d),"%s%s",pathtable[SR_MUSIC],cur_playlist[i]+1);
if (_access(d,0) == -1)
sprintf_s(d,sizeof(d),"%s%s",pathtable[SR_ORGMUSIC],cur_playlist[i]+1);
snprintf(d,sizeof(d),"%s%s",pathtable[SR_MUSIC],cur_playlist[i]+1);
if (access(d,0) == -1)
snprintf(d,sizeof(d),"%s%s",pathtable[SR_ORGMUSIC],cur_playlist[i]+1);
cur_playlist[i][0]=33;
remain_play--;
*c=d;

View file

@ -3,7 +3,6 @@
#include <stdio.h>
#include <stdlib.h>
#include <event.h>
#include <conio.h>
#include <zvuk.h>
#include <bgraph.h>
#include <bmouse.h>
@ -30,7 +29,7 @@ HUM_ACTION spell_string;
short caster;
short vybrana_zbran=-1;
char plr_switcher[POCET_POSTAV];
static autostart_round=0;
static int autostart_round=0;
char autoattack=0;
char immortality=0;
@ -371,7 +370,7 @@ int vypocet_zasahu(short *utocnik,short *obrance, int chaos,int zbran,int bonus
zasah=utok-(ddef=obrana);
}
if (zasah<0) zasah=0;
if (zasah>0) zasah+=utocnik[VLS_DAMAGE],zasah=max(zasah,1);
if (zasah>0) zasah+=utocnik[VLS_DAMAGE],zasah=MAX(zasah,1);
ddostal=zasah;
zasah=zasah+mutok;
if (zasah>0)
@ -416,7 +415,7 @@ void rozhodni_o_poradi()
}
void hrat_souboj()
{
static counter=0;
static int counter=0;
char cond=ms_last_event.y>378 && ms_last_event.x>510 && cur_mode!=MD_PRESUN;
if (cond) schovej_mysku();
redraw_scene();
@ -648,7 +647,7 @@ T_CLK_MAP clk_end_game[]=
EVENT_PROC(end_game_end_phase)
{
static wait=0;
static int wait=0;
WHEN_MSG(E_TIMER)
{
if (pass_zavora) return;
@ -733,17 +732,17 @@ void wire_presun_postavy()
cancel_render=1;
}
static DWORD SPozdrzeno=0;
static uint32_t SPozdrzeno=0;
static char JePozdrzeno()
char JePozdrzeno()
{
return GetTickCount()<SPozdrzeno;
return get_game_tick_count()<SPozdrzeno;
}
void pozdrz_akci()
{
int battlespeed=gamespeed-gamespeed*gamespeedbattle/5;
SPozdrzeno=GetTickCount()+battlespeed*2000/6;
SPozdrzeno=get_game_tick_count()+battlespeed*2000/6;
}
/*void pozdrz_akci_proc(THE_TIMER *x)
@ -831,7 +830,7 @@ void utek_postavy(THUMAN *p)
prejdi_na_pohled(p);
}
int trace_path(sector,dir)
int trace_path(int sector,int dir)
{
int mm,p,c=5;
int r=rnd(2);
@ -1122,7 +1121,7 @@ static char StrachPostavy(THUMAN *p)
p->sektor=cesta[i];
build_player_map();
prejdi_na_pohled(p);
Sleep(200);
sleep_ms(200);
p->kondice-=wf;
}
p->provadena_akce+=p->programovano-1;
@ -1882,7 +1881,7 @@ void souboje_turn(char smer)
norefresh=1;
hold_timer(TM_BACK_MUSIC,1);
viewdir=(viewdir+smer)&3;
if (GetKeyState(VK_SHIFT) & 0x80) fix_group_direction();
if (get_shift_key_state()) fix_group_direction();
else postavy[select_player].direction=viewdir;
render_scene(viewsector,viewdir);
hide_ms_at(387);
@ -2230,7 +2229,7 @@ static void rozdelit_skryte_bonusy(THUMAN *hu)
short *vls,*vls2;
short p[]={VLS_SILA,VLS_SMAGIE,VLS_OBRAT};
short h[3];
register i;
int i;
vls=hu->vlastnosti;
vls2=hu->stare_vls;

View file

@ -20,7 +20,7 @@ static void event_error(char *text,int number)
char buff[256];
closemode();
sprintf(buff,"%s\n Specproc num: %d\n",text,number);
MessageBox(NULL,buff,NULL,MB_OK|MB_ICONSTOP);
display_error(buff);
exit(1);
}
@ -256,7 +256,7 @@ static void OtaceniObrazu()
float mx[3][2];
int maxtime=500;
int lasttime=GetTickCount();
int lasttime=get_game_tick_count();
int curtime;
get_picture(0,17,640,360,picture);
do
@ -265,7 +265,7 @@ static void OtaceniObrazu()
float uhel;
float cosuhel;
float sinuhel;
curtime=GetTickCount()-lasttime;
curtime=get_game_tick_count()-lasttime;
phase=curtime/(float)maxtime;
if (phase>1.0f) phase=1.0f;
uhel=phase*3.14159265;
@ -280,7 +280,7 @@ static void OtaceniObrazu()
do_events();
}
while (curtime<maxtime);
Sleep(1000);
sleep_ms(1000);
free(picture);
}
@ -373,7 +373,7 @@ MAP_PROC(map_identify)
//Mob Procs ---------------------------------------
static get_dangerous_place(int sector)
static int get_dangerous_place(int sector)
{
int i;
@ -496,7 +496,7 @@ static char mob_strelec(int event_type,TMOB *m)
i=i+2&3;
if (mob_check_next_sector(m->sector,i,m->stay_strategy & MOB_BIG,0))
{
int l=4,z,max=RAND_MAX+1;
int l=4,z,max=RAND_MAX;
for(i=0;i<4;i++)
if (!mob_check_next_sector(m->sector,i,m->stay_strategy & MOB_BIG,0))
{
@ -682,7 +682,7 @@ char call_mob_event(int event_number,int event_type,TMOB *m)
{
if (!event_number) return 0;
if (event_number>=SP_MOB_TAB_SIZE)
event_error("Nestvra pou¡va neplatnou specproc.",event_number);
event_error("Nestv<EFBFBD>ra pou<6F><75>va neplatnou specproc.",event_number);
cur_event_number=event_number;
return sp_mob_table[event_number](event_type,m);
}
@ -691,7 +691,7 @@ char call_item_event(int event_number,int event_type,short *ptr,THUMAN *p)
{
if (!event_number) return 0;
if (event_number>=SP_ITEM_TAB_SIZE)
event_error("€¡slo ud losti u vˆci je neplatn. Specproc nen¡ definov na.",event_number);
event_error("<EFBFBD><EFBFBD>slo ud<75>losti u v<>ci je neplatn<74>. Specproc nen<65> definov<6F>na.",event_number);
cur_event_number=event_number;
return sp_item_table[event_number](event_type,ptr,p);
}
@ -700,7 +700,7 @@ char call_map_event(int event_number,int sector,int side,int value,int event)
{
if (!event_number) return 0;
if (event_number>=SP_MAP_TAB_SIZE)
event_error("Neplatn ‡¡slo ud losti na stˆnˆ. Specproc s t¡mto ‡¡slem nen¡ definov na.",event_number);
event_error("Neplatn<EFBFBD> <20><>slo ud<75>losti na st<73>n<EFBFBD>. Specproc s t<>mto <20><>slem nen<65> definov<6F>na.",event_number);
cur_event_number=event_number;
return sp_map_table[event_number](sector,side,value,event);
}

26
game/temp_storage.h Normal file
View file

@ -0,0 +1,26 @@
///store to temp storage
void temp_storage_store(const char *name, const void *data, long size);
///find in temp storage - returns -1 = not found, otherwise size of data
long temp_storage_find(const char *name);
///retrieve from temp storage (returns same as find)
long temp_storage_retrieve(const char *name, void *data, long size);
void temp_storage_list(void (*callback)(const char *, void *), void *context);
void temp_storage_clear();
typedef struct _temp_storage_file_rd TMPFILE_RD;
typedef struct _temp_storage_file_wr TMPFILE_WR;
TMPFILE_RD *temp_storage_open(const char *name);
TMPFILE_WR *temp_storage_create(const char *name);
TMPFILE_WR *temp_storage_append(const char *name);
void temp_storage_close_rd(TMPFILE_RD *f);
void temp_storage_close_wr(TMPFILE_WR *f);
void temp_storage_write(const void *data, unsigned long size, TMPFILE_WR *f);
unsigned long temp_storage_read(void *data, unsigned long size, TMPFILE_RD *f);
void temp_storage_skip(TMPFILE_RD *f, int bytes);

View file

@ -1,6 +1,5 @@
#include <stdio.h>
#include <malloc.h>
#include <dos.h>
#include <graph.h>
#include <mem.h>
#include <conio.h>
@ -83,9 +82,9 @@ int startsect;
int startsid;
char cz_table_1[]=" 1!3457­908+,-./+ˆ¨‡©‘˜ ¡\"?=:_2ABCDEFGHIJKLMNOPQRSTUVWXYZ£\\)6=;abcdefghijklmnopqrstuvwxyz/|(; ";
char cz_table_2[]=" !\"#$%&'()*+,-./0123456789:;<=>?@<40>BCD<43>FGHJKŠMN•PQ«ST—VWX<EFBFBD>Z[\\]^_` bcdfgh¡jk<6A>mn¢pqªst£vwx˜z{|}~ ";
char cz_table_3[]=" !\"#$%&'()*+,-./0123456789:;<=>?@AB€…‰FGHIJKœM¥§PQ<EFBFBD>†¦VWXY[\\]^_`ab‡ƒˆfghijkŒm¤“pq©¨Ÿvwxy{|}~ ";
char cz_table_1[]=" 1!3457<EFBFBD>908+,-./<2F>+<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\"<EFBFBD>?=:_2ABCDEFGHIJKLMNOPQRSTUVWXYZ<59>\\)6=;abcdefghijklmnopqrstuvwxyz/|(; ";
char cz_table_2[]=" !\"#$%&'()*+,-./0123456789:;<=>?@<40>BCD<43>FGH<EFBFBD>JK<EFBFBD>MN<EFBFBD>PQ<EFBFBD>ST<EFBFBD>VWX<EFBFBD>Z[\\]^_`<60>bcd<63>fgh<67>jk<6A>mn<6D>pq<70>st<73>vwx<77>z{|}~ ";
char cz_table_3[]=" !\"#$%&'()*+,-./0123456789:;<=>?@AB<EFBFBD><EFBFBD><EFBFBD>FGHIJK<EFBFBD>M<EFBFBD><EFBFBD>PQ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>VWXY<EFBFBD>[\\]^_`ab<61><62><EFBFBD>fghijk<6A>m<EFBFBD><6D>pq<70><71><EFBFBD><EFBFBD>vwxy<78>{|}~ ";
char *cz_key_tabs[]={cz_table_1,cz_table_2,cz_table_3};
word keyconv(word key)

View file

@ -1,7 +1,7 @@
#define VERSION_MAJOR 1
#define VERSION_MAJORT "1"
#define VERSION_MINOR 2
#define VERSION_MINORT "2"
#define VERSION_MINOR 3
#define VERSION_MINORT "3"
#define VERSION_BUILD 17
#define VERSION_BUILDT "17"

View file

@ -1,17 +1,11 @@
#include <skeldal_win.h>
#include <debug.h>
#include <dos.h>
#include <io.h>
#include <bios.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <malloc.h>
#include <mem.h>
#include <dos.h>
#include <direct.h>
#include <types.h>
#include <bgraph.h>
#include <event.h>
@ -23,34 +17,18 @@
#include <gui.h>
#include <basicobj.h>
#include <time.h>
#include <stdarg.h>
#include "globals.h"
#include <resource.h>
#include <windowsx.h>
void kamenik2windows(const char *src, int size, char *trg);
#define BREAK
static HWND hWizardDlg=NULL;
static HWND hWizardText;
static HFONT hfCourier;
static void wzprintf(const char *text,...)
{
int len=GetWindowTextLength(hWizardText);
char *c=(char *)alloca(len+1024);
char *d;
va_list args;
GetWindowText(hWizardText,c,len+1024);
if (len>10000) c+=1024;
d=strchr(c,0);
va_start(args,text);
_vsnprintf(d,1020,text,args);
SetWindowText(hWizardText,c);
len=strlen(c);
SendMessage(hWizardText,EM_SETSEL,len,len);
SendMessage(hWizardText,EM_SCROLLCARET,0,0);
va_list lst;
va_start(lst, text);
vprintf(text, lst);
}
static void wzputs(const char *text)
@ -61,118 +39,17 @@ static void wzputs(const char *text)
static void wzcls()
{
SetWindowText(hWizardText,"");
}
static LRESULT InputWindow(HWND hDlg,UINT msg, WPARAM wParam,LPARAM lParam)
{
static char *buff;
switch (msg)
{
case WM_INITDIALOG:
buff=(char *)lParam;
SetDlgItemText(hDlg,IDC_PROMPT,buff);
hDlg=GetWindow(hDlg,GW_OWNER);
EnableWindow(hDlg,TRUE);
return 0;
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDCANCEL: EndDialog(hDlg,0);break;
case IDOK:
GetDlgItemText(hDlg,IDC_VALUE,buff,1020);
EndDialog(hDlg,1);
break;
}
break;
default: return 0;
}
return 1;
}
static LRESULT CALLBACK ListWindow(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDOK:
case IDCANCEL: PostQuitMessage(LOWORD(wParam));break;
case IDC_LIST: if (HIWORD(wParam)==LBN_DBLCLK) PostQuitMessage(IDOK);break;
default: return 0;
}
default: return 0;
}
return 1;
}
static HWND PrepareListWindow(HWND parent)
{
HWND res;
RECT rc1,rc2;
GetWindowRect(parent,&rc1);
EnableWindow(parent,0);
res=CreateDialog(GetModuleHandle(0),MAKEINTRESOURCE(IDD_LISTDIALOG),parent,(DLGPROC)ListWindow);
GetWindowRect(res,&rc2);
rc2.right=rc2.right-rc2.left;
rc2.bottom=rc2.bottom-rc2.top;
rc2.left=(rc1.left+rc1.right-rc2.right)/2;
rc2.top=(rc1.top+rc1.bottom-rc2.right)/2;
SetWindowPos(res,0,rc2.left,rc2.top,rc2.right,rc2.bottom,SWP_NOZORDER);
ShowWindow(res,SW_SHOW);
return res;
}
static void CloseListWindow(HWND wnd)
{
HWND parent=GetParent(wnd);
DestroyWindow(wnd);
EnableWindow(parent,1);
}
static int PumpDialogMessages(HWND dlg)
{
MSG msg;
while (GetMessage(&msg,0,0,0))
{
if (!IsDialogMessage(dlg,&msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return msg.wParam;
}
static int wzscanf(const char *prompt, const char *format,...)
{
char buff[1024];
va_list args;
unsigned long data[10];
int i;
static char notallowed=0;
if (notallowed) return 0;
notallowed=1;
strcpy(buff,prompt);
if (DialogBoxParam(GetModuleHandle(NULL),MAKEINTRESOURCE(IDD_INPUTWINDOW),GetActiveWindow(),(DLGPROC)InputWindow,(LPARAM)buff)==0)
{
notallowed=0;
return 0;
va_list lst;
va_start(lst, format);
return vscanf(format, lst);
}
notallowed=0;
va_start(args,format);
for (i=0;i<10;i++) data[i]=va_arg(args,unsigned long);
return sscanf(buff,format,data[0],data[1],data[2],data[3],data[4],data[5],data[6],data[7],data[8],data[9]);
}
char *side_flags[]=
{
"AUTOMAP",
@ -234,32 +111,8 @@ char *mc_flags[]=
"!SUMMON"
};
void mman_scan(int action)
void mman_scan(int )
{
extern char screenstate;
static pos=0,zavora=0;
MEMORYSTATUS mmi;
char c[10];
if (screenstate && !zavora)
{
zavora=1;
switch(action)
{
case MMA_SWAP:curcolor=RGB555(31,0,0);break;
case MMA_READ:curcolor=RGB555(0,31,0);break;
case MMA_SWAP_READ:curcolor=RGB555(0,0,31);break;
case MMA_FREE:curcolor=RGB555(31,31,31);break;
}
bar(pos,0,pos+16,16);
get_mem_info(&mmi);
set_font(H_FBOLD,RGB555(31,31,31));
curcolor=0;
bar(16,0,66,16);
position(16,0);sprintf(c,"%d",mmi.dwAvailPageFile/1024);
outtext(c);
showview(pos,0,66,16);
zavora=0;
}
}
void show_flags(int number,char **flags,char nums)
@ -418,6 +271,7 @@ static char raise_death(void)
return 0;
}
/*
static char raise_killed_monster(HWND hDlg)
{
HWND listdlg=PrepareListWindow(hDlg);
@ -451,7 +305,7 @@ static char raise_death(void)
CloseListWindow(listdlg);
return 1;
}
*/
void unaffect();
extern char immortality;
extern char nohassle;
@ -548,7 +402,7 @@ static char display_game_status(void)
s=map_sides+viewsector*4+viewdir;
wzprintf("Sector: (%d) Podlaha %d Strop %d Cil akce %d Smer akce %d Akce %d\r\n",
ss->sector_type, ss->floor,ss->ceil,ss->sector_tag,ss->side_tag,ss->action);
wzprintf(" Vychody: Sev %d Vych %d Jih %d Z p %d\r\n",ss->step_next[0],ss->step_next[1],ss->step_next[2],ss->step_next[3]);
wzprintf(" Vychody: Sev %d Vych %d Jih %d Z<EFBFBD>p %d\r\n",ss->step_next[0],ss->step_next[1],ss->step_next[2],ss->step_next[3]);
wzprintf(" Vlajky: %02X %02X ",ss->flags,map_coord[viewsector].flags);show_flags(map_coord[viewsector].flags,mc_flags,12);
wzputs("\r\n");
wzprintf("Stena: Prim %d Sec %d Obl %d Anim_prim %d/%d Anim_sec %d/%d\r\n",
@ -562,153 +416,6 @@ static char display_game_status(void)
return 0;
}
static LRESULT WizardDlgProc(HWND hDlg,UINT msg, WPARAM wParam,LPARAM lParam)
{
int i;
switch (msg)
{
case WM_INITDIALOG:
hWizardDlg=hDlg;
hWizardText=GetDlgItem(hDlg,IDC_OUTPUT);
SendMessage(hWizardText,WM_SETFONT,(WPARAM)hfCourier,1);
display_game_status();
SetTimer(hDlg,10,20,NULL);
return 0;
case WM_TIMER: do_events();return 1;
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDCANCEL: EndDialog(hDlg,0);return 0;
case IDC_CLEARMAP:
{
HWND listwnd=PrepareListWindow(hDlg);
HWND list=GetDlgItem(listwnd,IDC_LIST);
int res;
ListBox_AddString(list,"Clear Monsters");
ListBox_AddString(list,"Clear Items");
res=PumpDialogMessages(listwnd);
if (res==IDOK)
{
if (ListBox_GetSel(list,0))
{
for(i=0;i<MAX_MOBS;i++)
if (mobs[i].vlajky & MOB_LIVE)
{
vybrana_zbran=-1;
select_player=-1;
mob_hit(mobs+i,mobs[i].lives);
}
}
if (ListBox_GetSel(list,1))
{
for(i=0;i<mapsize*4;i++)
{
destroy_items(map_items[i]);
free(map_items[i]);
map_items[i]=NULL;
}
for(i=0;i<vyk_max;i++)
{
destroy_items(map_vyk[i].items);
map_vyk[i].items[0]=0;
}
}
}
CloseListWindow(listwnd);
}
break;
case IDC_ADVENCE:
{
int i,j,c;
if (!wzscanf("Advence to level <postava -1=vsichni><uroven>:","%d %d",&i,&j)) return 0;
c=MessageBox(GetActiveWindow(),"Automaticky?","?",MB_YESNO|MB_ICONQUESTION);
if (i>0) advence_player(i-1,j,c==IDYES);else
for(i=0;i<POCET_POSTAV;i++) if (postavy[i].used) advence_player(i,j,c==IDYES);
return 0;
}
case IDC_GOTO:
{
char prompt[50];
sprintf(prompt,"Goto sector <1-%d>:",mapsize-1);
if (!wzscanf(prompt,"%d",&viewsector)) return 0;
chod_s_postavama(1);
SEND_LOG("(WIZARD) Goto %d",viewsector,0);
return 0;
}
case IDC_LOADMAP:
if (!wzscanf("Load Map <filename><sector>","%s %hd",loadlevel.name,&loadlevel.start_pos)) return 0;
for(i=0;i<POCET_POSTAV;i++)postavy[i].sektor=loadlevel.start_pos;
SEND_LOG("(WIZARD) Load map '%s' %d",loadlevel.name,loadlevel.start_pos);
EndDialog(hDlg,0);
send_message(E_CLOSE_MAP);
return 0;
case IDC_OPENDOOR:if (map_sectors[viewsector].step_next[viewdir])
delay_action(3,viewsector,viewdir,0x2000000,0,0);
else
delay_action(3,viewsector,viewdir,0,0,0);
return 0;
case IDC_TAKEMONEY:if (take_money()) return 0;break;
case IDC_PURGE:if (purge_map()) return 0;break;
case IDC_HEAL:if (heal_meditate()) return 0;break;
case IDC_RAISEDEATH:if (raise_death()) return 0;break;
case IDC_RAISEMONSTER:if (raise_killed_monster(hDlg)) return 0;break;
case IDC_IMMORTAL:set_immortality();break;
case IDC_NETECNOST:set_nohassle();break;
case IDC_UNAFFECT :unaffect();break;
case IDC_WEAPONSKILL:if (advance_weapon()) return 0;break;
case IDC_REFRESH:display_game_status();break;
case IDC_RELOADMOBILES:
i=MessageBox(hDlg,"Tato funkce precte znova parametry vsech existujicich nestvur. "
"Pouzivej jen v pripade, ze se tyto parametry zmenili a nesouhlasi tak "
"obsah ulozene pozice. Pokracovat? ","??",MB_YESNO|MB_ICONQUESTION);
if (i==IDYES) reload_mobs();
return 0;
case IDC_LOADITEM:
{
HWND listdlg=PrepareListWindow(hDlg);
HWND list=GetDlgItem(listdlg,IDC_LIST);
char buff[256];
int i;
int res;
for (i=0;i<item_count;i++)
{
_snprintf(buff,sizeof(buff),"%d. %s",i,glob_items[i].jmeno);
kamenik2windows(buff,strlen(buff),buff);
ListBox_AddString(list,buff);
}
res=PumpDialogMessages(listdlg);
while (res==IDOK)
{
int cnt;
for (i=0,cnt=ListBox_GetCount(list);i<cnt;i++) if (ListBox_GetSel(list,i))
{
SEND_LOG("(WIZARD) Load Item %d (%s)",i,glob_items[i].jmeno);
macro_drop_item(viewsector,viewdir,i);
wzprintf("Dropped item: %d\r\n",i);
}
res=PumpDialogMessages(listdlg);
}
CloseListWindow(listdlg);
}
return 0;
}
default: return 0;
}
return 1;
}
static void OpenWizard()
{
hfCourier=CreateFont(15,0,0,0,0,0,0,0,0,0,0,0,0,"Courier");
DxDialogs(1);
DialogBox(GetModuleHandle(NULL),MAKEINTRESOURCE(IDD_LADICIOKNO),GetActiveWindow(),(DLGPROC)WizardDlgProc);
DxDialogs(0);
DeleteObject(hfCourier);
}
void wizard_kbd(EVENT_MSG *msg,void **usr)
{
char c;
@ -722,12 +429,6 @@ void wizard_kbd(EVENT_MSG *msg,void **usr)
switch (c)
{
case 'C':
case 'D':
unwire_proc();
OpenWizard();
wire_proc();
showview(0,0,0,0);
break;
case '<':show_debug=!show_debug;break;
case '=':show_lives=!show_lives;break;
case '>':if (mman_action!=NULL) mman_action=NULL;else mman_action=mman_scan;break;

View file

@ -212,7 +212,7 @@ static void display_progress(void)
def_dialoge(312,380,310,75,"Copying some files...",3);
define(10,10,27,290,15,0,done_bar,100);
property(bbutt,NULL,flat_color(0x1e0),WINCOLOR);c_default(0);
define(30,5,5,80,15,2,button,"Stop");on_change(stop_copy);
define(30,5,5,80,15,2,button,"Stop");on_control_change(stop_copy);
property(def_border(1,0),&font6x9,flat_color(0),BUTTONCOLOR);
define(20,5,10,200,12,3,input_line,2048);set_default("");
property(NULL,&font6x9,flat_color(0),WINCOLOR);
@ -306,7 +306,7 @@ static void open_handbook(char *file)
handbook=read_text(file);
win_handbook=def_dialoge(54,54,450,350,"Handbook",2);
def_listbox(9,5,25,420,290,handbook,0,WINCOLOR);property(def_border(0,WINCOLOR),&font6x9,NULL,WINCOLOR);
define(20,5,5,60,15,2,button2,"Close");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(close_current);
define(20,5,5,60,15,2,button2,"Close");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(close_current);
redraw_window();
}
@ -441,11 +441,11 @@ static load_window()
set_full_target_path(0);
for(i=0;i<str_count(disklist);i++) if (target_path[0]==disklist[i][2]) break;
default_font=&font6x9;
define(150,70,5,60,20,2,button,"Ok");on_change(terminate);property(bbutt,&font6x9,NULL,BUTTONCOLOR);
define(160,5,5,60,20,2,button,"Cancel");on_change(terminate);property(bbutt,&font6x9,NULL,BUTTONCOLOR);
define(150,70,5,60,20,2,button,"Ok");on_control_change(terminate_gui);property(bbutt,&font6x9,NULL,BUTTONCOLOR);
define(160,5,5,60,20,2,button,"Cancel");on_control_change(terminate_gui);property(bbutt,&font6x9,NULL,BUTTONCOLOR);
default_font=vga_font;
def_listbox(59,70,60,100,200,dirlist,0,0x03ff);c_default(0);on_change(select_dir);
def_listbox(69,5,60,40,200,disklist,0,0x03ff);on_change(change_disk);
def_listbox(59,70,60,100,200,dirlist,0,0x03ff);c_default(0);on_control_change(select_dir);
def_listbox(69,5,60,40,200,disklist,0,0x03ff);on_control_change(change_disk);
c_default(i);
default_font=&font6x9;
define(-1,215,135,110,80,0,win_label,"");property(def_border(5,0x631f),NULL,NULL,0x631f);
@ -527,7 +527,7 @@ static EVENT_PROC(esc_mode2)
zobraz_mysku();
redraw_desktop();
goto_control(0);
terminate();
terminate_gui();
}
}
}
@ -606,9 +606,9 @@ static void select_vga()
def_dialoge(20,300,156,156,"Graphics modes",2);
define(9,0,20,156,80,0,listbox,video_ls,0x03ff,0);c_default(vmode);
property(NULL,vga_font,NULL,WINCOLOR);
define(20,38,20,80,20,3,button,"Change now");on_change(test_mode);
define(20,38,20,80,20,3,button,"Change now");on_control_change(test_mode);
property(bbutt,NULL,NULL,BUTTONCOLOR);
define(30,10,5,80,10,3,check_box,"Subtitles in intro.");c_default(subtitles);on_change(toggle_subtitles);
define(30,10,5,80,10,3,check_box,"Subtitles in intro.");c_default(subtitles);on_control_change(toggle_subtitles);
redraw_window();
}
@ -635,9 +635,9 @@ static void select_mode_win()
{
def_dialoge(224,270,192,156,"Install",2);
default_font=&font6x9;
define(10,30,40,132,30,0,button,"Automatic");property(bbutt,NULL,NULL,BUTTONCOLOR);on_change(terminate);
define(30,30,80,132,30,0,button,"Custom");property(bbutt,NULL,NULL,BUTTONCOLOR);on_change(terminate);
define(40,50,15,92,20,3,button,"Quit");property(bbutt,NULL,NULL,BUTTONCOLOR);on_change(stop_copy);
define(10,30,40,132,30,0,button,"Automatic");property(bbutt,NULL,NULL,BUTTONCOLOR);on_control_change(terminate_gui);
define(30,30,80,132,30,0,button,"Custom");property(bbutt,NULL,NULL,BUTTONCOLOR);on_control_change(terminate_gui);
define(40,50,15,92,20,3,button,"Quit");property(bbutt,NULL,NULL,BUTTONCOLOR);on_control_change(stop_copy);
redraw_window();
}
@ -645,9 +645,9 @@ static void select_mode_win_setup()
{
def_dialoge(224,270,192,156,"Menu",2);
default_font=&font6x9;
define(10,30,40,132,30,0,button,"Change settings");property(bbutt,NULL,NULL,BUTTONCOLOR);on_change(terminate);
define(30,30,80,132,30,0,button,"Uninstall");property(bbutt,NULL,NULL,BUTTONCOLOR);on_change(terminate);
define(40,50,15,92,20,3,button,"Quit");property(bbutt,NULL,NULL,BUTTONCOLOR);on_change(stop_setup);
define(10,30,40,132,30,0,button,"Change settings");property(bbutt,NULL,NULL,BUTTONCOLOR);on_control_change(terminate_gui);
define(30,30,80,132,30,0,button,"Uninstall");property(bbutt,NULL,NULL,BUTTONCOLOR);on_control_change(terminate_gui);
define(40,50,15,92,20,3,button,"Quit");property(bbutt,NULL,NULL,BUTTONCOLOR);on_control_change(stop_setup);
redraw_window();
}
@ -681,7 +681,7 @@ static void device_select2()
char c;
def_dialoge(270,240,100,100,device_name(i),3);
define(10,10,25,60,40,0,radio_butts,3,"LPT 1","LPT 2","PC Speaker");c_default(0);
define(20,10,5,80,20,2,button,"Ok");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(terminate);
define(20,10,5,80,20,2,button,"Ok");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(terminate_gui);
redraw_window();
escape();
c=f_get_value(0,10);
@ -773,21 +773,21 @@ void select_sound()
for(i=0;i<8;i++) str_add(&ls,device_name(i));
str_replace(&ls,0,"<nosound>");
sound_win=def_dialoge(200,300,300,156,"Sound devices",2);
define(9,2,20,170,85,0,listbox,ls,0x03ff,0);c_default(sound_info.device);on_change(device_select2);
define(9,2,20,170,85,0,listbox,ls,0x03ff,0);c_default(sound_info.device);on_control_change(device_select2);
property(def_border(0,0x4210),vga_font,NULL,WINCOLOR);
define(-1,180,20,1,1,0,label,"Port:");
define(20,10,20,30,12,1,input_line,3);property(def_border(0,0x4210),vga_font,NULL,WINCOLOR);
set_default(itoa(sound_info.port,buff,16));
define(-1,180,40,1,1,0,label,"DMA:");
i=sound_info.dma;i-=(i>2)+(i>4);
define(30,40,40,30,30,1,radio_butts,3,"0","1","3");c_default(i);on_change(change_dma);
define(35,10,40,30,30,1,radio_butts,3,"5","6","7");c_default(i-3);on_change(change_dma);
define(30,40,40,30,30,1,radio_butts,3,"0","1","3");c_default(i);on_control_change(change_dma);
define(35,10,40,30,30,1,radio_butts,3,"5","6","7");c_default(i-3);on_control_change(change_dma);
define(-1,180,80,1,1,0,label,"IRQ:");
i=sound_info.irq;i-=2*(i>1)+(i>4)+(i>6);
define(40,40,80,30,40,1,radio_butts,4,"2","3","5","7");c_default(i);
define(50,10,5,80,20,2,button,"Test");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(test_sound);
define(60,100,5,80,20,2,button,"Autodetect");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(detect_sound);
define(70,190,5,80,20,2,button,"Stop");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(stop_sound);
define(50,10,5,80,20,2,button,"Test");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(test_sound);
define(60,100,5,80,20,2,button,"Autodetect");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(detect_sound);
define(70,190,5,80,20,2,button,"Stop");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(stop_sound);
redraw_window();
set_enable(0,70,mixer_running);
device_select();
@ -799,7 +799,7 @@ static void back_start()
stop_sound();
sound_scan();
while (waktual!=NULL) close_current();
terminate();
terminate_gui();
}
static void control_window(void *forward,void *back,void *help);
@ -1056,22 +1056,22 @@ static void rozsah_window()
exit_wait=0;
default_font=&font6x9;
def_dialoge(146,160,348,264,"Installation ragne:",2);
define(10,10,30,70,30,0,button,"Minimum");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(start_install);
define(10,10,30,70,30,0,button,"Minimum");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(start_install);
define(-1,90,30,1,1,0,label,"It will copy all important files");
define(-1,90,40,1,1,0,label,"Data are loaded from CD");
sprintf(buff,text,install_sizes[0]/1024);
define(-1,90,50,1,1,0,label,buff);
define(20,10,80,70,30,0,button,"Normal");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(start_install);
define(20,10,80,70,30,0,button,"Normal");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(start_install);
define(-1,90,80,1,1,0,label,"It will copy all important files and data");
define(-1,90,90,1,1,0,label,"Music and video are loaded from CD");
sprintf(buff,text,install_sizes[1]/1024);
define(-1,90,100,1,1,0,label,buff);
define(30,10,130,70,30,0,button,"Full");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(start_install);
define(30,10,130,70,30,0,button,"Full");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(start_install);
define(-1,90,130,1,1,0,label,"It will copy all files.");
define(-1,90,140,1,1,0,label,"You will not need CD anymore.");
sprintf(buff,text,install_sizes[2]/1024);
define(-1,90,150,1,1,0,label,buff);
define(40,10,180,70,20,0,button,"Browse");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(open_load_window);
define(40,10,180,70,20,0,button,"Browse");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(open_load_window);
define(60,90,185,250,11,0,input_line,2048);property(def_border(1,0x4210),&font6x9,NULL,0x7fff);
set_default(target_path);
on_event(show_space_event);on_exit(show_space_exit);
@ -1089,12 +1089,12 @@ static void automatic_window()
exit_wait=0;
default_font=&font6x9;
def_dialoge(110,200,420,80,"Target directory:",2);
define(40,10,33,70,15,0,button,"Browse");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(open_load_window);
define(40,10,33,70,15,0,button,"Browse");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(open_load_window);
define(60,90,35,310,11,0,input_line,2048);property(def_border(1,0x4210),&font6x9,NULL,0x7fff);
set_default(target_path);
on_event(show_space_event);on_exit(show_space_exit);
define(10,10,10,70,20,2,button,"Start");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(start_install);
define(20,90,10,70,20,2,button,"<< Back");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(back_start);
define(10,10,10,70,20,2,button,"Start");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(start_install);
define(20,90,10,70,20,2,button,"<< Back");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(back_start);
sprintf(buff,text,install_sizes[0]/1024);
define(90,180,20,200,10,2,view_line,100);set_default(buff);
define(80,180,10,200,10,2,view_line,100);set_default("");
@ -1115,11 +1115,11 @@ static void control_next1()
static void control_window(void *forward,void *back,void *help)
{
def_dialoge(524,300,96,156,"Options",2);
define(10,8,30,80,20,0,button,"Next >>");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(forward);
define(20,8,60,80,20,0,button,"<< Back");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(back);
define(30,8,90,80,20,0,button,"? Help");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(help);
define(10,8,30,80,20,0,button,"Next >>");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(forward);
define(20,8,60,80,20,0,button,"<< Back");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(back);
define(30,8,90,80,20,0,button,"? Help");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(help);
define(40,8,10,80,20,3,button,"Quit");property(bbutt,&font6x9,NULL,BUTTONCOLOR);
if (setup_mode) on_change(stop_setup);else on_change(stop_copy);
if (setup_mode) on_control_change(stop_setup);else on_control_change(stop_copy);
set_enable(0,10,forward!=NULL);
set_enable(0,20,back!=NULL);
set_enable(0,30,help!=NULL);
@ -1227,8 +1227,8 @@ static void deinstall()
define(-1,10,40,200,100,0,label,"After it, you won't be able to play");
define(-1,10,50,200,100,0,label,"the game until you install it again.");
define(10,30,80,150,10,0,check_box,"Don't erase saved positions");c_default(1);
define(20,10,10,80,30,3,button,"Yes, do it!");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(terminate);
define(30,10,10,80,30,2,button,"No, newer!");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_change(terminate);
define(20,10,10,80,30,3,button,"Yes, do it!");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(terminate_gui);
define(30,10,10,80,30,2,button,"No, newer!");property(bbutt,&font6x9,NULL,BUTTONCOLOR);on_control_change(terminate_gui);
redraw_window();
escape();
if (o_aktual->id==30)
@ -1296,12 +1296,12 @@ void warning()
_outtext("(C)1998 Napoleon gameS - Setup version 1.0 written by Ondrej Novak\n"
"\n\nNote:\n");
_settextcolor(15);
_outtext("Ú"); REPEAT(i,78) _outtext("Ä");_outtext("¿");
_outtext("<EFBFBD>"); REPEAT(i,78) _outtext("<EFBFBD>");_outtext("<EFBFBD>");
REPEAT(j,5)
{
_outtext("³"); REPEAT(i,78)_outtext(" ");_outtext("³");
_outtext("<EFBFBD>"); REPEAT(i,78)_outtext(" ");_outtext("<EFBFBD>");
}
_outtext("À"); REPEAT(i,78) _outtext("Ä");_outtext("Ù");
_outtext("<EFBFBD>"); REPEAT(i,78) _outtext("<EFBFBD>");_outtext("<EFBFBD>");
_settextcolor(13);
_settextwindow(6,2,20,79);
_outtext(
@ -1327,9 +1327,9 @@ static void ask_video()
ask_video_win=def_dialoge(242,100,156,156,"Select resolution",3);
define(9,0,20,156,80,0,listbox,video_ls,0x03ff,0);c_default(vmode);
property(NULL,vga_font,NULL,WINCOLOR);
define(20,5,5,60,20,2,button,"Quit");on_change(terminate);
define(20,5,5,60,20,2,button,"Quit");on_control_change(terminate_gui);
property(bbutt,NULL,NULL,BUTTONCOLOR);
define(20,70,5,60,20,2,button,"Ok");on_change(test_mode_xxx);
define(20,70,5,60,20,2,button,"Ok");on_control_change(test_mode_xxx);
property(bbutt,NULL,NULL,BUTTONCOLOR);
redraw_window();
}
@ -1347,7 +1347,7 @@ static EVENT_PROC(esc_mode)
rescue_mode=1;
redraw_desktop();
vmode=0;
terminate();
terminate_gui();
}
}
}
@ -1361,7 +1361,7 @@ static void about_window()
define(-1,10,30,240,10,0,mid_label,"Welcome in Install:");
define(-1,10,42,240,10,0,mid_label,"The Gates of Skeldal ");
define(-1,10,80,240,10,0,mid_label,"Install written by:");
define(-1,10,92,240,10,0,mid_label,"Ond©ej Nov k");
define(-1,10,92,240,10,0,mid_label,"Ond<EFBFBD>ej Nov<6F>k");
define(-1,10,110,240,10,0,mid_label,"(C)1998 Napoleon gameS");
redraw_window();
escape();

View file

@ -156,7 +156,7 @@ long def_window(word xs,word ys,char *name)
if (xs>=70)
{
define(1,1,1,19,16,1,button,"\x0f");
property(NULL,icones,&icone_color,WINCOLOR);on_change(close_current);
property(NULL,icones,&icone_color,WINCOLOR);on_control_change(close_current);
}
return q;
}
@ -201,9 +201,9 @@ void def_listbox(int id,word x,word y,word xs,word ys,TSTR_LIST ls,int ofs,int c
define(id+1,x+xs+4,y+18,15,ys-35,0,scroll_bar_v,0,10,1,0x0200);
property(&b2,NULL,NULL,WINCOLOR);
define(id+2,x+xs+4,y,14,14,0,scroll_button,-1,0,"\x4");
property(&b1,icones,black,WINCOLOR);on_change(scroll_support);
property(&b1,icones,black,WINCOLOR);on_control_change(scroll_support);
define(id+3,x+xs+4,y+ys-14,14,14,0,scroll_button,1,10,"\6");
property(&b1,icones,black,WINCOLOR);on_change(scroll_support);
property(&b1,icones,black,WINCOLOR);on_control_change(scroll_support);
define(id,x,y,xs,ys,0,listbox,ls,color,ofs);
property(&b2,NULL,NULL,WINCOLOR);
}

View file

@ -6,6 +6,7 @@
#define point point32
word *GetScreenAdr();
long GetScreenSizeBytes();
word *GetBuffer2nd();
void RedirectScreen(word *newaddr);
void RestoreScreen();

View file

@ -133,11 +133,11 @@ void close_current();
void check_window(WINDOW *w);
void install_gui(void);
void uninstall_gui(void);
void on_change(void (*proc)());
void on_enter(void (*proc)());
void on_exit(void (*proc)());
void on_event(void (*proc)());
void terminate(void);
void on_control_change(void (*proc)());
void on_control_enter(void (*proc)());
void on_control_exit(void (*proc)());
void on_control_event(void (*proc)());
void terminate_gui(void);
void set_change(void);
void set_value(int win_id,int obj_id,void *value);
void set_default(void *value);

View file

@ -1,9 +1,9 @@
//#define LOGFILE
#ifndef _MEMMAN_H_
#include <stdio.h>
#ifndef _MEMMAN_H_
#define _MEMMAN_H_
#define freemem(size) free(size);
//#define malloc(size) getmem(size)
@ -84,7 +84,7 @@ int find_handle(char *name,void *decomp); //hleda mezi rukojeti stejnou defini
int test_file_exist(int group,char *filename); //testuje zda soubor existuje v ramci mmanageru
void *afile(char *filename,int group,long *blocksize); //nahraje do pameti soubor registrovany v ramci mmanageru
long get_handle_size(int handle);
void get_mem_info(MEMORYSTATUS *mem);
//void get_mem_info(MEMORYSTATUS *mem);
void apreload_sign(int handle,int max_handle); //pripravi preloading pro nacteni dat z CD (sekvencne)
void apreload_start(void (*percent)(int cur,int max)); //provede sekvenci apreload

Some files were not shown because too many files have changed in this diff Show more