22 #include "Management.h"
26 #include "CreateWingDlg.h"
27 #include "Management.h"
29 #define MULTI_WING 999999
33 static char THIS_FILE[] = __FILE__;
46 if (!
Wings[i].wave_count)
93 for (i=0; i<total; i++)
128 for (i=0; i<total; i++) {
167 if (
Wings[wing].wave_count == min)
183 if (
Wings[wing].special_ship == i)
197 if (
Wings[wing].wave_count && (
Wings[wing].threshold >=
Wings[wing].wave_count))
220 int i,
ship,
wing = -1, waypoints = 0,
count = 0, illegal_ships = 0;
221 int leader, leader_team;
253 sprintf(msg,
"You have too many ships marked!\n"
270 for (i=
Wings[wing].wave_count-1; i>=0; i--) {
297 Fred_main_wnd->MessageBox(
"Too many wings, can't create more!",
322 if (dlg.DoModal() == IDCANCEL)
370 if (ptr->
flags & OF_MARKED) {
378 if (
Ships[ship].wingnum != -1) {
390 if (
Ships[ship].arrival_cue >= 0)
394 if (
Ships[ship].departure_cue >= 0)
408 Error(
LOCATION,
"No valid ships were selected to form wing from");
419 Fred_main_wnd->MessageBox(
"Waypoints can't be part of a wing!\n"
420 "All marked waypoints were ignored",
424 Fred_main_wnd->MessageBox(
"Some ship types aren't allowed to be in a wing.\n"
425 "All marked ships of these types were ignored",
434 Fred_main_wnd->MessageBox(
"Wing contains ships on different teams",
"Warning");
449 #define MAX_WING_VECTORS 8 // 8 vectors per wing formation. Possible to have more
454 #define MAX_WING_FORMATIONS 8 // 8 different kinds of wing formations
490 Wings[i].wave_count= 0;
497 Assert((wingnum >= 0) && (wingnum < MAX_WINGS));
char Starting_wing_names[MAX_STARTING_WINGS][NAME_LENGTH]
void wing_bash_ship_name(char *ship_name, const char *wing_name, int index)
CShipEditorDlg Ship_editor_dialog
void update_custom_wing_indexes()
int rename_ship(int ship, char *name)
void remove_wing(int wing_num)
int delete_object(int obj)
void create_wings_from_objects(void)
char wing_squad_filename[MAX_FILENAME_LEN]
void set_cur_wing(int wing)
struct vec3d::@225::@227 xyz
int update_data(int redraw=1)
void set_cur_indices(int obj)
#define END_OF_LIST(head)
CMainFrame * Fred_main_wnd
int wing_insignia_texture
#define MAX_SHIPS_PER_WING
int invalidate_references(char *name, int type)
GLenum GLuint GLenum GLsizei const GLchar * buf
struct formation formation
reinforcements Reinforcements[MAX_REINFORCEMENTS]
int query_valid_object(int index)
int check_wing_dependencies(int wing_num)
GLdouble GLdouble GLdouble r
void set_cur_object_index(int obj)
#define MAX_STARTING_WINGS
void remove_ship_from_wing(int ship, int min)
sprintf(buf,"(%f,%f,%f)", v3->xyz.x, v3->xyz.y, v3->xyz.z)
void delete_reinforcement(int num)
int wing_objects[MAX_WINGS][MAX_SHIPS_PER_WING]
formation Wing_formations[MAX_WING_FORMATIONS]
object Objects[MAX_OBJECTS]
void string_copy(char *dest, const CString &src, int max_len, int modify)
void remove_player_from_wing(int player, int min=1)
int get_free_objnum(void)
int ship_query_general_type(int ship)
void _cdecl void void _cdecl Error(const char *filename, int line, SCP_FORMAT_STRING const char *format,...) SCP_FORMAT_STRING_ARGS(3
wing_editor Wing_editor_dialog
void set_modified(BOOL arg)
GLuint const GLchar * name
#define STI_AI_CAN_FORM_WING
#define MB_ICONEXCLAMATION
int delete_wing(int wing_num, int bypass)
void mark_object(int obj)
SCP_vector< ship_info > Ship_info
int already_deleting_wing
GLsizei GLsizei GLuint * obj
int get_wingnum(int objnum)
void unmark_object(int obj)
int ship_index[MAX_SHIPS_PER_WING]
int reference_handler(char *name, int type, int obj)
void initialize_wings(void)
#define MAX_WING_FORMATIONS
SCP_vector< ship_type_info > Ship_types
ai_goal ai_goals[MAX_AI_GOALS]
void initialize_data(int full)