view mm7_data.cpp @ 486:7887a9cf9e7b

Spells
author Nomad
date Wed, 27 Feb 2013 17:29:05 +0200
parents 4bd56919f075
children d5da524ec901
line wrap: on
line source

#include "mm7_data.h"

#include "NPC.h"
#include "Actor.h"
#include "GUIWindow.h"



void ErrHR(HRESULT hr, const char *pAPI, const char *pFunction, const char *pFile, int line)
{
  if (SUCCEEDED(hr))
    return;

  char msg[4096];
  sprintf(msg, "%s error (%08X) in\n\t%s\nin\n\t%s:%u",
          pAPI, hr, pFunction, pFile, line);

  char caption[1024];
  sprintf(caption, "%s error", pAPI);

  MessageBoxA(nullptr, msg, caption, MB_ICONEXCLAMATION);
}




#include "Math.h"
struct stru193_math *stru_5C6E00 = new stru193_math;

#include "MapInfo.h"
struct MapStats *pMapStats;

#include "TurnEngine.h"
struct stru262_TurnBased *pTurnEngine = new stru262_TurnBased;

#include "stru277.h"
stru277 pStru277[10];
stru277 stru_50CDB4; // idb

#include "Viewport.h"
struct Viewport *pViewport = new Viewport;
struct ViewingParams *viewparams = new ViewingParams;

#include "stru272.h"
stru272 array_4FAC10[10];


#include "stru279.h"
stru279 stru_51076C;

#include "stru179.h"
stru179 pStru179;

#include "stru123.h"
stru123 stru_5E4C90;

#include "stru298.h"
stru298 stru_50FE08; // weak

#include "stru287.h"
stru287 stru_5E4C50;

#include "Autonotes.h"
Autonote pAutonoteTxt[195]; // weak

#include "Awards.h"
Award pAwards[104];

#include "stru159.h"
stru159 pAnimatedRooms[196] = //0x4E5F70
{
 "",                            0x4, 0x1F4, 0,
 "Human Armor01",               0x20, 0x2C0, 0x3A02,
 "Necromancer Armor01",         0x20, 0x2D7, 0x4602,
 "Dwarven Armor01",             0x20, 0x2EE, 0x502,
 "Wizard Armor",                0x20, 0x3BD, 0x1302,
 "Warlock Armor",               0x20, 0x2D6, 0x2302,
 "Elf Armor",                   0x20, 0x2BC, 0x4F02,
 "Human Alchemisht01",          0xE, 0x2BE, 0x5F04,
 "Necromancer Alchemist01",     0xE, 0x2D6, 0x4504,
 "Dwarven Achemist01",          0xE, 0x387, 0x404,
 "Wizard Alchemist",            0xE, 0x232, 0x1904,
 "Warlock Alchemist",           0xE, 0x2BE, 0x2A04,
 "Elf Alchemist",               0xE, 0x38A, 0x5404,
 "Human Bank01",                0x6, 0x384, 0x3416,
 "Necromancer Bank01",          0x6, 0x2D8, 0x4716,
 "Dwarven Bank",                0x6, 0x2F3, 0x616,
 "Wizard Bank",                 0x6, 0x3BA, 0x1416,
 "Warlock Bank",                0x6, 0x39F, 0x2416,
 "Elf Bank",                    0x6, 0x2BC, 0x4716,
 "Boat01",                      0xF, 0x4C, 0x3351C,
 "Boat01d",                     0xF, 0x4C, 0x3351C,
 "Human Magic Shop01",          0xA, 0x2C8, 0x3603,
 "Necromancer Magic Shop01",    0xE, 0x2DC, 0x4203,
 "Dwarven Magic Shop01",        0x2A, 0x2EF, 0x5B03,
 "Wizard Magic Shop",           0x1E, 0x2DF, 0xF03,
 "Warlock Magic Shop",          0x7, 0x3B9, 0x1F03,
 "Elf Magic Shop",              0x24, 0x2CC, 0x5203,
 "Human Stables01",             0x21, 0x31, 0x3301B,
 "Necromancer Stables",         0x21, 0x2DD, 0x3431B,
 "",                            0x21, 0x2F0, 0x35B1B,
 "Wizard Stables",              0x21, 0x3BA, 0x3101B,
 "Warlock Stables",             0x21, 0x181, 0x3201B,
 "Elf Stables",                 0x21, 0x195, 0x34D1B,
 "Human Tavern01",              0xD, 0x2C2, 0x3115,
 "Necromancer Tavern01",       0xD, 0x3B0, 0x3915,
 "Dwarven Tavern01",            0xD, 0x2FE, 0x5E15,
 "Wizard Tavern",               0xD, 0x3BB, 0x1115,
 "Warlock Tavern",              0xD, 0x3A8, 0x2115,
 "Elf Tavern",                  0xD, 0x2CD, 0x4E15,
 "Human Temple01",              0x24, 0x2DB, 0x33217,
 "Necromancer Temple",          0x24, 0x2DF, 0x33C17,
 "Dwarven Temple01",            0x24, 0x2F1, 0x35617,
 "Wizard Temple",               0x24, 0x2E0, 0x30A17,
 "Warlock Temple",              0x24, 0x3A4, 0x31B17,
 "Elf Temple",                  0x24, 0x2CE, 0x34817,
 "Human Town Hall",             0x10, 0x39C, 0xE11,
 "Necromancer Town Hall01",     0x10, 0x3A4, 0x3D11,
 "Dwarven Town Hall",           0x10, 0x2DB, 0x5811,
 "Wizard Town Hall",            0x10, 0x3BD, 0xB11,
 "Warlock Town Hall",           0x10, 0x2DB, 0x1C11,
 "Elf Town Hall",               0x10, 0x27A, 0x4911,
 "Human Training Ground01",     0x18, 0x2C7, 0x2C1E,
 "Necromancer Training Ground", 0x18, 0x3AD, 0x3E1E,
 "Dwarven Training Ground",     0x18, 0x2F2, 0x591E,
 "Wizard Training Ground",      0x18, 0x3A3, 0xC1E,
 "Warlock Training Ground",     0x18, 0x3A6, 0x1D1E,
 "Elf Training Ground",         0x18, 0x19F, 0x4A1E,
 "Human Weapon Smith01",        0x16, 0x2C1, 0x42D01,
 "Necromancer Weapon Smith01",  0x16, 0x2D9, 0x43F01,
 "Dwarven Weapon Smith01",      0x16, 0x2EE, 0x45201,
 "Wizard Weapon Smith",         0x16, 0x2D5, 0x40D01,
 "Warlock Weapon Smith",        0x16, 0x2D7, 0x41701,
 "Elf Weapon Smith",            0x16, 0x2CA, 0x44B01,
 "Air Guild",                   0x1D, 0xA4, 0x30106,
 "Body Guild",                  0x19, 0x3BF, 0x20B,
 "DarkGuild",                   0x19, 0x2D1, 0x30D,
 "EarthGuild",                  0x19, 0x2CB, 0x5308,
 "Fire Guild",                  0x1C, 0x2BF, 0x3805,
 "Light Guild",                 0x1C, 0x2D5, 0x2E0C,
 "Mind Guild",                  0x1C, 0xE5, 0x280A,
 "Spirit Guild",                0x1C, 0x2D2, 0x2909,
 "Water Guild",                 0x1B, 0x2D3, 0x1807,
 "Lord And Judge Out01",        1, 0, 0x271D,
 "Human Poor House 1",          8, 0, 0x1D,
 "Human Poor House 2",          8, 0, 0x1D,
 "Human Poor House 3",          8, 0, 0x1D,
 "Human Medium House 1",        8, 0, 0x1D,
 "Human Medium House 2",        8, 0, 0x1D,
 "Human Medium House 3",        8, 0, 0x1D,
 "Human Rich House 1",          8, 0, 0x1D,
 "Human Rich House 2",          8, 0, 0x1D,
 "Human Rich House 3",          8, 0, 0x1D,
 "Elven Poor House 1",          8, 0, 0x1D,
 "Elven Poor House 2",          8, 0, 0x1D,
 "Elven Poor House 3",          8, 0, 0x1D,
 "Elven Medium House 1",        8, 0, 0x1D,
 "Elven Medium House 2",        8, 0, 0x1D,
 "Elven Medium House 3",        8, 0, 0x1D,
 "Elven Rich House 1",          8, 0, 0x1D,
 "Elven Rich House 2",          8, 0, 0x1D,
 "Elven Rich House 3",          8, 0, 0x1D,
 "Dwarven Poor House 1",        8, 0, 0x1D,
 "Dwarven Poor House 2",        8, 0, 0x1D,
 "Dwarven Poor House 3",        8, 0, 0x1D,
 "Dwarven Medium House 1",      8, 0, 0x1D,
 "Dwarven Medium house 2",      8, 0, 0x1D,
 "Dwarven Medium House 3",      8, 0, 0x1D,
 "Dwarven Rich House 1",        8, 0, 0x1D,
 "Dwarven Rich House 2",        8, 0, 0x1D,
 "Dwarven Rich House 3",        8, 0, 0x1D,
 "Wizard Poor House 1",         8, 0, 0x1D,
 "Wizard Poor House 2",         8, 0, 0x1D,
 "Wizard Poor House 3",         8, 0, 0x1D,
 "Wizard Medium House 1",       8, 0, 0x1D,
 "Wizard Medium House 2",       8, 0, 0x1D,
 "Wizard Mdeium House 3",       8, 0, 0x1D,
 "Wizard Rich House 1",         8, 0, 0x1D,
 "Wizard Rich House 2",         8, 0, 0x1D,
 "Wizard Rich House 3",         8, 0, 0x1D,
 "Necromancer Poor House 1",    8, 0, 0x1D,
 "Necromancer Poor House 2",    8, 0, 0x1D,
 "Necromancer Poor House 3",    8, 0, 0x1D,
 "Necromancer Medium House 1",  8, 0, 0x1D,
 "Necromancer Medium House 2",  8, 0, 0x1D,
 "Necromancer Mdeium House 3",  8, 0, 0x1D,
 "Necromancer Rich House 1",    8, 0, 0x1D,
 "Necromancer Rich House 2",    8, 0, 0x1D,
 "Necromancer Rich House 3",    8, 0, 0x1D,
 "Warlock Poor House 1",        8, 0, 0x1D,
 "Warlock Poor House 2",        8, 0, 0x1D,
 "Warlock Poor House 3",        8, 0, 0x1D,
 "Warlock Medium House 1",      8, 0, 0x1D,
 "Warlock Medium House 2",      8, 0, 0x1D,
 "Warlock Mdeium House 3",      8, 0, 0x1D,
 "Warlock Rich House 1",        8, 0, 0x1D,
 "Warlock Rich House 2",        8, 0, 0x1D,
 "Warlock Rich House 3",        8, 0, 0x1D,
 "Out01 Temple of the Moon",    0x24, 0, 0x19,
 "Out01 Dragon Cave",           0x24, 0, 0x19,
 "Out02 Castle Harmondy",       0x24, 0, 0x19,
 "Out02 White Cliff Cave",      0x24, 0, 0x19,
 "Out03 Erathian Sewer",        0x24, 0, 0x19,
 "Out03 Fort Riverstride",      0x24, 0, 0x19,
 "Out03 Castle Gryphonheart",   0x24, 0, 0x19,
 "Out04 Elf Castle",            0x24, 0, 0x19,
 "Out04 Tularean Caves",        0x24, 0, 0x19,
 "Out04 Clanker's Laboratory",  0x24, 0, 0x19,
 "Out05 Hall of the Pit",       0x24, 0, 0x19,
 "Out05 Watchtower 6",          0x24, 0, 0x19,
 "Out06 School of Sorcery",     0x24, 0, 0x19,
 "Out06 Red Dwarf Mines",       0x24, 0, 0x19,
 "Out07 Castle Lambert",        0x24, 0, 0x19,
 "Out07 Walls of Mist",         0x24, 0, 0x19,
 "Out07 Temple of the Light",   0x24, 0, 0x19,
 "Out08 Evil Entrance",         0x24, 0, 0x19,
 "Out08 Breeding Zone",         0x24, 0, 0x19,
 "Out08 Temple of the Dark",    0x24, 0, 0x19,
 "Out09 Grand Temple of the Moon", 0x24, 0, 0x19,
 "Out09 Grand Tempple of the Sun", 0x24, 0, 0x19,
 "Out10 Thunderfist Mountain",  0x24, 0, 0x19,
 "Out10 The Maze",              0x24, 0, 0x19,
 "Out10 Connecting Tunnel Cave #1", 0x24, 0, 0x19,
 "",                            0x24, 0, 0x19,
 "",                            0x24, 0, 0x19,
 "Out11 Stone City",            0x24, 0, 0x19,
 "",                            0x24, 0, 0x19,
 "Out12 Colony Zod",            0x24, 0, 0x19,
 "Out12 Connecting Tunnel Cave #1", 0x24, 0, 0x19,
 "",                            0x24, 0, 0x19,
 "",                            0x24, 0, 0x19,
 "Out13 Mercenary Guild",       0x24, 0, 0x19,
 "Out13 Tidewater Caverns",     0x24, 0, 0x19,
 "Out13 Wine Cellar",           0x24, 0, 0x19,
 "Out14 Titan's Stronghold",    0x24, 0, 0x19,
 "Out14 Temple Of Baa",         0x24, 0, 0x19,
 "Out14 Hall under the Hill",   0x24, 0, 0x19,
 "Out15 The Linclon",           0x24, 0, 0x19,
 "Jail",                        0x24, 0, 0x1F,
 "Harmondale Throne Room",      0x24, 0, 0x1D,
 "Gryphonheart Throne Room",    0x24, 0, 0x14,
 "Elf Castle Throne Room",      0x24, 0, 0x14,
 "Wizard Castle Throne Room",   0x24, 0, 0x14,
 "Necromancer Casstle Trone Room", 0x24, 0, 0x14,
 "Master Thief",                0x24, 0, 0x1D,
 "Dwarven King",                0x24, 0, 0x14,
 "Arms Master",                 0x24, 0, 0x1D,
 "Warlock",                     0x24, 0, 0x1D,
 "Lord Markam",                 0x24, 0, 0x14,
 "Arbiter Neutral Town",        0x24, 0, 0x1D,
 "Arbiter Good Town",           0x24, 0, 0x1D,
 "Arbiter Evil Town",           0x24, 0, 0x1D,
 "Necromancer Throne Room Empty", 0x24, 0, 0x14,
 "",                            0x24, 0, 0x1D,
 "",                            0x24, 0, 0x1D,
 "",                            0x24, 0, 0x1D,
 "",                            0x24, 0, 0x1D,
 "Boat01",                      0xF, 0, 0x3351D,
 "",                            0x24, 0, 0x1C,
 "",                            0x24, 0, 0x1D,
 "",                            0x24, 0, 0x1D,
 "Arbiter Room Neutral",        0x24, 0, 0x1D,
 "Out02 Castle Harmondy Abandoned", 0x24, 0, 0x19,
 "Human Temple02",              0x24, 0x3AB, 0x1B17,
 "Player Castle Good",          0x24, 0, 0x19,
 "Player Castle Bad",           0x24, 0, 0x19,
};

#include "stru160.h"
stru160 array_4EB8B8[66] =
{
  stru160( 0.0000000f,  0.0000000f,  1.0000000f),
  stru160( 0.0000000f,  0.3826830f,  0.9238799f),
  stru160( 0.3826830f,  0.0000000f,  0.9238799f),
  stru160( 0.4082480f,  0.4082480f,  0.8164970f),
  stru160( 0.0000000f,  0.7071070f,  0.7071070f),
  stru160( 0.7071070f,  0.0000000f,  0.7071070f),
  stru160( 0.4082480f,  0.8164970f,  0.4082480f),
  stru160( 0.8164970f,  0.4082480f,  0.4082480f),
  stru160( 0.7071070f,  0.7071070f,  0.0000000f),
  stru160( 0.0000000f,  0.9238799f,  0.3826830f),
  stru160( 0.3826830f,  0.9238799f,  0.0000000f),
  stru160( 0.0000000f,  1.0000000f,  0.0000000f),
  stru160( 0.9238799f,  0.3826830f,  0.0000000f),
  stru160( 0.9238799f,  0.0000000f,  0.3826830f),
  stru160( 1.0000000f,  0.0000000f,  0.0000000f),
  stru160( 0.0000000f, -0.3826830f,  0.9238799f),
  stru160( 0.4082480f, -0.4082480f,  0.8164970f),
  stru160( 0.0000000f, -0.7071070f,  0.7071070f),
  stru160( 0.8164970f, -0.4082480f,  0.4082480f),
  stru160( 0.4082480f, -0.8164970f,  0.4082480f),
  stru160( 0.7071070f, -0.7071070f,  0.0000000f),
  stru160( 0.9238799f, -0.3826830f,  0.0000000f),
  stru160( 0.3826830f, -0.9238799f,  0.0000000f),
  stru160( 0.0000000f, -0.9238799f,  0.3826830f),
  stru160( 0.0000000f, -1.0000000f,  0.0000000f),
  stru160(-0.3826830f,  0.0000000f,  0.9238799f),
  stru160(-0.4082480f, -0.4082480f,  0.8164970f),
  stru160(-0.7071070f,  0.0000000f,  0.7071070f),
  stru160(-0.4082480f, -0.8164970f,  0.4082480f),
  stru160(-0.8164970f, -0.4082480f,  0.4082480f),
  stru160(-0.7071070f, -0.7071070f,  0.0000000f),
  stru160(-0.3826830f, -0.9238799f,  0.0000000f),
  stru160(-0.9238799f, -0.3826830f,  0.0000000f),
  stru160(-0.9238799f,  0.0000000f,  0.3826830f),
  stru160(-1.0000000f,  0.0000000f,  0.0000000f),
  stru160(-0.4082480f,  0.4082480f,  0.8164970f),
  stru160(-0.8164970f,  0.4082480f,  0.4082480f),
  stru160(-0.4082480f,  0.8164970f,  0.4082480f),
  stru160(-0.7071070f,  0.7071070f,  0.0000000f),
  stru160(-0.9238799f,  0.3826830f,  0.0000000f),
  stru160(-0.3826830f,  0.9238799f,  0.0000000f),
  stru160( 0.0000000f,  0.0000000f, -1.0000000f),
  stru160( 0.0000000f,  0.3826830f, -0.9238799f),
  stru160( 0.3826830f,  0.0000000f, -0.9238799f),
  stru160( 0.4082480f,  0.4082480f, -0.8164970f),
  stru160( 0.0000000f,  0.7071070f, -0.7071070f),
  stru160( 0.7071070f,  0.0000000f, -0.7071070f),
  stru160( 0.4082480f,  0.8164970f, -0.4082480f),
  stru160( 0.8164970f,  0.4082480f, -0.4082480f),
  stru160( 0.0000000f,  0.9238799f, -0.3826830f),
  stru160( 0.9238799f,  0.0000000f, -0.3826830f),
  stru160( 0.0000000f, -0.3826830f, -0.9238799f),
  stru160( 0.4082480f, -0.4082480f, -0.8164970f),
  stru160( 0.0000000f, -0.7071070f, -0.7071070f),
  stru160( 0.8164970f, -0.4082480f, -0.4082480f),
  stru160( 0.4082480f, -0.8164970f, -0.4082480f),
  stru160( 0.0000000f, -0.9238799f, -0.3826830f),
  stru160(-0.3826830f,  0.0000000f, -0.9238799f),
  stru160(-0.4082480f, -0.4082480f, -0.8164970f),
  stru160(-0.7071070f,  0.0000000f, -0.7071070f),
  stru160(-0.4082480f, -0.8164970f, -0.4082480f),
  stru160(-0.8164970f, -0.4082480f, -0.4082480f),
  stru160(-0.9238799f,  0.0000000f, -0.3826830f),
  stru160(-0.4082480f,  0.4082480f, -0.8164970f),
  stru160(-0.8164970f,  0.4082480f, -0.4082480f),
  stru160(-0.4082480f,  0.8164970f, -0.4082480f)
};
stru160 array_4EBBD0[128];
__int32 array_4EBBD0_x[128*3] =
{
  0x00000000, 0x00000001, 0x00000002, 0x00000001,
  0x00000003, 0x00000002, 0x00000001, 0x00000004,
  0x00000003, 0x00000003, 0x00000005, 0x00000002,
  0x00000004, 0x00000006, 0x00000003, 0x00000006,
  0x00000007, 0x00000003, 0x00000006, 0x00000008,
  0x00000007, 0x00000007, 0x00000005, 0x00000003,
  0x00000004, 0x00000009, 0x00000006, 0x00000009,
  0x0000000A, 0x00000006, 0x00000009, 0x0000000B,
  0x0000000A, 0x0000000A, 0x00000008, 0x00000006,
  0x00000008, 0x0000000C, 0x00000007, 0x0000000C,
  0x0000000D, 0x00000007, 0x0000000C, 0x0000000E,
  0x0000000D, 0x0000000D, 0x00000005, 0x00000007,
  0x00000000, 0x00000002, 0x0000000F, 0x00000002,
  0x00000010, 0x0000000F, 0x00000002, 0x00000005,
  0x00000010, 0x00000010, 0x00000011, 0x0000000F,
  0x00000005, 0x00000012, 0x00000010, 0x00000012,
  0x00000013, 0x00000010, 0x00000012, 0x00000014,
  0x00000013, 0x00000013, 0x00000011, 0x00000010,
  0x00000005, 0x0000000D, 0x00000012, 0x0000000D,
  0x00000015, 0x00000012, 0x0000000D, 0x0000000E,
  0x00000015, 0x00000015, 0x00000014, 0x00000012,
  0x00000014, 0x00000016, 0x00000013, 0x00000016,
  0x00000017, 0x00000013, 0x00000016, 0x00000018,
  0x00000017, 0x00000017, 0x00000011, 0x00000013,
  0x00000000, 0x0000000F, 0x00000019, 0x0000000F,
  0x0000001A, 0x00000019, 0x0000000F, 0x00000011,
  0x0000001A, 0x0000001A, 0x0000001B, 0x00000019,
  0x00000011, 0x0000001C, 0x0000001A, 0x0000001C,
  0x0000001D, 0x0000001A, 0x0000001C, 0x0000001E,
  0x0000001D, 0x0000001D, 0x0000001B, 0x0000001A,
  0x00000011, 0x00000017, 0x0000001C, 0x00000017,
  0x0000001F, 0x0000001C, 0x00000017, 0x00000018,
  0x0000001F, 0x0000001F, 0x0000001E, 0x0000001C,
  0x0000001E, 0x00000020, 0x0000001D, 0x00000020,
  0x00000021, 0x0000001D, 0x00000020, 0x00000022,
  0x00000021, 0x00000021, 0x0000001B, 0x0000001D,
  0x00000000, 0x00000019, 0x00000001, 0x00000019,
  0x00000023, 0x00000001, 0x00000019, 0x0000001B,
  0x00000023, 0x00000023, 0x00000004, 0x00000001,
  0x0000001B, 0x00000024, 0x00000023, 0x00000024,
  0x00000025, 0x00000023, 0x00000024, 0x00000026,
  0x00000025, 0x00000025, 0x00000004, 0x00000023,
  0x0000001B, 0x00000021, 0x00000024, 0x00000021,
  0x00000027, 0x00000024, 0x00000021, 0x00000022,
  0x00000027, 0x00000027, 0x00000026, 0x00000024,
  0x00000026, 0x00000028, 0x00000025, 0x00000028,
  0x00000009, 0x00000025, 0x00000028, 0x0000000B,
  0x00000009, 0x00000009, 0x00000004, 0x00000025,
  0x00000029, 0x0000002A, 0x0000002B, 0x0000002A,
  0x0000002C, 0x0000002B, 0x0000002A, 0x0000002D,
  0x0000002C, 0x0000002C, 0x0000002E, 0x0000002B,
  0x0000002D, 0x0000002F, 0x0000002C, 0x0000002F,
  0x00000030, 0x0000002C, 0x0000002F, 0x00000008,
  0x00000030, 0x00000030, 0x0000002E, 0x0000002C,
  0x0000002D, 0x00000031, 0x0000002F, 0x00000031,
  0x0000000A, 0x0000002F, 0x00000031, 0x0000000B,
  0x0000000A, 0x0000000A, 0x00000008, 0x0000002F,
  0x00000008, 0x0000000C, 0x00000030, 0x0000000C,
  0x00000032, 0x00000030, 0x0000000C, 0x0000000E,
  0x00000032, 0x00000032, 0x0000002E, 0x00000030,
  0x00000029, 0x0000002B, 0x00000033, 0x0000002B,
  0x00000034, 0x00000033, 0x0000002B, 0x0000002E,
  0x00000034, 0x00000034, 0x00000035, 0x00000033,
  0x0000002E, 0x00000036, 0x00000034, 0x00000036,
  0x00000037, 0x00000034, 0x00000036, 0x00000014,
  0x00000037, 0x00000037, 0x00000035, 0x00000034,
  0x0000002E, 0x00000032, 0x00000036, 0x00000032,
  0x00000015, 0x00000036, 0x00000032, 0x0000000E,
  0x00000015, 0x00000015, 0x00000014, 0x00000036,
  0x00000014, 0x00000016, 0x00000037, 0x00000016,
  0x00000038, 0x00000037, 0x00000016, 0x00000018,
  0x00000038, 0x00000038, 0x00000035, 0x00000037,
  0x00000029, 0x00000033, 0x00000039, 0x00000033,
  0x0000003A, 0x00000039, 0x00000033, 0x00000035,
  0x0000003A, 0x0000003A, 0x0000003B, 0x00000039,
  0x00000035, 0x0000003C, 0x0000003A, 0x0000003C,
  0x0000003D, 0x0000003A, 0x0000003C, 0x0000001E,
  0x0000003D, 0x0000003D, 0x0000003B, 0x0000003A,
  0x00000035, 0x00000038, 0x0000003C, 0x00000038,
  0x0000001F, 0x0000003C, 0x00000038, 0x00000018,
  0x0000001F, 0x0000001F, 0x0000001E, 0x0000003C,
  0x0000001E, 0x00000020, 0x0000003D, 0x00000020,
  0x0000003E, 0x0000003D, 0x00000020, 0x00000022,
  0x0000003E, 0x0000003E, 0x0000003B, 0x0000003D,
  0x00000029, 0x00000039, 0x0000002A, 0x00000039,
  0x0000003F, 0x0000002A, 0x00000039, 0x0000003B,
  0x0000003F, 0x0000003F, 0x0000002D, 0x0000002A,
  0x0000003B, 0x00000040, 0x0000003F, 0x00000040,
  0x00000041, 0x0000003F, 0x00000040, 0x00000026,
  0x00000041, 0x00000041, 0x0000002D, 0x0000003F,
  0x0000003B, 0x0000003E, 0x00000040, 0x0000003E,
  0x00000027, 0x00000040, 0x0000003E, 0x00000022,
  0x00000027, 0x00000027, 0x00000026, 0x00000040,
  0x00000026, 0x00000028, 0x00000041, 0x00000028,
  0x00000031, 0x00000041, 0x00000028, 0x0000000B,
  0x00000031, 0x00000031, 0x0000002D, 0x00000041
};

#include "stru220.h"
stru220 stru_76E5C8[16384];

#include "stru176.h"
stru176 array_5B5928_timers[100];

#include "ObjectList.h"
struct ObjectList *pObjectList;

#include "IconFrameTable.h"
struct IconFrameTable *pIconsFrameTable;

struct
{
  struct UIAnimation _pUIAnim_Food;
  struct UIAnimation _pUIAnim_Gold;
  struct UIAnimation _pUIAnum_Torchlight;
  struct UIAnimation _pUIAnim_WizardEye;
} _uianim;

struct UIAnimation *pUIAnim_Food = &_uianim._pUIAnim_Food;
struct UIAnimation *pUIAnim_Gold = &_uianim._pUIAnim_Gold;
struct UIAnimation *pUIAnum_Torchlight = &_uianim._pUIAnum_Torchlight;
struct UIAnimation *pUIAnim_WizardEye = &_uianim._pUIAnim_WizardEye;

struct UIAnimation *pUIAnims[4] =
{
  &_uianim._pUIAnim_Food,
  &_uianim._pUIAnim_Gold,
  &_uianim._pUIAnum_Torchlight,
  &_uianim._pUIAnim_WizardEye
};



#include "PlayerFrameTable.h"
struct PlayerFrameTable *pPlayerFrameTable; // idb

#include "MM7.h"
stru161 stru_4ECBB8[6];
stru289 stru_6BE158;
int paperdoll_Weapon[4][16][2] = {//4E4C30
  0x80, 0xCD,  0x1E, 0x90,  0x58, 0x55,  0, 0,  0, 0,  0, 0,  0x11, 0x68,  0, 0,  0, 0,  0, 0,  0, 0,  0, 0,  0, 0,  0, 0,  0, 0,  0, 0,
  0x83, 0xC9,  0x26, 0x9E,  0x62, 0x57,  0, 0,  0, 0,  0, 0,  0x15, 0x64,  0, 0,  0, 0,  0, 0,  0, 0,  0, 0,  0, 0,  0, 0,  0, 0,  0, 0,
  0x83, 0xD8,  0x1D, 0xBA,  0x58, 0x77,  0, 0,  0, 0,  0, 0,  0, 0,        0, 0,  0, 0,  0, 0,  0, 0,  0, 0,  0, 0,  0, 0,  0, 0,  0, 0,
  0x7B, 0xD8,  0x23, 0xB8,  0x62, 0x77,  0, 0,  0, 0,  0, 0,  0, 0,        0, 0,  0, 0,  0, 0,  0, 0,  0, 0,  0, 0,  0, 0,  0, 0,  0, 0,
};
stru332 stru_511698;
stru333 stru_511718;
stru334 array_4E2940[26];
stru348 stru_4E1890[13];




namespace zlib
{
  #include "lib\zlib\zlib.h"
  int MemUnzip(void *dest, unsigned int *destLen, const void *source, unsigned int sourceLen)
  {
    //return uncompress((zlib::Bytef *)dest, (zlib::uLongf *)destLen, (zlib::Bytef *)source, sourceLen);
    return uncompress((Bytef *)dest, (uLongf *)destLen, (Bytef *)source, sourceLen);
    return 0;
  }

  int MemZip(void *dest, unsigned int *destLen, void *source, unsigned int sourceLen)
  {
    //return compress((zlib::Bytef *)dest, (zlib::uLongf *)destLen, (zlib::Bytef *)source, sourceLen);
    return compress((Bytef *)dest, (uLongf *)destLen, (Bytef *)source, sourceLen);
    return 0;
  }
};

#include "stru314.h"




//-------------------------------------------------------------------------
// Data declarations

int game_starting_year = 0;

int pWindowList_at_506F50_minus1_indexing[1];
int dword_4C9890[10]; // weak
int dword_4C9920[16]; // weak
_UNKNOWN unk_4D8548; // weak
char byte_4D864C; // weak
float flt_4D86CC = 1.0f; // weak
int dword_4D86D8; // weak
int dword_4DAFCC; // weak
int (__stdcall *off_4DAFDC)(char); // weak
char asc_4DB724[777]; // idb
int dword_4DBD94; // weak
int dword_4DF380[777]; // weak
int dword_4DF390; // weak
char Str2[777]; // idb
int dword_4DF3A4; // weak
char byte_4E185C; // weak
char am_byte_4E185D; // weak
char byte_4E185E; // weak
int amuint_4E1860; // weak
int amuint_4E1864; // weak
int amuint_4E1868; // weak
int amuint_4E186C; // weak
int amuint_4E1870; // weak
int dword_4E1874; // weak
int dword_4E1878; // weak
float flt_4D84E8 = 0.0f;
int dword_4E187C; // weak
int dword_4E1880; // weak
int dword_4E1884; // weak
int dword_4E1888; // weak
char pArcomagePlayer2Name[8];
char pArcomagePlayer1Name[8];
char pDeckMaster[12];
char aIxf[4]; // idb
_UNKNOWN unk_4E19FC; // weak
char pAreYouSureWishToLeave[32];
char asc_4E1A28[4]; // idb
char aUsxfs[13];
char aLayout_pcx[11]; // weak
char aSprites_pcx[12]; // weak
char aProblemInBlit_[777]; // idb
char aEWorkMsdevMm7M[777]; // idb
char aProblemInBli_0[777]; // idb
char aD[777]; // idb
char asc_4E1AB0[777]; // idb
char aWb_0[777]; // idb
char a24bitPcxOnly[777]; // idb
char Mode[777]; // idb
char a16bitPcx[777]; // idb
char aUnableToLoadS[777]; // idb
char aBitmaps[777]; // idb
char aIcons[777]; // idb
char aPending[777]; // idb
char aCanTFindS[777]; // idb
char pDayMoonPhase[28];
char *spellbook_texture_filename_suffices[8] = {"f", "a", "w", "e", "s", "m", "b", "l"}; // weak
__int16 word_4E1D3A[777]; // weak
__int16 pTownPortalBook_xs[6];
__int16 pTownPortalBook_ys[6];
__int16 pTownPortalBook_ws[6];
__int16 pTownPortalBook_hs[6];


unsigned int pLloydsBeaconsPreviewXs[5] = {61, 281,  61, 281, 171}; // 004E249C
unsigned int pLloydsBeaconsPreviewYs[5] = {84,  84, 228, 228, 155};
unsigned int pLloydsBeacons_SomeXs[5] = {59, 279, 59, 279, 169};
unsigned int pLloydsBeacons_SomeYs[5] = {82, 82, 226, 226, 153};
char aSbwb00[7]; // weak
char aW[2]; // idb
char aA[2]; // idb
char aSD[777]; // idb
char aSS03d03dS000S0[777]; // idb
char aLuS[777]; // idb
char aS_1[777]; // idb
char aSbSc02d[777]; // idb
char aSbSs02d[777]; // idb
char aTabDb[777]; // idb
char aTabDa[777]; // idb
char aIbM6D[777]; // idb
char aIbM6U[777]; // idb
char aIbM5D[777]; // idb
char aIbM5U[777]; // idb
char aPagemask[777]; // idb
char aBook[777]; // idb
char aSpell_fnt[777]; // idb
char aAutonote_fnt[777]; // idb
char aBook2_fnt[777]; // idb
char pFontFile[777]; // idb
char aFontpal[777]; // idb
char aMapbordr[777]; // idb
char aLloydDD_pcx[777]; // idb
char aDataLloydDD_pc[777]; // idb
char aLb_bordr[777]; // idb
char aTphell[777]; // idb
char aTpheaven[777]; // idb
char aTpisland[777]; // idb
char aTpwarlock[777]; // idb
char aTpelf[777]; // idb
char aTpharmndy[777]; // idb
char aTownport[777]; // idb
char aSbquiknot[777]; // idb
char aTabAn8a[777]; // idb
char aTabAn8b[777]; // idb
char aTabAn4a[777]; // idb
char aTabAn4b[777]; // idb
char aTabAn5a[777]; // idb
char aTabAn5b[777]; // idb
char aTabAn3a[777]; // idb
char aTabAn3b[777]; // idb
char aTabAn2a[777]; // idb
char aTabAn2b[777]; // idb
char aTabAn1a[777]; // idb
char aTabAn1b[777]; // idb
char aDivbar[777]; // idb
char aSbautnot[777]; // idb
char aTabwoff[777]; // idb
char aTabwon[777]; // idb
char aTabeoff[777]; // idb
char aTabeon[777]; // idb
char aTabsoff[777]; // idb
char aTabson[777]; // idb
char aTabnoff[777]; // idb
char aTabnon[777]; // idb
char aZootOff[777]; // idb
char aZoomOff[777]; // idb
char aZootOn[777]; // idb
char aZoomOn[777]; // idb
char aSbmap[777]; // idb
char aMoon_ful[777]; // idb
char aMoon_2[777]; // idb
char aMoon_4[777]; // idb
char aMoon_new[777]; // idb
char aSbdateTime[777]; // idb
char aTabAn7a[777]; // idb
char aTabAn6a[777]; // idb
char aTabAn7b[777]; // idb
char aTabAn6b[777]; // idb
char aSbplayrnot[777]; // idb
char aPending_0[777]; // idb
char aUnknown[8]; // weak
char aS100110S[777]; // idb
char aS100110D[777]; // idb
char aS100110DS[777]; // idb
char aS100110D02dSS[777]; // idb
int pCurrentScreen = SCREEN_VIDEO; // 004E28F8
char byte_4E28FC; // weak
unsigned int uGammaPos;
int BtnTurnCoord[8] = 
{
  0xA4, 0x5D, 0x16, 0xB, 0x5, 0xD, 0x7, 0x3B,
}; // weak
__int16 RightClickPortraitXmin[4]={0x14, 0x83, 0xF2, 0x165};
__int16 RightClickPortraitXmax[4]={0x53, 0xC6, 0x138, 0x1A7};
void *off_4E2A12; // weak
int pArmorSkills[5]={ 9, 10, 11, 8, 30};
int pWeaponSkills[9]={3, 5, 2, 6, 4, 0, 1, 31, 7};
int pMiscSkills[12]={35, 33, 24, 21, 32, 36, 29, 25, 22, 26, 23, 34};
int pMagicSkills[9]={12, 13, 14, 15, 16, 17, 18, 19, 20};
unsigned __int8 pAwardsTextColors[20];
unsigned int pHealthBarPos[4] = {22, 137, 251, 366};
unsigned int pManaBarPos[4] = {102, 217, 331, 447};
char _4E2AD8_ui_colors[72];
char _4E2B21_buff_spell_tooltip_colors[80];
char byte_4E2B70[777]; // weak
char byte_4E2BC8; // weak
int pChestSmthn1ByType[8] = {42, 18, 18, 42, 42, 42, 18, 42};
int pChestSmthn2ByType[8] = {34, 30, 30, 34, 34, 34, 30, 34};
int pChestWidthsByType[8] = {9, 9, 9, 9, 9, 9, 9, 9};
int pChestHeightsByType[8] = {9, 9, 9, 9, 9, 9, 9, 9};
char aSS[777]; // idb
char ascii_4E2C54[6];
char ascii_4E2C5C[7];
char ascii_4E2C68[8];
char ascii_4E2C70[9];
char ascii_4E2C7C[8];
char ascii_4E2C84[11];
char ascii_4E2C90[12];
char ascii_4E2C9C[8];
char ascii_4E2CA4[7];
char ascii_4E2CB0[12];
char ascii_4E2CBC[12];
char ascii_4E2CC8[12];
char ascii_4E2CD4[6];
char ascii_4E2CDC[11];
char ascii_4E2CE8[8];
char ascii_4E2CF0[12];
char ascii_4E2CFC[6];
char ascii_4E2D04[8];
char ascii_4E2D0C[8];
char ascii_4E2D14[6];
char ascii_4E2D1C[12];
char ascii_4E2D28[8];
char ascii_4E2D30[7];
char ascii_4E2D38[5];
char ascii_4E2D40[8];// = {0xC2, 0xCF, 0xD0, 0xC0, 0xC2, 0xCE, 0};//russian text in keyboard options
char ascii_4E2D48[6];// = {0xC2, 0xCB, 0xC5, 0xC2, 0xCE, 0};
char ascii_4E2D50[6];// = {0xCD, 0xC0, 0xC7, 0xC0, 0xC4, 0};
char ascii_4E2D5C[7];// = {0xC2, 0xCF, 0xC5, 0xD0, 0xC5, 0xC4, 0};
char aMakingItemNumb[777]; // idb
char aNpc03d[777]; // idb
const char *format_4E2D80 = "\f%05d%s\f00000\n";
char format_4E2D90[8];
char aS03d03dS000_0[777]; // idb
char aS03d03dS000[777]; // idb
const char *format_4E2DC8 = "\f%05d";
char aS[777]; // idb
char aLuSLuS[777]; // idb
char byte_4E2DE8; // idb
char asc_4E2DFC[3]; // idb
const char *format_4E2E00 = "%s\f%05u\xD\r180%s\n"; // idb
const char *format_4E2E10 = "%s\f%05u\t110%d\f00000 / %d\n";
char aS100S_0[777]; // idb
char aS100S[777]; // idb
char aS100D[777]; // idb
char aS180[6]; // idb
const char *format_4E2E68 = "%s\f%05u\t180%d\f00000 / %d\n";
char aS_6[2]; // idb
char aSS_0[777]; // idb
char aS_5[4]; // idb
char string_4E3294[8];
char Format[777]; // idb
char aMem03i_txt[777]; // idb
char aMemory[777]; // idb
char aIdSSizeI[16]; // idb
__int16 word_4E3C66[777]; // idb
int dword_4E455C; // weak
int dword_4E4560[6];
int dword_4E4578[6];
int dword_4E4590[6];
int dword_4E45A8[6];
char aDDSDDS[777]; // idb
char asc_4E45DC[777]; // idb
char aD02dSSDSD[777]; // idb
char aButtexi1[777]; // idb
char aCanTJumpToThat[777]; // idb
char aNoMapFoundForS[777]; // idb
char global_a2[777]; // idb
char aSSS[777]; // idb
char aNotInMapStats[17]; // weak
char aD47_blv[777]; // idb
char aOut15_odm[777]; // idb
char Delim[777]; // idb
char aGamma_pcx[777];
char aQuit1[777]; // idb
char aControls1[777]; // idb
char aSave1[777]; // idb
char aLoad1[777]; // idb
char aNew1[777]; // idb
char aOptions[777]; // idb
char aGammapos[9]; // weak
char aBloodsplats[777]; // idb
char aTinting[777]; // idb
char aColoredLights[777]; // idb
char aTurndelta[777]; // idb
char aFliponexit[777]; // idb
char pKey[777]; // idb
char aGraphicsmode[777]; // idb
char aShowdamage[777]; // idb
char aWalksound[777]; // idb
char aCharvoices[777]; // idb
char aMusicflag[777]; // idb
char aSoundflag[777]; // idb
char aOpvdgTn[777]; // idb
char aOpvdgCl[777]; // idb
char aOpvdgBs[777]; // idb
char aOpvdhTn[777]; // idb
char aOpvdhCl[777]; // idb
char aOpvdhBs[777]; // idb
char aOptvid[777]; // idb
char aOptkb_2[777]; // idb
char aOptkb_1[777]; // idb
char aResume1[777]; // idb
char aOptkb_h[777]; // idb
char aOptkb[777]; // idb
char aOption01[777]; // idb
char aOption02[777]; // idb
char aOption03[777]; // idb
char aOption04[777]; // idb
char aConvol90[777]; // idb
char aConvol80[777]; // idb
char aConvol70[777]; // idb
char aConvol60[777]; // idb
char aConvol50[777]; // idb
char aConvol40[777]; // idb
char aConvol30[777]; // idb
char aConvol20[777]; // idb
char aConvol10[777]; // idb
char aConvol00[777]; // idb
char aCon_smoo[777]; // idb
char aCon_arrr[777]; // idb
char aCon_arrl[777]; // idb
char aCon_32x[777]; // idb
char aCon_16x[777]; // idb
char aControlbg[777]; // idb
char aTitle_pcx[10]; // weak
char aEWorkMsdevMm_0[777]; // idb
char aDraw_debug_lin[777]; // idb
char aGenuineintel[13]; // weak
char asc_4E4938[13]; // weak
int dword_4E4948[777]; // weak
int dword_4E494C[777]; // weak
int dword_4E49D0[777]; // weak
_UNKNOWN dword_4E49D4; // idb
int dword_4E4A18[777]; // weak
int dword_4E4A1C[777]; // weak
int dword_4E4A40[777]; // weak
int dword_4E4A44[777]; // weak
char aCentaurhauls[13]; // weak
char aCyrixinstead[13]; // weak
char aAuthenticamd[13]; // weak
float flt_4E4A80[10];
char aInvalidPlayerI[777]; // idb
char aEWorkMsdevMm_1[777]; // idb
char aEWorkMsdevMm_2[777]; // idb
char aErrorNoKeyboar[25]; // weak
char aInvalidDeviceP[777]; // idb
char aInvalidDevic_0[777]; // idb
char aEWorkMsdevMm_3[777]; // idb
char aErrorNoMouseFo[22]; // weak
int pPaperdoll_BodyX = 481;
int pPaperdoll_BodyY = 0;
int paperdoll_Armor[4][17][2] = //0x4E4E30
{
// X     Y
  0x2C, 0x67,  0x30, 0x69,  0x2D, 0x67,  0x2C, 0x64,  0x14, 0x66,  0x22, 0x67,  0x20, 0x66,  0x25, 0x66,  0x12, 0x66,//Human
  0x0A, 0x66,  0x13, 0x64,  0x0E, 0x64,  0x0A, 0x63,  0x14, 0x66,  0x0A, 0x63,  0x0A, 0x66,  0x25, 0x66,

  0x32, 0x68,  0x32, 0x69,  0x35, 0x69,  0x33, 0x68,  0x24, 0x67,  0x30, 0x69,  0x33, 0x68,  0x31, 0x69,  0x19, 0x69,
  0x19, 0x6A,  0x16, 0x66,  0x16, 0x65,  0x0F, 0x6B,  0x24, 0x67,  0x0F, 0x6B,  0x19, 0x6A,  0x31, 0x69,

  0x2A, 0x8C,  0x29, 0x8C,  0x2A, 0x89,  0x29, 0x86,  0x12, 0x87,  0x2D, 0x89,  0x2A, 0x88,  0x25, 0x87,  0x12, 0x8B,
  0x12, 0x8B,  0x11, 0x8A,  0x15, 0x87,  0x09, 0x89,  0x12, 0x87,  0x09, 0x89,  0x12, 0x8B,  0x25, 0x87,

  0x33, 0x90,  0x32, 0x90,  0x34, 0x91,  0x32, 0x8E,  0x21, 0x8B,  0x31, 0x8B,  0x33, 0x8E,  0x2F, 0x8F,  0x16, 0x8D,
  0x18, 0x8C,  0x19, 0x8C,  0x1B, 0x8E,  0x0C, 0x8C,  0x21, 0x8B,  0x0C, 0x8C,  0x18, 0x8C,  0x2F, 0x8F,
};
int paperdoll_shoulder[4][17][2] = 
{
  0x64, 0x67,  0x61, 0x67,  0x65, 0x68,  0x6E, 0x74,  0x6C, 0x68,  0x61, 0x67,  0x66, 0x68,  0x6C, 0x6A,  0x6E, 0x6D,
  0x67, 0x69,  0x70, 0x67,  0x6E, 0x6D,  0x6C, 0x6F,  0x6C, 0x68,  0x6C, 0x6F,  0x67, 0x69,  0x6C, 0x6A,

  0x60, 0x6B,  0x60, 0x6C,  0x60, 0x6B,  0x61, 0x6A,  0x60, 0x69,  0x60, 0x6A,  0x60, 0x6A,  0x61, 0x69,  0x63, 0x6A,
  0x64, 0x6A,  0x61, 0x66,  0x66, 0x67,  0x64, 0x6C,  0x60, 0x69,  0x64, 0x6C,  0x64, 0x6A,  0x61, 0x69,

  0x6D, 0x8C,  0x75, 0x8C,  0, 0,        0x72, 0x8D,  0x6A, 0x89,  0, 0,        0x73, 0x8C,  0x69, 0x8C,  0x6E, 0x8D,
  0x71, 0x8D,  0x70, 0x8D,  0x72, 0x8D,  0x74, 0x8E,  0x6A, 0x89,  0x74, 0x8E,  0x71, 0x8D,  0x69, 0x8C,

  0x72, 0x91,  0x72, 0x91,  0, 0,        0x6E, 0x92,  0x6F, 0x91,  0, 0,        0, 0,        0x6E, 0x91,  0x71, 0x90,
  0x72, 0x8D,  0x72, 0x90,  0x73, 0x93,  0x73, 0x90,  0x6F, 0x91,  0x73, 0x90,  0x72, 0x8D,  0x6E, 0x91,
};
int dword_4E5270[8];
int paperdoll_Boot[4][7][2] = //4E5490
{
  0xE, 0x11D,    0xD, 0x11D,    0xC, 0x10A,    0xA, 0xFF,    0xD, 0xF9,    0xD, 0x137,   0xC, 0x10E,
  0x14, 0x125,   0x13, 0x122,   0x15, 0x120,   0x15, 0x114,  0x13, 0x10A,  0x11, 0x13E,  0x11, 0x116,
  0x1D, 0x121,   0x1C, 0x11F,   0x1B, 0x11B,   0x1C, 0x117,  0x16, 0x116,  0x1B, 0x137,  0x1B, 0x11B,
  0x1F, 0x127,   0x1F, 0x122,   0x1B, 0x11B,   0x1D, 0x117,  0x1D, 0x116,  0x1D, 0x137,  0x1B, 0x11F,
};
int paperdoll_Cloak[4][10][2] = //0x4E5570
{
  0x11, 0x68,  0xF, 0x68,  0x14, 0x71,  0x19, 0x6B,  0x21, 0x6F,  0x5, 0x68,  0x5, 0x68,  0x14, 0x71,  0x3, 0x6B,  0xF, 0x6F,
  0x15, 0x64,  0xB, 0x6B,  0xE, 0x67,   0x15, 0x6B,  0x1B, 0x6F,  0x3, 0x6B,  0, 0x6B,    0xE, 0x67,   0, 0x6B,    0x3, 0x6F,
  0x10, 0x8A,  0x9, 0x8B,  0x18, 0x98,  0x25, 0x91,  0x29, 0x90,  0x8, 0x8A,  0x9, 0x8B,  0x18, 0x98,  0x3, 0x91,  0x3, 0x90,
  0x14, 0x92,  0x10, 0x92, 0x15, 0x98,  0x1F, 0x91,  0x22, 0x90,  0x8, 0x92,  0xC, 0x92,  0x15, 0x98,  0x3, 0x91,  0x3, 0x90,
};
int dword_4E56B0; // weak
int dword_4E56B4; // weak
int paperdoll_Belt[4][7][2] = //0x4E57F0
{
  0x3A, 0xB6,  0x37, 0xB2,  0x34, 0xB9,  0x3A, 0xB9,  0x37, 0xB7,  0x38, 0xAC,  0x37, 0xB7,
  0x3E, 0xAD,  0x3A, 0xAC,  0x37, 0xB0,  0x3A, 0xB1,  0x39, 0xB0,  0x3C, 0xA5,  0x39, 0xB0,
  0x3B, 0xD5,  0x37, 0xD2,  0x31, 0xD5,  0x39, 0xD6,  0x37, 0xD8,  0x37, 0xD1,  0x37, 0xD8,
  0x42, 0xD2,  0x3F, 0xD0,  0x3B, 0xD7,  0x3C, 0xD5,  0x3B, 0xD6,  0x3E, 0xCF,  0x36, 0xD6,
};
int dword_4E58D0[777]; // HelmX 62 maybe array???
int dword_4E58D4[777]; // HelmY 31
int pPaperdoll_Beards[4] = //0x4E5AD0
{
 52, 130, 56, 136,
};
int dword_4E5AD4[777]; // weak
int pPaperdoll_LeftHand[4][2] =
{
  0x67, 0x6A,
  0x65, 0x6C,
  0x74, 0x8D,
  0x74, 0x93,
};
int pPaperdoll_SecondLeftHand[4][2] =
{
  0x1A, 0x6B,
  0x28, 0x6D,
  0x19, 0x8D,
  0x20, 0x92,
};
int pPaperdoll_RightHand[8] = //fist
{
  0x1E, 0x90,
  0x22, 0x9E,
  0x19, 0xBA,
  0x1F, 0xB8,
};
int pPaperdollLeftEmptyHand[8];
int pPaperdollRingsX[6] = {0x1EA, 0x21A, 0x248, 0x1EA, 0x21A, 0x248};
int pPaperdollRingsY[6] = {0x0CA, 0x0CA, 0x0CA, 0x0FA, 0x0FA, 0x0FA};
char aItem092v3[777]; // idb
char aIbCd5D[777]; // idb
char aAr_dn_dn[777]; // idb
char aAr_dn_up[777]; // idb
char aAr_up_dn[777]; // idb
char aAr_up_up[777]; // idb
char aItem281pc02d[777]; // idb
char aPc02dbrd[777]; // idb
char aPc23vDlhu[777]; // idb
char aPc23vDlh[777]; // idb
char aPc23vDrh[777]; // idb
char aPc23vDlau[777]; // idb
char aPc23vDlad[777]; // idb
char aPc23vDbod[777]; // idb
char aBackhand[777]; // idb
char aBackdoll[777]; // idb
char aMagnifB[777]; // idb
char aItem3_3dvDa2[777]; // idb
char aItem3_3dvDa1[15]; // weak
char aItem3_3dvD[13]; // weak
char aItem64v1[9]; // weak
char aEffpar01[777]; // idb
int pPartySpellbuffsUI_XYs[14][2];
char byte_4E5DD8[777]; // weak
unsigned __int8 pPartySpellbuffsUI_smthns[14];
char aSpell27[777]; // idb
char aSpell21[777]; // idb
char aIsn02d[777]; // idb
char aBardataB[777]; // idb
char aBardata[8]; // weak
char aBardataC[10]; // weak
char aLoadprog[777]; // idb
char aLoadingD_pcx[777]; // idb
int pNPCPortraits_x[6][6] =     // 004E5E50
{
  {521,   0,   0,   0,   0,  0},
  {521, 521,   0,   0,   0,  0},
  {521, 521, 521,   0,   0,  0},
  {521, 486, 564, 521,   0,  0},
  {521, 486, 564, 486, 564,  0},
  {486, 564, 486, 564, 486, 564}
};
int pNPCPortraits_y[6][6] =     // 004E5EE0
{
  {38,   0,   0,   0,   0,   0},
  {38, 165,   0,   0,   0,   0},
  {38, 133, 228,   0,   0,   0},
  {38, 133, 133, 228,   0,   0},
  {38, 133, 133, 228, 228,   0},
  {38,  38, 133, 133, 228, 228}
};
const char *pHouse_ExitPictures[11]=
{
	"",
	"ticon01",
	"ticon02",
	"ticon03",
	"ticon04",
	"ticon05",
	"istairup",
	"itrap",
	"outside",
	"idoor",
	"isecdoor"
};
const char *_4E6BDC_loc_names[11]=
{
	"mdt12.blv",
	"d18.blv",
	"mdt14.blv",
	"d37.blv",
	"mdk01.blv",
	"mdt01.blv",
	"mdr01.blv",
	"mdt10.blv",
	"mdt09.blv",
	"mdt15.blv",
	"mdt11.blv"
};
char aMer[777]; // idb
char aMir[777]; // idb
char aSel[777]; // idb
char aEle[777]; // idb
char aDar[777]; // idb
char aLig[777]; // idb
char aBod[777]; // idb
char aMin[777]; // idb
char aSpi[777]; // idb
char aEar[777]; // idb
char aWat[777]; // idb
char aAir[777]; // idb
char aFir[777]; // idb
char aBan[777]; // idb
char aTav[777]; // idb
char aTow[777]; // idb
char aTra[777]; // idb
char aTem[777]; // idb
char aBoa[777]; // idb
char aSta[777]; // idb
char aAlc[777]; // idb
char aMag[777]; // idb
char aArm[777]; // idb
char aWea[777]; // idb
char asc_4E7BD4[2]; // idb
char a2devents_txt[777]; // idb
char aFileSSizeLuBuf[777]; // idb
char aGlobal_evt[777]; // idb
char aMax_event_text[777]; // idb
char aS_str[777]; // idb
char aS_evt[777]; // idb
char aNoMazeInfoForT[36]; // weak
char aC[777]; // idb
char aB[3]; // weak
char aEvt02d[777]; // idb
char aNoTransitionTe[777]; // idb
char aEWorkMsdevMm_4[777]; // idb
char asc_4E7CD4[777]; // idb
char aSS_1[777]; // idb
char aNpcIdExceedsMa[777]; // idb
char aNpc03u[777]; // idb
char aPcout01[777]; // idb
char aArbiterEvil[777]; // idb
char aArbiterGood[777]; // idb
char a0[777]; // idb
char aPartyStart[777]; // idb
char aNorthStart[12]; // weak
char aSouthStart[12]; // weak
char aEastStart[11]; // weak
char aWestStart[11]; // weak
char aUnableToFindDo[777]; // idb
char aNwc_blv[777]; // idb
char aUnableToOpenS[777]; // idb
char aInvalidStringP[777]; // idb
char aEWorkMsdevMm_5[777]; // idb
char aNull[777]; // idb
char aInvalidStrin_0[777]; // idb
char aSI[777]; // idb
char aS7[4]; // weak
char aS6[777]; // idb
char aS5[4]; // weak
char aS1[777]; // idb
char aS3[4]; // weak
char aS0[777]; // idb
char aS2[4]; // weak
char aS4[4]; // weak
char aUnableToSaveDs[777]; // idb
char aDataDsft_bin[777]; // idb
char aPFrames[777]; // idb
char aEFrames[777]; // idb
char aSFrames[777]; // idb
char aMirror7[777]; // idb
char aMirror6[777]; // idb
char aMirror5[777]; // idb
char aMirror4[777]; // idb
char aMirror3[777]; // idb
char aMirror2[777]; // idb
char aMirror1[777]; // idb
char aMirror0[777]; // idb
char aLuminous[777]; // idb
char a1[777]; // idb
char aNew[777]; // idb
char pMessag[777]; // idb
char aCspriteframeta[777]; // idb
char aR[777]; // idb
char aNew_0[777]; // idb
char aUnableToSaveDt[777]; // idb
char aDataDtft_bin[777]; // idb
char aTxtFrames[777]; // idb
char aCtexturefram_1[777]; // idb
char aCtexturefram_0[777]; // idb
char aCtextureframet[777]; // idb
int bWinNT4_0; // weak
char aEWorkMsdevMm_6[777]; // idb
char aTheVisObjectPo[777]; // idb
char aSpriteOutlineC[777]; // idb
char aUndefinedCobje[777]; // idb
char aEWorkMsdevMm_7[777]; // idb
char aGammaControlNo[777]; // idb
__int16 word_4E8152[11] = {0, 0, 0, 90, 8, 2, 70, 20, 10, 50, 30};
char byte_4E8168[7][14]={  //byte_4E8178
	{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, 
	{ 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},
	{ 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3},
	{ 2, 2, 2, 2, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4},
	{ 2, 2, 2, 2, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5},
	{ 2, 2, 2, 2, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6},
	{ 2, 2, 2, 2, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7}};
char aD3dTextureName[777]; // idb
char aLogd3d_txt[777]; // idb
char byte_4E8394[204] =
{
  0, 0, 0, 0, 1, 1, 2, 3, 0, 4, 5, 6, 7, 8, 10, 9, 1, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,
  1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0,  0, 0, 0, 0, 1, 0, 1, 1, 1,
  0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0,  0, 0, 0, 0, 1, 1, 1, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,  1, 1, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0,  0, 0, 0, 1, 1, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 3, 3, 3, 3, 3, 3, 1,
  1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2,  2, 0, 0, 0, 0, 0
};
stru355 stru_4E82A4 = {0x20, 0x41, 0, 0x20, 0xFF0000, 0xFF00, 0xFF, 0xFF000000};
stru355 stru_4EFCBC = {0x20, 0x41, 0, 0x10, 0x7C00, 0x3E0, 0x1F, 0x8000};
char byte_4E94D0 = 5; // weak
char byte_4E94D1 = 9; // weak
char _4E94D2_light_type = 6; // weak
char byte_4E94D3 = 10; // weak
unsigned int saveload_dlg_xs[2] = {82, 0};
unsigned int saveload_dlg_ys[2] = {60, 0};
unsigned int saveload_dlg_zs[2] = {460, 640};
unsigned int saveload_dlg_ws[2] = {344, 480};
int dword_4E98BC_bApplicationActive; // weak
//char *off_4EB080; // idb
char *pTransitionStrings[465] = {"", nullptr};  // 004EB080
char aAwards_txt[777]; // idb
char aScroll_txt[777]; // idb
char aMerchant_txt[777]; // idb
char aTrans_txt[777]; // idb
char aTeacher[777]; // idb
char aObelisk[777]; // idb
char aSeer[777]; // idb
char aStat[777]; // idb
char aPotion[777]; // idb
char aAutonote_txt[777]; // idb
char aQuests_txt[777]; // idb
char aNpcdist_txt[777]; // idb
char aNpctopic_txt[777]; // idb
char aNpctext_txt[777]; // idb
char aNpcnews_txt[777]; // idb
char aNpcgroup_txt[777]; // idb
char aNpcgreet_txt[777]; // idb
char aNpcdata_txt[777]; // idb
char aNpcprof_txt[777]; // idb
char aNpcnames_txt[777]; // idb
char aD3dVersionOfRe[777]; // idb
char aEWorkMsdevM_16[777]; // idb
char aLevels_0[777]; // idb
char aDmap[777]; // idb
char aAmap[777]; // idb
char aTmap[777]; // idb
char aHmap[777]; // idb
int dword_4EC268[777]; // weak
int dword_4EC28C[777]; // weak
int dword_4EC2A8; // weak
int dword_4EC2AC; // weak
char aInvalidGroundT[777]; // idb
char aInvalidSkyTexH[777]; // idb
char aIdlist[777]; // idb
char aOmap[777]; // idb
char aCmap[777]; // idb
char aMm6OutdoorV1_0[777]; // idb
char aI6_odm[777]; // idb
char aBlank[777]; // idb
char aHm005[777]; // idb
char aSky043[777]; // idb
char aDefault_odm[777]; // idb
char aPlansky3[777]; // idb
char aPlanskyD[777]; // idb
char a_ddm[5]; // weak
char aCanTLoadFile[777]; // idb
char aEWorkMsdevM_17[777]; // idb
char a_odm[777]; // idb
char aUnableToFindSI[777]; // idb
char aSpawn[777]; // idb
char aBddata[777]; // idb
char aTernorm[777]; // idb
char aGrastyl[777]; // idb
char aOut09_odm[777]; // idb
char aNewedges[777]; // idb
char aSurfs[777]; // idb
char aEdges[777]; // idb
char aSpans[777]; // idb
char aTheTextureFram[777]; // idb
char aEWorkMsdevM_18[777]; // idb
char aWtrtyla[777]; // idb
char aWtrtyl[777]; // idb
char aUnableToSave_1[777]; // idb
char aDataDtile_bin[777]; // idb
char aTileDescrip[777]; // idb
char aTtattr_transit[777]; // idb
char aTtattr_nodraw[777]; // idb
char aTtattr_wave[777]; // idb
char aTtattr_flat[777]; // idb
char aTtattr_repulse[777]; // idb
char aTtattr_block[777]; // idb
char aTtattr_water2[777]; // idb
char aTtattr_water[777]; // idb
char aTtattr_burn[777]; // idb
char aTtsect_dnw[777]; // idb
char aTtsect_dse[777]; // idb
char aTtsect_dne[777]; // idb
char aTtsect_dsw[777]; // idb
char aTtsect_de[777]; // idb
char aTtsect_dw[777]; // idb
char aTtsect_ds[777]; // idb
char aTtsect_dn[777]; // idb
char aTtsect_wcap[777]; // idb
char aTtsect_scap[777]; // idb
char aTtsect_ecap[777]; // idb
char aTtsect_ncap[777]; // idb
char aTtsect_ew_s[777]; // idb
char aTtsect_ew_n[777]; // idb
char aTtsect_ns_w[777]; // idb
char aTtsect_ns_e[777]; // idb
char aTtsect_s_w[777]; // idb
char aTtsect_s_e[777]; // idb
char aTtsect_n_w[777]; // idb
char aTtsect_n_e[777]; // idb
char aTtsect_ew[777]; // idb
char aTtsect_ns[777]; // idb
char aTtsect_cros[777]; // idb
char aTtsect_xsw1[777]; // idb
char aTtsect_xse1[777]; // idb
char aTtsect_xnw1[777]; // idb
char aTtsect_xne1[777]; // idb
char aTtsect_s1[777]; // idb
char aTtsect_n1[777]; // idb
char aTtsect_w1[777]; // idb
char aTtsect_e1[777]; // idb
char aTtsect_sw1[777]; // idb
char aTtsect_se1[777]; // idb
char aTtsect_nw1[777]; // idb
char aTtsect_ne1[777]; // idb
char aTtsect_speci_6[777]; // idb
char aTtsect_speci_5[777]; // idb
char aTtsect_speci_4[777]; // idb
char aTtsect_speci_3[777]; // idb
char aTtsect_speci_2[777]; // idb
char aTtsect_speci_1[777]; // idb
char aTtsect_speci_0[777]; // idb
char aTtsect_special[777]; // idb
char aTtsect_base4[777]; // idb
char aTtsect_base3[777]; // idb
char aTtsect_base2[777]; // idb
char aTtsect_base1[777]; // idb
char aTtsect_start[777]; // idb
char aTtsect_null[777]; // idb
char aTttype_roadcit[777]; // idb
char aTttype_roads_2[777]; // idb
char aTttype_roadsno[777]; // idb
char aTttype_roadt_0[777]; // idb
char aTttype_roadtro[777]; // idb
char aTttype_roads_1[777]; // idb
char aTttype_roadswa[777]; // idb
char aTttype_roadv_0[777]; // idb
char aTttype_roadvol[777]; // idb
char aTttype_roads_0[777]; // idb
char aTttype_roadsan[777]; // idb
char aTttype_roadc_0[777]; // idb
char aTttype_roadcra[777]; // idb
char aTttype_roadg_0[777]; // idb
char aTttype_roadgra[777]; // idb
char aTttype_city[777]; // idb
char aTttype_swamp[777]; // idb
char aTttype_tropica[777]; // idb
char aTttype_water[777]; // idb
char aTttype_dirt[777]; // idb
char aTttype_volcano[777]; // idb
char aTttype_sand[777]; // idb
char aTttype_snow[777]; // idb
char aTttype_cracked[777]; // idb
char aTttype_grass[777]; // idb
char aTttype_start[777]; // idb
char aTttype_null[777]; // idb
char aTiletableLoadO[777]; // idb
char aTiletableLoadU[777]; // idb
char byte_4ECA93[777]; // weak
char byte_4ECACF[777]; // weak
char byte_4ECB0C[64]; // idb
char aError_0[777]; // idb
char aCouldnTLoadMap[777]; // idb
char aOut02d_odm[777]; // idb
char aOut14_odm[777]; // idb
char aOut[777]; // idb
char aLunSun[777]; // idb
char aLunfull[777]; // idb
char aLun34[777]; // idb
char aLun12[777]; // idb
char aLun14[777]; // idb
char aPal03i[777]; // idb
const char *pPlayerPortraitsNames[25] =
{
  "pc01-", "pc02",  "pc03", "pc04",  "pc05-",
  "pc06",  "pc07",  "pc08", "pc09-", "pc10",
  "pc11-", "pc12",  "pc13", "pc14",  "pc15",
  "pc16",  "pc17-", "pc18", "pc19",  "pc20",
  "pc21-", "pc22-", "pc23", "pc24-", "pc25-"
};

const char *dlad_texnames_by_face[25] =
{
  "pc01lad", "pc02lad", "pc03lad", "pc04lad", "pc05lad", "pc06lad",
  "pc07lad", "pc08lad", "pc09lad", "pc10lad", "pc11lad", "pc12lad",
  "pc13lad", "pc14lad", "pc15lad", "pc16lad", "pc17lad", "pc18lad",
  "pc19lad", "pc20lad", "pc21lad", "pc22lad", "pc23lad", "pc24lad",
  "pc25lad"
};
const char *dlau_texnames_by_face[25] =
{
  "pc01lau", "pc02lau", "pc03lau", "pc04lau", "pc05lau", "pc06lau",
  "pc07lau", "pc08lau", "pc09lau", "pc10lau", "pc11lau", "pc12lau",
  "pc13lau", "pc14lau", "pc15lau", "pc16lau", "pc17lau", "pc18lau",
  "pc19lau", "pc20lau", "pc21lau", "pc22lau", "pc23lau", "pc24lau",
  "pc25lau"
};
const char *dbod_texnames_by_face[25] =
{
  "pc01bod", "pc02bod", "pc03bod", "pc04bod", "pc05bod", "pc06bod",
  "pc07bod", "pc08bod", "pc09bod", "pc10bod", "pc11bod", "pc12bod",
  "pc13bod", "pc14bod", "pc15bod", "pc16bod", "pc17bod", "pc18bod",
  "pc19bod", "pc20bod", "pc21bod", "pc22bod", "pc23bod", "pc24bod",
  "pc25bod"
};
const char *drh_texnames_by_face[25] =
{

  "pc01rh", "pc02rh", "pc03rh", "pc04rh", "pc05rh", "pc06rh",
  "pc07rh", "pc08rh", "pc09rh", "pc10rh", "pc11rh", "pc12rh",
  "pc13rh", "pc14rh", "pc15rh", "pc16rh", "pc17rh", "pc18rh",
  "pc19rh", "pc20rh", "pc21rh", "pc22rh", "pc23rh", "pc24rh",
  "pc25rh"
};
const char *dlh_texnames_by_face[25] =
{
  "pc01lh", "pc02lh", "pc03lh", "pc04lh", "pc05lh", "pc06lh",
  "pc07lh", "pc08lh", "pc09lh", "pc10lh", "pc11lh", "pc12lh",
  "pc13lh", "pc14lh", "pc15lh", "pc16lh", "pc17lh", "pc18lh",
  "pc19lh", "pc20lh", "pc21lh", "pc22lh", "pc23lh", "pc24lh",
  "pc25lh"
};
const char *dlhu_texnames_by_face[25] =
{
  "pc01lhu", "pc02lhu", "pc03lhu", "pc04lhu", "pc05lhu", "pc06lhu",
  "pc07lhu", "pc08lhu", "pc09lhu", "pc10lhu", "pc11lhu", "pc12lhu",
  "pc13lhu", "pc14lhu", "pc15lhu", "pc16lhu", "pc17lhu", "pc18lhu",
  "pc19lhu", "pc20lhu", "pc21lhu", "pc22lhu", "pc23lhu", "pc24lhu",
  "pc25lhu"
};

unsigned char byte_4ECF08[48][25] =      // 4ECF08
{
  {2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1},//1
  {2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2},//2
  {2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},//3
  {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},//4
  {2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},//5
  {2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},//6
  {2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},//7
  {2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1},//8
  {2, 1, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2},//9
  {2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},//10
  {2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2},//11
  {1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2},//12
  {2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},//13
  {1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2},//14
  {2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2},//15
  {1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 1},//16
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},//17
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1},//18
  {1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},//19
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},//20
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},//21
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},//22
  {2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1},//23
  {2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2},//24
  {1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1},//25
  {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},//26
  {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2},//27
  {1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},//28
  {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1},//29
  {1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1},//30
  {1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1},//31
  {1, 1, 2, 1, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2},//32
  {1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1},//33
  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1},//34
  {1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2},//35
  {1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2},//36
  {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2},//37
  {2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1},//38
  {1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1},//39
  {1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},//40
  {2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1},//41
  {1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1},//42
  {1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},//43
  {1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2},//44
  {2, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 2, 2},//45
  {1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2},//46
  {1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1},//47
  {1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1},//48
};
unsigned char SoundSetAction[110][8] = // 4ED3D8
{
  { 0,  0,  0,  0,  0,  0,  0,  0},
  {38,  0,  0, 37, 38, 45,  0,  0},
  {37,  0,  0, 47, 53,  0,  0,  0},
  { 2,  0,  0, 25,  0,  0,  0,  0},
  { 1,  0,  0, 47,  0,  0,  0,  0},
  { 3,  0,  0, 41, 42,  0,  0,  0},
  { 0,  0,  0, 33,  0,  0,  0,  0},
  { 5,  0,  0, 21, 22, 23, 24, 45},
  { 6,  0,  0, 47,  0,  0,  0,  0},
  { 7,  0,  0, 43, 48,  0,  0,  0},
  { 8,  0,  0, 38,  0,  0,  0,  0},
  { 9,  0,  0, 39,  0,  0,  0,  0},
  {13,  0,  0, 37, 38,  0,  0,  0},
  {23,  0,  0, 25,  0,  0,  0,  0},
  { 0,  0,  0, 37, 38, 45,  0,  0},
  {25,  0,  0, 25,  0,  0,  0,  0},
  {26,  0,  0, 38, 47,  0,  0,  0},
  {27,  0,  0, 41, 42,  0,  0,  0},
  {28,  0,  0, 25,  0,  0,  0,  0},
  { 0,  0,  0, 51,  0,  0,  0,  0},
  {30,  0,  0, 25,  0,  0,  0,  0},
  {29,  0,  0, 27,  0,  0,  0,  0},
  {32, 33,  0, 37, 38,  0,  0,  0},
  {34,  0,  0, 53,  0,  0,  0,  0},
  {15,  0,  0, 34, 35, 36,  0,  0},
  { 0,  0,  0,  3,  0,  0,  0,  0},
  {22,  0,  0,  5,  0,  0,  0,  0},
  {20,  0,  0,  8,  0,  0,  0,  0},
  {20,  0,  0,  9,  0,  0,  0,  0},
  {19,  0,  0,  7,  0,  0,  0,  0},
  {21,  0,  0,  2,  0,  0,  0,  0},
  {18,  0,  0,  6,  0,  0,  0,  0},
  { 0,  0,  0, 11,  0,  0,  0,  0},
  {17,  0,  0,  0,  0,  0,  0,  0},
  { 0,  0,  0, 12,  0,  0,  0,  0},
  {17,  0,  0,  0,  0,  0,  0,  0},
  { 0,  0,  0, 37,  0,  0,  0,  0},
  { 0,  0,  0, 49,  0,  0,  0,  0},
  {24,  0,  0, 25,  0,  0,  0,  0},
  {31,  0,  0, 25,  0,  0,  0,  0},
  { 0,  0,  0, 41, 42,  0,  0,  0},
  { 0,  0,  0, 39, 48,  0,  0,  0},
  { 0,  0,  0, 46,  0,  0,  0,  0}, 
  { 0,  0,  0, 39, 48,  0,  0,  0},
  { 0,  0,  0, 41, 42,  0,  0,  0},
  { 0,  0,  0, 39, 48,  0,  0,  0},
  {41,  0,  0, 21,  0,  0,  0,  0},
  {40,  0,  0, 21,  0,  0,  0,  0},
  {16,  0,  0, 46,  0,  0,  0,  0},
  { 0,  0,  0, 40,  0,  0,  0,  0},
  { 0,  0,  0, 39,  0,  0,  0,  0},
  { 0,  0,  0, 37, 38,  0,  0,  0},
  { 0,  0,  0, 48, 49, 50,  0,  0},
  { 0,  0,  0, 44,  0,  0,  0,  0},
  { 0,  0,  0, 48,  0,  0,  0,  0},
  { 0,  0,  0, 37, 38, 45,  0,  0},
  { 0,  0,  0, 41, 42,  0,  0,  0},
  { 0,  0,  0, 47,  0,  0,  0,  0},
  { 0,  0,  0, 39, 48,  0,  0,  0},
  { 0,  0,  0, 39, 48,  0,  0,  0},
  { 0,  0,  0, 37, 38,  0,  0,  0},
  { 0,  0,  0, 37, 38,  0,  0,  0},
  { 0,  0,  0, 37, 38,  0,  0,  0},
  { 0,  0,  0, 31,  0,  0,  0,  0},
  { 0,  0,  0, 32,  0,  0,  0,  0},
  {47,  0,  0, 46,  0,  0,  0,  0},
  {22,  0,  0,  5,  0,  0,  0,  0},
  { 0,  0,  0, 25,  0,  0,  0,  0},
  { 0,  0,  0, 37,  0,  0,  0,  0},
  { 0,  0,  0, 52,  0,  0,  0,  0},
  { 0,  0,  0, 45,  0,  0,  0,  0},
  { 0,  0,  0, 27,  0,  0,  0,  0},
  { 0,  0,  0, 37, 38,  0,  0,  0},
  { 0,  0,  0, 49,  0,  0,  0,  0},
  { 0,  0,  0, 48,  0,  0,  0,  0},
  { 0,  0,  0, 37, 38, 45,  0,  0},
  { 0,  0,  0, 48,  0,  0,  0,  0},
  { 0,  0,  0, 37, 38, 45,  0,  0},
  { 0,  0,  0, 47,  0,  0,  0,  0},
  { 0,  0,  0, 48,  0,  0,  0,  0},
  {44,  0,  0, 39, 48,  0,  0,  0},
  { 0,  0,  0, 48, 49,  0,  0,  0},
  { 0,  0,  0, 38,  0,  0,  0,  0},
  { 0,  0,  0, 31,  0,  0,  0,  0},
  {32, 33,  0, 37, 38,  0,  0,  0},
  { 0,  0,  0, 37, 38,  0,  0,  0},
  { 0,  0,  0, 37, 38,  0,  0,  0},
  { 0,  0,  0, 47,  0,  0,  0,  0},
  { 0,  0,  0, 38,  0,  0,  0,  0},
  { 0,  0,  0, 48,  0,  0,  0,  0},
  { 0,  0,  0,  0,  0,  0,  0,  0},
  { 0,  0,  0, 38,  0,  0,  0,  0},
  { 0,  0,  0, 47,  0,  0,  0,  0},
  { 0,  0,  0, 38,  0,  0,  0,  0},
  { 0,  0,  0,  0,  0,  0,  0,  0},
  { 0,  0,  0,  0,  0,  0,  0,  0},
  { 0,  0,  0, 38,  0,  0,  0,  0},
  { 0,  0,  0, 38,  0,  0,  0,  0},
  { 0,  0,  0,  5,  0,  0,  0,  0},
  { 0,  0,  0, 37, 38,  0,  0,  0},
  { 0,  0,  0, 44,  0,  0,  0,  0},
  { 0,  0,  0, 48,  0,  0,  0,  0},
  { 4,  0,  0,  0,  0,  0,  0,  0},
  { 0,  0,  0, 58,  0,  0,  0,  0},
  {10,  0,  0, 45,  0,  0,  0,  0},
  {11,  0,  0, 47,  0,  0,  0,  0},
  {12,  0,  0, 43, 48,  0,  0,  0},
  {39,  0,  0, 48,  0,  0,  0,  0},
  {14,  0,  0, 48,  0,  0,  0,  0},
  {17,  0,  0,  0,  0,  0,  0,  0}
};
__int16 pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[4] = {34, 149, 264, 379};
char byte_4ED970_skill_learn_ability_by_class_table[36][37] = 
{
 2, 3, 2, 3, 3, 2, 3, 4, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 2, 1, 0, 1, 2, 2, 0, 3, 0, 0, 1,//Knight
 2, 3, 2, 3, 3, 2, 3, 4, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 0, 2, 1, 0, 1, 2, 2, 0, 3, 0, 0, 1,
 2, 4, 2, 3, 4, 2, 3, 4, 4, 3, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 0, 2, 1, 0, 1, 2, 2, 0, 4, 0, 0, 1,
 2, 4, 2, 3, 4, 2, 3, 4, 4, 3, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 0, 2, 1, 0, 1, 2, 2, 0, 4, 0, 0, 1,
 
 0, 3, 3, 0, 0, 2, 2, 4, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 1, 2, 0, 3, 0, 0, 3, 3, 2, 0, 3, 3, 2, 2,//Thief
 0, 3, 3, 0, 0, 2, 2, 4, 1, 3, 2, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 1, 2, 0, 3, 0, 0, 3, 3, 2, 0, 3, 3, 2, 2,
 0, 3, 4, 0, 0, 2, 2, 4, 1, 4, 2, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 1, 2, 0, 3, 0, 0, 4, 3, 2, 0, 3, 4, 2, 2,
 0, 3, 4, 0, 0, 2, 2, 4, 1, 4, 2, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 3, 3, 1, 2, 0, 3, 0, 0, 4, 3, 2, 0, 3, 4, 2, 2,

 3, 2, 2, 0, 2, 1, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 2, 1, 0, 1, 3, 3, 2, 3, 1, 0, 3,//Monk
 3, 2, 2, 0, 2, 1, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 3, 0, 2, 1, 0, 2, 3, 3, 2, 3, 1, 0, 3,
 4, 2, 2, 0, 2, 1, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 4, 0, 2, 1, 0, 2, 4, 4, 2, 3, 1, 0, 4,
 4, 2, 2, 0, 2, 1, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 4, 0, 2, 1, 0, 3, 4, 4, 2, 3, 2, 0, 4,

 1, 3, 2, 2, 2, 2, 3, 4, 3, 2, 2, 3, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 2, 3, 3, 2, 1, 3, 0, 0, 1, 1, 0, 2, 0, 0, 1,//Paladin
 1, 3, 2, 2, 2, 2, 3, 4, 3, 2, 2, 3, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2, 3, 3, 2, 1, 3, 0, 0, 1, 1, 0, 2, 0, 0, 1,
 1, 3, 2, 2, 2, 2, 4, 4, 4, 2, 2, 3, 0, 0, 0, 0, 3, 3, 3, 1, 0, 0, 2, 4, 3, 2, 1, 4, 0, 0, 1, 1, 0, 2, 0, 0, 1,
 1, 3, 2, 2, 2, 2, 4, 4, 4, 2, 2, 3, 0, 0, 0, 0, 3, 3, 3, 0, 1, 0, 2, 4, 3, 2, 1, 4, 0, 0, 1, 1, 0, 2, 0, 0, 1,

 1, 2, 2, 2, 3, 3, 0, 4, 0, 3, 3, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 3, 0, 0, 1, 2, 1, 0, 2, 0, 0, 3,//Archer
 1, 2, 2, 2, 3, 3, 0, 4, 0, 3, 3, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 3, 0, 0, 1, 2, 1, 0, 2, 0, 0, 3,
 1, 2, 2, 2, 3, 4, 0, 4, 0, 3, 4, 0, 3, 3, 3, 3, 0, 0, 0, 1, 0, 0, 2, 2, 2, 2, 4, 0, 0, 2, 2, 1, 0, 2, 0, 0, 3,
 1, 2, 2, 2, 3, 4, 0, 4, 0, 3, 4, 0, 3, 3, 3, 3, 0, 0, 0, 0, 1, 0, 2, 2, 2, 2, 4, 0, 0, 2, 2, 1, 0, 2, 0, 0, 3,

 1, 2, 2, 3, 2, 3, 0, 4, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2, 1, 3, 2, 0, 2, 2, 1, 3, 2, 2, 1, 2,//Ranger
 1, 2, 2, 3, 2, 3, 0, 4, 2, 3, 3, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 2, 1, 3, 2, 0, 2, 2, 1, 3, 2, 2, 1, 2,
 1, 2, 2, 4, 2, 3, 0, 4, 2, 3, 3, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 1, 1, 1, 2, 1, 3, 2, 0, 2, 2, 1, 4, 2, 2, 1, 2,
 1, 2, 2, 4, 2, 3, 0, 4, 2, 3, 3, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 1, 1, 1, 2, 1, 3, 2, 0, 2, 2, 1, 4, 2, 2, 1, 2,

 1, 0, 0, 0, 0, 2, 3, 4, 3, 2, 2, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 3, 3, 1, 3, 2, 3, 0, 0, 0, 0, 2, 0, 0, 2, 3,//Cleric
 1, 0, 0, 0, 0, 2, 3, 4, 3, 2, 2, 0, 0, 0, 0, 0, 3, 3, 3, 0, 0, 0, 3, 3, 1, 3, 2, 3, 0, 0, 0, 0, 2, 0, 0, 2, 3,
 1, 0, 0, 0, 0, 2, 3, 4, 3, 2, 2, 0, 0, 0, 0, 0, 4, 4, 4, 4, 0, 0, 4, 3, 1, 3, 2, 3, 0, 0, 0, 0, 2, 0, 0, 2, 3,
 1, 0, 0, 0, 0, 2, 3, 4, 3, 2, 2, 0, 0, 0, 0, 0, 4, 4, 4, 0, 4, 0, 4, 3, 1, 3, 2, 3, 0, 0, 0, 0, 2, 0, 0, 2, 3,

 1, 0, 3, 0, 0, 1, 2, 4, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 3, 2, 0, 0, 0, 0, 0, 2, 1, 0, 3, 3,//Druid
 1, 0, 3, 0, 0, 1, 2, 4, 2, 2, 0, 0, 3, 3, 3, 3, 3, 3, 3, 0, 0, 2, 2, 0, 0, 3, 2, 0, 0, 0, 0, 0, 2, 1, 0, 3, 3,
 1, 0, 3, 0, 0, 1, 2, 4, 2, 2, 0, 0, 3, 3, 3, 3, 3, 3, 3, 0, 0, 2, 2, 0, 0, 4, 2, 0, 0, 0, 0, 0, 2, 1, 0, 4, 3,
 1, 0, 3, 0, 0, 1, 2, 4, 2, 2, 0, 0, 3, 3, 3, 3, 3, 3, 3, 0, 0, 2, 2, 0, 0, 4, 2, 0, 0, 0, 0, 0, 2, 1, 0, 4, 3,

 3, 0, 2, 0, 0, 1, 0, 4, 0, 2, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 3, 1, 2, 0, 3, 2, 1, 0, 0, 0, 0, 3, 0, 0, 3, 3,//Sorcerer
 3, 0, 2, 0, 0, 1, 0, 4, 0, 2, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 3, 1, 2, 0, 3, 2, 1, 0, 0, 0, 0, 3, 0, 0, 3, 3,
 3, 0, 2, 0, 0, 1, 0, 4, 0, 2, 0, 0, 4, 4, 4, 4, 0, 0, 0, 4, 0, 4, 1, 2, 0, 3, 2, 1, 0, 0, 0, 0, 4, 0, 0, 3, 3,
 3, 0, 2, 0, 0, 1, 0, 4, 0, 2, 0, 0, 4, 4, 4, 4, 0, 0, 0, 0, 4, 4, 1, 2, 0, 3, 2, 1, 0, 0, 0, 0, 4, 0, 0, 3, 3,
};
int dword_4EDEA0[777]; // weak
int dword_4EDEB4[777]; // weak
int dword_4EDEC4[777]; // weak
__int16 word_4EDED8[16] = {100, 90, 60, 100, 80, 100, 80, 30, 10, 10, 20, 30, 100, 0, 0, 0};
_UNKNOWN unk_4EDF40; // weak
unsigned int pHiredNPCsIconsOffsetsX[2] = {489, 559};
unsigned int pHiredNPCsIconsOffsetsY[2] = {152, 152};
int dword_4EE07C[2]; // weak
_UNKNOWN unk_4EE084; // weak
__int16 word_4EE088_sound_ids[100] =
{
      0, 10000, 10010, 10020, 10030, 10040, 10050, 10060, 10070, 10080,
  10090, 10100, 11000, 11010, 11020, 11030, 11040, 11050, 11060, 11070,
  11080, 11090, 11100, 12000, 12010, 12020, 12030, 12040, 12050, 12060,
  12070, 12080, 12090, 12100, 13000, 13010, 13020, 13030, 13040, 13050,
  13060, 13070, 13080, 13090, 13100, 14000, 14010, 14020, 14030, 14040,
  14050, 14060, 14070, 14080, 14090, 14100, 15000, 15010, 15020, 15030,
  15040, 15050, 15060, 15070, 15080, 15090, 15100, 16000, 16010, 16020,
  16030, 16040, 16050, 16060, 16070, 16080, 16090, 16100, 17000, 17010,
  17020, 17030, 17040, 17050, 17060, 17070, 17080, 17090, 17100, 18000,
  18010, 18020, 18030, 18040, 18050, 18060, 18070, 18080, 18090, 18100
};
short word_4EE150[28] =
{
   1,  2,  3,  4,  5,  7, 32, 33, 36, 37, 38, 40, 41, 42, 43, 45, 46,
  47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 60
};

int dword_4EED78; // weak
_UNKNOWN unk_4EED80; // weak
int dword_4EFA80; // weak
int dword_4EFA84; // weak
void *off_4EFDB0; // weak
int dword_4F031C[777]; // weak
const char *off_4F03B8[19] =
{
  "",         "WEPNTABL", "ARMORY",   "MAGSHELF",
  "MAGSHELF", "MAGSHELF", "MAGSHELF", "MAGSHELF",
  "MAGSHELF", "MAGSHELF", "MAGSHELF", "MAGSHELF",
  "MAGSHELF", "MAGSHELF", "MAGSHELF", "MAGSHELF",
  "MAGSHELF", "MAGSHELF", "MAGSHELF"
};
//__int16 word_4F03FE[777]; // weak
//__int16 word_4F0400[777]; // weak
/*__int16 word_4F0404[] =
{
	0, 0, 1, 0x17, 0x1B, 0x14, 0x14, 1, 0x17, 0x18, 0x1C,
	0x14, 2, 0x17, 0x18, 0x19, 0x14, 2, 0x1B, 0x1B, 0x1A, 0x1A,
	4, 0x18, 0x1E, 0x19, 0x1B, 4, 0x18, 0x1E, 0x19, 0x1B, 3, 0x1E,
	0x18, 0x14, 0x14, 2, 0x14, 0x14, 0x14, 0x14, 3, 0x1B, 0x1B, 0x1A, 0x1A,
	3, 0x1C, 0x1C, 0x19, 0x19, 2, 0x17, 0x17, 0x18, 0x18,
	3, 0x17, 0x17, 0x1A, 0x1A, 2, 0x1E, 0x1A, 0x1A, 0x1A, 2, 0x1C,
	0x19, 0x1C, 0x1D, 0, 0
};*/
//__int16 word_4F0498[777]; // weak
/*__int16 word_4F0498[] =
{
1, 0x23, 0x23, 0x26, 0x26, 1, 0x1F, 0x1F, 0x1F, 0x22, 1, 0x23, 0x23,
0x26, 0x26, 1, 0x1F, 0x1F, 0x20, 0x22, 2, 0x23, 0x23,
0x26, 0x26, 2, 0x1F, 0x20, 0x20, 0x21, 2, 0x23, 0x23,
0x26, 0x26, 2, 0x1F, 0x1F, 0x20, 0x20, 4, 0x23, 0x23,
0x26, 0x26, 4, 0x1F, 0x20, 0x21, 0x22, 4, 0x23, 0x23, 0x26, 0x26,
4, 0x1F, 0x20, 0x21, 0x22, 3, 0x23, 0x23, 0x26, 0x26, 3,
0x1F, 0x1F, 0x1F, 0x1F, 2, 0x23, 0x23, 0x26, 0x26, 2, 0x1F, 0x20,
0x22, 0x22, 3, 0x23, 0x23, 0x26, 0x26, 3, 0x1F, 0x1F,
0x20, 0x20, 3, 0x23, 0x23, 0x26, 0x26, 3, 0x20, 0x20, 0x20,
0x21, 3, 0x23, 0x23, 0x26, 0x26, 3, 0x1F, 0x1F, 0x1F, 0x20
};*/
//__int16 word_4F0576[777]; // weak
/*__int16 word_4F0576[] =
{
0x23, 0x23, 0x26, 0x26, 3, 0x21, 0x1F, 0x20, 0x22, 3, 0x23, 0x23,
0x26, 0x26, 3, 0x21, 0x1F, 0x20, 0x22, 4, 0x23, 0x23, 0x26, 0x26,
4, 0x21, 0x1F, 0x20, 0x22, 0x1, 0x1, 0x2, 0x2, 0x4, 0x4,
3, 2, 2, 2, 2, 2, 2, 0, 0x1, 0x1, 0x2, 0x2, 0x3, 0x3, 0x4, 0x4,
2, 2, 2, 2, 0x0, 0x0, 1, 0, 0xA3, 0xA3, 0xA2, 0xA1, 0xA0,
2, 0, 0xA3, 0xA3, 0xA2, 0xA1, 0xA0, 2, 0, 0xA3, 0xA3,
0xA2, 0xA1, 0xA0, 2, 0, 0x0A3, 0x0A3, 0xA2, 0xA1, 0xA0,
3, 0, 0xA3, 0xA3, 0xA2, 0xA1, 0xA0, 3, 0, 0xA3, 0xA3,
0xA2, 0xA1, 0xA0
};*/

//__int16 word_4F0578[777]; // weak
//__int16 word_4F05AE[777]; // weak

//__int16 word_4F063E[290];
//__int16 word_4F06D8[22];
int word_4F0704[32]={
   54, 54, 54, 54, 52, 52, 52, 52, 55, 55, 55, 55, 53, 53,
	   53, 53, 58, 58, 58, 58, 57, 57, 57, 57, 56, 56,
	   56, 56, 59, 59, 60, 60};
__int16 word_4F0754[49];
//__int16 word_4F07B6[88];
__int16 word_4F0866[14];
__int16 _4F0882_evt_VAR_PlayerItemInHands_vals[54]=
{
	0x0D4, 0x270, 0x0D5, 0x21C, 0x0D6, 0x2BE, 0x0D7, 0x2BD, 0x0D8, 0x289, 
	0x0D9, 0x258, 0x0DA, 0x2AB, 0x0DB, 0x281, 0x0DC, 0x280, 0x0DD,
	0x284, 0x0DE, 0x285, 0x0DF, 0x283, 0x0E0, 0x282, 0x0E1, 0x27F,
	0x0E2, 0x1E7, 0x0E3, 0x287, 0x0E4, 0x272, 0x0E5, 0x267, 0x0E6,
	0x275, 0x0E7, 0x25A, 0x0E8, 0x2A4, 0x0E9, 0x2A5, 0x0EA, 0x2A3,
	0x0EB, 0x25C, 0x0EC, 0x25D, 0x0ED, 0x259, 0x0F1, 0x21E
}
;
int price_for_membership[777]; // weak
char byte_4F09B0[777]; // weak
char byte_4F09B1[777]; // weak
char byte_4F09B8[777]; // weak
int dword_4F09CC[192];
char byte_4F0CCF[777]; // weak
char _4F0D38_TravelInfo[777]; // weak
int dword_4F0E10[32];
Vec2_int_ pMonsterArenaPlacements[20];
__int16 word_4F0F30[777]; // weak
char aS03d[777]; // idb
char byte_4F0F98; // idb
char sz[777]; // idb
char aSSSSSS[777]; // idb
char aSDS[777]; // idb
char aSS_3[777]; // idb
char aSSSS[777]; // idb
char aS_2[777]; // idb
char aErrorlog_txt[777]; // idb
char aUnsupportedPix[777]; // idb
char aSmackerError[777]; // idb
char aCS[777]; // idb
char aAnimsMagic7_vi[777]; // idb
char aVideoFileError[777]; // idb
char aCanTOpenFileAn[777]; // idb
char aAnimsMight7_vi[777]; // idb
char aCanTLoadS[777]; // idb
char aS_smk[777]; // idb
char aUnsupportedBin[27]; // weak
char aEWorkMsdevM_29[777]; // idb
char aFailedToOpenBl[777]; // idb
char aCanTAllocateMe[33]; // weak
char aCanTLoadFileAn[777]; // idb
char aS_bik[777]; // idb
char aMm7_win_pcx[777]; // idb
char aLuSLuSLuS[777]; // idb
char aEndgame_fnt[777]; // idb
char aWinbg_pcx[10]; // weak
char aDefaultCaseRea[777]; // idb
char aUnsupportedExc[71]; // weak
char aEWorkMsdevM_30[777]; // idb
char aUndefinedTypeR[777]; // idb
char aUnknownPointer[777]; // idb
char a1_1_3[6]; // weak
double dbl_4F2870; // weak
int dword_4F288C; // weak
double dbl_4F5372; // weak
int dword_4F5428[777]; // weak
int dword_4F542C[777]; // weak
_UNKNOWN crtunk_4F54B8; // weak
int dword_4F5B24_ys[777]; // idb
int dword_4F5BF4_xs[777]; // idb
int dword_4F5CC4_ys[777]; // idb
int dword_4F5D98_xs[777]; // idb
int ai_array_4F5E68[500];
int ai_array_4F6638_actor_ids[500];
int ai_near_actors_targets_pid[500];
int ai_arrays_size; // weak
int ai_near_actors_distances[500];
unsigned int ai_near_actors_ids[500];
int dword_4F8580[182]; // weak
int dword_4FA9B0[777]; // weak
int dword_4FA9B4[777]; // weak
char byte_4FAA00; // weak
__int16 am_sounds[12];
_UNKNOWN unk_4FAA20; // weak
char byte_4FAA24; // weak
HWND dword_4FAA28; // idb
char byte_4FAA2C; // weak
char byte_4FAA2D; // weak
char byte_4FAA2E; // weak
int amuint_4FAA34; // weak
int amuint_4FAA38; // weak
int amuint_4FAA3C_blt_xy[2];
int am_uint_4FAA44_blt_xy[2];
int amuint_4FAA4C; // weak
unsigned int uCardID; // idb
int amuint_4FAA54_blt_xy[2];
int amuint_4FAA5C_blt_xy[2];
int dword_4FAA64; // weak
int dword_4FAA68; // weak
int amuint_4FAA6C; // idb
int dword_4FAA70; // weak
char byte_4FAA74; // weak
char am_byte_4FAA75; // weak
char am_byte_4FAA76; // weak
char am_byte_4FAA77; // weak
int amuint_4FAA78[777]; // weak
char am_byte_4FAA7C[777]; // weak
int amuint_4FAA80[777]; // weak
int amuint_4FAA84[777]; // weak
int amuint_4FAA88[777]; // weak
int amuint_4FAA8C[777]; // weak
int amuint_4FAA90[777][2];
int dword_4FABB8; // weak
signed int dword_4FABBC; // idb
unsigned int amuint_4FABC0; // idb
int amuint_4FABC4; // weak
int dword_4FABC8; // weak
char byte_4FABD0[777]; // weak
char byte_4FABD1[777]; // weak
_UNKNOWN unk_4FABD4; // weak
int dword_4FABD8[777]; // weak
int dword_4FABDC[777]; // weak
int dword_4FABE0[777]; // weak
int dword_4FABE4[777]; // weak
int dword_4FABE8[777]; // weak
int dword_4FABEC[777]; // weak
int dword_4FABF0[777]; // weak
int dword_4FABF4[777]; // weak
int dword_4FABF8[777]; // weak
int dword_4FABFC[777]; // weak
int dword_4FAC00[777]; // weak
int dword_4FAC04[777]; // weak
int dword_4FAC08[777]; // weak
int dword_4FAC0C[777]; // weak
_UNKNOWN unk_5052C8; // weak
int dword_505314[777]; // weak
char byte_5054C8[32]; // idb
char byte_5054E8[108];
int dword_505554[777]; // weak
_UNKNOWN unk_505704; // weak
char byte_505880; // weak
char byte_505881; // weak
int amuint_505884; // weak
int amuint_505888; // weak
int amuint_50588C; // weak
int dword_505890; // weak
unsigned int pSRZBufferLineOffsets[480];
int areWeLoadingTexture; // weak
char byte_506130[777]; // weak
int dword_506338; // weak
int dword_50633C; // idb
signed int sRecoveryTime; // idb
unsigned int uRequiredMana; // idb
int _506348_current_lloyd_playerid; // weak
__int64 qword_506350; // weak
char byte_506360; // weak
int dword_506364; // weak
Texture *dword_506404[12]; // weak
Texture *dword_50640C[12]; // weak
unsigned int uTextureID_506438;
int dword_50651C; // weak
int dword_506520; // weak
int dword_506524; // weak
int dword_506528; // weak
int dword_50652C; // weak
int dword_506530; // weak
int dword_506534; // weak
int dword_506538; // weak
int dword_50653C; // weak
int dword_506540; // weak
int dword_506544; // weak
int dword_506548; // weak
int dword_50654C; // weak
char byte_506550; // weak
char *aMoonPhaseNames[5];
int dword_506568; // weak
char bRecallingBeacon; // weak
int uLastPointedObjectID; // weak
//unsigned __int8 bMonsterInfoUI_bDollInitialized;
char *aSpellNames[44];
int pMainScreenNum; // weak
char byte_50697C; // weak
int dword_506980; // weak
int dword_506984; // weak
int dword_506988; // weak
int dword_50698C; // weak
int dword_506E68; // weak
char KeyButtonFlagChangesArray[28]; // weak
unsigned int pPrevVirtualCidesMapping[27];
int KeyboardPageNum; // weak
int dword_506F0C[777]; // idb
int uRestUI_FoodRequiredToRest;
int dword_506F14; // weak
int _506F18_num_hours_to_sleep; // weak
int dword_506F1C; // weak
int pVisibleWindowsIdxs[20]; // weak
int uNumVisibleWindows;
char bFlashHistoryBook; // weak
char bFlashAutonotesBook; // weak
char bFlashQuestBook; // weak
int dword_507960; // weak
int dword_507964; // weak
int dword_507968; // weak
int dword_50796C; // weak
int uTextureID_Btn_QuickReference; // weak
int dword_5079B4; // weak
int dword_5079C8; // weak
int dword_5079CC; // weak
int dword_5079D0; // weak
int dword_5079D8; // weak
struct GUIButton *pBtn_ZoomOut; // idb
struct GUIButton *pBtn_ZoomIn; // idb
unsigned int uGameUIFontShadow;
unsigned int uGameUIFontMain;
int dword_507B00_spell_info_to_draw_in_popup; // weak
char *aMonthNames[12];
char *aDayNames[7];
char *aSpellSchoolNames[9];
char *aAttributeNames[7];
int dword_507B94; // weak
int dword_507B98_ctrl_pressed; // weak
unsigned int uActiveCharacter;
int dword_507BF0_is_there_popup_onscreen; // weak
int dword_507C08; // weak
int dword_507C0C; // weak
int dword_507CBC; // weak
int dword_507CC0; // weak
__int64 qword_507CC8; // weak
int _507CD4_RestUI_hourglass_anim_controller; // weak
int dword_507CD8; // weak
int dword_50B570[777]; // weak
int dword_50B638[777]; // weak
int dword_50B700; // weak
int dword_50B738[777]; // idb
int _50B744_view_transformed_ys[43];
int dword_50B828[777];
int _50B834_view_transformed_zs[43];
int dword_50B918[777];
int _50B924_view_transformed_xs[43];
int unk_50B9D4[777]; // idb
int dword_50B9D8_ys[777];
int dword_50B9E0_ys[777]; // idb
int dword_50B9EC[777]; // idb
int dword_50B9F0[2]; // idb
int dword_50BAE8_xs[777];
int dword_50BAF4_xs[777];
int dword_50B9F8[777]; // idb
int dword_50BA08[777]; // idb
int dword_50BAC4[777]; // weak
int dword_50BAC8[777]; // idb
int dword_50BAD0[777]; // weak
int dword_50BAD4[777]; // weak
int dword_50BADC_xs[777]; // weak
int dword_50BAE0[777]; // weak
int dword_50BAE8[777]; // weak
int dword_50BAEC_xs[777]; // weak
int dword_50BAF4[777]; // weak
int dword_50BAF8_xs[777]; // weak
int dword_50BC10[777]; // weak
int dword_50BDA0[777]; // weak
int dword_50BF30[777]; // weak
char byte_50C0C0; // weak
int some_active_character; // weak
_UNKNOWN unk_50C190; // weak
int dword_50C968; // weak
unsigned int pIconIDs_Turn[5];
unsigned int uIconID_TurnStop;
unsigned int uIconID_TurnHour;
int uIconID_CharacterFrame; // idb
int dword_50C98C; // weak
unsigned int uIconID_TurnStart;
int dword_50C994; // weak
int dword_50C998_turnbased_icon_1A; // weak
int uSpriteID_Spell11; // idb
_UNKNOWN unk_50C9A0; // weak
int dword_50C9A8; // weak
int dword_50C9AC; // weak
int dword_50C9D0; // weak
int dword_50C9D4; // weak
int dword_50C9D8; // weak
int dword_50C9DC; // weak
struct NPCData *ptr_50C9E0;
int dword_50C9E8; // idb
int dword_50C9EC[120]; // weak
int dword_50CDC8;
int dword_50CDCC; // weak
int bProcessorIsNotIntel; // weak
Vec3_int_ layingitem_vel_50FDFC;
char pStartingMapName[777]; // idb
unsigned __int8 IsPlayerWearingWatersuit[5];
char byte_5111C0[54];
char byte_5111F6[18];
unsigned int papredoll_dbrds[16];
unsigned int papredoll_drhs[4];
unsigned int papredoll_dlhus[4];
unsigned int papredoll_dlhs[4];
unsigned int papredoll_dbods[5];
int paperdoll_array_511290[4][17][3];
unsigned int papredoll_dlaus[5];
unsigned int papredoll_dlads[4];
int papredoll_flying_feet[777]; // idb
int dword_511638[4][6];
int dword_511788[777]; // weak
int dword_51179C; // weak
int dword_5117A0; // weak
int dword_5117A4; // weak
int dword_5117A8; // weak
int dword_5117AC; // weak
int paperdoll_array_511828[4][10];
int bRingsShownInCharScreen; // weak
int _unused000; // weak

unsigned __int16 pOdmMinimap[117][137];
unsigned int uNumBlueFacesInBLVMinimap;
unsigned __int16 pBlueFacesInBLVMinimapIDs[50];
int pTextureIDs_isns[14];
unsigned int uIconIdx_Spell21;
unsigned int uIconIdx_Spell27;
int dword_576E28; // weak
int dword_576E2C; // weak
__int64 _5773B8_event_timer; // weak
int dword_5773C0; // weak

int dword_591080; // weak
int dword_591084; // weak
struct Actor *pDialogue_SpeakingActor;
unsigned int uDialogueType;
unsigned int uDialogue_SpeakingActorNPC_ID;
struct LevelDecoration *_591094_decoration;
char sHouseName[200]; // idb
int uCurrentHouse_Animation; // weak
char *dword_591164_teleport_map_name; // idb
int dword_591168_teleport_speedz; // weak
int dword_59116C_teleport_directionx; // weak
int dword_591170_teleport_directiony; // weak
int dword_591174_teleportz; // weak
int dword_591178_teleporty; // weak
int dword_59117C_teleportx; // weak
char byte_591180[600]; // idb
struct NPCData *HouseNPCData[6];//array_5913D8
int pDialogueNPCCount;
struct Texture *pDialogueNPCPortraits[6];
int uNumDialogueNPCPortraits; // weak
struct Texture *pTexture_591428;
struct Texture *pTexture_outside; // idb
struct Texture *pTexture_Dialogue_Background;
_UNKNOWN unk_597F10; // weak
int start_event_seq_number; // weak
char byte_5B0938[2000];
int EvtTargetObj; // 0x5B5920
int _unused_5B5924_is_travel_ui_drawn = false; // 005B5924
int _5B65A8_npcdata_uflags_or_other; // weak
int _5B65AC_npcdata_fame_or_other; // weak
int _5B65B0_npcdata_rep_or_other; // weak
int _5B65B4_npcdata_loword_house_or_other; // weak
int _5B65B8_npcdata_hiword_house_or_other; // weak
int dword_5B65BC; // weak
int dword_5B65C0; // weak
int dword_5B65C4; // weak
int dword_5B65C8_timers_count; // weak
int dword_5B65CC; // weak
int dword_5B65D0_dialogue_actor_npc_id; // weak
int dword_5C3418; // weak
int dword_5C341C; // weak
char byte_5C3427[777]; // weak
char GameUI_StatusBar_TimedString[200];
char pStatusBarString[200];
unsigned int GameUI_StatusBar_TimedStringTimeLeft;
int bForceDrawStatusBar; // weak
int dword_5C35C0; // weak
int bDialogueUI_InitializeActor_NPC_ID; // weak
int dword_5C35C8; // weak
char *p2DEventsTXT_Raw;
int uHouse_ExitPic; // weak
int dword_5C35D4; // weak
char *aAMPMNames[2];
char byte_5C45AF[777]; // weak

char pFinalMessage[4096]; // idb
char pTmpBuf[2000];
char pTmpBuf2[2000];
char byte_5C6D50[777]; // weak
int ui_current_text_color; // weak
__int64 qword_5C6DF0; // weak
int dword_5C6DF8; // weak
char item__getname_buffer[104]; // idb
char *pClassDescriptions[36];
char *pAttributeDescriptions[7];
char *pGrandSkillDesc[38];
char *pMasterSkillDesc[38];
char *pExpertSkillDesc[38];
char *pNormalSkillDesc[38];
char *pSkillDesc[38];
char *pHealthPointsAttributeDescription;
char *pSpellPointsAttributeDescription;
char *pArmourClassAttributeDescription;
char *pPlayerConditionAttributeDescription; // idb
char *pFastSpellAttributeDescription;
char *pPlayerAgeAttributeDescription;
char *pPlayerLevelAttributeDescription;
char *pPlayerExperienceAttributeDescription;
char *pAttackBonusAttributeDescription;
char *pAttackDamageAttributeDescription;
char *pMissleBonusAttributeDescription;
char *pMissleDamageAttributeDescription;
char *pFireResistanceAttributeDescription;
char *pAirResistanceAttributeDescription;
char *pWaterResistanceAttributeDescription;
char *pEarthResistanceAttributeDescription;
char *pMindResistanceAttributeDescription;
char *pBodyResistanceAttributeDescription;
char *pSkillPointsAttributeDescription;
char *pClassTXT_Raw;
char *pStatsTXT_Raw;
char *pSkillDescTXT_Raw;

struct FactionTable *pFactionTable;
char byte_5C8D1A[777]; // weak

char byte_5E4C15[777]; // weak
char *pSomeItemsNames[14];

char *pMonstersTXT_Raw;
char *pMonsterPlacementTXT_Raw;
char *pSpellsTXT_Raw;
char *pMapStatsTXT_Raw;
char *pHostileTXT_Raw;
char *pPotionsTXT_Raw;
char *pPotionNotesTXT_Raw;

int _6807B8_level_decorations_ids[777]; // idb
int _6807E0_num_decorations_with_sounds_6807B8; // weak
int _6807E8_level_decorations_ids[777]; // idb
int _6836C8_num_decorations_6807E8; // weak
int dword_69B010[64];
float flt_69B138_dist; // weak
char byte_69BD41_unused; // weak
unsigned int uTextureID_x_u;
unsigned int uTextureID_LS_saveU;
unsigned int uTextureID_LS_loadU;
unsigned int uTextureID_AR_DN_DN;
unsigned int uTextureID_AR_UP_DN;
unsigned int uTextureID_LS_;
unsigned int uTextureID_x_d;
unsigned int uTextureID_save_up;
unsigned int uTextureID_load_up;
unsigned int uTextureID_loadsave;
_UNKNOWN _69FBB4_ptr_iterator_end; // weak
_UNKNOWN unk_6A0758; // weak
int pSaveListPosition; // weak
unsigned int uLoadGameUI_SelectedSlot;
HWND hInsertCDWindow; // idb
int uCPUSpeed; // weak
char cMM7GameCDDriveLetter; // idb
void *ptr_6A0D08;
int _6A0D0C_txt_lod_loading; // weak
int _6A0D10_txt_lod_loading__unused; // weak
MENU_STATE uCurrentMenuID;
unsigned int uGameState;
int uDefaultTravelTime_ByFoot; // weak
int day_attrib; // weak
int day_fogrange_1; // weak
int day_fogrange_2; // weak
struct TileTable *pTileTable; // idb
int texmapping_terrain_subdivsize; // weak
int texmapping_terrain_subdivpow2; // weak
int texmapping_building_subdivsize; // weak
int texmapping_building_subdivpow2; // weak
int unnamed_6BE060[2] = {0, 1};
int mipmapping_building_mm1; // weak
int mipmapping_building_mm2; // weak
int mipmapping_building_mm3; // weak
int mipmapping_terrain_mm1; // weak
int mipmapping_terrain_mm2; // weak
int mipmapping_terrain_mm3; // weak
int outdoor_grid_band_1; // idb
int outdoor_grid_band_2; // idb
int outdoor_grid_band_3; // idb
char outdoor_day_top_r; // weak
char outdoor_day_top_g; // weak
char outdoor_day_top_b; // weak
char outdoor_day_bottom_r; // weak
char outdoor_day_bottom_g; // weak
char outdoor_day_bottom_b; // weak
char outdoor_night_top_r; // weak
char outdoor_night_top_g; // weak
char outdoor_night_top_b; // weak
char outdoor_night_bottom_r; // weak
char outdoor_night_bottom_g; // weak
char outdoor_night_bottom_b; // weak
char pDefaultSkyTexture[777]; // idb
char byte_6BE124_cfg_textures_DefaultGroundTexture[16]; // idb
int _6BE134_odm_main_tile_group; // weak
int dword_6BE138; // weak
int dword_6BE13C_uCurrentlyLoadedLocationID; // weak
float fWalkSpeedMultiplier = 1.0f; // weak
float fBackwardWalkSpeedMultiplier = 1.0f; // weak
float fTurnSpeedMultiplier = 1.0f; // weak
float flt_6BE150_look_up_down_dangle = 1.0f; // weak
HWND hWnd; // idb
int uWindowWidth; // idb
int uWindowHeight; // idb
int uWindowX; // idb
int uWindowY; // idb
LONG uWindowStyle; // idb
HMENU hOSMenu; // idb
int dword_6BE340; // weak
char pCurrentMapName[20]; // idb
unsigned int uLevelMapStatsID;
int uLevel_StartingPointType; // weak
int dword_6BE364_game_settings_1 = 0; // weak
int dword_6BE368_debug_settings_2 = 0; // weak
unsigned __int8 bUseLoResSprites = false;
unsigned __int8 bUseRegistry = true;
unsigned __int8 bCanLoadFromCD = false;
int bShowDamage; // idb
unsigned int bAlwaysRun;
unsigned int bFlipOnExit;
int dword_6BE384_2dacceloff; // weak
char byte_6BE388_graphicsmode; // weak
unsigned int uTurnSpeed;
float flt_6BE3A0; // weak
float flt_6BE3A4_debug_recmod1;
float flt_6BE3A8_debug_recmod2;
float flt_6BE3AC_debug_recmod1_x_1_6;
char byte_6BE3B0[20]; // idb
char bUnderwater = false; // weak
char bNoNPCHiring = false; // weak
int _702AC0_unused = 0; // weak
int _702AC4_unused = 0; // weak
char _702ACC_unused = 0; // weak
int bDebugResouces; // weak
unsigned int bNoVideo = false;
bool bNoIntro = false;
bool bNoLogo = false;
bool bNoCD = false;
bool bNoSound = false;
int aborting_app; // weak
int dword_720020_zvalues[100];
int dword_7201B0_zvalues[299];
int dword_72065C[777]; // weak
int dword_720660[777]; // idb
int dword_7207EC[777]; // weak
int dword_7207F0[777]; // idb
int uTextureID_720980; // weak
int _720984_unused; // weak
char _72098C_unused; // weak
__int16 word_7209A0_intercepts_ys_plus_ys[104];
__int16 word_720A70_intercepts_xs_plus_xs[104];
__int16 word_720B40_intercepts_zs[104];
__int16 word_720C10_intercepts_xs[102];
int dword_720CDC;
__int16 word_720CE0_ys[777]; // idb
__int16 word_720DB0_xs[777]; // idb
int dword_720E80[20];
int dword_720ED0[20];
int dword_720F20[20];
__int16 word_720F70[777]; // idb
__int16 word_721040[777]; // idb
int dword_721110[777]; // idb
int dword_721160[777]; // idb
int dword_7211B0[777]; // idb
int dword_721200[777]; // idb
int dword_7212C8[777]; // idb
__int16 word_721390[104]; // idb
__int16 word_721460[104]; // idb
int blv_prev_party_x; // weak
int blv_prev_party_z; // weak
int blv_prev_party_y; // weak
char *dword_721660; // idb
char *dword_721664; // idb
NPCTopic pNPCTopics[789];
char *dword_722F10; // idb
const char *pQuestTable[512];
_UNKNOWN unk_723714; // weak
char *dword_723718_autonote_related; // idb
int dword_72371C[777]; // weak
const char *pScrolls[82];
int dword_723E80_award_related[777]; // weak
int dword_723E84[777]; // weak
int dword_7241C8; // weak
struct unk_F7B60C stru_73C834; // struct @ MM7.exe::0073C834
struct NPCStats *pNPCStats = nullptr;
char *aNPCProfessionNames[59];
char *pAwardsTXT_Raw;
char *pScrollsTXT_Raw;
char *pMerchantsTXT_Raw;
const char *pMerchantsBuyPhrases[7];
const char *pMerchantsSellPhrases[7];
const char *pMerchantsRepairPhrases[7];
const char *pMerchantsIdentifyPhrases[7];
char *pTransitionsTXT_Raw;
char *pAutonoteTXT_Raw;
char *pQuestsTXT_Raw;
 unsigned int    uNumTerrainNormals;
 struct Vec3_float_ *pTerrainNormals;
 unsigned short  pTerrainNormalIndices[128 * 128 * 2];
 unsigned int    pTerrainSomeOtherData[128 * 128 * 2];
int dword_76D518_terrain_cell_world_pos_around_party_y; // weak
int dword_76D51C_terrain_cell_world_pos_around_party_y; // weak
int dword_76D520_terrain_cell_world_pos_around_party_y; // weak
int dword_76D524_terrain_cell_world_pos_around_party_y; // weak
int dword_76D528_terrain_cell_world_pos_around_party_z; // weak
int dword_76D52C_terrain_cell_world_pos_around_party_z; // weak
int dword_76D530_terrain_cell_world_pos_around_party_z; // weak
int dword_76D534_terrain_cell_world_pos_around_party_z; // weak
int dword_76D538_terrain_cell_world_pos_around_party_x; // weak
int dword_76D53C_terrain_cell_world_pos_around_party_x; // weak
int dword_76D540_terrain_cell_world_pos_around_party_x; // weak
int dword_76D544_terrain_cell_world_pos_around_party_x; // weak
//int dword_76D548_terrain_cell_world_pos_around_party_y; // weak
//int dword_76D54C_terrain_cell_world_pos_around_party_y; // weak
//int dword_76D550_terrain_cell_world_pos_around_party_y; // weak
//int dword_76D554_terrain_cell_world_pos_around_party_y; // weak
//int dword_76D558_terrain_cell_world_pos_around_party_z; // weak
//int dword_76D55C_terrain_cell_world_pos_around_party_z; // weak
//int dword_76D560_terrain_cell_world_pos_around_party_z; // weak
//int dword_76D564_terrain_cell_world_pos_around_party_z; // weak
//int dword_76D568_terrain_cell_world_pos_around_party_x; // weak
//int dword_76D56C_terrain_cell_world_pos_around_party_x; // weak
//int dword_76D570_terrain_cell_world_pos_around_party_x; // weak
//int dword_76D574_terrain_cell_world_pos_around_party_x; // weak
struct unk_F7B60C stru_76D578; // struct @ MM7.exe::0076D578
struct unk_F7B60C stru_76D590; // struct @ MM7.exe::0076D590
struct unk_F7B60C stru_76D5A8; // struct @ MM7.exe::0076D5A8
char byte_76D5C0; // weak
int terrain_76D5C8[128];
int terrain_76D7C8[128];
int terrain_76D9C8[128];
int terrain_76DBC8[128];
int terrain_76DDC8[128];
int terrain_76DFC8[128];
int terrain_76E1C8[128];
int terrain_76E3C8[128];

_UNKNOWN unk_801A00; // weak
_UNKNOWN unk_801A0C; // weak
char byte_80AA10; // weak
int dword_80AA14; // weak
int dword_80AA18; // weak
int dword_80AA1C; // weak
int dword_80AA20; // weak
unsigned int uNumElementsIn80AA28;
struct stru148 *ptr_80AA28[2000];
struct Edge *pNewEdges;
struct Surf *pSurfs;
struct Edge *pEdges;
struct Span *pSpans;
struct Edge *ptr_80C978_Edges;
struct Surf *ptr_80C97C_Surfs;
struct Edge *ptr_80CA10[480];
_UNKNOWN unk_80D190; // weak
int dword_A74C88; // weak
unsigned int uPlayerCreationUI_SkySliderPos;
int uPlayerCreationUI_ArrowAnim;
unsigned int uPlayerCreationUI_SelectedCharacter;
int dword_A74CDC; // weak
struct Texture *pTexture_PlayerFaceMask;
struct Texture *pTexture_PlayerFaceEradicated;
struct Texture *pTexture_PlayerFaceDead;
struct Texture *pTextures_PlayerFaces[4][56];
int dword_A75070; // weak
struct Player *pPlayers[5];
__int64 qword_A750D8; // weak
__int16 word_A750E0; // weak
__int16 word_A750E2; // weak
char *pClassNames[36];
char *aCharacterConditionNames[19];
char *pSkillNames[38];
char byte_AE3368[777]; // weak
char byte_AE3369; // weak
char byte_AE336A; // weak
char byte_AE336B; // weak
int dword_AE336C; // weak
int dword_AE3370; // weak
char byte_AE5B91; // weak
int dword_F1B430[32]; // weak
int dword_F8B144; // idb
char byte_F8B148[16];
__int16 word_F8B158[777]; // weak
struct Texture *dword_F8B164; // idb
struct Texture *ItemsInShopTexture[12];
int in_current_building_type; // 0xF8B198
int dword_F8B19C; // weak
__int16 word_F8B1A0; // weak
const char *dword_F8B1A4; // idb
int contract_approved; // weak
int dword_F8B1AC_something_todo_with_awards; // idb
int dword_F8B1B0; // weak
int gold_transaction_amount; // F8B1B4
char *pShopOptions[4];
_UNKNOWN unk_F8B1C8; // weak
int dword_F8B1D8; // weak
int dword_F8B1DC; // weak
int dword_F8B1E0; // weak
int dword_F8B1E4; // weak
const char *ptr_F8B1E8; // idb
char dialogue_show_profession_details = false; // F8B1EC
char byte_F8B1EF[777]; // weak
char byte_F8B1F0[4];
int dword_F8B1F4; // weak
_UNKNOWN unk_F8B1F8; // weak
_UNKNOWN unk_F8B5E0; // weak
char array_F8B668[1000]; // weak
//_UNKNOWN unk_F8BA50; // weak
char byte_F8BC0C; // weak
int bGameoverLoop = 0; // weak
__int16 word_F8BC48_displaced_face_intersect_plane_coords_a[104]; // idb
__int16 word_F8BD18_displaced_face_intersect_plane_coords_b[104]; // idb
int dword_F93F20; // weak
int dword_F93F70; // weak

volatile bool initing;

//int crt_F94004; // weak
//int crtdword_F9400C; // weak
FARPROC lpfn; // idb