I thought I'd start a new thread for this.
This is essentially a fixed up version of Nash's pull request. A test.pk3 is included, summon FC in console to see a flattened cacodemon like it was hammered flatter than pancakes.
Spoiler: Screenshot
Spoiler: Why did I rename FLOOR to FLAT?
Because it doesn't make sense to call it a floor sprite when it could be stuck on the ceiling first off.
Yes I know WALLSPRITES has the same weird name but I couldn't come up with a better one for it, and it was already in use by OpenGL. I think... Floor was not.
Second, at another point in time I will attempt true FLOORSPRITEs that are permanently on the floor and can stick sloped floors. Right now that's a bit beyond me I'm afraid.
FLATSPRITE - A sprite whose name says it all: flat like vanilla doom's floors and ceilings with changeable angles.
WALLSPRITE - Now implements rolling and is exposed for use. Becomes flatter when viewing from the side like a cardboard cutout.
ROLLSPRITE - Simply allows rolling to affect the sprite and give it rotation, a la Unreal style.
DONTFLIP - Used with FLATSPRITE. When viewing a sprite from behind, it will be flipped (actor's facing the wrong way if they have rotations). This prevents it and instead draws the sprite unflipped from behind.
You do not have the required permissions to view the files attached to this post.
Last edited by Major Cooke on Sun Jun 05, 2016 2:25 pm, edited 13 times in total.
Why limit the rendering of non-billboarded sprites to only straight vertical and horizontal? Something like PITCHSPRITE sounds more useful, where you can simply pitch sprites by using the existing "pitch" variable, like how ROLLSPRITE works.
I didn't make this. Fgsfds did, and Nash ported it over. I just happened to be tidying up after him for the reasons Randi rejected it in the first place, because Nash upped and quit. You should ask them.
gamefreakdude wrote:Why limit the rendering of non-billboarded sprites to only straight vertical and horizontal? Something like PITCHSPRITE sounds more useful, where you can simply pitch sprites by using the existing "pitch" variable, like how ROLLSPRITE works.
Actually that's what WALLSPRITE does, now that I went back over the code again.
Flat/Wall aligned sprites? Cool. This would be very useful for plants, trip mines, and wall-mounted interactive props. I can also imagine an enemy that moves along a wall, then pulls itself off the wall when it's ready to attack. This could also make the build engine map loader in ZDoom (yes, there's one there) much more effective.
Personally I'm thinking flat sprites would be really handy for Duke 3D-esque footprints - at least, if the Z-fighting issues the GLOOME version had are addressed. (Being able to angle them for slopes would be nice, too, but not strictly necessary...)
@Shadow Hog
Eeeeeeh... IIRC Randy was working on Duke3D style wall and floor sprites. (Literally sprites rendered with the wall and floor/flat renderer, I believe) In fact, I think there was a rendering glitch in ZDoom (And I think GZDoom too?) where the sprites would glitch because something got derped on the code...
I believe that could maybe be used for Duke3D style footprints and better floor decals that work in ZDoom too...
(Obviously, it is something that would work in ZDoom too/wouldn't need GZDoom/a hardware renderer, considering it was Randy who was working on it...)
However, we'll only possibly see/hear anything about that next eternity when she stops playing Bloodborne. Something that will never happen, just like DoomScr- *brick'd*
New property and function added for submission. A_SetFlatAngle sets the value in floating point. The property, FlatAngle, can be accessed with decorate parser expression functions.
Flat Angle is an angle which the flattening is done upon for WallSprite and PitchFlatSprites only.
All it does is rotate the angle in which the sprite is flattened against. Specifying 90, for example, will flatten the sprite along the side so viewing it from the front or back will make the sprite be flattest. The default is 0, meaning from the front.
Useful for things like signs or making actors out of multiple sprites, such as 2.5D armor.
I also saw this as a need so modders don't have to make a whole bunch of sprite rotations just to achieve a small effect.
EDIT: Whoops, forgot to post the new test.pk3 package. This one's newer with use of A_SetFlatAngle which demonstrates its usage.
Okay. I'm going to update this one more time. However, after that...
Graf, if you do not mind, can I simply hold off on updating this further until you decide to turn your interest towards it? With so many things changing along with the portals, I get the feeling you're going to wait until after they're complete.