/* 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