Difference between revisions of "EFFDIR"

From SC4D Encyclopaedia
Jump to navigation Jump to search
sc4e>Whatevermind
(Created page)
 
sc4e>Whatevermind
m (general cleanup, evolving standards, etc.)
Line 1: Line 1:
 
{{MTS2}}
 
{{MTS2}}
  
'''EFFDIR''' is the Effect Resource Tree for [[SimCity 4]].  The EFFDIR is located in SimCity_1.dat and has [[TGI]] ea5118b0 ea5118b1 00000001.
+
'''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:
 
The specification is as follows:
 +
 +
===Header===
 
<pre>
 
<pre>
 
''' Vanilla is 3.1, Rush Hour is 4.2
 
''' Vanilla is 3.1, Rush Hour is 4.2
 
WORD - Major Version EFDIR  
 
WORD - Major Version EFDIR  
WORD - Minor Version EFDIR  
+
WORD - Minor Version EFDIR
 +
</pre>
  
 +
===Section 1===
 +
<pre>
 
'''Start Section #1 - Main Section - Terrain Independent FSHs and S3Ds'''
 
'''Start Section #1 - Main Section - Terrain Independent FSHs and S3Ds'''
 
DWORD (Number of Entries)
 
DWORD (Number of Entries)
Line 128: Line 134:
 
DWORD (0x40800000) -- End of entry
 
DWORD (0x40800000) -- End of entry
 
0x0001 - End of Section
 
0x0001 - End of Section
 +
</pre>
  
 
+
===Section 2===
 +
<pre>
 
'''Start Section #2 - Terrain Dependent FSHs'''
 
'''Start Section #2 - Terrain Dependent FSHs'''
 
DWORD (Number of Entries)
 
DWORD (Number of Entries)
Line 154: Line 162:
 
DWORD
 
DWORD
 
0x0000 - End of section
 
0x0000 - End of section
 +
</pre>
  
 
+
===Section 3===
 +
<pre>
 
'''Start Section #3'''
 
'''Start Section #3'''
 
DWORD (Number of Entries)
 
DWORD (Number of Entries)
Line 166: Line 176:
 
5 bytes
 
5 bytes
 
0x0000 End of Section
 
0x0000 End of Section
 +
</pre>
  
 
+
===Section 4===
 +
<pre>
 
'''Start Section #4 - Terrain Effects? (craters and erosion)'''
 
'''Start Section #4 - Terrain Effects? (craters and erosion)'''
 
DWORD (Number of Entries)
 
DWORD (Number of Entries)
Line 175: Line 187:
 
DWORD reps
 
DWORD reps
 
DWORD
 
DWORD
 +
</pre>
  
 
+
===Section 5===
 +
<pre>
 
'''Start Section #5 - Brush (Cursor) Exemplars'''
 
'''Start Section #5 - Brush (Cursor) Exemplars'''
 
DWORD (Number of entries)
 
DWORD (Number of entries)
Line 189: Line 203:
 
DWORD
 
DWORD
 
DWORD
 
DWORD
 +
</pre>
  
 
+
===Section 6===
 +
<pre>
 
'''Start Section #6 - LUA Occupant Groups, Generators, and Attractors'''
 
'''Start Section #6 - LUA Occupant Groups, Generators, and Attractors'''
 
DWORD (Number of Entries)
 
DWORD (Number of Entries)
Line 197: Line 213:
 
String <<<---Points to an entry in the LUA files
 
String <<<---Points to an entry in the LUA files
 
1 byte <<<---Type ID: 00=Attractor or Generator, 01=Occupant_group
 
1 byte <<<---Type ID: 00=Attractor or Generator, 01=Occupant_group
 +
</pre>
  
 
+
===Section 7===
'''Start Section #7 -- Earthquakes(Destructive)?+'''
+
<pre>
 +
'''Start Section #7 -- Earthquakes(Destructive)?'''
 
DWORD (Number of Entries)
 
DWORD (Number of Entries)
 
22 Bytes
 
22 Bytes
Line 212: Line 230:
 
DWORD
 
DWORD
 
8 Bytes
 
8 Bytes
 +
</pre>
  
 
+
===Section 8===
 +
<pre>
 
'''Start Section #8 -- Randomized Picks'''
 
'''Start Section #8 -- Randomized Picks'''
 
DWORD (Number of Entries)
 
DWORD (Number of Entries)
Line 223: Line 243:
 
String <<<---Used to Redirect to Another Entry in Section #13
 
String <<<---Used to Redirect to Another Entry in Section #13
 
DWORD
 
DWORD
 +
</pre>
  
 
+
===Section 9===
 +
<pre>
 
'''Start Section #9 - Sounds'''
 
'''Start Section #9 - Sounds'''
 
DWORD (Number of Entries)
 
DWORD (Number of Entries)
Line 231: Line 253:
 
DWORD  
 
DWORD  
 
DWORD <<<---Always 0x00000000
 
DWORD <<<---Always 0x00000000
 +
</pre>
  
 
+
===Section 10===
 +
<pre>
 
'''Begin Section #10''' - Effective Radius? (meteor_shadow_water''', tornado_scuff_terrain, ufo_ma_topbluering''')
 
'''Begin Section #10''' - Effective Radius? (meteor_shadow_water''', tornado_scuff_terrain, ufo_ma_topbluering''')
 
DWORD (Number of entries)
 
DWORD (Number of entries)
Line 239: Line 263:
 
DWORD
 
DWORD
 
0x0001 (End of section)
 
0x0001 (End of section)
 +
</pre>
  
 
+
===Section 11===
 +
<pre>
 
'''Start section #11 - UDI Collisions?
 
'''Start section #11 - UDI Collisions?
 
DWORD (number of entries)
 
DWORD (number of entries)
Line 255: Line 281:
 
DWORD
 
DWORD
 
0x0002 (End of section)
 
0x0002 (End of section)
 +
</pre>
  
 
+
===Section 12===
 +
<pre>
 
'''Start section #12 - Main Script Index'''
 
'''Start section #12 - Main Script Index'''
 
DWORD (Number of Entries)
 
DWORD (Number of Entries)
Line 295: Line 323:
 
DWORD (0x00000000)
 
DWORD (0x00000000)
 
2 DWORDs (0xCCCCCCCC or 0x00000000 each)
 
2 DWORDs (0xCCCCCCCC or 0x00000000 each)
 +
</pre>
  
 
+
===Section 13===
 +
<pre>
 
'''Start Section #13 - Main Effect Directory'''
 
'''Start Section #13 - Main Effect Directory'''
 
DWORD (String Length)
 
DWORD (String Length)
Line 315: Line 345:
 
FLOAT
 
FLOAT
 
FLOAT
 
FLOAT
 +
</pre>
  
 
+
===Section 14===
 +
<pre>
 
'''Start Section #14 - Tools FX Linking?''' (Relates to Sections 3 and 5 only)
 
'''Start Section #14 - Tools FX Linking?''' (Relates to Sections 3 and 5 only)
 
DWORD (Number of entries)
 
DWORD (Number of entries)
Line 324: Line 356:
 
DWORD (Instance Property) <<<---Call from exe or exemplar
 
DWORD (Instance Property) <<<---Call from exe or exemplar
 
0x0000 End of section
 
0x0000 End of section
 +
</pre>
  
 
+
===Section 15===
 +
<pre>
 
'''Start Final Section #15 - Class ID Calls'''
 
'''Start Final Section #15 - Class ID Calls'''
 
DWORD (Number of Entries)
 
DWORD (Number of Entries)
Line 331: Line 365:
 
DWORD (String Length)
 
DWORD (String Length)
 
String <<<---Points to an entry in section #13
 
String <<<---Points to an entry in section #13
 +
</pre>
  
 
+
==Index Flags==
''Index Flags:
+
<pre>
 
0x00 - Section #1
 
0x00 - Section #1
 
0x01 - Section #2
 
0x01 - Section #2

Revision as of 18:10, 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

''' Vanilla is 3.1, Rush Hour is 4.2
WORD - Major Version EFDIR 
WORD - Minor Version EFDIR

Section 1

'''Start 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

'''Start 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

'''Start 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

'''Start Section #4 - Terrain Effects? (craters and erosion)'''
DWORD (Number of Entries)
	DWORD (Number of reps)
		12-byte reps
	DWORD (Number of reps)
		DWORD reps
	DWORD

Section 5

'''Start 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

'''Start 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

'''Start 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

'''Start 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

'''Start Section #9 - Sounds'''
DWORD (Number of Entries)
	6 Bytes <<<---Always 0x000000000000
	DWORD (Resource Key)
	DWORD 
	DWORD <<<---Always 0x00000000

Section 10

'''Begin Section #10''' - Effective Radius? (meteor_shadow_water''', tornado_scuff_terrain, ufo_ma_topbluering''')
DWORD (Number of entries)
	DWORD
	DWORD
	DWORD
0x0001 (End of section)

Section 11

'''Start 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

'''Start 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

'''Start 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

'''Start Section #14 - Tools FX Linking?''' (Relates 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

'''Start Final 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