redid set handling, again. did other stuff
[riven-wahrk.git] / src / stack.h
blob378ececa6a3b2ca4fb8b66679b6a9ae6e4853edb
2 /*
4 * Riven-Wahrk - a reimplementation of the game Riven, by Cyan
5 * Copyright (C) 2010 Tyler Genter <tylergenter@gmail.com>
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
22 #ifndef RIVEN_STACK_H
23 #define RIVEN_STACK_H
25 #include <vector>
27 #include <stdint.h>
28 #include <stdio.h>
32 * Manages a stack (each island is its own stack)
34 * a - main menu
35 * b - boiler/lake
36 * g - garden island - has large map/where you locate the domes
37 * j - has the community, lake in the middle, submarine, etc
38 * o - ghens office - the sky looks red, your in the cage
39 * p - prison, where whats-her-name is trapped
40 * r - rebels, the beehive thing in the middle of the lake
41 * t - temple, telescope, lake in the building
45 namespace riven {
47 class mohawk_t;
48 class file_t;
50 class mhk_group_t {
52 friend class file_t;
54 std::vector<mohawk_t*> mohawks;
56 public:
58 mhk_group_t (const std::string &path);
59 mhk_group_t () {}
61 void load (std::vector<std::string> &files);
67 class stack_t : public mhk_group_t {
69 unsigned which;
71 public:
73 mhk_group_t *sound_group ();
75 enum { ASPIT, BSPIT, GSPIT, JSPIT, OSPIT, PSPIT, RSPIT, TSPIT };
77 static void choose_set ();
79 static void load_stack (unsigned which);
84 extern stack_t *game_stack;
88 #endif