diff --git a/King of Thieves/Actors/NPC/Enemies/ArmoredCrab/CArmoredCrab.cs b/King of Thieves/Actors/NPC/Enemies/ArmoredCrab/CArmoredCrab.cs index 7bdb2ac..7dbb1b1 100644 --- a/King of Thieves/Actors/NPC/Enemies/ArmoredCrab/CArmoredCrab.cs +++ b/King of Thieves/Actors/NPC/Enemies/ArmoredCrab/CArmoredCrab.cs @@ -23,9 +23,9 @@ class CArmoredCrab : CBaseEnemy public CArmoredCrab() : base() { - if (_armoredCrabCount <= 0) + if (!Graphics.CTextures.rawTextures.ContainsKey(SPRITE_NAMESPACE)) { - Graphics.CTextures.rawTextures.Add(SPRITE_NAMESPACE, CMasterControl.glblContent.Load<Texture2D>(@"sprites/npc/armoredCrabNew")); + Graphics.CTextures.addRawTexture(SPRITE_NAMESPACE, @"sprites/npc/armoredCrabNew"); Graphics.CTextures.addTexture(_IDLE, new Graphics.CTextureAtlas(SPRITE_NAMESPACE, 32, 32, 0, "0:0", "0:0", 0)); Graphics.CTextures.addTexture(_WALK, new Graphics.CTextureAtlas(SPRITE_NAMESPACE, 32, 32, 0, "0:0", "3:0", 10)); @@ -89,24 +89,11 @@ protected override void _addCollidables() public override void destroy(object sender) { - _armoredCrabCount--; - - if (_armoredCrabCount <= 0) - { - cleanUp(); - _armoredCrabCount = 0; - } - + _armoredCrabCount -= 1; + _doNpcCountCheck(ref _armoredCrabCount); base.destroy(sender); } - protected override void cleanUp() - { - Graphics.CTextures.cleanUp(SPRITE_NAMESPACE); - _armoredCrabCount = 0; - base.cleanUp(); - } - private void _chooseNewPoint() { int chooseLeftOrRight = (int)Math.Round(_randNum.NextDouble()); //0 == left, 1 == right diff --git a/King of Thieves/Actors/NPC/Enemies/Chuchus/CBaseChuChu.cs b/King of Thieves/Actors/NPC/Enemies/Chuchus/CBaseChuChu.cs index 3a6d26b..1b5db67 100644 --- a/King of Thieves/Actors/NPC/Enemies/Chuchus/CBaseChuChu.cs +++ b/King of Thieves/Actors/NPC/Enemies/Chuchus/CBaseChuChu.cs @@ -143,8 +143,11 @@ public override void update(GameTime gameTime) public override void destroy(object sender) { - _chuChuCount -= 1; + _chuChuCount-= 1; + _doNpcCountCheck(ref _chuChuCount); base.destroy(sender); + + } } } diff --git a/King of Thieves/Actors/NPC/Enemies/FloorTile/CFloorTile.cs b/King of Thieves/Actors/NPC/Enemies/FloorTile/CFloorTile.cs index 8f161db..3bd63e7 100644 --- a/King of Thieves/Actors/NPC/Enemies/FloorTile/CFloorTile.cs +++ b/King of Thieves/Actors/NPC/Enemies/FloorTile/CFloorTile.cs @@ -21,7 +21,7 @@ class CFloorTile : CBaseEnemy public CFloorTile() : base() { - if (_floorTileCount == 0) + if (!Graphics.CTextures.rawTextures.ContainsKey(_SPRITE_NAMESPACE)) { Graphics.CTextures.addRawTexture(_SPRITE_NAMESPACE, "sprites/npc/floorTile"); diff --git a/King of Thieves/Actors/NPC/Enemies/Keese/CBaseKeese.cs b/King of Thieves/Actors/NPC/Enemies/Keese/CBaseKeese.cs index 5318312..176b387 100644 --- a/King of Thieves/Actors/NPC/Enemies/Keese/CBaseKeese.cs +++ b/King of Thieves/Actors/NPC/Enemies/Keese/CBaseKeese.cs @@ -71,7 +71,7 @@ public CBaseKeese(int foh, params dropRate[] drops) _attackVector = new Vector2(); _attacking = false; - if (_keeseCount <= 0) + if (!Graphics.CTextures.rawTextures.ContainsKey(_SPRITE_NAMESPACE)) Graphics.CTextures.addRawTexture(_SPRITE_NAMESPACE, "keese"); _keeseCount += 1; @@ -265,6 +265,7 @@ public override void update(Microsoft.Xna.Framework.GameTime gameTime) public override void destroy(object sender) { _keeseCount -= 1; + _doNpcCountCheck(ref _keeseCount); base.destroy(sender); } } diff --git a/King of Thieves/Actors/NPC/Enemies/MoldormTail/CMoldormTailPiece.cs b/King of Thieves/Actors/NPC/Enemies/MoldormTail/CMoldormTailPiece.cs index 2e57ed1..888c79b 100644 --- a/King of Thieves/Actors/NPC/Enemies/MoldormTail/CMoldormTailPiece.cs +++ b/King of Thieves/Actors/NPC/Enemies/MoldormTail/CMoldormTailPiece.cs @@ -59,9 +59,13 @@ public override void init(string name, Microsoft.Xna.Framework.Vector2 position, _next = additional[1]; } - protected override void cleanUp() + public override void destroy(object sender) { - Graphics.CTextures.rawTextures.Remove(_NPC_MOLDORM); + _moldormAndTailCount -= 1; + _doNpcCountCheck(ref _moldormAndTailCount); + base.destroy(sender); } + + } } diff --git a/King of Thieves/Actors/NPC/Enemies/OvergrownKeese/COvergrownKeese.cs b/King of Thieves/Actors/NPC/Enemies/OvergrownKeese/COvergrownKeese.cs index ec438e3..0dc1d2d 100644 --- a/King of Thieves/Actors/NPC/Enemies/OvergrownKeese/COvergrownKeese.cs +++ b/King of Thieves/Actors/NPC/Enemies/OvergrownKeese/COvergrownKeese.cs @@ -24,7 +24,7 @@ class COvergrownKeese : CBaseEnemy public COvergrownKeese() : base() { - if (_overgrownKeeseCount <= 0) + if (!Graphics.CTextures.rawTextures.ContainsKey(_SPRITE_NAMESPACE)) { Graphics.CTextures.addRawTexture(_SPRITE_NAMESPACE, "sprites/npc/overgownKeese"); @@ -135,22 +135,10 @@ public override void timer0(object sender) } - protected override void cleanUp() - { - Graphics.CTextures.cleanUp(_SPRITE_NAMESPACE); - base.cleanUp(); - } - public override void destroy(object sender) { - _overgrownKeeseCount--; - - if (_overgrownKeeseCount <= 0) - { - cleanUp(); - _overgrownKeeseCount = 0; - } - + _overgrownKeeseCount -= 1; + _doNpcCountCheck(ref _overgrownKeeseCount); base.destroy(sender); } diff --git a/King of Thieves/Actors/NPC/Enemies/Poe/CPoe.cs b/King of Thieves/Actors/NPC/Enemies/Poe/CPoe.cs index eba20e2..74e07d9 100644 --- a/King of Thieves/Actors/NPC/Enemies/Poe/CPoe.cs +++ b/King of Thieves/Actors/NPC/Enemies/Poe/CPoe.cs @@ -16,7 +16,7 @@ class CPoe : CBaseEnemy public CPoe() : base() { - if (_poeCount <= 0) + if (!Graphics.CTextures.rawTextures.ContainsKey(_SPRITE_NAMESPACE)) { Graphics.CTextures.addRawTexture(_SPRITE_NAMESPACE, "sprites/npc/poe"); @@ -83,16 +83,9 @@ public override void timer1(object sender) public override void destroy(object sender) { + _poeCount -= 1; + _doNpcCountCheck(ref _poeCount); base.destroy(sender); - _poeCount--; - - if (_poeCount == 0) - cleanUp(); - } - - protected override void cleanUp() - { - Graphics.CTextures.cleanUp(_SPRITE_NAMESPACE); } private void _selectVelocity() diff --git a/King of Thieves/Actors/NPC/Enemies/Rope/CBaseRope.cs b/King of Thieves/Actors/NPC/Enemies/Rope/CBaseRope.cs index 7b1731e..945954a 100644 --- a/King of Thieves/Actors/NPC/Enemies/Rope/CBaseRope.cs +++ b/King of Thieves/Actors/NPC/Enemies/Rope/CBaseRope.cs @@ -90,22 +90,10 @@ public override void init(string name, Microsoft.Xna.Framework.Vector2 position, } - protected override void cleanUp() - { - Graphics.CTextures.cleanUp(_SPRITE_NAMESPACE); - base.cleanUp(); - } - public override void destroy(object sender) { - _ropeCount--; - - if (_ropeCount <= 0) - { - cleanUp(); - _ropeCount = 0; - } - + _ropeCount -= 1; + _doNpcCountCheck(ref _ropeCount); base.destroy(sender); } diff --git a/King of Thieves/Actors/NPC/Enemies/Wizzrobe/CBaseWizzrobe.cs b/King of Thieves/Actors/NPC/Enemies/Wizzrobe/CBaseWizzrobe.cs index b7ced2f..8a4fe79 100644 --- a/King of Thieves/Actors/NPC/Enemies/Wizzrobe/CBaseWizzrobe.cs +++ b/King of Thieves/Actors/NPC/Enemies/Wizzrobe/CBaseWizzrobe.cs @@ -93,22 +93,11 @@ public override void create(object sender) public override void destroy(object sender) { - _wizzrobeCount--; - - if (_wizzrobeCount <= 0) - { - cleanUp(); - _wizzrobeCount = 0; - } - + _wizzrobeCount -= 1; + _doNpcCountCheck(ref _wizzrobeCount); base.destroy(sender); } - protected override void cleanUp() - { - Graphics.CTextures.rawTextures.Remove(_NPC_WIZZROBE); - } - public override void timer0(object sender) { base.timer0(sender); diff --git a/King of Thieves/Actors/NPC/Enemies/Zombie/CBaseZombie.cs b/King of Thieves/Actors/NPC/Enemies/Zombie/CBaseZombie.cs index 1ce2c79..fa64b37 100644 --- a/King of Thieves/Actors/NPC/Enemies/Zombie/CBaseZombie.cs +++ b/King of Thieves/Actors/NPC/Enemies/Zombie/CBaseZombie.cs @@ -25,7 +25,7 @@ class CBaseZombie : CBaseEnemy public CBaseZombie() : base() { - if (_zombieCount <= 0) + if (!Graphics.CTextures.rawTextures.ContainsKey(_SPRITE_NAMESPACE)) Graphics.CTextures.addRawTexture(_SPRITE_NAMESPACE, "sprites/npc/zombie"); _zombieCount += 1; @@ -68,18 +68,11 @@ protected void _shootScreech() Map.CMapManager.addActorToComponent(screecher, this.componentAddress); } - protected override void cleanUp() - { - if (_zombieCount <= 0) - Graphics.CTextures.cleanUp(_SPRITE_NAMESPACE); - } - public override void destroy(object sender) { - base.destroy(sender); _zombieCount -= 1; - - cleanUp(); + _doNpcCountCheck(ref _zombieCount); + base.destroy(sender); } protected override void _addCollidables()