Updated audio module.
This commit is contained in:
parent
f54579a41f
commit
28cc1fcc6d
|
@ -107,7 +107,7 @@ int main(int argc, char **argv)
|
|||
}
|
||||
|
||||
freeGraphics();
|
||||
loadSound();
|
||||
audio_loadSounds();
|
||||
|
||||
initWeapons();
|
||||
|
||||
|
|
|
@ -694,7 +694,7 @@ void alien_move(object *alien)
|
|||
alien->hit = 3;
|
||||
alien->dx *= -1;
|
||||
alien->dy *= -1;
|
||||
playSound(SFX_HIT, alien->x);
|
||||
audio_playSound(SFX_HIT, alien->x);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -712,10 +712,10 @@ void alien_move(object *alien)
|
|||
if (!engine.cheatShield)
|
||||
player.shield -= alien->shield;
|
||||
alien->shield = 0;
|
||||
playSound(SFX_EXPLOSION, alien->x);
|
||||
audio_playSound(SFX_EXPLOSION, alien->x);
|
||||
setInfoLine("Warning: Asteroid Collision Damage!!", FONT_RED);
|
||||
player.hit = 5;
|
||||
playSound(SFX_HIT, player.x);
|
||||
audio_playSound(SFX_HIT, player.x);
|
||||
}
|
||||
|
||||
if (alien->classDef == CD_ASTEROID2)
|
||||
|
@ -723,10 +723,10 @@ void alien_move(object *alien)
|
|||
if (!engine.cheatShield)
|
||||
player.shield -= alien->shield;
|
||||
alien->shield = 0;
|
||||
playSound(SFX_EXPLOSION, alien->x);
|
||||
audio_playSound(SFX_EXPLOSION, alien->x);
|
||||
setInfoLine("Warning: Asteroid Collision Damage!!", FONT_RED);
|
||||
player.hit = 5;
|
||||
playSound(SFX_HIT, player.x);
|
||||
audio_playSound(SFX_HIT, player.x);
|
||||
}
|
||||
|
||||
if (alien->classDef == CD_BARRIER)
|
||||
|
@ -734,7 +734,7 @@ void alien_move(object *alien)
|
|||
if (!engine.cheatShield)
|
||||
player.shield--;
|
||||
player.hit = 5;
|
||||
playSound(SFX_HIT, player.x);
|
||||
audio_playSound(SFX_HIT, player.x);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,9 +19,30 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
#include "Starfighter.h"
|
||||
|
||||
Mix_Chunk *sound[MAX_SOUNDS];
|
||||
static Mix_Chunk *sound[SFX_MAX];
|
||||
static Mix_Music *music = NULL;
|
||||
|
||||
void playSound(int sid, float x)
|
||||
void audio_loadSounds()
|
||||
{
|
||||
sound[SFX_EXPLOSION] = Mix_LoadWAV("sound/explode.ogg");
|
||||
sound[SFX_HIT] = Mix_LoadWAV("sound/explode2.ogg");
|
||||
sound[SFX_DEATH] = Mix_LoadWAV("sound/maledeath.ogg");
|
||||
sound[SFX_MISSILE] = Mix_LoadWAV("sound/missile.ogg");
|
||||
sound[SFX_PLASMA] = Mix_LoadWAV("sound/plasma.ogg");
|
||||
sound[SFX_CLOCK] = Mix_LoadWAV("sound/clock.ogg");
|
||||
sound[SFX_FLY] = Mix_LoadWAV("sound/flyby.ogg");
|
||||
sound[SFX_ENERGYRAY] = Mix_LoadWAV("sound/beamLaser.ogg");
|
||||
sound[SFX_PICKUP] = Mix_LoadWAV("sound/item.ogg");
|
||||
sound[SFX_SHIELDUP] = Mix_LoadWAV("sound/shield.ogg");
|
||||
sound[SFX_CLOAK] = Mix_LoadWAV("sound/cloak.ogg");
|
||||
sound[SFX_DEBRIS] = Mix_LoadWAV("sound/explode3.ogg");
|
||||
sound[SFX_DEBRIS2] = Mix_LoadWAV("sound/explode4.ogg");
|
||||
sound[SFX_LASER] = Mix_LoadWAV("sound/laser.ogg");
|
||||
sound[SFX_PLASMA2] = Mix_LoadWAV("sound/plasma2.ogg");
|
||||
sound[SFX_PLASMA3] = Mix_LoadWAV("sound/plasma3.ogg");
|
||||
}
|
||||
|
||||
void audio_playSound(int sid, float x)
|
||||
{
|
||||
if ((!engine.useSound) || (!engine.useAudio))
|
||||
return;
|
||||
|
@ -65,40 +86,49 @@ void playSound(int sid, float x)
|
|||
freechannel = 4;
|
||||
}
|
||||
|
||||
int angle = atanf((x - 400) / 400) * 180 / M_PI;
|
||||
int attenuation = fabsf(x - 400) / 40;
|
||||
int angle = atanf((x - (screen->w / 2)) / (screen->w / 2)) * 180 / M_PI;
|
||||
int attenuation = fabsf(x - (screen->w / 2)) / 40;
|
||||
|
||||
if(angle < 0)
|
||||
if (angle < 0)
|
||||
angle += 360;
|
||||
|
||||
if(attenuation > 255)
|
||||
if (attenuation > 255)
|
||||
attenuation = 255;
|
||||
|
||||
Mix_SetPosition(channel, angle, attenuation);
|
||||
Mix_PlayChannel(channel, sound[sid], 0);
|
||||
}
|
||||
|
||||
Mix_Chunk *loadSound(const char *filename)
|
||||
{
|
||||
Mix_Chunk *chunk;
|
||||
|
||||
chunk = Mix_LoadWAV(filename);
|
||||
|
||||
return chunk;
|
||||
}
|
||||
|
||||
void loadMusic(const char *filename)
|
||||
void audio_haltMusic()
|
||||
{
|
||||
if (Mix_PlayingMusic())
|
||||
Mix_HaltMusic();
|
||||
|
||||
if (engine.music != NULL)
|
||||
Mix_FreeMusic(engine.music);
|
||||
|
||||
engine.music = Mix_LoadMUS(filename);
|
||||
if (music != NULL)
|
||||
{
|
||||
Mix_FreeMusic(music);
|
||||
music = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void playRandomTrack()
|
||||
void audio_setMusicVolume(int volume)
|
||||
{
|
||||
if (engine.useMusic && engine.useAudio)
|
||||
Mix_VolumeMusic(volume);
|
||||
}
|
||||
|
||||
void audio_playMusic(const char *filename, int loops)
|
||||
{
|
||||
if (engine.useMusic && engine.useAudio)
|
||||
{
|
||||
audio_haltMusic();
|
||||
music = Mix_LoadMUS(filename);
|
||||
audio_setMusicVolume(100);
|
||||
Mix_PlayMusic(music, loops);
|
||||
}
|
||||
}
|
||||
|
||||
void audio_playRandomTrack()
|
||||
{
|
||||
if ((!engine.useMusic) || (!engine.useAudio))
|
||||
return;
|
||||
|
@ -112,20 +142,36 @@ void playRandomTrack()
|
|||
switch(currentGame.area)
|
||||
{
|
||||
case 0:
|
||||
loadMusic("music/railjet_short.ogg");
|
||||
audio_playMusic("music/railjet_short.ogg", -1);
|
||||
break;
|
||||
case 5:
|
||||
case 11:
|
||||
case 18:
|
||||
case 25:
|
||||
loadMusic("music/orbital_colossus.ogg");
|
||||
audio_playMusic("music/orbital_colossus.ogg", -1);
|
||||
break;
|
||||
case 26:
|
||||
loadMusic("music/RE.ogg");
|
||||
audio_playMusic("music/RE.ogg", -1);
|
||||
break;
|
||||
default:
|
||||
loadMusic(track[rand() % tracks]);
|
||||
audio_playMusic(track[rand() % tracks], -1);
|
||||
}
|
||||
}
|
||||
|
||||
void audio_free()
|
||||
{
|
||||
for (int i = 0 ; i < SFX_MAX ; i++)
|
||||
{
|
||||
if (sound[i] != NULL)
|
||||
{
|
||||
Mix_FreeChunk(sound[i]);
|
||||
sound[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
Mix_PlayMusic(engine.music, -1);
|
||||
if (music != NULL)
|
||||
{
|
||||
Mix_FreeMusic(music);
|
||||
music = NULL;
|
||||
}
|
||||
}
|
||||
|
|
13
src/audio.h
13
src/audio.h
|
@ -20,11 +20,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
#ifndef AUDIO_H
|
||||
#define AUDIO_H
|
||||
|
||||
extern Mix_Chunk *sound[MAX_SOUNDS];
|
||||
|
||||
extern void playSound(int sid, float x = 400);
|
||||
extern Mix_Chunk *loadSound(const char *filename);
|
||||
extern void loadMusic(const char *filename);
|
||||
extern void playRandomTrack();
|
||||
void audio_loadSounds();
|
||||
void audio_playSound(int sid, float x);
|
||||
void audio_haltMusic();
|
||||
void audio_setMusicVolume(int volume);
|
||||
void audio_playMusic(const char *filename, int loops);
|
||||
void audio_playRandomTrack();
|
||||
void audio_free();
|
||||
|
||||
#endif
|
||||
|
|
|
@ -156,16 +156,16 @@ void fireBullet(object *attacker, int weaponType)
|
|||
case WT_PLASMA:
|
||||
case WT_SPREAD:
|
||||
case WT_DIRECTIONAL:
|
||||
playSound(SFX_PLASMA, attacker->x);
|
||||
audio_playSound(SFX_PLASMA, attacker->x);
|
||||
break;
|
||||
case WT_ROCKET:
|
||||
playSound(SFX_MISSILE, attacker->x);
|
||||
audio_playSound(SFX_MISSILE, attacker->x);
|
||||
break;
|
||||
case WT_LASER:
|
||||
playSound(SFX_LASER, attacker->x);
|
||||
audio_playSound(SFX_LASER, attacker->x);
|
||||
break;
|
||||
case WT_CHARGER:
|
||||
playSound(SFX_PLASMA3, attacker->x);
|
||||
audio_playSound(SFX_PLASMA3, attacker->x);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -275,7 +275,7 @@ Fill in later...
|
|||
*/
|
||||
static void alien_destroy(object *alien, object *attacker)
|
||||
{
|
||||
playSound(SFX_EXPLOSION, alien->x);
|
||||
audio_playSound(SFX_EXPLOSION, alien->x);
|
||||
|
||||
// Chain reaction destruction if needed
|
||||
if (alien->flags & FL_DAMAGEOWNER)
|
||||
|
@ -436,11 +436,11 @@ void fireRay(object *attacker)
|
|||
player.shield--;
|
||||
|
||||
addExplosion(player.x, player.y, E_SMALL_EXPLOSION);
|
||||
playSound(SFX_HIT, player.x);
|
||||
audio_playSound(SFX_HIT, player.x);
|
||||
if (player.shield < 1)
|
||||
{
|
||||
playSound(SFX_DEATH, player.x);
|
||||
playSound(SFX_EXPLOSION, player.x);
|
||||
audio_playSound(SFX_DEATH, player.x);
|
||||
audio_playSound(SFX_EXPLOSION, player.x);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -459,7 +459,7 @@ void fireRay(object *attacker)
|
|||
{
|
||||
anEnemy->shield--;
|
||||
addExplosion(anEnemy->x, anEnemy->y, E_SMALL_EXPLOSION);
|
||||
playSound(SFX_HIT, anEnemy->x);
|
||||
audio_playSound(SFX_HIT, anEnemy->x);
|
||||
if (anEnemy->shield < 1)
|
||||
{
|
||||
alien_destroy(anEnemy, attacker->owner);
|
||||
|
@ -647,7 +647,7 @@ void doBullets()
|
|||
bullet->active = false;
|
||||
}
|
||||
|
||||
playSound(SFX_HIT, alien->x);
|
||||
audio_playSound(SFX_HIT, alien->x);
|
||||
if (alien->AIType == AI_EVASIVE)
|
||||
alien->thinktime = 0;
|
||||
|
||||
|
@ -709,7 +709,7 @@ void doBullets()
|
|||
bullet->active = false;
|
||||
}
|
||||
|
||||
playSound(SFX_HIT, player.x);
|
||||
audio_playSound(SFX_HIT, player.x);
|
||||
|
||||
if (bullet->id == WT_ROCKET)
|
||||
addExplosion(bullet->x, bullet->y, E_BIG_EXPLOSION);
|
||||
|
@ -731,11 +731,11 @@ void doBullets()
|
|||
{
|
||||
bullet->active = false;
|
||||
addExplosion(bullet->x, bullet->y, E_SMALL_EXPLOSION);
|
||||
playSound(SFX_HIT, theCargo->x);
|
||||
audio_playSound(SFX_HIT, theCargo->x);
|
||||
if (theCargo->collectType != P_PHOEBE)
|
||||
{
|
||||
theCargo->active = false;
|
||||
playSound(SFX_EXPLOSION, theCargo->x);
|
||||
audio_playSound(SFX_EXPLOSION, theCargo->x);
|
||||
for (int i = 0 ; i < 10 ; i++)
|
||||
addExplosion(theCargo->x + rrand(-15, 15), theCargo->y + rrand(-15, 15), E_BIG_EXPLOSION);
|
||||
updateMissionRequirements(M_PROTECT_PICKUP, P_CARGO, 1);
|
||||
|
@ -754,7 +754,7 @@ void doBullets()
|
|||
{
|
||||
if ((bullet->flags & WF_TIMEDEXPLOSION) || (bullet->id == WT_CHARGER))
|
||||
{
|
||||
playSound(SFX_EXPLOSION, bullet->x);
|
||||
audio_playSound(SFX_EXPLOSION, bullet->x);
|
||||
for (int i = 0 ; i < 10 ; i++)
|
||||
addExplosion(bullet->x + rrand(-35, 35), bullet->y + rrand(-35, 35), E_BIG_EXPLOSION);
|
||||
|
||||
|
|
|
@ -226,7 +226,7 @@ static void explodeMine(collectables *collectable)
|
|||
{
|
||||
if ((collectable->x >= 0) && (collectable->x <= screen->w) &&
|
||||
(collectable->y >= 0) && (collectable->y <= screen->h))
|
||||
playSound(SFX_EXPLOSION, collectable->x);
|
||||
audio_playSound(SFX_EXPLOSION, collectable->x);
|
||||
|
||||
for (int i = 0 ; i < 10 ; i++)
|
||||
addExplosion(collectable->x + rand() % 25 - rand() % 25,
|
||||
|
@ -448,9 +448,9 @@ void doCollectables()
|
|||
{
|
||||
setInfoLine(temp, FONT_WHITE);
|
||||
if (collectable->type == P_SHIELD)
|
||||
playSound(SFX_SHIELDUP, player.x);
|
||||
audio_playSound(SFX_SHIELDUP, player.x);
|
||||
else
|
||||
playSound(SFX_PICKUP, player.x);
|
||||
audio_playSound(SFX_PICKUP, player.x);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -22,9 +22,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
void addDebris(int x, int y, int amount)
|
||||
{
|
||||
if ((rand() % 2) == 0)
|
||||
playSound(SFX_DEBRIS, x);
|
||||
audio_playSound(SFX_DEBRIS, x);
|
||||
else
|
||||
playSound(SFX_DEBRIS2, x);
|
||||
audio_playSound(SFX_DEBRIS2, x);
|
||||
|
||||
object *debris;
|
||||
|
||||
|
|
|
@ -86,7 +86,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
#define MAX_WEAPONS 20
|
||||
#define MAX_SHAPES 100
|
||||
#define MAX_SHIPSHAPES 120
|
||||
#define MAX_SOUNDS 17
|
||||
#define MAX_ALIENS 25
|
||||
#define MAX_TEXTSHAPES 150
|
||||
#define MAX_FONTSHAPES 6
|
||||
|
@ -339,7 +338,8 @@ enum {
|
|||
SFX_DEBRIS2,
|
||||
SFX_LASER,
|
||||
SFX_PLASMA2,
|
||||
SFX_PLASMA3
|
||||
SFX_PLASMA3,
|
||||
SFX_MAX
|
||||
};
|
||||
|
||||
enum {
|
||||
|
|
12
src/game.cpp
12
src/game.cpp
|
@ -541,7 +541,7 @@ int mainGameLoop()
|
|||
else if ((currentGame.area == 26) && (engine.musicVolume > 0))
|
||||
{
|
||||
limitFloat(&(engine.musicVolume -= 0.2), 0, 100);
|
||||
Mix_VolumeMusic((int)engine.musicVolume);
|
||||
audio_setMusicVolume((int)engine.musicVolume);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -556,7 +556,7 @@ int mainGameLoop()
|
|||
else
|
||||
{
|
||||
limitFloat(&(engine.musicVolume -= 0.2), 0, 100);
|
||||
Mix_VolumeMusic((int)engine.musicVolume);
|
||||
audio_setMusicVolume((int)engine.musicVolume);
|
||||
if (SDL_GetTicks() >= engine.missionCompleteTimer)
|
||||
{
|
||||
engine.done = 1;
|
||||
|
@ -721,7 +721,7 @@ int mainGameLoop()
|
|||
alien->flags -= FL_ISCLOAKED;
|
||||
else
|
||||
alien->flags += FL_ISCLOAKED;
|
||||
playSound(SFX_CLOAK, alien->x);
|
||||
audio_playSound(SFX_CLOAK, alien->x);
|
||||
}
|
||||
|
||||
if (alien->classDef == CD_BARRIER)
|
||||
|
@ -780,7 +780,7 @@ int mainGameLoop()
|
|||
(alien->ammo[0] == 250))
|
||||
{
|
||||
alien->flags += FL_FIRERAY;
|
||||
playSound(SFX_ENERGYRAY, alien->x);
|
||||
audio_playSound(SFX_ENERGYRAY, alien->x);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -932,14 +932,14 @@ int mainGameLoop()
|
|||
// specific to Boss 1
|
||||
if ((currentGame.area == 5) && (aliens[WC_BOSS].flags & FL_ESCAPED))
|
||||
{
|
||||
playSound(SFX_DEATH, aliens[WC_BOSS].x);
|
||||
audio_playSound(SFX_DEATH, aliens[WC_BOSS].x);
|
||||
clearScreen(white);
|
||||
updateScreen();
|
||||
for (int i = 0 ; i < 300 ; i++)
|
||||
{
|
||||
SDL_Delay(10);
|
||||
if ((rand() % 25) == 0)
|
||||
playSound(SFX_EXPLOSION, aliens[WC_BOSS].x);
|
||||
audio_playSound(SFX_EXPLOSION, aliens[WC_BOSS].x);
|
||||
}
|
||||
SDL_Delay(1000);
|
||||
break;
|
||||
|
|
|
@ -224,7 +224,7 @@ void initSystem()
|
|||
{
|
||||
if (Mix_OpenAudio(44100, AUDIO_S16, engine.useAudio * 2, 1024) < 0)
|
||||
{
|
||||
printf("Warning: Couldn't set 44100 Hz 16-bit stereo audio - Reason: %s\n", Mix_GetError());
|
||||
printf("Warning: Couldn't set 44100 Hz 16-bit stereo audio - Reason:\n%s\n", Mix_GetError());
|
||||
printf("Sound and Music will be disabled\n");
|
||||
engine.useAudio = false;
|
||||
}
|
||||
|
@ -246,7 +246,7 @@ void cleanUp()
|
|||
{
|
||||
freeGraphics();
|
||||
SDL_FreeSurface(background);
|
||||
freeSound();
|
||||
audio_free();
|
||||
resetLists();
|
||||
delete(engine.bulletHead);
|
||||
delete(engine.explosionHead);
|
||||
|
|
|
@ -409,20 +409,13 @@ static void showOptions(SDL_Surface *optionsSurface)
|
|||
if (collision(engine.cursor_x + 13, engine.cursor_y + 13, 6, 6, 417, 222, 45, 22))
|
||||
{
|
||||
engine.useMusic = true;
|
||||
if (engine.useAudio)
|
||||
{
|
||||
if (Mix_PausedMusic() == 1)
|
||||
Mix_ResumeMusic();
|
||||
else
|
||||
Mix_PlayMusic(engine.music, -1);
|
||||
}
|
||||
audio_playMusic("music/through_space.ogg", -1);
|
||||
}
|
||||
|
||||
if (collision(engine.cursor_x + 13, engine.cursor_y + 13, 6, 6, 478, 222, 45, 22))
|
||||
{
|
||||
engine.useMusic = false;
|
||||
if (engine.useAudio)
|
||||
Mix_PauseMusic();
|
||||
audio_haltMusic();
|
||||
}
|
||||
|
||||
if (collision(engine.cursor_x + 13, engine.cursor_y + 13, 6, 6, 417, 272, 45, 22))
|
||||
|
@ -469,8 +462,6 @@ int galaxyMap()
|
|||
|
||||
initSaveSlots();
|
||||
|
||||
loadMusic("music/through_space.ogg");
|
||||
|
||||
loadBackground(systemBackground[currentGame.system]);
|
||||
|
||||
char string[25];
|
||||
|
@ -556,7 +547,7 @@ int galaxyMap()
|
|||
int rtn = 0;
|
||||
|
||||
if ((engine.useAudio) && (engine.useMusic))
|
||||
Mix_PlayMusic(engine.music, -1);
|
||||
audio_playMusic("music/through_space.ogg", -1);
|
||||
|
||||
textObject iconInfo[12];
|
||||
|
||||
|
@ -833,7 +824,7 @@ int galaxyMap()
|
|||
delayFrame();
|
||||
}
|
||||
|
||||
Mix_HaltMusic();
|
||||
audio_haltMusic();
|
||||
SDL_FreeSurface(statsSurface);
|
||||
SDL_FreeSurface(savesSurface);
|
||||
SDL_FreeSurface(optionsSurface);
|
||||
|
|
|
@ -235,7 +235,7 @@ void doInfo()
|
|||
{
|
||||
if ((engine.seconds > 1) && (engine.seconds <= 11) && (engine.minutes == 0))
|
||||
{
|
||||
playSound(SFX_CLOCK);
|
||||
audio_playSound(SFX_CLOCK, screen->w / 2);
|
||||
}
|
||||
|
||||
if (engine.seconds > 0)
|
||||
|
|
|
@ -516,9 +516,7 @@ static char revealHiddenObjectives()
|
|||
aliens[WC_KLINE].y = player.y;
|
||||
aliens[WC_KLINE].flags |= FL_IMMORTAL | FL_NOFIRE;
|
||||
player_setTarget(WC_KLINE);
|
||||
loadMusic("music/last_cyber_dance.ogg");
|
||||
if ((engine.useAudio) && (engine.useMusic))
|
||||
Mix_PlayMusic(engine.music, -1);
|
||||
audio_playMusic("music/last_cyber_dance.ogg", -1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -789,7 +787,7 @@ void missionBriefScreen()
|
|||
textSurface(11, "Power", 25, 570, FONT_WHITE);
|
||||
textSurface(12, "Output", 250, 570, FONT_WHITE);
|
||||
textSurface(13, "Cooler", 485, 570, FONT_WHITE);
|
||||
playRandomTrack();
|
||||
audio_playRandomTrack();
|
||||
|
||||
if (currentGame.area != MAX_MISSIONS - 1)
|
||||
{
|
||||
|
@ -915,7 +913,7 @@ void missionFinishedScreen()
|
|||
if (player.weaponType[1] == W_LASER)
|
||||
player.ammo[1] = 1;
|
||||
|
||||
Mix_HaltMusic();
|
||||
audio_haltMusic();
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -209,7 +209,7 @@ void doPlayer()
|
|||
if ((engine.done == 0) && (engine.gameSection == SECTION_GAME) &&
|
||||
(currentMission.remainingObjectives1 == 0))
|
||||
{
|
||||
playSound(SFX_FLY);
|
||||
audio_playSound(SFX_FLY, screen->w / 2);
|
||||
engine.done = 2;
|
||||
engine.missionCompleteTimer = (SDL_GetTicks() - 1);
|
||||
}
|
||||
|
@ -322,8 +322,8 @@ void doPlayer()
|
|||
aliens[i].flags |= FL_LEAVESECTOR;
|
||||
}
|
||||
|
||||
playSound(SFX_DEATH, player.x);
|
||||
playSound(SFX_EXPLOSION, player.x);
|
||||
audio_playSound(SFX_DEATH, player.x);
|
||||
audio_playSound(SFX_EXPLOSION, player.x);
|
||||
}
|
||||
|
||||
engine.keyState[KEY_UP] = engine.keyState[KEY_DOWN] = engine.keyState[KEY_LEFT] = engine.keyState[KEY_RIGHT] = 0;
|
||||
|
@ -565,7 +565,7 @@ void leaveSector()
|
|||
if (player.x <= -100)
|
||||
{
|
||||
engine.done = 2;
|
||||
playSound(SFX_FLY);
|
||||
audio_playSound(SFX_FLY, screen->w / 2);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -144,38 +144,6 @@ void loadGameGraphics()
|
|||
setWeaponShapes();
|
||||
}
|
||||
|
||||
void loadSound()
|
||||
{
|
||||
sound[SFX_EXPLOSION] = loadSound("sound/explode.ogg");
|
||||
sound[SFX_HIT] = loadSound("sound/explode2.ogg");
|
||||
sound[SFX_DEATH] = loadSound("sound/maledeath.ogg");
|
||||
sound[SFX_MISSILE] = loadSound("sound/missile.ogg");
|
||||
sound[SFX_PLASMA] = loadSound("sound/plasma.ogg");
|
||||
sound[SFX_CLOCK] = loadSound("sound/clock.ogg");
|
||||
sound[SFX_FLY] = loadSound("sound/flyby.ogg");
|
||||
sound[SFX_ENERGYRAY] = loadSound("sound/beamLaser.ogg");
|
||||
sound[SFX_PICKUP] = loadSound("sound/item.ogg");
|
||||
sound[SFX_SHIELDUP] = loadSound("sound/shield.ogg");
|
||||
sound[SFX_CLOAK] = loadSound("sound/cloak.ogg");
|
||||
sound[SFX_DEBRIS] = loadSound("sound/explode3.ogg");
|
||||
sound[SFX_DEBRIS2] = loadSound("sound/explode4.ogg");
|
||||
sound[SFX_LASER] = loadSound("sound/laser.ogg");
|
||||
sound[SFX_PLASMA2] = loadSound("sound/plasma2.ogg");
|
||||
sound[SFX_PLASMA3] = loadSound("sound/plasma3.ogg");
|
||||
}
|
||||
|
||||
void freeSound()
|
||||
{
|
||||
for (int i = 0 ; i < MAX_SOUNDS ; i++)
|
||||
{
|
||||
if (sound[i] != NULL)
|
||||
Mix_FreeChunk(sound[i]);
|
||||
}
|
||||
|
||||
if (engine.music != NULL)
|
||||
Mix_FreeMusic(engine.music);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Custom loading to alter the font color before doing
|
||||
|
|
|
@ -22,8 +22,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
extern void loadBackground(const char *filename);
|
||||
extern void loadGameGraphics();
|
||||
extern void loadSound();
|
||||
extern void freeSound();
|
||||
extern void loadFont();
|
||||
|
||||
#endif
|
||||
|
|
|
@ -244,8 +244,6 @@ struct globalEngineVariables {
|
|||
float smx;
|
||||
float smy;
|
||||
|
||||
Mix_Music *music;
|
||||
|
||||
object *bulletHead;
|
||||
object *bulletTail;
|
||||
object *explosionHead;
|
||||
|
|
|
@ -188,8 +188,6 @@ int doTitle()
|
|||
|
||||
signed char continueSaveSlot = initSaveSlots();
|
||||
|
||||
loadMusic("music/walking_among_androids.ogg");
|
||||
|
||||
loadBackground("gfx/spirit.jpg");
|
||||
|
||||
SDL_Surface *prlogo, *sflogo;
|
||||
|
@ -266,8 +264,7 @@ int doTitle()
|
|||
flushInput();
|
||||
engine.keyState[KEY_FIRE] = engine.keyState[KEY_ALTFIRE] = 0;
|
||||
|
||||
if ((engine.useMusic) && (engine.useAudio))
|
||||
Mix_PlayMusic(engine.music, 1);
|
||||
audio_playMusic("music/walking_among_androids.ogg", 1);
|
||||
|
||||
while (!engine.done)
|
||||
{
|
||||
|
@ -467,14 +464,12 @@ int doTitle()
|
|||
|
||||
if (engine.useMusic)
|
||||
{
|
||||
if (Mix_PausedMusic() == 1)
|
||||
Mix_ResumeMusic();
|
||||
else
|
||||
Mix_PlayMusic(engine.music, 1);
|
||||
audio_playMusic(
|
||||
"music/walking_among_androids.ogg", 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
Mix_PauseMusic();
|
||||
audio_haltMusic();
|
||||
}
|
||||
}
|
||||
else if (selectedOption == 3)
|
||||
|
@ -521,7 +516,7 @@ int doTitle()
|
|||
delayFrame();
|
||||
}
|
||||
|
||||
Mix_HaltMusic();
|
||||
audio_haltMusic();
|
||||
|
||||
SDL_FreeSurface(prlogo);
|
||||
SDL_FreeSurface(sflogo);
|
||||
|
@ -626,8 +621,6 @@ void gameover()
|
|||
engine.keyState[KEY_FIRE] = engine.keyState[KEY_ALTFIRE] = 0;
|
||||
engine.gameSection = SECTION_INTERMISSION;
|
||||
|
||||
loadMusic("music/death.ogg");
|
||||
|
||||
SDL_Surface *gameover = loadImage("gfx/gameover.png");
|
||||
|
||||
clearScreen(black);
|
||||
|
@ -635,11 +628,7 @@ void gameover()
|
|||
clearScreen(black);
|
||||
SDL_Delay(1000);
|
||||
|
||||
if ((engine.useMusic) && (engine.useAudio))
|
||||
{
|
||||
Mix_VolumeMusic(100);
|
||||
Mix_PlayMusic(engine.music, 1);
|
||||
}
|
||||
audio_playMusic("music/death.ogg", 1);
|
||||
|
||||
int x = (screen->w - gameover->w) / 2;
|
||||
int y = (screen->h - gameover->h) / 2;
|
||||
|
@ -667,10 +656,7 @@ void gameover()
|
|||
}
|
||||
|
||||
SDL_FreeSurface(gameover);
|
||||
|
||||
if ((engine.useMusic) && (engine.useAudio))
|
||||
Mix_HaltMusic();
|
||||
|
||||
audio_haltMusic();
|
||||
flushBuffer();
|
||||
}
|
||||
|
||||
|
@ -680,9 +666,6 @@ void doCredits()
|
|||
flushBuffer();
|
||||
freeGraphics();
|
||||
|
||||
if ((engine.useMusic) && (engine.useAudio))
|
||||
loadMusic("music/rise_of_spirit.ogg");
|
||||
|
||||
FILE *fp;
|
||||
int lastCredit = -1;
|
||||
|
||||
|
@ -699,11 +682,7 @@ void doCredits()
|
|||
|
||||
drawBackGround();
|
||||
|
||||
if ((engine.useMusic) && (engine.useAudio))
|
||||
{
|
||||
Mix_VolumeMusic(100);
|
||||
Mix_PlayMusic(engine.music, 1);
|
||||
}
|
||||
audio_playMusic("music/rise_of_spirit.ogg", 1);
|
||||
|
||||
fp = fopen("data/credits.txt", "rb");
|
||||
// FIXME: It would be nice for the size of this array to be determined
|
||||
|
|
Loading…
Reference in New Issue