diff options
| author | oroborus <oroborus@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e> | 2008-02-01 22:59:06 +0000 |
|---|---|---|
| committer | oroborus <oroborus@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e> | 2008-02-01 22:59:06 +0000 |
| commit | 6d4e1eae16b84918009625a866104ec26a234277 (patch) | |
| tree | a340a8a547a60c9f63c8dfafe8909242f9c9bbd8 /include | |
nahranie tarballu tuxanci-ng na SVN server
Dusan Durech ( Oroborus )
git-svn-id: http://opensvn.csie.org/tuxanci_ng@1 0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e
Diffstat (limited to 'include')
40 files changed, 1056 insertions, 0 deletions
diff --git a/include/arena.h b/include/arena.h new file mode 100644 index 0000000..59290fd --- /dev/null +++ b/include/arena.h @@ -0,0 +1,23 @@ + +#ifndef ARENA_H + +#define ARENA_H + +#include "main.h" +#include "interface.h" +#include "list.h" + +typedef struct arena_struct +{ + char music[STR_SIZE]; + SDL_Surface *background; + list_t *listTux; + list_t *listShot; + list_t *listWall; + list_t *listItem; +} arena_t; + +extern arena_t* newArena(); +extern void destroyArena(arena_t *p); + +#endif diff --git a/include/arenaFile.h b/include/arenaFile.h new file mode 100644 index 0000000..47d9586 --- /dev/null +++ b/include/arenaFile.h @@ -0,0 +1,14 @@ + +#ifndef ARENA_FILE_H + +#define ARENA_FILE_H + +#include "main.h" +#include "arena.h" + +extern bool_t isArenaFileInicialized(); +extern void initArenaFile(); +extern arena_t* getArena(int id); +extern void quitArenaFile(); + +#endif diff --git a/include/audio.h b/include/audio.h new file mode 100644 index 0000000..242bb9a --- /dev/null +++ b/include/audio.h @@ -0,0 +1,12 @@ + +#ifndef AUDIO_H + +#define AUDIO_H + +#include "main.h" + +extern bool_t isAudioInicialized(); +extern void initAudio(); +extern void quitAudio(); + +#endif diff --git a/include/bool.h b/include/bool.h new file mode 100644 index 0000000..ea32909 --- /dev/null +++ b/include/bool.h @@ -0,0 +1,11 @@ + +#ifndef BOOL_H + +#define BOOL_H + +#define bool_t int + +#define TRUE 1 +#define FALSE 0 + +#endif diff --git a/include/buffer.h b/include/buffer.h new file mode 100755 index 0000000..1b338df --- /dev/null +++ b/include/buffer.h @@ -0,0 +1,22 @@ + +#ifndef BUFFER_H + +#define BUFFER_H + +#define BUFFER_LIMIT_ALLOC 1024 + +typedef struct str_buffer +{ + char *data; + unsigned int size; + unsigned int alloc; +} buffer_t; + +extern buffer_t * newBuffer(int n); +extern int addBuffer(buffer_t *p, char *data, int len); +extern int cutBuffer(buffer_t *p, int len); +extern int getBufferLine(buffer_t *p, char *line, int len); +extern int getData(buffer_t *p, char *line, int len); +extern void destroyBuffer(buffer_t *p); + +#endif diff --git a/include/configFile.h b/include/configFile.h new file mode 100644 index 0000000..8ceb75c --- /dev/null +++ b/include/configFile.h @@ -0,0 +1,11 @@ + +#ifndef CONFIGFILE_H + +#define CONFIGFILE_H + +#include "textFile.h" + +extern char* getValueInConfigFile(textFile_t *p, char *s); +extern void delRemInConfigFile(textFile_t *p); + +#endif diff --git a/include/director.h b/include/director.h new file mode 100644 index 0000000..aa2b2fd --- /dev/null +++ b/include/director.h @@ -0,0 +1,17 @@ + +#ifndef DIRECTOR_H + +#define DIRECTOR_H + +#include "list.h" + +typedef struct director_struct +{ + char *path; + list_t *list; +} director_t; + +extern director_t* loadDirector(char *s); +extern void destroyDirector(director_t *p); + +#endif diff --git a/include/dynamicInt.h b/include/dynamicInt.h new file mode 100644 index 0000000..fbc54a7 --- /dev/null +++ b/include/dynamicInt.h @@ -0,0 +1,8 @@ + +#ifndef DYNAMIC_INT_H + +#define DYNAMIC_INT_H + +extern int* newInt(int x); + +#endif diff --git a/include/font.h b/include/font.h new file mode 100755 index 0000000..f938b3b --- /dev/null +++ b/include/font.h @@ -0,0 +1,26 @@ + +#ifndef FONT_H + +#define FONT_H + +#include <SDL_ttf.h> +#include <assert.h> +#include "main.h" + +#define COLOR_WHITE 255, 255, 255 +#define COLOR_BLACK 0, 0, 0 + +#define COLOR_RED 255, 0, 0 +#define COLOR_GREEN 0, 255, 0 +#define COLOR_BLUE 0, 0, 255 + +#define COLOR_YELLOW 255, 255, 0 + +extern bool_t isFontInicialized(); +extern void initFont(char *file,int size); +extern void drawFont(char *s,int x,int y,int r,int g,int b); +extern int getFontSize(); +extern void getTextSize(char *s, int *w, int *h); +extern void quitFont(); + +#endif diff --git a/include/gun.h b/include/gun.h new file mode 100644 index 0000000..57c2378 --- /dev/null +++ b/include/gun.h @@ -0,0 +1,16 @@ + +#ifndef GUN_H + +#define GUN_H + +#define GUN_SHOT_WIDTH 5 +#define GUN_SHOT_HEIGHT 5 + +#define GUN_LASSER_HORIZONTAL 20 +#define GUN_SHOT_VERTICAL 5 + +#include "tux.h" + +extern void shotInGun(tux_t *p); + +#endif diff --git a/include/image.h b/include/image.h new file mode 100755 index 0000000..cacb469 --- /dev/null +++ b/include/image.h @@ -0,0 +1,33 @@ + +#ifndef IMAGE_H + +#define IMAGE_H + +#include "image.h" +#include "interface.h" + +#define IMAGE_NO_ALPHA 0 +#define IMAGE_ALPHA 1 + +#define IMAGE_GROUP_BASE "base" +#define IMAGE_GROUP_EXTENDSIO "extension" +#define IMAGE_GROUP_USER "user" +#define IMAGE_GROUP_OTHER "other" + +typedef struct image_struct +{ + char *name; + char *group; + SDL_Surface *image; +} image_data_t; + +extern bool_t isImageInicialized(); +extern void initImageData(); +extern SDL_Surface* addImageData(char *file, int alpha, char *name, char *group); +extern SDL_Surface* getImage(char *group, char *name); +extern void delImage(char *group, char *name); +extern void delAllImageInGroup(char *group); +extern void drawImage(SDL_Surface *p, int x,int y, int px, int py, int w, int h); +extern void quitImageData(); + +#endif diff --git a/include/interface.h b/include/interface.h new file mode 100755 index 0000000..abd37f3 --- /dev/null +++ b/include/interface.h @@ -0,0 +1,42 @@ + +#ifndef INTERFACE_H + +#define INTERFACE_H + +#include <stdio.h> +#include <string.h> +#include <time.h> + +#include <SDL.h> +#include <SDL_image.h> +#include <SDL_thread.h> +#include "main.h" + +/* +#include <SDL_net.h> +*/ + +#define SDL_SUBSYSTEMS SDL_INIT_VIDEO|SDL_INIT_TIMER|SDL_DOUBLEBUF + +//rozlisenie obrazovky +#define WINDOW_SIZE_X 800 +#define WINDOW_SIZE_Y 600 + +//napis na okne +#define WINDOW_TITLE "RPG engine" +#define WIN_BPP 0 +#define USR_EVT_TIMER 0 + +//interval pri ktorom sa spusta akcia(); +#define INTERVAL 25 + +extern bool_t isInterfaceInicialized(); +extern int initSDL(); +extern SDL_Surface* getSDL_Screen(); +extern void getMousePosition(int *x, int *y); +extern int isMouseClicked(); +extern void eventSDL(); +extern void quitSDL(); + + +#endif diff --git a/include/item.h b/include/item.h new file mode 100644 index 0000000..7f40c45 --- /dev/null +++ b/include/item.h @@ -0,0 +1,64 @@ + +#ifndef ITEM_H + +#define ITEM_H + +#include "main.h" +#include "interface.h" +#include "list.h" +#include "tux.h" + +typedef struct item_struct +{ + int type; // typ veci + + int x; // poloha veci + int y; + + int w; // rozmery veci + int h; + + int frame; //poradove cislo animacie + int count; + + SDL_Surface *img; //obrazok + +} item_t; + +#define ITEM_MAX_COUNT 3 + +#define ITEM_GUN_MAX_FRAME 8 +#define ITEM_MINE_MAX_FRAME 1 +#define ITEM_EXPLOSION_MAX_FRAME 10 +#define ITEM_BONUS_MAX_FRAME 8 + +#define ITEM_GUN_WIDTH 50 +#define ITEM_GUN_HEIGHT 20 + +#define ITEM_MINE_WIDTH 15 +#define ITEM_MINE_HEIGHT 11 + +#define ITEM_EXPLOSION_WIDTH 40 +#define ITEM_EXPLOSION_HEIGHT 40 + +#define ITEM_BIG_EXPLOSION_WIDTH 100 +#define ITEM_BIG_EXPLOSION_HEIGHT 100 + +#define ITEM_BONUS_WIDTH 20 +#define ITEM_BONUS_HEIGHT 20 + +extern bool_t isItemInicialized(); +extern void initItem(); +extern item_t* newItem(int x, int y, int type); +extern void addNewItem(list_t *listItem); +extern void drawItem(item_t *p); +extern void drawListItem(list_t *listItem); +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 eventGiveTuxItem(tux_t *tux, list_t *listItem); +extern void destroyItem(item_t *p); +extern void quitItem(); + +#endif + diff --git a/include/layer.h b/include/layer.h new file mode 100755 index 0000000..f2612eb --- /dev/null +++ b/include/layer.h @@ -0,0 +1,52 @@ + +#ifndef MY_LAYER_H + +#define MY_LAYER_H + +#include "main.h" + +typedef struct layer_str +{ + int x; //suradnice obrazka na obrazovke + int y; + + int w; //rozmery obrazka na obrazovke + int h; + + int px; //suradnice casti surfrace + int py; + + int pw; //rozmeri casti surfrace + int ph; + + int layer; + + SDL_Surface *image; //dane surfrace +} layer_t; + +extern bool_t isLayerInicialized(); +extern void initLayer(); + +/* + * Prida obrazok na vykreslenie do zoznamu + * *img - ponter na urfrace obrazka + * x,y - suradnice kam sa ma obrazok nakreslit + * w,h - rozmeri obrazka + * px,py - suradnice casti *img z ktorej sa bude obrazok vykreslovat + * ph,ph - rozmeri casti obrazka *img z ktorej sa bude obrazok vykreslovat + * layer - layer, na ktorej bude obrazok + * (0 - pod tuxancami | 1 - na tej istej ako tuxanci | 2 - nad tuxancami) + */ + +extern void addLayer(SDL_Surface *img, + int x,int y, int px,int py, + int w,int h, int player); + +/* + * Vykresli zoznam na obrazovku + */ +extern void drawLayer(); + +extern void quitLayer(); + +#endif diff --git a/include/list.h b/include/list.h new file mode 100755 index 0000000..0e122c6 --- /dev/null +++ b/include/list.h @@ -0,0 +1,30 @@ + +#ifndef LIST_H + +#define LIST_H + +#define LIST_ALLOC_LIMIT 16 + +typedef struct list_str +{ + void **list; + int count; + int alloc; +} list_t; + +extern list_t* newList(); +extern list_t* cloneList(list_t *p); +extern list_t* cloneListItem(list_t *p, void *f); + +extern void addList(list_t *p, void *item); +extern void insList(list_t *p, int n, void *item); +extern void *getList(list_t *p,int n); +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 destroyList(list_t *p); +extern void destroyListItem(list_t *p,void *f); + +#endif diff --git a/include/logFile.h b/include/logFile.h new file mode 100644 index 0000000..639069d --- /dev/null +++ b/include/logFile.h @@ -0,0 +1,16 @@ + +#ifndef LOGFILE_H + +#define LOGFILE_H + +typedef struct logFile_struct +{ + char *name; + FILE *file; +} logFile_t; + +extern logFile_t* newLogFile(char *s); +extern int writeLog(logFile_t *p, char *s); +extern void destroyLogFile(logFile_t *p); + +#endif diff --git a/include/main.h b/include/main.h new file mode 100644 index 0000000..012d446 --- /dev/null +++ b/include/main.h @@ -0,0 +1,13 @@ + +#ifndef MAIN_H + +#define MAIN_H + +#include "bool.h" +#include "string_length.h" + +extern char* getParam(char *s); +extern char *getString(int n); +extern void quit(); + +#endif diff --git a/include/music.h b/include/music.h new file mode 100644 index 0000000..88785b1 --- /dev/null +++ b/include/music.h @@ -0,0 +1,29 @@ + +#ifndef MUSIC_H + +#define MUSIC_H + +#include <SDL_mixer.h> +#include "main.h" + +#define MUSIC_GROUP_BASE 0 +#define MUSIC_GROUP_USER 1 + +typedef struct music_struct +{ + char *name; + int group; + Mix_Music *music; +} music_t; + +extern bool_t isMusicInicialized(); +extern void initMusic(); +extern void addMusic(char *file, char *name, int group); +extern void stopMusic(); +extern void playMusic(char *name, int group); +extern char* getCurrentMusic(); +extern void delAllMusicInGroup(int group); +extern void quitMusic(); + +#endif + diff --git a/include/myTimer.h b/include/myTimer.h new file mode 100644 index 0000000..785dc77 --- /dev/null +++ b/include/myTimer.h @@ -0,0 +1,24 @@ + +#ifndef MY_TIME_H + +#define MY_TIME_H + +#include "interface.h" +#include "main.h" + +typedef struct my_timer_struct +{ + unsigned int id; + void (*fce)(void *p); + void *arg; + Uint32 time; +} my_timer_t; + +extern bool_t isMyTimerInit(); +extern void initTimer(); +extern int addTimer(void (*fce)(void *p), void *arg, int my_time); +extern void eventTimer(); +extern void delTimer(int id); +extern void quitTimer(); + +#endif diff --git a/include/net_multiplayer.h b/include/net_multiplayer.h new file mode 100644 index 0000000..561a1a3 --- /dev/null +++ b/include/net_multiplayer.h @@ -0,0 +1,40 @@ + +#ifndef NET_MULTIPLAYER_H + +#define NET_MULTIPLAYER_H + +#include "tux.h" +#include "item.h" +#include "buffer.h" +#include "arena.h" + +#define NET_GAME_TYPE_NONE 0 +#define NET_GAME_TYPE_SERVER 1 +#define NET_GAME_TYPE_CLIENT 2 + +#define NET_STATUS_OK 0 +#define NET_STATUS_ZOMBIE 1 + +#define LIMIT_BUFFER 10240 + +typedef struct client_struct +{ + int socket; + int status; + + tux_t *tux; + buffer_t *buffer; +} client_t; + +extern int initServer(int port); +extern int initClient(int port, char *ip); +extern void netSetArena(arena_t *p); +extern int getNetTypeGame(); +extern void proto_send_settux(tux_t *p); +extern void proto_send_shottux(tux_t *p); +extern void proto_send_switchgun(tux_t *p); +extern void proto_send_additem(item_t *item); +extern void eventNetMultiplayer(); +extern void quitNetMultiplayer(); + +#endif diff --git a/include/network.h b/include/network.h new file mode 100755 index 0000000..dde6d25 --- /dev/null +++ b/include/network.h @@ -0,0 +1,10 @@ + +#ifndef NETWORK_H + +#define NETWORK_H + +extern int newSocket(int port,const char *ip); +extern int getNewClient(int sockfd); +extern int getNewClientIP(int sockfd,char **str_ip); + +#endif diff --git a/include/panel.h b/include/panel.h new file mode 100644 index 0000000..4935c75 --- /dev/null +++ b/include/panel.h @@ -0,0 +1,27 @@ + +#ifndef PANEL_H + +#define PANEL_H + +#include "main.h" +#include "list.h" + +#define PANEL_SCORE_LOCATION_X ( WINDOW_SIZE_X / 2 - w / 2 ) +#define PANEL_SCORE_LOCATION_Y ( WINDOW_SIZE_Y - 40 ) + +#define PANEL_SHOT_WIDTH 4 +#define PANEL_SHOT_HEIGHT 8 + +#define PANEL_LOCATION_X 0 +#define PANEL_LOCATION_Y (WINDOW_SIZE_Y-g_panel->h) + +#define PANEL_SHOT_FILL 0 +#define PANEL_SHOT_EMPTY 1 +#define PANEL_SHOT_LINE 2 + +extern bool_t isPanelInicialized(); +extern void initPanel(); +extern void drawPanel(list_t *listTux); +extern void quitPanel(); + +#endif diff --git a/include/path.h b/include/path.h new file mode 100644 index 0000000..60a7cb3 --- /dev/null +++ b/include/path.h @@ -0,0 +1,14 @@ + +#ifndef PATH_H + +#define PATH_H + +#define PATH_IMAGE "./image/" +#define PATH_FONT "./font/" +#define PATH_ARENA "./arena/" +#define PATH_SOUND "./sound/" +#define PATH_MUSIC "./music/" +#define PATH_CONFIG "./conf/" +#define PATH_LANG "./lang/" + +#endif diff --git a/include/screen.h b/include/screen.h new file mode 100644 index 0000000..b0d1593 --- /dev/null +++ b/include/screen.h @@ -0,0 +1,32 @@ + +#ifndef SCREEN_H + +#define SCREEN_H + +#include "main.h" + +typedef struct screen_struct +{ + char *name; + void (*fce_start)(); + void (*fce_event)(); + void (*fce_draw)(); + void (*fce_stop)(); +} screen_t; + +extern bool_t isScreenInicialized(); + +extern screen_t* newScreen(char *name, + void (*fce_start)(), void (*fce_event)(), + void (*fce_draw)(), void (*fce_stop)()); + +extern void destroyScreen(screen_t *p); +extern void registerScreen(screen_t *p); +extern void initScreen(); +extern void setScreen(char *name); +extern char* getScreen(); +extern void drawScreen(); +extern void eventScreen(); +extern void quitScreen(); + +#endif diff --git a/include/screen_analyze.h b/include/screen_analyze.h new file mode 100644 index 0000000..515c6ef --- /dev/null +++ b/include/screen_analyze.h @@ -0,0 +1,24 @@ + +#ifndef SCREEN_ANALYZE_H + +#define SCREEN_ANALYZE_H + +#include "main.h" + +typedef struct analyze_struct +{ + char *name; + int score; +} analyze_t; + +extern void startScreenAnalyze(); +extern void drawScreenAnalyze(); +extern void eventScreenAnalyze(); +extern void stopScreenAnalyze(); +extern void restartAnalyze(); +extern void addAnalyze(char *name, int score); +extern void endAnalyze(); +extern void initScreenAnalyze(); +extern void quitScreenAnalyze(); + +#endif diff --git a/include/screen_gameType.h b/include/screen_gameType.h new file mode 100644 index 0000000..dc25d48 --- /dev/null +++ b/include/screen_gameType.h @@ -0,0 +1,14 @@ + +#ifndef SCREEN_GAME_TYPE + +#define SCREEN_GAME_TYPE + +extern void drawScreenGameType(); +extern void eventScreenGameType(); +extern void initScreenGameType(); +extern int getSettingGameType(); +extern char* getSettingIP(); +extern int getSettingPort(); +extern void quitScreenGameType(); + +#endif diff --git a/include/screen_mainMenu.h b/include/screen_mainMenu.h new file mode 100644 index 0000000..fddf85a --- /dev/null +++ b/include/screen_mainMenu.h @@ -0,0 +1,13 @@ + +#ifndef SCREEN_MIAN_MENU_H + +#define SCREEN_MIAN_MENU_H + +extern void startScreenMainMenu(); +extern void drawScreenMainMenu(); +extern void eventScreenMainMenu(); +extern void stopScreenMainMenu(); +extern void initScreenMainMenu(); +extern void quitScreenMainMenu(); + +#endif diff --git a/include/screen_setting.h b/include/screen_setting.h new file mode 100644 index 0000000..88f2289 --- /dev/null +++ b/include/screen_setting.h @@ -0,0 +1,17 @@ + +#ifndef SCREEN_SETTING + +#define SCREEN_SETTING + +extern void initScreenSetting(); +extern void drawScreenSetting(); +extern void eventScreenSetting(); +extern void getSettingNameRight(char *s); +extern void getSettingNameLeft(char *s); +extern void getSettingCountRound(int *n); +extern bool_t isSettingAnyItem(); +extern bool_t isSettingItem(int item); +extern void quitScreenSetting(); + +#endif + diff --git a/include/screen_world.h b/include/screen_world.h new file mode 100644 index 0000000..3ce7cc7 --- /dev/null +++ b/include/screen_world.h @@ -0,0 +1,24 @@ + +#ifndef SCREEN_WORLD_H + +#define SCREEN_WORLD_H + +#include "main.h" +#include "tux.h" +#include "arena.h" + +extern bool_t isScreenWorldInicialized(); +extern void initWorld(); +extern arena_t* getWorldArena(); +extern void countRoundInc(); +extern int conflictSpace(int x1,int y1,int w1,int h1,int x2,int y2,int w2,int h2); +extern int isFreeSpace(int x, int y, int w, int h); +extern void findFreeSpace(int *x, int *y, int w, int h); +extern void tuxControl(tux_t *p); +extern void drawWorld(); +extern void eventWorld(); +extern void startArena(); +extern void stopArena(); +extern void quitWorld(); + +#endif diff --git a/include/shot.h b/include/shot.h new file mode 100644 index 0000000..c248538 --- /dev/null +++ b/include/shot.h @@ -0,0 +1,43 @@ + +#ifndef SHOT_H + +#include "main.h" +#include "interface.h" +#include "list.h" +#include "tux.h" + +typedef struct shot_struct +{ + int id; + + int x; + int y; + + int w; + int h; + + int px; + int py; + + int course; + int speed; + int gun; + + tux_t *author; + bool_t isCanKillAuthor; + + SDL_Surface *img; +} shot_t; + +extern bool_t isShotInicialized(); +extern void initShot(); +extern shot_t* newShot(int x,int y, int px, int py, int gun, tux_t *author); +extern void drawShot(shot_t *p); +extern void drawListShot(list_t *listShot); +extern int isConflictWithListShot(list_t *listShot, int x, int y, int w, int h); +extern void eventMoveListShot(list_t *listShot); +extern void destroyShot(shot_t *p); +extern void quitShot(); + +#endif + diff --git a/include/sound.h b/include/sound.h new file mode 100644 index 0000000..965c977 --- /dev/null +++ b/include/sound.h @@ -0,0 +1,26 @@ + +#ifndef SOUND_H + +#define SOUND_H + +#include <SDL_mixer.h> +#include "main.h" + +#define SOUND_GROUP_BASE 0 +#define SOUND_GROUP_USER 1 + +typedef struct sound_struct +{ + char *name; + int group; + Mix_Chunk *sound; +} sound_t; + +extern bool_t isSoundInicialized(); +extern void initSound(); +extern void addSound(char *file, char *name, int group); +extern void playSound(char *name, int group); +extern void quitSound(); + +#endif + diff --git a/include/string_length.h b/include/string_length.h new file mode 100644 index 0000000..b16271d --- /dev/null +++ b/include/string_length.h @@ -0,0 +1,11 @@ + +#ifndef STR_LENGTH_H + +#define STR_LENGTH_H + +#define STR_SIZE 128 +#define STR_NUM_SIZE 8 +#define STR_NAME_SIZE 32 +#define STR_PATH_SIZE 4096 + +#endif diff --git a/include/textFile.h b/include/textFile.h new file mode 100755 index 0000000..3917db7 --- /dev/null +++ b/include/textFile.h @@ -0,0 +1,21 @@ + +#ifndef TEXTFILE_H + +#define TEXTFILE_H + +#include "list.h" + +typedef struct str_textFile_t +{ + char *file; + list_t *text; +} textFile_t; + +extern textFile_t* newTextFile(char *s); +extern textFile_t* loadTextFile(char *s); +extern void printTextFile(textFile_t *p); +extern void saveTextFile(textFile_t *p); +extern void destroyTextFile(textFile_t *p); + + +#endif diff --git a/include/tux.h b/include/tux.h new file mode 100644 index 0000000..072cbbe --- /dev/null +++ b/include/tux.h @@ -0,0 +1,117 @@ + +#ifndef TUX_H + +#define TUX_H + +#include "main.h" +#include "list.h" + +#define TUX_STEP 4 +#define TUX_LAYER 0 +#define TUX_MAX_ANIMATION_FRAME 10 +#define TUX_MAX_PICKUP 50 +#define TUX_MAX_BONUS 500 + +#define TUX_TIME_SPAWN 2000 +#define TUX_TIME_CAN_SHOT 500 +#define TUX_TIME_CAN_SWITCH_GUN 100 + +#define TUX_STATUS_ALIVE 0 +#define TUX_STATUS_DEAD 1 + +#define TUX_CONTROL_NONE 0 +#define TUX_CONTROL_KEYBOARD_LEFT 1 +#define TUX_CONTROL_KEYBOARD_RIGHT 2 +#define TUX_CONTROL_NET 3 +#define TUX_CONTROL_ROBOT 4 + +#define TUX_WIDTH 30 +#define TUX_HEIGHT 30 + +#define TUX_IMG_WIDTH 40 +#define TUX_IMG_HEIGHT 54 + +#define TUX_UP 8 +#define TUX_LEFT 4 +#define TUX_RIGHT 6 +#define TUX_DOWN 2 + + +#define GUN_NONE -1 + +#define GUN_COUNT 7 +#define GUN_MAX_SHOT 5 + +#define BONUS_COUNT 6 +#define ITEM_COUNT 16 + + +#define GUN_SIMPLE 0 +#define GUN_DUAL_SIMPLE 1 +#define GUN_SCATTER 2 +#define GUN_TOMMY 3 +#define GUN_LASSER 4 +#define GUN_MINE 5 +#define GUN_BOMBBALL 6 + +#define ITEM_MINE 7 +#define ITEM_EXPLOSION 8 +#define ITEM_BIG_EXPLOSION 9 + +#define BONUS_NONE -1 +#define BONUS_SPEED 10 +#define BONUS_SHOT 11 +#define BONUS_TELEPORT 12 +#define BONUS_GHOST 13 +#define BONUS_4X 14 +#define BONUS_HIDDEN 15 + +typedef struct tux_struct +{ + int id; + + int x; + int y; + + char name[STR_NAME_SIZE]; + + int status; + int control; + int position; + int score; + + int gun; + int shot[GUN_COUNT]; + int round; + int bonus; + + int bonus_time; + int pickup_time; + + bool_t isCanShot; + bool_t isCanSwitchGun; + + int frame; +} tux_t; + +extern bool_t isTuxInicialized(); +extern void initTux(); +extern tux_t* newTux(); +extern bool_t isTuxAnyGun(tux_t *tux); +extern void switchTuxGun(tux_t *tux); +extern void getCourse(int n, int *x, int *y); +extern void drawTux(tux_t *p); +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 void eventConflictShotWithTux(list_t *listTux, list_t *listShot); +extern void moveTux(tux_t *p,int n); +extern void shotTux(tux_t *p); +extern void tuxTeleport(tux_t *tux); +extern void eventListTux(list_t *listTux); +extern tux_t* getTuxID(list_t *listTux, int id); +extern void getTuxProportion(tux_t *p, int *x,int *y, int *w, int *h); +extern void destroyTux(tux_t *p); +extern void quitTux(); + +#endif diff --git a/include/wall.h b/include/wall.h new file mode 100644 index 0000000..5918140 --- /dev/null +++ b/include/wall.h @@ -0,0 +1,34 @@ + +#ifndef WALL_H + +#define WALL_H + +#include <interface.h> +#include "list.h" + +typedef struct wall_struct +{ + int x; // poloha steny + int y; + + int w; // rozmery steny + int h; + + int img_x; // poloha obrazka + int img_y; + + int layer; // vrstva + + SDL_Surface *img; //obrazok +} wall_t; + +extern wall_t* newWall(int x, int y, int w, int h, + int img_x, int img_y, int layer, SDL_Surface *img); +extern void drawWall(wall_t *p); +extern void drawListWall(list_t *listWall); +extern int isConflictWithListWall(list_t *listWall, int x, int y, int w, int h); +extern void eventConflictShotWithWall(list_t *listWall, list_t *listShot); +extern void destroyWall(wall_t *p); + +#endif + diff --git a/include/widget_button.h b/include/widget_button.h new file mode 100644 index 0000000..5fbcfb2 --- /dev/null +++ b/include/widget_button.h @@ -0,0 +1,23 @@ + +#ifndef WIDGET_BUTTON_H + +#define WIDGET_BUTTON_H + +#define WIDGET_BUTTON_WIDTH 125 +#define WIDGET_BUTTON_HEIGHT 36 + +typedef struct widget_button +{ + int x, y; + int w, h; + char *text; + void (*fce_event)(void *); +} widget_button_t; + +extern widget_button_t* newWidgetButton(char *text, int x, int y, void (*fce_event)(void *)); +extern void drawWidgetButton(widget_button_t *p); +extern void eventWidgetButton(widget_button_t *p); +extern void destroyWidgetButton(widget_button_t *p); + +#endif + diff --git a/include/widget_check.h b/include/widget_check.h new file mode 100644 index 0000000..2e3a3a3 --- /dev/null +++ b/include/widget_check.h @@ -0,0 +1,27 @@ + +#ifndef WIDGET_CHECK_H + +#define WIDGET_CHECK_H + +#include "main.h" + +#define WIDGET_CHECK_TIME_SWITCH_STATUS 5 + +#define WIDGET_CHECK_WIDTH 25 +#define WIDGET_CHECK_HEIGHT 25 + +typedef struct widget_check +{ + int x, y; + bool_t status; + int time; + void (*fce_event)(void *); +} widget_check_t; + +extern widget_check_t* newWidgetCheck(int x, int y, bool_t status, void (*fce_event)(void *)); +extern void drawWidgetCheck(widget_check_t *p); +extern void eventWidgetCheck(widget_check_t *p); +extern void destroyWidgetCheck(widget_check_t *p); + +#endif + diff --git a/include/widget_image.h b/include/widget_image.h new file mode 100644 index 0000000..30516f2 --- /dev/null +++ b/include/widget_image.h @@ -0,0 +1,20 @@ + +#ifndef WIDGET_IMAGE_H + +#define WIDGET_IMAGE_H + +#include "interface.h" + +typedef struct widget_image +{ + int x, y; + SDL_Surface *image; +} widget_image_t; + +extern widget_image_t* newWidgetImage(int x, int y, SDL_Surface *image); +extern void drawWidgetImage(widget_image_t *p); +extern void eventWidgetImage(widget_image_t *p); +extern void destroyWidgetImage(widget_image_t *p); + +#endif + diff --git a/include/widget_label.h b/include/widget_label.h new file mode 100644 index 0000000..7df88c2 --- /dev/null +++ b/include/widget_label.h @@ -0,0 +1,24 @@ + +#ifndef WIDGET_LABEL_H + +#define WIDGET_LABEL_H + +typedef struct widget_label +{ + int x, y; + int w, h; + char *text; + int bind; +} widget_label_t; + +#define WIDGET_LABEL_RIGHT 1 +#define WIDGET_LABEL_LEFT 2 +#define WIDGET_LABEL_CENTER 3 + +extern widget_label_t* newWidgetLabel(char *text, int x, int y, int bind); +extern void drawWidgetLabel(widget_label_t *p); +extern void eventWidgetLabel(widget_label_t *p); +extern void destroyWidgetLabel(widget_label_t *p); + +#endif + diff --git a/include/widget_textfield.h b/include/widget_textfield.h new file mode 100644 index 0000000..6f756b2 --- /dev/null +++ b/include/widget_textfield.h @@ -0,0 +1,32 @@ + +#ifndef WIDGET_TEXTFIELD_H + +#define WIDGET_TEXTFIELD_H + +#include "main.h" + +#define WIDGET_TEXTFIELD_WIDTH 125 +#define WIDGET_TEXTFIELD_HEIGHT 36 + +#define WIDGET_TEXTFIELD_TEXT_OFFSET_X 10 + +#define WIDGET_TEXTFIELD_TIME_READ_KEY 5 +#define WIDGET_TEXTFIELD_TIME_BLICK_CURSOR 20 + +typedef struct widget_textfield +{ + int x, y; + int w, h; + int time; + int timeBlick; + char text[STR_SIZE]; + bool_t active; +} widget_textfield_t; + +extern widget_textfield_t* newWidgetTextfield(char *text, int x, int y); +extern void drawWidgetTextfield(widget_textfield_t *p); +extern void eventWidgetTextfield(widget_textfield_t *p); +extern void destroyWidgetTextfield(widget_textfield_t *p); + +#endif + |