Files
scummvm-cursorfix/engines/ultima/ultima0/views/intro.cpp
2026-02-02 04:50:13 +01:00

125 lines
5.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 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 "ultima/ultima0/views/intro.h"
namespace Ultima {
namespace Ultima0 {
namespace Views {
bool Intro::msgFocus(const FocusMessage &msg) {
_page = 0;
return true;
}
void Intro::draw() {
auto s = getSurface();
s.clear();
switch (_page) {
case 0:
s.writeString(Common::Point(5, 1), "Many, many, many years ago the");
s.writeString(Common::Point(0, 3), "Dark Lord Mondain, Archfoe of British,");
s.writeString(Common::Point(0, 5), "traversed the lands of Akalabeth,");
s.writeString(Common::Point(0, 7), "spreading evil and death as he passed.");
s.writeString(Common::Point(0, 9), "By the time Mondain was driven from the");
s.writeString(Common::Point(0, 11), "land by British, bearer of the White");
s.writeString(Common::Point(0, 13), "Light, he had done much damage unto");
s.writeString(Common::Point(0, 15), "the lands.");
s.writeString(Common::Point(0, 17), "`Tis thy duty to help rid Akalabeth of");
s.writeString(Common::Point(0, 19), "the foul beasts which infest it,");
s.writeString(Common::Point(0, 21), "while trying to stay alive!!!");
break;
case 1:
s.writeString(Common::Point(0, 0), "The Player's Stats:");
s.writeString(Common::Point(0, 2), "Hit Points- Amount of Damage a Player");
s.writeString(Common::Point(0, 4), " can absorb before Death");
s.writeString(Common::Point(0, 6), "Strength--- Related to Damage Inflicted");
s.writeString(Common::Point(0, 8), " by Player against Monsters.");
s.writeString(Common::Point(0, 10), "Dexterity-- Related to the Probability");
s.writeString(Common::Point(0, 12), " of a Player hitting a Monst.");
s.writeString(Common::Point(0, 14), "Stamina---- Related to Player Defense");
s.writeString(Common::Point(0, 16), " against Monsters");
s.writeString(Common::Point(0, 18), "Wisdom----- This Attribute is used");
s.writeString(Common::Point(0, 20), " in Special (Quest!) Routines");
s.writeString(Common::Point(0, 22), "Gold------- Money!! Cash!! Assets!!");
break;
case 2:
s.writeString(Common::Point(0, 0), "The Towns and Buying Items:");
s.writeString(Common::Point(0, 2), " To buy any items one need only");
s.writeString(Common::Point(0, 4), "type the first letter of the item");
s.writeString(Common::Point(0, 6), "wanted. The cost of the respective");
s.writeString(Common::Point(0, 8), "items is displayed while in the town.");
s.writeString(Common::Point(0, 10), "The Game is started in a town somewhere");
s.writeString(Common::Point(0, 12), "on the 20x20 map");
s.writeString(Common::Point(20, 14), "Fighters and Magi", Graphics::kTextAlignCenter);
s.writeString(Common::Point(0, 16), " The disadvantage of being a");
s.writeString(Common::Point(0, 18), "fighter is the lack of the ability to");
s.writeString(Common::Point(0, 20), "control the magic amulet, whereas magi");
s.writeString(Common::Point(0, 22), "can not use rapier and bows.");
break;
case 3:
s.writeString(Common::Point(1, 0), "Movement:");
s.writeString(Common::Point(1, 2), "-Key- Outdoors Dungeon");
s.writeString(Common::Point(1, 4), " UP Move North Move Forward");
s.writeString(Common::Point(1, 6), " LEFT Move West Turn Left");
s.writeString(Common::Point(1, 8), "RIGHT Move East Turn Right");
s.writeString(Common::Point(1, 10), " DOWN Move South Turn Around");
s.writeString(Common::Point(1, 12), " Z Statistics Statistics");
s.writeString(Common::Point(1, 14), " A N/A Attack");
s.writeString(Common::Point(1, 16), " P Pause Pause");
s.writeString(Common::Point(1, 18), " E Go Into Town Climb Ladder");
s.writeString(Common::Point(1, 20), " E Go Castle Go Hole");
s.writeString(Common::Point(1, 22), "SPACE Pass Pass");
break;
case 4:
s.writeString(Common::Point(0, 2), " Thou doest know the basics of");
s.writeString(Common::Point(0, 4), "the game, experiment with the commands.");
s.writeString(Common::Point(0, 6), "There is much left unsaid for");
s.writeString(Common::Point(0, 8), "thee to discover in the future...");
s.writeString(Common::Point(0, 10), "Go now unto the world and seek");
s.writeString(Common::Point(0, 12), "adventure where thou might!!!");
s.writeString(Common::Point(0, 14), "P.S.-Search out the Castle of");
s.writeString(Common::Point(0, 16), "Lord British, Use the -E- Key to go in!");
default:
break;
}
s.writeString(Common::Point(20, (_page == 4) ? 18 : 24), "Press any Key to Continue",
Graphics::kTextAlignCenter);
}
void Intro::nextPage() {
if (++_page < 5)
redraw();
else
replaceView("Title");
}
} // namespace Views
} // namespace Ultima0
} // namespace Ultima