1 /*
2  *  This file is part of Dune Legacy.
3  *
4  *  Dune Legacy is free software: you can redistribute it and/or modify
5  *  it under the terms of the GNU General Public License as published by
6  *  the Free Software Foundation, either version 2 of the License, or
7  *  (at your option) any later version.
8  *
9  *  Dune Legacy is distributed in the hope that it will be useful,
10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  *  GNU General Public License for more details.
13  *
14  *  You should have received a copy of the GNU General Public License
15  *  along with Dune Legacy.  If not, see <http://www.gnu.org/licenses/>.
16  */
17 
18 #ifndef INTRO_H
19 #define INTRO_H
20 
21 #include <string>
22 #include <SDL_mixer.h>
23 
24 #include <CutScenes/CutScene.h>
25 #include <FileClasses/Wsafile.h>
26 
27 /**
28     This class is for showing the intro video.
29 */
30 class Intro : public CutScene
31 {
32 public:
33 
34     /// Default constructor
35     Intro();
36 
37     /// destructor
38     virtual ~Intro();
39 
40 private:
41 
42     /// \cond
43     enum IntroText {
44         IntroText_The_Battle_for_Arrakis = 2,
45         IntroText_The_planet_Arrakis = 3,
46         IntroText_Land_of_sand = 4,
47         IntroText_Home_of_the_Spice_Melange = 5,
48         IntroText_Spice_controls_the_Empire = 6,
49         IntroText_Whoever_controls_Dune = 7,
50         IntroText_The_Emperor_has_proposed = 8,
51         IntroText_The_House_that_produces = 9,
52         IntroText_There_are_no_set_territories = 10,
53         IntroText_And_no_rules_of_engagement = 11,
54         IntroText_Vast_armies_have_arrived = 12,
55         IntroText_Now_three_houses_fight = 13,
56         IntroText_The_noble_Atreides = 14,
57         IntroText_The_insidious_Ordos = 15,
58         IntroText_And_the_evil_Harkonnen = 16,
59         IntroText_Only_one_House_will_prevail = 17,
60         IntroText_Your_battle_for_Dune_begins = 18,
61         IntroText_NOW = 19
62     };
63     /// \endcond
64 
65     /// \cond
66     enum IntroVoice {
67         Voice_The_building = 0,
68         Voice_of_a_Dynasty,
69 
70         Voice_The_Planet_Arrakis,
71         Voice_Known_As_Dune,
72 
73         Voice_Land_of_sand,
74         Voice_Home,
75         Voice_of_the_spice,
76         Voice_Melange,
77 
78         Voice_The_spice,
79         Voice_controls,
80         Voice_the_Empire,
81         Voice_Whoever,
82         Voice_controls_dune,
83         Voice_controls_the_spice,
84 
85         Voice_The_Emperor,
86         Voice_has_proposed,
87         Voice_to_each_of_the_houses,
88 
89         Voice_The_House,
90         Voice_that_produces,
91         Voice_the_most_spice,
92         Voice_will_control_dune,
93 
94         Voice_There_are_no_set,
95         Voice_territories,
96         Voice_and_no,
97         Voice_rules_of_engagment,
98 
99         Voice_Vast_armies,
100         Voice_have_arrived,
101 
102         Voice_Now,
103         Voice_three_Houses_fight,
104         Voice_for_control,
105         Voice_of_Dune,
106 
107         Voice_The_noble_Atreides,
108 
109         Voice_The_insidious,
110         Voice_Ordos,
111 
112         Voice_And_the,
113         Voice_evil_Harkonnen,
114 
115         Voice_Only_one_house,
116         Voice_will_prevail,
117 
118         Voice_Your,
119         Voice_battle_for_Dune,
120         Voice_begins,
121 
122         Voice_Now_Now,
123 
124         Voice_NUM_ENTRIES
125     };
126     /// \endcond
127 
128     static const char* VoiceFileNames[Voice_NUM_ENTRIES];   ///< List of all the voice files
129 
130     Mix_Chunk*  voice[Voice_NUM_ENTRIES];                   ///< All the loaded voices
131 
132     Wsafile* pDuneText;         ///< 1. video sequence showing the dune text
133     Wsafile* pPlanet;           ///< 2. video sequence showing the planet
134     Wsafile* pSandstorm;        ///< 3. video sequence showing the sandstorm
135     Wsafile* pHarvesters;       ///< 4. video sequence showing two harvesters
136     Wsafile* pPalace;           ///< 5. video sequence showing the palace of the imperator
137     Wsafile* pImperator;        ///< 6. video sequence showing the imperator talking
138     Wsafile* pStarport;         ///< 7. video sequence showing the armies arriving at the starport
139     Wsafile* pOrdos;            ///< 8. video sequence showing two ordos launchers/deviators
140     Wsafile* pAtreides;         ///< 9. video sequence showing two atreides ornithopters
141     Wsafile* pHarkonnen;        ///< 10. video sequence showing two harkonnen troopers under attack
142     Wsafile* pDestroyedTank;    ///< 11. video sequence showing destroyed tanks
143 
144     Mix_Chunk*  wind;               ///< SFX: wind blowing
145     Mix_Chunk*  carryallLanding;    ///< SFX: carryall loading a harvester
146     Mix_Chunk*  harvester;          ///< SFX: harvester stopping
147     Mix_Chunk*  gunshot;            ///< SFX: a gunshot
148     Mix_Chunk*  glass;              ///< SFX: broken glass, destroyed by atreides ornithopters
149     Mix_Chunk*  missle;             ///< SFX: missle launched
150     Mix_Chunk*  blaster;            ///< SFX: trooper hit
151     Mix_Chunk*  blowup1;            ///< SFX: explosion
152     Mix_Chunk*  blowup2;            ///< SFX: explosion
153 };
154 
155 #endif // INTRO_H
156