12 #ifndef _MISSIONGOAL_H
13 #define _MISSIONGOAL_H
23 #define MAX_GOALS 30 // maximum number of goals for any given mission
28 #define PRIMARY_GOAL 0
29 #define SECONDARY_GOAL 1
33 #define INVALID_GOAL (1 << 16) // is this goal valid or not?
34 #define GOAL_TYPE_MASK (0xffff) // mask to get us the type
38 #define GOAL_FAILED 0 // status of goal
39 #define GOAL_COMPLETE 1
40 #define GOAL_INCOMPLETE 2
42 #define PRIMARY_GOALS_COMPLETE 1
43 #define PRIMARY_GOALS_INCOMPLETE 0
44 #define PRIMARY_GOALS_FAILED -1
50 #define MAX_GOAL_TEXT 128
52 #define MGF_NO_MUSIC (1<<0) // don't play any event music when goal is achieved
71 #define MAX_MISSION_EVENTS 512
72 #define MISSION_EVENTS_WARN 100
76 #define EVENT_UNBORN 0 // event can't be evaluated yet
77 #define EVENT_CURRENT 1 // event can currently be evaluated, but not satisfied or failed yet
78 #define EVENT_SATISFIED 2
79 #define EVENT_FAILED 3
80 #define EVENT_INCOMPLETE 4 // used in campaign save file. used when event isn't satisfied yet
82 #define MEF_CURRENT (1 << 0) // is event current or past current yet?
83 #define MEF_DIRECTIVE_SPECIAL (1 << 1) // used to mark a directive as true even though not fully satisfied
84 #define MEF_DIRECTIVE_TEMP_TRUE (1 << 2) // this directive is temporarily true.
85 #define MEF_USING_TRIGGER_COUNT (1 << 3) // Karajorma - use trigger count as well as repeat count to determine how many repeats this event has
87 #define MAX_MISSION_EVENT_LOG_FLAGS 9 // this must be changed if a mission log flag is added below
89 #define MLF_SEXP_TRUE (1 << 0)
90 #define MLF_SEXP_FALSE (1 << 1)
92 #define MLF_SEXP_KNOWN_FALSE (1 << 3)
93 #define MLF_FIRST_REPEAT_ONLY (1 << 4)
94 #define MLF_LAST_REPEAT_ONLY (1 << 5)
95 #define MLF_FIRST_TRIGGER_ONLY (1 << 6)
96 #define MLF_LAST_TRIGGER_ONLY (1 << 7)
97 #define MLF_STATE_CHANGE (1 << 8)
99 #define MLF_ALL_REPETITION_FLAGS (MLF_FIRST_REPEAT_ONLY | MLF_LAST_REPEAT_ONLY | MLF_FIRST_TRIGGER_ONLY | MLF_LAST_TRIGGER_ONLY)
void ML_objectives_do_frame(int scroll_offset)
SCP_vector< SCP_string > backup_log_buffer
void mission_show_goals_close()
void mission_add_ai_goal(int sexp, ai_info *aip)
int mission_get_event_status(int event)
GLfloat GLfloat GLfloat GLfloat h
int Mission_goal_timestamp
void mission_show_goals_do_frame(float frametime)
void mission_event_unset_directive_special(int event)
struct mission_event mission_event
void mission_goal_mark_events_complete()
void mission_goal_fetch_num_resolved(int desired_type, int *num_resolved, int *total, int team=-1)
int mission_ai_goal_achievable(ai_goal *aigp)
SCP_vector< SCP_string > event_log_argument_buffer
void ML_render_objectives_key()
void mission_goal_fail_incomplete()
GLenum GLuint GLenum GLsizei const GLchar * message
SCP_vector< SCP_string > event_log_buffer
void mission_goal_mark_objectives_complete()
SCP_vector< SCP_string > event_log_variable_buffer
void mission_event_set_directive_special(int event)
const char * Goal_type_text(int n)
void mission_goal_mark_invalid(char *name)
void mission_init_goals(void)
struct mission_goal mission_goal
void mission_eval_goals()
GLint GLint GLint GLint GLint x
GLuint const GLchar * name
int mission_goals_incomplete(int desired_type, int team=-1)
void mission_event_shutdown()
GLubyte GLubyte GLubyte GLubyte w
mission_event Mission_events[MAX_MISSION_EVENTS]
void mission_goal_fail_all()
mission_goal Mission_goals[MAX_GOALS]
void mission_show_goals_init()
char * objective_key_text
#define MAX_MISSION_EVENTS
void mission_goal_status_change(int goal_num, int new_status)
int ML_objectives_init(int x, int y, int w, int h)
int mission_evaluate_primary_goals(void)
void mission_goal_mark_valid(char *name)
void mission_goal_validation_change(int goal_num, int valid)
void ML_objectives_close()