diff --git a/src/main.cc b/src/main.cc index f6e678f..f9e059e 100644 --- a/src/main.cc +++ b/src/main.cc @@ -12,11 +12,10 @@ int main(int argc, char *argv[]) { Event event2 = Event("Event 2", 1710087363, 1, true, {kill}, {}); Event event3 = Event("Event 3", 1710087369, 1, true, {}, {kill}); std::vector relatedEvents({event2, event3}); - Player player1 = Player(69, "player1", role1, player::Alive); - Player player2 = Player(420, "player2", role1, player::Alive); - Room room1(1, "Room 1", 1710087364, room::InProgress, {player1, player2}); - Room room2(2, "Room 2", 1710087384, room::Ended, {}); - int validated_action = validate_action(&player1, &kill, &room1, &relatedEvents, &player2); + Player player1 = Player(69, "player1", role1, PlayerStatus::Alive); + Player player2 = Player(420, "player2", role1, PlayerStatus::Alive); + Room room1(1, "Room 1", 1710087364, RoomStatus::InProgress, {player1, player2}); + Room room2(2, "Room 2", 1710087384, RoomStatus::Ended, {}); printf("The action validation result is %u\n", validated_action); return EXIT_SUCCESS; } diff --git a/src/modules/event.hh b/src/modules/event.hh index 98f7ba8..ae5cb78 100644 --- a/src/modules/event.hh +++ b/src/modules/event.hh @@ -8,14 +8,12 @@ #include #include -namespace event { - enum Type { - PhaseChange, - EventAction, - RoomStateChange, - PlayerStateChange, - }; -} // namespace event +enum EventType { + PhaseChange, + EventAction, + RoomStateChange, + PlayerStateChange, +}; struct Event { std::string title; diff --git a/src/modules/player.cc b/src/modules/player.cc index d67f05c..6f98124 100644 --- a/src/modules/player.cc +++ b/src/modules/player.cc @@ -4,7 +4,7 @@ #include -Player::Player(uint32_t id, std::string username, Role role, player::Status status): +Player::Player(uint32_t id, std::string username, Role role, PlayerStatus status): id(id), username(username), role(role), diff --git a/src/modules/player.hh b/src/modules/player.hh index 98abb51..7d9e09c 100644 --- a/src/modules/player.hh +++ b/src/modules/player.hh @@ -4,21 +4,19 @@ #include #include -namespace player { - enum Status { - Kicked, - Alive, - Dead, - VotedOut, - }; -} // namespace player +enum class PlayerStatus { + Kicked, + Alive, + Dead, + VotedOut, +}; struct Player { uint32_t id; std::string username; Role role; - player::Status status; + PlayerStatus status; - Player(uint32_t id, std::string username, Role role, player::Status status); + Player(uint32_t id, std::string username, Role role, PlayerStatus status); bool operator==(const Player &other) const; }; diff --git a/src/modules/room.cc b/src/modules/room.cc index 626bcd7..f2de501 100644 --- a/src/modules/room.cc +++ b/src/modules/room.cc @@ -7,7 +7,7 @@ #include #include -Room::Room(uint32_t id, std::string title, uint32_t created_at, room::Status status, std::vector players): +Room::Room(uint32_t id, std::string title, uint32_t created_at, RoomStatus status, std::vector players): id(id), title(title), status(status), @@ -16,7 +16,7 @@ Room::Room(uint32_t id, std::string title, uint32_t created_at, room::Status sta } Room::Room( - uint32_t id, std::string title, uint32_t created_at, room::Status status, std::initializer_list players): + uint32_t id, std::string title, uint32_t created_at, RoomStatus status, std::initializer_list players): id(id), title(title), status(status), diff --git a/src/modules/room.hh b/src/modules/room.hh index 4592267..dfd6460 100644 --- a/src/modules/room.hh +++ b/src/modules/room.hh @@ -8,23 +8,20 @@ #include #include -namespace room { - enum Status { - AwaitingStart, - InProgress, - Stopped, - Ended, - }; -} // namespace room +enum class RoomStatus { + AwaitingStart, + InProgress, + Stopped, + Ended, +}; struct Room { uint32_t id; std::string title; std::tm *created_at; - room::Status status; + RoomStatus status; std::vector players; - Room(uint32_t id, std::string title, uint32_t created_at, room::Status status, std::vector players); - Room( - uint32_t id, std::string title, uint32_t created_at, room::Status status, std::initializer_list players); + Room(uint32_t id, std::string title, uint32_t created_at, RoomStatus status, std::vector players); + Room(uint32_t id, std::string title, uint32_t created_at, RoomStatus status, std::initializer_list players); }; diff --git a/src/validation.cc b/src/validation.cc index 40d77cf..7bd5d1a 100644 --- a/src/validation.cc +++ b/src/validation.cc @@ -60,38 +60,38 @@ bool is_action_allowed(const Action *action, const std::vector *relevant_ * @param target Pointer to the target player (optional, defaults to `nullptr`). * @return An integer representing the validation status. */ -int validate_action( +ValidationStatus validate_action( Player *actor, const Action *action, Room *room, std::vector *related_events, Player *target = nullptr) { if (!actor) { - return validation::NoActor; + return ValidationStatus::NoActor; } if (!action) { - return validation::NoAction; + return ValidationStatus::NoAction; } if (!room) { - return validation::NoRoom; + return ValidationStatus::NoRoom; } if (!related_events) { - return validation::NoRelatedEvents; + return ValidationStatus::NoRelatedEvents; } if (!player_belongs_to_room(actor, room)) { - return validation::PlayerNotInRoom; + return ValidationStatus::PlayerNotInRoom; } if (action->has_target && !target) { - return validation::NoTargetPlayerSpecified; + return ValidationStatus::NoTargetPlayerSpecified; } - if (room->status != room::Status::InProgress) { - return validation::RoomNotInProgress; + if (room->status != RoomStatus::InProgress) { + return ValidationStatus::RoomNotInProgress; } Role *role = &actor->role; if (!role) { - return validation::NoRole; + return ValidationStatus::NoRole; } if (!action_belongs_to_role(role, action)) { - return validation::ActionDoesNotBelongToRole; + return ValidationStatus::ActionDoesNotBelongToRole; } if (!is_action_allowed(action, related_events)) { - return validation::ActionProhibited; + return ValidationStatus::ActionProhibited; } - return validation::ActionProhibited; + return ValidationStatus::ActionProhibited; } diff --git a/src/validation.hh b/src/validation.hh index 9b183c5..dcad507 100644 --- a/src/validation.hh +++ b/src/validation.hh @@ -5,20 +5,20 @@ #include -namespace validation { - enum Status { - PlayerNotInRoom, - NoTargetPlayerSpecified, - RoomNotInProgress, - ActionDoesNotBelongToRole, - ActionProhibited, - NoActor, - NoAction, - NoRole, - NoRoom, - NoRelatedEvents, - ActionValid, - }; -} // namespace validation +enum class ValidationStatus { + PlayerNotInRoom, + NoTargetPlayerSpecified, + RoomNotInProgress, + ActionDoesNotBelongToRole, + ActionProhibited, + NoActor, + NoAction, + NoRole, + NoRoom, + NoRelatedEvents, + ActionValid, +}; -int validate_action(Player *actor, const Action *action, Room *room, std::vector *relatedEvents, Player *target); + +ValidationStatus + validate_action(Player *actor, const Action *action, Room *room, std::vector *relatedEvents, Player *target);