summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/arena.h10
-rw-r--r--include/item.h17
-rwxr-xr-xinclude/list.h1
-rw-r--r--include/main.h4
-rw-r--r--include/modules.h4
-rw-r--r--include/screen_world.h1
-rw-r--r--include/server.h2
-rw-r--r--include/shot.h2
-rw-r--r--include/space.h36
-rw-r--r--include/tux.h7
10 files changed, 69 insertions, 15 deletions
diff --git a/include/arena.h b/include/arena.h
index c800169..2c06659 100644
--- a/include/arena.h
+++ b/include/arena.h
@@ -4,10 +4,13 @@
#define ARENA_H
#include "main.h"
+
#ifndef PUBLIC_SERVER
#include "interface.h"
#endif
+
#include "list.h"
+#include "space.h"
typedef struct arena_struct
{
@@ -18,14 +21,15 @@ typedef struct arena_struct
#endif
int w, h;
list_t *listTimer;
- list_t *listTux;
+ //list_t *listTux;
list_t *listShot;
- list_t *listItem;
+ space_t *spaceTux;
+ space_t *spaceItem;
} arena_t;
extern void setCurrentArena(arena_t *p);
extern arena_t* getCurrentArena();
-extern arena_t* newArena();
+extern arena_t* newArena(int w, int h);
extern int conflictSpace(int x1,int y1,int w1,int h1,int x2,int y2,int w2,int h2);
extern int isFreeSpace(arena_t *arena, int x, int y, int w, int h);
extern void findFreeSpace(arena_t *arena, int *x, int *y, int w, int h);
diff --git a/include/item.h b/include/item.h
index dd67765..b8a9825 100644
--- a/include/item.h
+++ b/include/item.h
@@ -60,19 +60,18 @@ typedef struct item_struct
extern bool_t isItemInicialized();
extern void initItem();
extern item_t* newItem(int x, int y, int type, int author_id);
-extern item_t* getItemID(list_t *listItem, int id);
+extern void getStatusItem(void *p, int *id, int *x, int *y ,int *w, int *h);
+extern void setStatusItem(void *p, int x, int y, int w, int h);
extern void replaceItemID(item_t *item, int id);
-extern void addNewItem(list_t *listItem, int author_id);
+extern void addNewItem(space_t *spaceItem, int author_id);
#ifndef PUBLIC_SERVER
-extern void drawItem(item_t *p);
extern void drawListItem(list_t *listItem);
+extern void eventListItem(space_t *listSpace);
#endif
-extern void eventListItem(list_t *listItem);
-extern void eventConflictShotWithItem(list_t *listItem, list_t *listShot);
-extern int isConflictWithListItem(list_t *listItem, int x, int y, int w, int h);
-extern void mineExplosion(list_t *listItem, item_t *item);
-extern int eventGiveTuxItem(tux_t *tux, list_t *listItem, item_t *item);
-extern void eventGiveTuxListItem(tux_t *tux, list_t *listItem);
+extern void mineExplosion(space_t *spaceItem, item_t *item);
+extern void eventConflictShotWithItem(arena_t *arena);
+extern void eventGiveTuxItem(tux_t *tux, item_t *item, space_t *spaceItem);
+extern void eventGiveTuxListItem(tux_t *tux, space_t *spaceItem);
extern void destroyItem(item_t *p);
extern void quitItem();
diff --git a/include/list.h b/include/list.h
index 8722baa..5a15786 100755
--- a/include/list.h
+++ b/include/list.h
@@ -25,6 +25,7 @@ extern int searchListItem(list_t *p, void *n);
extern void delList(list_t *p,int n);
extern void delListItem(list_t *p,int n,void *f);
+extern void listDoEmpty(list_t *p);
extern void destroyList(list_t *p);
extern void destroyListItem(list_t *p,void *f);
diff --git a/include/main.h b/include/main.h
index ea3d703..942064f 100644
--- a/include/main.h
+++ b/include/main.h
@@ -21,6 +21,10 @@
#define WINDOW_SIZE_X 800
#define WINDOW_SIZE_Y 600
+#include "list.h"
+
+extern list_t *listHelp;
+
extern char* getParam(char *s);
extern char* getParamElse(char *s1, char *s2);
extern bool_t isParamFlag(char *s);
diff --git a/include/modules.h b/include/modules.h
index f05234f..085e476 100644
--- a/include/modules.h
+++ b/include/modules.h
@@ -52,7 +52,7 @@ typedef struct module_s
int (*fce_init)(export_fce_t *p);
#ifndef PUBLIC_SERVER
- int (*fce_draw)();
+ int (*fce_draw)(int x, int y,int w, int h);
#endif
int (*fce_event)();
int (*fce_isConflict)(int x, int y, int w, int h);
@@ -64,7 +64,7 @@ typedef struct module_s
extern void initModule();
extern int loadModule(char *name);
#ifndef PUBLIC_SERVER
-extern void drawModule();
+extern void drawModule(int x, int y, int w, int h);
#endif
extern void eventModule();
extern void cmdModule(char *s);
diff --git a/include/screen_world.h b/include/screen_world.h
index b6a4259..0ba4b41 100644
--- a/include/screen_world.h
+++ b/include/screen_world.h
@@ -20,6 +20,7 @@ extern void countRoundInc();
extern void setWorldEnd();
extern void setMaxCountRound(int n);
extern tux_t* getControlTux(int control_type);
+extern void setControlTux(tux_t *tux, int control_type);
extern void tuxControl(tux_t *p);
extern void drawWorld();
extern void eventWorld();
diff --git a/include/server.h b/include/server.h
index 8d97ed3..178dc34 100644
--- a/include/server.h
+++ b/include/server.h
@@ -81,8 +81,10 @@ extern void sendAllClientSeesTux(char *msg, tux_t *tux);
extern void addMsgClient(client_t *p, char *msg, int id);
extern void addMsgAllClientBut(char *msg, client_t *p, int id);
extern void addMsgAllClient(char *msg, int id);
+extern void addMsgAllClientSeesTux(char *msg, tux_t *tux, int id);
extern tux_t *getServerTux();
+extern client_t *getClientFromTux(tux_t *tux);
extern void eventClientListBuffer();
extern void sendInfoCreateClient(client_t *client);
extern void eventServer();
diff --git a/include/shot.h b/include/shot.h
index 4ec8acf..fa7516a 100644
--- a/include/shot.h
+++ b/include/shot.h
@@ -9,6 +9,7 @@
#endif
#include "list.h"
#include "tux.h"
+#include "arena.h"
typedef struct shot_struct
{
@@ -45,6 +46,7 @@ extern void drawListShot(list_t *listShot);
#endif
extern int isConflictWithListShot(list_t *listShot, int x, int y, int w, int h);
extern void eventMoveListShot(list_t *listShot);
+extern void checkShotIsInTuxScreen(arena_t *arena);
extern void boundBombBall(shot_t *shot);
extern void transformOnlyLasser(shot_t *shot);
diff --git a/include/space.h b/include/space.h
new file mode 100644
index 0000000..8f5ad7c
--- /dev/null
+++ b/include/space.h
@@ -0,0 +1,36 @@
+
+#ifndef SPACE_H
+
+#define SPACE_H
+
+#include "main.h"
+#include "list.h"
+
+typedef struct space_struct
+{
+ int w;
+ int h;
+ int segW;
+ int segH;
+ list_t ***area;
+ list_t *list;
+ void (*getStatus)(void *p, int *id, int *x, int *y, int *w, int *h);
+ void (*setStatus)(void *p, int x, int y, int w, int h);
+} space_t;
+
+extern space_t *newSpace(int w, int h, int segW, int segH,
+ void (*getStatus)(void *p, int *id, int *x, int *y, int *w, int *h),
+ void (*setStatus)(void *p, int x, int y, int w, int h));
+
+extern void addObjectToSpace(space_t *p, void *item);
+extern void getObjectFromSpace(space_t *p, int x, int y, int w, int h, list_t *list);
+extern void* getObjectFromSpaceWithID(space_t *p, int id);
+extern int isConflictWithObjectFromSpace(space_t *p, int x, int y, int w, int h);
+extern void delObjectFromSpace(space_t *p, void *item);
+extern void delObjectFromSpaceWithMem(space_t *p, void *item, void *f);
+extern void moveObjectInSpace(space_t *p, void *item, int move_x, int move_y);
+extern void printSpace(space_t *p);
+extern void destroySpace(space_t *p, void *f);
+
+#endif
+
diff --git a/include/tux.h b/include/tux.h
index c07cf0a..2905ffe 100644
--- a/include/tux.h
+++ b/include/tux.h
@@ -5,6 +5,7 @@
#include "main.h"
#include "list.h"
+#include "arena.h"
#define TUX_STEP 7
#define TUX_LAYER 0
@@ -56,6 +57,8 @@
#define ITEM_COUNT 16
+#define SHOT_CHECK_AREA 25
+
#define GUN_SIMPLE 0
#define GUN_DUAL_SIMPLE 1
#define GUN_SCATTER 2
@@ -114,7 +117,7 @@ extern void drawListTux(list_t *listTux);
extern void eventTuxIsDead(tux_t *tux);
extern tux_t* isConflictWithListTux(list_t *listTux, int x, int y, int w, int h);
extern int isConflictTuxWithListTux(tux_t *tux, list_t *listTux);
-extern void eventConflictTuxWithShot(list_t *listTux, list_t *listShot);
+extern void eventConflictTuxWithShot(arena_t *arena);
extern void eventConflictTuxWithTeleport(list_t *listTux, list_t *listTeleport);
extern void tuxTeleport(tux_t *tux);
extern void actionTux(tux_t *tux, int action);
@@ -124,6 +127,8 @@ extern void getTuxProportion(tux_t *tux, int *x,int *y, int *w, int *h);
extern void replaceTuxID(tux_t *tux, int id);
extern int isTuxSeesTux(tux_t *tux, tux_t *thisTux);
extern void setTuxProportion(tux_t *tux, int x, int y);
+extern void getStatusTux(void *p, int *id, int *x,int *y, int *w, int *h);
+extern void setStatusTux(void *p, int x, int y, int w, int h);
extern void destroyTux(tux_t *tux);
extern void quitTux();