Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
rdwpa

*** The "ask a miscellaneous editing question" thread ***

Recommended Posts

Bad offsets?

 

GZDoom dynamically adjusts offsets to prevent sprites from being clipped by OpenGL; software renderers just overdraw the sprites. If your OpenGL sprite adjustment is set to "smarter" (so it also affects ceiling hangers) then it'd be consistent with your results.

Share this post


Link to post
2 minutes ago, Gez said:

Bad offsets?

 

GZDoom dynamically adjusts offsets to prevent sprites from being clipped by OpenGL; software renderers just overdraw the sprites. If your OpenGL sprite adjustment is set to "smarter" (so it also affects ceiling hangers) then it'd be consistent with your results.

 So if it looks ok in prBoom it should work in GZdoom..

Share this post


Link to post

Can you put that sprite in a quick little wad? Just S_START, GOR3A0, S_END and maybe a one-square-sector map with a player start and it for testing.

Share this post


Link to post

@Jaska I'm thinking that NOGRAVITY and SPAWNCEILING flags are key here. You can either have the sprite be on the floor and have the offsets make it look like it's on the ceiling (which isn't practical for general use), or you can make it hang from the ceiling with the aforementioned flags. Make sure that the Thing you have replaced the sprite on still has these two flags set and has it's offsets correctly (so that it won't clip with the ceiling). I don't see why it wouldn't work on both PrBoom+ and GZDoom that way.

EDIT: So the flags are right with the Thing that uses GOR3A0, but it's probably like Gez said, that there's dynamic adjustment. I would guess you can prevent this by adjusting the offsets so that there's no clipping.

Share this post


Link to post

I think the problem is that the object is defined with a height of 84 units, the vanilla sprite has a vertical offset of 83 (greater than the sprite's actual height BTW). Logically, you should also use a vertical offset of about 84 so that the top of the sprite is adjusted to be on the ceiling. (The bottom of the sprite is aligned with the base of the mobj, the mobj has its top at the height of the ceiling, its height is 84 so its base is at 84 units below the ceiling, therefore to get the top of the sprite to align with the ceiling the vertical offset needs to be 84.)

 

I'm pretty sure it's PrBoom+ that's in the wrong here. I tried various things, such as increasing the sprite height to 84 (resulting in a bunch of empty space at its bottom) but to not avail. In fact, I just copied the GOR3A0 sprite straight from my Doom IWAD into the test file, with the vanilla offsets, and it's borked in PrBoom+.

 

ceilofs.zip

Share this post


Link to post

ZScript problem.


I have added ZombieRailgunner.wad to my pk3's root.

Then I have added DoomEdNum to mapinfo..

18552 = ZombieRailgunner.

GZDb bugfix 2.3.0 3107 just gives "Failed to apply MAPINFO DoomEdNum override "18552 = zombierailgunner": failed to find corresponding actor class..."


Do I have to include them in zscript.txt? Tried:

#include "ZombieRailgunner.wad" is zscript.txt, but same error as I would expect.


I have no problem with decorate monsters. I have one decorate monster in a WAD-file at the root of pk3 and I even haven't included it in decorate.txt. It shows up in editor and game just fine. I just added it to mapinfo for the doomednum.

Share this post


Link to post

You cannot #include a wad file.

 

You should open the wad and copy its resources to the proper places in your PK3.

 

Note that the zombie railgunner wad, which I've just downloaded to check, contains both a ZSCRIPT lump and an OLDCODE lump. The OLDCODE lump can be renamed to DECORATE if you'd rather use that, there isn't any significant difference between both versions, they do the same things, there's no special extra to the ZScript version.

Share this post


Link to post
3 minutes ago, Gez said:

You cannot #include a wad file.

 

You should open the wad and copy its resources to the proper places in your PK3.

 

Note that the zombie railgunner wad, which I've just downloaded to check, contains both a ZSCRIPT lump and an OLDCODE lump. The OLDCODE lump can be renamed to DECORATE if you'd rather use that, there isn't any significant difference between both versions, they do the same things, there's no special extra to the ZScript version.

 

I just wanted to avoid opening the wad files. It's easy to only add the doomednum to the mapinfo. I'll do as you suggested and use the DECORATE.

Share this post


Link to post

I had an error pop up every time I tried to start GZDB Bugfix, I tried to get help on a topic I started, but I haven't gotten a response in some time, hopefully I'll get some help here.

 

Share this post


Link to post

Simple map scripting question: How do I create map variables and pass them into a closed script. Basically want a door that needs 2 seaperate buttons pressed to open, but i need those both to read/write a bool or int between them to check if the other button is pressed.

Share this post


Link to post

In ACS?

 

There are plenty of ways. A few examples, in pseudo-code:

 

 

First variant, both buttons call the same script, and both buttons can only be pressed once (not a repeat function). So only one variable is needed. Each time the script is run, the variable is increased, once it reaches 2 the door is opened.

int myvar = 0;

script "TwoButtonsOpenDoor" (void)
{
	++myvar;
	if (myvar >= 2)
	{
		OpenDoor();
	}
}

 

Second variant: both buttons call a separate scripts, and they have separate variables. A third script starts running when the map is opened and monitors both variables, once they're both true the "while / delay" loop is exited and the door is opened.

bool button1 = false;
bool button2 = false;

script "button1pressed" (void)
{
	button1 = true;
}

script "button2pressed" (void)
{
	button2 = true;
}

script "doorbuttonmonitor" OPEN
{
	while (button1 == false || button2 == false)
	{
		delay(5);
	}
	OpenDoor();
}

 

Third variant: a more compact form of the previous. Now we've consolidated all three scripts into a single one. Both buttons call the same script, but this time using a parameter, so one of the switches calls the script with value 0 while the other calls it with value 1. The two variables are turned into an array. Each time the script is called, it sets to true the variable at the given position (provided it's a valid position, since only 0 and 1 are available here as our array's size is just 2), and then checks to see if both buttons are now true, in which case it opens the door.

bool buttons[2] = { false, false };

script "buttonpress" (int which)
{
	if (which >= 0 && which <= 1)
	{
		buttons[which] = true;
	}
	if (buttons[0] == true && buttons[1] == true)
	{
		OpenDoor();
	}
}

 

Share this post


Link to post

in doombuilder i am having trouble using view mode, i cant find the map i am working on.  i use home to try and recenter but it doesnt seem to help.  is there a way to get the camera to go directly to my map?

 

also is there a way to select an existing vertex already apart of a sector and use it to create a linedef?  i notice i can sort of cheat it by clicking near the vertex, but is there a way to select the actual vertex.

Share this post


Link to post

Can someone please explain to a total muggle how the Max Adjoining Sector overflow actually works. I'm getting the "Sector with more than 22 adjoining sectors. Vanilla will crash here" error, and I just don't understand why. I'm looking at the sector I'm trying to raise, and it's only connected to 9 other sectors that I can tell.

 

Picture of the sector I'm trying to raise (highlighted):

Spoiler

max_sector_one.png.9efb09ee7f42264498d5b208135bb06f.png

 

Picture of the connected sectors (highlighted):

Spoiler

max_sector_two.png.e9447ddc3152f3567cb5c96d8e32a5a2.png

 

 

I found another thread regarding this error, and @Quasar had commented with the following explanation:

 

Quote

A static array is used to track sector floor heights for the "next highest floor" line action target. There is, as you might be able to tell from above, no rangechecking when adding sectors to this temporary list (the line heightlist[h++] = other->floorheight;).

This means that DOOM starts to corrupt memory if more than 20 sectors are adjacent to a sector that is the target of such an action. Because of some extra space on the stack, I assume it can corrupt up to 2 additional DWORDs of space before biting the function's activation record and crashing the game.

 

I think I'm just misunderstanding what counts as an "adjacent" sector? I'm really not sure. And I really didn't understand his explanation of how the line action works from a coding/engine point of view. I'm guessing the thing about "no rangechecking when adding sectors to this temporary list" is the key part here, but I'm completely lost on what that actually means for my map, and how to go about fixing the issue.

Share this post


Link to post
On samedi 28 décembre 2019 at 2:13 AM, angrytoast said:

is there a way to get the camera to go directly to my map?

You can right-click any area of the map to move the camera there.

 

 

Share this post


Link to post

Is there a way to check duplicate entry names that includes patches? Alternatively, is there a program for exporting patches (as they would be displayed in-game) to .PNGs?

Share this post


Link to post
2 hours ago, Krull said:

Is there a way to check duplicate entry names that includes patches? Alternatively, is there a program for exporting patches (as they would be displayed in-game) to .PNGs?

 

Both can be done with Slade3:

  • Archive-Maintenance
  • Graphic-Export as PNG (either individually or collectively)

Share this post


Link to post

No, I specifically asked for checking duplicate names including patches. Slade only searches for graphics and flats, and doesn't feature any maintenance or export to png options for files inside TEXTUREx.

Edited by Krull

Share this post


Link to post
1 hour ago, Krull said:

No, it doesn't.

 

No, I specifically asked for checking duplicate names including patches. Slade only searches for graphics and flats, and doesn't feature any maintenance or export to png options for files inside TEXTUREx.

 

The antagonistic approach when responding to help is rarely, if ever, a good thing.

Since you are dead certain that this cannot be done, any further help would be useless.

Share this post


Link to post

Rofl wow.

 

@Krull, Kappes Buur straight up told you how to do it and you reply with "no it doesn't"? Did you even try?!

 

Right. Bust open SLADE. Load your WAD. Now, with your wad as the current active tab, select "Archive" which can be found in the top bar, then "Maintenance", then "Check duplicate entry names". This will list all duplicate content, which will include patches if there's duplicates here.

 

If you mean within the patch table itself, that already cannot have duplicates, so there's no issues there. 

 

As for exporting TEXTUREx contents as PNG's, again, super easy. Double click your TEXTUREx lump to open it up, then select the texture(s) you want to export, right click on it and select "Export To", then click "Extract Texture".

 

Next time someone helps you it'd be advisable that you try to be less abrasive, if you're failing to understand the advice given simply communicate that kindly, and others will be more willing to assist you.

 

Good luck.

Share this post


Link to post
1 hour ago, Dragonfly said:

Did you even try?!

 

Right. Bust open SLADE. Load your WAD. Now, with your wad as the current active tab, select "Archive" which can be found in the top bar, then "Maintenance", then "Check duplicate entry names". This will list all duplicate content, which will include patches if there's duplicates here.

 

It's the first thing I tried, and it didn't find duplicates that I knew were there. Its probably an issue with the patch table, but in any case, pointing to basic Slade functions won't help me solve it.

 

I did eventually work out how to export patches. Right clicking on them didn't bring up an options menu for me previously, for some reason. And when I got it working it looked as if the composite textures weren't showing up anyway. It seems some filenames were getting overwritten as it exported multiple textures with the same names. I guess I should have tested with a definitely non-broken wad as well as my resource pack before concluding it was impossible. 

Share this post


Link to post

Hello again, I have a question about ACS and KEYCONF.

 

I wanted to try to create a secondary Altfire ("AltFire2") and wanted to try and bind a key to it, preferably [Q], so I decided to go to ZDoom Wiki to read up on what more you could do with KEYCONF (Besides adding customs weapons.) and I did find 2 ways to to do it. here's what I got so far.

--------------------------

Weaponsection "example"

 

addmenukey "AltFire2" AltFire2 (Adds a new control to the controls menu.)
Bind Q AltFire2

--------------------------

https://zdoom.org/wiki/CCMDs:Customization#addkeysection

--------------------------

Now I know that ACS commands are supposed to be where "AltFire2" is here, but I don't know how I can put in a AltFire2 command (or indeed any WeaponFire command) in ACS, Now I do have the AltFire2 state defined in a DECORATE lump, So I assume there's a way to have the ACS code jump to /activate the DECORATE AltFire2 state, or maybe even the other way around (via ACS_ExecuteAlways), but I don't know, seeing as how I barely know much about ACS in general, same goes for ZScript.

Share this post


Link to post

There's fire and alt-fire, aka primary and secondary fires, but secondary alt-fire would be like ternary fire, and there's no such thing.

 

However, there are four "user" buttons that you can set to do whatever you want, including ternary, quaternary, quinary and senary fires. See Weapon for further info, it's described somewhere in there.

 

And yes, I have checked it, "quinary" and "senary" are the proper words for fifth and sixth orders.

Share this post


Link to post

A Problem with GZDoom's "jump-over railing".

 

0MPsDRI.png


XnZzn7x.png

 

As can be seen, there is two 3D-floors with jump-over railings offsetted to the 3D-floors. But for some reason they also block on the ground level with same height, 32 pixels. Why is that? I can do jump over railing with these false bridge sprites or another invisible 3d-floors but it would be so easy to just use jump over railings.

Share this post


Link to post
16 minutes ago, Jaska said:

A Problem with GZDoom's "jump-over railing".

 

Try the "walkable mid texture" flag. iirc you'll need to also check the "projectile shoot through mid tex" flag.

Share this post


Link to post
7 minutes ago, Payload4367 said:

 

Try the "walkable mid texture" flag. iirc you'll need to also check the "projectile shoot through mid tex" flag.

 

Now it fails just differently. Can't jump over it and it blocks in the air.

Share this post


Link to post
16 minutes ago, Jaska said:

Now it fails just differently. Can't jump over it and it blocks in the air.

I think the "walkable..." flag uses the height of the mid tex, so if the height is more than doomguy can jump, he won't make it. If this is the case, use a mid tex with a smaller height or "sink" the mid tex down in the 3d floor until you can jump over it. Also, don't use "walkable.." with "jump over..." flags.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×