author | Tero Marttila <terom@fixme.fi> |
Fri, 16 Jan 2009 22:03:49 +0200 | |
changeset 400 | d64bf28c4340 |
parent 334 | 0cf3f2be51eb |
child 431 | c6d7272a164b |
permissions | -rw-r--r-- |
187 | 1 |
#ifndef NETWORK_PROTOCOL_HH |
2 |
#define NETWORK_PROTOCOL_HH |
|
3 |
||
400
d64bf28c4340
more documentation tweaking, all Network/ files now have a @file comment. Fix Platform.h -> Platform.hh, and Buffer.hh + Packet.cc
Tero Marttila <terom@fixme.fi>
parents:
334
diff
changeset
|
4 |
/** |
d64bf28c4340
more documentation tweaking, all Network/ files now have a @file comment. Fix Platform.h -> Platform.hh, and Buffer.hh + Packet.cc
Tero Marttila <terom@fixme.fi>
parents:
334
diff
changeset
|
5 |
* @file |
d64bf28c4340
more documentation tweaking, all Network/ files now have a @file comment. Fix Platform.h -> Platform.hh, and Buffer.hh + Packet.cc
Tero Marttila <terom@fixme.fi>
parents:
334
diff
changeset
|
6 |
* |
d64bf28c4340
more documentation tweaking, all Network/ files now have a @file comment. Fix Platform.h -> Platform.hh, and Buffer.hh + Packet.cc
Tero Marttila <terom@fixme.fi>
parents:
334
diff
changeset
|
7 |
* Definitions for game network protocol |
187 | 8 |
*/ |
9 |
||
400
d64bf28c4340
more documentation tweaking, all Network/ files now have a @file comment. Fix Platform.h -> Platform.hh, and Buffer.hh + Packet.cc
Tero Marttila <terom@fixme.fi>
parents:
334
diff
changeset
|
10 |
/** |
d64bf28c4340
more documentation tweaking, all Network/ files now have a @file comment. Fix Platform.h -> Platform.hh, and Buffer.hh + Packet.cc
Tero Marttila <terom@fixme.fi>
parents:
334
diff
changeset
|
11 |
* The various NetworkChannelIDs used with our NetworkSession |
d64bf28c4340
more documentation tweaking, all Network/ files now have a @file comment. Fix Platform.h -> Platform.hh, and Buffer.hh + Packet.cc
Tero Marttila <terom@fixme.fi>
parents:
334
diff
changeset
|
12 |
*/ |
187 | 13 |
enum NetworkChannel { |
14 |
/* |
|
15 |
* Core channel used for NetworkSession |
|
16 |
*/ |
|
203
3ec7ab40755f
send initial terrain data to clients using a new NETCHAN_TERRAIN_ARRAY channel using raw BigNetworkPacket
terom
parents:
200
diff
changeset
|
17 |
NETCHAN_CORE = 0x0001, |
3ec7ab40755f
send initial terrain data to clients using a new NETCHAN_TERRAIN_ARRAY channel using raw BigNetworkPacket
terom
parents:
200
diff
changeset
|
18 |
|
3ec7ab40755f
send initial terrain data to clients using a new NETCHAN_TERRAIN_ARRAY channel using raw BigNetworkPacket
terom
parents:
200
diff
changeset
|
19 |
/* |
3ec7ab40755f
send initial terrain data to clients using a new NETCHAN_TERRAIN_ARRAY channel using raw BigNetworkPacket
terom
parents:
200
diff
changeset
|
20 |
* Channel used to send initial terrain array |
3ec7ab40755f
send initial terrain data to clients using a new NETCHAN_TERRAIN_ARRAY channel using raw BigNetworkPacket
terom
parents:
200
diff
changeset
|
21 |
* |
3ec7ab40755f
send initial terrain data to clients using a new NETCHAN_TERRAIN_ARRAY channel using raw BigNetworkPacket
terom
parents:
200
diff
changeset
|
22 |
* uint32_t map_w |
3ec7ab40755f
send initial terrain data to clients using a new NETCHAN_TERRAIN_ARRAY channel using raw BigNetworkPacket
terom
parents:
200
diff
changeset
|
23 |
* uint32_t map_h |
3ec7ab40755f
send initial terrain data to clients using a new NETCHAN_TERRAIN_ARRAY channel using raw BigNetworkPacket
terom
parents:
200
diff
changeset
|
24 |
* uint8_t[map_w][map_h] terrain |
3ec7ab40755f
send initial terrain data to clients using a new NETCHAN_TERRAIN_ARRAY channel using raw BigNetworkPacket
terom
parents:
200
diff
changeset
|
25 |
*/ |
3ec7ab40755f
send initial terrain data to clients using a new NETCHAN_TERRAIN_ARRAY channel using raw BigNetworkPacket
terom
parents:
200
diff
changeset
|
26 |
NETCHAN_TERRAIN_ARRAY = 0x0010, |
187 | 27 |
}; |
28 |
||
400
d64bf28c4340
more documentation tweaking, all Network/ files now have a @file comment. Fix Platform.h -> Platform.hh, and Buffer.hh + Packet.cc
Tero Marttila <terom@fixme.fi>
parents:
334
diff
changeset
|
29 |
/** |
d64bf28c4340
more documentation tweaking, all Network/ files now have a @file comment. Fix Platform.h -> Platform.hh, and Buffer.hh + Packet.cc
Tero Marttila <terom@fixme.fi>
parents:
334
diff
changeset
|
30 |
* Various flags used with NETMSG_PLAYER_POSITION related to PhysicsObject state |
d64bf28c4340
more documentation tweaking, all Network/ files now have a @file comment. Fix Platform.h -> Platform.hh, and Buffer.hh + Packet.cc
Tero Marttila <terom@fixme.fi>
parents:
334
diff
changeset
|
31 |
*/ |
187 | 32 |
enum NetworkPhysicsFlags { |
224
e6faefba2ec1
fixed logger, and network projectiles should work reasonably well now
terom
parents:
223
diff
changeset
|
33 |
NETWORK_PHYSICS_INAIR = 0x01, |
e6faefba2ec1
fixed logger, and network projectiles should work reasonably well now
terom
parents:
223
diff
changeset
|
34 |
NETWORK_PHYSICS_FACE_RIGHT = 0x02, |
e6faefba2ec1
fixed logger, and network projectiles should work reasonably well now
terom
parents:
223
diff
changeset
|
35 |
}; |
e6faefba2ec1
fixed logger, and network projectiles should work reasonably well now
terom
parents:
223
diff
changeset
|
36 |
|
400
d64bf28c4340
more documentation tweaking, all Network/ files now have a @file comment. Fix Platform.h -> Platform.hh, and Buffer.hh + Packet.cc
Tero Marttila <terom@fixme.fi>
parents:
334
diff
changeset
|
37 |
/** |
d64bf28c4340
more documentation tweaking, all Network/ files now have a @file comment. Fix Platform.h -> Platform.hh, and Buffer.hh + Packet.cc
Tero Marttila <terom@fixme.fi>
parents:
334
diff
changeset
|
38 |
* Various flags used with NETMSG_PROJECTILE_* messages... |
d64bf28c4340
more documentation tweaking, all Network/ files now have a @file comment. Fix Platform.h -> Platform.hh, and Buffer.hh + Packet.cc
Tero Marttila <terom@fixme.fi>
parents:
334
diff
changeset
|
39 |
*/ |
224
e6faefba2ec1
fixed logger, and network projectiles should work reasonably well now
terom
parents:
223
diff
changeset
|
40 |
enum NetworkProjectileFlags { |
400
d64bf28c4340
more documentation tweaking, all Network/ files now have a @file comment. Fix Platform.h -> Platform.hh, and Buffer.hh + Packet.cc
Tero Marttila <terom@fixme.fi>
parents:
334
diff
changeset
|
41 |
/** NETMSG_PROJECTILE_DESTROY */ |
224
e6faefba2ec1
fixed logger, and network projectiles should work reasonably well now
terom
parents:
223
diff
changeset
|
42 |
NETWORK_PROJECTILE_REMOVE_GROUND = 0x01, |
187 | 43 |
}; |
44 |
||
400
d64bf28c4340
more documentation tweaking, all Network/ files now have a @file comment. Fix Platform.h -> Platform.hh, and Buffer.hh + Packet.cc
Tero Marttila <terom@fixme.fi>
parents:
334
diff
changeset
|
45 |
/** |
d64bf28c4340
more documentation tweaking, all Network/ files now have a @file comment. Fix Platform.h -> Platform.hh, and Buffer.hh + Packet.cc
Tero Marttila <terom@fixme.fi>
parents:
334
diff
changeset
|
46 |
* Various NetworkMessageIDs used with our NetworkSession's NetworkObjects. |
d64bf28c4340
more documentation tweaking, all Network/ files now have a @file comment. Fix Platform.h -> Platform.hh, and Buffer.hh + Packet.cc
Tero Marttila <terom@fixme.fi>
parents:
334
diff
changeset
|
47 |
* |
d64bf28c4340
more documentation tweaking, all Network/ files now have a @file comment. Fix Platform.h -> Platform.hh, and Buffer.hh + Packet.cc
Tero Marttila <terom@fixme.fi>
parents:
334
diff
changeset
|
48 |
* Message names are of the form 'NETMSG_<object type>_<action>' |
d64bf28c4340
more documentation tweaking, all Network/ files now have a @file comment. Fix Platform.h -> Platform.hh, and Buffer.hh + Packet.cc
Tero Marttila <terom@fixme.fi>
parents:
334
diff
changeset
|
49 |
*/ |
187 | 50 |
enum NetworkMessage { |
223 | 51 |
NETMSG_PACKET_INVALID = 0x0000, |
187 | 52 |
|
53 |
/* |
|
54 |
* You have joined the game: |
|
55 |
* |
|
56 |
* Vector initial_position |
|
57 |
*/ |
|
223 | 58 |
NETMSG_SERVER_HELLO = 0x0100, |
187 | 59 |
|
60 |
/* |
|
61 |
* New client has connected to server: |
|
62 |
* |
|
63 |
* Vector initial_position |
|
64 |
*/ |
|
223 | 65 |
NETMSG_PLAYER_JOIN = 0x0101, |
187 | 66 |
|
67 |
/* |
|
68 |
* Client has left server: |
|
69 |
* |
|
70 |
*/ |
|
223 | 71 |
NETMSG_PLAYER_QUIT = 0x0102, |
187 | 72 |
|
73 |
/* |
|
223 | 74 |
* Client has input to process |
187 | 75 |
* |
223 | 76 |
* uint16_t PlayerInput |
334 | 77 |
* uint32_t dt |
187 | 78 |
*/ |
223 | 79 |
NETMSG_CLIENT_INPUT = 0x0201, |
187 | 80 |
|
81 |
/* |
|
82 |
* Initial player info |
|
83 |
* |
|
84 |
* Vector initial_position |
|
85 |
*/ |
|
223 | 86 |
NETMSG_PLAYER_INFO = 0x0300, |
187 | 87 |
|
88 |
/* |
|
89 |
* Player position update |
|
90 |
* |
|
91 |
* Vector position |
|
92 |
* Vector velocity |
|
93 |
* uint8_t NetworkPhysicsFlags |
|
200
2dbf40661580
better NetworkBuffer/Packet stuff + some additional Physics+Network stuff + random fixes
terom
parents:
187
diff
changeset
|
94 |
* float32 aim |
187 | 95 |
*/ |
223 | 96 |
NETMSG_PLAYER_POSITION = 0x0301, |
200
2dbf40661580
better NetworkBuffer/Packet stuff + some additional Physics+Network stuff + random fixes
terom
parents:
187
diff
changeset
|
97 |
|
2dbf40661580
better NetworkBuffer/Packet stuff + some additional Physics+Network stuff + random fixes
terom
parents:
187
diff
changeset
|
98 |
/* |
302 | 99 |
* Player has spawned somewhere |
100 |
* |
|
101 |
* Vector position |
|
102 |
*/ |
|
103 |
NETMSG_PLAYER_SPAWN = 0x0302, |
|
104 |
||
105 |
/* |
|
106 |
* Player has died |
|
107 |
* |
|
108 |
*/ |
|
109 |
NETMSG_PLAYER_DIE = 0x0303, |
|
110 |
||
111 |
/* |
|
200
2dbf40661580
better NetworkBuffer/Packet stuff + some additional Physics+Network stuff + random fixes
terom
parents:
187
diff
changeset
|
112 |
* Terrain update, removeGround |
2dbf40661580
better NetworkBuffer/Packet stuff + some additional Physics+Network stuff + random fixes
terom
parents:
187
diff
changeset
|
113 |
* |
2dbf40661580
better NetworkBuffer/Packet stuff + some additional Physics+Network stuff + random fixes
terom
parents:
187
diff
changeset
|
114 |
* Vector position |
2dbf40661580
better NetworkBuffer/Packet stuff + some additional Physics+Network stuff + random fixes
terom
parents:
187
diff
changeset
|
115 |
* float32 radius |
2dbf40661580
better NetworkBuffer/Packet stuff + some additional Physics+Network stuff + random fixes
terom
parents:
187
diff
changeset
|
116 |
*/ |
241 | 117 |
NETMSG_PLAYER_DIG = 0x0312, |
223 | 118 |
|
119 |
/* |
|
239
550397d9d479
implement network weapon changes and fix weapon firing
terom
parents:
224
diff
changeset
|
120 |
* Player changed weapon |
550397d9d479
implement network weapon changes and fix weapon firing
terom
parents:
224
diff
changeset
|
121 |
* |
276
87434abc1ba1
ability to send NetworkObjectID's via packets, modify Network Projectiles to use this and fix recoil/reloading
terom
parents:
263
diff
changeset
|
122 |
* uint8_t weapon_id |
239
550397d9d479
implement network weapon changes and fix weapon firing
terom
parents:
224
diff
changeset
|
123 |
*/ |
241 | 124 |
NETMSG_PLAYER_WEAPON_CHANGE = 0x0321, |
276
87434abc1ba1
ability to send NetworkObjectID's via packets, modify Network Projectiles to use this and fix recoil/reloading
terom
parents:
263
diff
changeset
|
125 |
|
241 | 126 |
/* |
127 |
* Player threw the rope |
|
128 |
* |
|
129 |
* Vector position |
|
130 |
* Vector velocity |
|
131 |
* float length |
|
132 |
*/ |
|
133 |
NETMSG_PLAYER_ROPE_THROW = 0x0331, |
|
134 |
||
135 |
/* |
|
136 |
* Player rope fixed on to something |
|
137 |
* |
|
138 |
* Vector position |
|
139 |
* float length |
|
328 | 140 |
* Object? player |
241 | 141 |
*/ |
142 |
NETMSG_PLAYER_ROPE_FIXED = 0x0332, |
|
143 |
||
144 |
/* |
|
145 |
* Player rope released |
|
146 |
* |
|
147 |
*/ |
|
148 |
NETMSG_PLAYER_ROPE_RELEASED = 0x0333, |
|
149 |
||
150 |
/* |
|
151 |
* Rope length changed |
|
152 |
* |
|
153 |
* float length |
|
154 |
*/ |
|
155 |
NETMSG_PLAYER_ROPE_LENGTH = 0x0334, |
|
276
87434abc1ba1
ability to send NetworkObjectID's via packets, modify Network Projectiles to use this and fix recoil/reloading
terom
parents:
263
diff
changeset
|
156 |
|
239
550397d9d479
implement network weapon changes and fix weapon firing
terom
parents:
224
diff
changeset
|
157 |
/* |
276
87434abc1ba1
ability to send NetworkObjectID's via packets, modify Network Projectiles to use this and fix recoil/reloading
terom
parents:
263
diff
changeset
|
158 |
* Player has fired a weapon, creating this projectile |
223 | 159 |
* |
276
87434abc1ba1
ability to send NetworkObjectID's via packets, modify Network Projectiles to use this and fix recoil/reloading
terom
parents:
263
diff
changeset
|
160 |
* Object player |
223 | 161 |
* Vector position |
162 |
* Vector velocity |
|
276
87434abc1ba1
ability to send NetworkObjectID's via packets, modify Network Projectiles to use this and fix recoil/reloading
terom
parents:
263
diff
changeset
|
163 |
* uint8_t weapon_id |
223 | 164 |
*/ |
276
87434abc1ba1
ability to send NetworkObjectID's via packets, modify Network Projectiles to use this and fix recoil/reloading
terom
parents:
263
diff
changeset
|
165 |
NETMSG_PROJECTILE_PLAYER_FIRED = 0x0411, |
224
e6faefba2ec1
fixed logger, and network projectiles should work reasonably well now
terom
parents:
223
diff
changeset
|
166 |
|
296
4d3ebaa29430
add separate Types.hh, and fix projectile-worm collisions on network
terom
parents:
276
diff
changeset
|
167 |
/** |
4d3ebaa29430
add separate Types.hh, and fix projectile-worm collisions on network
terom
parents:
276
diff
changeset
|
168 |
* Projectile has hit a player |
4d3ebaa29430
add separate Types.hh, and fix projectile-worm collisions on network
terom
parents:
276
diff
changeset
|
169 |
* |
4d3ebaa29430
add separate Types.hh, and fix projectile-worm collisions on network
terom
parents:
276
diff
changeset
|
170 |
* Object player |
4d3ebaa29430
add separate Types.hh, and fix projectile-worm collisions on network
terom
parents:
276
diff
changeset
|
171 |
*/ |
4d3ebaa29430
add separate Types.hh, and fix projectile-worm collisions on network
terom
parents:
276
diff
changeset
|
172 |
NETMSG_PROJECTILE_HIT_PLAYER = 0x0421, |
4d3ebaa29430
add separate Types.hh, and fix projectile-worm collisions on network
terom
parents:
276
diff
changeset
|
173 |
|
224
e6faefba2ec1
fixed logger, and network projectiles should work reasonably well now
terom
parents:
223
diff
changeset
|
174 |
/* |
e6faefba2ec1
fixed logger, and network projectiles should work reasonably well now
terom
parents:
223
diff
changeset
|
175 |
* Projectile has gone away |
e6faefba2ec1
fixed logger, and network projectiles should work reasonably well now
terom
parents:
223
diff
changeset
|
176 |
* |
e6faefba2ec1
fixed logger, and network projectiles should work reasonably well now
terom
parents:
223
diff
changeset
|
177 |
* Vector position |
e6faefba2ec1
fixed logger, and network projectiles should work reasonably well now
terom
parents:
223
diff
changeset
|
178 |
* uint8_t NetworkProjectileFlags (REMOVE_GROUND) |
e6faefba2ec1
fixed logger, and network projectiles should work reasonably well now
terom
parents:
223
diff
changeset
|
179 |
*/ |
276
87434abc1ba1
ability to send NetworkObjectID's via packets, modify Network Projectiles to use this and fix recoil/reloading
terom
parents:
263
diff
changeset
|
180 |
NETMSG_PROJECTILE_DESTROY = 0x040F, |
187 | 181 |
}; |
182 |
||
183 |
#endif |