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

Heretic: Improve Translucency of firing Mummyleaders #1260

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

Noseey
Copy link

@Noseey Noseey commented Jan 17, 2025

Related PR:
#1251

Change Description

With this PR, I would like to provide an improved translucency for firing mummyleaders in Heretic. Instead of making the attack-frame translucent completely, it now works like the translucent weapon sprites: draw base frame and translucent attack over it.

This is mainly to avoid player confusion: In vanilla Heretic, transparent enemy sprites (e. g. charging Wizards, Ghostknights, Ghostmummies) mean, that they can not be damaged by certain weapons (e. g. Mace or Phoenix-Wand). With this change, the normal firing Mummies can now be clearly distinguished from their Ghost counterparts when Translucency is enabled.

New Solution:
2025-01-17 20_59_45-Heretic_ Shadow of the Serpent Riders - Crispy Doom 7 0 0

Previous Solution / Ghostmummie:
2025-01-17 22_15_24-2025-01-17 20_58_00-Heretic_ Shadow of the Serpent Riders - Crispy Doom 7 0 0 pn

Translucency OFF:
2025-01-17 22_16_14-2025-01-17 20_58_30-2025-01-12 14_18_47-Heretic_ Shadow of the Serpent Riders -

@fabiangreffrath
Copy link
Owner

Thank you! But could you try to make the fire fullbright and translucent?

@Noseey
Copy link
Author

Noseey commented Jan 18, 2025

Thank you! But could you try to make the fire fullbright and translucent?

I did some debugging on that and as far as I have seen, the attack frame with the fire already seems to be evaluated as full bright (since the frame value 32792 contains the full-bright flag 0x8000) in R_ProjectSprite. So this condition was true:

    else if (thing->frame & FF_FULLBRIGHT)
        vis->colormap[0] = vis->colormap[1] = colormaps;      // full bright

I'm not sure if there are any other means to get it brighter.

An alternative to make those frames less distractive could also be - instead of using transparency - to just remove the fullbright of those frames overall, like it seems to have been done for the Fire Brazier in info.c, e. g.:

 // [crispy] disable full bright for Fire Brazier, use brightmap instead
    {SPR_KFR1, 0, 3, NULL, S_FIREBRAZIER2, 0, 0},   // S_FIREBRAZIER1
    {SPR_KFR1, 1, 3, NULL, S_FIREBRAZIER3, 0, 0},   // S_FIREBRAZIER2
    {SPR_KFR1, 2, 3, NULL, S_FIREBRAZIER4, 0, 0},   // S_FIREBRAZIER3
    {SPR_KFR1, 3, 3, NULL, S_FIREBRAZIER5, 0, 0},   // S_FIREBRAZIER4
    {SPR_KFR1, 4, 3, NULL, S_FIREBRAZIER6, 0, 0},   // S_FIREBRAZIER5
    {SPR_KFR1, 5, 3, NULL, S_FIREBRAZIER7, 0, 0},   // S_FIREBRAZIER6
    {SPR_KFR1, 6, 3, NULL, S_FIREBRAZIER8, 0, 0},   // S_FIREBRAZIER7
    {SPR_KFR1, 7, 3, NULL, S_FIREBRAZIER1, 0, 0},   // S_FIREBRAZIER8

If you want, I can give this a try. Not sure however, if this can be optional then.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants