diff options
Diffstat (limited to 'engines/avalanche/timer.h')
| -rw-r--r-- | engines/avalanche/timer.h | 178 | 
1 files changed, 178 insertions, 0 deletions
diff --git a/engines/avalanche/timer.h b/engines/avalanche/timer.h new file mode 100644 index 0000000000..9a91c4d24b --- /dev/null +++ b/engines/avalanche/timer.h @@ -0,0 +1,178 @@ +/* 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. + * + */ + +/* + * This code is based on the original source code of Lord Avalot d'Argent version 1.3. + * Copyright (c) 1994-1995 Mike, Mark and Thomas Thurman. + */ + +/* Original name: TIMEOUT	The scheduling unit. */ + +#ifndef AVALANCHE_TIMER_H +#define AVALANCHE_TIMER_H + +namespace Avalanche { +class AvalancheEngine; + +class Timer { +public: +	// Reason runs between 1 and 28. +	enum Reason { +		kReasonDrawbridgeFalls = 2, +		kReasonAvariciusTalks = 3, +		kReasonGoToToilet = 4, +		kReasonExplosion = 5, +		kReasonBrummieStairs = 6, +		kReasonCardiffsurvey = 7, +		kReasonCwytalotInHerts = 8, +		kReasonGettingTiedUp = 9, +		kReasonHangingAround = 10, // Tied to the tree in Nottingham. +		kReasonJacquesWakingUp = 11, +		kReasonNaughtyDuke = 12, +		kReasonJumping = 13, +		kReasonSequencer = 14, +		kReasonCrapulusSaysSpludwickOut = 15, +		kReasonDawndelay = 16, +		kReasonDrinks = 17, +		kReasonDuLustieTalks = 18, +		kReasonFallingDownOubliette = 19, +		kReasonMeetingAvaroid = 20, +		kReasonRisingUpOubliette = 21, +		kReasonRobinHoodAndGeida = 22, +		kReasonSittingDown = 23, +		kReasonGhostRoomPhew = 1, +		kReasonArkataShouts = 24, +		kReasonWinning = 25, +		kReasonFallingOver = 26, +		kReasonSpludwickWalk = 27, +		kReasonGeidaSings = 28 +	}; + +	// Proc runs between 1 and 41. +	enum Proc { +		kProcOpenDrawbridge = 3, +		kProcAvariciusTalks = 4, +		kProcUrinate = 5, +		kProcToilet = 6, +		kProcBang = 7, +		kProcBang2 = 8, +		kProcStairs = 9, +		kProcCardiffSurvey = 10, +		kProcCardiffReturn = 11, +		kProcCwytalotInHerts = 12, +		kProcGetTiedUp = 13, +		kProcGetTiedUp2 = 1, +		kProcHangAround = 14, +		kProcHangAround2 = 15, +		kProcAfterTheShootemup = 32, +		kProcJacquesWakesUp = 16, +		kProcNaughtyDuke = 17, +		kProcNaughtyDuke2 = 18, +		kProcNaughtyDuke3 = 38, +		kProcJump = 19, +		kProcSequence = 20, +		kProcCrapulusSpludOut = 21, +		kProcDawnDelay = 22, +		kProcBuyDrinks = 23, +		kProcBuyWine = 24, +		kProcCallsGuards = 25, +		kProcGreetsMonk = 26, +		kProcFallDownOubliette = 27, +		kProcMeetAvaroid = 28, +		kProcRiseUpOubliette = 29, +		kProcRobinHoodAndGeida = 2, +		kProcRobinHoodAndGeidaTalk = 30, +		kProcAvalotReturns = 31, +		kProcAvvySitDown = 33, // In Nottingham. +		kProcGhostRoomPhew = 34, +		kProcArkataShouts = 35, +		kProcWinning = 36, +		kProcAvalotFalls = 37, +		kProcSpludwickGoesToCauldron = 39, +		kProcSpludwickLeavesCauldron = 40, +		kProcGiveLuteToGeida = 41 +	}; + +	struct TimerType { +		int32 _timeLeft; +		byte _action; +		byte _reason; +	}; + +	TimerType _times[7]; + +	Timer(AvalancheEngine *vm); + +	void resetVariables(); +	void addTimer(int32 duration, byte action, byte reason); +	void updateTimer(); +	void loseTimer(byte which); + +	// Procedures to do things at the end of amounts of time: +	void openDrawbridge(); +	void avariciusTalks(); +	void urinate(); +	void toilet(); +	void bang(); +	void bang2(); +	void stairs(); +	void cardiffSurvey(); +	void cardiffReturn(); +	void cwytalotInHerts(); +	void getTiedUp(); +	void getTiedUp2(); +	void hangAround(); +	void hangAround2(); +	void afterTheShootemup(); +	void jacquesWakesUp(); +	void naughtyDuke(); +	void naughtyDuke2(); +	void naughtyDuke3(); +	void jump(); +	void crapulusSaysSpludOut(); +	void buyDrinks(); +	void buyWine(); +	void callsGuards(); +	void greetsMonk(); +	void fallDownOubliette(); +	void meetAvaroid(); +	void riseUpOubliette(); +	void robinHoodAndGeida(); +	void robinHoodAndGeidaTalk(); +	void avalotReturns(); +	void avvySitDown(); +	void ghostRoomPhew(); +	void arkataShouts(); +	void winning(); +	void avalotFalls(); +	void spludwickGoesToCauldron(); +	void spludwickLeavesCauldron(); +	void giveLuteToGeida(); + +private: +	AvalancheEngine *_vm; + +}; + +} // End of namespace Avalanche. + +#endif // AVALANCHE_TIMER_H  | 
