scummvm/engines/gnap/scenes/group1.h
2016-09-03 12:46:38 +02:00

455 lines
9.5 KiB
C++

/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software; you can redistribute it and/or
* 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.
*
*/
#ifndef GNAP_GROUP1_H
#define GNAP_GROUP1_H
#include "gnap/debugger.h"
namespace Gnap {
enum {
kHS10Platypus = 0,
kHS10ExitBar = 1,
kHS10ExitBackdoor = 2,
kHS10Cook = 3,
kHS10Tongs = 4,
kHS10Box = 5,
kHS10Oven = 6,
kHS10WalkArea1 = 7,
kHS10Device = 8,
kHS10WalkArea2 = 9,
kHS10WalkArea3 = 10,
kHS10WalkArea4 = 11
};
enum {
kHS11Platypus = 0,
kHS11ExitKitchen = 1,
kHS11ExitToilet = 2,
kHS11ExitLeft = 3,
kHS11GoggleGuy = 4,
kHS11HookGuy = 5,
kHS11Billard = 6,
kHS11WalkArea1 = 7,
kHS11Device = 8,
kHS11WalkArea2 = 9,
kHS11WalkArea3 = 10,
kHS11WalkArea4 = 11,
kHS11WalkArea5 = 12
};
enum {
kHS12Platypus = 0,
kHS12ExitRight = 1,
kHS12ToothGuy = 2,
kHS12Barkeeper = 3,
kHS12BeardGuy = 4,
kHS12Jukebox = 5,
kHS12WalkArea1 = 6,
kHS12Device = 7,
kHS12WalkArea2 = 8,
kHS12WalkArea3 = 9,
kHS12WalkArea4 = 10
};
enum {
kHS13Platypus = 0,
kHS13ExitBar = 1,
kHS13WalkArea1 = 2,
kHS13BackToilet = 3,
kHS13FrontToilet= 4,
kHS13Urinal = 5,
kHS13Scribble = 6,
kHS13Sink = 7,
kHS13WalkArea2 = 8,
kHS13Device = 9,
kHS13WalkArea3 = 10,
kHS13WalkArea4 = 11,
kHS13WalkArea5 = 12,
kHS13WalkArea6 = 13,
kHS13WalkArea7 = 14,
kHS13WalkArea8 = 15,
kHS13WalkArea9 = 16
};
enum {
kHS14Platypus = 0,
kHS14Exit = 1,
kHS14Coin = 2,
kHS14Toilet = 3,
kHS14Device = 4
};
enum {
kHS15Platypus = 0,
kHS15Exit = 1,
kHS15Button1 = 2,
kHS15Button2 = 3,
kHS15Button3 = 4,
kHS15Button4 = 5,
kHS15Button5 = 6,
kHS15Button6 = 7,
kHS15ButtonA = 8,
kHS15ButtonB = 9,
kHS15ButtonC = 10,
kHS15ButtonD = 11,
kHS15ButtonE = 12,
kHS15ButtonF = 13,
kHS15CoinSlot = 14,
kHS15PlayButton = 15,
kHS15Device = 16
};
enum {
kHS17Platypus = 0,
kHS17Phone1 = 1,
kHS17Phone2 = 2,
kHS17ExitGrubCity = 3,
kHS17Device = 4,
kHS17ExitToyStore = 5,
kHS17Wrench = 6,
kHS17WalkArea1 = 7,
kHS17WalkArea2 = 8,
kHS17WalkArea3 = 9
};
enum {
kHS18Platypus = 0,
kHS18GarbageCan = 1,
kHS18Device = 2,
kHS18ExitToyStore = 3,
kHS18ExitPhoneBooth = 4,
kHS18ExitGrubCity = 5,
kHS18HydrantTopValve = 6,
kHS18HydrantRightValve = 7,
kHS18CowboyHat = 8,
kHS18WalkArea1 = 9,
kHS18WalkArea2 = 10
};
enum {
kHS19Platypus = 0,
kHS19ExitOutsideToyStore= 1,
kHS19Device = 2,
kHS19Picture = 3,
kHS19ShopAssistant = 4,
kHS19Toy1 = 5,
kHS19Toy2 = 6,
kHS19Toy3 = 7,
kHS19Phone = 8,
kHS19Toy4 = 9,
kHS19Toy5 = 10,
kHS19Toy6 = 11,
kHS19Toy7 = 12,
kHS19WalkArea1 = 13,
kHS19WalkArea2 = 14,
kHS19WalkArea3 = 15
};
enum {
kAS10LeaveScene = 0,
kAS10AnnoyCook = 1,
kAS10PlatWithBox = 4
};
enum {
kAS11LeaveScene = 0,
kAS11ShowMagazineToGoggleGuy = 3,
kAS11TalkGoggleGuy = 4,
kAS11GrabHookGuy = 6,
kAS11ShowItemToHookGuy = 8,
kAS11TalkHookGuy = 9,
kAS11GrabBillardBall = 11
};
enum {
kAS12LeaveScene = 0,
kAS12QuarterToToothGuyDone = 1,
kAS12TalkToothGuy = 2,
kAS12GrabToothGuy = 4,
kAS12ShowItemToToothGuy = 5,
kAS12QuarterWithHoleToToothGuy = 6,
kAS12QuarterToToothGuy = 7,
kAS12TalkBeardGuy = 8,
kAS12LookBeardGuy = 9,
kAS12GrabBeardGuy = 10,
kAS12ShowItemToBeardGuy = 11,
kAS12TalkBarkeeper = 12,
kAS12LookBarkeeper = 13,
kAS12ShowItemToBarkeeper = 15,
kAS12QuarterWithBarkeeper = 16,
kAS12PlatWithBarkeeper = 17,
kAS12PlatWithToothGuy = 18,
kAS12PlatWithBeardGuy = 19
};
enum {
kAS13LeaveScene = 0,
kAS13BackToilet = 1,
kAS13FrontToilet = 2,
kAS13LookScribble = 6,
kAS13GrabSink = 7,
kAS13GrabSinkDone = 8,
kAS13Wait = 12,
kAS13GrabUrinal = 13
};
enum {
kAS17TryGetWrench = 0,
kAS17GetWrench2 = 1,
kAS17GetWrenchDone = 2,
kAS17GetWrench1 = 3,
kAS17PlatUsePhone = 4,
kAS17PutCoinIntoPhone = 5,
kAS17GetCoinFromPhone = 6,
kAS17GetCoinFromPhoneDone = 7,
kAS17PutCoinIntoPhoneDone = 8,
kAS17GnapUsePhone = 9,
kAS17GetWrenchGnapReady = 10,
kAS17GnapHangUpPhone = 11,
kAS17PlatPhoningAssistant = 12,
kAS17PlatHangUpPhone = 14,
kAS17LeaveScene = 15
};
enum {
kAS18OpenRightValveNoGarbageCanDone = 0,
kAS18OpenRightValveNoGarbageCan = 1,
kAS18CloseRightValveNoGarbageCan = 2,
kAS18OpenTopValveDone = 3,
kAS18OpenTopValve = 4,
kAS18CloseTopValve = 5,
kAS18GrabGarbageCanFromStreet = 6,
kAS18GrabCowboyHat = 7,
kAS18GrabGarbageCanFromHydrant = 8,
kAS18PutGarbageCanOnRunningHydrant = 9,
kAS18PutGarbageCanOnRunningHydrant2 = 10,
kAS18GrabCowboyHatDone = 11,
kAS18StandingOnHydrant = 12,
kAS18OpenRightValveWithGarbageCan = 13,
kAS18OpenRightValveWithGarbageCanDone = 14,
kAS18CloseRightValveWithGarbageCan = 15,
kAS18PutGarbageCanOnHydrant = 16,
kAS18PutGarbageCanOnHydrantDone = 17,
kAS18PlatComesHere = 18,
kAS18CloseRightValveWithGarbageCanDone = 19,
kAS18LeaveScene = 20
};
enum {
kAS19UsePhone = 0,
kAS19GrabToy = 1,
kAS19GrabPicture = 2,
kAS19GrabPictureDone = 3,
kAS19TalkShopAssistant = 4,
kAS19LeaveScene = 5
};
/*****************************************************************************/
class GnapEngine;
class CutScene;
class Scene10: public Scene {
public:
Scene10(GnapEngine *vm);
virtual ~Scene10() {}
virtual int init();
virtual void updateHotspots();
virtual void run();
virtual void updateAnimations();
virtual void updateAnimationsCb();
private:
int _nextCookSequenceId;
int _currCookSequenceId;
};
class Scene11: public Scene {
public:
Scene11(GnapEngine *vm);
virtual ~Scene11() {}
virtual int init();
virtual void updateHotspots();
virtual void run();
virtual void updateAnimations();
virtual void updateAnimationsCb() {};
private:
int _billardBallCtr;
int _nextHookGuySequenceId;
int _currHookGuySequenceId;
int _nextGoggleGuySequenceId;
int _currGoggleGuySequenceId;
};
class Scene12: public Scene {
public:
Scene12(GnapEngine *vm);
virtual ~Scene12() {}
virtual int init();
virtual void updateHotspots();
virtual void run();
virtual void updateAnimations();
virtual void updateAnimationsCb() {};
private:
int _nextBeardGuySequenceId;
int _currBeardGuySequenceId;
int _nextToothGuySequenceId;
int _currToothGuySequenceId;
int _nextBarkeeperSequenceId;
int _currBarkeeperSequenceId;
};
class Scene13: public Scene {
public:
Scene13(GnapEngine *vm);
virtual ~Scene13() {}
virtual int init();
virtual void updateHotspots();
virtual void run();
virtual void updateAnimations();
virtual void updateAnimationsCb() {};
private:
int _backToiletCtr;
void showScribble();
};
class Scene14: public Scene {
public:
Scene14(GnapEngine *vm);
virtual ~Scene14() {}
virtual int init();
virtual void updateHotspots();
virtual void run();
virtual void updateAnimations();
virtual void updateAnimationsCb() {};
};
class Scene15: public Scene {
public:
Scene15(GnapEngine *vm);
virtual ~Scene15() {}
virtual int init();
virtual void updateHotspots();
virtual void run();
virtual void updateAnimations();
virtual void updateAnimationsCb() {};
private:
int _nextRecordSequenceId;
int _currRecordSequenceId;
int _nextSlotSequenceId;
int _currSlotSequenceId;
int _nextUpperButtonSequenceId;
int _currUpperButtonSequenceId;
int _nextLowerButtonSequenceId;
int _currLowerButtonSequenceId;
};
class Scene17: public Scene {
public:
Scene17(GnapEngine *vm);
virtual ~Scene17() {}
virtual int init();
virtual void updateHotspots();
virtual void run();
virtual void updateAnimations();
virtual void updateAnimationsCb() {};
private:
bool _canTryGetWrench;
int _wrenchCtr;
int _platPhoneCtr;
int _platTryGetWrenchCtr;
int _nextPhoneSequenceId;
int _currPhoneSequenceId;
int _nextWrenchSequenceId;
int _currWrenchSequenceId;
int _nextCarWindowSequenceId;
int _currCarWindowSequenceId;
void update();
void platHangUpPhone();
};
class Scene18: public Scene {
public:
Scene18(GnapEngine *vm);
virtual ~Scene18();
virtual int init();
virtual void updateHotspots();
virtual void run();
virtual void updateAnimations();
virtual void updateAnimationsCb() {};
private:
Graphics::Surface *_cowboyHatSurface;
int _platPhoneCtr;
int _platPhoneIter;
int _nextPhoneSequenceId;
int _currPhoneSequenceId;
void gnapCarryGarbageCanTo(int a5);
void putDownGarbageCan(int animationIndex);
void platEndPhoning(bool platFl);
void closeHydrantValve();
void waitForGnapAction();
};
class Scene19: public Scene {
public:
Scene19(GnapEngine *vm);
virtual ~Scene19();
virtual int init();
virtual void updateHotspots();
virtual void run();
virtual void updateAnimations();
virtual void updateAnimationsCb() {};
private:
int _currShopAssistantSequenceId;
int _nextShopAssistantSequenceId;
int _toyGrabCtr;
int _shopAssistantCtr;
Graphics::Surface *_pictureSurface;
};
} // End of namespace Gnap
#endif // GNAP_GROUP1_H