[Scummvm-cvs-logs] SF.net SVN: scummvm: [29641] scummvm/trunk
cyx at users.sourceforge.net
cyx at users.sourceforge.net
Mon Nov 26 00:27:51 CET 2007
Revision: 29641
http://scummvm.svn.sourceforge.net/scummvm/?rev=29641&view=rev
Author: cyx
Date: 2007-11-25 15:27:51 -0800 (Sun, 25 Nov 2007)
Log Message:
-----------
- enabled speech sounds
- added end of demo check for demo 1.10
- simplified parts loop
- populated strings table in IGOR.TBL
- updated and packed charset data
Modified Paths:
--------------
scummvm/trunk/engines/igor/detection.cpp
scummvm/trunk/engines/igor/igor.cpp
scummvm/trunk/engines/igor/igor.h
scummvm/trunk/engines/igor/parts/part_04.cpp
scummvm/trunk/engines/igor/parts/part_05.cpp
scummvm/trunk/engines/igor/parts/part_06.cpp
scummvm/trunk/engines/igor/parts/part_12.cpp
scummvm/trunk/engines/igor/parts/part_13.cpp
scummvm/trunk/engines/igor/parts/part_14.cpp
scummvm/trunk/engines/igor/parts/part_15.cpp
scummvm/trunk/engines/igor/parts/part_16.cpp
scummvm/trunk/engines/igor/parts/part_17.cpp
scummvm/trunk/engines/igor/parts/part_18.cpp
scummvm/trunk/engines/igor/parts/part_19.cpp
scummvm/trunk/engines/igor/parts/part_21.cpp
scummvm/trunk/engines/igor/parts/part_22.cpp
scummvm/trunk/engines/igor/parts/part_23.cpp
scummvm/trunk/engines/igor/parts/part_24.cpp
scummvm/trunk/engines/igor/parts/part_25.cpp
scummvm/trunk/engines/igor/parts/part_26.cpp
scummvm/trunk/engines/igor/parts/part_27.cpp
scummvm/trunk/engines/igor/parts/part_28.cpp
scummvm/trunk/engines/igor/parts/part_30.cpp
scummvm/trunk/engines/igor/parts/part_31.cpp
scummvm/trunk/engines/igor/parts/part_33.cpp
scummvm/trunk/engines/igor/parts/part_36.cpp
scummvm/trunk/engines/igor/parts/part_37.cpp
scummvm/trunk/engines/igor/parts/part_75.cpp
scummvm/trunk/engines/igor/parts/part_85.cpp
scummvm/trunk/engines/igor/parts/part_90.cpp
scummvm/trunk/engines/igor/parts/part_95.cpp
scummvm/trunk/engines/igor/parts/part_main.cpp
scummvm/trunk/engines/igor/resource_ids.h
scummvm/trunk/engines/igor/staticres.cpp
scummvm/trunk/tools/create_igortbl/create_igortbl.c
scummvm/trunk/tools/create_igortbl/resource_sp_cdrom.h
scummvm/trunk/tools/create_igortbl/strings.h
Modified: scummvm/trunk/engines/igor/detection.cpp
===================================================================
--- scummvm/trunk/engines/igor/detection.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/detection.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -33,6 +33,7 @@
struct IgorGameDescription {
Common::ADGameDescription desc;
int gameVersion;
+ int gameFlags;
};
static const IgorGameDescription igorGameDescriptions[] = {
@@ -49,7 +50,8 @@
Common::kPlatformPC,
Common::ADGF_DEMO
},
- Igor::kIdEngDemo100
+ Igor::kIdEngDemo100,
+ Igor::kFlagDemo | Igor::kFlagFloppy
},
{
{
@@ -64,7 +66,8 @@
Common::kPlatformPC,
Common::ADGF_DEMO
},
- Igor::kIdEngDemo110
+ Igor::kIdEngDemo110,
+ Igor::kFlagDemo | Igor::kFlagFloppy
},
{
{
@@ -79,9 +82,10 @@
Common::kPlatformPC,
Common::ADGF_NO_FLAGS
},
- Igor::kIdSpaCD
+ Igor::kIdSpaCD,
+ Igor::kFlagTalkie
},
- { AD_TABLE_END_MARKER, 0 }
+ { AD_TABLE_END_MARKER, 0, 0 }
};
static const PlainGameDescriptor igorGameDescriptors[] = {
@@ -104,7 +108,7 @@
static bool Engine_IGOR_createInstance(OSystem *syst, Engine **engine, Common::EncapsulatedADGameDesc encapsulatedDesc) {
const IgorGameDescription *gd = (const IgorGameDescription *)(encapsulatedDesc.realDesc);
if (gd) {
- *engine = new Igor::IgorEngine(syst, gd->gameVersion);
+ *engine = new Igor::IgorEngine(syst, gd->gameVersion, gd->gameFlags, gd->desc.language);
}
return gd != 0;
}
Modified: scummvm/trunk/engines/igor/igor.cpp
===================================================================
--- scummvm/trunk/engines/igor/igor.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/igor.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -36,11 +36,9 @@
namespace Igor {
-IgorEngine::IgorEngine(OSystem *system, int gameVersion)
- : Engine(system), _gameVersion(gameVersion) {
+IgorEngine::IgorEngine(OSystem *system, int gameVersion, int gameFlags, Common::Language language)
+ : Engine(system), _gameVersion(gameVersion), _gameFlags(gameFlags), _gameLanguage(language) {
- _midiPlayer = new MidiPlayer(this);
-
_screenVGA = (uint8 *)malloc(320 * 200);
for (int i = 0; i < 4; ++i) {
_facingIgorFrames[i] = (uint8 *)malloc(13500);
@@ -60,13 +58,17 @@
Common::addSpecialDebugLevel(kDebugScreen, "Screen", "Screen debug level");
Common::addSpecialDebugLevel(kDebugWalk, "Walk", "Walk debug level");
Common::addSpecialDebugLevel(kDebugGame, "Game", "Game debug level");
+
+ if (gameFlags & kFlagFloppy) {
+ _midiPlayer = new MidiPlayer(this);
+ } else {
+ _midiPlayer = 0;
+ }
}
IgorEngine::~IgorEngine() {
- delete _midiPlayer;
free(_resourceEntries);
free(_soundOffsets);
- Common::clearAllSpecialDebugLevels();
free(_screenVGA);
for (int i = 0; i < 4; ++i) {
free(_facingIgorFrames[i]);
@@ -80,6 +82,10 @@
free(_inventoryPanelBuffer);
free(_inventoryImagesBuffer);
free(_verbsPanelBuffer);
+
+ Common::clearAllSpecialDebugLevels();
+
+ delete _midiPlayer;
}
int IgorEngine::init() {
@@ -98,7 +104,7 @@
memset(&_gameState, 0, sizeof(_gameState));
_nextTimer = 0;
_fastMode = false;
- _language = kLanguageEnglish;
+ _language = 0;
memset(_walkData, 0, sizeof(_walkData));
_walkCurrentPos = 0;
@@ -158,6 +164,8 @@
_soundOffsetsCount = 0;
_soundOffsets = 0;
+ _demoActionsCounter = 0;
+
_gameTicks = 0;
}
@@ -170,7 +178,7 @@
}
const char *ovlFileName = "IGOR.DAT";
const char *fsdFileName = "IGOR.FSD";
- if (_gameVersion == kIdSpaCD) {
+ if (_gameFlags & kFlagTalkie) {
ovlFileName = "IGOR.EXE";
fsdFileName = "IGOR.DAT";
}
@@ -180,7 +188,7 @@
if (!_sndFile.open(fsdFileName)) {
error("Unable to open '%s'", fsdFileName);
}
- readResourceTableFile();
+ readTableFile();
loadMainTexts();
loadIgorFrames();
_gameState.talkMode = kTalkModeTextOnly;
@@ -193,11 +201,11 @@
return 0;
}
-void IgorEngine::readResourceTableFile() {
+void IgorEngine::readTableFile() {
Common::File tblFile;
- uint32 resourcesEntriesOffset = 0, soundEntriesOffset = 0;
- if (tblFile.open("IGOR.TBL") && tblFile.readUint32BE() == MKID_BE('ITBL') && tblFile.readUint32BE() == 2) {
- tblFile.skip(4);
+ uint32 stringsEntriesOffset = 0, resourcesEntriesOffset = 0, soundEntriesOffset = 0;
+ if (tblFile.open("IGOR.TBL") && tblFile.readUint32BE() == MKID_BE('ITBL') && tblFile.readUint32BE() == 3) {
+ stringsEntriesOffset = tblFile.readUint32BE();
uint32 borlandOverlaySize = _ovlFile.size();
int gameVersionsCount = tblFile.readByte();
for (int i = 0; i < gameVersionsCount; ++i) {
@@ -225,11 +233,38 @@
for (int i = 0; i < _soundOffsetsCount; ++i) {
_soundOffsets[i] = tblFile.readUint32BE();
}
+ tblFile.seek(stringsEntriesOffset);
+ int stringsCount = tblFile.readUint16BE();
+ for (int i = 0; i < stringsCount; ++i) {
+ int id = tblFile.readUint16BE();
+ int lang = tblFile.readByte();
+ int len = tblFile.readByte();
+ bool skipString = (lang == 1 && _gameLanguage != Common::EN_ANY) || (lang == 2 && _gameLanguage != Common::ES_ESP);
+ if (skipString) {
+ tblFile.skip(len);
+ } else {
+ char buf[256];
+ tblFile.read(buf, len);
+ buf[len] = 0;
+ _stringEntries.push_back(StringEntry(id, buf));
+ }
+ }
return;
}
error("Unable to read 'IGOR.TBL'");
}
+const char *IgorEngine::getString(int id) {
+ const char *str = 0;
+ for (Common::Array<StringEntry>::const_iterator it = _stringEntries.begin(); it != _stringEntries.end(); ++it) {
+ if ((*it).id == id) {
+ str = (*it).str.c_str();
+ break;
+ }
+ }
+ return str;
+}
+
void IgorEngine::waitForTimer(int ticks) {
_system->copyRectToScreen(_screenVGA, 320, 0, _screenVGAVOffset, 320, 200 - _screenVGAVOffset);
_system->updateScreen();
@@ -283,12 +318,16 @@
return;
}
_gameTicks += kTimerTicksCount;
- if (_gameTicks == 64) { // TODO: original switches cursors more often
- _gameTicks = 0;
+ if ((_gameTicks & 31) == 0) {
setCursor(_currentCursor);
_currentCursor = (_currentCursor + 1) & 3;
}
- // TODO: updateMusic();
+ if (_gameFlags & kFlagFloppy) {
+ updateMusic();
+ }
+ if (_gameTicks == 64) {
+ _gameTicks = 0;
+ }
}
void IgorEngine::copyArea(uint8 *dst, int dstOffset, int dstPitch, const uint8 *src, int srcPitch, int w, int h, bool transparent) {
@@ -323,21 +362,21 @@
void IgorEngine::playMusic(int num) {
debugC(9, kDebugEngine, "playMusic() %d", num);
- static const int cmf[] = { 0, 0, CMF_2_1, CMF_3, CMF_4, 0, 0, CMF_7_1, CMF_8, CMF_9, CMF_10, CMF_11, CMF_12 };
- assert(num < ARRAYSIZE(cmf) && cmf[num] != 0);
- _gameState.musicNum = num;
- _gameState.musicSequenceIndex = 1;
- if (_gameVersion == kIdSpaCD) {
- // different file format
- return;
+ if (_gameFlags & kFlagFloppy) {
+ static const int cmf[] = { 0, 0, CMF_2_1, CMF_3, CMF_4, 0, 0, CMF_7_1, CMF_8, CMF_9, CMF_10, CMF_11, CMF_12 };
+ assert(num < ARRAYSIZE(cmf) && cmf[num] != 0);
+ _gameState.musicNum = num;
+ _gameState.musicSequenceIndex = 1;
+ startMusic(cmf[num]);
+ } else {
+ // TODO: play CD track
}
- startMusic(cmf[num]);
}
void IgorEngine::updateMusic() {
static const int cmf2Seq[] = { CMF_2_1, CMF_2_2, CMF_2_3, CMF_2_4 };
static const int cmf7Seq[] = { CMF_7_1, CMF_7_2, CMF_7_3, CMF_7_4 };
- if (_gameState.jumpToNextMusic) {
+ if (_gameState.jumpToNextMusic && 0) { // TODO: enable
switch (_gameState.musicNum) {
case 2:
_gameState.musicSequenceIndex = getRandomNumber(4) + 1;
@@ -367,21 +406,36 @@
}
}
-void IgorEngine::playSound(int num, int fl) {
+void IgorEngine::playSound(int num, int type) {
debugC(9, kDebugEngine, "playSound() %d", num);
- if (fl && _mixer->isSoundHandleActive(_sfxHandle)) {
+ --num;
+ int soundOffset = -1;
+ Audio::Mixer::SoundType soundType = Audio::Mixer::kPlainSoundType;
+ Audio::SoundHandle *soundHandle = 0;
+ if (type == 1) {
+ if (_mixer->isSoundHandleActive(_sfxHandle)) {
+ return;
+ }
+ assert(num >= 0 && num < _soundOffsetsCount);
+ soundOffset = _soundOffsets[num];
+ soundType = Audio::Mixer::kSFXSoundType;
+ soundHandle = &_sfxHandle;
+ } else if (type == 0 && (_gameFlags & kFlagTalkie) != 0 && num != kNoSpeechSound) {
+ if (_mixer->isSoundHandleActive(_speechHandle)) {
+ _mixer->stopHandle(_speechHandle);
+ }
+ num += 100;
+ assert(num >= 0 && num < _soundOffsetsCount);
+ soundOffset = _soundOffsets[num];
+ soundType = Audio::Mixer::kSpeechSoundType;
+ soundHandle = &_speechHandle;
+ } else {
return;
}
- if (!fl) {
-// num = 20; // "Speech not recorded"
- return;
- }
- --num;
- assert(num >= 0 && num < _soundOffsetsCount);
- _sndFile.seek(_soundOffsets[num]);
+ _sndFile.seek(soundOffset);
Audio::AudioStream *stream = Audio::makeVOCStream(_sndFile);
if (stream) {
- _mixer->playInputStream(Audio::Mixer::kSFXSoundType, &_sfxHandle, stream);
+ _mixer->playInputStream(soundType, soundHandle, stream);
}
}
@@ -398,6 +452,15 @@
memcpy(_igorPalette, PAL_IGOR_1, 48);
}
+void IgorEngine::loadIgorFrames2() {
+ loadData(FRM_IgorDirBack2, _facingIgorFrames[0]);
+ loadData(FRM_IgorDirRight2, _facingIgorFrames[1]);
+ loadData(FRM_IgorDirFront2, _facingIgorFrames[2]);
+ loadData(FRM_IgorDirLeft2, _facingIgorFrames[3]);
+ loadData(FRM_IgorHead2, _igorHeadFrames);
+ memcpy(_igorPalette, PAL_IGOR_2, 48);
+}
+
void IgorEngine::fixDialogueTextPosition(int num, int count, int *x, int *y) {
int textLineWidth = 0;
for (int i = 0; i < count; ++i) {
@@ -527,9 +590,6 @@
void IgorEngine::startIgorDialogue() {
debugC(9, kDebugEngine, "startIgorDialogue()");
-// if (_dialogueCursorOn) {
-// clearCursor();
-// }
--_dialogueTextsCount;
int talkX, talkY;
const DialogueText *dt = &_dialogueTextsTable[_dialogueTextsStart];
@@ -997,8 +1057,10 @@
}
for (int j = 0; j < 11; ++j) {
uint8 *p = dst + (j + y) * 320 + x + dx;
- for (int i = 0; i < 9; ++i) {
- uint8 code = _fontData[(chr * 11 + j) * 9 + i];
+ uint32 chrMask = _fontData[chr * 11 + j];
+ for (int i = 0; i < 9; ++i, chrMask >>= 2) {
+// uint8 code = _fontData[(chr * 11 + j) * 9 + i];
+ uint8 code = chrMask & 3;
if (code == 1) {
p[i] = color1;
} else if (code == 2 && color2 != -1) {
@@ -1393,7 +1455,7 @@
}
if (_inputVars[kInputCursorYPos] >= 156 && _inputVars[kInputCursorYPos] <= 167) {
if (_inputVars[kInputClick]) {
- int verb = _verbAreasTable[_inputVars[kInputCursorXPos]];
+ int verb = getVerbUnderCursor(_inputVars[kInputCursorXPos]);
if (verb != _currentAction.verb) {
redrawVerb(_currentAction.verb, false);
_currentAction.verb = verb;
@@ -1702,6 +1764,42 @@
}
}
+void IgorEngine::enterPartLoop() {
+ if (!_gameState.dialogueTextRunning) {
+ showCursor();
+ }
+ _gameState.igorMoving = false;
+ if (_gameVersion == kIdEngDemo110) {
+ CHECK_FOR_END_OF_DEMO();
+ }
+}
+
+void IgorEngine::leavePartLoop() {
+ hideCursor();
+ SET_EXEC_ACTION_FUNC(1, 0);
+ _updateRoomBackground = 0;
+}
+
+void IgorEngine::runPartLoop() {
+ handleRoomInput();
+ if (compareGameTick(1, 16)) {
+ handleRoomIgorWalk();
+ }
+ if (compareGameTick(19, 32)) {
+ handleRoomDialogue();
+ }
+ if (compareGameTick(4, 8)) {
+ handleRoomInventoryScroll();
+ }
+ if (compareGameTick(1)) {
+ handleRoomLight();
+ }
+ if (_updateRoomBackground) {
+ (this->*_updateRoomBackground)();
+ }
+ waitForTimer();
+}
+
int IgorEngine::lookupScale(int xOffset, int yOffset, int h) const {
int index = READ_LE_UINT16(_walkScaleTable + 0x734 + _walkWidthScaleTable[h - 1] * 2);
int offset = _walkScaleTable[0x4FC + index + xOffset];
Modified: scummvm/trunk/engines/igor/igor.h
===================================================================
--- scummvm/trunk/engines/igor/igor.h 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/igor.h 2007-11-25 23:27:51 UTC (rev 29641)
@@ -26,9 +26,10 @@
#ifndef IGOR_ENGINE_H
#define IGOR_ENGINE_H
+#include "common/array.h"
#include "common/endian.h"
#include "common/file.h"
-#include "common/rect.h"
+#include "common/str.h"
#include "common/util.h"
#include "sound/mixer.h"
@@ -57,6 +58,12 @@
};
enum {
+ kFlagDemo = 1 << 0,
+ kFlagFloppy = 1 << 1,
+ kFlagTalkie = 1 << 2
+};
+
+enum {
kStartupPart = 900,
kInvalidPart = 255,
kSharewarePart = 950,
@@ -65,7 +72,8 @@
kTickDelay = 1193180 / 4096,
kTimerTicksCount = 8,
kQuickSaveSlot = 0,
- kMaxSaveStates = 10
+ kMaxSaveStates = 10,
+ kNoSpeechSound = 999
};
enum {
@@ -122,6 +130,7 @@
struct DialogueText {
int num;
int count;
+ int sound;
};
struct ResourceEntry {
@@ -130,6 +139,14 @@
uint32 size;
};
+struct StringEntry {
+ int id;
+ Common::String str;
+
+ StringEntry() : id(0) {}
+ StringEntry(int i, const char *s) : id(i), str(s) {}
+};
+
struct RoomObjectArea {
uint8 area;
uint8 object;
@@ -284,7 +301,7 @@
typedef void (IgorEngine::*UpdateDialogueProc)(int action);
typedef void (IgorEngine::*UpdateRoomBackgroundProc)();
- IgorEngine(OSystem *system, int gameVersion);
+ IgorEngine(OSystem *system, int gameVersion, int gameFlags, Common::Language language);
virtual ~IgorEngine();
virtual int init();
@@ -304,7 +321,8 @@
bool compareGameTick(int add, int mod) const { return ((_gameTicks + (add & ~7)) % mod) == 0; } // { return ((_gameTicks + add) % mod) == 0; }
bool compareGameTick(int eq) const { return _gameTicks == (eq & ~7); } // { return _gameTicks == eq; }
int getPart() const { return _currentPart / 10; }
- void readResourceTableFile();
+ void readTableFile();
+ const char *getString(int id);
void restart();
void waitForTimer(int ticks = -1);
void copyArea(uint8 *dst, int dstOffset, int dstPitch, const uint8 *src, int srcPitch, int w, int h, bool transparent = false);
@@ -314,9 +332,10 @@
void startMusic(int cmf);
void playMusic(int num);
void updateMusic();
- void playSound(int num, int fl);
+ void playSound(int num, int type);
void stopSound();
void loadIgorFrames();
+ void loadIgorFrames2();
void fixDialogueTextPosition(int num, int count, int *x, int *y);
void startCutsceneDialogue(int x, int y, int r, int g, int b);
void waitForEndOfCutsceneDialogue(int x, int y, int r, int g, int b);
@@ -357,6 +376,7 @@
void updateRoomLight(int fl);
void drawVerbsPanel();
void redrawVerb(uint8 verb, bool highlight);
+ int getVerbUnderCursor(int x) const { return ((x % 46) < 44) ? (kVerbTalk + x / 46) : 0; }
void drawInventory(int start, int mode);
void packInventory();
void scrollInventory();
@@ -370,6 +390,9 @@
void handleRoomIgorWalk();
void handleRoomInventoryScroll();
void handleRoomLight();
+ void enterPartLoop();
+ void leavePartLoop();
+ void runPartLoop();
int lookupScale(int xOffset, int yOffset, int h) const;
void moveIgor(int pos, int frame);
void buildWalkPathSimple(int srcX, int srcY, int dstX, int dstY);
@@ -407,6 +430,7 @@
Common::File _sndFile;
Audio::SoundHandle _sfxHandle;
+ Audio::SoundHandle _speechHandle;
uint8 *_screenVGA;
uint8 *_facingIgorFrames[4];
@@ -427,6 +451,8 @@
bool _fastMode;
int _language;
int _gameVersion;
+ int _gameFlags;
+ Common::Language _gameLanguage;
WalkData _walkData[100];
uint8 _walkCurrentPos;
@@ -484,20 +510,21 @@
RoomWalkBounds _roomWalkBounds;
UpdateDialogueProc _updateDialogue;
UpdateRoomBackgroundProc _updateRoomBackground;
+ int _demoActionsCounter;
int _gameTicks;
int _resourceEntriesCount;
ResourceEntry *_resourceEntries;
int _soundOffsetsCount;
uint32 *_soundOffsets;
+ Common::Array<StringEntry> _stringEntries;
char _saveStateDescriptions[kMaxSaveStates][100];
static const uint8 _dialogueColor[];
static const uint8 _sentenceColorIndex[];
static const uint8 _fontCharIndex[];
static const uint8 _fontCharWidth[];
- static const uint8 _fontData[];
+ static const uint32 _fontData[];
static const uint8 _talkDelays[];
- static const uint8 _verbAreasTable[];
static const uint8 _inventoryOffsetTable[];
static const uint8 _inventoryActionsTable[];
static const uint8 _walkWidthScaleTable[];
@@ -512,13 +539,14 @@
//
// main loop
- void ADD_DIALOGUE_TEXT(int num, int count);
+ void ADD_DIALOGUE_TEXT(int num, int count, int sound = kNoSpeechSound);
void SET_DIALOGUE_TEXT(int start, int count);
void SET_EXEC_ACTION_FUNC(int i, ExecuteActionProc p);
void EXEC_MAIN_ACTION(int action);
void EXEC_MAIN_ACTION_38();
void EXEC_MAIN_ACTION_43();
void EXEC_MAIN_ACTION_54();
+ void CHECK_FOR_END_OF_DEMO();
void SET_PAL_208_96_1();
void SET_PAL_240_48_1();
void UPDATE_OBJECT_STATE(int num);
@@ -627,6 +655,7 @@
void PART_15_ACTION_107();
void PART_15_ACTION_115();
void PART_15_ACTION_116();
+ void PART_15_UPDATE_ROOM_BACKGROUND();
void PART_15_UPDATE_DIALOGUE_TOBIAS(int action);
void PART_15_HANDLE_DIALOGUE_TOBIAS();
void PART_15_HELPER_1(int num);
Modified: scummvm/trunk/engines/igor/parts/part_04.cpp
===================================================================
--- scummvm/trunk/engines/igor/parts/part_04.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/parts/part_04.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -29,16 +29,26 @@
void IgorEngine::PART_04_EXEC_ACTION(int action) {
debugC(9, kDebugGame, "PART_04_EXEC_ACTION %d", action);
+ if (_gameFlags & kFlagDemo) {
+ if (action == 102 || action == 103 || action == 104) {
+ ADD_DIALOGUE_TEXT(102, 2);
+ SET_DIALOGUE_TEXT(1, 1);
+ startIgorDialogue();
+ return;
+ }
+ }
switch (action) {
case 101:
_currentPart = 120;
break;
case 102:
+ _currentPart = 0;
+ break;
case 103:
+ _currentPart = 350;
+ break;
case 104:
- ADD_DIALOGUE_TEXT(102, 2);
- SET_DIALOGUE_TEXT(1, 1);
- startIgorDialogue();
+ _currentPart = 100;
break;
case 105:
if (_objectsState[111] == 0) {
@@ -90,8 +100,7 @@
_walkData[0].scaleHeight = 49;
_walkDataLastIndex = 1;
_walkDataCurrentIndex = 1;
- showCursor();
- _gameState.igorMoving = false;
+ enterPartLoop();
while (_currentPart == 40) {
handleRoomInput();
if (compareGameTick(19, 32)) {
@@ -109,7 +118,7 @@
setPaletteRange(184, 199);
waitForTimer();
}
- memcpy(_paletteBuffer, _currentPalette, 624);
+ leavePartLoop();
fadeOutPalette(624);
}
Modified: scummvm/trunk/engines/igor/parts/part_05.cpp
===================================================================
--- scummvm/trunk/engines/igor/parts/part_05.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/parts/part_05.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -123,6 +123,9 @@
} while (i != 3);
addObjectToInventory(21, 56);
_objectsState[60] = 1;
+ if (_gameVersion == kIdEngDemo110) {
+ ++_demoActionsCounter;
+ }
PART_05_HELPER_4(255);
}
@@ -256,25 +259,11 @@
if (_currentPart == 50) {
PART_05_HELPER_6();
}
- showCursor();
- _gameState.igorMoving = false;
+ enterPartLoop();
while (_currentPart >= 50 && _currentPart <= 52) {
- handleRoomInput();
- if (compareGameTick(1, 16)) {
- handleRoomIgorWalk();
- }
- if (compareGameTick(19, 32)) {
- handleRoomDialogue();
- }
- if (compareGameTick(4, 8)) {
- handleRoomInventoryScroll();
- }
- if (compareGameTick(1)) {
- handleRoomLight();
- }
- PART_05_UPDATE_ROOM_BACKGROUND();
- waitForTimer();
+ runPartLoop();
}
+ leavePartLoop();
stopSound();
if (_currentPart == 255) {
fadeOutPalette(768);
@@ -285,7 +274,6 @@
memcpy(_currentPalette, _paletteBuffer, 624);
fadeOutPalette(624);
}
- _updateRoomBackground = 0;
}
} // namespace Igor
Modified: scummvm/trunk/engines/igor/parts/part_06.cpp
===================================================================
--- scummvm/trunk/engines/igor/parts/part_06.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/parts/part_06.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -389,9 +389,8 @@
_roomDataOffsets = PART_06_ROOM_DATA_OFFSETS;
_walkDataLastIndex = 1;
_walkDataCurrentIndex = 1;
- showCursor();
- _gameState.igorMoving = false;
_gameState.unkF = (_objectsState[61] == 1);
+ enterPartLoop();
while (_currentPart >= 60 && _currentPart <= 61) {
setRoomWalkBounds(0, 0, _objectsState[61] == 0 ? 234 : 142, 143);
handleRoomInput();
@@ -413,7 +412,7 @@
}
waitForTimer();
}
- _updateRoomBackground = 0;
+ leavePartLoop();
}
} // namespace Igor
Modified: scummvm/trunk/engines/igor/parts/part_12.cpp
===================================================================
--- scummvm/trunk/engines/igor/parts/part_12.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/parts/part_12.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -522,6 +522,7 @@
_roomDataOffsets = PART_12_ROOM_DATA_OFFSETS;
setRoomWalkBounds(89, 0, 275, 143);
SET_EXEC_ACTION_FUNC(1, &IgorEngine::PART_12_EXEC_ACTION);
+ _updateRoomBackground = &IgorEngine::PART_12_UPDATE_ROOM_BACKGROUND;
PART_12_HELPER_1(255);
memcpy(_screenVGA, _screenLayer1, 46080);
if (_objectsState[44] == 0) {
@@ -555,27 +556,12 @@
}
}
PART_12_HELPER_2();
- showCursor();
- _gameState.igorMoving = false;
+ enterPartLoop();
while (_currentPart >= 120 && _currentPart <= 122) {
- handleRoomInput();
- if (compareGameTick(1, 16)) {
- handleRoomIgorWalk();
- }
- if (compareGameTick(19, 32)) {
- handleRoomDialogue();
- }
- if (compareGameTick(4, 8)) {
- handleRoomInventoryScroll();
- }
- if (compareGameTick(1)) {
- handleRoomLight();
- }
- PART_12_UPDATE_ROOM_BACKGROUND();
- waitForTimer();
+ runPartLoop();
}
PART_12_EXIT:
- hideCursor();
+ leavePartLoop();
fadeOutPalette(624);
}
Modified: scummvm/trunk/engines/igor/parts/part_13.cpp
===================================================================
--- scummvm/trunk/engines/igor/parts/part_13.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/parts/part_13.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -223,25 +223,11 @@
} else {
PART_13_HELPER_2();
}
- showCursor();
- _gameState.igorMoving = false;
+ enterPartLoop();
while (_currentPart >= 130 && _currentPart <= 131) {
- handleRoomInput();
- if (compareGameTick(1, 16)) {
- handleRoomIgorWalk();
- }
- if (compareGameTick(19, 32)) {
- handleRoomDialogue();
- }
- if (compareGameTick(4, 8)) {
- handleRoomInventoryScroll();
- }
- if (compareGameTick(1)) {
- handleRoomLight();
- }
- waitForTimer();
+ runPartLoop();
}
- hideCursor();
+ leavePartLoop();
fadeOutPalette(624);
}
Modified: scummvm/trunk/engines/igor/parts/part_14.cpp
===================================================================
--- scummvm/trunk/engines/igor/parts/part_14.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/parts/part_14.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -578,25 +578,11 @@
if (_currentPart == 142) {
PART_14_HELPER_4();
}
- showCursor();
- _gameState.igorMoving = false;
+ enterPartLoop();
while (_currentPart >= 140 && _currentPart <= 142) {
- handleRoomInput();
- if (compareGameTick(1, 16)) {
- handleRoomIgorWalk();
- }
- if (compareGameTick(19, 32)) {
- handleRoomDialogue();
- }
- if (compareGameTick(4, 8)) {
- handleRoomInventoryScroll();
- }
- if (compareGameTick(1)) {
- handleRoomLight();
- }
- waitForTimer();
+ runPartLoop();
}
- hideCursor();
+ leavePartLoop();
fadeOutPalette(624);
}
Modified: scummvm/trunk/engines/igor/parts/part_15.cpp
===================================================================
--- scummvm/trunk/engines/igor/parts/part_15.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/parts/part_15.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -317,6 +317,16 @@
_currentPart = 780;
}
+void IgorEngine::PART_15_UPDATE_ROOM_BACKGROUND() {
+ PART_15_HELPER_5();
+ if (_gameTicks == 38 || _gameTicks == 60) {
+ if (_objectsState[48] != 1 && getRandomNumber(200) == 0 && _gameState.counter[3] == 0) {
+ _gameState.counter[3] = 1;
+ }
+ }
+ PART_15_HELPER_3();
+}
+
void IgorEngine::PART_15_UPDATE_DIALOGUE_TOBIAS(int action) {
switch (action) {
case kUpdateDialogueAnimEndOfSentence:
@@ -477,7 +487,7 @@
_roomDataOffsets = PART_15_ROOM_DATA_OFFSETS;
setRoomWalkBounds(28, 0, 96, 143);
SET_EXEC_ACTION_FUNC(1, &IgorEngine::PART_15_EXEC_ACTION);
- _updateRoomBackground = 0;
+ _updateRoomBackground = &IgorEngine::PART_15_UPDATE_ROOM_BACKGROUND;
PART_15_HELPER_1(255);
memcpy(_screenVGA, _screenLayer1, 46080);
_currentAction.verb = kVerbWalk;
@@ -487,31 +497,11 @@
_gameState.counter[3] = 0;
_gameState.counter[4] = 0;
PART_15_HELPER_2();
- showCursor();
- _gameState.igorMoving = false;
+ enterPartLoop();
while (_currentPart == 150) {
- handleRoomInput();
- if (compareGameTick(1, 16)) {
- handleRoomIgorWalk();
- }
- if (compareGameTick(19, 32)) {
- handleRoomDialogue();
- }
- if (compareGameTick(4, 8)) {
- handleRoomInventoryScroll();
- }
- if (compareGameTick(1)) {
- handleRoomLight();
- }
- PART_15_HELPER_5();
- if (_gameTicks == 38 || _gameTicks == 60) {
- if (_objectsState[48] != 1 && getRandomNumber(200) == 0 && _gameState.counter[3] == 0) {
- _gameState.counter[3] = 1;
- }
- }
- PART_15_HELPER_3();
- waitForTimer();
+ runPartLoop();
}
+ leavePartLoop();
if (_objectsState[48] == 1) {
_objectsState[48] = 2;
}
Modified: scummvm/trunk/engines/igor/parts/part_16.cpp
===================================================================
--- scummvm/trunk/engines/igor/parts/part_16.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/parts/part_16.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -71,6 +71,9 @@
}
addObjectToInventory(20, 55);
_objectsState[52] = 1;
+ if (_gameVersion == kIdEngDemo110) {
+ ++_demoActionsCounter;
+ }
ADD_DIALOGUE_TEXT(204, 3);
SET_DIALOGUE_TEXT(1, 1);
startIgorDialogue();
@@ -271,25 +274,11 @@
if (_objectsState[65] == 2 && _inventoryInfo[71] != 0 && _objectsState[76] == 1) {
PART_16_HELPER_3();
}
- showCursor();
- _gameState.igorMoving = false;
+ enterPartLoop();
while (_currentPart == 160) {
- handleRoomInput();
- if (compareGameTick(1, 16)) {
- handleRoomIgorWalk();
- }
- if (compareGameTick(19, 32)) {
- handleRoomDialogue();
- }
- if (compareGameTick(4, 8)) {
- handleRoomInventoryScroll();
- }
- if (compareGameTick(1)) {
- handleRoomLight();
- }
- waitForTimer();
+ runPartLoop();
}
- hideCursor();
+ leavePartLoop();
fadeOutPalette(624);
}
Modified: scummvm/trunk/engines/igor/parts/part_17.cpp
===================================================================
--- scummvm/trunk/engines/igor/parts/part_17.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/parts/part_17.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -205,6 +205,9 @@
_objectsState[3] = 1;
PART_17_HELPER_1(255);
UPDATE_OBJECT_STATE(4);
+ if (_gameVersion == kIdEngDemo110) {
+ ++_demoActionsCounter;
+ }
--_walkDataLastIndex;
buildWalkPath(104, 87, 143, 123);
_walkDataCurrentIndex = 1;
@@ -497,34 +500,18 @@
} else if (_currentPart == 171) {
PART_17_HELPER_6();
}
- showCursor();
- _gameState.igorMoving = false;
- while (_currentPart == 170 || _currentPart == 171) {
- handleRoomInput();
- if (compareGameTick(1, 16)) {
- handleRoomIgorWalk();
- }
- if (compareGameTick(19, 32)) {
- handleRoomDialogue();
- }
- if (compareGameTick(4, 8)) {
- handleRoomInventoryScroll();
- }
- if (compareGameTick(1)) {
- handleRoomLight();
- }
- PART_17_UPDATE_ROOM_BACKGROUND();
- waitForTimer();
+ enterPartLoop();
+ while (_currentPart >= 170 && _currentPart <= 171) {
+ runPartLoop();
}
+ leavePartLoop();
if (_objectsState[55] == 1) {
_objectsState[56] = 1;
}
if (_objectsState[54] == 0) {
_objectsState[54] = 1;
}
- hideCursor();
fadeOutPalette(624);
- _updateRoomBackground = 0;
}
} // namespace Igor
Modified: scummvm/trunk/engines/igor/parts/part_18.cpp
===================================================================
--- scummvm/trunk/engines/igor/parts/part_18.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/parts/part_18.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -182,24 +182,11 @@
_currentAction.verb = kVerbWalk;
fadeInPalette(768);
PART_18_HELPER_2();
- showCursor();
- _gameState.igorMoving = false;
+ enterPartLoop();
while (_currentPart == 180) {
- handleRoomInput();
- if (compareGameTick(1, 16)) {
- handleRoomIgorWalk();
- }
- if (compareGameTick(19, 32)) {
- handleRoomDialogue();
- }
- if (compareGameTick(4, 8)) {
- handleRoomInventoryScroll();
- }
- if (compareGameTick(1)) {
- handleRoomLight();
- }
- waitForTimer();
+ runPartLoop();
}
+ leavePartLoop();
fadeOutPalette(624);
}
Modified: scummvm/trunk/engines/igor/parts/part_19.cpp
===================================================================
--- scummvm/trunk/engines/igor/parts/part_19.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/parts/part_19.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -311,24 +311,11 @@
if (_objectsState[59] == 0) {
PART_19_HELPER_4();
} else {
- showCursor();
- _gameState.igorMoving = false;
+ enterPartLoop();
while (_currentPart == 190) {
- handleRoomInput();
- if (compareGameTick(1, 16)) {
- handleRoomIgorWalk();
- }
- if (compareGameTick(19, 32)) {
- handleRoomDialogue();
- }
- if (compareGameTick(4, 8)) {
- handleRoomInventoryScroll();
- }
- if (compareGameTick(1)) {
- handleRoomLight();
- }
- waitForTimer();
+ runPartLoop();
}
+ leavePartLoop();
}
fadeOutPalette(624);
}
Modified: scummvm/trunk/engines/igor/parts/part_21.cpp
===================================================================
--- scummvm/trunk/engines/igor/parts/part_21.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/parts/part_21.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -203,6 +203,9 @@
removeObjectFromInventory(56);
_objectsState[65] = 1;
PART_21_HELPER_1(255);
+ if (_gameVersion == kIdEngDemo110) {
+ ++_demoActionsCounter;
+ }
ADD_DIALOGUE_TEXT(210, 2);
SET_DIALOGUE_TEXT(1, 1);
startIgorDialogue();
@@ -465,28 +468,13 @@
PART_21_HELPER_3();
} else if (_currentPart == 212) {
PART_21_HELPER_4();
+ }
+ enterPartLoop();
+ while (_currentPart >= 210 && _currentPart <= 212) {
+ runPartLoop();
}
- showCursor();
- _gameState.igorMoving = false;
- while (_currentPart == 210 || _currentPart == 211 || _currentPart == 212) {
- handleRoomInput();
- if (compareGameTick(1, 16)) {
- handleRoomIgorWalk();
- }
- if (compareGameTick(19, 32)) {
- handleRoomDialogue();
- }
- if (compareGameTick(4, 8)) {
- handleRoomInventoryScroll();
- }
- if (compareGameTick(1)) {
- handleRoomLight();
- }
- PART_21_UPDATE_ROOM_BACKGROUND();
- waitForTimer();
- }
+ leavePartLoop();
fadeOutPalette(624);
- _updateRoomBackground = 0;
}
} // namespace Igor
Modified: scummvm/trunk/engines/igor/parts/part_22.cpp
===================================================================
--- scummvm/trunk/engines/igor/parts/part_22.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/parts/part_22.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -162,24 +162,11 @@
_currentAction.verb = kVerbWalk;
fadeInPalette(768);
PART_22_HELPER_2();
- showCursor();
- _gameState.igorMoving = false;
+ enterPartLoop();
while (_currentPart == 220) {
- handleRoomInput();
- if (compareGameTick(1, 16)) {
- handleRoomIgorWalk();
- }
- if (compareGameTick(19, 32)) {
- handleRoomDialogue();
- }
- if (compareGameTick(4, 8)) {
- handleRoomInventoryScroll();
- }
- if (compareGameTick(1)) {
- handleRoomLight();
- }
- waitForTimer();
+ runPartLoop();
}
+ leavePartLoop();
fadeOutPalette(624);
}
Modified: scummvm/trunk/engines/igor/parts/part_23.cpp
===================================================================
--- scummvm/trunk/engines/igor/parts/part_23.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/parts/part_23.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -278,27 +278,12 @@
} else if (_currentPart == 232) {
PART_23_HELPER_4();
}
- showCursor();
- _gameState.igorMoving = false;
+ enterPartLoop();
while (_currentPart >= 230 && _currentPart <= 232) {
- handleRoomInput();
- if (compareGameTick(1, 16)) {
- handleRoomIgorWalk();
- }
- if (compareGameTick(19, 32)) {
- handleRoomDialogue();
- }
- if (compareGameTick(4, 8)) {
- handleRoomInventoryScroll();
- }
- if (compareGameTick(1)) {
- handleRoomLight();
- }
- PART_23_UPDATE_ROOM_BACKGROUND();
- waitForTimer();
+ runPartLoop();
}
+ leavePartLoop();
fadeOutPalette(624);
- _updateRoomBackground = 0;
}
} // namespace Igor
Modified: scummvm/trunk/engines/igor/parts/part_24.cpp
===================================================================
--- scummvm/trunk/engines/igor/parts/part_24.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/parts/part_24.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -314,27 +314,12 @@
} else if (_currentPart == 242) {
PART_24_HELPER_9();
}
- showCursor();
- _gameState.igorMoving = false;
+ enterPartLoop();
while (_currentPart >= 240 && _currentPart <= 242) {
- handleRoomInput();
- if (compareGameTick(1, 16)) {
- handleRoomIgorWalk();
- }
- if (compareGameTick(19, 32)) {
- handleRoomDialogue();
- }
- if (compareGameTick(4, 8)) {
- handleRoomInventoryScroll();
- }
- if (compareGameTick(1)) {
- handleRoomLight();
- }
- PART_24_UPDATE_ROOM_BACKGROUND();
- waitForTimer();
+ runPartLoop();
}
+ leavePartLoop();
fadeOutPalette(624);
- _updateRoomBackground = 0;
}
} // namespace Igor
Modified: scummvm/trunk/engines/igor/parts/part_25.cpp
===================================================================
--- scummvm/trunk/engines/igor/parts/part_25.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/parts/part_25.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -232,24 +232,11 @@
} else if (_currentPart == 252) {
PART_25_HELPER_4();
}
- showCursor();
- _gameState.igorMoving = false;
+ enterPartLoop();
while (_currentPart >= 250 && _currentPart <= 252) {
- handleRoomInput();
- if (compareGameTick(1, 16)) {
- handleRoomIgorWalk();
- }
- if (compareGameTick(19, 32)) {
- handleRoomDialogue();
- }
- if (compareGameTick(4, 8)) {
- handleRoomInventoryScroll();
- }
- if (compareGameTick(1)) {
- handleRoomLight();
- }
- waitForTimer();
+ runPartLoop();
}
+ leavePartLoop();
fadeOutPalette(624);
}
Modified: scummvm/trunk/engines/igor/parts/part_26.cpp
===================================================================
--- scummvm/trunk/engines/igor/parts/part_26.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/parts/part_26.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -271,27 +271,12 @@
} else {
PART_26_HELPER_5();
}
- showCursor();
- _gameState.igorMoving = false;
+ enterPartLoop();
while (_currentPart >= 260 && _currentPart <= 261) {
- handleRoomInput();
- if (compareGameTick(1, 16)) {
- handleRoomIgorWalk();
- }
- if (compareGameTick(19, 32)) {
- handleRoomDialogue();
- }
- if (compareGameTick(4, 8)) {
- handleRoomInventoryScroll();
- }
- if (compareGameTick(1)) {
- handleRoomLight();
- }
- PART_26_UPDATE_ROOM_BACKGROUND();
- waitForTimer();
+ runPartLoop();
}
+ leavePartLoop();
fadeOutPalette(624);
- _updateRoomBackground = 0;
}
} // namespace Igor
Modified: scummvm/trunk/engines/igor/parts/part_27.cpp
===================================================================
--- scummvm/trunk/engines/igor/parts/part_27.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/parts/part_27.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -173,6 +173,9 @@
}
addObjectToInventory(23, 58);
PART_27_HELPER_1(1);
+ if (_gameVersion == kIdEngDemo110) {
+ ++_demoActionsCounter;
+ }
}
void IgorEngine::PART_27_ACTION_110() {
@@ -193,6 +196,9 @@
removeObjectFromInventory(55);
PART_27_HELPER_1(255);
_objectsState[107] = 1;
+ if (_gameVersion == kIdEngDemo110) {
+ ++_demoActionsCounter;
+ }
}
void IgorEngine::PART_27_HELPER_1(int num) {
@@ -272,24 +278,11 @@
} else {
PART_27_HELPER_5();
}
- showCursor();
- _gameState.igorMoving = false;
+ enterPartLoop();
while (_currentPart == 270 || _currentPart == 271) {
- handleRoomInput();
- if (compareGameTick(1, 16)) {
- handleRoomIgorWalk();
- }
- if (compareGameTick(19, 32)) {
- handleRoomDialogue();
- }
- if (compareGameTick(4, 8)) {
- handleRoomInventoryScroll();
- }
- if (compareGameTick(1)) {
- handleRoomLight();
- }
- waitForTimer();
+ runPartLoop();
}
+ leavePartLoop();
fadeOutPalette(624);
}
Modified: scummvm/trunk/engines/igor/parts/part_28.cpp
===================================================================
--- scummvm/trunk/engines/igor/parts/part_28.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/parts/part_28.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -178,6 +178,9 @@
ADD_DIALOGUE_TEXT(230, 1);
SET_DIALOGUE_TEXT(1, 1);
startIgorDialogue();
+ if (_gameVersion == kIdEngDemo110) {
+ ++_demoActionsCounter;
+ }
}
void IgorEngine::PART_28_UPDATE_DIALOGUE_CAROLINE(int action) {
@@ -340,30 +343,15 @@
} else if (_currentPart == 281) {
PART_28_HELPER_6();
}
- showCursor();
- _gameState.igorMoving = false;
+ enterPartLoop();
while (_currentPart == 280 || _currentPart == 281) {
- handleRoomInput();
- if (compareGameTick(1, 16)) {
- handleRoomIgorWalk();
- }
- if (compareGameTick(19, 32)) {
- handleRoomDialogue();
- }
- if (compareGameTick(4, 8)) {
- handleRoomInventoryScroll();
- }
- if (compareGameTick(1)) {
- handleRoomLight();
- }
- PART_28_UPDATE_ROOM_BACKGROUND();
- waitForTimer();
+ runPartLoop();
}
if (_objectsState[87] == 1) {
_objectsState[87] = 2;
}
+ leavePartLoop();
fadeOutPalette(624);
- _updateRoomBackground = 0;
}
} // namespace Igor
Modified: scummvm/trunk/engines/igor/parts/part_30.cpp
===================================================================
--- scummvm/trunk/engines/igor/parts/part_30.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/parts/part_30.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -299,26 +299,11 @@
PART_30_HELPER_5();
}
}
- if (!_gameState.dialogueTextRunning) {
- showCursor();
- }
- _gameState.igorMoving = false;
+ enterPartLoop();
while (_currentPart >= 300 && _currentPart <= 303) {
- handleRoomInput();
- if (compareGameTick(1, 16)) {
- handleRoomIgorWalk();
- }
- if (compareGameTick(19, 32)) {
- handleRoomDialogue();
- }
- if (compareGameTick(4, 8)) {
- handleRoomInventoryScroll();
- }
- if (compareGameTick(1)) {
- handleRoomLight();
- }
- waitForTimer();
+ runPartLoop();
}
+ leavePartLoop();
fadeOutPalette(624);
}
Modified: scummvm/trunk/engines/igor/parts/part_31.cpp
===================================================================
--- scummvm/trunk/engines/igor/parts/part_31.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/parts/part_31.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -427,26 +427,11 @@
} else if (_currentPart == 313) {
PART_31_HELPER_6();
}
- showCursor();
- _gameState.igorMoving = false;
+ enterPartLoop();
while (_currentPart >= 310 && _currentPart <= 313) {
- handleRoomInput();
- if (compareGameTick(1, 16)) {
- handleRoomIgorWalk();
- }
- if (compareGameTick(19, 32)) {
- handleRoomDialogue();
- }
- if (compareGameTick(4, 8)) {
- handleRoomInventoryScroll();
- }
- if (compareGameTick(1)) {
- handleRoomLight();
- }
- PART_31_UPDATE_ROOM_BACKGROUND();
- waitForTimer();
+ runPartLoop();
}
- _updateRoomBackground = 0;
+ leavePartLoop();
fadeOutPalette(624);
}
Modified: scummvm/trunk/engines/igor/parts/part_33.cpp
===================================================================
--- scummvm/trunk/engines/igor/parts/part_33.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/parts/part_33.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -265,6 +265,9 @@
}
removeObjectFromInventory(67);
PART_33_HELPER_1(255);
+ if (_gameVersion == kIdEngDemo110) {
+ ++_demoActionsCounter;
+ }
ADD_DIALOGUE_TEXT(217, 2);
SET_DIALOGUE_TEXT(1, 1);
_updateDialogue = &IgorEngine::PART_33_UPDATE_DIALOGUE_HARRISON_2;
@@ -481,25 +484,11 @@
_currentAction.verb = kVerbWalk;
fadeInPalette(768);
PART_33_HELPER_7();
- showCursor();
- _gameState.igorMoving = false;
+ enterPartLoop();
while (_currentPart == 330) {
- handleRoomInput();
- if (compareGameTick(1, 16)) {
- handleRoomIgorWalk();
- }
- if (compareGameTick(19, 32)) {
- handleRoomDialogue();
- }
- if (compareGameTick(4, 8)) {
- handleRoomInventoryScroll();
- }
- if (compareGameTick(1)) {
- handleRoomLight();
- }
- PART_33_UPDATE_ROOM_BACKGROUND();
- waitForTimer();
+ runPartLoop();
}
+ leavePartLoop();
if (_objectsState[75] == 1) {
_objectsState[75] = 2;
}
Modified: scummvm/trunk/engines/igor/parts/part_36.cpp
===================================================================
--- scummvm/trunk/engines/igor/parts/part_36.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/parts/part_36.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -105,6 +105,9 @@
addObjectToInventory(30, 65);
_objectsState[88] = 1;
PART_36_HELPER_1(255);
+ if (_gameVersion == kIdEngDemo110) {
+ ++_demoActionsCounter;
+ }
}
void IgorEngine::PART_36_HELPER_1(int num) {
@@ -153,24 +156,11 @@
_currentAction.verb = kVerbWalk;
fadeInPalette(768);
PART_36_HELPER_2();
- showCursor();
- _gameState.igorMoving = false;
+ enterPartLoop();
while (_currentPart == 360) {
- handleRoomInput();
- if (compareGameTick(1, 16)) {
- handleRoomIgorWalk();
- }
- if (compareGameTick(19, 32)) {
- handleRoomDialogue();
- }
- if (compareGameTick(4, 8)) {
- handleRoomInventoryScroll();
- }
- if (compareGameTick(1)) {
- handleRoomLight();
- }
- waitForTimer();
+ runPartLoop();
}
+ leavePartLoop();
fadeOutPalette(624);
}
Modified: scummvm/trunk/engines/igor/parts/part_37.cpp
===================================================================
--- scummvm/trunk/engines/igor/parts/part_37.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/parts/part_37.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -82,6 +82,9 @@
addObjectToInventory(32, 67);
_objectsState[89] = 1;
PART_37_HELPER_1(255);
+ if (_gameVersion == kIdEngDemo110) {
+ ++_demoActionsCounter;
+ }
}
void IgorEngine::PART_37_HELPER_1(int num) {
@@ -115,24 +118,11 @@
_currentAction.verb = kVerbWalk;
fadeInPalette(768);
PART_37_HELPER_2();
- showCursor();
- _gameState.igorMoving = false;
+ enterPartLoop();
while (_currentPart == 370) {
- handleRoomInput();
- if (compareGameTick(1, 16)) {
- handleRoomIgorWalk();
- }
- if (compareGameTick(19, 32)) {
- handleRoomDialogue();
- }
- if (compareGameTick(4, 8)) {
- handleRoomInventoryScroll();
- }
- if (compareGameTick(1)) {
- handleRoomLight();
- }
- waitForTimer();
+ runPartLoop();
}
+ leavePartLoop();
fadeOutPalette(624);
}
Modified: scummvm/trunk/engines/igor/parts/part_75.cpp
===================================================================
--- scummvm/trunk/engines/igor/parts/part_75.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/parts/part_75.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -65,9 +65,9 @@
memset(_currentPalette, 0, 768);
fadeInPalette(768);
_gameState.igorMoving = false;
- ADD_DIALOGUE_TEXT(201, 1);
- ADD_DIALOGUE_TEXT(202, 2);
- ADD_DIALOGUE_TEXT(204, 1);
+ ADD_DIALOGUE_TEXT(201, 1, 1156);
+ ADD_DIALOGUE_TEXT(202, 2, 1157);
+ ADD_DIALOGUE_TEXT(204, 1, 1158);
SET_DIALOGUE_TEXT(1, 3);
startCutsceneDialogue(187, 82, 63, 63, 0);
waitForEndOfCutsceneDialogue(187, 82, 63, 63, 0);
@@ -75,8 +75,8 @@
PART_75_HELPER_1(PART_75_ANIM_DATA_1[i]);
waitForTimer(30);
}
- ADD_DIALOGUE_TEXT(205, 1);
- ADD_DIALOGUE_TEXT(206, 1);
+ ADD_DIALOGUE_TEXT(205, 1, 1159);
+ ADD_DIALOGUE_TEXT(206, 1, 1160);
SET_DIALOGUE_TEXT(1, 2);
startCutsceneDialogue(187, 82, 63, 63, 0);
waitForEndOfCutsceneDialogue(187, 82, 63, 63, 0);
Modified: scummvm/trunk/engines/igor/parts/part_85.cpp
===================================================================
--- scummvm/trunk/engines/igor/parts/part_85.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/parts/part_85.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -124,30 +124,30 @@
if (_inputVars[kInputEscape]) goto PART_85_EXIT;
PART_85_HELPER_1(0, 0x7481, 2, 7, 32);
if (_inputVars[kInputEscape]) goto PART_85_EXIT;
- ADD_DIALOGUE_TEXT(201, 3);
- ADD_DIALOGUE_TEXT(204, 1);
+ ADD_DIALOGUE_TEXT(201, 3, 545);
+ ADD_DIALOGUE_TEXT(204, 1, 546);
SET_DIALOGUE_TEXT(1, 2);
startCutsceneDialogue(89, 56, 63, 63, 0);
VAR_CURRENT_TALKING_ACTOR = 0;
waitForEndOfCutsceneDialogue(89, 56, 63, 63, 0);
if (_inputVars[kInputEscape]) goto PART_85_EXIT;
- ADD_DIALOGUE_TEXT(205, 3);
+ ADD_DIALOGUE_TEXT(205, 3, 547);
SET_DIALOGUE_TEXT(1, 1);
startCutsceneDialogue(113, 59, 63, 0, 38);
VAR_CURRENT_TALKING_ACTOR = 1;
waitForEndOfCutsceneDialogue(113, 59, 63, 0, 38);
if (_inputVars[kInputEscape]) goto PART_85_EXIT;
- ADD_DIALOGUE_TEXT(208, 1);
+ ADD_DIALOGUE_TEXT(208, 1, 548);
SET_DIALOGUE_TEXT(1, 1);
startCutsceneDialogue(89, 56, 63, 63, 0);
VAR_CURRENT_TALKING_ACTOR = 0;
waitForEndOfCutsceneDialogue(89, 56, 63, 63, 0);
if (_inputVars[kInputEscape]) goto PART_85_EXIT;
- ADD_DIALOGUE_TEXT(209, 2);
- ADD_DIALOGUE_TEXT(211, 1);
- ADD_DIALOGUE_TEXT(212, 1);
- ADD_DIALOGUE_TEXT(213, 1);
- ADD_DIALOGUE_TEXT(214, 1);
+ ADD_DIALOGUE_TEXT(209, 2, 549);
+ ADD_DIALOGUE_TEXT(211, 1, 550);
+ ADD_DIALOGUE_TEXT(212, 1, 551);
+ ADD_DIALOGUE_TEXT(213, 1, 552);
+ ADD_DIALOGUE_TEXT(214, 1, 553);
SET_DIALOGUE_TEXT(1, 5);
startCutsceneDialogue(113, 59, 63, 0, 38);
VAR_CURRENT_TALKING_ACTOR = 1;
@@ -155,16 +155,16 @@
if (_inputVars[kInputEscape]) goto PART_85_EXIT;
PART_85_HELPER_1(0, 0x7481, 2, 7, 32);
if (_inputVars[kInputEscape]) goto PART_85_EXIT;
- ADD_DIALOGUE_TEXT(215, 1);
- ADD_DIALOGUE_TEXT(216, 2);
- ADD_DIALOGUE_TEXT(218, 1);
+ ADD_DIALOGUE_TEXT(215, 1, 554);
+ ADD_DIALOGUE_TEXT(216, 2, 555);
+ ADD_DIALOGUE_TEXT(218, 1, 556);
SET_DIALOGUE_TEXT(1, 3);
startCutsceneDialogue(89, 56, 63, 63, 0);
VAR_CURRENT_TALKING_ACTOR = 0;
waitForEndOfCutsceneDialogue(89, 56, 63, 63, 0);
if (_inputVars[kInputEscape]) goto PART_85_EXIT;
- ADD_DIALOGUE_TEXT(219, 2);
- ADD_DIALOGUE_TEXT(221, 2);
+ ADD_DIALOGUE_TEXT(219, 2, 557);
+ ADD_DIALOGUE_TEXT(221, 2, 558);
SET_DIALOGUE_TEXT(1, 2);
startCutsceneDialogue(113, 59, 63, 0, 38);
VAR_CURRENT_TALKING_ACTOR = 1;
@@ -191,7 +191,7 @@
_walkData[0].scaleWidth = 50;
_walkDataLastIndex = 1;
_walkCurrentPos = 4;
- ADD_DIALOGUE_TEXT(223, 2);
+ ADD_DIALOGUE_TEXT(223, 2, 559);
SET_DIALOGUE_TEXT(1, 1);
startIgorDialogue();
waitForEndOfIgorDialogue();
@@ -201,8 +201,8 @@
_walkData[0].x = 250;
_walkData[0].y = 119;
_walkCurrentPos = 3;
- ADD_DIALOGUE_TEXT(225, 2);
- ADD_DIALOGUE_TEXT(227, 3);
+ ADD_DIALOGUE_TEXT(225, 2, 560);
+ ADD_DIALOGUE_TEXT(227, 3, 561);
SET_DIALOGUE_TEXT(1, 2);
startIgorDialogue();
waitForEndOfIgorDialogue();
Modified: scummvm/trunk/engines/igor/parts/part_90.cpp
===================================================================
--- scummvm/trunk/engines/igor/parts/part_90.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/parts/part_90.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -27,10 +27,6 @@
namespace Igor {
-static const char *STR_COPYRIGHT_1995 = "(C) 1995 Optik Software. All rights reserved.";
-
-static const char *STR_COPYRIGHT_1994 = "(C) 1994 PENDULO STUDIOS. All rights reserved.";
-
void IgorEngine::PART_90() {
memset(_currentPalette, 0, 768);
setPaletteRange(0, 255);
@@ -54,7 +50,7 @@
case 904:
loadData(PAL_TitleScreen, _paletteBuffer);
loadData(IMG_TitleScreen, _screenVGA);
- drawString(_screenVGA, (_gameVersion == kIdEngDemo110) ? STR_COPYRIGHT_1994 : STR_COPYRIGHT_1995, 2, 187, 0xF5, 0, 0);
+ drawString(_screenVGA, (_gameVersion == kIdEngDemo110) ? getString(STR_COPYRIGHT_1994) : getString(STR_COPYRIGHT_1995), 2, 187, 0xF5, 0, 0);
break;
}
fadeInPalette(768);
Modified: scummvm/trunk/engines/igor/parts/part_95.cpp
===================================================================
--- scummvm/trunk/engines/igor/parts/part_95.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/parts/part_95.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -30,73 +30,74 @@
struct SharewareScreenString {
uint8 color;
int y;
- const char *str;
+ int strId;
};
static const SharewareScreenString STR_SHAREWARE[] = {
// 950
- { 255, 30, "\"Igor. Objective Uikokahonia\"" },
- { 228, 70, "This is SHAREWARE!" },
- { 228, 81, "You can copy this version!" },
- { 228, 96, "Pass it around, give it to your friends, family," },
- { 228, 107, "colleagues and upload it to your favorite BBS." },
- { 228, 122, "Let everyone enjoy IGOR!" },
- { 228, 161, "To place an order: 1-800-OPTIK-99" },
+ { 255, 30, STR_IGOR_OBJECTIVE_UIKOKAHONIA },
+ { 228, 70, STR_SHAREWARE_TEXT1 },
+ { 228, 81, STR_SHAREWARE_TEXT2 },
+ { 228, 96, STR_SHAREWARE_TEXT3 },
+ { 228, 107, STR_SHAREWARE_TEXT4 },
+ { 228, 122, STR_SHAREWARE_TEXT5 },
+ { 228, 161, STR_SHAREWARE_PLACE_ORDER },
// 951
- { 255, 30, "\"Igor. Objective Uikokahonia\"" },
- { 228, 42, "Shareware version" },
- { 228, 85, "Order the full IGOR game for only $34.99 US." },
- { 228, 96, "$5.00 for shipping and handling (US & CANADA)." },
- { 228, 107, "Please add $3.00 for international shipping." },
- { 228, 161, "To place an order: 1-800-OPTIK-99" },
+ { 255, 30, STR_IGOR_OBJECTIVE_UIKOKAHONIA },
+ { 228, 42, STR_SHAREWARE_VERSION },
+ { 228, 85, STR_SHAREWARE_ORDER_1 },
+ { 228, 96, STR_SHAREWARE_ORDER_2 },
+ { 228, 107, STR_SHAREWARE_ORDER_3 },
+ { 228, 161, STR_SHAREWARE_ORDER_4 },
// 952
- { 255, 30, "\"Igor. Objective Uikokahonia\"" },
- { 228, 42, "Shareware version" },
- { 228, 70, "90 day limited warranty." },
- { 228, 85, "Please allow 2-4 days for delivery (US only)." },
- { 228, 96, "Elsewhere, up to a week or two..." },
- { 228, 111, "Overnight/second day shipping available an" },
- { 228, 122, "aditional change. Please call for exact pricing." },
- { 228, 161, "To place an order: 1-800-OPTIK-99" },
+ { 255, 30, STR_IGOR_OBJECTIVE_UIKOKAHONIA },
+ { 228, 42, STR_SHAREWARE_VERSION },
+ { 228, 70, STR_SHAREWARE_SHIPPING_1 },
+ { 228, 85, STR_SHAREWARE_SHIPPING_2 },
+ { 228, 96, STR_SHAREWARE_SHIPPING_3 },
+ { 228, 111, STR_SHAREWARE_SHIPPING_4 },
+ { 228, 122, STR_SHAREWARE_SHIPPING_5 },
+ { 228, 161, STR_SHAREWARE_PLACE_ORDER },
// 953
- { 255, 30, "\"Igor. Objective Uikokahonia\"" },
- { 228, 42, "Shareware version" },
- { 228, 70, "Three easy ways to order:" },
- { 228, 85, "- Call 1-800-678-4599 (orders only) and use" },
- { 228, 96, "Your Visa, Mastercard or Discover card." },
- { 228, 110, "- Fax your order (please include credit card" },
- { 228, 121, "information) to (412) 381-1031" },
- { 228, 161, "To place an order: 1-800-OPTIK-99" },
+ { 255, 30, STR_IGOR_OBJECTIVE_UIKOKAHONIA },
+ { 228, 42, STR_SHAREWARE_VERSION },
+ { 228, 70, STR_SHAREWARE_SHIPPING_6 },
+ { 228, 85, STR_SHAREWARE_SHIPPING_7 },
+ { 228, 96, STR_SHAREWARE_SHIPPING_8 },
+ { 228, 110, STR_SHAREWARE_SHIPPING_9 },
+ { 228, 121, STR_SHAREWARE_SHIPPING_10 },
+ { 228, 161, STR_SHAREWARE_PLACE_ORDER },
// 954
- { 255, 30, "\"Igor. Objective Uikokahonia\"" },
- { 228, 42, "Shareware version" },
- { 228, 74, "- Mail a check or money order to:" },
- { 228, 85, "Optik Software Inc." },
- { 228, 96, "1000 Napor Boulevard" },
- { 228, 107, "Pittsburgh, PA. 15205" },
- { 228, 118, "USA" },
- { 228, 161, "To place an order: 1-800-OPTIK-99" },
+ { 255, 30, STR_IGOR_OBJECTIVE_UIKOKAHONIA },
+ { 228, 42, STR_SHAREWARE_VERSION },
+ { 228, 74, STR_SHAREWARE_OPTIK_ADDRESS_1 },
+ { 228, 85, STR_SHAREWARE_OPTIK_ADDRESS_2 },
+ { 228, 96, STR_SHAREWARE_OPTIK_ADDRESS_3 },
+ { 228, 107, STR_SHAREWARE_OPTIK_ADDRESS_4 },
+ { 228, 118, STR_SHAREWARE_OPTIK_ADDRESS_5 },
+ { 228, 161, STR_SHAREWARE_PLACE_ORDER },
// 955
- { 255, 30, "\"Igor. Objective Uikokahonia\"" },
- { 240, 42, "Shareware version" },
- { 240, 79, "Optik Software Inc." },
- { 240, 90, "Orders only: 1-800-OPTIK-99 (67845-99)" },
- { 240, 101, "Fax: (412) 381-1031" },
- { 240, 112, "E-mail: optiksoft\xFA""aol.com" },
- { 240, 161, "To place an order: 1-800-OPTIK-99" },
+ { 255, 30, STR_IGOR_OBJECTIVE_UIKOKAHONIA },
+ { 240, 42, STR_SHAREWARE_VERSION },
+ { 240, 79, STR_SHAREWARE_OPTIK_ADDRESS_6 },
+ { 240, 90, STR_SHAREWARE_OPTIK_ADDRESS_7 },
+ { 240, 101, STR_SHAREWARE_OPTIK_ADDRESS_8 },
+ { 240, 112, STR_SHAREWARE_OPTIK_ADDRESS_9 },
+ { 240, 161, STR_SHAREWARE_PLACE_ORDER },
// 956
- { 255, 30, "\"Igor. Objective Uikokahonia\"" },
- { 228, 42, "Shareware version" },
- { 228, 64, "A game by" },
- { 228, 80, "PENDULO STUDIOS" },
- { 228, 91, "P.O. Box 21091" },
- { 228, 102, "28009 Madrid" },
- { 228, 113, "Spain" },
- { 228, 128, "E-mail: 100641.1737\xFA""compuserve.com" },
- { 228, 161, "To place an order: 1-800-OPTIK-99" }
+ { 255, 30, STR_IGOR_OBJECTIVE_UIKOKAHONIA },
+ { 228, 42, STR_SHAREWARE_VERSION },
+ { 228, 64, STR_SHAREWARE_PENDULO_ADDRESS_1 },
+ { 228, 80, STR_SHAREWARE_PENDULO_ADDRESS_2 },
+ { 228, 91, STR_SHAREWARE_PENDULO_ADDRESS_3 },
+ { 228, 102, STR_SHAREWARE_PENDULO_ADDRESS_4 },
+ { 228, 113, STR_SHAREWARE_PENDULO_ADDRESS_5 },
+ { 228, 128, STR_SHAREWARE_PENDULO_ADDRESS_6 },
+ { 228, 161, STR_SHAREWARE_PLACE_ORDER }
};
void IgorEngine::PART_95() {
+ hideCursor();
memset(_currentPalette, 0, 768);
setPaletteRange(0, 255);
memset(_screenVGA, 0, 64000);
@@ -159,9 +160,12 @@
}
break;
}
- for (int i = startStr; i <= endStr; ++i) {
- const SharewareScreenString *s = &STR_SHAREWARE[i];
- drawString(_screenVGA, s->str, (320 - getStringWidth(s->str)) / 2, s->y, s->color, 0, 0);
+ if (startStr != -1) {
+ for (int i = startStr; i <= endStr; ++i) {
+ const SharewareScreenString *s = &STR_SHAREWARE[i];
+ const char *str = getString(s->strId);
+ drawString(_screenVGA, str, (320 - getStringWidth(str)) / 2, s->y, s->color, 0, 0);
+ }
}
fadeInPalette(768);
for (int i = 0; !_inputVars[kInputEscape] && i < 3000; ++i) {
Modified: scummvm/trunk/engines/igor/parts/part_main.cpp
===================================================================
--- scummvm/trunk/engines/igor/parts/part_main.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/parts/part_main.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -29,11 +29,12 @@
namespace Igor {
-void IgorEngine::ADD_DIALOGUE_TEXT(int num, int count) {
+void IgorEngine::ADD_DIALOGUE_TEXT(int num, int count, int sound) {
assert(_dialogueTextsCount < MAX_DIALOGUE_TEXTS);
DialogueText *dt = &_dialogueTextsTable[_dialogueTextsCount];
dt->num = num;
dt->count = count;
+ dt->sound = sound;
++_dialogueTextsCount;
}
@@ -461,7 +462,6 @@
loadData(IMG_NewsPaper, _screenVGA);
loadData(PAL_NewsPaper, _paletteBuffer);
fadeInPalette(624);
-// mov _dialogueColor+3, 0
WalkData *wd = &_walkData[_walkDataLastIndex - 1];
int _walkDataCurrentPosX2 = wd->x;
int _walkDataCurrentPosY2 = wd->y;
@@ -494,7 +494,6 @@
}
fadeInPalette(624);
_objectsState[2] = 1;
-// mov _dialogueColor+3, 63
}
void IgorEngine::EXEC_MAIN_ACTION_43() {
@@ -508,7 +507,6 @@
loadData(IMG_PhotoHarrisonMargaret, _screenVGA);
loadData(PAL_PhotoHarrisonMargaret, _paletteBuffer);
fadeInPalette(624);
-// mov _dialogueColor+3, 0
WalkData *wd = &_walkData[_walkDataLastIndex - 1];
int _walkDataCurrentPosX2 = wd->x;
int _walkDataCurrentPosY2 = wd->y;
@@ -531,7 +529,6 @@
free(tmp);
}
fadeInPalette(624);
-// mov _dialogueColor+3, 63
}
void IgorEngine::EXEC_MAIN_ACTION_54() {
@@ -573,6 +570,15 @@
fadeInPalette(624);
}
+void IgorEngine::CHECK_FOR_END_OF_DEMO() {
+ if (_demoActionsCounter >= 10) {
+ ADD_DIALOGUE_TEXT(104, 2);
+ ADD_DIALOGUE_TEXT(106, 2);
+ SET_DIALOGUE_TEXT(1, 2);
+ startIgorDialogue();
+ }
+}
+
void IgorEngine::SET_PAL_208_96_1() {
memcpy(_paletteBuffer + 208 * 3, PAL_96_1, 96);
}
@@ -966,7 +972,7 @@
_gameState.nextMusicCounter = 0;
}
} while (_currentPart != kInvalidPart && !_eventQuitGame);
- if (_gameVersion == kIdEngDemo100 || _gameVersion == kIdEngDemo110) {
+ if (_gameFlags & kFlagDemo) {
for (_currentPart = kSharewarePart; !_eventQuitGame && _currentPart <= kSharewarePart + 6; ++_currentPart) {
PART_95();
}
Modified: scummvm/trunk/engines/igor/resource_ids.h
===================================================================
--- scummvm/trunk/engines/igor/resource_ids.h 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/resource_ids.h 2007-11-25 23:27:51 UTC (rev 29641)
@@ -331,3 +331,57 @@
#define PAL_PhotoHarrisonMargaret 331
#define IMG_InventoryPanel 332
#define IMG_Objects 333
+#define DAT_Physicsclassroom 334
+#define FRM_IgorDirBack2 335
+#define FRM_IgorDirRight2 336
+#define FRM_IgorDirFront2 337
+#define FRM_IgorDirLeft2 338
+#define FRM_IgorHead2 339
+#define STR_COPYRIGHT_1995 340
+#define STR_COPYRIGHT_1994 341
+#define STR_BOTTLE_OF_WHISKY 342
+#define STR_EMPTY_BOTTLE 343
+#define STR_BOTTLE_OF_WATER 344
+#define STR_LIZARD 345
+#define STR_FAT_LIZARD 346
+#define STR_CAROLINE_FOLDER 347
+#define STR_PHILIP_FOLDER 348
+#define STR_STATUETTE 349
+#define STR_REWARD 350
+#define STR_IGOR_OBJECTIVE_UIKOKAHONIA 351
+#define STR_SHAREWARE_VERSION 352
+#define STR_SHAREWARE_PLACE_ORDER 353
+#define STR_SHAREWARE_TEXT1 354
+#define STR_SHAREWARE_TEXT2 355
+#define STR_SHAREWARE_TEXT3 356
+#define STR_SHAREWARE_TEXT4 357
+#define STR_SHAREWARE_TEXT5 358
+#define STR_SHAREWARE_ORDER_1 359
+#define STR_SHAREWARE_ORDER_2 360
+#define STR_SHAREWARE_ORDER_3 361
+#define STR_SHAREWARE_ORDER_4 362
+#define STR_SHAREWARE_SHIPPING_1 363
+#define STR_SHAREWARE_SHIPPING_2 364
+#define STR_SHAREWARE_SHIPPING_3 365
+#define STR_SHAREWARE_SHIPPING_4 366
+#define STR_SHAREWARE_SHIPPING_5 367
+#define STR_SHAREWARE_SHIPPING_6 368
+#define STR_SHAREWARE_SHIPPING_7 369
+#define STR_SHAREWARE_SHIPPING_8 370
+#define STR_SHAREWARE_SHIPPING_9 371
+#define STR_SHAREWARE_SHIPPING_10 372
+#define STR_SHAREWARE_OPTIK_ADDRESS_1 373
+#define STR_SHAREWARE_OPTIK_ADDRESS_2 374
+#define STR_SHAREWARE_OPTIK_ADDRESS_3 375
+#define STR_SHAREWARE_OPTIK_ADDRESS_4 376
+#define STR_SHAREWARE_OPTIK_ADDRESS_5 377
+#define STR_SHAREWARE_OPTIK_ADDRESS_6 378
+#define STR_SHAREWARE_OPTIK_ADDRESS_7 379
+#define STR_SHAREWARE_OPTIK_ADDRESS_8 380
+#define STR_SHAREWARE_OPTIK_ADDRESS_9 381
+#define STR_SHAREWARE_PENDULO_ADDRESS_1 382
+#define STR_SHAREWARE_PENDULO_ADDRESS_2 383
+#define STR_SHAREWARE_PENDULO_ADDRESS_3 384
+#define STR_SHAREWARE_PENDULO_ADDRESS_4 385
+#define STR_SHAREWARE_PENDULO_ADDRESS_5 386
+#define STR_SHAREWARE_PENDULO_ADDRESS_6 387
Modified: scummvm/trunk/engines/igor/staticres.cpp
===================================================================
--- scummvm/trunk/engines/igor/staticres.cpp 2007-11-25 23:26:50 UTC (rev 29640)
+++ scummvm/trunk/engines/igor/staticres.cpp 2007-11-25 23:27:51 UTC (rev 29641)
@@ -56,620 +56,120 @@
0x06, 0x06, 0x05, 0x06, 0x07, 0x05, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
0x06, 0x08, 0x08, 0x06, 0x07, 0x06, 0x06, 0x05, 0x06, 0x06, 0x08, 0x07, 0x07, 0x07, 0x08, 0x07,
0x07, 0x07, 0x07, 0x07, 0x05, 0x05, 0x07, 0x07, 0x07, 0x06, 0x06, 0x07, 0x07, 0x04, 0x04, 0x03,
- 0x03, 0x06, 0x03, 0x03, 0x07, 0x07, 0x08, 0x05, 0x05, 0x08, 0x04, 0x06, 0x08, 0x07, 0x05
+ 0x03, 0x06, 0x03, 0x03, 0x07, 0x07, 0x08, 0x05, 0x05, 0x08, 0x04, 0x06, 0x08, 0x07, 0x08, 0x00,
+ 0x00, 0x00, 0x00, 0x00
};
-const uint8 IgorEngine::_fontData[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x00,
- 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x02, 0x02, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01,
- 0x01, 0x02, 0x02, 0x00, 0x02, 0x01, 0x01, 0x03, 0x03, 0x01, 0x01, 0x02, 0x00, 0x02, 0x01, 0x01,
- 0x03, 0x02, 0x01, 0x01, 0x03, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x00, 0x02,
- 0x01, 0x01, 0x03, 0x03, 0x01, 0x01, 0x03, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03,
- 0x00, 0x02, 0x02, 0x03, 0x03, 0x02, 0x02, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02,
- 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02,
- 0x01, 0x01, 0x03, 0x03, 0x01, 0x01, 0x02, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03,
- 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x00, 0x02, 0x01, 0x01, 0x03, 0x03, 0x01,
- 0x01, 0x02, 0x02, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x01, 0x01,
- 0x01, 0x01, 0x03, 0x03, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02,
- 0x02, 0x02, 0x01, 0x01, 0x03, 0x03, 0x03, 0x01, 0x01, 0x02, 0x02, 0x01, 0x01, 0x03, 0x00, 0x02,
- 0x02, 0x03, 0x03, 0x02, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03,
- 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x03, 0x02, 0x02, 0x01, 0x01, 0x02, 0x02, 0x02,
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x00, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01,
- 0x01, 0x02, 0x02, 0x00, 0x02, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x02, 0x02, 0x00, 0x02, 0x01,
- 0x01, 0x03, 0x02, 0x01, 0x01, 0x02, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03, 0x00,
- 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03, 0x02, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03,
- 0x03, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x00, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03,
- 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01,
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x01, 0x01, 0x03, 0x03, 0x03, 0x01, 0x03,
- 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x02, 0x02, 0x03, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x03,
- 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x03, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x03,
- 0x02, 0x03, 0x01, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x02, 0x02, 0x03,
- 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
- 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x01, 0x01, 0x03, 0x03,
- 0x03, 0x01, 0x03, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x02, 0x02, 0x03, 0x00, 0x02, 0x01, 0x01,
- 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x03, 0x00, 0x00, 0x02, 0x02,
- 0x01, 0x01, 0x03, 0x02, 0x03, 0x00, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00,
- 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02,
- 0x02, 0x02, 0x02, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x01,
- 0x01, 0x03, 0x03, 0x01, 0x01, 0x02, 0x02, 0x01, 0x01, 0x03, 0x03, 0x02, 0x02, 0x03, 0x03, 0x02,
- 0x01, 0x01, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x01,
- 0x02, 0x02, 0x02, 0x01, 0x01, 0x02, 0x02, 0x01, 0x01, 0x03, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01,
- 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02,
- 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x01, 0x01, 0x02, 0x02, 0x01, 0x01, 0x02, 0x00,
- 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01,
- 0x03, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x00, 0x02, 0x01, 0x01, 0x03, 0x03,
- 0x01, 0x01, 0x03, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03, 0x00, 0x02, 0x01, 0x01,
- 0x03, 0x02, 0x01, 0x01, 0x03, 0x00, 0x02, 0x02, 0x03, 0x03, 0x02, 0x02, 0x03, 0x03, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01,
- 0x01, 0x02, 0x00, 0x02, 0x02, 0x03, 0x01, 0x01, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x02, 0x01,
- 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x02, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x01, 0x01, 0x03, 0x02, 0x02, 0x00,
- 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03,
- 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00,
- 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x03, 0x03, 0x00,
- 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x03,
- 0x00, 0x02, 0x01, 0x01, 0x02, 0x02, 0x01, 0x01, 0x03, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01,
- 0x01, 0x03, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x02, 0x02, 0x03,
- 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
- 0x02, 0x01, 0x01, 0x01, 0x02, 0x02, 0x01, 0x01, 0x02, 0x02, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01,
- 0x01, 0x03, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x03, 0x00, 0x02, 0x01, 0x01, 0x01,
- 0x01, 0x03, 0x03, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x01,
- 0x01, 0x03, 0x02, 0x01, 0x01, 0x02, 0x02, 0x01, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03, 0x02,
- 0x02, 0x03, 0x03, 0x03, 0x02, 0x02, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
- 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01,
- 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
- 0x01, 0x01, 0x03, 0x00, 0x02, 0x02, 0x02, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x02, 0x01, 0x02,
- 0x02, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
- 0x01, 0x03, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02,
- 0x02, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x02, 0x02, 0x02, 0x01, 0x01, 0x02, 0x02,
- 0x01, 0x01, 0x01, 0x02, 0x01, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
- 0x03, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03, 0x01, 0x03,
- 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03, 0x02, 0x03, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03,
- 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x02, 0x03, 0x03, 0x00, 0x02, 0x02, 0x03, 0x03, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x02, 0x02, 0x02, 0x01,
- 0x01, 0x02, 0x02, 0x01, 0x01, 0x01, 0x02, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x01, 0x01,
- 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01,
- 0x03, 0x02, 0x01, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03, 0x02, 0x02, 0x01, 0x01, 0x03, 0x02,
- 0x01, 0x01, 0x03, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x02, 0x03, 0x03, 0x00, 0x02, 0x02, 0x03,
- 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01,
- 0x01, 0x01, 0x02, 0x02, 0x00, 0x02, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x02, 0x02, 0x02, 0x01,
- 0x01, 0x03, 0x03, 0x02, 0x01, 0x01, 0x02, 0x02, 0x01, 0x01, 0x03, 0x00, 0x02, 0x01, 0x01, 0x03,
- 0x02, 0x01, 0x01, 0x03, 0x02, 0x02, 0x01, 0x01, 0x03, 0x02, 0x02, 0x01, 0x01, 0x02, 0x01, 0x01,
- 0x03, 0x03, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, 0x02, 0x02, 0x03,
- 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02,
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x03, 0x03, 0x01, 0x01,
- 0x02, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01,
- 0x01, 0x03, 0x03, 0x00, 0x02, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x00, 0x02, 0x02, 0x01, 0x01,
- 0x03, 0x02, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x02, 0x02,
- 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
- 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x00, 0x02, 0x01, 0x01, 0x03, 0x03,
- 0x01, 0x01, 0x02, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03, 0x00, 0x02, 0x01, 0x01,
- 0x03, 0x02, 0x01, 0x01, 0x03, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03, 0x00, 0x02,
- 0x01, 0x01, 0x03, 0x01, 0x01, 0x01, 0x03, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03,
- 0x00, 0x00, 0x02, 0x02, 0x03, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x03,
- 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02,
- 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02,
- 0x01, 0x01, 0x03, 0x03, 0x01, 0x01, 0x02, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03,
- 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x00, 0x02, 0x01, 0x01, 0x03, 0x03, 0x01,
- 0x01, 0x02, 0x02, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x01, 0x03,
- 0x02, 0x01, 0x01, 0x03, 0x02, 0x02, 0x03, 0x03, 0x03, 0x02, 0x02, 0x03, 0x03, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02,
- 0x00, 0x02, 0x01, 0x01, 0x03, 0x03, 0x01, 0x01, 0x02, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x02,
- 0x03, 0x03, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x00, 0x02, 0x02, 0x02, 0x03,
- 0x03, 0x01, 0x01, 0x02, 0x00, 0x02, 0x01, 0x01, 0x02, 0x02, 0x01, 0x01, 0x03, 0x00, 0x02, 0x02,
- 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01,
- 0x01, 0x01, 0x02, 0x00, 0x02, 0x01, 0x03, 0x01, 0x01, 0x03, 0x01, 0x03, 0x00, 0x02, 0x02, 0x03,
- 0x01, 0x01, 0x03, 0x02, 0x03, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x02, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x03, 0x02, 0x00,
- 0x00, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x03,
- 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x01,
- 0x01, 0x02, 0x02, 0x01, 0x01, 0x02, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03, 0x00,
- 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01,
- 0x03, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02,
- 0x01, 0x01, 0x03, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x02, 0x02,
- 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
- 0x00, 0x02, 0x01, 0x01, 0x02, 0x02, 0x01, 0x01, 0x02, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01,
- 0x01, 0x03, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03, 0x00, 0x02, 0x01, 0x01, 0x03,
- 0x02, 0x01, 0x01, 0x03, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03, 0x00, 0x02, 0x02,
- 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00,
- 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x00,
- 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x02, 0x00, 0x02, 0x01, 0x01, 0x02, 0x02, 0x01, 0x01,
- 0x03, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03, 0x02, 0x02, 0x01, 0x01, 0x03, 0x02,
- 0x01, 0x01, 0x03, 0x01, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
- 0x03, 0x02, 0x01, 0x01, 0x01, 0x03, 0x01, 0x01, 0x01, 0x03, 0x02, 0x02, 0x01, 0x03, 0x03, 0x02,
- 0x01, 0x03, 0x03, 0x00, 0x02, 0x02, 0x03, 0x00, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02,
- 0x02, 0x02, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x02, 0x00, 0x02, 0x01, 0x01, 0x02,
- 0x02, 0x01, 0x01, 0x03, 0x02, 0x02, 0x01, 0x01, 0x03, 0x02, 0x02, 0x01, 0x01, 0x02, 0x01, 0x01,
- 0x03, 0x03, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x03, 0x03, 0x00, 0x02, 0x02, 0x01, 0x01, 0x03,
- 0x01, 0x01, 0x02, 0x02, 0x02, 0x01, 0x01, 0x03, 0x03, 0x02, 0x01, 0x01, 0x02, 0x02, 0x01, 0x01,
- 0x03, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x02, 0x03, 0x03, 0x00, 0x02, 0x02, 0x03, 0x03, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x01, 0x01, 0x02, 0x02, 0x01,
- 0x01, 0x02, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03, 0x00, 0x02, 0x01, 0x01, 0x03,
- 0x02, 0x01, 0x01, 0x03, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x02,
- 0x02, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x03, 0x02, 0x00, 0x00,
- 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01,
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x01, 0x01, 0x03, 0x03, 0x01, 0x01, 0x01, 0x03, 0x02,
- 0x01, 0x03, 0x03, 0x01, 0x01, 0x01, 0x03, 0x03, 0x02, 0x02, 0x03, 0x01, 0x01, 0x01, 0x03, 0x03,
- 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x03, 0x03, 0x01, 0x02, 0x02, 0x01, 0x01, 0x01, 0x03, 0x03,
- 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x02, 0x02, 0x03, 0x03,
- 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00,
- 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x02, 0x02, 0x03, 0x01,
- 0x01, 0x02, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x01, 0x01,
- 0x03, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00,
- 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03,
- 0x02, 0x02, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x00, 0x00, 0x02, 0x01,
- 0x01, 0x03, 0x01, 0x01, 0x02, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x00, 0x00,
- 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03,
- 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x02, 0x02, 0x00,
- 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x02, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x03,
- 0x03, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x02, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01,
- 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x02,
- 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01,
- 0x01, 0x03, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x01, 0x01,
- 0x03, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02,
- 0x02, 0x01, 0x01, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x02, 0x02,
- 0x01, 0x01, 0x01, 0x02, 0x02, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x02, 0x00, 0x00,
- 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03,
- 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x02, 0x02, 0x03, 0x03,
- 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00,
- 0x02, 0x02, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x03, 0x03, 0x00,
- 0x00, 0x02, 0x02, 0x01, 0x01, 0x03, 0x02, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02,
- 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01,
- 0x03, 0x02, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x02, 0x02,
- 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02,
- 0x02, 0x02, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x02, 0x01, 0x01,
- 0x03, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02,
- 0x02, 0x01, 0x01, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x02, 0x02, 0x03, 0x01, 0x01, 0x03, 0x00,
- 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01,
- 0x01, 0x03, 0x02, 0x02, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x00, 0x00,
- 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x02, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03,
- 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01,
- 0x01, 0x03, 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x02, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00,
- 0x00, 0x02, 0x02, 0x02, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x01, 0x02, 0x00,
- 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01,
- 0x03, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x03, 0x02, 0x00, 0x00, 0x00, 0x02, 0x01,
- 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01,
- 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x02, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02,
- 0x02, 0x02, 0x02, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x01, 0x01, 0x02, 0x01, 0x01, 0x03, 0x00,
- 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x03,
- 0x03, 0x00, 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01,
- 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x02, 0x02, 0x02, 0x00,
- 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x02, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03,
- 0x03, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01,
- 0x01, 0x02, 0x02, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x02, 0x00, 0x02, 0x02, 0x03,
- 0x03, 0x02, 0x02, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00,
- 0x00, 0x02, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x03, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01,
- 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02,
- 0x01, 0x01, 0x03, 0x02, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00,
- 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02,
- 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x01, 0x01, 0x01, 0x02, 0x01, 0x01, 0x02, 0x02, 0x02,
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x01, 0x01, 0x03, 0x01, 0x03, 0x01, 0x01,
- 0x03, 0x02, 0x01, 0x01, 0x03, 0x01, 0x03, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03, 0x02, 0x03,
- 0x01, 0x01, 0x03, 0x02, 0x02, 0x03, 0x03, 0x00, 0x02, 0x02, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02,
- 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x02, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01,
- 0x01, 0x03, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x01, 0x01,
- 0x03, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x02, 0x03, 0x03, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02,
- 0x00, 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x01,
- 0x01, 0x02, 0x02, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x02, 0x00, 0x00, 0x02, 0x01,
- 0x01, 0x03, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x00, 0x00,
- 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x02, 0x03, 0x03,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x02,
- 0x02, 0x01, 0x01, 0x01, 0x02, 0x02, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x02, 0x00,
- 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01,
- 0x03, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, 0x02, 0x02, 0x03,
- 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00,
- 0x00, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01,
- 0x01, 0x02, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x01, 0x01,
- 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x02,
- 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02,
- 0x02, 0x02, 0x02, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x02, 0x01,
- 0x01, 0x03, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x00, 0x00,
- 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x02, 0x02, 0x03, 0x01, 0x01, 0x03,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02,
- 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
- 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x02, 0x01, 0x01, 0x02, 0x01, 0x01, 0x02, 0x00,
- 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x03,
- 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x03, 0x02, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x01,
- 0x01, 0x02, 0x00, 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01,
- 0x01, 0x02, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x02, 0x02, 0x01,
- 0x01, 0x01, 0x02, 0x02, 0x00, 0x00, 0x02, 0x02, 0x02, 0x03, 0x01, 0x01, 0x02, 0x00, 0x00, 0x02,
- 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01,
- 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x03, 0x02, 0x02, 0x00, 0x00, 0x02, 0x01,
- 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x03, 0x03, 0x03, 0x00, 0x00,
- 0x00, 0x02, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x02,
- 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x03,
- 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00,
- 0x00, 0x02, 0x01, 0x01, 0x02, 0x01, 0x01, 0x02, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01,
- 0x03, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03,
- 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, 0x02,
- 0x02, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02,
- 0x02, 0x02, 0x00, 0x00, 0x02, 0x01, 0x01, 0x02, 0x01, 0x01, 0x02, 0x00, 0x00, 0x02, 0x01, 0x01,
- 0x03, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02,
- 0x02, 0x01, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x03, 0x03, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02,
- 0x02, 0x02, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x02, 0x02, 0x02, 0x01, 0x01, 0x02,
- 0x02, 0x01, 0x01, 0x03, 0x01, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03, 0x01, 0x03, 0x01,
- 0x01, 0x03, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x02, 0x02, 0x01, 0x01, 0x03,
- 0x01, 0x01, 0x03, 0x03, 0x00, 0x02, 0x02, 0x03, 0x03, 0x02, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x02, 0x02, 0x02,
- 0x01, 0x01, 0x02, 0x02, 0x02, 0x01, 0x01, 0x02, 0x01, 0x01, 0x03, 0x03, 0x00, 0x02, 0x02, 0x01,
- 0x01, 0x01, 0x03, 0x03, 0x00, 0x02, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x02, 0x02, 0x02, 0x01,
- 0x01, 0x03, 0x03, 0x02, 0x01, 0x01, 0x02, 0x02, 0x02, 0x03, 0x03, 0x00, 0x02, 0x02, 0x03, 0x03,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x02, 0x01, 0x01,
- 0x02, 0x01, 0x01, 0x02, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02,
- 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x03, 0x00,
- 0x00, 0x02, 0x02, 0x02, 0x03, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x03,
- 0x03, 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00,
- 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x02, 0x01, 0x03, 0x03, 0x01, 0x01, 0x03,
- 0x03, 0x00, 0x02, 0x02, 0x03, 0x01, 0x01, 0x03, 0x03, 0x02, 0x00, 0x02, 0x02, 0x01, 0x01, 0x03,
- 0x03, 0x01, 0x02, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x00, 0x02, 0x02, 0x03,
- 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x02, 0x00,
- 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x03, 0x03,
- 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x02, 0x02, 0x03,
- 0x01, 0x01, 0x02, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x01,
- 0x01, 0x03, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x03, 0x00, 0x00,
- 0x00, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01,
- 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, 0x02, 0x02,
- 0x02, 0x03, 0x03, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x02, 0x02, 0x00, 0x00, 0x02,
- 0x01, 0x01, 0x03, 0x01, 0x01, 0x02, 0x00, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x00,
- 0x00, 0x02, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01,
- 0x02, 0x00, 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02,
- 0x02, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00,
- 0x02, 0x02, 0x02, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00,
- 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03,
- 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x03, 0x02, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01,
- 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x00,
- 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03,
- 0x03, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x03, 0x03, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01,
- 0x01, 0x02, 0x02, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x02, 0x00, 0x00, 0x02, 0x01,
- 0x01, 0x03, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x00, 0x00,
- 0x02, 0x02, 0x01, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x03, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02,
- 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02,
- 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x03, 0x03, 0x02, 0x00, 0x00, 0x02,
- 0x01, 0x01, 0x02, 0x01, 0x01, 0x02, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x00,
- 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x01, 0x01,
- 0x03, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, 0x02, 0x02, 0x03,
- 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00,
- 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x01, 0x01, 0x03, 0x03, 0x03, 0x01,
- 0x01, 0x02, 0x02, 0x01, 0x01, 0x03, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03, 0x00,
- 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01,
- 0x03, 0x02, 0x02, 0x01, 0x01, 0x03, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x00,
- 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01,
- 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x02, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00,
- 0x02, 0x02, 0x02, 0x01, 0x01, 0x03, 0x02, 0x02, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
- 0x02, 0x00, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02,
- 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x00, 0x02,
- 0x01, 0x01, 0x03, 0x03, 0x01, 0x01, 0x02, 0x00, 0x02, 0x02, 0x03, 0x03, 0x02, 0x01, 0x01, 0x03,
- 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x03, 0x03, 0x00, 0x02, 0x02, 0x01, 0x01, 0x03, 0x03,
- 0x03, 0x02, 0x00, 0x02, 0x01, 0x01, 0x03, 0x03, 0x01, 0x01, 0x02, 0x00, 0x02, 0x01, 0x01, 0x01,
- 0x01, 0x01, 0x01, 0x03, 0x00, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02,
- 0x02, 0x00, 0x02, 0x01, 0x01, 0x03, 0x03, 0x01, 0x01, 0x02, 0x00, 0x02, 0x02, 0x03, 0x03, 0x02,
- 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x01, 0x03, 0x03, 0x00, 0x02, 0x02, 0x02,
- 0x02, 0x03, 0x01, 0x01, 0x02, 0x00, 0x02, 0x01, 0x01, 0x02, 0x02, 0x01, 0x01, 0x03, 0x00, 0x02,
- 0x02, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x02, 0x02,
- 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x03, 0x00, 0x02, 0x02,
- 0x01, 0x01, 0x03, 0x01, 0x01, 0x03, 0x00, 0x02, 0x01, 0x01, 0x03, 0x03, 0x01, 0x01, 0x03, 0x02,
- 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x01, 0x01,
- 0x03, 0x03, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x02, 0x02,
- 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02,
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x02, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03,
- 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x00, 0x02, 0x02, 0x03, 0x03, 0x03, 0x01,
- 0x01, 0x02, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x03, 0x00, 0x02, 0x01, 0x01, 0x02,
- 0x02, 0x01, 0x01, 0x03, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x02,
- 0x02, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02,
- 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x03,
- 0x03, 0x03, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x03, 0x02, 0x02, 0x00, 0x00, 0x02, 0x01, 0x01,
- 0x01, 0x01, 0x01, 0x02, 0x02, 0x00, 0x02, 0x01, 0x01, 0x03, 0x03, 0x01, 0x01, 0x02, 0x00, 0x02,
- 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03,
- 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02,
- 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x02, 0x01,
- 0x01, 0x03, 0x03, 0x01, 0x01, 0x03, 0x00, 0x02, 0x02, 0x03, 0x03, 0x02, 0x01, 0x01, 0x03, 0x00,
- 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x03,
- 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01,
- 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02,
- 0x00, 0x02, 0x01, 0x01, 0x03, 0x03, 0x01, 0x01, 0x02, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01,
- 0x01, 0x03, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x00, 0x02, 0x01, 0x01, 0x03,
- 0x03, 0x01, 0x01, 0x02, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02, 0x01, 0x01, 0x03, 0x00, 0x02, 0x02,
- 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01,
- 0x01, 0x02, 0x02, 0x00, 0x02, 0x01, 0x01, 0x03, 0x03, 0x01, 0x01, 0x02, 0x00, 0x02, 0x01, 0x01,
- 0x03, 0x02, 0x01, 0x01, 0x03, 0x00, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x00, 0x00,
- 0x02, 0x02, 0x03, 0x03, 0x01, 0x01, 0x03, 0x00, 0x00, 0x02, 0x02, 0x02, 0x01, 0x01, 0x03, 0x03,
- 0x00, 0x00, 0x02, 0x01, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x03,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02,
- 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x02, 0x02,
- 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00,
- 0x02, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02,
- 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x00, 0x00, 0x00, 0x02,
- 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00,
- 0x00, 0x02, 0x02, 0x01, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01,
- 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x02,
- 0x02, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00,
- 0x02, 0x01, 0x01, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x03, 0x03, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ Diff output truncated at 100000 characters. @@
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list