Using Decorate Functions From Multiple Games?

Ask about ACS, DECORATE, ZScript, or any other scripting questions here!

Moderator: GZDoom Developers

Forum rules
Before asking on how to use a ZDoom feature, read the ZDoom wiki first. If you still don't understand how to use a feature, then ask here.

Please bear in mind that the people helping you do not automatically know how much you know. You may be asked to upload your project file to look at. Don't be afraid to ask questions about what things mean, but also please be patient with the people trying to help you. (And helpers, please be patient with the person you're trying to help!)
Post Reply
heehoo
Posts: 24
Joined: Mon Nov 06, 2017 6:20 am

Using Decorate Functions From Multiple Games?

Post by heehoo »

I've been importing decorative objects from Hexen (using the decorate lump) into my wad file, which is for use in Doom 2. I've hit a snag regarding "native" things, mostly native actor functions. Either my research skills are very poor or there's very little documentation on this. Either way, various functions of these decorative objects rely on what are declared "native" actions, which I'm very confused over.

Whenever lines declaring something to be "native" are used, loading the wad gives the following error message:
Script error, "mywad.wad:DECORATE" line ###: '@property@action' is an unknown actor property

Whenever these lines are not used, but the actions are still called upon during the respective actors' states, it simply turns up an error message that the decorate functions are unknown.

So, I need to know one of two things to keep things going. One, is there a way to define these functions in a way that is compatible with loading the wad in Doom 2 and not Hexen? Two, are these different functions "hard-baked" into Hexen (or the engine knows to use them when the iwad is loaded, still not super sure how this all works) like those of other iwads, and if so, is there a way to have a wad file call upon those as well?
User avatar
Arctangent
Posts: 1235
Joined: Thu Nov 06, 2014 1:53 pm
Contact:

Re: Using Decorate Functions From Multiple Games?

Post by Arctangent »

Well for one, those actors already exist. All the actors native to the games ZDoom natively supports are loaded in, regardless of what game you're playing. All you need to do is add the actor's sprites and sounds, and redefine the sounds in SNDINFO ( as that is game-specific, but you just have to copy the SNDINFO definitions from zdoom.pk3 / hexen.wad ) and you're good to go to summon the actor from the console or with ACS. Then, if you want to place it in a map, you can define its DoomEdNums in a MAPINFO block dedicated to that purpose.

To be more specific, those functions are native to the specific class, much like all weapon functions are native to the [wiki]Weapon[/wiki] class. And like the native Weapon functions, you can use those functions in other actors ... but only if they are, somewhere down the line, derived from the class that the functions are native to. So strictly speaking, because all the native actors are universal to all of ZDoom's games, the native functions are as well - though they're usually not that useful anyway, as they have very specific behavior meant only for use with the actor that defines them.
heehoo
Posts: 24
Joined: Mon Nov 06, 2017 6:20 am

Re: Using Decorate Functions From Multiple Games?

Post by heehoo »

Arctangent wrote:Well for one, those actors already exist. All the actors native to the games ZDoom natively supports are loaded in, regardless of what game you're playing. All you need to do is add the actor's sprites and sounds, and redefine the sounds in SNDINFO ( as that is game-specific, but you just have to copy the SNDINFO definitions from zdoom.pk3 / hexen.wad ) and you're good to go to summon the actor from the console or with ACS. Then, if you want to place it in a map, you can define its DoomEdNums in a MAPINFO block dedicated to that purpose
woah, that's cool. sorry if this is a stupid question, but how could I get the actors with the new editor numbers to actually appear in gzdoombuilder? once again, there's either minimal documentation on this specific thing or I'm REALLY bad at research :mrgreen:
User avatar
Kinsie
Posts: 7402
Joined: Fri Oct 22, 2004 9:22 am
Graphics Processor: nVidia with Vulkan support
Location: MAP33
Contact:

Re: Using Decorate Functions From Multiple Games?

Post by Kinsie »

heehoo wrote:
Arctangent wrote:Well for one, those actors already exist. All the actors native to the games ZDoom natively supports are loaded in, regardless of what game you're playing. All you need to do is add the actor's sprites and sounds, and redefine the sounds in SNDINFO ( as that is game-specific, but you just have to copy the SNDINFO definitions from zdoom.pk3 / hexen.wad ) and you're good to go to summon the actor from the console or with ACS. Then, if you want to place it in a map, you can define its DoomEdNums in a MAPINFO block dedicated to that purpose
woah, that's cool. sorry if this is a stupid question, but how could I get the actors with the new editor numbers to actually appear in gzdoombuilder? once again, there's either minimal documentation on this specific thing or I'm REALLY bad at research :mrgreen:
By giving them editor numbers. See the link in the reply to you to find out how.
heehoo
Posts: 24
Joined: Mon Nov 06, 2017 6:20 am

Re: Using Decorate Functions From Multiple Games?

Post by heehoo »

Kinsie wrote:
heehoo wrote:
Arctangent wrote:Well for one, those actors already exist. All the actors native to the games ZDoom natively supports are loaded in, regardless of what game you're playing. All you need to do is add the actor's sprites and sounds, and redefine the sounds in SNDINFO ( as that is game-specific, but you just have to copy the SNDINFO definitions from zdoom.pk3 / hexen.wad ) and you're good to go to summon the actor from the console or with ACS. Then, if you want to place it in a map, you can define its DoomEdNums in a MAPINFO block dedicated to that purpose
woah, that's cool. sorry if this is a stupid question, but how could I get the actors with the new editor numbers to actually appear in gzdoombuilder? once again, there's either minimal documentation on this specific thing or I'm REALLY bad at research :mrgreen:
By giving them editor numbers. See the link in the reply to you to find out how.
I already put that in the mapinfo lump, but it's not appearing. It is a unique editor number btw
heehoo
Posts: 24
Joined: Mon Nov 06, 2017 6:20 am

Re: Using Decorate Functions From Multiple Games?

Post by heehoo »

Just putting this here in the rare chance that someone may stumble upon this while having issues with editor numbers through a doomednumber thing in the MAPINFO lump

Forum posts that I've seen indicate that, for some reason, gzdoombuilder in particular is weird about reading MAPINFO lumps. However, newly assigned editor numbers can still be used to put the respective things in maps. There is a section of the interface when placing a thing that shows the editor number of the currently selected thing. This text can be changed to that of the desired thing. It won't show up right in the builder, but it will be properly loaded in the game itself.
Post Reply

Return to “Scripting”