FS2_Open
Open source remastering of the Freespace 2 engine
missionmessage.cpp File Reference
#include "anim/animplay.h"
#include "gamesequence/gamesequence.h"
#include "gamesnd/gamesnd.h"
#include "hud/hud.h"
#include "hud/hudconfig.h"
#include "hud/hudgauges.h"
#include "hud/hudmessage.h"
#include "hud/hudtarget.h"
#include "iff_defs/iff_defs.h"
#include "io/timer.h"
#include "localization/localize.h"
#include "mission/missionmessage.h"
#include "mission/missiontraining.h"
#include "mod_table/mod_table.h"
#include "network/multi.h"
#include "network/multimsgs.h"
#include "network/multiutil.h"
#include "parse/parselo.h"
#include "parse/scripting.h"
#include "parse/sexp.h"
#include "ship/ship.h"
#include "ship/subsysdamage.h"
#include "sound/fsspeech.h"
#include "species_defs/species_defs.h"
#include "weapon/emp.h"

Go to the source code of this file.

Classes

struct  message_q
 
struct  matching_builtin
 

Macros

#define MAX_PLAYING_MESSAGES   2
 
#define MAX_WINGMAN_HEADS   2
 
#define MAX_COMMAND_HEADS   3
 
#define HEAD_PREFIX_STRING   "head-"
 
#define COMMAND_HEAD_PREFIX   "head-cm1"
 
#define COMMAND_WAVE_PREFIX   "TC_"
 
#define SUPPORT_NAME   "Support"
 
#define MQF_CONVERT_TO_COMMAND   (1<<0)
 
#define MQF_CHECK_ALIVE   (1<<1)
 
#define MAX_MESSAGE_Q   30
 
#define MAX_MESSAGE_LIFE   F1_0*30
 
#define DEFAULT_MESSAGE_LENGTH   3000
 
#define MESSAGE_IMMEDIATE_TIMESTAMP   1000
 
#define MESSAGE_SOON_TIMESTAMP   5000
 
#define MESSAGE_ANYTIME_TIMESTAMP   -1
 
#define MAX_DISTORT_PATTERNS   2
 
#define MAX_DISTORT_LEVELS   6
 
#define MESSAGE_GET_HIGHEST   1
 
#define MESSAGE_GET_LOWEST   2
 
#define BUILTIN_MATCHES_TYPE   0
 
#define BUILTIN_MATCHES_SPECIES   1
 
#define BUILTIN_MATCHES_PERSONA_CHECK_MOOD   2
 
#define BUILTIN_MATCHES_PERSONA_EXCLUDED   3
 
#define BUILTIN_MATCHES_PERSONA   4
 
#define BUILTIN_MATCHES_PERSONA_MOOD   5
 

Typedefs

typedef struct message_q message_q
 
typedef struct matching_builtin matching_builtin
 

Functions

void message_maybe_distort_text (char *text, int shipnum)
 
int comm_between_player_and_ship (int other_shipnum)
 
void persona_parse ()
 
int add_avi (char *avi_name)
 
int add_wave (const char *wave_name)
 
void message_parse (bool importing_from_fsm)
 
void message_frequency_parse ()
 
void message_moods_parse ()
 
void parse_msgtbl ()
 
void messages_init ()
 
void message_mission_free_avi (int m_index)
 
void message_mission_shutdown ()
 
void message_mission_close ()
 
int message_queue_priority_compare (const void *a, const void *b)
 
void message_kill_all (int kill_all)
 
void message_kill_playing (int message_num)
 
int message_playing_builtin ()
 
int message_playing_specific_builtin (int builtin_type)
 
int message_playing_unique ()
 
int message_get_priority (int which)
 
void message_remove_from_queue (message_q *q)
 
void message_load_wave (int index, const char *filename)
 
bool message_filename_is_generic (char *filename)
 
bool message_play_wave (message_q *q)
 
void message_calc_anim_start_frame (int time, generic_anim *ani, int reverse)
 
void message_play_anim (message_q *q)
 
void message_queue_process ()
 
void message_queue_message (int message_num, int priority, int timing, char *who_from, int source, int group, int delay, int builtin_type)
 
int message_get_persona (ship *shipp)
 
int message_filter_multi (int id)
 
void message_send_unique_to_player (char *id, void *data, int m_source, int priority, int group, int delay)
 
void message_send_builtin_to_player (int type, ship *shipp, int priority, int timing, int group, int delay, int multi_target, int multi_team_filter)
 
int message_is_playing ()
 
int message_persona_name_lookup (char *name)
 
void message_maybe_distort ()
 
int message_anim_is_playing ()
 
void message_pagein_mission_messages ()
 
bool add_message (char *name, char *message, int persona_index, int multi_team)
 
bool change_message (char *name, char *message, int persona_index, int multi_team)
 

Variables

SCP_vector< SCP_stringBuiltin_moods
 
int Current_mission_mood
 
int Valid_builtin_message_types [MAX_BUILTIN_MESSAGE_TYPES]
 
builtin_message Builtin_messages []
 
SCP_vector< MMessageMessages
 
int Num_messages
 
int Num_message_avis
 
int Num_message_waves
 
int Num_builtin_messages
 
int Num_builtin_avis
 
int Num_builtin_waves
 
int Message_debug_index = -1
 
SCP_vector< message_extraMessage_avis
 
SCP_vector< message_extraMessage_waves
 
int Num_messages_playing
 
pmessage Playing_messages [MAX_PLAYING_MESSAGES]
 
int Message_shipnum
 
int Message_expire
 
message_q MessageQ [MAX_MESSAGE_Q]
 
int MessageQ_num
 
int Num_personas
 
PersonaPersonas = NULL
 
char * Persona_type_names [MAX_PERSONA_TYPES]
 
int Default_command_persona
 
SCP_vector< SCP_stringgeneric_message_filenames
 
int Head_coords [GR_NUM_RESOLUTIONS][2]
 

Macro Definition Documentation

#define BUILTIN_MATCHES_PERSONA   4

Definition at line 1914 of file missionmessage.cpp.

#define BUILTIN_MATCHES_PERSONA_CHECK_MOOD   2

Definition at line 1912 of file missionmessage.cpp.

#define BUILTIN_MATCHES_PERSONA_EXCLUDED   3

Definition at line 1913 of file missionmessage.cpp.

#define BUILTIN_MATCHES_PERSONA_MOOD   5

Definition at line 1915 of file missionmessage.cpp.

#define BUILTIN_MATCHES_SPECIES   1

Definition at line 1911 of file missionmessage.cpp.

#define BUILTIN_MATCHES_TYPE   0

Definition at line 1910 of file missionmessage.cpp.

#define COMMAND_HEAD_PREFIX   "head-cm1"

Definition at line 116 of file missionmessage.cpp.

#define COMMAND_WAVE_PREFIX   "TC_"

Definition at line 117 of file missionmessage.cpp.

#define DEFAULT_MESSAGE_LENGTH   3000

Definition at line 163 of file missionmessage.cpp.

#define HEAD_PREFIX_STRING   "head-"

Definition at line 115 of file missionmessage.cpp.

#define MAX_COMMAND_HEADS   3

Definition at line 112 of file missionmessage.cpp.

#define MAX_DISTORT_LEVELS   6

Definition at line 199 of file missionmessage.cpp.

#define MAX_DISTORT_PATTERNS   2

Definition at line 198 of file missionmessage.cpp.

#define MAX_MESSAGE_LIFE   F1_0*30

Definition at line 162 of file missionmessage.cpp.

#define MAX_MESSAGE_Q   30

Definition at line 161 of file missionmessage.cpp.

#define MAX_PLAYING_MESSAGES   2

Definition at line 109 of file missionmessage.cpp.

#define MAX_WINGMAN_HEADS   2

Definition at line 111 of file missionmessage.cpp.

#define MESSAGE_ANYTIME_TIMESTAMP   -1

Definition at line 169 of file missionmessage.cpp.

#define MESSAGE_GET_HIGHEST   1

Definition at line 936 of file missionmessage.cpp.

#define MESSAGE_GET_LOWEST   2

Definition at line 937 of file missionmessage.cpp.

#define MESSAGE_IMMEDIATE_TIMESTAMP   1000

Definition at line 167 of file missionmessage.cpp.

#define MESSAGE_SOON_TIMESTAMP   5000

Definition at line 168 of file missionmessage.cpp.

#define MQF_CHECK_ALIVE   (1<<1)

Definition at line 145 of file missionmessage.cpp.

#define MQF_CONVERT_TO_COMMAND   (1<<0)

Definition at line 144 of file missionmessage.cpp.

#define SUPPORT_NAME   "Support"

Definition at line 118 of file missionmessage.cpp.

Typedef Documentation

typedef struct message_q message_q

Function Documentation

int add_avi ( char *  avi_name)

Definition at line 309 of file missionmessage.cpp.

bool add_message ( char *  name,
char *  message,
int  persona_index,
int  multi_team 
)

Definition at line 2311 of file missionmessage.cpp.

int add_wave ( const char *  wave_name)

Definition at line 333 of file missionmessage.cpp.

bool change_message ( char *  name,
char *  message,
int  persona_index,
int  multi_team 
)

Definition at line 2326 of file missionmessage.cpp.

int comm_between_player_and_ship ( int  other_shipnum)

Ideally, this would return the minimum of the comm state between the player and the other ship. In practice, retail has no checks whatsoever on a ship's ability to send messages unless that ship is the player, so such a change would require an AI profiles option and we must default to the player's state. However, we have a bit of wiggle room with COMM_SCRAMBLED, because EMP effects are either transient or set by the newly enhanced scramble-messages SEXP. Thus any comm dropout does not cause an unanticipated deviation in the mission design.

Definition at line 2352 of file missionmessage.cpp.

int message_anim_is_playing ( )

Definition at line 2274 of file missionmessage.cpp.

void message_calc_anim_start_frame ( int  time,
generic_anim ani,
int  reverse 
)

Definition at line 1103 of file missionmessage.cpp.

bool message_filename_is_generic ( char *  filename)

Definition at line 1015 of file missionmessage.cpp.

int message_filter_multi ( int  id)

Definition at line 1798 of file missionmessage.cpp.

void message_frequency_parse ( )

Definition at line 482 of file missionmessage.cpp.

int message_get_persona ( ship shipp)

Definition at line 1715 of file missionmessage.cpp.

int message_get_priority ( int  which)

Definition at line 938 of file missionmessage.cpp.

int message_is_playing ( )

Definition at line 2145 of file missionmessage.cpp.

void message_kill_all ( int  kill_all)

Definition at line 828 of file missionmessage.cpp.

void message_kill_playing ( int  message_num)

Definition at line 861 of file missionmessage.cpp.

void message_load_wave ( int  index,
const char *  filename 
)

Definition at line 993 of file missionmessage.cpp.

void message_maybe_distort ( )

Definition at line 2167 of file missionmessage.cpp.

void message_maybe_distort_text ( char *  text,
int  shipnum 
)

Definition at line 2217 of file missionmessage.cpp.

void message_mission_close ( )

Definition at line 792 of file missionmessage.cpp.

void message_mission_free_avi ( int  m_index)

Definition at line 738 of file missionmessage.cpp.

void message_mission_shutdown ( )

Definition at line 753 of file missionmessage.cpp.

void message_moods_parse ( )

Definition at line 525 of file missionmessage.cpp.

void message_pagein_mission_messages ( )

Definition at line 2288 of file missionmessage.cpp.

void message_parse ( bool  importing_from_fsm)

Definition at line 355 of file missionmessage.cpp.

int message_persona_name_lookup ( char *  name)

Definition at line 2153 of file missionmessage.cpp.

void message_play_anim ( message_q q)

Definition at line 1149 of file missionmessage.cpp.

bool message_play_wave ( message_q q)

Definition at line 1044 of file missionmessage.cpp.

int message_playing_builtin ( )

Definition at line 883 of file missionmessage.cpp.

int message_playing_specific_builtin ( int  builtin_type)

Definition at line 902 of file missionmessage.cpp.

int message_playing_unique ( )

Definition at line 916 of file missionmessage.cpp.

void message_queue_message ( int  message_num,
int  priority,
int  timing,
char *  who_from,
int  source,
int  group,
int  delay,
int  builtin_type 
)

Definition at line 1618 of file missionmessage.cpp.

int message_queue_priority_compare ( const void a,
const void b 
)

Definition at line 806 of file missionmessage.cpp.

void message_queue_process ( )

process the message queue – called once a frame

Definition at line 1281 of file missionmessage.cpp.

void message_remove_from_queue ( message_q q)

Definition at line 962 of file missionmessage.cpp.

void message_send_builtin_to_player ( int  type,
ship shipp,
int  priority,
int  timing,
int  group,
int  delay,
int  multi_target,
int  multi_team_filter 
)

Definition at line 1925 of file missionmessage.cpp.

void message_send_unique_to_player ( char *  id,
void data,
int  m_source,
int  priority,
int  group,
int  delay 
)

Definition at line 1838 of file missionmessage.cpp.

void messages_init ( )

Definition at line 657 of file missionmessage.cpp.

void parse_msgtbl ( )

Definition at line 540 of file missionmessage.cpp.

void persona_parse ( )

Definition at line 234 of file missionmessage.cpp.

Variable Documentation

builtin_message Builtin_messages[]

Definition at line 48 of file missionmessage.cpp.

SCP_vector<SCP_string> Builtin_moods

Definition at line 39 of file missionmessage.cpp.

int Current_mission_mood

Definition at line 40 of file missionmessage.cpp.

int Default_command_persona

Definition at line 185 of file missionmessage.cpp.

SCP_vector<SCP_string> generic_message_filenames

Definition at line 189 of file missionmessage.cpp.

int Head_coords[GR_NUM_RESOLUTIONS][2]
Initial value:
= {
{
7, 45
},
{
7, 66
}
}

Definition at line 209 of file missionmessage.cpp.

SCP_vector<message_extra> Message_avis

Definition at line 106 of file missionmessage.cpp.

int Message_debug_index = -1

Definition at line 104 of file missionmessage.cpp.

int Message_expire

Definition at line 139 of file missionmessage.cpp.

int Message_shipnum

Definition at line 138 of file missionmessage.cpp.

SCP_vector<message_extra> Message_waves

Definition at line 107 of file missionmessage.cpp.

Definition at line 164 of file missionmessage.cpp.

int MessageQ_num

Definition at line 165 of file missionmessage.cpp.

SCP_vector<MMessage> Messages

Definition at line 99 of file missionmessage.cpp.

int Num_builtin_avis

Definition at line 102 of file missionmessage.cpp.

int Num_builtin_messages

Definition at line 102 of file missionmessage.cpp.

int Num_builtin_waves

Definition at line 102 of file missionmessage.cpp.

int Num_message_avis

Definition at line 101 of file missionmessage.cpp.

int Num_message_waves

Definition at line 101 of file missionmessage.cpp.

int Num_messages

Definition at line 101 of file missionmessage.cpp.

int Num_messages_playing

Definition at line 122 of file missionmessage.cpp.

int Num_personas

Definition at line 172 of file missionmessage.cpp.

char* Persona_type_names[MAX_PERSONA_TYPES]
Initial value:
=
{
"wingman",
"support",
"large",
"command",
}

Definition at line 175 of file missionmessage.cpp.

Persona* Personas = NULL

Definition at line 173 of file missionmessage.cpp.

pmessage Playing_messages[MAX_PLAYING_MESSAGES]

Definition at line 136 of file missionmessage.cpp.

int Valid_builtin_message_types[MAX_BUILTIN_MESSAGE_TYPES]

Definition at line 42 of file missionmessage.cpp.