mirror of
https://github.com/overte-org/overte.git
synced 2025-04-23 06:53:46 +02:00
Merge branch 'master' of https://github.com/worklist/hifi
This commit is contained in:
commit
d4fbe9091f
3 changed files with 17 additions and 15 deletions
|
@ -60,7 +60,6 @@ int main(int argc, const char* argv[])
|
|||
|
||||
agentList->startDomainServerCheckInThread();
|
||||
agentList->startSilentAgentRemovalThread();
|
||||
agentList->startPingUnknownAgentsThread();
|
||||
|
||||
sockaddr *agentAddress = new sockaddr;
|
||||
unsigned char *packetData = new unsigned char[MAX_PACKET_SIZE];
|
||||
|
@ -70,34 +69,36 @@ int main(int argc, const char* argv[])
|
|||
*broadcastPacket = PACKET_HEADER_BULK_AVATAR_DATA;
|
||||
|
||||
unsigned char* currentBufferPosition = NULL;
|
||||
int agentIndex = 0;
|
||||
|
||||
while (true) {
|
||||
if (agentList->getAgentSocket().receive(agentAddress, packetData, &receivedBytes)) {
|
||||
switch (packetData[0]) {
|
||||
case PACKET_HEADER_HEAD_DATA:
|
||||
// add this agent if we don't have them yet
|
||||
if (agentList->addOrUpdateAgent(agentAddress, agentAddress, AGENT_TYPE_AVATAR, agentList->getLastAgentId())) {
|
||||
agentList->increaseAgentId();
|
||||
}
|
||||
|
||||
// this is positional data from an agent
|
||||
agentList->updateAgentWithData(agentAddress, packetData, receivedBytes);
|
||||
|
||||
|
||||
currentBufferPosition = broadcastPacket + 1;
|
||||
agentIndex = 0;
|
||||
|
||||
// send back a packet with other active agent data to this agent
|
||||
for (AgentList::iterator avatarAgent = agentList->begin();
|
||||
avatarAgent != agentList->end();
|
||||
avatarAgent++) {
|
||||
if (avatarAgent->getLinkedData() != NULL
|
||||
&& !socketMatch(agentAddress, avatarAgent->getActiveSocket())) {
|
||||
currentBufferPosition = addAgentToBroadcastPacket(currentBufferPosition, &*avatarAgent);
|
||||
for (AgentList::iterator agent = agentList->begin(); agent != agentList->end(); agent++) {
|
||||
if (agent->getLinkedData() != NULL
|
||||
&& !socketMatch(agentAddress, agent->getActiveSocket())) {
|
||||
currentBufferPosition = addAgentToBroadcastPacket(currentBufferPosition, &*agent);
|
||||
}
|
||||
|
||||
agentIndex++;
|
||||
}
|
||||
|
||||
agentList->getAgentSocket().send(agentAddress,
|
||||
broadcastPacket,
|
||||
currentBufferPosition - broadcastPacket);
|
||||
|
||||
break;
|
||||
case PACKET_HEADER_DOMAIN:
|
||||
// ignore the DS packet, for now agents are added only when they communicate directly with us
|
||||
break;
|
||||
default:
|
||||
// hand this off to the AgentList
|
||||
|
@ -107,9 +108,8 @@ int main(int argc, const char* argv[])
|
|||
}
|
||||
}
|
||||
|
||||
agentList->stopDomainServerCheckInThread();
|
||||
agentList->stopSilentAgentRemovalThread();
|
||||
agentList->stopPingUnknownAgentsThread();
|
||||
agentList->stopDomainServerCheckInThread();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
BIN
eve/resources/audio/eve.raw
Normal file
BIN
eve/resources/audio/eve.raw
Normal file
Binary file not shown.
|
@ -259,7 +259,9 @@ bool AgentList::addOrUpdateAgent(sockaddr *publicSocket, sockaddr *localSocket,
|
|||
// to use the local socket information the domain server gave us
|
||||
sockaddr_in *publicSocketIn = (sockaddr_in *)publicSocket;
|
||||
audioMixerSocketUpdate(publicSocketIn->sin_addr.s_addr, publicSocketIn->sin_port);
|
||||
} else if (newAgent->getType() == AGENT_TYPE_VOXEL) {
|
||||
} else if (newAgent->getType() == AGENT_TYPE_VOXEL || newAgent->getType() == AGENT_TYPE_AVATAR_MIXER) {
|
||||
// this is currently the cheat we use to talk directly to our test servers on EC2
|
||||
// to be removed when we have a proper identification strategy
|
||||
newAgent->activatePublicSocket();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue