/* * network.h * * Created on: 12.01.2011 * Author: gmueller */ #ifndef NETWORK_H_ #define NETWORK_H_ #include "game.h" #include "common.h" #define MESSAGE_PLAYER_SPAWN 0 #define MESSAGE_PLAYER_KILL 1 #define MESSAGE_ACCEPT 2 #define MESSAGE_PLAYER_UPDATE 3 #define MESSAGE_PLAYER_ACCELERATE 4 #define MESSAGE_BOMB_DROP 5 #define MESSAGE_BOMB_UPDATE 6 #define MESSAGE_POINT_UPDATE 7 #define MESSAGE_TEAM_UPDATE 8 typedef struct message_t { uint16_t msg_id; } message_t; typedef struct player_spawn_message_t { uint16_t msg_id; uint8_t team_id; uint16_t player_id; } player_spawn_message_t; typedef struct player_kill_message_t { uint16_t msg_id; uint16_t player_id; } player_kill_message_t; typedef struct accept_message_t { uint16_t msg_id; uint16_t player_id; } accept_message_t; typedef struct player_update_message_t { uint16_t msg_id; uint16_t player_id; unsigned int session; double x, y, z; double vx, vy, vz; uint16_t points; } player_update_message_t; typedef struct player_accelerate_message_t { uint16_t msg_id; uint16_t player_id; double x, y, z; } player_accelerate_message_t; typedef struct bomb_drop_meesage_t { uint16_t msg_id; double x, y, z; double vx, vy, vz; double ttl; } bomb_drop_meesage_t; typedef struct bomb_update_meesage_t { uint16_t msg_id; uint16_t bomb_index; double x, y, z; double vx, vy, vz; double ttl; } bomb_update_meesage_t; typedef struct point_update_mesage_t { uint16_t msg_id; uint16_t point_index; uint8_t status; double x, y, z; } point_update_meesage_t; struct team_update_message_t { uint16_t msg_id; uint16_t team_id; uint16_t points; uint16_t wins; }; void setup_network(const char *remote); void shutdown_network(); void dispatch_message(uint8_t *data, size_t length, game_t *game); void service_network(game_t *game); void send_game_updates(game_t *game); void send_message(uint8_t *data, size_t length, game_t *game); #endif /* NETWORK_H_ */