anchor.diff:    if alcMakeContextCurrent(Context) > 1 then begin //valid returns are AL_NO_ERROR=0 and AL_TRUE=1
       fLog.AddToLog('OpenAL warning. Context could not be made current.');
       Application.MessageBox('Context could not be made current. Please refer to Readme.txt for solution','OpenAL warning', MB_OK + MB_ICONEXCLAMATION);
  -    IsSoundInitialized := false;
  +    fIsSoundInitialized := false;
       exit;
     end;
   
     CheckOpenALError;
  -  if not IsSoundInitialized then exit;
  +  if not fIsSoundInitialized then exit;
   
     //Set attenuation model
     alDistanceModel(AL_LINEAR_DISTANCE_CLAMPED);
     fLog.AppendLog('Pre-LoadSFX init',true);
   
  -  alcGetIntegerv(ALDevice, ALC_MONO_SOURCES, 4, @NumMono);
  -  alcGetIntegerv(ALDevice, ALC_STEREO_SOURCES, 4, @NumStereo);
  +  alcGetIntegerv(fALDevice, ALC_MONO_SOURCES, 4, @NumMono);
  +  alcGetIntegerv(fALDevice, ALC_STEREO_SOURCES, 4, @NumStereo);
   
     fLog.AppendLog('ALC_MONO_SOURCES',NumMono);
     fLog.AppendLog('ALC_STEREO_SOURCES',NumStereo);
   
     for i:=1 to MAX_SOUNDS do begin
  -    AlGenBuffers(1, @Sound[i].ALBuffer);
  -    AlGenSources(1, @Sound[i].ALSource);
  +    AlGenBuffers(1, @fSound[i].ALBuffer);
  +    AlGenSources(1, @fSound[i].ALSource);
     end;
   
     CheckOpenALError;
  -  if not IsSoundInitialized then exit;
  +  if not fIsSoundInitialized then exit;
   
     //Set default Listener orientation
  -  Listener.Ori[1]:=0; Listener.Ori[2]:=1; Listener.Ori[3]:=0; //Look-at vector
  -  Listener.Ori[4]:=0; Listener.Ori[5]:=0; Listener.Ori[6]:=1; //Up vector
  -  AlListenerfv(AL_ORIENTATION, @Listener.Ori);
  -  SoundGain := aVolume;
  +  fListener.Ori[1]:=0; fListener.Ori[2]:=1; fListener.Ori[3]:=0; //Look-at vector
  +  fListener.Ori[4]:=0; fListener.Ori[5]:=0; fListener.Ori[6]:=1; //Up vector
  +  AlListenerfv(AL_ORIENTATION, @fListener.Ori);
  +  fSoundGain := aVolume;
   
     fLog.AppendLog('OpenAL init done');
   
  
positive.code: {Update listener position in 3D space}
  procedure TSoundLib.UpdateListener(X,Y:single);
  begin
    if not IsSoundInitialized then exit;
    Listener.Pos[1] := X;
    Listener.Pos[2] := Y;
    Listener.Pos[3] := 12; //Place Listener above the surface
    AlListenerfv(AL_POSITION, @Listener.Pos);
  end;
  
  
  { Update sound gain (global volume for all sounds) }
  procedure TSoundLib.UpdateSoundVolume(Value:single);
  begin
    if not IsSoundInitialized then exit;
    SoundGain := Value;
    //alListenerf(AL_GAIN, SoundGain); //Set in source property
  end;
  
  
  {Wrapper with fewer options for non-attenuated sounds}
  procedure TSoundLib.Play(SoundID:TSoundFX; const Volume:single=1.0);
  begin
    if not IsSoundInitialized then exit;
    Play(SoundID, KMPoint(0,0), false, Volume); //Redirect
  end;
  
  
negative.code:       for k:=0 to 255 do
          if not FileExists(GetWarriorSoundFile(TUnitType(i),s,k,aLocale)) then
          begin
            fWarriorSoundCount[i,s] := k;
            break;
          end;
    fLog.AppendLog('Warrior sounds scanned',true);
  