Just completed the [TRadioBeacon] class. the following in the objects INI file are used to initialise a new radio source in game.
id="TV1"
frequency1=127.00
frequency2=137.00
strength=100
sound1="abstract:radiostation1.ogg"
sound2="abstract:radiostation2.ogg"
type=1
maxrange=50000
action=LADDER
The ID is the radio beacon/station identifier used for NDB/VOR navigation. You can attach two sound files which are played upon tuning in the frequency. Some radio towers have a ladder for climbing up so I added an action called...."ladder" which will invoke a climbing mode (although it's all too easy to fall off the platform.).
Additional fields in game permit rotating/pulsing sources, directional or beam sources and signal decay over distance. The Apache radio and ADF will permit you to tune in a variety of sources to aid navigation or listen to some funky tunes. Due to the abstract file system of Leadwerks which permits the inclusion of HTML sources, web sites can host new content, although only OGG format is supported.
Strength is a percentage of maxrange. The class supports messaging, turning off the transmitter is as easy as sending it a message to set the strength to zero.
This is an awesome concept. I wanted to have something similar to this for my project, but haven't brainstormed how to approach it.
ReplyDeleteYour method sounds really good.
What is it you were interested in? Radios or ladders? Ladders are a real pain, how many games have you played where you were killed by a ladder?
ReplyDeleteWhat I do in ProcessScene(), which is fairly common I think, is check each object as it comes it, if it's a vehicle I create an instance of its class and delete the sandbox reference. Same goes for RadioTowers. Create a new instance of the class, which takes care of game data and loading the model with any specified sounds.
Signals don't really fall-off in a linear fashion, they can have complex shapes, early Apaches had problems picking up signals from their 7-8 o'clock positions. That's beyond the scope of this project though.
I'm glad you like it.