2012-03-26 22:03:20 +00:00
//
// Definitions of common non-engine data structures/functions
// (and declarations of data appearing in both)
// for EDuke32 and Mapster32
//
# ifndef EDUKE32_COMMON_H_
# define EDUKE32_COMMON_H_
2012-03-26 22:05:23 +00:00
# include "scriptfile.h"
2012-03-28 19:41:57 +00:00
# include "cache1d.h"
2012-03-26 22:05:23 +00:00
2012-11-05 02:49:08 +00:00
# ifdef EXTERNC
extern " C " {
# endif
2012-03-26 22:03:20 +00:00
//// TYPES
struct strllist
{
struct strllist * next ;
char * str ;
} ;
2012-03-26 22:05:23 +00:00
typedef struct
{
const char * text ;
int32_t tokenid ;
}
tokenlist ;
2012-03-28 19:41:57 +00:00
typedef struct
{
CACHE1D_FIND_REC * finddirs , * findfiles ;
int32_t numdirs , numfiles ;
}
fnlist_t ;
# define FNLIST_INITIALIZER { NULL, NULL, 0, 0 }
2012-03-26 22:05:23 +00:00
enum
{
T_EOF = - 2 ,
T_ERROR = - 1 ,
} ;
2012-03-26 22:03:20 +00:00
//// EXTERN DECLS
extern struct strllist * CommandPaths , * CommandGrps ;
//// FUNCTIONS
void G_AddGroup ( const char * buffer ) ;
void G_AddPath ( const char * buffer ) ;
2012-03-26 22:05:23 +00:00
int32_t getatoken ( scriptfile * sf , const tokenlist * tl , int32_t ntokens ) ;
2012-06-11 20:35:47 +00:00
int32_t testkopen ( const char * filename , char searchfirst ) ; // full-blown kopen4load
int32_t check_file_exist ( const char * fn ) ; // findfrompath with pathsearchmode=1 / search in zips
2012-03-28 19:41:39 +00:00
2012-03-28 19:41:57 +00:00
void fnlist_clearnames ( fnlist_t * fnl ) ;
int32_t fnlist_getnames ( fnlist_t * fnl , const char * dirname , const char * pattern ,
int32_t dirflags , int32_t fileflags ) ;
void G_LoadGroupsInDir ( const char * dirname ) ;
void G_DoAutoload ( const char * dirname ) ;
2012-03-28 19:43:39 +00:00
char * dup_filename ( const char * fn ) ;
2012-09-08 22:18:31 +00:00
int32_t maybe_append_ext ( char * wbuf , int32_t wbufsiz , const char * fn , const char * ext ) ;
2012-03-28 19:43:39 +00:00
2012-11-29 14:08:03 +00:00
int32_t ldist ( const spritetype * s1 , const spritetype * s2 ) ;
int32_t dist ( const spritetype * s1 , const spritetype * s2 ) ;
2012-12-25 16:13:50 +00:00
void COMMON_clearbackground ( int32_t numcols , int32_t numrows ) ;
2012-04-04 18:57:42 +00:00
// timer defs for profiling function chunks the simple way
# define EDUKE32_TMRDEF int32_t t[20], ti=0; const char *tmrstr=__func__; fprintf(stderr,"%s\n",tmrstr); t[ti++]=getticks();
# define EDUKE32_TMRTIC t[ti++]=getticks()
# define EDUKE32_TMRPRN do { int ii=0; fprintf(stderr,"%s: ",tmrstr); for (ii=1; ii<ti; ii++) fprintf(stderr,"%d ", t[ii]-t[ii-1]); fprintf(stderr,"\n"); } while (0)
2012-11-05 02:49:08 +00:00
# ifdef EXTERNC
}
# endif
2012-03-26 22:03:20 +00:00
# endif