#include "servereventdata.h" // Message structure for server events: // {"private","public"}|PlayerId|PlayerName|EventType|EventData const int event_count = 21; const event_string event_strings[event_count] = { {eventPlayerId, "player_id"}, {eventSay, "say"}, {eventName, "name"}, {eventJoin, "join"}, {eventLeave, "leave"}, {eventReadyStart, "ready_start"}, {eventSetupZones, "setup_zones"}, {eventGameStart, "game_start"}, {eventShuffle, "shuffle"}, {eventRollDice, "roll_dice"}, {eventDraw, "draw"}, {eventMoveCard, "move_card"}, {eventCreateToken, "create_token"}, {eventSetCardAttr, "set_card_attr"}, {eventAddCounter, "add_counter"}, {eventSetCounter, "set_counter"}, {eventDelCounter, "del_counter"}, {eventSetActivePlayer, "set_active_player"}, {eventSetActivePhase, "set_active_phase"}, {eventDumpZone, "dump_zone"}, {eventStopDumpZone, "stop_dump_zone"} }; ServerEventData::ServerEventData(const QString &line) { QStringList values = line.split("|"); IsPublic = !values.takeFirst().compare("public"); PlayerId = values.takeFirst().toInt(); PlayerName = values.takeFirst(); QString type = values.takeFirst(); bool found = false; for (int i = 0; i < event_count; i++) if (!type.compare(event_strings[i].str)) { EventType = event_strings[i].type; found = true; break; } if (!found) EventType = eventInvalid; EventData = values; }