AssetTypePathMusic.xsd 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="uri:ea.com:eala:asset" xmlns:at="uri:ea.com:eala:asset:type" xmlns:xas="uri:ea.com:eala:asset:schema" targetNamespace="uri:ea.com:eala:asset" elementFormDefault="qualified" xmlns:XmlEdit="http://tempuri.org/XmlEdit.xsd">
  3. <!-- Pathfinder map data loaded into memory -->
  4. <xs:complexType name="PathMusicMapRuntime" xas:typeGroup="Xml">
  5. <xs:complexContent>
  6. <xs:extension base="BaseAssetType">
  7. <xs:sequence />
  8. <xs:attribute name="MapData" type="SageInt" use="required" />
  9. <!-- This will actually be a void * through the magic of xsd2cpp\[platform].config.xml -->
  10. <xs:attribute name="MapDataSize" type="SageInt" use="required" />
  11. </xs:extension>
  12. </xs:complexContent>
  13. </xs:complexType>
  14. <!-- Pathfinder MPF file -->
  15. <xs:complexType name="PathMusicMap" xas:typeGroup="Audio">
  16. <xs:complexContent>
  17. <xs:extension base="BaseAssetType">
  18. <xs:sequence />
  19. <xs:attribute name="File" type="FileReference" use="required" />
  20. </xs:extension>
  21. </xs:complexContent>
  22. </xs:complexType>
  23. <!-- Pathfinder MUS file type -->
  24. <xs:simpleType name="PathMusicTrackType">
  25. <xs:restriction base="xs:string">
  26. <xs:enumeration value="MAIN" />
  27. <xs:enumeration value="OVERLAY_0" />
  28. </xs:restriction>
  29. </xs:simpleType>
  30. <!-- Pathfinder MUS file -->
  31. <xs:complexType name="PathMusicTrack" xas:typeGroup="Audio">
  32. <xs:complexContent>
  33. <xs:extension base="BaseAssetType">
  34. <xs:sequence />
  35. <xs:attribute name="File" type="FileReference" use="required" />
  36. <xs:attribute name="Type" type="PathMusicTrackType" use="required" />
  37. <xs:attribute name="PathfinderTrackHeader" type="FileReference" use="required" />
  38. <!-- Don't fill in the Handle value manually, it's done automatically in BAB -->
  39. <xs:attribute name="Handle" type="SageInt" use="prohibited" />
  40. </xs:extension>
  41. </xs:complexContent>
  42. </xs:complexType>
  43. <!-- The ID of this type is the EventName we send to Pathfinder to trigger music changes -->
  44. <xs:complexType name="PathMusicEvent" xas:typeGroup="Audio">
  45. <xs:complexContent>
  46. <xs:extension base="BaseInheritableAsset">
  47. <xs:sequence />
  48. <xs:attribute name="PathfinderEventHeader" type="FileReference" use="required" />
  49. <xs:attribute name="RestartAlternateEvent" type="PathMusicEventWeakRef" use="optional" />
  50. <xs:attribute name="IsCacheable" type="SageBool" default="true" />
  51. </xs:extension>
  52. </xs:complexContent>
  53. </xs:complexType>
  54. <!-- Pathfinder Event Runtime Data( has the verified hash ) -->
  55. <xs:complexType name="PathMusicEventRuntime" xas:typeGroup="Xml">
  56. <xs:complexContent>
  57. <xs:extension base="BaseAssetType">
  58. <xs:sequence />
  59. <xs:attribute name="EventNameHash" type="SageInt" use="required" />
  60. <xs:attribute name="RestartAlternateEvent" type="PathMusicEventWeakRef" use="optional" />
  61. <xs:attribute name="IsCacheable" type="SageBool" default="true" />
  62. </xs:extension>
  63. </xs:complexContent>
  64. </xs:complexType>
  65. <!-- Although the reference here is "refType"d to PathMusicEvent, in-game it gives you a reference to
  66. a PathMusicEventRuntime, the processed type with the hash. This is done by a template specialization for
  67. AssetRef<PathMusicEvent,PathMusicEvent>. The reason this is necessary is that when other XML structures
  68. use these Refs it needs to be an unprocessed PathMusicEvent, but in-game this needs to boil down to
  69. a PathMusicEventRuntime pointer. -->
  70. <xs:simpleType name="PathMusicEventRef" xas:isRef="true" xas:refType="PathMusicEvent">
  71. <xs:restriction base="AssetReference" />
  72. </xs:simpleType>
  73. <xs:simpleType name="PathMusicEventWeakRef" xas:refType="PathMusicEvent">
  74. <xs:restriction base="WeakReference" />
  75. </xs:simpleType>
  76. <!-- Pathfinder Event Set Catgory -->
  77. <xs:simpleType name="PathMusicEventSetCategory">
  78. <xs:restriction base="xs:string">
  79. <xs:enumeration value="SHELL" />
  80. <xs:enumeration value="SCRIPT" />
  81. </xs:restriction>
  82. </xs:simpleType>
  83. <xs:complexType name="PathMusicEventSet" xas:typeGroup="Xml">
  84. <xs:complexContent>
  85. <xs:extension base="BaseAssetType">
  86. <xs:sequence>
  87. <xs:element name="Event" type="PathMusicEventRef" minOccurs="0" maxOccurs="unbounded" />
  88. </xs:sequence>
  89. <xs:attribute name="Category" type="PathMusicEventSetCategory" use="required" />
  90. </xs:extension>
  91. </xs:complexContent>
  92. </xs:complexType>
  93. <!-- Dynamic Game State -->
  94. <xs:complexType name="PathMusicGameDynamicState" xas:runtimeWrapper="::PathMusicDynamicStateWrap" xas:typeGroup="Xml">
  95. <xs:complexContent>
  96. <xs:extension base="BaseInheritableAsset">
  97. <xs:sequence>
  98. <xs:element name="Transition" type="PathMusicGameDynamicTransitionRef" minOccurs="0" maxOccurs="unbounded" />
  99. </xs:sequence>
  100. <xs:attribute name="EnterEvent" type="PathMusicEventRef" use="optional" />
  101. <xs:attribute name="ExitEvent" type="PathMusicEventRef" use="optional" />
  102. </xs:extension>
  103. </xs:complexContent>
  104. </xs:complexType>
  105. <!-- Corresponding Ref is in Ref.xsd -->
  106. <!-- Pathfinder Dynamic Game State Set Catgory -->
  107. <xs:simpleType name="PathMusicGameDynamicStateSetCategory">
  108. <xs:restriction base="xs:string">
  109. <xs:enumeration value="STANDARD"/>
  110. <xs:enumeration value="SCRIPTED"/>
  111. </xs:restriction>
  112. </xs:simpleType>
  113. <!-- List of Dynamic Game States -->
  114. <xs:complexType name="PathMusicGameDynamicStateSet" xas:typeGroup="Xml">
  115. <xs:complexContent>
  116. <xs:extension base="BaseAssetType">
  117. <xs:sequence>
  118. <xs:element name="State" type="PathMusicGameDynamicStateRef" minOccurs="0" maxOccurs="unbounded" />
  119. </xs:sequence>
  120. <xs:attribute name="Category" type="PathMusicGameDynamicStateSetCategory" use="required" />
  121. </xs:extension>
  122. </xs:complexContent>
  123. </xs:complexType>
  124. <!-- Dynamic Game Transition, from one State to another-->
  125. <xs:complexType name="PathMusicGameDynamicTransition" xas:typeGroup="Xml">
  126. <xs:complexContent>
  127. <xs:extension base="BaseAssetType">
  128. <xs:sequence>
  129. <xs:element name="Condition" type="MusicScriptConditionRef" minOccurs="1" maxOccurs="1" />
  130. </xs:sequence>
  131. <xs:attribute name="DestinationState" type="PathMusicGameDynamicStateWeakRef" use="required"/>
  132. </xs:extension>
  133. </xs:complexContent>
  134. </xs:complexType>
  135. <xs:simpleType name="PathMusicGameDynamicTransitionRef" xas:isRef="true" xas:refType="PathMusicGameDynamicTransition">
  136. <xs:restriction base="AssetReference" />
  137. </xs:simpleType>
  138. </xs:schema>