diff options
Diffstat (limited to 'engines/mortevielle/var_mor.h')
-rw-r--r-- | engines/mortevielle/var_mor.h | 485 |
1 files changed, 485 insertions, 0 deletions
diff --git a/engines/mortevielle/var_mor.h b/engines/mortevielle/var_mor.h new file mode 100644 index 0000000000..c1881be6fe --- /dev/null +++ b/engines/mortevielle/var_mor.h @@ -0,0 +1,485 @@ + +/* Constantes, Types et Variables pour le + + M A N O I R DE M O R T E V I E L L E + + ( version Nov 1988 + + + musique & paroles Oct 88 ) + */ + + +/*---------------------------------------------------------------------------*/ +/*------------------------- CONSTANTES ----------------------------------*/ +/*---------------------------------------------------------------------------*/ + +const real freq0 = 1.19318e6; + +const integer seg_syst = 0x6fed; +const integer segmou = 0x6f00; +const integer segdon = 0x6c00; +const integer adani = 0x7314; +const integer adword = 0x4000; +const integer adtroct = 0x406b; +const integer adcfiec = 0x4300; +const integer adbruit = 0x5cb0;/*2C00;*/ +const integer adbruit1 = 0x6924;/*3874;*/ +const integer adbruit2 = 0x6b30;/*3A80;*/ +const integer adbruit3 = 0x6ba6;/*3AF6;*/ +const integer adbruit5 = 0x3b50; +const integer adson = 0x5cb0;/*2C00;*/ +const integer adson2 = 0x60b0;/*3000;*/ +const integer offsetb1 = 6; +const integer offsetb2 = 4; +const integer offsetb3 = 6; + +const integer null = 255; + +const integer tempo_mus = 71; +const integer tempo_bruit = 78; +const integer tempo_f = 80; +const integer tempo_m = 89; + +const integer ti1 = 410; +const integer ti2 = 250; +const integer maxti = 7975; +const integer maxtd = 600; +const integer max_rect = 14; + +const integer ams = 0; +const integer cga = 1; +const integer ega = 2; +const integer her = 3; +const integer tan = 4; + +const integer c_repon = 0; +const integer c_st41 = 186; +const integer c_tparler = 247; +const integer c_paroles = 292; +const integer c_tmlieu = 435; +const integer c_dialpre = 456; +const integer c_action = 476; +const integer c_saction = 497; +const integer c_dis = 502; +const integer c_fin = 510; /* => n'existe pas ; si !! */ + +const integer arega = 0; +const integer asoul = 154; +const integer aouvr = 282; +const integer achai = 387; +const integer acha = 492; +const integer arcf = 1272; +const integer arep = 1314; +const integer amzon = 1650; +const integer fleche = 1758; + +const integer no_choice = 0; +const integer invent = 1; +const integer depla = 2; +const integer action = 3; +const integer saction = 4; +const integer discut = 5; +const integer fichier = 6; +const integer sauve = 7; +const integer charge = 8; + +const integer attacher = 0x301; +const integer attendre = 0x302; +const integer defoncer = 0x303; +const integer dormir = 0x304; +const integer ecouter = 0x305; +const integer entrer = 0x306; +const integer fermer = 0x307; +const integer fouiller = 0x308; +const integer frapper = 0x309; +const integer gratter = 0x30a; +const integer lire = 0x30b; +const integer manger = 0x30c; +const integer mettre = 0x30d; +const integer ouvrir = 0x30e; +const integer prendre = 0x30f; +const integer regarder = 0x310; +const integer sentir = 0x311; +const integer sonder = 0x312; +const integer sortir = 0x313; +const integer soulever = 0x314; +const integer tourner = 0x315; + +const integer scacher = 0x401; +const integer sfouiller = 0x402; +const integer slire = 0x403; +const integer sposer = 0x404; +const integer sregarder = 0x405; + + const array<0,17,byte> tabdbc + = {{7, 23, 7, 14, 13, 9, 14, 9, 5, 12, 6, 12, 13, 4, 0, 4, 5, 9}}; + const array<0,15,byte> tabdph + = {{0, 10, 2, 0, 2, 10, 3, 0, 3, 7, 5, 0, 6, 7, 7, 10}}; + const array<0,25,byte> typcon + = {{0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3}}; + const array<0,25,byte> intcon + = {{1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}}; + const array<0,363,byte> tnocon + = {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0}}; + + +const matrix<1,8,1,4,byte> don + = {{{{ 7, 37, 22, 8}}, + {{19, 33, 23, 7}}, + {{31, 89, 10, 21}}, + {{43, 25, 11, 5}}, + {{55, 37, 5, 8}}, + {{64, 13, 11, 2}}, + {{62, 22, 13, 4}}, + {{62, 25, 13, 5}}}}; + +const array<1,2,varying_string<11> > fic + = {{ " Sauvegarde", + " Chargement" }}; + +const array<0,1,byte> addv + = {{8,8}}; + +const char recom[] = " Recommence "; + + const char f3[] = "F3: Encore"; + const char f8[] = "F8: Suite"; + + const integer max_patt = 20; + + + const array<0,15,byte> rang + = {{15,14,11,7,13,12,10,6,9,5,3,1,2,4,8,0}}; + + +/*---------------------------------------------------------------------------*/ +/*-------------------------------- TYPES --------------------------------*/ +/*---------------------------------------------------------------------------*/ + +typedef varying_string<11> path_chars; +typedef real long_integer; +typedef varying_string<255> str255; +typedef varying_string<125> str125; +typedef varying_string<30> str30; +typedef varying_string<11> str11; +typedef file<byte> fichier_byte; +struct sav_chaine { + integer conf; + array<0,10,char> pourc; + array<0,42,char> teauto; + array<0,30,char> sjer; + integer mlieu,iboul,ibag,icave,ivier,ipuit; + integer derobj,iloic,icryp; + boolean ipre; + char heure; +}; +struct registres { + integer ax,bx,cx,dx,bp,si,di,ds,es,flags; +}; +typedef array<1,1410,char> phrase; +typedef array<0,maxti,integer> tabint; + struct ind { + integer indis; + byte point; + }; +typedef array<0,maxtd,ind> tabind; + +typedef matrix<1,7,0,24,byte> tab_mlieu; + + typedef array<0,255,real> table; +typedef array<0,255,integer> tablint; + + typedef integer word1; +struct chariot { + integer val, + code, + acc, + freq, + rep; +}; + +struct doublet { + byte x,y; +}; +typedef array<1,16,doublet> tabdb; +typedef array<0,107,integer> tfxx; +struct rectangle { + integer x1, x2, y1, y2; + boolean etat; +}; + +typedef array<1,max_rect,rectangle> mult_rect; +typedef varying_string<40> str40; + + struct pattern { + byte tay, tax; + matrix<1,max_patt, 1,max_patt,byte> des; + }; + + + struct nhom { + byte n; /* numero entre 0 et 32 */ + array<0,3,byte> hom; + }; + + typedef array<0,15,nhom> t_nhom; + + struct t_pcga { + byte p; + t_nhom a; + }; + + typedef array<0,90,t_pcga> pal_cga; + + +/*---------------------------------------------------------------------------*/ +/*------------------------------ VARIABLES ------------------------------*/ +/*---------------------------------------------------------------------------*/ + +boolean blo, +bh1, +bf1, +bh2, +bh4, +bf4, +bh5, +bh6, +bh8, +bt3, +bt7, +bh9, + +sonoff, +main1, +choisi, +test0, +f2_all, +imen, +cache, +iesc, +perdu, +col, +syn, +fouil, +zuul, +tesok, +obpart, +okdes, +solu, +arret, +anyone, +brt, +rect, +rech_cfiec, +active_menu; + + +integer x, +y, +t, +vj, +li, +vh, +vm, +jh, +mh, +cs, +gd, /* Gd = graph device */ +hdb, +hfb, +heu, +jou, +key, +min, +num, +max, +res, +ment, +haut, +caff, +maff, +crep, +ades, +iouv, +inei, +ctrm, +dobj, +msg3, +msg4, +mlec, +newgd, +c_zzz, +mchai, +menup, +ipers, +ledeb, +lefin, +mpers, +mnumo, +xprec, +yprec, +perdep, +prebru, +typlec, +num_ph, +xwhere, +ywhere, +numpal, +lderobj, +nb_word, +ptr_oct, +k_tempo, +ptr_tcph, +ptr_word, +color_txt; + +array<0,6400,integer> t_cph; +array<0,4000,byte> tabdon; +/* t_dxx : array[0..121] of integer;*/ +str125 stpou; /* donne le % d'indices */ +byte is; +char mode; +fichier_byte ficdes; +str125 al_mess, +err_mess, +ind_mess, +al_mess2; + + array<1,8,integer> invt, +nbrep, +nbrepm, + disc; + array<0,4,integer> msg; + array<1,7,integer> depl; + array<1,8,varying_string<22> > inv; + array<1,7,varying_string<23> > dep; + array<1,21,varying_string<10> > act; + array<1,5,varying_string<11> > self_; + array<1,8,varying_string<5> > dis; + array<1,7,char> touv; + sav_chaine s,s1; +array<0,390,byte> bufcha; + +matrix<1,6,0,23,byte> lettres; + +array<0,15,byte> palher; + + tabint t_mot; +integer tay_tchar; + tabind t_rec; + file<ind> sauv_t; + untyped_file fibyte; + tab_mlieu v_lieu; + tfxx l; + tablint tbi; +chariot c1, c2, c3; + real addfix; + pal_cga palsav; + array<0,90,tabdb> tabpal; + pal_cga palcga; + array<0,14,pattern> tpt; + + + +/*---------------------------------------------------------------------------*/ +/*-------------------- PROCEDURES ET FONCTIONS ------------------------*/ +/*---------------------------------------------------------------------------*/ + +/* procedure box(c,Gd,xo,yo,xi,yi,patt:integer); external 'c:\mc\boite.com'; */ + +void hirs() +{ + const array<0,13,byte> tandy + = {{113,80,90,14,63,6,50,56,2,3,6,7,0,0}}; + const array<0,12,byte> herc + = {{50,40,41,9,103,3,100,100,2,3,0,0,0}}; + integer i, j; + + switch (gd) { + case cga : + { + graphcolormode; + graphbackground(0); + palette(1); + res=1; + } + break; + case ams : + { + hires; + inline_((real)(0xb8)/6/0/ /* => mov ax,6 */ + 0xcd/0x10); /* => int 16 */ + port[0x3d9]=15; + port[0x3df]=0; + port[0x3dd]=15; + res=2; + } + break; + case ega : + { + inline_((real)(0xb8) / 14 / 0 / /* MOV AX, 14 ; mode video 14 = 640*200 16 couleurs */ + 0xcd / 0x10); /* INT 16 */ + res=2; + } + break; + case her : + { + port[0x3bf]=3; + port[0x3b8]=2; + for( i=0; i <= 12; i ++) + { + port[0x3b4]=i; + port[0x3b5]=herc[i]; + } + inline_((real)(0xfc)/0xb9/0/0x80/0xb8/0/0xb0/0x8e/0xc0/0x31/0xff/0x31/0xc0/0xf3/0xab); + port[0x3b8]=10; + res=2; + } + break; + case tan : + { + port[0x3d8]=0; + port[0x3da]=3; + port[0x3de]=0x14; + for( i=0; i <= 13; i ++) + { + port[0x3d4]=i; + port[0x3d5]=tandy[i]; + } + port[0x3da]=2; + port[0x3de]=0; + port[0x3d8]=port[0x3d8] | (11 & 0xef); + port[0x3dd]=port[0x3dd] | 1; + port[0x3df]=port[0x3df] | 0xc0; + box(0,gd,0,0,640,200,255); + res=1; + } + break; + } +} + +/* procedure affput(Chx,Gd,x,y,coul,char:integer); external 'c:\mc\divaf.com'; */ + +void affcar(integer gd,integer x,integer y,integer coul,integer char) +{ + if (res==1) affput(1,gd,((cardinal)x >> 1),y,coul,char); + else affput(1,gd,x,y,coul,char); +} + +void putpix(integer gd,integer x,integer y,integer coul) +{ + affput(0,gd,x,y,coul,0); +} |