Секреты программирования игр



Демонстрационная программа Test.c - часть 2


#include "doscalls.h"       // Включает файл заголовка

                            // DOS-функций поддержки

#define NOBJ 4              // число загружаемых звуковых эффектов

static char *Names [NOBJ] = // имена файлов звуковых эффектов

{

"TEST1.SND", "TEST2.SND", "PEND.3ND", "TEST.SND"

};

static SNDSTRUC *snd;        // Структура звуковых данных DIGPAK

static char *soundbuffer=0;  // Адрес буфера звуковых данных

static long int ssize[NOBJ]; // Длина загружаемого звукового эффекта

static int NALLOC=0;

char *Sounds[NOBJ];          // адреса всех звуковых эффектов

void UnloadSounds(void);     // Выгрузка звуковых эффектов из памяти

int  LoadSounds(void);       // Загрузка звуковых эффектов в память

void PlaySound(int sound);   // Воспроизведение звукового эффекта

void TestDigPak(void);       // Тестирование функций       

            // воспроизведения DIGPAK

            // Приложение должно обеспечить функции резервирования памяти. Они

            // используются загрузчиком и DOS функциями поддержки. Вы можете

            // заменить эти функции любой другой системой управления памятью.

unsigned char far * far memalloc(long int siz)

{

unsigned char far *mem;

mem = farmalloc(siz);      // функция Си для резервирования

                           // памяти по дальнему адресу return(mem);

}

void far memfree(char far *тетогу)

{

farfree(memory);           // функция Си для освобождения памяти по

// дальнему адресу

}

void main(void)

{

long int siz;

char *fname;

// Вызов загрузчика для начальной загруаки стандартного

// драйвера DIGPAK

if ( !LoadDigPak("SOUNDRV.COM") )

{

printf("Failed to load sound driver.\n");

exit(l);

} if ( !InitDigPak() ) // Инициализация драйвера DIGPAK

{

// Выгрузка драйвера из памяти в случае неудачной

// инициализации и завершение работы программы.

UnLoadDigPak();

printf("Failed to initialize sound driver.\n") ;

exit(l);

}




Содержание  Назад  Вперед