|
|
1.1 ! root 1: // ! 2: // SNDMOD HEADER AND DEF'S ! 3: // ! 4: ! 5: #define S_THUNDER1 0 ! 6: #define S_THUNDER2 1 ! 7: #define S_THUNDER3 2 ! 8: #define S_WINDLOOP1 3 ! 9: #define S_WAVELOOP1 4 ! 10: #define S_LAVALOOP1 5 ! 11: #define S_FIRELOOP1 6 ! 12: #define S_STONELOOP1 7 ! 13: #define S_BATSLOOP 8 ! 14: #define S_PLRWEAPON0 9 ! 15: #define S_PLRWEAPON1 10 ! 16: #define S_PLRWEAPON2 11 ! 17: #define S_PLRWEAPON3 12 ! 18: #define S_PLRWEAPON4 13 ! 19: #define S_KSNARL1 14 ! 20: #define S_KSNARL2 15 ! 21: #define S_KSNARL3 16 ! 22: #define S_KSNARL4 17 ! 23: #define S_KPAIN1 18 ! 24: #define S_KPAIN2 19 ! 25: #define S_KDIE1 20 ! 26: #define S_KDIE2 21 ! 27: #define S_DEMON1 22 ! 28: #define S_DEMON2 23 ! 29: #define S_DEMON3 24 ! 30: #define S_DEMON4 25 ! 31: #define S_DEMON5 26 ! 32: #define S_DEMONDIE1 27 ! 33: #define S_DEMONDIE2 28 ! 34: #define S_MSNARL1 29 ! 35: #define S_MSNARL2 30 ! 36: #define S_MSNARL3 31 ! 37: #define S_MSNARL4 32 ! 38: #define S_MPAIN1 33 ! 39: #define S_MDEATH1 34 ! 40: #define S_RIP1 35 ! 41: #define S_RIP2 36 ! 42: #define S_RIP3 37 ! 43: #define S_SKELHIT1 38 ! 44: #define S_SKELHIT2 39 ! 45: #define S_SKELETONDIE 40 ! 46: #define S_SKELSEE 41 ! 47: #define S_GUARDIAN1 42 ! 48: #define S_GUARDIAN2 43 ! 49: #define S_GUARDIANPAIN1 44 ! 50: #define S_GUARDIANPAIN2 45 ! 51: #define S_GUARDIANDIE 46 ! 52: #define S_WISP 47 ! 53: #define S_WISP2 48 ! 54: #define S_SPLASH1 49 ! 55: #define S_SPLASH2 50 ! 56: #define S_SPLASH3 51 ! 57: #define S_SPLASH4 52 ! 58: #define S_SPLASH5 53 ! 59: #define S_WILLOWDIE 54 ! 60: #define S_JUDY1 55 ! 61: #define S_JUDYDIE 56 ! 62: #define S_CHAIN1 57 ! 63: #define S_FLAME1 58 ! 64: #define S_CLUNK 59 ! 65: #define S_DEMONTHROW 60 ! 66: #define S_DOOR1 61 ! 67: #define S_DOOR2 62 ! 68: #define S_DOOR3 63 ! 69: #define S_CREAKDOOR1 64 ! 70: #define S_CREAKDOOR2 65 ! 71: #define S_CREAKDOOR3 66 ! 72: #define S_STING1 67 ! 73: #define S_STING2 68 ! 74: #define S_POTION1 69 ! 75: #define S_GENTHROW 70 ! 76: #define S_GENSWING 71 ! 77: #define S_ARROWHIT 72 ! 78: #define S_WALLHIT1 73 ! 79: #define S_GONG 74 ! 80: #define S_SPELL1 75 ! 81: #define S_FREEZE 76 ! 82: #define S_FREEZEDIE 77 ! 83: #define S_TRAP1 78 ! 84: #define S_TRAP2 79 ! 85: #define S_RATS1 80 ! 86: #define S_RATS2 81 ! 87: #define S_WINDLOOP2 82 ! 88: #define S_BREATH1 83 ! 89: #define S_BREATH2 84 ! 90: #define S_PUSH1 85 ! 91: #define S_PUSH2 86 ! 92: #define S_PLRPAIN1 87 ! 93: #define S_PLRPAIN2 88 ! 94: #define S_GORE1 89 ! 95: #define S_GORE2 90 ! 96: #define S_GORE1A 91 ! 97: #define S_GORE1B 92 ! 98: #define S_DEADSTEP 93 ! 99: #define S_HEARTBEAT 94 ! 100: #define S_SOFTCHAINWALK 95 ! 101: #define S_SOFTCREAKWALK 96 ! 102: #define S_LOUDCHAINWALK 97 ! 103: #define S_SCARYDUDE 98 ! 104: #define S_WATERY 99 ! 105: #define S_GLASSBREAK1 100 ! 106: #define S_GLASSBREAK2 101 ! 107: #define S_GLASSBREAK3 102 ! 108: #define S_TREASURE1 103 ! 109: #define S_SWORD1 104 ! 110: #define S_SWORD2 105 ! 111: #define S_SWORDCLINK1 106 ! 112: #define S_SWORDCLINK2 107 ! 113: #define S_SWORDCLINK3 108 ! 114: #define S_SWORDCLINK4 109 ! 115: #define S_SOCK1 110 ! 116: #define S_SOCK2 111 ! 117: #define S_SOCK3 112 ! 118: #define S_SOCK4 113 ! 119: #define S_KOBOLDHIT 114 ! 120: #define S_FIREBALL 115 ! 121: #define S_PULLCHAIN1 116 ! 122: #define S_PICKUPAXE 117 ! 123: #define S_EXPLODE 118 ! 124: #define S_BARRELBREAK 119 ! 125: #define S_WARP 120 ! 126: #define S_PICKUPFLAG 121 ! 127: #define S_DROPFLAG 122 ! 128: #define S_LAUGH 123 ! 129: #define S_DRINK 124 ! 130: #define S_PAGE 125 ! 131: #define S_BOTTLES 126 ! 132: #define S_CRACKING 127 ! 133: #define S_PLRDIE1 128 ! 134: #define S_AGM_ATTACK 129 ! 135: #define S_AGM_PAIN1 130 ! 136: #define S_AGM_PAIN2 131 ! 137: #define S_AGM_PAIN3 132 ! 138: #define S_AGM_DIE1 133 ! 139: #define S_AGM_DIE2 134 ! 140: #define S_AGM_DIE3 135 ! 141: #define S_GRONDEATHA 136 ! 142: #define S_GRONDEATHB 137 ! 143: #define S_GRONDEATHC 138 ! 144: #define S_HGM_DIE1 139 ! 145: #define S_HGM_DIE2 140 ! 146: #define S_HGM_DIE3 141 ! 147: #define S_GRONPAINA 142 ! 148: #define S_HGM_PAIN1 143 ! 149: #define S_HGM_PAIN2 144 ! 150: #define S_FIRESWING 145 ! 151: #define S_FIREWEAPONLOOP 146 ! 152: #define S_ENERGYWEAPONLOOP 147 ! 153: #define S_ENERGYSWING 148 ! 154: #define S_BIGGLASSBREAK1 149 ! 155: #define S_BIGGLASSBREAK2 150 ! 156: #define S_BIGGLASSBREAK3 151 ! 157: #define S_IMPGROWL1 152 ! 158: #define S_IMPGROWL2 153 ! 159: #define S_IMPGROWL3 154 ! 160: #define S_IMPDIE1 155 ! 161: #define S_IMPDIE2 156 ! 162: #define S_SWINGDOOR 157 ! 163: #define S_NUKESPELL 158 ! 164: #define S_DOORSPELL 159 ! 165: #define S_FIRESPELL 160 ! 166: #define S_GENERALMAGIC1 161 ! 167: #define S_GENERALMAGIC2 162 ! 168: #define S_GENERALMAGIC3 163 ! 169: #define S_GENERALMAGIC4 164 ! 170: #define S_HAWKSOUND 165 ! 171: #define S_OWL SOUND 166 ! 172: #define S_STEPSSOUND 167 ! 173: ! 174: ! 175: ! 176: ! 177: ! 178: ! 179: ! 180: ! 181: #define _OFF 0 ! 182: #define _ON 1 ! 183: #define _STANDARD_MUSIC 1 ! 184: #define _DIG_MIDI_MUSIC 2 ! 185: #define _LOOP_MUSIC 3 ! 186: ! 187: #define MAX_AUX_TIMERS 4 ! 188: #define MAX_ACTIVE_SAMPLES 10 ! 189: #define MAX_ACTIVE_SONGS 4 ! 190: //num of array elements in ambsoundarray[] ! 191: #define MAX_AMB_SOUNDS 6 ! 192: #define MAX_ACTIVE_FXLOOPS 4 ! 193: ! 194: #define MAX_SND_LOOPS 8 ! 195: ! 196: #define DIG_MIDI 2 ! 197: #define MIDI 1 ! 198: #define DIGI 0 ! 199: ! 200: #define MENUSONG 0 ! 201: #define DEATHSONG 1 ! 202: ! 203: #define BASE_SONG 0 ! 204: #define EMB_SONG 1 ! 205: #define SPICE_SONG 2 ! 206: ! 207: #define WINDSNDBIT 1 ! 208: #define WAVESNDBIT 2 ! 209: #define WATERSNDBIT 4 ! 210: #define LAVASNDBIT 8 ! 211: #define GRATESNDBIT 16 ! 212: #define CARTSNDBIT 32 ! 213: #define FIRE1SNDBIT 64 ! 214: #define FIRE2SNDBIT 128 ! 215: ! 216: typedef struct ! 217: { ! 218: int playing; ! 219: unsigned SOSHandle; ! 220: unsigned number; ! 221: long priority; ! 222: long x,y; ! 223: } SampleType; ! 224: ! 225: ! 226: struct ambsounds { ! 227: int soundnum; //the actual sound number S_x ! 228: int hsound; //the handle returned by hmi ! 229: }; ! 230: ! 231: #ifdef SND_CALLER ! 232: ! 233: //int lavasnd=-1, ! 234: // batsnd=-1, ! 235: // cartsnd=-1; ! 236: ! 237: ! 238: ! 239: VOID _far _loadds timerevent(VOID); ! 240: ! 241: //Callback functions ! 242: VOID _far cdecl sosDIGISampleCallback( WORD, WORD, WORD ); ! 243: VOID _far sosMIDISongCallback( WORD ); ! 244: VOID _far cdecl _loadds sosMIDITriggerCallback( WORD, BYTE, BYTE ); ! 245: ! 246: // ! 247: //defs for hmi Setup ! 248: // ! 249: // profile structure ! 250: typedef struct _tagINIInstance ! 251: { ! 252: ! 253: WORD wFlags; // misc. flags ! 254: BYTE szName[ 128 ]; // name of .ini file ! 255: ! 256: PSTR pData; // pointer to .ini file in memory ! 257: WORD wSize; // size, in bytes, of file ! 258: WORD wMaxSize; // maximum size in bytes of the .ini ! 259: ! 260: PSTR pCurrent; // current location in file ! 261: WORD wCurrent; // current location in file ! 262: ! 263: PSTR pSection; // pointer to section start ! 264: ! 265: PSTR pItemPtr; // pointer to the start of line w/item ! 266: PSTR pItem; // pointer to last item ! 267: PSTR pList; // pointer to last item location, for list ! 268: // management. ! 269: PSTR pListPtr; // pointer for raw string list ! 270: ! 271: } _INI_INSTANCE; ! 272: ! 273: // equates ! 274: #define _INI_SECTION_START '[' ! 275: #define _INI_SECTION_END ']' ! 276: #define _INI_EQUATE '=' ! 277: #define _INI_SPACE ' ' ! 278: #define _INI_TAB 0x9 ! 279: #define _INI_STRING_START '"' ! 280: #define _INI_STRING_END '"' ! 281: #define _INI_EOL 0x0d ! 282: #define _INI_CR 0x0d ! 283: #define _INI_LF 0x0a ! 284: #define _INI_HEX_INDICATOR 'x' ! 285: #define _INI_LIST_SEPERATOR ',' ! 286: ! 287: // amount of bytes to allocate in addition to file size so that the ! 288: // .ini file may be modified by the application. ! 289: #define _INI_EXTRA_MEMORY 1024 ! 290: ! 291: // various flags for .ini structure ! 292: #define _INI_MODIFIED 0x8000 ! 293: ! 294: ! 295: // function prototypes ! 296: BOOL cdecl hmiINIOpen ( _INI_INSTANCE * sInstance, PSTR szName ); ! 297: BOOL cdecl hmiINIClose ( _INI_INSTANCE * sInstance ); ! 298: BOOL cdecl hmiINILocateSection ( _INI_INSTANCE * sInstance, PSTR szName ); ! 299: BOOL cdecl hmiINILocateItem ( _INI_INSTANCE * sInstance, PSTR szItem ); ! 300: BOOL cdecl hmiINIGetDecimal ( _INI_INSTANCE * sInstance, WORD * wValue ); ! 301: BOOL cdecl hmiINIGetItemDecimal ( _INI_INSTANCE * sInstance, PSTR szItem, WORD * wValue ); ! 302: ! 303: BOOL cdecl sosEZGetConfig( PSTR ); ! 304: ! 305: WORD wMIDIDeviceID,wDIGIDeviceID; ! 306: ! 307: ! 308: // ! 309: // DIGI SPECIFIC ! 310: // ! 311: #define _SOS_DMA_BUFFERSIZE 0x1000 ! 312: #define _SOS_SAMPLE_RATE 11025 ! 313: #define _SOS_FILL_TIMER_RATE 100 ! 314: ! 315: #define _SAMPLE0 0x1000 ! 316: #define _SAMPLE1 0x1001 ! 317: #define _SAMPLE2 0x1002 ! 318: #define _SAMPLE3 0x1003 ! 319: #define _SAMPLE4 0x1004 ! 320: #define _SAMPLE5 0x1005 ! 321: #define _SAMPLE6 0x1006 ! 322: #define _SAMPLE7 0x1007 ! 323: #define _SAMPLE8 0x1008 ! 324: #define _SAMPLE9 0x1009 ! 325: #define _SAMPLE10 0x100a ! 326: #define _SAMPLE11 0x100b ! 327: #define _LSAMPLE1 0x100c ! 328: #define _LSAMPLE2 0x100d ! 329: ! 330: UINT PanArray[] = { ! 331: //REAR to HARD LEFT (angle = 0->512) ! 332: 0x8000,0x7000,0x6000,0x5000,0x4000,0x3000,0x2000,0x1000,0x0000, ! 333: //HARD LEFT to CENTER (angle = 513-1024) ! 334: 0x1000,0x20f0,0x2000,0x3000,0x4000,0x5000,0x6000,0x7000,0x8000, ! 335: //CENTER to HARD RIGHT (angle = 1025-1536) ! 336: 0x70f0,0x8000,0x9000,0xa000,0xb000,0xc000,0xd000,0xe000,0xf000, ! 337: //HARD RIGHT to REAR (angle = 1537-2047) ! 338: 0xffff,0xf000,0xe000,0xd000,0xc000,0xb000,0xa000,0x9000,0x8000 ! 339: }; ! 340: ! 341: volatile SampleType SampleRay[MAX_ACTIVE_SAMPLES]; ! 342: BYTE ActiveSampleBits = 0x00; ! 343: ! 344: volatile SampleType FXLoopRay[MAX_ACTIVE_FXLOOPS]; ! 345: ! 346: _SOS_CAPABILITIES sSOSDeviceCaps; ! 347: _SOS_HARDWARE sDIGIHardware; ! 348: _SOS_INIT_DRIVER sSOSInitDriver = { ! 349: _SOS_DMA_BUFFERSIZE, ! 350: _NULL, ! 351: _TRUE, ! 352: _SOS_SAMPLE_RATE, ! 353: 19, ! 354: 0L, ! 355: _NULL, ! 356: _NULL, ! 357: _NULL, ! 358: _SOS_NORMAL_TIMER ! 359: }; ! 360: ! 361: _SOS_INIT_DRIVER sSOSInitDriver1 = { ! 362: _SOS_DMA_BUFFERSIZE, ! 363: _NULL, ! 364: _TRUE, ! 365: _SOS_SAMPLE_RATE, ! 366: 19, ! 367: 0L, ! 368: _NULL, ! 369: _NULL, ! 370: _NULL, ! 371: _SOS_NORMAL_TIMER ! 372: }; ! 373: ! 374: ! 375: _SOS_START_SAMPLE sSOSSampleData[12] = { ! 376: ! 377: { _NULL, 0L, 0, _CENTER_CHANNEL, 0x7fff, ! 378: _SAMPLE0, sosDIGISampleCallback, 0, _VOLUME | _PANNING | _LOOPING, ! 379: 0L, 0L, 0L, 0L, 0, 0, 0, 0x8000, 0, 0, 0, 0, ! 380: 0L, 0, 0, 0L, 0L, 0L }, ! 381: ! 382: { _NULL, 0L, 0, _CENTER_CHANNEL, 0x7fff, ! 383: _SAMPLE1, sosDIGISampleCallback, 0, _VOLUME | _PANNING | _LOOPING, ! 384: 0L, 0L, 0L, 0L, 0, 0, 0, 0x8000, 0, 0, 0, 0, ! 385: 0L, 0, 0, 0L, 0L, 0L }, ! 386: ! 387: { _NULL, 0L, 0, _CENTER_CHANNEL, 0x7fff, ! 388: _SAMPLE2, sosDIGISampleCallback, 0, _VOLUME | _PANNING | _LOOPING, ! 389: 0L, 0L, 0L, 0L, 0, 0, 0, 0x8000, 0, 0, 0, 0, ! 390: 0L, 0, 0, 0L, 0L, 0L }, ! 391: ! 392: { _NULL, 0L, 0, _CENTER_CHANNEL, 0x7fff, ! 393: _SAMPLE3, sosDIGISampleCallback, 0, _VOLUME | _PANNING | _LOOPING, ! 394: 0L, 0L, 0L, 0L, 0, 0, 0, 0x8000, 0, 0, 0, 0, ! 395: 0L, 0, 0, 0L, 0L, 0L }, ! 396: ! 397: { _NULL, 0L, 0, _CENTER_CHANNEL, 0x7fff, ! 398: _SAMPLE4, sosDIGISampleCallback, 0, _VOLUME | _PANNING | _LOOPING, ! 399: 0L, 0L, 0L, 0L, 0, 0, 0, 0x8000, 0, 0, 0, 0, ! 400: 0L, 0, 0, 0L, 0L, 0L }, ! 401: ! 402: { _NULL, 0L, 0, _CENTER_CHANNEL, 0x7fff, ! 403: _SAMPLE5, sosDIGISampleCallback, 0, _VOLUME | _PANNING | _LOOPING, ! 404: 0L, 0L, 0L, 0L, 0, 0, 0, 0x8000, 0, 0, 0, 0, ! 405: 0L, 0, 0, 0L, 0L, 0L }, ! 406: ! 407: { _NULL, 0L, 0, _CENTER_CHANNEL, 0x7fff, ! 408: _SAMPLE6, sosDIGISampleCallback, 0, _VOLUME | _PANNING | _LOOPING, ! 409: 0L, 0L, 0L, 0L, 0, 0, 0, 0x8000, 0, 0, 0, 0, ! 410: 0L, 0, 0, 0L, 0L, 0L }, ! 411: ! 412: { _NULL, 0L, 0, _CENTER_CHANNEL, 0x7fff, ! 413: _SAMPLE7, sosDIGISampleCallback, 0, _VOLUME | _PANNING | _LOOPING, ! 414: 0L, 0L, 0L, 0L, 0, 0, 0, 0x8000, 0, 0, 0, 0, ! 415: 0L, 0, 0, 0L, 0L, 0L }, ! 416: ! 417: { _NULL, 0L, 0, _CENTER_CHANNEL, 0x7fff, ! 418: _SAMPLE8, sosDIGISampleCallback, 0, _VOLUME | _PANNING | _LOOPING, ! 419: 0L, 0L, 0L, 0L, 0, 0, 0, 0x8000, 0, 0, 0, 0, ! 420: 0L, 0, 0, 0L, 0L, 0L }, ! 421: ! 422: { _NULL, 0L, 0, _CENTER_CHANNEL, 0x7fff, ! 423: _SAMPLE9, sosDIGISampleCallback, 0, _VOLUME | _PANNING | _LOOPING, ! 424: 0L, 0L, 0L, 0L, 0, 0, 0, 0x8000, 0, 0, 0, 0, ! 425: 0L, 0, 0, 0L, 0L, 0L }, ! 426: ! 427: { _NULL, 0L, 0, _CENTER_CHANNEL, 0x7fff, ! 428: _SAMPLE10, sosDIGISampleCallback, 0, _VOLUME | _PANNING | _LOOPING, ! 429: 0L, 0L, 0L, 0L, 0, 0, 0, 0x8000, 0, 0, 0, 0, ! 430: 0L, 0, 0, 0L, 0L, 0L }, ! 431: ! 432: { _NULL, 0L, 0, _CENTER_CHANNEL, 0x7fff, ! 433: _SAMPLE11, sosDIGISampleCallback, 0, _VOLUME | _PANNING | _LOOPING, ! 434: 0L, 0L, 0L, 0L, 0, 0, 0, 0x8000, 0, 0, 0, 0, ! 435: 0L, 0, 0, 0L, 0L, 0L }, ! 436: ! 437: }; ! 438: ! 439: //array for loop and pending loop MUSIC ! 440: _SOS_START_SAMPLE LoopSampleData[2] = ! 441: { ! 442: {_NULL, 0L, -1, _CENTER_CHANNEL, 0x7fff, ! 443: _LSAMPLE1, sosDIGISampleCallback, 0, _LOOPING | _VOLUME, ! 444: 0L, 0L, 0L, 0L, 0, 0, 0, 0x8000, 0, 0, 0, 0, ! 445: 0L, 0, 0, 0L, 0L, 0L}, ! 446: ! 447: {_NULL, 0L, -1, _CENTER_CHANNEL, 0x7fff, ! 448: _LSAMPLE2, sosDIGISampleCallback, 0, _LOOPING | _VOLUME, ! 449: 0L, 0L, 0L, 0L, 0, 0, 0, 0x8000, 0, 0, 0, 0, ! 450: 0L, 0, 0, 0L, 0L, 0L}, ! 451: }; ! 452: ! 453: ! 454: WORD LoopHandles[2]; ! 455: WORD LoopPending=0,LoopIndex=0,looptoggle=0,loopmusepauseflag=0; ! 456: WORD Metronome; ! 457: ! 458: DWORD *DigiList; ! 459: DWORD *LoopList; ! 460: DWORD *SongList; ! 461: DWORD SeekIndex; ! 462: ! 463: // ! 464: // MIDI SPECIFIC ! 465: // ! 466: _SOS_MIDI_HARDWARE sMIDIHardware; ! 467: _SOS_MIDI_INIT_DRIVER sSOSMIDIInitDriver; ! 468: _SOS_MIDI_DIGI_INIT_DRIVER sSOSMIDIDIGIInitDriver; ! 469: ! 470: //midimusic vars ! 471: WORD Metronome; ! 472: WORD SongPending,BranchPending; ! 473: ! 474: WORD hSOSSongHandles[MAX_ACTIVE_SONGS]; ! 475: BYTE ActiveSongBits = 0x00; ! 476: ! 477: BYTE *m_bnkptr,*d_bnkptr,*digi_bnkptr; ! 478: BYTE _huge *lpMIDISong; ! 479: ! 480: _SOS_MIDI_INIT_SONG sSOSInitSongs[MAX_ACTIVE_SONGS]; ! 481: ! 482: _SOS_MIDI_TRACK_DEVICE sSOSTrackMap[MAX_ACTIVE_SONGS] = { ! 483: { ! 484: _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, ! 485: _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, ! 486: _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, ! 487: _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK ! 488: }, ! 489: { ! 490: _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, ! 491: _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, ! 492: _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, ! 493: _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK ! 494: }, ! 495: { ! 496: _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, ! 497: _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, ! 498: _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, ! 499: _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK ! 500: }, ! 501: { ! 502: _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, ! 503: _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, ! 504: _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, ! 505: _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK, _MIDI_MAP_TRACK ! 506: } ! 507: }; ! 508: ! 509: ! 510: // ! 511: // MISC/COMMON STUFF ! 512: // ! 513: WORD hSOSDriverHandles[3]; ! 514: WORD hSOSDriverHandles1; ! 515: ! 516: WORD SD_Started=0; ! 517: BOOL Midi_Loaded,Digi_Loaded,DigMidi_Loaded; ! 518: WORD wError,wIndex; ! 519: ! 520: WORD hSoundFile = -1; // Handle for Sound F/X file ! 521: WORD hLoopFile = -1; // Handle for Loop file ! 522: WORD hSongFile = -1; ! 523: WORD hMiscHandle = -1; ! 524: ! 525: ! 526: ! 527: // ! 528: // TIMER STUFF ! 529: // ! 530: WORD hTimerT_ClockHandle; // Handle for the game timer (TotalClock) ! 531: WORD hTimerDig_FillHandle; // Handle for the sSOSInitDriver.lpFillHandler ! 532: WORD hTimerRec_FillHandle; // Handle for the sSOSInitDriver.lpFillHandler ! 533: ! 534: WORD AuxTimerList[MAX_AUX_TIMERS]; ! 535: BYTE ActiveTimerBits = 0x00; ! 536: ! 537: WORD LoopSndsPlaying=0; ! 538: ! 539: ! 540: struct ambsounds ambsoundarray[] = { ! 541: 0,0, ! 542: S_WINDLOOP1,-1, ! 543: S_WINDLOOP2,-1, ! 544: S_WAVELOOP1,-1, ! 545: S_LAVALOOP1,-1, ! 546: S_WATERY,-1, ! 547: S_STONELOOP1,-1, ! 548: S_BATSLOOP,-1 ! 549: }; ! 550: ! 551: ! 552: ! 553: ! 554: // ! 555: // GLOBAL VARIABLES ! 556: // ! 557: WORD SoundMode,wDIGIVol; ! 558: WORD MusicMode,wMIDIVol; ! 559: WORD use_rec_driver,voicecom_enabled; ! 560: ! 561: ! 562: // ! 563: // EXTERN STUFF ! 564: // ! 565: extern keytimerstuff(); ! 566: extern volatile long totalclock; ! 567: extern long posx[],posy[]; ! 568: ! 569: //JSA temp int to show vol and pan ! 570: int gVol,gPan; ! 571: ! 572: #else ! 573: ! 574: ! 575: extern int Metronome,SongPending,BranchPending; ! 576: extern int hSOSSongHandles[]; ! 577: ! 578: ! 579: extern int SoundMode,wDIGIVol,MusicMode,wMIDIVol,use_dig_midi, ! 580: LoopPending,LoopIndex,looptoggle,LoopSndsPlaying, ! 581: gPan,gVol; ! 582: ! 583: extern SampleType SampleRay[],FXLoopRay[]; ! 584: ! 585: extern struct ambsounds ambsoundarray[]; ! 586: extern int lavasnd,batsnd,cartsnd; ! 587: ! 588: ! 589: #endif ! 590: ! 591: ! 592:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.