FS2_Open
Open source remastering of the Freespace 2 engine
multiui.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) Volition, Inc. 1999. All rights reserved.
3  *
4  * All source code herein is the property of Volition, Inc. You may not sell
5  * or otherwise commercially exploit the source or things you created based on the
6  * source.
7  *
8 */
9 
10 
11 
12 #ifndef MULTI_UI_H
13 #define MULTI_UI_H
14 
15 #include "globalincs/globals.h"
16 #include "ui/ui.h"
17 #include "network/multi.h"
18 
19 
20 struct net_player;
21 struct net_addr;
22 
23 void multi_common_add_text(const char *txt,int auto_scroll = 0);
24 void multi_common_set_text(const char *str,int auto_scroll = 0);
25 
26 // time between sending refresh packets to known servers
27 #define MULTI_JOIN_REFRESH_TIME 45000
28 #define MULTI_JOIN_REFRESH_TIME_LOCAL 5000
29 // this time must be longer than the MULTI_JOIN_REFRESH_TIME but shorter than twice the MULTI_JOIN_REFRESH_TIME
30 // so that it does not time out between refresh times, but cannot last more than 2 complete refreshed without
31 // timing out. Just trust me - DB
32 #define MULTI_JOIN_SERVER_TIMEOUT (MULTI_JOIN_REFRESH_TIME + (MULTI_JOIN_REFRESH_TIME /2))
33 #define MULTI_JOIN_SERVER_TIMEOUT_LOCAL (MULTI_JOIN_REFRESH_TIME_LOCAL + (MULTI_JOIN_REFRESH_TIME_LOCAL / 2))
34 
35 
36 typedef struct multi_create_info {
37  char filename[MAX_FILENAME_LEN]; // filename of the mission
38  char name[NAME_LENGTH]; // name of the mission
39  int flags; // flags to tell what type of multiplayer game (coop, team v. team)
40  uint respawn; // mission specified respawn count
41  ubyte max_players; // max players allowed for this file
42  char valid_status; // see MVALID_* defines above
43 
45  : flags( 0 ), respawn( 0 ), max_players( 0 ), valid_status( MVALID_STATUS_UNKNOWN )
46  {
47  filename[ 0 ] = 0;
48  name[ 0 ] = 0;
49  }
51 
52 // load all common icons
53 #define MULTI_NUM_COMMON_ICONS 12
54 #define MICON_VOICE_DENIED 0
55 #define MICON_VOICE_RECORDING 1
56 #define MICON_TEAM0 2
57 #define MICON_TEAM0_SELECT 3
58 #define MICON_TEAM1 4
59 #define MICON_TEAM1_SELECT 5
60 #define MICON_COOP 6
61 #define MICON_TVT 7
62 #define MICON_DOGFIGHT 8
63 #define MICON_VOLITION 9
64 #define MICON_VALID 10
65 #define MICON_CD 11
66 
67 // common icon stuff
72 
73 // initialize/display all bitmaps, etc related to displaying the voice system status
75 
76 // multiplayer screen common palettes
80 
81 // call this to verify if we have a CD in the drive or not
83 
84 // variables to hold the mission and campaign lists
87 
88 extern int Multi_create_overlay_id;
89 
92 
93 // returns an index into Multi_create_mission_list
94 int multi_create_lookup_mission(char *fname);
95 
96 // returns an index into Multi_create_campaign_list
97 int multi_create_lookup_campaign(char *fname);
98 
99 extern int Multi_sg_overlay_id;
100 
101 void multi_sg_rank_build_name(char *in,char *out);
102 
103 extern int Multi_join_overlay_id;
104 
105 void multi_join_game_init();
106 void multi_join_game_close();
108 void multi_join_eval_pong(net_addr *addr, fix pong_time);
112 
113 void multi_start_game_init();
114 void multi_start_game_do();
116 
118 void multi_create_game_do();
120 void multi_create_game_add_mission(char *fname,char *name, int flags);
121 
122 #define MULTI_CREATE_SHOW_MISSIONS 0
123 #define MULTI_CREATE_SHOW_CAMPAIGNS 1
125 
127 
129 
131 void multi_host_options_do();
133 
137 
138 #define MULTI_SYNC_PRE_BRIEFING 0 // moving from the join to the briefing stage
139 #define MULTI_SYNC_POST_BRIEFING 1 // moving from the briefing to the gameplay stage
140 #define MULTI_SYNC_INGAME 2 // ingame joiners data sync
141 extern int Multi_sync_mode; // should always set this var before calling GS_EVENT_MULTI_MISSION_SYNC
142 extern int Multi_sync_countdown; // time in seconds until the mission is going to be launched
143 void multi_sync_init();
144 void multi_sync_do();
145 void multi_sync_close();
146 void multi_sync_start_countdown(); // start the countdown to launch when the launch button is pressed
147 
148 // note : these functions are called from within missiondebrief.cpp - NOT from freespace.cpp
149 void multi_debrief_init();
151 void multi_debrief_close();
152 void multi_debrief_accept_hit(); // handle the accept button being hit
153 void multi_debrief_esc_hit(); // handle the ESC button being hit
154 void multi_debrief_replay_hit(); // handle the replay button being hit
155 void multi_debrief_server_left(); // call this when the server has left and we would otherwise be saying "contact lost with server"
156 void multi_debrief_stats_accept(); // call this to insure that stats are not undone when we leave the debriefing
157 void multi_debrief_stats_toss(); // call this to "toss" the stats packet
158 int multi_debrief_stats_accept_code(); // call this to determine the status of multiplayer stats acceptance
159 void multi_debrief_server_process(); // process all details regarding moving the netgame to its next state
160 
161 // add a notification string, drawing appropriately depending on the state/screen we're in
162 void multi_common_add_notify(const char *str);
163 
164 // bring up the password string popup, fill in passwd (return 1 if accept was pressed, 0 if cancel was pressed)
165 int multi_passwd_popup(char *passwd);
166 
167 
168 #endif
void multi_create_game_do()
Definition: multiui.cpp:3652
#define MAX_FILENAME_LEN
Definition: pstypes.h:324
void multi_debrief_init()
Definition: multiui.cpp:8622
void multi_host_options_do()
Definition: multiui.cpp:5944
void multi_join_notify_new_game()
Definition: multiui.cpp:792
ubyte max_players
Definition: multiui.h:41
void multi_start_game_do()
Definition: multiui.cpp:2407
void multi_debrief_esc_hit()
Definition: multiui.cpp:8793
void multi_common_unload_palette()
Definition: multiui.cpp:438
void multi_host_options_init()
Definition: multiui.cpp:5817
void multi_unload_common_icons()
Definition: multiui.cpp:351
void multi_common_load_palette()
Definition: multiui.cpp:410
void multi_join_game_do_frame()
Definition: multiui.cpp:994
void multi_debrief_accept_hit()
Definition: multiui.cpp:8711
int multi_create_lookup_campaign(char *fname)
Definition: multiui.cpp:5400
int Multi_create_overlay_id
Definition: multiui.cpp:3329
void multi_debrief_stats_toss()
Definition: multiui.cpp:8919
void multi_sync_init()
Definition: multiui.cpp:7426
GLenum mode
Definition: Glext.h:5794
void multi_common_add_notify(const char *str)
Definition: multiui.cpp:261
void multi_create_game_close()
Definition: multiui.cpp:3911
struct multi_create_info multi_create_info
void multi_join_game_init()
Definition: multiui.cpp:817
GLuint in
Definition: Glext.h:9087
void multi_start_game_init()
Definition: multiui.cpp:2286
void multi_sg_rank_build_name(char *in, char *out)
Definition: multiui.cpp:2915
void multi_create_game_init()
Definition: multiui.cpp:3534
int Multi_sync_mode
Definition: multiui.cpp:7348
void multi_start_game_close()
Definition: multiui.cpp:2476
void multi_debrief_replay_hit()
Definition: multiui.cpp:8869
void multi_debrief_server_process()
Definition: multiui.cpp:8947
void multi_create_setup_list_data(int mode)
Definition: multiui.cpp:3448
void multi_game_client_setup_close()
Definition: multiui.cpp:6851
unsigned int uint
Definition: pstypes.h:64
void multi_sync_close()
Definition: multiui.cpp:7491
int multi_passwd_popup(char *passwd)
Definition: multiui.cpp:9250
void multi_jw_handle_join(net_player *pl)
Definition: multiui.cpp:7167
void multi_sync_start_countdown()
Definition: multiui.cpp:8463
int Multi_join_overlay_id
Definition: multiui.cpp:735
char filename[MAX_FILENAME_LEN]
Definition: multiui.h:37
void multi_join_eval_pong(net_addr *addr, fix pong_time)
Definition: multiui.cpp:1562
int Multi_common_icon_dims[MULTI_NUM_COMMON_ICONS][2]
Definition: multiui.cpp:322
void multi_join_game_close()
Definition: multiui.cpp:1147
SCP_vector< multi_create_info > Multi_create_campaign_list
Definition: multiui.cpp:3327
void multi_debrief_close()
Definition: multiui.cpp:8680
int Multi_sync_countdown
Definition: multiui.cpp:7352
int multi_create_lookup_mission(char *fname)
Definition: multiui.cpp:5385
#define MULTI_NUM_COMMON_ICONS
Definition: multiui.h:53
void multi_common_add_text(const char *txt, int auto_scroll=0)
Definition: multiui.cpp:167
void multi_create_game_add_mission(char *fname, char *name, int flags)
long fix
Definition: pstypes.h:54
unsigned char ubyte
Definition: pstypes.h:62
void multi_create_handle_join(net_player *pl)
Definition: multiui.cpp:5058
void multi_debrief_do_frame()
Definition: multiui.cpp:8664
SCP_vector< multi_create_info > Multi_create_mission_list
Definition: multiui.cpp:3326
void multi_debrief_stats_accept()
Definition: multiui.cpp:8897
GLbitfield flags
Definition: Glext.h:6722
void multi_join_clear_game_list()
Definition: multiui.cpp:978
GLuint const GLchar * name
Definition: Glext.h:5608
char valid_status
Definition: multiui.h:42
int multi_debrief_stats_accept_code()
Definition: multiui.cpp:8942
int Multi_sg_overlay_id
Definition: multiui.cpp:2253
void multi_common_set_palette()
Definition: multiui.cpp:423
#define NAME_LENGTH
Definition: globals.h:15
void multi_join_reset_join_stamp()
Definition: multiui.cpp:1983
void multi_common_voice_display_status()
Definition: multiui.cpp:369
#define MVALID_STATUS_UNKNOWN
Definition: multi.h:112
void multi_create_list_load_campaigns()
Definition: multiui.cpp:4522
void multi_host_options_close()
Definition: multiui.cpp:6015
void multi_load_common_icons()
Definition: multiui.cpp:337
void multi_common_verify_cd()
Definition: multiui.cpp:446
void multi_common_set_text(const char *str, int auto_scroll=0)
Definition: multiui.cpp:148
void multi_sync_do()
Definition: multiui.cpp:7453
GLenum const GLvoid * addr
Definition: Glext.h:9092
void multi_debrief_server_left()
Definition: multiui.cpp:8888
void multi_create_list_load_missions()
Definition: multiui.cpp:4438
int Multi_common_icons[MULTI_NUM_COMMON_ICONS]
Definition: multiui.cpp:304
void multi_game_client_setup_init()
Definition: multiui.cpp:6655
void multi_game_client_setup_do_frame()
Definition: multiui.cpp:6736