Skip to content

Added MOVINGSPECIAL flag#1050

Open
Boondorl wants to merge 1 commit into
UZDoom:trunkfrom
Boondorl:MovingSpecial
Open

Added MOVINGSPECIAL flag#1050
Boondorl wants to merge 1 commit into
UZDoom:trunkfrom
Boondorl:MovingSpecial

Conversation

@Boondorl
Copy link
Copy Markdown
Contributor

This is for items that can be moved around and should be picked up by anything they touch that's capable of doing so.

Checklist

This is for items that can be moved around and should be picked up by anything they touch that's capable of doing so.
@github-actions
Copy link
Copy Markdown

Thanks for opening this PR! We'll review it soon.

I'm a bot that checks for some common problems. I'll update this comment with anything I find.

Nothing to report. Nice :)

@mc776
Copy link
Copy Markdown
Contributor

mc776 commented Feb 18, 2026

Can I suggest that it be called something else though? There are so many things in ZDoom with "special" in it that it gets really confusing.

@Boondorl
Copy link
Copy Markdown
Contributor Author

I'm not really sure what else to call it tbh. MOVINGPICKUP can't be used here because technically any Actor can have SPECIAL so it's not really bound to items specifically

@mc776
Copy link
Copy Markdown
Contributor

mc776 commented Feb 21, 2026

Does this flag actually affect non-pickup behaviour though?

@RicardoLuis0
Copy link
Copy Markdown
Contributor

RicardoLuis0 commented Feb 21, 2026

Does this flag actually affect non-pickup behaviour though?

well, pickups happen on the touch virtual, so if pickups work anything else would, because it means the touch function is being called properly (+SPECIAL for items doesn't mean action specials, it just means that they trigger touch when they, well, touch, an actor with the +PICKUP flag)

@Boondorl
Copy link
Copy Markdown
Contributor Author

+SPECIAL works for everything, so technically this can apply to things that aren't items at all, granted it'll only apply to things with +PICKUP. If this sounds too niche to be useful, consider one of Strife's enemies literally relies on this, so it's a feature used outside of items even in vanilla handling.

Maybe something like +SPECIALCANMOVE would be better, that way things that impact SPECIAL always start with SPECIAL while things that call a special have SPECIAL at the end (e.g. BUMPSPECIAL)

@mc776
Copy link
Copy Markdown
Contributor

mc776 commented Feb 22, 2026

OK so just to be clear, all this "SPECIAL" stuff is totally separate from the "special" that's called with +USESPECIAL and +BUMPSPECIAL, right? (which, just to throw it in there, have nothing to do whatsoever with +SPECIALFIREDAMAGE and none of these in turn have anything to do with +SPECIALFLOORCLIP...)

If so I think the best option is "+CANBEPICKEDUPWHILEMOVING" and "+SPECIAL" deprecated in favour of "+CANBEPICKEDUP".

But that said... what even does this do? It's already possible to pick up items even if they've been given chase states or velocity, so is this about the item also being able to move in to a non-moving picker-upper and be picked up that way despite not being the passive recipient of the bump?

@Boondorl
Copy link
Copy Markdown
Contributor Author

But that said... what even does this do? It's already possible to pick up items even if they've been given chase states or velocity, so is this about the item also being able to move in to a non-moving picker-upper and be picked up that way despite not being the passive recipient of the bump?

Items can only ever be picked up when the other Actor is moving. This means if you have some kind of vacuum effect in your game, the player can stand still and never actually get it. This just allows the inverse case to happen: the item will now check against the other thing on movement to see if it can be picked up

@MrRaveYard
Copy link
Copy Markdown
Contributor

MOVINGSPECIAL or SPECIALMOVE is not intuitive, especially if you're not familiar with inner workings of the engine, but I suppose that's 95% of all the other flags.

For example, I'd do these changes:

SPECIAL -> TOUCHABLE
PICKUP -> CANTOUCH
USESPECIAL -> RUNSPECIALONPLAYERUSE
BUMPSPECIAL -> RUNSPECIALONPLAYERBUMP
TOUCHY -> DIEONCOLLISION

So it would be:
MOVINGSPECIAL -> INSTIGATETOUCH

But if I had no choice but to pick new name only for this flag with current context of everything...
INSTIGATEPICKUP or INSTIGATESPECIAL

@mc776
Copy link
Copy Markdown
Contributor

mc776 commented Feb 27, 2026

I like these!

@RicardoLuis0 RicardoLuis0 added this to the 5.1 milestone Mar 25, 2026
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.

4 participants