X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FLevel%2FCampaign.hpp;fp=Source%2FLevel%2FCampaign.hpp;h=5381672f8fd2402a37079172519a79433a091038;hb=ed3662c0852c4312a612b4fc35bd03aba8d13db7;hp=0000000000000000000000000000000000000000;hpb=b84825978803615f45a9f128232e62431042aec0;p=lugaru.git diff --git a/Source/Level/Campaign.hpp b/Source/Level/Campaign.hpp new file mode 100644 index 0000000..5381672 --- /dev/null +++ b/Source/Level/Campaign.hpp @@ -0,0 +1,65 @@ +/* +Copyright (C) 2003, 2010 - Wolfire Games +Copyright (C) 2010-2016 - Lugaru contributors (see AUTHORS file) + +This file is part of Lugaru. + +Lugaru is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +Lugaru 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 General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Lugaru. If not, see . +*/ + +#include "Math/Quaternions.hpp" + +#include +#include + +extern bool campaign; + +extern int actuallevel; + +std::vector ListCampaigns(); +void LoadCampaign(); + +class CampaignLevel +{ +private: + int width; + struct Position { + int x, y; + }; +public: + std::string mapname; + std::string description; + int choosenext; + /* + 0 = Immediately load next level at the end of this one. + 1 = Go back to the world map. + 2 = Don't bring up the Fiery loading screen. Maybe other things, I've not investigated. + */ + //int numnext; // 0 on final level. As David said: he meant to add story branching, but he eventually hadn't. + std::vector nextlevel; + Position location; + CampaignLevel(); + int getStartX(); + int getStartY(); + int getEndX(); + int getEndY(); + XYZ getCenter(); + int getWidth(); + std::istream& operator<< (std::istream& is); + friend std::istream& operator>> (std::istream& is, CampaignLevel& cl) { + return cl << is; + } +}; + +extern std::vector campaignlevels;