22#ifndef BLADERUNNER_SCRIPT_SCENE_H
23#define BLADERUNNER_SCRIPT_SCENE_H
25#include "bladerunner/script/script.h"
27namespace BladeRunner {
29class BladeRunnerEngine;
35 virtual void InitializeScene() = 0;
36 virtual void SceneLoaded() = 0;
37 virtual bool MouseClick(
int x,
int y) = 0;
38 virtual bool ClickedOn3DObject(
const char *objectName,
bool combatMode) = 0;
39 virtual bool ClickedOnActor(
int actorId) = 0;
40 virtual bool ClickedOnItem(
int itemId,
bool combatMode) = 0;
41 virtual bool ClickedOnExit(
int exitId) = 0;
42 virtual bool ClickedOn2DRegion(
int region) = 0;
43 virtual void SceneFrameAdvanced(
int frame) = 0;
44 virtual void ActorChangedGoal(
int actorId,
int newGoal,
int oldGoal,
bool currentSet) = 0;
45 virtual void PlayerWalkedIn() = 0;
46 virtual void PlayerWalkedOut() = 0;
47 virtual void DialogueQueueFlushed(
int a1) = 0;
50#define DECLARE_SCRIPT(name) \
51class SceneScript##name : public SceneScriptBase { \
53 SceneScript##name(BladeRunnerEngine *vm) \
54 : SceneScriptBase(vm) \
56 void InitializeScene(); \
58 bool MouseClick(int x, int y); \
59 bool ClickedOn3DObject(const char *objectName, bool combatMode); \
60 bool ClickedOnActor(int actorId); \
61 bool ClickedOnItem(int itemId, bool combatMode); \
62 bool ClickedOnExit(int exitId); \
63 bool ClickedOn2DRegion(int region); \
64 void SceneFrameAdvanced(int frame); \
65 void ActorChangedGoal(int actorId, int newGoal, int oldGoal, bool currentSet); \
66 void PlayerWalkedIn(); \
67 void PlayerWalkedOut(); \
68 void DialogueQueueFlushed(int a1); \
73 void dialogueWithFishDealerBuyGoldfish();
77 void dialogueWithInsectDealer1();
78 void dialogueWithInsectDealerBuyBracelet();
79 void dialogueWithInsectDealerBuySlug();
80 void dialogueWithHassan();
81 void dialogueWithHassanBuySnake();
124 void dialogueWithHowieLee();
128 void dialogueWithZuben();
135 void dialogueWithHomeless();
173 void dialogueWithChew();
177 bool farEnoughFromExplosion();
187 void dialogueWithIzo();
188 void takePhotoAndRunAway();
198 void dialogueWithIsabella();
202 void dialogueWithMiaAndMurray();
203 void talkWithDektora();
211 void dialogueWithLucy();
218 void talkWithCrazyLegs1();
219 void talkWithCrazyLegs2();
220 void dialogueWithCrazylegs1();
221 void dialogueWithCrazylegs2();
222 void talkWithCrazylegs3(
int actorId);
223 void talkWithDektora();
226 void addAmbientSounds();
227 int getAffectionTowardsActor();
228 int getCompanionActor();
232 void steelInterruption();
233 void addAmbientSounds();
237 int getAffectionTowardsActor();
266 void talkWithRajif();
267 bool isPhoneRinging();
268 void selectNextTvNews();
274 bool isPhoneRinging();
275 bool isPhoneMessageWaiting();
276 void phoneCallWithDektora();
277 void phoneCallWithLucy();
278 void phoneCallWithSteele();
279 void phoneCallWithClovis();
286 bool isPhoneRinging();
290 bool isElevatorOnDifferentFloor();
291 void activateElevator();
304 void playNextMusic();
308 void rotateActorOnTable(
int frame);
309 void playNextMusic();
313 void dialogueWithEarlyQ();
314 void druggedEffect(
int frame);
315 void playNextMusic();
319 void rotateActorOnTable(
int frame);
320 void talkToBartender();
322 void rotateActorOnGround(
int actorId);
323 void playNextMusic();
327 void playNextMusic();
331 void dektoraRunAway();
333 void clickedOnVase();
334 void talkAboutBelt1();
335 void talkAboutBelt2();
336 void talkAboutVoightKampff();
337 void talkAboutSteele();
338 void talkAboutMoonbus();
339 void talkAboutBlackSedan();
340 void talkAboutScorpions();
344 void playNextMusic();
348 void playNextMusic();
355 void actorSweepArea(
int actorId,
signed int frame);
356 void untargetEverything();
363 void activateElevator();
370 void dialogueWithGuzza();
374 void selectNextTvNews();
387 void dialogueWithGrigorian();
391 void removeTargets();
393 static int getPoliceMazePS10TargetCount();
397 void removeTargets();
399 static int getPoliceMazePS11TargetCount();
403 void removeTargets();
405 static int getPoliceMazePS12TargetCount();
409 void removeTargets();
411 static int getPoliceMazePS13TargetCount();
421 void interrogateCrowd();
426 void dialogueWithRunciter();
430 void talkWithSteele();
434 void dialogueWithBulletBob();
441 void dialogueWithTyrellGuard();
442 void dialogueWithSteele();
455 void McCoyTalkWithRachaelAndTyrell();
472 int getAffectionTowardsActor();
497 void talkAboutGuzza();
498 void dialogueWithHomeless1();
499 void dialogueWithHomeless2();
509 void dialogueWithLuther();
516 void talkWithGuzza();
517 void talkWithClovis();
529 int _inScriptCounter;
541 void initializeScene();
543 bool mouseClick(
int x,
int y);
544 bool clickedOn3DObject(
const char *objectName,
bool combatMode);
545 bool clickedOnActor(
int actorId);
546 bool clickedOnItem(
int itemId,
bool combatMode);
547 bool clickedOnExit(
int exitId);
548 bool clickedOn2DRegion(
int region);
549 void sceneFrameAdvanced(
int frame);
550 void actorChangedGoal(
int actorId,
int newGoal,
int oldGoal,
bool currentSet);
551 void playerWalkedIn();
552 void playerWalkedOut();
553 void dialogueQueueFlushed(
int a1);
554 bool isInsideScript()
const {
return _inScriptCounter > 0; }
Definition: bladerunner.h:113
Definition: scene_script.h:31
Definition: scene_script.h:526