2014-03-15 16:59:03 +00:00
|
|
|
// SONIC ROBO BLAST 2
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
2016-07-06 04:09:17 +00:00
|
|
|
// Copyright (C) 1999-2016 by Sonic Team Junior.
|
2014-03-15 16:59:03 +00:00
|
|
|
//
|
|
|
|
// This program is free software distributed under the
|
|
|
|
// terms of the GNU General Public License, version 2.
|
|
|
|
// See the 'LICENSE' file for more details.
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
/// \file d_netcmd.h
|
|
|
|
/// \brief host/client network commands
|
|
|
|
/// commands are executed through the command buffer
|
|
|
|
/// like console commands
|
|
|
|
|
|
|
|
#ifndef __D_NETCMD__
|
|
|
|
#define __D_NETCMD__
|
|
|
|
|
|
|
|
#include "command.h"
|
|
|
|
|
|
|
|
// console vars
|
|
|
|
extern consvar_t cv_playername;
|
|
|
|
extern consvar_t cv_playercolor;
|
|
|
|
#ifdef SEENAMES
|
|
|
|
extern consvar_t cv_seenames, cv_allowseenames;
|
|
|
|
#endif
|
|
|
|
extern consvar_t cv_usemouse;
|
|
|
|
extern consvar_t cv_usejoystick;
|
|
|
|
extern consvar_t cv_usejoystick2;
|
2017-12-08 07:29:01 +00:00
|
|
|
extern consvar_t cv_usejoystick3;
|
|
|
|
extern consvar_t cv_usejoystick4;
|
2014-03-15 16:59:03 +00:00
|
|
|
#ifdef LJOYSTICK
|
|
|
|
extern consvar_t cv_joyport;
|
|
|
|
extern consvar_t cv_joyport2;
|
|
|
|
#endif
|
|
|
|
extern consvar_t cv_joyscale;
|
|
|
|
extern consvar_t cv_joyscale2;
|
2017-12-08 07:29:01 +00:00
|
|
|
extern consvar_t cv_joyscale3;
|
|
|
|
extern consvar_t cv_joyscale4;
|
2014-03-15 16:59:03 +00:00
|
|
|
extern consvar_t cv_controlperkey;
|
|
|
|
|
|
|
|
// splitscreen with second mouse
|
|
|
|
extern consvar_t cv_mouse2port;
|
|
|
|
extern consvar_t cv_usemouse2;
|
|
|
|
#if (defined (__unix__) && !defined (MSDOS)) || defined (UNIXCOMMON)
|
|
|
|
extern consvar_t cv_mouse2opt;
|
|
|
|
#endif
|
|
|
|
extern consvar_t cv_invertmouse2;
|
|
|
|
extern consvar_t cv_alwaysfreelook2;
|
|
|
|
extern consvar_t cv_mousemove2;
|
|
|
|
extern consvar_t cv_mousesens2;
|
2015-01-01 19:50:31 +00:00
|
|
|
extern consvar_t cv_mouseysens2;
|
2014-03-15 16:59:03 +00:00
|
|
|
|
|
|
|
// normally in p_mobj but the .h is not read
|
|
|
|
extern consvar_t cv_itemrespawntime;
|
|
|
|
extern consvar_t cv_itemrespawn;
|
|
|
|
|
|
|
|
extern consvar_t cv_flagtime;
|
|
|
|
extern consvar_t cv_suddendeath;
|
|
|
|
|
|
|
|
extern consvar_t cv_skin;
|
|
|
|
|
|
|
|
// secondary splitscreen player
|
|
|
|
extern consvar_t cv_playername2;
|
|
|
|
extern consvar_t cv_playercolor2;
|
|
|
|
extern consvar_t cv_skin2;
|
2017-12-08 07:29:01 +00:00
|
|
|
extern consvar_t cv_playername3;
|
|
|
|
extern consvar_t cv_playercolor3;
|
|
|
|
extern consvar_t cv_skin3;
|
|
|
|
extern consvar_t cv_playername4;
|
|
|
|
extern consvar_t cv_playercolor4;
|
|
|
|
extern consvar_t cv_skin4;
|
2014-03-15 16:59:03 +00:00
|
|
|
|
|
|
|
extern consvar_t cv_touchtag;
|
|
|
|
extern consvar_t cv_hidetime;
|
|
|
|
|
|
|
|
extern consvar_t cv_friendlyfire;
|
|
|
|
extern consvar_t cv_pointlimit;
|
|
|
|
extern consvar_t cv_timelimit;
|
|
|
|
extern consvar_t cv_numlaps;
|
|
|
|
extern consvar_t cv_usemapnumlaps;
|
|
|
|
extern UINT32 timelimitintics;
|
|
|
|
extern consvar_t cv_allowexitlevel;
|
|
|
|
|
|
|
|
extern consvar_t cv_hazardlog;
|
|
|
|
|
|
|
|
extern consvar_t cv_autobalance;
|
|
|
|
extern consvar_t cv_teamscramble;
|
|
|
|
extern consvar_t cv_scrambleonchange;
|
|
|
|
|
2017-12-11 06:12:38 +00:00
|
|
|
extern consvar_t cv_useranalog, cv_useranalog2, cv_useranalog3, cv_useranalog4;
|
|
|
|
extern consvar_t cv_analog, cv_analog2, cv_analog3, cv_analog4;
|
2014-03-15 16:59:03 +00:00
|
|
|
|
|
|
|
extern consvar_t cv_netstat;
|
2016-07-06 04:09:17 +00:00
|
|
|
#ifdef WALLSPLATS
|
2014-03-15 16:59:03 +00:00
|
|
|
extern consvar_t cv_splats;
|
2016-07-06 04:09:17 +00:00
|
|
|
#endif
|
2014-03-15 16:59:03 +00:00
|
|
|
|
|
|
|
extern consvar_t cv_countdowntime;
|
|
|
|
extern consvar_t cv_runscripts;
|
|
|
|
extern consvar_t cv_mute;
|
|
|
|
extern consvar_t cv_killingdead;
|
|
|
|
extern consvar_t cv_pause;
|
|
|
|
|
|
|
|
extern consvar_t cv_restrictskinchange, cv_allowteamchange, cv_respawntime;
|
|
|
|
|
|
|
|
extern consvar_t cv_teleporters, cv_superring, cv_supersneakers, cv_invincibility;
|
|
|
|
extern consvar_t cv_jumpshield, cv_watershield, cv_ringshield, cv_forceshield, cv_bombshield;
|
|
|
|
extern consvar_t cv_1up, cv_eggmanbox;
|
|
|
|
extern consvar_t cv_recycler;
|
|
|
|
|
2016-08-15 03:51:08 +00:00
|
|
|
// SRB2kart items
|
|
|
|
extern consvar_t cv_magnet, cv_boo, cv_mushroom, cv_triplemushroom, cv_megashroom;
|
|
|
|
extern consvar_t cv_goldshroom, cv_star, cv_triplebanana, cv_fakeitem, cv_banana;
|
|
|
|
extern consvar_t cv_greenshell, cv_redshell, cv_laserwisp, cv_triplegreenshell, cv_bobomb;
|
|
|
|
extern consvar_t cv_blueshell, cv_jaws, cv_fireflower, cv_tripleredshell, cv_lightning;
|
2017-11-07 05:57:42 +00:00
|
|
|
extern consvar_t cv_feather;
|
2016-08-15 03:51:08 +00:00
|
|
|
|
2017-02-13 04:24:49 +00:00
|
|
|
extern consvar_t cv_karthud;
|
Lots of changes
- Menus now have all of the Kart cvars
- Removed any cvars that aren't useful for Kart from the menu (they
still exist in the console, though)
- Removed SP and NiGHTS Mode options from the main menu
- "kartcc" is renamed "kartspeed", uses values 0-2 instead of multiples
of 50, or the terms "Relaxed", "Standard", and "Turbo"
- Many gametype options (game speed, frantic, mirror, & karma comeback)
are now changed on map load instead of instantly
- New cvar, "kartminimap", for disabling the minimap
- The maxplayers cvar now actually matches up with our 16 player limit
- Game now keeps track of matches played. Has a condition type
associated with it, as well.
- Game checks for unlocks and saves gamedata when finishing a match,
even in MP
- Removed most of the normal emblems, added a single emblem for Green
Hills. Didn't know what to do with extra emblems and such so I just left
them (FOR NOW c:<)
2018-01-16 03:31:14 +00:00
|
|
|
extern consvar_t cv_kartminimap;
|
2017-11-02 04:35:10 +00:00
|
|
|
extern consvar_t cv_kartcheck;
|
2017-11-11 02:10:01 +00:00
|
|
|
extern consvar_t cv_kartstarsfx;
|
Lots of changes
- Menus now have all of the Kart cvars
- Removed any cvars that aren't useful for Kart from the menu (they
still exist in the console, though)
- Removed SP and NiGHTS Mode options from the main menu
- "kartcc" is renamed "kartspeed", uses values 0-2 instead of multiples
of 50, or the terms "Relaxed", "Standard", and "Turbo"
- Many gametype options (game speed, frantic, mirror, & karma comeback)
are now changed on map load instead of instantly
- New cvar, "kartminimap", for disabling the minimap
- The maxplayers cvar now actually matches up with our 16 player limit
- Game now keeps track of matches played. Has a condition type
associated with it, as well.
- Game checks for unlocks and saves gamedata when finishing a match,
even in MP
- Removed most of the normal emblems, added a single emblem for Green
Hills. Didn't know what to do with extra emblems and such so I just left
them (FOR NOW c:<)
2018-01-16 03:31:14 +00:00
|
|
|
extern consvar_t cv_kartspeed;
|
2017-10-22 07:06:35 +00:00
|
|
|
extern consvar_t cv_kartballoons;
|
2017-11-01 22:46:35 +00:00
|
|
|
extern consvar_t cv_kartfrantic;
|
2017-11-14 01:45:57 +00:00
|
|
|
extern consvar_t cv_kartcomeback;
|
2017-12-12 05:07:14 +00:00
|
|
|
extern consvar_t cv_kartmirror;
|
2017-03-13 02:44:31 +00:00
|
|
|
extern consvar_t cv_speedometer;
|
2017-04-17 17:18:51 +00:00
|
|
|
|
2018-01-28 04:52:01 +00:00
|
|
|
extern consvar_t cv_votetime;
|
|
|
|
|
2017-04-17 17:18:51 +00:00
|
|
|
extern consvar_t cv_collideminimum;
|
|
|
|
extern consvar_t cv_collidesoundnum;
|
|
|
|
extern consvar_t cv_collidesounds;
|
2017-02-13 04:24:49 +00:00
|
|
|
//
|
2016-08-15 03:51:08 +00:00
|
|
|
|
2014-03-15 16:59:03 +00:00
|
|
|
extern consvar_t cv_itemfinder;
|
|
|
|
|
|
|
|
extern consvar_t cv_inttime, cv_advancemap, cv_playersforexit;
|
|
|
|
extern consvar_t cv_soniccd;
|
|
|
|
extern consvar_t cv_match_scoring;
|
|
|
|
extern consvar_t cv_overtime;
|
|
|
|
extern consvar_t cv_startinglives;
|
|
|
|
|
|
|
|
// for F_finale.c
|
2014-04-14 05:14:58 +00:00
|
|
|
extern consvar_t cv_rollingdemos;
|
2014-03-15 16:59:03 +00:00
|
|
|
|
|
|
|
extern consvar_t cv_resetmusic;
|
|
|
|
|
|
|
|
extern consvar_t cv_ringslinger, cv_soundtest;
|
|
|
|
|
|
|
|
extern consvar_t cv_specialrings, cv_powerstones, cv_matchboxes, cv_competitionboxes;
|
|
|
|
|
|
|
|
#ifdef NEWPING
|
|
|
|
extern consvar_t cv_maxping;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
extern consvar_t cv_skipmapcheck;
|
|
|
|
|
|
|
|
extern consvar_t cv_sleep, cv_screenshot_option, cv_screenshot_folder;
|
|
|
|
|
|
|
|
extern consvar_t cv_moviemode;
|
|
|
|
|
|
|
|
extern consvar_t cv_zlib_level, cv_zlib_memory, cv_zlib_strategy;
|
|
|
|
|
|
|
|
extern consvar_t cv_zlib_window_bits, cv_zlib_levela, cv_zlib_memorya;
|
|
|
|
|
|
|
|
extern consvar_t cv_zlib_strategya, cv_zlib_window_bitsa;
|
|
|
|
|
|
|
|
extern consvar_t cv_apng_delay;
|
|
|
|
|
|
|
|
typedef enum
|
|
|
|
{
|
|
|
|
XD_NAMEANDCOLOR = 1,
|
|
|
|
XD_WEAPONPREF, // 2
|
|
|
|
XD_KICK, // 3
|
|
|
|
XD_NETVAR, // 4
|
|
|
|
XD_SAY, // 5
|
|
|
|
XD_MAP, // 6
|
|
|
|
XD_EXITLEVEL, // 7
|
|
|
|
XD_ADDFILE, // 8
|
|
|
|
XD_PAUSE, // 9
|
|
|
|
XD_ADDPLAYER, // 10
|
|
|
|
XD_TEAMCHANGE, // 11
|
|
|
|
XD_CLEARSCORES, // 12
|
|
|
|
XD_LOGIN, // 13
|
|
|
|
XD_VERIFIED, // 14
|
|
|
|
XD_RANDOMSEED, // 15
|
|
|
|
XD_RUNSOC, // 16
|
|
|
|
XD_REQADDFILE, // 17
|
|
|
|
XD_DELFILE, // 18
|
|
|
|
XD_SETMOTD, // 19
|
|
|
|
XD_SUICIDE, // 20
|
2017-12-08 04:45:39 +00:00
|
|
|
XD_DEMOTED, // 21
|
2018-01-30 21:42:44 +00:00
|
|
|
XD_SETUPVOTE, // 22
|
2018-02-04 04:47:47 +00:00
|
|
|
XD_MODIFYVOTE, // 23
|
|
|
|
XD_PICKVOTE, // 24
|
2014-03-15 16:59:03 +00:00
|
|
|
#ifdef HAVE_BLUA
|
2018-02-04 04:47:47 +00:00
|
|
|
XD_LUACMD, // 25
|
|
|
|
XD_LUAVAR, // 26
|
2014-03-15 16:59:03 +00:00
|
|
|
#endif
|
|
|
|
MAXNETXCMD
|
|
|
|
} netxcmd_t;
|
|
|
|
|
2016-12-31 18:26:33 +00:00
|
|
|
extern const char *netxcmdnames[MAXNETXCMD - 1];
|
|
|
|
|
2014-03-15 16:59:03 +00:00
|
|
|
#if defined(_MSC_VER)
|
|
|
|
#pragma pack(1)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef _MSC_VER
|
|
|
|
#pragma warning(disable : 4214)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
//Packet composition for Command_TeamChange_f() ServerTeamChange, etc.
|
|
|
|
//bitwise structs make packing bits a little easier, but byte alignment harder?
|
|
|
|
//todo: decide whether to make the other netcommands conform, or just get rid of this experiment.
|
|
|
|
typedef struct {
|
|
|
|
UINT32 playernum : 5; // value 0 to 31
|
|
|
|
UINT32 newteam : 5; // value 0 to 31
|
|
|
|
UINT32 verification : 1; // value 0 to 1
|
|
|
|
UINT32 autobalance : 1; // value 0 to 1
|
|
|
|
UINT32 scrambled : 1; // value 0 to 1
|
|
|
|
} ATTRPACK changeteam_packet_t;
|
|
|
|
|
|
|
|
#ifdef _MSC_VER
|
|
|
|
#pragma warning(default : 4214)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
UINT16 l; // liitle endian
|
|
|
|
UINT16 b; // big enian
|
|
|
|
} ATTRPACK changeteam_value_t;
|
|
|
|
|
|
|
|
//Since we do not want other files/modules to know about this data buffer we union it here with a Short Int.
|
|
|
|
//Other files/modules will hand the INT16 back to us and we will decode it here.
|
|
|
|
//We don't have to use a union, but we would then send four bytes instead of two.
|
|
|
|
typedef union {
|
|
|
|
changeteam_packet_t packet;
|
|
|
|
changeteam_value_t value;
|
|
|
|
} ATTRPACK changeteam_union;
|
|
|
|
|
|
|
|
#if defined(_MSC_VER)
|
|
|
|
#pragma pack()
|
|
|
|
#endif
|
|
|
|
|
|
|
|
// add game commands, needs cleanup
|
|
|
|
void D_RegisterServerCommands(void);
|
|
|
|
void D_RegisterClientCommands(void);
|
|
|
|
void D_SendPlayerConfig(void);
|
|
|
|
void Command_ExitGame_f(void);
|
|
|
|
void Command_Retry_f(void);
|
|
|
|
void D_GameTypeChanged(INT32 lastgametype); // not a real _OnChange function anymore
|
|
|
|
void D_MapChange(INT32 pmapnum, INT32 pgametype, boolean pultmode, boolean presetplayers, INT32 pdelay, boolean pskipprecutscene, boolean pfromlevelselect);
|
2018-01-30 21:42:44 +00:00
|
|
|
void D_SetupVote(void);
|
2018-02-23 01:04:52 +00:00
|
|
|
void D_ModifyClientVote(SINT8 voted);
|
2018-02-04 04:47:47 +00:00
|
|
|
void D_PickVote(void);
|
2014-03-15 16:59:03 +00:00
|
|
|
void ObjectPlace_OnChange(void);
|
2017-11-11 05:34:37 +00:00
|
|
|
boolean IsPlayerAdmin(INT32 playernum);
|
|
|
|
void SetAdminPlayer(INT32 playernum);
|
|
|
|
void ClearAdminPlayers(void);
|
|
|
|
void RemoveAdminPlayer(INT32 playernum);
|
2014-03-15 16:59:03 +00:00
|
|
|
void ItemFinder_OnChange(void);
|
|
|
|
void D_SetPassword(const char *pw);
|
|
|
|
|
|
|
|
// used for the player setup menu
|
|
|
|
UINT8 CanChangeSkin(INT32 playernum);
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|