From cba25ea458e428d2e9c1e6e30bb86a5c9da72b54 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Mon, 23 Feb 2015 19:35:24 -0500 Subject: XEEN: Fix placement of enemies --- engines/xeen/interface_map.cpp | 64 +++++++++++++++++++++++++++++++++++++++++- engines/xeen/sprites.cpp | 4 +-- 2 files changed, 64 insertions(+), 4 deletions(-) (limited to 'engines/xeen') diff --git a/engines/xeen/interface_map.cpp b/engines/xeen/interface_map.cpp index 249dc3a42b..a54b95fb64 100644 --- a/engines/xeen/interface_map.cpp +++ b/engines/xeen/interface_map.cpp @@ -2555,6 +2555,68 @@ void InterfaceMap::setIndoorsMonsters() { } } } + + _indoorList[153]._x += 58; + _indoorList[131]._x += 25; + _indoorList[105]._x += 9; + _indoorList[69]._x--; + _indoorList[61]._x -= 26; + _indoorList[64]._x += 23; + _indoorList[66]._x -= 58; + _indoorList[67]._x += 40; + _indoorList[100]._x -= 65; + _indoorList[101]._x -= 85; + _indoorList[102]._x += 49; + _indoorList[103]._x += 65; + _indoorList[128]._x -= 112; + _indoorList[129]._x += 98; + + if (combat._attackMonsters[1] != -1 && combat._attackMonsters[2] == -1) { + _indoorList[156]._x += 31; + _indoorList[150]._x -= 36; + } else { + _indoorList[156]._x -= 5; + _indoorList[150]._x -= 67; + } + + if (combat._attackMonsters[4] != -1 && combat._attackMonsters[5] == -1) { + _indoorList[132]._x += 8; + _indoorList[130]._x -= 23; + } else { + _indoorList[132]._x -= 7; + _indoorList[130]._x -= 38; + } + + if (combat._attackMonsters[7] != -1 && combat._attackMonsters[8] == -1) { + _indoorList[104]._x -= 16; + } else { + _indoorList[106]._x -= 8; + _indoorList[104]._x -= 24; + } + + if (combat._attackMonsters[10] != -1 && combat._attackMonsters[11] == -1) { + _indoorList[70]._x -= 5; + _indoorList[68]._x -= 13; + } else { + _indoorList[70]._x -= 9; + _indoorList[68]._x -= 17; + } + + if (combat._attackMonsters[22] == -1 && combat._attackMonsters[24] == -1) { + _indoorList[62]._x -= 27; + _indoorList[60]._x -= 37; + } else { + _indoorList[62]._x -= 34; + _indoorList[60]._x -= 41; + } + + if (combat._attackMonsters[23] != -1 && combat._attackMonsters[25] == -1) { + _indoorList[65]._x += 20; + _indoorList[63]._x -= 12; + } else { + _indoorList[65]._x += 16; + _indoorList[63]._x -= 16; + } } /** @@ -2577,7 +2639,7 @@ void InterfaceMap::setMonsterSprite(DrawStruct &drawStruct, MazeMonster &monster drawStruct._x = 0; } - drawStruct._flags &= SPRFLAG_HORIZ_FLIPPED | SPRFLAG_4000 | SPRFLAG_2000; + drawStruct._flags &= ~0xFFF; if (monster._effect2) drawStruct._flags = MONSTER_EFFECT_FLAGS[monster._effect2][monster._effect3]; } diff --git a/engines/xeen/sprites.cpp b/engines/xeen/sprites.cpp index 597d4dff8e..b596432992 100644 --- a/engines/xeen/sprites.cpp +++ b/engines/xeen/sprites.cpp @@ -134,9 +134,7 @@ void SpriteResource::drawOffset(XSurface &dest, uint16 offset, const Common::Poi setupScaling(newScale, xOffset + width, yOffset + height); Common::Point destPos = pt; - if (!(flags & SPRFLAG_2000)) { - destPos.x += (xOffset + width - _scaledWidth) / 2; - } + destPos.x += (xOffset + width - _scaledWidth) / 2; bool flipped = (flags & SPRFLAG_HORIZ_FLIPPED) != 0; int xInc = flipped ? -1 : 1; -- cgit v1.2.3