From: Andrew R. <aar...@us...> - 2004-01-27 02:16:09
|
Update of /cvsroot/planeshift/planeshift/src/common/net In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29832/src/common/net Modified Files: messages.cpp messages.h Log Message: Fixed up petition system Index: messages.cpp =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/common/net/messages.cpp,v retrieving revision 1.123 retrieving revision 1.124 diff -C2 -d -r1.123 -r1.124 *** messages.cpp 21 Jan 2004 04:49:49 -0000 1.123 --- messages.cpp 27 Jan 2004 02:15:11 -0000 1.124 *************** *** 294,298 **** int petitionLen = (petition != NULL ? petition->Length():0); msg = new MsgEntry(sizeof(petitionLen) + 250 * (petitionLen+1) + sizeof(errMsg) + ! sizeof(succeed) + sizeof((int32_t)type) + sizeof(gm)); msg->data->type = MSGTYPEPETITION; --- 294,298 ---- int petitionLen = (petition != NULL ? petition->Length():0); msg = new MsgEntry(sizeof(petitionLen) + 250 * (petitionLen+1) + sizeof(errMsg) + ! sizeof(succeed) + sizeof((int32_t)type) + sizeof(gm)); msg->data->type = MSGTYPEPETITION; *************** *** 305,324 **** for(int i = 0; i < petitionLen; i++) { ! current = &petition->Get(i); ! msg->Add((int32_t)current->id); ! msg->Add(current->petition.GetData()); ! msg->Add(current->status.GetData()); ! ! // Add specified fields based upon GM status or not ! if(!gm) ! { ! msg->Add(current->assignedgm.GetData()); ! } ! else ! { ! msg->Add((int32_t)current->escalation); ! msg->Add(current->created.GetData()); ! msg->Add(current->player.GetData()); ! } } msg->Add(errMsg); --- 305,325 ---- for(int i = 0; i < petitionLen; i++) { ! current = &petition->Get(i); ! msg->Add((int32_t)current->id); ! msg->Add(current->petition.GetData()); ! msg->Add(current->status.GetData()); ! ! // Add specified fields based upon GM status or not ! if(!gm) ! { ! msg->Add(current->created.GetData()); ! msg->Add(current->assignedgm.GetData()); ! } ! else ! { ! msg->Add((int32_t)current->escalation); ! msg->Add(current->created.GetData()); ! msg->Add(current->player.GetData()); ! } } msg->Add(errMsg); *************** *** 342,363 **** for(int i = 0; i < count; i++) { ! // Set each property in psPetitionInfo: ! current.id = message->GetInt32(); ! current.petition = message->GetStr(); ! current.status = message->GetStr(); ! ! // Check GM fields or user fields: ! if(!isGM) ! { ! current.assignedgm = message->GetStr(); ! } ! else ! { ! current.escalation = message->GetInt32(); ! current.created = message->GetStr(); ! current.player = message->GetStr(); ! } ! ! petitions.Push(current); } --- 343,365 ---- for(int i = 0; i < count; i++) { ! // Set each property in psPetitionInfo: ! current.id = message->GetInt32(); ! current.petition = message->GetStr(); ! current.status = message->GetStr(); ! ! // Check GM fields or user fields: ! if(!isGM) ! { ! current.created = message->GetStr(); ! current.assignedgm = message->GetStr(); ! } ! else ! { ! current.escalation = message->GetInt32(); ! current.created = message->GetStr(); ! current.player = message->GetStr(); ! } ! ! petitions.Push(current); } *************** *** 371,377 **** } ! psPetitionRequestMessage::psPetitionRequestMessage(bool gm, const char* requestCmd, int petitionID) { ! msg = new MsgEntry((strlen(requestCmd) + 1) + sizeof(gm) + sizeof(int32_t)); msg->data->type = MSGTYPEPETITION; --- 373,379 ---- } ! psPetitionRequestMessage::psPetitionRequestMessage(bool gm, const char* requestCmd, int petitionID, const char* petDesc) { ! msg = new MsgEntry((strlen(requestCmd) + 1) + (strlen(petDesc)+1) + sizeof(gm) + sizeof(int32_t)); msg->data->type = MSGTYPEPETITION; *************** *** 382,385 **** --- 384,388 ---- msg->Add(requestCmd); msg->Add((int32_t)petitionID); + msg->Add(petDesc); // Sets valid flag based on message overrun state *************** *** 395,398 **** --- 398,436 ---- request = message->GetStr(); id = message->GetInt32(); + desc = message->GetStr(); + + // Sets valid flag based on message overrun state + valid=!(message->overrun); + } + + psGMGuiMessage::psGMGuiMessage(uint32_t clientnum, csArray<csString> *playerArray, int type) + { + int playerCount = (playerArray == NULL ? 0 : playerArray->Length()); + msg = new MsgEntry(sizeof(playerCount) + 250 * (playerCount+1) + sizeof(type)); + + msg->data->type = MSGTYPEGMGUI; + msg->clientnum = clientnum; + msg->priority = PRIORITY_HIGH; + + msg->Add((int32_t)playerCount); + for(int i=0; i<playerCount; i++) + { + msg->Add((playerArray->Get(i)).GetData()); + } + msg->Add((int32_t)type); + + // Sets valid flag based on message overrun state + valid=!(msg->overrun); + if (valid) + msg->ClipToCurrentSize(); + } + psGMGuiMessage::psGMGuiMessage(MsgEntry *message) + { + int playerCount = message->GetInt32(); + for(int i=0; i<playerCount; i++) + { + players.Push(message->GetStr()); + } + type = message->GetInt32(); // Sets valid flag based on message overrun state *************** *** 794,799 **** else if (command == "/slide") { ! direction = cmd.GetData() + 7; ! valid = true; } else if (command == "/slide_me") --- 832,845 ---- else if (command == "/slide") { ! cmd = cmd.GetData() + 7; ! int space = cmd.FindFirst(' '); ! if (space > 0) ! { ! direction = cmd.GetData() + space + 1; ! player = cmd.Slice(0, space).GetData(); ! valid = true; ! } ! else ! valid = false; } else if (command == "/slide_me") Index: messages.h =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/common/net/messages.h,v retrieving revision 1.130 retrieving revision 1.131 diff -C2 -d -r1.130 -r1.131 *** messages.h 21 Jan 2004 04:49:49 -0000 1.130 --- messages.h 27 Jan 2004 02:15:11 -0000 1.131 *************** *** 96,99 **** --- 96,100 ---- MSGTYPEQUESTLIST, MSGTYPEQUESTINFO, + MSGTYPEGMGUI, // Char creation messages under this *************** *** 367,371 **** PETITION_CLOSE = 2, // server sends back result of close petition PETITION_ASSIGN = 3, // server sends back result of assignation of petition ! PETITION_ESCALATE = 4 // server sends back result of escalation of petition }; --- 368,373 ---- PETITION_CLOSE = 2, // server sends back result of close petition PETITION_ASSIGN = 3, // server sends back result of assignation of petition ! PETITION_ESCALATE = 4, // server sends back result of escalation of petition ! PETITION_DIRTY = 5 // server informs client that their petition list is dirty }; *************** *** 406,415 **** bool isGM; csString request; int id; ! psPetitionRequestMessage(bool gm, const char* requestCmd, int petitionID = -1); psPetitionRequestMessage(MsgEntry *message); }; /** --- 408,435 ---- bool isGM; csString request; + csString desc; int id; ! psPetitionRequestMessage(bool gm, const char* requestCmd, int petitionID = -1, const char* petDesc = ""); psPetitionRequestMessage(MsgEntry *message); }; + /** + * Messages that are sent to the GM GUI windowManager + */ + class psGMGuiMessage : public psMessageCracker + { + public: + csArray<csString> players; + int type; + + enum { + TYPE_QUERYPLAYERLIST, + TYPE_PLAYERLIST + }; + + psGMGuiMessage(uint32_t clientnum, csArray<csString> *playerArray, int requestCmd); + psGMGuiMessage(MsgEntry *message); + }; /** *************** *** 1382,1386 **** #endif - - - --- 1402,1403 ---- |