Summary
When selecting aircraft units (or issuing commands to them), voice lines are not played; in many cases only radio/static SFX can be heard.
This affects the cross-platform builds (Linux and macOS).
Context / Evidence
- Similar symptom appears in fighter19 upstream:
- In the current codebase, the unit-voice pipeline exists and depends on dynamic voice events (
VoiceSelect, VoiceAttackAir, etc.) and AudioEventRTS dispatch.
Relevant Code Areas
ThingTemplate voice mappings (including VoiceSelect and VoiceAttackAir):
GeneralsMD/Code/GameEngine/Source/Common/Thing/ThingTemplate.cpp
GeneralsMD/Code/GameEngine/Include/Common/ThingTemplate.h
- Selection/command path that triggers unit voice:
GeneralsMD/Code/GameEngine/Source/GameClient/MessageStream/CommandXlat.cpp
- OpenAL backend (voice rules, priority, loop/disallow speech):
Core/GameEngineDevice/Source/OpenALAudioDevice/OpenALAudioManager.cpp
Initial Hypotheses
- The correct aircraft voice event is constructed, but dropped by OpenAL manager priority/limit/channel rules.
- Play-portion switching (
PP_Attack/PP_Sound) suppresses the voice portion for some aircraft events.
- Regression inherited from fighter19 upstream in ST_VOICE handling.
- Behavior difference between dynamic air voice events and ground voice events due to incomplete
AudioEventInfo or incorrect fallback.
Reproduction Steps (proposed)
- Run on Linux and macOS with a simple mission/skirmish.
- Produce aircraft units (e.g., Comanche, Raptor, MiG) and select repeatedly.
- Issue move/attack commands and compare to equivalent ground units.
- Verify whether only static plays and voice never starts.
Expected Result
Aircraft selection/command voice lines should play normally (not static-only), consistently on Linux and macOS.
Current Result
Aircraft voice lines are missing or intermittent; static SFX is present.
Investigation Checklist
Acceptance Criteria
Summary
When selecting aircraft units (or issuing commands to them), voice lines are not played; in many cases only radio/static SFX can be heard.
This affects the cross-platform builds (Linux and macOS).
Context / Evidence
VoiceSelect,VoiceAttackAir, etc.) andAudioEventRTSdispatch.Relevant Code Areas
ThingTemplatevoice mappings (includingVoiceSelectandVoiceAttackAir):GeneralsMD/Code/GameEngine/Source/Common/Thing/ThingTemplate.cppGeneralsMD/Code/GameEngine/Include/Common/ThingTemplate.hGeneralsMD/Code/GameEngine/Source/GameClient/MessageStream/CommandXlat.cppCore/GameEngineDevice/Source/OpenALAudioDevice/OpenALAudioManager.cppInitial Hypotheses
PP_Attack/PP_Sound) suppresses the voice portion for some aircraft events.AudioEventInfoor incorrect fallback.Reproduction Steps (proposed)
Expected Result
Aircraft selection/command voice lines should play normally (not static-only), consistently on Linux and macOS.
Current Result
Aircraft voice lines are missing or intermittent; static SFX is present.
Investigation Checklist
CommandXlatto confirm selected voice-event name for aircraft.OpenALAudioManager::playAudioEventand priority/limit checks for ST_VOICE events.AudioEventInfo(type, priority, soundType, control flags) for aircraft voice events.Acceptance Criteria