Files
gtav-src/tools_ng/bin/audio/pipeline/XSL/Radio_GameObjectGenerator.xsl
2025-09-29 00:52:08 +02:00

109 lines
4.7 KiB
XML
Executable File

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" method="xml"/>
<xsl:template match="/">
<xsl:element name="Objects">
<xsl:for-each select="BuiltWaves/Pack[@name='Radio']/BankFolder[@name='Streams']/BankFolder">
<xsl:variable name="Name">
<xsl:value-of select="@name"/>
</xsl:variable>
<xsl:choose>
<!-- Start of advert parsing -->
<xsl:when test="contains(@name,'ADVERTS')">
<xsl:element name="RadioStationTrackList">
<xsl:attribute name="name"><xsl:value-of select="$Name"/></xsl:attribute>
<xsl:attribute name="folder">
<xsl:value-of select="$Name"/>
</xsl:attribute>
<xsl:element name="Category">RADIO_TRACK_CAT_ADVERTS</xsl:element>
<xsl:element name="HistorySpace">10</xsl:element>
<xsl:for-each select="Bank">
<xsl:sort select="@name"/>
<xsl:element name="Track">
<xsl:element name="SoundRef"><xsl:value-of select="$Name"/>_<xsl:value-of select="@name"/>
</xsl:element>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:when>
<!-- End of advert parsing -->
<!-- Start of station parsing -->
<xsl:otherwise>
<xsl:for-each select="BankFolder">
<!-- Make sure we don't process speech banks -->
<xsl:if test="not(contains(@name,'DJ_'))">
<xsl:variable name="BankFolderName">
<xsl:value-of select="@name"/>
</xsl:variable>
<xsl:variable name="TrackListName">
<xsl:value-of select="$Name"/>_<xsl:value-of select="@name"/>
</xsl:variable>
<xsl:element name="RadioStationTrackList">
<xsl:attribute name="name">EP2_<xsl:value-of select="$TrackListName"/></xsl:attribute>
<xsl:attribute name="folder">
<xsl:value-of select="$Name"/>
</xsl:attribute>
<xsl:element name="Category">RADIO_TRACK_CAT_<xsl:value-of select="@name"/></xsl:element>
<xsl:element name="HistorySpace">10</xsl:element>
<xsl:for-each select="Bank">
<xsl:sort select="@name"/>
<!--<xsl:if test="not(contains(@name,'PLACEHOLDER'))">-->
<xsl:element name="Track">
<xsl:element name="SoundRef"><xsl:value-of select="$Name"/>_<xsl:value-of select="@name"/></xsl:element>
<!-- Populate context for weather -->
<xsl:if test="contains($BankFolderName,'WEATHER')">
<xsl:choose>
<xsl:when test="contains(@name,'FOG')">
<xsl:element name="Context">FOG</xsl:element>
</xsl:when>
<xsl:when test="contains(@name,'RAIN')">
<xsl:element name="Context">RAIN</xsl:element>
</xsl:when>
<xsl:when test="contains(@name,'SNOW')">
<xsl:element name="Context">SNOW</xsl:element>
</xsl:when>
<xsl:when test="contains(@name,'SUN')">
<xsl:element name="Context">SUN</xsl:element>
</xsl:when>
<xsl:when test="contains(@name,'THUNDER')">
<xsl:element name="Context">THUNDER</xsl:element>
</xsl:when>
<xsl:when test="contains(@name,'CLOUD')">
<xsl:element name="Context">CLOUD</xsl:element>
</xsl:when>
<xsl:when test="contains(@name,'WIND')">
<xsl:element name="Context">WIND</xsl:element>
</xsl:when>
</xsl:choose>
</xsl:if>
</xsl:element>
<!--</xsl:if>--> <!-- not contains PLACEHOLDER -->
</xsl:for-each>
</xsl:element>
</xsl:if>
</xsl:for-each>
</xsl:otherwise>
<!-- End of station parsing -->
</xsl:choose>
</xsl:for-each>
</xsl:element>
</xsl:template>
</xsl:stylesheet>