| | 1 | #include "prototyp.h" |
| | 2 | #include "avp_envinfo.h" |
| | 3 | #include "gamedef.h" |
| | 4 | #include <string.h> |
| | 5 | |
| | 6 | const struct Map alien_episodes[MAX_NO_OF_ALIEN_EPISODES] = |
| | 7 | { |
| | 8 | { |
| | 9 | "temple", |
| | 10 | "Episode I: Temple", |
| | 11 | }, |
| | 12 | |
| | 13 | { |
| | 14 | "escape", |
| | 15 | "Episode II: Escape", |
| | 16 | }, |
| | 17 | |
| | 18 | { |
| | 19 | "nost03", |
| | 20 | "Episode III: Ferarco", |
| | 21 | }, |
| | 22 | |
| | 23 | { |
| | 24 | "stat101", |
| | 25 | "Episode IV: Gateway", |
| | 26 | }, |
| | 27 | |
| | 28 | { |
| | 29 | "breakout", |
| | 30 | "Episode V: Earthbound", |
| | 31 | }, |
| | 32 | |
| | 33 | { |
| | 34 | "invasion_a", |
| | 35 | "Bonus I: Invasion", |
| | 36 | }, |
| | 37 | |
| | 38 | { |
| | 39 | "derelict_a", |
| | 40 | "Bonus II: Derelict", |
| | 41 | }, |
| | 42 | |
| | 43 | { |
| | 44 | "sulaco_a", |
| | 45 | "Bonus III: Tyrargo", |
| | 46 | }, |
| | 47 | |
| | 48 | { |
| | 49 | "caverns_a", |
| | 50 | "Bonus IV: Caverns", |
| | 51 | }, |
| | 52 | |
| | 53 | { |
| | 54 | "furyall_a", |
| | 55 | "Bonus V: Fury 161" |
| | 56 | } |
| | 57 | }; |
| | 58 | |
| | 59 | const struct Map marine_episodes[MAX_NO_OF_MARINE_EPISODES] = |
| | 60 | { |
| | 61 | { |
| | 62 | "derelict", |
| | 63 | "Episode I: Derelict", |
| | 64 | }, |
| | 65 | |
| | 66 | { |
| | 67 | "genshd1", |
| | 68 | "Episode II: Colony", |
| | 69 | }, |
| | 70 | |
| | 71 | { |
| | 72 | "invasion", |
| | 73 | "Episode III: Invasion", |
| | 74 | }, |
| | 75 | |
| | 76 | { |
| | 77 | "odobenus", |
| | 78 | "Episode IV: Orbital", |
| | 79 | }, |
| | 80 | |
| | 81 | { |
| | 82 | "sulaco", |
| | 83 | "Episode V: Tyrargo", |
| | 84 | }, |
| | 85 | |
| | 86 | { |
| | 87 | "hangar", |
| | 88 | "Episode VI: Hangar", |
| | 89 | }, |
| | 90 | |
| | 91 | { |
| | 92 | "temple_m", |
| | 93 | "Bonus I: Temple", |
| | 94 | }, |
| | 95 | |
| | 96 | { |
| | 97 | "vaults_m", |
| | 98 | "Bonus II: Vaults", |
| | 99 | }, |
| | 100 | |
| | 101 | { |
| | 102 | "nost03_m", |
| | 103 | "Bonus III: Ferarco", |
| | 104 | }, |
| | 105 | |
| | 106 | { |
| | 107 | "stat101_m", |
| | 108 | "Bonus IV: Gateway", |
| | 109 | }, |
| | 110 | |
| | 111 | { |
| | 112 | "fall_m", |
| | 113 | "Bonus V: Waterfall", |
| | 114 | } |
| | 115 | }; |
| | 116 | |
| | 117 | const struct Map predator_episodes[MAX_NO_OF_PREDATOR_EPISODES] = |
| | 118 | { |
| | 119 | { |
| | 120 | "fall", |
| | 121 | "Episode I: Waterfall", |
| | 122 | }, |
| | 123 | |
| | 124 | { |
| | 125 | "area52", |
| | 126 | "Episode II: Area 52", |
| | 127 | }, |
| | 128 | |
| | 129 | { |
| | 130 | "vaults", |
| | 131 | "Episode III: Vaults", |
| | 132 | }, |
| | 133 | |
| | 134 | { |
| | 135 | "furyall", |
| | 136 | "Episode IV: Fury 161", |
| | 137 | }, |
| | 138 | |
| | 139 | { |
| | 140 | "caverns", |
| | 141 | "Episode V: Caverns", |
| | 142 | }, |
| | 143 | |
| | 144 | { |
| | 145 | "battle", |
| | 146 | "Episode VI: Battle", |
| | 147 | }, |
| | 148 | |
| | 149 | { |
| | 150 | "invasion_p", |
| | 151 | "Bonus I: Invasion", |
| | 152 | }, |
| | 153 | |
| | 154 | { |
| | 155 | "escape_p", |
| | 156 | "Bonus II: Escape", |
| | 157 | }, |
| | 158 | |
| | 159 | { |
| | 160 | "temple_p", |
| | 161 | "Bonus III: Temple", |
| | 162 | }, |
| | 163 | |
| | 164 | { |
| | 165 | "breakout_p", |
| | 166 | "Bonus IV: Earthbound", |
| | 167 | }, |
| | 168 | |
| | 169 | { |
| | 170 | "sulaco_p", |
| | 171 | "Bonus V: Tyrargo", |
| | 172 | } |
| | 173 | }; |
| | 174 | |
| | 175 | const struct Map MultiplayerMaps[MAX_NO_OF_MULTIPLAYER_EPISODES] = |
| | 176 | { |
| | 177 | { |
| | 178 | "e3demo", |
| | 179 | "Massacre", |
| | 180 | }, |
| | 181 | |
| | 182 | { |
| | 183 | "statue", |
| | 184 | "Statue", |
| | 185 | }, |
| | 186 | |
| | 187 | { |
| | 188 | "als-dm", |
| | 189 | "Sewer", |
| | 190 | }, |
| | 191 | |
| | 192 | { |
| | 193 | "jockey", |
| | 194 | "Jockey", |
| | 195 | }, |
| | 196 | |
| | 197 | { |
| | 198 | "hive", |
| | 199 | "Hive", |
| | 200 | }, |
| | 201 | |
| | 202 | //multipack multiplayer levels |
| | 203 | { |
| | 204 | "leadworks", |
| | 205 | "Leadworks", |
| | 206 | }, |
| | 207 | |
| | 208 | { |
| | 209 | "hadleyshope", |
| | 210 | "Hadley's Hope", |
| | 211 | }, |
| | 212 | |
| | 213 | { |
| | 214 | "meat_factory", |
| | 215 | "Meat Factory", |
| | 216 | }, |
| | 217 | |
| | 218 | { |
| | 219 | "nostromo", |
| | 220 | "Nostromo", |
| | 221 | }, |
| | 222 | |
| | 223 | { |
| | 224 | "subway", |
| | 225 | "Subway", |
| | 226 | }, |
| | 227 | |
| | 228 | { |
| | 229 | "elevator", |
| | 230 | "Elevator", |
| | 231 | }, |
| | 232 | |
| | 233 | { |
| | 234 | "lab14", |
| | 235 | "Lab 14", |
| | 236 | }, |
| | 237 | |
| | 238 | { |
| | 239 | "compound", |
| | 240 | "Compound", |
| | 241 | }, |
| | 242 | |
| | 243 | { |
| | 244 | "office", |
| | 245 | "Office", |
| | 246 | }, |
| | 247 | }; |
| | 248 | |
| | 249 | const struct Map CoopMaps[MAX_NO_OF_COOPERATIVE_EPISODES] = |
| | 250 | { |
| | 251 | { |
| | 252 | "kens-co-op", |
| | 253 | "Stranded", |
| | 254 | }, |
| | 255 | |
| | 256 | { |
| | 257 | "trapped", |
| | 258 | "Trapped", |
| | 259 | }, |
| | 260 | |
| | 261 | { |
| | 262 | "als-dm-coop", |
| | 263 | "Sewer", |
| | 264 | }, |
| | 265 | |
| | 266 | { |
| | 267 | "jockeycoop", |
| | 268 | "Jockey", |
| | 269 | }, |
| | 270 | |
| | 271 | { |
| | 272 | "hive_c", |
| | 273 | "Hive", |
| | 274 | }, |
| | 275 | |
| | 276 | //multipack multiplayer cooperative levels |
| | 277 | { |
| | 278 | "leadworks_coop", |
| | 279 | "Leadworks", |
| | 280 | }, |
| | 281 | |
| | 282 | { |
| | 283 | "hadleyshope_coop", |
| | 284 | "Hadley's Hope", |
| | 285 | }, |
| | 286 | |
| | 287 | { |
| | 288 | "co-op_meat_factory", |
| | 289 | "Meat Factory", |
| | 290 | }, |
| | 291 | |
| | 292 | { |
| | 293 | "nostromo_coop", |
| | 294 | "Nostromo", |
| | 295 | }, |
| | 296 | |
| | 297 | { |
| | 298 | "subwaycoop", |
| | 299 | "Subway", |
| | 300 | }, |
| | 301 | |
| | 302 | { |
| | 303 | "elevator_co-op", |
| | 304 | "Elevator", |
| | 305 | }, |
| | 306 | |
| | 307 | { |
| | 308 | "lab14coop", |
| | 309 | "Lab 14", |
| | 310 | }, |
| | 311 | |
| | 312 | { |
| | 313 | "compoundcoop", |
| | 314 | "Compound", |
| | 315 | } |
| | 316 | }; |
| | 317 | |
| | 318 | void SetLevelToLoadForSinglePlayer(int episode) |
| | 319 | { |
| | 320 | const char *filename = NULL; |
| | 321 | AvP.level = episode; |
| | 322 | |
| | 323 | switch(AvP.PlayerType) |
| | 324 | { |
| | 325 | case I_Alien: |
| | 326 | filename = alien_episodes[episode].filename; |
| | 327 | break; |
| | 328 | case I_Marine: |
| | 329 | filename = marine_episodes[episode].filename; |
| | 330 | break; |
| | 331 | case I_Predator: |
| | 332 | filename = predator_episodes[episode].filename; |
| | 333 | } |
| | 334 | |
| | 335 | strcpy(AvP.LevelName, filename); |
| | 336 | } |
| | 337 | |
| | 338 | void SetLevelToLoadForMultiplayer(int episode) |
| | 339 | { |
| | 340 | strcpy(AvP.LevelName, MultiplayerMaps[episode].filename); |
| | 341 | } |
| | 342 | |
| | 343 | void SetLevelToLoadForCooperative(int episode) |
| | 344 | { |
| | 345 | strcpy(AvP.LevelName, CoopMaps[episode].filename); |
| | 346 | } |
| | 347 | |
| | 348 | void SetLevelToLoadForCheatMode(int environment) |
| | 349 | { |
| | 350 | //AvP.level = environment; |
| | 351 | //strcpy(AvP.LevelName, RifNamesForEnvironments[AvP.level]); |
| | 352 | } |
| | 353 | |
| | 354 | int NumberForCurrentLevel() |
| | 355 | { |
| | 356 | int i; |
| | 357 | |
| | 358 | for (i=0; i < MAX_NO_OF_MULTIPLAYER_EPISODES; i++) |
| | 359 | { |
| | 360 | if (!strcmp(AvP.LevelName, MultiplayerMaps[i].pretty_name)) |
| | 361 | return i; |
| | 362 | |
| | 363 | } |
| | 364 | |
| | 365 | for (i=0; i < MAX_NO_OF_COOPERATIVE_EPISODES; i++) |
| | 366 | { |
| | 367 | if (!strcmp(AvP.LevelName, CoopMaps[i].pretty_name)) |
| | 368 | return i; |
| | 369 | } |
| | 370 | |
| | 371 | return -1; |
| | 372 | } |