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"; } } }