The official "ZDoom on Wolfenstein 3D" thread. (aka ECWolf)

Game Engines like EDGE, LZDoom, QZDoom, ECWolf, and others, go in this forum
Forum rules
The Projects forums are ONLY for YOUR PROJECTS! If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.

Got a cool project idea but nothing else? Put it in the project ideas thread instead!

Projects for any Doom-based engine are perfectly acceptable here too.

Please read the full rules for more details.
Blzut3
 
 
Posts: 3161
Joined: Wed Nov 24, 2004 12:59 pm
Graphics Processor: ATI/AMD with Vulkan/Metal Support

Re: The official "ZDoom on Wolfenstein 3D" thread. (aka ECWo

Post by Blzut3 »

InsanityBringer wrote:does ecwolf inherit the doomism where the function in the first spawn state isn't executed? I have no idea.
It does.
mallo
Posts: 1112
Joined: Sat May 22, 2010 12:49 pm

Re: The official "ZDoom on Wolfenstein 3D" thread. (aka ECWo

Post by mallo »

Oh, thanks for help! I'll try it today!

(Man, i hate using DECORATE/ACS functions for first time. <_< )

EDIT: Works fine! Thanks for info!
Blzut3
 
 
Posts: 3161
Joined: Wed Nov 24, 2004 12:59 pm
Graphics Processor: ATI/AMD with Vulkan/Metal Support

Re: The official "ZDoom on Wolfenstein 3D" thread. (aka ECWo

Post by Blzut3 »

Since you say this is a first time I feel I should clarify something. It's not the first function that is ignored, it's that functions are executed on the state change which never happens for the first state. The correct solution would look like:

Code: Select all

    Actor MachineGunSpawner replaces MachineGun
    {
       States
       {
       Spawn:
          TNT1 A 0 // <-- This is the initialization state that the function would not be executed for the first time
          TNT1 A 0 A_Jump(128, "LargeZorcher")
          TNT1 A 0 A_SpawnItem("Bootspork",0,0,0,0)
       stop
       LargeZorcher:
          TNT1 A 0 A_SpawnItem("LargeZorcher",0,0,0,0)
       stop
       }
    }
Notice that the state does not have to have a delay, since the issue is that it was "already in that state" according to the engine. If you were to loop the Spawn state the function would get executed since it would still change to that state.
Beefeater
Posts: 6
Joined: Sat Oct 13, 2012 10:53 am

Re: The official "ZDoom on Wolfenstein 3D" thread. (aka ECWo

Post by Beefeater »

I've been getting my own hands dirty with Decorate today, it's surprisingly easy to use!

Is there a way to change the frequency and/or conditions for an "active" (alert) sound to play?

Also, is this a good place to give feedback on the techdemo, in case Executor plans to update it further on? Cause he must have forgotten to request "active" sounds from his voice actors :lol: The current ones just have to be a placeholder:
HALT!HALTHALT!HALT!HAAALT!HALT!HALT!HALTHALT! HALT!HAAALT!HALT!HALT!HALTHALT!HALT!HAAALT!HALT!HALT!HALTHALT!HALT!HAAALT!HALT!HALT!HALTHALT!HALT!HAAALT!HALT!HALT! HALTHALT!HALT!HAAALT!HALT!HALT!HALTHALT!HALT!HAAALT!HALT!HALT!HALTHALT!HALT!HAAALT!HALT!HALT!HALTHALT!HALT!HAAALT!HALT!HALT! HALTHALT!HALT!HAAALT!HALT!HALT!HALTHALT!HALT!HAAALT!HALT!HALT!HALTHALT!HALT!HAAALT!HALT!HALT!HALTHALT!HALT!HAAALT!HALT!
Oh, and I assume player inertia isn't possible through Decorate at this stage? Player movement in this game has always been really jerky...
Blzut3
 
 
Posts: 3161
Joined: Wed Nov 24, 2004 12:59 pm
Graphics Processor: ATI/AMD with Vulkan/Metal Support

Re: The official "ZDoom on Wolfenstein 3D" thread. (aka ECWo

Post by Blzut3 »

ECWolf has the same probability of playing the active sound as ZDoom (3/256). If you define your actors like Wolf does you'll be calling A_Chase about 8x more than a ZDoom actor would though. ;) I believe there were a few bugs with Doom-style monster definitions that are fixed for 1.1. The other solution is to use CHF_NOPLAYACTIVE on most of your A_Chase calls and throw in 0.5 duration calls where you would like it to have a chance of playing.
Beefeater
Posts: 6
Joined: Sat Oct 13, 2012 10:53 am

Re: The official "ZDoom on Wolfenstein 3D" thread. (aka ECWo

Post by Beefeater »

Thanks for the help.

I've been looking around for info on call duration, but I'm still not 100% sure what they do and where they're defined. I'm still wrapping my head around the syntax...

Code: Select all

		See:
			SSRG AABBCCDD 4 NOP A_Chase("Melee","Missile",CHF_NOPLAYACTIVE)
			loop
Is the number "4" what I'm after? And should CHF_NOPLAYACTIVE be on for this to work?
Last edited by Beefeater on Tue Oct 16, 2012 9:14 am, edited 1 time in total.
Blzut3
 
 
Posts: 3161
Joined: Wed Nov 24, 2004 12:59 pm
Graphics Processor: ATI/AMD with Vulkan/Metal Support

Re: The official "ZDoom on Wolfenstein 3D" thread. (aka ECWo

Post by Blzut3 »

CHF_NOPLAYACTIVE disables the active sound for that call. The duration of the call is always instant on state change (or in this case tic change). The important part is what I mean by Wolf-style vs Doom-style:

Wolf style:

Code: Select all

SSRG ABCD 8 NOP A_Chase
Doom style

Code: Select all

SSRG AABBCCDD 4 A_Chase
The difference that matters is the NOP which mean there is no action function and instead we put A_Chase into the ticker function slot. A ticker function is executed every tic, so it's basically short hand for the following:

Code: Select all

SSRG AAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDD 0.5 A_Chase
This gives a much smoother walk, more aggressive AI, and is 8x more likely to play the active sound. Lets say you want the smoothness of Wolf style but the active sound of Doom style you could do:

Code: Select all

SSRG A 0.5 A_Chase // The NOP would make no difference here since the state lasts for 1 Wolf tic.
SSRG A 7.5 NOP A_Chase("Melee", "Missile", CHF_NOPLAYACTIVE)
SSRG B 0.5 A_Chase
SSRG B 7.5 NOP A_Chase("Melee", "Missile", CHF_NOPLAYACTIVE)
// ... repeat for C and D ...
Spoiler: Ramble about possible plan
Beefeater
Posts: 6
Joined: Sat Oct 13, 2012 10:53 am

Re: The official "ZDoom on Wolfenstein 3D" thread. (aka ECWo

Post by Beefeater »

Blzut3 wrote:

Code: Select all

SSRG A 0.5 A_Chase // The NOP would make no difference here since the state lasts for 1 Wolf tic.
SSRG A 7.5 NOP A_Chase("Melee", "Missile", CHF_NOPLAYACTIVE)
SSRG B 0.5 A_Chase
SSRG B 7.5 NOP A_Chase("Melee", "Missile", CHF_NOPLAYACTIVE)
// ... repeat for C and D ...
I'll admit... I don't get everything that you just said :lol: But I just tried out this thing. I turned your code into 8 lines for A, A, B, B, C, C, D and D, and gave them to every relevant enemy's "See:" state, changing the 4-letter names appropriately. It works really well from the little I've played, but the game crashes really quickly with this code and I don't know why. It seems to be connected to some enemies switching to their "active" state (figures).

I tried changing the "7.5"'s to "3.5", seeing as the duration for regular "See" states are 4. No luck, though.
Blzut3
 
 
Posts: 3161
Joined: Wed Nov 24, 2004 12:59 pm
Graphics Processor: ATI/AMD with Vulkan/Metal Support

Re: The official "ZDoom on Wolfenstein 3D" thread. (aka ECWo

Post by Blzut3 »

Yes I believe that's one of the bugs fixed in 1.1. Just add the NOPs 0.5 lines and that should work around it.
User avatar
SamVision
Posts: 2425
Joined: Tue Apr 13, 2010 4:47 pm
Location: Behind You

Re: The official "ZDoom on Wolfenstein 3D" thread. (aka ECWo

Post by SamVision »

I'm trying to mod some new weapons into game, the new weapon sprites are vanilla Wolf 3D quality and I can't seem to get them to show up in game even though the weapon works.
Blzut3
 
 
Posts: 3161
Joined: Wed Nov 24, 2004 12:59 pm
Graphics Processor: ATI/AMD with Vulkan/Metal Support

Re: The official "ZDoom on Wolfenstein 3D" thread. (aka ECWo

Post by Blzut3 »

Are they off set as if they are Doom weapons? If you have them scaling up (I forget the factor used for Wolf's weapons but I think it's about 4x) through textures or the hires namespace then I think the offsets need to be smaller.
Beefeater
Posts: 6
Joined: Sat Oct 13, 2012 10:53 am

Re: The official "ZDoom on Wolfenstein 3D" thread. (aka ECWo

Post by Beefeater »

Blzut3 wrote:Yes I believe that's one of the bugs fixed in 1.1. Just add the NOPs 0.5 lines and that should work around it.
This worked. Awesome! :D
User avatar
Woolie Wool
Posts: 1713
Joined: Mon Dec 15, 2003 3:36 pm
Preferred Pronouns: He/Him
Operating System Version (Optional): Arch Linux, Windows 11
Graphics Processor: nVidia with Vulkan support

Re: The official "ZDoom on Wolfenstein 3D" thread. (aka ECWo

Post by Woolie Wool »

Blzut3 wrote:Are they off set as if they are Doom weapons? If you have them scaling up (I forget the factor used for Wolf's weapons but I think it's about 4x) through textures or the hires namespace then I think the offsets need to be smaller.
There's no way to define pspr sprites in formats other than .wl6?
User avatar
SamVision
Posts: 2425
Joined: Tue Apr 13, 2010 4:47 pm
Location: Behind You

Re: The official "ZDoom on Wolfenstein 3D" thread. (aka ECWo

Post by SamVision »

I wonder if ECWolf can be used to recreate the Mac and 3DO versions.
Blzut3
 
 
Posts: 3161
Joined: Wed Nov 24, 2004 12:59 pm
Graphics Processor: ATI/AMD with Vulkan/Metal Support

Re: The official "ZDoom on Wolfenstein 3D" thread. (aka ECWo

Post by Blzut3 »

ECWolf 2.0 will have native support for the Mac version. It should be able to handle most of it already though.
Woolie Wool wrote:There's no way to define pspr sprites in formats other than .wl6?
Not automatically. You have to either use TEXTURES to create a scaled version (x and y scale of 0.4) of the sprite, or create a dummy sprite (160x160) and use the hires namespace to scale it up. The internal offsets are (4, (32 - width)-64).

Return to “Game Engines”