aboutsummaryrefslogtreecommitdiff
path: root/engines/avalanche/access.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/avalanche/access.cpp')
-rw-r--r--engines/avalanche/access.cpp288
1 files changed, 150 insertions, 138 deletions
diff --git a/engines/avalanche/access.cpp b/engines/avalanche/access.cpp
index 951bc1c818..abc944f4dc 100644
--- a/engines/avalanche/access.cpp
+++ b/engines/avalanche/access.cpp
@@ -11,7 +11,7 @@
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
@@ -49,148 +49,160 @@ namespace Avalanche {
boolean int_say_went_ok;
void int_say(string filename, boolean bubble)
- /* Internal use ONLY! */
+/* Internal use ONLY! */
{
- untyped_file f;
-;
- /*$I-*/
- assign(f,filename);
- reset(f,1);
- if (ioresult!=0)
- {;
- int_say_went_ok=false;
- return;
- }
- bufsize=filesize(f);
- blockread(f,buffer,bufsize);
- if (bubble)
- {;
- bufsize += 1;
- buffer[bufsize]='\2';
- }
- close(f);
- /*$I+*/
-
- calldrivers;
-
- int_say_went_ok=true;
+ untyped_file f;
+ ;
+ /*$I-*/
+ assign(f, filename);
+ reset(f, 1);
+ if (ioresult != 0) {
+ ;
+ int_say_went_ok = false;
+ return;
+ }
+ bufsize = filesize(f);
+ blockread(f, buffer, bufsize);
+ if (bubble) {
+ ;
+ bufsize += 1;
+ buffer[bufsize] = '\2';
+ }
+ close(f);
+ /*$I+*/
+
+ calldrivers;
+
+ int_say_went_ok = true;
}
-void dixi(char p, byte n)
-{; exit(153);
- int_say(string('s')+p+strf(n)+".raw",false);
+void dixi(char p, byte n) {
+ ;
+ exit(153);
+ int_say(string('s') + p + strf(n) + ".raw", false);
}
-void talkto(byte whom)
-{
- byte fv;
- boolean no_matches;
-; exit(153);
- if (person==pardon)
- {;
- person=chr(subjnumber);
- subjnumber=0;
- }
-
- switch (chr(whom)) {
- case pspludwick:
-
- if ((dna.lustie_is_asleep) & (~ dna.obj[potion]))
- {;
- dixi('q',68);
- dna.obj[potion]=true;
- objectlist; points(3); return;
- } else
- {;
- if (dna.talked_to_crapulus)
- switch (dna.given2spludwick) { /* Spludwick - what does he need? */
- /* 0 - let it through to use normal routine. */
- case RANGE_2(1,2): {;
- display(string("Can you get me ")+
- get_better(spludwick_order[dna.given2spludwick])+", please?"+
- "\232\2");
- return;
- }
- break;
- case 3: {;
- dixi('q',30); /* need any help with the game? */
- return;
- }
- break;
- }
- else dixi('q',42); /* Haven't talked to Crapulus. Go and talk to him. */
- }
- break;
-
- case pibythneth: if (dna.givenbadgetoiby)
- {;
- dixi('q',33); /* Thanks a lot! */
- return; /* And leave the proc. */
- }
- break; /* Or... just continue, 'cos he hasn't got it. */
- case pdogfood: if (dna.wonnim)
- {; /* We've won the game. */
- dixi('q',6); /* "I'm Not Playing!" */
- return; /* Zap back. */
- }
- break;
- case payles: if (~ dna.ayles_is_awake)
- {;
- dixi('q',43); /* He's fast asleep! */
- return;
- }
- break;
- case pgeida: if (dna.geida_given_potion)
- dna.geida_follows=true; else
- {;
- dixi('u',17);
- return;
- }
- break;
- }
-
- if (whom>149) whom -= 149;
-
- no_matches=true;
- for( fv=1; fv <= numtr; fv ++)
- if (tr[fv].a.accinum==whom)
- {;
- display(string('\23')+chr(fv+48)+'\4');
- no_matches=false;
- flush();
- }
-
- if (no_matches) display("\23\23\4");
-
- if (subjnumber==0) /* For the moment... later we'll parse "say". */
- int_say(string("ss")+strf(whom)+".raw",true);
- else
- {;
- int_say(string("ss")+strf(whom)+'-'+strf(subjnumber)+".raw",true);
- if (! int_say_went_ok) /* File not found! */
- dixi('n',whom);
- }
-
- switch (chr(whom+149)) {
- case pcrapulus:
- {; /* Crapulus: get the badge - first time only */
- dna.obj[badge]=true;
- objectlist;
- dixi('q',1); /* Circular from Cardiff. */
- dna.talked_to_crapulus=true;
-
- whereis[pcrapulus]=177; /* Crapulus walks off. */
-
- tr[2].vanishifstill=true;
- tr[2].walkto(4); /* Walks away. */
-
- points(2);
- }
- break;
-
- case payles: dixi('q',44); break; /* Can you get me a pen? */
-
- }
+void talkto(byte whom) {
+ byte fv;
+ boolean no_matches;
+ ;
+ exit(153);
+ if (person == pardon) {
+ ;
+ person = chr(subjnumber);
+ subjnumber = 0;
+ }
+
+ switch (chr(whom)) {
+ case pspludwick:
+
+ if ((dna.lustie_is_asleep) & (~ dna.obj[potion])) {
+ ;
+ dixi('q', 68);
+ dna.obj[potion] = true;
+ objectlist;
+ points(3);
+ return;
+ } else {
+ ;
+ if (dna.talked_to_crapulus)
+ switch (dna.given2spludwick) { /* Spludwick - what does he need? */
+ /* 0 - let it through to use normal routine. */
+ case RANGE_2(1, 2): {
+ ;
+ display(string("Can you get me ") +
+ get_better(spludwick_order[dna.given2spludwick]) + ", please?" +
+ "\232\2");
+ return;
+ }
+ break;
+ case 3: {
+ ;
+ dixi('q', 30); /* need any help with the game? */
+ return;
+ }
+ break;
+ }
+ else dixi('q', 42); /* Haven't talked to Crapulus. Go and talk to him. */
+ }
+ break;
+
+ case pibythneth:
+ if (dna.givenbadgetoiby) {
+ ;
+ dixi('q', 33); /* Thanks a lot! */
+ return; /* And leave the proc. */
+ }
+ break; /* Or... just continue, 'cos he hasn't got it. */
+ case pdogfood:
+ if (dna.wonnim) {
+ ; /* We've won the game. */
+ dixi('q', 6); /* "I'm Not Playing!" */
+ return; /* Zap back. */
+ }
+ break;
+ case payles:
+ if (~ dna.ayles_is_awake) {
+ ;
+ dixi('q', 43); /* He's fast asleep! */
+ return;
+ }
+ break;
+ case pgeida:
+ if (dna.geida_given_potion)
+ dna.geida_follows = true;
+ else {
+ ;
+ dixi('u', 17);
+ return;
+ }
+ break;
+ }
+
+ if (whom > 149) whom -= 149;
+
+ no_matches = true;
+ for (fv = 1; fv <= numtr; fv ++)
+ if (tr[fv].a.accinum == whom) {
+ ;
+ display(string('\23') + chr(fv + 48) + '\4');
+ no_matches = false;
+ flush();
+ }
+
+ if (no_matches) display("\23\23\4");
+
+ if (subjnumber == 0) /* For the moment... later we'll parse "say". */
+ int_say(string("ss") + strf(whom) + ".raw", true);
+ else {
+ ;
+ int_say(string("ss") + strf(whom) + '-' + strf(subjnumber) + ".raw", true);
+ if (! int_say_went_ok) /* File not found! */
+ dixi('n', whom);
+ }
+
+ switch (chr(whom + 149)) {
+ case pcrapulus: {
+ ; /* Crapulus: get the badge - first time only */
+ dna.obj[badge] = true;
+ objectlist;
+ dixi('q', 1); /* Circular from Cardiff. */
+ dna.talked_to_crapulus = true;
+
+ whereis[pcrapulus] = 177; /* Crapulus walks off. */
+
+ tr[2].vanishifstill = true;
+ tr[2].walkto(4); /* Walks away. */
+
+ points(2);
+ }
+ break;
+
+ case payles:
+ dixi('q', 44);
+ break; /* Can you get me a pen? */
+
+ }
}
} // End of namespace Avalanche. \ No newline at end of file