#include "main.h" #include #include #ifndef ARENAENGINE_H_ #define ARENAENGINE_H_ /* typedef struct items{ int type_id; //texture? int isFlat; int minedId; struct items *nextItem; }ITEMS; */ typedef struct tileType{ int type_id; SDL_Surface *texture; int isGround; int canBeMined; struct tileType *nextTile; }TILE; typedef struct Player { int Id; char Name[35]; //char Race[20]; SDL_Surface *texture[4]; int HealthPoints; int AttacksPoints; int DefensePoints; int PositionX; int PositionY; //char Weapons[Max_Weapons]; //int Coins; struct Player * suiv; }PLAYER; typedef struct arena_h_tile{ //Rows chained list int type_id; //PLAYER* playerOnTile; struct arena_h_tile *nextRow; struct arena_w_tile *nextColumn; }ARENA_H_TILE; typedef struct arena_w_tile{ //Columns chained list int type_id; //PLAYER* playerOnTile; struct arena_w_tile *nextColumn; }ARENA_W_TILE; //Generation functions TILE* createTileList(void); PLAYER *createPlayerList(void); void clearRessourcesCache(TILE *t, PLAYER *p); int setTileTypeID(ARENA_H_TILE* arena, int x, int y, int new_id); ARENA_H_TILE* genNewArena(int size_h, int size_w); void deleteArena(ARENA_H_TILE* arena); //Status functions int getTileTypeID(ARENA_H_TILE* arena, int coord_x, int coord_y); int isGroundTile(TILE *t_list, int id); SDL_Surface *getTileSurfaceFromID(TILE *t_list, int id); int isPlayerAdjacent(PLAYER* p1, PLAYER* p2); int isMoveCorrect(ARENA_H_TILE* arena, TILE *t_list, int coord_x, int coord_y, int direction); int getRelativeDirection(SDL_Rect pos1, SDL_Rect pos2); #endif