aboutsummaryrefslogtreecommitdiff
path: root/engines/mortevielle/parole2.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/mortevielle/parole2.h')
-rw-r--r--engines/mortevielle/parole2.h103
1 files changed, 103 insertions, 0 deletions
diff --git a/engines/mortevielle/parole2.h b/engines/mortevielle/parole2.h
new file mode 100644
index 0000000000..6cdaa3e2b4
--- /dev/null
+++ b/engines/mortevielle/parole2.h
@@ -0,0 +1,103 @@
+ void rot_chariot()
+ {
+ c1= c2;
+ c2= c3;
+ {
+ c3.val= 32;
+ c3.code= 9;
+ }
+ }
+
+ void init_chariot()
+ {
+ {
+ c3.rep= 0;
+ c3.freq= 0;
+ c3.acc= 0;
+ }
+ rot_chariot();
+ rot_chariot();
+ }
+
+
+void trait_ph()
+ {
+ const array<0,2,integer> deca
+ = {{300,30,40}};
+
+ ptr_tcph= pred(integer,num_ph);
+ ledeb=swap(t_cph[ptr_tcph]) + deca[typlec];
+ lefin=swap(t_cph[ptr_tcph+1]) + deca[typlec];
+ nb_word= lefin - ledeb;
+ ptr_tcph=(cardinal)ledeb >> 1;
+ ptr_word = 0;
+ do {
+ memw[adword+ ptr_word]= t_cph[ptr_tcph];
+ ptr_word = ptr_word +2;
+ ptr_tcph = ptr_tcph+1;
+ } while (!(ptr_tcph>=((cardinal)lefin >> 1)));
+
+ ptr_oct= 0;
+ ptr_word= 0;
+ init_chariot();
+
+ do {
+ rot_chariot();
+ charg_car();
+ trait_car();
+ } while (!(ptr_word >= nb_word));
+
+ rot_chariot();
+ trait_car();
+ entroct(ord('#'));
+ }
+
+
+
+ void parole(integer rep, integer ht, integer typ)
+ {
+ array<0,500,integer> savph;
+ integer i;
+ integer tempo;
+
+
+ if (sonoff) return;
+ num_ph= rep;
+ haut= ht;
+ typlec= typ;
+ if (typlec!=0)
+ {
+ for( i=0; i <= 500; i ++) savph[i]=t_cph[i];
+ tempo= tempo_bruit;
+ }
+ else
+ if (haut>5) tempo= tempo_f;
+ else tempo= tempo_m;
+ addfix= (real)((tempo-addv[0]))/256;
+ cctable(tbi);
+ switch (typ) {
+ case 1 : {
+ charge_bruit();
+ /*if zuul then zzuul(adbruit,0,1095);*/
+ regenbruit();
+ }
+ break;
+ case 2 : {
+ charge_son();
+ charge_phbruit();
+ }
+ break;
+ }
+ trait_ph();
+ litph(tbi,typ,tempo);
+ if (typlec!=0)
+ for( i=0; i <= 500; i ++)
+ {
+ t_cph[i]=savph[i];
+ mlec=typlec;
+ }
+ writepal(numpal);
+ }
+
+
+