EDuke32 2.0 and Polymer! "talk about the wonders of EDuke32 and the new renderer"
#5870 Posted 01 June 2018 - 03:04 AM
I have the feeling that there’s simply no mechanism in place that can be adapted to drawing equivalent models of the clipmaps. The 2D engine can’t spawn sector geometry for a spite that’s floating in the air or crossing multiple sectors. It can’t really be made of individual spites since those sprites would have to be sloped and of arbitrary, dynamically-generated shape, other than some kind of particle-based system not unlike what Trooper Dan suggested but spawned directly by the model on a per-frame basis.
Model support itself is also pretty limited. TX or someone has said that the engine doesn’t really know what a model is, simply that the renderer is told to show a certain asset. After all, the whole reason that Helixhorned implemented clipshape was because that the engine doesn’t intrinsically know model geometry in the first place. As such, it’s unlikely that the reverse process is going to be a thing. Yes, the engine does know the clipping going on in this case, but again there’s no good mechanism to draw it.
It doesn’t help that Helixhorned, who did the original implementation, is no longer around.
This post has been edited by Micky C: 01 June 2018 - 03:05 AM
#5871 Posted 01 June 2018 - 06:04 AM
This post has been edited by Mark.: 01 June 2018 - 06:06 AM
#5872 Posted 03 June 2018 - 02:25 PM
Anyways, I thought to try EVENT_DISPLAYCAMERAOSD, which of course isn't documented. RETURN is 0 and setting it to -1 does nothing. Next I noticed that THISACTOR in that event has a value, so I thought maybe it was the value of the dummy player sprite. So I thought what the fuck let's just set the picnum of that sprite to Bombshell's picnum and see what happens. Fucking hilarious! Turns out it is the ID of the camera being viewed from, so doing that turned the camera into a Bombshell actor which started running around and shooting monsters. But, since it was still the ID of the active camera, you could see from her eyes through the viewscreen if you took a step back from it.
#5873 Posted 03 June 2018 - 02:44 PM
If you want to get the result you were originally after, ask James. He has like 38 characters in his AMC TC and is able to get cameras to show the proper actor.
#5874 Posted 03 June 2018 - 03:04 PM
Forge, on 03 June 2018 - 02:44 PM, said:
If you want to get the result you were originally after, ask James. He has like 38 characters in his AMC TC and is able to get cameras to show the proper actor.
I have a solution now; I'll check with James later to see if we're doing it the same way.
#5875 Posted 03 June 2018 - 08:23 PM
#5876 Posted 06 June 2018 - 05:37 PM
This post has been edited by PsychoGoatee: 06 June 2018 - 05:39 PM
#5877 Posted 06 June 2018 - 05:43 PM
Trooper Dan, on 03 June 2018 - 02:25 PM, said:
It's used to display CAMCORNER and CAMLIGHT when viewing through a security camera.
#5878 Posted 11 June 2018 - 09:13 AM
Flickering of wall sprites under polymer. When a sprite is placed on a wall, Mapster offsets it a tiny little bit away from the wall when looking at it in 2D mode. That makes it a 50/50 chance that it will flicker in game using Polymer. My solution has been to turn off grid locking and manually drag the sprite a tiny bit further from the wall. Flickering problem solved. But seeing as how I have had to do this many 100's, maybe more than a 1,000 times over the years in all my projects it sure would be nice to have Mapster automatically place new sprites further away.
My suggestion is double the number that is used in that calculation right now. My pic shows the default placement on the left and where I manually drag it to on the right. Just that tiny bit of placement makes the problem go away. For reference in the pic, mapster is set for the smallest grid square.
This post has been edited by Mark.: 11 June 2018 - 09:16 AM
#5879 Posted 13 June 2018 - 10:47 AM
#5880 Posted 13 June 2018 - 12:59 PM
Mark., on 13 June 2018 - 10:47 AM, said:
I'm pretty sure they don't want to make mapster changes based on Polymer glitches. But you could strengthen your case if you could show that the old default distance used in the original maps was larger and did not cause the issue.
Also, I don't have time to do this right now, but one could make a mapster script that would adjust the distances for the entire map all at once so you wouldn't have to do it manually.
#5881 Posted 13 June 2018 - 04:27 PM
#5882 Posted 13 June 2018 - 05:08 PM
#5886 Posted 24 June 2018 - 06:06 AM
TerminX, on 13 June 2018 - 05:08 PM, said:
I determined the band-aid fix to be acceptable and asked someone to apply it to Mapster32 for me. It works great. I know, if I want to continue using this feature I have to stay with this revision. I don't want to keep bugging this guy every couple of months to apply the band-aid to the latest revision. But right now its a decent tradeoff.
This post has been edited by Mark.: 24 June 2018 - 06:07 AM
#5888 Posted 24 June 2018 - 06:13 AM
Or would the script automatically run at Mapster startup and place the sprites away from the wall by default like my version does?
This post has been edited by Mark.: 24 June 2018 - 06:17 AM
#5889 Posted 24 June 2018 - 08:30 AM
Micky C, on 24 June 2018 - 06:10 AM, said:
Hmmm, how would you determine which sprites to move and when to move them. Just sorting for wall aligned sprites isn't enough, you would need to check if they are close to a wall. It's not so complex for trig, but a fair bit complex for m32 script.
Eg) Rooftop E1L1, the fence;
These sprites are all pretty close to a wall, so the script should move them, but then the corners will open up (more than they already are.)
Also these sprites are above the wall and don't actually z-fight with anything because there is nothing behind them... so maybe they shouldn't move after all but now that's a hell of a lot of extra scripting, and what is that checking for, the height of the floor on the other side of a red wall if the sprite is even against a red wall, it may be a white wall and be empty back there...
This post has been edited by Drek: 24 June 2018 - 08:31 AM
#5890 Posted 24 June 2018 - 10:41 AM
#5891 Posted 24 June 2018 - 10:50 AM
Also, the extra time and effort to zoom in all over the map to find and alt-select the proper sprites to run the script on would be a hassle. In my opinion, hacked Mapster32 is the best solution for me at this time.
If a Mapster script can be autoran at startup and perform the same sprite placement away from the wall at the time it is placed there I would say go for it. But right now it doesn't look to be that way. Until then it will be hard to talk me out of hacked mapster which does exactly what I wanted.
This post has been edited by Mark.: 24 June 2018 - 10:59 AM
#5892 Posted 24 June 2018 - 10:53 AM
Mark., on 24 June 2018 - 10:50 AM, said:
Well I don't know how I would make a mapster script intercept and adjust the sprite placement as it happens. The only way I know how to do it is when the user deliberately runs the script.
#5893 Posted 24 June 2018 - 11:01 AM
This post has been edited by Mark.: 24 June 2018 - 11:03 AM
#5894 Posted 24 June 2018 - 12:38 PM
Trooper Dan, on 24 June 2018 - 10:53 AM, said:
m32 script is many things, undocumented and surprising being just two of them.
onevent EVENT_INSERTSPRITE3D
set k I
for i spritesofsector .sectnum
{
ife i k
{
set .lotag 10
}
}
endeventI read about EVENT_INSERTSPRITE2D in a.m32 so I just tried to do something random using event insert sprite 3d and it works. Maybe a script solution is feasible.
#5896 Posted 24 June 2018 - 06:09 PM
////////// MOVE SPRITE ORNAMENTED (TESTING-6/24/2018) //////////
gamevar mso_i 0 0
gamevar mso_j 0 0
gamevar mso_k 0 0
onevent EVENT_INSERTSPRITE3D
set mso_i -1
set mso_j -1
set mso_k 0
ifaimingsprite nullop else
ifaimingwall
ife searchstat 0
{
// j = wall[hitw].point2;
// sprite[i].x -= ksgn(wall[j].y-wall[hitw].y);
// sprite[i].y += ksgn(wall[j].x-wall[hitw].x);
set mso_i -1
set mso_j -1
set mso_k 0
setvarvar mso_j wall[searchwall].point2;
setvarvar mso_i wall[mso_j].y
subvarvar mso_i wall[searchwall].y
cos mso_k mso_i
divvar mso_k 512
subvarvar .x mso_k;
set mso_i -1
set mso_k 0
setvarvar mso_i wall[mso_j].x
subvarvar mso_i wall[searchwall].x
sin mso_k mso_i
divvar mso_k 512
subvarvar .y mso_k;
}
endevent
#5897 Posted 02 July 2018 - 08:20 AM
Because prior to that, it used a 3D spinning Duke model in the menu, now it's just the regular sprite.
Probably old, but just wanted to know.
#5898 Posted 02 July 2018 - 12:04 PM
#5899 Posted 15 July 2018 - 02:17 AM
I've returned to Duke after a year, downloaded the newest version of eDuke32 and noticed some of my Cosmetic Duke code does not seem to work anymore i.e. specifically the casings on the Pistol and Shotgun. Funnily enough, the Chaingun casings and Pistol magazines (all of which are projectiles) work fine.
Mod:
https://www.mediafir...c8/CosmDuke.zip
I've tracked the specific version wherein the code stops working to 20170727-6388. It still works fine on 20170720-6372. I don't know whether this is a bug or some change I need to adjust my code to.

Help
Duke4.net
DNF #1
Duke 3D #1


