From 7cd5aa1c2de2bc60885b55ac4097ac8db2e72ac0 Mon Sep 17 00:00:00 2001 From: Martin Michelsen Date: Sun, 3 Mar 2024 23:15:57 -0800 Subject: [PATCH] fix event lookups in quest availability expressions --- src/Lobby.cc | 13 ------------- src/Lobby.hh | 2 -- src/QuestAvailabilityExpression.cc | 4 ++-- src/QuestAvailabilityExpression.hh | 2 +- src/ReceiveCommands.cc | 2 +- 5 files changed, 4 insertions(+), 19 deletions(-) diff --git a/src/Lobby.cc b/src/Lobby.cc index 2afe6c9e..c6f179b8 100644 --- a/src/Lobby.cc +++ b/src/Lobby.cc @@ -767,19 +767,6 @@ Lobby::JoinError Lobby::join_error_for_client(std::shared_ptr c, const s return JoinError::ALLOWED; } -uint8_t Lobby::game_event_for_lobby_event(uint8_t lobby_event) { - if (lobby_event > 7) { - return 0; - } - if (lobby_event == 7) { - return 2; - } - if (lobby_event == 2) { - return 0; - } - return lobby_event; -} - bool Lobby::item_exists(uint8_t floor, uint32_t item_id) const { if (floor >= this->floor_item_managers.size()) { return false; diff --git a/src/Lobby.hh b/src/Lobby.hh index bee07bb3..60e3f497 100644 --- a/src/Lobby.hh +++ b/src/Lobby.hh @@ -294,8 +294,6 @@ struct Lobby : public std::enable_shared_from_this { QuestIndex::IncludeCondition quest_include_condition() const; - static uint8_t game_event_for_lobby_event(uint8_t lobby_event); - std::unordered_map> clients_by_serial_number() const; static void dispatch_on_idle_timeout(evutil_socket_t, short, void* ctx); diff --git a/src/QuestAvailabilityExpression.cc b/src/QuestAvailabilityExpression.cc index 5e18bb61..53ddc025 100644 --- a/src/QuestAvailabilityExpression.cc +++ b/src/QuestAvailabilityExpression.cc @@ -252,14 +252,14 @@ bool QuestAvailabilityExpression::EventLookupNode::operator==(const Node& other) } int64_t QuestAvailabilityExpression::EventLookupNode::evaluate(const Env& env) const { - return env.num_players; + return env.event; } string QuestAvailabilityExpression::EventLookupNode::str() const { return "V_Event"; } -QuestAvailabilityExpression::ConstantNode::ConstantNode(bool value) +QuestAvailabilityExpression::ConstantNode::ConstantNode(int64_t value) : value(value) {} bool QuestAvailabilityExpression::ConstantNode::operator==(const Node& other) const { diff --git a/src/QuestAvailabilityExpression.hh b/src/QuestAvailabilityExpression.hh index 9b5869cb..bf0f3c7b 100644 --- a/src/QuestAvailabilityExpression.hh +++ b/src/QuestAvailabilityExpression.hh @@ -162,7 +162,7 @@ protected: class ConstantNode : public Node { public: - ConstantNode(bool value); + ConstantNode(int64_t value); virtual ~ConstantNode() = default; virtual bool operator==(const Node& other) const; virtual int64_t evaluate(const Env& env) const; diff --git a/src/ReceiveCommands.cc b/src/ReceiveCommands.cc index a02d728e..c4f6317d 100644 --- a/src/ReceiveCommands.cc +++ b/src/ReceiveCommands.cc @@ -4233,7 +4233,7 @@ shared_ptr create_game_generic( throw logic_error("invalid quest script version"); } - game->event = Lobby::game_event_for_lobby_event(current_lobby->event); + game->event = current_lobby->event; game->block = 0xFF; game->max_clients = game->check_flag(Lobby::Flag::IS_SPECTATOR_TEAM) ? 12 : 4; game->min_level = min_level;