Difference between revisions of "2d Effect (RW Section)"

From GTAMods Wiki
Jump to navigation Jump to search
(Tools and Scripts)
(Entry Type 0 - Light)
 
(40 intermediate revisions by 8 users not shown)
Line 1: Line 1:
{{RW Section|2dfx|0x0253F2F8}}
+
{{This|This article handles the binary format of the particle effect placement information inside an [[DFF Model]]. For detailed information about particle see [[Particle (SA)]].}}
  
'''2dfx''' is one of Rockstar's [[List of RW section IDs#Rockstar.27s_Custom_Sections|custom sections]]. In [[:Category:GTA SA|GTA San Andreas]] it is used to store particle and light effects, which were located in [[ide|ide files]] in previous versions. The typical location in a SA [[model file|dff]] section hierarchy is ''[[Clump (RW Section)|Clump]] > [[Geometry List (RW Section)|Geometry List]] > [[Geometry (RW Section)|Geometry]] > [[Extension (RW Section)|Extension]] > 2dfx.
+
{{RW Section
 +
| NAME = 2d Effect
 +
| VENDORNAME = Rockstar Games
 +
| MODULENAME = Plug-In
 +
| MODULEID = 0253F2
 +
| IDENTIFIER = F8
 +
| VERSION = 3.6.0.3 (and higher)
 +
| PARENTS = [[Geometry (RW Section)|Geometry]] ''([[Extension (RW Section)|Extension]])''
 +
}}
  
There can be multiple effects per section, their types are defined by an ID.
+
'''2d Effect''', formerly '''2dfx''', is one of Rockstar's [[List of RW section IDs#Rockstar.27s_Custom_Sections|custom sections]]. In [[GTA San Andreas]] it is used to store 2D effects, which were located in [[ide|ide files]] in previous versions. There can be multiple effects per section, their types are defined by an ID.
  
 
==Header==
 
==Header==
  
A 2dfx section starts with a 4 byte DWORD which is the number of 2dfx entries that follow.
+
A 2d Effect section starts with a 4 byte DWORD which is the number of 2d Effect entries that follow.
  
 
==Entries==
 
==Entries==
  
There is a common 20 byte header for 2dfx entries:
+
There is a common 20 byte header for each 2d Effect entry:
  
  12 byte - FLOAT[3] - Position Vector (xyz)
+
  12 byte - FLOAT[3] - Position vector in object space
 
   4 byte - DWORD    - Entry Type
 
   4 byte - DWORD    - Entry Type
 
   4 byte - DWORD    - Data Size
 
   4 byte - DWORD    - Data Size
  
"Entry Type" defines the type of the 2dfx entry, and "Data Size" the number of bytes that follow the first 20, until the next entry starts.
+
'''Entry Type''' defines the type of the 2d Effect entry, and '''Data Size''' the number of bytes that follow the first 20, until the next entry starts.
  
 
===Entry Type 0 - Light===
 
===Entry Type 0 - Light===
 +
This type defines lights and has a size of 76 or 80 bytes.
 +
*With size of 76 bytes
 +
0x00 | RwRGBA color                 
 +
0x04 | float  coronaFarClip         
 +
0x08 | float  pointlightRange       
 +
0x0C | float  coronaSize             
 +
0x10 | float  shadowSize             
 +
0x14 | BYTE  coronaShowMode         
 +
0x15 | BYTE  coronaEnableReflection 
 +
0x16 | BYTE  coronaFlareType       
 +
0x17 | BYTE  shadowColorMultiplier 
 +
0x18 | BYTE  flags1                 
 +
0x19 | char  coronaTexName[24]     
 +
0x31 | char  shadowTexName[24]     
 +
0x49 | BYTE  shadowZDistance       
 +
0x4A | BYTE  flags2                 
 +
0x4B | BYTE  padding
 +
*With size of 80 bytes
 +
0x00 | RwRGBA color                 
 +
0x04 | float  coronaFarClip         
 +
0x08 | float  pointlightRange       
 +
0x0C | float  coronaSize             
 +
0x10 | float  shadowSize             
 +
0x14 | BYTE  coronaShowMode         
 +
0x15 | BYTE  coronaEnableReflection 
 +
0x16 | BYTE  coronaFlareType       
 +
0x17 | BYTE  shadowColorMultiplier 
 +
0x18 | BYTE  flags1                 
 +
0x19 | char  coronaTexName[24]     
 +
0x31 | char  shadowTexName[24]     
 +
0x49 | BYTE  shadowZDistance       
 +
0x4A | BYTE  flags2                 
 +
0x4B | BYTE  lookDirection_x       
 +
0x4C | BYTE  lookDirection_y       
 +
0x4D | BYTE  lookDirection_z       
 +
0x4E | BYTE  padding[2]
 +
Flags 1 (flags1)
 +
  1 CORONA_CHECK_OBSTACLES           
 +
  2 FOG_TYPE                         
 +
  4 FOG_TYPE                         
 +
  8 WITHOUT_CORONA                   
 +
  16 CORONA_ONLY_AT_LONG_DISTANCE     
 +
  32 AT_DAY                           
 +
  64 AT_NIGHT                         
 +
128 BLINKING1                       
 +
Flags 2 (flags2)
 +
  1 CORONA_ONLY_FROM_BELOW           
 +
  2 BLINKING2                         
 +
  4 UDPDATE_HEIGHT_ABOVE_GROUND       
 +
  8 CHECK_DIRECTION                   
 +
16 BLINKING3
 +
Special corona type (coronaShowMode)
 +
  0 DEFAULT
 +
  1 RANDOM_FLASHING
 +
  2 RANDOM_FLASHIN_ALWAYS_AT_WET_WEATHER
 +
  3 LIGHTS_ANIM_SPEED_4X              // Used on model 10 green bottles. Lights alternately switched on-off.
 +
  4 LIGHTS_ANIM_SPEED_2X              // Used on skyscrapers in San Fierro
 +
  5 LIGHTS_ANIM_SPEED_1X
 +
  6 WARNLIGHT                          // Used on model nt_roadblockci
 +
  7 TRAFFICLIGHT
 +
  8 TRAINCROSSLIGHT
 +
  9                                    // Doesn't work (light is always disabled)
 +
10 AT_RAIN_ONLY                      // Enables only in rainy weather
 +
11                                    // 5s - on, 5s - off
 +
12                                    // 6s - on, 4s - off
 +
13                                    // 6s - on, 4s - off
  
This type defines lights and has a size of 80 bytes.
+
===Entry Type 1 - Particle effect===
  
  4b - BYTE[4]  - RGBX, where X = 200d
+
This type defines particle effects and has a size of 24 bytes.
  4b - FLOAT    - draw distance
 
  4b - FLOAT    - outer range
 
  4b - FLOAT    - size
 
  4b - FLOAT    - inner range
 
  5b - BYTE[5]  - parameters
 
24b - CHAR[24] - corona texture name
 
24b - CHAR[24] - shadow texture name
 
  4b - INT32    - flare
 
  3b - BYTE[3]  - flare parameters (?)
 
  
For additional info see [http://www.gtaforums.com/index.php?showtopic=128451&view=findpost&p=3905781 this post].
+
24b - CHAR[24] - particle effect name
  
===Entry Type 1 - Particle Effects===
+
The particle effect name is an entry in [[effects.fxp]].
  
This type defines particle effects and has a size of 24 bytes.
+
===Entry Type 3 - Ped attractor===
  
24b - CHAR[24] - particle effect name
+
This section consists of 56 bytes data. It`s used for spawning peds (Like on ticketbooth, Windows of shops, Blackjack-tables,...)
 +
It includes information about the [[External_Script|External Script]] ped is going to use when spawned, it`s facing angle and it`s behaviour.
  
The particle effect name is an entry in [[effects.fxp]].
+
  4b  - INT32      - Type (see below)
 +
  12b - float[3]  - QueueDir
 +
  12b - float[3]  - UseDir (Always same as QueueDir?)
 +
  12b - float[3]   - ForwardDir
 +
  8b  - CHAR[8]   - External script name
 +
  4b  - INT32      - Ped-Existing-Probability
 +
  1b  - BYTE      - Unknown
 +
  1b  - BYTE      - Not used
 +
  1b  - BYTE      - Unknown
 +
  1b  - BYTE      - Not used
  
===Entry Type 3 - PEDs===
+
External script name field has to contain a name defined by [[0884]] opcode like ''PEDSLOT'' or ''TICKET''. If the PED just stands/sits/lays, this field is set to 'none'.
  
The PED-Section consists is 56 bytes. It`s used for spawning PEDs (Like on ticketbooth, Windows of shops, Blackjack-tables,...)
+
The rotation matrix is used together with the position vector from the effect header to create a [[wikipedia:Transformation_matrix#Affine_transformations|affine transformation matrix]] in object space.
It includes information about the PED Animation, it`s facing angle and it`s behaviour.
 
  
  4b - INT32    - Type (1 - Stitting, 5 - Standing...)
+
'''Ped attractor types'''
  8b - BYTE[8]? - Unknown
+
0 PED_ATM_ATTRACTOR            Ped uses ATM (at day time only)
  16b - FLOAT[4] - Rotation (XYZW)
+
1 PED_SEAT_ATTRACTOR          Ped sits (at day time only)
  12b - BYTE[12]?- PED IDs?
+
2 PED_STOP_ATTRACTOR          Ped stands (at day time only)
  8b - CHAR[8] - PED-Animtaion
+
3 PED_PIZZA_ATTRACTOR          Ped stands for few seconds
  4b - INT32    - PED-Existing-Probability
+
  4 PED_SHELTER_ATTRACTOR        Ped goes away after spawning, but stands if weather is rainy
  4b - INT32    - Unknown (always zero)
+
  5 PED_TRIGGER_SCRIPT_ATTRACTOR Launches an external script
 +
  6 PED_LOOK_AT_ATTRACTOR        Ped looks at object, then goes away
 +
7 PED_SCRIPTED_ATTRACTOR      This type is not valid
 +
8 PED_PARK_ATTRACTOR          Ped lays (at day time only, ped goes away after 6 PM)
 +
9 PED_STEP_ATTRACTOR          Ped sits on steps
  
The rotations are stored in quarternions (That means like in IPLs).<br><br>
+
===Entry Type 4 - Sun glare===
 +
This type of section uses only header data (i.e. position/type).
  
For the PED-Animations there are entries like ''PEDSLOT'' or ''TICKET''. If the PED just stand/sit/lay/... there Animation is set to 'none'
+
===Entry Type 6 - Enter-Exit===
 +
Type may call game crash!
  
===Entry Type 6 - Unknown===
+
4b - FLOAT - Rotation angle enter-marker (relative to the object) (Always 0?)
 +
4b - FLOAT - The radius of the approximation to the marker X
 +
4b - FLOAT - The radius of the approximation to the marker Y
 +
12b - FLOAT[3]- The position of exit-marker (offset relative to the object) (Always 0?)
 +
4b - FLOAT    - angle of rotation exit-marker (relative to the object) (always 0?)
 +
4b - INT32    - Number of interior
 +
4b - INT32    - Flags?
 +
8b - CHAR[8]  - The name of the interior
 +
4b - INT32    - color of the sky
  
This may crash the game! Its used in ''barrio3b_lae.dff'', which is never used ingame (It is even not defined in one of the [http://www.gtamodding.com/index.php?title=IDE IDE]s.)
+
===Entry Type 7 - Street sign===
Maybe it can also be for robbery-missions or related to SCM in another way or maybe its even unused and garbage from the development stage of San Andreas.
+
This type defines the texts that appear on street signs and has a size of 88 bytes.
 +
0x00 | RwV2d  size
 +
0x08 | RwV3d  rotation
 +
0x14 | WORD  flags
 +
0x16 | RwChar text[4][16]
 +
'''Flags (flags)'''
  
Its structure is something like this:
+
''Bits 0-1 - Number of used lines''
 +
0 - 4 lines
 +
1 - 1 lines
 +
2 - 2 lines
 +
3 - 3 lines
 +
''Bits 2-3 - Max number of symbols in one line''
 +
0 - 16 symbols
 +
1 - 2 symbols
 +
2 - 4 symbols
 +
3 - 8 symbols
 +
''Bits 4-5 - Text color''
 +
0 - 0xFFFFFFFF (white)
 +
1 - 0xFF000000 (black)
 +
2 - 0xFF808080 (grey)
 +
3 - 0xFF0000FF (red)
 +
The lines can start with arrows, such as <code><</code>, <code>^</code> and <code>></code>; also <code>_</code> is used instead of a whitespace.
  
  4b - INT32    - Unknown (always 0 ?)
+
===Entry Type 8 - Trigger point===
  8b - FLOAT[2] - Unknown (always 2 ?)
 
  4b - INT32    - Unknown (always 0 ?)
 
  8b - FLOAT[2] - Unknown (always 1 ?)
 
  4b - INT32    - Unknown (always 0 ?)
 
  4b - BYTE[4]  - Unknown
 
  8b - CHAR[8- Unknown (Name of [http://www.gtamodding.com/index.php?title=Item_Placement#ENEX teleporter] ?)
 
  4b - BYTE[4]  - Unknown (RBGA Color of teleporter?)
 
  
===Entry Type 7 - Street Signs===
+
Used to determine additional coordinates that can be used in scripts. A purpose of these coordinates depends on the model.
  
This type defines the texts that appear on street signs and has a size of 88 bytes.
+
4b - Int32 - Point id
  
  8b - FLOAT[2] - scale (xy)
+
[[GET_LEVEL_DESIGN_COORDS_FOR_OBJECT]] command is used to retrieve an information (coordinates) about these points for a specific object.
12b - FLOAT[3] - rotation (xyz)
 
  2b - WORD    - possibly unused
 
64b - CHAR[64] - sign text, 16 byte per line
 
  2b - ?        - padding
 
  
The lines can start with arrows, such as <code><</code>, <code>^</code> and <code>></code>; also <code>_</code> is used instead of a whitespace.
+
====Slotmachine====
 +
[[File:Slotmachine 2dfx.PNG|300px|thumb|right|Trigger points for kb_bandit_u model (left), kb_bandit_u model with wheel objects (right)]]
 +
Every wheel in the slotmachine ('''kb_bandit_u.dff''') has an index, increments by 1 and starrting with 1.
 +
The position of the index is the position of the wheel in the Slotmachine.
 +
{| class="wikitable"
 +
! Id !! Usage
 +
|-
 +
| 1 || coordinates for creating 'cj_wheel_1' object
 +
|-
 +
| 2 || coordinates for creating 'cj_wheel_02' object
 +
|-
 +
| 3 || coordinates for creating 'cj_wheel_03' object
 +
|}
  
===Entry Type 8 - Slotmachine-wheels===
+
====Basketball hoop====
 +
[[File:Bb.PNG|300px|thumb|right|Trigger points for bskball_lax model]]
 +
Basketball hoop ('''bskball_lax.dff''') model is used in the "BBALL" script.
 +
{| class="wikitable"
 +
! Id !! Usage
 +
|-
 +
| 0 || hoop position
 +
|-
 +
| 1 || ball spawning coords
 +
|-
 +
| 2 || basketball court bounding box: min coord
 +
|-
 +
| 3 || basketball court bounding box: max coord
 +
|}
  
This is for Slotmachines.
+
====K.A.C.C. gates====
 +
[[File:Gate_autoR_2dfx.PNG|300px|thumb|right|Trigger points for gate_autoR model]]
 +
Moving gates at '''''K.A.C.C. Military Fuels''''' ('''gate_autoL.dff''' and '''gate_autoR.dff''') use additional coordinates to define where player should be located to start door opening.
 +
{| class="wikitable"
 +
! Id !! Usage
 +
|-
 +
| 0 || end point for door sliding (door moves from its origin position to this point)
 +
|-
 +
| 1 || angled area point 1 - inner side
 +
|-
 +
| 2 || angled area point 2 - inner side
 +
|-
 +
| 3 || angled area point 3 - inner side (used to calculate a distance parameter for [[IS_CHAR_IN_ANGLED_AREA_3D]] command)
 +
|-
 +
| 5 || angled area point 1 - outer side
 +
|-
 +
| 6 || angled area point 2 - outer side
 +
|-
 +
| 7 || angled area point 3 - outer side (used to calculate a distance parameter for [[IS_CHAR_IN_ANGLED_AREA_3D]] command)
 +
|}
  
4b - Int32 - Wheelindex
+
===Entry Type 9 - Cover point===
  
Every wheel in the slotmachine has an index, increments by 1 and starrting with 1.
+
Size is 12 bytes, used quite often and in large ammounts per file.
The position of the index is the position of the wheel in the Slotmachine. Maybe it can be controlled using SCM.
 
  
===Entry Type 9===
+
4b - FLOAT - x direction
 +
4b - FLOAT - y direction
 +
4b - DWORD - cover type
  
Size is 12 bytes, used quite often and in large ammounts per file. Could be simple lights that use the default corona/shadow textures?
+
This section defines a place where peds can cover during firefights.
  
===Entry Type 10 - Escalators===
+
===Entry Type 10 - Escalator===
  
 
This type defines escalators and has a size of 40 bytes.
 
This type defines escalators and has a size of 40 bytes.
Line 117: Line 259:
 
Legend to the picture:
 
Legend to the picture:
  
Escalator_Standart_Position - Positioninfo from the header<br>
+
* '''Escalator_Standart_Position''' - Positioninfo from the header<br>
Escalator_Bottom - Bottominfo from the section<br>
+
* '''Escalator_Bottom''' - Bottominfo from the section<br>
Escalator_Top - Topinfo from the section<br>
+
* '''Escalator_Top''' - Topinfo from the section<br>
Escalator_End - Endinfo from the section<br><br><br><br><br><br><br><br><br>
+
* '''Escalator_End''' - Endinfo from the section<br><br><br><br><br><br><br><br><br>
 +
 
 +
==External Link==
 +
 
 +
* {{note|1}} {{GTAF|post|128451|3905781|Encryption of light information}}
  
 
==Tools and Scripts==
 
==Tools and Scripts==
* [http://www.gtaforums.com/index.php?showtopic=261624 DexX Tools] by [[User:DexX|DexX]] &ndash; 2dfx export from 3DSMax
 
* [http://www.steve-m.com/?page=2&ID=21&act=details RW Analyze] by [[User:steve-m|steve-m]] (no 2dfx support yet, but needed by above script)
 
* [http://www.gtaforums.com/index.php?showtopic=282387 2dfx Editor] by [[User:Aschratt|Aschratt]] &ndash; 2dfx Editing
 
  
 +
* {{GTAF|261624|DexX Tools}} by {{U|DexX}} &ndash; 2d Effect export from 3DSMax (MaxScript)
 +
* {{GTAF|282387|2dfx Editor}} by {{U|Aschratt}} &ndash; 2d Effect editing
 +
* [http://www.steve-m.com/?page=2&ID=21&act=details RW Analyze] by {{U|steve-m}} (no 2d Effect support yet, but needed by above script)
 +
* {{GTAF|576214|2dfx Tool}} by {{U|DK22Pac}} &ndash; 2d Effect editing
  
{{File-stub}}
+
{{SA-navi}}

Latest revision as of 12:38, 7 March 2024

This article handles the binary format of the particle effect placement information inside an DFF Model. For detailed information about particle see Particle (SA).


2d Effect
RenderWare Stream Section
Vendor Rockstar Games
Module Plug-In
Module ID 0x0253F2
Identifier 0xF8
Chunk ID 0x0253F2F8
Versions 3.6.0.3 (and higher)
Hierarchy
Parents:
Geometry (Extension)
Children:
None
Extensions:
None
File Format

2d Effect, formerly 2dfx, is one of Rockstar's custom sections. In GTA San Andreas it is used to store 2D effects, which were located in ide files in previous versions. There can be multiple effects per section, their types are defined by an ID.

Header

A 2d Effect section starts with a 4 byte DWORD which is the number of 2d Effect entries that follow.

Entries

There is a common 20 byte header for each 2d Effect entry:

12 byte - FLOAT[3] - Position vector in object space
 4 byte - DWORD    - Entry Type
 4 byte - DWORD    - Data Size

Entry Type defines the type of the 2d Effect entry, and Data Size the number of bytes that follow the first 20, until the next entry starts.

Entry Type 0 - Light

This type defines lights and has a size of 76 or 80 bytes.

  • With size of 76 bytes
0x00 | RwRGBA color                   
0x04 | float  coronaFarClip           
0x08 | float  pointlightRange         
0x0C | float  coronaSize              
0x10 | float  shadowSize              
0x14 | BYTE   coronaShowMode          
0x15 | BYTE   coronaEnableReflection  
0x16 | BYTE   coronaFlareType         
0x17 | BYTE   shadowColorMultiplier   
0x18 | BYTE   flags1                  
0x19 | char   coronaTexName[24]       
0x31 | char   shadowTexName[24]       
0x49 | BYTE   shadowZDistance         
0x4A | BYTE   flags2                  
0x4B | BYTE   padding
  • With size of 80 bytes
0x00 | RwRGBA color                   
0x04 | float  coronaFarClip           
0x08 | float  pointlightRange         
0x0C | float  coronaSize              
0x10 | float  shadowSize              
0x14 | BYTE   coronaShowMode          
0x15 | BYTE   coronaEnableReflection  
0x16 | BYTE   coronaFlareType         
0x17 | BYTE   shadowColorMultiplier   
0x18 | BYTE   flags1                  
0x19 | char   coronaTexName[24]       
0x31 | char   shadowTexName[24]       
0x49 | BYTE   shadowZDistance         
0x4A | BYTE   flags2                  
0x4B | BYTE   lookDirection_x         
0x4C | BYTE   lookDirection_y         
0x4D | BYTE   lookDirection_z         
0x4E | BYTE   padding[2]

Flags 1 (flags1)

  1 CORONA_CHECK_OBSTACLES            
  2 FOG_TYPE                          
  4 FOG_TYPE                          
  8 WITHOUT_CORONA                    
 16 CORONA_ONLY_AT_LONG_DISTANCE      
 32 AT_DAY                            
 64 AT_NIGHT                          
128 BLINKING1                         

Flags 2 (flags2)

 1 CORONA_ONLY_FROM_BELOW             
 2 BLINKING2                          
 4 UDPDATE_HEIGHT_ABOVE_GROUND        
 8 CHECK_DIRECTION                    
16 BLINKING3

Special corona type (coronaShowMode)

 0 DEFAULT
 1 RANDOM_FLASHING
 2 RANDOM_FLASHIN_ALWAYS_AT_WET_WEATHER
 3 LIGHTS_ANIM_SPEED_4X               // Used on model 10 green bottles. Lights alternately switched on-off.
 4 LIGHTS_ANIM_SPEED_2X               // Used on skyscrapers in San Fierro
 5 LIGHTS_ANIM_SPEED_1X
 6 WARNLIGHT                          // Used on model nt_roadblockci
 7 TRAFFICLIGHT
 8 TRAINCROSSLIGHT
 9                                    // Doesn't work (light is always disabled)
10 AT_RAIN_ONLY                       // Enables only in rainy weather
11                                    // 5s - on, 5s - off
12                                    // 6s - on, 4s - off
13                                    // 6s - on, 4s - off

Entry Type 1 - Particle effect

This type defines particle effects and has a size of 24 bytes.

24b - CHAR[24] - particle effect name

The particle effect name is an entry in effects.fxp.

Entry Type 3 - Ped attractor

This section consists of 56 bytes data. It`s used for spawning peds (Like on ticketbooth, Windows of shops, Blackjack-tables,...) It includes information about the External Script ped is going to use when spawned, it`s facing angle and it`s behaviour.

 4b  - INT32      - Type (see below)
 12b - float[3]   - QueueDir
 12b - float[3]   - UseDir (Always same as QueueDir?)
 12b - float[3]   - ForwardDir
 8b  - CHAR[8]    - External script name
 4b  - INT32      - Ped-Existing-Probability 
 1b  - BYTE       - Unknown
 1b  - BYTE       - Not used
 1b  - BYTE       - Unknown
 1b  - BYTE       - Not used

External script name field has to contain a name defined by 0884 opcode like PEDSLOT or TICKET. If the PED just stands/sits/lays, this field is set to 'none'.

The rotation matrix is used together with the position vector from the effect header to create a affine transformation matrix in object space.

Ped attractor types

0 PED_ATM_ATTRACTOR            Ped uses ATM (at day time only)
1 PED_SEAT_ATTRACTOR           Ped sits (at day time only)
2 PED_STOP_ATTRACTOR           Ped stands (at day time only)
3 PED_PIZZA_ATTRACTOR          Ped stands for few seconds
4 PED_SHELTER_ATTRACTOR        Ped goes away after spawning, but stands if weather is rainy
5 PED_TRIGGER_SCRIPT_ATTRACTOR Launches an external script
6 PED_LOOK_AT_ATTRACTOR        Ped looks at object, then goes away
7 PED_SCRIPTED_ATTRACTOR       This type is not valid
8 PED_PARK_ATTRACTOR           Ped lays (at day time only, ped goes away after 6 PM)
9 PED_STEP_ATTRACTOR           Ped sits on steps

Entry Type 4 - Sun glare

This type of section uses only header data (i.e. position/type).

Entry Type 6 - Enter-Exit

Type may call game crash!

4b - FLOAT - Rotation angle enter-marker (relative to the object) (Always 0?)
4b - FLOAT - The radius of the approximation to the marker X
4b - FLOAT - The radius of the approximation to the marker Y
12b - FLOAT[3]- The position of exit-marker (offset relative to the object) (Always 0?)
4b - FLOAT    - angle of rotation exit-marker (relative to the object) (always 0?)
4b - INT32    - Number of interior
4b - INT32    - Flags?
8b - CHAR[8]  - The name of the interior
4b - INT32    - color of the sky

Entry Type 7 - Street sign

This type defines the texts that appear on street signs and has a size of 88 bytes.

0x00 | RwV2d  size
0x08 | RwV3d  rotation
0x14 | WORD   flags
0x16 | RwChar text[4][16]

Flags (flags)

Bits 0-1 - Number of used lines

0 - 4 lines
1 - 1 lines
2 - 2 lines
3 - 3 lines

Bits 2-3 - Max number of symbols in one line

0 - 16 symbols
1 - 2 symbols
2 - 4 symbols
3 - 8 symbols

Bits 4-5 - Text color

0 - 0xFFFFFFFF (white)
1 - 0xFF000000 (black)
2 - 0xFF808080 (grey)
3 - 0xFF0000FF (red)

The lines can start with arrows, such as <, ^ and >; also _ is used instead of a whitespace.

Entry Type 8 - Trigger point

Used to determine additional coordinates that can be used in scripts. A purpose of these coordinates depends on the model.

4b - Int32 - Point id

GET_LEVEL_DESIGN_COORDS_FOR_OBJECT command is used to retrieve an information (coordinates) about these points for a specific object.

Slotmachine

Trigger points for kb_bandit_u model (left), kb_bandit_u model with wheel objects (right)

Every wheel in the slotmachine (kb_bandit_u.dff) has an index, increments by 1 and starrting with 1. The position of the index is the position of the wheel in the Slotmachine.

Id Usage
1 coordinates for creating 'cj_wheel_1' object
2 coordinates for creating 'cj_wheel_02' object
3 coordinates for creating 'cj_wheel_03' object

Basketball hoop

Trigger points for bskball_lax model

Basketball hoop (bskball_lax.dff) model is used in the "BBALL" script.

Id Usage
0 hoop position
1 ball spawning coords
2 basketball court bounding box: min coord
3 basketball court bounding box: max coord

K.A.C.C. gates

Trigger points for gate_autoR model

Moving gates at K.A.C.C. Military Fuels (gate_autoL.dff and gate_autoR.dff) use additional coordinates to define where player should be located to start door opening.

Id Usage
0 end point for door sliding (door moves from its origin position to this point)
1 angled area point 1 - inner side
2 angled area point 2 - inner side
3 angled area point 3 - inner side (used to calculate a distance parameter for IS_CHAR_IN_ANGLED_AREA_3D command)
5 angled area point 1 - outer side
6 angled area point 2 - outer side
7 angled area point 3 - outer side (used to calculate a distance parameter for IS_CHAR_IN_ANGLED_AREA_3D command)

Entry Type 9 - Cover point

Size is 12 bytes, used quite often and in large ammounts per file.

4b - FLOAT - x direction
4b - FLOAT - y direction
4b - DWORD - cover type

This section defines a place where peds can cover during firefights.

Entry Type 10 - Escalator

This type defines escalators and has a size of 40 bytes.

12b - FLOAT[3] - bottom of escalator (xyz)
12b - FLOAT[3] - top of escalator (xyz)
12b - FLOAT[3] - escalator end (Z pos, matches top Z if escalator goes up, bottom Z if it goes down)
 4b - DWORD    - direction 0/1 (down/up)
An Escalator in 3ds Max. The dummies stand for the position-info in the Section/Header.

The normal position info of the header gets the same function of th estart-position in opposite to the end-position. Positions seem to be roundet to *.5 or *.0 by the game, so it doesnt make many sense to create escalators with the value of *.3 or *.7. This got the effect that a Escalator looks like in the picture (Example: vgseesc01.dff). Legend to the picture:

  • Escalator_Standart_Position - Positioninfo from the header
  • Escalator_Bottom - Bottominfo from the section
  • Escalator_Top - Topinfo from the section
  • Escalator_End - Endinfo from the section








External Link

Tools and Scripts