LILLIPUT: More verifications and renaming
This commit is contained in:
parent
03e0d5927f
commit
b3819ede5e
4 changed files with 90 additions and 89 deletions
|
@ -209,7 +209,7 @@ LilliputEngine::LilliputEngine(OSystem *syst, const LilliputGameDescription *gd)
|
|||
}
|
||||
|
||||
for (int i = 0; i < 30; i++)
|
||||
_array12861[i] = 0xFFFF;
|
||||
_array12861[i] = -1;
|
||||
|
||||
for (int i = 0; i < 256; i++)
|
||||
_savedSurfaceUnderMouse[i] = 0;
|
||||
|
@ -1374,10 +1374,10 @@ void LilliputEngine::checkSpeechClosing() {
|
|||
}
|
||||
}
|
||||
|
||||
int LilliputEngine::getDirection(Common::Point param1, Common::Point param2) {
|
||||
debugC(2, kDebugEngineTBC, "getDirection(%d - %d, %d - %d)", param1.x, param1.y, param2.x, param2.y);
|
||||
byte LilliputEngine::getDirection(Common::Point param1, Common::Point param2) {
|
||||
debugC(2, kDebugEngine, "getDirection(%d - %d, %d - %d)", param1.x, param1.y, param2.x, param2.y);
|
||||
|
||||
static const char _directionsArray[8] = {0, 2, 0, 1, 3, 2, 3, 1};
|
||||
static const byte _directionsArray[8] = {0, 2, 0, 1, 3, 2, 3, 1};
|
||||
|
||||
Common::Point var1 = param2;
|
||||
Common::Point var2 = param1;
|
||||
|
@ -1581,21 +1581,21 @@ byte LilliputEngine::sub16A76(int indexb, int indexs) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
int LilliputEngine::findHotspot(Common::Point pos) {
|
||||
debugC(2, kDebugEngineTBC, "findHotspot(%d, %d)", pos.x, pos.y);
|
||||
int16 LilliputEngine::findHotspot(Common::Point pos) {
|
||||
debugC(2, kDebugEngine, "findHotspot(%d, %d)", pos.x, pos.y);
|
||||
|
||||
for (int i = 0; i < _rulesChunk12_size; i++) {
|
||||
for (int i = 0; i < _rectNumb; i++) {
|
||||
if ((pos.x >= (_rectXMinMax[i] >> 8)) && (pos.x <= (_rectXMinMax[i] & 0xFF)) && (pos.y >= (_rectYMinMax[i] >> 8)) && (pos.y <= (_rectYMinMax[i] & 0xFF)))
|
||||
return i;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
int LilliputEngine::reverseFindHotspot(Common::Point pos) {
|
||||
debugC(2, kDebugEngineTBC, "reverseFindHotspot(%d, %d)", pos.x, pos.y);
|
||||
int16 LilliputEngine::reverseFindHotspot(Common::Point pos) {
|
||||
debugC(2, kDebugEngine, "reverseFindHotspot(%d, %d)", pos.x, pos.y);
|
||||
|
||||
for (int i = _rulesChunk12_size - 1; i >= 0 ; i--) {
|
||||
if ((pos.x >= (_rectXMinMax[i] >> 8)) && (pos.x <= (_rectXMinMax[i] & 0xFF)) && (pos.y >= (_rectYMinMax[i] >> 8)) && (pos.y<= (_rectYMinMax[i] & 0xFF)))
|
||||
for (int i = _rectNumb - 1; i >= 0 ; i--) {
|
||||
if ((pos.x >= (_rectXMinMax[i] >> 8)) && (pos.x <= (_rectXMinMax[i] & 0xFF)) && (pos.y >= (_rectYMinMax[i] >> 8)) && (pos.y <= (_rectYMinMax[i] & 0xFF)))
|
||||
return i;
|
||||
}
|
||||
return -1;
|
||||
|
@ -2014,13 +2014,13 @@ byte LilliputEngine::sub16675(int idx, Common::Point var1) {
|
|||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
sub166B1(index);
|
||||
moveCharacterSpeed2(index);
|
||||
break;
|
||||
case 2:
|
||||
sub166B6(index);
|
||||
moveCharacterSpeed4(index);
|
||||
break;
|
||||
case 3:
|
||||
sub166BB(index);
|
||||
moveCharacterBack2(index);
|
||||
break;
|
||||
case 4:
|
||||
sub16B63(index);
|
||||
|
@ -2029,19 +2029,19 @@ byte LilliputEngine::sub16675(int idx, Common::Point var1) {
|
|||
sub16B76(index);
|
||||
break;
|
||||
case 6:
|
||||
sub166C0(index);
|
||||
moveCharacterUp1(index);
|
||||
break;
|
||||
case 7:
|
||||
sub166C6(index);
|
||||
moveCharacterUp2(index);
|
||||
break;
|
||||
case 8:
|
||||
sub166CC(index);
|
||||
moveCharacterDown1(index);
|
||||
break;
|
||||
case 9:
|
||||
sub166D2(index);
|
||||
moveCharacterDown2(index);
|
||||
break;
|
||||
case 10:
|
||||
sub166D8(index);
|
||||
moveCharacterSpeed3(index);
|
||||
break;
|
||||
default:
|
||||
warning("sub16675 - Unexpected value %d", var1.x);
|
||||
|
@ -2064,109 +2064,110 @@ void LilliputEngine::sub16B76(int index) {
|
|||
_characterDirectionArray[index] = nextDirection[_characterDirectionArray[index]];
|
||||
}
|
||||
|
||||
void LilliputEngine::sub166C0(int index) {
|
||||
debugC(2, kDebugEngineTBC, "sub166C0(%d)", index);
|
||||
void LilliputEngine::moveCharacterUp1(int index) {
|
||||
debugC(2, kDebugEngine, "moveCharacterUp1(%d)", index);
|
||||
|
||||
_characterPositionAltitude[index] += 1;
|
||||
}
|
||||
|
||||
void LilliputEngine::sub166C6(int index) {
|
||||
debugC(2, kDebugEngineTBC, "sub166C6(%d)", index);
|
||||
void LilliputEngine::moveCharacterUp2(int index) {
|
||||
debugC(2, kDebugEngine, "moveCharacterUp2(%d)", index);
|
||||
|
||||
_characterPositionAltitude[index] += 2;
|
||||
}
|
||||
|
||||
void LilliputEngine::sub166CC(int index) {
|
||||
debugC(2, kDebugEngineTBC, "sub166CC(%d)", index);
|
||||
void LilliputEngine::moveCharacterDown1(int index) {
|
||||
debugC(2, kDebugEngine, "moveCharacterDown1(%d)", index);
|
||||
|
||||
_characterPositionAltitude[index] -= 1;
|
||||
}
|
||||
|
||||
void LilliputEngine::sub166D2(int index) {
|
||||
debugC(2, kDebugEngineTBC, "sub166D2(%d)", index);
|
||||
void LilliputEngine::moveCharacterDown2(int index) {
|
||||
debugC(2, kDebugEngine, "moveCharacterDown2(%d)", index);
|
||||
|
||||
_characterPositionAltitude[index] -= 2;
|
||||
}
|
||||
|
||||
void LilliputEngine::sub166B1(int index) {
|
||||
debugC(2, kDebugEngineTBC, "sub166B1(%d)", index);
|
||||
void LilliputEngine::moveCharacterSpeed2(int index) {
|
||||
debugC(2, kDebugEngine, "moveCharacterSpeed2(%d)", index);
|
||||
|
||||
sub16B31(index, 2);
|
||||
sub16B31_moveCharacter(index, 2);
|
||||
}
|
||||
|
||||
void LilliputEngine::sub166B6(int index) {
|
||||
debugC(2, kDebugEngineTBC, "sub166B6(%d)", index);
|
||||
void LilliputEngine::moveCharacterSpeed4(int index) {
|
||||
debugC(2, kDebugEngine, "moveCharacterSpeed4(%d)", index);
|
||||
|
||||
sub16B31(index, 4);
|
||||
sub16B31_moveCharacter(index, 4);
|
||||
}
|
||||
|
||||
void LilliputEngine::sub166BB(int index) {
|
||||
debugC(2, kDebugEngineTBC, "sub166BB(%d)", index);
|
||||
void LilliputEngine::moveCharacterBack2(int index) {
|
||||
debugC(2, kDebugEngine, "moveCharacterBack2(%d)", index);
|
||||
|
||||
sub16B31(index, -2);
|
||||
sub16B31_moveCharacter(index, -2);
|
||||
}
|
||||
|
||||
void LilliputEngine::sub166D8(int index) {
|
||||
debugC(2, kDebugEngineTBC, "sub166D8(%d)", index);
|
||||
void LilliputEngine::moveCharacterSpeed3(int index) {
|
||||
debugC(2, kDebugEngine, "moveCharacterSpeed3(%d)", index);
|
||||
|
||||
sub16B31(index, 3);
|
||||
sub16B31_moveCharacter(index, 3);
|
||||
}
|
||||
|
||||
void LilliputEngine::sub16B31(int index, int val) {
|
||||
debugC(2, kDebugEngineTBC, "sub16B31(%d, %d)", index, val);
|
||||
void LilliputEngine::sub16B31_moveCharacter(int index, int16 speed) {
|
||||
debugC(2, kDebugEngine, "sub16B31_moveCharacter(%d, %d)", index, speed);
|
||||
|
||||
int newX = _characterPositionX[index];
|
||||
int newY = _characterPositionY[index];
|
||||
int16 newX = _characterPositionX[index];
|
||||
int16 newY = _characterPositionY[index];
|
||||
switch (_characterDirectionArray[index]) {
|
||||
case 0:
|
||||
newX += val;
|
||||
newX += speed;
|
||||
break;
|
||||
case 1:
|
||||
newY -= val;
|
||||
newY -= speed;
|
||||
break;
|
||||
case 2:
|
||||
newY += val;
|
||||
newY += speed;
|
||||
break;
|
||||
default:
|
||||
newX -= val;
|
||||
newX -= speed;
|
||||
break;
|
||||
}
|
||||
sub16B8F(index, newX, newY, _characterDirectionArray[index]);
|
||||
sub16B8F_moveCharacter(index, Common::Point(newX, newY), _characterDirectionArray[index]);
|
||||
}
|
||||
|
||||
void LilliputEngine::sub16B8F(int index, int x, int y, int flag) {
|
||||
debugC(2, kDebugEngineTBC, "sub16B8F(%d, %d, %d)", index, x, y);
|
||||
void LilliputEngine::sub16B8F_moveCharacter(int index, Common::Point pos, int direction) {
|
||||
debugC(2, kDebugEngine, "sub16B8F_moveCharacter(%d, %d - %d, %d)", index, pos.x, pos.y, direction);
|
||||
|
||||
int diffX = x >> 3;
|
||||
if (((diffX & 0xFF) == _scriptHandler->_array16123PosX[index]) && ((y >> 3) == _scriptHandler->_array1614BPosY[index])) {
|
||||
_characterPositionX[index] = x;
|
||||
_characterPositionY[index] = y;
|
||||
int16 diffX = pos.x >> 3;
|
||||
if (((diffX & 0xFF) == _scriptHandler->_array16123PosX[index]) && ((pos.y >> 3) == _scriptHandler->_array1614BPosY[index])) {
|
||||
_characterPositionX[index] = pos.x;
|
||||
_characterPositionY[index] = pos.y;
|
||||
return;
|
||||
}
|
||||
|
||||
if ((x < 0) || (x >= 512) || (y < 0) || (y >= 512))
|
||||
if ((pos.x < 0) || (pos.x >= 512) || (pos.y < 0) || (pos.y >= 512))
|
||||
return;
|
||||
|
||||
int mapIndex = (_scriptHandler->_array1614BPosY[index] << 6) + _scriptHandler->_array16123PosX[index];
|
||||
mapIndex <<= 2;
|
||||
|
||||
if ((_bufferIsoMap[mapIndex + 3] & _array16C58[flag]) == 0)
|
||||
if ((_bufferIsoMap[mapIndex + 3] & _array16C58[direction]) == 0)
|
||||
return;
|
||||
|
||||
mapIndex = ((y & 0xFFF8) << 3) + diffX;
|
||||
mapIndex = ((pos.y & 0xFFF8) << 3) + diffX;
|
||||
mapIndex <<= 2;
|
||||
|
||||
if ((_bufferIsoMap[mapIndex + 3] & _array16C54[flag]) == 0)
|
||||
if ((_bufferIsoMap[mapIndex + 3] & _array16C54[direction]) == 0)
|
||||
return;
|
||||
|
||||
int var1 = _rulesBuffer2_10[index];
|
||||
byte var1 = _rulesBuffer2_10[index];
|
||||
var1 &= 7;
|
||||
var1 ^= 7;
|
||||
|
||||
if ((var1 & _rulesChunk9[_bufferIsoMap[mapIndex]]) != 0)
|
||||
return;
|
||||
|
||||
_characterPositionX[index] = x;
|
||||
_characterPositionY[index] = y;
|
||||
_characterPositionX[index] = pos.x;
|
||||
_characterPositionY[index] = pos.y;
|
||||
}
|
||||
|
||||
void LilliputEngine::sub17224(int var1, int var4) {
|
||||
|
@ -2217,10 +2218,10 @@ void LilliputEngine::sub171CF() {
|
|||
++_word1289D;
|
||||
|
||||
for (int i = 0; i < 10; i++) {
|
||||
if ((_array12861[(3 * i) + 1] != 0xFFFF) && (_array12861[3 * i] == _word1289D)) {
|
||||
if ((_array12861[(3 * i) + 1] != -1) && (_array12861[3 * i] == _word1289D)) {
|
||||
int var1 = _array12861[(3 * i) + 1];
|
||||
int var4 = _array12861[(3 * i) + 2];
|
||||
_array12861[(3 * i) + 1] = 0xFFFF;
|
||||
_array12861[(3 * i) + 1] = -1;
|
||||
|
||||
sub17224(var1, var4);
|
||||
}
|
||||
|
@ -2528,11 +2529,11 @@ void LilliputEngine::loadRules() {
|
|||
}
|
||||
|
||||
// Chunk 12
|
||||
_rulesChunk12_size = f.readUint16LE();
|
||||
assert(_rulesChunk12_size <= 40);
|
||||
_rectNumb = f.readUint16LE();
|
||||
assert(_rectNumb <= 40);
|
||||
uint16 tmpVal;
|
||||
|
||||
for (int i = 0; i < _rulesChunk12_size; i++) {
|
||||
for (int i = 0; i < _rectNumb; i++) {
|
||||
_rectXMinMax[i] = f.readUint16LE();
|
||||
_rectYMinMax[i] = f.readUint16LE();
|
||||
tmpVal = f.readUint16LE();
|
||||
|
|
|
@ -152,7 +152,7 @@ public:
|
|||
byte _byte15E35[40];
|
||||
int _array11D49[40];
|
||||
int _array1289F[40];
|
||||
int _array12861[30];
|
||||
int16 _array12861[30];
|
||||
|
||||
byte *_rulesChunk1;
|
||||
int16 _currentScriptCharacter;
|
||||
|
@ -187,7 +187,7 @@ public:
|
|||
byte _rulesChunk10_size;
|
||||
int16 *_rulesChunk10;
|
||||
byte *_rulesChunk11;
|
||||
int16 _rulesChunk12_size;
|
||||
int16 _rectNumb;
|
||||
int16 _rectXMinMax[40];
|
||||
int16 _rectYMinMax[40];
|
||||
Common::Point _rulesBuffer12Pos3[40];
|
||||
|
@ -263,8 +263,8 @@ public:
|
|||
byte sub16A76(int indexb, int indexs);
|
||||
void sub17224(int var1, int var4);
|
||||
void sub17264(int index, int var4);
|
||||
int findHotspot(Common::Point pos);
|
||||
int reverseFindHotspot(Common::Point pos);
|
||||
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);
|
||||
|
@ -272,7 +272,7 @@ public:
|
|||
void renderCharacters(byte *buf, Common::Point pos);
|
||||
|
||||
byte sub16799(int index, Common::Point param1);
|
||||
int getDirection(Common::Point param1, Common::Point param2);
|
||||
byte getDirection(Common::Point param1, Common::Point param2);
|
||||
void addCharToBuf(byte character);
|
||||
void numberToString(int param1);
|
||||
void sub12F37();
|
||||
|
@ -299,16 +299,16 @@ public:
|
|||
void checkMapClosing(bool &forceReturnFl);
|
||||
void sub16B63(int index);
|
||||
void sub16B76(int index);
|
||||
void sub166C0(int index);
|
||||
void sub166C6(int index);
|
||||
void sub166CC(int index);
|
||||
void sub166D2(int index);
|
||||
void sub166B1(int index);
|
||||
void sub166B6(int index);
|
||||
void sub166BB(int index);
|
||||
void sub166D8(int index);
|
||||
void sub16B31(int index, int val);
|
||||
void sub16B8F(int index, int x, int y, int flag);
|
||||
void moveCharacterUp1(int index);
|
||||
void moveCharacterUp2(int index);
|
||||
void moveCharacterDown1(int index);
|
||||
void moveCharacterDown2(int index);
|
||||
void moveCharacterSpeed2(int index);
|
||||
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);
|
||||
byte sub1675D(int index, Common::Point var1);
|
||||
byte sub16729(int index, Common::Point var1);
|
||||
byte sub166F7(int index, Common::Point var1, int tmpVal);
|
||||
|
|
|
@ -2456,12 +2456,12 @@ void LilliputScript::OC_setCurrentCharacter() {
|
|||
_vm->setCurrentCharacter(var1);
|
||||
}
|
||||
|
||||
void LilliputScript::sub171AF(int var1, int var2, int var4) {
|
||||
debugC(2, kDebugScriptTBC, "sub171AF()");
|
||||
void LilliputScript::sub171AF(int16 var1, int16 var2, int16 var4) {
|
||||
debugC(2, kDebugScript, "sub171AF()");
|
||||
|
||||
int index = 0;
|
||||
for (int i = 0; i < 10; i++) {
|
||||
if (_vm->_array12861[index + 1] == 0xFFFF) {
|
||||
if (_vm->_array12861[index + 1] == -1) {
|
||||
_vm->_array12861[index + 1] = var1;
|
||||
_vm->_array12861[index + 2] = var2;
|
||||
_vm->_array12861[index + 0] = _vm->_word1289D + var4;
|
||||
|
@ -2493,11 +2493,11 @@ void LilliputScript::OC_sub17CA2() {
|
|||
}
|
||||
|
||||
void LilliputScript::OC_sub17CB9() {
|
||||
debugC(1, kDebugScriptTBC, "OC_sub17CB9()");
|
||||
debugC(1, kDebugScript, "OC_sub17CB9()");
|
||||
|
||||
int var4 = _currScript->readUint16LE();
|
||||
int var1 = getValue1();
|
||||
int var2 = _currScript->readUint16LE();
|
||||
int16 var4 = _currScript->readSint16LE();
|
||||
int16 var1 = getValue1();
|
||||
int16 var2 = _currScript->readSint16LE();
|
||||
var2 = ((var2 & 0xFF) << 8) + _vm->_currentScriptCharacter;
|
||||
|
||||
sub171AF(var1, var2, var4);
|
||||
|
|
|
@ -128,7 +128,7 @@ private:
|
|||
void displayNumber(byte var1, Common::Point pos);
|
||||
byte *getMapPtr(Common::Point val);
|
||||
byte *getCurrentCharacterVarFromScript();
|
||||
void sub171AF(int var1, int var2, int var4);
|
||||
void sub171AF(int16 var1, int16 var2, int16 var4);
|
||||
void sub18B7C(int var1, int var3);
|
||||
void sub189B8();
|
||||
void sub189F5();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue