DOOM64-RE

DOOM 64 Reverse Engineering
Log | Files | Refs | README | LICENSE

seqloadl.c (1762B)


      1 /* ULTRA64 LIBRARIES */
      2 #include <ultra64.h>
      3 #include "ultratypes.h"
      4 #include <libaudio.h>
      5 
      6 /* WESS API INCLUDES */
      7 #include "wessapi.h"	// audio stuff...
      8 #include "seqload.h"
      9 #include "soundhw.h"
     10 #include "wessarc.h"
     11 #include "wessseq.h"
     12 
     13 #include "funqueue.h"
     14 
     15 #ifndef NOUSEWESSCODE
     16 
     17 extern module_header	sfile_hdr;				//800b6a60
     18 extern master_status_structure *ref_pm_stat;	//800B6A80
     19 extern char *loaderfile;						//800B6A84
     20 extern int ref_max_seq_num;					    //800B6A88
     21 extern int opencount;							//800B6A8C
     22 extern int(*Error_func)(int, int);				//800B6A90
     23 extern int Error_module;						//800B6A94
     24 extern Wess_File_IO_Struct *fp_seq_file;		//800B6A98
     25 extern int seq_loader_offset;					//800B6A9C
     26 extern int seq_loader_enable;					//800B6AA0
     27 
     28 #define END_SEQ_LIST -1
     29 
     30 int wess_seq_list_sizeof(short *seqlist) // 8003A090
     31 {
     32 	int seqnum;
     33 	int count;
     34 
     35 	count = 0;
     36 	if (seq_loader_enable)
     37 	{
     38 		if (*seqlist == END_SEQ_LIST)
     39 			return 0;
     40 
     41 		do
     42 		{
     43 			seqnum = *seqlist++;
     44 			count += wess_seq_sizeof(seqnum);
     45 		} while (seqnum != END_SEQ_LIST);
     46 	}
     47 	return (count);
     48 }
     49 
     50 int wess_seq_list_load(short *seqlist, void *memptr) // 8003A108
     51 {
     52 	int seqnum;
     53 	int count;
     54 	char *pmem;
     55 
     56 	pmem = (char *)memptr;
     57 
     58 	count = 0;
     59 	if (seq_loader_enable)
     60 	{
     61 		if (!open_sequence_data())
     62 			return 0;
     63 
     64 		if (*seqlist != END_SEQ_LIST)
     65 		{
     66 			do
     67 			{
     68 				seqnum = *seqlist++;
     69 				count += wess_seq_load(seqnum, pmem + count);
     70 			} while (seqnum != END_SEQ_LIST);
     71 		}
     72 
     73 		close_sequence_data();
     74 	}
     75 
     76 	return count;
     77 }
     78 
     79 int wess_seq_list_free(short *seqlist) // 8003A1B4
     80 {
     81 	int seqnum;
     82 	if (seq_loader_enable)
     83 	{
     84 		if (*seqlist != END_SEQ_LIST)
     85 		{
     86 			do
     87 			{
     88 				seqnum = *seqlist++;
     89 				wess_seq_free(seqnum);
     90 			} while (seqnum != END_SEQ_LIST);
     91 		}
     92 		return 1;
     93 	}
     94 	return 0;
     95 }
     96 
     97 #endif