Add actor transparency var for HE99 games.

svn-id: r15405
This commit is contained in:
Travis Howell 2004-10-04 06:20:10 +00:00
parent db63483001
commit 49a3691132
5 changed files with 15 additions and 2 deletions

View File

@ -139,6 +139,7 @@ void Actor::initActor(int mode) {
_clipOverride = _vm->_actorClipOverride;
auxBlock.visible = false;
transparency = 0;
_vm->_classData[number] = (_vm->_version >= 7) ? _vm->_classData[0] : 0;
}
@ -1075,6 +1076,7 @@ void Actor::drawActorCostume(bool hitTestMode) {
bcr->_draw_bottom = 0;
bcr->_skipLimb = (skipLimb != 0);
bcr->_transparency = transparency;
if (_vm->_heversion >= 80 && talkUnk == 0) {
condMask &= 0xFFFFFC00;

View File

@ -134,6 +134,7 @@ public:
CostumeData cost;
uint32 condMask;
bool talkUnk;
byte transparency;
AuxBlock auxBlock;
struct {

View File

@ -300,10 +300,15 @@ void AkosRenderer::setPalette(byte *new_palette) {
palette[i] = new_palette[i] != 0xFF ? new_palette[i] : akpl[i];
}
if (_transparency)
palette[0] = _transparency;
if (_vm->_heversion == 70 && size) {
for (i = 0; i < size; i++)
palette[i] = _vm->_HEV7ActorPalette[palette[i]];
} else if (size == 256) {
}
if (size == 256) {
byte color = new_palette[0];
if (color == 255) {
palette[0] = color;

View File

@ -62,6 +62,7 @@ public:
byte _scaleX, _scaleY;
int _draw_top, _draw_bottom;
byte _transparency;
bool _skipLimb;
bool _actorDrawVirScr;
@ -117,6 +118,7 @@ public:
_mirror = false;
_width = _height = 0;
_skipLimb = 0;
_transparency = 0;
_clipOverride.right = 0;
_clipOverride.left = 0;

View File

@ -1184,9 +1184,12 @@ void ScummEngine_v72he::o72_actorOps() {
a->talkPosY = pop();
a->talkPosX = pop();
break;
case 156: // HE 7.2
case 156: // HE 72+
a->charset = pop();
break;
case 175: // HE 99+
a->transparency = pop();
break;
case 198: // SO_ACTOR_VARIABLE
i = pop();
a->setAnimVar(pop(), i);