mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-24 11:36:22 +00:00
Fix glitch when skipping AUX sequence in freddi.
Add missing bits of AUX code. svn-id: r17837
This commit is contained in:
parent
2c01219791
commit
f6971f847c
@ -147,6 +147,10 @@ void Actor::initActor(int mode) {
|
||||
_clipOverride = _vm->_actorClipOverride;
|
||||
|
||||
_auxBlock.visible = false;
|
||||
_auxBlock.r.left = 0;
|
||||
_auxBlock.r.top = 0;
|
||||
_auxBlock.r.right = -1;
|
||||
_auxBlock.r.bottom = -1;
|
||||
_hePaletteNum = 0;
|
||||
|
||||
_vm->_classData[_number] = (_vm->_version >= 7) ? _vm->_classData[0] : 0;
|
||||
@ -502,6 +506,10 @@ void Actor::startAnimActor(int f) {
|
||||
if (_vm->_version >= 3 && f == _initFrame) {
|
||||
_cost.reset();
|
||||
_auxBlock.visible = false;
|
||||
_auxBlock.r.left = 0;
|
||||
_auxBlock.r.top = 0;
|
||||
_auxBlock.r.right = -1;
|
||||
_auxBlock.r.bottom = -1;
|
||||
}
|
||||
_vm->_costumeLoader->costumeDecodeData(this, f, (uint) - 1);
|
||||
_frame = f;
|
||||
@ -793,6 +801,10 @@ void Actor::hideActor() {
|
||||
_needRedraw = false;
|
||||
_needBgReset = true;
|
||||
_auxBlock.visible = false;
|
||||
_auxBlock.r.left = 0;
|
||||
_auxBlock.r.top = 0;
|
||||
_auxBlock.r.right = -1;
|
||||
_auxBlock.r.bottom = -1;
|
||||
}
|
||||
|
||||
void Actor::showActor() {
|
||||
@ -1397,14 +1409,19 @@ void Actor::setActorCostume(int c) {
|
||||
_costumeNeedsInit = true;
|
||||
|
||||
if (_vm->_features & GF_NEW_COSTUMES) {
|
||||
_cost.reset();
|
||||
_auxBlock.visible = false;
|
||||
memset(_animVariable, 0, sizeof(_animVariable));
|
||||
_costume = c;
|
||||
|
||||
if (_vm->_heversion >= 71)
|
||||
_vm->queueAuxBlock(this);
|
||||
|
||||
_costume = c;
|
||||
_cost.reset();
|
||||
_auxBlock.visible = false;
|
||||
_auxBlock.r.left = 0;
|
||||
_auxBlock.r.top = 0;
|
||||
_auxBlock.r.right = -1;
|
||||
_auxBlock.r.bottom = -1;
|
||||
|
||||
if (_visible) {
|
||||
if (_costume) {
|
||||
_vm->ensureResourceLoaded(rtCostume, _costume);
|
||||
@ -1989,7 +2006,7 @@ void ScummEngine::postProcessAuxQueue() {
|
||||
int y1 = (int16)READ_LE_UINT16(axur + 2) + dy;
|
||||
int x2 = (int16)READ_LE_UINT16(axur + 4) + dx;
|
||||
int y2 = (int16)READ_LE_UINT16(axur + 6) + dy;
|
||||
markRectAsDirty(kMainVirtScreen, x1, x2, y1, y2 + 1, a->_number);
|
||||
markRectAsDirty(kMainVirtScreen, x1, x2, y1, y2 + 1);
|
||||
axur += 8;
|
||||
}
|
||||
}
|
||||
|
@ -65,7 +65,7 @@ static const byte default_cursor_hotspots[10] = {
|
||||
8, 7, //zak256
|
||||
};
|
||||
|
||||
static const uint16 default_he_cursor[] = {
|
||||
static const uint16 default_he_cursor[64] = {
|
||||
0x0000, 0x0000, 0x3800, 0x0000, 0x7e00, 0x0000, 0x5f80, 0x0000,
|
||||
0x5fe0, 0x0000, 0x2ff8, 0x0000, 0x27fe, 0x0000, 0x17ff, 0x8000,
|
||||
0x13ff, 0xe000, 0x09ff, 0xf000, 0x09ff, 0xf800, 0x04ff, 0xf800,
|
||||
|
@ -796,6 +796,13 @@ void ScummEngine_v70he::o70_kernelSetFunctions() {
|
||||
_skipProcessActors = 0;
|
||||
redrawAllActors();
|
||||
break;
|
||||
case 26:
|
||||
a = derefActor(args[1], "o70_kernelSetFunctions: 26");
|
||||
a->_auxBlock.r.left = 0;
|
||||
a->_auxBlock.r.top = 0;
|
||||
a->_auxBlock.r.right = -1;
|
||||
a->_auxBlock.r.bottom = -1;
|
||||
break;
|
||||
case 30:
|
||||
a = derefActor(args[1], "o70_kernelSetFunctions: 30");
|
||||
a->_clipOverride.bottom = args[2];
|
||||
|
Loading…
x
Reference in New Issue
Block a user