Skip to content

Instantly share code, notes, and snippets.

@Romain-P
Last active June 19, 2018 15:50
Show Gist options
  • Select an option

  • Save Romain-P/f44fc0c5cc77536d5d46fb75f305e9c9 to your computer and use it in GitHub Desktop.

Select an option

Save Romain-P/f44fc0c5cc77536d5d46fb75f305e9c9 to your computer and use it in GitHub Desktop.
zappy unity native plugin
#ifndef ZAPPY_LIBRARY_H
#define ZAPPY_LIBRARY_H
#include <stdint.h>
#include "poll.h"
#include "protocol.h"
#define PACKED __attribute__((__packed__))
#if defined(_MSC_VER)
#define EXPORT __declspec(dllexport)
#define IMPORT __declspec(dllimport)
#elif defined(__GNUC__)
#define EXPORT __attribute__((visibility("default")))
#define IMPORT
#endif
typedef struct network_handlers_s network_handlers_t;
typedef struct network_config_s network_config_t;
typedef struct packet_example_s packet_example_t;
typedef struct packet_msz_s packet_msz_t;
typedef struct packet_bct_tile_s packet_bct_tile_t;
typedef struct packet_mct_s packet_mct_t;
typedef struct packet_tna_s packet_tna_t;
typedef struct packet_pnw_s packet_pnw_t;
typedef struct packet_ppo_s packet_ppo_t;
typedef struct packet_plv_s packet_plv_t;
typedef struct packet_pin_s packet_pin_t;
typedef struct packet_pex_s packet_pex_t;
typedef struct packet_pbc_s packet_pbc_t;
typedef struct packet_pic_s packet_pic_t;
typedef struct packet_pie_s packet_pie_t;
typedef struct packet_pfk_s packet_pfk_t;
typedef struct packet_pdr_s packet_pdr_t;
typedef struct packet_pgt_s packet_pgt_t;
typedef struct packet_pdi_s packet_pdi_t;
typedef struct packet_enw_s packet_enw_t;
typedef struct packet_eht_s packet_eht_t;
typedef struct packet_ebo_s packet_ebo_t;
typedef struct packet_edi_s packet_edi_t;
typedef struct packet_sgt_s packet_sgt_t;
typedef struct packet_sst_s packet_sst_t;
typedef struct packet_seg_s packet_seg_t;
typedef struct packet_smg_s packet_smg_t;
typedef struct packet_suc_s packet_suc_t;
typedef struct packet_sbp_s packet_sbp_t;
typedef struct packet_team_s packet_team_t;
typedef struct packet_forward_s packet_forward_t;
typedef struct packet_turn_s packet_turn_t;
typedef struct packet_inventory_s packet_inventory_t;
struct network_handlers_s {
void (*on_action_success)();
void (*on_action_failed)();
void (*on_map_size_reply)(packet_msz_t *);
void (*on_tile_content_reply)(packet_bct_tile_t *);
void (*on_team_name_reply)(packet_tna_t *);
void (*on_player_position_update)(packet_ppo_t *);
void (*on_player_level_update)(packet_plv_t *);
void (*on_player_inventory_update)(packet_pin_t *);
void (*on_player_connected)(packet_pnw_t *);
void (*on_player_expulsed)(packet_pex_t *);
void (*on_broadcast)(packet_pbc_t *);
void (*on_server_broadcast)(packet_smg_t *);
void (*on_player_cast_start)(packet_pic_t *);
void (*on_player_cast_end)(packet_pie_t *);
void (*on_player_lay_self)(packet_pfk_t *);
void (*on_player_lay)(packet_enw_t *);
void (*on_player_drop)(packet_pdr_t *);
void (*on_player_collect)(packet_pgt_t *);
void (*on_player_death)(packet_pdi_t *);
void (*on_egg_hatching)(packet_eht_t *);
void (*on_egg_hatching_death)(packet_edi_t *);
void (*on_timeunit_reply)(packet_sgt_t *);
void (*on_timeunit_modif_reply)(packet_sst_t *);
void (*on_game_end)(packet_seg_t *);
void (*on_unknown_command)(packet_suc_t *);
void (*on_command_param_wrong)(packet_sbp_t *);
};
struct network_config_s {
char *address;
uint16_t port;
network_handlers_t *handlers;
};
struct PACKED packet_example_s {
PACKET_HEADER;
int64_t some;
char str[100];
int64_t shiet;
};
struct PACKED packet_msz_s {
PACKET_HEADER;
size_t x;
size_t y;
};
struct PACKED packet_bct_tile_s {
PACKET_HEADER;
size_t x;
size_t y;
size_t q0;
size_t q1;
size_t q2;
size_t q3;
size_t q4;
size_t q5;
size_t q6;
};
struct PACKED packet_mct_s {
PACKET_HEADER;
};
struct PACKED packet_tna_s {
PACKET_HEADER;
char name[1024];
};
struct PACKED packet_pnw_s {
PACKET_HEADER;
char player_number[42];
size_t x;
size_t y;
size_t orientation;
size_t level;
char name_team[1024];
};
struct PACKED packet_ppo_s {
PACKET_HEADER;
size_t player_number;
size_t x;
size_t y;
size_t orientation;
};
struct PACKED packet_plv_s {
PACKET_HEADER;
size_t player_number;
size_t level;
};
struct PACKED packet_pin_s {
PACKET_HEADER;
size_t player_number;
size_t x;
size_t y;
size_t q0;
size_t q1;
size_t q2;
size_t q3;
size_t q4;
size_t q5;
size_t q6;
};
struct PACKED packet_pex_s {
PACKET_HEADER;
size_t player_number;
};
struct PACKED packet_pbc_s {
PACKET_HEADER;
size_t player_number;
char message[1024];
};
struct PACKED packet_pic_s {
PACKET_HEADER;
size_t x;
size_t y;
size_t incantation_level;
size_t player_nb1;
size_t player_nb2;
};
struct PACKED packet_pie_s {
PACKET_HEADER;
size_t x;
size_t y;
size_t result;
};
struct PACKED packet_pfk_s {
PACKET_HEADER;
size_t player_number;
};
struct PACKED packet_pdr_s {
PACKET_HEADER;
size_t player_number;
size_t ressource;
};
struct PACKED packet_pgt_s {
PACKET_HEADER;
size_t player_number;
size_t ressource;
};
struct PACKED packet_pdi_s {
PACKET_HEADER;
size_t player_number;
};
struct PACKED packet_enw_s {
PACKET_HEADER;
size_t egg;
size_t player_number;
size_t x;
size_t y;
};
struct PACKED packet_eht_s {
PACKET_HEADER;
size_t egg;
};
struct PACKED packet_ebo_s {
PACKET_HEADER;
size_t egg;
};
struct PACKED packet_edi_s {
PACKET_HEADER;
size_t egg;
};
struct PACKED packet_sgt_s {
PACKET_HEADER;
size_t time;
};
struct PACKED packet_sst_s {
PACKET_HEADER;
size_t time;
};
struct PACKED packet_seg_s {
PACKET_HEADER;
char team[1024];
};
struct PACKED packet_smg_s {
PACKET_HEADER;
char message[1024];
};
struct PACKED suc_s {
PACKET_HEADER;
};
struct PACKED sbp_s {
PACKET_HEADER;
};
struct PACKED packet_forward_s {
PACKET_HEADER;
};
struct PACKED packet_inventory_s {
PACKET_HEADER;
char result[2048];
};
struct PACKED packet_turn_s {
PACKET_HEADER;
char orientation[6];
};
struct PACKED packet_team_s {
PACKET_HEADER;
char team[1024];
int status;
};
EXPORT void hello(void);
#endif
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment