Skip to content

Commit

Permalink
LILLIPUT: Character rendering
Browse files Browse the repository at this point in the history
Characters are now rendered (no animation yet though)
  • Loading branch information
sylvaintv authored and sev- committed Mar 28, 2018
1 parent 9054e0f commit bbea84b
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 30 deletions.
52 changes: 26 additions & 26 deletions engines/lilliput/lilliput.cpp
Expand Up @@ -132,7 +132,7 @@ LilliputEngine::LilliputEngine(OSystem *syst, const LilliputGameDescription *gd)
_byte1714E = 0;
_byte12FCE = 0;
_byte129A0 = 0xFF;
_byte160FA = 0;
_numCharactersToDisplay = 0;
_byte16529 = 0;
_byte1652A = 0;
_byte12A04 = 0;
Expand Down Expand Up @@ -166,7 +166,7 @@ LilliputEngine::LilliputEngine(OSystem *syst, const LilliputGameDescription *gd)
for (int i = 0; i < 40; i++) {
_array10999[i] = 0;
_array109C1[i] = 0;
_array160FB[i] = 0;
_charactersToDisplay[i] = 0;
_array16173[i] = 0xFF;
_array1619B[i] = 0xFF;
_array161C3[i] = 0;
Expand Down Expand Up @@ -628,7 +628,7 @@ void LilliputEngine::displayCharactersOnMap() {
void LilliputEngine::sub16217() {
debugC(2, kDebugEngine, "sub16217()");

_byte160FA = 0;
_numCharactersToDisplay = 0;
int index = _word10807_ERULES - 1;
_word16213 = _scriptHandler->_word12A00 << 3;
_word16215 = _scriptHandler->_word12A02 << 3;
Expand Down Expand Up @@ -668,29 +668,29 @@ void LilliputEngine::sub16217() {
_array161C3[i] = 0xFF;
_array161EB[i] = 0xFF;

int tmpVal2 = _rulesBuffer2_1[i] - _scriptHandler->_word12A00;
int tmpVal3 = _rulesBuffer2_2[i] - _scriptHandler->_word12A02;
int tmpVal2 = (_rulesBuffer2_1[i] >> 3) - _scriptHandler->_word12A00;
int tmpVal3 = (_rulesBuffer2_2[i] >> 3) - _scriptHandler->_word12A02;
if ((tmpVal2 >= 0) && (tmpVal2 <= 7) && (tmpVal3 >= 0) && (tmpVal3 <= 7)) {
_array16173[i] = tmpVal2;
_array1619B[i] = tmpVal3;
tmpVal2 = _rulesBuffer2_1[i] - _word16213;
tmpVal3 = _rulesBuffer2_2[i] - _word16213;
tmpVal3 = _rulesBuffer2_2[i] - _word16215;
int tmpVal4 = _rulesBuffer2_3[i];
_array161C3[i] = ((60 + tmpVal2 - tmpVal3) * 2) & 0xFF;
_array161EB[i] = (20 + tmpVal2 + tmpVal3 - tmpVal4) & 0xFF;
_array160FB[_byte160FA] = i;
++_byte160FA;
}
_charactersToDisplay[_numCharactersToDisplay] = i;
++_numCharactersToDisplay;
}
}

sub16323();
sortCharacters();
}

void LilliputEngine::sub1652B(int var1) {
debugC(2, kDebugEngine, "sub1652B(%d)", var1);

if (_byte160FA < (var1 & 0xFF)) {
int index = _array160FB[var1 & 0xFF];
if ( (var1 & 0xFF) < _numCharactersToDisplay) {
int index = _charactersToDisplay[var1 & 0xFF];
_byte16529 = _array16173[index];
_byte1652A = _array1619B[index];
} else {
Expand Down Expand Up @@ -720,7 +720,7 @@ void LilliputEngine::displayFunction15() {
var1 += _scriptHandler->_byte12A04;
displayFunction13(_buffer1_45k, var1, tmpVal, 1 << 8);
}
sub16553(map);
sub16553(map, j, i);

if (map[2] != 0xFF) {
int var1 = map[2];
Expand Down Expand Up @@ -960,19 +960,19 @@ void LilliputEngine::displayChar(int index, int var1) {

}

void LilliputEngine::sub16323() {
void LilliputEngine::sortCharacters() {
debugC(2, kDebugEngine, "sub16323()");

if (_byte160FA <= 1)
if (_numCharactersToDisplay <= 1)
return;

int var3;
for (int var4 = _byte160FA - 1; var4 != 0; var4--) {
for (int var4 = _numCharactersToDisplay - 1; var4 != 0; var4--) {
var3 = 0;

for (int var2 = 0; var2 < var4; var2++) {
int index1 = _array160FB[var2];
int index2 = _array160FB[var2 + 1];
int index1 = _charactersToDisplay[var2];
int index2 = _charactersToDisplay[var2 + 1];

if (_array1619B[index1] < _array1619B[index2])
continue;
Expand All @@ -992,9 +992,9 @@ void LilliputEngine::sub16323() {
}
}

byte tmpVal = _array160FB[var2];
_array160FB[var2] = _array160FB[var2 + 1];
_array160FB[var2 + 1] = tmpVal;
byte tmpVal = _charactersToDisplay[var2];
_charactersToDisplay[var2] = _charactersToDisplay[var2 + 1];
_charactersToDisplay[var2 + 1] = tmpVal;
++var3;
}

Expand Down Expand Up @@ -1082,10 +1082,10 @@ void LilliputEngine::sub163F0(int var1, int var3) {
_soundHandler->contentFct5();
}

void LilliputEngine::sub16553(byte *buf) {
void LilliputEngine::sub16553(byte *buf, int x, int y) {
debugC(2, kDebugEngine, "sub16553()");

if ((_byte16529 != 0) || (_byte1652A != 0))
if ((_byte16529 != x) || (_byte1652A != y))
return;

_byte16552 = 0;
Expand All @@ -1096,7 +1096,7 @@ void LilliputEngine::sub16553(byte *buf) {
++_byte16552;
}

int index = _array160FB[_word16550];
int index = _charactersToDisplay[_word16550];
int var2 = (_array161C3[index] << 8) + _array161EB[index];

if (index == _scriptHandler->_word1881B)
Expand All @@ -1117,14 +1117,14 @@ void LilliputEngine::sub16553(byte *buf) {
var1 = -var1;
}

warning("sub_152FC");
displayFunction18(var1, var2, var3);
}
}

++_word16550;
sub1652B(_word16550);

sub16553(buf);
sub16553(buf, x, y);
}

void LilliputEngine::sub189DE() {
Expand Down
8 changes: 4 additions & 4 deletions engines/lilliput/lilliput.h
Expand Up @@ -185,7 +185,7 @@ class LilliputEngine : public Engine {
byte _array10999[40];
byte _array109C1[40];
byte _array15AC8[256];
byte _array160FB[40];
byte _charactersToDisplay[40];
byte _array16173[40];
byte _array1619B[40];
byte _array161C3[40];
Expand Down Expand Up @@ -228,13 +228,13 @@ class LilliputEngine : public Engine {
void displayString(byte *buf, int var2, int var4);
void displayChar(int index, int var1);

void sub16323();
void sortCharacters();
void sub1638C();
void sub163F0(int var1, int var3);
void sub189DE();
void sub16626();

void sub16553(byte *buf);
void sub16553(byte *buf, int x, int y);
int sub16799(int param1, int index);
int sub16B0C(int param1, int param2);
void sub18A3E(byte param1);
Expand Down Expand Up @@ -290,7 +290,7 @@ class LilliputEngine : public Engine {
byte _byte16F07_menuId;
byte _byte12FCE;
byte _byte129A0;
byte _byte160FA;
byte _numCharactersToDisplay;
byte _byte16C9F;
int _word10804;
int _word16213;
Expand Down

0 comments on commit bbea84b

Please sign in to comment.