]> git.mxchange.org Git - quix0rs-blobwars.git/blob - src/resources.cpp
Update copyrights.
[quix0rs-blobwars.git] / src / resources.cpp
1 /*
2 Copyright (C) 2004-2010 Parallel Realities
3
4 This program is free software; you can redistribute it and/or
5 modify it under the terms of the GNU General Public License
6 as published by the Free Software Foundation; either version 2
7 of the License, or (at your option) any later version.
8
9 This program 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.
12
13 See the GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
18
19 */
20
21 #include "resources.h"
22
23 void loadSound(int index, const char *filename)
24 {
25         audio.loadSound(index, filename);
26
27         graphics.showLoading(1, 30);
28 }
29
30 void loadSprite(const char *token)
31 {
32         Sprite *sprite;
33
34         char name[50];
35         char filename[8][100];
36         int frameTime[8];
37
38         int i;
39         int hue, sat, val;
40
41         sscanf(token, "%s %d %d %d %s %d %s %d %s %d %s %d %s %d %s %d %s %d %s %d", name, &hue, &sat, &val, filename[0], &frameTime[0], filename[1], &frameTime[1], filename[2], &frameTime[2], filename[3], &frameTime[3], filename[4], &frameTime[4], filename[5], &frameTime[5], filename[6], &frameTime[6], filename[7], &frameTime[7]);
42
43         sprite = graphics.addSprite(name);
44
45         i = 0;
46
47         while (true)
48         {
49                 if (strcmp(filename[i], "@none@") == 0)
50                         break;
51
52                 sprite->setFrame(i, graphics.loadImage(filename[i], hue, sat, val), frameTime[i]);
53
54                 i++;
55                 
56                 if (i == 8)
57                         break;
58         }
59 }
60
61 void loadResources()
62 {
63         graphics.resetLoading();
64
65         audio.free();
66         graphics.free();
67         
68         graphics.quickSprite("cheatHeader", graphics.loadImage("gfx/main/cheats.png"));
69         graphics.quickSprite("optionsHeader", graphics.loadImage("gfx/main/options.png"));
70         graphics.quickSprite("joystickHeader", graphics.loadImage("gfx/main/joystickConfig.png"));
71         graphics.quickSprite("keyHeader", graphics.loadImage("gfx/main/keyConfig.png"));
72         graphics.quickSprite("optionsBackground", graphics.loadImage("gfx/main/optionsBackground.png"));
73
74         SDL_FillRect(graphics.screen, NULL, graphics.black);
75         graphics.drawString(_("Loading..."), 320, 440, TXT_CENTERED, graphics.screen);
76         graphics.showLoading(0, 0);
77         graphics.updateScreen();
78         
79         if (!engine.loadDefines())
80                 graphics.showErrorAndExit("Could not load map define list '%s'", "data/defines.h");
81
82         if (!engine.loadData("data/mainSprites"))
83                 graphics.showErrorAndExit(ERR_FILE, "data/mainSprites");
84
85         char *token = strtok((char*)engine.dataBuffer, "\n");
86
87         while (true)
88         {
89                 if (strcmp(token, "@EOF@") == 0)
90                 {
91                         break;
92                 }
93
94                 loadSprite(token);
95
96                 token = strtok(NULL, "\n");
97
98                 graphics.showLoading(1, 20);
99         }
100
101         loadSound(SND_WATERIN, "sound/waterIn");
102         loadSound(SND_WATEROUT, "sound/waterOut");
103         loadSound(SND_ITEM, "sound/item");
104         loadSound(SND_PISTOL, "sound/pistol");
105         loadSound(SND_RICO1, "sound/rico1");
106         loadSound(SND_RICO2, "sound/rico2");
107         loadSound(SND_MACHINEGUN, "sound/machinegun");
108         loadSound(SND_DEATH1, "sound/death1");
109         loadSound(SND_DEATH2, "sound/death2");
110         loadSound(SND_DEATH3, "sound/death3");
111         loadSound(SND_GRENADE, "sound/grenade");
112         loadSound(SND_ROCKET, "sound/rocket");
113         loadSound(SND_FIREBALL, "sound/fireball");
114         loadSound(SND_HIT, "sound/punch");
115         loadSound(SND_SPLAT, "sound/splat");
116         loadSound(SND_POP, "sound/pop1");
117         loadSound(SND_TELEPORT1, "sound/teleport1");
118         loadSound(SND_TELEPORT2, "sound/teleport2");
119         loadSound(SND_TELEPORT3, "sound/teleport3");
120         loadSound(SND_GETWEAPON, "sound/weaponPickup");
121         loadSound(SND_LASER, "sound/laser");
122         loadSound(SND_ELECDEATH1, "sound/elecDeath1");
123         loadSound(SND_ELECDEATH2, "sound/elecDeath2");
124         loadSound(SND_ELECDEATH3, "sound/elecDeath3");
125         loadSound(SND_LOCKEDDOOR, "sound/doorLocked");
126         loadSound(SND_OPENDOOR, "sound/doorOpen");
127         loadSound(SND_DOOROPENED, "sound/doorOpened");
128         loadSound(SND_SWITCH1, "sound/switch");
129         loadSound(SND_SWITCH2, "sound/switch");
130         loadSound(SND_DROWNING, "sound/drowning");
131         loadSound(SND_GULP, "sound/gulp");
132         loadSound(SND_EAT, "sound/eat");
133         loadSound(SND_THROW, "sound/throw");
134         loadSound(SND_GRBOUNCE, "sound/grenadeBounce");
135         loadSound(SND_SPREADGUN, "sound/plasma");
136         loadSound(SND_STONEBREAK, "sound/stoneBreak");
137         loadSound(SND_ELECTRICITY1, "sound/electricity1");
138         loadSound(SND_ELECTRICITY2, "sound/electricity2");
139         loadSound(SND_ELECTRICITY3, "sound/electricity3");
140         loadSound(SND_CLANG, "sound/clang");
141         loadSound(SND_FIRECRACKLE, "sound/fireCrackle");
142         loadSound(SND_CLOCK, "sound/clock");
143
144         loadDefWeapons();
145
146         graphics.showLoading(35, 35);
147
148         loadDefEnemies();
149
150         graphics.showLoading(40, 40);
151
152         loadDefItems();
153         
154         graphics.showLoading(45, 45);
155
156         graphics.loadMapTiles("gfx/common");
157
158         player.setSprites(graphics.getSprite("BobRight", true), graphics.getSprite("BobLeft", true), graphics.getSprite("BobSpin", true));
159
160         graphics.showLoading(50, 50);
161
162         loadMapData(game.mapName);
163
164         graphics.showLoading(100, 100);
165
166         #if USEPAK
167         graphics.showLoading(100, 100);
168         graphics.delay(100);
169         #endif
170
171         createBoss(game.stageName);
172         
173         game.canContinue = 0;
174
175         // We don't need this anymore. Remove it to free up some memory...
176         engine.defineList.clear();
177 }