Jump to content

EFF V2.0 discrepancy between IESDP and Near Infinity


Recommended Posts

I've noticed several differences between the EFF V2.0 structures as defined in IESDP and by Near Infinity:

Offset  Size  IESDP structure         Size  Near Infinity structure
0x00    4     Signature               4     Signature
0x04    4     Version                 4     Version
0x08    4     Opcode                  4     Type
0x0c    4     Target type             4     Target
0x10    4     Power                   4     Power
0x14    4     Parameter 1             4     Parameter 1
0x18    4     Parameter 2             4     Parameter 2
0x1c    2     Timing mode             4     Timing mode
0x1e    2     Timing?                 -     -
0x20    4     Duration                4     Duration
0x24    2     Probability 1           2     Probability 1
0x26    2     Probability 2           2     Probability 2
0x28    8     Resource                8     Resource
0x30    4     Dice thrown             4     # dice thrown
0x34    4     Dice sides              4     Dice size
0x38    4     Saving throw type       4     Save type
0x3c    4     Save bonus              4     Save bonus
0x40    4     Set local variable      4     Special (Parameter 2.5)   <-- Same meaning?
0x44    4     Primary type            4     Primary type
0x48    4     Unknown                 4     Unknown
0x4c    4     Minimum level           4     Minimum level
0x50    4     Maximum level           4     Maximum level
0x54    4     Resistance              4     Dispel/Resistance
0x58    4     Parameter 3             4     Parameter 3
0x5c    4     Parameter 4             4     Parameter 4
0x60    8     Resource 2              4     Unknown                   <-- Discrepancy
0x64    -     -                       4     Time applied (ticks)      <-- Discrepancy
0x68    8     Resource 3              8     Resource 2                <-- Discrepancy
0x70    4     Unknown                 8     Resource 3                <-- Discrepancy
0x74    4     Unknown                 -     -                         <-- Discrepancy
0x78    4     Caster X coordinate     4     Caster location X
0x7c    4     Caster Y coordinate     4     Caster location Y
0x80    4     Target X coordinate     4     Target location X
0x84    4     Target Y coordinate     4     Target location Y
0x88    4     Parent resource type    4     Resource type
0x8c    8     Parent resource         8     Parent resource
0x94    4     Parent resource flags   4     Resource flags
0x98    4     Projectile              4     Impact projectile
0x9c    4     Parent resource slot    4     Source item slot
0xa0    32    Variable                32    Variable name
0xc0    4     Caster level            4     Caster level
0xc4    4     Internal flags          4     Internal flags
0xc8    4     Secondary type          4     Secondary type
0xcc    60    Unknown                 4     Unknown
0xd0    -     -                       56    Unknown

Which structure definition is the correct one?

Link to comment

Set local variable is the 'old name' for 'special' field. Its old name is valid only in the store local variable opcode where it was first discovered. Since then, EE uses the special field in other opcodes extensively, mostly because this field is present in EFF V1.0 too, so it can be used without external eff (EFF V2.0)

 

School is stored on a DWORD, so technically the WORD after the primary type is not 'unknown'.

 

0x48 - is a previously unused field. EE uses it to discern primary and secondary targets in the scorcher (used only internally).

 

After the resistance flags, there are 4 dwords. The last of them used to store the time it was first applied.

After those there are 2 resrefs for the second and third resources.

 

So, NI is structurally correct, IESDP is not.

LONG Parameter3
LONG Parameter4 - also used for slow poison
LONG Parameter5 - currently not used by ANYTHING
LONG Parameter6 - repurposed for first casting time in EE
RESREF Resource2
RESREF Resource3
Link to comment

 

LONG Parameter3
LONG Parameter4 - also used for slow poison
LONG Parameter5 - currently not used by ANYTHING
LONG Parameter6 - repurposed for first casting time in EE
RESREF Resource2
RESREF Resource3

 

Parameter5 is at least set (to 1) when using opcode 177.

I don't know if it's actually used, as changing it zero and two had no noticeable effect.

But, the game did always reset it back to 1 after loading and saving the game.

Link to comment
Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...