skellytz,
RESREF seems to work nicely. You didn't mention it in the exceptions, but the 12xx (dragons) range apparently also doesn't support the resref override? As I said earlier, this range doesn't need resref override, because of buggy implementation, so that was expected. I'm just checking if you intended it to be supported anyways.RESREF override sPrefix for animation BAMs [and soundset 2DA], keep original suffix calculation, injects to most animation type, except:
0xxx ignored, non-pc animation
4xxx ignored, non-pc animation
6xxx ignored, original BG2 and BG1 animation
Bxxx ignored, non-pc animation
Dxxx ignored, non-pc animation
12xx is supported but not tested, i dont see any special "care" in 12xx code
Some more suggestions:
Now that we can override the footcircle (personal space) size, we could also add FALL_SND to EXTANIM, because the fall sounds (called by GetSndDeath(), eg FAL_01B, FAL_02B, FAL_03B) are hardcoded to animation subranges.
it is possible, each animation has dedicated field for storing FallingSound filename
These two aren't very important, but would be useful (details on IESDP):
light_source = boolean
When this attribute is set (=1) then environmental lighting such as day/night, weather or shadows do not affect the creature animation. (bLightSource)
Used for few anims in 73xx(Monster) range
0x7F3B MSOL, use additional GLOW aimation
0x7F3C MASL, use additional GLOW aimation
0x7310 MFIE ELEMENTAL_FIRE
0x7311 MFIS ELEMENTAL_FIRE_SMALL
0x7312 MFIE
0x7313 MFIS
0x7314 MFIE
and many effects:
0x0Bxx
0x0C0xx
...
is light_source really usefull ?
detected_by_infravision = boolean
This attribute indicates whether a red tint is applied to the creature when it is spotted by infravision. (bDetectedByInfravision)
OK, if animations supports it variability, many anim types force it to 1(4xxx) or 0(Dxxx)
brightest = boolean
This attribute defines a blending mode when the sprite is rendered onto the screen. If set without the "multiply_blend" attribute then GL_ONE_MINUS_DST_COLOR blending is performed. If both "brightest" and "multiply_blend" are set then GL_SRC_COLOR blending is performed. (bBrightest)
multiply_blend = boolean
This attribute defines a blending mode when the sprite is rendered onto the screen. If set without the "brightest" attribute then GL_DST_COLOR blending is performed. If both "brightest" and "multiply_blend" are set then GL_SRC_COLOR blending is performed. (I think this could be bBrightestDesired in the classic engine?)
bBrightest and bBrightestDesired are tricky, each animation has fields for both, but field configured after creating animation in some other place later, need more investigating