mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-05 21:13:55 -07:00
genericize the proto
This commit is contained in:
parent
b4da05e75f
commit
f4a9748a6d
7 changed files with 39 additions and 20 deletions
|
|
@ -22,6 +22,7 @@
|
||||||
#include <libcockatrice/protocol/pb/event_draw_cards.pb.h>
|
#include <libcockatrice/protocol/pb/event_draw_cards.pb.h>
|
||||||
#include <libcockatrice/protocol/pb/event_dump_zone.pb.h>
|
#include <libcockatrice/protocol/pb/event_dump_zone.pb.h>
|
||||||
#include <libcockatrice/protocol/pb/event_flip_card.pb.h>
|
#include <libcockatrice/protocol/pb/event_flip_card.pb.h>
|
||||||
|
#include <libcockatrice/protocol/pb/event_game_log_notice.pb.h>
|
||||||
#include <libcockatrice/protocol/pb/event_game_say.pb.h>
|
#include <libcockatrice/protocol/pb/event_game_say.pb.h>
|
||||||
#include <libcockatrice/protocol/pb/event_move_card.pb.h>
|
#include <libcockatrice/protocol/pb/event_move_card.pb.h>
|
||||||
#include <libcockatrice/protocol/pb/event_reveal_cards.pb.h>
|
#include <libcockatrice/protocol/pb/event_reveal_cards.pb.h>
|
||||||
|
|
@ -30,7 +31,6 @@
|
||||||
#include <libcockatrice/protocol/pb/event_set_card_counter.pb.h>
|
#include <libcockatrice/protocol/pb/event_set_card_counter.pb.h>
|
||||||
#include <libcockatrice/protocol/pb/event_set_counter.pb.h>
|
#include <libcockatrice/protocol/pb/event_set_counter.pb.h>
|
||||||
#include <libcockatrice/protocol/pb/event_shuffle.pb.h>
|
#include <libcockatrice/protocol/pb/event_shuffle.pb.h>
|
||||||
#include <libcockatrice/protocol/pb/event_undo_draw_failed.pb.h>
|
|
||||||
#include <libcockatrice/utility/zone_names.h>
|
#include <libcockatrice/utility/zone_names.h>
|
||||||
|
|
||||||
PlayerEventHandler::PlayerEventHandler(PlayerLogic *_player) : QObject(_player), player(_player)
|
PlayerEventHandler::PlayerEventHandler(PlayerLogic *_player) : QObject(_player), player(_player)
|
||||||
|
|
@ -582,9 +582,16 @@ void PlayerEventHandler::eventChangeZoneProperties(const Event_ChangeZonePropert
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void PlayerEventHandler::eventUndoDrawFailed(const Event_UndoDrawFailed &)
|
void PlayerEventHandler::eventGameLogNotice(const Event_GameLogNotice &event)
|
||||||
{
|
{
|
||||||
emit logUndoDrawFailed(player);
|
Event_GameLogNotice::NoticeType type = event.notice_type();
|
||||||
|
switch (type) {
|
||||||
|
case Event_GameLogNotice::UNDO_DRAW_FAILED:
|
||||||
|
emit logUndoDrawFailed(player);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
qWarning() << "Received Event_GameLogNotice with unknown noticeType: " << type;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void PlayerEventHandler::processGameEvent(GameEvent::GameEventType type,
|
void PlayerEventHandler::processGameEvent(GameEvent::GameEventType type,
|
||||||
|
|
@ -650,8 +657,8 @@ void PlayerEventHandler::processGameEvent(GameEvent::GameEventType type,
|
||||||
case GameEvent::CHANGE_ZONE_PROPERTIES:
|
case GameEvent::CHANGE_ZONE_PROPERTIES:
|
||||||
eventChangeZoneProperties(event.GetExtension(Event_ChangeZoneProperties::ext));
|
eventChangeZoneProperties(event.GetExtension(Event_ChangeZoneProperties::ext));
|
||||||
break;
|
break;
|
||||||
case GameEvent::UNDO_DRAW_FAILED:
|
case GameEvent::GAME_LOG_NOTICE:
|
||||||
eventUndoDrawFailed(event.GetExtension(Event_UndoDrawFailed::ext));
|
eventGameLogNotice(event.GetExtension(Event_GameLogNotice::ext));
|
||||||
break;
|
break;
|
||||||
default: {
|
default: {
|
||||||
qWarning() << "unhandled game event" << type;
|
qWarning() << "unhandled game event" << type;
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ class Event_SetCardAttr;
|
||||||
class Event_SetCardCounter;
|
class Event_SetCardCounter;
|
||||||
class Event_SetCounter;
|
class Event_SetCounter;
|
||||||
class Event_Shuffle;
|
class Event_Shuffle;
|
||||||
class Event_UndoDrawFailed;
|
class Event_GameLogNotice;
|
||||||
|
|
||||||
class PlayerEventHandler : public QObject
|
class PlayerEventHandler : public QObject
|
||||||
{
|
{
|
||||||
|
|
@ -111,7 +111,7 @@ public:
|
||||||
void eventDrawCards(const Event_DrawCards &event);
|
void eventDrawCards(const Event_DrawCards &event);
|
||||||
void eventRevealCards(const Event_RevealCards &event, EventProcessingOptions options);
|
void eventRevealCards(const Event_RevealCards &event, EventProcessingOptions options);
|
||||||
void eventChangeZoneProperties(const Event_ChangeZoneProperties &event);
|
void eventChangeZoneProperties(const Event_ChangeZoneProperties &event);
|
||||||
void eventUndoDrawFailed(const Event_UndoDrawFailed &event);
|
void eventGameLogNotice(const Event_GameLogNotice &event);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
PlayerLogic *player;
|
PlayerLogic *player;
|
||||||
|
|
|
||||||
|
|
@ -36,10 +36,10 @@
|
||||||
#include <libcockatrice/protocol/pb/event_create_counter.pb.h>
|
#include <libcockatrice/protocol/pb/event_create_counter.pb.h>
|
||||||
#include <libcockatrice/protocol/pb/event_del_counter.pb.h>
|
#include <libcockatrice/protocol/pb/event_del_counter.pb.h>
|
||||||
#include <libcockatrice/protocol/pb/event_draw_cards.pb.h>
|
#include <libcockatrice/protocol/pb/event_draw_cards.pb.h>
|
||||||
|
#include <libcockatrice/protocol/pb/event_game_log_notice.pb.h>
|
||||||
#include <libcockatrice/protocol/pb/event_player_properties_changed.pb.h>
|
#include <libcockatrice/protocol/pb/event_player_properties_changed.pb.h>
|
||||||
#include <libcockatrice/protocol/pb/event_set_counter.pb.h>
|
#include <libcockatrice/protocol/pb/event_set_counter.pb.h>
|
||||||
#include <libcockatrice/protocol/pb/event_shuffle.pb.h>
|
#include <libcockatrice/protocol/pb/event_shuffle.pb.h>
|
||||||
#include <libcockatrice/protocol/pb/event_undo_draw_failed.pb.h>
|
|
||||||
#include <libcockatrice/protocol/pb/response.pb.h>
|
#include <libcockatrice/protocol/pb/response.pb.h>
|
||||||
#include <libcockatrice/protocol/pb/response_deck_download.pb.h>
|
#include <libcockatrice/protocol/pb/response_deck_download.pb.h>
|
||||||
#include <libcockatrice/protocol/pb/response_dump_zone.pb.h>
|
#include <libcockatrice/protocol/pb/response_dump_zone.pb.h>
|
||||||
|
|
@ -410,7 +410,8 @@ Server_Player::cmdUndoDraw(const Command_UndoDraw & /*cmd*/, ResponseContainer &
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lastDrawList.isEmpty()) {
|
if (lastDrawList.isEmpty()) {
|
||||||
Event_UndoDrawFailed event;
|
Event_GameLogNotice event;
|
||||||
|
event.set_notice_type(Event_GameLogNotice::UNDO_DRAW_FAILED);
|
||||||
ges.enqueueGameEvent(event, playerId);
|
ges.enqueueGameEvent(event, playerId);
|
||||||
return Response::RespContextError;
|
return Response::RespContextError;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -76,6 +76,7 @@ set(PROTO_FILES
|
||||||
event_game_closed.proto
|
event_game_closed.proto
|
||||||
event_game_host_changed.proto
|
event_game_host_changed.proto
|
||||||
event_game_joined.proto
|
event_game_joined.proto
|
||||||
|
event_game_log_notice.proto
|
||||||
event_game_say.proto
|
event_game_say.proto
|
||||||
event_game_state_changed.proto
|
event_game_state_changed.proto
|
||||||
event_game_state_changed.proto
|
event_game_state_changed.proto
|
||||||
|
|
@ -106,7 +107,6 @@ set(PROTO_FILES
|
||||||
event_set_card_counter.proto
|
event_set_card_counter.proto
|
||||||
event_set_counter.proto
|
event_set_counter.proto
|
||||||
event_shuffle.proto
|
event_shuffle.proto
|
||||||
event_undo_draw_failed.proto
|
|
||||||
event_user_joined.proto
|
event_user_joined.proto
|
||||||
event_user_left.proto
|
event_user_left.proto
|
||||||
event_user_message.proto
|
event_user_message.proto
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
syntax = "proto2";
|
||||||
|
import "game_event.proto";
|
||||||
|
|
||||||
|
// Notifies clients of an event that happened, and which could safely be dropped without affect the game state.
|
||||||
|
// This mostly just means events that should cause a message to be logged to chat.
|
||||||
|
message Event_GameLogNotice {
|
||||||
|
|
||||||
|
// The type of the notice.
|
||||||
|
// Clients who do not recognize the type should drop the event.
|
||||||
|
enum NoticeType {
|
||||||
|
// Player's "undo draw" command failed due to losing track of recent draw
|
||||||
|
UNDO_DRAW_FAILED = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
extend GameEvent {
|
||||||
|
optional Event_GameLogNotice ext = 2022;
|
||||||
|
}
|
||||||
|
|
||||||
|
optional NoticeType notice_type = 1;
|
||||||
|
}
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
syntax = "proto2";
|
|
||||||
import "game_event.proto";
|
|
||||||
|
|
||||||
message Event_UndoDrawFailed {
|
|
||||||
extend GameEvent {
|
|
||||||
optional Event_UndoDrawFailed ext = 2022;
|
|
||||||
}
|
|
||||||
optional sint32 phase = 1;
|
|
||||||
}
|
|
||||||
|
|
@ -33,7 +33,7 @@ message GameEvent {
|
||||||
// STOP_DUMP_ZONE = 2019; // obsolete
|
// STOP_DUMP_ZONE = 2019; // obsolete
|
||||||
CHANGE_ZONE_PROPERTIES = 2020;
|
CHANGE_ZONE_PROPERTIES = 2020;
|
||||||
REVERSE_TURN = 2021;
|
REVERSE_TURN = 2021;
|
||||||
UNDO_DRAW_FAILED = 2022;
|
GAME_LOG_NOTICE = 2022;
|
||||||
}
|
}
|
||||||
optional sint32 player_id = 1 [default = -1];
|
optional sint32 player_id = 1 [default = -1];
|
||||||
extensions 100 to max;
|
extensions 100 to max;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue