uhm
This commit is contained in:
parent
e54122951d
commit
cf479ffe57
1 changed files with 43 additions and 20 deletions
|
@ -1,5 +1,9 @@
|
||||||
#include "Sound.h"
|
#include "Sound.h"
|
||||||
|
|
||||||
|
u8 soundListenerLevel;
|
||||||
|
int soundListenerX;
|
||||||
|
int soundListenerY;
|
||||||
|
|
||||||
void loadSound(Sound * snd, char * filename){
|
void loadSound(Sound * snd, char * filename){
|
||||||
FILE *file = fopen(filename, "rb");
|
FILE *file = fopen(filename, "rb");
|
||||||
if(file != NULL){
|
if(file != NULL){
|
||||||
|
@ -16,8 +20,27 @@ void playSound(Sound snd){
|
||||||
csndPlaySound(8, SOUND_FORMAT_16BIT | SOUND_ONE_SHOT, 44100, 1, 0, snd.buffer, snd.buffer, snd.size);
|
csndPlaySound(8, SOUND_FORMAT_16BIT | SOUND_ONE_SHOT, 44100, 1, 0, snd.buffer, snd.buffer, snd.size);
|
||||||
}
|
}
|
||||||
|
|
||||||
void playMusic(Sound snd){
|
void playSoundPositioned(Sound snd, s8 level, int x, int y) {
|
||||||
csndPlaySound(10, SOUND_FORMAT_16BIT | SOUND_REPEAT, 44100, 1, 0, snd.buffer, snd.buffer, snd.size);
|
if(level != soundListenerLevel) return;
|
||||||
|
int xd = soundListenerX - x;
|
||||||
|
int yd = soundListenerY - y;
|
||||||
|
if (xd * xd + yd * yd > 80 * 80) return;
|
||||||
|
|
||||||
|
csndPlaySound(8, SOUND_FORMAT_16BIT | SOUND_ONE_SHOT, 44100, 1, 0, snd.buffer, snd.buffer, snd.size);
|
||||||
|
}
|
||||||
|
|
||||||
|
void setListenerPosition(s8 level, int x, int y) {
|
||||||
|
soundListenerLevel = level;
|
||||||
|
soundListenerX = x;
|
||||||
|
soundListenerY = y;
|
||||||
|
}
|
||||||
|
|
||||||
|
void playMusic(Sound *snd){
|
||||||
|
static Sound *lastSnd;
|
||||||
|
if(lastSnd==snd) return;
|
||||||
|
lastSnd = snd;
|
||||||
|
|
||||||
|
csndPlaySound(10, SOUND_FORMAT_16BIT | SOUND_REPEAT, 44100, 1, 0, snd->buffer, snd->buffer, snd->size);
|
||||||
}
|
}
|
||||||
|
|
||||||
void stopMusic() {
|
void stopMusic() {
|
||||||
|
@ -29,38 +52,38 @@ void stopMusic() {
|
||||||
void updateMusic(int lvl, int time) {
|
void updateMusic(int lvl, int time) {
|
||||||
switch(lvl) {
|
switch(lvl) {
|
||||||
case 0:
|
case 0:
|
||||||
playMusic(music_floor0);
|
playMusic(&music_floor0);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
if(time>6000 && time<19000) playMusic(music_floor1);
|
if(time>6000 && time<19000) playMusic(&music_floor1);
|
||||||
else playMusic(music_floor1_night);
|
else playMusic(&music_floor1_night);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
case 3:
|
case 3:
|
||||||
playMusic(music_floor23);
|
playMusic(&music_floor23);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
case 5: //TODO - dungeon needs own music
|
case 5: //TODO - dungeon needs own music
|
||||||
playMusic(music_floor4);
|
playMusic(&music_floor4);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void loadSounds() {
|
void loadSounds() {
|
||||||
loadSound(&snd_playerHurt, "romfs:/resources/playerhurt.raw");
|
loadSound(&snd_playerHurt, "resources/playerhurt.raw");
|
||||||
loadSound(&snd_playerDeath, "romfs:/resources/playerdeath.raw");
|
loadSound(&snd_playerDeath, "resources/playerdeath.raw");
|
||||||
loadSound(&snd_monsterHurt, "romsfs:/resources/monsterhurt.raw");
|
loadSound(&snd_monsterHurt, "resources/monsterhurt.raw");
|
||||||
loadSound(&snd_test, "romfs:/resources/test.raw");
|
loadSound(&snd_test, "resources/test.raw");
|
||||||
loadSound(&snd_pickup, "romfs:/resources/pickup.raw");
|
loadSound(&snd_pickup, "resources/pickup.raw");
|
||||||
loadSound(&snd_bossdeath, "romfs:/resources/bossdeath.raw");
|
loadSound(&snd_bossdeath, "resources/bossdeath.raw");
|
||||||
loadSound(&snd_craft, "romfs:/resources/craft.raw");
|
loadSound(&snd_craft, "resources/craft.raw");
|
||||||
|
|
||||||
loadSound(&music_menu, "romfs:/resources/music/menu.raw");
|
loadSound(&music_menu, "resources/music/menu.raw");
|
||||||
loadSound(&music_floor0, "romfs:/resources/music/floor0.raw");
|
loadSound(&music_floor0, "resources/music/floor0.raw");
|
||||||
loadSound(&music_floor1, "romfs:/resources/music/floor1.raw");
|
loadSound(&music_floor1, "resources/music/floor1.raw");
|
||||||
loadSound(&music_floor1_night, "romfs:/resources/music/floor1_night.raw");
|
loadSound(&music_floor1_night, "resources/music/floor1_night.raw");
|
||||||
loadSound(&music_floor23, "romfs:/resources/music/floor2_3.raw");
|
loadSound(&music_floor23, "resources/music/floor2_3.raw");
|
||||||
loadSound(&music_floor4, "romfs:/resources/music/floor4.raw");
|
loadSound(&music_floor4, "resources/music/floor4.raw");
|
||||||
}
|
}
|
||||||
|
|
||||||
void freeSounds(){
|
void freeSounds(){
|
||||||
|
|
Loading…
Add table
Reference in a new issue