void HWNewNet::followPlayer(const QString & nick) { if (!isInRoom()) { RawSendNet(QString("FOLLOW%1%2").arg(delimeter).arg(nick)); isChief = false; } }
FWEdge::RoomID World::inRoom(const V2D &p) { for (FWEdge::RoomID r=0;r<m_rooms.size();++r) { if (isInRoom(p,r)) return r; } return FWEdge::noRoom; }
void bt_scientist::update(float elapsed) { // If we become possessed, reset the tree and stop all actions SetMyEntity(); if (!myEntity) return; if (first_update && !isInRoom(myParent))return; first_update = true; if (possessing) setCurrent(NULL); if (possessed) return; if (stunned) SET_ANIM_SCI_BT(AST_STUNNED); updateStuck(); updateTalk("Scientist", CHandle(this).getOwner()); Recalc(); }
void Client::processPendingDatagrams() { while (udpSocket->hasPendingDatagrams()) { printf("HAS PENDING DATAGRAMS...\n"); QByteArray datagram; message_t new_mess; char ms[75]; datagram.resize(udpSocket->pendingDatagramSize()); memset(&new_mess, 0, datagram.size()); printf("READING DATAGRAMS OF size %d\n", datagram.size()); udpSocket->readDatagram((char *) &new_mess, datagram.size()); fflush(stdout); printf("operator: %d\n", new_mess.op); if((new_mess.op == 1) && isInRoom(new_mess.roomName) >= 0) { /* user joins */ QString output = "User "; output.append(QString::fromStdString(new_mess.id)); output.append(" has joined room "); output.append(QString::fromStdString(rooms.at(isInRoom(new_mess.roomName)))); output.append("\n"); outputText->append(output); } else if((new_mess.op == 2) && isInRoom(new_mess.roomName) >= 0) { /* user leaves */ QString output = "User "; output.append(QString::fromStdString(new_mess.id)); output.append(" has left the room "); output.append(QString::fromStdString(rooms.at(isInRoom(new_mess.roomName)))); output.append("\n"); outputText->append(output); } else if((new_mess.op == 3) && isInRoom(new_mess.roomName) >= 0) { /* message received */ int mes_len = new_mess.mesLen; string message(new_mess.message); QString output(QString::fromStdString(new_mess.id)); output.append(": "); output.append(QString::fromStdString(message)); output.append("\n"); outputText->append(output); } else if(new_mess.op == 4) { /* send your list rooms */ mess.op = 5; strcpy(mess.message, "\0"); sizeOfRooms = 0; for(int i = 0; i < rooms.size(); i++){ char roomI[32]; strcpy(roomI, rooms.at(i).c_str()); uint16_t l = strlen(roomI); printf("this room length: %d\n", l); for(int j = 0; j < l; j++) { mess.message[sizeOfRooms] = roomI[j]; sizeOfRooms ++; } mess.message[sizeOfRooms] = '\0'; sizeOfRooms++; } mess.message[sizeOfRooms] = '\0'; sizeOfRooms++; mess.mesLen = sizeOfRooms; printf("list of lists: %s with dim = %d\n", mess.message, mess.mesLen); /* send back message with the list */ QByteArray datagram_to_send = QByteArray(mess.version); for(int i = strlen(mess.version); i < 8; i++) { datagram_to_send += '\0'; }; strcpy(mess.roomName,""); datagram_to_send += QByteArray(mess.roomName); for(int i = strlen(mess.roomName); i < 32; i++) { datagram_to_send += '\0'; }; datagram_to_send += QByteArray(mess.id); for(int i = strlen(mess.id); i < 32; i++) { datagram_to_send += '\0'; } datagram_to_send += mess.op; printf("--size after operator added: %d\n", datagram_to_send.size()); datagram_to_send += (char) mess.mesLen; datagram_to_send += (mess.mesLen >> 8); printf("--size after mesLen added: %d\n", datagram_to_send.size()); for(int i = 0; i < mess.mesLen; i++) datagram_to_send += mess.message[i]; printf("--size after message added: %d\n", datagram_to_send.size()); fflush(stdout); udpSocket->writeDatagram(datagram_to_send, datagram_to_send.size(),groupAddress, port); } else if((new_mess.op == 5) && waitList) {