1 /* 2 =========================================================================== 3 Copyright (C) 2000 - 2013, Raven Software, Inc. 4 Copyright (C) 2001 - 2013, Activision, Inc. 5 Copyright (C) 2013 - 2015, OpenJK contributors 6 7 This file is part of the OpenJK source code. 8 9 OpenJK is free software; you can redistribute it and/or modify it 10 under the terms of the GNU General Public License version 2 as 11 published by the Free Software Foundation. 12 13 This program is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU General Public License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with this program; if not, see <http://www.gnu.org/licenses/>. 20 =========================================================================== 21 */ 22 23 #ifndef __OBJECTIVES_H__ 24 #define __OBJECTIVES_H__ 25 26 // mission Objectives 27 28 29 // DO NOT CHANGE MAX_MISSION_OBJ. IT AFFECTS THE SAVEGAME STRUCTURE 30 31 typedef enum //# Objective_e 32 { 33 //================================================= 34 // 35 //================================================= 36 37 LIGHTSIDE_OBJ = 0, 38 HOTH2_OBJ1, 39 HOTH2_OBJ2, 40 HOTH2_OBJ3, 41 HOTH3_OBJ1, 42 HOTH3_OBJ2, 43 HOTH3_OBJ3, 44 T2_DPREDICAMENT_OBJ1, 45 T2_DPREDICAMENT_OBJ2, 46 T2_DPREDICAMENT_OBJ3, 47 T2_DPREDICAMENT_OBJ4, 48 T2_RANCOR_OBJ1, 49 T2_RANCOR_OBJ2, 50 T2_RANCOR_OBJ3, 51 T2_RANCOR_OBJ4, 52 T2_RANCOR_OBJ5, 53 T2_RANCOR_OBJ5_2, 54 T2_RANCOR_OBJ6, 55 T2_WEDGE_OBJ1, 56 T2_WEDGE_OBJ2, 57 T2_WEDGE_OBJ3, 58 T2_WEDGE_OBJ4, 59 T2_WEDGE_OBJ5, 60 T2_WEDGE_OBJ6, 61 T2_WEDGE_OBJ7, 62 T2_WEDGE_OBJ8, 63 T2_WEDGE_OBJ9, 64 T2_WEDGE_OBJ10, 65 T2_WEDGE_OBJ11, 66 T2_WEDGE_OBJ12, 67 T3_RIFT_OBJ1, 68 T3_RIFT_OBJ2, 69 T3_RIFT_OBJ3, 70 T1_DANGER_OBJ1, 71 T1_DANGER_OBJ2, 72 T1_DANGER_OBJ3, 73 T1_DANGER_OBJ4, 74 T1_DANGER_OBJ5, 75 T3_BOUNTY_OBJ1, 76 T3_BOUNTY_OBJ2, 77 T3_BOUNTY_OBJ3, 78 T3_BOUNTY_OBJ4, 79 T3_BOUNTY_OBJ5, 80 T3_BOUNTY_OBJ6, 81 T3_BOUNTY_OBJ7, 82 T3_BOUNTY_OBJ8, 83 T3_BOUNTY_OBJ9, 84 T2_ROGUE_OBJ1, 85 T2_ROGUE_OBJ2, 86 T2_TRIP_OBJ1, 87 T2_TRIP_OBJ2, 88 T3_BYSS_OBJ1, 89 T3_BYSS_OBJ2, 90 T3_BYSS_OBJ3, 91 T3_HEVIL_OBJ1, 92 T3_HEVIL_OBJ2, 93 T3_HEVIL_OBJ3, 94 T3_STAMP_OBJ1, 95 T3_STAMP_OBJ2, 96 T3_STAMP_OBJ3, 97 T3_STAMP_OBJ4, 98 TASPIR1_OBJ1, 99 TASPIR1_OBJ2, 100 TASPIR1_OBJ3, 101 TASPIR1_OBJ4, 102 TASPIR2_OBJ1, 103 TASPIR2_OBJ2, 104 VJUN1_OBJ1, 105 VJUN1_OBJ2, 106 VJUN2_OBJ1, 107 VJUN3_OBJ1, 108 YAVIN1_OBJ1, 109 YAVIN1_OBJ2, 110 YAVIN2_OBJ1, 111 T1_FATAL_OBJ1, 112 T1_FATAL_OBJ2, 113 T1_FATAL_OBJ3, 114 T1_FATAL_OBJ4, 115 T1_FATAL_OBJ5, 116 T1_FATAL_OBJ6, 117 KOR1_OBJ1, 118 KOR1_OBJ2, 119 KOR2_OBJ1, 120 KOR2_OBJ2, 121 KOR2_OBJ3, 122 KOR2_OBJ4, 123 T1_RAIL_OBJ1, 124 T1_RAIL_OBJ2, 125 T1_RAIL_OBJ3, 126 T1_SOUR_OBJ1, 127 T1_SOUR_OBJ2, 128 T1_SOUR_OBJ3, 129 T1_SOUR_OBJ4, 130 T1_SURPRISE_OBJ1, 131 T1_SURPRISE_OBJ2, 132 T1_SURPRISE_OBJ3, 133 T1_SURPRISE_OBJ4, 134 135 //# #eol 136 MAX_OBJECTIVES, 137 } objectiveNumber_t; 138 139 140 typedef enum //# MissionFailed_e 141 { 142 MISSIONFAILED_JAN=0, //# 143 MISSIONFAILED_LUKE, //# 144 MISSIONFAILED_LANDO, //# 145 MISSIONFAILED_R5D2, //# 146 MISSIONFAILED_WARDEN, //# 147 MISSIONFAILED_PRISONERS, //# 148 MISSIONFAILED_EMPLACEDGUNS, //# 149 MISSIONFAILED_LADYLUCK, //# 150 MISSIONFAILED_KYLECAPTURE, //# 151 MISSIONFAILED_TOOMANYALLIESDIED, //# 152 MISSIONFAILED_CHEWIE, //# 153 MISSIONFAILED_KYLE, //# 154 MISSIONFAILED_ROSH, //# 155 MISSIONFAILED_WEDGE, //# 156 MISSIONFAILED_TURNED, //# Turned on your friends. 157 158 //# #eol 159 MAX_MISSIONFAILED, 160 } missionFailed_t; 161 162 163 typedef enum //# StatusText_e 164 { 165 //================================================= 166 // 167 //================================================= 168 STAT_INSUBORDINATION = 0, //# Starfleet will not tolerate such insubordination 169 STAT_YOUCAUSEDDEATHOFTEAMMATE, //# You caused the death of a teammate. 170 STAT_DIDNTPROTECTTECH, //# You failed to protect Chell, your technician. 171 STAT_DIDNTPROTECT7OF9, //# You failed to protect 7 of 9 172 STAT_NOTSTEALTHYENOUGH, //# You weren't quite stealthy enough 173 STAT_STEALTHTACTICSNECESSARY, //# Starfleet will not tolerate such insubordination 174 STAT_WATCHYOURSTEP, //# Watch your step 175 STAT_JUDGEMENTMUCHDESIRED, //# Your judgement leaves much to be desired 176 177 //# #eol 178 MAX_STATUSTEXT, 179 } statusText_t; 180 181 extern qboolean missionInfo_Updated; 182 183 #define SET_TACTICAL_OFF 0 184 #define SET_TACTICAL_ON 1 185 186 #define SET_OBJ_HIDE 0 187 #define SET_OBJ_SHOW 1 188 #define SET_OBJ_PENDING 2 189 #define SET_OBJ_SUCCEEDED 3 190 #define SET_OBJ_FAILED 4 191 192 #define OBJECTIVE_HIDE 0 193 #define OBJECTIVE_SHOW 1 194 195 #define OBJECTIVE_STAT_PENDING 0 196 #define OBJECTIVE_STAT_SUCCEEDED 1 197 #define OBJECTIVE_STAT_FAILED 2 198 199 extern int statusTextIndex; 200 201 void OBJ_SaveObjectiveData(void); 202 void OBJ_LoadObjectiveData(void); 203 extern void OBJ_SetPendingObjectives(gentity_t *ent); 204 205 #ifndef G_OBJECTIVES_CPP 206 207 extern stringID_table_t objectiveTable []; 208 extern stringID_table_t statusTextTable []; 209 extern stringID_table_t missionFailedTable []; 210 211 #else 212 213 stringID_table_t objectiveTable [] = 214 { 215 //================================================= 216 // 217 //================================================= 218 ENUM2STRING(LIGHTSIDE_OBJ), 219 ENUM2STRING(HOTH2_OBJ1), 220 ENUM2STRING(HOTH2_OBJ2), 221 ENUM2STRING(HOTH2_OBJ3), 222 ENUM2STRING(HOTH3_OBJ1), 223 ENUM2STRING(HOTH3_OBJ2), 224 ENUM2STRING(HOTH3_OBJ3), 225 ENUM2STRING(T2_DPREDICAMENT_OBJ1), 226 ENUM2STRING(T2_DPREDICAMENT_OBJ2), 227 ENUM2STRING(T2_DPREDICAMENT_OBJ3), 228 ENUM2STRING(T2_DPREDICAMENT_OBJ4), 229 ENUM2STRING(T2_RANCOR_OBJ1), 230 ENUM2STRING(T2_RANCOR_OBJ2), 231 ENUM2STRING(T2_RANCOR_OBJ3), 232 ENUM2STRING(T2_RANCOR_OBJ4), 233 ENUM2STRING(T2_RANCOR_OBJ5), 234 ENUM2STRING(T2_RANCOR_OBJ5_2), 235 ENUM2STRING(T2_RANCOR_OBJ6), 236 ENUM2STRING(T2_WEDGE_OBJ1), 237 ENUM2STRING(T2_WEDGE_OBJ2), 238 ENUM2STRING(T2_WEDGE_OBJ3), 239 ENUM2STRING(T2_WEDGE_OBJ4), 240 ENUM2STRING(T2_WEDGE_OBJ5), 241 ENUM2STRING(T2_WEDGE_OBJ6), 242 ENUM2STRING(T2_WEDGE_OBJ7), 243 ENUM2STRING(T2_WEDGE_OBJ8), 244 ENUM2STRING(T2_WEDGE_OBJ9), 245 ENUM2STRING(T2_WEDGE_OBJ10), 246 ENUM2STRING(T2_WEDGE_OBJ11), 247 ENUM2STRING(T2_WEDGE_OBJ12), 248 ENUM2STRING(T3_RIFT_OBJ1), 249 ENUM2STRING(T3_RIFT_OBJ2), 250 ENUM2STRING(T3_RIFT_OBJ3), 251 ENUM2STRING(T1_DANGER_OBJ1), 252 ENUM2STRING(T1_DANGER_OBJ2), 253 ENUM2STRING(T1_DANGER_OBJ3), 254 ENUM2STRING(T1_DANGER_OBJ4), 255 ENUM2STRING(T1_DANGER_OBJ5), 256 ENUM2STRING(T3_BOUNTY_OBJ1), 257 ENUM2STRING(T3_BOUNTY_OBJ2), 258 ENUM2STRING(T3_BOUNTY_OBJ3), 259 ENUM2STRING(T3_BOUNTY_OBJ4), 260 ENUM2STRING(T3_BOUNTY_OBJ5), 261 ENUM2STRING(T3_BOUNTY_OBJ6), 262 ENUM2STRING(T3_BOUNTY_OBJ7), 263 ENUM2STRING(T3_BOUNTY_OBJ8), 264 ENUM2STRING(T3_BOUNTY_OBJ9), 265 ENUM2STRING(T2_ROGUE_OBJ1), 266 ENUM2STRING(T2_ROGUE_OBJ2), 267 ENUM2STRING(T2_TRIP_OBJ1), 268 ENUM2STRING(T2_TRIP_OBJ2), 269 ENUM2STRING(T3_BYSS_OBJ1), 270 ENUM2STRING(T3_BYSS_OBJ2), 271 ENUM2STRING(T3_BYSS_OBJ3), 272 ENUM2STRING(T3_HEVIL_OBJ1), 273 ENUM2STRING(T3_HEVIL_OBJ2), 274 ENUM2STRING(T3_HEVIL_OBJ3), 275 ENUM2STRING(T3_STAMP_OBJ1), 276 ENUM2STRING(T3_STAMP_OBJ2), 277 ENUM2STRING(T3_STAMP_OBJ3), 278 ENUM2STRING(T3_STAMP_OBJ4), 279 ENUM2STRING(TASPIR1_OBJ1), 280 ENUM2STRING(TASPIR1_OBJ2), 281 ENUM2STRING(TASPIR1_OBJ3), 282 ENUM2STRING(TASPIR1_OBJ4), 283 ENUM2STRING(TASPIR2_OBJ1), 284 ENUM2STRING(TASPIR2_OBJ2), 285 ENUM2STRING(VJUN1_OBJ1), 286 ENUM2STRING(VJUN1_OBJ2), 287 ENUM2STRING(VJUN2_OBJ1), 288 ENUM2STRING(VJUN3_OBJ1), 289 ENUM2STRING(YAVIN1_OBJ1), 290 ENUM2STRING(YAVIN1_OBJ2), 291 ENUM2STRING(YAVIN2_OBJ1), 292 ENUM2STRING(T1_FATAL_OBJ1), 293 ENUM2STRING(T1_FATAL_OBJ2), 294 ENUM2STRING(T1_FATAL_OBJ3), 295 ENUM2STRING(T1_FATAL_OBJ4), 296 ENUM2STRING(T1_FATAL_OBJ5), 297 ENUM2STRING(T1_FATAL_OBJ6), 298 ENUM2STRING(KOR1_OBJ1), 299 ENUM2STRING(KOR1_OBJ2), 300 ENUM2STRING(KOR2_OBJ1), 301 ENUM2STRING(KOR2_OBJ2), 302 ENUM2STRING(KOR2_OBJ3), 303 ENUM2STRING(KOR2_OBJ4), 304 ENUM2STRING(T1_RAIL_OBJ1), 305 ENUM2STRING(T1_RAIL_OBJ2), 306 ENUM2STRING(T1_RAIL_OBJ3), 307 ENUM2STRING(T1_SOUR_OBJ1), 308 ENUM2STRING(T1_SOUR_OBJ2), 309 ENUM2STRING(T1_SOUR_OBJ3), 310 ENUM2STRING(T1_SOUR_OBJ4), 311 ENUM2STRING(T1_SURPRISE_OBJ1), 312 ENUM2STRING(T1_SURPRISE_OBJ2), 313 ENUM2STRING(T1_SURPRISE_OBJ3), 314 ENUM2STRING(T1_SURPRISE_OBJ4), 315 316 //stringID_table_t Must end with a null entry 317 { "", 0 } 318 }; 319 320 stringID_table_t missionFailedTable [] = 321 { 322 ENUM2STRING(MISSIONFAILED_JAN), //# JAN DIED 323 ENUM2STRING(MISSIONFAILED_LUKE), //# LUKE DIED 324 ENUM2STRING(MISSIONFAILED_LANDO), //# LANDO DIED 325 ENUM2STRING(MISSIONFAILED_R5D2), //# R5D2 DIED 326 ENUM2STRING(MISSIONFAILED_WARDEN), //# THE WARDEN DIED 327 ENUM2STRING(MISSIONFAILED_PRISONERS), //# TOO MANY PRISONERS DIED 328 ENUM2STRING(MISSIONFAILED_EMPLACEDGUNS),//# ALL EMPLACED GUNS GONE 329 ENUM2STRING(MISSIONFAILED_LADYLUCK), //# LADY LUCK DISTROYED 330 ENUM2STRING(MISSIONFAILED_KYLECAPTURE), //# KYLE HAS BEEN CAPTURED 331 ENUM2STRING(MISSIONFAILED_TOOMANYALLIESDIED), //# TOO MANY ALLIES DIED 332 ENUM2STRING(MISSIONFAILED_CHEWIE), 333 ENUM2STRING(MISSIONFAILED_KYLE), 334 ENUM2STRING(MISSIONFAILED_ROSH), 335 ENUM2STRING(MISSIONFAILED_WEDGE), 336 ENUM2STRING(MISSIONFAILED_TURNED), //# Turned on your friends. 337 338 //stringID_table_t Must end with a null entry 339 { "", 0 } 340 }; 341 342 stringID_table_t statusTextTable [] = 343 { 344 //================================================= 345 // 346 //================================================= 347 ENUM2STRING(STAT_INSUBORDINATION), //# Starfleet will not tolerate such insubordination 348 ENUM2STRING(STAT_YOUCAUSEDDEATHOFTEAMMATE), //# You caused the death of a teammate. 349 ENUM2STRING(STAT_DIDNTPROTECTTECH), //# You failed to protect Chell, your technician. 350 ENUM2STRING(STAT_DIDNTPROTECT7OF9), //# You failed to protect 7 of 9 351 ENUM2STRING(STAT_NOTSTEALTHYENOUGH), //# You weren't quite stealthy enough 352 ENUM2STRING(STAT_STEALTHTACTICSNECESSARY), //# Starfleet will not tolerate such insubordination 353 ENUM2STRING(STAT_WATCHYOURSTEP), //# Watch your step 354 ENUM2STRING(STAT_JUDGEMENTMUCHDESIRED), //# Your judgement leaves much to be desired 355 //stringID_table_t Must end with a null entry 356 { "", 0 } 357 }; 358 359 #endif// #ifndef G_OBJECTIVES_CPP 360 361 362 #endif// #ifndef __OBJECTIVES_H__ 363 364