Type: Difference between revisions
Updated header-info and respective changes |
mNo edit summary |
||
(12 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
==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. | |||
---- | |||
:''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.'' | |||
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 /> | |||
<br /> | |||
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. | |||
==={{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}} | |||
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?'' | ||
==={{anchor|Accepted_values3||}}Accepted values=== | |||
{{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
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
- Type=ForceShield Hardcoded to only work with BuildingTypes.
For VocTypes
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
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
All of these are case-insensitive. More information is needed to determine their exact effects.
- QUEUE
- STANDARD
- INTERRUPT
- QUEUED_INTERRUPT