aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe/scenes
diff options
context:
space:
mode:
Diffstat (limited to 'engines/fullpipe/scenes')
-rw-r--r--engines/fullpipe/scenes/scene01.cpp4
-rw-r--r--engines/fullpipe/scenes/scene02.cpp4
-rw-r--r--engines/fullpipe/scenes/scene03.cpp4
-rw-r--r--engines/fullpipe/scenes/scene04.cpp4
-rw-r--r--engines/fullpipe/scenes/scene05.cpp4
-rw-r--r--engines/fullpipe/scenes/scene06.cpp4
-rw-r--r--engines/fullpipe/scenes/scene07.cpp4
-rw-r--r--engines/fullpipe/scenes/scene08.cpp4
-rw-r--r--engines/fullpipe/scenes/scene09.cpp411
-rw-r--r--engines/fullpipe/scenes/scene10.cpp4
-rw-r--r--engines/fullpipe/scenes/scene11.cpp4
-rw-r--r--engines/fullpipe/scenes/scene12.cpp4
-rw-r--r--engines/fullpipe/scenes/scene13.cpp4
-rw-r--r--engines/fullpipe/scenes/scene14.cpp4
-rw-r--r--engines/fullpipe/scenes/scene15.cpp4
-rw-r--r--engines/fullpipe/scenes/scene16.cpp4
-rw-r--r--engines/fullpipe/scenes/scene17.cpp4
-rw-r--r--engines/fullpipe/scenes/scene18and19.cpp205
-rw-r--r--engines/fullpipe/scenes/scene20.cpp4
-rw-r--r--engines/fullpipe/scenes/scene21.cpp4
-rw-r--r--engines/fullpipe/scenes/scene22.cpp4
-rw-r--r--engines/fullpipe/scenes/scene23.cpp4
-rw-r--r--engines/fullpipe/scenes/scene24.cpp4
-rw-r--r--engines/fullpipe/scenes/scene25.cpp4
-rw-r--r--engines/fullpipe/scenes/scene26.cpp4
-rw-r--r--engines/fullpipe/scenes/scene27.cpp6
-rw-r--r--engines/fullpipe/scenes/scene28.cpp4
-rw-r--r--engines/fullpipe/scenes/scene30.cpp4
-rw-r--r--engines/fullpipe/scenes/scene31.cpp4
-rw-r--r--engines/fullpipe/scenes/scene32.cpp4
-rw-r--r--engines/fullpipe/scenes/scene33.cpp4
-rw-r--r--engines/fullpipe/scenes/scene34.cpp4
-rw-r--r--engines/fullpipe/scenes/scene35.cpp4
-rw-r--r--engines/fullpipe/scenes/scene36.cpp4
-rw-r--r--engines/fullpipe/scenes/scene37.cpp4
-rw-r--r--engines/fullpipe/scenes/scene38.cpp4
-rw-r--r--engines/fullpipe/scenes/sceneDbg.cpp4
-rw-r--r--engines/fullpipe/scenes/sceneFinal.cpp4
-rw-r--r--engines/fullpipe/scenes/sceneIntro.cpp4
39 files changed, 615 insertions, 151 deletions
diff --git a/engines/fullpipe/scenes/scene01.cpp b/engines/fullpipe/scenes/scene01.cpp
index 6c8f26d209..e24eb1fa45 100644
--- a/engines/fullpipe/scenes/scene01.cpp
+++ b/engines/fullpipe/scenes/scene01.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene02.cpp b/engines/fullpipe/scenes/scene02.cpp
index 95cf1df7dd..109a20a07a 100644
--- a/engines/fullpipe/scenes/scene02.cpp
+++ b/engines/fullpipe/scenes/scene02.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene03.cpp b/engines/fullpipe/scenes/scene03.cpp
index 5d22931fb7..e6c9fa3bbd 100644
--- a/engines/fullpipe/scenes/scene03.cpp
+++ b/engines/fullpipe/scenes/scene03.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene04.cpp b/engines/fullpipe/scenes/scene04.cpp
index b2137ec627..b47553ef6f 100644
--- a/engines/fullpipe/scenes/scene04.cpp
+++ b/engines/fullpipe/scenes/scene04.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene05.cpp b/engines/fullpipe/scenes/scene05.cpp
index 1a728794aa..8864794691 100644
--- a/engines/fullpipe/scenes/scene05.cpp
+++ b/engines/fullpipe/scenes/scene05.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene06.cpp b/engines/fullpipe/scenes/scene06.cpp
index 2687db70b7..d54ebf4514 100644
--- a/engines/fullpipe/scenes/scene06.cpp
+++ b/engines/fullpipe/scenes/scene06.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene07.cpp b/engines/fullpipe/scenes/scene07.cpp
index 207189d151..6db8c30932 100644
--- a/engines/fullpipe/scenes/scene07.cpp
+++ b/engines/fullpipe/scenes/scene07.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene08.cpp b/engines/fullpipe/scenes/scene08.cpp
index 716ca1f593..a5f5a8b389 100644
--- a/engines/fullpipe/scenes/scene08.cpp
+++ b/engines/fullpipe/scenes/scene08.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene09.cpp b/engines/fullpipe/scenes/scene09.cpp
index 6752864962..99cf0b20fd 100644
--- a/engines/fullpipe/scenes/scene09.cpp
+++ b/engines/fullpipe/scenes/scene09.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
@@ -59,18 +59,18 @@ void scene09_setupGrit(Scene *sc) {
void scene09_initScene(Scene *sc) {
g_vars->scene09_flyingBall = 0;
- g_vars->scene09_var05 = 0;
- g_vars->scene09_glotatel = sc->getStaticANIObject1ById(ANI_GLOTATEL, -1);
+ g_vars->scene09_numSwallenBalls = 0;
+ g_vars->scene09_gulper = sc->getStaticANIObject1ById(ANI_GLOTATEL, -1);
g_vars->scene09_spitter = sc->getStaticANIObject1ById(ANI_PLEVATEL, -1);
g_vars->scene09_grit = sc->getStaticANIObject1ById(ANI_GRIT_9, -1);
- g_vars->scene09_var08 = 1;
- g_vars->scene09_var09 = 0;
- g_vars->scene09_var10 = -1;
- g_vars->scene09_var11 = -1;
- g_vars->scene09_var12 = -1000;
+ g_vars->scene09_gulperIsPresent = true;
+ g_vars->scene09_dudeIsOnLadder = false;
+ g_vars->scene09_interactingHanger = -1;
+ g_vars->scene09_intHangerPhase = -1;
+ g_vars->scene09_intHangerMaxPhase = -1000;
g_vars->scene09_balls.cPlexLen = 10;
- g_vars->scene09_var07.cPlexLen = 10;
+ g_vars->scene09_flyingBalls.cPlexLen = 10;
while (g_vars->scene09_balls.numBalls) {
Ball *b = g_vars->scene09_balls.pHead->p0;
@@ -85,10 +85,7 @@ void scene09_initScene(Scene *sc) {
g_vars->scene09_balls.init(&b);
}
- g_vars->scene09_var13 = 3;
-
g_vars->scene09_hangers.clear();
- g_vars->scene09_var15 = 4;
g_vars->scene09_numMovingHangers = 4;
StaticANIObject *hanger = sc->getStaticANIObject1ById(ANI_VISUNCHIK, -1);
@@ -119,35 +116,36 @@ void scene09_initScene(Scene *sc) {
g_vars->scene09_hangers.push_back(hng);
}
- while (g_vars->scene09_var07.numBalls) {
- Ball *ohead = g_vars->scene09_var07.pHead;
+ while (g_vars->scene09_flyingBalls.numBalls) {
+ Ball *ohead = g_vars->scene09_flyingBalls.pHead;
- g_vars->scene09_var07.pHead = g_vars->scene09_var07.pHead->p0;
+ g_vars->scene09_flyingBalls.pHead = g_vars->scene09_flyingBalls.pHead->p0;
- if (g_vars->scene09_var07.pHead)
+ if (g_vars->scene09_flyingBalls.pHead)
ohead->p0->p1 = 0;
else
- g_vars->scene09_var07.field_8 = 0;
+ g_vars->scene09_flyingBalls.field_8 = 0;
- ohead->p0 = g_vars->scene09_var07.pTail;
+ ohead->p0 = g_vars->scene09_flyingBalls.pTail;
- g_vars->scene09_var07.pTail = ohead;
+ g_vars->scene09_flyingBalls.pTail = ohead;
- g_vars->scene09_var07.numBalls--;
+ g_vars->scene09_flyingBalls.numBalls--;
}
- g_vars->scene09_var07.reset();
+ g_vars->scene09_flyingBalls.reset();
+
+ Ball *b9 = g_vars->scene09_flyingBalls.sub04(g_vars->scene09_flyingBalls.field_8, 0);
- Ball *b9 = g_vars->scene09_var07.sub04(g_vars->scene09_var07.field_8, 0);
b9->ani = sc->getStaticANIObject1ById(ANI_BALL9, -1);
b9->ani->setAlpha(0xc8);
- if (g_vars->scene09_var07.field_8) {
- g_vars->scene09_var07.field_8->p0 = b9;
- g_vars->scene09_var07.field_8 = b9;
+ if (g_vars->scene09_flyingBalls.field_8) {
+ g_vars->scene09_flyingBalls.field_8->p0 = b9;
+ g_vars->scene09_flyingBalls.field_8 = b9;
} else {
- g_vars->scene09_var07.pHead = b9;
- g_vars->scene09_var07.field_8 = b9;
+ g_vars->scene09_flyingBalls.pHead = b9;
+ g_vars->scene09_flyingBalls.field_8 = b9;
}
for (int i = 0; i < 4; i++) {
@@ -155,43 +153,43 @@ void scene09_initScene(Scene *sc) {
newball->setAlpha(0xc8);
- Ball *runPtr = g_vars->scene09_var07.pTail;
- Ball *lastP = g_vars->scene09_var07.field_8;
+ Ball *runPtr = g_vars->scene09_flyingBalls.pTail;
+ Ball *lastP = g_vars->scene09_flyingBalls.field_8;
- if (!g_vars->scene09_var07.pTail) {
- g_vars->scene09_var07.cPlex = (byte *)calloc(g_vars->scene09_var07.cPlexLen, sizeof(Ball));
+ if (!g_vars->scene09_flyingBalls.pTail) {
+ g_vars->scene09_flyingBalls.cPlex = (byte *)calloc(g_vars->scene09_flyingBalls.cPlexLen, sizeof(Ball));
- byte *p1 = g_vars->scene09_var07.cPlex + (g_vars->scene09_var07.cPlexLen - 1) * sizeof(Ball);
+ byte *p1 = g_vars->scene09_flyingBalls.cPlex + (g_vars->scene09_flyingBalls.cPlexLen - 1) * sizeof(Ball);
- if (g_vars->scene09_var07.cPlexLen - 1 < 0) {
- runPtr = g_vars->scene09_var07.pTail;
+ if (g_vars->scene09_flyingBalls.cPlexLen - 1 < 0) {
+ runPtr = g_vars->scene09_flyingBalls.pTail;
} else {
- runPtr = g_vars->scene09_var07.pTail;
+ runPtr = g_vars->scene09_flyingBalls.pTail;
- for (int j = 0; j < g_vars->scene09_var07.cPlexLen; j++) {
+ for (int j = 0; j < g_vars->scene09_flyingBalls.cPlexLen; j++) {
((Ball *)p1)->p1 = runPtr;
runPtr = (Ball *)p1;
p1 -= sizeof(Ball);
}
- g_vars->scene09_var07.pTail = runPtr;
+ g_vars->scene09_flyingBalls.pTail = runPtr;
}
}
- g_vars->scene09_var07.pTail = runPtr->p0;
+ g_vars->scene09_flyingBalls.pTail = runPtr->p0;
runPtr->p1 = lastP;
runPtr->p0 = 0;
runPtr->ani = newball;
- g_vars->scene09_var07.numBalls++;
+ g_vars->scene09_flyingBalls.numBalls++;
- if (g_vars->scene09_var07.field_8)
- g_vars->scene09_var07.field_8->p0 = runPtr;
+ if (g_vars->scene09_flyingBalls.field_8)
+ g_vars->scene09_flyingBalls.field_8->p0 = runPtr;
else
- g_vars->scene09_var07.pHead = runPtr;
+ g_vars->scene09_flyingBalls.pHead = runPtr;
- g_vars->scene09_var07.field_8 = runPtr;
+ g_vars->scene09_flyingBalls.field_8 = runPtr;
sc->addStaticANIObject(newball, 1);
}
@@ -214,7 +212,7 @@ void scene09_initScene(Scene *sc) {
}
int sceneHandler09_updateScreenCallback() {
- int res = g_fp->drawArcadeOverlay(g_fp->_objectIdAtCursor == ANI_VISUNCHIK || g_vars->scene09_var10 >= 0);
+ int res = g_fp->drawArcadeOverlay(g_fp->_objectIdAtCursor == ANI_VISUNCHIK || g_vars->scene09_interactingHanger >= 0);
if (!res)
g_fp->_updateScreenCallback = 0;
@@ -225,13 +223,13 @@ int sceneHandler09_updateScreenCallback() {
int scene09_updateCursor() {
g_fp->updateCursorCommon();
- if (g_vars->scene09_var10 < 0) {
+ if (g_vars->scene09_interactingHanger < 0) {
if (g_fp->_objectIdAtCursor == ANI_VISUNCHIK) {
if (g_fp->_cursorId == PIC_CSR_ITN)
g_fp->_updateScreenCallback = sceneHandler09_updateScreenCallback;
} else {
if (g_fp->_objectIdAtCursor == PIC_SC9_LADDER_R && g_fp->_cursorId == PIC_CSR_ITN)
- g_fp->_cursorId = (g_vars->scene09_var02 < 350) ? PIC_CSR_GOD : PIC_CSR_GOU;
+ g_fp->_cursorId = (g_vars->scene09_dudeY < 350) ? PIC_CSR_GOD : PIC_CSR_GOU;
}
} else {
g_fp->_cursorId = PIC_CSR_ITN;
@@ -241,14 +239,14 @@ int scene09_updateCursor() {
}
void sceneHandler09_winArcade() {
- if (g_vars->scene09_glotatel->_flags & 4) {
- g_vars->scene09_glotatel->changeStatics2(ST_GLT_SIT);
- g_vars->scene09_glotatel->startAnim(MV_GLT_FLYAWAY, 0, -1);
+ if (g_vars->scene09_gulper->_flags & 4) {
+ g_vars->scene09_gulper->changeStatics2(ST_GLT_SIT);
+ g_vars->scene09_gulper->startAnim(MV_GLT_FLYAWAY, 0, -1);
g_fp->setObjectState(sO_Jug, g_fp->getObjectEnumState(sO_Jug, sO_Unblocked));
g_fp->setObjectState(sO_RightStairs_9, g_fp->getObjectEnumState(sO_RightStairs_9, sO_IsOpened));
- g_vars->scene09_var08 = 0;
+ g_vars->scene09_gulperIsPresent = false;
}
}
@@ -301,27 +299,293 @@ void sceneHandler09_spitterClick() {
}
void sceneHandler09_eatBall() {
- warning("STUB: sceneHandler09_eatBall()");
+ if (g_vars->scene09_flyingBall) {
+ g_vars->scene09_flyingBall->hide();
+
+ Ball *ball = g_vars->scene09_balls.pHead;
+
+ if (ball) {
+ while (ball && ball->ani != g_vars->scene09_flyingBall)
+ ball = ball->p0;
+
+ if (ball) {
+ if (ball == g_vars->scene09_balls.pHead)
+ g_vars->scene09_balls.pHead = ball->p0;
+ else
+ ball->p1->p0 = ball->p0;
+
+ if (ball == g_vars->scene09_balls.field_8)
+ g_vars->scene09_balls.field_8 = ball->p1;
+ else
+ ball->p0->p1 = ball->p1;
+
+ ball->p0 = g_vars->scene09_balls.pTail;
+ g_vars->scene09_balls.pTail = ball;
+
+ g_vars->scene09_balls.numBalls--;
+
+ if (!g_vars->scene09_balls.numBalls)
+ g_vars->scene09_balls.reset();
+ }
+ }
+
+ ball = g_vars->scene09_flyingBalls.sub04(g_vars->scene09_flyingBalls.field_8, 0);
+ ball->ani = g_vars->scene09_flyingBall;
+
+ if (g_vars->scene09_flyingBalls.field_8)
+ g_vars->scene09_flyingBalls.field_8->p0 = ball;
+ else
+ g_vars->scene09_flyingBalls.pHead = ball;
+
+ g_vars->scene09_flyingBalls.field_8 = ball;
+
+ g_vars->scene09_flyingBall = 0;
+ g_vars->scene09_numSwallenBalls++;
+
+ if (g_vars->scene09_numSwallenBalls >= 3) {
+ MessageQueue *mq = g_vars->scene09_gulper->getMessageQueue();
+
+ if (mq) {
+ ExCommand *ex = new ExCommand(ANI_GLOTATEL, 1, MV_GLT_FLYAWAY, 0, 0, 0, 1, 0, 0, 0);
+ ex->_excFlags |= 2;
+
+ mq->addExCommandToEnd(ex);
+ }
+
+ g_fp->setObjectState(sO_Jug, g_fp->getObjectEnumState(sO_Jug, sO_Unblocked));
+ g_fp->setObjectState(sO_RightStairs_9, g_fp->getObjectEnumState(sO_RightStairs_9, sO_IsOpened));
+
+ g_vars->scene09_gulperIsPresent = false;
+ }
+ }
}
void sceneHandler09_showBall() {
- warning("STUB: sceneHandler09_showBall()");
+ if (g_vars->scene09_flyingBalls.numBalls) {
+ StaticANIObject *ani = g_vars->scene09_flyingBalls.pHead->ani;
+ Ball *ph = g_vars->scene09_flyingBalls.pHead;
+ g_vars->scene09_flyingBalls.pHead = ph->p0;
+
+ if (g_vars->scene09_flyingBalls.pHead)
+ ph->p0->p1 = 0;
+ else
+ g_vars->scene09_flyingBalls.field_8 = 0;
+
+ ph->p0 = g_vars->scene09_flyingBalls.pTail;
+
+ g_vars->scene09_flyingBalls.pTail = ph;
+ g_vars->scene09_flyingBalls.numBalls--;
+
+ if (!g_vars->scene09_flyingBalls.numBalls) {
+ g_vars->scene09_flyingBalls.numBalls = 0;
+ g_vars->scene09_flyingBalls.pTail = 0;
+ g_vars->scene09_flyingBalls.field_8 = 0;
+ g_vars->scene09_flyingBalls.pHead = 0;
+
+ free(g_vars->scene09_flyingBalls.cPlex);
+ g_vars->scene09_flyingBalls.cPlex = 0;
+ }
+
+ Ball *ball = g_vars->scene09_balls.sub04(g_vars->scene09_balls.field_8, 0);
+ ball->ani = ani;
+
+ if (g_vars->scene09_balls.field_8)
+ g_vars->scene09_balls.field_8->p0 = ball;
+ else
+ g_vars->scene09_balls.pHead = ball;
+
+ g_vars->scene09_balls.field_8 = ball;
+
+ ani->show1(g_fp->_aniMan->_ox + 94, g_fp->_aniMan->_oy - 162, MV_BALL9_EXPLODE, 0);
+ }
}
void sceneHandler09_cycleHangers() {
- warning("STUB: sceneHandler09_cycleHangers()");
+ for (int i = 0; i < g_vars->scene09_numMovingHangers; i++) {
+ Movement *mov = g_vars->scene09_hangers[i]->ani->_movement;
+
+ if (mov && mov->_id == MV_VSN_CYCLE2) {
+ int idx;
+
+ if (g_vars->scene09_hangers[i]->phase >= 0)
+ idx = 18 - g_vars->scene09_hangers[i]->phase / 5;
+ else
+ idx = 18 - g_vars->scene09_hangers[i]->phase * 10 / 43;
+
+ if (idx > 38)
+ idx = 38;
+
+ if (idx < 1)
+ idx = 1;
+
+ mov->setDynamicPhaseIndex(idx);
+ }
+ }
}
void sceneHandler09_limitHangerPhase() {
- warning("STUB: sceneHandler09_limitHangerPhase()");
+ for (int i = 0; i < g_vars->scene09_numMovingHangers; i++) {
+ if (i != g_vars->scene09_interactingHanger) {
+ g_vars->scene09_hangers[i]->phase += g_vars->scene09_hangers[i]->field_8;
+
+ if (g_vars->scene09_hangers[i]->phase > 85)
+ g_vars->scene09_hangers[i]->phase = 85;
+
+ if (g_vars->scene09_hangers[i]->phase < -85)
+ g_vars->scene09_hangers[i]->phase = -85;
+
+ if (g_vars->scene09_hangers[i]->phase < 0)
+ g_vars->scene09_hangers[i]->field_8++;
+
+ if (g_vars->scene09_hangers[i]->phase > 0)
+ g_vars->scene09_hangers[i]->field_8--;
+ }
+ }
+}
+
+void sceneHandler09_collideBall(Ball *ball) {
+ if (g_vars->scene09_gulperIsPresent) {
+ g_vars->scene09_flyingBall = ball->ani;
+
+ if (g_vars->scene09_gulper) {
+ g_vars->scene09_gulper->changeStatics2(ST_GLT_SIT);
+
+ MessageQueue *mq = new MessageQueue(g_fp->_currentScene->getMessageQueueById(QU_SC9_EATBALL), 0, 0);
+
+ mq->setFlags(mq->getFlags() | 1);
+
+ if (!mq->chain(g_vars->scene09_gulper))
+ delete mq;
+ }
+ }
+}
+
+void sceneHandler09_ballExplode(Ball *ball) {
+ if (ball == g_vars->scene09_balls.pHead)
+ g_vars->scene09_balls.pHead = ball->p0;
+ else
+ ball->p1->p0 = ball->p0;
+
+ if (ball == g_vars->scene09_balls.field_8)
+ g_vars->scene09_balls.field_8 = ball->p1;
+ else
+ ball->p0->p1 = ball->p1;
+
+ ball->p0 = g_vars->scene09_balls.pTail;
+
+ g_vars->scene09_balls.pTail = ball;
+ g_vars->scene09_balls.numBalls--;
+
+ if (!g_vars->scene09_balls.numBalls) {
+ g_vars->scene09_balls.pTail = 0;
+ g_vars->scene09_balls.field_8 = 0;
+ g_vars->scene09_balls.pHead = 0;
+ free(g_vars->scene09_balls.cPlex);
+ g_vars->scene09_balls.cPlex = 0;
+ }
+
+ MessageQueue *mq = new MessageQueue(g_fp->_currentScene->getMessageQueueById(QU_SC9_BALLEXPLODE), 0, 1);
+
+ mq->replaceKeyCode(-1, ball->ani->_okeyCode);
+
+ if (!mq->chain(ball->ani))
+ delete mq;
+
+ Ball *runPtr = g_vars->scene09_flyingBalls.pTail;
+ Ball *lastP = g_vars->scene09_flyingBalls.field_8;
+
+ if (!g_vars->scene09_flyingBalls.pTail) {
+ g_vars->scene09_flyingBalls.cPlex = (byte *)calloc(g_vars->scene09_flyingBalls.cPlexLen, sizeof(Ball));
+
+ byte *p1 = g_vars->scene09_flyingBalls.cPlex + (g_vars->scene09_flyingBalls.cPlexLen - 1) * sizeof(Ball);
+
+ if (g_vars->scene09_flyingBalls.cPlexLen - 1 < 0) {
+ runPtr = g_vars->scene09_flyingBalls.pTail;
+ } else {
+ runPtr = g_vars->scene09_flyingBalls.pTail;
+
+ for (int j = 0; j < g_vars->scene09_flyingBalls.cPlexLen; j++) {
+ ((Ball *)p1)->p1 = runPtr;
+ runPtr = (Ball *)p1;
+
+ p1 -= sizeof(Ball);
+ }
+
+ g_vars->scene09_flyingBalls.pTail = runPtr;
+ }
+ }
+
+ g_vars->scene09_flyingBalls.pTail = runPtr->p0;
+ runPtr->p1 = lastP;
+ runPtr->p0 = 0;
+ runPtr->ani = ball->ani;
+
+ g_vars->scene09_flyingBalls.numBalls++;
+
+ if (g_vars->scene09_flyingBalls.field_8) {
+ g_vars->scene09_flyingBalls.field_8->p0 = runPtr;
+ g_vars->scene09_flyingBalls.field_8 = runPtr;
+ } else {
+ g_vars->scene09_flyingBalls.pHead = runPtr;
+ g_vars->scene09_flyingBalls.field_8 = runPtr;
+ }
}
void sceneHandler09_checkHangerCollide() {
- warning("STUB: sceneHandler09_checkHangerCollide()");
+ for (Ball *ball = g_vars->scene09_balls.pHead; ball; ball = ball->p0) {
+ int newx = ball->ani->_ox + 5;
+
+ ball->ani->setOXY(newx, ball->ani->_oy);
+
+ if (newx <= 1398 || g_vars->scene09_flyingBall) {
+ if (g_vars->scene09_gulperIsPresent)
+ goto LABEL_11;
+ } else if (g_vars->scene09_gulperIsPresent) {
+ sceneHandler09_collideBall(ball);
+ continue;
+ }
+
+ if (newx > 1600) {
+ sceneHandler09_ballExplode(ball);
+ continue;
+ }
+
+ LABEL_11:
+ int pixel;
+
+ for (int i = 0; i < g_vars->scene09_numMovingHangers; i++) {
+ for (int j = 0; j < 4; j++) {
+ g_vars->scene09_hangers[i]->ani->getPixelAtPos(newx + g_vars->scene09_hangerOffsets[j].x, ball->ani->_oy + g_vars->scene09_hangerOffsets[j].y, &pixel);
+
+ if (pixel) {
+ sceneHandler09_ballExplode(ball);
+ break;
+ }
+ }
+ }
+ }
}
void sceneHandler09_hangerStartCycle() {
- warning("STUB: sceneHandler09_hangerStartCycle()");
+ StaticANIObject *ani = g_vars->scene09_hangers[g_vars->scene09_interactingHanger]->ani;
+
+ if (ani->_movement) {
+ ani->startAnim(MV_VSN_CYCLE2, 0, -1);
+ g_vars->scene09_hangers[g_vars->scene09_interactingHanger]->field_8 = 0;
+ g_vars->scene09_hangers[g_vars->scene09_interactingHanger]->phase = g_vars->scene09_intHangerPhase + (g_fp->_mouseScreenPos.y - g_vars->scene09_clickY) / 2;
+
+ if (g_vars->scene09_intHangerMaxPhase != -1000 && g_vars->scene09_hangers[g_vars->scene09_interactingHanger]->phase != g_vars->scene09_intHangerMaxPhase) {
+ ExCommand *ex = new ExCommand(0, 35, SND_9_019, 0, 0, 0, 1, 0, 0, 0);
+
+ ex->_field_14 = 1;
+ ex->_excFlags |= 2;
+ ex->postMessage();
+
+ g_vars->scene09_intHangerMaxPhase = -1000;
+ }
+ } else {
+ g_vars->scene09_interactingHanger = -1;
+ }
}
int sceneHandler09(ExCommand *cmd) {
@@ -341,14 +605,14 @@ int sceneHandler09(ExCommand *cmd) {
getCurrSceneSc2MotionController()->setEnabled();
getGameLoaderInteractionController()->enableFlag24();
- g_vars->scene09_var09 = 0;
+ g_vars->scene09_dudeIsOnLadder = false;
break;
case MSG_SC9_TOLADDER:
getCurrSceneSc2MotionController()->clearEnabled();
getGameLoaderInteractionController()->disableFlag24();
- g_vars->scene09_var09 = 1;
+ g_vars->scene09_dudeIsOnLadder = true;
break;
case MSG_SC9_PLVCLICK:
@@ -356,7 +620,7 @@ int sceneHandler09(ExCommand *cmd) {
break;
case MSG_SC9_FLOWN:
- g_vars->scene09_var08 = 0;
+ g_vars->scene09_gulperIsPresent = false;
break;
case MSG_SC9_EATBALL:
@@ -374,7 +638,7 @@ int sceneHandler09(ExCommand *cmd) {
if (g_fp->_aniMan2) {
int x = g_fp->_aniMan2->_ox;
- g_vars->scene09_var02 = g_fp->_aniMan2->_oy;
+ g_vars->scene09_dudeY = g_fp->_aniMan2->_oy;
if (x < g_fp->_sceneRect.left + 200)
g_fp->_currentScene->_x = x - g_fp->_sceneRect.left - 300;
@@ -392,11 +656,10 @@ int sceneHandler09(ExCommand *cmd) {
sceneHandler09_limitHangerPhase();
sceneHandler09_checkHangerCollide();
- if (g_vars->scene09_var10 >= 0)
+ if (g_vars->scene09_interactingHanger >= 0)
sceneHandler09_hangerStartCycle();
- if (!g_vars->scene09_var17)
- g_fp->_behaviorManager->updateBehaviors();
+ g_fp->_behaviorManager->updateBehaviors();
g_fp->startSceneTrack();
@@ -404,14 +667,14 @@ int sceneHandler09(ExCommand *cmd) {
}
case 30:
- if (g_vars->scene09_var10 >= 0) {
- if (ABS(g_vars->scene09_hangers[g_vars->scene09_var10]->phase) < 15) {
- g_vars->scene09_hangers[g_vars->scene09_var10]->ani->_callback2 = 0;
- g_vars->scene09_hangers[g_vars->scene09_var10]->ani->changeStatics2(ST_VSN_NORMAL);
+ if (g_vars->scene09_interactingHanger >= 0) {
+ if (ABS(g_vars->scene09_hangers[g_vars->scene09_interactingHanger]->phase) < 15) {
+ g_vars->scene09_hangers[g_vars->scene09_interactingHanger]->ani->_callback2 = 0;
+ g_vars->scene09_hangers[g_vars->scene09_interactingHanger]->ani->changeStatics2(ST_VSN_NORMAL);
}
}
- g_vars->scene09_var10 = -1;
+ g_vars->scene09_interactingHanger = -1;
break;
@@ -436,11 +699,11 @@ int sceneHandler09(ExCommand *cmd) {
break;
}
- g_vars->scene09_var10 = hng;
- g_vars->scene09_var11 = g_vars->scene09_hangers[hng]->phase;
- g_vars->scene09_var12 = g_vars->scene09_hangers[hng]->phase;
+ g_vars->scene09_interactingHanger = hng;
+ g_vars->scene09_intHangerPhase = g_vars->scene09_hangers[hng]->phase;
+ g_vars->scene09_intHangerMaxPhase = g_vars->scene09_hangers[hng]->phase;
- g_vars->scene09_var19 = cmd->_y;
+ g_vars->scene09_clickY = cmd->_y;
if (!g_vars->scene09_hangers[hng]->ani->_movement || g_vars->scene09_hangers[hng]->ani->_movement->_id != MV_VSN_CYCLE2) {
g_vars->scene09_hangers[hng]->ani->changeStatics2(ST_VSN_NORMAL);
@@ -459,7 +722,7 @@ int sceneHandler09(ExCommand *cmd) {
}
}
- if (g_vars->scene09_var09 && g_fp->_currentScene->getPictureObjectIdAtPos(cmd->_sceneClickX, cmd->_sceneClickY) == PIC_SC9_LADDER_R
+ if (g_vars->scene09_dudeIsOnLadder && g_fp->_currentScene->getPictureObjectIdAtPos(cmd->_sceneClickX, cmd->_sceneClickY) == PIC_SC9_LADDER_R
&& !cmd->_keyCode && !g_fp->_aniMan->_movement) {
handleObjectInteraction(g_fp->_aniMan, g_fp->_currentScene->getPictureObjectById(PIC_SC9_LADDER_R, 0), 0);
}
diff --git a/engines/fullpipe/scenes/scene10.cpp b/engines/fullpipe/scenes/scene10.cpp
index 4f9e627fa4..8c9e0b67d0 100644
--- a/engines/fullpipe/scenes/scene10.cpp
+++ b/engines/fullpipe/scenes/scene10.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene11.cpp b/engines/fullpipe/scenes/scene11.cpp
index e7ed947a00..0ce82f5d5f 100644
--- a/engines/fullpipe/scenes/scene11.cpp
+++ b/engines/fullpipe/scenes/scene11.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene12.cpp b/engines/fullpipe/scenes/scene12.cpp
index 0295efcaf5..f63bb9a9fd 100644
--- a/engines/fullpipe/scenes/scene12.cpp
+++ b/engines/fullpipe/scenes/scene12.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene13.cpp b/engines/fullpipe/scenes/scene13.cpp
index 0a0c2f3906..c7b3c96b93 100644
--- a/engines/fullpipe/scenes/scene13.cpp
+++ b/engines/fullpipe/scenes/scene13.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene14.cpp b/engines/fullpipe/scenes/scene14.cpp
index 28f054fd32..21dbe8101f 100644
--- a/engines/fullpipe/scenes/scene14.cpp
+++ b/engines/fullpipe/scenes/scene14.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene15.cpp b/engines/fullpipe/scenes/scene15.cpp
index 9e11df92e4..452f2edeca 100644
--- a/engines/fullpipe/scenes/scene15.cpp
+++ b/engines/fullpipe/scenes/scene15.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene16.cpp b/engines/fullpipe/scenes/scene16.cpp
index b1e261287a..9ed355fdd9 100644
--- a/engines/fullpipe/scenes/scene16.cpp
+++ b/engines/fullpipe/scenes/scene16.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene17.cpp b/engines/fullpipe/scenes/scene17.cpp
index 73bf7ab1c0..d40f8cf816 100644
--- a/engines/fullpipe/scenes/scene17.cpp
+++ b/engines/fullpipe/scenes/scene17.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene18and19.cpp b/engines/fullpipe/scenes/scene18and19.cpp
index a965cfb98e..93bf00077c 100644
--- a/engines/fullpipe/scenes/scene18and19.cpp
+++ b/engines/fullpipe/scenes/scene18and19.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
@@ -36,6 +36,18 @@
namespace Fullpipe {
+struct Swinger {
+ StaticANIObject *ani;
+ int sfield_4;
+ double angle;
+ int sx;
+ int sy;
+ int ix;
+ int iy;
+ int sflags;
+ int sfield_24;
+};
+
void scene18_preload() {
warning("WARNING: scene18_preload()");
}
@@ -44,6 +56,195 @@ void scene19_preload(Scene *sc, int key) {
warning("WARNING: scene19_preload()");
}
+void scene18_sub2(StaticANIObject *ani, Scene *sc) {
+ warning("WARNING: scene18_sub2()");
+}
+
+void scene18_initScene1(Scene *sc) {
+ PicAniInfo info;
+
+ int oldx = g_vars->scene18_var20;
+ int oldy = g_vars->scene18_var04;
+
+ g_vars->scene18_var03 = (g_fp->getObjectState(sO_Girl) == g_fp->getObjectEnumState(sO_Girl, sO_IsSwinging));
+
+ if (sc->_sceneId == SC_18) {
+ g_vars->scene18_whirlgig = sc->getStaticANIObject1ById(ANI_WHIRLIGIG_18, -1);
+ g_vars->scene18_var20 = 1032;
+ g_vars->scene18_var04 = -318;
+ } else {
+ g_vars->scene18_whirlgig = sc->getStaticANIObject1ById(ANI_WHIRLGIG_19, -1);
+ g_vars->scene18_var20 = 1024;
+ g_vars->scene18_var04 = 242;
+ }
+
+ int newx = g_vars->scene18_var20 - oldx;
+ int newy = g_vars->scene18_var04 - oldy;
+
+ g_vars->scene18_var29 += newx;
+ g_vars->scene18_var30 += newy;
+ g_vars->scene18_var05 += newx;
+ g_vars->scene18_var06 += newy;
+
+ for (uint i = 0; i < g_vars->scene18_var07.size(); i++) {
+ g_vars->scene18_var07[i]->ani->getPicAniInfo(&info);
+ sc->addStaticANIObject(g_vars->scene18_var07[i]->ani, 1);
+ g_vars->scene18_var07[i]->ani->setPicAniInfo(&info);
+
+ g_vars->scene18_var07[i]->sx += newx;
+ g_vars->scene18_var07[i]->sy += newy;
+ g_vars->scene18_var07[i]->ix += newx;
+ g_vars->scene18_var07[i]->iy += newy;
+
+ GameObject *go;
+
+ if (g_vars->scene18_var07[i]->ani->_movement)
+ go = g_vars->scene18_var07[i]->ani->_movement;
+ else
+ go = g_vars->scene18_var07[i]->ani;
+
+ go->setOXY(newx + go->_ox, newy + go->_oy);
+ }
+
+ if (g_vars->scene18_var08 && g_vars->scene18_var09 != -1) {
+ g_vars->scene18_whirlgig->startAnim(sc->_sceneId != SC_18 ? MV_WHR19_SPIN : MV_WHR18_SPIN, 0, -1);
+ g_vars->scene18_whirlgig->_movement->setDynamicPhaseIndex(g_vars->scene18_var09);
+ }
+
+ int sndid;
+
+ if (sc->_sceneId == SC_19) {
+ if (g_vars->scene18_var08)
+ sndid = SND_19_015;
+ else
+ sndid = SND_19_016;
+ } else {
+ if (g_vars->scene18_var08)
+ sndid = SND_18_006;
+ else
+ sndid = SND_18_010;
+ }
+
+ g_fp->playSound(sndid, 1);
+
+ g_vars->scene18_boy->getPicAniInfo(&info);
+ sc->addStaticANIObject(g_vars->scene18_boy, 1);
+ g_vars->scene18_boy->setPicAniInfo(&info);
+
+ int x, y;
+ if (g_vars->scene18_boy->_movement) {
+ x = g_vars->scene18_boy->_movement->_ox;
+ y = g_vars->scene18_boy->_movement->_oy;
+ } else {
+ x = g_vars->scene18_boy->_ox;
+ y = g_vars->scene18_boy->_oy;
+ }
+
+ g_vars->scene18_boy->setOXY(newx + x, newy + y);
+
+ g_vars->scene18_girl->getPicAniInfo(&info);
+ sc->addStaticANIObject(g_vars->scene18_girl, 1);
+ g_vars->scene18_girl->setPicAniInfo(&info);
+
+ if (g_vars->scene18_girl->_movement) {
+ x = g_vars->scene18_girl->_movement->_ox;
+ y = g_vars->scene18_girl->_movement->_oy;
+ } else {
+ x = g_vars->scene18_girl->_ox;
+ y = g_vars->scene18_girl->_oy;
+ }
+
+ g_vars->scene18_girl->setOXY(newx + x, newy + y);
+
+ g_vars->scene18_var12 = 0;
+ g_vars->scene18_var13 = -1;
+ g_vars->scene18_var14 = -1;
+
+ if (g_vars->scene18_var15) {
+ if (sc->_sceneId == SC_19)
+ g_fp->_aniMan2 = 0;
+ else
+ g_fp->_aniMan2 = g_vars->scene18_var07[g_vars->scene18_var27]->ani;
+ } else {
+ g_fp->_aniMan2 = g_fp->_aniMan;
+ }
+}
+
+void scene18_initScene2(Scene *sc) {
+ g_vars->scene18_var16 = 200;
+ g_vars->scene18_var17 = 200;
+ g_vars->scene18_var18 = 300;
+ g_vars->scene18_var19 = 300;
+ g_vars->scene18_whirlgig = sc->getStaticANIObject1ById(ANI_WHIRLIGIG_18, -1);
+ g_vars->scene18_var20 = 1032;
+ g_vars->scene18_var04 = -318;
+
+ StaticANIObject *armchair = sc->getStaticANIObject1ById(ANI_KRESLO, -1);
+
+ armchair->loadMovementsPixelData();
+
+ g_vars->scene18_var03 = (g_fp->getObjectState(sO_Girl) == g_fp->getObjectEnumState(sO_Girl, sO_IsSwinging));
+
+ if (g_fp->getObjectState(sO_Bridge) == g_fp->getObjectEnumState(sO_Bridge, sO_Convoluted)) {
+ g_vars->scene18_var08 = 1;
+ g_fp->playSound(SND_18_006, 1);
+ } else {
+ g_vars->scene18_var08 = 0;
+ g_fp->playSound(SND_18_010, 1);
+ }
+
+ scene18_sub2(armchair, sc);
+
+ g_vars->scene18_var21 = 0;
+ g_vars->scene18_var12 = 0;
+ g_vars->scene18_var22 = 1;
+ g_vars->scene18_var23 = -1;
+ g_vars->scene18_var24 = 0;
+ g_vars->scene18_var25 = 0;
+ g_vars->scene18_var26 = 1;
+ g_vars->scene18_var27 = -1;
+ g_vars->scene18_var13 = -1;
+ g_vars->scene18_var14 = -1;
+ g_vars->scene18_var28 = 0;
+ g_vars->scene18_var15 = 0;
+ g_vars->scene18_boy = sc->getStaticANIObject1ById(ANI_BOY18, -1);
+ g_vars->scene18_girl = sc->getStaticANIObject1ById(ANI_GIRL18, -1);
+ g_vars->scene18_domino = sc->getStaticANIObject1ById(ANI_DOMINO_18, -1);
+ g_vars->scene18_var29 = 290;
+ g_vars->scene18_var30 = -363;
+ g_vars->scene18_var05 = 283;
+ g_vars->scene18_var06 = -350;
+
+ g_fp->initArcadeKeys("SC_18");
+}
+
+void scene19_initScene2() {
+ g_fp->_aniMan2 = 0;
+ g_vars->scene19_var01 = 200;
+ g_vars->scene19_var02 = 200;
+ g_vars->scene19_var03 = 300;
+ g_vars->scene19_var04 = 300;
+}
+
+int scene18_updateCursor() {
+ if (g_vars->scene18_var15) {
+ g_fp->_cursorId = PIC_CSR_DEFAULT;
+ } else {
+ g_fp->updateCursorCommon();
+
+ if (g_fp->_cursorId == PIC_CSR_ITN) {
+ if (g_fp->_objectIdAtCursor == PIC_SC18_LADDER1) {
+ g_fp->_cursorId = (g_vars->scene18_var11 <= 250) ? PIC_CSR_GOD : PIC_CSR_GOU;
+ } else if (g_fp->_objectIdAtCursor == PIC_SC18_LADDER2 || g_fp->_objectIdAtCursor == PIC_SC18_LADDER3) {
+ g_fp->_cursorId = PIC_CSR_GOU;
+ }
+ } else if (g_fp->_cursorId == PIC_CSR_DEFAULT && g_fp->_objectIdAtCursor == PIC_SC18_DOMIN && g_vars->scene18_domino && (g_vars->scene18_domino->_flags & 4)) {
+ g_fp->_cursorId = PIC_CSR_ITN;
+ }
+ }
+
+ return g_fp->_cursorId;
+}
} // End of namespace Fullpipe
diff --git a/engines/fullpipe/scenes/scene20.cpp b/engines/fullpipe/scenes/scene20.cpp
index 5fed24aabd..7f19f175cc 100644
--- a/engines/fullpipe/scenes/scene20.cpp
+++ b/engines/fullpipe/scenes/scene20.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene21.cpp b/engines/fullpipe/scenes/scene21.cpp
index 5a6509964d..8918515431 100644
--- a/engines/fullpipe/scenes/scene21.cpp
+++ b/engines/fullpipe/scenes/scene21.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene22.cpp b/engines/fullpipe/scenes/scene22.cpp
index 13c9ab36e9..542834b51a 100644
--- a/engines/fullpipe/scenes/scene22.cpp
+++ b/engines/fullpipe/scenes/scene22.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene23.cpp b/engines/fullpipe/scenes/scene23.cpp
index 1f2587eba4..ccfbac9223 100644
--- a/engines/fullpipe/scenes/scene23.cpp
+++ b/engines/fullpipe/scenes/scene23.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene24.cpp b/engines/fullpipe/scenes/scene24.cpp
index 508f776573..2eb536df3f 100644
--- a/engines/fullpipe/scenes/scene24.cpp
+++ b/engines/fullpipe/scenes/scene24.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene25.cpp b/engines/fullpipe/scenes/scene25.cpp
index ba07c3e5b9..fae311efad 100644
--- a/engines/fullpipe/scenes/scene25.cpp
+++ b/engines/fullpipe/scenes/scene25.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene26.cpp b/engines/fullpipe/scenes/scene26.cpp
index 91679347e6..b9d9161e7d 100644
--- a/engines/fullpipe/scenes/scene26.cpp
+++ b/engines/fullpipe/scenes/scene26.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene27.cpp b/engines/fullpipe/scenes/scene27.cpp
index 8623b2b9b3..1431ceffba 100644
--- a/engines/fullpipe/scenes/scene27.cpp
+++ b/engines/fullpipe/scenes/scene27.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
@@ -337,7 +337,7 @@ void sceneHandler27_wipeDo() {
}
}
-bool sceneHandler27_batFallLogic(int batn) {
+bool sceneHandler27_batFallLogic(uint batn) {
Bat *bat = g_vars->scene27_bats[batn];
int y = (bat->currY - 458.0) * 0.4848484848484849 + 734.0;
diff --git a/engines/fullpipe/scenes/scene28.cpp b/engines/fullpipe/scenes/scene28.cpp
index 62afd128c2..c21ce05502 100644
--- a/engines/fullpipe/scenes/scene28.cpp
+++ b/engines/fullpipe/scenes/scene28.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene30.cpp b/engines/fullpipe/scenes/scene30.cpp
index 39a51deeef..ca2324e647 100644
--- a/engines/fullpipe/scenes/scene30.cpp
+++ b/engines/fullpipe/scenes/scene30.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene31.cpp b/engines/fullpipe/scenes/scene31.cpp
index 587fc6aaef..3f507e62b7 100644
--- a/engines/fullpipe/scenes/scene31.cpp
+++ b/engines/fullpipe/scenes/scene31.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene32.cpp b/engines/fullpipe/scenes/scene32.cpp
index be7c983277..9279db7513 100644
--- a/engines/fullpipe/scenes/scene32.cpp
+++ b/engines/fullpipe/scenes/scene32.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene33.cpp b/engines/fullpipe/scenes/scene33.cpp
index 209198c0f3..90ea0a4f3f 100644
--- a/engines/fullpipe/scenes/scene33.cpp
+++ b/engines/fullpipe/scenes/scene33.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene34.cpp b/engines/fullpipe/scenes/scene34.cpp
index 136dea59dd..1c8c8b4855 100644
--- a/engines/fullpipe/scenes/scene34.cpp
+++ b/engines/fullpipe/scenes/scene34.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene35.cpp b/engines/fullpipe/scenes/scene35.cpp
index a42849eeb5..53381fd555 100644
--- a/engines/fullpipe/scenes/scene35.cpp
+++ b/engines/fullpipe/scenes/scene35.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene36.cpp b/engines/fullpipe/scenes/scene36.cpp
index 7d237fd395..44099faba0 100644
--- a/engines/fullpipe/scenes/scene36.cpp
+++ b/engines/fullpipe/scenes/scene36.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene37.cpp b/engines/fullpipe/scenes/scene37.cpp
index 8324e00af7..09da01f138 100644
--- a/engines/fullpipe/scenes/scene37.cpp
+++ b/engines/fullpipe/scenes/scene37.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/scene38.cpp b/engines/fullpipe/scenes/scene38.cpp
index 7fb0be8509..2bdae1ce66 100644
--- a/engines/fullpipe/scenes/scene38.cpp
+++ b/engines/fullpipe/scenes/scene38.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/sceneDbg.cpp b/engines/fullpipe/scenes/sceneDbg.cpp
index 4a3751940f..bd53f5749f 100644
--- a/engines/fullpipe/scenes/sceneDbg.cpp
+++ b/engines/fullpipe/scenes/sceneDbg.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/sceneFinal.cpp b/engines/fullpipe/scenes/sceneFinal.cpp
index e483e8bab7..d0040463ef 100644
--- a/engines/fullpipe/scenes/sceneFinal.cpp
+++ b/engines/fullpipe/scenes/sceneFinal.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/engines/fullpipe/scenes/sceneIntro.cpp b/engines/fullpipe/scenes/sceneIntro.cpp
index c9f19f3724..5e69cf1d7a 100644
--- a/engines/fullpipe/scenes/sceneIntro.cpp
+++ b/engines/fullpipe/scenes/sceneIntro.cpp
@@ -8,12 +8,12 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* 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
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.