protected override void DerivedWash(DLink pLink) { Debug.Assert(pLink != null); AlienNode pNode = (AlienNode)pLink; pNode.Wash(); }
public static AlienNode Add(GameObject pObj) { Debug.Assert(pObj != null); AlienManager pMan = AlienManager.PrivGetInstance(); Debug.Assert(pMan != null); if (pObj.type == Component.Container.LEAF) { pMan.numAliveAliens--; } // Take a node out from Reserve list. // This node is washed in BasePopNode(). AlienNode pNode = (AlienNode)pMan.BasePopNode(); Debug.Assert(pNode != null); pNode.Set(pObj); pMan.BaseSortedAdd(pNode); return(pNode); }
protected override DLink DerivedCreateNode() { DLink pNode = new AlienNode(); Debug.Assert(pNode != null); return(pNode); }
public static void Remove(AlienNode pNode) { AlienManager pMan = AlienManager.PrivGetInstance(); Debug.Assert(pMan != null); Debug.Assert(pNode != null); pMan.BaseRemove(pNode); }
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; } }
protected override bool DerivedCompare(DLink pLinkA, DLink pLinkB) { Debug.Assert(pLinkA != null); Debug.Assert(pLinkB != null); AlienNode pDataA = (AlienNode)pLinkA; AlienNode pDataB = (AlienNode)pLinkB; Boolean status = false; if (pDataA.index == pDataB.index) { status = true; } return(status); }
protected override void DerivedDumpNode(DLink pLink) { Debug.Assert(pLink != null); AlienNode pData = (AlienNode)pLink; //pData.Dump(); }