コード例 #1
0
DWORD CObjectManager::GetModel(EntityId objectId)
{
	if(DoesExist(objectId))
		return m_Objects[objectId].dwModelHash;

	return 0;
}
コード例 #2
0
ファイル: C3DLabels.cpp プロジェクト: AgresivD/ivmultiplayer
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 */
}
コード例 #3
0
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);
	}
}
コード例 #4
0
ファイル: C3DLabels.cpp プロジェクト: AgresivD/ivmultiplayer
C3DLabel* C3DLabelManager::GetAt(LabelId id)
{
	if(DoesExist(id))
		return m_Labels[id];

	return NULL;
}
コード例 #5
0
String CBlipManager::GetName(EntityId blipId)
{
	if(DoesExist(blipId))
		return m_Blips[blipId].strName;

	return "";
}
コード例 #6
0
CPlayer * CPlayerManager::GetAt(EntityId playerId)
{
	if(!DoesExist(playerId))
		return NULL;

	return m_pPlayers[playerId];
}
コード例 #7
0
unsigned int CBlipManager::GetColor(EntityId blipId)
{
	if(DoesExist(blipId))
		return m_Blips[blipId].uiColor;

	return 0;
}
コード例 #8
0
float CBlipManager::GetSize(EntityId blipId)
{
	if(DoesExist(blipId))
		return m_Blips[blipId].fSize;

	return 0.0f;
}
コード例 #9
0
CVehicle * CVehicleManager::GetAt(EntityId vehicleId)
{
	if(!DoesExist(vehicleId))
		return NULL;

	return m_pVehicles[vehicleId];
}
コード例 #10
0
CVector3 CBlipManager::GetPosition(EntityId blipId)
{
	if(DoesExist(blipId))
		return m_Blips[blipId].vecSpawnPos;

	return CVector3(0.0f, 0.0f, 0.0f);
}
コード例 #11
0
CPlayerManager::~CPlayerManager()
{
	for(EntityId x = 0; x < MAX_PLAYERS; x++)
	{
		if(DoesExist(x))
			Remove(x, 0);
	}
}
コード例 #12
0
ファイル: C3DLabels.cpp プロジェクト: AgresivD/ivmultiplayer
void C3DLabelManager::Reset()
{
	for(LabelId i = 0; i < MAX_3D_LABELS; i++)
	{
		if(DoesExist(i))
			SAFE_DELETE(m_Labels[i]);
	}
}
コード例 #13
0
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);
}
コード例 #14
0
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));
}
コード例 #15
0
bool CObjectManager::GetRotation(EntityId objectId, CVector3& vecRotation)
{
	if(DoesExist(objectId))
	{
		vecRotation = m_Objects[objectId].vecRotation;
		return true;
	}

	return false;
}
コード例 #16
0
ファイル: C3DLabels.cpp プロジェクト: AgresivD/ivmultiplayer
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]);
	}
}
コード例 #17
0
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);
	}
}
コード例 #18
0
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);
	}
}
コード例 #19
0
int CVehicleManager::GetVehicleCount()
{
	int iCount = 0;

	for(EntityId x = 0; x < MAX_VEHICLES; x++)
	{
		if(DoesExist(x))
			iCount++;
	}

	return iCount;
}
コード例 #20
0
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);
	}
}
コード例 #21
0
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);
	}
}
コード例 #22
0
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);
	}
}
コード例 #23
0
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);
	}
}
コード例 #24
0
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;
}
コード例 #25
0
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);
	}
}
コード例 #26
0
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);
	}
}
コード例 #27
0
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);
	}
}
コード例 #28
0
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);
	}
}
コード例 #29
0
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;
}
コード例 #30
0
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);
	}
}