public static void ResetAllAlienGrid() { AlienManager pMan = AlienManager.PrivGetInstance(); Debug.Assert(pMan != null); AlienNode pCurr = (AlienNode)pMan.BaseGetActive(); AlienNode pNext; GameObject pParent; GameObject pObj; AlienCategory pAlien; while (pCurr != null) { pNext = (AlienNode)pCurr.pNext; // Get Alien object and its parent. The parent will be AlienGroup or AlienColumn. pObj = pCurr.GetAlienObject(); pParent = (GameObject)pCurr.GetAlienObject().pParent; pObj.isDead = false; pObj.pPrev = null; pObj.pNext = null; pParent.Add(pObj); if (pObj.type == Component.Container.LEAF) { pAlien = (AlienCategory)pObj; pObj.x = pAlien.originX; pObj.y = pAlien.originY; SpriteBatch pSB_GameSprite = SpriteBatchManager.Find(SpriteBatch.Name.GameSprites); Debug.Assert(pSB_GameSprite != null); pSB_GameSprite.Attach(pObj.pProxySprite); // pMan.pSB_GameSprite.Attach(pObj.pProxySprite); } SpriteBatch pSB_Collsion = SpriteBatchManager.Find(SpriteBatch.Name.BoxSprites); pSB_Collsion.Attach(pObj.pColObject.pBoxSprite); // pMan.pSB_CollisionSprite.Attach(pObj.pColObject.pBoxSprite); AlienManager.Remove(pCurr); DLink p = pMan.BaseGetActive(); pCurr = pNext; } // Checked new Alien Hierarchy is good // pMan.pSB_GameSprite.Dump(); // pMan.pSB_CollisionSprite.Dump(); }
public static void PrintMe() { AlienManager pMan = AlienManager.PrivGetInstance(); Debug.Assert(pMan != null); AlienNode pNode = (AlienNode)pMan.BaseGetActive(); while (pNode != null) { pNode.PrintMe(); pNode = (AlienNode)pNode.pNext; } }