CheckActivatorProjectileClass

Moderator: GZDoom Developers

User avatar
GooberMan
Posts: 1336
Joined: Fri Aug 08, 2003 12:57 am
Location: Helsinki, Finland

Re: CheckActivatorProjectileClass

Post by GooberMan »

Xaser wrote:I can't seem to read this as anything other than "It's not a hack if I write the code myself,"
It was more of a challenge to see what he thinks makes it a hack. I can certainly think of the wrong way to implement it right off the top of my head. It's also the easiest way to implement it.

But moving on.

There's only one thing with the originator - you still need to change the entire activation behaviour for projectiles to get this information. I keep on bringing up lines because everyone is looking at it in explicit scripting terms here. There's basic systems in place - since the day Doom was released no less - for determing what activated a special.

Activators exist in the code as a concept, but are only represented by a single actor pointer. Without that MissilesActivateImpactLines set, that's either a player or a "monster". This is quite limiting, and results in such situations as actor pointers which requires familiarity with ACS and at least intermediate knowledge.

It's ludicrous to suggest that something that's so easily set up in an editor via the basic systems of Doom maps introduced almost 20 years ago should be locked off to people with an intermediate knowledge of a scripting language bolted on several years after those basics were created.

Refactoring activators in code to be more than just an actor starts introducing very powerful basic concepts. All it needs is a struct that can contain that activating actor. What else? How about an enumeration to stipulate the activation reason? Use, bump, walk, projectile. Those are the basic reasons. An ActivationReason() function suddenly becomes a possibility. Can you picture a switch that gets destroyed if you shoot it but is functional up to that point? Completely possible with a script operating on the results of that function without elaborate scripts to back it up. And it doesn't require intermediate knowledge such as actor pointers.

Projectiles are the odd one out of those basic reasons. They're the only activation reason that requires knowledge of another actor. So put the actor in the activator struct. It's quite obviously already possible to obtain those projectile actors because otherwise MissilesActivateImpactLines wouldn't exist. Information functions for querying that projectile are then required.

The barrier for entry due to a code refactor like that is lowered. You don't need to set a flag somewhere else to access what should be basic information. This also doesn't exclude more intermediate concepts such as Originator actor pointers - which, to be clear, is just as "highly-specialized" and "only useful in a subset of cases" as including projectile information at a basic level. What behaviour does it have when MissilesActivateImpactLines isn't set? What is an originator in that case? An originator is only a useful concept with that flag on, and what percentage of released ZDoom mods do that?
GooberMan wrote:I have no immediate use for this, so it's a "nice to have" thing.
So this has been a needlessly long discussion.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49252
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: CheckActivatorProjectileClass

Post by Graf Zahl »

edward850 wrote: That's quite a bit of work, maintenance and such for one function, don't you think? Especially if a solution which already works has already been presented, despite the fact that you don't like it for what ever reason.


Here's the issue I have with it.
The suggested feature is quite a bit of work just to avoid some minor inconvenience (OMG! Two lines of code per script that needs to be checked. The world must be coming to an end!)

Sorry, this will get filed under 'not needed'.
User avatar
NeuralStunner
 
 
Posts: 12328
Joined: Tue Jul 21, 2009 12:04 pm
Preferred Pronouns: No Preference
Operating System Version (Optional): Windows 11
Graphics Processor: nVidia with Vulkan support
Location: capital N, capital S, no space
Contact:

Re: CheckActivatorProjectileClass

Post by NeuralStunner »

Graf Zahl wrote:The suggested feature is quite a bit of work just to avoid some minor inconvenience (OMG! Two lines of code per script that needs to be checked. The world must be coming to an end!)
You're forgetting that projectile-activation requires a particular MapInfo flag, which:
  1. Is not mod-portable, because it has to be enabled in specific maps.
  2. More importantly, changes activation rules for everything else in the map, which is even less mod-portable.
Maps+Scripts and Actors+Scripts do not always go together any more.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49252
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: CheckActivatorProjectileClass

Post by Graf Zahl »

This would be a perfectly useless setup for non-map mods so I really do not care.
User avatar
Xaser
 
 
Posts: 10774
Joined: Sun Jul 20, 2003 12:15 pm
Contact:

Re: CheckActivatorProjectileClass

Post by Xaser »

I don't see how the issue of gameplay mods applies here, since we're talking about linedef activation, which is not something that's generally added to a gameplay mod. :P
User avatar
GooberMan
Posts: 1336
Joined: Fri Aug 08, 2003 12:57 am
Location: Helsinki, Finland

Re: CheckActivatorProjectileClass

Post by GooberMan »

Well, all specials get activated by something. Cleaning up activators has more far-reaching implications than just linedefs. A "decorate" activation reason, for example, is just as applicable to everything I wrote above.

Still. The "Not Needed" resolution is perfectly valid if you don't want to spend more than five minutes doing the feature. Which is quite clearly the case with Graf. Chalk it up to another feature I'll do myself when I get the time/clearance (which, to be quite honest, I've started posting feature requests so that I can do them myself if no one else has the time before I get to them).
User avatar
edward850
Posts: 5904
Joined: Tue Jul 19, 2005 9:06 pm
Location: New Zealand
Contact:

Re: CheckActivatorProjectileClass

Post by edward850 »

GooberMan wrote:Still. The "Not Needed" resolution is perfectly valid if you don't want to spend more than five minutes doing the feature. Which is quite clearly the case with Graf.
Because insulting everyone else when they don't agree with your ideas is a good idea, right?
User avatar
GooberMan
Posts: 1336
Joined: Fri Aug 08, 2003 12:57 am
Location: Helsinki, Finland

Re: CheckActivatorProjectileClass

Post by GooberMan »

What, there nothing else to discuss so you have to try to derail a finished thread?

PM me if you have a problem with how I've acted in this thread or report it to a mod.
User avatar
Xaser
 
 
Posts: 10774
Joined: Sun Jul 20, 2003 12:15 pm
Contact:

Re: CheckActivatorProjectileClass

Post by Xaser »

GooberMan wrote:What, there nothing else to discuss so you have to try to derail a finished thread?
There's no such thing as a "finished thread." Except for a locked one.

(I'm not intending this to be a cue, but it might be one anyway. :P )
Post Reply

Return to “Closed Feature Suggestions [GZDoom]”