aboutsummaryrefslogtreecommitdiff
path: root/engines/avalanche/celer2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/avalanche/celer2.cpp')
-rw-r--r--engines/avalanche/celer2.cpp335
1 files changed, 167 insertions, 168 deletions
diff --git a/engines/avalanche/celer2.cpp b/engines/avalanche/celer2.cpp
index cec2923c7e..4296f36f70 100644
--- a/engines/avalanche/celer2.cpp
+++ b/engines/avalanche/celer2.cpp
@@ -53,194 +53,119 @@ void Celer::setParent(AvalancheEngine *vm) {
void Celer::pics_link() {
byte xx;
- if (_vm->_gyro.ddmnow) return; /* No animation when the menus are up. */
-
- {
- switch (_vm->_gyro.dna.room) {
+ if (_vm->_gyro.ddmnow)
+ return; /* No animation when the menus are up. */
+
+
+ switch (_vm->_gyro.dna.room) {
+ case r__outsideargentpub:
+ if ((_vm->_gyro.roomtime % int32(12)) == 0)
+ show_one(int32(1) + (_vm->_gyro.roomtime / int32(12)) % int32(4));
+ break;
- case r__outsideargentpub: {
- if ((_vm->_gyro.roomtime % int32(12)) == 0)
- show_one(int32(1) + (_vm->_gyro.roomtime / int32(12)) % int32(4));
- }
+ case r__brummieroad:
+ if ((_vm->_gyro.roomtime % int32(2)) == 0)
+ show_one(int32(1) + (_vm->_gyro.roomtime / int32(2)) % int32(4));
break;
- case r__brummieroad:
- if ((_vm->_gyro.roomtime % int32(2)) == 0)
- show_one(int32(1) + (_vm->_gyro.roomtime / int32(2)) % int32(4));
- break;
-
- case r__bridge:
- if ((_vm->_gyro.roomtime % int32(2)) == 0)
- show_one(int32(4) + (_vm->_gyro.roomtime / int32(2)) % int32(4));
- break;
-
- case r__yours:
- if ((! _vm->_gyro.dna.avvy_is_awake) && ((_vm->_gyro.roomtime % int32(4)) == 0))
- show_one(int32(1) + (_vm->_gyro.roomtime / int32(12)) % int32(2));
- break;
+ case r__bridge:
+ if ((_vm->_gyro.roomtime % int32(2)) == 0)
+ show_one(int32(4) + (_vm->_gyro.roomtime / int32(2)) % int32(4));
+ break;
- case r__argentpub: {
- if (((_vm->_gyro.roomtime % int32(7)) == 1) && (_vm->_gyro.dna.malagauche != 177)) {
- /* Malagauche cycle */
- _vm->_gyro.dna.malagauche += 1;
- switch (_vm->_gyro.dna.malagauche) {
- case 1:
- case 11:
- case 21:
- show_one(12);
- break; /* Looks forwards. */
- case 8:
- case 18:
- case 28:
- case 32:
- show_one(11);
- break; /* Looks at you. */
- case 30:
- show_one(13);
- break; /* Winks. */
- case 33:
- _vm->_gyro.dna.malagauche = 0;
- break;
- }
- }
+ case r__yours:
+ if ((! _vm->_gyro.dna.avvy_is_awake) && ((_vm->_gyro.roomtime % int32(4)) == 0))
+ show_one(int32(1) + (_vm->_gyro.roomtime / int32(12)) % int32(2));
+ break;
- switch (_vm->_gyro.roomtime % 200) {
- case 179:
- case 197:
- show_one(5);
- break; /* Dogfood's drinking cycle */
- case 182:
- case 194:
- show_one(6);
+ case r__argentpub:
+ if (((_vm->_gyro.roomtime % int32(7)) == 1) && (_vm->_gyro.dna.malagauche != 177)) {
+ /* Malagauche cycle */
+ _vm->_gyro.dna.malagauche += 1;
+ switch (_vm->_gyro.dna.malagauche) {
+ case 1:
+ case 11:
+ case 21:
+ show_one(12);
+ break; /* Looks forwards. */
+ case 8:
+ case 18:
+ case 28:
+ case 32:
+ show_one(11);
+ break; /* Looks at you. */
+ case 30:
+ show_one(13);
+ break; /* Winks. */
+ case 33:
+ _vm->_gyro.dna.malagauche = 0;
break;
- case 185:
- show_one(7);
- break;
- case 199:
- _vm->_gyro.dna.dogfoodpos = 177;
- break; /* Impossible value for this. */
- }
-
- if ((_vm->_gyro.roomtime % 200 >= 0) && (_vm->_gyro.roomtime % 200 <= 178)) { /* Normally. */
- if (((_vm->_lucerna.bearing(2) >= 1) && (_vm->_lucerna.bearing(2) <= 90)) || ((_vm->_lucerna.bearing(2) >= 358) && (_vm->_lucerna.bearing(2) <= 360)))
- xx = 3;
- else if ((_vm->_lucerna.bearing(2) >= 293) && (_vm->_lucerna.bearing(2) <= 357))
- xx = 2;
- else if ((_vm->_lucerna.bearing(2) >= 271) && (_vm->_lucerna.bearing(2) <= 292))
- xx = 4;
-
- if (xx != _vm->_gyro.dna.dogfoodpos) { /* Only if it's changed.*/
- show_one(xx);
- _vm->_gyro.dna.dogfoodpos = xx;
- }
}
-
}
- break;
- case r__westhall:
- if ((_vm->_gyro.roomtime % int32(3)) == 0)
- switch ((_vm->_gyro.roomtime / int32(3)) % int32(6)) {
- case 4:
- show_one(1);
- break;
- case 1:
- case 3:
- case 5:
- show_one(2);
- break;
- case 0:
- case 2:
- show_one(3);
- break;
- }
+ switch (_vm->_gyro.roomtime % 200) {
+ case 179:
+ case 197:
+ show_one(5);
+ break; /* Dogfood's drinking cycle */
+ case 182:
+ case 194:
+ show_one(6);
break;
-
- case r__lustiesroom:
- if (!(_vm->_gyro.dna.lustie_is_asleep)) {
- if ((_vm->_gyro.roomtime % int32(45)) > 42)
- xx = 4; /* du Lustie blinks */
-
- /* Bearing of Avvy from du Lustie. */
- else if (((_vm->_lucerna.bearing(2) >= 0) && (_vm->_lucerna.bearing(2) <= 45)) || ((_vm->_lucerna.bearing(2) >= 315) && (_vm->_lucerna.bearing(2) <= 360)))
- xx = 1; /* Middle. */
- else if ((_vm->_lucerna.bearing(2) >= 45) && (_vm->_lucerna.bearing(2) <= 180))
- xx = 2; /* Left. */
- else if ((_vm->_lucerna.bearing(2) >= 181) && (_vm->_lucerna.bearing(2) <= 314))
- xx = 3; /* Right. */
-
- if (xx != _vm->_gyro.dna.dogfoodpos) { /* Only if it's changed.*/
- show_one(xx);
- _vm->_gyro.dna.dogfoodpos = xx; /* We use DogfoodPos here too- why not? */
- }
- }
+ case 185:
+ show_one(7);
break;
+ case 199:
+ _vm->_gyro.dna.dogfoodpos = 177;
+ break; /* Impossible value for this. */
+ }
- case r__aylesoffice:
- if ((! _vm->_gyro.dna.ayles_is_awake) && (_vm->_gyro.roomtime % int32(14) == 0)) {
- switch ((_vm->_gyro.roomtime / int32(14)) % int32(2)) {
- case 0:
- show_one(1);
- break; /* Frame 2: EGA. */
- case 1:
- show_one(3);
- break; /* Frame 1: Natural. */
- }
- }
- break;
-
- case r__robins:
- if (_vm->_gyro.dna.tied_up)
- switch (_vm->_gyro.roomtime % int32(54)) {
- case 20:
- show_one(4);
- break; /* Frame 4: Avalot blinks. */
- case 23:
- show_one(2);
- break; /* Frame 1: Back to normal. */
- }
- break;
-
- case r__nottspub: {
- /* Bearing of Avvy from Port. */
- if (((_vm->_lucerna.bearing(5) >= 0) && (_vm->_lucerna.bearing(5) <= 45)) || ((_vm->_lucerna.bearing(5) >= 315) && (_vm->_lucerna.bearing(5) <= 360)))
- xx = 2; /* Middle. */
- else if ((_vm->_lucerna.bearing(5) >= 45) && (_vm->_lucerna.bearing(5) <= 180))
- xx = 6; /* Left. */
- else if ((_vm->_lucerna.bearing(5) >= 181) && (_vm->_lucerna.bearing(5) <= 314))
- xx = 8; /* Right. */
-
- if ((_vm->_gyro.roomtime % int32(60)) > 57) xx--; /* Blinks */
+ if ((_vm->_gyro.roomtime % 200 >= 0) && (_vm->_gyro.roomtime % 200 <= 178)) { /* Normally. */
+ if (((_vm->_lucerna.bearing(2) >= 1) && (_vm->_lucerna.bearing(2) <= 90)) || ((_vm->_lucerna.bearing(2) >= 358) && (_vm->_lucerna.bearing(2) <= 360)))
+ xx = 3;
+ else if ((_vm->_lucerna.bearing(2) >= 293) && (_vm->_lucerna.bearing(2) <= 357))
+ xx = 2;
+ else if ((_vm->_lucerna.bearing(2) >= 271) && (_vm->_lucerna.bearing(2) <= 292))
+ xx = 4;
if (xx != _vm->_gyro.dna.dogfoodpos) { /* Only if it's changed.*/
show_one(xx);
- _vm->_gyro.dna.dogfoodpos = xx; /* We use DogfoodPos here too- why not? */
+ _vm->_gyro.dna.dogfoodpos = xx;
}
+ }
+ break;
- switch (_vm->_gyro.roomtime % 50) {
- case 45 :
- show_one(9);
- break; /* Spurge blinks */
- case 49 :
- show_one(10);
+ case r__westhall:
+ if ((_vm->_gyro.roomtime % int32(3)) == 0) {
+ switch ((_vm->_gyro.roomtime / int32(3)) % int32(6)) {
+ case 4:
+ show_one(1);
+ break;
+ case 1:
+ case 3:
+ case 5:
+ show_one(2);
+ break;
+ case 0:
+ case 2:
+ show_one(3);
break;
}
}
break;
- case r__ducks: {
- if ((_vm->_gyro.roomtime % 3) == 0) /* The fire flickers */
- show_one(1 + (_vm->_gyro.roomtime / 3) % 3);
+ case r__lustiesroom:
+ if (!(_vm->_gyro.dna.lustie_is_asleep)) {
+ if ((_vm->_gyro.roomtime % int32(45)) > 42)
+ xx = 4; /* du Lustie blinks */
- {/* _vm->_lucerna.bearing of Avvy from Duck. */
- if (((_vm->_lucerna.bearing(2) >= 0) && (_vm->_lucerna.bearing(2) <= 45)) || ((_vm->_lucerna.bearing(2) >= 315) && (_vm->_lucerna.bearing(2) <= 360)))
- xx = 4; /* Middle. */
+ /* Bearing of Avvy from du Lustie. */
+ else if (((_vm->_lucerna.bearing(2) >= 0) && (_vm->_lucerna.bearing(2) <= 45)) || ((_vm->_lucerna.bearing(2) >= 315) && (_vm->_lucerna.bearing(2) <= 360)))
+ xx = 1; /* Middle. */
else if ((_vm->_lucerna.bearing(2) >= 45) && (_vm->_lucerna.bearing(2) <= 180))
- xx = 6; /* Left. */
+ xx = 2; /* Left. */
else if ((_vm->_lucerna.bearing(2) >= 181) && (_vm->_lucerna.bearing(2) <= 314))
- xx = 8; /* Right. */
-
- if ((_vm->_gyro.roomtime % int32(45)) > 42) xx += 1; /* Duck blinks */
+ xx = 3; /* Right. */
if (xx != _vm->_gyro.dna.dogfoodpos) { /* Only if it's changed.*/
show_one(xx);
@@ -249,18 +174,92 @@ void Celer::pics_link() {
}
break;
+ case r__aylesoffice:
+ if ((!_vm->_gyro.dna.ayles_is_awake) && (_vm->_gyro.roomtime % int32(14) == 0)) {
+ switch ((_vm->_gyro.roomtime / int32(14)) % int32(2)) {
+ case 0:
+ show_one(1);
+ break; /* Frame 2: EGA. */
+ case 1:
+ show_one(3);
+ break; /* Frame 1: Natural. */
+ }
+ }
+ break;
+
+ case r__robins:
+ if (_vm->_gyro.dna.tied_up) {
+ switch (_vm->_gyro.roomtime % int32(54)) {
+ case 20:
+ show_one(4);
+ break; /* Frame 4: Avalot blinks. */
+ case 23:
+ show_one(2);
+ break; /* Frame 1: Back to normal. */
+ }
+ }
+ break;
+
+ case r__nottspub:
+ /* Bearing of Avvy from Port. */
+ if (((_vm->_lucerna.bearing(5) >= 0) && (_vm->_lucerna.bearing(5) <= 45)) || ((_vm->_lucerna.bearing(5) >= 315) && (_vm->_lucerna.bearing(5) <= 360)))
+ xx = 2; /* Middle. */
+ else if ((_vm->_lucerna.bearing(5) >= 45) && (_vm->_lucerna.bearing(5) <= 180))
+ xx = 6; /* Left. */
+ else if ((_vm->_lucerna.bearing(5) >= 181) && (_vm->_lucerna.bearing(5) <= 314))
+ xx = 8; /* Right. */
+
+ if ((_vm->_gyro.roomtime % int32(60)) > 57)
+ xx--; /* Blinks */
+
+ if (xx != _vm->_gyro.dna.dogfoodpos) { /* Only if it's changed.*/
+ show_one(xx);
+ _vm->_gyro.dna.dogfoodpos = xx; /* We use DogfoodPos here too- why not? */
+ }
+
+ switch (_vm->_gyro.roomtime % 50) {
+ case 45 :
+ show_one(9);
+ break; /* Spurge blinks */
+ case 49 :
+ show_one(10);
+ break;
+ }
+ break;
+
+ case r__ducks:
+ if ((_vm->_gyro.roomtime % 3) == 0) /* The fire flickers */
+ show_one(1 + (_vm->_gyro.roomtime / 3) % 3);
+
+ {/* _vm->_lucerna.bearing of Avvy from Duck. */
+ if (((_vm->_lucerna.bearing(2) >= 0) && (_vm->_lucerna.bearing(2) <= 45)) || ((_vm->_lucerna.bearing(2) >= 315) && (_vm->_lucerna.bearing(2) <= 360)))
+ xx = 4; /* Middle. */
+ else if ((_vm->_lucerna.bearing(2) >= 45) && (_vm->_lucerna.bearing(2) <= 180))
+ xx = 6; /* Left. */
+ else if ((_vm->_lucerna.bearing(2) >= 181) && (_vm->_lucerna.bearing(2) <= 314))
+ xx = 8; /* Right. */
+
+ if ((_vm->_gyro.roomtime % int32(45)) > 42)
+ xx += 1; /* Duck blinks */
+
+ if (xx != _vm->_gyro.dna.dogfoodpos) { /* Only if it's changed.*/
+ show_one(xx);
+ _vm->_gyro.dna.dogfoodpos = xx; /* We use DogfoodPos here too- why not? */
}
+ break;
+
}
+}
- if ((_vm->_gyro.dna.ringing_bells) && (_vm->_gyro.flagset('B')))
+ if ((_vm->_gyro.dna.ringing_bells) && (_vm->_gyro.flagset('B'))) {
/* They're ringing the bells. */
switch (_vm->_gyro.roomtime % int32(4)) {
- case 1: {
- if (_vm->_gyro.dna.nextbell < 5) _vm->_gyro.dna.nextbell = 12;
+ case 1:
+ if (_vm->_gyro.dna.nextbell < 5)
+ _vm->_gyro.dna.nextbell = 12;
_vm->_gyro.dna.nextbell -= 1;
_vm->_gyro.note(_vm->_gyro.notes[_vm->_gyro.dna.nextbell]);
- }
- break;
+ break;
case 2:
//nosound;
warning("STUB: Celer::pics_link()");