mirror of
https://github.com/scp-fs2open/fs2open.github.com.git
synced 2026-11-09 04:49:39 -10:00
Add modular help tables and allow more than 2 help overlays git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10739 387891d4-d844-0410-90c0-e4c51a9137d3
169 lines
6.0 KiB
C
169 lines
6.0 KiB
C
/*
|
|
* Copyright (C) Volition, Inc. 1999. All rights reserved.
|
|
*
|
|
* All source code herein is the property of Volition, Inc. You may not sell
|
|
* or otherwise commercially exploit the source or things you created based on the
|
|
* source.
|
|
*
|
|
*/
|
|
|
|
|
|
|
|
#ifndef MULTI_UI_H
|
|
#define MULTI_UI_H
|
|
|
|
#include "globalincs/globals.h"
|
|
#include "ui/ui.h"
|
|
#include "network/multi.h"
|
|
|
|
|
|
struct net_player;
|
|
struct net_addr;
|
|
|
|
void multi_common_add_text(const char *txt,int auto_scroll = 0);
|
|
void multi_common_set_text(const char *str,int auto_scroll = 0);
|
|
|
|
// time between sending refresh packets to known servers
|
|
#define MULTI_JOIN_REFRESH_TIME 45000
|
|
#define MULTI_JOIN_REFRESH_TIME_LOCAL 5000
|
|
// this time must be longer than the MULTI_JOIN_REFRESH_TIME but shorter than twice the MULTI_JOIN_REFRESH_TIME
|
|
// so that it does not time out between refresh times, but cannot last more than 2 complete refreshed without
|
|
// timing out. Just trust me - DB
|
|
#define MULTI_JOIN_SERVER_TIMEOUT (MULTI_JOIN_REFRESH_TIME + (MULTI_JOIN_REFRESH_TIME /2))
|
|
#define MULTI_JOIN_SERVER_TIMEOUT_LOCAL (MULTI_JOIN_REFRESH_TIME_LOCAL + (MULTI_JOIN_REFRESH_TIME_LOCAL / 2))
|
|
|
|
|
|
typedef struct multi_create_info {
|
|
char filename[MAX_FILENAME_LEN]; // filename of the mission
|
|
char name[NAME_LENGTH]; // name of the mission
|
|
int flags; // flags to tell what type of multiplayer game (coop, team v. team)
|
|
uint respawn; // mission specified respawn count
|
|
ubyte max_players; // max players allowed for this file
|
|
char valid_status; // see MVALID_* defines above
|
|
|
|
multi_create_info( )
|
|
: flags( 0 ), respawn( 0 ), max_players( 0 ), valid_status( MVALID_STATUS_UNKNOWN )
|
|
{
|
|
filename[ 0 ] = 0;
|
|
name[ 0 ] = 0;
|
|
}
|
|
} multi_create_info;
|
|
|
|
// load all common icons
|
|
#define MULTI_NUM_COMMON_ICONS 12
|
|
#define MICON_VOICE_DENIED 0
|
|
#define MICON_VOICE_RECORDING 1
|
|
#define MICON_TEAM0 2
|
|
#define MICON_TEAM0_SELECT 3
|
|
#define MICON_TEAM1 4
|
|
#define MICON_TEAM1_SELECT 5
|
|
#define MICON_COOP 6
|
|
#define MICON_TVT 7
|
|
#define MICON_DOGFIGHT 8
|
|
#define MICON_VOLITION 9
|
|
#define MICON_VALID 10
|
|
#define MICON_CD 11
|
|
|
|
// common icon stuff
|
|
extern int Multi_common_icons[MULTI_NUM_COMMON_ICONS];
|
|
extern int Multi_common_icon_dims[MULTI_NUM_COMMON_ICONS][2];
|
|
void multi_load_common_icons();
|
|
void multi_unload_common_icons();
|
|
|
|
// initialize/display all bitmaps, etc related to displaying the voice system status
|
|
void multi_common_voice_display_status();
|
|
|
|
// multiplayer screen common palettes
|
|
void multi_common_load_palette();
|
|
void multi_common_set_palette();
|
|
void multi_common_unload_palette();
|
|
|
|
// call this to verify if we have a CD in the drive or not
|
|
void multi_common_verify_cd();
|
|
|
|
// variables to hold the mission and campaign lists
|
|
extern SCP_vector<multi_create_info> Multi_create_mission_list;
|
|
extern SCP_vector<multi_create_info> Multi_create_campaign_list;
|
|
|
|
extern int Multi_create_overlay_id;
|
|
|
|
void multi_create_list_load_missions();
|
|
void multi_create_list_load_campaigns();
|
|
|
|
// returns an index into Multi_create_mission_list
|
|
int multi_create_lookup_mission(char *fname);
|
|
|
|
// returns an index into Multi_create_campaign_list
|
|
int multi_create_lookup_campaign(char *fname);
|
|
|
|
extern int Multi_sg_overlay_id;
|
|
|
|
void multi_sg_rank_build_name(char *in,char *out);
|
|
|
|
extern int Multi_join_overlay_id;
|
|
|
|
void multi_join_game_init();
|
|
void multi_join_game_close();
|
|
void multi_join_game_do_frame();
|
|
void multi_join_eval_pong(net_addr *addr, fix pong_time);
|
|
void multi_join_reset_join_stamp();
|
|
void multi_join_clear_game_list();
|
|
void multi_join_notify_new_game();
|
|
|
|
void multi_start_game_init();
|
|
void multi_start_game_do();
|
|
void multi_start_game_close();
|
|
|
|
void multi_create_game_init();
|
|
void multi_create_game_do();
|
|
void multi_create_game_close();
|
|
void multi_create_game_add_mission(char *fname,char *name, int flags);
|
|
|
|
#define MULTI_CREATE_SHOW_MISSIONS 0
|
|
#define MULTI_CREATE_SHOW_CAMPAIGNS 1
|
|
void multi_create_setup_list_data(int mode);
|
|
|
|
void multi_create_handle_join(net_player *pl);
|
|
|
|
void multi_jw_handle_join(net_player *pl);
|
|
|
|
void multi_host_options_init();
|
|
void multi_host_options_do();
|
|
void multi_host_options_close();
|
|
|
|
void multi_game_client_setup_init();
|
|
void multi_game_client_setup_do_frame();
|
|
void multi_game_client_setup_close();
|
|
|
|
#define MULTI_SYNC_PRE_BRIEFING 0 // moving from the join to the briefing stage
|
|
#define MULTI_SYNC_POST_BRIEFING 1 // moving from the briefing to the gameplay stage
|
|
#define MULTI_SYNC_INGAME 2 // ingame joiners data sync
|
|
extern int Multi_sync_mode; // should always set this var before calling GS_EVENT_MULTI_MISSION_SYNC
|
|
extern int Multi_sync_countdown; // time in seconds until the mission is going to be launched
|
|
void multi_sync_init();
|
|
void multi_sync_do();
|
|
void multi_sync_close();
|
|
void multi_sync_start_countdown(); // start the countdown to launch when the launch button is pressed
|
|
|
|
// note : these functions are called from within missiondebrief.cpp - NOT from freespace.cpp
|
|
void multi_debrief_init();
|
|
void multi_debrief_do_frame();
|
|
void multi_debrief_close();
|
|
void multi_debrief_accept_hit(); // handle the accept button being hit
|
|
void multi_debrief_esc_hit(); // handle the ESC button being hit
|
|
void multi_debrief_replay_hit(); // handle the replay button being hit
|
|
void multi_debrief_server_left(); // call this when the server has left and we would otherwise be saying "contact lost with server"
|
|
void multi_debrief_stats_accept(); // call this to insure that stats are not undone when we leave the debriefing
|
|
void multi_debrief_stats_toss(); // call this to "toss" the stats packet
|
|
int multi_debrief_stats_accept_code(); // call this to determine the status of multiplayer stats acceptance
|
|
void multi_debrief_server_process(); // process all details regarding moving the netgame to its next state
|
|
|
|
// add a notification string, drawing appropriately depending on the state/screen we're in
|
|
void multi_common_add_notify(const char *str);
|
|
|
|
// bring up the password string popup, fill in passwd (return 1 if accept was pressed, 0 if cancel was pressed)
|
|
int multi_passwd_popup(char *passwd);
|
|
|
|
|
|
#endif
|