2d Effect (RW Section)

From GTAMods Wiki
Revision as of 12:57, 3 October 2007 by DexX (talk | contribs) (Tools and Scripts)
Jump to navigation Jump to search
{{{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 2dfx entries:

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 80 bytes.

 4b - BYTE[4]  - RGBX, where X = 200d
 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 this post.

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 is 56 bytes. It`s used for spawning PEDs (Like on ticketbooth, Windows of shops, Blackjack-tables,...) It includes information about the PED Animation, it`s facing angle and it`s behaviour.

 4b - INT32    - Type (1 - Stitting, 5 - Standing...)
 8b - BYTE[8]? - Unknown
16b - FLOAT[4] - Rotation (XYZW)
12b - BYTE[12]?- PED IDs?
 8b - CHAR[8]  - PED-Animtaion
 4b - INT32    - PED-Existing-Probability 
 4b - INT32    - Unknown (always zero)

The rotations are stored in quarternions (That means like in IPLs).

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

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 IDEs.) 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.

Its structure is something like this:

 4b - INT32    - Unknown (always 0 ?)
 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 teleporter ?)
 4b - BYTE[4]  - Unknown (RBGA Color of teleporter?)

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. Could be simple lights that use the default corona/shadow textures?

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








Tools and Scripts