diff mm7_data.cpp @ 1205:8c02e6f74b29

arrays to std::arrays phase 2 - mm7_data.h converted
author Grumpy7
date Sun, 09 Jun 2013 00:30:48 +0200
parents 1eed3e0ab666
children ab6560001f5b
line wrap: on
line diff
--- a/mm7_data.cpp	Sat Jun 08 21:47:29 2013 +0200
+++ b/mm7_data.cpp	Sun Jun 09 00:30:48 2013 +0200
@@ -345,10 +345,10 @@
 
 
 
-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};
+std::array<unsigned int, 2> saveload_dlg_xs = {82, 0};
+std::array<unsigned int, 2> saveload_dlg_ys = {60, 0};
+std::array<unsigned int, 2> saveload_dlg_zs = {460, 640};
+std::array<unsigned int, 2> saveload_dlg_ws = {344, 480};
 int pWindowList_at_506F50_minus1_indexing[1];
 int dword_4C9890[10]; // weak
 int dword_4C9920[16]; // weak
@@ -360,7 +360,7 @@
 int (__stdcall *off_4DAFDC)(char); // weak
 char asc_4DB724[777]; // idb
 int dword_4DBD94; // weak
-int dword_4DF380[5]={0,1024,2560,5120,10240}; // weak
+std::array<int, 5> dword_4DF380 = {{0,1024,2560,5120,10240}}; // weak
 //int dword_4DF390; // weak
 char Str2[777]; // idb
 
@@ -385,19 +385,19 @@
 char aIcons[777]; // idb
 char aPending[777]; // idb
 char aCanTFindS[777]; // idb
-char *spellbook_texture_filename_suffices[9] = {"f", "a", "w", "e", "s", "m", "b", "l", "d"}; // weak
+std::array<char *, 9> spellbook_texture_filename_suffices = {{"f", "a", "w", "e", "s", "m", "b", "l", "d"}}; // weak
 //__int16 word_4E1D3A[777]; // weak
-__int16 pTownPortalBook_xs[6] = {260, 324, 147, 385, 390,  19};
-__int16 pTownPortalBook_ys[6] = {206,  84, 182, 239,  17, 283};
-__int16 pTownPortalBook_ws[6] = { 80,  66,  68,  72,  67,  74};
-__int16 pTownPortalBook_hs[6] = { 55,  56,  65,  67,  67,  59};
+std::array<__int16, 6> pTownPortalBook_xs = {{260, 324, 147, 385, 390,  19}};
+std::array<__int16, 6> pTownPortalBook_ys = {{206,  84, 182, 239,  17, 283}};
+std::array<__int16, 6> pTownPortalBook_ws = {{ 80,  66,  68,  72,  67,  74}};
+std::array<__int16, 6> pTownPortalBook_hs = {{ 55,  56,  65,  67,  67,  59}};
 
 
-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
+std::array<unsigned int, 5> pLloydsBeaconsPreviewXs = {{61, 281,  61, 281, 171}}; // 004E249C
+std::array<unsigned int, 5> pLloydsBeaconsPreviewYs = {{84,  84, 228, 228, 155}};
+std::array<unsigned int, 5> pLloydsBeacons_SomeXs = {{59, 279, 59, 279, 169}};
+std::array<unsigned int, 5> pLloydsBeacons_SomeYs = {{82, 82, 226, 226, 153}};
+std::array<char, 7> aSbwb00; // weak
 char aW[2]; // idb
 char aA[2]; // idb
 char aSD[777]; // idb
@@ -476,19 +476,19 @@
 char aS100110D02dSS[777]; // idb
 int pCurrentScreen = SCREEN_VIDEO; // 004E28F8
 unsigned int uGammaPos;
-int BtnTurnCoord[8] = 
-{
+std::array<int, 8> BtnTurnCoord = 
+{{
   0xA4, 0x5D, 0x16, 0xB, 0x5, 0xD, 0x7, 0x3B,
-}; // weak
-__int16 RightClickPortraitXmin[4]={0x14, 0x83, 0xF2, 0x165};
-__int16 RightClickPortraitXmax[4]={0x53, 0xC6, 0x138, 0x1A7};
+}}; // weak
+std::array<__int16, 4> RightClickPortraitXmin={{0x14, 0x83, 0xF2, 0x165}};
+std::array<__int16, 4> RightClickPortraitXmax={{0x53, 0xC6, 0x138, 0x1A7}};
 void *off_4E2A12; // stat_string_control_button_count
 
-unsigned int pHealthBarPos[4] = {22, 137, 251, 366};
-unsigned int pManaBarPos[4] = {102, 217, 331, 447};
-char _4E2B21_buff_spell_tooltip_colors[80];
-unsigned char monster_popup_y_offsets[88] =
-{
+std::array<unsigned int, 4> pHealthBarPos = {{22, 137, 251, 366}};
+std::array<unsigned int, 4> pManaBarPos = {{102, 217, 331, 447}};
+std::array<char, 80> _4E2B21_buff_spell_tooltip_colors;
+std::array<unsigned char, 88> monster_popup_y_offsets =
+{{
   236,  20,   0, 216,   0,   0,   0,   0,   0,   0, 206,
    20,   0, 246, 246, 236,  10, 246,   0,   0,   0, 236,
    10, 246,   0,   0,   0, 236, 246,   0,   0,   0, 216,
@@ -497,7 +497,7 @@
    20,  10,  10,  10,  10,  10,  10, 166, 196, 216, 236,
   236, 176, 246,   0,   0, 216,   0,   0,   0, 236,  10,
     0,   0,   0,   0,   0,   0, 196,   0,   0,   0,   0
-};
+}};
 unsigned char hourglass_icon_idx = 12; // weak
 
 
@@ -508,53 +508,53 @@
 const char *format_4E2E10 = "%s\f%05u\t110%d\f00000 / %d\n";
 __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];
+std::array<int, 6> dword_4E4560;
+std::array<int, 6> dword_4E4578;
+std::array<int, 6> dword_4E4590;
+std::array<int, 6> dword_4E45A8;
 _UNKNOWN dword_4E49D4; // idb
 int dword_4E4A18[777]; // weak
 int dword_4E4A1C[777]; // weak
 int dword_4E4A40[777]; // weak
 int dword_4E4A44[777]; // weak
-float flt_4E4A80[10];
+std::array<float, 10> flt_4E4A80;
 
 
-int pPartySpellbuffsUI_XYs[14][2] =
-{
+std::array< std::array<int, 2>, 14> pPartySpellbuffsUI_XYs =
+{{
   {477, 247}, {497, 247}, {522, 247}, {542, 247}, {564, 247}, {581, 247}, {614, 247},
   {477, 279}, {497, 279}, {522, 279}, {542, 279}, {564, 279}, {589, 279}, {612, 279}
-};
-unsigned char byte_4E5DD8[14] =
-{
+}};
+std::array<unsigned char, 14> byte_4E5DD8 =
+{{
   PARTY_BUFF_FEATHER_FALL, PARTY_BUFF_RESIST_FIRE, PARTY_BUFF_RESIST_AIR, PARTY_BUFF_RESIST_WATER, PARTY_BUFF_RESIST_MIND,           PARTY_BUFF_RESIST_EARTH, PARTY_BUFF_RESIST_BODY,
   PARTY_BUFF_HEROISM,      PARTY_BUFF_HASTE,       PARTY_BUFF_SHIELD,     PARTY_BUFF_STONE_SKIN,   PARTY_BUFF_PROTECTION_FROM_MAGIC, PARTY_BUFF_IMMOLATION,   PARTY_BUFF_DAY_OF_GODS
-};
-unsigned __int8 pPartySpellbuffsUI_smthns[14] =
-{
+}};
+std::array<unsigned __int8, 14> pPartySpellbuffsUI_smthns =
+{{
   14, 1, 10, 4, 7,  2, 9,
    3, 6, 15, 8, 3, 12, 0
-};
+}};
 
-int pNPCPortraits_x[6][6] =     // 004E5E50
-{
+std::array< std::array<int, 6>, 6> pNPCPortraits_x =     // 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
-{
+}};
+std::array< std::array<int, 6>, 6> pNPCPortraits_y =     // 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]=
+}};
+std::array<const char *, 11> pHouse_ExitPictures=
 {
 	"",
 	"ticon01",
@@ -570,7 +570,7 @@
 };
 
 int bWinNT4_0; // weak
-__int16 word_4E8152[11] = {0, 0, 0, 90, 8, 2, 70, 20, 10, 50, 30};
+std::array<__int16, 11> word_4E8152 = {0, 0, 0, 90, 8, 2, 70, 20, 10, 50, 30};
 
 stru355 stru_4E82A4 = {0x20, 0x41, 0, 0x20, 0xFF0000, 0xFF00, 0xFF, 0xFF000000};
 stru355 stru_4EFCBC = {0x20, 0x41, 0, 0x10, 0x7C00, 0x3E0, 0x1F, 0x8000};
@@ -580,20 +580,20 @@
 char byte_4E94D3 = 10; // weak
 int dword_4E98BC_bApplicationActive; // weak
 //char *off_4EB080; // idb
-char *pTransitionStrings[465] = {"", nullptr};  // 004EB080
-const char *pPlayerPortraitsNames[25] =
-{
+std::array<char*, 465> pTransitionStrings = {"", nullptr};  // 004EB080
+std::array<const char*, 25> pPlayerPortraitsNames =
+{{
   "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-"
-};
+}};
 
 
 
-unsigned char byte_4ECF08[48][25] =      // 4ECF08
-{
+std::array< std::array<unsigned char, 25>, 48> byte_4ECF08 =      // 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
@@ -642,7 +642,7 @@
   {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},
@@ -756,9 +756,9 @@
   {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] = 
-{
+std::array<__int16, 4> pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing = {34, 149, 264, 379};
+std::array< std::array<char, 37>, 36> byte_4ED970_skill_learn_ability_by_class_table = 
+{{
  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,
@@ -803,17 +803,17 @@
  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
+}};
+std::array<int, 777> dword_4EDEA0; // weak
+std::array<int, 777> dword_4EDEB4; // weak
+std::array<int, 777> dword_4EDEC4; // weak
 _UNKNOWN unk_4EDF40; // weak
-unsigned int pHiredNPCsIconsOffsetsX[2] = {489, 559};
-unsigned int pHiredNPCsIconsOffsetsY[2] = {152, 152};
-int dword_4EE07C[2]; // weak
+std::array<unsigned int, 2> pHiredNPCsIconsOffsetsX = {489, 559};
+std::array<unsigned int, 2> pHiredNPCsIconsOffsetsY = {152, 152};
+std::array<int, 2> dword_4EE07C; // weak
 _UNKNOWN unk_4EE084; // weak
-__int16 word_4EE088_sound_ids[100] =
-{
+std::array<__int16, 100> word_4EE088_sound_ids =
+{{
       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,
@@ -824,12 +824,12 @@
   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] =
-{
+}};
+std::array<short, 28> word_4EE150 =
+{{
    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
@@ -837,36 +837,36 @@
 int dword_4EFA84; // weak
 void *off_4EFDB0; // weak
 int dword_4F031C[777]; // weak
-const char *off_4F03B8[19] =
-{
+std::array<const char *, 19> off_4F03B8 =
+{{
   "",         "WEPNTABL", "ARMORY",   "MAGSHELF",
   "MAGSHELF", "MAGSHELF", "MAGSHELF", "MAGSHELF",
   "MAGSHELF", "MAGSHELF", "MAGSHELF", "MAGSHELF",
   "MAGSHELF", "MAGSHELF", "MAGSHELF", "MAGSHELF",
   "MAGSHELF", "MAGSHELF", "MAGSHELF"
-};
+}};
 
-int guild_mambership_flags[32]={
+std::array<int, 32> guild_mambership_flags={{
    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 _4F0882_evt_VAR_PlayerItemInHands_vals[54] =
-{
+     56, 56, 59, 59, 60, 60}};
+std::array<__int16, 49> word_4F0754;
+std::array<__int16, 54> _4F0882_evt_VAR_PlayerItemInHands_vals =
+{{
 	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
-};
-unsigned short pMaxLevelPerTrainingHallType[6] = {5, 15, 25, 25, 200, 200};
+}};
+std::array<unsigned short, 6> pMaxLevelPerTrainingHallType = {5, 15, 25, 25, 200, 200};
 
-int price_for_membership[11]={100, 100, 50, 50, 50, 50, 50, 50, 50, 1000, 1000}; // weak
+std::array<int, 11> price_for_membership={100, 100, 50, 50, 50, 50, 50, 50, 50, 1000, 1000}; // weak
 
 
-Vec2_int_ pMonsterArenaPlacements[20];
-__int16 word_4F0F30[32] ={ 4, 7, 10, 11,                                              
+std::array<Vec2_int_, 20> pMonsterArenaPlacements;
+std::array<__int16, 32> word_4F0F30 ={{ 4, 7, 10, 11,                                              
 						   4, 7, 10, 11,
 					       4, 7, 10, 11,
 						   4, 7, 10, 11,
@@ -874,28 +874,28 @@
 					       4, 7, 10, 11,
 					       4, 7, 10, 11,
 					       7, 11,
-						   7, 11};
+                 7, 11}};
 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];
+std::array<int, 777> dword_4F5B24_ys; // idb
+std::array<int, 777> dword_4F5BF4_xs; // idb
+std::array<int, 777> dword_4F5CC4_ys; // idb
+std::array<int, 777> dword_4F5D98_xs; // idb
+std::array<int, 500> ai_array_4F5E68;
+std::array<int, 500> ai_array_4F6638_actor_ids;
+std::array<int, 500> ai_near_actors_targets_pid;
 int ai_arrays_size; // weak
-int ai_near_actors_distances[500];
-unsigned int ai_near_actors_ids[500];
-int dword_4F8580[121]; // weak
+std::array<int, 500> ai_near_actors_distances;
+std::array<unsigned int, 500> ai_near_actors_ids;
+std::array<int, 121> dword_4F8580; // weak
 int dword_4FA9B0[777]; // weak
 int dword_4FA9B4[777]; // weak
 char byte_4FAA00; // weak
-__int16 am_sounds[12];
+std::array<__int16, 12> am_sounds;
 _UNKNOWN unk_4FAA20; // weak
 char byte_4FAA24; // weak
 HWND dword_4FAA28; // idb
@@ -908,8 +908,8 @@
 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];
+std::array<int, 2> amuint_4FAA54_blt_xy;
+std::array<int, 2> amuint_4FAA5C_blt_xy;
 int dword_4FAA64; // weak
 int dword_4FAA68; // weak
 
@@ -918,10 +918,10 @@
 char am_byte_4FAA75; // weak
 char am_byte_4FAA76; // weak
 
-int amuint_4FAA78[777]; // weak
+std::array<int, 777> amuint_4FAA78; // weak
 char am_byte_4FAA7C[777]; // weak
-int amuint_4FAA80[777]; // weak
-int amuint_4FAA84[777]; // weak
+std::array<int, 777> amuint_4FAA80; // weak
+std::array<int, 777> amuint_4FAA84; // weak
 int amuint_4FAA88[777]; // weak
 int amuint_4FAA8C[777]; // weak
 int amuint_4FAA90[777][2];
@@ -957,9 +957,9 @@
 char byte_505881; // weak
 
 int dword_505890; // weak
-unsigned int pSRZBufferLineOffsets[480];
+std::array<unsigned int, 480> pSRZBufferLineOffsets;
 int areWeLoadingTexture; // weak
-char byte_506130[777]; // weak
+std::array<char, 777> byte_506130; // weak
 int dword_506338; // weak
 int dword_50633C; // idb
 signed int sRecoveryTime; // idb
@@ -983,26 +983,26 @@
 int BtnUp_flag; //BtnUp_flag
 int quick_spell_at_page; // weak
 char byte_506550; // weak
-char *aMoonPhaseNames[5];
+std::array<char *, 5> aMoonPhaseNames;
 int _506568_autonote_type; // weak
 char bRecallingBeacon; // weak
 int uLastPointedObjectID; // weak
 //unsigned __int8 bMonsterInfoUI_bDollInitialized;
-char *aSpellNames[44];
+std::array<char *, 44> aSpellNames;
 int pMainScreenNum; // weak
 int dword_506980_uW; // weak
 int dword_506984_uZ; // weak
 int dword_506988_uY; // weak
 int dword_50698C_uX; // weak
 int uGameMenuUI_CurentlySelectedKeyIdx; // 506E68
-unsigned int pPrevVirtualCidesMapping[27];
+std::array<unsigned int, 27> pPrevVirtualCidesMapping;
 int KeyboardPageNum; // weak
-int dword_506F0C[777]; // idb
+std::array<int, 777> dword_506F0C; // idb
 int uRestUI_FoodRequiredToRest;
 int dword_506F14; // weak
 int _506F18_num_hours_to_sleep; // weak
 int dword_506F1C; // weak
-int pVisibleWindowsIdxs[20]; // weak
+std::array<int, 20> pVisibleWindowsIdxs; // weak
 int uNumVisibleWindows;
 char bFlashHistoryBook; // weak
 char bFlashAutonotesBook; // weak
@@ -1022,10 +1022,10 @@
 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];
+std::array<char *, 12> aMonthNames;
+std::array<char *, 7> aDayNames;
+std::array<char *, 9> aSpellSchoolNames;
+std::array<char *, 7> aAttributeNames;
 int dword_507B94; // weak
 int dword_507B98_ctrl_pressed; // weak
 unsigned int uActiveCharacter;
@@ -1035,8 +1035,8 @@
 __int64 GameUI_RightPanel_BookFlashTimer; // weak
 int _507CD4_RestUI_hourglass_anim_controller; // weak
 int dword_507CD8; // weak
-int dword_50B570[50]; // weak
-int dword_50B638[50]; // weak
+std::array<int, 50> dword_50B570; // weak
+std::array<int, 50> dword_50B638; // weak
 stru367 stru_50B700;
 /*int stru_50B700.field_0; // weak
 int stru_50B700.field_38[777]; // idb
@@ -1056,14 +1056,14 @@
 int dword_50BAE8[777]; // weak
 int stru_50B700._xs2[3 + 45]; // weak
 int stru_50B700._xs3[48]; // weak*/
-int dword_50BC10[100]; // weak
-int dword_50BDA0[100]; // weak
-int dword_50BF30[100]; // weak
+std::array<int, 100> dword_50BC10; // weak
+std::array<int, 100> dword_50BDA0; // weak
+std::array<int, 100> dword_50BF30; // weak
 char town_portal_caster_id; // weak
 int some_active_character; // weak
 //_UNKNOWN unk_50C190; // weak
 int dword_50C968; // weak
-unsigned int pIconIDs_Turn[5];
+std::array<unsigned int, 5> pIconIDs_Turn;
 unsigned int uIconID_TurnStop;
 unsigned int uIconID_TurnHour;
 int uIconID_CharacterFrame; // idb
@@ -1085,17 +1085,17 @@
 int dword_50CDCC; // weak
 int bProcessorIsNotIntel; // weak
 Vec3_int_ layingitem_vel_50FDFC;
-char pStartingMapName[777]; // idb
-unsigned __int8 IsPlayerWearingWatersuit[5];
-char party_has_equipment[54];
-char byte_5111F6[16];
+std::array<char, 777> pStartingMapName; // idb
+std::array<unsigned __int8, 5> IsPlayerWearingWatersuit;
+std::array<char, 54> party_has_equipment;
+std::array<char, 16> byte_5111F6;
 
 int _unused000; // weak
 
-unsigned __int16 pOdmMinimap[117][137];
+std::array<std::array<unsigned __int16, 137>, 117> pOdmMinimap;
 unsigned int uNumBlueFacesInBLVMinimap;
-unsigned __int16 pBlueFacesInBLVMinimapIDs[50];
-int pTextureIDs_PartyBuffIcons[14];
+std::array<unsigned __int16, 50> pBlueFacesInBLVMinimapIDs;
+std::array<int, 14> pTextureIDs_PartyBuffIcons;
 unsigned int uIconIdx_FlySpell;
 unsigned int uIconIdx_WaterWalk;
 int dword_576E28; // weak
@@ -1109,7 +1109,7 @@
 unsigned int uDialogueType;
 int sDialogue_SpeakingActorNPC_ID;
 struct LevelDecoration *_591094_decoration;
-char sHouseName[200]; // idb
+std::array<char, 200> sHouseName; // idb
 int uCurrentHouse_Animation; // weak
 char *dword_591164_teleport_map_name; // idb
 int dword_591168_teleport_speedz; // weak
@@ -1118,14 +1118,14 @@
 int dword_591174_teleportz; // weak
 int dword_591178_teleporty; // weak
 int dword_59117C_teleportx; // weak
-char byte_591180[6][100]; // idb
-struct NPCData *HouseNPCData[60];//array_5913D8 this array size temporarily increased to 60 from 6 to work aroud house overflow
+std::array<std::array<char, 100>, 6> byte_591180; // idb
+std::array<struct NPCData *, 60> HouseNPCData;//array_5913D8 this array size temporarily increased to 60 from 6 to work aroud house overflow
 
 struct Texture *pTexture_591428;
 struct Texture *pTexture_outside; // idb
 struct Texture *pTexture_Dialogue_Background;
 _UNKNOWN unk_597F10; // weak
-char byte_5B0938[2000];
+std::array<char, 2000> byte_5B0938;
 int EvtTargetObj; // 0x5B5920
 int _unused_5B5924_is_travel_ui_drawn = false; // 005B5924
 int _5B65A8_npcdata_uflags_or_other; // weak
@@ -1142,9 +1142,9 @@
 int dword_5C3418; // weak
 int dword_5C341C; // weak
 int _5C3420_pDecoration;
-char byte_5C3427[777]; // weak
-char GameUI_Footer_TimedString[200];
-char pFooterString[200];
+std::array<char, 777> byte_5C3427; // weak
+std::array<char, 200> GameUI_Footer_TimedString;
+std::array<char, 200> pFooterString;
 unsigned int GameUI_Footer_TimeLeft;
 int bForceDrawFooter; // weak
 int dword_5C35C0; // weak
@@ -1153,24 +1153,24 @@
 char *p2DEventsTXT_Raw;
 
 int dword_5C35D4; // weak
-char *aAMPMNames[2];
+std::array<char *, 2> aAMPMNames;
 char byte_5C45AF[777]; // weak
 
-char pFinalMessage[4096]; // idb
-char pTmpBuf[2000];
-char pTmpBuf2[2000];
-char byte_5C6D50[100]; // weak
+std::array<char, 4096> pFinalMessage; // idb
+std::array<char, 2000> pTmpBuf;
+std::array<char, 2000> pTmpBuf2;
+std::array<char, 100> byte_5C6D50; // 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];
+std::array<char, 104> item__getname_buffer; // idb
+std::array<char *, 36> pClassDescriptions;
+std::array<char *, 7> pAttributeDescriptions;
+std::array<char *, 38> pGrandSkillDesc;
+std::array<char *, 38> pMasterSkillDesc;
+std::array<char *, 38> pExpertSkillDesc;
+std::array<char *, 38> pNormalSkillDesc;
+std::array<char *, 38> pSkillDesc;
 char *pHealthPointsAttributeDescription;
 char *pSpellPointsAttributeDescription;
 char *pArmourClassAttributeDescription;
@@ -1195,10 +1195,10 @@
 char *pSkillDescTXT_Raw;
 
 struct FactionTable *pFactionTable;
-char byte_5C8D1A[777]; // weak
+std::array<char, 777> byte_5C8D1A; // weak
 
-char byte_5E4C15[777]; // weak
-char *pSomeItemsNames[14];
+std::array<char, 777> byte_5E4C15; // weak
+std::array<char *, 14> pSomeItemsNames;
 
 char *pMonstersTXT_Raw;
 char *pMonsterPlacementTXT_Raw;
@@ -1208,11 +1208,11 @@
 char *pPotionsTXT_Raw;
 char *pPotionNotesTXT_Raw;
 
-int _6807B8_level_decorations_ids[777]; // idb
+std::array<int, 777> _6807B8_level_decorations_ids; // idb
 int _6807E0_num_decorations_with_sounds_6807B8; // weak
-int _6807E8_level_decorations_ids[777]; // idb
+std::array<int, 777> _6807E8_level_decorations_ids; // idb
 int _6836C8_num_decorations_6807E8; // weak
-int dword_69B010[64];
+std::array<int, 64> dword_69B010;
 float flt_69B138_dist; // weak
 char byte_69BD41_unused; // weak
 unsigned int uTextureID_x_u;
@@ -1246,7 +1246,7 @@
 int texmapping_terrain_subdivpow2; // weak
 int texmapping_building_subdivsize; // weak
 int texmapping_building_subdivpow2; // weak
-int unnamed_6BE060[2] = {0, 1};
+std::array<int, 2> unnamed_6BE060 = {{0, 1}};
 int mipmapping_building_mm1; // weak
 int mipmapping_building_mm2; // weak
 int mipmapping_building_mm3; // weak
@@ -1268,8 +1268,8 @@
 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
+std::array<char, 777> pDefaultSkyTexture; // idb
+std::array<char, 16> byte_6BE124_cfg_textures_DefaultGroundTexture; // idb
 int _6BE134_odm_main_tile_group; // weak
 int dword_6BE138; // weak
 int dword_6BE13C_uCurrentlyLoadedLocationID; // weak
@@ -1285,7 +1285,7 @@
 LONG uWindowStyle; // idb
 HMENU hOSMenu; // idb
 int dword_6BE340; // weak
-char pCurrentMapName[20]; // idb
+std::array<char, 20> pCurrentMapName; // idb
 unsigned int uLevelMapStatsID;
 int dword_6BE364_game_settings_1 = 0; // weak
 int dword_6BE368_debug_settings_2 = 0; // weak
@@ -1302,7 +1302,7 @@
 float flt_6BE3A4_debug_recmod1;
 float flt_6BE3A8_debug_recmod2;
 float flt_6BE3AC_debug_recmod1_x_1_6;
-char byte_6BE3B0[20]; // idb
+std::array<char, 20> byte_6BE3B0; // idb
 char bUnderwater = false; // weak
 char bNoNPCHiring = false; // weak
 int _702AC0_unused = 0; // weak
@@ -1315,26 +1315,26 @@
 bool bNoCD = false;
 bool bNoSound = false;
 int aborting_app; // weak
-int dword_720020_zvalues[100];
-int dword_7201B0_zvalues[299];
+std::array<int, 100> dword_720020_zvalues;
+std::array<int, 299> dword_7201B0_zvalues;
 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];
+std::array<__int16, 104> word_7209A0_intercepts_ys_plus_ys;
+std::array<__int16, 104> word_720A70_intercepts_xs_plus_xs;
+std::array<__int16, 104> word_720B40_intercepts_zs;
+std::array<__int16, 102> word_720C10_intercepts_xs;
 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 odm_floor_level[20]; // idb
+std::array<__int16, 777> word_720CE0_ys; // idb
+std::array<__int16, 777> word_720DB0_xs; // idb
+std::array<int, 20> dword_720E80;
+std::array<int, 20> dword_720ED0;
+std::array<int, 20> dword_720F20;
+std::array<__int16, 777> word_720F70; // idb
+std::array<__int16, 777> word_721040; // idb
+std::array<int, 777> dword_721110; // idb
+std::array<int, 777> dword_721160; // idb
+std::array<int, 20> odm_floor_level; // idb
 int blv_prev_party_x; // weak
 int blv_prev_party_z; // weak
 int blv_prev_party_y; // weak
@@ -1342,43 +1342,43 @@
 char *dword_721664; // idb
 NPCTopic pNPCTopics[789];
 char *dword_722F10; // idb
-const char *pQuestTable[512];
+std::array<const char *, 512> pQuestTable;
 _UNKNOWN unk_723714; // weak
 char *dword_723718_autonote_related; // idb
 int dword_72371C[777]; // weak
-const char *pScrolls[82];
+std::array<const char *, 82> pScrolls;
 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
 
-char *aNPCProfessionNames[59];
+std::array<char *, 59> aNPCProfessionNames;
 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];
+std::array<char *, 7> pMerchantsBuyPhrases;
+std::array<char *, 7> pMerchantsSellPhrases;
+std::array<char *, 7> pMerchantsRepairPhrases;
+std::array<char *, 7> pMerchantsIdentifyPhrases;
 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];
+ std::array<unsigned short, 128 * 128 * 2>  pTerrainNormalIndices;
+ std::array<unsigned int, 128 * 128 * 2>    pTerrainSomeOtherData;
 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];
+std::array<int, 128> terrain_76D5C8;
+std::array<int, 128> terrain_76D7C8;
+std::array<int, 128> terrain_76D9C8;
+std::array<int, 128> terrain_76DBC8;
+std::array<int, 128> terrain_76DDC8;
+std::array<int, 128> terrain_76DFC8;
+std::array<int, 128> terrain_76E1C8;
+std::array<int, 128> terrain_76E3C8;
 
 _UNKNOWN unk_801A00; // weak
 _UNKNOWN unk_801A0C; // weak
@@ -1388,14 +1388,14 @@
 int dword_80AA1C; // weak
 int dword_80AA20; // weak
 unsigned int uNumElementsIn80AA28;
-struct stru148 *ptr_80AA28[2000];
+std::array<struct stru148 *, 2000> ptr_80AA28;
 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];
+std::array<struct Edge *, 480> ptr_80CA10;
 _UNKNOWN unk_80D190; // weak
 int dword_A74C88; // weak
 unsigned int uPlayerCreationUI_SkySliderPos;
@@ -1405,34 +1405,34 @@
 struct Texture *pTexture_PlayerFaceMask;
 struct Texture *pTexture_PlayerFaceEradicated;
 struct Texture *pTexture_PlayerFaceDead;
-struct Texture *pTextures_PlayerFaces[4][56];
-struct Player *pPlayers[5];
+std::array< std::array<struct Texture *, 56>, 4> pTextures_PlayerFaces;
+std::array<struct Player *, 5> pPlayers;
 __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
+std::array<char *, 36> pClassNames;
+std::array<char *, 19> aCharacterConditionNames;
+std::array<char *, 38> pSkillNames;
+std::array<char, 777> byte_AE3368; // 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
+std::array<int, 32> dword_F1B430; // weak
 //int dword_F8B144; // nexindex [-1] to the following
-int player_levels[4] = {1, 1, 1, 1};
-__int16 word_F8B158[777]; // weak
+std::array<int, 4> player_levels = {{1, 1, 1, 1}};
+std::array<__int16, 777> word_F8B158; // weak
 struct Texture *ShopTexture; // idb
-struct Texture *ItemsInShopTexture[12];
+std::array<struct Texture *, 12> ItemsInShopTexture;
 __int16 word_F8B1A0; // weak
 const char *dword_F8B1A4; // idb
 int contract_approved; // weak
 int dword_F8B1AC_award_bit_number; // idb
 int dword_F8B1B0; // weak
 int gold_transaction_amount; // F8B1B4
-char *pShopOptions[4];
+std::array<char *, 4> pShopOptions;
 _UNKNOWN unk_F8B1C8; // weak
 int dword_F8B1D8; // weak
 int dword_F8B1DC; // weak
@@ -1440,8 +1440,8 @@
 int dword_F8B1E4; // weak
 const char *current_npc_text; // idb
 char dialogue_show_profession_details = false; // F8B1EC
-char byte_F8B1EF[777]; // weak
-char byte_F8B1F0[4];
+std::array<char, 777> byte_F8B1EF; // weak
+std::array<char, 4> byte_F8B1F0;
 int dword_F8B1F4; // weak
 
 
@@ -1449,8 +1449,8 @@
 //_UNKNOWN unk_F8BA50; // weak
 char byte_F8BC0C; // weak
 int bGameoverLoop = 0; // weak
-__int16 intersect_face_vertex_coords_list_a[104]; // word_F8BC48
-__int16 intersect_face_vertex_coords_list_b[104]; // word_F8BD18
+std::array<__int16, 104> intersect_face_vertex_coords_list_a; // word_F8BC48
+std::array<__int16, 104> intersect_face_vertex_coords_list_b; // word_F8BD18
 int dword_F93F20; // weak
 int dword_F93F70; // weak