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

From GTAMods Wiki
Jump to navigation Jump to search
(Entry Type 3 - PEDs)
(Entry Type 0 - Light)
Line 24: Line 24:
  
 
===Entry Type 0 - Light===
 
===Entry Type 0 - Light===
 
+
This type defines lights and has a size of 76 or 80 bytes.
This type defines lights and has a size of 80 bytes.{{ref|1}}
+
*With size of 76 bytes
 
+
0x00 | RwRGBA color                 
   4b - BYTE[4- RGBX, where X = 200d
+
0x04 | float  coronaFarClip         
   4b - FLOAT    - draw distance
+
0x08 | float  pointlightRange       
   4b - FLOAT    - outer range
+
0x0C | float  coronaSize             
   4b - FLOAT    - size
+
0x10 | float  shadowSize             
   4b - FLOAT    - inner range
+
0x14 | BYTE  coronaShowMode         
   5b - BYTE[5] - parameters
+
0x15 | BYTE  coronaEnableReflection 
  24b - CHAR[24] - corona texture name
+
0x16 | BYTE  coronaFlareType       
  24b - CHAR[24] - shadow texture name
+
0x17 | BYTE   shadowColorMultiplier 
   4b - INT32    - flare
+
0x18 | BYTE   flags1                 
   3b - BYTE[3- flare parameters (?)
+
0x19 | char  coronaTexName[24]      
 
+
  0x31 | char  shadowTexName[24]     
{{Incomplete}}
+
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
  
 
===Entry Type 1 - Particle Effects===
 
===Entry Type 1 - Particle Effects===

Revision as of 18:24, 20 February 2013

This article handles the binary format of the particle effect placement information inside an DFF Model. For detailed information about particle see Particle (SA).
40px-Ambox rewrite orange.svg.png This article may need to be rewritten.
Please help improve this article. The discussion page may contain suggestions.
{{{NAME}}}
RenderWare Stream Section
Vendor {{{VENDORNAME}}}
Module {{{MODULENAME}}}
Module ID 0x{{{MODULEID}}}
Identifier 0x{{{IDENTIFIER}}}
Chunk ID 0x{{{MODULEID}}}{{{IDENTIFIER}}}
Versions All
Hierarchy
Parents:
None
Children:
None
Extensions:
None
File Format

2dfx is one of Rockstar's custom sections. In GTA San Andreas it is used to store particle and light effects, which were located in ide files in previous versions. The typical location in a SA dff section hierarchy is Clump > Geometry List > Geometry > Extension > 2dfx.

There can be multiple effects per section, their types are defined by an ID.

Header

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

Entries

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

12 byte - FLOAT[3] - Position Vector (xyz)
 4 byte - DWORD    - Entry Type
 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 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

Entry Type 1 - Particle Effects

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 - PEDs

The PED-Section consists in 56 bytes. 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 (1 - Sitting, 5 - Standing...)
36b - VECTOR3[3] - Rotation
 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'. This section is incomplete. You can help by fixing and expanding it.

Entry Type 6 - EnEx markers

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 Signs

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

 8b - FLOAT[2] - scale (xy)
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 <, ^ and >; also _ is used instead of a whitespace.

Entry Type 8 - Slotmachine-wheels

This is for Slotmachines.

4b - Int32 - Wheelindex

Every wheel in the slotmachine has an index, increments by 1 and starrting with 1. The position of the index is the position of the wheel in the Slotmachine. Maybe it can be controlled using SCM.

Entry Type 9

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

Entry Type 10 - Escalators

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