1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
|
/*
* 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 _MULTITEAMSELECT_H
#define _MULTITEAMSELECT_H
// ------------------------------------------------------------------------------------------------------
// TEAM SELECT DEFINES/VARS
//
#include "globalincs/pstypes.h"
#include "gamesnd/gamesnd.h"
#include "missionui/missionscreencommon.h"
struct header;
// should be initialize to 0 inside of multi_vars_init
extern int Multi_ts_inited;
#define MULTI_TS_MAX_TVT_TEAMS 2 // 2 teams max for now
#define MULTI_TS_NUM_SHIP_SLOTS 12 // # of ship slots in non team vs. team mode
// deleted ship objnums
extern int Multi_ts_deleted_objnums[MULTI_TS_MAX_TVT_TEAMS * MULTI_TS_NUM_SHIP_SLOTS];
extern int Multi_ts_num_deleted;
// packet codes
#define TS_CODE_LOCK_TEAM 0 // the specified team's slots are locked
#define TS_CODE_PLAYER_UPDATE 1 // a player slot update for the specified team
// ------------------------------------------------------------------------------------------------------
// TEAM SELECT FUNCTIONS
//
// initialize the team select screen (always call, even when switching between weapon select, etc)
void multi_ts_init();
// initialize all critical internal data structures
void multi_ts_common_init();
// initialize internal structures that need to be sync'd between host/client
void multi_ts_common_level_init();
// do frame for team select
void multi_ts_do();
// close the team select screen (always call, even when switching between weapon select, etc)
void multi_ts_close();
// drop a carried icon
void multi_ts_drop(int from_type,int from_index,int to_type,int to_index,int ship_class,int player_index = -1);
// assign all players to appropriate default wings/slots
void multi_ts_assign_players_all();
// is the given slot disabled for the specified player
int multi_ts_disabled_slot(int slot_index,int player_index = -1);
// is the given slot disabled for the specified player, _and_ it is his ship as well
int multi_ts_disabled_high_slot(int slot_index,int player_index = -1);
// delete ships which have been removed from the game, tidy things
void multi_ts_create_wings();
// resynch all display/interface elements based upon all the ship/weapon pool values
void multi_ts_sync_interface();
// do any necessary processing for players who have left the game
void multi_ts_handle_player_drop();
// handle all details when the commit button is pressed (including possibly reporting errors/popups)
commit_pressed_status multi_ts_commit_pressed();
// get the team # of the given ship
int multi_ts_get_team(char *ship_name);
// function to get the team and slot of a particular ship
void multi_ts_get_team_and_slot(char *ship_name,int *team_index,int *slot_index);
// function to return the shipname of the ship belonging in slot N
void multi_ts_get_shipname( char *ship_name, int team, int slot_index );
// the "lock" button has been pressed
void multi_ts_lock_pressed();
// if i'm "locked"
int multi_ts_is_locked();
// show a popup saying "only host and team captains can modify, etc, etc"
void multi_ts_maybe_host_only_popup();
// return if a player is currently in a loadout slot
bool multi_ts_is_player_in_slot(int slot_idx);
// return if a player is allowed in a loadout slot
bool multi_ts_is_player_allowed_in_slot(int slot_idx);
// ------------------------------------------------------------------------------------------------------
// TEAM SELECT PACKET HANDLERS
//
// send a player slot position update
void send_pslot_update_packet(int team,int code, interface_snd_id sound = interface_snd_id());
// process a player slot position update
void process_pslot_update_packet(ubyte *data, header *hinfo);
// ------------------------------------------------------------------------------------------------------
// TEAM SELECT STUBBED FUNCTIONS
//
#endif
|