#include "openal_wrapper.h"
#include "Settings.h"
#include "Input.h"
+#include "Animation.h"
+#include "Awards.h"
using namespace std;
extern int environment;
extern float texscale;
extern Terrain terrain;
-extern OPENAL_SAMPLE *samp[100];
-extern int channels[100];
extern int kTextureSize;
extern float screenwidth,screenheight;
extern float gravity;
extern float slomodelay;
extern bool floatjump;
extern float volume;
-extern Animation animation[animation_count];
extern Light light;
extern float texdetail;
extern GLubyte bloodText[512*512*3];
extern GLubyte wolfbloodText[512*512*3];
-extern float terraindetail;
extern float camerashake;
extern float woozy;
extern float blackout;
extern bool cellophane;
extern bool musictoggle;
extern int difficulty;
-extern Weapons weapons;
-extern Person player[maxplayers];
-extern int numplayers;
extern int bloodtoggle;
extern bool invertmouse;
extern float windvar;
extern bool keyboardfrozen;
extern int netdatanew;
extern bool loadingstuff;
-extern char mapname[256];
extern XYZ windvector;
extern bool debugmode;
static int music1;
extern bool alwaysblur;
extern float gamespeed;
extern bool decals;
-extern bool vblsync;
extern bool immediate;
extern bool velocityblur;
-extern int bonus;
-extern int oldbonus;
-extern float bonusvalue;
-extern float bonustotal;
-extern float bonustime;
-extern float startbonustotal;
extern float tintr,tintg,tintb;
-extern float bonusnum[100];
extern bool skyboxtexture;
extern float skyboxr;
extern float skyboxg;
extern bool canattack;
extern bool cananger;
extern float damagedealt;
-extern float damagetaken;
extern int maptype;
extern int editoractive;
extern int editorpathtype;
extern bool stillloading;
extern bool winfreeze;
-extern int numfalls;
-extern int numflipfail;
-extern int numseen;
-extern int numstaffattack;
-extern int numswordattack;
-extern int numknifeattack;
-extern int numunarmedattack;
-extern int numescaped;
-extern int numflipped;
-extern int numwallflipped;
-extern int numthrowkill;
-extern int numafterkill;
-extern int numreversals;
-extern int numattacks;
-extern int maxalarmed;
-extern int numresponded;
-
-extern int numdialogues;
-extern int numdialogueboxes[max_dialogues];
-extern int dialoguetype[max_dialogues];
-extern int dialogueboxlocation[max_dialogues][max_dialoguelength];
-extern float dialogueboxcolor[max_dialogues][max_dialoguelength][3];
-extern int dialogueboxsound[max_dialogues][max_dialoguelength];
-extern char dialoguetext[max_dialogues][max_dialoguelength][128];
-extern char dialoguename[max_dialogues][max_dialoguelength][64];
-extern XYZ dialoguecamera[max_dialogues][max_dialoguelength];
-extern XYZ participantlocation[max_dialogues][10];
-extern int participantfocus[max_dialogues][max_dialoguelength];
-extern int participantaction[max_dialogues][max_dialoguelength];
-extern float participantrotation[max_dialogues][10];
-extern XYZ participantfacing[max_dialogues][max_dialoguelength][10];
-extern float dialoguecamerarotation[max_dialogues][max_dialoguelength];
-extern float dialoguecamerarotation2[max_dialogues][max_dialoguelength];
-extern int indialogue;
-extern int whichdialogue;
-extern int directing;
-extern float dialoguetime;
-extern int dialoguegonethrough[20];
-
extern bool campaign;
extern float oldgamespeed;
return !strncasecmp(str, pfx, strlen(pfx));
}
-extern OPENAL_STREAM * strm[20];
-extern "C" void PlaySoundEx(int channel, OPENAL_SAMPLE *sptr, OPENAL_DSPUNIT *dsp, signed char startpaused);
-extern "C" void PlayStreamEx(int chan, OPENAL_STREAM *sptr, OPENAL_DSPUNIT *dsp, signed char startpaused);
-
-
static const char *cmd_names[] = {
#define DECLARE_COMMAND(cmd) #cmd " ",
#include "ConsoleCmds.h"
static void ch_map(Game *game, const char *args)
{
- char buf[64];
- snprintf(buf, 63, ":Data:Maps:%s", args);
- game->Loadlevel(buf);
+ game->Loadlevel(args);
game->whichlevel = -2;
campaign = 0;
}
if (!game->AddClothes(buf,0,1,&player[pnum].skeleton.skinText[pnum],&player[pnum].skeleton.skinsize))
return;
- player[pnum].DoMipmaps(5,0,0,player[pnum].skeleton.skinsize,player[pnum].skeleton.skinsize);
+ player[pnum].DoMipmaps();
strcpy(player[pnum].clothes[player[pnum].numclothes],buf);
player[pnum].clothestintr[player[pnum].numclothes]=tintr;
player[pnum].clothestintg[player[pnum].numclothes]=tintg;
directing=0;
indialogue=0;
- float gLoc[3];
- float vel[3];
XYZ temppos;
temppos=player[participantfocus[whichdialogue][indialogue]].coords;
temppos=temppos-viewer;
Normalise(&temppos);
temppos+=viewer;
- gLoc[0]=temppos.x;
- gLoc[1]=temppos.y;
- gLoc[2]=temppos.z;
- vel[0]=0;
- vel[1]=0;
- vel[2]=0;
int whichsoundplay;
whichsoundplay=rabbitchitter;
if(dialogueboxsound[whichdialogue][indialogue]==2)whichsoundplay=rabbitchitter2;
if(dialogueboxsound[whichdialogue][indialogue]==-2)whichsoundplay=firestartsound;
if(dialogueboxsound[whichdialogue][indialogue]==-3)whichsoundplay=consolesuccesssound;
if(dialogueboxsound[whichdialogue][indialogue]==-4)whichsoundplay=consolefailsound;
- PlaySoundEx( whichsoundplay, samp[whichsoundplay], NULL, true);
- OPENAL_3D_SetAttributes(channels[whichsoundplay], gLoc, vel);
- OPENAL_SetVolume(channels[whichsoundplay], 256);
- OPENAL_SetPaused(channels[whichsoundplay], false);
+ emit_sound_at(whichsoundplay, temppos);
}
static void ch_mapkilleveryone(Game *game, const char *args)
cmd_handlers[i](game, cmd + strlen(cmd_names[i]));
break;
}
- if (i < n_cmds)
- {
- PlaySoundEx(consolesuccesssound, samp[consolesuccesssound], NULL, true);
- OPENAL_SetVolume(channels[consolesuccesssound], 256);
- OPENAL_SetPaused(channels[consolesuccesssound], false);
- }
- else
- {
- PlaySoundEx(consolefailsound, samp[consolefailsound], NULL, true);
- OPENAL_SetVolume(channels[consolefailsound], 256);
- OPENAL_SetPaused(channels[consolefailsound], false);
- }
+ emit_sound_np(i < n_cmds ? consolesuccesssound : consolefailsound);
}
/********************> Tick() <*****/
float temptexdetail;
environment=which;
-/*
- OPENAL_SetPaused(channels[music1snow], true);
- OPENAL_SetPaused(channels[music1grass], true);
- OPENAL_SetPaused(channels[music1desert], true);
- OPENAL_SetPaused(channels[wind], true);
- OPENAL_SetPaused(channels[desertambient], true);
-*/
- OPENAL_SetPaused(channels[stream_music1snow], true);
- OPENAL_SetPaused(channels[stream_music1grass], true);
- OPENAL_SetPaused(channels[stream_music1desert], true);
- OPENAL_SetPaused(channels[stream_wind], true);
- OPENAL_SetPaused(channels[stream_desertambient], true);
+
+ pause_sound(stream_music1snow);
+ pause_sound(stream_music1grass);
+ pause_sound(stream_music1desert);
+ pause_sound(stream_wind);
+ pause_sound(stream_desertambient);
if(environment==snowyenvironment){
windvector=0;
windvector.z=3;
- if(ambientsound){
- //PlaySoundEx( wind, samp[wind], NULL, true);
- PlayStreamEx(stream_wind, strm[stream_wind], 0, true);
- OPENAL_SetPaused(channels[stream_wind], false);
- OPENAL_SetVolume(channels[stream_wind], 256);
- }
+ if(ambientsound)
+ emit_stream_np(stream_wind);
LoadTexture(":Data:Textures:snowtree.png",&objects.treetextureptr,0,1);
LoadTexture(":Data:Textures:bushsnow.png",&objects.bushtextureptr,0,1);
LoadTexture(":Data:Textures:bouldersnow.jpg",&objects.rocktextureptr,1,0);
LoadTexture(":Data:Textures:snowbox.jpg",&objects.boxtextureptr,1,0);
- OPENAL_Sample_Free(samp[footstepsound]);
- OPENAL_Sample_Free(samp[footstepsound2]);
- OPENAL_Sample_Free(samp[footstepsound3]);
- OPENAL_Sample_Free(samp[footstepsound4]);
- samp[footstepsound] = OPENAL_Sample_Load(OPENAL_FREE, ConvertFileName(":Data:Sounds:footstepsnow1.ogg"), OPENAL_HW3D, 0, 0);
- samp[footstepsound2] = OPENAL_Sample_Load(OPENAL_FREE, ConvertFileName(":Data:Sounds:footstepsnow2.ogg"), OPENAL_HW3D, 0, 0);
- samp[footstepsound3] = OPENAL_Sample_Load(OPENAL_FREE, ConvertFileName(":Data:Sounds:footstepstone1.ogg"), OPENAL_HW3D, 0, 0);
- samp[footstepsound4] = OPENAL_Sample_Load(OPENAL_FREE, ConvertFileName(":Data:Sounds:footstepstone2.ogg"), OPENAL_HW3D, 0, 0);
- OPENAL_Sample_SetMinMaxDistance(samp[footstepsound], 4.0f, 1000.0f);
- OPENAL_Sample_SetMinMaxDistance(samp[footstepsound2], 4.0f, 1000.0f);
- OPENAL_Sample_SetMinMaxDistance(samp[footstepsound3], 4.0f, 1000.0f);
- OPENAL_Sample_SetMinMaxDistance(samp[footstepsound4], 4.0f, 1000.0f);
+ footstepsound = footstepsn1;
+ footstepsound2 = footstepsn2;
+ footstepsound3 = footstepst1;
+ footstepsound4 = footstepst2;
LoadTexture(":Data:Textures:snow.jpg",&terraintexture,1,0);
":Data:Textures:Skybox(snow):Back.jpg",
":Data:Textures:Skybox(snow):Right.jpg",
":Data:Textures:Skybox(snow):Up.jpg",
- ":Data:Textures:Skybox(snow):Down.jpg",
- ":Data:Textures:Skybox(snow):Cloud.jpg",
- ":Data:Textures:Skybox(snow):Reflect.jpg");
+ ":Data:Textures:Skybox(snow):Down.jpg");
LoadTexture(":Data:Textures:desertbox.jpg",&objects.boxtextureptr,1,0);
- if(ambientsound){
- //PlaySoundEx( desertambient, samp[desertambient], NULL, true);
- PlayStreamEx( stream_desertambient, strm[stream_desertambient], NULL, true);
- OPENAL_SetPaused(channels[stream_desertambient], false);
- OPENAL_SetVolume(channels[stream_desertambient], 256);
- }
+ if(ambientsound)
+ emit_stream_np(stream_desertambient);
- OPENAL_Sample_Free(samp[footstepsound]);
- OPENAL_Sample_Free(samp[footstepsound2]);
- OPENAL_Sample_Free(samp[footstepsound3]);
- OPENAL_Sample_Free(samp[footstepsound4]);
- samp[footstepsound] = OPENAL_Sample_Load(OPENAL_FREE, ConvertFileName(":Data:Sounds:footstepsnow1.ogg"), OPENAL_HW3D, 0, 0);
- samp[footstepsound2] = OPENAL_Sample_Load(OPENAL_FREE, ConvertFileName(":Data:Sounds:footstepsnow2.ogg"), OPENAL_HW3D, 0, 0);
- samp[footstepsound3] = OPENAL_Sample_Load(OPENAL_FREE, ConvertFileName(":Data:Sounds:footstepsnow1.ogg"), OPENAL_HW3D, 0, 0);
- samp[footstepsound4] = OPENAL_Sample_Load(OPENAL_FREE, ConvertFileName(":Data:Sounds:footstepsnow2.ogg"), OPENAL_HW3D, 0, 0);
- OPENAL_Sample_SetMinMaxDistance(samp[footstepsound], 4.0f, 1000.0f);
- OPENAL_Sample_SetMinMaxDistance(samp[footstepsound2], 4.0f, 1000.0f);
- OPENAL_Sample_SetMinMaxDistance(samp[footstepsound3], 4.0f, 1000.0f);
- OPENAL_Sample_SetMinMaxDistance(samp[footstepsound4], 4.0f, 1000.0f);
+ footstepsound = footstepsn1;
+ footstepsound2 = footstepsn2;
+ footstepsound3 = footstepsn1;
+ footstepsound4 = footstepsn2;
LoadTexture(":Data:Textures:sand.jpg",&terraintexture,1,0);
":Data:Textures:Skybox(sand):Back.jpg",
":Data:Textures:Skybox(sand):Right.jpg",
":Data:Textures:Skybox(sand):Up.jpg",
- ":Data:Textures:Skybox(sand):Down.jpg",
- ":Data:Textures:Skybox(sand):Cloud.jpg",
- ":Data:Textures:Skybox(sand):Reflect.jpg");
+ ":Data:Textures:Skybox(sand):Down.jpg");
LoadTexture(":Data:Textures:boulder.jpg",&objects.rocktextureptr,1,0);
LoadTexture(":Data:Textures:grassbox.jpg",&objects.boxtextureptr,1,0);
- if(ambientsound){
- PlayStreamEx( stream_wind, strm[stream_wind], NULL, true);
- OPENAL_SetPaused(channels[stream_wind], false);
- OPENAL_SetVolume(channels[stream_wind], 100);
- }
+ if(ambientsound)
+ emit_stream_np(stream_wind, 100.);
- OPENAL_Sample_Free(samp[footstepsound]);
- OPENAL_Sample_Free(samp[footstepsound2]);
- OPENAL_Sample_Free(samp[footstepsound3]);
- OPENAL_Sample_Free(samp[footstepsound4]);
- samp[footstepsound] = OPENAL_Sample_Load(OPENAL_FREE, ConvertFileName(":Data:Sounds:footstepgrass1.ogg"), OPENAL_HW3D, 0, 0);
- samp[footstepsound2] = OPENAL_Sample_Load(OPENAL_FREE, ConvertFileName(":Data:Sounds:footstepgrass2.ogg"), OPENAL_HW3D, 0, 0);
- samp[footstepsound3] = OPENAL_Sample_Load(OPENAL_FREE, ConvertFileName(":Data:Sounds:footstepstone1.ogg"), OPENAL_HW3D, 0, 0);
- samp[footstepsound4] = OPENAL_Sample_Load(OPENAL_FREE, ConvertFileName(":Data:Sounds:footstepstone2.ogg"), OPENAL_HW3D, 0, 0);
- OPENAL_Sample_SetMinMaxDistance(samp[footstepsound], 4.0f, 1000.0f);
- OPENAL_Sample_SetMinMaxDistance(samp[footstepsound2], 4.0f, 1000.0f);
- OPENAL_Sample_SetMinMaxDistance(samp[footstepsound3], 4.0f, 1000.0f);
- OPENAL_Sample_SetMinMaxDistance(samp[footstepsound4], 4.0f, 1000.0f);
+ footstepsound = footstepgr1;
+ footstepsound2 = footstepgr2;
+ footstepsound3 = footstepst1;
+ footstepsound4 = footstepst2;
LoadTexture(":Data:Textures:grassdirt.jpg",&terraintexture,1,0);
":Data:Textures:Skybox(grass):Back.jpg",
":Data:Textures:Skybox(grass):Right.jpg",
":Data:Textures:Skybox(grass):Up.jpg",
- ":Data:Textures:Skybox(grass):Down.jpg",
- ":Data:Textures:Skybox(grass):Cloud.jpg",
- ":Data:Textures:Skybox(grass):Reflect.jpg");
+ ":Data:Textures:Skybox(grass):Down.jpg");
void Game::Loadlevel(int which){
stealthloading=0;
-
- if(which==0)Loadlevel((char *)":Data:Maps:map1");
- else if(which==1)Loadlevel((char *)":Data:Maps:map2");
- else if(which==2)Loadlevel((char *)":Data:Maps:map3");
- else if(which==3)Loadlevel((char *)":Data:Maps:map4");
- else if(which==4)Loadlevel((char *)":Data:Maps:map5");
- else if(which==5)Loadlevel((char *)":Data:Maps:map6");
- else if(which==6)Loadlevel((char *)":Data:Maps:map7");
- else if(which==7)Loadlevel((char *)":Data:Maps:map8");
- else if(which==8)Loadlevel((char *)":Data:Maps:map9");
- else if(which==9)Loadlevel((char *)":Data:Maps:map10");
- else if(which==10)Loadlevel((char *)":Data:Maps:map11");
- else if(which==11)Loadlevel((char *)":Data:Maps:map12");
- else if(which==12)Loadlevel((char *)":Data:Maps:map13");
- else if(which==13)Loadlevel((char *)":Data:Maps:map14");
- else if(which==14)Loadlevel((char *)":Data:Maps:map15");
- else if(which==15)Loadlevel((char *)":Data:Maps:map16");
- else if(which==-1){tutoriallevel=-1;Loadlevel((char *)":Data:Maps:tutorial");}
- else Loadlevel((char *)":Data:Maps:mapsave");
-
whichlevel=which;
+
+ if (which == -1)
+ {
+ tutoriallevel = -1;
+ Loadlevel("tutorial");
+ }
+ else if (which >= 0 && which <= 15)
+ {
+ char buf[32];
+ snprintf(buf, 32, "map%d", which + 1);
+ Loadlevel(buf);
+ }
+ else
+ Loadlevel("mapsave");
}
-void Game::Loadlevel(char *name){
+void Game::Loadlevel(const char *name){
int i,j,k,l,m;
static int oldlevel;
int templength;
float lamefloat;
int lameint;
+ static const char *pfx = ":Data:Maps:";
+ char *buf;
float headprop,legprop,armprop,bodyprop;
if(!firstload){
oldlevel=50;
}
- OPENAL_SetPaused(channels[whooshsound], true);
- OPENAL_SetPaused(channels[stream_firesound], true);
+ pause_sound(whooshsound);
+ pause_sound(stream_firesound);
// Change the map filename into something that is os specific
- char *FixedFN = ConvertFileName(name);
+ buf = (char*) alloca(strlen(pfx) + strlen(name) + 1);
+ sprintf(buf, "%s%s", pfx, name);
+ const char *FixedFN = ConvertFileName(buf);
int mapvers;
FILE *tfile;
tfile=fopen( FixedFN, "rb" );
if(tfile)
{
- OPENAL_SetPaused(channels[stream_firesound], true);
+ pause_sound(stream_firesound);
scoreadded=0;
won=0;
//campaign=0;
- animation[bounceidleanim].Load((char *)":Data:Animations:Idle",middleheight,neutral);
+ animation[bounceidleanim].Load((char *)"Idle",middleheight,neutral);
numdialogues=0;
changedelay=0;
if(console)
{
- PlaySoundEx( consolesuccesssound, samp[consolesuccesssound], NULL, true);
- OPENAL_SetVolume(channels[consolesuccesssound], 256);
- OPENAL_SetPaused(channels[consolesuccesssound], false);
+ emit_sound_np(consolesuccesssound);
freeze=0;
console=0;
}
player[0].creature=rabbittype;
}
- for(i=0;i<max_dialogues;i++)
- {
- for(j=0;j<max_dialoguelength;j++)
- {
- for(k=0;k<128;k++)
- {
- dialoguetext[i][j][k]='\0';
- }
- for(k=0;k<64;k++)
- {
- dialoguename[i][j][k]='\0';
- }
- }
- }
-
player[0].lastattack=-1;
player[0].lastattack2=-1;
player[0].lastattack3=-1;
funpackf(tfile, "Bb", &dialoguetext[k][l][m]);
if(dialoguetext[k][l][m]=='\0')break;
}
+ dialoguetext[k][l][m] = 0;
funpackf(tfile, "Bi",&templength);
if(templength>64||templength<=0)templength=64;
break;
}
}
+ dialoguename[k][l][m] = 0;
funpackf(tfile, "Bf Bf Bf", &dialoguecamera[k][l].x, &dialoguecamera[k][l].y, &dialoguecamera[k][l].z);
funpackf(tfile, "Bi", &participantfocus[k][l]);
funpackf(tfile, "Bi", &participantaction[k][l]);
tintb=player[i].clothestintb[j];
AddClothes((char *)player[i].clothes[j],0,1,&player[i].skeleton.skinText[0],&player[i].skeleton.skinsize);
}
- player[i].DoMipmaps(5,0,0,player[i].skeleton.skinsize,player[i].skeleton.skinsize);
+ player[i].DoMipmaps();
}
player[i].currentanimation=bounceidleanim;
player[i].proportionlegs.z=0;
}
- player[i].tempanimation.Load((char *)":Data:Animations:Tempanim",0,0);
+ player[i].tempanimation.Load((char *)"Tempanim",0,0);
player[i].headmorphness=0;
player[i].targetheadmorphness=1;
if(environment==snowyenvironment)
{
if(ambientsound)
- {
- PlayStreamEx(stream_wind, strm[stream_wind], NULL, true);
- OPENAL_SetPaused(channels[stream_wind], false);
- OPENAL_SetVolume(channels[stream_wind], 256);
- }
+ emit_stream_np(stream_wind);
}
else if(environment==desertenvironment)
{
if(ambientsound)
- {
- //PlaySoundEx(desertambient,
- // samp[desertambient], NULL, true);
- PlayStreamEx(stream_desertambient,
- strm[stream_desertambient], NULL, true);
- OPENAL_SetPaused(channels[stream_desertambient], false);
- OPENAL_SetVolume(channels[stream_desertambient], 256);
- }
+ emit_stream_np(stream_desertambient);
}
else if(environment==grassyenvironment)
{
if(ambientsound)
- {
- //PlaySoundEx(wind, samp[wind], NULL, true);
- PlayStreamEx(stream_wind, strm[stream_wind], NULL, true);
- OPENAL_SetPaused(channels[stream_wind], false);
- OPENAL_SetVolume(channels[stream_wind], 100);
- }
+ emit_stream_np(stream_wind, 100.);
}
oldmusicvolume[0]=0;
oldmusicvolume[1]=0;
if(mainmenu&&musictoggle){
if(mainmenu==1||mainmenu==2||mainmenu==100){
OPENAL_SetFrequency(OPENAL_ALL, 0.001);
- PlayStreamEx( stream_music3, strm[stream_music3], NULL, true);
- OPENAL_SetPaused(channels[stream_music3], false);
- OPENAL_SetVolume(channels[stream_music3], 256);
- OPENAL_SetPaused(channels[music1], true);
+ emit_stream_np(stream_music3);
+ pause_sound(music1);
}
}
if(!mainmenu){
- OPENAL_SetPaused(channels[stream_music3], true);
- OPENAL_SetPaused(channels[music1], false);
+ pause_sound(stream_music3);
+ resume_stream(music1);
}
}
if(mainmenu==3){
if(Input::isKeyDown(SDLK_TAB)&&!minimaptogglekeydown&&tutoriallevel){
if(tutorialstage!=51)
tutorialstagetime=tutorialmaxtime;
- PlaySoundEx( consolefailsound, samp[consolefailsound], NULL, true);
- OPENAL_SetVolume(channels[consolefailsound], 128);
- OPENAL_SetPaused(channels[consolefailsound], false);
+ emit_sound_np(consolefailsound, 128.);
minimaptogglekeydown=1;
}
if(!Input::isKeyDown(SDLK_TAB)){
{
//resume
mainmenu=0;
- OPENAL_SetPaused(channels[stream_music3], true);
- OPENAL_SetPaused(channels[music1], false);
+ pause_sound(stream_music3);
+ resume_stream(music1);
}
}
if(!gameon){
//quit
tryquit=1;
- OPENAL_SetPaused(channels[stream_music3], true);
+ pause_sound(stream_music3);
}
else{
//end game
musictoggle=1-musictoggle;
if(!musictoggle){
- OPENAL_SetPaused(channels[music1], true);
- OPENAL_SetPaused(channels[stream_music2], true);
- OPENAL_SetPaused(channels[stream_music3], true);
+ pause_sound(music1);
+ pause_sound(stream_music2);
+ pause_sound(stream_music3);
for(i=0;i<4;i++){
oldmusicvolume[i]=0;
}
}
- if(musictoggle){
- PlayStreamEx( stream_music3, strm[stream_music3], NULL, true);
- OPENAL_SetPaused(channels[stream_music3], false);
- OPENAL_SetVolume(channels[stream_music3], 256);
- }
+ if(musictoggle)
+ emit_stream_np(stream_music3);
}
if(Input::Button()&&!oldbutton&&selected==9){
invertmouse=1-invertmouse;
mainmenu=0;
gameon=1;
- OPENAL_SetPaused(channels[stream_music3], true);
+ pause_sound(stream_music3);
}
- if(Input::Button()&&!oldbutton&&(selected-7>=accountactive->getCampaignChoicesMade())){//selected>=7&&(selected-7<=campaignnumchoices)){
+ if(Input::Button()&&!oldbutton&&(selected-7>=accountactive->getCampaignChoicesMade())){
fireSound();
flash();
targetlevel=7;
if(firstload) TickOnceAfter();
else LoadStuff();
- for(i=0;i<255;i++){
- mapname[i]='\0';
- }
- mapname[0]=':';
- mapname[1]='D';
- mapname[2]='a';
- mapname[3]='t';
- mapname[4]='a';
- mapname[5]=':';
- mapname[6]='M';
- mapname[7]='a';
- mapname[8]='p';
- mapname[9]='s';
- mapname[10]=':';
- strcat(mapname,campaignmapname[campaignchoicewhich[selected-7-accountactive->getCampaignChoicesMade()]]);
whichchoice=selected-7-accountactive->getCampaignChoicesMade();
visibleloading=1;
stillloading=1;
- Loadlevel(mapname);
+ Loadlevel(campaignmapname[campaignchoicewhich[selected-7-accountactive->getCampaignChoicesMade()]]);
//Loadlevel(campaignmapname[levelorder[selected-7]]);
campaign=1;
mainmenu=0;
gameon=1;
- OPENAL_SetPaused(channels[stream_music3], true);
+ pause_sound(stream_music3);
}
if(Input::Button()&&!oldbutton&&selected==4){
fireSound();
mainmenu=9;
}
}
- if(mainmenu==9){
+ else if(mainmenu==9){
if(Input::Button()&&!oldbutton&&selected<numchallengelevels&&selected>=0&&selected<=accountactive->getProgress()){
fireSound();
mainmenu=0;
gameon=1;
- OPENAL_SetPaused(channels[stream_music3], true);
+ pause_sound(stream_music3);
}
if(Input::Button()&&!oldbutton&&selected==numchallengelevels){
fireSound();
static int oldwinfreeze;
if(winfreeze&&!oldwinfreeze){
OPENAL_SetFrequency(OPENAL_ALL, 0.001);
- PlaySoundEx( consolesuccesssound, samp[consolesuccesssound], NULL, true);
- OPENAL_SetVolume(channels[consolesuccesssound], 256);
- OPENAL_SetPaused(channels[consolesuccesssound], false);
+ emit_sound_np(consolesuccesssound);
}
if(winfreeze==0)oldwinfreeze=winfreeze;
else oldwinfreeze++;
dialoguetime=0;
dialoguegonethrough[i]++;
if(dialogueboxsound[whichdialogue][indialogue]!=0){
- static float gLoc[3];
- static float vel[3];
XYZ temppos;
temppos=player[participantfocus[whichdialogue][indialogue]].coords;
temppos=temppos-viewer;
Normalise(&temppos);
temppos+=viewer;
- gLoc[0]=temppos.x;
- gLoc[1]=temppos.y;
- gLoc[2]=temppos.z;vel[0]=0;
- vel[1]=0;
- vel[2]=0;
int whichsoundplay;
if(dialogueboxsound[whichdialogue][indialogue]==1)whichsoundplay=rabbitchitter;
if(dialogueboxsound[whichdialogue][indialogue]==2)whichsoundplay=rabbitchitter2;
if(dialogueboxsound[whichdialogue][indialogue]==-2)whichsoundplay=firestartsound;
if(dialogueboxsound[whichdialogue][indialogue]==-3)whichsoundplay=consolesuccesssound;
if(dialogueboxsound[whichdialogue][indialogue]==-4)whichsoundplay=consolefailsound;
- PlaySoundEx( whichsoundplay, samp[whichsoundplay], NULL, true);
- OPENAL_3D_SetAttributes(channels[whichsoundplay], gLoc, vel);
- OPENAL_SetVolume(channels[whichsoundplay], 256);
- OPENAL_SetPaused(channels[whichsoundplay], false);
+ emit_sound_at(whichsoundplay, temppos);
}
if(Input::isKeyDown(attackkey))oldbuttondialogue=1;
}
player[1].coords=(temp+temp2)/2;
- float gLoc[3];
- float vel[3];
- gLoc[0]=player[1].coords.x;
- gLoc[1]=player[1].coords.y;
- gLoc[2]=player[1].coords.z;
- vel[0]=0;
- vel[1]=0;
- vel[2]=0;
- PlaySoundEx( fireendsound, samp[fireendsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[fireendsound], gLoc, vel);
- OPENAL_SetVolume(channels[fireendsound], 256);
- OPENAL_SetPaused(channels[fireendsound], false);
+ emit_sound_at(fireendsound, player[1].coords);
for(i=0;i<player[1].skeleton.num_joints;i++){
if(Random()%2==0){
tutorialmaxtime=8;
XYZ temp,temp2;
- float gLoc[3];
- float vel[3];
- gLoc[0]=player[1].coords.x;
- gLoc[1]=player[1].coords.y;
- gLoc[2]=player[1].coords.z;
- vel[0]=0;
- vel[1]=0;
- vel[2]=0;
- PlaySoundEx( fireendsound, samp[fireendsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[fireendsound], gLoc, vel);
- OPENAL_SetVolume(channels[fireendsound], 256);
- OPENAL_SetPaused(channels[fireendsound], false);
+ emit_sound_at(fireendsound, player[1].coords);
for(i=0;i<player[1].skeleton.num_joints;i++){
if(Random()%2==0){
if(tutorialstagetime==tutorialmaxtime-3){
- PlaySoundEx( consolesuccesssound, samp[consolesuccesssound], NULL, true);
- OPENAL_SetVolume(channels[consolesuccesssound], 256);
- OPENAL_SetPaused(channels[consolesuccesssound], false);
+ emit_sound_np(consolesuccesssound);
}
if(tutorialsuccess>=1){
if(tutoriallevel!=1){
if(bonustime==0&&bonus!=solidhit&&bonus!=spinecrusher&&bonus!=tracheotomy&&bonus!=backstab&&bonusvalue>10){
- PlaySoundEx( consolesuccesssound, samp[consolesuccesssound], NULL, true);
- OPENAL_SetVolume(channels[consolesuccesssound], 256);
- OPENAL_SetPaused(channels[consolesuccesssound], false);
+ emit_sound_np(consolesuccesssound);
}
}
else
if(bonustime==0){
- PlaySoundEx( fireendsound, samp[fireendsound], NULL, true);
- OPENAL_SetVolume(channels[fireendsound], 256);
- OPENAL_SetPaused(channels[fireendsound], false);
+ emit_sound_np(fireendsound);
}
if(bonustime==0){
if(bonus!=solidhit&&bonus!=twoxcombo&&bonus!=threexcombo&&bonus!=fourxcombo&&bonus!=megacombo)bonusnum[bonus]++;
player[k].target=0;
player[k].targetanimation=walljumpleftanim;
player[k].targetframe=0;
- float gLoc[3];
- float vel[3];
- gLoc[0]=player[k].coords.x;
- gLoc[1]=player[k].coords.y;
- gLoc[2]=player[k].coords.z;
- vel[0]=0;
- vel[1]=0;
- vel[2]=0;
- PlaySoundEx( movewhooshsound, samp[movewhooshsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[movewhooshsound], gLoc, vel);
- OPENAL_SetVolume(channels[movewhooshsound], 256);
- OPENAL_SetPaused(channels[movewhooshsound], false);
- if(k==0)OPENAL_SetPaused(channels[whooshsound], true);
+ emit_sound_at(movewhooshsound, player[k].coords);
+ if(k==0)pause_sound(whooshsound);
lowpointtarget=DoRotation(objects.model[i].facenormals[whichhit],0,objects.rotation[i],0);
player[k].rotation=-asin(0-lowpointtarget.x);
player[k].target=0;
player[k].targetanimation=walljumprightanim;
player[k].targetframe=0;
- float gLoc[3];
- float vel[3];
- gLoc[0]=player[k].coords.x;
- gLoc[1]=player[k].coords.y;
- gLoc[2]=player[k].coords.z;
- vel[0]=0;
- vel[1]=0;
- vel[2]=0;
- PlaySoundEx( movewhooshsound, samp[movewhooshsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[movewhooshsound], gLoc, vel);
- OPENAL_SetVolume(channels[movewhooshsound], 256);
- OPENAL_SetPaused(channels[movewhooshsound], false);
- if(k==0)OPENAL_SetPaused(channels[whooshsound], true);
+ emit_sound_at(movewhooshsound, player[k].coords);
+ if(k==0)pause_sound(whooshsound);
lowpointtarget=DoRotation(objects.model[i].facenormals[whichhit],0,objects.rotation[i],0);
player[k].rotation=-asin(0-lowpointtarget.x);
player[k].target=0;
player[k].targetanimation=walljumpbackanim;
player[k].targetframe=0;
- float gLoc[3];
- float vel[3];
- gLoc[0]=player[k].coords.x;
- gLoc[1]=player[k].coords.y;
- gLoc[2]=player[k].coords.z;
- vel[0]=0;
- vel[1]=0;
- vel[2]=0;
- PlaySoundEx( movewhooshsound, samp[movewhooshsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[movewhooshsound], gLoc, vel);
- OPENAL_SetVolume(channels[movewhooshsound], 256);
- OPENAL_SetPaused(channels[movewhooshsound], false);
- if(k==0)OPENAL_SetPaused(channels[whooshsound], true);
+ emit_sound_at(movewhooshsound, player[k].coords);
+ if(k==0)pause_sound(whooshsound);
lowpointtarget=DoRotation(objects.model[i].facenormals[whichhit],0,objects.rotation[i],0);
player[k].rotation=-asin(0-lowpointtarget.x);
player[k].target=0;
player[k].targetanimation=walljumpfrontanim;
player[k].targetframe=0;
- float gLoc[3];
- float vel[3];
- gLoc[0]=player[k].coords.x;
- gLoc[1]=player[k].coords.y;
- gLoc[2]=player[k].coords.z;
- vel[0]=0;
- vel[1]=0;
- vel[2]=0;
- PlaySoundEx( movewhooshsound, samp[movewhooshsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[movewhooshsound], gLoc, vel);
- OPENAL_SetVolume(channels[movewhooshsound], 256);
- OPENAL_SetPaused(channels[movewhooshsound], false);
- if(k==0)OPENAL_SetPaused(channels[whooshsound], true);
+ emit_sound_at(movewhooshsound, player[k].coords);
+ if(k==0)pause_sound(whooshsound);
lowpointtarget=DoRotation(objects.model[i].facenormals[whichhit],0,objects.rotation[i],0);
player[k].rotation=-asin(0-lowpointtarget.x);
player[k].onterrain=1;
if(player[k].id==0){
- OPENAL_SetPaused(channels[whooshsound], true);
+ pause_sound(whooshsound);
OPENAL_SetVolume(channels[whooshsound], 0);
}
if((player[k].targetanimation==jumpdownanim||player[k].isFlip())&&!player[k].wasLanding()){
if(player[k].isFlip())player[k].jumppower=-4;
player[k].targetanimation=player[k].getLanding();
- float gLoc[3];
- float vel[3];
- gLoc[0]=player[k].coords.x;
- gLoc[1]=player[k].coords.y;
- gLoc[2]=player[k].coords.z;
- vel[0]=player[k].velocity.x;
- vel[1]=player[k].velocity.y;
- vel[2]=player[k].velocity.z;
- PlaySoundEx( landsound, samp[landsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[landsound], gLoc, vel);
- OPENAL_SetVolume(channels[landsound], 128);
- OPENAL_SetPaused(channels[landsound], false);
+ emit_sound_at(landsound, player[k].coords, 128.);
if(k==0){
envsound[numenvsounds]=player[k].coords;
envsoundvol[numenvsounds]=16;
if(j>10||!player[k].isRun()){
if(player[k].targetanimation==jumpdownanim||player[k].targetanimation==jumpupanim){
- if(k==0)OPENAL_SetPaused(channels[whooshsound], true);
+ if(k==0)pause_sound(whooshsound);
}
- float gLoc[3];
- float vel[3];
- gLoc[0]=player[k].coords.x;
- gLoc[1]=player[k].coords.y;
- gLoc[2]=player[k].coords.z;
- vel[0]=player[k].velocity.x;
- vel[1]=player[k].velocity.y;
- vel[2]=player[k].velocity.z;
- PlaySoundEx( jumpsound, samp[jumpsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[jumpsound], gLoc, vel);
- OPENAL_SetVolume(channels[jumpsound], 128);
- OPENAL_SetPaused(channels[jumpsound], false);
+ emit_sound_at(jumpsound, player[k].coords, 128.);
lowpointtarget=DoRotation(objects.model[i].facenormals[whichhit],0,objects.rotation[i],0);
player[k].rotation=-asin(0-lowpointtarget.x);
player[k].targetframe=0;
player[k].target=0;
- float gLoc[3];
- float vel[3];
- gLoc[0]=player[k].coords.x;
- gLoc[1]=player[k].coords.y;
- gLoc[2]=player[k].coords.z;
- vel[0]=player[k].velocity.x;
- vel[1]=player[k].velocity.y;
- vel[2]=player[k].velocity.z;
- if(k==0){
- PlaySoundEx( whooshsound, samp[whooshsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[whooshsound], gLoc, vel);
- OPENAL_SetVolume(channels[whooshsound], 128);
- OPENAL_SetPaused(channels[whooshsound], false);
- }
+ if(!k)
+ emit_sound_at(whooshsound, player[k].coords, 128.);
}
player[k].velocity.y+=gravity;
}
indialogue++;
if(indialogue<numdialogueboxes[whichdialogue]){
if(dialogueboxsound[whichdialogue][indialogue]!=0){
- static float gLoc[3];
- static float vel[3];
XYZ temppos;
temppos=player[participantfocus[whichdialogue][indialogue]].coords;
temppos=temppos-viewer;
Normalise(&temppos);
temppos+=viewer;
- gLoc[0]=temppos.x;
- gLoc[1]=temppos.y;
- gLoc[2]=temppos.z;vel[0]=0;
- vel[1]=0;
- vel[2]=0;
int whichsoundplay;
if(dialogueboxsound[whichdialogue][indialogue]==1)whichsoundplay=rabbitchitter;
if(dialogueboxsound[whichdialogue][indialogue]==2)whichsoundplay=rabbitchitter2;
if(dialogueboxsound[whichdialogue][indialogue]==-2)whichsoundplay=firestartsound;
if(dialogueboxsound[whichdialogue][indialogue]==-3)whichsoundplay=consolesuccesssound;
if(dialogueboxsound[whichdialogue][indialogue]==-4)whichsoundplay=consolefailsound;
- PlaySoundEx( whichsoundplay, samp[whichsoundplay], NULL, true);
- OPENAL_3D_SetAttributes(channels[whichsoundplay], gLoc, vel);
- OPENAL_SetVolume(channels[whichsoundplay], 256);
- OPENAL_SetPaused(channels[whichsoundplay], false);
+ emit_sound_at(whichsoundplay, temppos);
}
}
}
}
if(!directing){
- OPENAL_SetPaused(channels[whooshsound], true);
+ pause_sound(whooshsound);
viewer=dialoguecamera[whichdialogue][indialogue];
if(viewer.y<terrain.getHeight(viewer.x,viewer.z)+.1){
viewer.y=terrain.getHeight(viewer.x,viewer.z)+.1;
endkeydown=1;
if(indialogue<numdialogueboxes[whichdialogue]){
if(dialogueboxsound[whichdialogue][indialogue]!=0){
- static float gLoc[3];
- static float vel[3];
XYZ temppos;
temppos=player[participantfocus[whichdialogue][indialogue]].coords;
temppos=temppos-viewer;
Normalise(&temppos);
temppos+=viewer;
- gLoc[0]=temppos.x;
- gLoc[1]=temppos.y;
- gLoc[2]=temppos.z;vel[0]=0;
- vel[1]=0;
- vel[2]=0;
int whichsoundplay;
if(dialogueboxsound[whichdialogue][indialogue]==1)whichsoundplay=rabbitchitter;
if(dialogueboxsound[whichdialogue][indialogue]==2)whichsoundplay=rabbitchitter2;
if(dialogueboxsound[whichdialogue][indialogue]==-4)whichsoundplay=consolefailsound;
if(dialogueboxsound[whichdialogue][indialogue]==-6)whichsoundplay=alarmsound;
if(dialogueboxsound[whichdialogue][indialogue]!=-5){
- PlaySoundEx( whichsoundplay, samp[whichsoundplay], NULL, true);
- OPENAL_3D_SetAttributes(channels[whichsoundplay], gLoc, vel);
- OPENAL_SetVolume(channels[whichsoundplay], 256);
- OPENAL_SetPaused(channels[whichsoundplay], false);
+ emit_sound_at(whichsoundplay, temppos);
}
if(dialogueboxsound[whichdialogue][indialogue]==-5){
hotspot[numhotspots]=player[0].coords;
dialoguetime+=multiplier;
- skybox.cloudmove+=multiplier;
hawkrotation+=multiplier*25;
realhawkcoords=0;
realhawkcoords.x=25;
if(hawkcalldelay<=0)
{
- static float gLoc[3];
- static float vel[3];
- gLoc[0]=realhawkcoords.x;
- gLoc[1]=realhawkcoords.y;
- gLoc[2]=realhawkcoords.z;
- vel[0]=0;
- vel[1]=0;
- vel[2]=0;
- PlaySoundEx( hawksound, samp[hawksound], NULL, true);
- OPENAL_3D_SetAttributes(channels[hawksound], gLoc, vel);
- OPENAL_SetVolume(channels[hawksound], 128);
- OPENAL_SetPaused(channels[hawksound], false);
+ emit_sound_at(hawksound, realhawkcoords);
hawkcalldelay=16+abs(Random()%8);
}
tintb=player[closest].clothestintb[i];
AddClothes((char *)player[closest].clothes[i],0,1,&player[closest].skeleton.skinText[0],&player[closest].skeleton.skinsize);
}
- player[closest].DoMipmaps(5,0,0,player[closest].skeleton.skinsize,player[closest].skeleton.skinsize);
+ player[closest].DoMipmaps();
}
detailtogglekeydown=1;
}
Sprite::MakeSprite(cloudsprite, flatfacing2,flatvelocity2*0, .6,0,0, 1, .5);
- float gLoc[3];
- float vel[3];
- gLoc[0]=blah.x;
- gLoc[1]=blah.y;
- gLoc[2]=blah.z;
- vel[0]=0;
- vel[1]=0;
- vel[2]=0;
- PlaySoundEx( splattersound, samp[splattersound], NULL, true);
- OPENAL_3D_SetAttributes(channels[splattersound], gLoc, vel);
- OPENAL_SetVolume(channels[splattersound], 256);
- OPENAL_SetPaused(channels[splattersound], false);
-
- PlaySoundEx( breaksound2, samp[breaksound2], NULL, true);
- OPENAL_3D_SetAttributes(channels[breaksound2], gLoc, vel);
- OPENAL_SetVolume(channels[breaksound2], 100);
- OPENAL_SetPaused(channels[breaksound2], false);
+ emit_sound_at(splattersound, blah);
+ emit_sound_at(breaksound2, blah, 100.);
if(player[closest].skeleton.free==2)player[closest].skeleton.free=0;
player[closest].RagDoll(0);
}
if(closest!=-1){
- float gLoc[3];
- float vel[3];
- gLoc[0]=blah.x;
- gLoc[1]=blah.y;
- gLoc[2]=blah.z;
- vel[0]=0;
- vel[1]=0;
- vel[2]=0;
-
- PlaySoundEx( splattersound, samp[splattersound], NULL, true);
- OPENAL_3D_SetAttributes(channels[splattersound], gLoc, vel);
- OPENAL_SetVolume(channels[splattersound], 256);
- OPENAL_SetPaused(channels[splattersound], false);
-
- PlaySoundEx( breaksound2, samp[breaksound2], NULL, true);
- OPENAL_3D_SetAttributes(channels[breaksound2], gLoc, vel);
- OPENAL_SetVolume(channels[breaksound2], 600);
- OPENAL_SetPaused(channels[breaksound2], false);
+ emit_sound_at(splattersound, blah);
+
+ emit_sound_at(breaksound2, blah);
for(i=0;i<player[closest].skeleton.num_joints; i++){
if(!player[closest].skeleton.free)flatvelocity2=player[closest].velocity;
player[0].CatchFire();
}
if(!player[0].onfire){
- float gLoc[3];
- float vel[3];
- gLoc[0]=player[0].coords.x;
- gLoc[1]=player[0].coords.y;
- gLoc[2]=player[0].coords.z;
- vel[0]=0;
- vel[1]=0;
- vel[2]=0;
- PlaySoundEx( fireendsound, samp[fireendsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[fireendsound], gLoc, vel);
- OPENAL_SetVolume(channels[fireendsound], 256);
- OPENAL_SetPaused(channels[fireendsound], false);
- OPENAL_SetPaused(channels[stream_firesound], true);
+ emit_sound_at(fireendsound, player[0].coords);
+ pause_sound(stream_firesound);
}
slomotogglekeydown=1;
}
player[numplayers].proportionlegs.z=0;
}
- player[numplayers].tempanimation.Load((char *)":Data:Animations:Tempanim",0,0);
+ player[numplayers].tempanimation.Load((char *)"Tempanim",0,0);
player[numplayers].damagetolerance=200;
AddClothes((char *)player[numplayers].clothes[i],0,1,&player[numplayers].skeleton.skinText[0],&player[numplayers].skeleton.skinsize);
}
if(player[numplayers].numclothes){
- player[numplayers].DoMipmaps(5,0,0,player[numplayers].skeleton.skinsize,player[numplayers].skeleton.skinsize);
+ player[numplayers].DoMipmaps();
}
player[numplayers].power=player[0].power;
//player[0].spurt=1;
//player[0].DoDamage(1000);
- float gLoc[3];
- float vel[3];
- gLoc[0]=player[0].coords.x;
- gLoc[1]=player[0].coords.y;
- gLoc[2]=player[0].coords.z;
- vel[0]=player[0].velocity.x;
- vel[1]=player[0].velocity.y;
- vel[2]=player[0].velocity.z;
- PlaySoundEx( whooshsound, samp[whooshsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[whooshsound], gLoc, vel);
- OPENAL_SetVolume(channels[whooshsound], 128);
- OPENAL_SetPaused(channels[whooshsound], false);
- //OPENAL_SetPaused(channels[whooshsound], true);
+ emit_sound_at(whooshsound, player[0].coords, 128.);
texturesizetogglekeydown=1;
}
if(((((findLengthfast(&rotatetarget)>150&&(i!=0&&k!=0))||(findLengthfast(&rotatetarget)>50&&player[0].rabbitkickragdoll/*currentanimation==rabbitkickanim*/&&(i==0||k==0)))&&normaldotproduct(rotatetarget,player[k].coords-player[i].coords)>0)&&((i==0||k==0)||((player[i].skeleton.oldfree==1&&k!=0&&animation[player[k].currentanimation].attack==neutral)||(player[k].skeleton.oldfree==1&&i!=0&&animation[player[i].currentanimation].attack==neutral)||(player[i].isFlip()&&!player[i].skeleton.oldfree&&(i==0||k==0))||(player[k].isFlip()&&!player[k].skeleton.oldfree&&(i==0||k==0))||(i==0||k==0))))||((player[i].targetanimation==jumpupanim||player[i].targetanimation==jumpdownanim||player[i].isFlip())&&(player[k].targetanimation==jumpupanim||player[k].targetanimation==jumpdownanim||player[k].isFlip())&&(i==0||k==0)&&(!player[i].skeleton.oldfree&&!player[k].skeleton.oldfree))){
//If hit by body
if((i!=0||player[i].skeleton.free)&&(k!=0||player[k].skeleton.free)||(animation[player[i].targetanimation].height==highheight&&animation[player[k].targetanimation].height==highheight)){
- static float gLoc[3];
- static float vel[3];
- gLoc[0]=player[i].coords.x;
- gLoc[1]=player[i].coords.y;
- gLoc[2]=player[i].coords.z;
- vel[0]=player[i].velocity.x;
- vel[1]=player[i].velocity.y;
- vel[2]=player[i].velocity.z;
if(tutoriallevel!=1){
- PlaySoundEx( heavyimpactsound, samp[heavyimpactsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[heavyimpactsound], gLoc, vel);
- OPENAL_SetVolume(channels[heavyimpactsound], 256);
- OPENAL_SetPaused(channels[heavyimpactsound], false);
+ emit_sound_at(heavyimpactsound, player[i].coords);
}
//player[i].velocity=player[k].velocity;
//player[k].velocity=player[i].velocity;
player[i].RagDoll(0);
if(player[i].damage>player[i].damagetolerance-findLengthfast(&rotatetarget)/4&&!player[i].dead){
- bonus=aimbonus;
- bonustime=0;
- bonusvalue=150;
+ award_bonus(0, aimbonus);
}
player[i].DoDamage(findLengthfast(&rotatetarget)/4);
player[k].RagDoll(0);
if(player[k].damage>player[k].damagetolerance-findLengthfast(&rotatetarget)/4&&!player[k].dead){
- bonus=aimbonus;
- bonustime=0;
- bonusvalue=150;
+ award_bonus(0, aimbonus); // Huh, again?
}
player[k].DoDamage(findLengthfast(&rotatetarget)/4);
player[i].DoDamage(20);
player[i].RagDoll(0);
player[k].lastcollide=1;
- if(k==0){
- bonus=AboveBonus;
- bonustime=0;
- bonusvalue=50;
- }
+ award_bonus(k, AboveBonus);
}
if(i==0&&k!=0&&player[i].targetanimation==jumpdownanim&&!player[k].isCrouch()&&player[k].targetanimation!=rollanim&&!player[i].skeleton.oldfree&&!player[i].skeleton.free&&player[i].lastcollide<=0&&player[i].velocity.y<-10){
player[k].velocity=player[i].velocity;
player[k].DoDamage(20);
player[k].RagDoll(0);
player[i].lastcollide=1;
- if(i==0){
- bonus=AboveBonus;
- bonustime=0;
- bonusvalue=50;
- }
+ award_bonus(i, AboveBonus);
}
}
}
if((((weapons.velocity[j].x==0&&weapons.velocity[j].y==0&&weapons.velocity[j].z==0)||player[i].aitype==playercontrolled)&&weapons.owner[j]==-1)||(player[i].victim&&weapons.owner[j]==player[i].victim->id))
if(findDistancefastflat(&player[i].coords,&weapons.position[j])<2&&player[i].weaponactive==-1){
if(findDistancefast(&player[i].coords,&weapons.position[j])<1||player[i].victim){
- float gLoc[3];
- float vel[3];
- gLoc[0]=player[i].coords.x;
- gLoc[1]=player[i].coords.y;
- gLoc[2]=player[i].coords.z;
- vel[0]=player[i].velocity.x;
- vel[1]=player[i].velocity.y;
- vel[2]=player[i].velocity.z;
- if(weapons.type[j]!=staff){
- PlaySoundEx( knifedrawsound, samp[knifedrawsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[knifedrawsound], gLoc, vel);
- OPENAL_SetVolume(channels[knifedrawsound], 128);
- OPENAL_SetPaused(channels[knifedrawsound], false);
- }
+ if(weapons.type[j]!=staff)
+ emit_sound_at(knifedrawsound, player[i].coords, 128.);
player[i].weaponactive=0;
weapons.owner[j]=player[i].id;
if(player[i].weaponactive==-1)
if((((weapons.velocity[k].x==0&&weapons.velocity[k].y==0&&weapons.velocity[k].z==0)||player[i].aitype==playercontrolled)&&weapons.owner[k]==-1)||(player[i].victim&&weapons.owner[k]==player[i].victim->id))
if(findDistancefastflat(&player[i].coords,&weapons.position[k])<3&&player[i].weaponactive==-1){
- float gLoc[3];
- float vel[3];
- gLoc[0]=player[i].coords.x;
- gLoc[1]=player[i].coords.y;
- gLoc[2]=player[i].coords.z;
- vel[0]=player[i].velocity.x;
- vel[1]=player[i].velocity.y;
- vel[2]=player[i].velocity.z;
- if(weapons.type[k]!=staff){
- PlaySoundEx( knifedrawsound, samp[knifedrawsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[knifedrawsound], gLoc, vel);
- OPENAL_SetVolume(channels[knifedrawsound], 128);
- OPENAL_SetPaused(channels[knifedrawsound], false);
- }
+ if(weapons.type[k]!=staff)
+ emit_sound_at(knifedrawsound, player[i].coords, 128.);
player[i].weaponactive=0;
weapons.owner[k]=player[i].id;
player[i].hasvictim=1;
int k = player[j].weaponids[0];
if(player[i].hasvictim){
- float gLoc[3];
- float vel[3];
- gLoc[0]=player[i].coords.x;
- gLoc[1]=player[i].coords.y;
- gLoc[2]=player[i].coords.z;
- vel[0]=player[i].velocity.x;
- vel[1]=player[i].velocity.y;
- vel[2]=player[i].velocity.z;
bool fleshstuck;
fleshstuck=0;
if(player[i].victim->weaponstuck!=-1){
}
}
if(!fleshstuck){
- if(weapons.type[k]!=staff){
- PlaySoundEx( knifedrawsound, samp[knifedrawsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[knifedrawsound], gLoc, vel);
- OPENAL_SetVolume(channels[knifedrawsound], 128);
- OPENAL_SetPaused(channels[knifedrawsound], false);
- }
- }
- if(fleshstuck){
- PlaySoundEx( fleshstabremovesound, samp[fleshstabremovesound], NULL, true);
- OPENAL_3D_SetAttributes(channels[fleshstabremovesound], gLoc, vel);
- OPENAL_SetVolume(channels[fleshstabremovesound], 128);
- OPENAL_SetPaused(channels[fleshstabremovesound], false);
+ if(weapons.type[k]!=staff)
+ emit_sound_at(knifedrawsound, player[i].coords, 128.);
}
+ if(fleshstuck)
+ emit_sound_at(fleshstabremovesound, player[i].coords, 128.);
player[i].weaponactive=0;
if(weapons.owner[k]!=-1){
player[i].coords.y+=.2;
player[i].jumppower-=1;
- static float gLoc[3];
- static float vel[3];
- gLoc[0]=player[i].coords.x;
- gLoc[1]=player[i].coords.y;
- gLoc[2]=player[i].coords.z;
- vel[0]=player[i].velocity.x;
- vel[1]=player[i].velocity.y;
- vel[2]=player[i].velocity.z;
-
- if(i==0){
- PlaySoundEx( whooshsound, samp[whooshsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[whooshsound], gLoc, vel);
- OPENAL_SetVolume(channels[whooshsound], 128);
- OPENAL_SetPaused(channels[whooshsound], false);
- }
+ if (!i)
+ emit_sound_at(whooshsound, player[i].coords, 128.);
- PlaySoundEx( jumpsound, samp[jumpsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[jumpsound], gLoc, vel);
- OPENAL_SetVolume(channels[jumpsound], 128);
- OPENAL_SetPaused(channels[jumpsound], false);
+ emit_sound_at(jumpsound, player[i].coords, 128.);
}
if((player[i].isIdle())&&player[i].jumppower>1){
player[i].targetanimation=player[i].getLanding();
for(k=0;k<numplayers;k++){
player[k].DoAnimations();
- player[k].whichpatchx=player[k].coords.x/(terrain.size/subdivision*terrain.scale*terraindetail);
- player[k].whichpatchz=player[k].coords.z/(terrain.size/subdivision*terrain.scale*terraindetail);
+ player[k].whichpatchx=player[k].coords.x/(terrain.size/subdivision*terrain.scale);
+ player[k].whichpatchz=player[k].coords.z/(terrain.size/subdivision*terrain.scale);
}
objects.DoStuff();
OPENAL_StopSound(OPENAL_ALL); // hack...OpenAL renderer isn't stopping music after tutorial goes to level menu...
OPENAL_SetFrequency(OPENAL_ALL, 0.001);
- PlayStreamEx( stream_music3, strm[stream_music3], NULL, true);
- OPENAL_SetPaused(channels[stream_music3], false);
- OPENAL_SetVolume(channels[stream_music3], 256);
+ emit_stream_np(stream_music3);
gameon=0;
mainmenu=5;
}
if(tutorialstage<51)
if(findDistancefast(&temp,&player[0].coords)>=findDistancefast(&temp,&temp2)-1||findDistancefast(&temp3,&player[0].coords)<4){
- float gLoc[3];
- float vel[3];
- gLoc[0]=player[0].coords.x;
- gLoc[1]=player[0].coords.y;
- gLoc[2]=player[0].coords.z;
- vel[0]=0;
- vel[1]=0;
- vel[2]=0;
- PlaySoundEx( fireendsound, samp[fireendsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[fireendsound], gLoc, vel);
- OPENAL_SetVolume(channels[fireendsound], 256);
- OPENAL_SetPaused(channels[fireendsound], false);
+ emit_sound_at(fireendsound, player[0].coords);
player[0].coords=(oldtemp+oldtemp2)/2;
}
if(tutorialstage>=14&&tutorialstage<50)
if(findDistancefast(&temp,&player[1].coords)>=findDistancefast(&temp,&temp2)-1||findDistancefast(&temp3,&player[1].coords)<4){
- float gLoc[3];
- float vel[3];
- gLoc[0]=player[1].coords.x;
- gLoc[1]=player[1].coords.y;
- gLoc[2]=player[1].coords.z;
- vel[0]=0;
- vel[1]=0;
- vel[2]=0;
- PlaySoundEx( fireendsound, samp[fireendsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[fireendsound], gLoc, vel);
- OPENAL_SetVolume(channels[fireendsound], 256);
- OPENAL_SetPaused(channels[fireendsound], false);
+ emit_sound_at(fireendsound, player[1].coords);
for(int i=0;i<player[1].skeleton.num_joints;i++){
if(Random()%2==0){
if(musictoggle){
if(musictype!=oldmusictype&&musictype==stream_music2){
- static float gLoc[3];
- static float vel[3];
- gLoc[0]=cameraloc.x;
- gLoc[1]=cameraloc.y;
- gLoc[2]=cameraloc.z;
- vel[0]=0;
- vel[1]=0;
- vel[2]=0;
- PlaySoundEx( alarmsound, samp[alarmsound], NULL, true);
- OPENAL_SetVolume(channels[alarmsound], 512);
- OPENAL_SetPaused(channels[alarmsound], false);
+ emit_sound_np(alarmsound);
}
}
if(musicvolume[2]>128&&!loading&&!mainmenu)musicvolume[2]=128;
if(musictoggle){
- if(musicvolume[0]>0&&oldmusicvolume[0]<=0){
- PlayStreamEx( music1, strm[music1], NULL, true);
- OPENAL_SetPaused(channels[music1], false);
- }
- if(musicvolume[1]>0&&oldmusicvolume[1]<=0){
- PlayStreamEx( stream_music2, strm[stream_music2], NULL, true);
- OPENAL_SetPaused(channels[stream_music2], false);
- }
- if(musicvolume[2]>0&&oldmusicvolume[2]<=0){
- PlayStreamEx( stream_music3, strm[stream_music3], NULL, true);
- OPENAL_SetPaused(channels[stream_music3], false);
- }
+ if(musicvolume[0]>0&&oldmusicvolume[0]<=0)
+ emit_stream_np(music1, musicvolume[0]);
+ if(musicvolume[1]>0&&oldmusicvolume[1]<=0)
+ emit_stream_np(stream_music2, musicvolume[1]);
+ if(musicvolume[2]>0&&oldmusicvolume[2]<=0)
+ emit_stream_np(stream_music3, musicvolume[2]);
if(musicvolume[0]<=0&&oldmusicvolume[0]>0){
- OPENAL_SetPaused(channels[music1], true);
+ pause_sound(music1);
}
if(musicvolume[1]<=0&&oldmusicvolume[1]>0){
- OPENAL_SetPaused(channels[stream_music2], true);
+ pause_sound(stream_music2);
}
if(musicvolume[2]<=0&&oldmusicvolume[2]>0){
- OPENAL_SetPaused(channels[stream_music3], true);
+ pause_sound(stream_music3);
}
if(musicvolume[0]!=oldmusicvolume[0]){
oldmusicvolume[i]=musicvolume[i];
}
} else {
- OPENAL_SetPaused(channels[music1], true);
- OPENAL_SetPaused(channels[stream_music2], true);
- OPENAL_SetPaused(channels[stream_music3], true);
+ pause_sound(music1);
+ pause_sound(stream_music2);
+ pause_sound(stream_music3);
for(i=0;i<4;i++){
oldmusicvolume[i]=0;
fireSound(firestartsound);
- for(i=0;i<255;i++){
- mapname[i]='\0';
- }
- mapname[0]=':';
- mapname[1]='D';
- mapname[2]='a';
- mapname[3]='t';
- mapname[4]='a';
- mapname[5]=':';
- mapname[6]='M';
- mapname[7]='a';
- mapname[8]='p';
- mapname[9]='s';
- mapname[10]=':';
- strcat(mapname,campaignmapname[levelorder[accountactive->getCampaignChoicesMade()]]);//[campaignchoicewhich[whichchoice]]);
- Loadlevel(mapname);
+ Loadlevel(campaignmapname[levelorder[accountactive->getCampaignChoicesMade()]]);
fireSound();
loading=2;
loadtime=0;
targetlevel=7;
- //if(firstload)TickOnceAfter();
if(!firstload)LoadStuff();
- //else {
- for(i=0;i<255;i++){
- mapname[i]='\0';
- }
- mapname[0]=':';
- mapname[1]='D';
- mapname[2]='a';
- mapname[3]='t';
- mapname[4]='a';
- mapname[5]=':';
- mapname[6]='M';
- mapname[7]='a';
- mapname[8]='p';
- mapname[9]='s';
- mapname[10]=':';
-
- strcat(mapname,campaignmapname[campaignchoicewhich[0]]);
whichchoice=0;
visibleloading=1;
stillloading=1;
- Loadlevel(mapname);
+ Loadlevel(campaignmapname[campaignchoicewhich[0]]);
campaign=1;
mainmenu=0;
gameon=1;
- OPENAL_SetPaused(channels[stream_music3], true);
+ pause_sound(stream_music3);
stealthloading=0;
}