Use enum for multiplayer message numbers

This commit is contained in:
Kp 2013-06-09 21:28:55 +00:00
parent 9af78b7217
commit b685253fef
2 changed files with 76 additions and 140 deletions

View file

@ -174,76 +174,9 @@ char RefuseThisPlayer=0,WaitForRefuseAnswer=0,RefuseTeam,RefusePlayerName[12];
fix64 RefuseTimeLimit=0;
extern void init_player_stats_new_ship(ubyte pnum);
static const int message_length[MULTI_MAX_TYPE+1] = {
25, // POSITION
4, // REAPPEAR
8, // FIRE
5, // KILL
4, // REMOVE_OBJECT
97+9, // PLAYER_EXPLODE
37, // MESSAGE (MAX_MESSAGE_LENGTH = 40)
2, // QUIT
4, // PLAY_SOUND
41, // BEGIN_SYNC
4, // CONTROLCEN
5, // CLAIM ROBOT
4, // END_SYNC
2, // CLOAK
3, // ENDLEVEL_START
5, // DOOR_OPEN
2, // CREATE_EXPLOSION
16, // CONTROLCEN_FIRE
97+9, // PLAYER_DROP
19, // CREATE_POWERUP
9, // MISSILE_TRACK
2, // DE-CLOAK
2, // MENU_CHOICE
28, // ROBOT_POSITION (shortpos_length (23) + 5 = 28)
9, // ROBOT_EXPLODE
5, // ROBOT_RELEASE
18, // ROBOT_FIRE
6, // SCORE
6, // CREATE_ROBOT
3, // TRIGGER
10, // BOSS_ACTIONS
27, // ROBOT_POWERUPS
7, // HOSTAGE_DOOR
2+24, // SAVE_GAME (ubyte slot, uint id, char name[20]) // obsolete
2+4, // RESTORE_GAME (ubyte slot, uint id) // obsolete
-1, // MULTI_REQ_PLAYER - NEVER USED
-1, // MULTI_SEND_PLAYER - NEVER USED
55, // MULTI_MARKER
12, // MULTI_DROP_WEAPON
3+sizeof(shortpos), // MULTI_GUIDED, IF SHORTPOS CHANGES, CHANGE MAC VALUE BELOW
11, // MULTI_STOLEN_ITEMS
6, // MULTI_WALL_STATUS
5, // MULTI_HEARTBEAT
9, // MULTI_KILLGOALS
9, // MULTI_SEISMIC
18, // MULTI_LIGHT
2, // MULTI_START_TRIGGER
6, // MULTI_FLAGS
2, // MULTI_DROP_BLOB
MAX_POWERUP_TYPES+1, // MULTI_POWCAP_UPDATE
sizeof(active_door)+3, // MULTI_ACTIVE_DOOR
4, // MULTI_SOUND_FUNCTION
2, // MULTI_CAPTURE_BONUS
2, // MULTI_GOT_FLAG
12, // MULTI_DROP_FLAG
1, // MULTI_ROBOT_CONTROLS - UNUSED
2, // MULTI_FINISH_GAME
3, // MULTI_RANK
1, // MULTI_MODEM_PING
1, // MULTI_MODEM_PING_RETURN
3, // MULTI_ORB_BONUS
2, // MULTI_GOT_ORB
12, // MULTI_DROP_ORB
4, // MULTI_PLAY_BY_PLAY
2, // MULTI_DO_BOUNTY
3, // MULTI_TYPING_STATE
3, // MULTI_GMODE_UPDATE
7, // MULTI_KILL_HOST
5, // MULTI_KILL_CLIENT
static const int message_length[] = {
#define define_message_length(NAME,SIZE) (SIZE),
for_each_multiplayer_command(, define_message_length, )
};
char PowerupsInMine[MAX_POWERUP_TYPES],MaxPowerupsAllowed[MAX_POWERUP_TYPES];

View file

@ -59,81 +59,84 @@ extern int multi_protocol; // set and determinate used protocol
#define MULTI_PROTO_UDP 1 // UDP protocol
// What version of the multiplayer protocol is this? Increment each time something drastic changes in Multiplayer without the version number changes. Can be reset to 0 each time the version of the game changes
#define MULTI_PROTO_VERSION 5
#define MULTI_PROTO_VERSION 6
// PROTOCOL VARIABLES AND DEFINES - END
#define MAX_MESSAGE_LEN 35
#define MULTI_POSITION 0
#define MULTI_REAPPEAR 1
#define MULTI_FIRE 2
#define MULTI_KILL 3
#define MULTI_REMOVE_OBJECT 4
#define MULTI_PLAYER_EXPLODE 5
#define MULTI_MESSAGE 6
#define MULTI_QUIT 7
#define MULTI_PLAY_SOUND 8
#define MULTI_BEGIN_SYNC 9
#define MULTI_CONTROLCEN 10
#define MULTI_ROBOT_CLAIM 11
#define MULTI_END_SYNC 12
#define MULTI_CLOAK 13
#define MULTI_ENDLEVEL_START 14
#define MULTI_DOOR_OPEN 15
#define MULTI_CREATE_EXPLOSION 16
#define MULTI_CONTROLCEN_FIRE 17
#define MULTI_PLAYER_DROP 18
#define MULTI_CREATE_POWERUP 19
#define MULTI_CONSISTENCY 20
#define MULTI_DECLOAK 21
#define MULTI_MENU_CHOICE 22
#define MULTI_ROBOT_POSITION 23
#define MULTI_ROBOT_EXPLODE 24
#define MULTI_ROBOT_RELEASE 25
#define MULTI_ROBOT_FIRE 26
#define MULTI_SCORE 27
#define MULTI_CREATE_ROBOT 28
#define MULTI_TRIGGER 29
#define MULTI_BOSS_ACTIONS 30
#define MULTI_CREATE_ROBOT_POWERUPS 31
#define MULTI_HOSTAGE_DOOR 32
#define MULTI_SAVE_GAME 33
#define MULTI_RESTORE_GAME 34
#define MULTI_REQ_PLAYER 35 // NEVER USED
#define MULTI_SEND_PLAYER 36 // NEVER USED
#define MULTI_MARKER 37
#define MULTI_DROP_WEAPON 38
#define MULTI_GUIDED 39
#define MULTI_STOLEN_ITEMS 40
#define MULTI_WALL_STATUS 41 // send to new players
#define MULTI_HEARTBEAT 42
#define MULTI_KILLGOALS 43
#define MULTI_SEISMIC 44
#define MULTI_LIGHT 45
#define MULTI_START_TRIGGER 46
#define MULTI_FLAGS 47
#define MULTI_DROP_BLOB 48
#define MULTI_POWCAP_UPDATE 49
#define MULTI_ACTIVE_DOOR 50
#define MULTI_SOUND_FUNCTION 51
#define MULTI_CAPTURE_BONUS 52
#define MULTI_GOT_FLAG 53
#define MULTI_DROP_FLAG 54
#define MULTI_ROBOT_CONTROLS 55 // NEVER USED
#define MULTI_FINISH_GAME 56
#define MULTI_RANK 57
#define MULTI_MODEM_PING 58
#define MULTI_MODEM_PING_RETURN 59
#define MULTI_ORB_BONUS 60
#define MULTI_GOT_ORB 61
#define MULTI_DROP_ORB 62
#define MULTI_PLAY_BY_PLAY 63
#define MULTI_DO_BOUNTY 64
#define MULTI_TYPING_STATE 65
#define MULTI_GMODE_UPDATE 66
#define MULTI_KILL_HOST 67
#define MULTI_KILL_CLIENT 68
#define define_multiplayer_command(NAME,SIZE) NAME,
#define for_each_multiplayer_command(BEFORE,VALUE,AFTER) \
BEFORE \
VALUE(MULTI_POSITION , 25) \
VALUE(MULTI_REAPPEAR , 4) \
VALUE(MULTI_FIRE , 8) \
VALUE(MULTI_KILL , 5) \
VALUE(MULTI_REMOVE_OBJECT , 4) \
VALUE(MULTI_MESSAGE , 37) /* (MAX_MESSAGE_LENGTH = 40) */ \
VALUE(MULTI_QUIT , 2) \
VALUE(MULTI_PLAY_SOUND , 4) \
VALUE(MULTI_CONTROLCEN , 4) \
VALUE(MULTI_ROBOT_CLAIM , 5) \
VALUE(MULTI_END_SYNC , 4) \
VALUE(MULTI_CLOAK , 2) \
VALUE(MULTI_ENDLEVEL_START , 3) \
VALUE(MULTI_CREATE_EXPLOSION , 2) \
VALUE(MULTI_CONTROLCEN_FIRE , 16) \
VALUE(MULTI_CREATE_POWERUP , 19) \
VALUE(MULTI_DECLOAK , 2) \
VALUE(MULTI_MENU_CHOICE , 2) \
VALUE(MULTI_ROBOT_POSITION , 5+sizeof(shortpos)) \
VALUE(MULTI_PLAYER_EXPLODE , 97+9) \
VALUE(MULTI_BEGIN_SYNC , 41) \
VALUE(MULTI_DOOR_OPEN , 5) \
VALUE(MULTI_PLAYER_DROP , 97+9) \
VALUE(MULTI_ROBOT_EXPLODE , 9) \
VALUE(MULTI_ROBOT_RELEASE , 5) \
VALUE(MULTI_ROBOT_FIRE , 18) \
VALUE(MULTI_SCORE , 6) \
VALUE(MULTI_CREATE_ROBOT , 6) \
VALUE(MULTI_TRIGGER , 3) \
VALUE(MULTI_BOSS_ACTIONS , 10) \
VALUE(MULTI_CREATE_ROBOT_POWERUPS, 27) \
VALUE(MULTI_HOSTAGE_DOOR , 7) \
VALUE(MULTI_SAVE_GAME , 2+24) /* (ubyte slot, uint id, char name[20]) */ \
VALUE(MULTI_RESTORE_GAME , 2+4) /* (ubyte slot, uint id) */ \
VALUE(MULTI_HEARTBEAT , 5) \
VALUE(MULTI_KILLGOALS , 9) \
VALUE(MULTI_POWCAP_UPDATE , MAX_POWERUP_TYPES+1) \
VALUE(MULTI_DO_BOUNTY , 2) \
VALUE(MULTI_TYPING_STATE , 3) \
VALUE(MULTI_GMODE_UPDATE , 3) \
VALUE(MULTI_KILL_HOST , 7) \
VALUE(MULTI_KILL_CLIENT , 5) \
VALUE(MULTI_RANK , 3) \
VALUE(MULTI_MARKER , 55) \
VALUE(MULTI_DROP_WEAPON , 12) \
VALUE(MULTI_GUIDED , 3+sizeof(shortpos)) \
VALUE(MULTI_STOLEN_ITEMS , 11) \
VALUE(MULTI_WALL_STATUS , 6) /* send to new players */ \
VALUE(MULTI_SEISMIC , 9) \
VALUE(MULTI_LIGHT , 18) \
VALUE(MULTI_START_TRIGGER , 2) \
VALUE(MULTI_FLAGS , 6) \
VALUE(MULTI_DROP_BLOB , 2) \
VALUE(MULTI_ACTIVE_DOOR , sizeof(active_door)+3) \
VALUE(MULTI_SOUND_FUNCTION , 4) \
VALUE(MULTI_CAPTURE_BONUS , 2) \
VALUE(MULTI_GOT_FLAG , 2) \
VALUE(MULTI_DROP_FLAG , 12) \
VALUE(MULTI_ROBOT_CONTROLS , 1) /* UNUSED */ \
VALUE(MULTI_FINISH_GAME , 2) \
VALUE(MULTI_MODEM_PING , 1) \
VALUE(MULTI_MODEM_PING_RETURN , 1) \
VALUE(MULTI_ORB_BONUS , 3) \
VALUE(MULTI_GOT_ORB , 2) \
VALUE(MULTI_DROP_ORB , 12) \
VALUE(MULTI_PLAY_BY_PLAY , 4) \
AFTER
for_each_multiplayer_command(enum {, define_multiplayer_command, });
#define MAX_NET_CREATE_OBJECTS 40