diff mm7_data.h @ 1231:182b910c528d

Слияние
author Ritor1
date Sun, 09 Jun 2013 10:18:51 +0600
parents ac1b79c498a8 8c02e6f74b29
children be76a797780e
line wrap: on
line diff
--- a/mm7_data.h	Sun Jun 09 10:16:10 2013 +0600
+++ b/mm7_data.h	Sun Jun 09 10:18:51 2013 +0600
@@ -2,7 +2,7 @@
 #include <string>
 #include "VectorTypes.h"
 #include "OSAPI.h"
-
+#include <array>
 typedef char _UNKNOWN;
 
 
@@ -309,7 +309,7 @@
 extern int (__stdcall *off_4DAFDC)(char); // weak
 extern char asc_4DB724[]; // idb
 extern int dword_4DBD94; // weak
-extern int dword_4DF380[]; // weak
+extern std::array<int, 5> dword_4DF380; // weak
 extern int dword_4DF390; // weak
 extern char Str2[]; // idb
 
@@ -334,18 +334,18 @@
 extern char aIcons[]; // idb
 extern char aPending[]; // idb
 extern char aCanTFindS[]; // idb
-extern char *spellbook_texture_filename_suffices[]; // weak
+extern std::array<char *, 9> spellbook_texture_filename_suffices; // weak
 extern __int16 word_4E1D3A[]; // weak
-extern __int16 pTownPortalBook_xs[6];
-extern __int16 pTownPortalBook_ys[6];
-extern __int16 pTownPortalBook_ws[6];
-extern __int16 pTownPortalBook_hs[6];
-extern unsigned char pSpellbookSpellIndices[9][12]; // 4E2430
-extern unsigned int pLloydsBeaconsPreviewXs[5]; // 004E249C
-extern unsigned int pLloydsBeaconsPreviewYs[5];
-extern unsigned int pLloydsBeacons_SomeXs[5];
-extern unsigned int pLloydsBeacons_SomeYs[5]; // idb
-extern char aSbwb00[7]; // weak
+extern std::array<__int16, 6> pTownPortalBook_xs;
+extern std::array<__int16, 6> pTownPortalBook_ys;
+extern std::array<__int16, 6> pTownPortalBook_ws;
+extern std::array<__int16, 6> pTownPortalBook_hs;
+extern std::array<std::array<unsigned char, 12>, 9> pSpellbookSpellIndices; // 4E2430   from pSpellbookSpellIndices[9][12]
+extern std::array<unsigned int, 5> pLloydsBeaconsPreviewXs; // 004E249C
+extern std::array<unsigned int, 5> pLloydsBeaconsPreviewYs;
+extern std::array<unsigned int, 5> pLloydsBeacons_SomeXs;
+extern std::array<unsigned int, 5> pLloydsBeacons_SomeYs; // idb
+extern std::array<char, 7> aSbwb00; // weak
 extern char aW[2]; // idb
 extern char aA[2]; // idb
 extern char aSD[]; // idb
@@ -424,18 +424,18 @@
 extern char aS100110D02dSS[]; // idb
 extern int pCurrentScreen; // 004E28F8
 extern unsigned int uGammaPos;
-extern int BtnTurnCoord[8];
-extern __int16 RightClickPortraitXmin[4];
-extern __int16 RightClickPortraitXmax[4];
+extern std::array<int, 8> BtnTurnCoord;
+extern std::array<__int16, 4> RightClickPortraitXmin;
+extern std::array<__int16, 4> RightClickPortraitXmax;
 extern void *off_4E2A12; // weak
 //extern int pArmorSkills[5];
 //extern int pWeaponSkills[9];
 //extern int pMiscSkills[12];
 //extern int pMagicSkills[9];
-extern unsigned int pHealthBarPos[4];
-extern unsigned int pManaBarPos[4];
-extern char _4E2B21_buff_spell_tooltip_colors[80];
-extern unsigned char monster_popup_y_offsets[]; // weak
+extern std::array<unsigned int, 4> pHealthBarPos;
+extern std::array<unsigned int, 4> pManaBarPos;
+extern std::array<char, 80> _4E2B21_buff_spell_tooltip_colors;
+extern std::array<unsigned char, 88>  monster_popup_y_offsets; // weak
 extern unsigned char hourglass_icon_idx; // weak
 
 
@@ -446,96 +446,96 @@
 extern const char *format_4E2E10; // format text of resistance in Stats screen
 extern __int16 word_4E3C66[]; // idb
 extern int dword_4E455C; // weak
-extern int dword_4E4560[6];
-extern int dword_4E4578[6];
-extern int dword_4E4590[6];
-extern int dword_4E45A8[6];
+extern std::array<int, 6> dword_4E4560;
+extern std::array<int, 6> dword_4E4578;
+extern std::array<int, 6> dword_4E4590;
+extern std::array<int, 6> dword_4E45A8;
 extern _UNKNOWN dword_4E49D4; // idb
 extern int dword_4E4A18[]; // weak
 extern int dword_4E4A1C[]; // weak
 extern int dword_4E4A40[]; // weak
 extern int dword_4E4A44[]; // weak
-extern float flt_4E4A80[10];
+extern std::array<float, 10> flt_4E4A80;
 
-extern int pPartySpellbuffsUI_XYs[14][2];
-extern unsigned char byte_4E5DD8[]; // weak
-extern unsigned __int8 pPartySpellbuffsUI_smthns[14];
-extern int pNPCPortraits_x[6][6]; // 004E5E50
-extern int pNPCPortraits_y[6][6]; // 004E5EE0
-extern const char *pHouse_ExitPictures[11];
-extern const char *_4E6BDC_loc_names[11];
+extern std::array< std::array<int, 2>, 14> pPartySpellbuffsUI_XYs;
+extern std::array<unsigned char, 14> byte_4E5DD8; // weak
+extern std::array<unsigned __int8, 14> pPartySpellbuffsUI_smthns;
+extern std::array< std::array<int, 6>, 6> pNPCPortraits_x; // 004E5E50
+extern std::array< std::array<int, 6>, 6> pNPCPortraits_y; // 004E5EE0
+extern std::array<const char *, 11> pHouse_ExitPictures;
+extern std::array<const char *, 11> _4E6BDC_loc_names;
 extern int bWinNT4_0; // weak
-extern __int16 word_4E8152[11];
-extern char byte_4E8168[7][14];
+extern std::array<__int16, 11> word_4E8152;
+extern std::array< std::array<char, 14>, 7> byte_4E8168;
 #include "Texture.h"
 extern stru355 stru_4E82A4;// = {0x20, 0x41, 0, 0x20, 0xFF0000, 0xFF00, 0xFF, 0xFF000000};
 extern stru355 stru_4EFCBC;// = {0x20, 0x41, 0, 0x10, 0x7C00, 0x3E0, 0x1F, 0x8000};
 extern char byte_4E94D0; // weak
 extern char _4E94D2_light_type; // weak
 extern char byte_4E94D3; // weak
-extern unsigned int saveload_dlg_xs[2];
-extern unsigned int saveload_dlg_ys[2];
-extern unsigned int saveload_dlg_zs[2];
-extern unsigned int saveload_dlg_ws[2];
+extern std::array<unsigned int, 2> saveload_dlg_xs;
+extern std::array<unsigned int, 2> saveload_dlg_ys;
+extern std::array<unsigned int, 2> saveload_dlg_zs;
+extern std::array<unsigned int, 2> saveload_dlg_ws;
 extern int dword_4E98BC_bApplicationActive; // weak
-extern char *pTransitionStrings[]; // 4EB080
-extern int dword_4EC268[]; // weak
-extern int dword_4EC28C[]; // weak
+extern std::array<char*, 465> pTransitionStrings; // 4EB080
+extern std::array<int, 9> dword_4EC268; // weak
+extern std::array<int, 7> dword_4EC28C; // weak
 extern int dword_4EC2A8; // weak
 extern int dword_4EC2AC; // weak
-extern const char *pPlayerPortraitsNames[25];
+extern std::array<const char*, 25> pPlayerPortraitsNames;
 
-extern unsigned char byte_4ECF08[48][25];
+extern std::array< std::array<unsigned char, 25>, 48> byte_4ECF08;
 extern unsigned char SoundSetAction[110][8]; // weak
-extern __int16 pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[4];
-extern char byte_4ED970_skill_learn_ability_by_class_table[36][37];
-extern int dword_4EDEA0[]; // weak
-extern int dword_4EDEB4[]; // weak
-extern int dword_4EDEC4[]; // weak
+extern std::array<__int16, 4> pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing;
+extern std::array< std::array<char, 37>, 36> byte_4ED970_skill_learn_ability_by_class_table;
+extern std::array<int, 777> dword_4EDEA0; // weak
+extern std::array<int, 777> dword_4EDEB4; // weak
+extern std::array<int, 777> dword_4EDEC4; // weak
 extern _UNKNOWN unk_4EDF40; // weak
-extern unsigned int pHiredNPCsIconsOffsetsX[2];
-extern unsigned int pHiredNPCsIconsOffsetsY[2];
-extern int dword_4EE07C[2]; // weak
+extern std::array<unsigned int, 2> pHiredNPCsIconsOffsetsX;
+extern std::array<unsigned int, 2> pHiredNPCsIconsOffsetsY;
+extern std::array<int, 2> dword_4EE07C; // weak
 extern _UNKNOWN unk_4EE084; // weak
-extern __int16 word_4EE088_sound_ids[]; // weak
-extern short word_4EE150[];
+extern std::array<__int16, 100> word_4EE088_sound_ids; // weak
+extern std::array<short, 28> word_4EE150;
 extern int dword_4EED78; // weak
 extern _UNKNOWN unk_4EED80; // weak
 extern int dword_4EFA80; // weak
 extern int dword_4EFA84; // weak
 extern void *off_4EFDB0; // weak
 extern int dword_4F031C[]; // weak
-extern const char *off_4F03B8[]; // idb
+extern std::array<const char *, 19> off_4F03B8; // idb
 extern __int16 word_4F0576[]; // weak
 
-extern int guild_mambership_flags[32];
-extern __int16 word_4F0754[49];
-extern __int16 _4F0882_evt_VAR_PlayerItemInHands_vals[54];
-extern unsigned short pMaxLevelPerTrainingHallType[];
-extern int price_for_membership[]; // weak
-extern Vec2_int_ pMonsterArenaPlacements[20];
-extern __int16 word_4F0F30[32]; // weak
+extern std::array<int, 32> guild_mambership_flags;
+extern std::array<__int16, 49> word_4F0754;
+extern std::array<__int16, 54> _4F0882_evt_VAR_PlayerItemInHands_vals;
+extern std::array<unsigned short, 6> pMaxLevelPerTrainingHallType;
+extern std::array<int, 11> price_for_membership; // weak
+extern std::array<Vec2_int_, 20> pMonsterArenaPlacements;
+extern std::array<__int16, 32> word_4F0F30; // weak
 extern double dbl_4F2870; // weak
 extern int dword_4F288C; // weak
 extern double dbl_4F5372; // weak
 extern int dword_4F5428[]; // weak
 extern int dword_4F542C[]; // weak
 extern _UNKNOWN crtunk_4F54B8; // weak
-extern int dword_4F5B24_ys[]; // idb
-extern int dword_4F5BF4_xs[]; // idb
-extern int dword_4F5CC4_ys[]; // idb
-extern int dword_4F5D98_xs[]; // idb
-extern int ai_array_4F5E68[500];
-extern int ai_array_4F6638_actor_ids[500];
-extern int ai_near_actors_targets_pid[500];
+extern std::array<int, 777> dword_4F5B24_ys; // idb
+extern std::array<int, 777> dword_4F5BF4_xs; // idb
+extern std::array<int, 777> dword_4F5CC4_ys; // idb
+extern std::array<int, 777> dword_4F5D98_xs; // idb
+extern std::array<int, 500> ai_array_4F5E68;
+extern std::array<int, 500> ai_array_4F6638_actor_ids;
+extern std::array<int, 500> ai_near_actors_targets_pid;
 extern int ai_arrays_size; // weak
-extern int ai_near_actors_distances[500];
-extern unsigned int ai_near_actors_ids[500];
-extern int dword_4F8580[]; // weak
+extern std::array<int, 500> ai_near_actors_distances;
+extern std::array<unsigned int, 500> ai_near_actors_ids;
+extern std::array<int, 121> dword_4F8580; // weak
 extern int dword_4FA9B0[]; // weak
 extern int dword_4FA9B4[]; // weak
 extern char byte_4FAA00; // weak
-extern __int16 am_sounds[12];
+extern std::array<__int16, 12> am_sounds;
 extern _UNKNOWN unk_4FAA20; // weak
 extern char byte_4FAA24; // weak
 extern HWND dword_4FAA28; // idb
@@ -547,8 +547,8 @@
 extern int am_uint_4FAA44_blt_xy[2];
 extern int amuint_4FAA4C; // weak
 extern unsigned int uCardID; // idb
-extern int amuint_4FAA54_blt_xy[2];
-extern int amuint_4FAA5C_blt_xy[2];
+extern std::array<int, 2> amuint_4FAA54_blt_xy;
+extern std::array<int, 2> amuint_4FAA5C_blt_xy;
 extern int dword_4FAA64; // weak
 extern int dword_4FAA68; // weak
 
@@ -557,10 +557,10 @@
 extern char am_byte_4FAA75; // weak
 extern char am_byte_4FAA76; // weak
 
-extern int amuint_4FAA78[777]; // weak
+extern std::array<int, 777> amuint_4FAA78; // weak
 extern char am_byte_4FAA7C[777]; // weak
-extern int amuint_4FAA80[777]; // weak
-extern int amuint_4FAA84[777]; // weak
+extern std::array<int, 777> amuint_4FAA80; // weak
+extern std::array<int, 777> amuint_4FAA84; // weak
 extern int amuint_4FAA88[777]; // weak
 extern int amuint_4FAA8C[777]; // weak
 extern int amuint_4FAA90[777][2];
@@ -592,13 +592,11 @@
 
 extern char byte_505880; // weak
 extern char byte_505881; // weak
-extern int amuint_505884; // weak
-extern int amuint_505888; // weak
-extern int amuint_50588C; // weak
+
 extern int dword_505890; // weak
-extern unsigned int pSRZBufferLineOffsets[480];
+extern std::array<unsigned int, 480> pSRZBufferLineOffsets;
 extern int areWeLoadingTexture; // weak
-extern char byte_506130[]; // weak
+extern std::array<char, 777> byte_506130; // weak
 extern int dword_506338; // weak
 extern int dword_50633C; // idb
 extern signed int sRecoveryTime; // idb
@@ -621,27 +619,27 @@
 extern int BtnUp_flag; //BtnUp_flag
 extern int quick_spell_at_page; // weak
 extern char byte_506550; // weak
-extern char *aMoonPhaseNames[5];
+extern std::array<char *, 5> aMoonPhaseNames;
 extern int _506568_autonote_type; // 506568
 extern char bRecallingBeacon; // weak
 extern int uLastPointedObjectID; // weak
 //extern unsigned __int8 bMonsterInfoUI_bDollInitialized;
-extern char *aSpellNames[44];
+extern std::array<char *, 44> aSpellNames;
 extern int pMainScreenNum; // weak
 extern int dword_506980_uW; // weak
 extern int dword_506984_uZ; // weak
 extern int dword_506988_uY; // weak
 extern int dword_50698C_uX; // weak
 extern int uGameMenuUI_CurentlySelectedKeyIdx; // 506E68
-extern bool GameMenuUI_InvaligKeyBindingsFlags[28]; // 506E6C
-extern unsigned int pPrevVirtualCidesMapping[27];
+extern std::array<bool, 28> GameMenuUI_InvaligKeyBindingsFlags; // 506E6C
+extern std::array<unsigned int, 27> pPrevVirtualCidesMapping;
 extern int KeyboardPageNum; // weak
-extern int dword_506F0C[]; // idb
+extern std::array<int, 777> dword_506F0C; // idb
 extern int uRestUI_FoodRequiredToRest;
 extern int dword_506F14; // weak
 extern int _506F18_num_hours_to_sleep; // weak
 extern int dword_506F1C; // weak
-extern int pVisibleWindowsIdxs[20]; // weak
+extern std::array<int, 20> pVisibleWindowsIdxs; // weak
 extern int uNumVisibleWindows;
 extern char bFlashHistoryBook; // weak
 extern char bFlashAutonotesBook; // weak
@@ -661,10 +659,10 @@
 extern unsigned int uGameUIFontShadow;
 extern unsigned int uGameUIFontMain;
 extern int dword_507B00_spell_info_to_draw_in_popup; // weak
-extern char *aMonthNames[12];
-extern char *aDayNames[7];
-extern char *aSpellSchoolNames[9];
-extern char *aAttributeNames[7];
+extern std::array<char *, 12> aMonthNames;
+extern std::array<char *, 7> aDayNames;
+extern std::array<char *, 9> aSpellSchoolNames;
+extern std::array<char *, 7> aAttributeNames;
 extern int dword_507B94; // weak
 extern int dword_507B98_ctrl_pressed; // weak
 extern unsigned int uActiveCharacter;
@@ -674,8 +672,8 @@
 extern __int64 GameUI_RightPanel_BookFlashTimer; // weak
 extern int _507CD4_RestUI_hourglass_anim_controller; // weak
 extern int dword_507CD8; // weak
-extern int dword_50B570[]; // weak
-extern int dword_50B638[]; // weak
+extern std::array<int, 50> dword_50B570; // weak
+extern std::array<int, 50> dword_50B638; // weak
 extern struct stru367 stru_50B700;
 /*extern int stru_50B700.field_0; // weak
 extern int stru_50B700.field_38[]; // idb
@@ -695,14 +693,14 @@
 extern int dword_50BAE8[]; // weak
 extern int stru_50B700._xs2[]; // weak
 extern int stru_50B700._xs3[]; // weak*/
-extern int dword_50BC10[]; // weak
-extern int dword_50BDA0[]; // weak
-extern int dword_50BF30[]; // weak
+extern std::array<int, 100> dword_50BC10; // weak
+extern std::array<int, 100> dword_50BDA0; // weak
+extern std::array<int, 100> dword_50BF30; // weak
 extern char town_portal_caster_id; // weak
 extern int some_active_character; // weak
 extern _UNKNOWN unk_50C190; // weak
 extern int dword_50C968; // weak
-extern unsigned int pIconIDs_Turn[5];
+extern std::array<unsigned int, 5> pIconIDs_Turn;
 extern unsigned int uIconID_TurnStop;
 extern unsigned int uIconID_TurnHour;
 extern int uIconID_CharacterFrame; // idb
@@ -724,19 +722,19 @@
 extern int dword_50CDCC; // weak
 extern int bProcessorIsNotIntel; // weak
 extern Vec3_int_ layingitem_vel_50FDFC;
-extern char pStartingMapName[]; // idb
-extern unsigned __int8 IsPlayerWearingWatersuit[5];
-extern char party_has_equipment[54];
-extern char byte_5111F6[];
-extern unsigned int papredoll_dbrds[16];
+extern std::array<char, 777> pStartingMapName; // idb
+extern std::array<unsigned __int8, 5> IsPlayerWearingWatersuit;
+extern std::array<char, 54> party_has_equipment;
+extern std::array<char, 16> byte_5111F6;
+extern std::array<unsigned int, 16> papredoll_dbrds;
 
 extern int bRingsShownInCharScreen; // weak
 extern int _unused000; // weak
 
-extern unsigned __int16 pOdmMinimap[117][137];
+extern std::array<std::array<unsigned __int16, 137>, 117> pOdmMinimap;
 extern unsigned int uNumBlueFacesInBLVMinimap;
-extern unsigned __int16 pBlueFacesInBLVMinimapIDs[50];
-extern int pTextureIDs_PartyBuffIcons[14];
+extern std::array<unsigned __int16, 50> pBlueFacesInBLVMinimapIDs;
+extern std::array<int, 14> pTextureIDs_PartyBuffIcons;
 extern unsigned int uIconIdx_FlySpell;
 extern unsigned int uIconIdx_WaterWalk;
 extern int dword_576E28; // weak
@@ -750,7 +748,7 @@
 extern unsigned int uDialogueType;
 extern signed int sDialogue_SpeakingActorNPC_ID;
 extern struct LevelDecoration *_591094_decoration;
-extern char sHouseName[200]; // idb
+extern std::array<char, 200> sHouseName; // idb
 extern int uCurrentHouse_Animation; // weak
 extern char *dword_591164_teleport_map_name; // idb
 extern int dword_591168_teleport_speedz; // weak
@@ -759,14 +757,14 @@
 extern int dword_591174_teleportz; // weak
 extern int dword_591178_teleporty; // weak
 extern int dword_59117C_teleportx; // weak
-extern char byte_591180[6][100]; // idb
-extern struct NPCData *HouseNPCData[60];
+extern std::array<std::array<char, 100>, 6> byte_591180; // idb
+extern std::array<struct NPCData *, 60> HouseNPCData; //this array size temporarily increased to 60 from 6 to work aroud house overflow
 
 extern struct Texture *pTexture_591428;
 extern struct Texture *pTexture_outside; // idb
 extern struct Texture *pTexture_Dialogue_Background;
 extern _UNKNOWN unk_597F10; // weak
-extern char byte_5B0938[2000];
+extern std::array<char, 2000> byte_5B0938;
 extern int EvtTargetObj; // weak
 extern int _unused_5B5924_is_travel_ui_drawn; // 005B5924
 extern int _5B65A8_npcdata_uflags_or_other; // weak
@@ -783,9 +781,9 @@
 extern int dword_5C3418; // weak
 extern int dword_5C341C; // weak
 extern int _5C3420_pDecoration;
-extern char byte_5C3427[]; // weak
-extern char GameUI_Footer_TimedString[200];
-extern char pFooterString[200];
+extern std::array<char, 777> byte_5C3427; // weak
+extern std::array<char, 200> GameUI_Footer_TimedString;
+extern std::array<char, 200> pFooterString;
 extern unsigned int GameUI_Footer_TimeLeft;
 extern int bForceDrawFooter; // weak
 extern int dword_5C35C0; // weak
@@ -794,24 +792,24 @@
 extern char *p2DEventsTXT_Raw;
 
 extern int dword_5C35D4; // weak
-extern char *aAMPMNames[2];
+extern std::array<char *, 2> aAMPMNames;
 extern char byte_5C45AF[]; // weak
-extern char pTmpBuf3[];
-extern char pFinalMessage[4096]; // idb
-extern char pTmpBuf[2000];
-extern char pTmpBuf2[2000];
-extern char byte_5C6D50[]; // weak
+extern std::array<char, 10000> pTmpBuf3;
+extern std::array<char, 4096> pFinalMessage; // idb
+extern std::array<char, 2000> pTmpBuf;
+extern std::array<char, 2000> pTmpBuf2;
+extern std::array<char, 100> byte_5C6D50; // weak
 extern int ui_current_text_color; // weak
 extern __int64 qword_5C6DF0; // weak
 extern int dword_5C6DF8; // weak
-extern char item__getname_buffer[104]; // idb
-extern char *pClassDescriptions[36];
-extern char *pAttributeDescriptions[7];
-extern char *pGrandSkillDesc[38];
-extern char *pMasterSkillDesc[38];
-extern char *pExpertSkillDesc[38];
-extern char *pNormalSkillDesc[38];
-extern char *pSkillDesc[38];
+extern std::array<char, 104> item__getname_buffer; // idb
+extern std::array<char *, 36> pClassDescriptions;
+extern std::array<char *, 7> pAttributeDescriptions;
+extern std::array<char *, 38> pGrandSkillDesc;
+extern std::array<char *, 38> pMasterSkillDesc;
+extern std::array<char *, 38> pExpertSkillDesc;
+extern std::array<char *, 38> pNormalSkillDesc;
+extern std::array<char *, 38> pSkillDesc;
 extern char *pHealthPointsAttributeDescription;
 extern char *pSpellPointsAttributeDescription;
 extern char *pArmourClassAttributeDescription;
@@ -835,10 +833,10 @@
 extern char *pStatsTXT_Raw;
 extern char *pSkillDescTXT_Raw;
 extern struct FactionTable *pFactionTable;
-extern char byte_5C8D1A[]; // weak
+extern std::array<char, 777> byte_5C8D1A; // weak
 
-extern char byte_5E4C15[]; // weak
-extern char *pSomeItemsNames[14];
+extern std::array<char, 777> byte_5E4C15; // weak
+extern std::array<char *, 14> pSomeItemsNames;
 
 extern char *pMonstersTXT_Raw;
 extern char *pMonsterPlacementTXT_Raw;
@@ -848,11 +846,11 @@
 extern char *pPotionsTXT_Raw;
 extern char *pPotionNotesTXT_Raw;
 
-extern int _6807B8_level_decorations_ids[]; // idb
+extern std::array<int, 777> _6807B8_level_decorations_ids; // idb
 extern int _6807E0_num_decorations_with_sounds_6807B8; // weak
-extern int _6807E8_level_decorations_ids[]; // idb
+extern std::array<int, 777> _6807E8_level_decorations_ids; // idb
 extern int _6836C8_num_decorations_6807E8; // weak
-extern int dword_69B010[64];
+extern std::array<int, 64> dword_69B010;
 extern float flt_69B138_dist; // weak
 extern char byte_69BD41_unused; // weak
 extern unsigned int uTextureID_x_u;
@@ -886,7 +884,7 @@
 extern int texmapping_terrain_subdivpow2; // weak
 extern int texmapping_building_subdivsize; // weak
 extern int texmapping_building_subdivpow2; // weak
-extern int unnamed_6BE060[2];
+extern std::array<int, 2> unnamed_6BE060;
 extern int mipmapping_building_mm1; // weak
 extern int mipmapping_building_mm2; // weak
 extern int mipmapping_building_mm3; // weak
@@ -908,8 +906,8 @@
 extern char outdoor_night_bottom_r; // weak
 extern char outdoor_night_bottom_g; // weak
 extern char outdoor_night_bottom_b; // weak
-extern char pDefaultSkyTexture[]; // idb
-extern char byte_6BE124_cfg_textures_DefaultGroundTexture[16]; // idb
+extern std::array<char, 777> pDefaultSkyTexture; // idb
+extern std::array<char, 16> byte_6BE124_cfg_textures_DefaultGroundTexture; // idb
 extern int _6BE134_odm_main_tile_group; // weak
 extern int dword_6BE138; // weak
 extern int dword_6BE13C_uCurrentlyLoadedLocationID; // weak
@@ -928,7 +926,7 @@
 extern LONG uWindowStyle; // idb
 extern HMENU hOSMenu; // idb
 extern int dword_6BE340; // weak
-extern char pCurrentMapName[20]; // idb
+extern std::array<char, 20> pCurrentMapName; // idb
 extern unsigned int uLevelMapStatsID;
 extern int dword_6BE364_game_settings_1; // weak
 extern int dword_6BE368_debug_settings_2; // weak
@@ -945,7 +943,7 @@
 extern float flt_6BE3A4_debug_recmod1;
 extern float flt_6BE3A8_debug_recmod2;
 extern float flt_6BE3AC_debug_recmod1_x_1_6;
-extern char byte_6BE3B0[20]; // idb
+extern std::array<char, 20> byte_6BE3B0; // idb
 extern char bUnderwater; // weak
 extern char bNoNPCHiring; // weak
 extern int _702AC0_unused; // weak
@@ -958,69 +956,69 @@
 extern bool bNoCD;
 extern bool bNoSound;
 extern int aborting_app; // weak
-extern int dword_720020_zvalues[100];
-extern int dword_7201B0_zvalues[299];
+extern std::array<int, 100> dword_720020_zvalues;
+extern std::array<int, 299> dword_7201B0_zvalues;
 extern int dword_7207F0[]; // idb
 extern int uTextureID_720980; // weak
 extern int _720984_unused; // weak
 extern char _72098C_unused; // weak
-extern __int16 word_7209A0_intercepts_ys_plus_ys[104];
-extern __int16 word_720A70_intercepts_xs_plus_xs[104];
-extern __int16 word_720B40_intercepts_zs[104];
-extern __int16 word_720C10_intercepts_xs[102];
+extern std::array<__int16, 104> word_7209A0_intercepts_ys_plus_ys;
+extern std::array<__int16, 104> word_720A70_intercepts_xs_plus_xs;
+extern std::array<__int16, 104> word_720B40_intercepts_zs;
+extern std::array<__int16, 102> word_720C10_intercepts_xs;
 extern int dword_720CDC;
-extern __int16 word_720CE0_ys[]; // idb
-extern __int16 word_720DB0_xs[]; // idb
-extern int dword_720E80[20];
-extern int dword_720ED0[20];
-extern int dword_720F20[20];
-extern __int16 word_720F70[]; // idb
-extern __int16 word_721040[]; // idb
-extern int dword_721110[]; // idb
-extern int dword_721160[]; // idb
-extern int odm_floor_level[20]; // idb dword_7211B0
+extern std::array<__int16, 777> word_720CE0_ys; // idb
+extern std::array<__int16, 777> word_720DB0_xs; // idb
+extern std::array<int, 20> dword_720E80;
+extern std::array<int, 20> dword_720ED0;
+extern std::array<int, 20> dword_720F20;
+extern std::array<__int16, 777> word_720F70; // idb
+extern std::array<__int16, 777> word_721040; // idb
+extern std::array<int, 777> dword_721110; // idb
+extern std::array<int, 777> dword_721160; // idb
+extern std::array<int, 20> odm_floor_level; // idb dword_7211B0
 extern int blv_prev_party_x; // weak
 extern int blv_prev_party_z; // weak
 extern int blv_prev_party_y; // weak
 extern char *dword_721660; // idb
 extern char *dword_721664; // idb
 extern char *dword_722F10; // idb
-extern const char *pQuestTable[512];
+extern std::array<const char *, 512> pQuestTable;
 extern _UNKNOWN unk_723714; // weak
 extern char *dword_723718_autonote_related; // idb
 extern int dword_72371C[]; // weak
-extern const char *pScrolls[82];
+extern std::array<const char *, 82> pScrolls;
 extern int dword_723E80_award_related[]; // weak
 extern int dword_723E84[]; // weak
 extern int dword_7241C8; // weak
 
-extern char *aNPCProfessionNames[59];
+extern std::array<char *, 59> aNPCProfessionNames;
 extern char *pAwardsTXT_Raw;
 extern char *pScrollsTXT_Raw;
 extern char *pMerchantsTXT_Raw;
-extern const char *pMerchantsBuyPhrases[7];
-extern const char *pMerchantsSellPhrases[7];
-extern const char *pMerchantsRepairPhrases[7];
-extern const char *pMerchantsIdentifyPhrases[7];
+extern std::array<char *, 7> pMerchantsBuyPhrases;
+extern std::array<char *, 7> pMerchantsSellPhrases;
+extern std::array<char *, 7> pMerchantsRepairPhrases;
+extern std::array<char *, 7> pMerchantsIdentifyPhrases;
 extern char *pTransitionsTXT_Raw;
 extern char *pAutonoteTXT_Raw;
 extern char *pQuestsTXT_Raw;
 extern unsigned int    uNumTerrainNormals;
 extern struct Vec3_float_ *pTerrainNormals;
-extern unsigned short  pTerrainNormalIndices[128 * 128 * 2];
-extern unsigned int    pTerrainSomeOtherData[128 * 128 * 2];
+extern std::array<unsigned short, 128 * 128 * 2>  pTerrainNormalIndices;
+extern std::array<unsigned int, 128 * 128 * 2>    pTerrainSomeOtherData;
 extern char byte_76D5C0;
 extern struct unk_F7B60C stru_76D578;
 extern struct unk_F7B60C stru_76D590;
 extern struct unk_F7B60C stru_76D5A8;
-extern int terrain_76D5C8[128];
-extern int terrain_76D7C8[128];
-extern int terrain_76D9C8[128];
-extern int terrain_76DBC8[128];
-extern int terrain_76DDC8[128];
-extern int terrain_76DFC8[128];
-extern int terrain_76E1C8[128];
-extern int terrain_76E3C8[128];
+extern std::array<int, 128> terrain_76D5C8;
+extern std::array<int, 128> terrain_76D7C8;
+extern std::array<int, 128> terrain_76D9C8;
+extern std::array<int, 128> terrain_76DBC8;
+extern std::array<int, 128> terrain_76DDC8;
+extern std::array<int, 128> terrain_76DFC8;
+extern std::array<int, 128> terrain_76E1C8;
+extern std::array<int, 128> terrain_76E3C8;
 struct unk_F7B60C
 {
  int   some_data_ptr;  // dword @ 000000
@@ -1039,14 +1037,14 @@
 extern int dword_80AA1C; // weak
 extern int dword_80AA20; // weak
 extern unsigned int uNumElementsIn80AA28;
-extern struct stru148 *ptr_80AA28[];
+extern std::array<struct stru148 *, 2000> ptr_80AA28;
 extern struct Edge *pNewEdges;
 extern struct Surf *pSurfs;
 extern struct Edge *pEdges;
 extern struct Span *pSpans;
 extern struct Edge *ptr_80C978_Edges;
 extern struct Surf *ptr_80C97C_Surfs;
-extern struct Edge *ptr_80CA10[480];
+extern std::array<struct Edge *, 480> ptr_80CA10;
 extern _UNKNOWN unk_80D190; // weak
 extern int dword_A74C88; // weak
 extern unsigned int uPlayerCreationUI_SkySliderPos;
@@ -1056,34 +1054,34 @@
 extern struct Texture *pTexture_PlayerFaceMask;
 extern struct Texture *pTexture_PlayerFaceEradicated;
 extern struct Texture *pTexture_PlayerFaceDead;
-extern struct Texture *pTextures_PlayerFaces[4][56];
+extern std::array< std::array<struct Texture *, 56>, 4> pTextures_PlayerFaces;
 extern int dword_A75070; // weak
-extern struct Player *pPlayers[5];
+extern std::array<struct Player *, 5> pPlayers;
 extern __int64 qword_A750D8; // weak
 extern __int16 word_A750E0; // weak
 extern __int16 word_A750E2; // weak
-extern char *pClassNames[36];
-extern char *aCharacterConditionNames[19];
-extern char *pSkillNames[38];
-extern char byte_AE3368[]; // weak
+extern std::array<char *, 36> pClassNames;
+extern std::array<char *, 19> aCharacterConditionNames;
+extern std::array<char *, 38> pSkillNames;
+extern std::array<char, 777> byte_AE3368; // weak
 extern char byte_AE3369; // weak
 extern char byte_AE336A; // weak
 extern char byte_AE336B; // weak
 extern int dword_AE336C; // weak
 extern int dword_AE3370; // weak
 extern char byte_AE5B91; // weak
-extern int dword_F1B430[32]; // weak
-extern int player_levels[4];
-extern __int16 word_F8B158[]; // weak
+extern std::array<int, 32> dword_F1B430; // weak
+extern std::array<int, 4> player_levels;
+extern std::array<__int16, 777> word_F8B158; // weak
 extern struct Texture *ShopTexture; // idb
-extern struct Texture *ItemsInShopTexture[12];
+extern std::array<struct Texture *, 12> ItemsInShopTexture;
 extern __int16 word_F8B1A0; // weak
 extern const char *dword_F8B1A4; // idb
 extern int contract_approved; // weak
 extern int dword_F8B1AC_award_bit_number; // idb
 extern int dword_F8B1B0; // weak
 extern int gold_transaction_amount; // F8B1B4
-extern char *pShopOptions[4];
+extern std::array<char *, 4> pShopOptions;
 extern _UNKNOWN unk_F8B1C8; // weak
 extern int dword_F8B1D8; // weak
 extern int dword_F8B1DC; // weak
@@ -1091,8 +1089,8 @@
 extern int dword_F8B1E4; // weak
 extern const char *current_npc_text; // 0xF8B1E8
 extern char dialogue_show_profession_details; // weak
-extern char byte_F8B1EF[]; // weak
-extern char byte_F8B1F0[4];
+extern std::array<char, 777> byte_F8B1EF; // weak
+extern std::array<char, 4> byte_F8B1F0;
 extern int dword_F8B1F4; // weak
 
 
@@ -1101,8 +1099,8 @@
 //extern _UNKNOWN unk_F8BA50; // weak
 extern char byte_F8BC0C; // weak
 extern int bGameoverLoop; // weak
-extern __int16 intersect_face_vertex_coords_list_a[]; // word_F8BC48
-extern __int16 intersect_face_vertex_coords_list_b[]; // word_F8BD18
+extern std::array<__int16, 104> intersect_face_vertex_coords_list_a; // word_F8BC48
+extern std::array<__int16, 104> intersect_face_vertex_coords_list_b; // word_F8BD18
 //extern _UNKNOWN unk_F8EA04; // weak
 //extern _UNKNOWN unk_F8F8F8; // weak
 extern int dword_F93F20; // weak
@@ -1155,7 +1153,7 @@
 unsigned int __fastcall SearchActorByMonsterID(unsigned int *pTotalActors, int uMonsterID);
 unsigned int __fastcall SearchActorByGroup(unsigned int *pTotalActors, unsigned int uGroup);
 unsigned int __fastcall SearchActorByID(unsigned int *pTotalActors, unsigned int a2);
-void __cdecl PrepareArcomage();
+void  PrepareArcomage();
 
 // int __cdecl crt_retnull_sub();
 unsigned int __stdcall R8G8B8_to_TargetFormat(int uColor); // idb