ddnet/datasrc/network.py

335 lines
7 KiB
Python
Raw Normal View History

2008-04-27 05:59:38 +00:00
from datatypes import *
Emotes = ["NORMAL", "PAIN", "HAPPY", "SURPRISE", "ANGRY", "BLINK"]
PlayerFlags = ["PLAYING", "IN_MENU", "CHATTING", "SCOREBOARD"]
2008-08-31 14:37:35 +00:00
GameFlags = ["TEAMS", "FLAGS"]
2011-03-04 16:08:10 +00:00
GameStateFlags = ["GAMEOVER", "SUDDENDEATH", "PAUSED"]
2008-04-27 05:59:38 +00:00
2011-02-16 10:45:19 +00:00
Emoticons = [str(x) for x in range(0,16)]
2008-09-04 21:54:21 +00:00
Powerups = ["HEALTH", "ARMOR", "WEAPON", "NINJA"]
RawHeader = '''
2010-05-29 07:25:38 +00:00
#include <engine/message.h>
enum
{
2011-01-03 11:50:38 +00:00
INPUT_STATE_MASK=0x3f
};
enum
{
TEAM_SPECTATORS=-1,
TEAM_RED,
2011-03-04 16:08:10 +00:00
TEAM_BLUE,
FLAG_MISSING=-3,
FLAG_ATSTAND,
2011-03-04 16:08:10 +00:00
FLAG_TAKEN,
SPEC_FREEVIEW=-1,
};
'''
RawSource = '''
2010-05-29 07:25:38 +00:00
#include <engine/message.h>
#include "protocol.h"
'''
Enums = [
Enum("EMOTE", Emotes),
Enum("POWERUP", Powerups),
Enum("EMOTICON", Emoticons)
]
2008-04-27 05:59:38 +00:00
2008-08-27 15:51:09 +00:00
Flags = [
2011-03-04 16:08:10 +00:00
Flags("PLAYERFLAG", PlayerFlags),
Flags("GAMEFLAG", GameFlags),
Flags("GAMESTATEFLAG", GameStateFlags)
2008-08-27 15:51:09 +00:00
]
2008-04-27 05:59:38 +00:00
Objects = [
2010-05-29 07:25:38 +00:00
NetObject("PlayerInput", [
NetIntAny("m_Direction"),
NetIntAny("m_TargetX"),
NetIntAny("m_TargetY"),
2008-04-27 05:59:38 +00:00
2010-05-29 07:25:38 +00:00
NetIntAny("m_Jump"),
NetIntAny("m_Fire"),
NetIntAny("m_Hook"),
2008-04-27 05:59:38 +00:00
NetIntRange("m_PlayerFlags", 0, 256),
2008-04-27 05:59:38 +00:00
2010-05-29 07:25:38 +00:00
NetIntAny("m_WantedWeapon"),
NetIntAny("m_NextWeapon"),
NetIntAny("m_PrevWeapon"),
2008-04-27 05:59:38 +00:00
]),
NetObject("Projectile", [
2010-05-29 07:25:38 +00:00
NetIntAny("m_X"),
NetIntAny("m_Y"),
NetIntAny("m_VelX"),
NetIntAny("m_VelY"),
2008-04-27 05:59:38 +00:00
2010-05-29 07:25:38 +00:00
NetIntRange("m_Type", 0, 'NUM_WEAPONS-1'),
NetTick("m_StartTick"),
2008-04-27 05:59:38 +00:00
]),
NetObject("Laser", [
2010-05-29 07:25:38 +00:00
NetIntAny("m_X"),
NetIntAny("m_Y"),
NetIntAny("m_FromX"),
NetIntAny("m_FromY"),
2008-04-27 05:59:38 +00:00
2010-05-29 07:25:38 +00:00
NetTick("m_StartTick"),
2008-04-27 05:59:38 +00:00
]),
NetObject("Pickup", [
2010-05-29 07:25:38 +00:00
NetIntAny("m_X"),
NetIntAny("m_Y"),
2008-04-27 05:59:38 +00:00
2010-05-29 07:25:38 +00:00
NetIntRange("m_Type", 0, 'max_int'),
NetIntRange("m_Subtype", 0, 'max_int'),
2008-04-27 05:59:38 +00:00
]),
NetObject("Flag", [
2010-05-29 07:25:38 +00:00
NetIntAny("m_X"),
NetIntAny("m_Y"),
2008-04-27 05:59:38 +00:00
2011-03-04 16:08:10 +00:00
NetIntRange("m_Team", 'TEAM_RED', 'TEAM_BLUE')
2008-04-27 05:59:38 +00:00
]),
2011-03-04 16:08:10 +00:00
NetObject("GameInfo", [
NetIntRange("m_GameFlags", 0, 256),
NetIntRange("m_GameStateFlags", 0, 256),
2010-05-29 07:25:38 +00:00
NetTick("m_RoundStartTick"),
2011-03-04 16:08:10 +00:00
NetIntRange("m_WarmupTimer", 0, 'max_int'),
2008-04-27 05:59:38 +00:00
2010-05-29 07:25:38 +00:00
NetIntRange("m_ScoreLimit", 0, 'max_int'),
NetIntRange("m_TimeLimit", 0, 'max_int'),
2008-04-27 05:59:38 +00:00
2010-05-29 07:25:38 +00:00
NetIntRange("m_RoundNum", 0, 'max_int'),
NetIntRange("m_RoundCurrent", 0, 'max_int'),
2011-03-04 16:08:10 +00:00
]),
2008-04-27 05:59:38 +00:00
2011-03-04 16:08:10 +00:00
NetObject("GameData", [
2010-05-29 07:25:38 +00:00
NetIntAny("m_TeamscoreRed"),
NetIntAny("m_TeamscoreBlue"),
2011-03-04 16:08:10 +00:00
NetIntRange("m_FlagCarrierRed", 'FLAG_MISSING', 'MAX_CLIENTS-1'),
NetIntRange("m_FlagCarrierBlue", 'FLAG_MISSING', 'MAX_CLIENTS-1'),
2008-04-27 05:59:38 +00:00
]),
2010-05-29 07:25:38 +00:00
NetObject("CharacterCore", [
NetIntAny("m_Tick"),
NetIntAny("m_X"),
NetIntAny("m_Y"),
NetIntAny("m_VelX"),
NetIntAny("m_VelY"),
2008-04-27 05:59:38 +00:00
2010-05-29 07:25:38 +00:00
NetIntAny("m_Angle"),
NetIntRange("m_Direction", -1, 1),
2008-04-27 05:59:38 +00:00
2010-05-29 07:25:38 +00:00
NetIntRange("m_Jumped", 0, 3),
NetIntRange("m_HookedPlayer", 0, 'MAX_CLIENTS-1'),
NetIntRange("m_HookState", -1, 5),
NetTick("m_HookTick"),
NetIntAny("m_HookX"),
NetIntAny("m_HookY"),
NetIntAny("m_HookDx"),
NetIntAny("m_HookDy"),
]),
NetObject("Character:CharacterCore", [
NetIntRange("m_PlayerFlags", 0, 256),
2010-05-29 07:25:38 +00:00
NetIntRange("m_Health", 0, 10),
NetIntRange("m_Armor", 0, 10),
NetIntRange("m_AmmoCount", 0, 10),
NetIntRange("m_Weapon", 0, 'NUM_WEAPONS-1'),
NetIntRange("m_Emote", 0, len(Emotes)),
NetIntRange("m_AttackTick", 0, 'max_int'),
]),
2010-05-29 07:25:38 +00:00
NetObject("PlayerInfo", [
NetIntRange("m_Local", 0, 1),
NetIntRange("m_ClientID", 0, 'MAX_CLIENTS-1'),
2011-01-03 11:50:38 +00:00
NetIntRange("m_Team", 'TEAM_SPECTATORS', 'TEAM_BLUE'),
2008-09-23 07:43:41 +00:00
2010-05-29 07:25:38 +00:00
NetIntAny("m_Score"),
NetIntAny("m_Latency"),
2008-04-27 05:59:38 +00:00
]),
2010-05-29 07:25:38 +00:00
NetObject("ClientInfo", [
# 4*4 = 16 charachters
2010-05-29 07:25:38 +00:00
NetIntAny("m_Name0"), NetIntAny("m_Name1"), NetIntAny("m_Name2"),
NetIntAny("m_Name3"),
# 4*3 = 12 charachters
NetIntAny("m_Clan0"), NetIntAny("m_Clan1"), NetIntAny("m_Clan2"),
NetIntAny("m_Country"),
# 4*6 = 24 charachters
2010-05-29 07:25:38 +00:00
NetIntAny("m_Skin0"), NetIntAny("m_Skin1"), NetIntAny("m_Skin2"),
NetIntAny("m_Skin3"), NetIntAny("m_Skin4"), NetIntAny("m_Skin5"),
2010-05-29 07:25:38 +00:00
NetIntRange("m_UseCustomColor", 0, 1),
2010-05-29 07:25:38 +00:00
NetIntAny("m_ColorBody"),
NetIntAny("m_ColorFeet"),
]),
NetObject("SpectatorInfo", [
NetIntRange("m_SpectatorID", 'SPEC_FREEVIEW', 'MAX_CLIENTS-1'),
NetIntAny("m_X"),
NetIntAny("m_Y"),
]),
2008-04-27 05:59:38 +00:00
## Events
NetEvent("Common", [
2010-05-29 07:25:38 +00:00
NetIntAny("m_X"),
NetIntAny("m_Y"),
2008-04-27 05:59:38 +00:00
]),
NetEvent("Explosion:Common", []),
NetEvent("Spawn:Common", []),
NetEvent("HammerHit:Common", []),
NetEvent("Death:Common", [
NetIntRange("m_ClientID", 0, 'MAX_CLIENTS-1'),
]),
NetEvent("SoundGlobal:Common", [
NetIntRange("m_SoundID", 0, 'NUM_SOUNDS-1'),
2008-04-27 05:59:38 +00:00
]),
NetEvent("SoundWorld:Common", [
NetIntRange("m_SoundID", 0, 'NUM_SOUNDS-1'),
2008-04-27 05:59:38 +00:00
]),
NetEvent("DamageInd:Common", [
2010-05-29 07:25:38 +00:00
NetIntAny("m_Angle"),
2008-04-27 05:59:38 +00:00
]),
]
Messages = [
### Server messages
2010-05-29 07:25:38 +00:00
NetMessage("Sv_Motd", [
NetString("m_pMessage"),
2008-04-27 05:59:38 +00:00
]),
2010-05-29 07:25:38 +00:00
NetMessage("Sv_Broadcast", [
NetString("m_pMessage"),
2008-04-27 05:59:38 +00:00
]),
2010-05-29 07:25:38 +00:00
NetMessage("Sv_Chat", [
2011-01-03 11:50:38 +00:00
NetIntRange("m_Team", 'TEAM_SPECTATORS', 'TEAM_BLUE'),
NetIntRange("m_ClientID", -1, 'MAX_CLIENTS-1'),
2010-05-29 07:25:38 +00:00
NetString("m_pMessage"),
2008-04-27 05:59:38 +00:00
]),
2010-05-29 07:25:38 +00:00
NetMessage("Sv_KillMsg", [
NetIntRange("m_Killer", 0, 'MAX_CLIENTS-1'),
NetIntRange("m_Victim", 0, 'MAX_CLIENTS-1'),
NetIntRange("m_Weapon", -3, 'NUM_WEAPONS-1'),
NetIntAny("m_ModeSpecial"),
2008-04-27 05:59:38 +00:00
]),
2010-05-29 07:25:38 +00:00
NetMessage("Sv_SoundGlobal", [
NetIntRange("m_SoundID", 0, 'NUM_SOUNDS-1'),
2008-04-27 05:59:38 +00:00
]),
2010-05-29 07:25:38 +00:00
NetMessage("Sv_TuneParams", []),
NetMessage("Sv_ExtraProjectile", []),
NetMessage("Sv_ReadyToEnter", []),
2008-04-27 05:59:38 +00:00
2010-05-29 07:25:38 +00:00
NetMessage("Sv_WeaponPickup", [
NetIntRange("m_Weapon", 0, 'NUM_WEAPONS-1'),
2008-04-27 05:59:38 +00:00
]),
2010-05-29 07:25:38 +00:00
NetMessage("Sv_Emoticon", [
NetIntRange("m_ClientID", 0, 'MAX_CLIENTS-1'),
2010-05-29 07:25:38 +00:00
NetIntRange("m_Emoticon", 0, 'NUM_EMOTICONS-1'),
2008-04-27 05:59:38 +00:00
]),
2008-09-24 14:47:03 +00:00
2010-05-29 07:25:38 +00:00
NetMessage("Sv_VoteClearOptions", [
2008-11-08 12:50:46 +00:00
]),
2011-03-25 10:49:35 +00:00
NetMessage("Sv_VoteOptionAdd", [
NetStringStrict("m_pDescription"),
]),
NetMessage("Sv_VoteOptionRemove", [
2011-03-25 08:49:21 +00:00
NetStringStrict("m_pDescription"),
2008-11-08 12:50:46 +00:00
]),
2010-05-29 07:25:38 +00:00
NetMessage("Sv_VoteSet", [
NetIntRange("m_Timeout", 0, 60),
NetStringStrict("m_pDescription"),
NetStringStrict("m_pReason"),
2008-09-24 14:47:03 +00:00
]),
2010-05-29 07:25:38 +00:00
NetMessage("Sv_VoteStatus", [
NetIntRange("m_Yes", 0, 'MAX_CLIENTS'),
NetIntRange("m_No", 0, 'MAX_CLIENTS'),
NetIntRange("m_Pass", 0, 'MAX_CLIENTS'),
NetIntRange("m_Total", 0, 'MAX_CLIENTS'),
2008-09-24 14:47:03 +00:00
]),
2008-04-27 05:59:38 +00:00
### Client messages
2010-05-29 07:25:38 +00:00
NetMessage("Cl_Say", [
NetBool("m_Team"),
NetString("m_pMessage"),
2008-04-27 05:59:38 +00:00
]),
2010-05-29 07:25:38 +00:00
NetMessage("Cl_SetTeam", [
2011-01-03 11:50:38 +00:00
NetIntRange("m_Team", 'TEAM_SPECTATORS', 'TEAM_BLUE'),
2008-04-27 05:59:38 +00:00
]),
NetMessage("Cl_SetSpectatorMode", [
NetIntRange("m_SpectatorID", 'SPEC_FREEVIEW', 'MAX_CLIENTS-1'),
]),
2008-04-27 05:59:38 +00:00
2010-05-29 07:25:38 +00:00
NetMessage("Cl_StartInfo", [
NetStringStrict("m_pName"),
NetStringStrict("m_pClan"),
NetIntAny("m_Country"),
NetStringStrict("m_pSkin"),
2010-05-29 07:25:38 +00:00
NetBool("m_UseCustomColor"),
NetIntAny("m_ColorBody"),
NetIntAny("m_ColorFeet"),
2008-04-27 05:59:38 +00:00
]),
2010-05-29 07:25:38 +00:00
NetMessage("Cl_ChangeInfo", [
NetStringStrict("m_pName"),
NetStringStrict("m_pClan"),
NetIntAny("m_Country"),
NetStringStrict("m_pSkin"),
2010-05-29 07:25:38 +00:00
NetBool("m_UseCustomColor"),
NetIntAny("m_ColorBody"),
NetIntAny("m_ColorFeet"),
2008-07-08 09:07:21 +00:00
]),
2008-09-24 14:47:03 +00:00
2010-05-29 07:25:38 +00:00
NetMessage("Cl_Kill", []),
2008-04-27 05:59:38 +00:00
2010-05-29 07:25:38 +00:00
NetMessage("Cl_Emoticon", [
NetIntRange("m_Emoticon", 0, 'NUM_EMOTICONS-1'),
2008-04-27 05:59:38 +00:00
]),
2008-09-24 14:47:03 +00:00
2010-05-29 07:25:38 +00:00
NetMessage("Cl_Vote", [
NetIntRange("m_Vote", -1, 1),
2008-09-24 14:47:03 +00:00
]),
2008-09-25 12:23:44 +00:00
2010-05-29 07:25:38 +00:00
NetMessage("Cl_CallVote", [
NetStringStrict("m_Type"),
NetStringStrict("m_Value"),
NetStringStrict("m_Reason"),
2008-09-25 12:23:44 +00:00
]),
2008-04-27 05:59:38 +00:00
]