Index: ps/trunk/binaries/data/mods/public/gui/credits/texts/programming.json =================================================================== --- ps/trunk/binaries/data/mods/public/gui/credits/texts/programming.json +++ ps/trunk/binaries/data/mods/public/gui/credits/texts/programming.json @@ -217,6 +217,7 @@ { "nick": "sacha_vrand", "name": "Sacha Vrand" }, { "nick": "SafaAlfulaij" }, { "name": "Samuel Guarnieri" }, + { "nick": "Samulis", "name": "Sam Gossner" }, { "nick": "Sandarac" }, { "nick": "sanderd17", "name": "Sander Deryckere" }, { "nick": "sathyam", "name": "Sathyam Vellal" }, Index: ps/trunk/source/soundmanager/scripting/SoundGroup.cpp =================================================================== --- ps/trunk/source/soundmanager/scripting/SoundGroup.cpp +++ ps/trunk/source/soundmanager/scripting/SoundGroup.cpp @@ -38,6 +38,10 @@ extern CGame *g_Game; #if CONFIG2_AUDIO + +constexpr ALfloat DEFAULT_ROLLOFF = 0.7f; +constexpr ALfloat MAX_ROLLOFF = 0.9f; + /** * Low randomness, quite-a-lot-faster-than-std::mt19937 random number generator. * It matches the interface of UniformRandomBitGenerator for use in std::shuffle. @@ -143,7 +147,7 @@ else { if (x < 0 || x > screenWidth) - itemRollOff = 0.5; + itemRollOff = MAX_ROLLOFF; answer = radianCap * (x * 2 / screenWidth - 1); } @@ -158,7 +162,7 @@ } else if (y < 0 || y > screenHeight) { - itemRollOff = 0.5; + itemRollOff = MAX_ROLLOFF; } return answer; @@ -175,7 +179,7 @@ return; bool isOnscreen = false; - ALfloat itemRollOff = 0.1f; + ALfloat itemRollOff = DEFAULT_ROLLOFF; float offset = RadiansOffCenter(position, isOnscreen, itemRollOff); if (!isOnscreen && !TestFlag(eDistanceless) && !TestFlag(eOmnipresent)) @@ -198,19 +202,15 @@ if (!TestFlag(eOmnipresent)) { CVector3D origin = g_Game->GetView()->GetCamera()->GetOrientation().GetTranslation(); - float sndDist = origin.Y; float itemDist = (position - origin).Length(); - if (sndDist * 2 < itemDist) - sndDist = itemDist; - if (TestFlag(eDistanceless)) itemRollOff = 0; if (sndData->IsStereo()) LOGWARNING("OpenAL: stereo sounds can't be positioned: %s", sndData->GetFileName().string8()); - hSound->SetLocation(CVector3D(sndDist * sin(offset), 0, -sndDist * cos(offset))); + hSound->SetLocation(CVector3D(itemDist * sin(offset), 0, -itemDist * cos(offset))); hSound->SetRollOff(itemRollOff); }