DWORD CObjectManager::GetModel(EntityId objectId) { if(DoesExist(objectId)) return m_Objects[objectId].dwModelHash; return 0; }
LabelId C3DLabelManager::Add(const String& text, const CVector3& vecPosition, DWORD dwColor, bool bVisible, float fStreamingDistance) { for(LabelId i = 0; i < MAX_3D_LABELS; i++) { if(!DoesExist(i)) { m_Labels[i] = new C3DLabel(i, text, vecPosition, dwColor, bVisible, fStreamingDistance); m_Labels[i]->SetText(text); m_Labels[i]->SetPosition(vecPosition); m_Labels[i]->SetVisible(true); CBitStream bsSend; bsSend.WriteCompressed(i); bsSend.Write(m_Labels[i]->GetText()); bsSend.Write(m_Labels[i]->GetPosition()); bsSend.Write(m_Labels[i]->GetColor()); bsSend.Write(m_Labels[i]->GetStreamingDistance()); bsSend.Write(m_Labels[i]->GetDimension()); bsSend.WriteBit(m_Labels[i]->IsVisible()); g_pNetworkManager->RPC(RPC_New3DLabel, &bsSend, PRIORITY_HIGH, RELIABILITY_RELIABLE_ORDERED, INVALID_ENTITY_ID, true); return i; } } return MAX_3D_LABELS; /* INVALID ID */ }
void CObjectManager::AttachToPlayer(EntityId objectId, EntityId playerId, const CVector3& vecPos, const CVector3& vecRot, int iBone) { if(DoesExist(objectId)) { m_Objects[objectId].bAttached = true; m_Objects[objectId].bVehicleAttached = false; m_Objects[objectId].uiVehiclePlayerId = playerId; m_Objects[objectId].vecAttachPosition = vecPos; m_Objects[objectId].vecAttachRotation = vecRot; m_Objects[objectId].iBone = iBone; CBitStream bsSend; bsSend.WriteCompressed(objectId); bsSend.Write(m_Objects[objectId].bAttached); bsSend.Write(m_Objects[objectId].bVehicleAttached); bsSend.Write(m_Objects[objectId].uiVehiclePlayerId); bsSend.Write(m_Objects[objectId].vecAttachPosition); bsSend.Write(m_Objects[objectId].vecAttachRotation); if(iBone != -1) { bsSend.Write1(); bsSend.Write(m_Objects[objectId].iBone); } else bsSend.Write0(); g_pNetworkManager->RPC(RPC_ScriptingAttachObject,&bsSend,PRIORITY_HIGH, RELIABILITY_RELIABLE_ORDERED, INVALID_ENTITY_ID, true); } }
C3DLabel* C3DLabelManager::GetAt(LabelId id) { if(DoesExist(id)) return m_Labels[id]; return NULL; }
String CBlipManager::GetName(EntityId blipId) { if(DoesExist(blipId)) return m_Blips[blipId].strName; return ""; }
CPlayer * CPlayerManager::GetAt(EntityId playerId) { if(!DoesExist(playerId)) return NULL; return m_pPlayers[playerId]; }
unsigned int CBlipManager::GetColor(EntityId blipId) { if(DoesExist(blipId)) return m_Blips[blipId].uiColor; return 0; }
float CBlipManager::GetSize(EntityId blipId) { if(DoesExist(blipId)) return m_Blips[blipId].fSize; return 0.0f; }
CVehicle * CVehicleManager::GetAt(EntityId vehicleId) { if(!DoesExist(vehicleId)) return NULL; return m_pVehicles[vehicleId]; }
CVector3 CBlipManager::GetPosition(EntityId blipId) { if(DoesExist(blipId)) return m_Blips[blipId].vecSpawnPos; return CVector3(0.0f, 0.0f, 0.0f); }
CPlayerManager::~CPlayerManager() { for(EntityId x = 0; x < MAX_PLAYERS; x++) { if(DoesExist(x)) Remove(x, 0); } }
void C3DLabelManager::Reset() { for(LabelId i = 0; i < MAX_3D_LABELS; i++) { if(DoesExist(i)) SAFE_DELETE(m_Labels[i]); } }
void Orchard::AddFruit(int i, int j, Fruit* fruit) { if (!fruit) { throw InvalidInput(); } if (!legalInput(i, j)) { throw InvalidInput(); } //we need to add to both DS's if (!DoesExist(i, j)) throw PlantDoesNotExist(); if (DoesExist(fruit->getID())) throw FruitAlreadyExist(); fruit->setLocation(PairID(i, j)); Plant* temp = GetPlant(i, j); temp->AddFruit(fruit); Fruits.Insert(fruit->getID(), fruit); }
Plant* Orchard::GetPlant(int i, int j) { if (!legalInput(i, j)) { throw InvalidInput(); } if (!DoesExist(i, j)) { throw PlantDoesNotExist(); } return Plants.getByKey(PairID(i, j)); }
bool CObjectManager::GetRotation(EntityId objectId, CVector3& vecRotation) { if(DoesExist(objectId)) { vecRotation = m_Objects[objectId].vecRotation; return true; } return false; }
void C3DLabelManager::Remove(LabelId id) { if(DoesExist(id)) { CBitStream bsSend; bsSend.WriteCompressed(id); g_pNetworkManager->RPC(RPC_Delete3DLabel, &bsSend, PRIORITY_HIGH, RELIABILITY_RELIABLE_ORDERED, INVALID_ENTITY_ID, true); SAFE_DELETE(m_Labels[id]); } }
void CBlipManager::SetName(EntityId blipId, String strName) { if(DoesExist(blipId)) { m_Blips[blipId].strName = strName; CBitStream bsSend; bsSend.Write(blipId); bsSend.Write(strName); g_pNetworkManager->RPC(RPC_ScriptingSetBlipName, &bsSend, PRIORITY_HIGH, RELIABILITY_RELIABLE_ORDERED, INVALID_ENTITY_ID, true); } }
void CBlipManager::SetColor(EntityId blipId, unsigned int uiColor) { if(DoesExist(blipId)) { m_Blips[blipId].uiColor = uiColor; CBitStream bsSend; bsSend.Write(blipId); bsSend.Write(uiColor); g_pNetworkManager->RPC(RPC_ScriptingSetBlipColor, &bsSend, PRIORITY_HIGH, RELIABILITY_RELIABLE_ORDERED, INVALID_ENTITY_ID, true); } }
int CVehicleManager::GetVehicleCount() { int iCount = 0; for(EntityId x = 0; x < MAX_VEHICLES; x++) { if(DoesExist(x)) iCount++; } return iCount; }
void CBlipManager::SetSize(EntityId blipId, float fSize) { if(DoesExist(blipId) && fSize > 0.0f && fSize <= 4.0f) { m_Blips[blipId].fSize = fSize; CBitStream bsSend; bsSend.Write(blipId); bsSend.Write(fSize); g_pNetworkManager->RPC(RPC_ScriptingSetBlipSize, &bsSend, PRIORITY_HIGH, RELIABILITY_RELIABLE_ORDERED, INVALID_ENTITY_ID, true); } }
void CBlipManager::ToggleRoute(EntityId blipId, bool bRoute) { if(DoesExist(blipId)) { m_Blips[blipId].bRouteBlip = bRoute; CBitStream bsSend; bsSend.Write(blipId); bsSend.Write(bRoute); g_pNetworkManager->RPC(RPC_ScriptingToggleBlipRoute, &bsSend, PRIORITY_HIGH, RELIABILITY_RELIABLE_ORDERED, INVALID_ENTITY_ID, true); } }
void CObjectManager::SetInterior(EntityId objectId, int iInterior) { if(DoesExist(objectId)) { m_Objects[objectId].m_iInterior = iInterior; CBitStream bsSend; bsSend.WriteCompressed(objectId); bsSend.Write(iInterior); g_pNetworkManager->RPC(RPC_ScriptingSetObjectInterior, &bsSend, PRIORITY_HIGH, RELIABILITY_RELIABLE_ORDERED, INVALID_ENTITY_ID, true); } }
void CObjectManager::SetDimension(EntityId objectId, unsigned char ucDimension) { if(DoesExist(objectId)) { m_Objects[objectId].ucDimension = ucDimension; CBitStream bsSend; bsSend.WriteCompressed(objectId); bsSend.Write(ucDimension); g_pNetworkManager->RPC(RPC_ScriptingSetObjectDimension, &bsSend, PRIORITY_HIGH, RELIABILITY_RELIABLE_ORDERED, INVALID_ENTITY_ID, true); } }
void CVehicleManager::Remove(EntityId vehicleId) { if(!DoesExist(vehicleId)) return; CSquirrelArguments pArguments; pArguments.push(vehicleId); g_pEvents->Call("vehicleDelete", &pArguments); delete m_pVehicles[vehicleId]; m_pVehicles[vehicleId] = NULL; m_bActive[vehicleId] = false; }
void Orchard::AddPlant(int i, int j, Plant* plant) { if (!legalInput(i, j)) { throw InvalidInput(); } if (DoesExist(i, j)) { throw PlantAlreadyExist(); } else { PairID key; key.msi = i; key.lsi = j; Plants.Insert(key, plant); } }
void CObjectManager::RotateObject(EntityId objectId, const CVector3& vecMoveRot, int iTime) { if(DoesExist(objectId)) { CBitStream bsSend; bsSend.WriteCompressed(objectId); bsSend.Write(vecMoveRot); bsSend.Write(iTime); m_Objects[objectId].vecRotation = vecMoveRot; g_pNetworkManager->RPC(RPC_ScriptingRotateObject, &bsSend, PRIORITY_HIGH, RELIABILITY_RELIABLE_ORDERED, INVALID_ENTITY_ID, true); } }
void CPlayerManager::Add(EntityId playerId, String sPlayerName) { if(DoesExist(playerId)) Remove(playerId, 3); m_pPlayers[playerId] = new CPlayer(playerId, sPlayerName); if(m_pPlayers[playerId]) { m_bActive[playerId] = true; m_pPlayers[playerId]->AddForWorld(); m_pPlayers[playerId]->SetState(STATE_TYPE_CONNECT); } }
void CBlipManager::SwitchIcon(EntityId blipId, bool bShow, EntityId playerId) { if(DoesExist(blipId)) { m_Blips[blipId].bShow = bShow; CBitStream bsSend; bsSend.Write(blipId); bsSend.Write(bShow); if(playerId == INVALID_ENTITY_ID) g_pNetworkManager->RPC(RPC_ScriptingSetBlipIcon, &bsSend, PRIORITY_HIGH, RELIABILITY_RELIABLE_ORDERED, INVALID_ENTITY_ID, true); else g_pNetworkManager->RPC(RPC_ScriptingSetBlipIcon, &bsSend, PRIORITY_HIGH, RELIABILITY_RELIABLE_ORDERED, playerId, false); } }
void CBlipManager::Delete(EntityId blipId) { if(!DoesExist(blipId)) return; CSquirrelArguments pArguments; pArguments.push(blipId); g_pEvents->Call("blipDelete", &pArguments); CBitStream bsSend; bsSend.WriteCompressed(blipId); g_pNetworkManager->RPC(RPC_DeleteBlip, &bsSend, PRIORITY_HIGH, RELIABILITY_RELIABLE_ORDERED, INVALID_ENTITY_ID, true); m_bActive[blipId] = false; }
void CObjectManager::Detach(EntityId objectId) { if(DoesExist(objectId)) { m_Objects[objectId].bAttached = false; m_Objects[objectId].bVehicleAttached = false; m_Objects[objectId].uiVehiclePlayerId = INVALID_ENTITY_ID; m_Objects[objectId].vecAttachPosition = CVector3(); m_Objects[objectId].vecAttachRotation = CVector3(); m_Objects[objectId].iBone = -1; CBitStream bsSend; bsSend.WriteCompressed(objectId); g_pNetworkManager->RPC(RPC_ScriptingDetachObject,&bsSend,PRIORITY_HIGH, RELIABILITY_RELIABLE_ORDERED, INVALID_ENTITY_ID, true); } }