GOB: yet more int16->uint16 changes, to accommodate for Playtoons/Adibou2 larger variable space
This makes the Playtoons-like minigame in Adibou2 playable (with glitches).
This commit is contained in:
parent
962e9f9386
commit
97a66c329e
8 changed files with 15 additions and 15 deletions
|
@ -575,7 +575,7 @@ bool Expression::getVarBase(uint32 &varBase, bool mindStop,
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
int16 Expression::parseVarIndex(uint16 *size, uint16 *type) {
|
uint16 Expression::parseVarIndex(uint16 *size, uint16 *type) {
|
||||||
int16 temp2;
|
int16 temp2;
|
||||||
byte *arrDesc;
|
byte *arrDesc;
|
||||||
int16 dim;
|
int16 dim;
|
||||||
|
|
|
@ -114,7 +114,7 @@ public:
|
||||||
void printExpr(char stopToken);
|
void printExpr(char stopToken);
|
||||||
void printVarIndex();
|
void printVarIndex();
|
||||||
|
|
||||||
int16 parseVarIndex(uint16 *size = 0, uint16 *type = 0);
|
uint16 parseVarIndex(uint16 *size = 0, uint16 *type = 0);
|
||||||
int16 parseValExpr(byte stopToken = 99);
|
int16 parseValExpr(byte stopToken = 99);
|
||||||
int16 parseExpr(byte stopToken, byte *type);
|
int16 parseExpr(byte stopToken, byte *type);
|
||||||
|
|
||||||
|
|
|
@ -616,7 +616,7 @@ void Inter_v2::o2_pushVars() {
|
||||||
void Inter_v2::o2_popVars() {
|
void Inter_v2::o2_popVars() {
|
||||||
uint8 count = _vm->_game->_script->readByte();
|
uint8 count = _vm->_game->_script->readByte();
|
||||||
for (int i = 0; i < count; i++) {
|
for (int i = 0; i < count; i++) {
|
||||||
int16 varOff = _vm->_game->_script->readVarIndex();
|
uint16 varOff = _vm->_game->_script->readVarIndex();
|
||||||
|
|
||||||
_varStack.pop(*_variables, varOff);
|
_varStack.pop(*_variables, varOff);
|
||||||
}
|
}
|
||||||
|
@ -977,11 +977,11 @@ void Inter_v2::o2_playImd() {
|
||||||
void Inter_v2::o2_getImdInfo() {
|
void Inter_v2::o2_getImdInfo() {
|
||||||
Common::String imd = _vm->_game->_script->evalString();
|
Common::String imd = _vm->_game->_script->evalString();
|
||||||
|
|
||||||
int16 varX = _vm->_game->_script->readVarIndex();
|
uint16 varX = _vm->_game->_script->readVarIndex();
|
||||||
int16 varY = _vm->_game->_script->readVarIndex();
|
uint16 varY = _vm->_game->_script->readVarIndex();
|
||||||
int16 varFrames = _vm->_game->_script->readVarIndex();
|
uint16 varFrames = _vm->_game->_script->readVarIndex();
|
||||||
int16 varWidth = _vm->_game->_script->readVarIndex();
|
uint16 varWidth = _vm->_game->_script->readVarIndex();
|
||||||
int16 varHeight = _vm->_game->_script->readVarIndex();
|
uint16 varHeight = _vm->_game->_script->readVarIndex();
|
||||||
|
|
||||||
// WORKAROUND: The nut rolling animation in the administration center
|
// WORKAROUND: The nut rolling animation in the administration center
|
||||||
// in Woodruff is called "noixroul", but the scripts think it's "noixroule".
|
// in Woodruff is called "noixroul", but the scripts think it's "noixroule".
|
||||||
|
|
|
@ -214,7 +214,7 @@ void Inter_v5::o5_initScreen() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Inter_v5::o5_istrlen(OpFuncParams ¶ms) {
|
void Inter_v5::o5_istrlen(OpFuncParams ¶ms) {
|
||||||
int16 strVar1, strVar2;
|
uint16 strVar1, strVar2;
|
||||||
int16 len;
|
int16 len;
|
||||||
uint16 type;
|
uint16 type;
|
||||||
|
|
||||||
|
|
|
@ -261,7 +261,7 @@ char *Script::peekString(int32 offset) {
|
||||||
return (char *)(_totPtr + offset);
|
return (char *)(_totPtr + offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
int16 Script::readVarIndex(uint16 *size, uint16 *type) {
|
uint16 Script::readVarIndex(uint16 *size, uint16 *type) {
|
||||||
return _expression->parseVarIndex(size, type);
|
return _expression->parseVarIndex(size, type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -74,7 +74,7 @@ public:
|
||||||
char *peekString(int32 offset = 0);
|
char *peekString(int32 offset = 0);
|
||||||
|
|
||||||
// Expression parsing functions
|
// Expression parsing functions
|
||||||
int16 readVarIndex(uint16 *size = 0, uint16 *type = 0);
|
uint16 readVarIndex(uint16 *size = 0, uint16 *type = 0);
|
||||||
int16 readValExpr(byte stopToken = 99);
|
int16 readValExpr(byte stopToken = 99);
|
||||||
int16 readExpr(byte stopToken, byte *type);
|
int16 readExpr(byte stopToken, byte *type);
|
||||||
void skipExpr(char stopToken);
|
void skipExpr(char stopToken);
|
||||||
|
|
|
@ -694,8 +694,8 @@ int32 VideoPlayer::getSubtitleIndex(int slot) const {
|
||||||
return video->decoder->getSubtitleIndex();
|
return video->decoder->getSubtitleIndex();
|
||||||
}
|
}
|
||||||
|
|
||||||
void VideoPlayer::writeVideoInfo(const Common::String &file, int16 varX, int16 varY,
|
void VideoPlayer::writeVideoInfo(const Common::String &file, uint16 varX, uint16 varY,
|
||||||
int16 varFrames, int16 varWidth, int16 varHeight) {
|
uint16 varFrames, uint16 varWidth, uint16 varHeight) {
|
||||||
|
|
||||||
Properties properties;
|
Properties properties;
|
||||||
|
|
||||||
|
|
|
@ -148,8 +148,8 @@ public:
|
||||||
|
|
||||||
int32 getSubtitleIndex(int slot = 0) const;
|
int32 getSubtitleIndex(int slot = 0) const;
|
||||||
|
|
||||||
void writeVideoInfo(const Common::String &file, int16 varX, int16 varY,
|
void writeVideoInfo(const Common::String &file, uint16 varX, uint16 varY,
|
||||||
int16 varFrames, int16 varWidth, int16 varHeight);
|
uint16 varFrames, uint16 varWidth, uint16 varHeight);
|
||||||
|
|
||||||
bool copyFrame(int slot, Surface &dest,
|
bool copyFrame(int slot, Surface &dest,
|
||||||
uint16 left, uint16 top, uint16 width, uint16 height, uint16 x, uint16 y,
|
uint16 left, uint16 top, uint16 width, uint16 height, uint16 x, uint16 y,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue