module CSounds
    use CIActionReference
    implicit none    
    public
    
    ! Input vars

    ! Output vars
    Type ::SoundsType
        integer :: MP1s
        integer :: MP2s
        integer :: MP3s
        integer :: RTs
        integer :: DwFws
        integer :: DwRevs
        integer :: DwBrakes
        integer :: ChokePumps
        integer :: GasThroughChokes
        integer :: KoomeyAirPumps
        integer :: KoomeyElectricPumps
        logical :: RtGearCrashs
        logical :: DwGearCrashs
        logical :: FloorCollisions
        logical :: CrownCollisions
        logical :: DwClutchs
        logical :: Blowers
        logical :: BlowerMp1s
        logical :: BlowerMp2s
        logical :: BlowerMp3s
        logical :: BlowerRts
        logical :: BlowerDws
        logical :: BlowerStarts
        logical :: BlowerShutdowns
        logical :: ElectricPumps
    end Type SoundsType
    Type(SoundsType)::Sounds
    
    ! procedure (ActionInteger), pointer :: SoundMP1Ptr
    ! procedure (ActionInteger), pointer :: SoundMP2Ptr
    ! procedure (ActionInteger), pointer :: SoundMP3Ptr
    ! procedure (ActionInteger), pointer :: SoundRTPtr
    ! procedure (ActionInteger), pointer :: SoundDwFwPtr
    ! procedure (ActionInteger), pointer :: SoundDwRevPtr
    ! procedure (ActionInteger), pointer :: SoundDwBrakePtr
    ! procedure (ActionInteger), pointer :: SoundChokePumpPtr
    ! procedure (ActionInteger), pointer :: SoundGasThroughChokePtr
    ! procedure (ActionInteger), pointer :: SoundKoomeyAirPumpPtr
    ! procedure (ActionInteger), pointer :: SoundKoomeyElectricPumpPtr
    ! procedure (ActionBool), pointer :: SoundRtGearCrashPtr
    ! procedure (ActionBool), pointer :: SoundDwGearCrashPtr
    ! procedure (ActionBool), pointer :: SoundFloorCollisionPtr
    ! procedure (ActionBool), pointer :: SoundCrownCollisionPtr
    ! procedure (ActionBool), pointer :: SoundDwClutchPtr
    ! procedure (ActionBool), pointer :: SoundBlowerPtr
    ! procedure (ActionBool), pointer :: SoundBlowerMp1Ptr
    ! procedure (ActionBool), pointer :: SoundBlowerMp2Ptr
    ! procedure (ActionBool), pointer :: SoundBlowerMp3Ptr
    ! procedure (ActionBool), pointer :: SoundBlowerRtPtr
    ! procedure (ActionBool), pointer :: SoundBlowerDwPtr
    ! procedure (ActionBool), pointer :: SoundBlowerStartPtr
    ! procedure (ActionBool), pointer :: SoundBlowerShutdownPtr
    ! procedure (ActionBool), pointer :: SoundElectricPumpPtr

    ! private :: SoundMP1Ptr, SoundMP2Ptr, SoundMP3Ptr, SoundRTPtr, SoundDwFwPtr, SoundDwRevPtr,SoundDwBrakePtr,SoundChokePumpPtr,SoundGasThroughChokePtr,SoundKoomeyAirPumpPtr, &
    !     SoundKoomeyElectricPumpPtr, SoundRtGearCrashPtr,SoundDwGearCrashPtr,SoundFloorCollisionPtr,SoundCrownCollisionPtr,SoundDwClutchPtr,SoundBlowerPtr, &
    !     SoundBlowerMp1Ptr, SoundBlowerMp2Ptr,SoundBlowerMp3Ptr,SoundBlowerRtPtr,SoundBlowerDwPtr,SoundBlowerStartPtr,SoundBlowerShutdownPtr,SoundElectricPumpPtr
    
    contains
    
    
    
    
    
    subroutine SetSoundMP1(v)
	    implicit none
	    integer, intent(inout) :: v
	    !if(associated(SoundMP1Ptr)) call SoundMP1Ptr(v)
	    Sounds%MP1s = v
    end subroutine

    subroutine SetSoundMP2(v)
	    implicit none
        integer, intent(inout) :: v
	    !if(associated(SoundMP2Ptr)) call SoundMP2Ptr(v)
	    Sounds%MP2s = v
    end subroutine

    subroutine SetSoundMP3(v)
	    implicit none
        integer, intent(inout) :: v
	    !if(associated(SoundMP3Ptr)) call SoundMP3Ptr(v)
	    Sounds%MP3s = v
    end subroutine

    subroutine SetSoundRT(v)
	    implicit none
        integer, intent(inout) :: v
	    !if(associated(SoundRTPtr)) call SoundRTPtr(v)
	    Sounds%RTs = v
    end subroutine

    subroutine SetSoundDwFw(v)
	    implicit none
        integer, intent(inout) :: v
	    !if(associated(SoundDwFwPtr)) call SoundDwFwPtr(v)
	    Sounds%DwFws = v
    end subroutine

    subroutine SetSoundDwRev(v)
	    implicit none
        integer, intent(inout) :: v
	    !if(associated(SoundDwRevPtr)) call SoundDwRevPtr(v)
	    Sounds%DwRevs = v
    end subroutine

    subroutine SetSoundDwBrake(v)
	    implicit none
        integer, intent(inout) :: v
	    !if(associated(SoundDwBrakePtr)) call SoundDwBrakePtr(v)
	    Sounds%DwBrakes = v
    end subroutine

    subroutine SetSoundChokePump(v)
	    implicit none
        integer, intent(inout) :: v
	    !if(associated(SoundChokePumpPtr)) call SoundChokePumpPtr(v)
	    Sounds%ChokePumps = v
    end subroutine

    subroutine SetSoundGasThroughChoke(v)
	    implicit none
        integer, intent(inout) :: v
	    !if(associated(SoundGasThroughChokePtr)) call SoundGasThroughChokePtr(v)
	    Sounds%GasThroughChokes = v
    end subroutine

    subroutine SetSoundKoomeyAirPump(v)
	    implicit none
        integer, intent(inout) :: v
	    !if(associated(SoundKoomeyAirPumpPtr)) call SoundKoomeyAirPumpPtr(v)
	    Sounds%KoomeyAirPumps = v
    end subroutine

    subroutine SetSoundKoomeyElectricPump(v)
	    implicit none
        integer, intent(inout) :: v
	    !if(associated(SoundKoomeyElectricPumpPtr)) call SoundKoomeyElectricPumpPtr(v)
	    Sounds%KoomeyElectricPumps = v
    end subroutine

    subroutine SetSoundRtGearCrash(v)
	    implicit none
        logical, intent(inout) :: v
	    !if(associated(SoundRtGearCrashPtr)) call SoundRtGearCrashPtr(v)
	    Sounds%RtGearCrashs = v
    end subroutine

    subroutine SetSoundDwGearCrash(v)
	    implicit none
        logical, intent(inout) :: v
	    !if(associated(SoundDwGearCrashPtr)) call SoundDwGearCrashPtr(v)
	    Sounds%DwGearCrashs = v
    end subroutine

    subroutine SetSoundFloorCollision(v)
	    implicit none
        logical, intent(inout) :: v
	    !if(associated(SoundFloorCollisionPtr)) call SoundFloorCollisionPtr(v)
	    Sounds%FloorCollisions = v
    end subroutine

    subroutine SetSoundCrownCollision(v)
	    implicit none
        logical, intent(inout) :: v
	    !if(associated(SoundCrownCollisionPtr)) call SoundCrownCollisionPtr(v)
	    Sounds%CrownCollisions = v
    end subroutine

    subroutine SetSoundDwClutch(v)
	    implicit none
        logical, intent(inout) :: v
	    !if(associated(SoundDwClutchPtr)) call SoundDwClutchPtr(v)
	    Sounds%DwClutchs = v
    end subroutine

    subroutine SetSoundBlower(v)
	    implicit none
        logical, intent(inout) :: v
	    !if(associated(SoundBlowerPtr)) call SoundBlowerPtr(v)
	    Sounds%Blowers = v
    end subroutine
    
    subroutine SetSoundBlowerMP1(v)
	    implicit none
        logical, intent(inout) :: v
	    !if(associated(SoundBlowerMp1Ptr)) call SoundBlowerMp1Ptr(v)
	    Sounds%BlowerMp1s = v
    end subroutine
    
    subroutine SetSoundBlowerMP2(v)
	    implicit none
        logical, intent(inout) :: v
	    !if(associated(SoundBlowerMp2Ptr)) call SoundBlowerMp2Ptr(v)
	    Sounds%BlowerMp2s = v
    end subroutine
    
    subroutine SetSoundBlowerMP3(v)
	    implicit none
        logical, intent(inout) :: v
	    !if(associated(SoundBlowerMp3Ptr)) call SoundBlowerMp3Ptr(v)
	    Sounds%BlowerMp3s = v
    end subroutine
    
    subroutine SetSoundBlowerRT(v)
	    implicit none
        logical, intent(inout) :: v
	    !if(associated(SoundBlowerRtPtr)) call SoundBlowerRtPtr(v)
	    Sounds%BlowerRts = v
    end subroutine
    
    subroutine SetSoundBlowerDW(v)
	    implicit none
        logical, intent(inout) :: v
	    !if(associated(SoundBlowerDwPtr)) call SoundBlowerDwPtr(v)
	    Sounds%BlowerDws = v
    end subroutine
    
    
    subroutine SetSoundBlowerStart(v)
	    implicit none
        logical, intent(inout) :: v
	    !if(associated(SoundBlowerStartPtr)) call SoundBlowerStartPtr(v)
	    Sounds%BlowerStarts = v
    end subroutine

    subroutine SetSoundBlowerShutdown(v)
	    implicit none
        logical, intent(inout) :: v
	    !if(associated(SoundBlowerShutdownPtr)) call SoundBlowerShutdownPtr(v)
	    Sounds%BlowerShutdowns = v
    end subroutine
    
    
    subroutine SetSoundElectricPump(v)
	    implicit none
        logical, intent(inout) :: v
	    !if(associated(SoundElectricPumpPtr)) call SoundElectricPumpPtr(v)
	    Sounds%ElectricPumps = v
    end subroutine
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    ! subroutine SubscribeSoundMP1(v)
    ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeSoundMP1
    ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeSoundMP1' :: SubscribeSoundMP1
	!     implicit none
	!     procedure (ActionInteger) :: v
	!     SoundMP1Ptr => v
    ! end subroutine

    ! subroutine SubscribeSoundMP2(v)
    ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeSoundMP2
    ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeSoundMP2' :: SubscribeSoundMP2
	!     implicit none
	!     procedure (ActionInteger) :: v
	!     SoundMP2Ptr => v
    ! end subroutine

    ! subroutine SubscribeSoundMP3(v)
    ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeSoundMP3
    ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeSoundMP3' :: SubscribeSoundMP3
	!     implicit none
	!     procedure (ActionInteger) :: v
	!     SoundMP3Ptr => v
    ! end subroutine

    ! subroutine SubscribeSoundRT(v)
    ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeSoundRT
    ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeSoundRT' :: SubscribeSoundRT
	!     implicit none
	!     procedure (ActionInteger) :: v
	!     SoundRTPtr => v
    ! end subroutine

    ! subroutine SubscribeSoundDwFw(v)
    ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeSoundDwFw
    ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeSoundDwFw' :: SubscribeSoundDwFw
	!     implicit none
	!     procedure (ActionInteger) :: v
	!     SoundDwFwPtr => v
    ! end subroutine

    ! subroutine SubscribeSoundDwRev(v)
    ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeSoundDwRev
    ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeSoundDwRev' :: SubscribeSoundDwRev
	!     implicit none
	!     procedure (ActionInteger) :: v
	!     SoundDwRevPtr => v
    ! end subroutine

    ! subroutine SubscribeSoundDwBrake(v)
    ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeSoundDwBrake
    ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeSoundDwBrake' :: SubscribeSoundDwBrake
	!     implicit none
	!     procedure (ActionInteger) :: v
	!     SoundDwBrakePtr => v
    ! end subroutine

    ! subroutine SubscribeSoundChokePump(v)
    ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeSoundChokePump
    ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeSoundChokePump' :: SubscribeSoundChokePump
	!     implicit none
	!     procedure (ActionInteger) :: v
	!     SoundChokePumpPtr => v
    ! end subroutine

    ! subroutine SubscribeSoundGasThroughChoke(v)
    ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeSoundGasThroughChoke
    ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeSoundGasThroughChoke' :: SubscribeSoundGasThroughChoke
	!     implicit none
	!     procedure (ActionInteger) :: v
	!     SoundGasThroughChokePtr => v
    ! end subroutine

    ! subroutine SubscribeSoundKoomeyAirPump(v)
    ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeSoundKoomeyAirPump
    ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeSoundKoomeyAirPump' :: SubscribeSoundKoomeyAirPump
	!     implicit none
	!     procedure (ActionInteger) :: v
	!     SoundKoomeyAirPumpPtr => v
    ! end subroutine

    ! subroutine SubscribeSoundKoomeyElectricPump(v)
    ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeSoundKoomeyElectricPump
    ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeSoundKoomeyElectricPump' :: SubscribeSoundKoomeyElectricPump
	!     implicit none
	!     procedure (ActionInteger) :: v
	!     SoundKoomeyElectricPumpPtr => v
    ! end subroutine

    ! subroutine SubscribeSoundRtGearCrash(v)
    ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeSoundRtGearCrash
    ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeSoundRtGearCrash' :: SubscribeSoundRtGearCrash
	!     implicit none
	!     procedure (ActionBool) :: v
	!     SoundRtGearCrashPtr => v
    ! end subroutine

    ! subroutine SubscribeSoundDwGearCrash(v)
    ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeSoundDwGearCrash
    ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeSoundDwGearCrash' :: SubscribeSoundDwGearCrash
	!     implicit none
	!     procedure (ActionBool) :: v
	!     SoundDwGearCrashPtr => v
    ! end subroutine

    ! subroutine SubscribeSoundFloorCollision(v)
    ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeSoundFloorCollision
    ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeSoundFloorCollision' :: SubscribeSoundFloorCollision
	!     implicit none
	!     procedure (ActionBool) :: v
	!     SoundFloorCollisionPtr => v
    ! end subroutine

    ! subroutine SubscribeSoundCrownCollision(v)
    ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeSoundCrownCollision
    ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeSoundCrownCollision' :: SubscribeSoundCrownCollision
	!     implicit none
	!     procedure (ActionBool) :: v
	!     SoundCrownCollisionPtr => v
    ! end subroutine

    ! subroutine SubscribeSoundDwClutch(v)
    ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeSoundDwClutch
    ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeSoundDwClutch' :: SubscribeSoundDwClutch
	!     implicit none
	!     procedure (ActionBool) :: v
	!     SoundDwClutchPtr => v
    ! end subroutine

    ! subroutine SubscribeSoundBlower(v)
    ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeSoundBlower
    ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeSoundBlower' :: SubscribeSoundBlower
	!     implicit none
	!     procedure (ActionBool) :: v
	!     SoundBlowerPtr => v
    ! end subroutine

    ! subroutine SubscribeSoundBlowerMp1(v)
    ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeSoundBlowerMp1
    ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeSoundBlowerMp1' :: SubscribeSoundBlowerMp1
	!     implicit none
	!     procedure (ActionBool) :: v
	!     SoundBlowerMp1Ptr => v
    ! end subroutine

    ! subroutine SubscribeSoundBlowerMp2(v)
    ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeSoundBlowerMp2
    ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeSoundBlowerMp2' :: SubscribeSoundBlowerMp2
	!     implicit none
	!     procedure (ActionBool) :: v
	!     SoundBlowerMp2Ptr => v
    ! end subroutine

    ! subroutine SubscribeSoundBlowerMp3(v)
    ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeSoundBlowerMp3
    ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeSoundBlowerMp3' :: SubscribeSoundBlowerMp3
	!     implicit none
	!     procedure (ActionBool) :: v
	!     SoundBlowerMp3Ptr => v
    ! end subroutine

    ! subroutine SubscribeSoundBlowerRt(v)
    ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeSoundBlowerRt
    ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeSoundBlowerRt' :: SubscribeSoundBlowerRt
	!     implicit none
	!     procedure (ActionBool) :: v
	!     SoundBlowerRtPtr => v
    ! end subroutine

    ! subroutine SubscribeSoundBlowerDw(v)
    ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeSoundBlowerDw
    ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeSoundBlowerDw' :: SubscribeSoundBlowerDw
	!     implicit none
	!     procedure (ActionBool) :: v
	!     SoundBlowerDwPtr => v
    ! end subroutine
    
    ! subroutine SubscribeSoundBlowerStart(v)
    ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeSoundBlowerStart
    ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeSoundBlowerStart' :: SubscribeSoundBlowerStart
	!     implicit none
	!     procedure (ActionBool) :: v
	!     SoundBlowerStartPtr => v
    ! end subroutine

    ! subroutine SubscribeSoundBlowerShutdown(v)
    ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeSoundBlowerShutdown
    ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeSoundBlowerShutdown' :: SubscribeSoundBlowerShutdown
	!     implicit none
	!     procedure (ActionBool) :: v
	!     SoundBlowerShutdownPtr => v
    ! end subroutine

    ! subroutine SubscribeSoundElectricPump(v)
    ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeSoundElectricPump
    ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeSoundElectricPump' :: SubscribeSoundElectricPump
	!     implicit none
	!     procedure (ActionBool) :: v
	!     SoundElectricPumpPtr => v
    ! end subroutine

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    ! ! Input routines

    ! ! Output routines
    ! integer function GetSoundMP1()
    ! !DEC$ ATTRIBUTES DLLEXPORT :: GetSoundMP1
    ! !DEC$ ATTRIBUTES ALIAS: 'GetSoundMP1' :: GetSoundMP1
	!     implicit none
	!     GetSoundMP1 = SoundMP1s
    ! end function

    ! integer function GetSoundMP2()
    ! !DEC$ ATTRIBUTES DLLEXPORT :: GetSoundMP2
    ! !DEC$ ATTRIBUTES ALIAS: 'GetSoundMP2' :: GetSoundMP2
	!     implicit none
	!     GetSoundMP2 = SoundMP2s
    ! end function

    ! integer function GetSoundMP3()
    ! !DEC$ ATTRIBUTES DLLEXPORT :: GetSoundMP3
    ! !DEC$ ATTRIBUTES ALIAS: 'GetSoundMP3' :: GetSoundMP3
	!     implicit none
	!     GetSoundMP3 = SoundMP3s
    ! end function

    ! integer function GetSoundRT()
    ! !DEC$ ATTRIBUTES DLLEXPORT :: GetSoundRT
    ! !DEC$ ATTRIBUTES ALIAS: 'GetSoundRT' :: GetSoundRT
	!     implicit none
	!     GetSoundRT = SoundRTs
    ! end function

    ! integer function GetSoundDwFw()
    ! !DEC$ ATTRIBUTES DLLEXPORT :: GetSoundDwFw
    ! !DEC$ ATTRIBUTES ALIAS: 'GetSoundDwFw' :: GetSoundDwFw
	!     implicit none
	!     GetSoundDwFw = SoundDwFws
    ! end function

    ! integer function GetSoundDwRev()
    ! !DEC$ ATTRIBUTES DLLEXPORT :: GetSoundDwRev
    ! !DEC$ ATTRIBUTES ALIAS: 'GetSoundDwRev' :: GetSoundDwRev
	!     implicit none
	!     GetSoundDwRev = SoundDwRevs
    ! end function

    ! integer function GetSoundDwBrake()
    ! !DEC$ ATTRIBUTES DLLEXPORT :: GetSoundDwBrake
    ! !DEC$ ATTRIBUTES ALIAS: 'GetSoundDwBrake' :: GetSoundDwBrake
	!     implicit none
	!     GetSoundDwBrake = SoundDwBrakes
    ! end function

    ! integer function GetSoundChokePump()
    ! !DEC$ ATTRIBUTES DLLEXPORT :: GetSoundChokePump
    ! !DEC$ ATTRIBUTES ALIAS: 'GetSoundChokePump' :: GetSoundChokePump
	!     implicit none
	!     GetSoundChokePump = SoundChokePumps
    ! end function

    ! integer function GetSoundGasThroughChoke()
    ! !DEC$ ATTRIBUTES DLLEXPORT :: GetSoundGasThroughChoke
    ! !DEC$ ATTRIBUTES ALIAS: 'GetSoundGasThroughChoke' :: GetSoundGasThroughChoke
	!     implicit none
	!     GetSoundGasThroughChoke = SoundGasThroughChokes
    ! end function

    ! integer function GetSoundKoomeyAirPump()
    ! !DEC$ ATTRIBUTES DLLEXPORT :: GetSoundKoomeyAirPump
    ! !DEC$ ATTRIBUTES ALIAS: 'GetSoundKoomeyAirPump' :: GetSoundKoomeyAirPump
	!     implicit none
	!     GetSoundKoomeyAirPump = SoundKoomeyAirPumps
    ! end function

    ! integer function GetSoundKoomeyElectricPump()
    ! !DEC$ ATTRIBUTES DLLEXPORT :: GetSoundKoomeyElectricPump
    ! !DEC$ ATTRIBUTES ALIAS: 'GetSoundKoomeyElectricPump' :: GetSoundKoomeyElectricPump
	!     implicit none
	!     GetSoundKoomeyElectricPump = SoundKoomeyElectricPumps
    ! end function

    ! logical function GetSoundRtGearCrash()
    ! !DEC$ ATTRIBUTES DLLEXPORT :: GetSoundRtGearCrash
    ! !DEC$ ATTRIBUTES ALIAS: 'GetSoundRtGearCrash' :: GetSoundRtGearCrash
	!     implicit none
	!     GetSoundRtGearCrash = SoundRtGearCrashs
    ! end function

    ! logical function GetSoundDwGearCrash()
    ! !DEC$ ATTRIBUTES DLLEXPORT :: GetSoundDwGearCrash
    ! !DEC$ ATTRIBUTES ALIAS: 'GetSoundDwGearCrash' :: GetSoundDwGearCrash
	!     implicit none
	!     GetSoundDwGearCrash = SoundDwGearCrashs
    ! end function

    ! logical function GetSoundFloorCollision()
    ! !DEC$ ATTRIBUTES DLLEXPORT :: GetSoundFloorCollision
    ! !DEC$ ATTRIBUTES ALIAS: 'GetSoundFloorCollision' :: GetSoundFloorCollision
	!     implicit none
	!     GetSoundFloorCollision = SoundFloorCollisions
    ! end function

    ! logical function GetSoundCrownCollision()
    ! !DEC$ ATTRIBUTES DLLEXPORT :: GetSoundCrownCollision
    ! !DEC$ ATTRIBUTES ALIAS: 'GetSoundCrownCollision' :: GetSoundCrownCollision
	!     implicit none
	!     GetSoundCrownCollision = SoundCrownCollisions
    ! end function

    ! logical function GetSoundDwClutch()
    ! !DEC$ ATTRIBUTES DLLEXPORT :: GetSoundDwClutch
    ! !DEC$ ATTRIBUTES ALIAS: 'GetSoundDwClutch' :: GetSoundDwClutch
	!     implicit none
	!     GetSoundDwClutch = SoundDwClutchs
    ! end function

    ! logical function GetSoundBlower()
    ! !DEC$ ATTRIBUTES DLLEXPORT :: GetSoundBlower
    ! !DEC$ ATTRIBUTES ALIAS: 'GetSoundBlower' :: GetSoundBlower
	!     implicit none
	!     GetSoundBlower = SoundBlowers
    ! end function

    ! logical function GetSoundBlowerMp1()
    ! !DEC$ ATTRIBUTES DLLEXPORT :: GetSoundBlowerMp1
    ! !DEC$ ATTRIBUTES ALIAS: 'GetSoundBlowerMp1' :: GetSoundBlowerMp1
	!     implicit none
	!     GetSoundBlowerMp1 = SoundBlowerMp1s
    ! end function

    ! logical function GetSoundBlowerMp2()
    ! !DEC$ ATTRIBUTES DLLEXPORT :: GetSoundBlowerMp2
    ! !DEC$ ATTRIBUTES ALIAS: 'GetSoundBlowerMp2' :: GetSoundBlowerMp2
	!     implicit none
	!     GetSoundBlowerMp2 = SoundBlowerMp2s
    ! end function

    ! logical function GetSoundBlowerMp3()
    ! !DEC$ ATTRIBUTES DLLEXPORT :: GetSoundBlowerMp3
    ! !DEC$ ATTRIBUTES ALIAS: 'GetSoundBlowerMp3' :: GetSoundBlowerMp3
	!     implicit none
	!     GetSoundBlowerMp3 = SoundBlowerMp3s
    ! end function

    ! logical function GetSoundBlowerRt()
    ! !DEC$ ATTRIBUTES DLLEXPORT :: GetSoundBlowerRt
    ! !DEC$ ATTRIBUTES ALIAS: 'GetSoundBlowerRt' :: GetSoundBlowerRt
	!     implicit none
	!     GetSoundBlowerRt = SoundBlowerRts
    ! end function

    ! logical function GetSoundBlowerDw()
    ! !DEC$ ATTRIBUTES DLLEXPORT :: GetSoundBlowerDw
    ! !DEC$ ATTRIBUTES ALIAS: 'GetSoundBlowerDw' :: GetSoundBlowerDw
	!     implicit none
	!     GetSoundBlowerDw = SoundBlowerDws
    ! end function

    ! logical function GetSoundBlowerStart()
    ! !DEC$ ATTRIBUTES DLLEXPORT :: GetSoundBlowerStart
    ! !DEC$ ATTRIBUTES ALIAS: 'GetSoundBlowerStart' :: GetSoundBlowerStart
	!     implicit none
	!     GetSoundBlowerStart = SoundBlowerStarts
    ! end function

    ! logical function GetSoundBlowerShutdown()
    ! !DEC$ ATTRIBUTES DLLEXPORT :: GetSoundBlowerShutdown
    ! !DEC$ ATTRIBUTES ALIAS: 'GetSoundBlowerShutdown' :: GetSoundBlowerShutdown
	!     implicit none
	!     GetSoundBlowerShutdown = SoundBlowerShutdowns
    ! end function

    ! logical function GetSoundElectricPump()
    ! !DEC$ ATTRIBUTES DLLEXPORT :: GetSoundElectricPump
    ! !DEC$ ATTRIBUTES ALIAS: 'GetSoundElectricPump' :: GetSoundElectricPump
	!     implicit none
	!     GetSoundElectricPump = SoundElectricPumps
    ! end function


    
    
    
    
    
    
    
    
    
end module CSounds