internal static void ResizeArrays()
{
Array.Resize(ref Main.projectileLoaded, nextProjectile);
Array.Resize(ref Main.projectileTexture, nextProjectile);
Array.Resize(ref Main.projHostile, nextProjectile);
Array.Resize(ref Main.projHook, nextProjectile);
Array.Resize(ref Main.projFrames, nextProjectile);
Array.Resize(ref Main.projPet, nextProjectile);
Array.Resize(ref ProjectileID.Sets.YoyosLifeTimeMultiplier, nextProjectile);
Array.Resize(ref ProjectileID.Sets.YoyosMaximumRange, nextProjectile);
Array.Resize(ref ProjectileID.Sets.YoyosTopSpeed, nextProjectile);
Array.Resize(ref ProjectileID.Sets.CanDistortWater, nextProjectile);
Array.Resize(ref ProjectileID.Sets.MinionShot, nextProjectile);
Array.Resize(ref ProjectileID.Sets.SentryShot, nextProjectile);
Array.Resize(ref ProjectileID.Sets.ForcePlateDetection, nextProjectile);
Array.Resize(ref ProjectileID.Sets.TrailingMode, nextProjectile);
Array.Resize(ref ProjectileID.Sets.TrailCacheLength, nextProjectile);
Array.Resize(ref ProjectileID.Sets.LightPet, nextProjectile);
Array.Resize(ref ProjectileID.Sets.Homing, nextProjectile);
Array.Resize(ref ProjectileID.Sets.IsADD2Turret, nextProjectile);
Array.Resize(ref ProjectileID.Sets.TurretFeature, nextProjectile);
Array.Resize(ref ProjectileID.Sets.MinionTargettingFeature, nextProjectile);
Array.Resize(ref ProjectileID.Sets.MinionSacrificable, nextProjectile);
Array.Resize(ref ProjectileID.Sets.DontAttachHideToAlpha, nextProjectile);
Array.Resize(ref ProjectileID.Sets.NeedsUUID, nextProjectile);
Array.Resize(ref ProjectileID.Sets.StardustDragon, nextProjectile);
Array.Resize(ref ProjectileID.Sets.NoLiquidDistortion, nextProjectile);
for (int k = ProjectileID.Count; k < nextProjectile; k++)
{
ProjectileID.Sets.YoyosLifeTimeMultiplier[k] = -1;
ProjectileID.Sets.YoyosMaximumRange[k] = 200f;
ProjectileID.Sets.YoyosTopSpeed[k] = 10f;
ProjectileID.Sets.CanDistortWater[k] = true;
Main.projectileLoaded[k] = true;
Main.projFrames[k] = 1;
ProjectileID.Sets.TrailingMode[k] = -1;
ProjectileID.Sets.TrailCacheLength[k] = 10;
}
Array.Resize(ref Projectile.perIDStaticNPCImmunity, nextProjectile);
for (int i = 0; i < nextProjectile; i++)
{
Projectile.perIDStaticNPCImmunity[i] = new int[200];
}
ModLoader.BuildGlobalHook(ref HookSetDefaults, globalProjectiles, g => g.SetDefaults);
ModLoader.BuildGlobalHook(ref HookPreAI, globalProjectiles, g => g.PreAI);
ModLoader.BuildGlobalHook(ref HookAI, globalProjectiles, g => g.AI);
ModLoader.BuildGlobalHook(ref HookPostAI, globalProjectiles, g => g.PostAI);
ModLoader.BuildGlobalHook(ref HookShouldUpdatePosition, globalProjectiles, g => g.ShouldUpdatePosition);
ModLoader.BuildGlobalHook(ref HookTileCollideStyle, globalProjectiles, g => g.TileCollideStyle);
ModLoader.BuildGlobalHook(ref HookOnTileCollide, globalProjectiles, g => g.OnTileCollide);
ModLoader.BuildGlobalHook(ref HookCanCutTiles, globalProjectiles, g => g.CanCutTiles);
ModLoader.BuildGlobalHook(ref HookPreKill, globalProjectiles, g => g.PreKill);
ModLoader.BuildGlobalHook(ref HookKill, globalProjectiles, g => g.Kill);
ModLoader.BuildGlobalHook(ref HookCanDamage, globalProjectiles, g => g.CanDamage);
ModLoader.BuildGlobalHook(ref HookMinionContactDamage, globalProjectiles, g => g.MinionContactDamage);
ModLoader.BuildGlobalHook(ref HookCanHitNPC, globalProjectiles, g => g.CanHitNPC);
ModLoader.BuildGlobalHook(ref HookModifyHitNPC, globalProjectiles, g => g.ModifyHitNPC);
ModLoader.BuildGlobalHook(ref HookOnHitNPC, globalProjectiles, g => g.OnHitNPC);
ModLoader.BuildGlobalHook(ref HookCanHitPvp, globalProjectiles, g => g.CanHitPvp);
ModLoader.BuildGlobalHook(ref HookModifyHitPvp, globalProjectiles, g => g.ModifyHitPvp);
ModLoader.BuildGlobalHook(ref HookOnHitPvp, globalProjectiles, g => g.OnHitPvp);
ModLoader.BuildGlobalHook(ref HookCanHitPlayer, globalProjectiles, g => g.CanHitPlayer);
ModLoader.BuildGlobalHook(ref HookModifyHitPlayer, globalProjectiles, g => g.ModifyHitPlayer);
ModLoader.BuildGlobalHook(ref HookOnHitPlayer, globalProjectiles, g => g.OnHitPlayer);
ModLoader.BuildGlobalHook(ref HookColliding, globalProjectiles, g => g.Colliding);
ModLoader.BuildGlobalHook(ref HookGetAlpha, globalProjectiles, g => g.GetAlpha);
ModLoader.BuildGlobalHook(ref HookPreDrawExtras, globalProjectiles, g => g.PreDrawExtras);
ModLoader.BuildGlobalHook(ref HookPreDraw, globalProjectiles, g => g.PreDraw);
ModLoader.BuildGlobalHook(ref HookPostDraw, globalProjectiles, g => g.PostDraw);
ModLoader.BuildGlobalHook(ref HookCanUseGrapple, globalProjectiles, g => g.CanUseGrapple);
ModLoader.BuildGlobalHook(ref HookSingleGrappleHook, globalProjectiles, g => g.SingleGrappleHook);
ModLoader.BuildGlobalHook(ref HookUseGrapple, globalProjectiles, g => g.UseGrapple);
ModLoader.BuildGlobalHook(ref HookNumGrappleHooks, globalProjectiles, g => g.NumGrappleHooks);
ModLoader.BuildGlobalHook(ref HookGrappleRetreatSpeed, globalProjectiles, g => g.GrappleRetreatSpeed);
ModLoader.BuildGlobalHook(ref HookDrawBehind, globalProjectiles, g => g.DrawBehind);
}