EDuke32 2.0 and Polymer! "talk about the wonders of EDuke32 and the new renderer"
#4681 Posted 26 May 2014 - 03:30 AM
#4682 Posted 26 May 2014 - 03:42 AM
Mickey C, on 26 May 2014 - 03:30 AM, said:
That's assuming that the issue do come from the fact that the texture isn't power of two; by if that was the case I'm inclined to think ALL the use of that textures would look glitchy; except only about half do (like I said, the same non power of two texture used in the same manner, only about half look glitchy).
This post has been edited by MetHy: 26 May 2014 - 03:43 AM
#4683 Posted 26 May 2014 - 04:17 AM
This post has been edited by Fox: 26 May 2014 - 04:19 AM
#4684 Posted 26 May 2014 - 04:20 AM
http://forums.duke4....post__p__196956
They're all bottom aligned, but only half glitch.
#4685 Posted 26 May 2014 - 04:33 AM
This post has been edited by Fox: 26 May 2014 - 04:34 AM
#4686 Posted 26 May 2014 - 06:42 AM
#4687 Posted 26 May 2014 - 07:07 AM
MetHy, on 26 May 2014 - 02:58 AM, said:
The way I get around this is just change the texture from top/bottom to the other one. Sometimes moving the sector just by a notch vertically helps too (alt and mouse or just changing the Z in 2D mode).
EDIT: So yeah, I took a look at the map and the Cstat for the walls with the bug were different from the working ones, looks like they were flipped. I'm thinking since it's not power-by-two, the wall still gets shifted either way in 8bit because of the rendering issue. I just think due to sheer luck it ended up being shifted to the correct place on the wall to the right, but because of the vertical flipping the wall on the left had, it got shifted in a different way and ended up being rendered wrong always in one of the renderers.
This post has been edited by Daedolon: 26 May 2014 - 07:59 AM
#4689 Posted 26 May 2014 - 08:14 AM
#4690 Posted 26 May 2014 - 08:21 AM
Daedolon, on 26 May 2014 - 07:07 AM, said:
EDIT: So yeah, I took a look at the map and the Cstat for the walls with the bug were different from the working ones, looks like they were flipped. I'm thinking since it's not power-by-two, the wall still gets shifted either way in 8bit because of the rendering issue. I just think due to sheer luck it ended up being shifted to the correct place on the wall to the right, but because of the vertical flipping the wall on the left had, it got shifted in a different way and ended up being rendered wrong always in one of the renderers.
I'm not certain the flipping is related to the glitch. I've seen other textures glitch while they weren't flipped and while the same texture, same flipping, just next to it, didn't glitch. I also don't believe it's by luck that it ended up being correct; in the map there were a few of those all the around the map which didn't glitch, while all the glitchy ones glitched in the same way.
It's the 4th time I see this glitch, to me it's completely random. Thanks for finding a way to get around the problem though.
This post has been edited by MetHy: 26 May 2014 - 08:22 AM
#4691 Posted 26 May 2014 - 06:20 PM
Daedolon, on 26 May 2014 - 07:07 AM, said:
Helixhorned: Basically what this means, is that when pasting textures (tab->enter) on the lower portion of a two-textured wall segment (created by pressing 2), the cstat (slash flip) information isn't pasted among other info.
I'd count this as a bug.
#4692 Posted 30 May 2014 - 06:29 AM
So, could this be something that could be implemented in eduke32? I don't believe it would influence already existing maps (wether from the original game or usermaps) in a negative way. If anything, I don't think wall aligned sprites and SE8 are used together very often or else somebody would have noticed this sooner...
Rather than being automatic though, perhaps it could be added as a feature the mapper has to 'turn on' by pressing a key on the sprite. I know that would make things more complicated but at least we'd be sure it wouldn't have unwanted consequences on already existing maps...
This post has been edited by MetHy: 30 May 2014 - 06:32 AM
#4693 Posted 30 May 2014 - 10:03 AM
MetHy, on 30 May 2014 - 06:29 AM, said:
That they're not affected by the shade change has nothing to do with SE8, but with the fact that wall-aligned sprites in particular don't take over the ceiling/floor shade. The code path responsible for this is in G_DoSpriteAnimations(). Note that this means that it's tsprite shade, not sprite shade:
for (j=spritesortcnt-1; j>=0; j--) // Loop over drawn sprites { spritetype *const t = &tsprite[j]; // 't' is a pointer to a drawn sprite (...) if (t->picnum < GREENSLIME || t->picnum > GREENSLIME+7) switch (DYNAMICTILEMAP(t->picnum)) { (...) default: // NOTE: wall-aligned sprites will never take on ceiling/floor shade... if ((t->cstat&16) || (A_CheckEnemySprite(t) && t->extra > 0) || t->statnum == STAT_PLAYER) continue; } // ... since this is not reached: (Code that potentially takes over a ceiling/floor shade to 't'...) }
In contrast, the SE12 handling code explicitly sets the shades of wall-aligned (and only those) sprites contained in sectors affected by it. In G_MoveEffectors():
case SE_12_LIGHT_SWITCH: if (t[0] == 3 || t[3] == 1) //Lights going off { (...) for (SPRITES_OF_SECT(SECT, j)) if (sprite[j].cstat&16 && A_CheckSpriteFlags(j,SFLAG_NOSHADE) == 0) { if (sc->ceilingstat&1) sprite[j].shade = sc->ceilingshade; else sprite[j].shade = sc->floorshade; } (...) }
^ That potential taking over of shade + SFLAG_NOSHADE check is repeated a couple of times throughout actors.c, but in slightly different variations. Yuck!
Quote
Rather than being automatic though, perhaps it could be added as a feature the mapper has to 'turn on' by pressing a key on the sprite. I know that would make things more complicated but at least we'd be sure it wouldn't have unwanted consequences on already existing maps...
In principle it could be implemented as another cstat bit. The problem is, this is really ugly... we'd be assigning meaning to a bit of an engine-side structure (sprite[]) in order to work around deficiencies in game code. Maybe these kind of things are good candidates for a (not yet implemented or even thought out) feature of the map-text format to carry ancillary data for map constituents.
#4694 Posted 30 May 2014 - 11:41 AM
Daedolon, on 26 May 2014 - 06:20 PM, said:
I'd count this as a bug.
Yup, kind of. With r4493:
Quote
Note that x-flipping is determined by the cstat of the upper part of the wall
(that is, the wall facing the player, not the nextwall, from which the picnum
for the bottom part is taken.)
So, if we were to take over x-flipping, it would affect the top part too.
#4695 Posted 30 May 2014 - 11:29 PM
#4696 Posted 30 May 2014 - 11:35 PM
#4697 Posted 31 May 2014 - 04:37 AM
This has nothing to do with scripting for the time being, or CON likely ever.
The main impetus for this was making the menus Android-ready. Otherwise, there are not many changes that are visible but I'll point out the improvements I did make.
First off, all menus will automatically scroll if their contents exceed the page. You can see this with the Game Setup page, which is two screens merged into one, and the Keyboard Key and Joystick Button menus.
Slider bars will generally display a numerical value to their side. (I added a separate music on/off.)
You can press Enter on some menu option toggles to bring up a menu of possible choices. This was initially created for the mouse/joystick button menus, but I thought it natural to extend the functionality to places that could benefit.
In addition to this, you can press left/right on options you may not have been able to before, such as mouse/joystick input screens.
Smoothed out/improved joystick menu, though the underlying functionality is still broken and needs to be addressed.
One final thing is that you can enter the color escape sequences in a visible manner (like markup) while entering a string, then they will take effect when you exit the editing mode.
I still have yet to implement mouse/touch/pointer support, which is its own can of worms due to gesturing and whatnot.
Please test this thoroughly, and report any crashes or misbehavior.
#4698 Posted 31 May 2014 - 04:52 AM
Hendricks266, on 31 May 2014 - 04:37 AM, said:
An enormous effort indeed, but one that will hopefully pay off in the long run. I guess reviewing it will take a while (git --stat shows 8334 changed lines in menus.c!). If I recall properly, you did all of your development in one file, and then kind of merged that in with menus.c, right? I'm asking because it would have been a bit easier to see commits broken down a bit more. But I can understand if that was too cumbersome to pull off given that this was to a large extent coding with a chainsaw.
Right now, it's failing to compile for me:
$ LTO=0 WITHOUT_GTK=1 RELEASE=0 LUNATIC=0 make -j4 (...) source/menus.c: In function ‘M_MenuEntryOptionModify’: source/menus.c:2475:24: error: ‘ME_GAMESETUP_UPDATES’ undeclared (first use in this function) else if (entry == &ME_GAMESETUP_UPDATES) ^ source/menus.c:2475:24: note: each undeclared identifier is reported only once for each function it appears in
Edit: OK, that one only needed an #ifdef _WIN32. Looks good.
#4699 Posted 31 May 2014 - 08:51 AM
Hendricks266, on 31 May 2014 - 04:37 AM, said:
Would it be feasible to classify it by aspect ratio?
Aesthetically, the text should be in the left corner, or center-aligned, or being aligned with the x in the center.
#4700 Posted 31 May 2014 - 08:58 AM
#4701 Posted 01 June 2014 - 04:15 AM
MetHy, on 24 May 2014 - 01:20 PM, said:
Here is the thing, some textures get misaligned when switching to 32bit mode.
That's a well-known issue, its root cause being the improper rendering of walls with non-power-of-two height textures in 8-bit mode. Here's an example with BIGORBIT2 which is h := 400 texels high:
See what classic does here. Basically, it renders the wall as if with a texture of a height that's the next power of two greater than h, 512. This pseudo-texture has 400 horizontal lines of the original texture, plus 112 more, made up from the first ones of the same texture. As a result, there is now a seam in the apparent texture. What's the problem with that? Well, the Polymodes have no problems with NPOT height tiles at all:
But this means that such walls can't always be displayed the same in both renderers. A necessary but not sufficient condition is that a wall can only show at most h texels in height.
In order to overcome certain improperly aligned cases in the original maps, Polymost, and then later Polymer added a hack that modifies the apparent ypanning of a wall when its real .ypanning exceeds some value (that's also dependent on h). However, this workaround suffers from the obvious drawback of introducing a discontinuity with ypanning.
Enter r_npotwallmode (r4498):
Quote
When that mode is enabled (see below for caveats), wall textures that have a
non-power-of-two height (call it 'h') will be modified to look like in classic:
Let 'H' be the next power of two greater than 'h'. The texture will be uploaded
with height 'H', made up from 'h' hlines of the original texture, followed by
'H'-'h' first hlines of the same.
No panning "corrections" will take place. The mode is disabled by default.
Caveats/notes:
* the mode requires that r_hightile is disabled
* it is not implemented in Polymer
* in the Lunatic build, it is ineffective when a VX map is loaded, as those
display walls with NPOT height textures correctly
#4702 Posted 01 June 2014 - 08:30 AM
#4703 Posted 01 June 2014 - 10:01 AM
James, on 01 June 2014 - 08:30 AM, said:
Currently no, but feel free to add it to the suggestions wiki page under a new section.
#4704 Posted 01 June 2014 - 10:30 AM
#4707 Posted 01 June 2014 - 09:35 PM
#4708 Posted 01 June 2014 - 11:04 PM
This means an enemy (or any other sprite) with a different palette (for example the grey cultists I ripped from Blood, which are brown cultists with pal 13) will lose its pal if it's in a fogged sector. In the example I mentioned, now all grey cultists are brown.
Is this the new expected behavior or a bug?
Thanks.
#4709 Posted 01 June 2014 - 11:19 PM
Diaz, on 01 June 2014 - 11:04 PM, said:
This means an enemy (or any other sprite) with a different palette (for example the grey cultists I ripped from Blood, which are brown cultists with pal 13) will lose its pal if it's in a fogged sector. In the example I mentioned, now all grey cultists are brown.
Is this the new expected behavior or a bug?
Thanks.
Try to press 'N' on those sprites, so that they keep their own shade and pal should work here.
#4710 Posted 02 June 2014 - 12:44 AM
Diaz, there's a new fogpal feature for openGL which allows you to set a sector's fogpal independently of pal, using a previously unused sector tag. Can't remember which one though. Press F7 and see if there's anything new.