Skip to content

Commit 6189fc1

Browse files
authored
internetradio: add ability to show speaker owner (#526)
Add ability to show speaker owner.
1 parent 5c16021 commit 6189fc1

File tree

4 files changed

+22
-4
lines changed

4 files changed

+22
-4
lines changed

[gameplay]/internetradio/config/CRadioConfig.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ RADIO_TRACK_COLOR = tocolor(150, 50, 150, 255)
1010
RADIO_TRACK_BACKGROUND_COLOR = tocolor(0, 0, 0, 255)
1111

1212
RADIO_TOGGLE_KEY = "F3"
13+
RADIO_SHOW_SPEAKER_OWNER_KEY = "lalt"
1314
RADIO_SHOW_ON_START = false
1415
RADIO_COMMANDS = {"sound", "music", "musica", "song", "radio", "speaker"}
1516
RADIO_SETTINGS_PATH = "settings.json"

[gameplay]/internetradio/handle_radio/CHandleRadio.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ function isObjectSpeaker(objectElement)
283283
local speakerSound = speakerSounds[playerElement]
284284
local speakerDummy = speakerData.speakerDummy
285285

286-
return true, speakerSound, speakerDummy
286+
return true, speakerSound, speakerDummy, playerElement
287287
end
288288
end
289289
end

[gameplay]/internetradio/handle_radio/ShHandleRadio.lua

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,12 @@ function getPlayerFromPartialName(partialName)
7979
return false
8080
end
8181

82+
function removeHex(stringToRemoveHexFrom)
83+
local removedHex = string.gsub(stringToRemoveHexFrom, "#%x%x%x%x%x%x", "")
84+
85+
return removedHex
86+
end
87+
8288
function getOrSetPlayerDelay(playerElement, delayID, delayTime)
8389
local validElement = isElement(playerElement)
8490

[gameplay]/internetradio/track_name/CRadioTrackName.lua

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,11 @@ function checkForNearbySpeakers()
7474

7575
for objectID = 1, #nearbyObjects do
7676
local nearbyObject = nearbyObjects[objectID]
77-
local _, speakerSound, speakerDummy = isObjectSpeaker(nearbyObject)
77+
local _, speakerSound, speakerDummy, speakerOwner = isObjectSpeaker(nearbyObject)
7878
local trackName = getSpeakerTrackName(speakerSound)
7979

8080
if (speakerDummy and trackName) then
81-
NEARBY_SPEAKERS[speakerDummy] = trackName
81+
NEARBY_SPEAKERS[speakerDummy] = {trackName, speakerOwner}
8282
end
8383
end
8484

@@ -89,7 +89,7 @@ setTimer(checkForNearbySpeakers, 1000, 0)
8989
function onClientRenderRadioTrackName()
9090
local cameraX, cameraY, cameraZ = getCameraMatrix()
9191

92-
for nearbySpeaker, trackName in pairs(NEARBY_SPEAKERS) do
92+
for nearbySpeaker, speakerData in pairs(NEARBY_SPEAKERS) do
9393
local speakerX, speakerY, speakerZ = getElementPosition(nearbySpeaker)
9494
local distanceToSpeaker = getDistanceBetweenPoints3D(speakerX, speakerY, speakerZ, cameraX, cameraY, cameraZ)
9595
local closeToSpeaker = (distanceToSpeaker <= RADIO_MAX_SOUND_DISTANCE)
@@ -99,6 +99,17 @@ function onClientRenderRadioTrackName()
9999
local screenX, screenY = getScreenFromWorldPosition(speakerX, speakerY, speakerOffsetZ, 0, false)
100100

101101
if (screenX and screenY) then
102+
local trackName = speakerData[1]
103+
local displaySpeakerOwner = getKeyState(RADIO_SHOW_SPEAKER_OWNER_KEY)
104+
105+
if (displaySpeakerOwner) then
106+
local speakerOwner = speakerData[2]
107+
local speakerName = getPlayerName(speakerOwner)
108+
local speakerPlayerName = removeHex(speakerName)
109+
110+
trackName = "(Owner: "..speakerPlayerName..") "..trackName
111+
end
112+
102113
local textWidth = dxGetTextWidth(trackName, RADIO_TRACK_SCALE, RADIO_TRACK_FONT, trackNameColorCoded)
103114
local textPosX = (screenX - textWidth / 2)
104115
local textBackgroundPosX = (textPosX - 5)

0 commit comments

Comments
 (0)