internal static void ResizeArrays(bool unloading)
{
Array.Resize(ref Main.NPCLoaded, nextNPC);
Array.Resize(ref Main.nextNPC, nextNPC);
Array.Resize(ref Main.slimeRainNPC, nextNPC);
Array.Resize(ref Main.npcTexture, nextNPC);
Array.Resize(ref Main.npcAltTextures, nextNPC);
Array.Resize(ref Main.npcCatchable, nextNPC);
Array.Resize(ref Main.npcName, nextNPC);
Array.Resize(ref Main.npcNameEnglish, nextNPC);
Array.Resize(ref Main.npcFrameCount, nextNPC);
Array.Resize(ref NPC.killCount, nextNPC);
Array.Resize(ref NPC.npcsFoundForCheckActive, nextNPC);
Array.Resize(ref EmoteBubble.CountNPCs, nextNPC);
Array.Resize(ref NPCID.Sets.TrailingMode, nextNPC);
Array.Resize(ref NPCID.Sets.BelongsToInvasionOldOnesArmy, nextNPC);
Array.Resize(ref NPCID.Sets.TeleportationImmune, nextNPC);
Array.Resize(ref NPCID.Sets.UsesNewTargetting, nextNPC);
Array.Resize(ref NPCID.Sets.FighterUsesDD2PortalAppearEffect, nextNPC);
Array.Resize(ref NPCID.Sets.StatueSpawnedDropRarity, nextNPC);
Array.Resize(ref NPCID.Sets.NoEarlymodeLootWhenSpawnedFromStatue, nextNPC);
Array.Resize(ref NPCID.Sets.NeedsExpertScaling, nextNPC);
Array.Resize(ref NPCID.Sets.ProjectileNPC, nextNPC);
Array.Resize(ref NPCID.Sets.SavesAndLoads, nextNPC);
Array.Resize(ref NPCID.Sets.TrailCacheLength, nextNPC);
Array.Resize(ref NPCID.Sets.MPAllowedEnemies, nextNPC);
Array.Resize(ref NPCID.Sets.TownCritter, nextNPC);
Array.Resize(ref NPCID.Sets.HatOffsetY, nextNPC);
Array.Resize(ref NPCID.Sets.FaceEmote, nextNPC);
Array.Resize(ref NPCID.Sets.ExtraFramesCount, nextNPC);
Array.Resize(ref NPCID.Sets.AttackFrameCount, nextNPC);
Array.Resize(ref NPCID.Sets.DangerDetectRange, nextNPC);
Array.Resize(ref NPCID.Sets.AttackTime, nextNPC);
Array.Resize(ref NPCID.Sets.AttackAverageChance, nextNPC);
Array.Resize(ref NPCID.Sets.AttackType, nextNPC);
Array.Resize(ref NPCID.Sets.PrettySafe, nextNPC);
Array.Resize(ref NPCID.Sets.MagicAuraColor, nextNPC);
Array.Resize(ref NPCID.Sets.BossHeadTextures, nextNPC);
Array.Resize(ref NPCID.Sets.ExcludedFromDeathTally, nextNPC);
Array.Resize(ref NPCID.Sets.TechnicallyABoss, nextNPC);
Array.Resize(ref NPCID.Sets.MustAlwaysDraw, nextNPC);
Array.Resize(ref NPCID.Sets.ExtraTextureCount, nextNPC);
Array.Resize(ref NPCID.Sets.NPCFramingGroup, nextNPC);
Array.Resize(ref NPCID.Sets.TownNPCsFramingGroups, nextNPC);
for (int k = NPCID.Count; k < nextNPC; k++)
{
Main.NPCLoaded[k] = true;
Main.npcFrameCount[k] = 1;
NPCID.Sets.TrailingMode[k] = -1;
NPCID.Sets.StatueSpawnedDropRarity[k] = -1f;
NPCID.Sets.TrailCacheLength[k] = 10;
NPCID.Sets.DangerDetectRange[k] = -1;
NPCID.Sets.AttackTime[k] = -1;
NPCID.Sets.AttackAverageChance[k] = 1;
NPCID.Sets.AttackType[k] = -1;
NPCID.Sets.PrettySafe[k] = -1;
NPCID.Sets.MagicAuraColor[k] = Color.White;
NPCID.Sets.BossHeadTextures[k] = -1;
}
ModLoader.BuildGlobalHook(ref HookSetDefaults, globalNPCs, g => g.SetDefaults);
ModLoader.BuildGlobalHook(ref HookScaleExpertStats, globalNPCs, g => g.ScaleExpertStats);
ModLoader.BuildGlobalHook(ref HookResetEffects, globalNPCs, g => g.ResetEffects);
ModLoader.BuildGlobalHook(ref HookPreAI, globalNPCs, g => g.PreAI);
ModLoader.BuildGlobalHook(ref HookAI, globalNPCs, g => g.AI);
ModLoader.BuildGlobalHook(ref HookPostAI, globalNPCs, g => g.PostAI);
ModLoader.BuildGlobalHook(ref HookFindFrame, globalNPCs, g => g.FindFrame);
ModLoader.BuildGlobalHook(ref HookHitEffect, globalNPCs, g => g.HitEffect);
ModLoader.BuildGlobalHook(ref HookUpdateLifeRegen, globalNPCs, g => g.UpdateLifeRegen);
ModLoader.BuildGlobalHook(ref HookCheckActive, globalNPCs, g => g.CheckActive);
ModLoader.BuildGlobalHook(ref HookCheckDead, globalNPCs, g => g.CheckDead);
ModLoader.BuildGlobalHook(ref HookPreNPCLoot, globalNPCs, g => g.PreNPCLoot);
ModLoader.BuildGlobalHook(ref HookNPCLoot, globalNPCs, g => g.NPCLoot);
ModLoader.BuildGlobalHook(ref HookCanHitPlayer, globalNPCs, g => g.CanHitPlayer);
ModLoader.BuildGlobalHook(ref HookModifyHitPlayer, globalNPCs, g => g.ModifyHitPlayer);
ModLoader.BuildGlobalHook(ref HookOnHitPlayer, globalNPCs, g => g.OnHitPlayer);
ModLoader.BuildGlobalHook(ref HookCanHitNPC, globalNPCs, g => g.CanHitNPC);
ModLoader.BuildGlobalHook(ref HookModifyHitNPC, globalNPCs, g => g.ModifyHitNPC);
ModLoader.BuildGlobalHook(ref HookOnHitNPC, globalNPCs, g => g.OnHitNPC);
ModLoader.BuildGlobalHook(ref HookCanBeHitByItem, globalNPCs, g => g.CanBeHitByItem);
ModLoader.BuildGlobalHook(ref HookModifyHitByItem, globalNPCs, g => g.ModifyHitByItem);
ModLoader.BuildGlobalHook(ref HookOnHitByItem, globalNPCs, g => g.OnHitByItem);
ModLoader.BuildGlobalHook(ref HookCanBeHitByProjectile, globalNPCs, g => g.CanBeHitByProjectile);
ModLoader.BuildGlobalHook(ref HookModifyHitByProjectile, globalNPCs, g => g.ModifyHitByProjectile);
ModLoader.BuildGlobalHook(ref HookOnHitByProjectile, globalNPCs, g => g.OnHitByProjectile);
ModLoader.BuildGlobalHook(ref HookStrikeNPC, globalNPCs, g => g.StrikeNPC);
ModLoader.BuildGlobalHook(ref HookBossHeadSlot, globalNPCs, g => g.BossHeadSlot);
ModLoader.BuildGlobalHook(ref HookBossHeadRotation, globalNPCs, g => g.BossHeadRotation);
ModLoader.BuildGlobalHook(ref HookBossHeadSpriteEffects, globalNPCs, g => g.BossHeadSpriteEffects);
ModLoader.BuildGlobalHook(ref HookGetAlpha, globalNPCs, g => g.GetAlpha);
ModLoader.BuildGlobalHook(ref HookDrawEffects, globalNPCs, g => g.DrawEffects);
ModLoader.BuildGlobalHook(ref HookPreDraw, globalNPCs, g => g.PreDraw);
ModLoader.BuildGlobalHook(ref HookPostDraw, globalNPCs, g => g.PostDraw);
ModLoader.BuildGlobalHook(ref HookDrawHealthBar, globalNPCs, g => g.DrawHealthBar);
ModLoader.BuildGlobalHook(ref HookEditSpawnRate, globalNPCs, g => g.EditSpawnRate);
ModLoader.BuildGlobalHook(ref HookEditSpawnRange, globalNPCs, g => g.EditSpawnRange);
ModLoader.BuildGlobalHook(ref HookEditSpawnPool, globalNPCs, g => g.EditSpawnPool);
ModLoader.BuildGlobalHook(ref HookSpawnNPC, globalNPCs, g => g.SpawnNPC);
ModLoader.BuildGlobalHook(ref HookGetChat, globalNPCs, g => g.GetChat);
ModLoader.BuildGlobalHook(ref HookSetupShop, globalNPCs, g => g.SetupShop);
ModLoader.BuildGlobalHook(ref HookSetupTravelShop, globalNPCs, g => g.SetupTravelShop);
ModLoader.BuildGlobalHook(ref HookBuffTownNPC, globalNPCs, g => g.BuffTownNPC);
ModLoader.BuildGlobalHook(ref HookTownNPCAttackStrength, globalNPCs, g => g.TownNPCAttackStrength);
ModLoader.BuildGlobalHook(ref HookTownNPCAttackCooldown, globalNPCs, g => g.TownNPCAttackCooldown);
ModLoader.BuildGlobalHook(ref HookTownNPCAttackProj, globalNPCs, g => g.TownNPCAttackProj);
ModLoader.BuildGlobalHook(ref HookTownNPCAttackProjSpeed, globalNPCs, g => g.TownNPCAttackProjSpeed);
ModLoader.BuildGlobalHook(ref HookTownNPCAttackShoot, globalNPCs, g => g.TownNPCAttackShoot);
ModLoader.BuildGlobalHook(ref HookTownNPCAttackMagic, globalNPCs, g => g.TownNPCAttackMagic);
ModLoader.BuildGlobalHook(ref HookTownNPCAttackSwing, globalNPCs, g => g.TownNPCAttackSwing);
ModLoader.BuildGlobalHook(ref HookDrawTownAttackGun, globalNPCs, g => g.DrawTownAttackGun);
ModLoader.BuildGlobalHook(ref HookDrawTownAttackSwing, globalNPCs, g => g.DrawTownAttackSwing);
if (!unloading)
{
loaded = true;
}
}