diff --git a/game/console.c b/game/console.c index dc68777..c753545 100644 --- a/game/console.c +++ b/game/console.c @@ -470,6 +470,10 @@ static int process_actions(const char *command) { temp_storage_list(command_ls_callback,NULL); return 1; } + if (istrcmp(command, "reload-ddl") == 0) { + reload_ddls(); + return 1; + } return 0; diff --git a/game/skeldal.c b/game/skeldal.c index 0aa5264..2df3c97 100644 --- a/game/skeldal.c +++ b/game/skeldal.c @@ -457,7 +457,6 @@ void mouse_set_cursor(int cursor) if (last_ms_cursor>0) aunlock(last_ms_cursor); if (cursor>0) { - alock(cursor); schovej_mysku(); nastav_mysku_kurzor(ablock(cursor),0,0); last_ms_cursor=cursor; @@ -492,9 +491,9 @@ void set_font(int font,int c1,...) va_start(lst, c1); int i; - if (last_font!=-1 && last_font!=font) + if (last_font!=font) { - aunlock(last_font); + if (last_font!=-1) aunlock(last_font); alock(font); } curfont=ablock(font); diff --git a/libs/memman.h b/libs/memman.h index 414449b..6ddfa10 100644 --- a/libs/memman.h +++ b/libs/memman.h @@ -76,6 +76,7 @@ typedef handle_list *handle_groups[BK_MAJOR_HANDLES]; #define BK_PRELOAD 8 #define BK_HSWAP 16 #define BK_READONLY 32 +#define BK_KILL_ON_UNLOCK 64 //extern char *const * mman_pathlist; //tento pointer musi byt naplnen ukazatelem na tabulku cest extern char mman_patch; //jednicka zapina moznost pouziti patchu @@ -83,6 +84,7 @@ void *getmem(int32_t size); //alokace pameti pres memman. alokovat pomoci void *grealloc(void *m,int32_t size); //realokace pameti pres memman void *load_file(const char *filename, size_t *size); //obycejne natahne soubor do pameti a vrati ukazatel. void init_manager(void); //inicializuje manager. Jmeno filename i swapname nejsou povinne (musi byt NULL kdyz nejsou pouzity) +void reload_ddls(void);; void def_mman_group_table(const char ** ); //define pointer to table of paths, for each group there is path THANDLE_DATA *def_handle(int handle,const char *filename,ABLOCK_DECODEPROC decompress,char path); //deklaruje rukojet. promenna decompress je ukazatel na funkci ktera upravi data pred vracenim ukazatele const void *ablock(int handle); //vraci ukazatel bloku spojeneho s handlem