/* =========================================================================== Copyright (C) 2000 - 2013, Raven Software, Inc. Copyright (C) 2001 - 2013, Activision, Inc. Copyright (C) 2013 - 2015, OpenJK contributors This file is part of the OpenJK source code. OpenJK is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . =========================================================================== */ #ifndef __OBJECTIVES_H__ #define __OBJECTIVES_H__ // mission Objectives // DO NOT CHANGE MAX_MISSION_OBJ. IT AFFECTS THE SAVEGAME STRUCTURE typedef enum //# Objective_e { //================================================= // //================================================= KEJIM_POST_OBJ1 = 0, //# KEJIM POST KEJIM_POST_OBJ2, //# KEJIM POST KEJIM_BASE_OBJ1, //# KEJIM BASE KEJIM_BASE_OBJ2, //# KEJIM BASE KEJIM_BASE_OBJ3, //# KEJIM BASE ARTUS_MINE_OBJ1, //# ARTUS MINE ARTUS_MINE_OBJ2, //# ARTUS MINE ARTUS_MINE_OBJ3, //# ARTUS MINE ARTUS_DETENTION_OBJ1, //# ARTUS DETENTION ARTUS_DETENTION_OBJ2, //# ARTUS DETENTION ARTUS_TOPSIDE_OBJ1, //# ARTUS TOPSIDE ARTUS_TOPSIDE_OBJ2, //# ARTUS TOPSIDE YAVIN_TEMPLE_OBJ1, //# YAVIN TEMPLE YAVIN_TRIAL_OBJ1, //# YAVIN TRIAL YAVIN_TRIAL_OBJ2, //# YAVIN TRIAL NS_STREETS_OBJ1, //# NS STREETS NS_STREETS_OBJ2, //# NS STREETS NS_STREETS_OBJ3, //# NS STREETS NS_HIDEOUT_OBJ1, //# NS HIDEOUT NS_HIDEOUT_OBJ2, //# NS HIDEOUT NS_STARPAD_OBJ1, //# NS STARPAD NS_STARPAD_OBJ2, //# NS STARPAD NS_STARPAD_OBJ3, //# NS STARPAD NS_STARPAD_OBJ4, //# NS STARPAD NS_STARPAD_OBJ5, //# NS STARPAD BESPIN_UNDERCITY_OBJ1, //# BESPIN UNDERCITY BESPIN_UNDERCITY_OBJ2, //# BESPIN UNDERCITY BESPIN_STREETS_OBJ1, //# BESPIN STREETS BESPIN_STREETS_OBJ2, //# BESPIN STREETS BESPIN_PLATFORM_OBJ1, //# BESPIN PLATFORM BESPIN_PLATFORM_OBJ2, //# BESPIN PLATFORM CAIRN_BAY_OBJ1, //# CAIRN BAY CAIRN_BAY_OBJ2, //# CAIRN BAY CAIRN_ASSEMBLY_OBJ1, //# CAIRN ASSEMBLY CAIRN_REACTOR_OBJ1, //# CAIRN REACTOR CAIRN_REACTOR_OBJ2, //# CAIRN REACTOR CAIRN_DOCK1_OBJ1, //# CAIRN DOCK1 CAIRN_DOCK1_OBJ2, //# CAIRN DOCK1 DOOM_COMM_OBJ1, //# DOOM COMM DOOM_COMM_OBJ2, //# DOOM COMM DOOM_COMM_OBJ3, //# DOOM COMM DOOM_DETENTION_OBJ1, //# DOOM DETENTION DOOM_DETENTION_OBJ2, //# DOOM DETENTION DOOM_SHIELDS_OBJ1, //# DOOM SHIELDS DOOM_SHIELDS_OBJ2, //# DOOM SHIELDS YAVIN_SWAMP_OBJ1, //# YAVIN SWAMP YAVIN_SWAMP_OBJ2, //# YAVIN SWAMP YAVIN_CANYON_OBJ1, //# YAVIN CANYON YAVIN_CANYON_OBJ2, //# YAVIN CANYON YAVIN_COURTYARD_OBJ1, //# YAVIN COURTYARD YAVIN_COURTYARD_OBJ2, //# YAVIN COURTYARD YAVIN_FINAL_OBJ1, //# YAVIN FINAL KEJIM_POST_OBJ3, //# KEJIM POST - GRAPHICS IN IT. KEJIM_POST_OBJ4, //# KEJIM POST - GRAPHICS IN IT. KEJIM_POST_OBJ5, //# KEJIM POST - GRAPHICS IN IT. ARTUS_DETENTION_OBJ3, //# ARTUS DETENTION DOOM_COMM_OBJ4, //# DOOM COMM - GRAPHICS IN IT. DOOM_SHIELDS_OBJ3, //# DOOM SHIELDS DEMO_OBJ1, //# DEMO DEMO_OBJ2, //# DEMO DEMO_OBJ3, //# DEMO DEMO_OBJ4, //# DEMO //# #eol MAX_OBJECTIVES, } objectiveNumber_t; typedef enum //# MissionFailed_e { MISSIONFAILED_JAN=0, //# MISSIONFAILED_LUKE, //# MISSIONFAILED_LANDO, //# MISSIONFAILED_R5D2, //# MISSIONFAILED_WARDEN, //# MISSIONFAILED_PRISONERS, //# MISSIONFAILED_EMPLACEDGUNS, //# MISSIONFAILED_LADYLUCK, //# MISSIONFAILED_KYLECAPTURE, //# MISSIONFAILED_TOOMANYALLIESDIED, //# //# #eol MAX_MISSIONFAILED, } missionFailed_t; typedef enum //# StatusText_e { //================================================= // //================================================= STAT_INSUBORDINATION = 0, //# Starfleet will not tolerate such insubordination STAT_YOUCAUSEDDEATHOFTEAMMATE, //# You caused the death of a teammate. STAT_DIDNTPROTECTTECH, //# You failed to protect Chell, your technician. STAT_DIDNTPROTECT7OF9, //# You failed to protect 7 of 9 STAT_NOTSTEALTHYENOUGH, //# You weren't quite stealthy enough STAT_STEALTHTACTICSNECESSARY, //# Starfleet will not tolerate such insubordination STAT_WATCHYOURSTEP, //# Watch your step STAT_JUDGEMENTMUCHDESIRED, //# Your judgement leaves much to be desired //# #eol MAX_STATUSTEXT, } statusText_t; extern qboolean missionInfo_Updated; #define SET_TACTICAL_OFF 0 #define SET_TACTICAL_ON 1 #define SET_OBJ_HIDE 0 #define SET_OBJ_SHOW 1 #define SET_OBJ_PENDING 2 #define SET_OBJ_SUCCEEDED 3 #define SET_OBJ_FAILED 4 #define OBJECTIVE_HIDE 0 #define OBJECTIVE_SHOW 1 #define OBJECTIVE_STAT_PENDING 0 #define OBJECTIVE_STAT_SUCCEEDED 1 #define OBJECTIVE_STAT_FAILED 2 extern int statusTextIndex; void OBJ_SaveObjectiveData(void); void OBJ_LoadObjectiveData(void); extern void OBJ_SetPendingObjectives(gentity_t *ent); #ifndef G_OBJECTIVES_CPP extern stringID_table_t objectiveTable []; extern stringID_table_t statusTextTable []; extern stringID_table_t missionFailedTable []; #else stringID_table_t objectiveTable [] = { //================================================= // //================================================= ENUM2STRING(KEJIM_POST_OBJ1), //# KEJIM POST ENUM2STRING(KEJIM_POST_OBJ2), //# KEJIM POST ENUM2STRING(KEJIM_BASE_OBJ1), //# KEJIM BASE ENUM2STRING(KEJIM_BASE_OBJ2), //# KEJIM BASE ENUM2STRING(KEJIM_BASE_OBJ3), //# KEJIM BASE ENUM2STRING(ARTUS_MINE_OBJ1), //# ARTUS MINE ENUM2STRING(ARTUS_MINE_OBJ2), //# ARTUS MINE ENUM2STRING(ARTUS_MINE_OBJ3), //# ARTUS MINE ENUM2STRING(ARTUS_DETENTION_OBJ1), //# ARTUS DETENTION ENUM2STRING(ARTUS_DETENTION_OBJ2), //# ARTUS DETENTION ENUM2STRING(ARTUS_TOPSIDE_OBJ1), //# ARTUS TOPSIDE ENUM2STRING(ARTUS_TOPSIDE_OBJ2), //# ARTUS TOPSIDE ENUM2STRING(YAVIN_TEMPLE_OBJ1), //# YAVIN TEMPLE ENUM2STRING(YAVIN_TRIAL_OBJ1), //# YAVIN TRIAL ENUM2STRING(YAVIN_TRIAL_OBJ2), //# YAVIN TRIAL ENUM2STRING(NS_STREETS_OBJ1), //# NS STREETS ENUM2STRING(NS_STREETS_OBJ2), //# NS STREETS ENUM2STRING(NS_STREETS_OBJ3), //# NS STREETS ENUM2STRING(NS_HIDEOUT_OBJ1), //# NS HIDEOUT ENUM2STRING(NS_HIDEOUT_OBJ2), //# NS HIDEOUT ENUM2STRING(NS_STARPAD_OBJ1), //# NS STARPAD ENUM2STRING(NS_STARPAD_OBJ2), //# NS STARPAD ENUM2STRING(NS_STARPAD_OBJ3), //# NS STARPAD ENUM2STRING(NS_STARPAD_OBJ4), //# NS STARPAD ENUM2STRING(NS_STARPAD_OBJ5), //# NS STARPAD ENUM2STRING(BESPIN_UNDERCITY_OBJ1), //# BESPIN UNDERCITY ENUM2STRING(BESPIN_UNDERCITY_OBJ2), //# BESPIN UNDERCITY ENUM2STRING(BESPIN_STREETS_OBJ1), //# BESPIN STREETS ENUM2STRING(BESPIN_STREETS_OBJ2), //# BESPIN STREETS ENUM2STRING(BESPIN_PLATFORM_OBJ1), //# BESPIN PLATFORM ENUM2STRING(BESPIN_PLATFORM_OBJ2), //# BESPIN PLATFORM ENUM2STRING(CAIRN_BAY_OBJ1), //# CAIRN BAY ENUM2STRING(CAIRN_BAY_OBJ2), //# CAIRN BAY ENUM2STRING(CAIRN_ASSEMBLY_OBJ1), //# CAIRN ASSEMBLY ENUM2STRING(CAIRN_REACTOR_OBJ1), //# CAIRN REACTOR ENUM2STRING(CAIRN_REACTOR_OBJ2), //# CAIRN REACTOR ENUM2STRING(CAIRN_DOCK1_OBJ1), //# CAIRN DOCK1 ENUM2STRING(CAIRN_DOCK1_OBJ2), //# CAIRN DOCK1 ENUM2STRING(DOOM_COMM_OBJ1), //# DOOM COMM ENUM2STRING(DOOM_COMM_OBJ2), //# DOOM COMM ENUM2STRING(DOOM_COMM_OBJ3), //# DOOM COMM ENUM2STRING(DOOM_DETENTION_OBJ1), //# DOOM DETENTION ENUM2STRING(DOOM_DETENTION_OBJ2), //# DOOM DETENTION ENUM2STRING(DOOM_SHIELDS_OBJ1), //# DOOM SHIELDS ENUM2STRING(DOOM_SHIELDS_OBJ2), //# DOOM SHIELDS ENUM2STRING(YAVIN_SWAMP_OBJ1), //# YAVIN SWAMP ENUM2STRING(YAVIN_SWAMP_OBJ2), //# YAVIN SWAMP ENUM2STRING(YAVIN_CANYON_OBJ1), //# YAVIN CANYON ENUM2STRING(YAVIN_CANYON_OBJ2), //# YAVIN CANYON ENUM2STRING(YAVIN_COURTYARD_OBJ1), //# YAVIN COURTYARD ENUM2STRING(YAVIN_COURTYARD_OBJ2), //# YAVIN COURTYARD ENUM2STRING(YAVIN_FINAL_OBJ1), //# YAVIN FINAL ENUM2STRING(KEJIM_POST_OBJ3), //# KEJIM POST - GRAPHICS IN IT. ENUM2STRING(KEJIM_POST_OBJ4), //# KEJIM POST - GRAPHICS IN IT. ENUM2STRING(KEJIM_POST_OBJ5), //# KEJIM POST - GRAPHICS IN IT. ENUM2STRING(ARTUS_DETENTION_OBJ3), //# ARTUS DETENTION ENUM2STRING(DOOM_COMM_OBJ4), //# DOOM COMM - GRAPHICS IN IT. IT MUST BE LAST IN THE LIST ENUM2STRING(DOOM_SHIELDS_OBJ3), //# DOOM SHIELDS ENUM2STRING(DEMO_OBJ1), //# DEMO ENUM2STRING(DEMO_OBJ2), //# DEMO ENUM2STRING(DEMO_OBJ3), //# DEMO ENUM2STRING(DEMO_OBJ4), //# DEMO //stringID_table_t Must end with a null entry {"", 0} }; stringID_table_t missionFailedTable [] = { ENUM2STRING(MISSIONFAILED_JAN), //# JAN DIED ENUM2STRING(MISSIONFAILED_LUKE), //# LUKE DIED ENUM2STRING(MISSIONFAILED_LANDO), //# LANDO DIED ENUM2STRING(MISSIONFAILED_R5D2), //# R5D2 DIED ENUM2STRING(MISSIONFAILED_WARDEN), //# THE WARDEN DIED ENUM2STRING(MISSIONFAILED_PRISONERS), //# TOO MANY PRISONERS DIED ENUM2STRING(MISSIONFAILED_EMPLACEDGUNS),//# ALL EMPLACED GUNS GONE ENUM2STRING(MISSIONFAILED_LADYLUCK), //# LADY LUCK DISTROYED ENUM2STRING(MISSIONFAILED_KYLECAPTURE), //# KYLE HAS BEEN CAPTURED ENUM2STRING(MISSIONFAILED_TOOMANYALLIESDIED), //# TOO MANY ALLIES DIED //stringID_table_t Must end with a null entry {"", 0} }; stringID_table_t statusTextTable [] = { //================================================= // //================================================= ENUM2STRING(STAT_INSUBORDINATION), //# Starfleet will not tolerate such insubordination ENUM2STRING(STAT_YOUCAUSEDDEATHOFTEAMMATE), //# You caused the death of a teammate. ENUM2STRING(STAT_DIDNTPROTECTTECH), //# You failed to protect Chell, your technician. ENUM2STRING(STAT_DIDNTPROTECT7OF9), //# You failed to protect 7 of 9 ENUM2STRING(STAT_NOTSTEALTHYENOUGH), //# You weren't quite stealthy enough ENUM2STRING(STAT_STEALTHTACTICSNECESSARY), //# Starfleet will not tolerate such insubordination ENUM2STRING(STAT_WATCHYOURSTEP), //# Watch your step ENUM2STRING(STAT_JUDGEMENTMUCHDESIRED), //# Your judgement leaves much to be desired //stringID_table_t Must end with a null entry {"", 0} }; #endif// #ifndef G_OBJECTIVES_CPP #endif// #ifndef __OBJECTIVES_H__