diff options
Diffstat (limited to 'engines/mortevielle/parole2.h')
-rw-r--r-- | engines/mortevielle/parole2.h | 103 |
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); + } + + + |