summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/arena.h23
-rw-r--r--include/arenaFile.h14
-rw-r--r--include/audio.h12
-rw-r--r--include/bool.h11
-rwxr-xr-xinclude/buffer.h22
-rw-r--r--include/configFile.h11
-rw-r--r--include/director.h17
-rw-r--r--include/dynamicInt.h8
-rwxr-xr-xinclude/font.h26
-rw-r--r--include/gun.h16
-rwxr-xr-xinclude/image.h33
-rwxr-xr-xinclude/interface.h42
-rw-r--r--include/item.h64
-rwxr-xr-xinclude/layer.h52
-rwxr-xr-xinclude/list.h30
-rw-r--r--include/logFile.h16
-rw-r--r--include/main.h13
-rw-r--r--include/music.h29
-rw-r--r--include/myTimer.h24
-rw-r--r--include/net_multiplayer.h40
-rwxr-xr-xinclude/network.h10
-rw-r--r--include/panel.h27
-rw-r--r--include/path.h14
-rw-r--r--include/screen.h32
-rw-r--r--include/screen_analyze.h24
-rw-r--r--include/screen_gameType.h14
-rw-r--r--include/screen_mainMenu.h13
-rw-r--r--include/screen_setting.h17
-rw-r--r--include/screen_world.h24
-rw-r--r--include/shot.h43
-rw-r--r--include/sound.h26
-rw-r--r--include/string_length.h11
-rwxr-xr-xinclude/textFile.h21
-rw-r--r--include/tux.h117
-rw-r--r--include/wall.h34
-rw-r--r--include/widget_button.h23
-rw-r--r--include/widget_check.h27
-rw-r--r--include/widget_image.h20
-rw-r--r--include/widget_label.h24
-rw-r--r--include/widget_textfield.h32
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
+