Difference between revisions of "EFFDIR"

From SC4D Encyclopaedia
Jump to navigation Jump to search
sc4e>Whatevermind
m (general cleanup, evolving standards, etc.)
sc4e>Whatevermind
m (pulling titles out of pres)
Line 7: Line 7:
  
 
===Header===
 
===Header===
 +
The header calls out the version number of the file. Vanilla SC4 is 3.1, [[Rush Hour]]/Deluxe is 4.2.
 
<pre>
 
<pre>
''' Vanilla is 3.1, Rush Hour is 4.2
+
WORD - Major Version EFFDIR
WORD - Major Version EFDIR
+
WORD - Minor Version EFFDIR
WORD - Minor Version EFDIR
 
 
</pre>
 
</pre>
  
===Section 1===
+
===Section 1 - Main Section - Terrain Independent FSHs and S3Ds===
 
<pre>
 
<pre>
'''Start Section #1 - Main Section - Terrain Independent FSHs and S3Ds'''
 
 
DWORD (Number of Entries)
 
DWORD (Number of Entries)
 
DWORD
 
DWORD
Line 136: Line 135:
 
</pre>
 
</pre>
  
===Section 2===
+
===Section 2 - Terrain Dependent FSHs===
 
<pre>
 
<pre>
'''Start Section #2 - Terrain Dependent FSHs'''
 
 
DWORD (Number of Entries)
 
DWORD (Number of Entries)
 
DWORD
 
DWORD
Line 166: Line 164:
 
===Section 3===
 
===Section 3===
 
<pre>
 
<pre>
'''Start Section #3'''
 
 
DWORD (Number of Entries)
 
DWORD (Number of Entries)
 
DWORD
 
DWORD
Line 178: Line 175:
 
</pre>
 
</pre>
  
===Section 4===
+
===Section 4 - Terrain Effects?===
 +
This section appears to contain information about craters and erosion.
 
<pre>
 
<pre>
'''Start Section #4 - Terrain Effects? (craters and erosion)'''
 
 
DWORD (Number of Entries)
 
DWORD (Number of Entries)
 
DWORD (Number of reps)
 
DWORD (Number of reps)
Line 189: Line 186:
 
</pre>
 
</pre>
  
===Section 5===
+
===Section 5 - Brush (Cursor) Exemplars===
 
<pre>
 
<pre>
'''Start Section #5 - Brush (Cursor) Exemplars'''
 
 
DWORD (Number of entries)
 
DWORD (Number of entries)
 
Two bytes
 
Two bytes
Line 205: Line 201:
 
</pre>
 
</pre>
  
===Section 6===
+
===Section 6 - LUA Occupant Groups, Generators, and Attractors===
 
<pre>
 
<pre>
'''Start Section #6 - LUA Occupant Groups, Generators, and Attractors'''
 
 
DWORD (Number of Entries)
 
DWORD (Number of Entries)
 
Two bytes <<<---Always 0x0000
 
Two bytes <<<---Always 0x0000
Line 215: Line 210:
 
</pre>
 
</pre>
  
===Section 7===
+
===Section 7 - Earthquakes(Destructive)?===
 
<pre>
 
<pre>
'''Start Section #7 -- Earthquakes(Destructive)?'''
 
 
DWORD (Number of Entries)
 
DWORD (Number of Entries)
 
22 Bytes
 
22 Bytes
Line 232: Line 226:
 
</pre>
 
</pre>
  
===Section 8===
+
===Section 8 - Randomized Picks===
 
<pre>
 
<pre>
'''Start Section #8 -- Randomized Picks'''
 
 
DWORD (Number of Entries)
 
DWORD (Number of Entries)
 
Two bytes
 
Two bytes
Line 245: Line 238:
 
</pre>
 
</pre>
  
===Section 9===
+
===Section 9 - Sounds===
 
<pre>
 
<pre>
'''Start Section #9 - Sounds'''
 
 
DWORD (Number of Entries)
 
DWORD (Number of Entries)
 
6 Bytes <<<---Always 0x000000000000
 
6 Bytes <<<---Always 0x000000000000
Line 255: Line 247:
 
</pre>
 
</pre>
  
===Section 10===
+
===Section 10 - Effective Radius?===
 +
This section appears to be related to effective radius (meteor_shadow_water, tornado_scuff_terrain, ufo_ma_topbluering).
 
<pre>
 
<pre>
'''Begin Section #10''' - Effective Radius? (meteor_shadow_water''', tornado_scuff_terrain, ufo_ma_topbluering''')
 
 
DWORD (Number of entries)
 
DWORD (Number of entries)
 
DWORD
 
DWORD
Line 265: Line 257:
 
</pre>
 
</pre>
  
===Section 11===
+
===Section 11 - UDI Collisions?===
 
<pre>
 
<pre>
'''Start section #11 - UDI Collisions?
 
 
DWORD (number of entries)
 
DWORD (number of entries)
 
DWORD
 
DWORD
Line 283: Line 274:
 
</pre>
 
</pre>
  
===Section 12===
+
===Section 12 - Main Script Index===
 
<pre>
 
<pre>
'''Start section #12 - Main Script Index'''
 
 
DWORD (Number of Entries)
 
DWORD (Number of Entries)
 
DWORD
 
DWORD
Line 325: Line 315:
 
</pre>
 
</pre>
  
===Section 13===
+
===Section 13 - Main Effect Directory===
 
<pre>
 
<pre>
'''Start Section #13 - Main Effect Directory'''
 
 
DWORD (String Length)
 
DWORD (String Length)
 
String
 
String
Line 333: Line 322:
 
2 Bytes - End of Section
 
2 Bytes - End of Section
  
'''13.5 area'''
+
'''13.5 area:'''
 
BYTE
 
BYTE
 
DWORD
 
DWORD
Line 347: Line 336:
 
</pre>
 
</pre>
  
===Section 14===
+
===Section 14 - Tools FX Linking?===
 +
This section appears to relate to Sections 3 and 5 only.
 
<pre>
 
<pre>
'''Start Section #14 - Tools FX Linking?''' (Relates to Sections 3 and 5 only)
 
 
DWORD (Number of entries)
 
DWORD (Number of entries)
 
DWORD (String Length)
 
DWORD (String Length)
Line 358: Line 347:
 
</pre>
 
</pre>
  
===Section 15===
+
===Section 15 - Class ID Calls===
 
<pre>
 
<pre>
'''Start Final Section #15 - Class ID Calls'''
 
 
DWORD (Number of Entries)
 
DWORD (Number of Entries)
 
DWORD (ClassID) <<<---Class ID Call (from EXE most probably)
 
DWORD (ClassID) <<<---Class ID Call (from EXE most probably)

Revision as of 18:23, 24 November 2012


EFFDIR is the Effect Resource Tree for SimCity 4. The EFFDIR is located in SimCity_1.dat and has TGI 0xEA5118B0 0xEA5118B1 0x00000001.

Specification

The specification is as follows:

Header

The header calls out the version number of the file. Vanilla SC4 is 3.1, Rush Hour/Deluxe is 4.2.

WORD - Major Version EFFDIR 
WORD - Minor Version EFFDIR

Section 1 - Main Section - Terrain Independent FSHs and S3Ds

DWORD (Number of Entries)
	DWORD
	DWORD (0x00000000) <<<---Constant
	DWORD
	DWORD <<<---Effect Duration Minimum
	DWORD <<<---Effect Duration Maximum
	DWORD <<<---Number Released At High Detail
	DWORD <<<---Repeat flag (=0 runs continuously, >0 runs once)
	DWORD
	DWORD
	DWORD
	DWORD <<<---Time Delay Minimum
	DWORD <<<---Time Delay Maximum
	DWORD <<<---X-Axis Push Minimum
	DWORD <<<---Z-Axis Push Minimum
	DWORD <<<---Y-Axis Push Minimum
	DWORD <<<---X-Axis Push Maximum
	DWORD <<<---Z-Axis Push Maximum
	DWORD <<<---Y-Axis Push Maximum
	DWORD <<<---Initial Velocity Minimum
	DWORD <<<---Initial Velocity Maximum
	DWORD <<<---Initial X-Axis Shift Minimum
	DWORD <<<---Initial Z-Axis Shift Minimum
	DWORD <<<---Initial Y-Axis Shift Minimum
	DWORD <<<---Initial X-Axis Shift Maximum
	DWORD <<<---Initial Z-Axis Shift Maximum
	DWORD <<<---Initial Y-Axis Shift Maximum
	DWORD <<<---Initial Size Variation %
	DWORD <<<---Initial X-Axis Stretch Max
	DWORD <<<---Initial Spin Variation Max
	DWORD
	DWORD <<<---Initial Alpha Variation Max
	DWORD <<<---Initial Color Variation % (Red)
	DWORD <<<---Initial Color Variation % (Green)
	DWORD <<<---Initial Color Variation % (Blue)
	DWORD (Number of reps)
		DWORD reps
	DWORD (Number of reps) <<<---Color Adjustments Over Time (Percentage of red, green, and blue)
		12-Byte reps <<<---Float32(1st DWORD=Red, 2nd DWORD=Green, 3rd DWORD=Blue)
	DWORD (Number of reps) <<<---Brightness Adjustments Over Time (Percentage)
		DWORD reps <<<---Float32
	DWORD (Number of reps) <<<---Size Over Time (Percentage)
		DWORD reps <<<---Float32
	DWORD (Number of reps) <<<---X-Axis Shrink/Stretch Over Time (Percentage)
		DWORD reps <<<---Float32
	DWORD (Number of reps) <<<---Spin Over Time (Might Be Rotation Speed Spread[Randomized])
		DWORD reps
	DWORD (Resource Key) 
	2 Bytes
	DWORD
	DWORD <<<---Direction of Travel Blur (0=none,<>0 decreasing amounts of blur)
	DWORD <<<---X-Axis Force (Wind)
	DWORD <<<---Z-Axis Force (Lift/Gravity)
	DWORD <<<---Y-Axis Force (Wind)
	DWORD <<<---Carry
	DWORD
	DWORD
	DWORD
	DWORD
	DWORD 
	DWORD <<<---Spiral Travel Pattern Maximum
	DWORD (Number of reps)
		28-byte reps
	DWORD
	DWORD
	DWORD
	DWORD
	DWORD
	DWORD
	DWORD (Number of reps)
		DWORD reps
	DWORD
	DWORD
	DWORD
	DWORD
	DWORD
	DWORD (usually 0xce6e6b28=-1,000,000,000)
	DWORD (usually0x3f800000 or 0x00000000)
	DWORD (usually 0x3f800000=1)
	DWORD (usually 0xc61c4000=-10,000)
	DWORD (usually 0x461c4000=10,000)
	DWORD (String Length)
		String (Only if String Length > 0)
	DWORD (Usually 0x00010000)
	DWORD (Usually 0x3f800000=1)
	DWORD (usually 0x40a00000=5)
	DWORD (usually 0x40a00000=5)
	DWORD (usually 0x42480000=50)
	DWORD (usually 0x42480000=50)
	DWORD (usually 0x3dcccccc=0.1)
	DWORD (usually 0x3e4ccccd=0.2)
	DWORD
	DWORD
	DWORD
	DWORD
	DWORD
	DWORD
	DWORD (Number of reps)
		DWORD reps
	DWORD
	DWORD
	DWORD (Number of reps) <<<---Coordinate System For Movement
		32-byte reps <<<---8xFloat32(X,Z,Y,X,Z,Y,Sequence Number, Sequence Number)
	DWORD
	DWORD (Number of sub-entries)
		DWORD (String Length)	
		String (Only if String Length > 0)
		DWORD
	DWORD
	DWORD
	DWORD (Number of reps) <<<---List of Resource Keys (Used to place random S3Ds)
		DWORD reps <<<---Uint32
	DWORD
	DWORD
	DWORD (Number of reps)
		DWORD reps
	DWORD (0x40800000) -- End of entry
0x0001 - End of Section

Section 2 - Terrain Dependent FSHs

DWORD (Number of Entries)
	DWORD
	DWORD (Resource Key)
	1 Byte <<<---Inverse Flag: 00=Normal, 01=No Inverse (i.e. hidden by obstructions), 03=Inverse (Viewed when behind obstruction)
	1 Byte <<<---Repeat Flag:  01=Repeat Continuously, 02=Run Once-Then Disappear, 03+=Run Once-Then Hold
	DWORD <<<---Effect Speed (Higher numbers run slower)
	DWORD (Number of reps) <<<---Rotation Over Time
		DWORD reps <<<---Float32
	DWORD (Number of reps) <<<---Size Adjustments Over Time (Percentage)
		DWORD reps <<<---Float32
	DWORD (Number of reps) <<<---Alpha Adjustments Over Time (Percentage)
		DWORD reps <<<---Float32
	DWORD (Number of reps) <<<---Color Adjustments Over Time (Percentage of red, green, and blue)
		12-byte reps <<<---Float32(1st DWORD=Red, 2nd DWORD=Green, 3rd DWORD=Blue)
	DWORD (Number of reps) <<<---Always 0x00000001
		DWORD reps <<<---Y-Axis Stretch Adjustments Over Time
	DWORD <<<---Initial Intensity Variation
	DWORD <<<---Initial Size Variation
	DWORD
	DWORD
	DWORD
	DWORD
0x0000 - End of section

Section 3

DWORD (Number of Entries)
	DWORD
	DWORD
	DWORD (Number of reps)
		DWORD reps
	DWORD (Number of reps)
		DWORD reps
	5 bytes
0x0000 End of Section

Section 4 - Terrain Effects?

This section appears to contain information about craters and erosion.

DWORD (Number of Entries)
	DWORD (Number of reps)
		12-byte reps
	DWORD (Number of reps)
		DWORD reps
	DWORD

Section 5 - Brush (Cursor) Exemplars

DWORD (Number of entries)
	Two bytes
	DWORD (Resource Key)
	DWORD
	DWORD
	5 Bytes
	DWORD
	DWORD
	DWORD
	DWORD
	DWORD

Section 6 - LUA Occupant Groups, Generators, and Attractors

DWORD (Number of Entries)
	Two bytes <<<---Always 0x0000
	DWORD (Length of string)
		String <<<---Points to an entry in the LUA files
	1 byte <<<---Type ID: 00=Attractor or Generator, 01=Occupant_group

Section 7 - Earthquakes(Destructive)?

DWORD (Number of Entries)
	22 Bytes
	DWORD
	4 Bytes
	DWORD
	8 Bytes
	DWORD
	DWORD
	DWORD
	DWORD
	DWORD
	8 Bytes

Section 8 - Randomized Picks

DWORD (Number of Entries)
	Two bytes
	DWORD (Number of sub-entries)
		DWORD
		DWORD
		DWORD (String Length)
			String <<<---Used to Redirect to Another Entry in Section #13
	DWORD

Section 9 - Sounds

DWORD (Number of Entries)
	6 Bytes <<<---Always 0x000000000000
	DWORD (Resource Key)
	DWORD 
	DWORD <<<---Always 0x00000000

Section 10 - Effective Radius?

This section appears to be related to effective radius (meteor_shadow_water, tornado_scuff_terrain, ufo_ma_topbluering).

DWORD (Number of entries)
	DWORD
	DWORD
	DWORD
0x0001 (End of section)

Section 11 - UDI Collisions?

DWORD (number of entries)
	DWORD
	DWORD (String Length)
		String (Only if String Length > 0)
	DWORD
	DWORD
	DWORD
	DWORD
	DWORD
	DWORD
	DWORD
	DWORD
0x0002 (End of section)

Section 12 - Main Script Index

DWORD (Number of Entries)
	DWORD
	DWORD (0x01, 0x03, or 0x05 only)
	DWORD (Number of Primary Indices)
		DWORD (String Length)
			String (Only if String Length > 0)
		Byte (Index Flag) <<<---Indicates which section the Index Key belongs to (See notes below)
		DWORD
		DWORD
		8 Bytes
		DWORD
		DWORD
		DWORD
		DWORD
		DWORD
		DWORD
		DWORD <<<---X-Axis Shift (Float32)
		DWORD <<<---Z-Axis Shift (Float32)
		DWORD <<<---Y-Axis Shift (Float32)
		DWORD
		10 Bytes
		DWORD
		DWORD
		DWORD
		DWORD
		2 Bytes (Random) <<<---0x0000=Always Appears, Non-Zero=Randomized chance (Can be set into groups with this number)
		2 Bytes (Random Chance) <<<---% Chance that effect will appear
		DWORD (Index Key) <<<---Points to entry in appropriate section
	DWORD (Number of Secondary Indices) <<<---Screen Shake Indices??
		DWORD
		DWORD (String Length) 
			String (Only if String Length > 0)
		DWORD
		DWORD (Index Key)
	DWORD (0x00000000)
	DWORD (0x00000000)
	2 DWORDs (0xCCCCCCCC or 0x00000000 each)

Section 13 - Main Effect Directory

	DWORD (String Length)
		String
	DWORD (Index Key) <<<---Points to entry in section #12
2 Bytes - End of Section

'''13.5 area:'''
BYTE
DWORD
FLOAT
FLOAT
FLOAT
FLOAT
FLOAT
FLOAT
FLOAT
FLOAT
FLOAT

Section 14 - Tools FX Linking?

This section appears to relate to Sections 3 and 5 only.

DWORD (Number of entries)
	DWORD (String Length)
		String <<<---Points to an entry in section #13
	DWORD (Group Property) <<<---Call from exe or exemplar
	DWORD (Instance Property) <<<---Call from exe or exemplar
0x0000 End of section

Section 15 - Class ID Calls

DWORD (Number of Entries)
	DWORD (ClassID) <<<---Class ID Call (from EXE most probably)
	DWORD (String Length)
		String <<<---Points to an entry in section #13

Index Flags

0x00 - Section #1
0x01 - Section #2
0x02 - Redirection - String Points to an entry in section #13
0x03 - Section #4
0x04 - Section #6
0x05 - Section #7
0x06 - Section #8
0x07 - Section #9
0x08 - Section #10
0x10 - Section #11