| 486 | } |
| 487 | |
| 488 | float SoundScene::Find2DWaveOffsetSeconds(const char* nameSubstring) const |
| 489 | { |
| 490 | if (!nameSubstring || !*nameSubstring) |
| 491 | return -1.f; |
| 492 | for (int i = 0; i < _all2DSounds.Size(); i++) |
| 493 | { |
| 494 | IWave* wave = _all2DSounds[i]; |
| 495 | if (!wave) |
| 496 | continue; |
| 497 | // Case-insensitive substring match (DX8/OpenAL names are stored lowercased). |
| 498 | const char* haystack = (const char*)wave->Name(); |
| 499 | if (!haystack) |
| 500 | continue; |
| 501 | if (strstr(haystack, nameSubstring) != nullptr) |
| 502 | return wave->GetCurrentOffsetSeconds(); |
| 503 | } |
| 504 | return -1.f; |
| 505 | } |
| 506 | |
| 507 | IWave* SoundScene::OpenAndPlayOnce2D(const char* filename, float volume, float frequency, bool accomodate) |
| 508 | { |