Displacer Posted September 2, 2009 Share Posted September 2, 2009 Offset 0x44 is listed as Reputation and as 1 signed byte. It is loaded into memory as a word, it needs a bit more research but I don't think the following byte Hide In Shadows (base) is used, it looks like it is just one word for Reputation. Offset 0x242 Morale Recovery Time is listed as a byte, but it is loaded as a word so I believe the unknown at 0x243 is actually part of 0x242 Link to comment
devSin Posted September 2, 2009 Share Posted September 2, 2009 Hide in Shadows was first added in BG2 (there's just the Stealth/Move Silently stat before then, so this reputation's probably a word in BG/TotSC too). Recovery time should be a word in all engines. Link to comment
Displacer Posted September 2, 2009 Author Share Posted September 2, 2009 Ok, I am heading into the code that processes the Effects. The IESDP doesn't have the embedded effects listed, but someone on here gave me this list: 0x00 (word) Type 0x02 ( byte) Target 0x03 ( byte) Power 0x04 (dword) Parameter1 0x08 (dword) Parameter2 0x0C ( byte) Timing Mode 0x0D ( byte) Dispel/Resistance 0x0E (4 bytes) Duration 0x12 (1 byte) Probability 1 0x13 (1 byte) Probability 2 0x14 (8 byte) Unknown (string of some sort?) 0x1C (4 byte) # dice/Max Level 0x20 (4 byte) Dice size/Min Level 0x24 (4 byte) Save type 0x28 (4 byte) Save bonus 0x2C (4 byte) Unknown Can someone verify that this is correct? If so the first effect I've ran through, number 0, has a word @0x0C. The processing function looks like its for all effects so this may be true for all of them. Link to comment
devSin Posted September 2, 2009 Share Posted September 2, 2009 It wouldn't be surprising, but the effects of values in the field (when saved by the BioWare toolset at least) is known for both bytes, so the specific representation isn't all that important (I believe it can get extra bits and such when saved on disk, but those would never be set beforehand on an item or spell, so it's not researched exactly what's going on). You'll likely find that +0x12 is also a word (it was separated into bytes for BG2), +0x14 is the resref field used only in a fraction of the effects, and +0x1c and +0x20 act as dice values instead of level ranges in a very small number of effects (probably two or three at most in normal IE). Link to comment
Displacer Posted September 2, 2009 Author Share Posted September 2, 2009 Yep, 0x12 is loaded as a word. I ran through effect 0 just to get a feel on how this stuff is being used and learned a few things about it. First the AC that's being modified cannot go above 20, or below -20. If it does it is manually set to one of those values. I assume this makes it important when this effect is applied. If for some reason you're AC is set to 25, and this effect reduces it to 23 it will still be manually set to 20, effectively bypassing whatever set it to 25 (or at least part of it). Link to comment
Displacer Posted September 2, 2009 Author Share Posted September 2, 2009 Hm, there is a lot of bounds checking in the effects that aren't listed in the IESDP, such as the ones for effect 0 I already stated. Effect 1 also has some, and an apparent error. The error is in the Type field, it is posted that 3 is the same as 0, but from what I'm seeing anything above 2 will spit an error, or crash with an exception. Also for bounds checking, type 0 can only modify to 5, type 2 can modify to 10. If type 0 goes over 5 it is manually set to 5. Perhaps I should start another thread about effects... Link to comment
igi Posted September 3, 2009 Share Posted September 3, 2009 Added, thanks. Effect 1 also has some, and an apparent error. The error is in the Type field, it is posted that 3 is the same as 0, but from what I'm seeing anything above 2 will spit an error, or crash with an exception. Also for bounds checking, type 0 can only modify to 5, type 2 can modify to 10. If type 0 goes over 5 it is manually set to 5. Perhaps I should start another thread about effects... Yes, that would be easier for me. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.