void InfluenceMap::RegisterGameObj(TID objId, PlayerType ownerId) { if (m_registeredObjects.count(objId) == 0) { RegObjEntry *pNewObj = new RegObjEntry; GameEntity *pGameObj = nullptr; GameType *pObjType = nullptr; pNewObj->ObjId = objId; pNewObj->OwnerId = ownerId; pNewObj->Stamped = false; pGameObj = g_Game->GetPlayer(ownerId)->GetEntity(objId); _ASSERTE(pGameObj); pNewObj->LastPosition = Vector2(-1, -1); pObjType = g_Game->GetEntityType((EntityClassType)pGameObj->TypeId()); _ASSERTE(pObjType); pNewObj->ObjWidth = pObjType->P(TP_Width) + pObjType->P(TP_BuildingExpansionIncrement); pNewObj->ObjHeight = pObjType->P(TP_Height); m_registeredObjects[objId] = pNewObj; } }
void TrainAction::InitializePostConditions() { vector<Expression*> m_terms; EntityClassType entityTypeId = (EntityClassType)_params[PARAM_EntityClassId]; GameType *pGameType = g_Game->GetEntityType(entityTypeId); if (!pGameType->P(TP_IsWorker)) { m_terms.push_back(new PlayerAttributeExist(PLAYER_Self, PATTR_AlliedAttackersTotalHP, g_Game->GetEntityType(entityTypeId)->P(TP_MaxHp))); m_terms.push_back(new PlayerAttributeExist(PLAYER_Self, PATTR_AlliedAttackersTotalDamage, g_Game->GetEntityType(entityTypeId)->P(TP_GroundAttack))); } m_terms.push_back(new EntityClassExist(PLAYER_Self, entityTypeId, 1)); _postCondition = new And(m_terms); }
void OccupanceDataIM::RegisterGameObj(TID objId, PlayerType ownerId) { if (m_registeredObjects.count(objId) == 0) UnregisterGameObj(objId); RegObjEntry *pNewObj = new RegObjEntry; GameEntity *pGameObj = nullptr; GameType *pObjType = nullptr; pNewObj->ObjId = objId; pNewObj->OwnerId = ownerId; pNewObj->Stamped = false; pGameObj = g_Game->GetPlayer(ownerId)->GetEntity(objId); _ASSERTE(pGameObj); pNewObj->LastPosition = Vector2(-1, -1); pObjType = g_Game->GetEntityType((EntityClassType)pGameObj->TypeId()); _ASSERTE(pObjType); pNewObj->ObjWidth = pObjType->P(TP_Width) + pObjType->P(TP_BuildingExpansionIncrement); pNewObj->ObjHeight = pObjType->P(TP_Height); if ((pNewObj->OwnerId == PLAYER_Self && (pObjType->P(TP_IsResoureDepot) || g_Game->Self()->Race()->GetResourceSource(RESOURCE_Secondary) == pGameObj->TypeId())) || pObjType->P(TP_IsSecondaryResource) || pObjType->P(TP_IsPrimaryResource)) { pNewObj->IsAllSidePadded = true; pNewObj->PaddingSize = m_cellSide; pNewObj->ObjWidth += (2 * pNewObj->PaddingSize); pNewObj->ObjHeight += (2 * pNewObj->PaddingSize); } m_registeredObjects[objId] = pNewObj; }