Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feature] missing chunking on excessive death / shattering #128

Open
lynxlynxlynx opened this issue Apr 14, 2019 · 0 comments
Open

[feature] missing chunking on excessive death / shattering #128

lynxlynxlynx opened this issue Apr 14, 2019 · 0 comments
Labels
feature feature request research needed usually means testing in the original, to see how it behaved system: animations system: projectiles

Comments

@lynxlynxlynx
Copy link
Member

lynxlynxlynx commented Apr 14, 2019

When an overkill occurs, a petrified or frozen enemy is damaged, the actor is gibbed. We support this, but there is no visual feedback.

Info from kjeron:

Chunking causes a permanent animation change (to EXPLODING_TORSO animation) and a (hair/skin/major/minor) color change (all to a red color). It depends on the death type.
Chunked Death and Destruction Death result in animation [0x230][EXPLODING_TORSO], and set all color indexes to 70.

The explosion is a mix of all the EXPLODING_PART animations, in relatively bipedal quantities.
I don't know exactly what generates the "explosion", but it is similar to that created by projectiles using a "Fragments Animation", like "TRAPSNAR.PRO". Change it to "EXPLODING_TORSO" and you will see a similar explosion (just with more body parts and no variety).

[0x200][EXPLODING_ARM], [0x210][EXPLODING_HEAD], [0x220][EXPLODING_FOOT], [0x230][EXPLODING_TORSO], and [0x240][EXPLODING_LEG] all use the various cycles of "SPBLOOD.BAM". Arm is cycle 1, head is cycle 2, leg is cycle 3, torso is cycle 4, leg is cycle 5.
The "explosion" is rather unique, as it actually causes the creature to "jump" in place, which can be seen if you reset the animation during the explosion.

Exploding Stone and Exploding Frozen Death result in animation [0x100][CHUNKS], and set all color indexes to 72(stone) or 71(ice). It uses "SPCHUNKS.BAM"

Chunk coloring was also supposed to be animation tied, but maybe for some other chunks (like what??) or for gibbing critters with non-default blood colors (bloodclr.2da). extanim.2da has COLOR_CHUNKS, but only one entry. Green skeletons in iwd2 Kuldahar already get recolored nicely, so it looks like there's nothing left to be done wrt colors besides handling SPCHUNKS palettes (and itself, since we now always use SPBLOOD).

Actor::ChunkActor should likely call Map::Sparkle to animate the particles, but the explosion fragment mode (or a new one) needs to be added first. See PAF_FRAGMENT and fragments in Particles.h (finish implementation) and SPARKLE_EXPLOSION, which is likely the same reason for #141 . Otherwise there is no fountain of flesh and the chunks all appear unanimated in the same spot.

some iwd2 logic: https://github.com/alexbatalov/iwd2-re/blob/main/src/CGameAnimationTypeEffect.cpp#L33
some nice examples (even bouncing): https://youtu.be/3AqKKJnGS08?si=bmYj7GFW3_85xoqE&t=312

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature feature request research needed usually means testing in the original, to see how it behaved system: animations system: projectiles
Projects
None yet
Development

No branches or pull requests

1 participant