aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/xeen/interface.cpp312
-rw-r--r--engines/xeen/interface.h25
-rw-r--r--engines/xeen/sprites.h3
3 files changed, 339 insertions, 1 deletions
diff --git a/engines/xeen/interface.cpp b/engines/xeen/interface.cpp
index c27cdb9bd3..6f0d4d580f 100644
--- a/engines/xeen/interface.cpp
+++ b/engines/xeen/interface.cpp
@@ -27,6 +27,318 @@
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() : _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(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) {
Common::fill(&_partyFaces[0], &_partyFaces[MAX_ACTIVE_PARTY], nullptr);
_batUIFrame = 0;
diff --git a/engines/xeen/interface.h b/engines/xeen/interface.h
index 475e71bbce..60250bd8e8 100644
--- a/engines/xeen/interface.h
+++ b/engines/xeen/interface.h
@@ -32,6 +32,29 @@ namespace Xeen {
class XeenEngine;
+class OutdoorDrawList {
+public:
+ DrawStruct _data[132];
+ DrawStruct &_skySprite;
+ DrawStruct &_groundSprite;
+public:
+ OutdoorDrawList();
+
+ DrawStruct &operator[](int idx) { return _data[idx]; }
+};
+
+class IndoorDrawList {
+public:
+ DrawStruct _data[170];
+ DrawStruct &_skySprite;
+ DrawStruct &_groundSprite;
+public:
+ IndoorDrawList();
+
+ DrawStruct &operator[](int idx) { return _data[idx]; }
+};
+
+
class Interface: public ButtonContainer {
private:
XeenEngine *_vm;
@@ -49,6 +72,8 @@ private:
SpriteResource *_partyFaces[MAX_ACTIVE_PARTY];
DrawStruct _faceDrawStructs[4];
DrawStruct _mainList[16];
+ OutdoorDrawList _outdoorList;
+ IndoorDrawList _indoorList;
int _combatCharIds[8];
int _batUIFrame;
diff --git a/engines/xeen/sprites.h b/engines/xeen/sprites.h
index 7f937abe8c..59c1ed1d48 100644
--- a/engines/xeen/sprites.h
+++ b/engines/xeen/sprites.h
@@ -33,7 +33,8 @@ namespace Xeen {
class XeenEngine;
-enum SpriteFlags { SPRFLAG_HORIZ_FLIPPED = 0x8000 };
+enum SpriteFlags { SPRFLAG_2000 = 0x2000, SPRFLAG_4000 = 0x4000,
+ SPRFLAG_HORIZ_FLIPPED = 0x8000 };
class SpriteResource {
private: