4b825dc642cb6eb9a060e54bf8d69288fbee490494a6641b73026d662261604d7d192beae70b11dc
 
 
1
#include "prototyp.h"
 
 
2
#include "avp_envinfo.h"
 
 
3
#include "gamedef.h"
 
 
4
#include <string.h>
 
 
5
 
 
 
6
static enum AVP_ENVIRONMENT_ID MultiplayerEpisodes[] =
 
 
7
{
 
 
8
    AVP_ENVIRONMENT_MASSACRE,
 
 
9
    AVP_ENVIRONMENT_STATUE,
 
 
10
    AVP_ENVIRONMENT_SEWER,
 
 
11
    AVP_ENVIRONMENT_JOCKEY,
 
 
12
    AVP_ENVIRONMENT_HIVE,
 
 
13
    //and now the multipack levels
 
 
14
    AVP_ENVIRONMENT_LEADWORKS_MP,
 
 
15
    AVP_ENVIRONMENT_HADLEYSHOPE_MP,
 
 
16
    AVP_ENVIRONMENT_MEATFACTORY_MP,
 
 
17
    AVP_ENVIRONMENT_NOSTROMO_MP,
 
 
18
    AVP_ENVIRONMENT_SUBWAY_MP,
 
 
19
    AVP_ENVIRONMENT_ELEVATOR_MP,
 
 
20
    AVP_ENVIRONMENT_LAB14_MP,
 
 
21
    AVP_ENVIRONMENT_COMPOUND_MP,
 
 
22
    AVP_ENVIRONMENT_OFFICE_MP,
 
 
23
    AVP_ENVIRONMENT_END_OF_LIST
 
 
24
};
 
 
25
 
 
 
26
static enum AVP_ENVIRONMENT_ID CooperativeEpisodes[] =
 
 
27
{
 
 
28
    AVP_ENVIRONMENT_KENS_COOP,
 
 
29
    AVP_ENVIRONMENT_TRAPPED_COOP,
 
 
30
    AVP_ENVIRONMENT_ALS_DM_COOP,
 
 
31
    AVP_ENVIRONMENT_JOCKEY_COOP,
 
 
32
    AVP_ENVIRONMENT_HIVE_COOP,
 
 
33
    //and now the multipack levels
 
 
34
    AVP_ENVIRONMENT_LEADWORKS_COOP,
 
 
35
    AVP_ENVIRONMENT_HADLEYSHOPE_COOP,
 
 
36
    AVP_ENVIRONMENT_MEATFACTORY_COOP,
 
 
37
    AVP_ENVIRONMENT_NOSTROMO_COOP,
 
 
38
    AVP_ENVIRONMENT_SUBWAY_COOP,
 
 
39
    AVP_ENVIRONMENT_ELEVATOR_COOP,
 
 
40
    AVP_ENVIRONMENT_LAB14_COOP,
 
 
41
    AVP_ENVIRONMENT_COMPOUND_COOP,
 
 
42
    AVP_ENVIRONMENT_END_OF_LIST
 
 
43
};
 
 
44
 
 
 
45
static const char *RifNamesForEnvironments[] =
 
 
46
{
 
 
47
    // primarily Alien
 
 
48
    "temple",
 
 
49
    "escape",
 
 
50
    "nost03",
 
 
51
    "stat101",
 
 
52
    "breakout",
 
 
53
 
 
 
54
    // Alien bonus levels 
 
 
55
    "invasion_a",
 
 
56
    "derelict_a",
 
 
57
    "sulaco_a",
 
 
58
    "caverns_a",
 
 
59
    "furyall_a",
 
 
60
 
 
 
61
    // primarily Marine
 
 
62
    "derelict",
 
 
63
    "genshd1",
 
 
64
    "invasion",
 
 
65
    "odobenus",
 
 
66
    "sulaco",
 
 
67
    "hangar",
 
 
68
 
 
 
69
    // Marine bonus levels
 
 
70
    "temple_m",
 
 
71
    "vaults_m",
 
 
72
    "nost03_m",
 
 
73
    "stat101_m",
 
 
74
    "fall_m",
 
 
75
 
 
 
76
    // primarily Predator
 
 
77
    "fall",
 
 
78
    "area52",
 
 
79
    "vaults",
 
 
80
    "furyall",
 
 
81
    "caverns",
 
 
82
    "battle",
 
 
83
 
 
 
84
    // Predator    bonus levels
 
 
85
    "invasion_p",
 
 
86
    "escape_p",
 
 
87
    "temple_p",
 
 
88
    "breakout_p",
 
 
89
    "sulaco_p",
 
 
90
 
 
 
91
    // primarily multiplayer
 
 
92
    "e3demo",        //AVP_ENVIRONMENT_MASSACRE,
 
 
93
    "statue",        //AVP_ENVIRONMENT_STATUE,
 
 
94
    "als-dm",        //AVP_ENVIRONMENT_SEWER,
 
 
95
    "jockey",        //AVP_ENVIRONMENT_JOCKEY
 
 
96
    "hive",            //AVP_ENVIRONEMENT_HIVE
 
 
97
 
 
 
98
    //cooperative levels
 
 
99
    "kens-co-op",        //AVP_ENVIRONMENT_KENS_COOP,
 
 
100
    "trapped",        //AVP_ENVIRONMENT_TRAPPED_COOP,
 
 
101
    "als-dm-coop",        //AVP_ENVIRONMENT_ALS_DM_COOP,
 
 
102
    "jockeycoop",        //AVP_ENVIRONMENT_JOCKEY_COOP,
 
 
103
    "hive_c",        //AVP_ENVIRONMENT_HIVE_COOP,
 
 
104
 
 
 
105
    // demo levels
 
 
106
    "e3demosp",        //AVP_ENVIRONMENT_E3DEMOSP,
 
 
107
 
 
 
108
    "Not a Level",        //AVP_ENVIRONMENT_END_OF_LIST
 
 
109
 
 
 
110
    //multipack multiplayer levels
 
 
111
    "leadworks",        //AVP_ENVIRONMENT_LEADWORKS_MP,
 
 
112
    "hadleyshope",        //AVP_ENVIRONMENT_HADLEYSHOPE_MP,
 
 
113
    "meat_factory",        //AVP_ENVIRONMENT_MEATFACTORY_MP,
 
 
114
    "nostromo",        //AVP_ENVIRONMENT_NOSTROMO_MP,
 
 
115
    "subway",        //AVP_ENVIRONMENT_SUBWAY_MP,
 
 
116
    "elevator",        //AVP_ENVIRONMENT_ELEVATOR_MP,
 
 
117
    "lab14",        //AVP_ENVIRONMENT_LAB14_MP,
 
 
118
    "compound",        //AVP_ENVIRONMENT_COMPOUND_MP,
 
 
119
    "office",        //AVP_ENVIRONMENT_OFFICE_MP,
 
 
120
 
 
 
121
    //multipack multiplayer cooperative levels
 
 
122
    "leadworks_coop",        //AVP_ENVIRONMENT_LEADWORKS_COOP,
 
 
123
    "hadleyshope_coop",        //AVP_ENVIRONMENT_HADLEYSHOPE_COOP,
 
 
124
    "co-op_meat_factory",        //AVP_ENVIRONMENT_MEATFACTORY_COOP,
 
 
125
    "nostromo_coop",        //AVP_ENVIRONMENT_NOSTROMO_COOP,
 
 
126
    "subwaycoop",            //AVP_ENVIRONMENT_SUBWAY_COOP,
 
 
127
    "elevator_co-op",        //AVP_ENVIRONMENT_ELEVATOR_COOP,
 
 
128
    "lab14coop",            //AVP_ENVIRONMENT_LAB14_COOP,
 
 
129
    "compoundcoop",            //AVP_ENVIRONMENT_COMPOUND_COOP,
 
 
130
};
 
 
131
 
 
 
132
extern char LevelName[];
 
 
133
 
 
 
134
void SetLevelToLoadForSinglePlayer(int episode)
 
 
135
{
 
 
136
    switch(AvP.PlayerType)
 
 
137
    {
 
 
138
        case I_Alien:
 
 
139
            AvP.level = episode;
 
 
140
        break;
 
 
141
        case I_Marine:
 
 
142
            AvP.level = MAX_NO_OF_ALIEN_EPISODES + episode;
 
 
143
        break;
 
 
144
        case I_Predator:
 
 
145
            AvP.level = MAX_NO_OF_ALIEN_EPISODES + MAX_NO_OF_MARINE_EPISODES + episode;
 
 
146
    }
 
 
147
 
 
 
148
    strcpy(LevelName, RifNamesForEnvironments[AvP.level]);
 
 
149
}
 
 
150
 
 
 
151
void SetLevelToLoadForMultiplayer(int episode)
 
 
152
{
 
 
153
    //is this a custom level?
 
 
154
    if(episode >= MAX_NO_OF_MULTIPLAYER_EPISODES)
 
 
155
    {
 
 
156
    }
 
 
157
    else
 
 
158
    {
 
 
159
        strcpy(LevelName, RifNamesForEnvironments[MultiplayerEpisodes[episode]]);
 
 
160
    }
 
 
161
}
 
 
162
 
 
 
163
void SetLevelToLoadForCooperative(int episode)
 
 
164
{
 
 
165
    //is this a custom level?
 
 
166
    if(episode >= MAX_NO_OF_COOPERATIVE_EPISODES)
 
 
167
    {
 
 
168
    }
 
 
169
    else
 
 
170
    {
 
 
171
        strcpy(LevelName, RifNamesForEnvironments[CooperativeEpisodes[episode]]);
 
 
172
    }
 
 
173
}
 
 
174
 
 
 
175
void SetLevelToLoadForCheatMode(int environment)
 
 
176
{
 
 
177
    AvP.level = environment;
 
 
178
    strcpy(LevelName, RifNamesForEnvironments[AvP.level]);
 
 
179
}
 
 
180
 
 
 
181
int NumberForCurrentLevel() 
 
 
182
{
 
 
183
    int a = 0;
 
 
184
 
 
 
185
    for (; a < AVP_ENVIRONMENT_END_OF_MULTIPACK_LIST; a++) 
 
 
186
        if (!strcmp(LevelName, RifNamesForEnvironments[a])) 
 
 
187
            return a;
 
 
188
return a;
 
 
189
}