aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2015-01-14 20:39:56 -0500
committerPaul Gilbert2015-01-14 20:39:56 -0500
commite6383519a167eebdbf5877e81c2e9e32e6a101a3 (patch)
tree72c8495fb30449f59466310aadc926a02b1cd99e
parent5f2e145580ae4c10fd384933ae65b66215779fd9 (diff)
downloadscummvm-rg350-e6383519a167eebdbf5877e81c2e9e32e6a101a3.tar.gz
scummvm-rg350-e6383519a167eebdbf5877e81c2e9e32e6a101a3.tar.bz2
scummvm-rg350-e6383519a167eebdbf5877e81c2e9e32e6a101a3.zip
XEEN: Split in-game scene draw code into a separate file
-rw-r--r--engines/xeen/interface.cpp1679
-rw-r--r--engines/xeen/interface.h76
-rw-r--r--engines/xeen/interface_map.cpp1704
-rw-r--r--engines/xeen/interface_map.h118
-rw-r--r--engines/xeen/module.mk1
5 files changed, 1831 insertions, 1747 deletions
diff --git a/engines/xeen/interface.cpp b/engines/xeen/interface.cpp
index ec66434c5f..deb8761b06 100644
--- a/engines/xeen/interface.cpp
+++ b/engines/xeen/interface.cpp
@@ -27,340 +27,7 @@
namespace Xeen {
-OutdoorDrawList::OutdoorDrawList() : _skySprite(_data[1]), _groundSprite(_data[2]) {
- _data[0] = DrawStruct(0, 8, 8);
- _data[1] = DrawStruct(1, 8, 25);
- _data[2] = DrawStruct(0, 8, 67);
- _data[3] = DrawStruct(0, 8, 67);
- _data[4] = DrawStruct(0, 38, 67);
- _data[5] = DrawStruct(0, 84, 67);
- _data[6] = DrawStruct(0, 134, 67);
- _data[7] = DrawStruct(0, 117, 67);
- _data[8] = DrawStruct(0, 117, 67);
- _data[9] = DrawStruct(0, 103, 67);
- _data[10] = DrawStruct(0, 8, 73);
- _data[11] = DrawStruct(0, 8, 73);
- _data[12] = DrawStruct(0, 30, 73);
- _data[13] = DrawStruct(0, 181, 73);
- _data[14] = DrawStruct(0, 154, 73);
- _data[15] = DrawStruct(0, 129, 73);
- _data[16] = DrawStruct(0, 87, 73);
- _data[17] = DrawStruct(0, 8, 81);
- _data[18] = DrawStruct(0, 8, 81);
- _data[19] = DrawStruct(0, 202, 81);
- _data[20] = DrawStruct(0, 145, 81);
- _data[21] = DrawStruct(0, 63, 81);
- _data[22] = DrawStruct(0, 8, 93);
- _data[23] = DrawStruct(0, 169, 93);
- _data[24] = DrawStruct(0, 31, 93);
- _data[25] = DrawStruct(0, 8, 109);
- _data[26] = DrawStruct(0, 201, 109);
- _data[27] = DrawStruct(0, 8, 109);
- _data[28] = DrawStruct(1, 65472, 61, 14, SPRFLAG_2000);
- _data[29] = DrawStruct(1, 65496, 61, 14, 0);
- _data[30] = DrawStruct(1, 65520, 61, 14, 0);
- _data[31] = DrawStruct(1, 8, 61, 14, 0);
- _data[32] = DrawStruct(1, 128, 61, 14, SPRFLAG_HORIZ_FLIPPED | SPRFLAG_2000);
- _data[33] = DrawStruct(1, 104, 61, 14, SPRFLAG_HORIZ_FLIPPED);
- _data[34] = DrawStruct(1, 80, 61, 14, SPRFLAG_HORIZ_FLIPPED);
- _data[35] = DrawStruct(1, 56, 61, 14, SPRFLAG_HORIZ_FLIPPED);
- _data[36] = DrawStruct(1, 32, 61, 14, 0);
- _data[37] = DrawStruct(0, 65527, 61, 14, 0);
- _data[38] = DrawStruct(0, 65478, 61, 14, 0);
- _data[39] = DrawStruct(0, 40, 61, 14, 0);
- _data[40] = DrawStruct(0, 65454, 61, 14, 0);
- _data[41] = DrawStruct(0, 64, 61, 14, 0);
- _data[42] = DrawStruct(0, 65495, 61, 14, 0);
- _data[43] = DrawStruct(0, 65510, 61, 14, 0);
- _data[44] = DrawStruct(0, 65502, 61, 14, 0);
- _data[45] = DrawStruct(0, 65520, 61, 14, 0);
- _data[46] = DrawStruct(0, 23, 61, 14, 0);
- _data[47] = DrawStruct(0, 16, 61, 14, 0);
- _data[48] = DrawStruct(0, 65478, 61, 14, 0);
- _data[49] = DrawStruct(0, 40, 61, 14, 0);
- _data[50] = DrawStruct(0, 65519, 61, 14, 0);
- _data[51] = DrawStruct(0, 65535, 58, 14, 0);
- _data[52] = DrawStruct(0, 65527, 58, 14, 0);
- _data[53] = DrawStruct(0, 72, 58, 12, 0);
- _data[54] = DrawStruct(0, 72, 58, 12, SPRFLAG_HORIZ_FLIPPED);
- _data[55] = DrawStruct(0, 69, 63, 12, 0);
- _data[56] = DrawStruct(0, 75, 63, 12, SPRFLAG_HORIZ_FLIPPED);
- _data[57] = DrawStruct(0, 73, 53, 12, 0);
- _data[58] = DrawStruct(0, 71, 53, 12, SPRFLAG_HORIZ_FLIPPED);
- _data[59] = DrawStruct(0, 80, 57, 12, 0);
- _data[60] = DrawStruct(0, 64, 57, 12, SPRFLAG_HORIZ_FLIPPED);
- _data[61] = DrawStruct(2, 65525, 54, 8, 0);
- _data[62] = DrawStruct(1, 65515, 54, 11, 0);
- _data[63] = DrawStruct(2, 165, 54, 8, SPRFLAG_HORIZ_FLIPPED);
- _data[64] = DrawStruct(1, 86, 54, 11, SPRFLAG_HORIZ_FLIPPED);
- _data[65] = DrawStruct(1, 33, 54, 11, 0);
- _data[66] = DrawStruct(0, 65528, 54, 12, 0);
- _data[67] = DrawStruct(0, 65463, 54, 12, 0);
- _data[68] = DrawStruct(0, 57, 54, 12, 0);
- _data[69] = DrawStruct(0, 65471, 54, 12, 0);
- _data[70] = DrawStruct(0, 65455, 54, 12, 0);
- _data[71] = DrawStruct(0, 49, 54, 12, 0);
- _data[72] = DrawStruct(0, 65, 54, 12, 0);
- _data[73] = DrawStruct(0, 65512, 54, 12, 0);
- _data[74] = DrawStruct(0, 9, 50, 12, 0);
- _data[75] = DrawStruct(0, 65528, 50, 12, 0);
- _data[76] = DrawStruct(0, 72, 53, 8, 0);
- _data[77] = DrawStruct(0, 72, 53, 8, SPRFLAG_HORIZ_FLIPPED);
- _data[78] = DrawStruct(0, 77, 58, 8, 0);
- _data[79] = DrawStruct(0, 67, 58, 8, SPRFLAG_HORIZ_FLIPPED);
- _data[80] = DrawStruct(0, 81, 47, 8, 0);
- _data[81] = DrawStruct(0, 63, 47, 8, SPRFLAG_HORIZ_FLIPPED);
- _data[82] = DrawStruct(0, 94, 52, 8, 0);
- _data[83] = DrawStruct(0, 50, 52, 8, SPRFLAG_HORIZ_FLIPPED);
- _data[84] = DrawStruct(2, 8, 40);
- _data[85] = DrawStruct(2, 146, 40, 0, SPRFLAG_HORIZ_FLIPPED);
- _data[86] = DrawStruct(1, 32, 40, 6, 0);
- _data[87] = DrawStruct(0, 65529, 30, 7, 0);
- _data[88] = DrawStruct(0, 65424, 30, 7, SPRFLAG_2000);
- _data[89] = DrawStruct(0, 98, 30, 7, SPRFLAG_2000);
- _data[90] = DrawStruct(0, 65424, 30, 8, SPRFLAG_2000);
- _data[91] = DrawStruct(0, 98, 30, 8, SPRFLAG_2000);
- _data[92] = DrawStruct(0, 65498, 30, 8, 0);
- _data[93] = DrawStruct(0, 25, 30, 8, 0);
- _data[94] = DrawStruct(0, 65529, 30, 8, 0);
- _data[95] = DrawStruct(0, 72, 48, 4, 0);
- _data[96] = DrawStruct(0, 72, 48, 4, SPRFLAG_HORIZ_FLIPPED);
- _data[97] = DrawStruct(0, 85, 53, 4, 0);
- _data[98] = DrawStruct(0, 59, 53, 4, SPRFLAG_HORIZ_FLIPPED);
- _data[99] = DrawStruct(0, 89, 41, 4, 0);
- _data[100] = DrawStruct(0, 55, 41, 4, SPRFLAG_HORIZ_FLIPPED);
- _data[101] = DrawStruct(0, 106, 47, 4, 0);
- _data[102] = DrawStruct(0, 38, 47, 4, SPRFLAG_HORIZ_FLIPPED);
- _data[103] = DrawStruct(0, 8, 24);
- _data[104] = DrawStruct(0, 169, 24, 0, SPRFLAG_HORIZ_FLIPPED);
- _data[105] = DrawStruct(1, 32, 24);
- _data[106] = DrawStruct(0, 65513, 40, 0, SPRFLAG_2000);
- _data[107] = DrawStruct(0, 200, 40, 0, SPRFLAG_HORIZ_FLIPPED | SPRFLAG_2000);
- _data[108] = DrawStruct(0, 8, 47);
- _data[109] = DrawStruct(0, 169, 47, 0, SPRFLAG_HORIZ_FLIPPED);
- _data[110] = DrawStruct(1, 65480, 65532, 32768, SPRFLAG_4000 | SPRFLAG_2000);
- _data[111] = DrawStruct(0, 65531, 2, 0, SPRFLAG_4000 | SPRFLAG_2000);
- _data[112] = DrawStruct(0, 65469, 2, 0, SPRFLAG_4000 | SPRFLAG_2000);
- _data[113] = DrawStruct(0, 44, 73);
- _data[114] = DrawStruct(0, 44, 73);
- _data[115] = DrawStruct(0, 58, 14, 0, SPRFLAG_4000 | SPRFLAG_2000);
- _data[116] = DrawStruct(0, 169, 73);
- _data[117] = DrawStruct(0, 169, 73);
- _data[118] = DrawStruct(0, 65531, 14, 0, SPRFLAG_4000 | SPRFLAG_2000);
- _data[119] = DrawStruct(0, 110, 73);
- _data[120] = DrawStruct(0, 110, 73);
- _data[121] = DrawStruct(0, 65531, 14, 0, SPRFLAG_4000 | SPRFLAG_2000);
- _data[122] = DrawStruct(0, 110, 73);
- _data[123] = DrawStruct(0, 110, 73);
- _data[124] = DrawStruct(0, 72, 43);
- _data[125] = DrawStruct(0, 72, 43, 0, SPRFLAG_HORIZ_FLIPPED);
- _data[126] = DrawStruct(0, 93, 48);
- _data[127] = DrawStruct(0, 51, 48, 0, SPRFLAG_HORIZ_FLIPPED);
- _data[128] = DrawStruct(0, 97, 36);
- _data[129] = DrawStruct(0, 47, 36, 0, SPRFLAG_HORIZ_FLIPPED);
- _data[130] = DrawStruct(0, 118, 42);
- _data[131] = DrawStruct(0, 26, 42, 0, SPRFLAG_HORIZ_FLIPPED);
-}
-
-/*------------------------------------------------------------------------*/
-
-IndoorDrawList::IndoorDrawList() :
- _sky(_data[1]), _ground(_data[2]), _horizon(_data[28]),
- _swl_0F1R(_data[ 46]), _swl_0F1L(_data[44]), _swl_1F1R(_data[134]),
- _swl_1F1L(_data[133]), _swl_2F2R(_data[110]), _swl_2F1R(_data[109]),
- _swl_2F1L(_data[108]), _swl_2F2L(_data[107]), _swl_3F1R(_data[ 78]),
- _swl_3F2R(_data[ 77]), _swl_3F3R(_data[ 76]), _swl_3F4R(_data[ 75]),
- _swl_3F1L(_data[ 74]), _swl_3F2L(_data[ 73]), _swl_3F3L(_data[ 72]),
- _swl_3F4L(_data[ 71]), _swl_4F4R(_data[ 33]), _swl_4F3R(_data[ 34]),
- _swl_4F2R(_data[ 35]), _swl_4F1R(_data[ 36]), _swl_4F1L(_data[ 32]),
- _swl_4F2L(_data[ 31]), _swl_4F3L(_data[ 30]), _swl_4F4L(_data[ 29]),
- _fwl_4F4R(_data[ 45]), _fwl_4F3R(_data[ 44]), _fwl_4F2R(_data[ 43]),
- _fwl_4F1R(_data[ 42]), _fwl_4F( _data[ 41]), _fwl_4F1L(_data[ 40]),
- _fwl_4F2L(_data[ 39]), _fwl_4F3L(_data[ 38]), _fwl_4F4L(_data[ 37]),
- _fwl_2F1R(_data[121]), _fwl_2F( _data[120]), _fwl_2F1L(_data[119]),
- _fwl_3F2R(_data[ 91]), _fwl_3F1R(_data[ 90]), _fwl_3F( _data[ 89]),
- _fwl_3F1L(_data[ 88]), _fwl_3F2L(_data[ 87]), _fwl_1F( _data[147]),
- _fwl_1F1R(_data[145]), _fwl_1F1L(_data[143]),
- _objects0(_data[149]), _objects1(_data[125]), _objects2(_data[126]),
- _objects3(_data[127]), _objects4(_data[97]), _objects5(_data[98]),
- _objects6(_data[99]), _objects7(_data[55]), _objects8(_data[56]),
- _objects9(_data[58]), _objects10(_data[57]), _objects11(_data[59]) {
- // Setup draw structure positions
- _data[0] = DrawStruct(0, 8, 8);
- _data[1] = DrawStruct(1, 8, 25);
- _data[2] = DrawStruct(0, 8, 67);
- _data[3] = DrawStruct(0, 8, 67);
- _data[4] = DrawStruct(0, 38, 67);
- _data[5] = DrawStruct(0, 84, 67);
- _data[6] = DrawStruct(0, 134, 67);
- _data[7] = DrawStruct(0, 117, 67);
- _data[8] = DrawStruct(0, 117, 67);
- _data[9] = DrawStruct(0, 103, 67);
- _data[10] = DrawStruct(0, 8, 73);
- _data[11] = DrawStruct(0, 8, 73);
- _data[12] = DrawStruct(0, 30, 73);
- _data[13] = DrawStruct(0, 181, 73);
- _data[14] = DrawStruct(0, 154, 73);
- _data[15] = DrawStruct(0, 129, 73);
- _data[16] = DrawStruct(0, 87, 73);
- _data[17] = DrawStruct(0, 8, 81);
- _data[18] = DrawStruct(0, 8, 81);
- _data[19] = DrawStruct(0, 202, 81);
- _data[20] = DrawStruct(0, 145, 81);
- _data[21] = DrawStruct(0, 63, 81);
- _data[22] = DrawStruct(0, 8, 93);
- _data[23] = DrawStruct(0, 169, 93);
- _data[24] = DrawStruct(0, 31, 93);
- _data[25] = DrawStruct(0, 8, 109);
- _data[26] = DrawStruct(0, 201, 109);
- _data[27] = DrawStruct(0, 8, 109);
- _data[28] = DrawStruct(7, 8, 64);
- _data[29] = DrawStruct(22, 32, 60);
- _data[30] = DrawStruct(20, 56, 60);
- _data[31] = DrawStruct(18, 80, 60);
- _data[32] = DrawStruct(16, 104, 60);
- _data[33] = DrawStruct(23, 152, 60, 0, SPRFLAG_HORIZ_FLIPPED);
- _data[34] = DrawStruct(21, 144, 60, 0, SPRFLAG_HORIZ_FLIPPED);
- _data[35] = DrawStruct(19, 131, 60, 0, SPRFLAG_HORIZ_FLIPPED);
- _data[36] = DrawStruct(17, 120, 60, 0, SPRFLAG_HORIZ_FLIPPED);
- _data[37] = DrawStruct(14, 8, 60);
- _data[38] = DrawStruct(12, 32, 60);
- _data[39] = DrawStruct(10, 56, 60);
- _data[40] = DrawStruct(14, 80, 60);
- _data[41] = DrawStruct(14, 104, 60);
- _data[42] = DrawStruct(14, 128, 60);
- _data[43] = DrawStruct(14, 152, 60);
- _data[44] = DrawStruct(8, 176, 60);
- _data[45] = DrawStruct(8, 200, 60);
- _data[46] = DrawStruct(0, 65472, 61, 14, 0);
- _data[47] = DrawStruct(0, 65496, 61, 14, 0);
- _data[48] = DrawStruct(0, 65520, 61, 14, 0);
- _data[49] = DrawStruct(0, 8, 61, 14, 0);
- _data[50] = DrawStruct(0, 32, 61, 14, 0);
- _data[51] = DrawStruct(0, 56, 61, 14, 0);
- _data[52] = DrawStruct(0, 80, 61, 14, 0);
- _data[53] = DrawStruct(0, 104, 61, 14, 0);
- _data[54] = DrawStruct(0, 128, 61, 14, 0);
- _data[55] = DrawStruct(0, 65527, 58, 14, 0);
- _data[56] = DrawStruct(0, 65502, 58, 14, 0);
- _data[57] = DrawStruct(0, 16, 58, 14, 0);
- _data[58] = DrawStruct(0, 65478, 58, 14, 0);
- _data[59] = DrawStruct(0, 40, 58, 14, 0);
- _data[60] = DrawStruct(0, 65495, 58, 14, 0);
- _data[61] = DrawStruct(0, 65510, 58, 14, 0);
- _data[62] = DrawStruct(0, 65502, 58, 14, 0);
- _data[63] = DrawStruct(0, 65520, 58, 14, 0);
- _data[64] = DrawStruct(0, 23, 58, 14, 0);
- _data[65] = DrawStruct(0, 16, 58, 14, 0);
- _data[66] = DrawStruct(0, 65478, 58, 14, 0);
- _data[67] = DrawStruct(0, 40, 58, 14, 0);
- _data[68] = DrawStruct(0, 65519, 58, 14, 0);
- _data[69] = DrawStruct(0, 65535, 58, 14, 0);
- _data[70] = DrawStruct(0, 65527, 58, 14, 0);
- _data[71] = DrawStruct(14, 8, 58);
- _data[72] = DrawStruct(12, 8, 55);
- _data[73] = DrawStruct(10, 32, 52);
- _data[74] = DrawStruct(14, 88, 52);
- _data[75] = DrawStruct(14, 128, 52, 0, SPRFLAG_HORIZ_FLIPPED);
- _data[76] = DrawStruct(14, 152, 52, 0, SPRFLAG_HORIZ_FLIPPED);
- _data[77] = DrawStruct(0, 176, 55, 0, SPRFLAG_HORIZ_FLIPPED);
- _data[78] = DrawStruct(0, 200, 58, 0, SPRFLAG_HORIZ_FLIPPED);
- _data[79] = DrawStruct(0, 72, 58, 12, 0);
- _data[80] = DrawStruct(0, 72, 58, 12, SPRFLAG_HORIZ_FLIPPED);
- _data[81] = DrawStruct(0, 69, 63, 12, 0);
- _data[82] = DrawStruct(0, 75, 63, 12, SPRFLAG_HORIZ_FLIPPED);
- _data[83] = DrawStruct(0, 73, 53, 12, 0);
- _data[84] = DrawStruct(0, 71, 53, 12, SPRFLAG_HORIZ_FLIPPED);
- _data[85] = DrawStruct(0, 80, 57, 12, 0);
- _data[86] = DrawStruct(0, 64, 57, 12, SPRFLAG_HORIZ_FLIPPED);
- _data[87] = DrawStruct(7, 65512, 52, 0, SPRFLAG_2000);
- _data[88] = DrawStruct(7, 32, 52);
- _data[89] = DrawStruct(7, 88, 52);
- _data[90] = DrawStruct(0, 144, 52);
- _data[91] = DrawStruct(0, 200, 52, 0, SPRFLAG_2000);
- _data[92] = DrawStruct(0, 65457, 52, 11, SPRFLAG_2000);
- _data[93] = DrawStruct(0, 65509, 52, 11, 0);
- _data[94] = DrawStruct(0, 32, 52, 11, 0);
- _data[95] = DrawStruct(0, 89, 52, 11, 0);
- _data[96] = DrawStruct(0, 145, 52, 11, SPRFLAG_2000);
- _data[97] = DrawStruct(0, 65528, 50, 12, 0);
- _data[98] = DrawStruct(0, 65471, 50, 12, 0);
- _data[99] = DrawStruct(0, 49, 50, 12, 0);
- _data[100] = DrawStruct(0, 65471, 50, 12, 0);
- _data[101] = DrawStruct(0, 65455, 50, 12, 0);
- _data[102] = DrawStruct(0, 49, 50, 12, 0);
- _data[103] = DrawStruct(0, 65, 50, 12, 0);
- _data[104] = DrawStruct(0, 65512, 50, 12, 0);
- _data[105] = DrawStruct(0, 9, 50, 12, 0);
- _data[106] = DrawStruct(0, 65528, 50, 12, 0);
- _data[107] = DrawStruct(7, 8, 48);
- _data[108] = DrawStruct(7, 64, 40);
- _data[109] = DrawStruct(6, 144, 40, 0, SPRFLAG_HORIZ_FLIPPED);
- _data[110] = DrawStruct(6, 200, 48, 0, SPRFLAG_HORIZ_FLIPPED);
- _data[111] = DrawStruct(0, 72, 53, 8, 0);
- _data[112] = DrawStruct(0, 72, 53, 8, SPRFLAG_HORIZ_FLIPPED);
- _data[113] = DrawStruct(0, 77, 58, 8, 0);
- _data[114] = DrawStruct(0, 67, 58, 8, SPRFLAG_HORIZ_FLIPPED);
- _data[115] = DrawStruct(0, 81, 47, 8, 0);
- _data[116] = DrawStruct(0, 63, 47, 8, SPRFLAG_HORIZ_FLIPPED);
- _data[117] = DrawStruct(0, 94, 52, 8, 0);
- _data[118] = DrawStruct(0, 50, 52, 8, SPRFLAG_HORIZ_FLIPPED);
- _data[119] = DrawStruct(6, 65496, 40, 0, SPRFLAG_2000);
- _data[120] = DrawStruct(6, 64, 40);
- _data[121] = DrawStruct(0, 168, 40, 0, SPRFLAG_2000);
- _data[122] = DrawStruct(0, 65464, 40, 6, SPRFLAG_2000);
- _data[123] = DrawStruct(0, 32, 40, 6, 0);
- _data[124] = DrawStruct(0, 137, 40, 6, SPRFLAG_2000);
- _data[125] = DrawStruct(0, 65529, 25, 7, 0);
- _data[126] = DrawStruct(0, 65424, 25, 7, SPRFLAG_2000);
- _data[127] = DrawStruct(0, 98, 25, 7, SPRFLAG_2000);
- _data[128] = DrawStruct(0, 65424, 29, 8, SPRFLAG_2000);
- _data[129] = DrawStruct(0, 98, 29, 8, SPRFLAG_2000);
- _data[130] = DrawStruct(0, 65498, 29, 8, 0);
- _data[131] = DrawStruct(0, 25, 29, 8, 0);
- _data[132] = DrawStruct(0, 65529, 29, 8, 0);
- _data[133] = DrawStruct(6, 32, 24);
- _data[134] = DrawStruct(0, 168, 24, 0, SPRFLAG_HORIZ_FLIPPED);
- _data[135] = DrawStruct(0, 72, 48, 4, 0);
- _data[136] = DrawStruct(0, 72, 48, 4, SPRFLAG_HORIZ_FLIPPED);
- _data[137] = DrawStruct(0, 85, 53, 4, 0);
- _data[138] = DrawStruct(0, 59, 53, 4, SPRFLAG_HORIZ_FLIPPED);
- _data[139] = DrawStruct(0, 89, 41, 4, 0);
- _data[140] = DrawStruct(0, 55, 41, 4, SPRFLAG_HORIZ_FLIPPED);
- _data[141] = DrawStruct(0, 106, 47, 4, 0);
- _data[142] = DrawStruct(0, 38, 47, 4, SPRFLAG_HORIZ_FLIPPED);
- _data[143] = DrawStruct(0, 65400, 24, 0, SPRFLAG_2000);
- _data[144] = DrawStruct(0, 8, 12);
- _data[145] = DrawStruct(0, 32, 24);
- _data[146] = DrawStruct(0, 200, 12, 0, SPRFLAG_HORIZ_FLIPPED);
- _data[147] = DrawStruct(0, 200, 24, 0, SPRFLAG_2000);
- _data[148] = DrawStruct(0, 32, 24);
- _data[149] = DrawStruct(0, 65531, 2, 0, SPRFLAG_4000 | SPRFLAG_2000);
- _data[150] = DrawStruct(0, 65469, 10, 0, SPRFLAG_4000 | SPRFLAG_2000);
- _data[151] = DrawStruct(0, 44, 73);
- _data[152] = DrawStruct(0, 44, 73);
- _data[153] = DrawStruct(0, 58, 14, 0, SPRFLAG_4000 | SPRFLAG_2000);
- _data[154] = DrawStruct(0, 169, 73);
- _data[155] = DrawStruct(0, 169, 73);
- _data[156] = DrawStruct(0, 65531, 14, 0, SPRFLAG_4000 | SPRFLAG_2000);
- _data[157] = DrawStruct(0, 110, 73);
- _data[158] = DrawStruct(0, 110, 73);
- _data[159] = DrawStruct(0, 65531, 14, 0, SPRFLAG_4000 | SPRFLAG_2000);
- _data[160] = DrawStruct(0, 110, 73);
- _data[161] = DrawStruct(0, 110, 73);
- _data[162] = DrawStruct(0, 72, 43);
- _data[163] = DrawStruct(0, 72, 43, 0, SPRFLAG_HORIZ_FLIPPED);
- _data[164] = DrawStruct(0, 93, 48);
- _data[165] = DrawStruct(0, 51, 48, 0, SPRFLAG_HORIZ_FLIPPED);
- _data[166] = DrawStruct(0, 97, 36);
- _data[167] = DrawStruct(0, 47, 36, 0, SPRFLAG_HORIZ_FLIPPED);
- _data[168] = DrawStruct(0, 118, 42);
- _data[169] = DrawStruct(0, 26, 42, 0, SPRFLAG_HORIZ_FLIPPED);
-}
-
-/*------------------------------------------------------------------------*/
-
-Interface::Interface(XeenEngine *vm) : ButtonContainer(), _vm(vm) {
+Interface::Interface(XeenEngine *vm) : ButtonContainer(), InterfaceMap(vm), _vm(vm) {
Common::fill(&_partyFaces[0], &_partyFaces[MAX_ACTIVE_PARTY], nullptr);
_batUIFrame = 0;
_spotDoorsUIFrame = 0;
@@ -376,27 +43,18 @@ Interface::Interface(XeenEngine *vm) : ButtonContainer(), _vm(vm) {
_buttonsLoaded = false;
_hiliteChar = -1;
_intrIndex1 = 0;
- _flipWtr = false;
- _flipWall = false;
- _flipSky = false;
- _flipGround = false;
_flag1 = false;
_animCounter = 0;
_isAnimReset = false;
- _charsShooting = false;
_tillMove = 0;
- _objNumber = 0;
_thinWall = false;
_overallFrame = 0;
- _isShooting = false;
Common::fill(&_combatCharIds[0], &_combatCharIds[8], 0);
- Common::fill(&_wp[0], &_wp[20], 0);
- Common::fill(&_wo[0], &_wo[308], 0);
-
initDrawStructs();
}
+
void Interface::initDrawStructs() {
_faceDrawStructs[0] = DrawStruct(0, 0, 0);
_faceDrawStructs[1] = DrawStruct(0, 101, 0);
@@ -963,8 +621,8 @@ void Interface::draw3d(bool updateFlag) {
const int INDOOR_COMBAT_POS[3][2] = { { 102, 134 }, { 36, 67 }, { 161, 161 } };
const int INDOOR_COMBAT_POS2[4] = { 8, 6, 4, 2 };
- // TODO: Double check this, since it's not being used?
- MazeObject &objObject = map._mobData._objects[_objNumber - 1];
+ // Double check this, since it's not being used?
+ //MazeObject &objObject = map._mobData._objects[_objNumber - 1];
for (int idx = 0; idx < 3; ++idx) {
DrawStruct &ds1 = _indoorList[INDOOR_INDEXES[idx]];
@@ -1091,201 +749,6 @@ void Interface::animate3d() {
}
-void Interface::setIndoorsMonsters() {
-
-}
-
-void Interface::setIndoorObjects() {
- Common::Point mazePos = _vm->_party._mazePosition;
- _objNumber = 0;
- const int8 *posOffset = &SCREEN_POSITIONING_X[_vm->_party._mazeDirection][0];
- Common::Point pt;
-
- Common::Array<MazeObject> &objects = _vm->_map->_mobData._objects;
- for (uint idx = 0; idx < objects.size(); ++idx) {
- MazeObject &mazeObject = objects[idx];
-
- // Determine which half of the X/Y lists to use
- int listOffset;
- if (_vm->_files->_isDarkCc) {
- listOffset = mazeObject._spriteId == 47 ? 1 : 0;
- }
- else {
- listOffset = mazeObject._spriteId == 113 ? 1 : 0;
- }
-
- // Position 1
- pt = Common::Point(mazePos.x + posOffset[2], mazePos.y + posOffset[194]);
- if (pt == mazeObject._position && _indoorList._objects0._frame == -1) {
- _indoorList._objects0._x = INDOOR_OBJECT_X[listOffset][0];
- _indoorList._objects0._y = INDOOR_OBJECT_Y[listOffset][0];
- _indoorList._objects0._frame = mazeObject._frame;
- _indoorList._objects0._sprites = mazeObject._sprites;
- _indoorList._objects0._flags &= ~SPRFLAG_HORIZ_FLIPPED;
- if (mazeObject._flipped)
- _indoorList._objects0._flags |= SPRFLAG_HORIZ_FLIPPED;
- _objNumber = idx;
- }
-
- // Position 2
- pt = Common::Point(mazePos.x + posOffset[7], mazePos.y + posOffset[199]);
- if (pt == mazeObject._position && !_wo[27] && _indoorList._objects1._frame == -1) {
- _indoorList._objects1._x = INDOOR_OBJECT_X[listOffset][1];
- _indoorList._objects1._y = INDOOR_OBJECT_Y[listOffset][1];
- _indoorList._objects1._frame = mazeObject._frame;
- _indoorList._objects1._sprites = mazeObject._sprites;
- _indoorList._objects1._flags &= ~SPRFLAG_HORIZ_FLIPPED;
- if (mazeObject._flipped)
- _indoorList._objects1._flags |= SPRFLAG_HORIZ_FLIPPED;
- }
-
- // Position 3
- pt = Common::Point(mazePos.x + posOffset[5], mazePos.y + posOffset[197]);
- if (pt == mazeObject._position && (!_wo[27] || !_wo[25]) && (!_wo[27] || !_wo[28]) &&
- (!_wo[23] || !_wo[25]) && (!_wo[23] || !_wo[28]) &&
- _indoorList._objects2._frame == -1) {
- _indoorList._objects2._x = INDOOR_OBJECT_X[listOffset][2];
- _indoorList._objects2._y = INDOOR_OBJECT_Y[listOffset][2];
- _indoorList._objects2._frame = mazeObject._frame;
- _indoorList._objects2._sprites = mazeObject._sprites;
- _indoorList._objects2._flags &= ~SPRFLAG_HORIZ_FLIPPED;
- if (mazeObject._flipped)
- _indoorList._objects2._flags |= SPRFLAG_HORIZ_FLIPPED;
- }
-
- // Position 4
- pt = Common::Point(mazePos.x + posOffset[9], mazePos.y + posOffset[201]);
- if (pt == mazeObject._position && (!_wo[27] || !_wo[26]) && (!_wo[27] || !_wo[29]) &&
- (!_wo[24] || !_wo[26]) && (!_wo[24] || !_wo[29]) && _indoorList._objects3._frame == -1) {
- _indoorList._objects3._x = INDOOR_OBJECT_X[listOffset][3];
- _indoorList._objects3._y = INDOOR_OBJECT_Y[listOffset][3];
- _indoorList._objects3._frame = mazeObject._frame;
- _indoorList._objects3._sprites = mazeObject._sprites;
- _indoorList._objects3._flags &= ~SPRFLAG_HORIZ_FLIPPED;
- if (mazeObject._flipped)
- _indoorList._objects3._flags |= SPRFLAG_HORIZ_FLIPPED;
- }
-
- // Position 5
- pt = Common::Point(mazePos.x + posOffset[14], mazePos.y + posOffset[206]);
- if (pt == mazeObject._position && !_wo[22] && !_wo[27] && _indoorList._objects4._frame == -1) {
- _indoorList._objects4._x = INDOOR_OBJECT_X[listOffset][4];
- _indoorList._objects4._y = INDOOR_OBJECT_Y[listOffset][4];
- _indoorList._objects4._frame = mazeObject._frame;
- _indoorList._objects4._sprites = mazeObject._sprites;
- _indoorList._objects4._flags &= ~SPRFLAG_HORIZ_FLIPPED;
- if (mazeObject._flipped)
- _indoorList._objects4._flags |= SPRFLAG_HORIZ_FLIPPED;
- }
-
- // Position 6
- pt = Common::Point(mazePos.x + posOffset[12], mazePos.y + posOffset[204]);
- if (pt == mazeObject._position && !_wo[27] && (!_wo[22] || !_wo[23]) && (!_wo[22] || !_wo[20]) &&
- (!_wo[23] || !_wo[17]) && (!_wo[20] || !_wo[17]) && _indoorList._objects5._frame == -1) {
- _indoorList._objects5._x = INDOOR_OBJECT_X[listOffset][5];
- _indoorList._objects5._y = INDOOR_OBJECT_Y[listOffset][5];
- _indoorList._objects5._frame = mazeObject._frame;
- _indoorList._objects5._sprites = mazeObject._sprites;
- _indoorList._objects5._flags &= ~SPRFLAG_HORIZ_FLIPPED;
- if (mazeObject._flipped)
- _indoorList._objects5._flags |= SPRFLAG_HORIZ_FLIPPED;
- }
-
- // Position 7
- pt = Common::Point(mazePos.x + posOffset[16], mazePos.y + posOffset[208]);
- if (pt == mazeObject._position && !_wo[27] && (!_wo[22] || !_wo[24]) && (!_wo[22] || !_wo[21]) &&
- (!_wo[24] || !_wo[19]) && (!_wo[21] || !_wo[19]) && _indoorList._objects6._frame == -1) {
- _indoorList._objects6._x = INDOOR_OBJECT_X[listOffset][6];
- _indoorList._objects6._y = INDOOR_OBJECT_Y[listOffset][6];
- _indoorList._objects6._frame = mazeObject._frame;
- _indoorList._objects6._sprites = mazeObject._sprites;
- _indoorList._objects6._flags &= ~SPRFLAG_HORIZ_FLIPPED;
- if (mazeObject._flipped)
- _indoorList._objects6._flags |= SPRFLAG_HORIZ_FLIPPED;
- }
-
- // Position 8
- pt = Common::Point(mazePos.x + posOffset[27], mazePos.y + posOffset[219]);
- if (pt == mazeObject._position && !_wo[27] && !_wo[22] && !_wo[15] && _indoorList._objects7._frame == -1) {
- _indoorList._objects7._x = INDOOR_OBJECT_X[listOffset][7];
- _indoorList._objects7._y = INDOOR_OBJECT_Y[listOffset][7];
- _indoorList._objects7._frame = mazeObject._frame;
- _indoorList._objects7._sprites = mazeObject._sprites;
- _indoorList._objects7._flags &= ~SPRFLAG_HORIZ_FLIPPED;
- if (mazeObject._flipped)
- _indoorList._objects7._flags |= SPRFLAG_HORIZ_FLIPPED;
- }
-
- // Position 9
- pt = Common::Point(mazePos.x + posOffset[25], mazePos.y + posOffset[217]);
- if (pt == mazeObject._position && !_wo[27] && (!_wo[15] || !_wo[17]) && (!_wo[15] || !_wo[12]) &&
- (!_wo[12] || !_wo[7]) && (!_wo[17] || !_wo[7]) && _indoorList._objects5._frame == -1) {
- _indoorList._objects8._x = INDOOR_OBJECT_X[listOffset][8];
- _indoorList._objects8._y = INDOOR_OBJECT_Y[listOffset][8];
- _indoorList._objects8._frame = mazeObject._frame;
- _indoorList._objects8._sprites = mazeObject._sprites;
- _indoorList._objects8._flags &= ~SPRFLAG_HORIZ_FLIPPED;
- if (mazeObject._flipped)
- _indoorList._objects8._flags |= SPRFLAG_HORIZ_FLIPPED;
- }
-
- // Position 10
- pt = Common::Point(mazePos.x + posOffset[23], mazePos.y + posOffset[215]);
- if (pt == mazeObject._position && !_wo[27] && (!_wo[22] || !_wo[20]) && (!_wo[22] || !_wo[23]) &&
- (!_wo[20] || !_wo[17]) && (!_wo[23] || !_wo[17]) && !_wo[12] && !_wo[8] &&
- _indoorList._objects9._frame == -1) {
- _indoorList._objects9._x = INDOOR_OBJECT_X[listOffset][9];
- _indoorList._objects9._y = INDOOR_OBJECT_Y[listOffset][9];
- _indoorList._objects9._frame = mazeObject._frame;
- _indoorList._objects9._sprites = mazeObject._sprites;
- _indoorList._objects9._flags &= ~SPRFLAG_HORIZ_FLIPPED;
- if (mazeObject._flipped)
- _indoorList._objects9._flags |= SPRFLAG_HORIZ_FLIPPED;
- }
-
- // Block 11
- pt = Common::Point(mazePos.x + posOffset[29], mazePos.y + posOffset[221]);
- if (pt == mazeObject._position && !_wo[27] && !_wo[22] && (!_wo[15] || !_wo[19]) &&
- (!_wo[15] || !_wo[14]) && (!_wo[14] || !_wo[9]) && (!_wo[19] || !_wo[9]) &&
- _indoorList._objects10._frame == -1) {
- _indoorList._objects10._x = INDOOR_OBJECT_X[listOffset][10];
- _indoorList._objects10._y = INDOOR_OBJECT_Y[listOffset][10];
- _indoorList._objects10._frame = mazeObject._frame;
- _indoorList._objects10._sprites = mazeObject._sprites;
- _indoorList._objects10._flags &= ~SPRFLAG_HORIZ_FLIPPED;
- if (mazeObject._flipped)
- _indoorList._objects10._flags |= SPRFLAG_HORIZ_FLIPPED;
- }
-
- // Block 12
- pt = Common::Point(mazePos.x + posOffset[31], mazePos.y + posOffset[223]);
- if (pt == mazeObject._position && !_wo[27] && (!_wo[22] || !_wo[21]) && (!_wo[22] || !_wo[24]) &&
- (!_wo[21] || !_wo[19]) && (!_wo[24] || !_wo[19]) && !_wo[14] && !_wo[10] &&
- _indoorList._objects11._frame == -1) {
- _indoorList._objects11._x = INDOOR_OBJECT_X[listOffset][11];
- _indoorList._objects11._y = INDOOR_OBJECT_Y[listOffset][11];
- _indoorList._objects11._frame = mazeObject._frame;
- _indoorList._objects11._sprites = mazeObject._sprites;
- _indoorList._objects11._flags &= ~SPRFLAG_HORIZ_FLIPPED;
- if (mazeObject._flipped)
- _indoorList._objects11._flags |= SPRFLAG_HORIZ_FLIPPED;
- }
- }
-}
-
-void Interface::setIndoorWallPics() {
- // TODO
-}
-
-
-void Interface::setOutdoorsMonsters() {
-
-}
-
-void Interface::setOutdoorsObjects() {
-
-}
-
void Interface::startup() {
Screen &screen = *_vm->_screen;
loadCharIcons();
@@ -2845,1140 +2308,6 @@ void Interface::setMazeBits() {
}
}
-void Interface::drawIndoors() {
- Map &map = *_vm->_map;
- int surfaceId;
- int idx;
-
- for (int cellIndex = 0; cellIndex < 25; ++cellIndex) {
- map.getCell(DRAW_NUMBERS[cellIndex]);
-
- DrawStruct &drawStruct = _indoorList[3 + cellIndex];
- drawStruct._sprites = &map._surfaceSprites[map._currentSurfaceId];
-
- surfaceId = map.mazeData()._surfaceTypes[map._currentSurfaceId];
- if (surfaceId == 5 || surfaceId == 12) {
- drawStruct._flags = _flipWtr;
- drawStruct._frame = DRAW_FRAMES[cellIndex][_flipWtr ? 1 : 0];
- }
- else {
- drawStruct._frame = DRAW_FRAMES[cellIndex][_flipWall ? 1 : 0];
- drawStruct._flags = _flipWall ? 0 : SPRFLAG_HORIZ_FLIPPED;
- }
- }
-
- if (!_wo[27] && !_wo[20] && !_wo[23] && !_wo[12] && !_wo[8] && !_wo[30]) {
- if (_wo[39])
- _indoorList._swl_4F4L._frame = 22;
- else if (_wo[83])
- _indoorList._swl_4F4L._frame = 46;
- }
-
- if (!_wo[27] && !_wo[22] && !_wo[17] && !_wo[12] && !_wo[8]) {
- if (_wo[38])
- _indoorList._swl_4F3L._frame = 20;
- else if (_wo[82])
- _indoorList._swl_4F3L._frame = 44;
- }
-
- if (!_wo[27] && !_wo[22] && !_wo[15] && !_wo[2] && !_wo[7]) {
- if (_wo[37])
- _indoorList._swl_4F2L._frame = 18;
- else if (_wo[81])
- _indoorList._swl_4F2L._frame = 42;
- }
-
- if (!_wo[27] && !_wo[22] && !_wo[15] && !_wo[6]) {
- if (_wo[36])
- _indoorList._swl_4F1L._frame = 16;
- else if (_wo[80])
- _indoorList._swl_4F1L._frame = 40;
- }
-
- if (!_wo[27] && !_wo[21] && !_wo[24] && !_wo[14] && !_wo[10] && !_wo[31]) {
- if (_wo[43])
- _indoorList._swl_4F4R._frame = 23;
- else if (_wo[87])
- _indoorList._swl_4F4R._frame = 47;
- }
-
- if (!_wo[27] && !_wo[22] && !_wo[19] && !_wo[14] && !_wo[10]) {
- if (_wo[42])
- _indoorList._swl_4F3R._frame = 21;
- else if (_wo[86])
- _indoorList._swl_4F3R._frame = 45;
- }
-
- if (!_wo[27] && !_wo[22] && !_wo[15] && !_wo[5] && !_wo[9]) {
- if (_wo[41])
- _indoorList._swl_4F2R._frame = 19;
- else if (_wo[85])
- _indoorList._swl_4F2R._frame = 43;
- }
-
- if (!_wo[27] && !_wo[22] && !_wo[15] && !_wo[6]) {
- if (_wo[40])
- _indoorList._swl_4F1R._frame = 17;
- else if (_wo[84])
- _indoorList._swl_4F1R._frame = 41;
- }
-
- if (!_wo[25] && !_wo[28] && !_wo[20] && !_wo[11] &&
- !_wo[16] && !_wo[30] && !_wo[32]) {
- if (_wo[88])
- _indoorList._fwl_4F4L._frame = 7;
- else if (_wo[78])
- _indoorList._fwl_4F4L._frame = 16;
- else if (_wo[148])
- _indoorList._fwl_4F4L._frame = _overallFrame + 1;
- else if (_wo[108])
- _indoorList._fwl_4F4L._frame = 8;
- else if (_wo[168])
- _indoorList._fwl_4F4L._frame = 10;
- else if (_wo[128])
- _indoorList._fwl_4F4L._frame = 9;
- else if (_wo[34])
- _indoorList._fwl_4F4L._frame = 0;
- else if (_wo[188])
- _indoorList._fwl_4F4L._frame = 15;
- else if (_wo[208])
- _indoorList._fwl_4F4L._frame = 14;
- else if (_wo[228])
- _indoorList._fwl_4F4L._frame = 6;
- else if (_wo[248])
- _indoorList._fwl_4F4L._frame = 11;
- else if (_wo[268])
- _indoorList._fwl_4F4L._frame = 12;
- else if (_wo[288])
- _indoorList._fwl_4F4L._frame = 13;
- }
-
- if (!_wo[26] && !_wo[29] && !_wo[21] && !_wo[13] && !_wo[18] && !_wo[31] && !_wo[33]) {
- if (_wo[93])
- _indoorList._fwl_4F4R._frame = 7;
- else if (_wo[79])
- _indoorList._fwl_4F4R._frame = 16;
- else if (_wo[153])
- _indoorList._fwl_4F4R._frame = _overallFrame + 1;
- else if (_wo[113])
- _indoorList._fwl_4F4R._frame = 8;
- else if (_wo[173])
- _indoorList._fwl_4F4R._frame = 10;
- else if (_wo[133])
- _indoorList._fwl_4F4R._frame = 9;
- else if (_wo[35])
- _indoorList._fwl_4F4R._frame = 0;
- else if (_wo[79])
- _indoorList._fwl_4F4R._frame = 15;
- else if (_wo[213])
- _indoorList._fwl_4F4R._frame = 14;
- else if (_wo[233])
- _indoorList._fwl_4F4R._frame = 6;
- else if (_wo[253])
- _indoorList._fwl_4F4R._frame = 11;
- else if (_wo[273])
- _indoorList._fwl_4F4R._frame = 12;
- else if (_wo[293])
- _indoorList._fwl_4F4R._frame = 13;
- }
-
- if (!_wo[25] && !_wo[28] && !_wo[20] && !_wo[11] && !_wo[16] && !_wo[30]) {
- if (_wo[32])
- _indoorList._swl_3F4L._frame = 14;
- else if (_wo[76])
- _indoorList._swl_3F4L._frame = 38;
- }
-
- if (!_wo[26] && !_wo[29] && !_wo[21] && !_wo[13] && !_wo[18] && !_wo[31]) {
- if (_wo[33])
- _indoorList._fwl_3F1R._frame = 15;
- else if (_wo[77])
- _indoorList._swl_3F1R._frame = 39;
- }
-
- if (_wo[28] && _wo[27]) {
- }
- else if (_wo[28] && _wo[12]) {
- }
- else if (_wo[28] && _wo[23]) {
- }
- else if (_wo[28] && _wo[8]) {
- }
- else if (_wo[25] && _wo[27]) {
- }
- else if (_wo[25] && _wo[12]) {
- }
- else if (_wo[25] && _wo[23]) {
- }
- else if (_wo[25] && _wo[8]) {
- }
- else if (_wo[11] && _wo[27]) {
- }
- else if (_wo[11] && _wo[12]) {
- }
- else if (_wo[11] && _wo[23]) {
- }
- else if (_wo[11] && _wo[8]) {
- }
- else if (_wo[17] && _wo[27]) {
- }
- else if (_wo[17] && _wo[12]) {
- }
- else if (_wo[17] && _wo[23]) {
- }
- else if (_wo[17] && _wo[8]) {
- }
- else if (_wo[20]) {
- }
- else if (_wo[30]) {
- _indoorList._swl_3F3L._frame = 12;
- }
- else if (_wo[74]) {
- _indoorList._swl_3F3L._frame = 36;
- }
-
- if (_wo[29] && _wo[27]) {
- }
- else if (_wo[29] && _wo[14]) {
- }
- else if (_wo[29] && _wo[24]) {
- }
- else if (_wo[29] && _wo[10]) {
- }
- else if (_wo[26] && _wo[27]) {
- }
- else if (_wo[26] && _wo[14]) {
- }
- else if (_wo[26] && _wo[24]) {
- }
- else if (_wo[26] && _wo[10]) {
- }
- else if (_wo[13] && _wo[27]) {
- }
- else if (_wo[13] && _wo[14]) {
- }
- else if (_wo[13] && _wo[24]) {
- }
- else if (_wo[13] && _wo[10]) {
- }
- else if (_wo[19] && _wo[27]) {
- }
- else if (_wo[19] && _wo[24]) {
- }
- else if (_wo[19] && _wo[10]) {
- }
- else if (_wo[21]) {
- }
- else if (_wo[31]) {
- _indoorList._swl_3F2R._frame = 13;
- }
- else if (_wo[75]) {
- _indoorList._swl_3F2R._frame = 37;
- }
-
- if (!_wo[27] && !_wo[20] && !_wo[12] && !_wo[23] && !_wo[8] && !_wo[30]) {
- if (_wo[89])
- _indoorList._fwl_4F3L._frame = 7;
- else if (_wo[44])
- _indoorList._fwl_4F3L._frame = 16;
- else if (_wo[149])
- _indoorList._fwl_4F3L._frame = _overallFrame + 1;
- else if (_wo[109])
- _indoorList._fwl_4F3L._frame = 8;
- else if (_wo[169])
- _indoorList._fwl_4F3L._frame = 10;
- else if (_wo[129])
- _indoorList._fwl_4F3L._frame = 9;
- else if (_wo[0])
- _indoorList._fwl_4F3L._frame = 0;
- else if (_wo[189])
- _indoorList._fwl_4F3L._frame = 15;
- else if (_wo[209])
- _indoorList._fwl_4F3L._frame = 14;
- else if (_wo[229])
- _indoorList._fwl_4F3L._frame = 6;
- else if (_wo[249])
- _indoorList._fwl_4F3L._frame = 11;
- else if (_wo[269])
- _indoorList._fwl_4F3L._frame = 12;
- else if (_wo[289])
- _indoorList._fwl_4F3L._frame = 13;
- }
-
- if (_wo[22] && _wo[20]) {
- }
- else if (_wo[22] && _wo[23]) {
- }
- else if (_wo[20] && _wo[17]) {
- }
- else if (_wo[23] && _wo[17]) {
- }
- else if (_wo[12]) {
- }
- else if (_wo[8]) {
- }
- else if (_wo[90]) {
- _indoorList._fwl_4F2L._frame = 7;
- }
- else if (_wo[45]) {
- _indoorList._fwl_4F2L._frame = 16;
- }
- else if (_wo[150]) {
- _indoorList._fwl_4F2L._frame = _overallFrame + 1;
- }
- else if (_wo[110]) {
- _indoorList._fwl_4F2L._frame = 8;
- }
- else if (_wo[170]) {
- _indoorList._fwl_4F2L._frame = 10;
- }
- else if (_wo[130]) {
- _indoorList._fwl_4F2L._frame = 9;
- }
- else if (_wo[1]) {
- _indoorList._fwl_4F2L._frame = 0;
- }
- else if (_wo[190]) {
- _indoorList._fwl_4F2L._frame = 15;
- }
- else if (_wo[210]) {
- _indoorList._fwl_4F2L._frame = 14;
- }
- else if (_wo[230]) {
- _indoorList._fwl_4F2L._frame = 6;
- }
- else if (_wo[250]) {
- _indoorList._fwl_4F2L._frame = 11;
- }
- else if (_wo[270]) {
- _indoorList._fwl_4F2L._frame = 12;
- }
- else if (_wo[290]) {
- _indoorList._fwl_4F2L._frame = 13;
- }
-
- if (_wo[15] && _wo[17]) {
- }
- else if (_wo[15] && _wo[12]) {
- }
- else if (_wo[12] && _wo[7]) {
- }
- else if (_wo[17] && _wo[7]) {
- }
- else if (_wo[91]) {
- _indoorList._fwl_4F1L._frame = 7;
- }
- else if (_wo[46]) {
- _indoorList._fwl_4F1L._frame = 16;
- }
- else if (_wo[151]) {
- _indoorList._fwl_4F1L._frame = _overallFrame + 1;
- }
- else if (_wo[111]) {
- _indoorList._fwl_4F1L._frame = 8;
- }
- else if (_wo[171]) {
- _indoorList._fwl_4F1L._frame = 10;
- }
- else if (_wo[131]) {
- _indoorList._fwl_4F1L._frame = 9;
- }
- else if (_wo[2]) {
- _indoorList._fwl_4F1L._frame = 0;
- }
- else if (_wo[191]) {
- _indoorList._fwl_4F1L._frame = 15;
- }
- else if (_wo[211]) {
- _indoorList._fwl_4F1L._frame = 14;
- }
- else if (_wo[231]) {
- _indoorList._fwl_4F1L._frame = 6;
- }
- else if (_wo[251]) {
- _indoorList._fwl_4F1L._frame = 11;
- }
- else if (_wo[271]) {
- _indoorList._fwl_4F1L._frame = 12;
- }
- else if (_wo[291]) {
- _indoorList._fwl_4F1L._frame = 13;
- }
-
- if (!_wo[27] && !_wo[21] && !_wo[14] && !_wo[24] && !_wo[10] && !_wo[31]) {
- if (_wo[92]) {
- _indoorList._fwl_4F3R._frame = 7;
- }
- else if (_wo[47]) {
- _indoorList._fwl_4F3R._frame = 16;
- }
- else if (_wo[152]) {
- _indoorList._fwl_4F3R._frame = _overallFrame + 1;
- }
- else if (_wo[112]) {
- _indoorList._fwl_4F3R._frame = 8;
- }
- else if (_wo[172]) {
- _indoorList._fwl_4F3R._frame = 10;
- }
- else if (_wo[132]) {
- _indoorList._fwl_4F3R._frame = 9;
- }
- else if (_wo[3]) {
- _indoorList._fwl_4F3R._frame = 0;
- }
- else if (_wo[192]) {
- _indoorList._fwl_4F3R._frame = 15;
- }
- else if (_wo[212]) {
- _indoorList._fwl_4F3R._frame = 14;
- }
- else if (_wo[232]) {
- _indoorList._fwl_4F3R._frame = 6;
- }
- else if (_wo[252]) {
- _indoorList._fwl_4F3R._frame = 11;
- }
- else if (_wo[272]) {
- _indoorList._fwl_4F3R._frame = 12;
- }
- else if (_wo[292]) {
- _indoorList._fwl_4F3R._frame = 13;
- }
- }
-
- if (_wo[22] && _wo[21]) {
- }
- else if (_wo[22] && _wo[24]) {
- }
- else if (_wo[21] && _wo[19]) {
- }
- else if (_wo[24] && _wo[19]) {
- }
- else if (_wo[14] || _wo[10]) {
- }
- else if (_wo[94]) {
- _indoorList._fwl_4F2R._frame = 7;
- }
- else if (_wo[48]) {
- _indoorList._fwl_4F2R._frame = 16;
- }
- else if (_wo[154]) {
- _indoorList._fwl_4F2R._frame = _overallFrame + 1;
- }
- else if (_wo[114]) {
- _indoorList._fwl_4F2R._frame = 8;
- }
- else if (_wo[174]) {
- _indoorList._fwl_4F2R._frame = 10;
- }
- else if (_wo[134]) {
- _indoorList._fwl_4F2R._frame = 9;
- }
- else if (_wo[4]) {
- _indoorList._fwl_4F2R._frame = 0;
- }
- else if (_wo[194]) {
- _indoorList._fwl_4F2R._frame = 15;
- }
- else if (_wo[214]) {
- _indoorList._fwl_4F2R._frame = 14;
- }
- else if (_wo[234]) {
- _indoorList._fwl_4F2R._frame = 6;
- }
- else if (_wo[254]) {
- _indoorList._fwl_4F2R._frame = 11;
- }
- else if (_wo[274]) {
- _indoorList._fwl_4F2R._frame = 12;
- }
- else if (_wo[294]) {
- _indoorList._fwl_4F2R._frame = 13;
- }
-
- if (_wo[15] && _wo[19]) {
- }
- else if (_wo[15] && _wo[14]) {
- }
- else if (_wo[14] && _wo[9]) {
- }
- else if (_wo[19] && _wo[9]) {
- }
- else if (_wo[95]) {
- _indoorList._fwl_4F1R._frame = 7;
- }
- else if (_wo[49]) {
- _indoorList._fwl_4F1R._frame = 16;
- }
- else if (_wo[155]) {
- _indoorList._fwl_4F1R._frame = _overallFrame + 1;
- }
- else if (_wo[115]) {
- _indoorList._fwl_4F1R._frame = 8;
- }
- else if (_wo[175]) {
- _indoorList._fwl_4F1R._frame = 10;
- }
- else if (_wo[135]) {
- _indoorList._fwl_4F1R._frame = 9;
- }
- else if (_wo[5]) {
- _indoorList._fwl_4F1R._frame = 0;
- }
- else if (_wo[195]) {
- _indoorList._fwl_4F1R._frame = 15;
- }
- else if (_wo[215]) {
- _indoorList._fwl_4F1R._frame = 14;
- }
- else if (_wo[235]) {
- _indoorList._fwl_4F1R._frame = 6;
- }
- else if (_wo[255]) {
- _indoorList._fwl_4F1R._frame = 11;
- }
- else if (_wo[275]) {
- _indoorList._fwl_4F1R._frame = 12;
- }
- else if (_wo[295]) {
- _indoorList._fwl_4F1R._frame = 13;
- }
-
- if (_wo[27] || _wo[22] || _wo[15] || _wo[96]) {
- }
- else if (_wo[50]) {
- _indoorList._fwl_4F._frame = 16;
- }
- else if (_wo[156]) {
- _indoorList._fwl_4F._frame = _overallFrame + 1;
- }
- else if (_wo[116]) {
- _indoorList._fwl_4F._frame = 8;
- }
- else if (_wo[176]) {
- _indoorList._fwl_4F._frame = 10;
- }
- else if (_wo[136]) {
- _indoorList._fwl_4F._frame = 9;
- }
- else if (_wo[6]) {
- _indoorList._fwl_4F._frame = 0;
- }
- else if (_wo[196]) {
- _indoorList._fwl_4F._frame = 15;
- }
- else if (_wo[216]) {
- _indoorList._fwl_4F._frame = 14;
- }
- else if (_wo[236]) {
- _indoorList._fwl_4F._frame = 6;
- }
- else if (_wo[256]) {
- _indoorList._fwl_4F._frame = 11;
- }
- else if (_wo[276]) {
- _indoorList._fwl_4F._frame = 12;
- }
- else if (_wo[296]) {
- _indoorList._fwl_4F._frame = 13;
- }
-
- if (!_wo[27] && !_wo[22] && !_wo[15]) {
- if (_wo[7])
- _indoorList._swl_3F1L._frame = 8;
- else if (_wo[51])
- _indoorList._swl_3F1L._frame = 32;
- }
-
- if (_wo[22] && _wo[23]) {
- }
- else if (_wo[22] && _wo[20]) {
- }
- else if (_wo[17] && _wo[23]) {
- }
- else if (_wo[17] && _wo[20]) {
- }
- else if (_wo[8]) {
- _indoorList._swl_3F2L._frame = 10;
- }
- else if (_wo[52]) {
- _indoorList._swl_3F2L._frame = 34;
- }
-
- if (_wo[27] || _wo[22] || _wo[15]) {
- }
- else if (_wo[9]) {
- _indoorList._swl_3F4R._frame = 9;
- }
- else if (_wo[53]) {
- _indoorList._swl_3F4R._frame = 33;
- }
-
- if (_wo[22] && _wo[24]) {
- }
- else if (_wo[22] && _wo[21]) {
- }
- else if (_wo[19] && _wo[24]) {
- }
- else if (_wo[19] && _wo[21]) {
- }
- else if (_wo[14]) {
- }
- else if (_wo[10]) {
- _indoorList._swl_3F3R._frame = 11;
- }
- else if (_wo[54]) {
- _indoorList._swl_3F3R._frame = 35;
- }
-
- if (_wo[25] || _wo[28] || _wo[20] || _wo[16]) {
- }
- else if (_wo[97]) {
- _indoorList._fwl_3F2L._frame = 24;
- }
- else if (_wo[55]) {
- _indoorList._fwl_3F2L._frame = 33;
- }
- else if (_wo[137]) {
- _indoorList._fwl_3F2L._frame = 26;
- }
- else if (_wo[157]) {
- _indoorList._fwl_3F2L._frame = _overallFrame + 18;
- }
- else if (_wo[117]) {
- _indoorList._fwl_3F2L._frame = 25;
- }
- else if (_wo[177]) {
- _indoorList._fwl_3F2L._frame = 27;
- }
- else if (_wo[11]) {
- _indoorList._fwl_3F2L._frame = 17;
- }
- else if (_wo[197]) {
- _indoorList._fwl_3F2L._frame = 32;
- }
- else if (_wo[217]) {
- _indoorList._fwl_3F2L._frame = 31;
- }
- else if (_wo[237]) {
- _indoorList._fwl_3F2L._frame = 23;
- }
- else if (_wo[257]) {
- _indoorList._fwl_3F2L._frame = 28;
- }
- else if (_wo[277]) {
- _indoorList._fwl_3F2L._frame = 29;
- }
- else if (_wo[297]) {
- _indoorList._fwl_3F2L._frame = 30;
- }
-
- if (_wo[22] && _wo[23]) {
- }
- else if (_wo[22] && _wo[20]) {
- }
- else if (_wo[23] && _wo[17]) {
- }
- else if (_wo[20] && _wo[17]) {
- }
- else if (_wo[98]) {
- _indoorList._fwl_3F1L._frame = 24;
- }
- else if (_wo[56]) {
- _indoorList._fwl_3F1L._frame = 33;
- }
- else if (_wo[178]) {
- _indoorList._fwl_3F1L._frame = 27;
- }
- else if (_wo[118]) {
- _indoorList._fwl_3F1L._frame = 25;
- }
- else if (_wo[158]) {
- _indoorList._fwl_3F1L._frame = _overallFrame + 18;
- }
- else if (_wo[138]) {
- _indoorList._fwl_3F1L._frame = 26;
- }
- else if (_wo[12]) {
- _indoorList._fwl_3F1L._frame = 17;
- }
- else if (_wo[198]) {
- _indoorList._fwl_3F1L._frame = 32;
- }
- else if (_wo[218]) {
- _indoorList._fwl_3F1L._frame = 31;
- }
- else if (_wo[238]) {
- _indoorList._fwl_3F1L._frame = 23;
- }
- else if (_wo[258]) {
- _indoorList._fwl_3F1L._frame = 28;
- }
- else if (_wo[278]) {
- _indoorList._fwl_3F1L._frame = 29;
- }
- else if (_wo[298]) {
- _indoorList._fwl_3F1L._frame = 30;
- }
-
- if (_wo[26] || _wo[29] || _wo[21] || _wo[18]) {
- }
- else if (_wo[99]) {
- _indoorList._fwl_3F2R._frame = 24;
- }
- else if (_wo[57]) {
- _indoorList._fwl_3F2R._frame = 33;
- }
- else if (_wo[139]) {
- _indoorList._fwl_3F2R._frame = 26;
- }
- else if (_wo[159]) {
- _indoorList._fwl_3F2R._frame = _overallFrame + 18;
- }
- else if (_wo[119]) {
- _indoorList._fwl_3F2R._frame = 25;
- }
- else if (_wo[179]) {
- _indoorList._fwl_3F2R._frame = 27;
- }
- else if (_wo[13]) {
- _indoorList._fwl_3F2R._frame = 17;
- }
- else if (_wo[199]) {
- _indoorList._fwl_3F2R._frame = 32;
- }
- else if (_wo[219]) {
- _indoorList._fwl_3F2R._frame = 31;
- }
- else if (_wo[239]) {
- _indoorList._fwl_3F2R._frame = 23;
- }
- else if (_wo[259]) {
- _indoorList._fwl_3F2R._frame = 28;
- }
- else if (_wo[279]) {
- _indoorList._fwl_3F2R._frame = 29;
- }
- else if (_wo[299]) {
- _indoorList._fwl_3F2R._frame = 30;
- }
-
- if (_wo[22] && _wo[24]) {
- }
- else if (_wo[22] && _wo[21]) {
- }
- else if (_wo[24] && _wo[19]) {
- }
- else if (_wo[21] && _wo[19]) {
- }
- else if (_wo[100]) {
- _indoorList._fwl_3F1R._frame = 24;
- }
- else if (_wo[58]) {
- _indoorList._fwl_3F1R._frame = 33;
- }
- else if (_wo[140]) {
- _indoorList._fwl_3F1R._frame = 26;
- }
- else if (_wo[160]) {
- _indoorList._fwl_3F1R._frame = _overallFrame + 18;
- }
- else if (_wo[120]) {
- _indoorList._fwl_3F1R._frame = 25;
- }
- else if (_wo[180]) {
- _indoorList._fwl_3F1R._frame = 27;
- }
- else if (_wo[14]) {
- _indoorList._fwl_3F1R._frame = 17;
- }
- else if (_wo[200]) {
- _indoorList._fwl_3F1R._frame = 32;
- }
- else if (_wo[220]) {
- _indoorList._fwl_3F1R._frame = 31;
- }
- else if (_wo[240]) {
- _indoorList._fwl_3F1R._frame = 23;
- }
- else if (_wo[260]) {
- _indoorList._fwl_3F1R._frame = 28;
- }
- else if (_wo[280]) {
- _indoorList._fwl_3F1R._frame = 29;
- }
- else if (_wo[300]) {
- _indoorList._fwl_3F1R._frame = 30;
- }
-
- if (_wo[22] || _wo[27]) {
- }
- else if (_wo[101]) {
- _indoorList._fwl_3F._frame = 24;
- }
- else if (_wo[59]) {
- _indoorList._fwl_3F._frame = 33;
- }
- else if (_wo[141]) {
- _indoorList._fwl_3F._frame = 26;
- }
- else if (_wo[161]) {
- _indoorList._fwl_3F._frame = _overallFrame + 18;
- }
- else if (_wo[121]) {
- _indoorList._fwl_3F._frame = 25;
- }
- else if (_wo[181]) {
- _indoorList._fwl_3F._frame = 27;
- }
- else if (_wo[15]) {
- _indoorList._fwl_3F._frame = 17;
- }
- else if (_wo[201]) {
- _indoorList._fwl_3F._frame = 32;
- }
- else if (_wo[221]) {
- _indoorList._fwl_3F._frame = 31;
- }
- else if (_wo[241]) {
- _indoorList._fwl_3F._frame = 23;
- }
- else if (_wo[261]) {
- _indoorList._fwl_3F._frame = 28;
- }
- else if (_wo[281]) {
- _indoorList._fwl_3F._frame = 29;
- }
- else if (_wo[301]) {
- _indoorList._fwl_3F._frame = 30;
- }
-
- if (_wo[25] || _wo[28] || _wo[20]) {
- }
- else if (_wo[16]) {
- _indoorList._swl_2F2L._frame = 6;
- }
- else if (_wo[60]) {
- _indoorList._swl_2F2L._frame = 30;
- }
-
- if (_wo[27] || _wo[22]) {
- }
- else if (_wo[17]) {
- _indoorList._swl_2F1L._frame = 4;
- }
- else if (_wo[61]) {
- _indoorList._swl_2F1L._frame = 28;
- }
-
- if (_wo[26] || _wo[29] || _wo[21]) {
- }
- else if (_wo[18]) {
- _indoorList._swl_2F2R._frame = 7;
- }
- else if (_wo[62]) {
- _indoorList._swl_2F2R._frame = 31;
- }
-
- if (_wo[27] || _wo[22]) {
- }
- else if (_wo[19]) {
- _indoorList._swl_2F1R._frame = 5;
- }
- else if (_wo[63]) {
- _indoorList._swl_2F1R._frame = 29;
- }
-
- if (_wo[27] && _wo[25]) {
- }
- else if (_wo[27] && _wo[28]) {
- }
- else if (_wo[23] & _wo[25]) {
- }
- else if (_wo[23] && _wo[28]) {
- }
- else if (_wo[102]) {
- _indoorList._fwl_2F1L._frame = 7;
- }
- else if (_wo[64]) {
- _indoorList._fwl_2F1L._frame = 16;
- }
- else if (_wo[182]) {
- _indoorList._fwl_2F1L._frame = 10;
- }
- else if (_wo[122]) {
- _indoorList._fwl_2F1L._frame = 8;
- }
- else if (_wo[142]) {
- _indoorList._fwl_2F1L._frame = 9;
- }
- else if (_wo[162]) {
- _indoorList._fwl_2F1L._frame = _overallFrame + 1;
- }
- else if (_wo[20]) {
- _indoorList._fwl_2F1L._frame = 0;
- }
- else if (_wo[202]) {
- _indoorList._fwl_2F1L._frame = 15;
- }
- else if (_wo[222]) {
- _indoorList._fwl_2F1L._frame = 14;
- }
- else if (_wo[242]) {
- _indoorList._fwl_2F1L._frame = 6;
- }
- else if (_wo[262]) {
- _indoorList._fwl_2F1L._frame = 11;
- }
- else if (_wo[282]) {
- _indoorList._fwl_2F1L._frame = 12;
- }
- else if (_wo[302]) {
- _indoorList._fwl_2F1L._frame = 13;
- }
-
- if (_wo[27] && _wo[26]) {
- }
- else if (_wo[27] && _wo[29]) {
- }
- else if (_wo[24] && _wo[26]) {
- }
- else if (_wo[24] && _wo[29]) {
- }
- else if (_wo[103]) {
- _indoorList._fwl_2F1R._frame = 7;
- }
- else if (_wo[65]) {
- _indoorList._fwl_2F1R._frame = 16;
- }
- else if (_wo[183]) {
- _indoorList._fwl_2F1R._frame = 10;
- }
- else if (_wo[123]) {
- _indoorList._fwl_2F1R._frame = 8;
- }
- else if (_wo[143]) {
- _indoorList._fwl_2F1R._frame = 9;
- }
- else if (_wo[163]) {
- _indoorList._fwl_2F1R._frame = _overallFrame + 1;
- }
- else if (_wo[21]) {
- _indoorList._fwl_2F1R._frame = 0;
- }
- else if (_wo[203]) {
- _indoorList._fwl_2F1R._frame = 15;
- }
- else if (_wo[223]) {
- _indoorList._fwl_2F1R._frame = 14;
- }
- else if (_wo[243]) {
- _indoorList._fwl_2F1R._frame = 6;
- }
- else if (_wo[263]) {
- _indoorList._fwl_2F1R._frame = 11;
- }
- else if (_wo[283]) {
- _indoorList._fwl_2F1R._frame = 12;
- }
- else if (_wo[303]) {
- _indoorList._fwl_2F1R._frame = 13;
- }
-
- if (_wo[27]) {
-
- }
- else if (_wo[104]) {
- _indoorList._fwl_2F._frame = 7;
- }
- else if (_wo[66]) {
- _indoorList._fwl_2F._frame = 16;
- }
- else if (_wo[184]) {
- _indoorList._fwl_2F._frame = 10;
- }
- else if (_wo[124]) {
- _indoorList._fwl_2F._frame = 8;
- }
- else if (_wo[144]) {
- _indoorList._fwl_2F._frame = 9;
- }
- else if (_wo[164]) {
- _indoorList._fwl_2F._frame = _overallFrame + 1;
- }
- else if (_wo[22]) {
- _indoorList._fwl_2F._frame = 0;
- }
- else if (_wo[204]) {
- _indoorList._fwl_2F._frame = 15;
- }
- else if (_wo[224]) {
- _indoorList._fwl_2F._frame = 14;
- }
- else if (_wo[244]) {
- _indoorList._fwl_2F._frame = 6;
- }
- else if (_wo[264]) {
- _indoorList._fwl_2F._frame = 11;
- }
- else if (_wo[284]) {
- _indoorList._fwl_2F._frame = 12;
- }
- else if (_wo[304]) {
- _indoorList._fwl_2F._frame = 13;
- }
-
- if (_wo[27]) {
- }
- else if (_wo[23]) {
- _indoorList._swl_1F1L._frame = 2;
- }
- else if (_wo[67]) {
- _indoorList._swl_1F1L._frame = 26;
- }
-
- if (_wo[27]) {
- }
- else if (_wo[24]) {
- _indoorList._swl_1F1R._frame = 3;
- }
- else if (_wo[68]) {
- _indoorList._swl_1F1R._frame = 27;
- }
-
- if (_wo[28]) {
- }
- else if (_wo[105] || _wo[25] || _wo[165] || _wo[125] || _wo[185] || _wo[145]) {
- _indoorList._fwl_1F1L._frame = 0;
- _indoorList._fwl_1F1L._sprites = &map._wallSprites._fwl1;
- }
- else if (_wo[69]) {
- _indoorList._fwl_1F1L._frame = 9;
- _indoorList._fwl_1F1L._sprites = &map._wallSprites._fwl2;
- }
-
- if (_wo[29]) {
- }
- else if (_wo[106] || _wo[26] || _wo[166] || _wo[126] || _wo[186] || _wo[146]) {
- _indoorList._fwl_1F._frame = 0;
- _indoorList._fwl_1F._sprites = &map._wallSprites._fwl1;
- }
- else if (_wo[70]) {
- _indoorList._fwl_1F._frame = 9;
- _indoorList._fwl_1F._sprites = &map._wallSprites._fwl2;
- }
-
- if (_wo[107]) {
- _indoorList._fwl_1F1R._sprites = &map._wallSprites._fwl2;
- if (_vm->_openDoor)
- _indoorList._fwl_1F1R._frame = 0;
- else
- _indoorList._fwl_1F1R._frame = map.mazeData()._wallKind ? 1 : 10;
- }
- else if (_wo[71]) {
- _indoorList._fwl_1F1R._frame = 9;
- _indoorList._fwl_1F1R._sprites = &map._wallSprites._fwl2;
- }
- else if (_wo[167]) {
- _indoorList._fwl_1F1R._frame = _overallFrame + 1;
- _indoorList._fwl_1F1R._sprites = &map._wallSprites._fwl2;
- }
- else if (_wo[127]) {
- _indoorList._fwl_1F1R._frame = 1;
- _indoorList._fwl_1F1R._sprites = &map._wallSprites._fwl2;
- }
- else if (_wo[147]) {
- _indoorList._fwl_1F1R._frame = 2;
- _indoorList._fwl_1F1R._sprites = &map._wallSprites._fwl2;
- }
- else if (_wo[187]) {
- _indoorList._fwl_1F1R._frame = 3;
- _indoorList._fwl_1F1R._sprites = &map._wallSprites._fwl2;
- }
- else if (_wo[27]) {
- _indoorList._fwl_1F1R._frame = 0;
- _indoorList._fwl_1F1R._sprites = &map._wallSprites._fwl1;
- }
- else if (_wo[207]) {
- _indoorList._fwl_1F1R._frame = 8;
- _indoorList._fwl_1F1R._sprites = &map._wallSprites._fwl2;
- }
- else if (_wo[227]) {
- _indoorList._fwl_1F1R._frame = 7;
- _indoorList._fwl_1F1R._sprites = &map._wallSprites._fwl2;
- }
- else if (_wo[247]) {
- _indoorList._fwl_1F1R._frame = 6;
- _indoorList._fwl_1F1R._sprites = &map._wallSprites._fwl1;
- }
- else if (_wo[267]) {
- _indoorList._fwl_1F1R._frame = 4;
- _indoorList._fwl_1F1R._sprites = &map._wallSprites._fwl2;
- }
- else if (_wo[287]) {
- _indoorList._fwl_1F1R._frame = 5;
- _indoorList._fwl_1F1R._sprites = &map._wallSprites._fwl2;
- }
- else if (_wo[307]) {
- _indoorList._fwl_1F1R._frame = 6;
- _indoorList._fwl_1F1R._sprites = &map._wallSprites._fwl2;
- }
-
- if (_wo[28]) {
- _indoorList._swl_0F1L._frame = 0;
- }
- else if (_wo[72]) {
- _indoorList._swl_0F1L._frame = 24;
- }
-
- if (_wo[29]) {
- _indoorList._swl_0F1R._frame = 1;
- }
- else if (_wo[73]) {
- _indoorList._swl_0F1R._frame = 25;
- }
-
- map.cellFlagLookup(_vm->_party._mazePosition);
-
- // WORKAROUND: Original did an array lookup on _skySprites.
- // Was this a feature for multiple skys that was abandoned?
- _indoorList[0]._sprites = &map._skySprites;
- _indoorList[0]._flags = _flipSky ? SPRFLAG_HORIZ_FLIPPED : 0;
-
- if (_vm->_openDoor) {
- Common::Point pt(
- _vm->_party._mazePosition.x + SCREEN_POSITIONING_X[
- _vm->_party._mazeDirection][_vm->_party._mazePosition.x],
- _vm->_party._mazePosition.y + SCREEN_POSITIONING_Y[
- _vm->_party._mazeDirection][_vm->_party._mazePosition.y]
- );
- map.cellFlagLookup(pt);
-
- _indoorList._sky._sprites = &map._skySprites;
- } else {
- _indoorList._sky._sprites = _indoorList[0]._sprites;
- }
-
- _indoorList._sky._flags = _flipSky ? SPRFLAG_HORIZ_FLIPPED : 0;
- _indoorList._ground._flags = _flipGround ? SPRFLAG_HORIZ_FLIPPED : 0;
- _indoorList._horizon._frame = 7;
-
- // Finally draw the darn indoor scene
- _vm->_screen->_windows[3].drawList(&_indoorList[0], _indoorList.size());
-
- // Check for any character shooting
- _isShooting = false;
- for (int i = 0; i < _vm->_party._partyCount; ++i) {
- if (_vm->_combat->_shooting[i])
- _isShooting = true;
- }
-
- _charsShooting = _isShooting;
-
- // TODO
-}
-
void Interface::updateAutoMap() {
// TODO
}
diff --git a/engines/xeen/interface.h b/engines/xeen/interface.h
index f84885f307..4667592b20 100644
--- a/engines/xeen/interface.h
+++ b/engines/xeen/interface.h
@@ -25,6 +25,7 @@
#include "common/scummsys.h"
#include "xeen/dialogs.h"
+#include "xeen/interface_map.h"
#include "xeen/party.h"
#include "xeen/screen.h"
@@ -32,55 +33,7 @@ namespace Xeen {
class XeenEngine;
-class OutdoorDrawList {
-public:
- DrawStruct _data[132];
- DrawStruct &_skySprite;
- DrawStruct &_groundSprite;
-public:
- OutdoorDrawList();
-
- DrawStruct &operator[](int idx) {
- assert(idx < size());
- return _data[idx];
- }
-
- int size() const { return 132; }
-};
-
-class IndoorDrawList {
-public:
- DrawStruct _data[170];
- DrawStruct &_sky;
- DrawStruct &_ground;
- DrawStruct &_horizon;
- DrawStruct &_swl_0F1R, _swl_0F1L, _swl_1F1R, _swl_1F1L,
- _swl_2F2R, _swl_2F1R, _swl_2F1L, _swl_2F2L,
- _swl_3F1R, _swl_3F2R, _swl_3F3R, _swl_3F4R,
- _swl_3F1L, _swl_3F2L, _swl_3F3L, _swl_3F4L,
- _swl_4F4R, _swl_4F3R, _swl_4F2R, _swl_4F1R,
- _swl_4F1L, _swl_4F2L, _swl_4F3L, _swl_4F4L;
- DrawStruct &_fwl_4F4R, _fwl_4F3R, _fwl_4F2R, _fwl_4F1R,
- _fwl_4F, _fwl_4F1L, _fwl_4F2L, _fwl_4F3L, _fwl_4F4L;
- DrawStruct &_fwl_2F1R, _fwl_2F, _fwl_2F1L, _fwl_3F2R,
- _fwl_3F1R, _fwl_3F, _fwl_3F1L, _fwl_3F2L;
- DrawStruct &_fwl_1F, _fwl_1F1R, _fwl_1F1L;
- DrawStruct &_objects0, _objects1, _objects2, _objects3;
- DrawStruct &_objects4, _objects5, _objects6, _objects7;
- DrawStruct &_objects8, _objects9, _objects10, _objects11;
-public:
- IndoorDrawList();
-
- DrawStruct &operator[](int idx) {
- assert(idx < size());
- return _data[idx];
- }
-
- int size() const { return 170; }
-};
-
-
-class Interface: public ButtonContainer {
+class Interface: public ButtonContainer, public InterfaceMap {
private:
XeenEngine *_vm;
SpriteResource _dseFace;
@@ -115,26 +68,17 @@ private:
Common::String _interfaceText;
int _hiliteChar;
int _intrIndex1;
- bool _flipWtr;
- bool _flipWall;
- bool _flipSky;
- bool _flipGround;
bool _flag1;
int _animCounter;
bool _isAnimReset;
- bool _charsShooting;
byte _tillMove;
- int _objNumber;
- byte _wp[20];
- byte _wo[308];
bool _thinWall;
int _overallFrame;
- bool _isShooting;
-
- void loadSprites();
void initDrawStructs();
+ void loadSprites();
+
void assembleBorder();
void setupBackground();
@@ -149,18 +93,6 @@ private:
void animate3d();
- void setIndoorsMonsters();
-
- void setIndoorObjects();
-
- void setIndoorWallPics();
-
- void drawIndoors();
-
- void setOutdoorsMonsters();
-
- void setOutdoorsObjects();
-
void moveMonsters();
void setMainButtons();
diff --git a/engines/xeen/interface_map.cpp b/engines/xeen/interface_map.cpp
new file mode 100644
index 0000000000..d88f9421ed
--- /dev/null
+++ b/engines/xeen/interface_map.cpp
@@ -0,0 +1,1704 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "xeen/interface.h"
+#include "xeen/dialogs_error.h"
+#include "xeen/resources.h"
+#include "xeen/xeen.h"
+
+namespace Xeen {
+
+OutdoorDrawList::OutdoorDrawList() : _skySprite(_data[1]), _groundSprite(_data[2]) {
+ _data[0] = DrawStruct(0, 8, 8);
+ _data[1] = DrawStruct(1, 8, 25);
+ _data[2] = DrawStruct(0, 8, 67);
+ _data[3] = DrawStruct(0, 8, 67);
+ _data[4] = DrawStruct(0, 38, 67);
+ _data[5] = DrawStruct(0, 84, 67);
+ _data[6] = DrawStruct(0, 134, 67);
+ _data[7] = DrawStruct(0, 117, 67);
+ _data[8] = DrawStruct(0, 117, 67);
+ _data[9] = DrawStruct(0, 103, 67);
+ _data[10] = DrawStruct(0, 8, 73);
+ _data[11] = DrawStruct(0, 8, 73);
+ _data[12] = DrawStruct(0, 30, 73);
+ _data[13] = DrawStruct(0, 181, 73);
+ _data[14] = DrawStruct(0, 154, 73);
+ _data[15] = DrawStruct(0, 129, 73);
+ _data[16] = DrawStruct(0, 87, 73);
+ _data[17] = DrawStruct(0, 8, 81);
+ _data[18] = DrawStruct(0, 8, 81);
+ _data[19] = DrawStruct(0, 202, 81);
+ _data[20] = DrawStruct(0, 145, 81);
+ _data[21] = DrawStruct(0, 63, 81);
+ _data[22] = DrawStruct(0, 8, 93);
+ _data[23] = DrawStruct(0, 169, 93);
+ _data[24] = DrawStruct(0, 31, 93);
+ _data[25] = DrawStruct(0, 8, 109);
+ _data[26] = DrawStruct(0, 201, 109);
+ _data[27] = DrawStruct(0, 8, 109);
+ _data[28] = DrawStruct(1, 65472, 61, 14, SPRFLAG_2000);
+ _data[29] = DrawStruct(1, 65496, 61, 14, 0);
+ _data[30] = DrawStruct(1, 65520, 61, 14, 0);
+ _data[31] = DrawStruct(1, 8, 61, 14, 0);
+ _data[32] = DrawStruct(1, 128, 61, 14, SPRFLAG_HORIZ_FLIPPED | SPRFLAG_2000);
+ _data[33] = DrawStruct(1, 104, 61, 14, SPRFLAG_HORIZ_FLIPPED);
+ _data[34] = DrawStruct(1, 80, 61, 14, SPRFLAG_HORIZ_FLIPPED);
+ _data[35] = DrawStruct(1, 56, 61, 14, SPRFLAG_HORIZ_FLIPPED);
+ _data[36] = DrawStruct(1, 32, 61, 14, 0);
+ _data[37] = DrawStruct(0, 65527, 61, 14, 0);
+ _data[38] = DrawStruct(0, 65478, 61, 14, 0);
+ _data[39] = DrawStruct(0, 40, 61, 14, 0);
+ _data[40] = DrawStruct(0, 65454, 61, 14, 0);
+ _data[41] = DrawStruct(0, 64, 61, 14, 0);
+ _data[42] = DrawStruct(0, 65495, 61, 14, 0);
+ _data[43] = DrawStruct(0, 65510, 61, 14, 0);
+ _data[44] = DrawStruct(0, 65502, 61, 14, 0);
+ _data[45] = DrawStruct(0, 65520, 61, 14, 0);
+ _data[46] = DrawStruct(0, 23, 61, 14, 0);
+ _data[47] = DrawStruct(0, 16, 61, 14, 0);
+ _data[48] = DrawStruct(0, 65478, 61, 14, 0);
+ _data[49] = DrawStruct(0, 40, 61, 14, 0);
+ _data[50] = DrawStruct(0, 65519, 61, 14, 0);
+ _data[51] = DrawStruct(0, 65535, 58, 14, 0);
+ _data[52] = DrawStruct(0, 65527, 58, 14, 0);
+ _data[53] = DrawStruct(0, 72, 58, 12, 0);
+ _data[54] = DrawStruct(0, 72, 58, 12, SPRFLAG_HORIZ_FLIPPED);
+ _data[55] = DrawStruct(0, 69, 63, 12, 0);
+ _data[56] = DrawStruct(0, 75, 63, 12, SPRFLAG_HORIZ_FLIPPED);
+ _data[57] = DrawStruct(0, 73, 53, 12, 0);
+ _data[58] = DrawStruct(0, 71, 53, 12, SPRFLAG_HORIZ_FLIPPED);
+ _data[59] = DrawStruct(0, 80, 57, 12, 0);
+ _data[60] = DrawStruct(0, 64, 57, 12, SPRFLAG_HORIZ_FLIPPED);
+ _data[61] = DrawStruct(2, 65525, 54, 8, 0);
+ _data[62] = DrawStruct(1, 65515, 54, 11, 0);
+ _data[63] = DrawStruct(2, 165, 54, 8, SPRFLAG_HORIZ_FLIPPED);
+ _data[64] = DrawStruct(1, 86, 54, 11, SPRFLAG_HORIZ_FLIPPED);
+ _data[65] = DrawStruct(1, 33, 54, 11, 0);
+ _data[66] = DrawStruct(0, 65528, 54, 12, 0);
+ _data[67] = DrawStruct(0, 65463, 54, 12, 0);
+ _data[68] = DrawStruct(0, 57, 54, 12, 0);
+ _data[69] = DrawStruct(0, 65471, 54, 12, 0);
+ _data[70] = DrawStruct(0, 65455, 54, 12, 0);
+ _data[71] = DrawStruct(0, 49, 54, 12, 0);
+ _data[72] = DrawStruct(0, 65, 54, 12, 0);
+ _data[73] = DrawStruct(0, 65512, 54, 12, 0);
+ _data[74] = DrawStruct(0, 9, 50, 12, 0);
+ _data[75] = DrawStruct(0, 65528, 50, 12, 0);
+ _data[76] = DrawStruct(0, 72, 53, 8, 0);
+ _data[77] = DrawStruct(0, 72, 53, 8, SPRFLAG_HORIZ_FLIPPED);
+ _data[78] = DrawStruct(0, 77, 58, 8, 0);
+ _data[79] = DrawStruct(0, 67, 58, 8, SPRFLAG_HORIZ_FLIPPED);
+ _data[80] = DrawStruct(0, 81, 47, 8, 0);
+ _data[81] = DrawStruct(0, 63, 47, 8, SPRFLAG_HORIZ_FLIPPED);
+ _data[82] = DrawStruct(0, 94, 52, 8, 0);
+ _data[83] = DrawStruct(0, 50, 52, 8, SPRFLAG_HORIZ_FLIPPED);
+ _data[84] = DrawStruct(2, 8, 40);
+ _data[85] = DrawStruct(2, 146, 40, 0, SPRFLAG_HORIZ_FLIPPED);
+ _data[86] = DrawStruct(1, 32, 40, 6, 0);
+ _data[87] = DrawStruct(0, 65529, 30, 7, 0);
+ _data[88] = DrawStruct(0, 65424, 30, 7, SPRFLAG_2000);
+ _data[89] = DrawStruct(0, 98, 30, 7, SPRFLAG_2000);
+ _data[90] = DrawStruct(0, 65424, 30, 8, SPRFLAG_2000);
+ _data[91] = DrawStruct(0, 98, 30, 8, SPRFLAG_2000);
+ _data[92] = DrawStruct(0, 65498, 30, 8, 0);
+ _data[93] = DrawStruct(0, 25, 30, 8, 0);
+ _data[94] = DrawStruct(0, 65529, 30, 8, 0);
+ _data[95] = DrawStruct(0, 72, 48, 4, 0);
+ _data[96] = DrawStruct(0, 72, 48, 4, SPRFLAG_HORIZ_FLIPPED);
+ _data[97] = DrawStruct(0, 85, 53, 4, 0);
+ _data[98] = DrawStruct(0, 59, 53, 4, SPRFLAG_HORIZ_FLIPPED);
+ _data[99] = DrawStruct(0, 89, 41, 4, 0);
+ _data[100] = DrawStruct(0, 55, 41, 4, SPRFLAG_HORIZ_FLIPPED);
+ _data[101] = DrawStruct(0, 106, 47, 4, 0);
+ _data[102] = DrawStruct(0, 38, 47, 4, SPRFLAG_HORIZ_FLIPPED);
+ _data[103] = DrawStruct(0, 8, 24);
+ _data[104] = DrawStruct(0, 169, 24, 0, SPRFLAG_HORIZ_FLIPPED);
+ _data[105] = DrawStruct(1, 32, 24);
+ _data[106] = DrawStruct(0, 65513, 40, 0, SPRFLAG_2000);
+ _data[107] = DrawStruct(0, 200, 40, 0, SPRFLAG_HORIZ_FLIPPED | SPRFLAG_2000);
+ _data[108] = DrawStruct(0, 8, 47);
+ _data[109] = DrawStruct(0, 169, 47, 0, SPRFLAG_HORIZ_FLIPPED);
+ _data[110] = DrawStruct(1, 65480, 65532, 32768, SPRFLAG_4000 | SPRFLAG_2000);
+ _data[111] = DrawStruct(0, 65531, 2, 0, SPRFLAG_4000 | SPRFLAG_2000);
+ _data[112] = DrawStruct(0, 65469, 2, 0, SPRFLAG_4000 | SPRFLAG_2000);
+ _data[113] = DrawStruct(0, 44, 73);
+ _data[114] = DrawStruct(0, 44, 73);
+ _data[115] = DrawStruct(0, 58, 14, 0, SPRFLAG_4000 | SPRFLAG_2000);
+ _data[116] = DrawStruct(0, 169, 73);
+ _data[117] = DrawStruct(0, 169, 73);
+ _data[118] = DrawStruct(0, 65531, 14, 0, SPRFLAG_4000 | SPRFLAG_2000);
+ _data[119] = DrawStruct(0, 110, 73);
+ _data[120] = DrawStruct(0, 110, 73);
+ _data[121] = DrawStruct(0, 65531, 14, 0, SPRFLAG_4000 | SPRFLAG_2000);
+ _data[122] = DrawStruct(0, 110, 73);
+ _data[123] = DrawStruct(0, 110, 73);
+ _data[124] = DrawStruct(0, 72, 43);
+ _data[125] = DrawStruct(0, 72, 43, 0, SPRFLAG_HORIZ_FLIPPED);
+ _data[126] = DrawStruct(0, 93, 48);
+ _data[127] = DrawStruct(0, 51, 48, 0, SPRFLAG_HORIZ_FLIPPED);
+ _data[128] = DrawStruct(0, 97, 36);
+ _data[129] = DrawStruct(0, 47, 36, 0, SPRFLAG_HORIZ_FLIPPED);
+ _data[130] = DrawStruct(0, 118, 42);
+ _data[131] = DrawStruct(0, 26, 42, 0, SPRFLAG_HORIZ_FLIPPED);
+}
+
+/*------------------------------------------------------------------------*/
+
+IndoorDrawList::IndoorDrawList() :
+ _sky(_data[1]), _ground(_data[2]), _horizon(_data[28]),
+ _swl_0F1R(_data[ 46]), _swl_0F1L(_data[44]), _swl_1F1R(_data[134]),
+ _swl_1F1L(_data[133]), _swl_2F2R(_data[110]), _swl_2F1R(_data[109]),
+ _swl_2F1L(_data[108]), _swl_2F2L(_data[107]), _swl_3F1R(_data[ 78]),
+ _swl_3F2R(_data[ 77]), _swl_3F3R(_data[ 76]), _swl_3F4R(_data[ 75]),
+ _swl_3F1L(_data[ 74]), _swl_3F2L(_data[ 73]), _swl_3F3L(_data[ 72]),
+ _swl_3F4L(_data[ 71]), _swl_4F4R(_data[ 33]), _swl_4F3R(_data[ 34]),
+ _swl_4F2R(_data[ 35]), _swl_4F1R(_data[ 36]), _swl_4F1L(_data[ 32]),
+ _swl_4F2L(_data[ 31]), _swl_4F3L(_data[ 30]), _swl_4F4L(_data[ 29]),
+ _fwl_4F4R(_data[ 45]), _fwl_4F3R(_data[ 44]), _fwl_4F2R(_data[ 43]),
+ _fwl_4F1R(_data[ 42]), _fwl_4F( _data[ 41]), _fwl_4F1L(_data[ 40]),
+ _fwl_4F2L(_data[ 39]), _fwl_4F3L(_data[ 38]), _fwl_4F4L(_data[ 37]),
+ _fwl_2F1R(_data[121]), _fwl_2F( _data[120]), _fwl_2F1L(_data[119]),
+ _fwl_3F2R(_data[ 91]), _fwl_3F1R(_data[ 90]), _fwl_3F( _data[ 89]),
+ _fwl_3F1L(_data[ 88]), _fwl_3F2L(_data[ 87]), _fwl_1F( _data[147]),
+ _fwl_1F1R(_data[145]), _fwl_1F1L(_data[143]),
+ _objects0(_data[149]), _objects1(_data[125]), _objects2(_data[126]),
+ _objects3(_data[127]), _objects4(_data[97]), _objects5(_data[98]),
+ _objects6(_data[99]), _objects7(_data[55]), _objects8(_data[56]),
+ _objects9(_data[58]), _objects10(_data[57]), _objects11(_data[59]) {
+ // Setup draw structure positions
+ _data[0] = DrawStruct(0, 8, 8);
+ _data[1] = DrawStruct(1, 8, 25);
+ _data[2] = DrawStruct(0, 8, 67);
+ _data[3] = DrawStruct(0, 8, 67);
+ _data[4] = DrawStruct(0, 38, 67);
+ _data[5] = DrawStruct(0, 84, 67);
+ _data[6] = DrawStruct(0, 134, 67);
+ _data[7] = DrawStruct(0, 117, 67);
+ _data[8] = DrawStruct(0, 117, 67);
+ _data[9] = DrawStruct(0, 103, 67);
+ _data[10] = DrawStruct(0, 8, 73);
+ _data[11] = DrawStruct(0, 8, 73);
+ _data[12] = DrawStruct(0, 30, 73);
+ _data[13] = DrawStruct(0, 181, 73);
+ _data[14] = DrawStruct(0, 154, 73);
+ _data[15] = DrawStruct(0, 129, 73);
+ _data[16] = DrawStruct(0, 87, 73);
+ _data[17] = DrawStruct(0, 8, 81);
+ _data[18] = DrawStruct(0, 8, 81);
+ _data[19] = DrawStruct(0, 202, 81);
+ _data[20] = DrawStruct(0, 145, 81);
+ _data[21] = DrawStruct(0, 63, 81);
+ _data[22] = DrawStruct(0, 8, 93);
+ _data[23] = DrawStruct(0, 169, 93);
+ _data[24] = DrawStruct(0, 31, 93);
+ _data[25] = DrawStruct(0, 8, 109);
+ _data[26] = DrawStruct(0, 201, 109);
+ _data[27] = DrawStruct(0, 8, 109);
+ _data[28] = DrawStruct(7, 8, 64);
+ _data[29] = DrawStruct(22, 32, 60);
+ _data[30] = DrawStruct(20, 56, 60);
+ _data[31] = DrawStruct(18, 80, 60);
+ _data[32] = DrawStruct(16, 104, 60);
+ _data[33] = DrawStruct(23, 152, 60, 0, SPRFLAG_HORIZ_FLIPPED);
+ _data[34] = DrawStruct(21, 144, 60, 0, SPRFLAG_HORIZ_FLIPPED);
+ _data[35] = DrawStruct(19, 131, 60, 0, SPRFLAG_HORIZ_FLIPPED);
+ _data[36] = DrawStruct(17, 120, 60, 0, SPRFLAG_HORIZ_FLIPPED);
+ _data[37] = DrawStruct(14, 8, 60);
+ _data[38] = DrawStruct(12, 32, 60);
+ _data[39] = DrawStruct(10, 56, 60);
+ _data[40] = DrawStruct(14, 80, 60);
+ _data[41] = DrawStruct(14, 104, 60);
+ _data[42] = DrawStruct(14, 128, 60);
+ _data[43] = DrawStruct(14, 152, 60);
+ _data[44] = DrawStruct(8, 176, 60);
+ _data[45] = DrawStruct(8, 200, 60);
+ _data[46] = DrawStruct(0, 65472, 61, 14, 0);
+ _data[47] = DrawStruct(0, 65496, 61, 14, 0);
+ _data[48] = DrawStruct(0, 65520, 61, 14, 0);
+ _data[49] = DrawStruct(0, 8, 61, 14, 0);
+ _data[50] = DrawStruct(0, 32, 61, 14, 0);
+ _data[51] = DrawStruct(0, 56, 61, 14, 0);
+ _data[52] = DrawStruct(0, 80, 61, 14, 0);
+ _data[53] = DrawStruct(0, 104, 61, 14, 0);
+ _data[54] = DrawStruct(0, 128, 61, 14, 0);
+ _data[55] = DrawStruct(0, 65527, 58, 14, 0);
+ _data[56] = DrawStruct(0, 65502, 58, 14, 0);
+ _data[57] = DrawStruct(0, 16, 58, 14, 0);
+ _data[58] = DrawStruct(0, 65478, 58, 14, 0);
+ _data[59] = DrawStruct(0, 40, 58, 14, 0);
+ _data[60] = DrawStruct(0, 65495, 58, 14, 0);
+ _data[61] = DrawStruct(0, 65510, 58, 14, 0);
+ _data[62] = DrawStruct(0, 65502, 58, 14, 0);
+ _data[63] = DrawStruct(0, 65520, 58, 14, 0);
+ _data[64] = DrawStruct(0, 23, 58, 14, 0);
+ _data[65] = DrawStruct(0, 16, 58, 14, 0);
+ _data[66] = DrawStruct(0, 65478, 58, 14, 0);
+ _data[67] = DrawStruct(0, 40, 58, 14, 0);
+ _data[68] = DrawStruct(0, 65519, 58, 14, 0);
+ _data[69] = DrawStruct(0, 65535, 58, 14, 0);
+ _data[70] = DrawStruct(0, 65527, 58, 14, 0);
+ _data[71] = DrawStruct(14, 8, 58);
+ _data[72] = DrawStruct(12, 8, 55);
+ _data[73] = DrawStruct(10, 32, 52);
+ _data[74] = DrawStruct(14, 88, 52);
+ _data[75] = DrawStruct(14, 128, 52, 0, SPRFLAG_HORIZ_FLIPPED);
+ _data[76] = DrawStruct(14, 152, 52, 0, SPRFLAG_HORIZ_FLIPPED);
+ _data[77] = DrawStruct(0, 176, 55, 0, SPRFLAG_HORIZ_FLIPPED);
+ _data[78] = DrawStruct(0, 200, 58, 0, SPRFLAG_HORIZ_FLIPPED);
+ _data[79] = DrawStruct(0, 72, 58, 12, 0);
+ _data[80] = DrawStruct(0, 72, 58, 12, SPRFLAG_HORIZ_FLIPPED);
+ _data[81] = DrawStruct(0, 69, 63, 12, 0);
+ _data[82] = DrawStruct(0, 75, 63, 12, SPRFLAG_HORIZ_FLIPPED);
+ _data[83] = DrawStruct(0, 73, 53, 12, 0);
+ _data[84] = DrawStruct(0, 71, 53, 12, SPRFLAG_HORIZ_FLIPPED);
+ _data[85] = DrawStruct(0, 80, 57, 12, 0);
+ _data[86] = DrawStruct(0, 64, 57, 12, SPRFLAG_HORIZ_FLIPPED);
+ _data[87] = DrawStruct(7, 65512, 52, 0, SPRFLAG_2000);
+ _data[88] = DrawStruct(7, 32, 52);
+ _data[89] = DrawStruct(7, 88, 52);
+ _data[90] = DrawStruct(0, 144, 52);
+ _data[91] = DrawStruct(0, 200, 52, 0, SPRFLAG_2000);
+ _data[92] = DrawStruct(0, 65457, 52, 11, SPRFLAG_2000);
+ _data[93] = DrawStruct(0, 65509, 52, 11, 0);
+ _data[94] = DrawStruct(0, 32, 52, 11, 0);
+ _data[95] = DrawStruct(0, 89, 52, 11, 0);
+ _data[96] = DrawStruct(0, 145, 52, 11, SPRFLAG_2000);
+ _data[97] = DrawStruct(0, 65528, 50, 12, 0);
+ _data[98] = DrawStruct(0, 65471, 50, 12, 0);
+ _data[99] = DrawStruct(0, 49, 50, 12, 0);
+ _data[100] = DrawStruct(0, 65471, 50, 12, 0);
+ _data[101] = DrawStruct(0, 65455, 50, 12, 0);
+ _data[102] = DrawStruct(0, 49, 50, 12, 0);
+ _data[103] = DrawStruct(0, 65, 50, 12, 0);
+ _data[104] = DrawStruct(0, 65512, 50, 12, 0);
+ _data[105] = DrawStruct(0, 9, 50, 12, 0);
+ _data[106] = DrawStruct(0, 65528, 50, 12, 0);
+ _data[107] = DrawStruct(7, 8, 48);
+ _data[108] = DrawStruct(7, 64, 40);
+ _data[109] = DrawStruct(6, 144, 40, 0, SPRFLAG_HORIZ_FLIPPED);
+ _data[110] = DrawStruct(6, 200, 48, 0, SPRFLAG_HORIZ_FLIPPED);
+ _data[111] = DrawStruct(0, 72, 53, 8, 0);
+ _data[112] = DrawStruct(0, 72, 53, 8, SPRFLAG_HORIZ_FLIPPED);
+ _data[113] = DrawStruct(0, 77, 58, 8, 0);
+ _data[114] = DrawStruct(0, 67, 58, 8, SPRFLAG_HORIZ_FLIPPED);
+ _data[115] = DrawStruct(0, 81, 47, 8, 0);
+ _data[116] = DrawStruct(0, 63, 47, 8, SPRFLAG_HORIZ_FLIPPED);
+ _data[117] = DrawStruct(0, 94, 52, 8, 0);
+ _data[118] = DrawStruct(0, 50, 52, 8, SPRFLAG_HORIZ_FLIPPED);
+ _data[119] = DrawStruct(6, 65496, 40, 0, SPRFLAG_2000);
+ _data[120] = DrawStruct(6, 64, 40);
+ _data[121] = DrawStruct(0, 168, 40, 0, SPRFLAG_2000);
+ _data[122] = DrawStruct(0, 65464, 40, 6, SPRFLAG_2000);
+ _data[123] = DrawStruct(0, 32, 40, 6, 0);
+ _data[124] = DrawStruct(0, 137, 40, 6, SPRFLAG_2000);
+ _data[125] = DrawStruct(0, 65529, 25, 7, 0);
+ _data[126] = DrawStruct(0, 65424, 25, 7, SPRFLAG_2000);
+ _data[127] = DrawStruct(0, 98, 25, 7, SPRFLAG_2000);
+ _data[128] = DrawStruct(0, 65424, 29, 8, SPRFLAG_2000);
+ _data[129] = DrawStruct(0, 98, 29, 8, SPRFLAG_2000);
+ _data[130] = DrawStruct(0, 65498, 29, 8, 0);
+ _data[131] = DrawStruct(0, 25, 29, 8, 0);
+ _data[132] = DrawStruct(0, 65529, 29, 8, 0);
+ _data[133] = DrawStruct(6, 32, 24);
+ _data[134] = DrawStruct(0, 168, 24, 0, SPRFLAG_HORIZ_FLIPPED);
+ _data[135] = DrawStruct(0, 72, 48, 4, 0);
+ _data[136] = DrawStruct(0, 72, 48, 4, SPRFLAG_HORIZ_FLIPPED);
+ _data[137] = DrawStruct(0, 85, 53, 4, 0);
+ _data[138] = DrawStruct(0, 59, 53, 4, SPRFLAG_HORIZ_FLIPPED);
+ _data[139] = DrawStruct(0, 89, 41, 4, 0);
+ _data[140] = DrawStruct(0, 55, 41, 4, SPRFLAG_HORIZ_FLIPPED);
+ _data[141] = DrawStruct(0, 106, 47, 4, 0);
+ _data[142] = DrawStruct(0, 38, 47, 4, SPRFLAG_HORIZ_FLIPPED);
+ _data[143] = DrawStruct(0, 65400, 24, 0, SPRFLAG_2000);
+ _data[144] = DrawStruct(0, 8, 12);
+ _data[145] = DrawStruct(0, 32, 24);
+ _data[146] = DrawStruct(0, 200, 12, 0, SPRFLAG_HORIZ_FLIPPED);
+ _data[147] = DrawStruct(0, 200, 24, 0, SPRFLAG_2000);
+ _data[148] = DrawStruct(0, 32, 24);
+ _data[149] = DrawStruct(0, 65531, 2, 0, SPRFLAG_4000 | SPRFLAG_2000);
+ _data[150] = DrawStruct(0, 65469, 10, 0, SPRFLAG_4000 | SPRFLAG_2000);
+ _data[151] = DrawStruct(0, 44, 73);
+ _data[152] = DrawStruct(0, 44, 73);
+ _data[153] = DrawStruct(0, 58, 14, 0, SPRFLAG_4000 | SPRFLAG_2000);
+ _data[154] = DrawStruct(0, 169, 73);
+ _data[155] = DrawStruct(0, 169, 73);
+ _data[156] = DrawStruct(0, 65531, 14, 0, SPRFLAG_4000 | SPRFLAG_2000);
+ _data[157] = DrawStruct(0, 110, 73);
+ _data[158] = DrawStruct(0, 110, 73);
+ _data[159] = DrawStruct(0, 65531, 14, 0, SPRFLAG_4000 | SPRFLAG_2000);
+ _data[160] = DrawStruct(0, 110, 73);
+ _data[161] = DrawStruct(0, 110, 73);
+ _data[162] = DrawStruct(0, 72, 43);
+ _data[163] = DrawStruct(0, 72, 43, 0, SPRFLAG_HORIZ_FLIPPED);
+ _data[164] = DrawStruct(0, 93, 48);
+ _data[165] = DrawStruct(0, 51, 48, 0, SPRFLAG_HORIZ_FLIPPED);
+ _data[166] = DrawStruct(0, 97, 36);
+ _data[167] = DrawStruct(0, 47, 36, 0, SPRFLAG_HORIZ_FLIPPED);
+ _data[168] = DrawStruct(0, 118, 42);
+ _data[169] = DrawStruct(0, 26, 42, 0, SPRFLAG_HORIZ_FLIPPED);
+}
+
+/*------------------------------------------------------------------------*/
+
+InterfaceMap::InterfaceMap(XeenEngine *vm): _vm(vm) {
+ Common::fill(&_wp[0], &_wp[20], 0);
+ Common::fill(&_wo[0], &_wo[308], 0);
+ _overallFrame = 0;
+ _flipWtr = false;
+ _flipWall = false;
+ _flipSky = false;
+ _flipGround = false;
+ _isShooting = false;
+ _charsShooting = false;
+ _objNumber = 0;
+}
+
+void InterfaceMap::setIndoorsMonsters() {
+
+}
+
+void InterfaceMap::setIndoorObjects() {
+ Common::Point mazePos = _vm->_party._mazePosition;
+ _objNumber = 0;
+ const int8 *posOffset = &SCREEN_POSITIONING_X[_vm->_party._mazeDirection][0];
+ Common::Point pt;
+
+ Common::Array<MazeObject> &objects = _vm->_map->_mobData._objects;
+ for (uint idx = 0; idx < objects.size(); ++idx) {
+ MazeObject &mazeObject = objects[idx];
+
+ // Determine which half of the X/Y lists to use
+ int listOffset;
+ if (_vm->_files->_isDarkCc) {
+ listOffset = mazeObject._spriteId == 47 ? 1 : 0;
+ }
+ else {
+ listOffset = mazeObject._spriteId == 113 ? 1 : 0;
+ }
+
+ // Position 1
+ pt = Common::Point(mazePos.x + posOffset[2], mazePos.y + posOffset[194]);
+ if (pt == mazeObject._position && _indoorList._objects0._frame == -1) {
+ _indoorList._objects0._x = INDOOR_OBJECT_X[listOffset][0];
+ _indoorList._objects0._y = INDOOR_OBJECT_Y[listOffset][0];
+ _indoorList._objects0._frame = mazeObject._frame;
+ _indoorList._objects0._sprites = mazeObject._sprites;
+ _indoorList._objects0._flags &= ~SPRFLAG_HORIZ_FLIPPED;
+ if (mazeObject._flipped)
+ _indoorList._objects0._flags |= SPRFLAG_HORIZ_FLIPPED;
+ _objNumber = idx;
+ }
+
+ // Position 2
+ pt = Common::Point(mazePos.x + posOffset[7], mazePos.y + posOffset[199]);
+ if (pt == mazeObject._position && !_wo[27] && _indoorList._objects1._frame == -1) {
+ _indoorList._objects1._x = INDOOR_OBJECT_X[listOffset][1];
+ _indoorList._objects1._y = INDOOR_OBJECT_Y[listOffset][1];
+ _indoorList._objects1._frame = mazeObject._frame;
+ _indoorList._objects1._sprites = mazeObject._sprites;
+ _indoorList._objects1._flags &= ~SPRFLAG_HORIZ_FLIPPED;
+ if (mazeObject._flipped)
+ _indoorList._objects1._flags |= SPRFLAG_HORIZ_FLIPPED;
+ }
+
+ // Position 3
+ pt = Common::Point(mazePos.x + posOffset[5], mazePos.y + posOffset[197]);
+ if (pt == mazeObject._position && (!_wo[27] || !_wo[25]) && (!_wo[27] || !_wo[28]) &&
+ (!_wo[23] || !_wo[25]) && (!_wo[23] || !_wo[28]) &&
+ _indoorList._objects2._frame == -1) {
+ _indoorList._objects2._x = INDOOR_OBJECT_X[listOffset][2];
+ _indoorList._objects2._y = INDOOR_OBJECT_Y[listOffset][2];
+ _indoorList._objects2._frame = mazeObject._frame;
+ _indoorList._objects2._sprites = mazeObject._sprites;
+ _indoorList._objects2._flags &= ~SPRFLAG_HORIZ_FLIPPED;
+ if (mazeObject._flipped)
+ _indoorList._objects2._flags |= SPRFLAG_HORIZ_FLIPPED;
+ }
+
+ // Position 4
+ pt = Common::Point(mazePos.x + posOffset[9], mazePos.y + posOffset[201]);
+ if (pt == mazeObject._position && (!_wo[27] || !_wo[26]) && (!_wo[27] || !_wo[29]) &&
+ (!_wo[24] || !_wo[26]) && (!_wo[24] || !_wo[29]) && _indoorList._objects3._frame == -1) {
+ _indoorList._objects3._x = INDOOR_OBJECT_X[listOffset][3];
+ _indoorList._objects3._y = INDOOR_OBJECT_Y[listOffset][3];
+ _indoorList._objects3._frame = mazeObject._frame;
+ _indoorList._objects3._sprites = mazeObject._sprites;
+ _indoorList._objects3._flags &= ~SPRFLAG_HORIZ_FLIPPED;
+ if (mazeObject._flipped)
+ _indoorList._objects3._flags |= SPRFLAG_HORIZ_FLIPPED;
+ }
+
+ // Position 5
+ pt = Common::Point(mazePos.x + posOffset[14], mazePos.y + posOffset[206]);
+ if (pt == mazeObject._position && !_wo[22] && !_wo[27] && _indoorList._objects4._frame == -1) {
+ _indoorList._objects4._x = INDOOR_OBJECT_X[listOffset][4];
+ _indoorList._objects4._y = INDOOR_OBJECT_Y[listOffset][4];
+ _indoorList._objects4._frame = mazeObject._frame;
+ _indoorList._objects4._sprites = mazeObject._sprites;
+ _indoorList._objects4._flags &= ~SPRFLAG_HORIZ_FLIPPED;
+ if (mazeObject._flipped)
+ _indoorList._objects4._flags |= SPRFLAG_HORIZ_FLIPPED;
+ }
+
+ // Position 6
+ pt = Common::Point(mazePos.x + posOffset[12], mazePos.y + posOffset[204]);
+ if (pt == mazeObject._position && !_wo[27] && (!_wo[22] || !_wo[23]) && (!_wo[22] || !_wo[20]) &&
+ (!_wo[23] || !_wo[17]) && (!_wo[20] || !_wo[17]) && _indoorList._objects5._frame == -1) {
+ _indoorList._objects5._x = INDOOR_OBJECT_X[listOffset][5];
+ _indoorList._objects5._y = INDOOR_OBJECT_Y[listOffset][5];
+ _indoorList._objects5._frame = mazeObject._frame;
+ _indoorList._objects5._sprites = mazeObject._sprites;
+ _indoorList._objects5._flags &= ~SPRFLAG_HORIZ_FLIPPED;
+ if (mazeObject._flipped)
+ _indoorList._objects5._flags |= SPRFLAG_HORIZ_FLIPPED;
+ }
+
+ // Position 7
+ pt = Common::Point(mazePos.x + posOffset[16], mazePos.y + posOffset[208]);
+ if (pt == mazeObject._position && !_wo[27] && (!_wo[22] || !_wo[24]) && (!_wo[22] || !_wo[21]) &&
+ (!_wo[24] || !_wo[19]) && (!_wo[21] || !_wo[19]) && _indoorList._objects6._frame == -1) {
+ _indoorList._objects6._x = INDOOR_OBJECT_X[listOffset][6];
+ _indoorList._objects6._y = INDOOR_OBJECT_Y[listOffset][6];
+ _indoorList._objects6._frame = mazeObject._frame;
+ _indoorList._objects6._sprites = mazeObject._sprites;
+ _indoorList._objects6._flags &= ~SPRFLAG_HORIZ_FLIPPED;
+ if (mazeObject._flipped)
+ _indoorList._objects6._flags |= SPRFLAG_HORIZ_FLIPPED;
+ }
+
+ // Position 8
+ pt = Common::Point(mazePos.x + posOffset[27], mazePos.y + posOffset[219]);
+ if (pt == mazeObject._position && !_wo[27] && !_wo[22] && !_wo[15] && _indoorList._objects7._frame == -1) {
+ _indoorList._objects7._x = INDOOR_OBJECT_X[listOffset][7];
+ _indoorList._objects7._y = INDOOR_OBJECT_Y[listOffset][7];
+ _indoorList._objects7._frame = mazeObject._frame;
+ _indoorList._objects7._sprites = mazeObject._sprites;
+ _indoorList._objects7._flags &= ~SPRFLAG_HORIZ_FLIPPED;
+ if (mazeObject._flipped)
+ _indoorList._objects7._flags |= SPRFLAG_HORIZ_FLIPPED;
+ }
+
+ // Position 9
+ pt = Common::Point(mazePos.x + posOffset[25], mazePos.y + posOffset[217]);
+ if (pt == mazeObject._position && !_wo[27] && (!_wo[15] || !_wo[17]) && (!_wo[15] || !_wo[12]) &&
+ (!_wo[12] || !_wo[7]) && (!_wo[17] || !_wo[7]) && _indoorList._objects5._frame == -1) {
+ _indoorList._objects8._x = INDOOR_OBJECT_X[listOffset][8];
+ _indoorList._objects8._y = INDOOR_OBJECT_Y[listOffset][8];
+ _indoorList._objects8._frame = mazeObject._frame;
+ _indoorList._objects8._sprites = mazeObject._sprites;
+ _indoorList._objects8._flags &= ~SPRFLAG_HORIZ_FLIPPED;
+ if (mazeObject._flipped)
+ _indoorList._objects8._flags |= SPRFLAG_HORIZ_FLIPPED;
+ }
+
+ // Position 10
+ pt = Common::Point(mazePos.x + posOffset[23], mazePos.y + posOffset[215]);
+ if (pt == mazeObject._position && !_wo[27] && (!_wo[22] || !_wo[20]) && (!_wo[22] || !_wo[23]) &&
+ (!_wo[20] || !_wo[17]) && (!_wo[23] || !_wo[17]) && !_wo[12] && !_wo[8] &&
+ _indoorList._objects9._frame == -1) {
+ _indoorList._objects9._x = INDOOR_OBJECT_X[listOffset][9];
+ _indoorList._objects9._y = INDOOR_OBJECT_Y[listOffset][9];
+ _indoorList._objects9._frame = mazeObject._frame;
+ _indoorList._objects9._sprites = mazeObject._sprites;
+ _indoorList._objects9._flags &= ~SPRFLAG_HORIZ_FLIPPED;
+ if (mazeObject._flipped)
+ _indoorList._objects9._flags |= SPRFLAG_HORIZ_FLIPPED;
+ }
+
+ // Block 11
+ pt = Common::Point(mazePos.x + posOffset[29], mazePos.y + posOffset[221]);
+ if (pt == mazeObject._position && !_wo[27] && !_wo[22] && (!_wo[15] || !_wo[19]) &&
+ (!_wo[15] || !_wo[14]) && (!_wo[14] || !_wo[9]) && (!_wo[19] || !_wo[9]) &&
+ _indoorList._objects10._frame == -1) {
+ _indoorList._objects10._x = INDOOR_OBJECT_X[listOffset][10];
+ _indoorList._objects10._y = INDOOR_OBJECT_Y[listOffset][10];
+ _indoorList._objects10._frame = mazeObject._frame;
+ _indoorList._objects10._sprites = mazeObject._sprites;
+ _indoorList._objects10._flags &= ~SPRFLAG_HORIZ_FLIPPED;
+ if (mazeObject._flipped)
+ _indoorList._objects10._flags |= SPRFLAG_HORIZ_FLIPPED;
+ }
+
+ // Block 12
+ pt = Common::Point(mazePos.x + posOffset[31], mazePos.y + posOffset[223]);
+ if (pt == mazeObject._position && !_wo[27] && (!_wo[22] || !_wo[21]) && (!_wo[22] || !_wo[24]) &&
+ (!_wo[21] || !_wo[19]) && (!_wo[24] || !_wo[19]) && !_wo[14] && !_wo[10] &&
+ _indoorList._objects11._frame == -1) {
+ _indoorList._objects11._x = INDOOR_OBJECT_X[listOffset][11];
+ _indoorList._objects11._y = INDOOR_OBJECT_Y[listOffset][11];
+ _indoorList._objects11._frame = mazeObject._frame;
+ _indoorList._objects11._sprites = mazeObject._sprites;
+ _indoorList._objects11._flags &= ~SPRFLAG_HORIZ_FLIPPED;
+ if (mazeObject._flipped)
+ _indoorList._objects11._flags |= SPRFLAG_HORIZ_FLIPPED;
+ }
+ }
+}
+
+void InterfaceMap::setIndoorWallPics() {
+ // TODO
+}
+
+void InterfaceMap::setOutdoorsMonsters() {
+
+}
+
+void InterfaceMap::setOutdoorsObjects() {
+
+}
+
+void InterfaceMap::drawIndoors() {
+ Map &map = *_vm->_map;
+ int surfaceId;
+ int idx;
+
+ for (int cellIndex = 0; cellIndex < 25; ++cellIndex) {
+ map.getCell(DRAW_NUMBERS[cellIndex]);
+
+ DrawStruct &drawStruct = _indoorList[3 + cellIndex];
+ drawStruct._sprites = &map._surfaceSprites[map._currentSurfaceId];
+
+ surfaceId = map.mazeData()._surfaceTypes[map._currentSurfaceId];
+ if (surfaceId == 5 || surfaceId == 12) {
+ drawStruct._flags = _flipWtr;
+ drawStruct._frame = DRAW_FRAMES[cellIndex][_flipWtr ? 1 : 0];
+ }
+ else {
+ drawStruct._frame = DRAW_FRAMES[cellIndex][_flipWall ? 1 : 0];
+ drawStruct._flags = _flipWall ? 0 : SPRFLAG_HORIZ_FLIPPED;
+ }
+ }
+
+ if (!_wo[27] && !_wo[20] && !_wo[23] && !_wo[12] && !_wo[8] && !_wo[30]) {
+ if (_wo[39])
+ _indoorList._swl_4F4L._frame = 22;
+ else if (_wo[83])
+ _indoorList._swl_4F4L._frame = 46;
+ }
+
+ if (!_wo[27] && !_wo[22] && !_wo[17] && !_wo[12] && !_wo[8]) {
+ if (_wo[38])
+ _indoorList._swl_4F3L._frame = 20;
+ else if (_wo[82])
+ _indoorList._swl_4F3L._frame = 44;
+ }
+
+ if (!_wo[27] && !_wo[22] && !_wo[15] && !_wo[2] && !_wo[7]) {
+ if (_wo[37])
+ _indoorList._swl_4F2L._frame = 18;
+ else if (_wo[81])
+ _indoorList._swl_4F2L._frame = 42;
+ }
+
+ if (!_wo[27] && !_wo[22] && !_wo[15] && !_wo[6]) {
+ if (_wo[36])
+ _indoorList._swl_4F1L._frame = 16;
+ else if (_wo[80])
+ _indoorList._swl_4F1L._frame = 40;
+ }
+
+ if (!_wo[27] && !_wo[21] && !_wo[24] && !_wo[14] && !_wo[10] && !_wo[31]) {
+ if (_wo[43])
+ _indoorList._swl_4F4R._frame = 23;
+ else if (_wo[87])
+ _indoorList._swl_4F4R._frame = 47;
+ }
+
+ if (!_wo[27] && !_wo[22] && !_wo[19] && !_wo[14] && !_wo[10]) {
+ if (_wo[42])
+ _indoorList._swl_4F3R._frame = 21;
+ else if (_wo[86])
+ _indoorList._swl_4F3R._frame = 45;
+ }
+
+ if (!_wo[27] && !_wo[22] && !_wo[15] && !_wo[5] && !_wo[9]) {
+ if (_wo[41])
+ _indoorList._swl_4F2R._frame = 19;
+ else if (_wo[85])
+ _indoorList._swl_4F2R._frame = 43;
+ }
+
+ if (!_wo[27] && !_wo[22] && !_wo[15] && !_wo[6]) {
+ if (_wo[40])
+ _indoorList._swl_4F1R._frame = 17;
+ else if (_wo[84])
+ _indoorList._swl_4F1R._frame = 41;
+ }
+
+ if (!_wo[25] && !_wo[28] && !_wo[20] && !_wo[11] &&
+ !_wo[16] && !_wo[30] && !_wo[32]) {
+ if (_wo[88])
+ _indoorList._fwl_4F4L._frame = 7;
+ else if (_wo[78])
+ _indoorList._fwl_4F4L._frame = 16;
+ else if (_wo[148])
+ _indoorList._fwl_4F4L._frame = _overallFrame + 1;
+ else if (_wo[108])
+ _indoorList._fwl_4F4L._frame = 8;
+ else if (_wo[168])
+ _indoorList._fwl_4F4L._frame = 10;
+ else if (_wo[128])
+ _indoorList._fwl_4F4L._frame = 9;
+ else if (_wo[34])
+ _indoorList._fwl_4F4L._frame = 0;
+ else if (_wo[188])
+ _indoorList._fwl_4F4L._frame = 15;
+ else if (_wo[208])
+ _indoorList._fwl_4F4L._frame = 14;
+ else if (_wo[228])
+ _indoorList._fwl_4F4L._frame = 6;
+ else if (_wo[248])
+ _indoorList._fwl_4F4L._frame = 11;
+ else if (_wo[268])
+ _indoorList._fwl_4F4L._frame = 12;
+ else if (_wo[288])
+ _indoorList._fwl_4F4L._frame = 13;
+ }
+
+ if (!_wo[26] && !_wo[29] && !_wo[21] && !_wo[13] && !_wo[18] && !_wo[31] && !_wo[33]) {
+ if (_wo[93])
+ _indoorList._fwl_4F4R._frame = 7;
+ else if (_wo[79])
+ _indoorList._fwl_4F4R._frame = 16;
+ else if (_wo[153])
+ _indoorList._fwl_4F4R._frame = _overallFrame + 1;
+ else if (_wo[113])
+ _indoorList._fwl_4F4R._frame = 8;
+ else if (_wo[173])
+ _indoorList._fwl_4F4R._frame = 10;
+ else if (_wo[133])
+ _indoorList._fwl_4F4R._frame = 9;
+ else if (_wo[35])
+ _indoorList._fwl_4F4R._frame = 0;
+ else if (_wo[79])
+ _indoorList._fwl_4F4R._frame = 15;
+ else if (_wo[213])
+ _indoorList._fwl_4F4R._frame = 14;
+ else if (_wo[233])
+ _indoorList._fwl_4F4R._frame = 6;
+ else if (_wo[253])
+ _indoorList._fwl_4F4R._frame = 11;
+ else if (_wo[273])
+ _indoorList._fwl_4F4R._frame = 12;
+ else if (_wo[293])
+ _indoorList._fwl_4F4R._frame = 13;
+ }
+
+ if (!_wo[25] && !_wo[28] && !_wo[20] && !_wo[11] && !_wo[16] && !_wo[30]) {
+ if (_wo[32])
+ _indoorList._swl_3F4L._frame = 14;
+ else if (_wo[76])
+ _indoorList._swl_3F4L._frame = 38;
+ }
+
+ if (!_wo[26] && !_wo[29] && !_wo[21] && !_wo[13] && !_wo[18] && !_wo[31]) {
+ if (_wo[33])
+ _indoorList._fwl_3F1R._frame = 15;
+ else if (_wo[77])
+ _indoorList._swl_3F1R._frame = 39;
+ }
+
+ if (_wo[28] && _wo[27]) {
+ }
+ else if (_wo[28] && _wo[12]) {
+ }
+ else if (_wo[28] && _wo[23]) {
+ }
+ else if (_wo[28] && _wo[8]) {
+ }
+ else if (_wo[25] && _wo[27]) {
+ }
+ else if (_wo[25] && _wo[12]) {
+ }
+ else if (_wo[25] && _wo[23]) {
+ }
+ else if (_wo[25] && _wo[8]) {
+ }
+ else if (_wo[11] && _wo[27]) {
+ }
+ else if (_wo[11] && _wo[12]) {
+ }
+ else if (_wo[11] && _wo[23]) {
+ }
+ else if (_wo[11] && _wo[8]) {
+ }
+ else if (_wo[17] && _wo[27]) {
+ }
+ else if (_wo[17] && _wo[12]) {
+ }
+ else if (_wo[17] && _wo[23]) {
+ }
+ else if (_wo[17] && _wo[8]) {
+ }
+ else if (_wo[20]) {
+ }
+ else if (_wo[30]) {
+ _indoorList._swl_3F3L._frame = 12;
+ }
+ else if (_wo[74]) {
+ _indoorList._swl_3F3L._frame = 36;
+ }
+
+ if (_wo[29] && _wo[27]) {
+ }
+ else if (_wo[29] && _wo[14]) {
+ }
+ else if (_wo[29] && _wo[24]) {
+ }
+ else if (_wo[29] && _wo[10]) {
+ }
+ else if (_wo[26] && _wo[27]) {
+ }
+ else if (_wo[26] && _wo[14]) {
+ }
+ else if (_wo[26] && _wo[24]) {
+ }
+ else if (_wo[26] && _wo[10]) {
+ }
+ else if (_wo[13] && _wo[27]) {
+ }
+ else if (_wo[13] && _wo[14]) {
+ }
+ else if (_wo[13] && _wo[24]) {
+ }
+ else if (_wo[13] && _wo[10]) {
+ }
+ else if (_wo[19] && _wo[27]) {
+ }
+ else if (_wo[19] && _wo[24]) {
+ }
+ else if (_wo[19] && _wo[10]) {
+ }
+ else if (_wo[21]) {
+ }
+ else if (_wo[31]) {
+ _indoorList._swl_3F2R._frame = 13;
+ }
+ else if (_wo[75]) {
+ _indoorList._swl_3F2R._frame = 37;
+ }
+
+ if (!_wo[27] && !_wo[20] && !_wo[12] && !_wo[23] && !_wo[8] && !_wo[30]) {
+ if (_wo[89])
+ _indoorList._fwl_4F3L._frame = 7;
+ else if (_wo[44])
+ _indoorList._fwl_4F3L._frame = 16;
+ else if (_wo[149])
+ _indoorList._fwl_4F3L._frame = _overallFrame + 1;
+ else if (_wo[109])
+ _indoorList._fwl_4F3L._frame = 8;
+ else if (_wo[169])
+ _indoorList._fwl_4F3L._frame = 10;
+ else if (_wo[129])
+ _indoorList._fwl_4F3L._frame = 9;
+ else if (_wo[0])
+ _indoorList._fwl_4F3L._frame = 0;
+ else if (_wo[189])
+ _indoorList._fwl_4F3L._frame = 15;
+ else if (_wo[209])
+ _indoorList._fwl_4F3L._frame = 14;
+ else if (_wo[229])
+ _indoorList._fwl_4F3L._frame = 6;
+ else if (_wo[249])
+ _indoorList._fwl_4F3L._frame = 11;
+ else if (_wo[269])
+ _indoorList._fwl_4F3L._frame = 12;
+ else if (_wo[289])
+ _indoorList._fwl_4F3L._frame = 13;
+ }
+
+ if (_wo[22] && _wo[20]) {
+ }
+ else if (_wo[22] && _wo[23]) {
+ }
+ else if (_wo[20] && _wo[17]) {
+ }
+ else if (_wo[23] && _wo[17]) {
+ }
+ else if (_wo[12]) {
+ }
+ else if (_wo[8]) {
+ }
+ else if (_wo[90]) {
+ _indoorList._fwl_4F2L._frame = 7;
+ }
+ else if (_wo[45]) {
+ _indoorList._fwl_4F2L._frame = 16;
+ }
+ else if (_wo[150]) {
+ _indoorList._fwl_4F2L._frame = _overallFrame + 1;
+ }
+ else if (_wo[110]) {
+ _indoorList._fwl_4F2L._frame = 8;
+ }
+ else if (_wo[170]) {
+ _indoorList._fwl_4F2L._frame = 10;
+ }
+ else if (_wo[130]) {
+ _indoorList._fwl_4F2L._frame = 9;
+ }
+ else if (_wo[1]) {
+ _indoorList._fwl_4F2L._frame = 0;
+ }
+ else if (_wo[190]) {
+ _indoorList._fwl_4F2L._frame = 15;
+ }
+ else if (_wo[210]) {
+ _indoorList._fwl_4F2L._frame = 14;
+ }
+ else if (_wo[230]) {
+ _indoorList._fwl_4F2L._frame = 6;
+ }
+ else if (_wo[250]) {
+ _indoorList._fwl_4F2L._frame = 11;
+ }
+ else if (_wo[270]) {
+ _indoorList._fwl_4F2L._frame = 12;
+ }
+ else if (_wo[290]) {
+ _indoorList._fwl_4F2L._frame = 13;
+ }
+
+ if (_wo[15] && _wo[17]) {
+ }
+ else if (_wo[15] && _wo[12]) {
+ }
+ else if (_wo[12] && _wo[7]) {
+ }
+ else if (_wo[17] && _wo[7]) {
+ }
+ else if (_wo[91]) {
+ _indoorList._fwl_4F1L._frame = 7;
+ }
+ else if (_wo[46]) {
+ _indoorList._fwl_4F1L._frame = 16;
+ }
+ else if (_wo[151]) {
+ _indoorList._fwl_4F1L._frame = _overallFrame + 1;
+ }
+ else if (_wo[111]) {
+ _indoorList._fwl_4F1L._frame = 8;
+ }
+ else if (_wo[171]) {
+ _indoorList._fwl_4F1L._frame = 10;
+ }
+ else if (_wo[131]) {
+ _indoorList._fwl_4F1L._frame = 9;
+ }
+ else if (_wo[2]) {
+ _indoorList._fwl_4F1L._frame = 0;
+ }
+ else if (_wo[191]) {
+ _indoorList._fwl_4F1L._frame = 15;
+ }
+ else if (_wo[211]) {
+ _indoorList._fwl_4F1L._frame = 14;
+ }
+ else if (_wo[231]) {
+ _indoorList._fwl_4F1L._frame = 6;
+ }
+ else if (_wo[251]) {
+ _indoorList._fwl_4F1L._frame = 11;
+ }
+ else if (_wo[271]) {
+ _indoorList._fwl_4F1L._frame = 12;
+ }
+ else if (_wo[291]) {
+ _indoorList._fwl_4F1L._frame = 13;
+ }
+
+ if (!_wo[27] && !_wo[21] && !_wo[14] && !_wo[24] && !_wo[10] && !_wo[31]) {
+ if (_wo[92]) {
+ _indoorList._fwl_4F3R._frame = 7;
+ }
+ else if (_wo[47]) {
+ _indoorList._fwl_4F3R._frame = 16;
+ }
+ else if (_wo[152]) {
+ _indoorList._fwl_4F3R._frame = _overallFrame + 1;
+ }
+ else if (_wo[112]) {
+ _indoorList._fwl_4F3R._frame = 8;
+ }
+ else if (_wo[172]) {
+ _indoorList._fwl_4F3R._frame = 10;
+ }
+ else if (_wo[132]) {
+ _indoorList._fwl_4F3R._frame = 9;
+ }
+ else if (_wo[3]) {
+ _indoorList._fwl_4F3R._frame = 0;
+ }
+ else if (_wo[192]) {
+ _indoorList._fwl_4F3R._frame = 15;
+ }
+ else if (_wo[212]) {
+ _indoorList._fwl_4F3R._frame = 14;
+ }
+ else if (_wo[232]) {
+ _indoorList._fwl_4F3R._frame = 6;
+ }
+ else if (_wo[252]) {
+ _indoorList._fwl_4F3R._frame = 11;
+ }
+ else if (_wo[272]) {
+ _indoorList._fwl_4F3R._frame = 12;
+ }
+ else if (_wo[292]) {
+ _indoorList._fwl_4F3R._frame = 13;
+ }
+ }
+
+ if (_wo[22] && _wo[21]) {
+ }
+ else if (_wo[22] && _wo[24]) {
+ }
+ else if (_wo[21] && _wo[19]) {
+ }
+ else if (_wo[24] && _wo[19]) {
+ }
+ else if (_wo[14] || _wo[10]) {
+ }
+ else if (_wo[94]) {
+ _indoorList._fwl_4F2R._frame = 7;
+ }
+ else if (_wo[48]) {
+ _indoorList._fwl_4F2R._frame = 16;
+ }
+ else if (_wo[154]) {
+ _indoorList._fwl_4F2R._frame = _overallFrame + 1;
+ }
+ else if (_wo[114]) {
+ _indoorList._fwl_4F2R._frame = 8;
+ }
+ else if (_wo[174]) {
+ _indoorList._fwl_4F2R._frame = 10;
+ }
+ else if (_wo[134]) {
+ _indoorList._fwl_4F2R._frame = 9;
+ }
+ else if (_wo[4]) {
+ _indoorList._fwl_4F2R._frame = 0;
+ }
+ else if (_wo[194]) {
+ _indoorList._fwl_4F2R._frame = 15;
+ }
+ else if (_wo[214]) {
+ _indoorList._fwl_4F2R._frame = 14;
+ }
+ else if (_wo[234]) {
+ _indoorList._fwl_4F2R._frame = 6;
+ }
+ else if (_wo[254]) {
+ _indoorList._fwl_4F2R._frame = 11;
+ }
+ else if (_wo[274]) {
+ _indoorList._fwl_4F2R._frame = 12;
+ }
+ else if (_wo[294]) {
+ _indoorList._fwl_4F2R._frame = 13;
+ }
+
+ if (_wo[15] && _wo[19]) {
+ }
+ else if (_wo[15] && _wo[14]) {
+ }
+ else if (_wo[14] && _wo[9]) {
+ }
+ else if (_wo[19] && _wo[9]) {
+ }
+ else if (_wo[95]) {
+ _indoorList._fwl_4F1R._frame = 7;
+ }
+ else if (_wo[49]) {
+ _indoorList._fwl_4F1R._frame = 16;
+ }
+ else if (_wo[155]) {
+ _indoorList._fwl_4F1R._frame = _overallFrame + 1;
+ }
+ else if (_wo[115]) {
+ _indoorList._fwl_4F1R._frame = 8;
+ }
+ else if (_wo[175]) {
+ _indoorList._fwl_4F1R._frame = 10;
+ }
+ else if (_wo[135]) {
+ _indoorList._fwl_4F1R._frame = 9;
+ }
+ else if (_wo[5]) {
+ _indoorList._fwl_4F1R._frame = 0;
+ }
+ else if (_wo[195]) {
+ _indoorList._fwl_4F1R._frame = 15;
+ }
+ else if (_wo[215]) {
+ _indoorList._fwl_4F1R._frame = 14;
+ }
+ else if (_wo[235]) {
+ _indoorList._fwl_4F1R._frame = 6;
+ }
+ else if (_wo[255]) {
+ _indoorList._fwl_4F1R._frame = 11;
+ }
+ else if (_wo[275]) {
+ _indoorList._fwl_4F1R._frame = 12;
+ }
+ else if (_wo[295]) {
+ _indoorList._fwl_4F1R._frame = 13;
+ }
+
+ if (_wo[27] || _wo[22] || _wo[15] || _wo[96]) {
+ }
+ else if (_wo[50]) {
+ _indoorList._fwl_4F._frame = 16;
+ }
+ else if (_wo[156]) {
+ _indoorList._fwl_4F._frame = _overallFrame + 1;
+ }
+ else if (_wo[116]) {
+ _indoorList._fwl_4F._frame = 8;
+ }
+ else if (_wo[176]) {
+ _indoorList._fwl_4F._frame = 10;
+ }
+ else if (_wo[136]) {
+ _indoorList._fwl_4F._frame = 9;
+ }
+ else if (_wo[6]) {
+ _indoorList._fwl_4F._frame = 0;
+ }
+ else if (_wo[196]) {
+ _indoorList._fwl_4F._frame = 15;
+ }
+ else if (_wo[216]) {
+ _indoorList._fwl_4F._frame = 14;
+ }
+ else if (_wo[236]) {
+ _indoorList._fwl_4F._frame = 6;
+ }
+ else if (_wo[256]) {
+ _indoorList._fwl_4F._frame = 11;
+ }
+ else if (_wo[276]) {
+ _indoorList._fwl_4F._frame = 12;
+ }
+ else if (_wo[296]) {
+ _indoorList._fwl_4F._frame = 13;
+ }
+
+ if (!_wo[27] && !_wo[22] && !_wo[15]) {
+ if (_wo[7])
+ _indoorList._swl_3F1L._frame = 8;
+ else if (_wo[51])
+ _indoorList._swl_3F1L._frame = 32;
+ }
+
+ if (_wo[22] && _wo[23]) {
+ }
+ else if (_wo[22] && _wo[20]) {
+ }
+ else if (_wo[17] && _wo[23]) {
+ }
+ else if (_wo[17] && _wo[20]) {
+ }
+ else if (_wo[8]) {
+ _indoorList._swl_3F2L._frame = 10;
+ }
+ else if (_wo[52]) {
+ _indoorList._swl_3F2L._frame = 34;
+ }
+
+ if (_wo[27] || _wo[22] || _wo[15]) {
+ }
+ else if (_wo[9]) {
+ _indoorList._swl_3F4R._frame = 9;
+ }
+ else if (_wo[53]) {
+ _indoorList._swl_3F4R._frame = 33;
+ }
+
+ if (_wo[22] && _wo[24]) {
+ }
+ else if (_wo[22] && _wo[21]) {
+ }
+ else if (_wo[19] && _wo[24]) {
+ }
+ else if (_wo[19] && _wo[21]) {
+ }
+ else if (_wo[14]) {
+ }
+ else if (_wo[10]) {
+ _indoorList._swl_3F3R._frame = 11;
+ }
+ else if (_wo[54]) {
+ _indoorList._swl_3F3R._frame = 35;
+ }
+
+ if (_wo[25] || _wo[28] || _wo[20] || _wo[16]) {
+ }
+ else if (_wo[97]) {
+ _indoorList._fwl_3F2L._frame = 24;
+ }
+ else if (_wo[55]) {
+ _indoorList._fwl_3F2L._frame = 33;
+ }
+ else if (_wo[137]) {
+ _indoorList._fwl_3F2L._frame = 26;
+ }
+ else if (_wo[157]) {
+ _indoorList._fwl_3F2L._frame = _overallFrame + 18;
+ }
+ else if (_wo[117]) {
+ _indoorList._fwl_3F2L._frame = 25;
+ }
+ else if (_wo[177]) {
+ _indoorList._fwl_3F2L._frame = 27;
+ }
+ else if (_wo[11]) {
+ _indoorList._fwl_3F2L._frame = 17;
+ }
+ else if (_wo[197]) {
+ _indoorList._fwl_3F2L._frame = 32;
+ }
+ else if (_wo[217]) {
+ _indoorList._fwl_3F2L._frame = 31;
+ }
+ else if (_wo[237]) {
+ _indoorList._fwl_3F2L._frame = 23;
+ }
+ else if (_wo[257]) {
+ _indoorList._fwl_3F2L._frame = 28;
+ }
+ else if (_wo[277]) {
+ _indoorList._fwl_3F2L._frame = 29;
+ }
+ else if (_wo[297]) {
+ _indoorList._fwl_3F2L._frame = 30;
+ }
+
+ if (_wo[22] && _wo[23]) {
+ }
+ else if (_wo[22] && _wo[20]) {
+ }
+ else if (_wo[23] && _wo[17]) {
+ }
+ else if (_wo[20] && _wo[17]) {
+ }
+ else if (_wo[98]) {
+ _indoorList._fwl_3F1L._frame = 24;
+ }
+ else if (_wo[56]) {
+ _indoorList._fwl_3F1L._frame = 33;
+ }
+ else if (_wo[178]) {
+ _indoorList._fwl_3F1L._frame = 27;
+ }
+ else if (_wo[118]) {
+ _indoorList._fwl_3F1L._frame = 25;
+ }
+ else if (_wo[158]) {
+ _indoorList._fwl_3F1L._frame = _overallFrame + 18;
+ }
+ else if (_wo[138]) {
+ _indoorList._fwl_3F1L._frame = 26;
+ }
+ else if (_wo[12]) {
+ _indoorList._fwl_3F1L._frame = 17;
+ }
+ else if (_wo[198]) {
+ _indoorList._fwl_3F1L._frame = 32;
+ }
+ else if (_wo[218]) {
+ _indoorList._fwl_3F1L._frame = 31;
+ }
+ else if (_wo[238]) {
+ _indoorList._fwl_3F1L._frame = 23;
+ }
+ else if (_wo[258]) {
+ _indoorList._fwl_3F1L._frame = 28;
+ }
+ else if (_wo[278]) {
+ _indoorList._fwl_3F1L._frame = 29;
+ }
+ else if (_wo[298]) {
+ _indoorList._fwl_3F1L._frame = 30;
+ }
+
+ if (_wo[26] || _wo[29] || _wo[21] || _wo[18]) {
+ }
+ else if (_wo[99]) {
+ _indoorList._fwl_3F2R._frame = 24;
+ }
+ else if (_wo[57]) {
+ _indoorList._fwl_3F2R._frame = 33;
+ }
+ else if (_wo[139]) {
+ _indoorList._fwl_3F2R._frame = 26;
+ }
+ else if (_wo[159]) {
+ _indoorList._fwl_3F2R._frame = _overallFrame + 18;
+ }
+ else if (_wo[119]) {
+ _indoorList._fwl_3F2R._frame = 25;
+ }
+ else if (_wo[179]) {
+ _indoorList._fwl_3F2R._frame = 27;
+ }
+ else if (_wo[13]) {
+ _indoorList._fwl_3F2R._frame = 17;
+ }
+ else if (_wo[199]) {
+ _indoorList._fwl_3F2R._frame = 32;
+ }
+ else if (_wo[219]) {
+ _indoorList._fwl_3F2R._frame = 31;
+ }
+ else if (_wo[239]) {
+ _indoorList._fwl_3F2R._frame = 23;
+ }
+ else if (_wo[259]) {
+ _indoorList._fwl_3F2R._frame = 28;
+ }
+ else if (_wo[279]) {
+ _indoorList._fwl_3F2R._frame = 29;
+ }
+ else if (_wo[299]) {
+ _indoorList._fwl_3F2R._frame = 30;
+ }
+
+ if (_wo[22] && _wo[24]) {
+ }
+ else if (_wo[22] && _wo[21]) {
+ }
+ else if (_wo[24] && _wo[19]) {
+ }
+ else if (_wo[21] && _wo[19]) {
+ }
+ else if (_wo[100]) {
+ _indoorList._fwl_3F1R._frame = 24;
+ }
+ else if (_wo[58]) {
+ _indoorList._fwl_3F1R._frame = 33;
+ }
+ else if (_wo[140]) {
+ _indoorList._fwl_3F1R._frame = 26;
+ }
+ else if (_wo[160]) {
+ _indoorList._fwl_3F1R._frame = _overallFrame + 18;
+ }
+ else if (_wo[120]) {
+ _indoorList._fwl_3F1R._frame = 25;
+ }
+ else if (_wo[180]) {
+ _indoorList._fwl_3F1R._frame = 27;
+ }
+ else if (_wo[14]) {
+ _indoorList._fwl_3F1R._frame = 17;
+ }
+ else if (_wo[200]) {
+ _indoorList._fwl_3F1R._frame = 32;
+ }
+ else if (_wo[220]) {
+ _indoorList._fwl_3F1R._frame = 31;
+ }
+ else if (_wo[240]) {
+ _indoorList._fwl_3F1R._frame = 23;
+ }
+ else if (_wo[260]) {
+ _indoorList._fwl_3F1R._frame = 28;
+ }
+ else if (_wo[280]) {
+ _indoorList._fwl_3F1R._frame = 29;
+ }
+ else if (_wo[300]) {
+ _indoorList._fwl_3F1R._frame = 30;
+ }
+
+ if (_wo[22] || _wo[27]) {
+ }
+ else if (_wo[101]) {
+ _indoorList._fwl_3F._frame = 24;
+ }
+ else if (_wo[59]) {
+ _indoorList._fwl_3F._frame = 33;
+ }
+ else if (_wo[141]) {
+ _indoorList._fwl_3F._frame = 26;
+ }
+ else if (_wo[161]) {
+ _indoorList._fwl_3F._frame = _overallFrame + 18;
+ }
+ else if (_wo[121]) {
+ _indoorList._fwl_3F._frame = 25;
+ }
+ else if (_wo[181]) {
+ _indoorList._fwl_3F._frame = 27;
+ }
+ else if (_wo[15]) {
+ _indoorList._fwl_3F._frame = 17;
+ }
+ else if (_wo[201]) {
+ _indoorList._fwl_3F._frame = 32;
+ }
+ else if (_wo[221]) {
+ _indoorList._fwl_3F._frame = 31;
+ }
+ else if (_wo[241]) {
+ _indoorList._fwl_3F._frame = 23;
+ }
+ else if (_wo[261]) {
+ _indoorList._fwl_3F._frame = 28;
+ }
+ else if (_wo[281]) {
+ _indoorList._fwl_3F._frame = 29;
+ }
+ else if (_wo[301]) {
+ _indoorList._fwl_3F._frame = 30;
+ }
+
+ if (_wo[25] || _wo[28] || _wo[20]) {
+ }
+ else if (_wo[16]) {
+ _indoorList._swl_2F2L._frame = 6;
+ }
+ else if (_wo[60]) {
+ _indoorList._swl_2F2L._frame = 30;
+ }
+
+ if (_wo[27] || _wo[22]) {
+ }
+ else if (_wo[17]) {
+ _indoorList._swl_2F1L._frame = 4;
+ }
+ else if (_wo[61]) {
+ _indoorList._swl_2F1L._frame = 28;
+ }
+
+ if (_wo[26] || _wo[29] || _wo[21]) {
+ }
+ else if (_wo[18]) {
+ _indoorList._swl_2F2R._frame = 7;
+ }
+ else if (_wo[62]) {
+ _indoorList._swl_2F2R._frame = 31;
+ }
+
+ if (_wo[27] || _wo[22]) {
+ }
+ else if (_wo[19]) {
+ _indoorList._swl_2F1R._frame = 5;
+ }
+ else if (_wo[63]) {
+ _indoorList._swl_2F1R._frame = 29;
+ }
+
+ if (_wo[27] && _wo[25]) {
+ }
+ else if (_wo[27] && _wo[28]) {
+ }
+ else if (_wo[23] & _wo[25]) {
+ }
+ else if (_wo[23] && _wo[28]) {
+ }
+ else if (_wo[102]) {
+ _indoorList._fwl_2F1L._frame = 7;
+ }
+ else if (_wo[64]) {
+ _indoorList._fwl_2F1L._frame = 16;
+ }
+ else if (_wo[182]) {
+ _indoorList._fwl_2F1L._frame = 10;
+ }
+ else if (_wo[122]) {
+ _indoorList._fwl_2F1L._frame = 8;
+ }
+ else if (_wo[142]) {
+ _indoorList._fwl_2F1L._frame = 9;
+ }
+ else if (_wo[162]) {
+ _indoorList._fwl_2F1L._frame = _overallFrame + 1;
+ }
+ else if (_wo[20]) {
+ _indoorList._fwl_2F1L._frame = 0;
+ }
+ else if (_wo[202]) {
+ _indoorList._fwl_2F1L._frame = 15;
+ }
+ else if (_wo[222]) {
+ _indoorList._fwl_2F1L._frame = 14;
+ }
+ else if (_wo[242]) {
+ _indoorList._fwl_2F1L._frame = 6;
+ }
+ else if (_wo[262]) {
+ _indoorList._fwl_2F1L._frame = 11;
+ }
+ else if (_wo[282]) {
+ _indoorList._fwl_2F1L._frame = 12;
+ }
+ else if (_wo[302]) {
+ _indoorList._fwl_2F1L._frame = 13;
+ }
+
+ if (_wo[27] && _wo[26]) {
+ }
+ else if (_wo[27] && _wo[29]) {
+ }
+ else if (_wo[24] && _wo[26]) {
+ }
+ else if (_wo[24] && _wo[29]) {
+ }
+ else if (_wo[103]) {
+ _indoorList._fwl_2F1R._frame = 7;
+ }
+ else if (_wo[65]) {
+ _indoorList._fwl_2F1R._frame = 16;
+ }
+ else if (_wo[183]) {
+ _indoorList._fwl_2F1R._frame = 10;
+ }
+ else if (_wo[123]) {
+ _indoorList._fwl_2F1R._frame = 8;
+ }
+ else if (_wo[143]) {
+ _indoorList._fwl_2F1R._frame = 9;
+ }
+ else if (_wo[163]) {
+ _indoorList._fwl_2F1R._frame = _overallFrame + 1;
+ }
+ else if (_wo[21]) {
+ _indoorList._fwl_2F1R._frame = 0;
+ }
+ else if (_wo[203]) {
+ _indoorList._fwl_2F1R._frame = 15;
+ }
+ else if (_wo[223]) {
+ _indoorList._fwl_2F1R._frame = 14;
+ }
+ else if (_wo[243]) {
+ _indoorList._fwl_2F1R._frame = 6;
+ }
+ else if (_wo[263]) {
+ _indoorList._fwl_2F1R._frame = 11;
+ }
+ else if (_wo[283]) {
+ _indoorList._fwl_2F1R._frame = 12;
+ }
+ else if (_wo[303]) {
+ _indoorList._fwl_2F1R._frame = 13;
+ }
+
+ if (_wo[27]) {
+
+ }
+ else if (_wo[104]) {
+ _indoorList._fwl_2F._frame = 7;
+ }
+ else if (_wo[66]) {
+ _indoorList._fwl_2F._frame = 16;
+ }
+ else if (_wo[184]) {
+ _indoorList._fwl_2F._frame = 10;
+ }
+ else if (_wo[124]) {
+ _indoorList._fwl_2F._frame = 8;
+ }
+ else if (_wo[144]) {
+ _indoorList._fwl_2F._frame = 9;
+ }
+ else if (_wo[164]) {
+ _indoorList._fwl_2F._frame = _overallFrame + 1;
+ }
+ else if (_wo[22]) {
+ _indoorList._fwl_2F._frame = 0;
+ }
+ else if (_wo[204]) {
+ _indoorList._fwl_2F._frame = 15;
+ }
+ else if (_wo[224]) {
+ _indoorList._fwl_2F._frame = 14;
+ }
+ else if (_wo[244]) {
+ _indoorList._fwl_2F._frame = 6;
+ }
+ else if (_wo[264]) {
+ _indoorList._fwl_2F._frame = 11;
+ }
+ else if (_wo[284]) {
+ _indoorList._fwl_2F._frame = 12;
+ }
+ else if (_wo[304]) {
+ _indoorList._fwl_2F._frame = 13;
+ }
+
+ if (_wo[27]) {
+ }
+ else if (_wo[23]) {
+ _indoorList._swl_1F1L._frame = 2;
+ }
+ else if (_wo[67]) {
+ _indoorList._swl_1F1L._frame = 26;
+ }
+
+ if (_wo[27]) {
+ }
+ else if (_wo[24]) {
+ _indoorList._swl_1F1R._frame = 3;
+ }
+ else if (_wo[68]) {
+ _indoorList._swl_1F1R._frame = 27;
+ }
+
+ if (_wo[28]) {
+ }
+ else if (_wo[105] || _wo[25] || _wo[165] || _wo[125] || _wo[185] || _wo[145]) {
+ _indoorList._fwl_1F1L._frame = 0;
+ _indoorList._fwl_1F1L._sprites = &map._wallSprites._fwl1;
+ }
+ else if (_wo[69]) {
+ _indoorList._fwl_1F1L._frame = 9;
+ _indoorList._fwl_1F1L._sprites = &map._wallSprites._fwl2;
+ }
+
+ if (_wo[29]) {
+ }
+ else if (_wo[106] || _wo[26] || _wo[166] || _wo[126] || _wo[186] || _wo[146]) {
+ _indoorList._fwl_1F._frame = 0;
+ _indoorList._fwl_1F._sprites = &map._wallSprites._fwl1;
+ }
+ else if (_wo[70]) {
+ _indoorList._fwl_1F._frame = 9;
+ _indoorList._fwl_1F._sprites = &map._wallSprites._fwl2;
+ }
+
+ if (_wo[107]) {
+ _indoorList._fwl_1F1R._sprites = &map._wallSprites._fwl2;
+ if (_vm->_openDoor)
+ _indoorList._fwl_1F1R._frame = 0;
+ else
+ _indoorList._fwl_1F1R._frame = map.mazeData()._wallKind ? 1 : 10;
+ }
+ else if (_wo[71]) {
+ _indoorList._fwl_1F1R._frame = 9;
+ _indoorList._fwl_1F1R._sprites = &map._wallSprites._fwl2;
+ }
+ else if (_wo[167]) {
+ _indoorList._fwl_1F1R._frame = _overallFrame + 1;
+ _indoorList._fwl_1F1R._sprites = &map._wallSprites._fwl2;
+ }
+ else if (_wo[127]) {
+ _indoorList._fwl_1F1R._frame = 1;
+ _indoorList._fwl_1F1R._sprites = &map._wallSprites._fwl2;
+ }
+ else if (_wo[147]) {
+ _indoorList._fwl_1F1R._frame = 2;
+ _indoorList._fwl_1F1R._sprites = &map._wallSprites._fwl2;
+ }
+ else if (_wo[187]) {
+ _indoorList._fwl_1F1R._frame = 3;
+ _indoorList._fwl_1F1R._sprites = &map._wallSprites._fwl2;
+ }
+ else if (_wo[27]) {
+ _indoorList._fwl_1F1R._frame = 0;
+ _indoorList._fwl_1F1R._sprites = &map._wallSprites._fwl1;
+ }
+ else if (_wo[207]) {
+ _indoorList._fwl_1F1R._frame = 8;
+ _indoorList._fwl_1F1R._sprites = &map._wallSprites._fwl2;
+ }
+ else if (_wo[227]) {
+ _indoorList._fwl_1F1R._frame = 7;
+ _indoorList._fwl_1F1R._sprites = &map._wallSprites._fwl2;
+ }
+ else if (_wo[247]) {
+ _indoorList._fwl_1F1R._frame = 6;
+ _indoorList._fwl_1F1R._sprites = &map._wallSprites._fwl1;
+ }
+ else if (_wo[267]) {
+ _indoorList._fwl_1F1R._frame = 4;
+ _indoorList._fwl_1F1R._sprites = &map._wallSprites._fwl2;
+ }
+ else if (_wo[287]) {
+ _indoorList._fwl_1F1R._frame = 5;
+ _indoorList._fwl_1F1R._sprites = &map._wallSprites._fwl2;
+ }
+ else if (_wo[307]) {
+ _indoorList._fwl_1F1R._frame = 6;
+ _indoorList._fwl_1F1R._sprites = &map._wallSprites._fwl2;
+ }
+
+ if (_wo[28]) {
+ _indoorList._swl_0F1L._frame = 0;
+ }
+ else if (_wo[72]) {
+ _indoorList._swl_0F1L._frame = 24;
+ }
+
+ if (_wo[29]) {
+ _indoorList._swl_0F1R._frame = 1;
+ }
+ else if (_wo[73]) {
+ _indoorList._swl_0F1R._frame = 25;
+ }
+
+ map.cellFlagLookup(_vm->_party._mazePosition);
+
+ // WORKAROUND: Original did an array lookup on _skySprites.
+ // Was this a feature for multiple skys that was abandoned?
+ _indoorList[0]._sprites = &map._skySprites;
+ _indoorList[0]._flags = _flipSky ? SPRFLAG_HORIZ_FLIPPED : 0;
+
+ if (_vm->_openDoor) {
+ Common::Point pt(
+ _vm->_party._mazePosition.x + SCREEN_POSITIONING_X[
+ _vm->_party._mazeDirection][_vm->_party._mazePosition.x],
+ _vm->_party._mazePosition.y + SCREEN_POSITIONING_Y[
+ _vm->_party._mazeDirection][_vm->_party._mazePosition.y]
+ );
+ map.cellFlagLookup(pt);
+
+ _indoorList._sky._sprites = &map._skySprites;
+ } else {
+ _indoorList._sky._sprites = _indoorList[0]._sprites;
+ }
+
+ _indoorList._sky._flags = _flipSky ? SPRFLAG_HORIZ_FLIPPED : 0;
+ _indoorList._ground._flags = _flipGround ? SPRFLAG_HORIZ_FLIPPED : 0;
+ _indoorList._horizon._frame = 7;
+
+ // Finally draw the darn indoor scene
+ _vm->_screen->_windows[3].drawList(&_indoorList[0], _indoorList.size());
+
+ // Check for any character shooting
+ _isShooting = false;
+ for (int i = 0; i < _vm->_party._partyCount; ++i) {
+ if (_vm->_combat->_shooting[i])
+ _isShooting = true;
+ }
+
+ _charsShooting = _isShooting;
+
+ // TODO
+}
+
+} // End of namespace Xeen
diff --git a/engines/xeen/interface_map.h b/engines/xeen/interface_map.h
new file mode 100644
index 0000000000..01cd1d2c48
--- /dev/null
+++ b/engines/xeen/interface_map.h
@@ -0,0 +1,118 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef XEEN_INTERFACE_MAP_H
+#define XEEN_INTERFACE_MAP_H
+
+#include "common/scummsys.h"
+#include "xeen/screen.h"
+
+namespace Xeen {
+
+class XeenEngine;
+
+class OutdoorDrawList {
+public:
+ DrawStruct _data[132];
+ DrawStruct &_skySprite;
+ DrawStruct &_groundSprite;
+public:
+ OutdoorDrawList();
+
+ DrawStruct &operator[](int idx) {
+ assert(idx < size());
+ return _data[idx];
+ }
+
+ int size() const { return 132; }
+};
+
+class IndoorDrawList {
+public:
+ DrawStruct _data[170];
+ DrawStruct &_sky;
+ DrawStruct &_ground;
+ DrawStruct &_horizon;
+ DrawStruct &_swl_0F1R, _swl_0F1L, _swl_1F1R, _swl_1F1L,
+ _swl_2F2R, _swl_2F1R, _swl_2F1L, _swl_2F2L,
+ _swl_3F1R, _swl_3F2R, _swl_3F3R, _swl_3F4R,
+ _swl_3F1L, _swl_3F2L, _swl_3F3L, _swl_3F4L,
+ _swl_4F4R, _swl_4F3R, _swl_4F2R, _swl_4F1R,
+ _swl_4F1L, _swl_4F2L, _swl_4F3L, _swl_4F4L;
+ DrawStruct &_fwl_4F4R, _fwl_4F3R, _fwl_4F2R, _fwl_4F1R,
+ _fwl_4F, _fwl_4F1L, _fwl_4F2L, _fwl_4F3L, _fwl_4F4L;
+ DrawStruct &_fwl_2F1R, _fwl_2F, _fwl_2F1L, _fwl_3F2R,
+ _fwl_3F1R, _fwl_3F, _fwl_3F1L, _fwl_3F2L;
+ DrawStruct &_fwl_1F, _fwl_1F1R, _fwl_1F1L;
+ DrawStruct &_objects0, _objects1, _objects2, _objects3;
+ DrawStruct &_objects4, _objects5, _objects6, _objects7;
+ DrawStruct &_objects8, _objects9, _objects10, _objects11;
+public:
+ IndoorDrawList();
+
+ DrawStruct &operator[](int idx) {
+ assert(idx < size());
+ return _data[idx];
+ }
+
+ int size() const { return 170; }
+};
+
+
+class InterfaceMap {
+private:
+ XeenEngine *_vm;
+
+ void initDrawStructs();
+protected:
+ byte _wp[20];
+ byte _wo[308];
+ int _overallFrame;
+ bool _flipWtr;
+ bool _flipWall;
+ bool _flipSky;
+ bool _flipGround;
+ bool _isShooting;
+ bool _charsShooting;
+ int _objNumber;
+public:
+ OutdoorDrawList _outdoorList;
+ IndoorDrawList _indoorList;
+public:
+ InterfaceMap(XeenEngine *vm);
+
+ void setIndoorsMonsters();
+
+ void setIndoorObjects();
+
+ void setIndoorWallPics();
+
+ void drawIndoors();
+
+ void setOutdoorsMonsters();
+
+ void setOutdoorsObjects();
+};
+
+} // End of namespace Xeen
+
+#endif /* XEEN_INTERFACE_MAP_H */
diff --git a/engines/xeen/module.mk b/engines/xeen/module.mk
index 2c22322f25..d6b8097386 100644
--- a/engines/xeen/module.mk
+++ b/engines/xeen/module.mk
@@ -14,6 +14,7 @@ MODULE_OBJS := \
files.o \
font.o \
interface.o \
+ interface_map.o \
items.o \
map.o \
party.o \