void CSoundPlayer::PlayPosSample(enum TIngameSoundEffect aEffect,float aVolume, CCoord<int> aPos) { ASSERTPTR( iDynData ); if (aEffect==ESoundEffectNoSound) return; if (iObserver) iObserver->SoundHeard(aEffect,aVolume,aPos); if (!iInitialized) return; if (iDynData->LocalPlayers().size()!=1) { PlaySample(iDynData->LevelRuntime()->IngameData()->SoundFX(aEffect),aVolume,PAN_MIDDLE); return; } int chan=Mix_PlayChannel(-1,iDynData->LevelRuntime()->IngameData()->SoundFX(aEffect),0); Mix_Volume(chan,(int)(aVolume*iFXVolume*127.0)); int left, right; StereoShaper( iDynData->LocalPlayers()[0]->Location(),aPos, left, right ); Mix_SetPanning(chan, left, right ); }
CDynGameData::CDynGameData(CGameGraphicsInterface* aGGI, CGameData* aGameData, CSoundPlayer* aSP, CGameSystem* aGS, COptions* aOptions, int aPlayerAmount): iGameData(aGameData), iGGI(aGGI), iGameSystem(aGS), iOptions(aOptions), iSP(aSP), iAllPlayersDead(false), iUserQuit(false), iShowMap(false), iNextLevel(0), iCompleteTime(0), iDrawFrames(false) { ASSERTPTR( aGGI ); ASSERTPTR( aGameData ); ASSERTPTR( aSP ); ASSERTPTR( aGS ); iMouseOwner=NULL; for(int a=0;a<aPlayerAmount;a++) { iAnyPlayer.push_back(new CPlayer(this,aGGI,aGameData,aSP,aGS,aGS)); } iStatistics = new CGameStatisticsData; iDarkBuf = new CGraphicsBuffer(); NetMsgReset(); iRuntimeData = new CLevelRuntimeData( aGameData, aSP, aGS, this ); iGGI->AddObserver( this ); GraphicsModeChanged(); // update these things for the first time iSP->SetDynData( this ); }
void CSoundPlayer::PlaySample(Mix_Chunk* aEffect,float aVolume, int aPan) { ASSERTPTR( aEffect ); if (!iInitialized) return; int chan; chan=Mix_PlayChannel(-1,aEffect,0); Mix_Volume(chan,(int)(aVolume*iFXVolume*127.0)); if (aPan<0) Mix_SetPanning(chan,255,255+aPan); if (aPan>0) Mix_SetPanning(chan,255-aPan,255); }
/* void Context::respondError(const QString& pError, quint32 pStatusCode) { log()->error(pError); mStatusCode = pStatusCode; mRespondErrors.append(pError); } */ void Context::setSession(Session* pSession) { ASSERTPTR(pSession); mSession = pSession; updateLogHeader(); }