mirror of
https://github.com/ondra-novak/gates_of_skeldal.git
synced 2025-07-13 18:02:01 -04:00
no loading between levels, many improvements in code
This commit is contained in:
parent
77f1700902
commit
a8a87d514c
55 changed files with 628 additions and 763 deletions
|
@ -12,6 +12,14 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
///decodes block if needed
|
||||
/**
|
||||
* @param src source data
|
||||
* @param size source size - you need to write own size if data has been converted
|
||||
* @param pointer either to src or newly allocated block with replacement (must be allocated by malloc)
|
||||
*/
|
||||
typedef const void *(*ABLOCK_DECODEPROC)(const void *src, int32_t *size);
|
||||
|
||||
|
||||
#define freemem(size) free(size);
|
||||
//#define malloc(size) getmem(size)
|
||||
|
@ -36,11 +44,11 @@ typedef struct thandle_data
|
|||
{
|
||||
char src_file[12]; //12
|
||||
int32_t seekpos; //16
|
||||
void *blockdata; //20
|
||||
const void *blockdata; //20
|
||||
char flags; //21
|
||||
uint8_t path; //22
|
||||
short status;
|
||||
void (*loadproc)(void **data,int32_t *size);//28
|
||||
ABLOCK_DECODEPROC loadproc;
|
||||
unsigned short lockcount; //32
|
||||
uint32_t counter;
|
||||
uint32_t size;
|
||||
|
@ -66,6 +74,7 @@ typedef handle_list *handle_groups[BK_MAJOR_HANDLES];
|
|||
#define BK_SHARED 4
|
||||
#define BK_PRELOAD 8
|
||||
#define BK_HSWAP 16
|
||||
#define BK_READONLY 32
|
||||
|
||||
//extern char *const * mman_pathlist; //tento pointer musi byt naplnen ukazatelem na tabulku cest
|
||||
extern int memman_handle; //cislo handle naposled zpracovavaneho prikazem ablock
|
||||
|
@ -75,13 +84,13 @@ void *grealloc(void *m,int32_t size); //realokace pameti pres memman
|
|||
void *load_file(const char *filename); //obycejne natahne soubor do pameti a vrati ukazatel.
|
||||
void init_manager(const char *filename,const char *swp); //inicializuje manager. Jmeno filename i swapname nejsou povinne (musi byt NULL kdyz nejsou pouzity)
|
||||
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,void *decompress,char path); //deklaruje rukojet. promenna decompress je ukazatel na funkci ktera upravi data pred vracenim ukazatele
|
||||
void *ablock(int handle); //vraci ukazatel bloku spojeneho s handlem
|
||||
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
|
||||
void *ablock_copy(int handle); //vraci ukazatel bloku spojeneho s handlem
|
||||
void alock(int handle); //zamyka blok
|
||||
void aunlock(int handle); //odmyka blok
|
||||
void aswap(int handle); //zapina swapovani pro blok
|
||||
void aunswap(int handle); //vypina swapovani pro blok
|
||||
void apreload(int handle); //zapina preloading pro blok (preloading proved pomoci ablock)
|
||||
//void free(void); //free
|
||||
void close_manager(void); //uzavre manager a uvolni veskerou pamet
|
||||
void undef_handle(int handle); //uvolni hadle k dalsimu pouziti
|
||||
|
@ -92,11 +101,9 @@ int test_file_exist(int group,char *filename); //testuje zda soubor existuje v r
|
|||
void *afile(char *filename,int group,int32_t *blocksize); //nahraje do pameti soubor registrovany v ramci mmanageru
|
||||
int32_t get_handle_size(int handle);
|
||||
//void get_mem_info(MEMORYSTATUS *mem);
|
||||
void ablock_free(const void *ptr);
|
||||
|
||||
void apreload_sign(int handle,int max_handle); //pripravi preloading pro nacteni dat z CD (sekvencne)
|
||||
void apreload_start(void (*percent)(int cur,int max)); //provede sekvenci apreload
|
||||
|
||||
char *read_next_entry(char mode); //cte adresar DDL souboru a vraci jmeno, nebo NULL. mode udava, zda se hleda od zacatku, nebo pokracuje tam kde program skoncil
|
||||
int read_group(int index);
|
||||
char add_patch_file(char *filename); //pripojuje zaplatu
|
||||
FILE *afiletemp(char *filename, int group);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue