EDuke32 issueshttps://voidpoint.io/terminx/eduke32/-/issues2023-05-21T13:45:38-07:00https://voidpoint.io/terminx/eduke32/-/issues/154Duke3D: Can't throw pipebomb through small opening in Red42023-05-21T13:45:38-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Can't throw pipebomb through small opening in Red4This occurs since r7480 (cdcc13e8), with the behavior changing again in r7484 (eca7133e).
It is no longer possible to throw a pipebomb through the crack in the image below. Instead, it gets stuck inside the crack, and never passes throu...This occurs since r7480 (cdcc13e8), with the behavior changing again in r7484 (eca7133e).
It is no longer possible to throw a pipebomb through the crack in the image below. Instead, it gets stuck inside the crack, and never passes through. Previous to r7480 the pipebomb went through fine. This is essential for level progression in this map.
![duke0008](/uploads/42f8747a9a1965f22e14702fb028298c/duke0008.png)
This is from the map !["Red 4" by Merlijn van Oostrum](http://dnr.duke4.net/maps/Red4:_Boat_Trippin.html). Attached is a cut-down version to demonstrate the problem.
[clipping_crackwall.map](/uploads/ed366e4416cee498e7edfcc62b53159a/clipping_crackwall.map)https://voidpoint.io/terminx/eduke32/-/issues/149Too easy to strafe-run into your own projectiles and damage or kill yourself.2023-05-21T13:45:12-07:00Jordon MossToo easy to strafe-run into your own projectiles and damage or kill yourself.Ever since the projectile collision code has been re-worked, it's been far too easy to strafe-run into your own projectiles (especially slow ones like the RPG, Devastator, and Shrinker), causing you to damage or kill yourself.
Video dem...Ever since the projectile collision code has been re-worked, it's been far too easy to strafe-run into your own projectiles (especially slow ones like the RPG, Devastator, and Shrinker), causing you to damage or kill yourself.
Video demonstrating the issue: http://shadowmavericks.com/files/ShareX/RPGClipping.mp4https://voidpoint.io/terminx/eduke32/-/issues/136Engine: Wrong sprite rendering order in classic mode, where sprites are in cl...2023-05-21T13:42:13-07:00Dino Bollingerdino.bollinger@gmail.comEngine: Wrong sprite rendering order in classic mode, where sprites are in close proximity to maskwallsFound by MetHy.
Sprites that are in close proximity to a maskwall appear to suffer from some sort of rendering issue where they are drawn behind sprites that are further away. It doesn't seem to matter how far the camera is away from th...Found by MetHy.
Sprites that are in close proximity to a maskwall appear to suffer from some sort of rendering issue where they are drawn behind sprites that are further away. It doesn't seem to matter how far the camera is away from the sprite.
This does not occur in Polymost.
Examples:
![duke0006](https://media.discordapp.net/attachments/461290354726010891/772453030674432020/duke0011.png?width=1120&height=630)
![duke0008](/uploads/eafbd9187ab46ffdfaad6f698435f09a/duke0008.png)
In addition, sprites may also be drawn in front of a maskwall when they are actually behind it. Happens in Rednukem as well:
![duke0007](https://cdn.discordapp.com/attachments/461290354726010891/772452968863236136/duke0284.png)
Test Map: [MASKWALL.map](/uploads/977ab24335a346739d5acdc4d4bb91a4/MASKWALL.map)
The RR instance can be reproduced in the first level, near the hidden moonshine.https://voidpoint.io/terminx/eduke32/-/issues/135Duke3D: Ordering Issue with PROJECTILE_RPG_IMPACT and DAMAGESPRITE events2023-05-21T13:38:31-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Ordering Issue with PROJECTILE_RPG_IMPACT and DAMAGESPRITE eventsThe following block of code is present in `actors.cpp`, inside the function `ACTOR_STATIC void Proj_MoveCustom(int const spriteNum)`, starting at line 3109:
```cpp
A_DamageObject(otherSprite, spriteNum);
...
if (pProj->workslike & PRO...The following block of code is present in `actors.cpp`, inside the function `ACTOR_STATIC void Proj_MoveCustom(int const spriteNum)`, starting at line 3109:
```cpp
A_DamageObject(otherSprite, spriteNum);
...
if (pProj->workslike & PROJECTILE_RPG_IMPACT)
{
actor[otherSprite].owner = pSprite->owner;
actor[otherSprite].picnum = pSprite->picnum;
if (pProj->workslike & PROJECTILE_RPG_IMPACT_DAMAGE)
actor[otherSprite].extra += pProj->extra;
A_DoProjectileEffects(spriteNum, &davect, 0);
if (!(pProj->workslike & PROJECTILE_FORCEIMPACT))
{
A_DeleteSprite(spriteNum);
return;
}
}
```
Note that in the following: `actor[otherSprite].owner == htowner`, `actor[otherSprite].picnum == htpicnum` and `actor[otherSprite].extra == htextra`.
Notice that `A_DamageObject()` handles projectile damage and calls both `EVENT_DAMAGESPRITE` as well as `EVENT_POSTDAMAGESPRITE` respectively at the start and the end of the function. The former event is supposed to be executed before the damage is added to the `htextra` struct member (and also, before `htowner` and `htpicnum` are set), while the latter event is supposed to be executed after these members have been updated.
The above block of code however is executed for any custom projectile that has the `PROJECTILE_RPG_IMPACT` flag, and breaks the assumptions made for `EVENT_POSTDAMAGESPRITE`. Namely, the `htowner` as well as `htpicnum` members are updated a second time, thus preventing them from being changed inside `EVENT_POSTDAMAGESPRITE`, and if the flag `PROJECTILE_RPG_IMPACT_DAMAGE` is also given, then the damage is incremented after the event, meaning that `EVENT_POSTDAMAGESPRITE` does not have access to the full damage the projectile does to the enemy.
As a result, this block of code bypasses any changes made to the overall damage in `EVENT_DAMAGESPRITE`. For example, if we tried to code different damage resistances for certain enemy types, `PROJECTILE_RPG_IMPACT_DAMAGE` would bypass this resistance and apply the full damage, regardless of what is done in the CON code.
However, if we were to reorder this code such that `A_DamageObject()` is executed only after the `PROJECTILE_RPG_IMPACT` block, then we break the assumption about `EVENT_DAMAGESPRITE` instead, as some damage has already been added to `htextra`.https://voidpoint.io/terminx/eduke32/-/issues/133Duke3D: Shrinker projectile cannot enter spaces it previously fit into2023-05-21T13:37:44-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Shrinker projectile cannot enter spaces it previously fit intoThis is another one of those edge-cases that are unusually common with Duke usermaps.
In a 3-episode mod called FM4X, there is a shrinker puzzle that reflects shrinker projectiles in a ring. The passages these projectiles have to enter ...This is another one of those edge-cases that are unusually common with Duke usermaps.
In a 3-episode mod called FM4X, there is a shrinker puzzle that reflects shrinker projectiles in a ring. The passages these projectiles have to enter are quite small, and starting from commit r7461 (48d1db93) the projectiles hit the wall instead of passing through.
Note that r7461 is a bugfix on commit r7409.
The location in question where projectiles are failing to pass through:
![duke0000](/uploads/5ddd84293f2205e6a710a88fd427b11b/duke0000.png)
Map excerpt:
[shrinkersprite_collision.map](/uploads/aac0c72f543e49cceddc6fd3462dbf22/shrinkersprite_collision.map)https://voidpoint.io/terminx/eduke32/-/issues/126Mapster32/Polymost: Texture (DEF) tiles can cause the 3D Mode rendering to fr...2023-05-21T13:37:25-07:00Dino Bollingerdino.bollinger@gmail.comMapster32/Polymost: Texture (DEF) tiles can cause the 3D Mode rendering to freak outWhile in Polymost mode, if you go into 3D mode while viewing a glowtile, then the next time you enter 3D mode the textures will freak out, see the video.
https://www.youtube.com/watch?v=ai5IYEAwJuQ&feature=youtu.be
When you then re-ent...While in Polymost mode, if you go into 3D mode while viewing a glowtile, then the next time you enter 3D mode the textures will freak out, see the video.
https://www.youtube.com/watch?v=ai5IYEAwJuQ&feature=youtu.be
When you then re-enter 3D mode after not having viewed a glowmap, the textures return back to normal.
The following zip defines glowmaps for the Octabrain actor and can be used to test this bug: [octabrain_glowtiles.zip](/terminx/eduke32/uploads/f754b15e607fc4fa2922e459c8f94b4c/octabrain_glowtiles.zip)https://voidpoint.io/terminx/eduke32/-/issues/125Engine: Texture (DEF) glowmap transparency is rendered as a blue box on initi...2023-05-21T13:36:55-07:00Dino Bollingerdino.bollinger@gmail.comEngine: Texture (DEF) glowmap transparency is rendered as a blue box on initial loadUsing the DEF command `texture`, one can define a glowmap for sprites. When these are loaded in for the first time, there is a noticeable blue square that is very briefly visible. On closer analysis, the blue parts are rendered where the...Using the DEF command `texture`, one can define a glowmap for sprites. When these are loaded in for the first time, there is a noticeable blue square that is very briefly visible. On closer analysis, the blue parts are rendered where there is supposed to be transparency. Example:
![glowtile_bug01](/uploads/d7fd9b390e80ee2999da859cccb92b32/glowtile_bug01.PNG)
The following zip defines glowmaps for the Octabrain actor and can be used to test this bug: [octabrain_glowtiles.zip](/terminx/eduke32/uploads/f754b15e607fc4fa2922e459c8f94b4c/octabrain_glowtiles.zip)https://voidpoint.io/terminx/eduke32/-/issues/124Duke3D: Texture (DEF) glowmaps display on actor shadows2023-05-21T13:36:22-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Texture (DEF) glowmaps display on actor shadowsUsing the DEF command `texture`, one can define a glowmap for sprites. In the case of actors, this glowmap displays on their shadows as well:
![glowtile_bug02](/uploads/66c59150e4efb4e49292b051aeaaa249/glowtile_bug02.png)
The following...Using the DEF command `texture`, one can define a glowmap for sprites. In the case of actors, this glowmap displays on their shadows as well:
![glowtile_bug02](/uploads/66c59150e4efb4e49292b051aeaaa249/glowtile_bug02.png)
The following zip defines glowmaps for the Octabrain actor and can be used to test this bug:
[octabrain_glowtiles.zip](/uploads/f754b15e607fc4fa2922e459c8f94b4c/octabrain_glowtiles.zip)https://voidpoint.io/terminx/eduke32/-/issues/120VoidSW: Graceful exit error is missing2023-05-21T13:36:06-07:00Max YlitaloVoidSW: Graceful exit error is missingOn DOS SW if you lack proper tags for i.e. drivable Sector Object, you will get a more graceful exit with the error `Forgot to tag outer loop for Sector Object #5`
Easy way to recreate this is to open `example.map` - Navigate to E-F and...On DOS SW if you lack proper tags for i.e. drivable Sector Object, you will get a more graceful exit with the error `Forgot to tag outer loop for Sector Object #5`
Easy way to recreate this is to open `example.map` - Navigate to E-F and deleting the ST1 marked `541,0,2` (Bottom right one)
VoidSW Crashes to desktop silently with no error in the logfiles (even on debug).
Expected outcome: Exit with an error, i.e. dialogue boxhttps://voidpoint.io/terminx/eduke32/-/issues/118Windows: WindowsMME music halting has chance to freeze the game2023-05-21T13:34:43-07:00Dino Bollingerdino.bollinger@gmail.comWindows: WindowsMME music halting has chance to freeze the gameThis is a problem that occurs when stopping the playback of **midi** files using WindowsMME. It does not occur with SF2, OPL3, ogg or flac playback. I have also had other users report the same problem while testing WGRealms 2.
Typically...This is a problem that occurs when stopping the playback of **midi** files using WindowsMME. It does not occur with SF2, OPL3, ogg or flac playback. I have also had other users report the same problem while testing WGRealms 2.
Typically after some time has passed playing the same track, the game will freeze as it attempts to shut down the playback. This freeze exclusively occurred on stopping playback, and never on the loop of a currently playing midi.
The following is a backtrace of when the error occurred. The trace indicates a deadlock of some form, though the condition that is being waited on is unknown to me:
[freeze_bug_bt.txt](/uploads/f48d9473edbb013b38468e294637e4f2/freeze_bug_bt.txt)https://voidpoint.io/terminx/eduke32/-/issues/117MacOS: Cannot launch Mapster32.app over Finder (closes immediately without an...2023-05-21T13:34:30-07:00Dino Bollingerdino.bollinger@gmail.comMacOS: Cannot launch Mapster32.app over Finder (closes immediately without any errors)This is an odd one. First, it only occurs with Mapster32.app, and not EDuke32.app.
If one launches the application, it briefly appears to start, but closes shortly afterwards with no error messages or crashlogs. This occurs even when c...This is an odd one. First, it only occurs with Mapster32.app, and not EDuke32.app.
If one launches the application, it briefly appears to start, but closes shortly afterwards with no error messages or crashlogs. This occurs even when compiling with `STARTUP_WINDOW=0`, hence it appears to be unrelated to #114.
Even more strangely, launching it over lldb appears to work fine, and mapster32 will work as expected.
I have verified this problem on both a MacOS Catalina 10.15.5 VM as well as on a physical Mac.https://voidpoint.io/terminx/eduke32/-/issues/116MacOS: Keyboard inputs are directed to the terminal, rather than to the game ...2023-05-21T13:34:13-07:00Dino Bollingerdino.bollinger@gmail.comMacOS: Keyboard inputs are directed to the terminal, rather than to the game windowWhen launching eduke32 or mapster32 over the terminal on MacOS, all inputs end up going to the terminal in the background, rather than the game itself. Furthermore it is apparently not possible to have the window refocus and the inputs b...When launching eduke32 or mapster32 over the terminal on MacOS, all inputs end up going to the terminal in the background, rather than the game itself. Furthermore it is apparently not possible to have the window refocus and the inputs be directed to the game.
This is according to a user who would like to use mapster32 on a Mac machine (temporarily).
Even if this turns out not to be a bug, I would be happy to know any possible solutions or workarounds for this problem.https://voidpoint.io/terminx/eduke32/-/issues/115MacOS: eduke32 and mapster32 ignore the -cwd parameter and the `user_profiles...2023-05-21T13:33:55-07:00Dino Bollingerdino.bollinger@gmail.comMacOS: eduke32 and mapster32 ignore the -cwd parameter and the `user_profiles_disabled` fileSee title.
This can be a nuisance if one intends to play a mod such as Alien Armageddon on Mac, which dumps all of its data in subfolders in the base directory.See title.
This can be a nuisance if one intends to play a mod such as Alien Armageddon on Mac, which dumps all of its data in subfolders in the base directory.https://voidpoint.io/terminx/eduke32/-/issues/114MacOS: Crash related to startup window2023-05-21T13:16:19-07:00Dino Bollingerdino.bollinger@gmail.comMacOS: Crash related to startup windowWhen toggling the fullscreen checkbox in the MacOS startup window after launching either Mapster32.app or EDuke32.app, I receive the following error:
[MACOS_ERROR.TXT](/uploads/163e475c38cb486a7296ef5ec9b7387b/MACOS_ERROR.TXT)
Here's a...When toggling the fullscreen checkbox in the MacOS startup window after launching either Mapster32.app or EDuke32.app, I receive the following error:
[MACOS_ERROR.TXT](/uploads/163e475c38cb486a7296ef5ec9b7387b/MACOS_ERROR.TXT)
Here's a backtrace of the issue:
[bt_macos.txt](/uploads/8e14942010a20e21c5e101c5a45170be/bt_macos.txt)
This occurred using a MacOS Catalina 10.15.5 VM on Virtualbox. I also have a report of this exact error occurring on a physical Mac, where the crash even happens without needing to toggle the button. Compiling using `STARTUP_WINDOW=0` resolves the problem in this case.https://voidpoint.io/terminx/eduke32/-/issues/111EVENT_ANALYZESPRITES drawnsprites is not working correctly2023-05-21T13:15:05-07:00Max YlitaloEVENT_ANALYZESPRITES drawnsprites is not working correctlyHow to repro:
write "test.m32" in duke dir with the following contents and create a map with one or more wall/floor aligned sprites (voxels work too)
```
gamevar rotang 0 0
gamevar i 0 0
onevent EVENT_ANALYZESPRITES
add rotang 4
...How to repro:
write "test.m32" in duke dir with the following contents and create a map with one or more wall/floor aligned sprites (voxels work too)
```
gamevar rotang 0 0
gamevar i 0 0
onevent EVENT_ANALYZESPRITES
add rotang 4
ifg rotang 2047 set rotang 0
for i drawnsprites
{
addlogvar i
set tsprite[i].ang rotang
}
endevent
```
Sector A with 1 sprite will show an `i` value of 0
Sector B with 4 sprites will show an `i` value of `0, 1, 2`
Iterator verified to work by placing an `addlogvar` before `endevent`
What should happen:
Sprites on screen should assume angle from rotang (visually, in tsprite)
What happens:
Nothing -- It seems that iterator `i` doesn't work inside `set tsprite[i].ang rotang` despite appearing correctly on previous line
When `set tsprite[i].ang rotang` is replaced with a static number, such as `0` or `1` - the sprite(s) in question will rotate.https://voidpoint.io/terminx/eduke32/-/issues/109Duke3D: Shrunk state allows moving through much tighter spaces than before2023-05-21T13:14:04-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Shrunk state allows moving through much tighter spaces than beforeEver since the big clipping changes, it is now possible to move into much tighter spaces than before while shrunk.
Map to demonstrate:
[tightshrunk.map](/uploads/be9e7a652760cb92da630732314cace8/tightshrunk.map)
The path on the right c...Ever since the big clipping changes, it is now possible to move into much tighter spaces than before while shrunk.
Map to demonstrate:
[tightshrunk.map](/uploads/be9e7a652760cb92da630732314cace8/tightshrunk.map)
The path on the right can be moved through since r7428 (d060ca95).
The path on the left can be moved into since r8568 (86b57410), and this particular path instantly kills the player despite being shrunk.https://voidpoint.io/terminx/eduke32/-/issues/104Repeated quotes suppressed from log even after being redefined2023-05-21T13:13:38-07:00Rob AnybodyRepeated quotes suppressed from log even after being redefinedWhen the same quote is displayed more than once, it only gets logged the first time although it appears on-screen every time. This seems intentional, so that for example standing on a slime floor with boots doesn't spam the log with the ...When the same quote is displayed more than once, it only gets logged the first time although it appears on-screen every time. This seems intentional, so that for example standing on a slime floor with boots doesn't spam the log with the same message over and over.
Unfortunately this also happens when the same quote is reused to display different text (e.g. "TQUOTE" from the examples, using `qputs` or `qsprintf`). Since the message has changed, it should probably be logged each time.https://voidpoint.io/terminx/eduke32/-/issues/87Mapster32: game code and data loading issues2023-05-21T13:11:47-07:00Dino Bollingerdino.bollinger@gmail.comMapster32: game code and data loading issuesMapster32's handling of game data and grpinfo is very opaque and leaves the user in the dark as to what exactly is being loaded.
For example, unlike for `eduke32.exe` it isn't possible to specify which game you want to load data or code...Mapster32's handling of game data and grpinfo is very opaque and leaves the user in the dark as to what exactly is being loaded.
For example, unlike for `eduke32.exe` it isn't possible to specify which game you want to load data or code from. This leads to a problem with grpinfo where mapster32 ignores the `GAME.CON` and `DUKE3D.DEF` replacements (specified through `scriptname` and `defname`), and instead uses the default files.
These files can however contain commands used specifically to affect the editor itself (such as line and sprite color or sound definitions), which hence may not be executed or loaded at all.https://voidpoint.io/terminx/eduke32/-/issues/85Feature Request: Greater sound and music control in CON2023-05-21T13:10:20-07:00Dino Bollingerdino.bollinger@gmail.comFeature Request: Greater sound and music control in CONRecently, mods such as the AMC TC, Alien Armageddon and even WGR2020 have begun including voice acting on non-playable characters during gameplay. An example for this is the last mission in Alien Armageddon, where the main villain taunts...Recently, mods such as the AMC TC, Alien Armageddon and even WGR2020 have begun including voice acting on non-playable characters during gameplay. An example for this is the last mission in Alien Armageddon, where the main villain taunts you as you make your escape.
A common problem encountered with this however is that there is a lack of options for volume mixing through CON scripts. Specifically, when a character is talking, one would want to lower the volume of surrounding ambient noise and battle sounds, such that the character can be understood better. At the same time, while no one is talking, sounds and music should be at normal volume rather than being muffled.
This isn't really possible at the moment without suboptimal workarounds. Therefore, additional commands to be able to alter the volume of sounds and music would be greatly appreciated.https://voidpoint.io/terminx/eduke32/-/issues/77Engine: Polymer has major issues rendering surfaces in NAM2023-05-21T13:09:16-07:00Dino Bollingerdino.bollinger@gmail.comEngine: Polymer has major issues rendering surfaces in NAMThis goes back to the very first versions of Polymer, and maybe the levels were badly designed.
The following screenshots were taken in the first level of NAM:
* Polymost: https://imgur.com/gTauq6o
* Polymer: https://imgur.com/hHR96Ux
...This goes back to the very first versions of Polymer, and maybe the levels were badly designed.
The following screenshots were taken in the first level of NAM:
* Polymost: https://imgur.com/gTauq6o
* Polymer: https://imgur.com/hHR96Ux
These floors seem to be rendered as parallax skies rather than grass. The sky also appears to be oddly shifted down.
Additionally, level geometry is visible through parallax skies in Polymer:
* Polymost: https://imgur.com/bnCtivN
* Polymer: https://imgur.com/rf5K4gJ
I know that Polymer isn't really maintained anymore, but this may be useful for projects that are based on Polymer, e.g. the experimental Direct3D 12/Vulkan renderer from ICD, should that ever go anywhere.