diff --git a/Moose Development/Moose/Core/Radio.lua b/Moose Development/Moose/Core/Radio.lua index a764d6519..4b4eed0ae 100644 --- a/Moose Development/Moose/Core/Radio.lua +++ b/Moose Development/Moose/Core/Radio.lua @@ -30,19 +30,22 @@ RADIO = { Loop = 0, } --- @TODO Manage Trace in all functions below - ---- Create a new RADIO Object. This doesn't broadcast a transmission, though, use @{Radio#RADIO.Broadcast} to actually broadcast --- @param #POSITIONABLE Positionable --- @return self +--- Create a new RADIO Object. This doesn't broadcast a transmission, though, use @{#RADIO.Broadcast} to actually broadcast +-- @param Wrapper.Positionable#POSITIONABLE Positionable +-- @return #RADIO Radio +-- @return #nil If Positionable is invalid -- @usage --- -- If you want to create a RADIO, you probably should use @{Positionable#POSITIONABLE.GetRadio} +-- -- If you want to create a RADIO, you probably should use @{Wrapper.Positionable#POSITIONABLE.GetRadio} instead function RADIO:New(positionable) local self = BASE:Inherit( self, BASE:New() ) self:F(positionable) - - self.Positionable = positionable - return self + if positionable:GetPointVec2() ~= nil then -- It's stupid, but the only way I found to make sure positionable is valid + self.Positionable = positionable + return self + else + self:E({"The passed positionable is invalid, no RADIO created : ", positionable}) + return nil + end end --- Add the 'l10n/DEFAULT/' in the file name if necessary @@ -51,7 +54,7 @@ end -- @return #string FileName Corrected file name -- @usage -- -- internal use only -function RADIO:VerifyFileName(filename) +function RADIO:_VerifyFileName(filename) if filename:find("l10n/DEFAULT/") == nil then filename = "l10n/DEFAULT/" .. filename end @@ -72,7 +75,7 @@ end -- @TODO : Verify the type of passed args and throw errors when necessary function RADIO:NewGenericTransmission(...) self:F2(arg) - self.FileName = RADIO:VerifyFileName(arg[1]) + self.FileName = RADIO:_VerifyFileName(arg[1]) if arg[2] ~= nil then self.Frequency = arg[2] * 1000 -- Convert to Hz end @@ -102,7 +105,7 @@ end -- -- @TODO : Verify the type of passed args and throw errors when necessary function RADIO:NewUnitTransmission(...) self:F2(arg) - self.FileName = RADIO:VerifyFileName(arg[1]) + self.FileName = RADIO:_VerifyFileName(arg[1]) if arg[2] ~= nil then self.Subtitle = arg[2] end diff --git a/Moose Test Missions/RAD - Radio/RAD-000 - Radio Test Mission/RAD-000 - Radio Test Mission.lua b/Moose Test Missions/RAD - Radio/RAD-000 - Radio Test Mission/RAD-000 - Radio Test Mission.lua index 4c0a2bc47..dc01299fa 100644 --- a/Moose Test Missions/RAD - Radio/RAD-000 - Radio Test Mission/RAD-000 - Radio Test Mission.lua +++ b/Moose Test Missions/RAD - Radio/RAD-000 - Radio Test Mission/RAD-000 - Radio Test Mission.lua @@ -1,10 +1,13 @@ -BASE:TraceAll(1) -BASE:TraceLevel(1) +BASE:TraceOnOff(true) +BASE:TraceClass("RADIO") +BASE:TraceLevel(3) + + local Player = UNIT:FindByName("Player") Player:MessageToAll("MainScript Started 2", 10, "") local Static = STATIC:FindByName("CommandCenter") local StaticRadio = Static:GetRadio() -StaticRadio:NewGenericTransmission("Test Voice.ogg", 251000, radio.modulation.AM, 1000) +StaticRadio:NewGenericTransmission("Noise.ogg", 251000, radio.modulation.AM, 1000) StaticRadio:Broadcast() diff --git a/Moose Test Missions/RAD - Radio/RAD-000 - Radio Test Mission/RAD-000 - Radio Test Mission.miz b/Moose Test Missions/RAD - Radio/RAD-000 - Radio Test Mission/RAD-000 - Radio Test Mission.miz index e0b4347a7..ef6172c8c 100644 Binary files a/Moose Test Missions/RAD - Radio/RAD-000 - Radio Test Mission/RAD-000 - Radio Test Mission.miz and b/Moose Test Missions/RAD - Radio/RAD-000 - Radio Test Mission/RAD-000 - Radio Test Mission.miz differ