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 KEJIM_POST_OBJ1 = 0, //# KEJIM POST 37 KEJIM_POST_OBJ2, //# KEJIM POST 38 KEJIM_BASE_OBJ1, //# KEJIM BASE 39 KEJIM_BASE_OBJ2, //# KEJIM BASE 40 KEJIM_BASE_OBJ3, //# KEJIM BASE 41 ARTUS_MINE_OBJ1, //# ARTUS MINE 42 ARTUS_MINE_OBJ2, //# ARTUS MINE 43 ARTUS_MINE_OBJ3, //# ARTUS MINE 44 ARTUS_DETENTION_OBJ1, //# ARTUS DETENTION 45 ARTUS_DETENTION_OBJ2, //# ARTUS DETENTION 46 ARTUS_TOPSIDE_OBJ1, //# ARTUS TOPSIDE 47 ARTUS_TOPSIDE_OBJ2, //# ARTUS TOPSIDE 48 YAVIN_TEMPLE_OBJ1, //# YAVIN TEMPLE 49 YAVIN_TRIAL_OBJ1, //# YAVIN TRIAL 50 YAVIN_TRIAL_OBJ2, //# YAVIN TRIAL 51 NS_STREETS_OBJ1, //# NS STREETS 52 NS_STREETS_OBJ2, //# NS STREETS 53 NS_STREETS_OBJ3, //# NS STREETS 54 NS_HIDEOUT_OBJ1, //# NS HIDEOUT 55 NS_HIDEOUT_OBJ2, //# NS HIDEOUT 56 NS_STARPAD_OBJ1, //# NS STARPAD 57 NS_STARPAD_OBJ2, //# NS STARPAD 58 NS_STARPAD_OBJ3, //# NS STARPAD 59 NS_STARPAD_OBJ4, //# NS STARPAD 60 NS_STARPAD_OBJ5, //# NS STARPAD 61 BESPIN_UNDERCITY_OBJ1, //# BESPIN UNDERCITY 62 BESPIN_UNDERCITY_OBJ2, //# BESPIN UNDERCITY 63 BESPIN_STREETS_OBJ1, //# BESPIN STREETS 64 BESPIN_STREETS_OBJ2, //# BESPIN STREETS 65 BESPIN_PLATFORM_OBJ1, //# BESPIN PLATFORM 66 BESPIN_PLATFORM_OBJ2, //# BESPIN PLATFORM 67 CAIRN_BAY_OBJ1, //# CAIRN BAY 68 CAIRN_BAY_OBJ2, //# CAIRN BAY 69 CAIRN_ASSEMBLY_OBJ1, //# CAIRN ASSEMBLY 70 CAIRN_REACTOR_OBJ1, //# CAIRN REACTOR 71 CAIRN_REACTOR_OBJ2, //# CAIRN REACTOR 72 CAIRN_DOCK1_OBJ1, //# CAIRN DOCK1 73 CAIRN_DOCK1_OBJ2, //# CAIRN DOCK1 74 DOOM_COMM_OBJ1, //# DOOM COMM 75 DOOM_COMM_OBJ2, //# DOOM COMM 76 DOOM_COMM_OBJ3, //# DOOM COMM 77 DOOM_DETENTION_OBJ1, //# DOOM DETENTION 78 DOOM_DETENTION_OBJ2, //# DOOM DETENTION 79 DOOM_SHIELDS_OBJ1, //# DOOM SHIELDS 80 DOOM_SHIELDS_OBJ2, //# DOOM SHIELDS 81 YAVIN_SWAMP_OBJ1, //# YAVIN SWAMP 82 YAVIN_SWAMP_OBJ2, //# YAVIN SWAMP 83 YAVIN_CANYON_OBJ1, //# YAVIN CANYON 84 YAVIN_CANYON_OBJ2, //# YAVIN CANYON 85 YAVIN_COURTYARD_OBJ1, //# YAVIN COURTYARD 86 YAVIN_COURTYARD_OBJ2, //# YAVIN COURTYARD 87 YAVIN_FINAL_OBJ1, //# YAVIN FINAL 88 KEJIM_POST_OBJ3, //# KEJIM POST - GRAPHICS IN IT. 89 KEJIM_POST_OBJ4, //# KEJIM POST - GRAPHICS IN IT. 90 KEJIM_POST_OBJ5, //# KEJIM POST - GRAPHICS IN IT. 91 ARTUS_DETENTION_OBJ3, //# ARTUS DETENTION 92 DOOM_COMM_OBJ4, //# DOOM COMM - GRAPHICS IN IT. 93 DOOM_SHIELDS_OBJ3, //# DOOM SHIELDS 94 DEMO_OBJ1, //# DEMO 95 DEMO_OBJ2, //# DEMO 96 DEMO_OBJ3, //# DEMO 97 DEMO_OBJ4, //# DEMO 98 99 //# #eol 100 MAX_OBJECTIVES, 101 } objectiveNumber_t; 102 103 104 typedef enum //# MissionFailed_e 105 { 106 MISSIONFAILED_JAN=0, //# 107 MISSIONFAILED_LUKE, //# 108 MISSIONFAILED_LANDO, //# 109 MISSIONFAILED_R5D2, //# 110 MISSIONFAILED_WARDEN, //# 111 MISSIONFAILED_PRISONERS, //# 112 MISSIONFAILED_EMPLACEDGUNS, //# 113 MISSIONFAILED_LADYLUCK, //# 114 MISSIONFAILED_KYLECAPTURE, //# 115 MISSIONFAILED_TOOMANYALLIESDIED, //# 116 //# #eol 117 MAX_MISSIONFAILED, 118 } missionFailed_t; 119 120 121 typedef enum //# StatusText_e 122 { 123 //================================================= 124 // 125 //================================================= 126 STAT_INSUBORDINATION = 0, //# Starfleet will not tolerate such insubordination 127 STAT_YOUCAUSEDDEATHOFTEAMMATE, //# You caused the death of a teammate. 128 STAT_DIDNTPROTECTTECH, //# You failed to protect Chell, your technician. 129 STAT_DIDNTPROTECT7OF9, //# You failed to protect 7 of 9 130 STAT_NOTSTEALTHYENOUGH, //# You weren't quite stealthy enough 131 STAT_STEALTHTACTICSNECESSARY, //# Starfleet will not tolerate such insubordination 132 STAT_WATCHYOURSTEP, //# Watch your step 133 STAT_JUDGEMENTMUCHDESIRED, //# Your judgement leaves much to be desired 134 135 //# #eol 136 MAX_STATUSTEXT, 137 } statusText_t; 138 139 extern qboolean missionInfo_Updated; 140 141 #define SET_TACTICAL_OFF 0 142 #define SET_TACTICAL_ON 1 143 144 #define SET_OBJ_HIDE 0 145 #define SET_OBJ_SHOW 1 146 #define SET_OBJ_PENDING 2 147 #define SET_OBJ_SUCCEEDED 3 148 #define SET_OBJ_FAILED 4 149 150 #define OBJECTIVE_HIDE 0 151 #define OBJECTIVE_SHOW 1 152 153 #define OBJECTIVE_STAT_PENDING 0 154 #define OBJECTIVE_STAT_SUCCEEDED 1 155 #define OBJECTIVE_STAT_FAILED 2 156 157 extern int statusTextIndex; 158 159 void OBJ_SaveObjectiveData(void); 160 void OBJ_LoadObjectiveData(void); 161 extern void OBJ_SetPendingObjectives(gentity_t *ent); 162 163 #ifndef G_OBJECTIVES_CPP 164 165 extern stringID_table_t objectiveTable []; 166 extern stringID_table_t statusTextTable []; 167 extern stringID_table_t missionFailedTable []; 168 169 #else 170 171 stringID_table_t objectiveTable [] = 172 { 173 //================================================= 174 // 175 //================================================= 176 ENUM2STRING(KEJIM_POST_OBJ1), //# KEJIM POST 177 ENUM2STRING(KEJIM_POST_OBJ2), //# KEJIM POST 178 ENUM2STRING(KEJIM_BASE_OBJ1), //# KEJIM BASE 179 ENUM2STRING(KEJIM_BASE_OBJ2), //# KEJIM BASE 180 ENUM2STRING(KEJIM_BASE_OBJ3), //# KEJIM BASE 181 ENUM2STRING(ARTUS_MINE_OBJ1), //# ARTUS MINE 182 ENUM2STRING(ARTUS_MINE_OBJ2), //# ARTUS MINE 183 ENUM2STRING(ARTUS_MINE_OBJ3), //# ARTUS MINE 184 ENUM2STRING(ARTUS_DETENTION_OBJ1), //# ARTUS DETENTION 185 ENUM2STRING(ARTUS_DETENTION_OBJ2), //# ARTUS DETENTION 186 ENUM2STRING(ARTUS_TOPSIDE_OBJ1), //# ARTUS TOPSIDE 187 ENUM2STRING(ARTUS_TOPSIDE_OBJ2), //# ARTUS TOPSIDE 188 ENUM2STRING(YAVIN_TEMPLE_OBJ1), //# YAVIN TEMPLE 189 ENUM2STRING(YAVIN_TRIAL_OBJ1), //# YAVIN TRIAL 190 ENUM2STRING(YAVIN_TRIAL_OBJ2), //# YAVIN TRIAL 191 ENUM2STRING(NS_STREETS_OBJ1), //# NS STREETS 192 ENUM2STRING(NS_STREETS_OBJ2), //# NS STREETS 193 ENUM2STRING(NS_STREETS_OBJ3), //# NS STREETS 194 ENUM2STRING(NS_HIDEOUT_OBJ1), //# NS HIDEOUT 195 ENUM2STRING(NS_HIDEOUT_OBJ2), //# NS HIDEOUT 196 ENUM2STRING(NS_STARPAD_OBJ1), //# NS STARPAD 197 ENUM2STRING(NS_STARPAD_OBJ2), //# NS STARPAD 198 ENUM2STRING(NS_STARPAD_OBJ3), //# NS STARPAD 199 ENUM2STRING(NS_STARPAD_OBJ4), //# NS STARPAD 200 ENUM2STRING(NS_STARPAD_OBJ5), //# NS STARPAD 201 ENUM2STRING(BESPIN_UNDERCITY_OBJ1), //# BESPIN UNDERCITY 202 ENUM2STRING(BESPIN_UNDERCITY_OBJ2), //# BESPIN UNDERCITY 203 ENUM2STRING(BESPIN_STREETS_OBJ1), //# BESPIN STREETS 204 ENUM2STRING(BESPIN_STREETS_OBJ2), //# BESPIN STREETS 205 ENUM2STRING(BESPIN_PLATFORM_OBJ1), //# BESPIN PLATFORM 206 ENUM2STRING(BESPIN_PLATFORM_OBJ2), //# BESPIN PLATFORM 207 ENUM2STRING(CAIRN_BAY_OBJ1), //# CAIRN BAY 208 ENUM2STRING(CAIRN_BAY_OBJ2), //# CAIRN BAY 209 ENUM2STRING(CAIRN_ASSEMBLY_OBJ1), //# CAIRN ASSEMBLY 210 ENUM2STRING(CAIRN_REACTOR_OBJ1), //# CAIRN REACTOR 211 ENUM2STRING(CAIRN_REACTOR_OBJ2), //# CAIRN REACTOR 212 ENUM2STRING(CAIRN_DOCK1_OBJ1), //# CAIRN DOCK1 213 ENUM2STRING(CAIRN_DOCK1_OBJ2), //# CAIRN DOCK1 214 ENUM2STRING(DOOM_COMM_OBJ1), //# DOOM COMM 215 ENUM2STRING(DOOM_COMM_OBJ2), //# DOOM COMM 216 ENUM2STRING(DOOM_COMM_OBJ3), //# DOOM COMM 217 ENUM2STRING(DOOM_DETENTION_OBJ1), //# DOOM DETENTION 218 ENUM2STRING(DOOM_DETENTION_OBJ2), //# DOOM DETENTION 219 ENUM2STRING(DOOM_SHIELDS_OBJ1), //# DOOM SHIELDS 220 ENUM2STRING(DOOM_SHIELDS_OBJ2), //# DOOM SHIELDS 221 ENUM2STRING(YAVIN_SWAMP_OBJ1), //# YAVIN SWAMP 222 ENUM2STRING(YAVIN_SWAMP_OBJ2), //# YAVIN SWAMP 223 ENUM2STRING(YAVIN_CANYON_OBJ1), //# YAVIN CANYON 224 ENUM2STRING(YAVIN_CANYON_OBJ2), //# YAVIN CANYON 225 ENUM2STRING(YAVIN_COURTYARD_OBJ1), //# YAVIN COURTYARD 226 ENUM2STRING(YAVIN_COURTYARD_OBJ2), //# YAVIN COURTYARD 227 ENUM2STRING(YAVIN_FINAL_OBJ1), //# YAVIN FINAL 228 ENUM2STRING(KEJIM_POST_OBJ3), //# KEJIM POST - GRAPHICS IN IT. 229 ENUM2STRING(KEJIM_POST_OBJ4), //# KEJIM POST - GRAPHICS IN IT. 230 ENUM2STRING(KEJIM_POST_OBJ5), //# KEJIM POST - GRAPHICS IN IT. 231 ENUM2STRING(ARTUS_DETENTION_OBJ3), //# ARTUS DETENTION 232 ENUM2STRING(DOOM_COMM_OBJ4), //# DOOM COMM - GRAPHICS IN IT. IT MUST BE LAST IN THE LIST 233 ENUM2STRING(DOOM_SHIELDS_OBJ3), //# DOOM SHIELDS 234 ENUM2STRING(DEMO_OBJ1), //# DEMO 235 ENUM2STRING(DEMO_OBJ2), //# DEMO 236 ENUM2STRING(DEMO_OBJ3), //# DEMO 237 ENUM2STRING(DEMO_OBJ4), //# DEMO 238 239 //stringID_table_t Must end with a null entry 240 {"", 0} 241 }; 242 243 stringID_table_t missionFailedTable [] = 244 { 245 ENUM2STRING(MISSIONFAILED_JAN), //# JAN DIED 246 ENUM2STRING(MISSIONFAILED_LUKE), //# LUKE DIED 247 ENUM2STRING(MISSIONFAILED_LANDO), //# LANDO DIED 248 ENUM2STRING(MISSIONFAILED_R5D2), //# R5D2 DIED 249 ENUM2STRING(MISSIONFAILED_WARDEN), //# THE WARDEN DIED 250 ENUM2STRING(MISSIONFAILED_PRISONERS), //# TOO MANY PRISONERS DIED 251 ENUM2STRING(MISSIONFAILED_EMPLACEDGUNS),//# ALL EMPLACED GUNS GONE 252 ENUM2STRING(MISSIONFAILED_LADYLUCK), //# LADY LUCK DISTROYED 253 ENUM2STRING(MISSIONFAILED_KYLECAPTURE), //# KYLE HAS BEEN CAPTURED 254 ENUM2STRING(MISSIONFAILED_TOOMANYALLIESDIED), //# TOO MANY ALLIES DIED 255 256 //stringID_table_t Must end with a null entry 257 {"", 0} 258 }; 259 260 stringID_table_t statusTextTable [] = 261 { 262 //================================================= 263 // 264 //================================================= 265 ENUM2STRING(STAT_INSUBORDINATION), //# Starfleet will not tolerate such insubordination 266 ENUM2STRING(STAT_YOUCAUSEDDEATHOFTEAMMATE), //# You caused the death of a teammate. 267 ENUM2STRING(STAT_DIDNTPROTECTTECH), //# You failed to protect Chell, your technician. 268 ENUM2STRING(STAT_DIDNTPROTECT7OF9), //# You failed to protect 7 of 9 269 ENUM2STRING(STAT_NOTSTEALTHYENOUGH), //# You weren't quite stealthy enough 270 ENUM2STRING(STAT_STEALTHTACTICSNECESSARY), //# Starfleet will not tolerate such insubordination 271 ENUM2STRING(STAT_WATCHYOURSTEP), //# Watch your step 272 ENUM2STRING(STAT_JUDGEMENTMUCHDESIRED), //# Your judgement leaves much to be desired 273 //stringID_table_t Must end with a null entry 274 {"", 0} 275 }; 276 277 #endif// #ifndef G_OBJECTIVES_CPP 278 279 280 #endif// #ifndef __OBJECTIVES_H__ 281 282