// [4/3/2014 puos] Bring a map object public EA_CMapObject GetMapObject(EAObjID _id) { EA_CMapObject pMapObject = null; m_mapObjectList.TryGetValue(_id, out pMapObject); return(pMapObject); }
public EA_CMapObject CreateMapObject(ObjectInfo GameObjInfo, MapObjInfo mapInfo) { GameObjInfo.m_eObjType = eObjectType.CT_MAPOBJECT; EA_CMapObject pObject = (EA_CMapObject)CreateGameObject(GameObjInfo); if (mapInfo != null) { pObject.SetMapInfo(mapInfo); } return(pObject); }
public EA_CObjectBase RemoveMapObject(EAObjID _id) { EA_CMapObject pMapObject = GetMapObject(_id); if (pMapObject != null) { pMapObject.ResetInfo(eObjectState.CS_DEAD); m_mapObjectList.Remove((uint)_id); m_pIDGenerator.FreeID(_id); } return(pMapObject); }
/// <summary> /// The game object from the server is applied first and the Cry Entity is created by FirstUpdate (). /// </summary> /// <param name="GameObjInfo"></param> /// <returns></returns> public EA_CObjectBase CreateGameObject(ObjectInfo GameObjInfo) { EA_CObjectBase pReturnObject = null; GameObjInfo.m_eObjState = eObjectState.CS_SETENTITY; // Temporarily specify ObjId (sometimes temporary use by external system) bool bCreateTempId = false; if (CObjGlobal.InvalidObjID == GameObjInfo.m_GDObjId) { GameObjInfo.m_GDObjId = (EAObjID)m_pIDGenerator.GenerateID(); bCreateTempId = true; } switch (GameObjInfo.m_eObjType) { case eObjectType.CT_MYPLAYER: { if (GetMainPlayer() != null) { // My character is created at startup so I don't need to create it GetMainPlayer().SetObjInfo(GameObjInfo); pReturnObject = GetMainPlayer(); } } break; case eObjectType.CT_PLAYER: { EA_CCharUser pCharPlayer = null; // First check if it exists if (bCreateTempId == false) { pCharPlayer = GetPlayer(GameObjInfo.m_GDObjId); } // If not, create a new one if (pCharPlayer == null) { pCharPlayer = new EA_CCharUser(); if (pCharPlayer != null) { m_mapPlayerList.Add(GameObjInfo.m_GDObjId, pCharPlayer); } } // Enter the information of the created object and apply it if (pCharPlayer != null) { pCharPlayer.SetObjInfo(GameObjInfo); } pReturnObject = pCharPlayer; } break; case eObjectType.CT_NPC: { EA_CCharNPC pCharNPC = null; // First check if it exists if (bCreateTempId == false) { pCharNPC = GetNPC(GameObjInfo.m_GDObjId); } // If not, create a new one if (pCharNPC == null) { pCharNPC = new EA_CCharNPC(); if (pCharNPC != null) { m_mapNPCList.Add(GameObjInfo.m_GDObjId, pCharNPC); } } // Apply the information to the generated number if (pCharNPC != null) { pCharNPC.SetObjInfo(GameObjInfo); } pReturnObject = pCharNPC; } break; case eObjectType.CT_MONSTER: { EA_CCharMob pCharPlayer = null; // First check if it exists if (bCreateTempId == false) { pCharPlayer = GetMob(GameObjInfo.m_GDObjId); } // If not, create a new one if (pCharPlayer == null) { pCharPlayer = new EA_CCharMob(); if (pCharPlayer != null) { m_mapMonsterList.Add(GameObjInfo.m_GDObjId, pCharPlayer); } } // Apply the information to the generated number // assert( pCharInfo && "No Character Info" ); if (pCharPlayer != null) { pCharPlayer.SetObjInfo(GameObjInfo); } pReturnObject = pCharPlayer; } break; case eObjectType.CT_ITEMOBJECT: { EA_CItem pItem = null; // First check if it exists if (bCreateTempId == false) { pItem = GetItemObject(GameObjInfo.m_GDObjId); } // If not, create a new one if (pItem == null) { pItem = new EA_CItem(); if (pItem != null) { m_mapItemList.Add(GameObjInfo.m_GDObjId, pItem); } } // Apply the information to the generated number if (pItem != null) { pItem.SetObjInfo(GameObjInfo); } pReturnObject = pItem; } break; case eObjectType.CT_MAPOBJECT: { EA_CMapObject pObject = null; // First check if it exists if (bCreateTempId == false) { pObject = GetMapObject(GameObjInfo.m_GDObjId); } // If not, create a new one if (pObject == null) { pObject = new EA_CMapObject(); if (pObject != null) { m_mapObjectList.Add(GameObjInfo.m_GDObjId, pObject); } } // Apply the information to the generated number if (pObject != null) { pObject.SetObjInfo(GameObjInfo); } pReturnObject = pObject; } break; /* * case CT_QUEST: * { * // First check if it exists * if( false == bCreateTempId ) * pReturnObject = GetQuestItem(GameObjInfo.m_DiaObjId); * * // If not, create a new one * if( NULL == pReturnObject ) * { * pReturnObject = new IfDia_CObjectBase; * assert( pReturnObject && "Not Create ItemObject" ); * if( pReturnObject ) * m_mapQuestList.insert( TQuestListMap::value_type(GameObjInfo.m_DiaObjId,pReturnObject) ); * } * * // Apply the information to the generated number * if( pReturnObject ) * { * pReturnObject->SetObjInfo(GameObjInfo); * } * } * break; * /**/ } //assert( pReturnObject ); // Apply the information to the generated number if (pReturnObject != null) { m_entityList.Add(pReturnObject); } return(pReturnObject); }
public void SetMapBase(EA_CMapObject pDiaMapBase) { m_pDiaObjectBase = pDiaMapBase; }