#pragma once // ast/quest.hpp - Structure of tmwa questdb // // Copyright © 2015 Ed Pasek // // This file is part of The Mana World (Athena server) // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . #include "fwd.hpp" #include "../compat/result.hpp" #include "../io/span.hpp" #include "../sexpr/variant.hpp" #include "../mmo/clif.t.hpp" #include "../mmo/ids.hpp" #include "../mmo/strs.hpp" namespace tmwa { namespace ast { namespace quest { using io::Spanned; struct Comment { RString comment; }; struct Quest { Spanned questid; Spanned quest_var; Spanned quest_vr; Spanned quest_shift; Spanned quest_mask; }; using QuestOrCommentBase = Variant; struct QuestOrComment : QuestOrCommentBase { QuestOrComment(Comment o) : QuestOrCommentBase(std::move(o)) {} QuestOrComment(Quest o) : QuestOrCommentBase(std::move(o)) {} io::LineSpan span; }; Option> parse_quest(io::LineCharReader& lr); } // namespace quest } // namespace ast } // namespace tmwa