ScummVM API documentation
arthurchip.h
1/* ScummVM - Graphic Adventure Engine
2 *
3 * ScummVM is the legal property of its developers, whose names
4 * are too numerous to list here. Please refer to the COPYRIGHT
5 * file distributed with this source distribution.
6 *
7 * Additional copyright for this file:
8 * Copyright (C) 1995-1997 Presto Studios, Inc.
9 *
10 * This program is free software: you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation, either version 3 of the License, or
13 * (at your option) any later version.
14
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19
20 * You should have received a copy of the GNU General Public License
21 * along with this program. If not, see <http://www.gnu.org/licenses/>.
22 *
23 */
24
25#ifndef PEGASUS_ITEMS_BIOCHIPS_ARTHURCHIP_H
26#define PEGASUS_ITEMS_BIOCHIPS_ARTHURCHIP_H
27
28#include "pegasus/hotspot.h"
29#include "pegasus/util.h"
30#include "pegasus/items/biochips/biochipitem.h"
31
32namespace Pegasus {
33
34enum ArthurEvent {
35 kArthurLoadedSavedGame,
36 kArthurAttemptedLockedDoor,
37 kArthurAttemptedLockedDoorAgain,
38 kArthurDestroyedInventoryItem,
39 kArthurDisabledAI,
40
41 kArthurCaldoriaFinishedJoyride,
42 kArthurCaldoriaSelectedStickyBuns,
43 kArthurCaldoriaCreatedCornbread,
44 kArthurCaldoriaDrankOJ,
45 kArthurCaldoriaZoomedToLaundry,
46 kArthurCaldoriaReachedToilet,
47 kArthurCaldoriaReadPaper,
48 kArthurCaldoriaChoseAgencyHairStyle,
49 kArthurCaldoriaSawVacantApartment,
50 kArthurCaldoriaLookThroughTelescope,
51 kArthurCaldoriaRoofDoor,
52 kArthurCaldoriaUsedCardBomb,
53 kArthurCaldoriaBlownDoor,
54 kArthurCaldoriaSawVoiceAnalysis,
55 kArthurCaldoriaStunningSinclair,
56 kArthurCaldoriaSeeRoofBomb,
57 kArthurCaldoriaDisarmedNuke,
58
59 kArthurTSAEnteredCave,
60 kArthurTSASawAgent3,
61 kArthurTSASawBust,
62 kArthurTSAReachedJunction,
63 kArthurTSAClickedRobot1,
64 kArthurTSAClickedRobot2,
65 kArthurTSAOpenTBPMonitor,
66 kArthurTSASawJourneymanKey,
67 kArthurTSASawBiochips,
68 kArthurTSAUsedPegasus,
69 kArthurTSAConfinedByBaldwin,
70 kArthurTSARedirectedRobots,
71 kArthurTSAUsedTurbolift,
72 kArthurTSASawFirstOpMemMovie,
73 kArthurTSAInPegasusNoVideo,
74 kArthurTSASawBaldwinSayGo,
75 kArthurTSALeaving,
76
77 kArthurGoToPrehistoric,
78
79 kArthurPrehistoricReachedJunction,
80 kArthurPrehistoricSawBreaker,
81 kArthurPrehistoricBreakerThrown,
82 kArthurPrehistoricAtCliffEdge,
83 kArthurPrehistoricSawEggs,
84 kArthurPrehistoricZoomedToVault,
85 kArthurPrehistoricAttemptedBridge,
86 kArthurPrehistoricExtendedBridge,
87 kArthurPrehistoricCrossedBridge,
88 kArthurPrehistoricUnlockedVault,
89
90 kArthurMarsReadyForKiosk,
91 kArthurMarsLookedAtGuards,
92 kArthurMarsZoomedToKeyCard,
93 kArthurMarsTurnedOnTransport,
94 kArthurMarsCantFillMask,
95 kArthurMarsSawWelcomeVideos,
96 kArthurMarsRobotThrownPlayerWithMask,
97 kArthurMarsLeftPodNoCrowBar,
98 kArthurMarsLookAtEmptyTracks,
99 kArthurMarsEnteredReactor,
100 kArthurMarsSawLockedPanel,
101 kArthurMarsSawLockedPanelNoNitrogen,
102 kArthurMarsUsedLiquidNitrogen,
103 kArthurMarsFoundCardBomb,
104 kArthurMarsSolvedReactorGame,
105 kArthurMarsDeactivatedCardBomb,
106 kArthurMarsExitedReactorWithCardBomb,
107 kArthurMarsInAirlockNoOxygen,
108 kArthurMarsMazeReachedJunction,
109 kArthurMarsOxygen50Warning,
110 kArthurMarsOxygen25Warning,
111 kArthurMarsOxygen5Warning,
112 kArthurMarsFoundBuckets,
113 kArthurMarsApproachedBuckets,
114 kArthurMarsEnteredGearRoom,
115 kArthurMarsLookAtGears,
116 kArthurMarsExitedGearRoom,
117 kArthurMarsFoundNoShuttlePresent,
118 kArthurMarsEnteredShuttle,
119 kArthurMarsFoundDeadRobot,
120 kArthurMarsRobotHeadOpen,
121
122 kArthurWSCRemovedDart,
123 kArthurWSCPoisonedDuringGame,
124 kArthurWSCFailedMolecule,
125 kArthurWSCDesignedAntidote,
126 kArthurWSCSawAresHologram,
127 kArthurWSCLookAtMorphExperiment,
128 kArthurWSCStartMorphExperiment,
129 kArthurWSCSawMorphExperiment,
130 kArthurWSCLeftLabNoKeyOrCanisters,
131 kArthurWSCAtOppositeDoor,
132 kArthurWSCReadyForMap,
133 kArthurWSCAttemptedLockedDoor,
134 kArthurWSCSawSinclairDoor,
135 kArthurWSCSawSinclairDoorNoKey,
136 kArthurWSCAttemptedSinclairDoorNoKey,
137 kArthurWSCZoomedToSnake,
138 kArthurWSCActivatedComputer,
139 kArthurWSCZoomedToSinclairMessages,
140 kArthurWSCPlayedEasterEggMessage,
141 kArthurWSCGotMachineGun,
142 kArthurWSCSeenNerd,
143 kArthurWSCSawBrokenDoor,
144 kArthurWSCSawBrokenDoorNoCrowBar,
145 kArthurWSCUsedCrowBar,
146 kArthurWSCDidPlasmaDodge,
147 kArthurWSCEnteredAuditorium,
148 kArthurWSCSawSinclairLecture,
149 kArthurWSCEnteredPassage,
150 kArthurWSCInPassage,
151 kArthurWSCExitedPassage,
152 kArthurWSCSawCatwalkDoor,
153 kArthurWSCRobotHeadOpen,
154
155 kArthurNoradAtSecurityMonitor,
156 kArthurNoradSawFillingStation,
157 kArthurNoradSawIntakeWarning,
158 kArthurNoradDidntFillCanisters,
159 kArthurNoradSawUnconsciousOperator,
160 kArthurNoradAttemptedLockedDoor,
161 kArthurNoradAttemptedLockedDoorAgain,
162 kArthurNoradReachedPressureDoor,
163 kArthurNoradSawSubMessage,
164 kArthurNoradSawClawMonitor,
165 kArthurNoradPlayedWithClaw,
166 kArthurNoradEnteredSub,
167 kArthurNoradExitedSub,
168 kArthurNoradApproachedDamagedDoor,
169 kArthurNoradAtRetScanNoBiochip,
170 kArthurNoradStartGlobeGame,
171 kArthurNoradSelectedIncorrectSilo,
172 kArthurNoradFinishedGlobeGame,
173 kArthurNoradThreatenedByRobot,
174 kArthurNoradBeatRobotWithClaw,
175 kArthurNoradRobotHeadOpen,
176
177 kNumArthurFlags
178};
179
180class ArthurChip : public BiochipItem {
181public:
182 ArthurChip(const ItemID, const NeighborhoodID, const RoomID, const DirectionConstant);
183 virtual ~ArthurChip();
184
185 void select();
186
187 void setUpArthurChip();
188 void activateArthurHotspots();
189 void clickInArthurHotspot(HotSpotID);
190 void playArthurMovie(const Common::Path &);
191 bool playArthurMovieForEvent(const Common::Path &, ArthurEvent event);
192
193protected:
194 Hotspot _arthurWisdomHotspot;
195 Hotspot _chattyArthurHotspot;
196 Hotspot _chattyAIHotspot;
197 Hotspot _arthurHeadHotspot;
198 Common::Path _lastArthurMovie;
199};
200
201class ArthurManager : public Common::Singleton<ArthurManager> {
202public:
203 ArthurManager() { resetArthurState(); }
204
205 void resetArthurState();
206
207protected:
208 friend class Common::Singleton<SingletonBaseType>;
209 friend class ArthurChip;
210
211private:
213};
214
215extern ArthurChip *g_arthurChip;
216
217} // End of namespace Pegasus
218
219#define Arthur (::Pegasus::ArthurManager::instance())
220
221#endif
Definition: path.h:52
Definition: singleton.h:42
Definition: arthurchip.h:180
Definition: arthurchip.h:201
Definition: biochipitem.h:32
Definition: hotspot.h:85