mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-16 23:19:49 +00:00
d74e94950b
There ended up not being enough custom German code in the scripts to warrant having sub-classes that reimplemented entire methods
98 lines
3.5 KiB
C++
98 lines
3.5 KiB
C++
/* ScummVM - Graphic Adventure Engine
|
|
*
|
|
* ScummVM is the legal property of its developers, whose names
|
|
* are too numerous to list here. Please refer to the COPYRIGHT
|
|
* file distributed with this source distribution.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*
|
|
*/
|
|
|
|
#include "titanic/true_talk/tt_scripts.h"
|
|
#include "titanic/true_talk/title_engine.h"
|
|
#include "titanic/true_talk/barbot_script.h"
|
|
#include "titanic/true_talk/bellbot_script.h"
|
|
#include "titanic/true_talk/deskbot_script.h"
|
|
#include "titanic/true_talk/doorbot_script.h"
|
|
#include "titanic/true_talk/liftbot_script.h"
|
|
#include "titanic/true_talk/maitred_script.h"
|
|
#include "titanic/true_talk/parrot_script.h"
|
|
#include "titanic/true_talk/succubus_script.h"
|
|
#include "titanic/translation.h"
|
|
|
|
namespace Titanic {
|
|
|
|
TTnpcScript *TTnpcScriptList::findById(int charId) const {
|
|
for (TTnpcScriptList::const_iterator i = begin(); i != end(); ++i) {
|
|
const TTnpcScriptListItem *item = *i;
|
|
if (item->_npcScript->_charId == charId)
|
|
return item->_npcScript;
|
|
}
|
|
|
|
return nullptr;
|
|
}
|
|
|
|
/*------------------------------------------------------------------------*/
|
|
|
|
TTroomScript *TTroomScriptList::findById(uint scriptId) const {
|
|
for (TTroomScriptList::const_iterator i = begin(); i != end(); ++i) {
|
|
const TTroomScriptListItem *item = *i;
|
|
if (item->_item->_scriptId == scriptId)
|
|
return item->_item;
|
|
}
|
|
|
|
return nullptr;
|
|
}
|
|
|
|
/*------------------------------------------------------------------------*/
|
|
|
|
TTscripts::TTscripts() {
|
|
// Load room scripts
|
|
for (int scriptNum = 100; scriptNum < 133; ++scriptNum)
|
|
addScript(new TTroomScript(scriptNum));
|
|
|
|
// Load npc scripts
|
|
addScript(new BarbotScript(100, "Barbot", 0, "Fortillian", 9, 1, -1, -1, -1, 0), 112);
|
|
addScript(new BellbotScript(101, "Bellbot", 0, "Krage", 8, 1), 110);
|
|
addScript(new DeskbotScript(103, "DeskBot", 0, "Marsinta", 11, 2), 110);
|
|
addScript(new DoorbotScript(104, "Doorbot", 0, "Fentible", 11, 1, -1, -1, -1, 0), 100);
|
|
addScript(new LiftbotScript(105, "LiftBot", 0, "Nobby", 11, 1, -1, -1, -1, 0), 103);
|
|
addScript(new ParrotScript(107, "Parrot", 0, "The Parrot", 5, 1, -1, -1, -1, 0), 111);
|
|
addScript(new SuccUBusScript(111, "Succubus", 0, "Shorbert", 9, 1, -1, -1, -1, 0), 110);
|
|
addScript(new MaitreDScript(112, "MaitreDBot", 0, "Dastrogaaar", 8, 1), 132);
|
|
}
|
|
|
|
void TTscripts::addScript(TTnpcScript *script, int scriptId) {
|
|
// Find the room script this is associated with
|
|
TTroomScript *roomScript = getRoomScript(scriptId);
|
|
assert(roomScript);
|
|
|
|
_npcScripts.push_back(new TTnpcScriptListItem(script, roomScript));
|
|
}
|
|
|
|
void TTscripts::addScript(TTroomScript *script) {
|
|
_roomScripts.push_back(new TTroomScriptListItem(script));
|
|
}
|
|
|
|
TTroomScript *TTscripts::getRoomScript(int scriptId) const {
|
|
return _roomScripts.findById(scriptId);
|
|
}
|
|
|
|
TTnpcScript *TTscripts::getNpcScript(int charId) const {
|
|
return _npcScripts.findById(charId);
|
|
}
|
|
|
|
} // End of namespace Titanic
|