aboutsummaryrefslogtreecommitdiff
path: root/engines/lilliput/lilliput.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/lilliput/lilliput.h')
-rw-r--r--engines/lilliput/lilliput.h99
1 files changed, 48 insertions, 51 deletions
diff --git a/engines/lilliput/lilliput.h b/engines/lilliput/lilliput.h
index b7b2cc5e04..6d67021b55 100644
--- a/engines/lilliput/lilliput.h
+++ b/engines/lilliput/lilliput.h
@@ -75,6 +75,10 @@ enum InterfaceHotspotStatus {
kHotspotSelected = 3
};
+#define kSeqNone 0
+#define kSeqNoInc 1 << 0
+#define kSeqRepeat 1 << 1
+
struct LilliputGameDescription;
struct SmallAnim {
@@ -125,10 +129,10 @@ public:
int8 _lastInterfaceHotspotIndex;
byte _lastInterfaceHotspotButton; // Unused: set by 2 functions, but never used elsewhere
byte _debugFlag; // Mostly useless, as the associated functions are empty
- byte _byte14837; // Unused byte, set by an opcode
+ byte _debugFlag2; // Unused byte, set by an opcode
byte _codeEntered[3];
- char _array1692B[4];
+ char _homeInDirLikelyhood[4];
byte *_bufferIsoMap;
byte *_bufferCubegfx;
byte *_bufferMen;
@@ -149,25 +153,24 @@ public:
int _nextCharacterIndex;
int8 _waitingSignal;
int8 _waitingSignalCharacterId;
- uint16 _word1817B;
+ uint16 _newModesEvaluatedNumber;
Common::Point _savedSurfaceUnderMousePos;
bool _displayGreenHand;
bool _isCursorGreenHand;
int _currentDisplayCharacter;
int _displayStringIndex;
- int _word1289D;
- Common::Point _word16937Pos;
+ int _signalTimer;
+ Common::Point _curCharacterTilePos;
int16 _mapSavedPixelIndex[40];
byte _mapSavedPixel[40];
- int16 _array11D49[40];
- int16 _array1289F[40];
+ int16 _characterSignals[40];
+ int16 _signalArr[40];
int16 _signalArray[30];
- byte *_rulesChunk1;
+ byte *_sequencesArr;
int16 _currentScriptCharacter;
- int16 _characterPositionX[40];
- int16 _characterPositionY[40];
+ Common::Point _characterPos[40];
int8 _characterPosAltitude[40];
int16 _characterFrameArray[40];
int8 _characterCarried[40];
@@ -175,11 +178,10 @@ public:
byte _characterAboveDist[40];
byte _spriteSizeArray[40];
byte _characterDirectionArray[40];
- byte _rulesBuffer2_10[40];
+ byte _characterMobility[40];
byte _characterTypes[40];
byte _characterBehaviour[40];
- byte _characterHomePosX[40];
- byte _characterHomePosY[40];
+ Common::Point _characterHomePos[40];
byte _characterVariables[1400 + 3120];
byte *_currentCharacterAttributes;
byte _poseArray[40 * 32];
@@ -193,34 +195,29 @@ public:
int *_arrayGameScriptIndex;
int _gameScriptIndexSize;
byte *_arrayGameScripts;
- byte _rulesChunk9[60];
- byte _rulesChunk10_size;
- int16 *_rulesChunk10;
- byte *_rulesChunk11;
+ byte _cubeFlags[60];
+ byte _listNumb;
+ int16 *_listIndex;
+ byte *_listArr;
int16 _rectNumb;
MinMax _rectXMinMax[40];
MinMax _rectYMinMax[40];
- Common::Point _rulesBuffer12Pos3[40];
- Common::Point _rulesBuffer12Pos4[40];
+ Common::Point _keyPos[40];
+ Common::Point _portalPos[40];
int _interfaceHotspotNumb;
byte _interfaceTwoStepAction[20];
- int16 _interfaceHotspotsX[20];
- int16 _interfaceHotspotsY[20];
+ Common::Point _interfaceHotspots[20];
Common::KeyCode _keyboardMapping[20];
- int16 _characterTargetPosX[40];
- int16 _characterTargetPosY[40];
+ Common::Point _characterTargetPos[40];
byte _savedSurfaceUnderMouse[16 * 16];
byte _charactersToDisplay[40];
- int16 _characterRelativePositionX[40];
- int16 _characterRelativePositionY[40];
- int16 _characterDisplayX[40];
- int16 _characterDisplayY[40];
+ Common::Point _characterRelativePos[40];
+ Common::Point _characterDisplay[40];
int8 _characterMagicPuffFrame[40];
- int16 _characterSubTargetPosX[40];
- int16 _characterSubTargetPosY[40];
- byte _stingArray[40];
- byte _array16C54[4];
- byte _array16C58[4];
+ Common::Point _characterSubTargetPos[40];
+ byte _specialCubes[40];
+ byte _doorEntranceMask[4];
+ byte _doorExitMask[4];
byte _savedSurfaceGameArea1[176 * 256]; // 45056
byte _savedSurfaceGameArea2[176 * 256]; // 45056
byte _savedSurfaceGameArea3[176 * 256]; // 45056
@@ -256,7 +253,7 @@ public:
void displaySmallIndexedAnim(byte index, byte subIndex);
void unselectInterfaceHotspots();
- void sub15F75();
+ void startNavigateFromMap();
void resetSmallAnims();
void paletteFadeOut();
void paletteFadeIn();
@@ -266,15 +263,15 @@ public:
void viewportScrollTo(Common::Point goalPos);
void checkSpeechClosing();
void updateCharPosSequence();
- void sub16A08(int index);
- byte sub16A76(int indexb, int indexs);
- void sub17224(byte type, byte index, int var4);
- void sub17264(byte index, int var4);
- int16 findHotspot(Common::Point pos);
- int16 reverseFindHotspot(Common::Point pos);
- byte sub16722(int index, Common::Point var1);
- byte sub166EA(int index);
- void sub167EF(int index);
+ void evaluateDirections(int index);
+ byte homeInAvoidDeadEnds(int indexb, int indexs);
+ void signalDispatcher(byte type, byte index, int var4);
+ void sendMessageToCharacter(byte index, int var4);
+ int16 checkEnclosure(Common::Point pos);
+ int16 checkOuterEnclosure(Common::Point pos);
+ byte sequenceSetMobility(int index, Common::Point var1);
+ byte sequenceEnd(int index);
+ void homeInPathFinding(int index);
void renderCharacters(byte *buf, Common::Point pos);
@@ -284,15 +281,15 @@ public:
byte getDirection(Common::Point param1, Common::Point param2);
void addCharToBuf(byte character);
void numberToString(int param1);
- void sub12F37();
+ void handleCharacterTimers();
byte sequenceMoveCharacter(int idx, int moveType, int poseType);
void setCharacterPose(int idx, int poseIdx);
- void sub16EBC();
- void sub16CA0();
+ void checkSpecialCubes();
+ void checkInteractions();
byte sequenceSetCharacterDirection(int index, int direction, int poseType);
- void sub171CF();
+ void handleSignals();
void checkInterfaceActivationDelay();
- int16 sub16DD5(int x1, int y1, int x2, int y2);
+ int16 checkObstacle(int x1, int y1, int x2, int y2);
void displayCharactersOnMap();
void restoreMapPoints();
void displayHeroismIndicator();
@@ -316,12 +313,12 @@ public:
void moveCharacterSpeed4(int index);
void moveCharacterBack2(int index);
void moveCharacterSpeed3(int index);
- void sub16B31_moveCharacter(int index, int16 speed);
- void sub16B8F_moveCharacter(int index, Common::Point pos, int direction);
+ void moveCharacterForward(int index, int16 speed);
+ void checkCollision(int index, Common::Point pos, int direction);
byte sequenceSeekMovingCharacter(int index, Common::Point var1);
byte sequenceSound(int index, Common::Point var1);
- byte sub166F7(int index, Common::Point var1, int tmpVal);
- void sub1693A_chooseDirections(int index);
+ byte sequenceRepeat(int index, Common::Point var1, int tmpVal);
+ void homeInChooseDirection(int index);
void initGame(const LilliputGameDescription *gd);
byte *loadVGA(Common::String filename, int fileSize, bool loadPal);