X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FWeapons.cpp;h=d72534862a4c95cb96f71a97c90eb1eba5d0af59;hb=227187d94fd5b9582bb8513205f127b3b5078d81;hp=cd35a47ad2b65d1060755a48d2cc7174b8cfc71b;hpb=4692ec6888b3a2eb166fd1693cb583d2c53e346c;p=lugaru.git diff --git a/Source/Weapons.cpp b/Source/Weapons.cpp index cd35a47..d725348 100644 --- a/Source/Weapons.cpp +++ b/Source/Weapons.cpp @@ -23,9 +23,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "Weapons.h" #include "openal_wrapper.h" #include "Animation.h" +#include "Sounds.h" +#include "Game.h" +#include "Awards.h" extern float multiplier; -extern OPENAL_SAMPLE *samp[100]; extern int channels[100]; extern Terrain terrain; extern float gravity; @@ -49,13 +51,7 @@ extern float terraindetail; extern float viewdistance; extern float blackout; extern int difficulty; -extern Person player[maxplayers]; -extern int numplayers; extern bool freeze; -extern int bonus; -extern float bonusvalue; -extern float bonustotal; -extern float bonustime; extern int tutoriallevel; extern int numthrowkill; extern "C" void PlaySoundEx(int channel, OPENAL_SAMPLE *sptr, OPENAL_DSPUNIT *dsp, signed char startpaused); @@ -89,18 +85,7 @@ void Weapons::DoStuff(){ oldowner[i]=owner[i]; } if(damage[i]>=2&&type[i]==staff&&owner[i]!=-1){ - float gLoc[3]; - float vel[3]; - gLoc[0]=tippoint[i].x; - gLoc[1]=tippoint[i].y; - gLoc[2]=tippoint[i].z; - vel[0]=0; - vel[1]=0; - vel[2]=0; - PlaySoundEx( staffbreaksound, samp[staffbreaksound], NULL, true); - OPENAL_3D_SetAttributes(channels[staffbreaksound], gLoc, vel); - OPENAL_SetVolume(channels[staffbreaksound], 256); - OPENAL_SetPaused(channels[staffbreaksound], false); + emit_sound_at(staffbreaksound, tippoint[i]); XYZ tempvel; XYZ speed; //speed=(tippoint[i]-oldtippoint[i])/multiplier/6; @@ -173,18 +158,7 @@ void Weapons::DoStuff(){ bigtilt2[i]=0; bigrotation[i]=0; - float gLoc[3]; - float vel[3]; - gLoc[0]=position[i].x; - gLoc[1]=position[i].y; - gLoc[2]=position[i].z; - vel[0]=0; - vel[1]=0; - vel[2]=0; - PlaySoundEx( knifesheathesound, samp[knifesheathesound], NULL, true); - OPENAL_3D_SetAttributes(channels[knifesheathesound], gLoc, vel); - OPENAL_SetVolume(channels[knifesheathesound], 128); - OPENAL_SetPaused(channels[knifesheathesound], false); + emit_sound_at(knifesheathesound, position[i], 128.); bloody[i]=0; @@ -208,18 +182,7 @@ void Weapons::DoStuff(){ if((player[j].aitype!=attacktypecutoff||abs(Random()%6)==0||(player[j].targetanimation!=backhandspringanim&&player[j].targetanimation!=rollanim&&player[j].targetanimation!=flipanim&&Random()%2==0))&&!missed[i]){ bool caught=0; if((player[j].creature==wolftype&&Random()%3!=0&&player[j].weaponactive==-1&&(player[j].isIdle()||player[j].isRun()||player[j].targetanimation==walkanim))||(player[j].creature==rabbittype&&Random()%2==0&&player[j].aitype==attacktypecutoff&&player[j].weaponactive==-1)){ - float gLoc[3]; - float vel[3]; - gLoc[0]=player[j].coords.x; - gLoc[1]=player[j].coords.y; - gLoc[2]=player[j].coords.z; - vel[0]=player[j].velocity.x; - vel[1]=player[j].velocity.y; - vel[2]=player[j].velocity.z; - PlaySoundEx( knifedrawsound, samp[knifedrawsound], NULL, true); - OPENAL_3D_SetAttributes(channels[knifedrawsound], gLoc, vel); - OPENAL_SetVolume(channels[knifedrawsound], 128); - OPENAL_SetPaused(channels[knifedrawsound], false); + emit_sound_at(knifedrawsound, player[j].coords, 128.); player[j].weaponactive=0; player[j].targetanimation=removeknifeanim; @@ -266,29 +229,12 @@ void Weapons::DoStuff(){ blooddrip[i]=5; } - float gLoc[3]; - float vel[3]; - gLoc[0]=position[i].x; - gLoc[1]=position[i].y; - gLoc[2]=position[i].z; - vel[0]=0; - vel[1]=0; - vel[2]=0; - PlaySoundEx( fleshstabsound, samp[fleshstabsound], NULL, true); - OPENAL_3D_SetAttributes(channels[fleshstabsound], gLoc, vel); - OPENAL_SetVolume(channels[fleshstabsound], 128); - OPENAL_SetPaused(channels[fleshstabsound], false); - - if(animation[player[0].targetanimation].height==highheight){ - bonus=ninja; - bonustime=0; - bonusvalue=60; - } - else{ - bonus=Bullseyebonus; - bonustime=0; - bonusvalue=30; - } + emit_sound_at(fleshstabsound, position[i], 128.); + + if(animation[player[0].targetanimation].height==highheight) + award_bonus(0, ninja); + else + award_bonus(0, Bullseyebonus); } } else missed[i]=1; @@ -335,18 +281,7 @@ void Weapons::DoStuff(){ bigtilt2[i]=0; bigrotation[i]=0; - float gLoc[3]; - float vel[3]; - gLoc[0]=position[i].x; - gLoc[1]=position[i].y; - gLoc[2]=position[i].z; - vel[0]=0; - vel[1]=0; - vel[2]=0; - PlaySoundEx( knifesheathesound, samp[knifesheathesound], NULL, true); - OPENAL_3D_SetAttributes(channels[knifesheathesound], gLoc, vel); - OPENAL_SetVolume(channels[knifesheathesound], 128); - OPENAL_SetPaused(channels[knifesheathesound], false); + emit_sound_at(knifesheathesound, position[i], 128.); XYZ terrainlight; terrainlight=terrain.getLighting(position[i].x,position[i].z); @@ -483,21 +418,10 @@ void Weapons::DoStuff(){ velocity[i]+=bounceness*elasticity; if(findLengthfast(&bounceness)>1){ - float gLoc[3]; - float vel[3]; - //int whichsound=clank1sound+abs(Random()%4); int whichsound; if(type[i]==staff)whichsound=footstepsound3+abs(Random()%2); - if(type[i]!=staff)whichsound=clank1sound+abs(Random()%4);gLoc[0]=position[i].x; - gLoc[1]=position[i].y; - gLoc[2]=position[i].z; - vel[0]=0; - vel[1]=0; - vel[2]=0; - PlaySoundEx( whichsound, samp[whichsound], NULL, true); - OPENAL_3D_SetAttributes(channels[whichsound], gLoc, vel); - OPENAL_SetVolume(channels[whichsound], 128*findLengthfast(&bounceness)); - OPENAL_SetPaused(channels[whichsound], false); + if(type[i]!=staff)whichsound=clank1sound+abs(Random()%4); + emit_sound_at(whichsound, position[i], 128*findLengthfast(&bounceness)); } } start=oldtippoint[i]; @@ -519,22 +443,10 @@ void Weapons::DoStuff(){ tipvelocity[i]+=bounceness*elasticity; if(findLengthfast(&bounceness)>1){ - float gLoc[3]; - float vel[3]; - //int whichsound=clank1sound+abs(Random()%4); int whichsound; if(type[i]==staff)whichsound=footstepsound3+abs(Random()%2); - if(type[i]!=staff)whichsound=clank1sound+abs(Random()%4);gLoc[0]=position[i].x; - gLoc[0]=position[i].x; - gLoc[1]=position[i].y; - gLoc[2]=position[i].z; - vel[0]=0; - vel[1]=0; - vel[2]=0; - PlaySoundEx( whichsound, samp[whichsound], NULL, true); - OPENAL_3D_SetAttributes(channels[whichsound], gLoc, vel); - OPENAL_SetVolume(channels[whichsound], 128*findLengthfast(&bounceness)); - OPENAL_SetPaused(channels[whichsound], false); + if(type[i]!=staff)whichsound=clank1sound+abs(Random()%4); + emit_sound_at(whichsound, position[i], 128*findLengthfast(&bounceness)); } } @@ -562,21 +474,10 @@ void Weapons::DoStuff(){ velocity[i]+=bounceness*elasticity; if(findLengthfast(&bounceness)>1){ - float gLoc[3]; - float vel[3]; - //int whichsound=clank1sound+abs(Random()%4); int whichsound; if(type[i]==staff)whichsound=footstepsound3+abs(Random()%2); - if(type[i]!=staff)whichsound=clank1sound+abs(Random()%4);gLoc[0]=mid.x; - gLoc[1]=mid.y; - gLoc[2]=mid.z; - vel[0]=0; - vel[1]=0; - vel[2]=0; - PlaySoundEx( whichsound, samp[whichsound], NULL, true); - OPENAL_3D_SetAttributes(channels[whichsound], gLoc, vel); - OPENAL_SetVolume(channels[whichsound], 128*findLengthfast(&bounceness)); - OPENAL_SetPaused(channels[whichsound], false); + if(type[i]!=staff)whichsound=clank1sound+abs(Random()%4); + emit_sound_at(whichsound, mid, 128*findLengthfast(&bounceness)); } position[i]+=(mid-oldmid2)*(20/(1+(float)m*10)); } @@ -603,21 +504,10 @@ void Weapons::DoStuff(){ tipvelocity[i]+=bounceness*elasticity; if(findLengthfast(&bounceness)>1){ - float gLoc[3]; - float vel[3]; - //int whichsound=clank1sound+abs(Random()%4); int whichsound; if(type[i]==staff)whichsound=footstepsound3+abs(Random()%2); - if(type[i]!=staff)whichsound=clank1sound+abs(Random()%4);gLoc[0]=mid.x; - gLoc[1]=mid.y; - gLoc[2]=mid.z; - vel[0]=0; - vel[1]=0; - vel[2]=0; - PlaySoundEx( whichsound, samp[whichsound], NULL, true); - OPENAL_3D_SetAttributes(channels[whichsound], gLoc, vel); - OPENAL_SetVolume(channels[whichsound], 128*findLengthfast(&bounceness)); - OPENAL_SetPaused(channels[whichsound], false); + if(type[i]!=staff)whichsound=clank1sound+abs(Random()%4); + emit_sound_at(whichsound, mid, 128*findLengthfast(&bounceness)); } tippoint[i]+=(mid-oldmid2)*(20/(1+(float)m*10)); }