Initial commit

This commit is contained in:
2026-02-02 04:50:13 +01:00
commit 5b11698731
22592 changed files with 7677434 additions and 0 deletions

View File

@@ -0,0 +1,545 @@
/* 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 3 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, see <http://www.gnu.org/licenses/>.
*
*/
#include "tsage/tsage.h"
#include "tsage/core.h"
#include "tsage/dialogs.h"
#include "tsage/staticres.h"
#include "tsage/globals.h"
#include "tsage/blue_force/blueforce_dialogs.h"
#include "tsage/ringworld/ringworld_logic.h"
namespace TsAGE {
namespace BlueForce {
/**
* This dialog implements the right-click dialog
*/
RightClickDialog::RightClickDialog() : GfxDialog() {
// Setup button areas
_rectList1[0] = Rect(7, 50, 41, 67);
_rectList1[1] = Rect(13, 27, 50, 50);
_rectList1[2] = Rect(49, 27, 84, 50);
_rectList1[3] = Rect(56, 50, 90, 67);
_rectList1[4] = Rect(26, 68, 69, 99);
_rectList3[0] = Rect(12, 49, 27, 64);
_rectList3[1] = Rect(27, 31, 42, 46);
_rectList3[2] = Rect(56, 31, 71, 46);
_rectList3[3] = Rect(72, 50, 87, 65);
_rectList3[4] = Rect(41, 81, 56, 96);
// Set the palette and change the cursor
GfxSurface cursor = surfaceFromRes(1, 5, 9);
BF_GLOBALS._events.setCursor(cursor);
setPalette();
// Get the dialog image
_surface = surfaceFromRes(1, 1, 1);
// Set the dialog position
Rect dialogRect;
dialogRect.resize(_surface, 0, 0, 100);
dialogRect.center(g_globals->_events._mousePos.x, g_globals->_events._mousePos.y);
// Ensure the dialog will be entirely on-screen
Rect screenRect = g_globals->gfxManager()._bounds;
screenRect.collapse(4, 4);
dialogRect.contain(screenRect);
// Load selected button images
_btnImages.setVisage(1, 2);
_bounds = dialogRect;
_gfxManager._bounds = _bounds;
_highlightedAction = -1;
_selectedAction = -1;
}
RightClickDialog::~RightClickDialog() {
}
void RightClickDialog::draw() {
// Save the covered background area
_savedArea = surfaceGetArea(g_globals->_gfxManagerInstance.getSurface(), _bounds);
// Draw the dialog image
g_globals->gfxManager().copyFrom(_surface, _bounds.left, _bounds.top);
// Pre-process rect lists
for (int idx = 0; idx < 5; ++idx) {
_rectList2[idx] = _rectList1[idx];
_rectList4[idx] = _rectList3[idx];
_rectList2[idx].translate(_bounds.left, _bounds.top);
_rectList4[idx].translate(_bounds.left, _bounds.top);
}
}
bool RightClickDialog::process(Event &event) {
switch (event.eventType) {
case EVENT_MOUSE_MOVE: {
// Check whether a button is highlighted
int buttonIndex = 0;
while ((buttonIndex < 5) && !_rectList1[buttonIndex].contains(event.mousePos))
++buttonIndex;
if (buttonIndex == 5)
buttonIndex = -1;
// If selection has changed, handle it
if (buttonIndex != _highlightedAction) {
if (_highlightedAction != -1) {
// Another button was previously selected, so restore dialog
_gfxManager.copyFrom(_surface, 0, 0);
}
if (buttonIndex != -1) {
// Draw newly selected button
GfxSurface btn = _btnImages.getFrame(buttonIndex + 1);
_gfxManager.copyFrom(btn, _rectList3[buttonIndex].left, _rectList3[buttonIndex].top);
}
_highlightedAction = buttonIndex;
}
event.handled = true;
return true;
}
case EVENT_BUTTON_DOWN:
// Specify the selected action
_selectedAction = (_highlightedAction == -1) ? 5 : _highlightedAction;
event.handled = true;
return true;
default:
break;
}
return false;
}
void RightClickDialog::execute() {
// Draw the dialog
draw();
// Dialog event handler loop
_gfxManager.activate();
while (!g_vm->shouldQuit() && (_selectedAction == -1)) {
Event evt;
while (g_globals->_events.getEvent(evt, EVENT_MOUSE_MOVE | EVENT_BUTTON_DOWN)) {
evt.mousePos.x -= _bounds.left;
evt.mousePos.y -= _bounds.top;
process(evt);
}
g_system->delayMillis(10);
GLOBALS._screen.update();
}
// Deactivate the graphics manager used for the dialog
_gfxManager.deactivate();
// Execute the specified action
CursorType cursorNum = CURSOR_NONE;
switch (_selectedAction) {
case 0:
// Walk action
cursorNum = BF_GLOBALS._player._canWalk ? CURSOR_WALK : CURSOR_USE;
break;
case 1:
// Use action
cursorNum = CURSOR_USE;
break;
case 2:
// Look action
cursorNum = CURSOR_LOOK;
break;
case 3:
// Talk action
cursorNum = CURSOR_TALK;
break;
case 4:
// Options dialog
BlueForce::OptionsDialog::show();
break;
default:
break;
}
if (cursorNum != CURSOR_NONE)
BF_GLOBALS._events.setCursor(cursorNum);
}
/*--------------------------------------------------------------------------*/
AmmoBeltDialog::AmmoBeltDialog() : GfxDialog() {
_cursorNum = BF_GLOBALS._events.getCursor();
_inDialog = -1;
_closeFlag = false;
// Get the dialog image
_surface = surfaceFromRes(9, 5, 2);
// Set the dialog position
_dialogRect.resize(_surface, 0, 0, 100);
_dialogRect.center(SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2);
_bounds = _dialogRect;
_gfxManager._bounds = _bounds;
_savedArea = NULL;
// Set up area rects
_gunRect.set(0, 0, 82, 48);
_clip1Rect.set(90, 6, _bounds.width(), 39);
_clip2Rect.set(90, 40, _bounds.width(), _bounds.height());
_loadedRect.set(50, 40, 60, 50);
}
AmmoBeltDialog::~AmmoBeltDialog() {
BF_GLOBALS._events.setCursor(_cursorNum);
}
void AmmoBeltDialog::execute() {
// Draw the dialog
draw();
// Dialog event handler loop
_gfxManager.activate();
while (!g_vm->shouldQuit() && !_closeFlag) {
Event evt;
while (g_globals->_events.getEvent(evt, EVENT_MOUSE_MOVE | EVENT_BUTTON_DOWN)) {
evt.mousePos.x -= _bounds.left;
evt.mousePos.y -= _bounds.top;
process(evt);
}
g_system->delayMillis(10);
GLOBALS._screen.update();
}
_gfxManager.deactivate();
}
bool AmmoBeltDialog::process(Event &event) {
switch (event.eventType) {
case EVENT_MOUSE_MOVE: {
// Handle updating cursor depending on whether cursor is in dialog or not
int inDialog = Rect(0, 0, _bounds.width(), _bounds.height()).contains(event.mousePos);
if (inDialog != _inDialog) {
// Update cursor
BF_GLOBALS._events.setCursor(inDialog ? CURSOR_USE : CURSOR_EXIT);
_inDialog = inDialog;
}
return true;
}
case EVENT_BUTTON_DOWN:
if (!_inDialog)
// Clicked outside dialog, so flag to close it
_closeFlag = true;
else {
int v = (BF_GLOBALS.getFlag(fGunLoaded) ? 1 : 0) * (BF_GLOBALS.getFlag(fLoadedSpare) ? 2 : 1);
// Handle first clip
if ((v != 1) && _clip1Rect.contains(event.mousePos)) {
if (BF_GLOBALS.getFlag(fGunLoaded)) {
event.mousePos.x = event.mousePos.y = 0;
}
BF_GLOBALS.setFlag(fGunLoaded);
BF_GLOBALS.clearFlag(fLoadedSpare);
}
// Handle second clip
if ((v != 2) && _clip2Rect.contains(event.mousePos)) {
if (BF_GLOBALS.getFlag(fGunLoaded)) {
event.mousePos.x = event.mousePos.y = 0;
}
BF_GLOBALS.setFlag(fGunLoaded);
BF_GLOBALS.setFlag(fLoadedSpare);
}
if (_gunRect.contains(event.mousePos) && BF_GLOBALS.getFlag(fGunLoaded)) {
BF_GLOBALS.clearFlag(fGunLoaded);
v = (BF_GLOBALS.getFlag(fGunLoaded) ? 1 : 0) * (BF_GLOBALS.getFlag(fLoadedSpare) ? 2 : 1);
if (v != 2)
BF_GLOBALS.clearFlag(fLoadedSpare);
}
draw();
}
return true;
case EVENT_CUSTOM_ACTIONSTART:
if (event.customType == kActionEscape) {
// Escape pressed, so flag to close dialog
_closeFlag = true;
return true;
}
if (event.customType == kActionReturn) {
// Return pressed, so flag to close dialog
_closeFlag = true;
return true;
}
break;
default:
break;
}
return false;
}
void AmmoBeltDialog::draw() {
Rect bounds = _bounds;
if (!_savedArea) {
// Save the covered background area
_savedArea = surfaceGetArea(g_globals->_gfxManagerInstance.getSurface(), _bounds);
} else {
bounds.moveTo(0, 0);
}
// Draw the dialog image
g_globals->gfxManager().copyFrom(_surface, bounds.left, bounds.top);
// Setup clip flags
bool clip1 = true, clip2 = true;
bool gunLoaded = BF_GLOBALS.getFlag(fGunLoaded);
if (gunLoaded) {
// A clip is currently loaded. Hide the appropriate clip
if (BF_GLOBALS.getFlag(fLoadedSpare))
clip2 = false;
else
clip1 = false;
}
// Draw the first clip if necessary
if (clip1) {
GfxSurface clipSurface = surfaceFromRes(9, 6, BF_GLOBALS._clip1Bullets + 1);
_clip1Rect.resize(clipSurface, _clip1Rect.left, _clip1Rect.top, 100);
g_globals->gfxManager().copyFrom(clipSurface, bounds.left + _clip1Rect.left,
bounds.top + _clip1Rect.top);
}
// Draw the second clip if necessary
if (clip2) {
GfxSurface clipSurface = surfaceFromRes(9, 6, BF_GLOBALS._clip2Bullets + 1);
_clip2Rect.resize(clipSurface, _clip2Rect.left, _clip2Rect.top, 100);
g_globals->gfxManager().copyFrom(clipSurface, bounds.left + _clip2Rect.left,
bounds.top + _clip2Rect.top);
}
// If a clip is loaded, draw the 'loaded' portion of the gun
if (gunLoaded) {
GfxSurface loadedSurface = surfaceFromRes(9, 7, 1);
_loadedRect.resize(loadedSurface, _loadedRect.left, _loadedRect.top, 100);
g_globals->gfxManager().copyFrom(loadedSurface, bounds.left + _loadedRect.left,
bounds.top + _loadedRect.top);
}
}
/*--------------------------------------------------------------------------*/
RadioConvDialog::RadioConvDialog() : GfxDialog() {
int idx;
// Set up the list of buttons
int maxWidth = 0;
for (idx = 0; idx < 8; ++idx) {
_buttons[idx].setText(RADIO_BTN_LIST[idx]);
maxWidth = MAX(maxWidth, (int)_buttons[idx]._bounds.width());
add(&_buttons[idx]);
}
// Set up the button positions and add them to the dialog
for (idx = 0; idx < 8; ++idx) {
_buttons[idx]._bounds.moveTo((idx % 2) * maxWidth + 2,
idx / 2 * _buttons[idx]._bounds.height() + 2);
_buttons[idx]._bounds.setWidth(maxWidth);
add(&_buttons[idx]);
}
// Set the dialog size and position
setDefaults();
setTopLeft(8, 92);
BF_GLOBALS._events.setCursor(CURSOR_ARROW);
}
RadioConvDialog::~RadioConvDialog() {
BF_GLOBALS._events.setCursor(CURSOR_USE);
}
int RadioConvDialog::execute() {
GfxButton *btn = GfxDialog::execute();
// Get which button was pressed
int btnIndex = -1;
for (int idx = 0; idx < 8; ++idx) {
if (btn == &_buttons[idx]) {
btnIndex = idx;
break;
}
}
return btnIndex;
}
int RadioConvDialog::show() {
// Show the dialog
RadioConvDialog *dlg = new RadioConvDialog();
dlg->draw();
int btnIndex = dlg->execute();
// Close the dialog
dlg->remove();
delete dlg;
return btnIndex;
}
/*--------------------------------------------------------------------------*/
void OptionsDialog::show() {
OptionsDialog *dlg = new OptionsDialog();
dlg->draw();
// Show the dialog
GfxButton *btn = dlg->execute();
// Get which button was pressed
int btnIndex = -1;
if (btn == &dlg->_btnRestore)
btnIndex = 0;
else if (btn == &dlg->_btnSave)
btnIndex = 1;
else if (btn == &dlg->_btnRestart)
btnIndex = 2;
else if (btn == &dlg->_btnQuit)
btnIndex = 3;
else if (btn == &dlg->_btnSound)
btnIndex = 4;
// Close the dialog
dlg->remove();
delete dlg;
// Execute the given selection
if (btnIndex == 0) {
// Restore button
g_globals->_game->restoreGame();
} else if (btnIndex == 1) {
// Save button
g_globals->_game->saveGame();
} else if (btnIndex == 2) {
// Restart game
g_globals->_game->restartGame();
} else if (btnIndex == 3) {
// Quit game
int rc;
if (g_vm->getLanguage() == Common::ES_ESP) {
rc = MessageDialog::show(ESP_QUIT_CONFIRM_MSG, ESP_CANCEL_BTN_STRING, ESP_QUIT_BTN_STRING);
} else if (g_vm->getLanguage() == Common::RU_RUS) {
rc = MessageDialog::show(RUS_QUIT_CONFIRM_MSG, RUS_CANCEL_BTN_STRING, RUS_QUIT_BTN_STRING);
} else {
rc = MessageDialog::show(QUIT_CONFIRM_MSG, CANCEL_BTN_STRING, QUIT_BTN_STRING);
}
if(rc == 1) {
g_vm->quitGame();
}
} else if (btnIndex == 4) {
// Sound dialog
SoundDialog::execute();
}
}
OptionsDialog::OptionsDialog() {
// Set the element text
if (g_vm->getLanguage() == Common::ES_ESP) {
_gfxMessage.set(ESP_OPTIONS_MSG, 140, ALIGN_LEFT);
_btnRestore.setText(ESP_RESTORE_BTN_STRING);
_btnSave.setText(ESP_SAVE_BTN_STRING);
_btnRestart.setText(ESP_RESTART_BTN_1_STRING);
_btnQuit.setText(ESP_QUIT_BTN_STRING);
_btnSound.setText(ESP_SOUND_BTN_STRING);
_btnResume.setText(ESP_RESUME_BTN_STRING);
} else if (g_vm->getLanguage() == Common::RU_RUS) {
_gfxMessage.set(RUS_OPTIONS_MSG, 140, ALIGN_LEFT);
_btnRestore.setText(RUS_RESTORE_BTN_STRING);
_btnSave.setText(RUS_SAVE_BTN_STRING);
_btnRestart.setText(RUS_RESTART_BTN_STRING);
_btnQuit.setText(RUS_QUIT_BTN_STRING);
_btnSound.setText(RUS_SOUND_BTN_STRING);
_btnResume.setText(RUS_RESUME_BTN_STRING);
} else {
_gfxMessage.set(OPTIONS_MSG, 140, ALIGN_LEFT);
_btnRestore.setText(RESTORE_BTN_STRING);
_btnSave.setText(SAVE_BTN_STRING);
_btnRestart.setText(RESTART_BTN_STRING);
_btnQuit.setText(QUIT_BTN_STRING);
_btnSound.setText(SOUND_BTN_STRING);
_btnResume.setText(RESUME_BTN_STRING);
}
// Set position of the elements
_gfxMessage._bounds.moveTo(0, 1);
_btnRestore._bounds.moveTo(0, _gfxMessage._bounds.bottom + 1);
_btnSave._bounds.moveTo(0, _btnRestore._bounds.bottom + 1);
_btnRestart._bounds.moveTo(0, _btnSave._bounds.bottom + 1);
_btnQuit._bounds.moveTo(0, _btnRestart._bounds.bottom + 1);
_btnSound._bounds.moveTo(0, _btnQuit._bounds.bottom + 1);
_btnResume._bounds.moveTo(0, _btnSound._bounds.bottom + 1);
// Set all the buttons to the widest button
GfxButton *btnList[6] = {&_btnRestore, &_btnSave, &_btnRestart, &_btnQuit, &_btnSound, &_btnResume};
int16 btnWidth = 0;
for (int idx = 0; idx < 6; ++idx)
btnWidth = MAX(btnWidth, btnList[idx]->_bounds.width());
for (int idx = 0; idx < 6; ++idx)
btnList[idx]->_bounds.setWidth(btnWidth);
// Add the items to the dialog
addElements(&_gfxMessage, &_btnRestore, &_btnSave, &_btnRestart, &_btnQuit, &_btnSound, &_btnResume, NULL);
// Set the dialog size and position
frame();
_bounds.collapse(-6, -6);
setCenter(160, 90);
}
} // End of namespace BlueForce
} // End of namespace TsAGE

View File

@@ -0,0 +1,102 @@
/* 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 3 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, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef TSAGE_BLUEFORCE_DIALOGS_H
#define TSAGE_BLUEFORCE_DIALOGS_H
#include "tsage/core.h"
#include "tsage/dialogs.h"
#include "tsage/events.h"
#include "tsage/graphics.h"
namespace TsAGE {
namespace BlueForce {
using namespace TsAGE;
class RightClickDialog : public GfxDialog {
private:
GfxSurface _surface;
Visage _btnImages;
Rect _rectList1[5];
Rect _rectList2[5];
Rect _rectList3[5];
Rect _rectList4[5];
int _highlightedAction;
int _selectedAction;
public:
RightClickDialog();
~RightClickDialog() override;
void draw() override;
bool process(Event &event) override;
void execute();
};
class AmmoBeltDialog : public GfxDialog {
private:
GfxSurface _surface;
Visage _cursorImages;
Rect _dialogRect, _loadedRect, _gunRect, _clip1Rect, _clip2Rect;
CursorType _cursorNum;
int _inDialog;
bool _closeFlag;
public:
AmmoBeltDialog();
~AmmoBeltDialog() override;
void draw() override;
bool process(Event &event) override;
void execute();
};
class RadioConvDialog : public GfxDialog {
private:
GfxButton _buttons[8];
public:
RadioConvDialog();
~RadioConvDialog() override;
int execute();
static int show();
};
class OptionsDialog: public GfxDialog {
private:
GfxButton _btnSave, _btnRestore, _btnRestart;
GfxButton _btnQuit, _btnResume;
GfxButton _btnSound;
GfxMessage _gfxMessage;
public:
OptionsDialog();
~OptionsDialog() override {}
static void show();
};
} // End of namespace BlueForce
} // End of namespace TsAGE
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,384 @@
/* 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 3 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, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef TSAGE_BLUEFORCE_LOGIC_H
#define TSAGE_BLUEFORCE_LOGIC_H
#include "common/scummsys.h"
#include "tsage/events.h"
#include "tsage/core.h"
#include "tsage/scenes.h"
#include "tsage/globals.h"
namespace TsAGE {
namespace BlueForce {
using namespace TsAGE;
#define BF_INVENTORY (*((::TsAGE::BlueForce::BlueForceInvObjectList *)g_globals->_inventory))
class BlueForceGame: public Game {
public:
void start() override;
Scene *createScene(int sceneNumber) override;
void rightClick() override;
void processEvent(Event &event) override;
bool canSaveGameStateCurrently() override;
bool canLoadGameStateCurrently() override;
void restart() override;
};
#define OBJ_ARRAY_SIZE 10
class AObjectArray: public EventHandler {
public:
EventHandler *_objList[OBJ_ARRAY_SIZE];
bool _inUse;
int getNewIndex();
public:
AObjectArray();
void clear();
Common::String getClassName() override { return "AObjectArray"; }
void synchronize(Serializer &s) override;
void process(Event &event) override;
void dispatch() override;
void add(EventHandler *obj);
void remove(EventHandler *obj);
// The following line prevents compiler warnings about hiding the remove()
// method from the parent class.
void remove() override { EventHandler::remove(); }
};
class Timer: public EventHandler {
public:
Action *_tickAction;
EventHandler *_endHandler;
uint32 _endFrame;
public:
Timer();
void set(uint32 delay, EventHandler *endHandler);
Common::String getClassName() override { return "Timer"; }
void synchronize(Serializer &s) override;
void remove() override;
void signal() override;
void dispatch() override;
};
class TimerExt: public Timer {
public:
Action *_newAction;
public:
TimerExt();
void set(uint32 delay, EventHandler *endHandler, Action *action);
Common::String getClassName() override { return "TimerExt"; }
void synchronize(Serializer &s) override;
void remove() override;
void signal() override;
};
class SceneHotspotExt: public SceneHotspot {
public:
int _state;
SceneHotspotExt() { _state = 0; }
Common::String getClassName() override { return "SceneHotspotExt"; }
void synchronize(Serializer &s) override {
SceneHotspot::synchronize(s);
s.syncAsSint16LE(_state);
}
};
class SceneItemType2: public SceneHotspot {
public:
virtual void startMove(SceneObject *sceneObj, va_list va);
};
class NamedObject: public SceneObject {
public:
Common::String getClassName() override { return "NamedObject"; }
void synchronize(Serializer &s) override;
void postInit(SceneObjectList *OwnerList = NULL) override;
bool startAction(CursorType action, Event &event) override;
};
class NamedObjectExt: public NamedObject {
public:
int _flag;
NamedObjectExt() { _flag = 0; }
Common::String getClassName() override { return "NamedObjectExt"; }
void synchronize(Serializer &s) override {
NamedObject::synchronize(s);
s.syncAsSint16LE(_flag);
}
};
class NamedObject2: public NamedObject {
public:
int _talkCount;
NamedObject2() { _talkCount = 0; }
Common::String getClassName() override { return "NamedObject2"; }
void synchronize(Serializer &s) override {
NamedObject::synchronize(s);
if (s.getVersion() < 12) {
int useless = 0;
s.syncAsSint16LE(useless);
}
s.syncAsSint16LE(_talkCount);
}
};
class CountdownObject: public NamedObject {
public:
int _countDown;
CountdownObject();
void fixCountdown(int mode, ...);
Common::String getClassName() override { return "CountdownObject"; }
void synchronize(Serializer &s) override;
void dispatch() override;
};
class FollowerObject: public NamedObject {
public:
SceneObject *_object;
FollowerObject();
Common::String getClassName() override { return "FollowerObject"; }
void synchronize(Serializer &s) override;
void remove() override;
void dispatch() override;
void reposition() override;
void setup(SceneObject *object, int visage, int frameNum, int yDiff);
};
class FocusObject: public NamedObject {
public:
GfxSurface _img;
FocusObject();
void postInit(SceneObjectList *OwnerList = NULL) override;
void synchronize(Serializer &s) override;
void remove() override;
void process(Event &event) override;
};
enum ExitFrame { EXITFRAME_N = 1, EXITFRAME_NE = 2, EXITFRAME_E = 3, EXITFRAME_SE = 4,
EXITFRAME_S = 5, EXITFRAME_SW = 6, EXITFRAME_W = 7, EXITFRAME_NW = 8 };
class SceneExt: public Scene {
private:
static void startStrip();
static void endStrip();
public:
AObjectArray _timerList, _objArray2;
bool _savedPlayerEnabled;
bool _savedUiEnabled;
bool _savedCanWalk;
EventHandler *_focusObject;
Visage _cursorVisage;
public:
SceneExt();
Common::String getClassName() override { return "SceneExt"; }
void postInit(SceneObjectList *OwnerList = NULL) override;
void remove() override;
void process(Event &event) override;
void dispatch() override;
void loadScene(int sceneNum) override;
virtual void checkGun();
void addTimer(EventHandler *timer) { _timerList.add(timer); }
void removeTimer(EventHandler *timer) { _timerList.remove(timer); }
bool display(CursorType action);
void fadeOut();
void gunDisplay();
void clearScreen();
};
class PalettedScene: public SceneExt {
public:
ScenePalette _palette;
bool _hasFader;
public:
PalettedScene();
void synchronize(Serializer &s) override;
void postInit(SceneObjectList *OwnerList = NULL) override;
void remove() override;
PaletteFader *addFader(const byte *arrBufferRGB, int step, Action *action);
void add2Faders(const byte *arrBufferRGB, int step, int paletteNum, Action *action);
void transition(const byte *arrBufferRGB, int arg8, int paletteNum, Action *action, int fromColor1, int fromColor2, int toColor1, int toColor2, bool flag);
};
class SceneHandlerExt: public SceneHandler {
public:
void postInit(SceneObjectList *OwnerList = NULL) override;
void process(Event &event) override;
void playerAction(Event &event) override;
void processEnd(Event &event) override;
};
class BlueForceInvObjectList : public InvObjectList {
private:
static bool SelectItem(int objectNumber);
public:
InvObject _none;
InvObject _colt45;
InvObject _ammoClip;
InvObject _spareClip;
InvObject _handcuffs;
InvObject _greensGun;
InvObject _ticketBook;
InvObject _mirandaCard;
InvObject _forestRap;
InvObject _greenId;
InvObject _baseballCard;
InvObject _bookingGreen;
InvObject _flare;
InvObject _cobbRap;
InvObject _bullet22;
InvObject _autoRifle;
InvObject _wig;
InvObject _frankieId;
InvObject _tyroneId;
InvObject _snub22;
InvObject _bug;
InvObject _bookingFrankie;
InvObject _bookingGang;
InvObject _fbiTeletype;
InvObject _daNote;
InvObject _printOut;
InvObject _warehouseKeys;
InvObject _centerPunch;
InvObject _tranqGun;
InvObject _hook;
InvObject _rags;
InvObject _jar;
InvObject _screwdriver;
InvObject _dFloppy;
InvObject _blankDisk;
InvObject _stick;
InvObject _crate1;
InvObject _crate2;
InvObject _shoebox;
InvObject _badge;
InvObject _bug2;
InvObject _rentalCoupon;
InvObject _nickel;
InvObject _lyleCard;
InvObject _carterNote;
InvObject _mugshot;
InvObject _clipping;
InvObject _microfilm;
InvObject _waveKeys;
InvObject _rentalKeys;
InvObject _napkin;
InvObject _dmvPrintout;
InvObject _fishingNet;
InvObject _id;
InvObject _bullets9mm;
InvObject _schedule;
InvObject _grenades;
InvObject _yellowCord;
InvObject _halfYellowCord;
InvObject _blackCord;
InvObject _bug3;
InvObject _halfBlackCord;
InvObject _warrant;
InvObject _jacket;
InvObject _greensKnife;
InvObject _dogWhistle;
InvObject _ammoBelt;
InvObject _alleyCatKey;
BlueForceInvObjectList();
void reset();
void setObjectScene(int objectNum, int sceneNumber);
void alterInventory(int mode);
Common::String getClassName() override { return "BlueForceInvObjectList"; }
};
class NamedHotspot : public SceneHotspot {
public:
NamedHotspot();
bool startAction(CursorType action, Event &event) override;
Common::String getClassName() override { return "NamedHotspot"; }
void synchronize(Serializer &s) override;
};
class NamedHotspotExt : public NamedHotspot {
public:
int _flag;
NamedHotspotExt() { _flag = 0; }
Common::String getClassName() override { return "NamedHotspot"; }
void synchronize(Serializer &s) override {
NamedHotspot::synchronize(s);
s.syncAsSint16LE(_flag);
}
};
class SceneMessage: public Action {
private:
Common::String _message;
void draw();
void clear();
public:
void setup(const Common::String &msg) { _message = msg; }
Common::String getClassName() override { return "SceneMessage"; }
void remove() override;
void signal() override;
void process(Event &event) override;
};
class IntroSceneText: public SceneText {
public:
Action *_action;
uint32 _frameNumber;
int _diff;
public:
IntroSceneText();
void setup(const Common::String &msg, Action *action);
Common::String getClassName() override { return "BFIntroText"; }
void synchronize(Serializer &s) override;
void dispatch() override;
};
} // End of namespace BlueForce
} // End of namespace TsAGE
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,190 @@
/* 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 3 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, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef TSAGE_BLUEFORCE_SCENES0_H
#define TSAGE_BLUEFORCE_SCENES0_H
#include "common/scummsys.h"
#include "tsage/blue_force/blueforce_logic.h"
#include "tsage/blue_force/blueforce_speakers.h"
#include "tsage/converse.h"
#include "tsage/events.h"
#include "tsage/core.h"
#include "tsage/scenes.h"
#include "tsage/globals.h"
#include "tsage/sound.h"
namespace TsAGE {
namespace BlueForce {
using namespace TsAGE;
class Scene20 : public SceneExt {
/* Actions */
class Action1 : public Action {
private:
ASoundExt _sound;
public:
void signal() override;
};
public:
Action1 _action1;
ScenePalette _scenePalette;
SceneObject _tsunamiWave, _letterT, _letterS, _letterU;
SceneObject _letterN, _letterA, _letterM, _letterI;
void postInit(SceneObjectList *OwnerList = NULL) override;
};
class Scene50: public SceneExt {
class Tooltip: public SavedObject {
public:
Rect _bounds;
Common::String _msg;
int _newSceneNumber;
int _locationId;
public:
Tooltip();
void set(const Rect &bounds, int sceneNum, const Common::String &msg, int locationId);
void update();
void highlight(bool btnDown);
Common::String getClassName() override { return "Scene50_Tooltip"; }
void synchronize(Serializer &s) override;
};
class Tooltip2: public Action {
public:
Tooltip2(): Action() {}
Common::String getClassName() override { return "Scene50_Tooltip2"; }
void signal() override;
void dispatch() override;
};
public:
int _sceneNumber;
SceneText _text;
SceneItemType2 _item;
Tooltip _location1, _location2, _location3, _location4, _location5;
Tooltip _location6, _location7, _location8, _location9;
Timer _timer;
public:
Scene50();
Common::String getClassName() override { return "Scene50"; }
void synchronize(Serializer &s) override;
void postInit(SceneObjectList *OwnerList = NULL) override;
void remove() override;
void signal() override;
void process(Event &event) override;
};
class Scene60 : public SceneExt {
/* Items */
class Ignition: public NamedHotspot {
private:
bool check1();
bool check2();
public:
bool startAction(CursorType action, Event &event) override;
};
class Item3: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Radio: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Compartment: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Objects */
class MirandaCard: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class TicketBook: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class CompartmentDoor: public NamedObject {
public:
bool _flag;
bool startAction(CursorType action, Event &event) override;
};
/* Actions */
class Action1: public ActionExt {
private:
int useRadio();
public:
void signal() override;
};
class Action2: public Action {
public:
void signal() override;
};
class Action3: public Action {
public:
void signal() override;
};
public:
SequenceManager _sequenceManager;
Action1 _action1;
Action2 _action2;
Action3 _action3;
NamedObject _object1;
MirandaCard _mirandaCard;
TicketBook _ticketBook;
CompartmentDoor _compartmentDoor;
SceneObject _dashboard;
BackgroundSceneObject _car;
NamedHotspot _item1;
Ignition _ignition;
Item3 _item3;
Radio _radio;
Compartment _compartment;
SpeakerGameText _gameTextSpeaker;
SpeakerJakeRadio _jakeRadioSpeaker;
ASound _sound;
int _newScene;
int _sceneNumber;
int _visage;
CursorType _cursorId;
Scene60();
void synchronize(Serializer &s) override;
void postInit(SceneObjectList *OwnerList = NULL) override;
void remove() override;
void signal() override;
void dispatch() override;
};
} // End of namespace BlueForce
} // End of namespace TsAGE
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,485 @@
/* 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 3 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, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef TSAGE_BLUEFORCE_SCENES1_H
#define TSAGE_BLUEFORCE_SCENES1_H
#include "common/scummsys.h"
#include "tsage/blue_force/blueforce_logic.h"
#include "tsage/blue_force/blueforce_speakers.h"
#include "tsage/converse.h"
#include "tsage/events.h"
#include "tsage/core.h"
#include "tsage/scenes.h"
#include "tsage/globals.h"
#include "tsage/sound.h"
namespace TsAGE {
namespace BlueForce {
using namespace TsAGE;
class Scene100: public SceneExt {
/* Support classes */
class Text: public SceneText {
public:
Common::String getClassName() override { return "BF100Text"; }
void dispatch() override;
};
/* Actions */
class Action1: public ActionExt {
private:
void setTextStrings(const Common::String &msg1, const Common::String &msg2, Action *action);
public:
Text _sceneText1;
SceneText _sceneText2;
int _textHeight;
Common::String getClassName() override { return "BF100Action1"; }
void synchronize(Serializer &s) override {
ActionExt::synchronize(s);
s.syncAsSint16LE(_textHeight);
}
void signal() override;
};
class Action2: public ActionExt {
public:
void signal() override;
};
public:
SequenceManager _sequenceManager;
Action1 _action1;
Action2 _action2;
ScenePalette _scenePalette;
NamedObject _object1, _object2, _object3, _object4, _object5;
int _index;
Scene100();
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
};
class Scene109: public PalettedScene {
/* Actions */
class Action1: public Action {
public:
void signal() override;
};
class Action2: public Action {
public:
void signal() override;
};
class Action3: public Action {
public:
void signal() override;
};
public:
SequenceManager _sequenceManager1, _sequenceManager2, _sequenceManager3;
SequenceManager _sequenceManager4, _sequenceManager5, _sequenceManager6;
SequenceManager _sequenceManager7, _sequenceManager8;
SceneObject _object1, _object2, _protaginist2, _protaginist1, _cop1;
SceneObject _drunk, _cop2, _bartender, _beerSign, _animationInset;
IntroSceneText _text;
Action1 _action1;
Action2 _action2;
Action3 _action3;
public:
Scene109();
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
};
class Scene110: public SceneExt {
/* Actions */
class Action1: public Action {
public:
void signal() override;
};
class Action2: public Action {
public:
void signal() override;
};
class Action3: public Action {
public:
void signal() override;
void dispatch() override;
};
class Action4: public Action {
public:
void signal() override;
void dispatch() override;
};
class Action5: public Action {
public:
void signal() override;
};
public:
NamedObject _object1, _object2, _object3, _object4, _object5, _object6, _object7, _object8, _object9, _object10;
ASound _sound;
Action1 _action1;
Action2 _action2;
Action3 _action3;
Action4 _action4;
Action5 _action5;
public:
void postInit(SceneObjectList *OwnerList = NULL) override;
};
class Scene114: public SceneExt {
/* Objects */
class Vechile: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Door: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
public:
SequenceManager _sequenceManager1;
Vechile _vechile;
Door _door;
NamedObject _lyle;
NamedHotspot _item1;
public:
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
};
class Scene115: public SceneExt {
/* Objects */
class Kate: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Tony: public NamedObject {
public:
int _talkToTonyCtr2;
bool startAction(CursorType action, Event &event) override;
};
class Object3: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Object4: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Custom class */
class EventHandler1: public EventHandler {
public:
Common::String getClassName() override { return "Scene115_EventHandler1"; }
void dispatch() override;
};
/* Items */
class Jukebox: public NamedHotspot {
SequenceManager _sequenceManager6;
public:
int _jokeboxPlayingCtr;
Jukebox();
bool startAction(CursorType action, Event &event) override;
void signal() override;
void synchronize(Serializer &s) override;
};
class Item10: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Item14: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Actions */
class Action1: public Action {
public:
void signal() override;
};
class Action2: public Action {
public:
void signal() override;
};
class Action3: public Action {
public:
void signal() override;
};
class Action4: public Action {
public:
void signal() override;
};
class Action5: public Action {
public:
void signal() override;
};
class Action6: public Action {
public:
void signal() override;
};
class Action7: public Action {
public:
void signal() override;
};
class Action8: public Action {
public:
void signal() override;
};
class Action9: public Action {
public:
void signal() override;
};
SequenceManager _sequenceManager1;
SequenceManager _sequenceManager2;
SequenceManager _sequenceManager3;
SequenceManager _sequenceManager4;
SequenceManager _sequenceManager5;
Kate _kate;
Tony _tony;
Object3 _object3;
Object4 _object4;
SceneObject _object5, _object6, _neonSign, _object8, _object9;
SceneObject _object10, _object11, _object12, _object13;
Jukebox _itemJukebox;
EventHandler1 _eventHandler1;
NamedHotspot _item2, _item3, _item4, _item5, _item6, _item7, _item8, _item9;
Item10 _item10;
NamedHotspot _item11, _item12, _item13;
Item14 _item14;
Action1 _action1;
Action2 _action2;
Action3 _action3;
Action4 _action4;
Action5 _action5;
Action6 _action6;
Action7 _action7;
Action8 _action8;
Action9 _action9;
SpeakerGameText _gameTextSpeaker;
SpeakerKate _kateSpeaker;
SpeakerTony _tonySpeaker;
SpeakerJakeJacket _jakeJacketSpeaker;
SpeakerJakeUniform _jakeUniformSpeaker;
SpeakerLyleHat _lyleHatSpeaker;
ASound _sound1;
int _lineNumModifier;
int _jukeboxPlaying;
int _talkToTonyCtr;
public:
Scene115();
void synchronize(Serializer &s) override;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
void process(Event &event) override;
};
class Scene125: public SceneExt {
class Action1: public Action {
public:
void signal() override;
};
class Action2: public Action {
public:
void signal() override;
void dispatch() override;
};
class Action3: public Action {
public:
void signal() override;
void dispatch() override;
};
class Action4: public Action {
public:
void signal() override;
void dispatch() override;
};
class Action5: public Action {
public:
void signal() override;
};
class Action6: public Action {
public:
void signal() override;
void dispatch() override;
};
public:
Action1 _action1;
Action2 _action2;
Action3 _action3;
Action4 _action4;
Action5 _action5;
Action6 _action6;
NamedObject _object1, _object2, _object3, _object4, _object5;
NamedObject _object6, _object7, _object8, _object9;
ASoundExt _soundExt1;
ASoundExt _soundExt2;
void postInit(SceneObjectList *OwnerList) override;
};
class Scene140: public SceneExt {
class Action1: public Action {
public:
void signal() override;
};
public:
Action1 _action1;
ASoundExt _soundExt1;
NamedObject _object1;
NamedObject _object2;
IntroSceneText _text;
void postInit(SceneObjectList *OwnerList) override;
};
class Scene150: public SceneExt {
class Action1: public Action {
NamedObject _object2;
ASound _sound1;
public:
void signal() override;
};
public:
NamedObject _object1;
Action1 _action1;
void postInit(SceneObjectList *OwnerList) override;
};
class Scene160: public SceneExt {
class Action1: public Action {
public:
void signal() override;
};
class Action2: public Action {
public:
void signal() override;
void process(Event &event) override;
};
class Action3: public ActionExt {
public:
void signal() override;
};
public:
NamedObject _flag, _kid, _kidBody, _leftOfficer, _grandma, _rightOfficer;
ASound _sound1;
Action1 _action1;
Action2 _action2;
Action3 _action3;
IntroSceneText _text;
void postInit(SceneObjectList *OwnerList) override;
};
class Scene180: public SceneExt {
/* Objects */
class Vechile: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Items */
class GarageExit: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
public:
SequenceManager _sequenceManager;
SpeakerGameText _gameTextSpeaker;
NamedObject _object1;
Vechile _vechile;
NamedHotspot _driveway, _garage, _frontDoor, _house, _street;
NamedHotspot _lawn, _bushes, _palms, _fence, _steps;
NamedHotspot _curb, _sky;
GarageExit _garageExit;
ASoundExt _sound1;
SceneMessage _sceneMessage;
int _dispatchMode;
Scene180();
void synchronize(Serializer &s) override;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
void process(Event &event) override;
void dispatch() override;
};
class Scene190: public SceneExt {
/* Objects */
class LyleCar: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Items */
class Item1: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Item2: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Exit: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Actions */
class Action1: public Action {
public:
void signal() override;
};
public:
SequenceManager _sequenceManager;
FollowerObject _object1;
NamedObject _door, _flag;
LyleCar _lyleCar;
Item1 _item1;
Item2 _item2;
NamedHotspot _item3, _item4, _item5, _item6;
NamedHotspot _item7, _item8, _item9, _item10;
Exit _exit;
Action1 _action1;
ASoundExt _sound;
SpeakerGameText _speaker;
bool _fieldB52;
Scene190();
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
void process(Event &event) override;
void dispatch() override;
void synchronize(Serializer &s) override;
};
} // End of namespace BlueForce
} // End of namespace TsAGE
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,294 @@
/* 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 3 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, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef TSAGE_BLUEFORCE_SCENES2_H
#define TSAGE_BLUEFORCE_SCENES2_H
#include "common/scummsys.h"
#include "tsage/blue_force/blueforce_logic.h"
#include "tsage/blue_force/blueforce_speakers.h"
#include "tsage/events.h"
#include "tsage/core.h"
#include "tsage/scenes.h"
#include "tsage/globals.h"
#include "tsage/sound.h"
namespace TsAGE {
namespace BlueForce {
using namespace TsAGE;
class IntroObject: public NamedObject {
};
class Scene200: public SceneExt {
/* Actions */
class Action1: public ActionExt {
public:
void signal() override;
};
class Action2: public Action {
public:
void signal() override;
};
public:
SequenceManager _sequenceManager;
Action1 _action1;
Action2 _action2;
NamedObject _object1, _object2, _object3, _object4, _object5, _object6;
IntroObject _object7, _object8, _object9;
NamedObject _object10, _object11;
void postInit(SceneObjectList *OwnerList = NULL) override;
void remove() override;
};
class Scene210: public SceneExt {
/* Actions */
class Action1: public ActionExt {
public:
void signal() override;
};
public:
SequenceManager _sequenceManager;
Action1 _action1;
IntroObject _object1, _object2, _object3, _object4;
IntroObject _object5, _object6, _object7, _object8;
NamedObject _object9, _object10, _object11, _object12;
NamedObject _object13, _object14, _object15;
void postInit(SceneObjectList *OwnerList = NULL) override;
void remove() override;
};
class Scene220: public SceneExt {
/* Actions */
class Action1: public ActionExt {
public:
void signal() override;
};
class Action2: public Action {
public:
void signal() override;
};
public:
SequenceManager _sequenceManager;
Action1 _action1;
Action2 _action2;
NamedObject _object1, _object2, _object3, _object4, _object5;
NamedObject _object6, _object7, _object8, _object9;
IntroObject _object10, _object11, _object12, _object13;
IntroObject _object14, _object15, _object16;
void postInit(SceneObjectList *OwnerList = NULL) override;
void remove() override;
};
class Scene225: public SceneExt {
/* Actions */
class Action1: public ActionExt {
public:
void signal() override;
};
class Action2: public Action {
public:
void signal() override;
};
class Action3: public Action {
public:
void signal() override;
};
class Action4: public Action {
public:
void signal() override;
};
class Action5: public Action {
public:
void signal() override;
};
class Action6: public Action {
public:
void signal() override;
};
public:
SequenceManager _sequenceManager;
Action1 _action1;
Action2 _action2;
Action3 _action3;
Action4 _action4;
Action5 _action5;
Action6 _action6;
IntroObject _object1, _object2, _object3, _object4;
IntroObject _object5, _object6, _object7;
NamedObject _object8, _object9, _object10, _object11, _object12;
NamedObject _object13, _object14, _object15, _object16;
NamedObject _object17, _object18, _object19;
NamedObject _object20, _object21;
void postInit(SceneObjectList *OwnerList = NULL) override;
void remove() override;
};
class Scene265: public SceneExt {
/* Actions */
class Action1: public ActionExt {
public:
void signal() override;
};
public:
Action1 _action1;
void postInit(SceneObjectList *OwnerList = NULL) override;
void remove() override;
};
class Scene270: public SceneExt {
/* Actions */
class Action1: public ActionExt {
public:
void signal() override;
};
/* Objects */
class Lyle: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Grandma: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Items */
class Item: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Exit: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
public:
SequenceManager _sequenceManager1, _sequenceManager2, _sequenceManager3;
SpeakerGrandma _grandmaSpeaker;
SpeakerLyle _lyleSpeaker;
SpeakerJake _jakeSpeaker;
SpeakerLaura _lauraSpeaker;
SpeakerSkip _skipSpeaker;
SpeakerGameText _gameTextSpeaker;
Action1 _action1;
NamedObject _object1, _object2, _object3, _laura;
NamedObject _skip, _tv, _fireplace;
Lyle _lyle;
Grandma _grandma;
Item _couch, _afgan;
NamedHotspot _appliances;
NamedHotspot _ivy, _fridge, _photos, _item8, _item9;
NamedHotspot _item10, _item11, _background;
Exit _exit;
int _field380, _field382, _field384, _field386;
int _field219A, _field21A0;
Common::Point _tempPos;
Scene270();
void synchronize(Serializer &s) override;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
void process(Event &event) override;
void dispatch() override;
};
class Scene271: public PalettedScene {
/* Actions */
class Action1: public ActionExt {
public:
void signal() override;
};
/* Objects */
class Object12: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Items */
class Item: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Exit: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
public:
SequenceManager _sequenceManager1, _sequenceManager2, _sequenceManager3;
SpeakerGrandma _grandmaSpeaker;
SpeakerLyle _lyleSpeaker;
SpeakerJake _jakeSpeaker;
SpeakerLaura _lauraSpeaker;
SpeakerSkip _skipSpeaker;
SpeakerGameText _gameTextSpeaker;
SpeakerGranText _granTextSpeaker;
SpeakerLyleText _lyleTextSpeaker;
NamedObject _object1, _object2, _object3, _object4, _object5;
NamedObject _object6, _object7, _object8, _tv, _object10;
NamedObject _object11;
Object12 _object12;
Item _item1, _item3;
NamedHotspot _item2, _item4, _item5, _item6, _item7;
NamedHotspot _item8, _item9, _item10, _item11;
Exit _exit;
Action1 _action1;
Rect _rect1;
int _field796, _field2E16;
Common::Point _tempPos;
ASound _sound1;
Scene271();
void synchronize(Serializer &s) override;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
void process(Event &event) override;
void dispatch() override;
};
class Scene280: public PalettedScene {
/* Actions */
class Action1: public ActionExt {
public:
void signal() override;
};
public:
Action1 _action1;
SpeakerGameText _gameTextSpeaker;
NamedObject _jake, _dad, _mum, _object4;
void postInit(SceneObjectList *OwnerList) override;
void signal() override;
};
} // End of namespace BlueForce
} // End of namespace TsAGE
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,891 @@
/* 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 3 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, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef TSAGE_BLUEFORCE_SCENES3_H
#define TSAGE_BLUEFORCE_SCENES3_H
#include "common/scummsys.h"
#include "tsage/blue_force/blueforce_logic.h"
#include "tsage/blue_force/blueforce_speakers.h"
#include "tsage/converse.h"
#include "tsage/events.h"
#include "tsage/core.h"
#include "tsage/scenes.h"
#include "tsage/globals.h"
#include "tsage/sound.h"
namespace TsAGE {
namespace BlueForce {
using namespace TsAGE;
class Scene300: public SceneExt {
/* Objects */
class Object: public NamedObject {
public:
int _stripNumber;
public:
Object(int stripNumber) { _stripNumber = stripNumber; }
bool startAction(CursorType action, Event &event) override;
};
class Object19: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Items */
class Item1: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Item2: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Item14: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Item15: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Actions */
class Action1: public Action {
public:
void signal() override;
};
class Action2: public Action {
public:
void signal() override;
};
class Action3: public Action {
public:
void signal() override;
};
class Action4: public Action {
public:
void signal() override;
};
class Action5: public Action {
public:
void signal() override;
};
private:
void setupInspection();
public:
SequenceManager _sequenceManager1, _sequenceManager2;
SequenceManager _sequenceManager3, _sequenceManager4;
NamedObject _object1;
FollowerObject _object2, _object3, _object4, _object5, _object6, _object7;
SceneObject _object8, _object9, _object10;
NamedObject _object11, _object12;
Object _object13, _object14, _object15, _object16;
NamedObject _object17, _object18;
Object19 _object19;
Item1 _item1;
Item2 _item2;
NamedHotspot _item3, _item4, _item5, _item6, _item7;
NamedHotspot _item8, _item9, _item10, _item11;
NamedHotspot _item12, _item13;
Item14 _item14;
Item15 _item15;
Action1 _action1;
Action2 _action2;
Action3 _action3;
Action4 _action4;
Action5 _action5;
SpeakerGameText _gameTextSpeaker;
SpeakerSutter _sutterSpeaker;
SpeakerDoug _dougSpeaker;
SpeakerJakeNoHead _jakeSpeaker;
TimerExt _timer;
int _field2760, _field2762;
Scene300();
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
void process(Event &event) override;
void dispatch() override;
};
class Scene315: public SceneExt {
/* Objects */
class BulletinMemo: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Object2: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class ATFMemo: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Items */
class Barry: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class SutterSlot: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Sign: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class BulletinBoard: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class CleaningKit: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class BriefingMaterial: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class WestExit: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class SouthWestExit: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Actions */
class Action1: public Action {
public:
void signal() override;
};
public:
SequenceManager _sequenceManager;
SpeakerGameText _gameTextSpeaker;
SpeakerSutter _sutterSpeaker;
SpeakerHarrison _harrisonSpeaker;
SpeakerJakeJacket _jakeJacketSpeaker;
SpeakerJakeUniform _jakeUniformSpeaker;
SpeakerJailer _jailerSpeaker;
Barry _barry;
SutterSlot _sutterSlot;
NamedHotspot _item3;
Sign _sign;
BulletinBoard _bulletinBoard;
BulletinMemo _bulletinMemo;
Object2 _object2;
ATFMemo _atfMemo;
SceneObject _object4, _object5, _object6;
SceneObject _object7, _object8, _object9;
NamedHotspot _item6, _item7, _item8, _item9;
NamedHotspot _item10, _item11, _item12, _item13;
CleaningKit _cleaningKit;
BriefingMaterial _briefingMaterial;
WestExit _westExit;
SouthWestExit _swExit;
Action1 _action1;
int _stripNumber;
int _field1398;
int _invGreenCount, _bookGreenCount, _invGangCount;
int _bookGangCount, _field1B6C, _field139C;
bool _field1B68, _doorOpened;
CursorType _currentCursor;
Scene315();
void synchronize(Serializer &s) override;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
void process(Event &event) override;
void dispatch() override;
};
class Scene325: public SceneExt {
/* Items */
class Item1: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
public:
SequenceManager _sequenceManager;
SpeakerGameText _gameTextSpeaker;
SpeakerPSutter _PSutterSpeaker;
Item1 _item1;
NamedObject _object1, _object2, _object3, _object4, _object5;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
};
class Scene330: public SceneExt {
class Timer1: public Timer {
public:
void signal() override;
};
public:
SequenceManager _sequenceManager;
NamedObject _object1;
SceneObject _object2;
ASoundExt _sound1, _sound2;
Timer1 _timer;
int _seqNumber;
Scene330();
void synchronize(Serializer &s) override;
void postInit(SceneObjectList *OwnerList = NULL) override;
void remove() override;
void signal() override;
};
class Scene340: public PalettedScene {
/* Actions */
class Action1: public Action {
public:
void signal() override;
};
class Action2: public Action {
public:
void signal() override;
};
class Action3: public Action {
public:
void signal() override;
};
class Action4: public Action {
public:
void signal() override;
};
class Action5: public Action {
public:
void signal() override;
};
class Action6: public Action {
public:
void signal() override;
};
class Action7: public Action {
public:
void signal() override;
};
class Action8: public Action {
public:
void signal() override;
void process(Event &event) override;
};
/* Items */
class Item1: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class WestExit: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class SouthWestExit: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class NorthExit: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Objects */
class Child: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Woman: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Harrison: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Timers */
class Timer2: public Timer {
public:
void signal() override;
};
public:
SequenceManager _sequenceManager1, _sequenceManager2, _sequenceManager3;
Child _child;
Woman _woman;
Harrison _harrison;
SceneObject _object4, _object5;
Item1 _item1;
NamedHotspot _item2, _item3;
WestExit _westExit;
SouthWestExit _swExit;
NorthExit _northExit;
Action1 _action1;
Action2 _action2;
Action3 _action3;
Action4 _action4;
Action5 _action5;
Action6 _action6;
Action7 _action7;
Action8 _action8;
SpeakerGameText _gameTextSpeaker;
SpeakerJordan _jordanSpeaker;
SpeakerSkipB _skipBSpeaker;
SpeakerJakeUniform _jakeUniformSpeaker;
SpeakerHarrison _harrisonSpeaker;
ASoundExt _sound1, _sound2;
TimerExt _timer1;
Timer2 _timer2;
int _seqNumber1, _womanDialogCount, _backupPresent;
Scene340();
void synchronize(Serializer &s) override;
void postInit(SceneObjectList *OwnerList = NULL) override;
void remove() override;
void signal() override;
void process(Event &event) override;
void dispatch() override;
};
class Scene342: public PalettedScene {
/* Items */
class Item1: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class WestExit: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class SouthWestExit: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class NorthExit: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Objects */
class Lyle: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Timers */
class Timer1: public Timer {
public:
void signal() override;
};
public:
SequenceManager _sequenceManager1, _sequenceManager2;
Lyle _lyle;
NamedObject _object2;
SceneObject _object3, _object4;
Item1 _item1;
NamedHotspot _item2, _item3;
WestExit _westExit;
SouthWestExit _swExit;
NorthExit _northExit;
SpeakerGameText _gameTextSpeaker;
SpeakerJakeJacket _jakeJacketSpeaker;
SpeakerLyleHat _lyleHatSpeaker;
ASoundExt _sound1;
Timer1 _timer1;
int _field1A1A;
Scene342();
void synchronize(Serializer &s) override;
void postInit(SceneObjectList *OwnerList = NULL) override;
void remove() override;
void signal() override;
void process(Event &event) override;
void dispatch() override;
};
class Scene350: public SceneExt {
/* Items */
class FireBox: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Yacht: public NamedHotspot {
public:
bool _flag;
Common::String getClassName() override { return "Scene350_Item6"; }
void synchronize(Serializer &s) override;
bool startAction(CursorType action, Event &event) override;
};
class SouthWestExit: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Objects */
class Hook: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class FireboxInset: public FocusObject {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Timers */
class Timer1: public Timer {
public:
void signal() override;
};
public:
SequenceManager _sequenceManager1, _sequenceManager2, _sequenceManager3;
NamedObject _harrison;
SceneObject _yachtDoor;
BackgroundSceneObject _yachtBody;
Hook _hook;
FireboxInset _fireBoxInset;
NamedHotspot _item1, _item2, _item3, _item4;
FireBox _fireBox;
Yacht _yacht;
SouthWestExit _swExit;
SpeakerGameText _gameTextSpeaker;
SpeakerJakeUniform _jakeUniformSpeaker;
SpeakerHarrison _harrisonSpeaker;
ASoundExt _sound1, _sound2;
Timer1 _timer1;
int _field1D44, _field1D46;
Scene350();
void postInit(SceneObjectList *OwnerList = NULL) override;
void remove() override;
void signal() override;
void process(Event &event) override;
void checkGun() override;
};
class Scene355: public PalettedScene {
/* Objects */
class Doorway: public NamedObject {
public:
int _mode1356Count, _talkCount;
bool _onDuty;
Doorway() { _mode1356Count = _talkCount = 0; _onDuty = false; }
Common::String getClassName() override { return "Scene355_Doorway"; }
void synchronize(Serializer &s) override;
bool startAction(CursorType action, Event &event) override;
};
class Locker: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class LockerInset: public FocusObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Object5: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Green: public NamedObjectExt {
public:
bool startAction(CursorType action, Event &event) override;
};
class Lyle: public NamedObjectExt {
public:
bool startAction(CursorType action, Event &event) override;
};
class Object8: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Items */
class Item1: public SceneHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Item2: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Item3: public SceneHotspotExt {
public:
bool startAction(CursorType action, Event &event) override;
};
class Item4: public SceneHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Pouch: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Item11: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class RentalExit: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Actions */
class Action1: public Action {
public:
void signal() override;
};
class Action2: public Action {
public:
void signal() override;
};
public:
SequenceManager _sequenceManager;
SpeakerGameText _gameTextSpeaker;
SpeakerJakeUniform _jakeUniformSpeaker;
SpeakerJakeJacket _jakeJacketSpeaker;
SpeakerHarrison _harrisonSpeaker;
SpeakerLyleHat _lyleHatSpeaker;
SpeakerGreen _greenSpeaker;
NamedObject _harrison;
Doorway _doorway;
Locker _locker;
LockerInset _lockerInset;
Object5 _object5;
Green _green;
Lyle _lyle;
Object8 _object8;
NamedObject _object9, _object10, _object11;
Item1 _item1;
Item2 _item2;
Item3 _item3;
Item4 _item4;
Pouch _pouch;
NamedHotspot _item6, _item7, _item8;
NamedHotspot _item9, _item10;
Item11 _item11;
RentalExit _rentalExit;
ASoundExt _sound1, _sound2, _sound3;
Action1 _action1;
Action2 _action2;
int _nextSceneMode;
bool _modeFlag;
Scene355();
void synchronize(Serializer &s) override;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
void process(Event &event) override;
void dispatch() override;
void setMode(bool mode, int sceneMode);
};
class Scene360: public SceneExt {
/* Objects */
class SlidingDoor: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Window: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Object4: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class BaseballCards: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Harrison: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Object7: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Items */
class Item1: public SceneHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Item2: public SceneHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Item3: public SceneHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Barometer: public SceneHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Actions */
class Action1: public Action {
public:
void signal() override;
};
public:
SequenceManager _sequenceManager1, _sequenceManager2;
SpeakerGameText _gameTextSpeaker;
SpeakerJakeUniform _jakeUniformSpeaker;
SpeakerHarrison _harrisonSpeaker;
SpeakerGreen _greenSpeaker;
SlidingDoor _slidingDoor;
SceneObject _object2;
Window _window;
Object4 _object4;
BaseballCards _baseballCards;
Harrison _harrison;
Object7 _object7;
Item1 _item1;
Item2 _item2;
Item3 _item3;
Barometer _barometer;
Action1 _action1;
ASound _sound1;
void synchronize(Serializer &s) override;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
void process(Event &event) override;
void dispatch() override;
};
class Scene370: public SceneExt {
/* Items */
class Item1: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Item6: public SceneHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Exit: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Objects */
class GreensGun: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Green: public NamedObject2 {
public:
bool startAction(CursorType action, Event &event) override;
};
class Harrison: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Laura: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Speakers */
class SpeakerLaura370: public SpeakerLaura {
public:
void setText(const Common::String &msg) override;
};
public:
SequenceManager _sequenceManager;
SpeakerGameText _gameTextSpeaker;
SpeakerJakeUniform _jakeUniformSpeaker;
SpeakerLaura370 _lauraSpeaker;
SpeakerLauraHeld _lauraHeldSpeaker;
SpeakerGreen _greenSpeaker;
SpeakerHarrison _harrisonSpeaker;
GreensGun _greensGun;
Green _green;
Harrison _harrison;
Laura _laura;
NamedObject _object5;
SceneObject _object6;
Item1 _item1;
NamedHotspot _item2, _item3, _item4, _item5;
Item6 _item6;
Exit _exit;
ASound _sound1;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
void process(Event &event) override;
void dispatch() override;
};
class Scene380: public SceneExt {
/* Objects */
class Vechile: public NamedObjectExt {
public:
bool startAction(CursorType action, Event &event) override;
};
class Door: public NamedObjectExt {
public:
bool startAction(CursorType action, Event &event) override;
};
public:
SequenceManager _sequenceManager;
SpeakerGameText _gameTextSpeaker;
Vechile _vechile;
Door _door;
NamedHotspot _item1, _item2, _item3, _item4, _item5;
NamedHotspot _item6, _item7, _item8, _item9;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
};
class Scene385: public SceneExt {
/* Items */
class Exit: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Objects */
class Door: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Jim: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Dezi: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Actions */
class Action1: public Action {
public:
void signal() override;
};
class Action2: public Action {
public:
void signal() override;
};
public:
SequenceManager _sequenceManager;
Action1 _action1;
Action2 _action2;
Door _door;
Jim _jim;
Dezi _dezi;
SpeakerGameText _gameTextSpeaker;
SpeakerJim _jimSpeaker;
SpeakerDezi _deziSpeaker;
SpeakerJake385 _jake385Speaker;
NamedHotspot _item1, _item2, _item3, _item4, _item5;
Exit _exit;
int _talkAction;
bool _jimFlag;
Scene385();
void synchronize(Serializer &s) override;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
void process(Event &event) override;
void dispatch() override;
};
class Scene390: public SceneExt {
/* Items */
class BookingForms: public NamedHotspotExt {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Objects */
class Green: public NamedObjectExt {
public:
bool startAction(CursorType action, Event &event) override;
};
class Object2: public NamedObjectExt {
public:
bool startAction(CursorType action, Event &event) override;
};
class Object3: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class GangMember1: public NamedObjectExt {
public:
bool startAction(CursorType action, Event &event) override;
};
class GangMember2: public NamedObjectExt {
public:
bool startAction(CursorType action, Event &event) override;
};
class Door: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Actions */
class Action1: public Action {
public:
void signal() override;
};
public:
SequenceManager _sequenceManager;
SpeakerGameText _gameTextSpeaker;
SpeakerJakeUniform _jakeUniformSpeaker;
SpeakerJakeJacket _jakeJacketSpeaker;
SpeakerGreen _greenSpeaker;
SpeakerJailer _jailerSpeaker;
SpeakerDriver _driverSpeaker;
SpeakerShooter _shooterSpeaker;
Action1 _action1;
Green _green;
Object2 _object2;
Object3 _object3;
GangMember1 _gangMember1;
GangMember2 _gangMember2;
Door _door;
NamedHotspot _item1, _item3, _item4;
BookingForms _bookingForms;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
};
} // End of namespace BlueForce
} // End of namespace TsAGE
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,273 @@
/* 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 3 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, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef TSAGE_BLUEFORCE_SCENES4_H
#define TSAGE_BLUEFORCE_SCENES4_H
#include "common/scummsys.h"
#include "tsage/blue_force/blueforce_logic.h"
#include "tsage/blue_force/blueforce_speakers.h"
#include "tsage/converse.h"
#include "tsage/events.h"
#include "tsage/core.h"
#include "tsage/scenes.h"
#include "tsage/globals.h"
#include "tsage/sound.h"
namespace TsAGE {
namespace BlueForce {
using namespace TsAGE;
class Scene410: public SceneExt {
/* Actions */
class Action1: public Action {
public:
void signal() override;
};
class Action2: public Action {
public:
void signal() override;
};
class Action3: public Action {
public:
void signal() override;
};
class Action4: public Action {
public:
void signal() override;
};
class Action5: public Action {
public:
void signal() override;
};
class Action6: public Action {
public:
void signal() override;
};
class Action7: public Action {
public:
void signal() override;
};
/* Objects */
class Driver: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Passenger: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Harrison: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Items */
class Motorcycle: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class TruckFront: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
public:
SequenceManager _sequenceManager1, _sequenceManager2, _sequenceManager3;
Driver _driver;
Passenger _passenger;
Harrison _harrison;
NamedObject _patrolCar, _object5, _object6;
NamedHotspot _background;
Motorcycle _motorcycle;
NamedHotspot _truckBack;
TruckFront _truckFront;
Action1 _action1;
Action2 _action2;
Action3 _action3;
Action4 _action4;
Action5 _action5;
Action6 _action6;
Action7 _action7;
SpeakerGameText _gameTextSpeaker;
SpeakerJakeUniform _jakeUniformSpeaker;
SpeakerHarrison _harrisonSpeaker;
SpeakerDriver _driverSpeaker;
SpeakerShooter _shooterSpeaker;
ASoundExt _sound1;
int _action1Count, _talkCount;
bool _harrissonTalkFl;
bool _cuffedDriverFl;
bool _cuffedPassengerFl;
bool _getDriverFl;
bool _driverOutOfTruckFl, _harrisonMovedFl;
Scene410();
void postInit(SceneObjectList *OwnerList = NULL) override;
void synchronize(Serializer &s) override;
void signal() override;
void process(Event &event) override;
void dispatch() override;
};
class Scene415: public SceneExt {
/* Objects */
class GunInset: public FocusObject {
public:
bool startAction(CursorType action, Event &event) override;
void remove() override;
};
class GunAndWig: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class BulletsInset: public FocusObject {
public:
bool startAction(CursorType action, Event &event) override;
void remove() override;
};
class DashDrawer: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class TheBullets: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Items */
class Lever: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
private:
void showBullets();
void showGunAndWig();
public:
SequenceManager _sequenceManager;
GunInset _gunInset;
GunAndWig _gunAndWig;
BulletsInset _bulletsInset;
DashDrawer _dashDrawer;
TheBullets _theBullets;
NamedObject _animatedSeat;
NamedHotspot _item1, _steeringWheel, _horn, _dashboard;
NamedHotspot _seat, _windowLever, _item7, _seatBelt;
Lever _lever;
SpeakerJakeRadio _jakeRadioSpeaker;
bool _scoreWigRapFlag, _scoreBulletRapFlag;
Scene415();
void postInit(SceneObjectList *OwnerList = NULL) override;
void synchronize(Serializer &s) override;
void signal() override;
void dispatch() override;
};
class Scene440: public SceneExt {
/* Objects */
class Doorway: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Vechile: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Lyle: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Items */
class Item1: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
public:
SequenceManager _sequenceManager;
SpeakerGameText _gameTextSpeaker;
Doorway _doorway;
Vechile _vechile;
Lyle _lyle;
Item1 _item1;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
};
class Scene450: public SceneExt {
/* Objects */
class Weasel: public NamedObjectExt {
public:
bool startAction(CursorType action, Event &event) override;
};
class Object2: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class PinBoy: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Manager: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Items */
class Exit: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
public:
SequenceManager _sequenceManager;
SpeakerGameText _gameTextSpeaker;
SpeakerLyleHat _lyleHatSpeaker;
SpeakerJakeJacket _jakeJacketSpeaker;
SpeakerJakeUniform _jakeUniformSpeaker;
SpeakerEugene _eugeneSpeaker;
SpeakerWeasel _weaselSpeaker;
SpeakerBilly _billySpeaker;
Weasel _weasel;
NamedObject _object2;
PinBoy _pinBoy;
Manager _manager;
NamedObject _door, _counterDoor;
Exit _exit;
NamedHotspot _interior, _shelf, _counter;
bool _managerCallsWeaselFl;
bool _talkManagerFl;
Scene450();
void synchronize(Serializer &s) override;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
void process(Event &event) override;
};
} // End of namespace BlueForce
} // End of namespace TsAGE
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,407 @@
/* 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 3 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, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef TSAGE_BLUEFORCE_SCENES5_H
#define TSAGE_BLUEFORCE_SCENES5_H
#include "common/scummsys.h"
#include "tsage/blue_force/blueforce_logic.h"
#include "tsage/blue_force/blueforce_speakers.h"
#include "tsage/converse.h"
#include "tsage/events.h"
#include "tsage/core.h"
#include "tsage/scenes.h"
#include "tsage/globals.h"
#include "tsage/sound.h"
namespace TsAGE {
namespace BlueForce {
using namespace TsAGE;
class Scene550: public SceneExt {
/* Objects */
class Lyle: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class CaravanDoor: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Vechile: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Actions */
class Action1: public ActionExt {
public:
void signal() override;
};
public:
SequenceManager _sequenceManager;
Lyle _lyle;
CaravanDoor _caravanDoor;
Vechile _vechile;
NamedHotspot _item1, _item2, _item3;
SpeakerGameText _gameTextSpeaker;
SpeakerLyleHat _lyleHatSpeaker;
SpeakerJakeJacket _jakeJacketSpeaker;
Action1 _action1;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
};
class Scene551: public Scene550 {
/* Objects */
class Vechile: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class DrunkStanding: public NamedObjectExt {
public:
bool startAction(CursorType action, Event &event) override;
};
class Drunk: public NamedObjectExt {
public:
bool startAction(CursorType action, Event &event) override;
};
class PatrolCarTrunk: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class TrunkInset: public FocusObject {
public:
void remove() override;
bool startAction(CursorType action, Event &event) override;
};
class TrunkKits: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Harrison: public NamedObjectExt {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Items */
class Item4: public SceneHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Actions */
class Action2: public Action {
public:
void signal() override;
};
public:
SpeakerDrunk _drunkSpeaker;
SpeakerJakeUniform _jakeUniformSpeaker;
SpeakerGiggles _gigglesSpeaker;
Vechile _vechile2;
DrunkStanding _drunkStanding;
Drunk _drunk;
PatrolCarTrunk _patrolCarTrunk;
TrunkInset _trunkInset;
TrunkKits _trunkKits;
Harrison _harrison;
NamedObject _object11, _object12, _object13;
SceneObject _object14, _object15;
Item4 _item4;
Action2 _action2;
int _field1CD0, _field1CD2;
Scene551();
void synchronize(Serializer &s) override;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
void dispatch() override;
};
class Scene560: public SceneExt {
/* Objects */
class DeskChair: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Box: public NamedObjectExt {
public:
bool startAction(CursorType action, Event &event) override;
};
class SafeInset: public FocusObject {
/* Items */
class Item: public NamedHotspotExt {
public:
bool startAction(CursorType action, Event &event) override;
};
public:
NamedObject _digit0, _digit1, _digit2;
Item _item1, _item2, _item3, _item4, _item5, _item6;
Visage _cursorVisage;
Common::String getClassName() override { return "Scene560_SafeInset"; }
void postInit(SceneObjectList *OwnerList = NULL) override;
void remove() override;
void signal() override;
void process(Event &event) override;
};
class Nickel: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class BoxInset: public FocusObject {
/* Items */
class Item1: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
public:
Item1 _item1;
Common::String getClassName() override { return "Scene560_BoxInset"; }
void postInit(SceneObjectList *OwnerList = NULL) override;
void remove() override;
};
/* Item groups */
class PicturePart: public NamedHotspotExt {
public:
Common::String getClassName() override { return "Scene560_PicturePart"; }
bool startAction(CursorType action, Event &event) override;
};
/* Items */
class Computer: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Actions */
class Action1: public Action {
public:
void signal() override;
};
class Action2: public Action {
public:
void signal() override;
};
class Action3: public Action {
public:
void signal() override;
};
public:
Action1 _action1;
Action2 _action2;
Action3 _action3;
SpeakerGameText _gameTextSpeaker;
DeskChair _deskChair;
Box _box;
SafeInset _safeInset;
Nickel _nickel;
BoxInset _boxInset;
NamedObject _object6;
PicturePart _picture1, _picture2, _picture3, _picture4;
Computer _computer;
NamedHotspot _chair, _lamp, _item4, _trophy, _waterColors, _fileCabinets;
NamedHotspot _certificate, _bookcase, _desk, _carpet, _item12, _office;
ASound _sound1;
bool _field380;
bool _field11EA;
Common::Point _destPosition;
Scene560();
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
void process(Event &event) override;
void dispatch() override;
};
class Scene570: public SceneExt {
/* Custom classes */
class PasswordEntry: public EventHandler {
private:
void checkPassword();
public:
SceneText _passwordText, _entryText;
Common::String _passwordStr, _entryBuffer;
PasswordEntry();
Common::String getClassName() override { return "Scene570_PasswordEntry"; }
void synchronize(Serializer &s) override;
void postInit(SceneObjectList *OwnerList = NULL) override;
void process(Event &event) override;
};
class Icon: public NamedObject {
public:
SceneText _sceneText;
int _iconId, _folderId, _parentFolderId;
Common::String _text;
Icon();
Common::String getClassName() override { return "Scene570_Custom2"; }
void synchronize(Serializer &s) override;
void remove() override;
bool startAction(CursorType action, Event &event) override;
void setDetails(int iconId, int folderId, int parentFolderId, const Common::String &msg);
};
class IconManager: public EventHandler {
public:
NamedObject _object1;
SynchronizedList<Icon *> _list;
int _mode, _selectedFolder, _fieldAA, _fieldAC;
IconManager();
void remove() override;
void setup(int mode);
void hideList();
void refreshList();
void addItem(Icon *item);
};
/* Objects */
class PowerSwitch: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class PrinterIcon: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Object3: public FocusObject {
public:
void remove() override;
};
/* Items */
class FloppyDrive: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
public:
SequenceManager _sequenceManager;
SpeakerGameText _gameTextSpeaker;
PasswordEntry _passwordEntry;
PowerSwitch _powerSwitch;
PrinterIcon _printerIcon;
Object3 _object3;
NamedObjectExt _object4;
Icon _folder1, _folder2, _folder3, _folder4;
Icon _icon1, _icon2, _icon3, _icon4, _icon5;
Icon _icon6, _icon7, _icon8, _icon9;
IconManager _iconManager;
FloppyDrive _floppyDrive;
NamedHotspot _monitor, _item3, _case, _keyboard, _desk;
NamedHotspot _item7, _printer, _window, _plant, _item11;
ASound _sound1;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
void process(Event &event) override;
};
class Scene580: public SceneExt {
/* Objects */
class Vechile: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Door: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Lyle: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
public:
SequenceManager _sequenceManager;
Vechile _vechile;
Door _door;
Lyle _lyle;
NamedHotspot _item1;
SpeakerGameText _gameTextSpeaker;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
void process(Event &event) override;
};
class Scene590: public PalettedScene {
/* Objects */
class Laura: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Skip: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Items */
class Exit: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Actions */
class Action1: public Action {
public:
void signal() override;
};
class Action2: public Action {
public:
void signal() override;
};
public:
SequenceManager _sequenceManager;
Laura _laura;
Skip _skip;
SceneObject _object3;
Exit _exit;
NamedHotspot _item2, _item3, _item4, _item5, _item6, _item7;
NamedHotspot _item8, _item9, _item10, _item11, _item12;
SpeakerSkip _skipSpeaker;
SpeakerJakeJacket _jakeJacketSpeaker;
SpeakerLaura _lauraSpeaker;
ASoundExt _sound1;
Action1 _action1;
Action2 _action2;
int _field17DC, _field17DE, _stripNumber, _field17E2;
Scene590();
void synchronize(Serializer &s) override;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
void process(Event &event) override;
void dispatch() override;
};
} // End of namespace BlueForce
} // End of namespace TsAGE
#endif

View File

@@ -0,0 +1,525 @@
/* 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 3 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, see <http://www.gnu.org/licenses/>.
*
*/
#include "tsage/blue_force/blueforce_scenes6.h"
#include "tsage/scenes.h"
#include "tsage/tsage.h"
#include "tsage/staticres.h"
namespace TsAGE {
namespace BlueForce {
/*--------------------------------------------------------------------------
* Scene 600 - Crash cut-scene
*
*--------------------------------------------------------------------------*/
void Scene600::Action1::signal() {
Scene600 *scene = (Scene600 *)BF_GLOBALS._sceneManager._scene;
static byte red[3] = {220, 0, 0};
switch (_actionIndex++) {
case 0:
setDelay(2);
break;
case 1:
BF_GLOBALS._sound1.play(57);
setDelay(120);
break;
case 2:
scene->_sound1.play(59);
setAction(&scene->_sequenceManager, this, 600, &scene->_object2, &scene->_ryan,
&BF_GLOBALS._player, &scene->_skidMarks, NULL);
break;
case 3:
BF_GLOBALS._sound1.play(61);
setDelay(180);
break;
case 4:
setDelay(180);
break;
case 5: {
BF_GLOBALS._player.remove();
scene->_ryan.remove();
scene->_object2.remove();
scene->_skidMarks.remove();
for (int percent = 100; percent >= 0; percent -= 2) {
BF_GLOBALS._scenePalette.fade((const byte *)&red, false, percent);
g_system->delayMillis(5);
}
SynchronizedList<SceneObject *>::iterator i;
for (i = BF_GLOBALS._sceneObjects->begin(); i != BF_GLOBALS._sceneObjects->end(); ++i) {
SceneObject *pObj = *i;
pObj->addMover(NULL);
pObj->setObjectWrapper(NULL);
pObj->animate(ANIM_MODE_NONE, NULL);
}
BF_GLOBALS._screen.fillRect(BF_GLOBALS._screen.getBounds(), 0);
scene->loadScene(999);
setDelay(5);
break;
}
case 6:
setDelay(5);
break;
case 7:
remove();
break;
default:
break;
}
}
/*--------------------------------------------------------------------------*/
void Scene600::postInit(SceneObjectList *OwnerList) {
_sceneBounds.moveTo(320, 0);
BF_GLOBALS._sceneManager._scrollerRect.setRect(20, 0, 300, 200);
_sound1.play(58);
_sound1.holdAt(1);
loadScene(600);
setZoomPercents(0, 100, 200, 100);
SceneExt::postInit();
BF_GLOBALS._player.postInit();
BF_GLOBALS._player.hide();
BF_GLOBALS._player.setPosition(Common::Point(639, 0));
BF_GLOBALS._player.disableControl();
_skidMarks.postInit();
_skidMarks.hide();
_object2.postInit();
_ryan.postInit();
_ryan.setVisage(600);
_ryan.setStrip(7);
_ryan.setPosition(Common::Point(417, 82));
BF_GLOBALS.clearFlag(onDuty);
BF_INVENTORY.setObjectScene(INV_TICKET_BOOK, 60);
BF_INVENTORY.setObjectScene(INV_MIRANDA_CARD, 60);
_sceneMode = 600;
setAction(&_action1, this);
}
void Scene600::signal() {
BF_GLOBALS._sceneManager.changeScene(620);
}
// WORKAROUND: Fix for original game bug where the global scrolling object follower
// remains set to an object within the scene that is no longer active
void Scene600::remove() {
BF_GLOBALS._scrollFollower = &BF_GLOBALS._player;
SceneExt::remove();
}
/*--------------------------------------------------------------------------
* Scene 620 - Hospital cut-scene
*
*--------------------------------------------------------------------------*/
void Scene620::postInit(SceneObjectList *OwnerList) {
SceneExt::postInit();
loadScene(999);
BF_GLOBALS._player.postInit();
BF_GLOBALS._player.disableControl();
BF_GLOBALS._player.setVisage(621);
BF_GLOBALS._player.setPosition(Common::Point(47, 96));
static byte black[3] = { 0, 0, 0 };
add2Faders(black, 2, 621, this);
}
void Scene620::signal() {
static byte black[3] = { 0, 0, 0 };
static byte black2[3] = { 0, 0, 0 };
static byte black3[3] = { 0, 0, 0 };
static byte black4[3] = { 0, 0, 0 };
static byte black5[3] = { 0, 0, 0 };
static byte black6[3] = { 0, 0, 0 };
static byte black7[3] = { 0, 0, 0 };
switch (_sceneMode++) {
case 0:
case 3:
case 9:
case 12:
_timer1.set(60, this);
break;
case 1:
case 4:
case 7:
case 10:
case 13:
case 16:
case 19:
addFader(black, 2, this);
break;
case 2:
BF_GLOBALS._player.remove();
_object1.postInit();
_object1.setVisage(622);
_object1.setPosition(Common::Point(101, 41));
add2Faders(black2, 2, 622, this);
break;
case 5:
_object1.remove();
_object2.postInit();
_object2.setVisage(623);
_object2.setPosition(Common::Point(216, 4));
add2Faders(black3, 2, 623, this);
break;
case 6:
_object2.animate(ANIM_MODE_5, this);
break;
case 8:
_object2.remove();
_object3.postInit();
_object3.setVisage(624);
_object3.setFrame(1);
_object3.setPosition(Common::Point(28, 88));
add2Faders(black4, 2, 624, this);
break;
case 11:
_object3.remove();
_object4.postInit();
_object4.setVisage(625);
_object4.setPosition(Common::Point(168, 8));
add2Faders(black5, 2, 625, this);
break;
case 14:
_object4.remove();
_object5.postInit();
_object5.setVisage(626);
_object5.setPosition(Common::Point(249, 183));
add2Faders(black6, 2, 626, this);
break;
case 15:
_object5.animate(ANIM_MODE_5, this);
break;
case 17:
_object5.remove();
_object6.postInit();
_object6.setVisage(627);
_object6.setPosition(Common::Point(65, 24));
add2Faders(black7, 2, 627, this);
break;
case 18:
_object6.animate(ANIM_MODE_5, this);
break;
case 20:
_object6.remove();
BF_GLOBALS._bookmark = bArrestedDrunk;
BF_GLOBALS._v4CEB6 = 0;
BF_GLOBALS._dayNumber = 3;
BF_GLOBALS._sceneManager.changeScene(271);
break;
default:
break;
}
}
/*--------------------------------------------------------------------------
* Scene 666 - Death Scene
*
*--------------------------------------------------------------------------*/
void Scene666::Action1::signal() {
switch (_actionIndex++) {
case 0:
BF_GLOBALS._player.hide();
setDelay(6);
break;
case 1:
BF_GLOBALS._game->restartGame();
break;
default:
break;
}
}
/*--------------------------------------------------------------------------*/
bool Scene666::Item1::startAction(CursorType action, Event &event) {
return true;
}
/*--------------------------------------------------------------------------*/
void Scene666::postInit(SceneObjectList *OwnerList) {
BF_GLOBALS._sound1.play(27);
SceneExt::postInit();
BF_GLOBALS._interfaceY = SCREEN_HEIGHT;
loadScene(999);
BF_GLOBALS._screen.fillRect(BF_GLOBALS._screen.getBounds(), 0);
if (BF_GLOBALS._dayNumber == 0) {
BF_GLOBALS._dayNumber = 1;
BF_GLOBALS._deathReason = BF_GLOBALS._randomSource.getRandomNumber(23);
}
BF_GLOBALS._scenePalette.loadPalette(BF_GLOBALS._sceneManager._previousScene);
T2_GLOBALS._uiElements._active = false;
_item1.setDetails(Rect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT), 666, -1, -1, -1, 1, NULL);
BF_GLOBALS._player.postInit();
BF_GLOBALS._events.setCursor(CURSOR_WALK);
if (BF_GLOBALS._sceneManager._previousScene == 271) {
setAction(&_action1);
} else {
switch (BF_GLOBALS._deathReason) {
case 4:
case 18:
case 19:
case 20:
BF_GLOBALS._scenePalette.loadPalette(668);
BF_GLOBALS._player.setVisage(668);
BF_GLOBALS._player.setStrip2(1);
BF_GLOBALS._player.setPosition(Common::Point(77, 155));
BF_GLOBALS._player.animate(ANIM_MODE_5, this);
break;
case 5:
BF_GLOBALS._scenePalette.loadPalette(900);
BF_GLOBALS._scenePalette.refresh();
BF_GLOBALS._player.setVisage(666);
BF_GLOBALS._player.setPosition(Common::Point(60, 160));
signal();
break;
case 7:
case 11:
case 12:
case 22:
BF_GLOBALS._scenePalette.loadPalette(667);
BF_GLOBALS._scenePalette.refresh();
_object1.postInit();
_object2.postInit();
_object3.postInit();
setAction(&_sequenceManager, this, 6660, &BF_GLOBALS._player, &_object1, &_object2,
&_object3, NULL);
break;
case 13:
case 14:
BF_GLOBALS._scenePalette.loadPalette(665);
BF_GLOBALS._scenePalette.refresh();
BF_GLOBALS._player.setVisage(665);
BF_GLOBALS._player.setPosition(Common::Point(80, 140));
signal();
break;
case 24:
BF_GLOBALS._player.setVisage(664);
BF_GLOBALS._player.setPosition(Common::Point(70, 160));
signal();
break;
default:
BF_GLOBALS._scenePalette.loadPalette(669);
BF_GLOBALS._scenePalette.refresh();
BF_GLOBALS._player.setVisage(669);
BF_GLOBALS._player.setStrip(1);
BF_GLOBALS._player.setPosition(Common::Point(27, 27));
BF_GLOBALS._player.animate(ANIM_MODE_5, this);
break;
}
}
}
void Scene666::remove() {
BF_GLOBALS._sound1.fadeOut2(NULL);
BF_GLOBALS._scrollFollower = &BF_GLOBALS._player;
SceneExt::remove();
T2_GLOBALS._uiElements._active = true;
}
void Scene666::signal() {
BF_GLOBALS._player.enableControl();
Rect textRect, sceneBounds;
_text._color1 = 19;
_text._color2 = 9;
_text._color3 = 13;
_text._fontNumber = 4;
_text._width = 150;
Common::String msg = g_resourceManager->getMessage(666, BF_GLOBALS._deathReason);
sceneBounds = BF_GLOBALS._sceneManager._scene->_sceneBounds;
sceneBounds.collapse(4, 2);
BF_GLOBALS.gfxManager()._font.getStringBounds(msg.c_str(), textRect, _text._width);
textRect.moveTo(160, 10);
textRect.contain(sceneBounds);
_text.setup(msg);
_text.setPosition(Common::Point(textRect.left, textRect.top));
_text.setPriority(255);
_text.show();
}
/*--------------------------------------------------------------------------
* Scene 690 - Decking
*
*--------------------------------------------------------------------------*/
bool Scene690::Object1::startAction(CursorType action, Event &event) {
Scene690 *scene = (Scene690 *)BF_GLOBALS._sceneManager._scene;
if ((action == CURSOR_USE) && (scene->_object2._strip == 1)) {
BF_GLOBALS._player.disableControl();
BF_GLOBALS._walkRegions.enableRegion(1);
BF_GLOBALS._walkRegions.enableRegion(6);
scene->_sceneMode = 6901;
scene->setAction(&scene->_sequenceManager, scene, 6901, &BF_GLOBALS._player,
&scene->_object2, &scene->_object1, &scene->_object4, &scene->_object5, NULL);
return true;
} else {
return NamedObject::startAction(action, event);
}
}
bool Scene690::Object2::startAction(CursorType action, Event &event) {
Scene690 *scene = (Scene690 *)BF_GLOBALS._sceneManager._scene;
switch (action) {
case CURSOR_USE:
if (scene->_object2._strip == 3) {
scene->_object6.postInit();
scene->_object6.hide();
scene->_object6.fixPriority(1);
scene->_object6.setDetails(690, 21, 17, 23, 1, (SceneItem *)NULL);
BF_GLOBALS._player.disableControl();
scene->_sceneMode = 6902;
scene->setAction(&scene->_sequenceManager, scene, 6902, &BF_GLOBALS._player,
&scene->_object2, &scene->_object6, NULL);
return true;
}
break;
case CURSOR_TALK:
scene->_stripManager.start(6900, &BF_GLOBALS._stripProxy);
return true;
default:
break;
}
return NamedObject::startAction(action, event);
}
/*--------------------------------------------------------------------------*/
void Scene690::postInit(SceneObjectList *OwnerList) {
SceneExt::postInit();
loadScene(690);
setZoomPercents(125, 80, 140, 100);
BF_GLOBALS._sound1.fadeSound(48);
if (BF_GLOBALS._dayNumber == 0)
BF_GLOBALS._dayNumber = 1;
_stripManager.addSpeaker(&_jakeSpeaker);
_object1.postInit();
_object1.setVisage(690);
_object1.setStrip2(2);
_object1.fixPriority(188);
_object1.setPosition(Common::Point(50, 166));
_object1.setDetails(690, 4, 17, 26, 1, (SceneItem *)NULL);
_object3.postInit();
_object3.setVisage(690);
_object3.fixPriority(100);
_object3.setPosition(Common::Point(238, 125));
_object3.setDetails(690, 7, 17, 28, 1, (SceneItem *)NULL);
_object2.postInit();
_object2.setVisage(694);
_object2.setStrip2(3);
_object2.fixPriority(125);
_object2.setPosition(Common::Point(100, 134));
_object2.setDetails(690, 12, -1, 11, 1, (SceneItem *)NULL);
BF_GLOBALS._player.postInit();
BF_GLOBALS._player.disableControl();
BF_GLOBALS._player._moveDiff.x = 8;
_object4.postInit();
_object4.setDetails(690, 13, -1, -1, 1, (SceneItem *)NULL);
_object5.postInit();
_object5.setDetails(690, 14, -1, -1, 1, (SceneItem *)NULL);
_sceneMode = 6903;
setAction(&_sequenceManager, this, 6903, &BF_GLOBALS._player, &_object3, &_object4, &_object5, NULL);
_item1.setDetails(Rect(45, 28, 74, 48), 690, 0, 15, 20, 1, NULL);
_item2.setDetails(Rect(0, 0, 129, 78), 690, 1, 15, 20, 1, NULL);
_item9.setDetails(Rect(4, 26, 35, 143), 690, 29, 17, 22, 1, NULL);
_item10.setDetails(Rect(87, 29, 109, 112), 690, 29, 17, 22, 1, NULL);
_item11.setDetails(Rect(135, 30, 160, 120), 690, 29, 17, 22, 1, NULL);
_item3.setDetails(Rect(37, 89, 84, 117), 690, 2, 16, 21, 1, NULL);
_item4.setDetails(Rect(123, 98, 201, 131), 690, 5, -1, -1, 1, NULL);
_item7.setDetails(Rect(285, 95, 303, 133), 690, 8, -1, 25, 1, NULL);
_item16.setDetails(Rect(166, 35, 210, 116), 690, 32, -1, -1, 1, NULL);
_item6.setDetails(Rect(255, 44, 289, 130), 690, 7, 17, 24, 1, NULL);
_item8.setDetails(Rect(299, 44, 314, 53), 690, 27, 15, -1, 1, NULL);
_item5.setDetails(Rect(130, 20, 319, 135), 690, 6, 16, 28, 1, NULL);
_item12.setDetails(1, 690, 10, -1, -1, 1);
_item13.setDetails(2, 690, 30, -1, -1, 1);
_item14.setDetails(3, 690, 31, -1, -1, 1);
_item15.setDetails(4, 690, 9, -1, -1, 1);
_item17.setDetails(Rect(143, 0, 182, 14), 690, 33, -1, -1, 1, NULL);
}
void Scene690::signal() {
switch (_sceneMode) {
case 6901:
BF_GLOBALS._sound1.fadeOut2(NULL);
BF_GLOBALS._sceneManager.changeScene(710);
break;
case 6902:
BF_GLOBALS._player.enableControl();
break;
case 6903:
BF_GLOBALS._walkRegions.disableRegion(1);
BF_GLOBALS._walkRegions.disableRegion(6);
BF_GLOBALS._player.enableControl();
break;
default:
break;
}
}
} // End of namespace BlueForce
} // End of namespace TsAGE

View File

@@ -0,0 +1,124 @@
/* 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 3 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, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef TSAGE_BLUEFORCE_SCENES6_H
#define TSAGE_BLUEFORCE_SCENES6_H
#include "common/scummsys.h"
#include "tsage/blue_force/blueforce_logic.h"
#include "tsage/blue_force/blueforce_speakers.h"
#include "tsage/converse.h"
#include "tsage/events.h"
#include "tsage/core.h"
#include "tsage/scenes.h"
#include "tsage/globals.h"
#include "tsage/sound.h"
namespace TsAGE {
namespace BlueForce {
using namespace TsAGE;
class Scene600 : public SceneExt {
/* Actions */
class Action1 : public Action {
public:
void signal() override;
};
public:
SequenceManager _sequenceManager;
Action1 _action1;
ASoundExt _sound1;
NamedObject _ryan, _object2, _skidMarks;
BackgroundSceneObject _object4, _object5;
BackgroundSceneObject _object6, _object7, _object8;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
void remove() override;
};
class Scene620 : public PalettedScene {
public:
SequenceManager _sequenceManager;
Timer _timer1;
NamedObject _object1, _object2, _object3;
NamedObject _object4, _object5, _object6;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
};
class Scene666 : public SceneExt {
/* Actions */
class Action1 : public Action {
public:
void signal() override;
};
/* Items */
class Item1: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
public:
Action1 _action1;
SequenceManager _sequenceManager;
NamedObject _object1, _object2, _object3;
Item1 _item1;
SceneText _text;
void postInit(SceneObjectList *OwnerList = NULL) override;
void remove() override;
void signal() override;
};
class Scene690 : public SceneExt {
/* Objects */
class Object1: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Object2: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
public:
SequenceManager _sequenceManager;
Object1 _object1;
Object2 _object2;
NamedObject _object3, _object4, _object5, _object6;
NamedHotspot _item1, _item2, _item3, _item4, _item5;
NamedHotspot _item6, _item7, _item8, _item9, _item10;
NamedHotspot _item11, _item12, _item13, _item14, _item15;
NamedHotspot _item16, _item17;
SpeakerJake _jakeSpeaker;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
};
} // End of namespace BlueForce
} // End of namespace TsAGE
#endif

View File

@@ -0,0 +1,283 @@
/* 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 3 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, see <http://www.gnu.org/licenses/>.
*
*/
#include "tsage/blue_force/blueforce_scenes7.h"
#include "tsage/globals.h"
#include "tsage/scenes.h"
#include "tsage/tsage.h"
#include "tsage/staticres.h"
namespace TsAGE {
namespace BlueForce {
/*--------------------------------------------------------------------------
* Scene 710 - Beach
*
*--------------------------------------------------------------------------*/
void Scene710::Timer1::signal() {
PaletteRotation *rotation = BF_GLOBALS._scenePalette.addRotation(136, 138, -1);
rotation->setDelay(20);
rotation = BF_GLOBALS._scenePalette.addRotation(146, 148, -1);
rotation->setDelay(30);
rotation = BF_GLOBALS._scenePalette.addRotation(187, 191, -1);
rotation->setDelay(35);
rotation = BF_GLOBALS._scenePalette.addRotation(245, 246, -1);
rotation->setDelay(20);
remove();
}
void Scene710::Action1::signal() {
Scene710 *scene = (Scene710 *)BF_GLOBALS._sceneManager._scene;
switch (_actionIndex++) {
case 0:
BF_GLOBALS._player.disableControl();
_state = 7104;
if (BF_INVENTORY.getObjectScene(INV_CRATE1) == 1)
_state = 7105;
setDelay(3);
break;
case 1: {
ADD_MOVER(BF_GLOBALS._player, scene->_laura._position.x + 8, scene->_laura._position.y + 8);
break;
}
case 2:
BF_GLOBALS._player._strip = 2;
scene->_stripManager.start(_state, this);
break;
case 3:
if (_state != 7105)
BF_GLOBALS._player.enableControl();
else {
BF_GLOBALS._player.disableControl();
scene->_sceneMode = 7106;
scene->setAction(&scene->_sequenceManager1, scene, 7106, &BF_GLOBALS._player, &scene->_laura, &scene->_kid, &scene->_dog, NULL);
}
if (_state < 7104) {
_state++;
if ((_state == 7104) && (BF_INVENTORY.getObjectScene(INV_CRATE1) == 1))
_state = 7105;
}
remove();
break;
default:
break;
}
}
// Laura
bool Scene710::Object3::startAction(CursorType action, Event &event) {
Scene710 *scene = (Scene710 *)BF_GLOBALS._sceneManager._scene;
if (action == CURSOR_TALK) {
BF_GLOBALS._player.setAction(&scene->_action1);
return true;
} else
return NamedObject::startAction(action, event);
}
bool Scene710::Object4::startAction(CursorType action, Event &event) {
Scene710 *scene = (Scene710 *)BF_GLOBALS._sceneManager._scene;
if ((action == CURSOR_LOOK) && (scene->_kid._position.x < 0)) {
SceneItem::display2(710, 13);
return true;
} else
return NamedObject::startAction(action, event);
}
//Stick
bool Scene710::Object5::startAction(CursorType action, Event &event) {
Scene710 *scene = (Scene710 *)BF_GLOBALS._sceneManager._scene;
switch (action) {
case CURSOR_LOOK:
if (scene->_stickThrowCount <= 2)
return NamedObject::startAction(action, event);
else {
SceneItem::display2(710, 3);
scene->_watchCrate = true;
return true;
}
case CURSOR_USE:
if ((scene->_kid._position.x < 0) && (scene->_dogLying)) {
scene->_stickThrowCount++;
if (!scene->_watchCrate) {
BF_GLOBALS._player.disableControl();
scene->_dogLying = false;
scene->_sceneMode = 7105;
scene->setAction(&scene->_sequenceManager1, scene, 7105, &BF_GLOBALS._player, &scene->_stick, &scene->_dog, NULL);
} else {
BF_GLOBALS._player.disableControl();
scene->_sceneMode = 7101;
scene->setAction(&scene->_sequenceManager1, scene, 7101, &BF_GLOBALS._player, &scene->_dog, &scene->_stick, NULL);
}
return true;
}
// fall through
default:
return NamedObject::startAction(action, event);
}
}
void Scene710::postInit(SceneObjectList *OwnerList) {
_sceneBounds.moveTo(320, 0);
loadScene(710);
// Fix for scrolling while talking to Laura, which causes the talking head portraits
// and the spoken text to also scroll right (with the text overlapping on itself).
// This is like this in the disasm, so presumably this was an intentional "hack" to address the bug.
BF_GLOBALS._sceneManager._scrollerRect.setRect(40, 0, 280, 200);
BF_GLOBALS._sound1.fadeSound(14);
_soundExt1.fadeSound(48);
SceneExt::postInit();
BF_GLOBALS._player.postInit();
BF_GLOBALS._player.hide();
BF_GLOBALS._player._moveDiff = Common::Point(4, 2);
BF_GLOBALS._player.disableControl();
if (BF_GLOBALS._dayNumber == 0)
BF_GLOBALS._dayNumber = 1;
_stripManager.addSpeaker(&_jakeSpeaker);
_stripManager.addSpeaker(&_skipSpeaker);
_stripManager.addSpeaker(&_lauraSpeaker);
_stripManager.addSpeaker(&_gameTextSpeaker);
_kid.postInit();
_kid._moveDiff = Common::Point(4, 2);
_laura.postInit();
_laura._moveDiff = Common::Point(4, 2);
_dog.postInit();
_dog._moveDiff = Common::Point(4, 2);
_stick.postInit();
_stick.setVisage(710);
_stick.setStrip(2);
_stick.animate(ANIM_MODE_2, NULL);
_stick.setPosition(Common::Point(650, 160));
_stick._moveDiff.x = 16;
_stick.setDetails(710, 4, -1, -1, 1, (SceneItem *)NULL);
_laura.setDetails(710, 2, -1, -1, 1, (SceneItem *)NULL);
_kid.setDetails(710, 6, -1, -1, 1, (SceneItem *)NULL);
_dog.setDetails(710, 0, -1, -1, 1, (SceneItem *)NULL);
_item1.setDetails(Rect(555, 68, 583, 101), 710, 7, 23, -1, 1, NULL);
_item2.setDetails(Rect(583, 46, 611, 78), 710, 7, 23, -1, 1, NULL);
_item3.setDetails(Rect(611, 24, 639, 56), 710, 7, 23, -1, 1, NULL);
_item6.setDetails(1, 710, 9, 1, -1, 1);
_item4.setDetails(2, 710, 8, 14, -1, 1);
_item5.setDetails(3, 710, 10, 16, -1, 1);
_item8.setDetails(Rect(222, 18, 249, 42), 710, 12, 18, -1, 1, NULL);
_item7.setDetails(Rect(0, 0, 640, 52), 710, 11, 17, -1, 1, NULL);
_item9.setDetails(Rect(0, 0, 640, 128), 710, 5, 15, -1, 1, NULL);
_stickThrowCount = 0;
_dogLying = _watchCrate = _throwStick = false;
_action1._state = 7100;
_timer1.set(2, NULL);
_sceneMode = 7100;
setAction(&_sequenceManager1, this, 7100, &BF_GLOBALS._player, &_laura, &_kid, &_dog, NULL);
}
void Scene710::signal() {
switch (_sceneMode) {
case 0:
BF_GLOBALS._player.enableControl();
break;
case 7100:
BF_GLOBALS._player.enableControl();
_sceneMode = 7102;
setAction(&_sequenceManager1, this, 7102, &_dog, NULL);
break;
case 7101:
// Pick up crate part
BF_GLOBALS._player.enableControl();
BF_INVENTORY.setObjectScene(INV_CRATE1, 1);
_stick.remove();
BF_GLOBALS._walkRegions.enableRegion(2);
break;
case 7102:
_stick.setPosition(Common::Point(100, 122));
_stick.animate(ANIM_MODE_NONE, NULL);
_stick._strip = 2;
if (_stickThrowCount <= 2)
_stick._frame = 2;
else {
if (_stickThrowCount == 3) {
BF_GLOBALS._player.disableControl();
_sceneMode = 0;
_stripManager.start(7108, this);
}
_stick._frame = 1;
}
_dogLying = true;
BF_GLOBALS._walkRegions.disableRegion(2);
if ((_throwStick) && (_sceneMode != 0))
BF_GLOBALS._player.enableControl();
break;
case 7103:
if (BF_GLOBALS._player._position.x > 179) {
_sceneMode = 7102;
setAction(&_sequenceManager1, this, 7102, &_dog, NULL);
} else {
_sceneMode = 7104;
setAction(&_sequenceManager3, this, 7104, &_kid, NULL);
}
break;
case 7105:
_throwStick = true;
// fall through
case 7104:
_sceneMode = 7102;
setAction(&_sequenceManager1, this, 7102, &_dog, NULL);
BF_GLOBALS._walkRegions.enableRegion(2);
break;
case 7106:
BF_GLOBALS._sound1.fadeOut2(NULL);
BF_GLOBALS._sceneManager.changeScene(270);
break;
default:
break;
}
}
void Scene710::dispatch() {
if ((_kid._position.x > 0) && (_dogLying) && (_sceneMode != 7106)) {
_dogLying = false;
_sceneMode = 7103;
setAction(&_sequenceManager1, this, 7103, &_kid, &_stick, &_dog, NULL);
}
SceneExt::dispatch();
}
void Scene710::synchronize(Serializer &s) {
SceneExt::synchronize(s);
s.syncAsSint16LE(_dogLying);
s.syncAsSint16LE(_stickThrowCount);
s.syncAsSint16LE(_watchCrate);
s.syncAsSint16LE(_throwStick);
}
} // End of namespace BlueForce
} // End of namespace TsAGE

View File

@@ -0,0 +1,105 @@
/* 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 3 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, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef TSAGE_BLUEFORCE_SCENES7_H
#define TSAGE_BLUEFORCE_SCENES7_H
#include "common/scummsys.h"
#include "tsage/blue_force/blueforce_logic.h"
#include "tsage/blue_force/blueforce_speakers.h"
#include "tsage/converse.h"
#include "tsage/events.h"
#include "tsage/core.h"
#include "tsage/scenes.h"
#include "tsage/globals.h"
#include "tsage/sound.h"
namespace TsAGE {
namespace BlueForce {
using namespace TsAGE;
class Scene710: public SceneExt {
// Actions
class Action1: public ActionExt {
public:
void signal() override;
};
// Timers
class Timer1: public Timer {
public:
void signal() override;
};
// Objects
class Object3: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Object4: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Object5: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
public:
SequenceManager _sequenceManager1;
SequenceManager _sequenceManager2;
SequenceManager _sequenceManager3;
Timer1 _timer1;
SpeakerJake _jakeSpeaker;
SpeakerLaura _lauraSpeaker;
SpeakerSkip _skipSpeaker;
SpeakerGameText _gameTextSpeaker;
Action1 _action1;
NamedObject _object1;
NamedObject _kid;
Object3 _laura;
Object4 _dog;
Object5 _stick;
ASoundExt _soundExt1;
NamedHotspot _item1;
NamedHotspot _item2;
NamedHotspot _item3;
NamedHotspot _item4;
NamedHotspot _item5;
NamedHotspot _item6;
NamedHotspot _item7;
NamedHotspot _item8;
NamedHotspot _item9;
int _stickThrowCount;
bool _dogLying;
bool _watchCrate;
bool _throwStick;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
void dispatch() override;
void synchronize(Serializer &s) override;
};
} // End of namespace BlueForce
} // End of namespace TsAGE
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,568 @@
/* 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 3 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, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef TSAGE_BLUEFORCE_SCENES8_H
#define TSAGE_BLUEFORCE_SCENES8_H
#include "common/scummsys.h"
#include "tsage/blue_force/blueforce_logic.h"
#include "tsage/blue_force/blueforce_speakers.h"
#include "tsage/converse.h"
#include "tsage/events.h"
#include "tsage/core.h"
#include "tsage/scenes.h"
#include "tsage/globals.h"
#include "tsage/sound.h"
namespace TsAGE {
namespace BlueForce {
using namespace TsAGE;
class Scene800: public SceneExt {
/* Actions */
class Action1 : public Action {
public:
void signal() override;
};
/* Items */
class Item1: public SceneHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Item2: public SceneHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Objects */
class Doorway: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Car1: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Motorcycle: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Lyle: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Car2: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
public:
Action1 _action1;
SequenceManager _sequenceManager;
SpeakerJakeJacket _jakeJacketSpeaker;
SpeakerLyleHat _lyleHatSpeaker;
SpeakerGameText _gameTextSpeaker;
Doorway _doorway;
Car1 _car1;
Motorcycle _motorcycle;
Lyle _lyle;
Car2 _car2;
NamedObject _object6;
Item1 _item1;
Item2 _item2;
SceneText _text;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
void dispatch() override;
};
class Scene810: public SceneExt {
/* Actions */
class Action1: public Action {
public:
void signal() override;
};
class Action2: public Action {
public:
void signal() override;
};
/* Items */
class Map: public SceneHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Window: public SceneHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Bookcase: public SceneHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class FaxMachine: public SceneHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class GarbageCan: public SceneHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class FileCabinets: public SceneHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class CoffeeMaker: public SceneHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Shelves: public SceneHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class MicroficheReader: public SceneHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Item10: public SceneHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Pictures: public SceneHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Item12: public SceneHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Background: public SceneHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Desk: public SceneHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Exit: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Objects */
class Lyle: public NamedObjectExt {
public:
bool startAction(CursorType action, Event &event) override;
};
class Chair: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Object3: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class FaxMachineInset: public FocusObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Object5: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Object7: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
public:
Action1 _action1;
Action2 _action2;
SequenceManager _sequenceManager1, _sequenceManager2;
SpeakerGameText _gameTextSpeaker;
SpeakerJakeJacket _jakeJacketSpeaker;
SpeakerJakeUniform _jakeUniformSpeaker;
SpeakerLyleHat _lyleHatSpeaker;
Lyle _lyle;
Chair _chair;
Object3 _object3;
FaxMachineInset _faxMachineInset;
Object5 _object5;
NamedObject _object6;
Object7 _object7;
Map _map;
Window _window;
Bookcase _bookcase;
FaxMachine _faxMachine;
GarbageCan _garbageCan;
FileCabinets _fileCabinets;
CoffeeMaker _coffeeMaker;
Shelves _shelves;
MicroficheReader _microficheReader;
Item10 _item10;
Pictures _pictures;
Item12 _item12;
Background _background;
Desk _desk;
Exit _exit;
ASoundExt _sound1;
Rect _rect1, _rect2, _rect3;
int _fieldA70, _fieldA74;
Scene810();
void synchronize(Serializer &s) override;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
void process(Event &event) override;
void dispatch() override;
};
class Scene820: public SceneExt {
/* Objects */
class PowerButton: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class ForwardButton: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class BackButton: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
public:
SequenceManager _sequenceManager;
ASoundExt _sound1;
SpeakerGameText _gameTextSpeaker;
PowerButton _powerButton;
BackButton _backButton;
ForwardButton _forwardButton;
NamedObject _object4, _object5;
NamedHotspot _item1;
int _pageNumber;
Scene820();
void synchronize(Serializer &s) override;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
};
class Scene830: public PalettedScene {
/* Items */
class SouthEastExit: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class NoteBoard: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Objects */
class Lyle: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Door: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class RentalBoat: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Object5: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
public:
SequenceManager _sequenceManager;
SpeakerGameText _gameTextSpeaker;
SpeakerJakeJacket _jakeJacketSpeaker;
SpeakerLyleHat _lyleHatSpeaker;
NamedObject _object1, _lyle, _object6;
Door _door;
RentalBoat _rentalBoat;
Object5 _object5;
SouthEastExit _seExit;
NoteBoard _noteBoard;
NamedHotspot _item2, _item4, _item5;
NamedHotspot _item6, _item7, _item8;
ASoundExt _sound1;
int _field18A4, _field18A6, _field18A8, _field18AA, _field18AC;
Scene830();
void synchronize(Serializer &s) override;
void postInit(SceneObjectList *OwnerList = NULL) override;
void remove() override;
void signal() override;
void process(Event &event) override;
void dispatch() override;
};
class Scene840: public PalettedScene {
/* Items */
class Coins: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Exit: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Objects */
class BoatKeysInset: public FocusObject {
class RentalKeys: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class WaveKeys: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
public:
RentalKeys _rentalKeys;
WaveKeys _waveKeys;
bool _usedRentalKeys,_usedWaveKeys;
void synchronize(Serializer &s) override;
void postInit(SceneObjectList *OwnerList = NULL) override;
void remove() override;
void process(Event &event) override;
bool startAction(CursorType action, Event &event) override;
};
class BoatKeys: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Carter: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
public:
SequenceManager _sequenceManager1, _sequenceManager2;
NamedObject _object1;
BoatKeysInset _boatKeysInset;
NamedObject _doors;
BoatKeys _boatKeys;
Carter _carter;
NamedObject _lyle;
Coins _coins;
NamedHotspot _item2, _item3, _item4, _item5, _item6;
NamedHotspot _item7, _item8, _item9, _item10, _item11;
NamedHotspot _item12, _item13, _item14, _item15;
NamedHotspot _item16, _item17, _item18;
Exit _exit;
SpeakerGameText _gameTextSpeaker;
SpeakerJakeJacket _jakeJacketSpeaker;
SpeakerJakeUniform _jakeUniformSpeaker;
SpeakerCarter _carterSpeaker;
int _field1ABA, _field1ABC, _field1ABE, _field1AC0;
int _field1AC2, _field1AC4, _field1AC6;
Scene840();
void synchronize(Serializer &s) override;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
void process(Event &event) override;
void dispatch() override;
};
class Scene850: public SceneExt {
/* Timers */
class Timer1: public Timer {
public:
void signal() override;
};
public:
SequenceManager _sequenceManager;
Timer1 _timer;
NamedObject _object1;
ASoundExt _sound1;
void postInit(SceneObjectList *OwnerList = NULL) override;
void remove() override;
void signal() override;
};
class Scene860: public SceneExt {
/* Actions */
class Action1: public Action {
public:
void signal() override;
};
public:
SequenceManager _sequenceManager;
NamedObject _deadBody, _object2;
NamedHotspot _item1;
Action1 _action1;
Rect _swRect, _neRect, _yachtRect;
ASoundExt _sound1;
int _field87E, _field880, _field886, _field888;
Common::Point _destPos;
Scene860();
void synchronize(Serializer &s) override;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
void process(Event &event) override;
void dispatch() override;
};
class Scene870: public SceneExt {
/* Actions */
class Action1: public Action {
public:
void signal() override;
};
/* Objects */
class Lyle: public NamedObjectExt {
public:
bool startAction(CursorType action, Event &event) override;
};
class Green: public NamedObjectExt {
public:
bool startAction(CursorType action, Event &event) override;
};
class CrateInset: public FocusObject {
class Jar: public NamedObjectExt {
public:
bool startAction(CursorType action, Event &event) override;
};
class Rags: public NamedObjectExt {
public:
bool startAction(CursorType action, Event &event) override;
};
private:
void initContents();
public:
Jar _jar;
Rags _rags;
void postInit(SceneObjectList *OwnerList = NULL) override;
void remove() override;
bool startAction(CursorType action, Event &event) override;
};
/* Items */
class Boat: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Crate: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Exit: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
public:
SequenceManager _sequenceManager;
SpeakerGameText _gameTextSpeaker;
SpeakerJakeJacket _jakeJacketSpeaker;
SpeakerLyleHat _lyleHatSpeaker;
SpeakerGreen _greenSpeaker;
Boat _boat;
Crate _crate;
Exit _exit;
NamedObject _yacht;
Lyle _lyle;
Green _green;
NamedObject _object4, _object5, _object6;
CrateInset _crateInset;
NamedHotspot _lumber, _firePit, _water, _boulders;
NamedHotspot _palmTrees, _sand, _farShore, _item11;
Action1 _action1;
int _field1662, _field1664;
Scene870();
void synchronize(Serializer &s) override;
void postInit(SceneObjectList *OwnerList = NULL) override;
void remove() override;
void signal() override;
void process(Event &event) override;
void dispatch() override;
void startStrip(int stripNumber);
};
class Scene880: public SceneExt {
/* Actions */
class Action1: public Action {
private:
static void SequenceManager_callbackProc(int v1, int v2);
public:
void signal() override;
};
/* Objects */
class Object4: public NamedObjectExt {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Items */
class NorthExit: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class SouthEastExit: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
private:
static void handleAction(Action *action);
public:
SequenceManager _sequenceManager1, _sequenceManager2, _sequenceManager3;
SpeakerGameText _gameTextSpeaker;
SpeakerJakeJacket _jakeJacketSpeaker;
SpeakerLyleHat _lyleHatSpeaker;
Action1 _action1;
NamedObject _object1, _object2, _object3;
Object4 _object4;
NamedObject _object5, _object6, _object7;
NamedHotspot _background;
NorthExit _northExit;
SouthEastExit _seExit;
int _seqNumber;
Scene880();
void synchronize(Serializer &s) override;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
void process(Event &event) override;
void dispatch() override;
};
} // End of namespace BlueForce
} // End of namespace TsAGE
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,498 @@
/* 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 3 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, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef TSAGE_BLUEFORCE_SCENES9_H
#define TSAGE_BLUEFORCE_SCENES9_H
#include "common/scummsys.h"
#include "tsage/blue_force/blueforce_logic.h"
#include "tsage/blue_force/blueforce_speakers.h"
#include "tsage/converse.h"
#include "tsage/events.h"
#include "tsage/core.h"
#include "tsage/scenes.h"
#include "tsage/globals.h"
#include "tsage/sound.h"
namespace TsAGE {
namespace BlueForce {
using namespace TsAGE;
class Scene900: public PalettedScene {
/* Items */
class Exterior: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class WestExit: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Objects */
class Gate: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Door: public NamedObjectExt {
public:
bool startAction(CursorType action, Event &event) override;
};
class Dog: public NamedObjectExt {
public:
bool startAction(CursorType action, Event &event) override;
};
class Lyle: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Body: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Actions */
class Action1 : public Action {
public:
void signal() override;
};
class Action2 : public Action {
public:
void signal() override;
};
class Action3 : public Action {
public:
void signal() override;
};
class Action4 : public Action {
public:
void signal() override;
};
public:
SequenceManager _sequenceManager1, _sequenceManager2;
SpeakerGameText _gameTextSpeaker;
SpeakerJakeJacket _jakeJacketSpeaker;
SpeakerLyleHat _lyleHatSpeaker;
Exterior _exterior;
Gate _gate;
Door _door;
Dog _dog;
NamedHotspot _item2;
NamedHotspot _item3;
NamedObject _object4;
NamedObject _object5;
Lyle _lyle;
Body _body;
WestExit _westExit;
ASoundExt _sound1;
Action1 _action1;
Action2 _action2;
Action3 _action3;
Action4 _action4;
int _lyleDialogCtr;
int _field1976;
Scene900();
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
void process(Event &event) override;
void dispatch() override;
void synchronize(Serializer &s) override;
};
class Scene910: public PalettedScene {
/* Actions */
class Action1 : public Action {
public:
void signal() override;
};
class Action2 : public Action {
public:
void signal() override;
};
/* Objects */
class Lyle: public NamedObject {
public:
int _field90;
void synchronize(Serializer &s) override;
bool startAction(CursorType action, Event &event) override;
};
class Nico: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Stuart: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Forbes: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class PowerCord: public NamedObject {
public:
int _field90, _field92;
void synchronize(Serializer &s) override;
bool startAction(CursorType action, Event &event) override;
void init(int val);
};
class BreakerBox: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class FakeWall: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Object13: public NamedObject {
protected:
int _state, _mode;
public:
void setupBreaker(int x, int y, int mode, int8 frameNumber);
void synchronize(Serializer &s) override;
bool startAction(CursorType action, Event &event) override;
void remove() override;
};
class BlackPlug: public Object13 {
public:
void init(int x, int y, int arg8, int8 mode);
bool startAction(CursorType action, Event &event) override;
void remove() override;
};
class Object25: public NamedObject {
int _field90, _field92;
public:
Object25();
void setupHiddenSwitch(int x, int y, int arg8, int argA);
void synchronize(Serializer &s) override;
bool startAction(CursorType action, Event &event) override;
void remove() override;
};
class BreakerBoxInset: public FocusObject {
Object13 _object13, _object14, _object15, _object16, _object17, _object18;
Object13 _object19, _object20, _object21, _object22, _object23, _object24;
Object25 _object25, _object26;
public:
Object13 _object27;
BlackPlug _object28;
Common::String getClassName() override { return "Scene910_object12"; }
void postInit(SceneObjectList *OwnerList = NULL) override;
void remove() override;
};
class PowerButton: public NamedObject {
public:
NamedObject _object32;
void remove() override;
bool startAction(CursorType action, Event &event) override;
void init(int frame);
};
class GeneratorInset: public FocusObject {
BlackPlug _blackPlug;
PowerButton _powerButton;
public:
Common::String getClassName() override { return "Scene910_object29"; }
void postInit(SceneObjectList *OwnerList = NULL) override;
void remove() override;
};
/* Items */
class Generator: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Item2: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Item3: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Item9: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Item15: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Item16: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Item17: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
int _sceneSubMode, _breakerButtonCtr, _field2DE0, _field2DE2, _field2DE4;
Common::Point _destPos;
public:
SequenceManager _sequenceManager1, _sequenceManager2;
SpeakerGameText _gameTextSpeaker;
SpeakerJakeJacket _jakeJacketSpeaker;
SpeakerLyleHat _lyleHatSpeaker;
SpeakerFBI _fbiSpeaker;
SpeakerNico _nicoSpeaker;
SpeakerDA _daSpeaker;
Action1 _action1;
Action2 _action2;
Timer _timer1;
Lyle _lyle;
Nico _nico;
Stuart _stuart;
Forbes _forbes;
NamedObject _object5, _vent, _shadow;
PowerCord _blackCord, _yellowCord;
BreakerBox _breakerBox;
FakeWall _fakeWall;
BreakerBoxInset _breakerBoxInset;
GeneratorInset _generatorInset;
NamedObject _object30, _object31, _object32;
Generator _generator;
Item2 _item2;
Item3 _item3;
NamedHotspot _item4, _item5, _item6, _item7, _item8;
Item9 _item9, _item10;
NamedHotspot _item11, _backWall, _item13, _item14;
Item15 _item15;
Item16 _item16;
Item17 _item17;
ASoundExt _sound1, _sound2;
void postInit(SceneObjectList *OwnerList = NULL) override;
void synchronize(Serializer &s) override;
void remove() override;
void signal() override;
void process(Event &event) override;
void dispatch() override;
void checkGun() override;
void openHiddenDoor();
void closeHiddenDoor();
};
class Scene920: public SceneExt {
/* Items */
class Item1: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
class Item8: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
public:
SequenceManager _sequenceManager1;
SpeakerGameText _gameTextSpeaker;
SpeakerJakeJacket _jakeJacketSpeaker;
Item1 _crate;
NamedHotspot _item2;
NamedHotspot _item3;
NamedHotspot _item4;
NamedHotspot _item5;
NamedHotspot _item6;
NamedHotspot _item7;
NamedObject _crateTop;
NamedObject _crateWindow;
NamedObject _doorway;
Item8 _exitN;
Common::Point _oldCoord;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
void process(Event &event) override;
void dispatch() override;
void synchronize(Serializer &s) override;
};
class Scene930: public PalettedScene {
/* Objects */
class Object1: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Object2: public FocusObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Object3: public NamedObject {
public:
bool startAction(CursorType action, Event &event) override;
};
class Object4: public FocusObject {
public:
bool startAction(CursorType action, Event &event) override;
void remove() override;
};
class Object5: public FocusObject {
public:
bool startAction(CursorType action, Event &event) override;
void remove() override;
};
/* Items */
class Item1: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Actions */
class Action1 : public Action {
public:
void signal() override;
};
class Action2 : public Action {
public:
void signal() override;
};
class Action3 : public Action {
public:
void signal() override;
};
void showBootInset();
void showBoxInset();
void showSoleInset();
public:
SequenceManager _sequenceManager1;
Object1 _box;
Object2 _boxInset;
Object3 _boots;
Object4 _bootsInset;
Object5 _soleInset;
Item1 _item1;
NamedHotspot _item2;
NamedHotspot _item3;
NamedHotspot _item4;
NamedHotspot _item5;
NamedHotspot _item6;
NamedHotspot _item7;
NamedHotspot _item8;
NamedHotspot _item9;
NamedHotspot _item10;
NamedHotspot _item11;
NamedHotspot _item12;
NamedHotspot _item13;
NamedHotspot _item14;
NamedHotspot _item15;
NamedHotspot _item16;
NamedHotspot _item17;
NamedHotspot _item18;
NamedHotspot _item19;
NamedHotspot _item20;
NamedHotspot _item21;
Action1 _action1;
Action2 _action2;
Action3 _action3;
SpeakerGameText gameTextSpeaker;
bool _soleOpened;
int _bootInsetDisplayed;
void postInit(SceneObjectList *OwnerList = NULL) override;
void signal() override;
void dispatch() override;
void synchronize(Serializer &s) override;
};
class Scene935: public PalettedScene {
/* Actions */
class Action1 : public Action {
public:
void signal() override;
};
public:
SequenceManager _sequenceManager;
NamedObject _object1;
NamedObject _object2;
NamedObject _object3;
Action1 _action1;
VisualSpeaker _visualSpeaker;
void postInit(SceneObjectList *OwnerList = NULL) override;
void remove() override;
void signal() override;
void dispatch() override;
};
class Scene940: public SceneExt {
/* Items */
class Item1: public NamedHotspot {
public:
bool startAction(CursorType action, Event &event) override;
};
/* Actions */
class Action1 : public Action {
public:
void signal() override;
};
public:
SequenceManager _sequenceManager1;
SequenceManager _sequenceManager2;
SequenceManager _sequenceManager3;
SequenceManager _sequenceManager4;
NamedObject _object1;
NamedObject _object2;
NamedObject _object3;
NamedObject _object4;
NamedObject _object5;
NamedObject _object6;
NamedObject _object7;
NamedObject _object8;
NamedObject _object9;
NamedObject _object10;
NamedObject _object11;
NamedObject _object12;
NamedObject _object13;
NamedObject _object14;
NamedObject _object15;
NamedObject _object16;
NamedObject _object17;
NamedObject _object18;
Item1 _item1;
Action1 _action1;
SpeakerGameText _gameTextSpeaker1;
SpeakerGameText _gameTextSpeaker2;
void postInit(SceneObjectList *OwnerList = NULL) override;
void remove() override;
};
} // End of namespace BlueForce
} // End of namespace TsAGE
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,358 @@
/* 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 3 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, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef TSAGE_BLUEFORCE_SPEAKERS_H
#define TSAGE_BLUEFORCE_SPEAKERS_H
#include "common/scummsys.h"
#include "tsage/converse.h"
#include "tsage/events.h"
#include "tsage/core.h"
#include "tsage/scenes.h"
#include "tsage/globals.h"
#include "tsage/blue_force/blueforce_logic.h"
namespace TsAGE {
namespace BlueForce {
using namespace TsAGE;
class VisualSpeaker: public Speaker {
public:
NamedObject _object1;
CountdownObject _object2;
bool _removeObject1, _removeObject2;
int _xp;
int _numFrames;
Common::Point _offsetPos;
public:
VisualSpeaker();
Common::String getClassName() override { return "VisualSpeaker"; }
void synchronize(Serializer &s) override;
void remove() override;
void startSpeaking(Action *action) override;
void setText(const Common::String &msg) override;
};
class SpeakerGameText: public VisualSpeaker {
public:
SpeakerGameText();
Common::String getClassName() override { return "SpeakerGameText"; }
};
class SpeakerSutter: public VisualSpeaker {
public:
SpeakerSutter();
Common::String getClassName() override { return "SpeakerSutter"; }
void setText(const Common::String &msg) override;
};
class SpeakerDoug: public VisualSpeaker {
public:
SpeakerDoug();
Common::String getClassName() override { return "SpeakerDoug"; }
};
class SpeakerJakeNoHead: public VisualSpeaker {
public:
SpeakerJakeNoHead();
Common::String getClassName() override { return "SpeakerJakeNoHead"; }
};
class SpeakerHarrison: public VisualSpeaker {
public:
SpeakerHarrison();
Common::String getClassName() override { return "SpeakerHarrison"; }
void setText(const Common::String &msg) override;
};
class SpeakerJake: public VisualSpeaker {
public:
SpeakerJake();
Common::String getClassName() override { return "SpeakerJake"; }
void setText(const Common::String &msg) override;
};
class SpeakerJakeJacket: public VisualSpeaker {
public:
SpeakerJakeJacket();
Common::String getClassName() override { return "SpeakerJakeJacket"; }
void setText(const Common::String &msg) override;
};
class SpeakerJakeUniform: public VisualSpeaker {
public:
SpeakerJakeUniform();
Common::String getClassName() override { return "SpeakerJakeUniform"; }
void setText(const Common::String &msg) override;
};
class SpeakerJailer: public VisualSpeaker {
public:
SpeakerJailer();
Common::String getClassName() override { return "SpeakerJailer"; }
void setText(const Common::String &msg) override;
};
class SpeakerGreen: public VisualSpeaker {
public:
SpeakerGreen();
Common::String getClassName() override { return "SpeakerGreen"; }
void setText(const Common::String &msg) override;
};
class SpeakerPSutter: public VisualSpeaker {
public:
SpeakerPSutter();
Common::String getClassName() override { return "SpeakerPSutter"; }
void setText(const Common::String &msg) override;
};
class SpeakerJakeRadio: public VisualSpeaker {
public:
SpeakerJakeRadio();
Common::String getClassName() override { return "SpeakerJakeRadio"; }
};
class SpeakerLyleHat: public VisualSpeaker {
public:
SpeakerLyleHat();
Common::String getClassName() override { return "SpeakerLyleHat"; }
void setText(const Common::String &msg) override;
};
class SpeakerJordan: public VisualSpeaker {
public:
SpeakerJordan();
Common::String getClassName() override { return "SpeakerJordan"; }
void setText(const Common::String &msg) override;
};
class SpeakerSkip: public VisualSpeaker {
public:
SpeakerSkip();
Common::String getClassName() override { return "SpeakerSkip"; }
void setText(const Common::String &msg) override;
};
class SpeakerSkipB: public VisualSpeaker {
public:
SpeakerSkipB();
Common::String getClassName() override { return "SpeakerSkipB"; }
void setText(const Common::String &msg) override;
};
class SpeakerCarter: public VisualSpeaker {
public:
SpeakerCarter();
Common::String getClassName() override { return "SpeakerCarter"; }
void setText(const Common::String &msg) override;
};
class SpeakerDriver: public VisualSpeaker {
public:
SpeakerDriver();
Common::String getClassName() override { return "SpeakerDriver"; }
void setText(const Common::String &msg) override;
};
class SpeakerShooter: public VisualSpeaker {
public:
SpeakerShooter();
Common::String getClassName() override { return "SpeakerShooter"; }
void setText(const Common::String &msg) override;
};
class SpeakerJim: public VisualSpeaker {
public:
SpeakerJim();
Common::String getClassName() override { return "SpeakerJim"; }
void setText(const Common::String &msg) override;
};
class SpeakerDezi: public VisualSpeaker {
public:
SpeakerDezi();
Common::String getClassName() override { return "SpeakerDezi"; }
void setText(const Common::String &msg) override;
};
class SpeakerJake385: public VisualSpeaker {
public:
SpeakerJake385();
Common::String getClassName() override { return "SpeakerJake385"; }
void setText(const Common::String &msg) override;
};
class SpeakerLaura: public VisualSpeaker {
public:
SpeakerLaura();
Common::String getClassName() override { return "SpeakerLaura"; }
void setText(const Common::String &msg) override;
};
class SpeakerLauraHeld: public VisualSpeaker {
public:
SpeakerLauraHeld();
Common::String getClassName() override { return "SpeakerLaura"; }
void setText(const Common::String &msg) override;
};
class SpeakerEugene: public VisualSpeaker {
public:
SpeakerEugene();
Common::String getClassName() override { return "SpeakerEugene"; }
void setText(const Common::String &msg) override;
};
class SpeakerWeasel: public VisualSpeaker {
public:
SpeakerWeasel();
Common::String getClassName() override { return "SpeakerWeasel"; }
void setText(const Common::String &msg) override;
};
class SpeakerBilly: public VisualSpeaker {
public:
SpeakerBilly();
Common::String getClassName() override { return "SpeakerBilly"; }
void setText(const Common::String &msg) override;
};
class SpeakerDrunk: public VisualSpeaker {
public:
SpeakerDrunk();
Common::String getClassName() override { return "SpeakerDrunk"; }
void setText(const Common::String &msg) override;
};
class SpeakerGiggles: public VisualSpeaker {
public:
SpeakerGiggles();
Common::String getClassName() override { return "SpeakerGiggles"; }
void setText(const Common::String &msg) override;
};
class SpeakerFBI: public VisualSpeaker {
public:
SpeakerFBI();
Common::String getClassName() override { return "FBI"; }
void setText(const Common::String &msg) override;
};
class SpeakerNico: public VisualSpeaker {
public:
SpeakerNico();
Common::String getClassName() override { return "NICO"; }
void setText(const Common::String &msg) override;
};
class SpeakerDA: public VisualSpeaker {
public:
SpeakerDA();
Common::String getClassName() override { return "DA"; }
void setText(const Common::String &msg) override;
};
class SpeakerGrandma: public VisualSpeaker {
public:
SpeakerGrandma();
Common::String getClassName() override { return "SpeakerGrandma"; }
void setText(const Common::String &msg) override;
};
class SpeakerLyle: public VisualSpeaker {
public:
SpeakerLyle();
Common::String getClassName() override { return "SpeakerLyle"; }
void setText(const Common::String &msg) override;
};
class SpeakerGranText: public VisualSpeaker {
public:
SpeakerGranText();
Common::String getClassName() override { return "SpeakerGranText"; }
};
class SpeakerLyleText: public VisualSpeaker {
public:
SpeakerLyleText();
Common::String getClassName() override { return "SpeakerLyleText"; }
};
class SpeakerKate: public VisualSpeaker {
public:
SpeakerKate();
Common::String getClassName() override { return "SpeakerKate"; }
void setText(const Common::String &msg) override;
};
class SpeakerTony: public VisualSpeaker {
public:
SpeakerTony();
Common::String getClassName() override { return "SpeakerTony"; }
void setText(const Common::String &msg) override;
};
} // End of namespace BlueForce
} // End of namespace TsAGE
#endif