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