--- a/hash.c +++ b/hash.c @@ -68,7 +68,7 @@ } return NULL; } -void *Hash_GetKey(hashtable_t *table, int key) +void *Hash_GetKey(hashtable_t *table, long key) { int bucknum = key%table->numbuckets; bucket_t *buck; @@ -77,7 +77,7 @@ while(buck) { - if ((int)buck->keystring == key) + if ((long)buck->keystring == key) return buck->data; buck = buck->next; @@ -168,7 +168,7 @@ return buck; } -void *Hash_AddKey(hashtable_t *table, int key, void *data, bucket_t *buck) +void *Hash_AddKey(hashtable_t *table, long key, void *data, bucket_t *buck) { int bucknum = key%table->numbuckets; @@ -237,14 +237,14 @@ } -void Hash_RemoveKey(hashtable_t *table, int key) +void Hash_RemoveKey(hashtable_t *table, long key) { int bucknum = key%table->numbuckets; bucket_t *buck; buck = table->bucket[bucknum]; - if ((int)buck->keystring == key) + if ((long)buck->keystring == key) { table->bucket[bucknum] = buck->next; return; @@ -253,7 +253,7 @@ while(buck->next) { - if ((int)buck->next->keystring == key) + if ((long)buck->next->keystring == key) { buck->next = buck->next->next; return; --- a/hash.h +++ b/hash.h @@ -19,12 +19,12 @@ int Hash_Key(char *name, int modulus); void *Hash_Get(hashtable_t *table, char *name); void *Hash_GetInsensative(hashtable_t *table, char *name); -void *Hash_GetKey(hashtable_t *table, int key); +void *Hash_GetKey(hashtable_t *table, long key); void *Hash_GetNext(hashtable_t *table, char *name, void *old); void *Hash_GetNextInsensative(hashtable_t *table, char *name, void *old); void *Hash_Add(hashtable_t *table, char *name, void *data, bucket_t *buck); void *Hash_AddInsensative(hashtable_t *table, char *name, void *data, bucket_t *buck); void Hash_Remove(hashtable_t *table, char *name); void Hash_RemoveData(hashtable_t *table, char *name, void *data); -void Hash_RemoveKey(hashtable_t *table, int key); -void *Hash_AddKey(hashtable_t *table, int key, void *data, bucket_t *buck); +void Hash_RemoveKey(hashtable_t *table, long key); +void *Hash_AddKey(hashtable_t *table, long key, void *data, bucket_t *buck); --- a/qcc.h +++ b/qcc.h @@ -286,7 +286,7 @@ #endif #ifdef WRITEASM -FILE *asmfile; +extern FILE *asmfile; #endif //============================================================================= @@ -830,23 +830,23 @@ typedef char PATHSTRING[MAX_DATA_PATH]; -PATHSTRING *precache_sounds; -int *precache_sounds_block; -int *precache_sounds_used; -int numsounds; - -PATHSTRING *precache_textures; -int *precache_textures_block; -int numtextures; - -PATHSTRING *precache_models; -int *precache_models_block; -int *precache_models_used; -int nummodels; - -PATHSTRING *precache_files; -int *precache_files_block; -int numfiles; +extern PATHSTRING *precache_sounds; +extern int *precache_sounds_block; +extern int *precache_sounds_used; +extern int numsounds; + +extern PATHSTRING *precache_textures; +extern int *precache_textures_block; +extern int numtextures; + +extern PATHSTRING *precache_models; +extern int *precache_models_block; +extern int *precache_models_used; +extern int nummodels; + +extern PATHSTRING *precache_files; +extern int *precache_files_block; +extern int numfiles; int QCC_CopyString (char *str); --- a/qccmain.c +++ b/qccmain.c @@ -2,6 +2,14 @@ #define PROGSUSED #include "qcc.h" + +#ifdef WRITEASM +FILE *asmfile; +#endif + +int *precache_sounds_used; +int *precache_models_used; + int mkdir(const char *path); char QCC_copyright[1024]; @@ -22,7 +30,7 @@ void *FS_ReadToMem(char *fname, void *membuf, int *len); void FS_CloseFromMem(void *mem); -struct qcc_includechunk_s *currentchunk; +extern struct qcc_includechunk_s *currentchunk; unsigned int MAX_REGS; @@ -84,8 +92,8 @@ hashtable_t compconstantstable; hashtable_t globalstable; hashtable_t localstable; -hashtable_t floatconstdefstable; -hashtable_t stringconstdefstable; +extern hashtable_t floatconstdefstable; +extern hashtable_t stringconstdefstable; pbool qccwarningdisabled[WARN_MAX]; @@ -1627,7 +1635,7 @@ #define PROGDEFS_MAX_SIZE 16384 //write (to file buf) and add to the crc -void inline Add(char *p, unsigned short *crc, char *file) +void Add(char *p, unsigned short *crc, char *file) { char *s; int i = strlen(file); @@ -1643,7 +1651,7 @@ #define ADD(p) Add(p, &crc, file) //#define ADD(p) {char *s;int i = strlen(p);for(s=p;*s;s++,i++){QCC_CRC_ProcessByte(&crc, *s);file[i] = *s;}file[i]='\0';} -void inline Add3(char *p, unsigned short *crc, char *file) +void Add3(char *p, unsigned short *crc, char *file) { char *s; for(s=p;*s;s++) @@ -3283,7 +3291,7 @@ #ifdef QCCONLY -progfuncs_t *progfuncs; +extern progfuncs_t *progfuncs; /* ============== --- a/qcc_pr_comp.c +++ b/qcc_pr_comp.c @@ -733,7 +733,7 @@ ============ */ QCC_def_t *QCC_PR_Statement ( QCC_opcode_t *op, QCC_def_t *var_a, QCC_def_t *var_b, QCC_dstatement_t **outstatement); -int inline QCC_ShouldConvert(QCC_def_t *var, etype_t wanted) +int QCC_ShouldConvert(QCC_def_t *var, etype_t wanted) { if (var->type->type == ev_integer && wanted == ev_function) return 0; @@ -7322,7 +7322,7 @@ QCC_def_t *def, *d; QCC_function_t *f; QCC_dfunction_t *df; - int i; + int i = 0; pbool shared=false; pbool externfnc=false; pbool isconstant = false; @@ -8541,8 +8541,6 @@ struct qcc_includechunk_s *oldcurrentchunk; extern struct qcc_includechunk_s *currentchunk; - extern char qccmsourcedir[]; - ocompilingfile = compilingfile; os_file = s_file; os_file2 = s_file2;