From 7055882c93022da3a6a1cf74cebf3d17c44ce6c4 Mon Sep 17 00:00:00 2001 From: oroborus Date: Mon, 12 May 2008 20:39:34 +0000 Subject: - podpora modulov - hra sa musi kompilovat s GUI ako v config.h _zakomenotvane_ #define PUBLIC_SERVER make clean make make mod su make install - hra sa musi ako server kompilovat v config.h _odkomentovane__ #define PUBLIC_SERVER make clean make make mod - pozor, urcite tam je este vela bugov //je to nedoladene zatial to ani nedavajte na server git-svn-id: http://opensvn.csie.org/tuxanci_ng@52 0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e --- include/modules.h | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 include/modules.h (limited to 'include/modules.h') diff --git a/include/modules.h b/include/modules.h new file mode 100644 index 0000000..872cab7 --- /dev/null +++ b/include/modules.h @@ -0,0 +1,73 @@ + +#ifndef MODULE_H + +#define MODULE_H + +#include "tux.h" +#include "shot.h" +#include "arena.h" +#include "proto.h" + +#ifndef PUBLIC_SERVER +#include "image.h" +#endif + +typedef struct export_fce_s +{ + int (*fce_getValue)(char *line, char *env, char *val, int len); + +#ifndef PUBLIC_SERVER + SDL_Surface* (*fce_getImage)(char *group, char *name); + + void (*fce_addLayer)(SDL_Surface *img, + int x,int y, int px,int py, + int w,int h, int player); +#endif + + int (*fce_getNetTypeGame)(); + + void (*fce_getTuxProportion)(tux_t *tux, int *x,int *y, int *w, int *h); + void (*fce_setTuxProportion)(tux_t *tux, int x, int y); + tux_t* (*fce_getTuxID)(list_t *listTux, int id); + + arena_t* (*fce_getCurrentArena)(); + int (*fce_conflictSpace)(int x1,int y1,int w1,int h1,int x2,int y2,int w2,int h2); + int (*fce_isFreeSpace)(arena_t *arena, int x, int y, int w, int h); + void (*fce_findFreeSpace)(arena_t *arena, int *x, int *y, int w, int h); + void (*fce_proto_send_newtux_server)(int type, client_t *client, tux_t *tux); + void (*fce_proto_send_shot_server)(int type, client_t *client, shot_t *p); + + void (*fce_destroyShot)(shot_t *p); + void (*fce_boundBombBall)(shot_t *shot); + + int (*fce_pokus)(char *s); + +} export_fce_t; + +typedef struct module_s +{ + char *file; + void *image; + + int (*fce_init)(export_fce_t *p); +#ifndef PUBLIC_SERVER + int (*fce_draw)(); +#endif + int (*fce_event)(); + int (*fce_isConflict)(int x, int y, int w, int h); + void (*fce_cmd)(char *line); + int (*fce_destroy)(); + +} module_t; + +extern void initModule(); +extern int loadModule(char *name); +#ifndef PUBLIC_SERVER +extern void drawModule(); +#endif +extern void eventModule(); +extern void cmdModule(char *s); +extern int isConflictModule(int x, int y, int w, int h); +extern void quitModule(); + +#endif -- cgit v1.2.3