internal unsafe IGameMemoryRE8 Refresh()
        {
            bool success;

            // Map Data
            //int size1 = PointerCurrentView.DerefInt(0x10);
            //byte[] view = PointerCurrentView.DerefByteArray(0x14, size1 * 2);
            //gameMemoryValues._currentview = GetString(view);

            // Map Data
            int?size2 = PointerEventActionTask.DerefInt(0x10);

            GetCurrentEvent(size2);

            // Init Bosses On First Scan
            if (gameMemoryValues.EnemyHealth == null && gameMemoryValues.PlayerInventory == null)
            {
                gameMemoryValues.EnemyHealth     = new EnemyHP[MAX_ENTITIES];
                gameMemoryValues.LastKeyItem     = new InventoryEntry();
                gameMemoryValues.PlayerInventory = new InventoryEntry[MAX_ITEMS];
                gameMemoryValues.PlayerStatus    = new PlayerStatus();
            }

            // Player Status
            if (SafeReadByteArray(PointerPlayerStatus.Address, sizeof(GamePlayerStatus), out byte[] gamePlayerStatus))
        /// <summary>
        ///
        /// </summary>
        internal void UpdatePointers()
        {
            PointerEventActionType.UpdatePointers();
            PointerIsMotionPlay.UpdatePointers();
            PointerEventActionTask.UpdatePointers();

            PointerPlayerStatus.UpdatePointers();
            PointerPlayerHP.UpdatePointers();
            PointerPlayerPosition.UpdatePointers();

            PointerRankManager.UpdatePointers();
            PointerInventory.UpdatePointers();

            try
            {
                PointerEnemyCount.UpdatePointers();
                PointerEnemyEntryList.UpdatePointers();

                GenerateEnemyEntries();

                PointerInventoryCount.UpdatePointers();
                PointerInventoryEntryList.UpdatePointers();
                GenerateItemEntries();
            }
            catch
            {
                // May fail in main menu
            }
        }
 private void GetCurrentEvent(int?length)
 {
     if (length == null)
     {
         gameMemoryValues._currentevent = "Null";
     }
     else
     {
         if (length < 64)
         {
             byte[] eventName = PointerEventActionTask.DerefByteArray(0x14, (int)length * 2);
             gameMemoryValues._currentevent = GetString(eventName);
         }
         else
         {
             gameMemoryValues._currentevent = "None";
         }
     }
 }