mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-14 03:58:18 +00:00
212 lines
2.9 KiB
Modula-2
212 lines
2.9 KiB
Modula-2
|
|
raw_source
|
|
#include "g_protocol.h"
|
|
#include "g_protocol_ids.h"
|
|
#include <engine/e_common_interface.h>
|
|
#define max_int 2147483647
|
|
end
|
|
|
|
raw_header
|
|
enum
|
|
{
|
|
// emotes
|
|
EMOTE_NORMAL=0,
|
|
EMOTE_PAIN,
|
|
EMOTE_HAPPY,
|
|
EMOTE_SURPRISE,
|
|
EMOTE_ANGRY,
|
|
EMOTE_BLINK,
|
|
NUM_EMOTES,
|
|
|
|
// playerstates
|
|
PLAYERSTATE_UNKNOWN=0,
|
|
PLAYERSTATE_PLAYING,
|
|
PLAYERSTATE_IN_MENU,
|
|
PLAYERSTATE_CHATTING,
|
|
NUM_PLAYERSTATES,
|
|
|
|
// game types
|
|
GAMETYPE_DM=0,
|
|
GAMETYPE_TDM,
|
|
GAMETYPE_CTF,
|
|
NUM_GAMETYPES,
|
|
|
|
// other stuff
|
|
INPUT_STATE_MASK=0x1f,
|
|
};
|
|
|
|
enum
|
|
{
|
|
MSG_NULL=0,
|
|
MSG_SAY, // client -> server
|
|
MSG_CHAT, // server -> client
|
|
MSG_SETINFO, // server -> client - contains name, skin and color info
|
|
MSG_KILLMSG, // server -> client
|
|
MSG_SETTEAM,
|
|
MSG_JOIN,
|
|
MSG_QUIT,
|
|
MSG_EMOTICON,
|
|
MSG_STARTINFO, // client -> server
|
|
MSG_CHANGEINFO, // client -> server
|
|
MSG_READY_TO_ENTER, // server -> client
|
|
MSG_WEAPON_PICKUP,
|
|
MSG_SOUND_GLOBAL,
|
|
MSG_TUNE_PARAMS,
|
|
MSG_KILL,
|
|
MSG_EXTRA_PROJECTILE, // server -> client
|
|
|
|
};
|
|
|
|
end
|
|
|
|
|
|
|
|
object player_input
|
|
any left
|
|
any right
|
|
|
|
any target_x
|
|
any target_y
|
|
|
|
any jump
|
|
any fire
|
|
any hook
|
|
any blink
|
|
|
|
any player_state
|
|
|
|
any wanted_weapon
|
|
any next_weapon
|
|
any prev_weapon
|
|
end
|
|
|
|
object projectile
|
|
any x, y
|
|
any vx, vy
|
|
range(0, NUM_WEAPONS) type
|
|
range(0, max_int) start_tick
|
|
end
|
|
|
|
object laser
|
|
any x
|
|
any y
|
|
any from_x
|
|
any from_y
|
|
range(0, max_int) eval_tick
|
|
end
|
|
|
|
object powerup
|
|
any x, y
|
|
range(0, max_int) type
|
|
range(0, max_int) subtype
|
|
end
|
|
|
|
object flag
|
|
any x, y
|
|
range(0, 1) team
|
|
clientid carried_by
|
|
end
|
|
|
|
object game
|
|
range(0, max_int) round_start_tick
|
|
|
|
range(0, 1) game_over
|
|
range(0, 1) sudden_death
|
|
range(0, 1) paused
|
|
|
|
range(0, max_int) score_limit
|
|
range(0, max_int) time_limit
|
|
range(0, NUM_GAMETYPES-1) gametype
|
|
|
|
range(0, max_int) warmup
|
|
|
|
any teamscore_red
|
|
any teamscore_blue
|
|
end
|
|
|
|
// core object needed for physics
|
|
object player_core
|
|
any x, y
|
|
any vx, vy
|
|
|
|
any angle
|
|
range(0, 3) jumped
|
|
|
|
clientid hooked_player
|
|
range(0, 3) hook_state
|
|
range(0, max_int) hook_tick
|
|
|
|
any hook_x
|
|
any hook_y
|
|
any hook_dx
|
|
any hook_dy
|
|
end
|
|
|
|
// info about the player that is only needed when it's on screen
|
|
object player_character extends player_core
|
|
range(0, NUM_PLAYERSTATES-1) player_state
|
|
|
|
range(0, 10) health
|
|
range(0, 10) armor
|
|
range(0, 10) ammocount
|
|
range(0, 10) weaponstage
|
|
|
|
range(0, NUM_WEAPONS-1) weapon
|
|
range(0, NUM_EMOTES-1) emote
|
|
|
|
range(0, max_int) attacktick
|
|
end
|
|
|
|
// information about the player that is always needed
|
|
object player_info
|
|
range(0, 1) local
|
|
clientid cid
|
|
range(-1, 1) team
|
|
|
|
any score
|
|
|
|
any latency
|
|
any latency_flux
|
|
end
|
|
|
|
event common
|
|
any x, y
|
|
end
|
|
|
|
event explosion
|
|
any x, y
|
|
end
|
|
|
|
event spawn
|
|
any x, y
|
|
end
|
|
|
|
event death
|
|
any x, y
|
|
end
|
|
|
|
event air_jump
|
|
any x, y
|
|
end
|
|
|
|
event sound_global
|
|
any x, y
|
|
range(0, NUM_SOUNDS-1) soundid
|
|
end
|
|
|
|
event sound_world
|
|
any x, y
|
|
range(0, NUM_SOUNDS-1) soundid
|
|
end
|
|
|
|
event damageind
|
|
any x, y
|
|
any angle
|
|
end
|
|
|
|
//msg say
|
|
// clientid cid
|
|
// range(-1, 1) team
|
|
// string message
|
|
//end
|