private void levelareaIDchanged(int ID)
{
iCurrentLevelID = ID;
Logger.Write(Helpers.LogLevel.Event, "Level Area ID has Changed to {0}", ID);
if (!BrainBehavior.IsVendoring)
{
//Check for World ID change!
if (FunkyGame.Hero.CurrentWorldDynamicID != LastWorldID)
{
Logger.Write(Helpers.LogLevel.Event, "World ID changed.. clearing Profile Interactable Cache.");
LastWorldID = FunkyGame.Hero.CurrentWorldDynamicID;
ObjectCache.InteractableObjectCache.Clear();
//Gold Inactivity
GoldInactivity.LastCoinageUpdate = DateTime.Now;
}
if (!LastLevelIDChangeWasTownRun)
{//Do full clear
BackTrackCache.cacheMovementGPRs.Clear();
FunkyGame.Navigation.LOSBlacklistedRAGUIDs.Clear();
FunkyGame.Game.InteractableCachedObject = null;
}
else
{
//Gold Inactivity
GoldInactivity.LastCoinageUpdate = DateTime.Now;
}
//Clear the object cache!
ObjectCache.Objects.Clear();
//ObjectCache.cacheSnoCollection.ClearDictionaryCacheEntries();
ObjectCache.RemovalCheck = false;
//Every ten minutes clear perm RAGUID list
BlacklistCache.CheckPermBlacklist();
ZetaDia.Actors.Clear();
ZetaDia.Actors.Update();
//Reset Skip Ahead Cache
SkipAheadCache.ClearCache();
FunkyGame.Hero.UpdateCoinage = true;
//Check active bounty
if (FunkyGame.AdventureMode)
CheckActiveBounty();
Navigator.SearchGridProvider.Update();
LastLevelIDChangeWasTownRun = false;
}
else if (FunkyGame.Hero.bIsInTown)
{
LastLevelIDChangeWasTownRun = true;
}
if (OnLevelAreaIDChanged != null)
OnLevelAreaIDChanged(ID);
}