diff options
author | Wushin <pasekei@gmail.com> | 2015-04-29 22:40:55 -0500 |
---|---|---|
committer | Wushin <pasekei@gmail.com> | 2015-04-29 22:40:55 -0500 |
commit | c7f0a0dbb9fe0cb42b0516ae1d4d60f72bd4ebb5 (patch) | |
tree | 804da9630fafbd0a0321fd6ea586a576ce07c431 /src/ast/quest.hpp | |
parent | a75608ef2f62a07879e7ef6d73c0ebe5b23908b2 (diff) | |
parent | 950bc8a1a239829864600b82e40d801514fca709 (diff) | |
download | tmwa-c7f0a0dbb9fe0cb42b0516ae1d4d60f72bd4ebb5.tar.gz tmwa-c7f0a0dbb9fe0cb42b0516ae1d4d60f72bd4ebb5.tar.bz2 tmwa-c7f0a0dbb9fe0cb42b0516ae1d4d60f72bd4ebb5.tar.xz tmwa-c7f0a0dbb9fe0cb42b0516ae1d4d60f72bd4ebb5.zip |
Merge pull request #65 from wushin/quest-log
Quest log
Diffstat (limited to 'src/ast/quest.hpp')
-rw-r--r-- | src/ast/quest.hpp | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/ast/quest.hpp b/src/ast/quest.hpp new file mode 100644 index 0000000..5112524 --- /dev/null +++ b/src/ast/quest.hpp @@ -0,0 +1,65 @@ +#pragma once +// ast/quest.hpp - Structure of tmwa questdb +// +// Copyright © 2015 Ed Pasek <pasekei@gmail.com> +// +// 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 <http://www.gnu.org/licenses/>. + +#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> questid; + Spanned<VarName> quest_var; + Spanned<VarName> quest_vr; + Spanned<int> quest_shift; + Spanned<int> quest_mask; + }; + + using QuestOrCommentBase = Variant<Comment, Quest>; + struct QuestOrComment : QuestOrCommentBase + { + QuestOrComment(Comment o) : QuestOrCommentBase(std::move(o)) {} + QuestOrComment(Quest o) : QuestOrCommentBase(std::move(o)) {} + io::LineSpan span; + }; + + Option<Result<QuestOrComment>> parse_quest(io::LineCharReader& lr); +} // namespace quest +} // namespace ast +} // namespace tmwa |