96 lines
1.9 KiB
C
96 lines
1.9 KiB
C
/*
|
|
* 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_player_updates(game_t *game);
|
|
void send_message(uint8_t *data, size_t length, game_t *game);
|
|
|
|
#endif /* NETWORK_H_ */
|