ModEnc is currently in Maintenance Mode: Changes could occur at any given moment, without advance warning.

Type: Difference between revisions

From ModEnc
Jump to navigation Jump to search
Nighthawk200 (talk | contribs)
m Template Updated
Testid123 (talk | contribs)
mNo edit summary
 
(10 intermediate revisions by 4 users not shown)
Line 1: Line 1:
:'''''This page is about the usage of <tt>Type=</tt> in relation to sound-files; for the use on Superweapons, see [[Types]].'''''
==For SuperWeaponTypes==
{{Flag
|values={{Values|strings|[[hardcoded]] values[[{{PAGENAME}}#Accepted_values1|{{sup|{{arr|d}}}}]]}}
|types={{Categ|SuperWeaponTypes}}
|ts=yes
|fs=yes
|ets=yes
|ra2=yes
|yr=yes
|rp=yes
}}
This determines the effect of a [[SuperWeaponType]] once it is activated by a player.


==sound(md).ini==
----
{{flag|name=Type|files=sound(md).ini|values=GLOBAL, NORMAL, SCREEN, LOCAL, PLAYER, SHROUD, UNSHROUD|default=NORMAL SCREEN UNSHROUD|types=Game sound sections|ra2=yes|yr=yes|rp=yes}}
:''This is copied from the inclusion-generated Type_I, i.e. it's directly from [[The Guide|DZ's Guide]] and should be rewritten asap.''
This flag controls how and under which circumstances this section's sound is played. According to The Guide, the values set the following:
There are two stages to using a Super Weapon, the first of which is the Type=. The Type= indicates which internal subroutine in the game code to use for the effect of this Super Weapon (since these are special 'one off' effects that otherwise would not occur in game). This subroutine in turn may take one or more of its requirements from the RULES file (thus allowing some limited editing of the effects of that Type=), and in addition these subroutines also require an additional parameter, usually a waypoint (target), which is passed to them via an associated Action=. The Action= is another subroutine that validates that parameter before passing it in a specific way to the Type= (see later). Think of the Type= as being the 'effect' whilst the Action= is the 'delivery method' of the Super Weapon.<br />
*SHROUD – Can be heard only when played under shroud
<br />
*UNSHROUD – Can be heard only when played when not under shroud
Certain Types= will only work with certain Actions= as the way in which that parameter is passed is an important factor in how that Type= may operate, although not all Types= require an Action= as they may simply trigger the whole event by themselves. The Type= label is therefore a special case which allows you to point to a specific routine in the game code, in much the same way as specifying a Locomotor= with a CLSID. The difference here is that the CLSIDs for these subroutines have been given 'labels', as they perform complete functions rather than define behaviours and rules. You must therefore specify a valid and existing label as the parameter for this tag. Unfortunately only the Type= tags that are specified in the RULES file will work - the game is hardcoded only for those effects to be invoked by Super Weapons, however by editing many of the parameters used in those existing ones (such as the warheads, animations and sounds used), you can modify them to a good degree.
*PLAYER – Can be heard only by the player causing this sound event to be played
*LOCAL – Can be heard only at its point of origin and at the distance from its Range=
*SCREEN – Can be heard only if a player is viewing the part of the map on which it is played
*GLOBAL – Can be heard by all players across the whole map


DeeZire also lists
*NOISE_SHY – Over-ride, sound does not play if other sounds are being played
*GUN_SHY – Over-ride, sound does not play if sounds with greater Volume= are being played
but like most of his priority-values, these are nowhere to be found in the INI. It is possible that they were found in the EXE, if anyone has verified these values, please edit this page accordingly.


Notice that, like indicated in the default-field, you can use multiple values on <tt>Type=</tt>, seperated by a blank space. As with <tt>Priority</tt>, while the values are all all-caps in the comments, they vary in their capitalization when actually used.
==={{anchor|Accepted_values1||}}Accepted values===
 
====In Tiberian Sun====
{| class="table_descrow" cellpadding="5"
!Value
!Internal ID
!Remarks
|-
|<code>MultiMissile</code>
|0x00
|
|-
|<code>EMPulse</code>
|0x01
|
|-
|<code>Firestorm</code>
|0x02
|
|-
|<code>IonCannon</code>
|0x03
|
|-
|<code>HunterSeeker</code>
|0x04
|
|-
|<code>ChemMissile</code>
|0x05
|
|-
|<code>DropPod</code>
|0x06
|
|}
 
====In Red Alert 2====
{| class="table_descrow" cellpadding="5"
!Value
!Internal ID
!Remarks
|-
|<code>MultiMissile</code>
|0x00
|The Nuke
|-
|<code>IronCurtain</code>
|0x01
|
|-
|<code>LightningStorm</code>
|0x02
|
|-
|<code>ChronoSphere</code>
|0x03
|This is the SuperWeapon selecting the units to chronowarp.
|-
|<code>ChronoWarp</code>
|0x04
|This is the SuperWeapon selecting the chronowarp destination.
|-
|<code>ParaDrop</code>
|0x05
|
|-
|<code>AmerParaDrop</code>
|0x06
|
|}
 
====In Yuri's Revenge====
In addition to the accepted values in Red Alert 2, the following are also valid:
{| class="table_descrow" cellpadding="5"
!Value
!Internal ID
!Remarks
|-
|<code>PsychicDominator</code>
|0x07
|
|-
|<code>SpyPlane</code>
|0x08
|
|-
|<code>GeneticConverter</code>
|0x09
|
|-
|<code>ForceShield</code>
|0x0A
|
|-
|<code>PsychicReveal</code>
|0x0B
|
|}
==Note==
*'''Type=ForceShield''' Hardcoded to only work with [[BuildingTypes]].
 
==For VocTypes==
{{flag
|files={{Categ|ini=sound}}
|values={{Values|stringlist|[[hardcoded]] values[[{{PAGENAME}}#Accepted_values2|{{sup|{{arr|d}}}}]]|separator=whitespace}}
|default=SCREEN
|types={{Categ|SoundList|VocTypes}}
|ra2=yes
|yr=yes
|rp=yes}}
 
This flag controls how and under which circumstances this section's sound is played.
 
==={{anchor|Accepted_values2||}}Accepted values===
All of these are case-insensitive.
 
{| class="table_descrow" cellpadding="5"
!Value
!Effect
|-
|<code>AMBIENT</code>
|
|-
|<code>VIOLENT</code>
|
|-
|<code>MOVEMENT</code>
|
|-
|<code>QUIET</code>
|
|-
|<code>LOUD</code>
|
|-
|<code>GLOBAL</code>
|Can be heard by all players across the whole map
|-
|<code>SCREEN</code>
|Can be heard only if a player is viewing the part of the map on which it is played
|-
|<code>LOCAL</code>
|Can be heard only at its point of origin and at the distance from its {{f|Range|link}}
|-
|<code>PLAYER</code>
|Can be heard only by the player causing this sound event to be played
|-
|<code>NORMAL</code>
|no effect
|-
|<code>GUN_SHY</code>
|Over-ride, sound does not play if sounds with greater Volume= are being played
|-
|<code>NOISE_SHY</code>
|Over-ride, sound does not play if other sounds are being played
|-
|<code>UNSHROUD</code>
|Can be heard only when played when not under shroud
|-
|<code>SHROUD</code>
|Can be heard only when played under shroud
|}
 
===See also===
* {{f|Control|link}}
 
==For VoxTypes==
{{flag
|name=Type
|files={{Categ|ini=eva}}
|values={{Values|stringlist|[[hardcoded]] values[[{{PAGENAME}}#Accepted_values3|{{sup|{{arr|d}}}}]]|separator=whitespace}}
|default=STANDARD
|types={{Categ|DialogList|VoxTypes}}
|ra2=yes
|yr=yes
|rp=yes}}


==eva(md).ini==
{{flag|name=Type|files=eva(md).ini|values=QUEUE|special=None|default=Unknown|types=EVA sound sections|games=RA2, YR}}
In eva(md).ini, this flag, if present, is only set to QUEUE. There are, however, hundreds of sections omitting it, suggesting there's a default value. Whether this is QUEUE or something else is not known.
In eva(md).ini, this flag, if present, is only set to QUEUE. There are, however, hundreds of sections omitting it, suggesting there's a default value. Whether this is QUEUE or something else is not known.
If this flag is present and set to QUEUE, the voice in it's section will be played after the currently playing voices have finished (the alternative being that it gets ignored).
If this flag is present and set to QUEUE, the voice in it's section will be played after the currently playing voices have finished (the alternative being that it gets ignored).


''Note that this questions the use of the alleged QUEUE and QUEUE_INTERRUPT values of <tt>[[Priority]]</tt>. What would you need a priority of QUEUE for, if the type tells the game to queue the sound anyway?''
''Note that this questions the use of the alleged QUEUE and QUEUE_INTERRUPT values of <tt>[[Priority]]</tt>. What would you need a priority of QUEUE for, if the type tells the game to queue the sound anyway?''
[[Category:INI Flags]]
 
[[Category:sound(md).ini Flags]]
==={{anchor|Accepted_values3||}}Accepted values===
[[Category:eva(md).ini Flags]]
{{NeedsTesting}}
 
All of these are case-insensitive. More information is needed to determine their exact effects.
*QUEUE
*STANDARD
*INTERRUPT
*QUEUED_INTERRUPT

Latest revision as of 13:44, 13 October 2024

For SuperWeaponTypes

Tiberian Dawn The Covert Operations Red Alert Counterstrike Aftermath Tiberian Sun Firestorm HyperPatch Red Alert 2 Yuri's Revenge Ares Generals Zero Hour Tiberium Wars Kane's Wrath
Flag: Type
File(s): rules(md).ini
Values: Strings: Normal text. (Limited to: hardcoded values)
Applicable to: SuperWeaponTypes


This determines the effect of a SuperWeaponType once it is activated by a player.


This is copied from the inclusion-generated Type_I, i.e. it's directly from DZ's Guide and should be rewritten asap.

There are two stages to using a Super Weapon, the first of which is the Type=. The Type= indicates which internal subroutine in the game code to use for the effect of this Super Weapon (since these are special 'one off' effects that otherwise would not occur in game). This subroutine in turn may take one or more of its requirements from the RULES file (thus allowing some limited editing of the effects of that Type=), and in addition these subroutines also require an additional parameter, usually a waypoint (target), which is passed to them via an associated Action=. The Action= is another subroutine that validates that parameter before passing it in a specific way to the Type= (see later). Think of the Type= as being the 'effect' whilst the Action= is the 'delivery method' of the Super Weapon.

Certain Types= will only work with certain Actions= as the way in which that parameter is passed is an important factor in how that Type= may operate, although not all Types= require an Action= as they may simply trigger the whole event by themselves. The Type= label is therefore a special case which allows you to point to a specific routine in the game code, in much the same way as specifying a Locomotor= with a CLSID. The difference here is that the CLSIDs for these subroutines have been given 'labels', as they perform complete functions rather than define behaviours and rules. You must therefore specify a valid and existing label as the parameter for this tag. Unfortunately only the Type= tags that are specified in the RULES file will work - the game is hardcoded only for those effects to be invoked by Super Weapons, however by editing many of the parameters used in those existing ones (such as the warheads, animations and sounds used), you can modify them to a good degree.


Accepted values

In Tiberian Sun

Value Internal ID Remarks
MultiMissile 0x00
EMPulse 0x01
Firestorm 0x02
IonCannon 0x03
HunterSeeker 0x04
ChemMissile 0x05
DropPod 0x06

In Red Alert 2

Value Internal ID Remarks
MultiMissile 0x00 The Nuke
IronCurtain 0x01
LightningStorm 0x02
ChronoSphere 0x03 This is the SuperWeapon selecting the units to chronowarp.
ChronoWarp 0x04 This is the SuperWeapon selecting the chronowarp destination.
ParaDrop 0x05
AmerParaDrop 0x06

In Yuri's Revenge

In addition to the accepted values in Red Alert 2, the following are also valid:

Value Internal ID Remarks
PsychicDominator 0x07
SpyPlane 0x08
GeneticConverter 0x09
ForceShield 0x0A
PsychicReveal 0x0B

Note

For VocTypes

Tiberian Dawn The Covert Operations Red Alert Counterstrike Aftermath Tiberian Sun Firestorm HyperPatch Red Alert 2 Yuri's Revenge Ares Generals Zero Hour Tiberium Wars Kane's Wrath
Flag: Type
File(s): sound(md).ini
Values: whitespace-separated list of strings. (Limited to: hardcoded values)
Default: SCREEN
Applicable to: VocTypes


This flag controls how and under which circumstances this section's sound is played.

Accepted values

All of these are case-insensitive.

Value Effect
AMBIENT
VIOLENT
MOVEMENT
QUIET
LOUD
GLOBAL Can be heard by all players across the whole map
SCREEN Can be heard only if a player is viewing the part of the map on which it is played
LOCAL Can be heard only at its point of origin and at the distance from its Range
PLAYER Can be heard only by the player causing this sound event to be played
NORMAL no effect
GUN_SHY Over-ride, sound does not play if sounds with greater Volume= are being played
NOISE_SHY Over-ride, sound does not play if other sounds are being played
UNSHROUD Can be heard only when played when not under shroud
SHROUD Can be heard only when played under shroud

See also

For VoxTypes

Tiberian Dawn The Covert Operations Red Alert Counterstrike Aftermath Tiberian Sun Firestorm HyperPatch Red Alert 2 Yuri's Revenge Ares Generals Zero Hour Tiberium Wars Kane's Wrath
Flag: Type
File(s): eva(md).ini
Values: whitespace-separated list of strings. (Limited to: hardcoded values)
Default: STANDARD
Applicable to: VoxTypes


In eva(md).ini, this flag, if present, is only set to QUEUE. There are, however, hundreds of sections omitting it, suggesting there's a default value. Whether this is QUEUE or something else is not known. If this flag is present and set to QUEUE, the voice in it's section will be played after the currently playing voices have finished (the alternative being that it gets ignored).

Note that this questions the use of the alleged QUEUE and QUEUE_INTERRUPT values of Priority. What would you need a priority of QUEUE for, if the type tells the game to queue the sound anyway?

Accepted values

This needs testing
The following section contains information that has not been personally confirmed by the revision's author; readers are encouraged to test it themselves and update the section accordingly.


All of these are case-insensitive. More information is needed to determine their exact effects.

  • QUEUE
  • STANDARD
  • INTERRUPT
  • QUEUED_INTERRUPT