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?
Using Decorate Functions From Multiple Games?
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!)
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!)
- Arctangent
- Posts: 1235
- Joined: Thu Nov 06, 2014 1:53 pm
- Contact:
Re: Using Decorate Functions From Multiple Games?
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.
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.
Re: Using Decorate Functions From Multiple Games?
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 researchArctangent 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

- 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?
By giving them editor numbers. See the link in the reply to you to find out how.heehoo wrote: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 researchArctangent 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
Re: Using Decorate Functions From Multiple Games?
I already put that in the mapinfo lump, but it's not appearing. It is a unique editor number btwKinsie wrote:By giving them editor numbers. See the link in the reply to you to find out how.heehoo wrote: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 researchArctangent 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
Re: Using Decorate Functions From Multiple Games?
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.
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.