Example #1
0
void HWNewNet::followPlayer(const QString & nick)
{
    if (!isInRoom())
    {
        RawSendNet(QString("FOLLOW%1%2").arg(delimeter).arg(nick));
        isChief = false;
    }
}
Example #2
0
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();
}
Example #4
0
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) {