Exemple #1
0
BOOL	Obj_ItemManager::Remove(ObjID_t ObjID)
{	
	__ENTER_FUNCTION

		Obj_Item*	pObj_Item	=	GetObj_Item(ObjID);

	Assert( pObj_Item ) ;

	uint index = (uint)(pObj_Item->GetObj_ItemID()) ;
	Assert( index<m_Count ) ;

	Assert( m_Count > 0 ) ;
	Assert( m_pObj_ItemID[index]==ObjID ) ;

	m_pObj_ItemID[index] = m_pObj_ItemID[m_Count-1] ;
	pObj_Item->SetObj_ItemID( INVALID_ID ) ;

	Obj_Item* pNewObj_Item = GetObj_Item(m_pObj_ItemID[index]);

	Assert( pNewObj_Item ) ;
	pNewObj_Item->SetObj_ItemID( index ) ;
	m_Count -- ;
	Assert( m_Count>=0 ) ;
	return TRUE ;
	__LEAVE_FUNCTION
		return FALSE ;

}
Exemple #2
0
VOID	Obj_ItemManager::RecycleObj_Item(ObjID_t ObjID)
{
	__ENTER_FUNCTION

		Obj_Item*	pObj_Item	=	GetObj_Item(ObjID) ;
	Assert( pObj_Item ) ;

	pObj_Item->SetActiveFlag( FALSE );
	pObj_Item->CleanUp();

	GetScene()->DeleteObject( pObj_Item );

	__LEAVE_FUNCTION
}
Exemple #3
0
BOOL	Obj_ItemManager::RemoveAllObj_Item()
{
	INT iCount = m_Count;

	for(int i = 0;i<iCount;i++)
	{
		Obj_Item* pObj_Item = GetObj_Item(m_pObj_ItemID[0]);

		if(pObj_Item)
		{
			pObj_Item->Recycle();
		}
	}

	return TRUE;
}
Exemple #4
0
	return	TRUE;

	__LEAVE_FUNCTION

		return	FALSE;

}

Packet *Obj_Item::CreateNewObjPacket( VOID )
{
	__ENTER_FUNCTION

		if ( getScene() != NULL )
		{
			_ITEM* pItem = GetObj_Item();
			Assert(pItem);
			Assert(!pItem->IsNullType());
			GCNewObjItem *pPacket = (GCNewObjItem*)(getScene()->m_nPacket_NewObj_Item);
			pPacket->CleanUp();
			pPacket->setObjType(GetType());
			pPacket->setObjID(GetID());
			pPacket->setProtectTime(GetPickOwnerTime());
			pPacket->setItemIndex(pItem->m_ItemIndex);
			pPacket->setItemCount(pItem->GetItemCount());
			for (INT i=0; i<GetOwnerCount(); ++i)
			{
				pPacket->setOwner(GetOwner(i));
			}
			pPacket->setWorldPos(*(getWorldPos()));
			pPacket->setDropObjID(GetDropObjID());