Initial commit
This commit is contained in:
545
engines/tsage/blue_force/blueforce_dialogs.cpp
Normal file
545
engines/tsage/blue_force/blueforce_dialogs.cpp
Normal 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
|
||||
102
engines/tsage/blue_force/blueforce_dialogs.h
Normal file
102
engines/tsage/blue_force/blueforce_dialogs.h
Normal 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
|
||||
1551
engines/tsage/blue_force/blueforce_logic.cpp
Normal file
1551
engines/tsage/blue_force/blueforce_logic.cpp
Normal file
File diff suppressed because it is too large
Load Diff
384
engines/tsage/blue_force/blueforce_logic.h
Normal file
384
engines/tsage/blue_force/blueforce_logic.h
Normal 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
|
||||
1191
engines/tsage/blue_force/blueforce_scenes0.cpp
Normal file
1191
engines/tsage/blue_force/blueforce_scenes0.cpp
Normal file
File diff suppressed because it is too large
Load Diff
190
engines/tsage/blue_force/blueforce_scenes0.h
Normal file
190
engines/tsage/blue_force/blueforce_scenes0.h
Normal 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
|
||||
3457
engines/tsage/blue_force/blueforce_scenes1.cpp
Normal file
3457
engines/tsage/blue_force/blueforce_scenes1.cpp
Normal file
File diff suppressed because it is too large
Load Diff
485
engines/tsage/blue_force/blueforce_scenes1.h
Normal file
485
engines/tsage/blue_force/blueforce_scenes1.h
Normal 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
|
||||
1853
engines/tsage/blue_force/blueforce_scenes2.cpp
Normal file
1853
engines/tsage/blue_force/blueforce_scenes2.cpp
Normal file
File diff suppressed because it is too large
Load Diff
294
engines/tsage/blue_force/blueforce_scenes2.h
Normal file
294
engines/tsage/blue_force/blueforce_scenes2.h
Normal 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
|
||||
6035
engines/tsage/blue_force/blueforce_scenes3.cpp
Normal file
6035
engines/tsage/blue_force/blueforce_scenes3.cpp
Normal file
File diff suppressed because it is too large
Load Diff
891
engines/tsage/blue_force/blueforce_scenes3.h
Normal file
891
engines/tsage/blue_force/blueforce_scenes3.h
Normal 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
|
||||
1700
engines/tsage/blue_force/blueforce_scenes4.cpp
Normal file
1700
engines/tsage/blue_force/blueforce_scenes4.cpp
Normal file
File diff suppressed because it is too large
Load Diff
273
engines/tsage/blue_force/blueforce_scenes4.h
Normal file
273
engines/tsage/blue_force/blueforce_scenes4.h
Normal 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
|
||||
2614
engines/tsage/blue_force/blueforce_scenes5.cpp
Normal file
2614
engines/tsage/blue_force/blueforce_scenes5.cpp
Normal file
File diff suppressed because it is too large
Load Diff
407
engines/tsage/blue_force/blueforce_scenes5.h
Normal file
407
engines/tsage/blue_force/blueforce_scenes5.h
Normal 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
|
||||
525
engines/tsage/blue_force/blueforce_scenes6.cpp
Normal file
525
engines/tsage/blue_force/blueforce_scenes6.cpp
Normal 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
|
||||
124
engines/tsage/blue_force/blueforce_scenes6.h
Normal file
124
engines/tsage/blue_force/blueforce_scenes6.h
Normal 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
|
||||
283
engines/tsage/blue_force/blueforce_scenes7.cpp
Normal file
283
engines/tsage/blue_force/blueforce_scenes7.cpp
Normal 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
|
||||
105
engines/tsage/blue_force/blueforce_scenes7.h
Normal file
105
engines/tsage/blue_force/blueforce_scenes7.h
Normal 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
|
||||
3644
engines/tsage/blue_force/blueforce_scenes8.cpp
Normal file
3644
engines/tsage/blue_force/blueforce_scenes8.cpp
Normal file
File diff suppressed because it is too large
Load Diff
568
engines/tsage/blue_force/blueforce_scenes8.h
Normal file
568
engines/tsage/blue_force/blueforce_scenes8.h
Normal 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
|
||||
3929
engines/tsage/blue_force/blueforce_scenes9.cpp
Normal file
3929
engines/tsage/blue_force/blueforce_scenes9.cpp
Normal file
File diff suppressed because it is too large
Load Diff
498
engines/tsage/blue_force/blueforce_scenes9.h
Normal file
498
engines/tsage/blue_force/blueforce_scenes9.h
Normal 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
|
||||
1022
engines/tsage/blue_force/blueforce_speakers.cpp
Normal file
1022
engines/tsage/blue_force/blueforce_speakers.cpp
Normal file
File diff suppressed because it is too large
Load Diff
358
engines/tsage/blue_force/blueforce_speakers.h
Normal file
358
engines/tsage/blue_force/blueforce_speakers.h
Normal 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
|
||||
Reference in New Issue
Block a user