EDuke32 issueshttps://voidpoint.io/terminx/eduke32/-/issues2020-04-20T15:02:33-07:00https://voidpoint.io/terminx/eduke32/-/issues/1EDuke32 usermap - crashes on load2020-04-20T15:02:33-07:00LeoDEDuke32 usermap - crashes on loadOrigin: https://forums.duke4.net/topic/11142-this-usermap-crashes-on-load
[E2L2-crash.zip](/uploads/af9bdc302a3e64341aea6142b2bc0aba/E2L2-crash.zip)
Findings: bisect-compiled to r7813-a78e49c23, aka r7820 in the old Subversion repository.Origin: https://forums.duke4.net/topic/11142-this-usermap-crashes-on-load
[E2L2-crash.zip](/uploads/af9bdc302a3e64341aea6142b2bc0aba/E2L2-crash.zip)
Findings: bisect-compiled to r7813-a78e49c23, aka r7820 in the old Subversion repository.https://voidpoint.io/terminx/eduke32/-/issues/2Shrapnel City episode: post-cut-scene silence2022-02-19T16:42:05-08:00LeoDShrapnel City episode: post-cut-scene silenceOrigin: https://forums.duke4.net/topic/11131-shrapnel-city-post-cutscene-silence
Maybe related: https://forums.duke4.net/topic/10478-dc-ending-silence
Episode ending cut-scene plays as normal, but when the splash screen appears before ...Origin: https://forums.duke4.net/topic/11131-shrapnel-city-post-cutscene-silence
Maybe related: https://forums.duke4.net/topic/10478-dc-ending-silence
Episode ending cut-scene plays as normal, but when the splash screen appears before the level stats, Duke only says "My name's Duke Nukem." The rest of the audio does not play.
Findings:
"Trisected" to r6785-1830f405a / svn6792, and r6867-f385a451a / svn6874.
The first one lets Duke and Lani talk at the same time, but for less than a second.
The second one provides some improper fix, leading to the current behaviour.https://voidpoint.io/terminx/eduke32/-/issues/3EDuke32 crash on loading City Terror [CITYTR.GRP]2020-04-20T13:58:18-07:00LeoDEDuke32 crash on loading City Terror [CITYTR.GRP]Reproducible crashes as of EDuke32 r6562-e7cc4e145 / svn6569 when trying to run City Terror
- https://dukeworld.duke4.net/2001-current/tc/cityterror
- The original CONs are no longer accepted
- Patched CONs and crash logs attached
- Co...Reproducible crashes as of EDuke32 r6562-e7cc4e145 / svn6569 when trying to run City Terror
- https://dukeworld.duke4.net/2001-current/tc/cityterror
- The original CONs are no longer accepted
- Patched CONs and crash logs attached
- Command line: eduke32 -g CITYTR.GRP
[CityTerror-r6569-crash.zip](/uploads/dd7507f1df205168e935a71f44fb6c6a/CityTerror-r6569-crash.zip)https://voidpoint.io/terminx/eduke32/-/issues/4Erroneous CON parser warning on "nullop"2020-04-21T13:30:51-07:00LeoDErroneous CON parser warning on "nullop"A nullop in brackets may cause a “`nullop’ found without `else’” warning.
Btw, is there a reason why the citations start with ` instead of ' ?
This legit construct can be easily avoided be removing the brackets, but is surely handy duri...A nullop in brackets may cause a “`nullop’ found without `else’” warning.
Btw, is there a reason why the citations start with ` instead of ' ?
This legit construct can be easily avoided be removing the brackets, but is surely handy during development.
Example log excerpt (World Tour), EDuke r8865-c4e58ebe9 :
Including: EPISODE5BOSS.CON (8197 bytes)
EPISODE5BOSS.CON: In state 'BOSS5code':
EPISODE5BOSS.CON:377: warning: 'nullop' found without 'else'
Example code excerpt (World Tour, EPISODE5BOSS.CON):
ifhitweapon {
ifwasweapon FLAMETHROWERFLAME {
nullop
}
else {
state checkBOSS5hitstate
}
}https://voidpoint.io/terminx/eduke32/-/issues/5Mapster32 logging: no more warning about missing names.h2021-08-14T00:53:40-07:00LeoDMapster32 logging: no more warning about missing names.hThe message "Failed to open names.h" is lost as of r5409-bae27398d / svn5414.The message "Failed to open names.h" is lost as of r5409-bae27398d / svn5414.https://voidpoint.io/terminx/eduke32/-/issues/6Change/Feature request : suppress CON code warnings about official GRP's CON ...2020-05-24T04:10:55-07:00LeoDChange/Feature request : suppress CON code warnings about official GRP's CON file issuesAtomic version examples:
- the two "'else' with no 'if'" warnings in the GAME.CON
- two already defined sounds in the GAME.CON
- missing VOC files in USER.CON
Instead: Show only one message (FOOBAR.CON's checksum is known):
"Note: supp...Atomic version examples:
- the two "'else' with no 'if'" warnings in the GAME.CON
- two already defined sounds in the GAME.CON
- missing VOC files in USER.CON
Instead: Show only one message (FOOBAR.CON's checksum is known):
"Note: suppressing warnings about legacy CON code issues in well-known FOOBAR.CON"https://voidpoint.io/terminx/eduke32/-/issues/7Mapster32 2D view : distorted floor aligned sprites2020-04-21T12:28:15-07:00LeoDMapster32 2D view : distorted floor aligned spritesSome floor aligned sprites show up distorted in Mapster32's 2D mode when graphicsmode is set to 1 or 2:
https://forums.duke4.net/topic/8241-issues-with-newer-mapster32-builds/page__p__233870#entry233870
I assume that only animated spri...Some floor aligned sprites show up distorted in Mapster32's 2D mode when graphicsmode is set to 1 or 2:
https://forums.duke4.net/topic/8241-issues-with-newer-mapster32-builds/page__p__233870#entry233870
I assume that only animated sprites are affected. Example map: Alien Controlpoint at x1152 / y29952.
Issue introduced by r1194-d3912c607 / svn1197.
[Map+Screenshots.zip](/uploads/7d881aa45589704045737cfd72800e82/Map+Screenshots.zip)https://voidpoint.io/terminx/eduke32/-/issues/8Map load: upper/lower case file name mismatch warning inconsistency2021-08-22T12:46:07-07:00LeoDMap load: upper/lower case file name mismatch warning inconsistencySystem: Win10 / NTFS
Examples:
- map file: .\E1L1.MAP
- cmd line: eduke32 -map E1L1.map
- log: Using level: "/E1L1.map".
- map file: .\E1L1.map
- cmd line: eduke32 -map E1L1.MAP
- log: warning: case mi...System: Win10 / NTFS
Examples:
- map file: .\E1L1.MAP
- cmd line: eduke32 -map E1L1.map
- log: Using level: "/E1L1.map".
- map file: .\E1L1.map
- cmd line: eduke32 -map E1L1.MAP
- log: warning: case mismatch: passed "E1L1.MAP", real "E1L1.map"
- log: Using level: "/E1L1.MAP".https://voidpoint.io/terminx/eduke32/-/issues/9Feature request: changeable text size in Mapster322022-07-19T12:45:22-07:00LeoDFeature request: changeable text size in Mapster32https://forums.duke4.net/topic/11080-mapster-32-text-sizehttps://forums.duke4.net/topic/11080-mapster-32-text-sizehttps://voidpoint.io/terminx/eduke32/-/issues/10Backtrace DLLs fail to build on Win10/MSYS22023-08-16T23:45:19-07:00LeoDBacktrace DLLs fail to build on Win10/MSYS2"make ebacktrace" fails on current Win10/MSYS2.
It used to build up to the last GCC release from the MinGW-w64 project (8.1.0):
https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-bui..."make ebacktrace" fails on current Win10/MSYS2.
It used to build up to the last GCC release from the MinGW-w64 project (8.1.0):
https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/8.1.0/threads-posix/seh
While I could fix compiling with the GCC 9.x that comes with MSYS2, the resulting DLL doesn't actually work:
Fix (64bit): > pacman -S mingw-w64-x86_64-expat mingw-w64-x86_64-gettext
Working command line (64bit): > gcc -O2 -std=gnu99 -ggdb -shared -Wall -Wextra -static-libgcc -o ebacktrace1-64.dll platform/Windows/src/backtrace.c -I/mingw64/include/binutils/ -L/mingw64/lib/binutils/ -lbfd -liberty -limagehlp -lintlhttps://voidpoint.io/terminx/eduke32/-/issues/11Custom Episode Intro does not play (Duke Hard)2021-08-22T12:49:57-07:00LeoDCustom Episode Intro does not play (Duke Hard)Introduced by r7797-ad85f45f7 / svn7804.
Forum: https://forums.duke4.net/topic/11158-custom-intros-dont-work/
Autoload version for easier checking:
https://www.mediafire.com/file/dprksuzqcs8yvge/DukeHard-1.2.1-autoload.zipIntroduced by r7797-ad85f45f7 / svn7804.
Forum: https://forums.duke4.net/topic/11158-custom-intros-dont-work/
Autoload version for easier checking:
https://www.mediafire.com/file/dprksuzqcs8yvge/DukeHard-1.2.1-autoload.zipEvan RamosEvan Ramoshttps://voidpoint.io/terminx/eduke32/-/issues/12Silent Episode Ending Sequence (Duke in D.C.)2021-06-30T12:05:30-07:00LeoDSilent Episode Ending Sequence (Duke in D.C.)Bisect-compiled to r4982-9063d59b8 / svn4987 as the culprit.
Forum: https://forums.duke4.net/topic/10478-dc-ending-silence/
Note that you need some GCC version lower than 8 to build. (I used 4.9.2)
Autoload version for easier checking...Bisect-compiled to r4982-9063d59b8 / svn4987 as the culprit.
Forum: https://forums.duke4.net/topic/10478-dc-ending-silence/
Note that you need some GCC version lower than 8 to build. (I used 4.9.2)
Autoload version for easier checking: https://www.mediafire.com/file/ibawq5kyidivpqe/DukeInDC_autoload.zip
Shortcut to Boss: [DUKEDC1.MAP](/uploads/621ff262ac61fc6a26a50e4de187815d/DUKEDC1.MAP)https://voidpoint.io/terminx/eduke32/-/issues/13SHIFT + KPx issue[s]2021-08-22T12:51:33-07:00LeoDSHIFT + KPx issue[s]Forum: https://forums.duke4.net/topic/10477-shift-kp5-does-not-respond/page__p__340897#entry340897Forum: https://forums.duke4.net/topic/10477-shift-kp5-does-not-respond/page__p__340897#entry340897https://voidpoint.io/terminx/eduke32/-/issues/14Feature request: Mapster32 command line parameter logging2021-06-30T12:06:39-07:00LeoDFeature request: Mapster32 command line parameter loggingMapster32 should log its command line parameters, like EDuke32 does.
[build-8807-8873.cpp.patch](/uploads/f5ac1dd0faa2e0a8b1bc3fa056630b89/build-8807-8873.cpp.patch)Mapster32 should log its command line parameters, like EDuke32 does.
[build-8807-8873.cpp.patch](/uploads/f5ac1dd0faa2e0a8b1bc3fa056630b89/build-8807-8873.cpp.patch)https://voidpoint.io/terminx/eduke32/-/issues/15Open Flyspray Bugtracker Entries2021-08-22T12:53:04-07:00LeoDOpen Flyspray Bugtracker EntriesArchival post. Issue may be closed.
Forum: https://forums.duke4.net/topic/11146-open-flyspray-bugtracker-issues/
[EDuke32-Open_Flyspray_Bugtracker_Entries.zip](/uploads/dde610210ca8c4daa6ee113e33c46e3a/EDuke32-Open_Flyspray_Bugtracker_...Archival post. Issue may be closed.
Forum: https://forums.duke4.net/topic/11146-open-flyspray-bugtracker-issues/
[EDuke32-Open_Flyspray_Bugtracker_Entries.zip](/uploads/dde610210ca8c4daa6ee113e33c46e3a/EDuke32-Open_Flyspray_Bugtracker_Entries.zip)https://voidpoint.io/terminx/eduke32/-/issues/16Game Freeze when loading E3L2 in DukePlus2021-07-09T18:15:10-07:00LeoDGame Freeze when loading E3L2 in DukePlusBisect-compiled to r7188-f9e26c5a6 / svn7195
Forum: https://forums.duke4.net/topic/775-eduke32-20-and-polymer/page__pid__340965__st__6270#entry340965
Reproduce (HRP not needed): get DukePlus 2.40 and easy installation instructions from...Bisect-compiled to r7188-f9e26c5a6 / svn7195
Forum: https://forums.duke4.net/topic/775-eduke32-20-and-polymer/page__pid__340965__st__6270#entry340965
Reproduce (HRP not needed): get DukePlus 2.40 and easy installation instructions from here: https://fissile.duke4.net/fissile_dukeplus.html
NEW GAME -> USER MAP -> E3L2
I have a feeling that the issue is related to this report: https://forums.duke4.net/topic/775-eduke32-20-and-polymer/page__st__6270__p__341314#entry341314Richard Gobeillerichard@voidpoint.comRichard Gobeillerichard@voidpoint.comhttps://voidpoint.io/terminx/eduke32/-/issues/17Skill and Level Warp Cheat Menu cannot be used2020-04-24T13:17:51-07:00LeoDSkill and Level Warp Cheat Menu cannot be usedForum: https://forums.duke4.net/topic/11105-r8784-skill-and-level-warp-cheat-menu-cannot-be-used/Forum: https://forums.duke4.net/topic/11105-r8784-skill-and-level-warp-cheat-menu-cannot-be-used/https://voidpoint.io/terminx/eduke32/-/issues/18Riding subways pushes the player forwards2020-04-29T22:16:41-07:00LeoDRiding subways pushes the player forwardsBisection incomplete due to compiler errors:
- r7816-0328ded39 / svn7823 - OK
- r7822-4c9e27069 / svn7829 - bad
Forum: https://forums.duke4.net/topic/11133-riding-subways-pushes-the-player-forwards/Bisection incomplete due to compiler errors:
- r7816-0328ded39 / svn7823 - OK
- r7822-4c9e27069 / svn7829 - bad
Forum: https://forums.duke4.net/topic/11133-riding-subways-pushes-the-player-forwards/https://voidpoint.io/terminx/eduke32/-/issues/19Wangulator crashes without SW.GRP2021-06-30T13:17:08-07:00LeoDWangulator crashes without SW.GRPWangulator crashes after the startup window if SW.GRP is not present.
As of r8502-ddda99d0a / svn8509, Wangulator crashes after the startup window even with SW.GRP present, if "pathsearchmode = 1" in wangulator.cfg, or if wangulator.cfg...Wangulator crashes after the startup window if SW.GRP is not present.
As of r8502-ddda99d0a / svn8509, Wangulator crashes after the startup window even with SW.GRP present, if "pathsearchmode = 1" in wangulator.cfg, or if wangulator.cfg is missing.
You can start with "pathsearchmode = 0" in wangulator.cfg, change from "Game filesystem mode" to "Local filesystem mode" while running, and successfully load a map.
But then Wangulator will crash on next restart.
I know that Wangulator isn't considered usable anyway, but this issue is not supposed to magically vanish when temperatures rise...
[wangulator-crashtest.7z](/uploads/867d6a971ecfdd8ff3373e4f1f640df6/wangulator-crashtest.7z)https://voidpoint.io/terminx/eduke32/-/issues/20Shrinkblast Radius Inaccuracy2020-04-29T19:44:16-07:00LeoDShrinkblast Radius InaccuracyIntroduced at r8072-71a790d2 / svn8079.
Forum: https://forums.duke4.net/topic/10911-a-radiusdamage-computation-is-incorrect-as-of-r8494/page__view__findpost__p__336467
Reproduce easier: [Shrinkblast-Radius-Inaccuracy.7z](/uploads/e8e99...Introduced at r8072-71a790d2 / svn8079.
Forum: https://forums.duke4.net/topic/10911-a-radiusdamage-computation-is-incorrect-as-of-r8494/page__view__findpost__p__336467
Reproduce easier: [Shrinkblast-Radius-Inaccuracy.7z](/uploads/e8e990694cb10b032402f0355f85e2e1/Shrinkblast-Radius-Inaccuracy.7z)Richard Gobeillerichard@voidpoint.comRichard Gobeillerichard@voidpoint.comhttps://voidpoint.io/terminx/eduke32/-/issues/21Feature Request: Expose current [sub]menu entry selection of newgamechoices t...2021-06-27T15:58:21-07:00LeoDFeature Request: Expose current [sub]menu entry selection of newgamechoices to CONForum: https://forums.duke4.net/topic/11002-feature-request-exposing-the-current-menusubmenu-entry-selection-of-newgamechoices-to-con/Forum: https://forums.duke4.net/topic/11002-feature-request-exposing-the-current-menusubmenu-entry-selection-of-newgamechoices-to-con/https://voidpoint.io/terminx/eduke32/-/issues/22Possible issue, unsure. Save game version appears to change with every new co...2020-04-29T15:31:35-07:00Mitchell RichtersPossible issue, unsure. Save game version appears to change with every new commit.During some testing, I receive the below in as part of the stdout output:
`Incompatible savegame. Expected version 1.7.340.0.63a4a5f6, found 1.7.340.0.a86fa6a8`
This could be be design, but wasn't sure whether it was meant to be picking...During some testing, I receive the below in as part of the stdout output:
`Incompatible savegame. Expected version 1.7.340.0.63a4a5f6, found 1.7.340.0.a86fa6a8`
This could be be design, but wasn't sure whether it was meant to be picking up the git hash in this version or not.https://voidpoint.io/terminx/eduke32/-/issues/23Microsoft MIDI Mapper: Assertion Failure2020-05-12T02:19:18-07:00LeoDMicrosoft MIDI Mapper: Assertion FailureIntroduced at r8380-7878aeec4 / svn8387
Forum: https://forums.duke4.net/topic/11150-hard-crash-when-turning-music-onoff/
Have **mus_device "3"** in settings.cfg. A certain MIDI file doesn't repeat. Stopping/Restarting music via menu tr...Introduced at r8380-7878aeec4 / svn8387
Forum: https://forums.duke4.net/topic/11150-hard-crash-when-turning-music-onoff/
Have **mus_device "3"** in settings.cfg. A certain MIDI file doesn't repeat. Stopping/Restarting music via menu triggers the assertion failure.
Reproduce: [vp023-BuildGameTest.zip](/uploads/0664fb9b2264408e11d1ffba8160393c/vp023-BuildGameTest.zip)Richard Gobeillerichard@voidpoint.comRichard Gobeillerichard@voidpoint.comhttps://voidpoint.io/terminx/eduke32/-/issues/24TROR blocks enemies2023-09-03T05:30:00-07:00LeoDTROR blocks enemiesBisect-compiled to r7443-3f3ce8f18 / svn7450
Forum: https://forums.duke4.net/topic/10751-enemies-are-broken-on-tror-barriers/
As of r7481-422afced1 / svn7488 the player can't leave the trench as well, fixed at r7538-337afdeea / svn7545...Bisect-compiled to r7443-3f3ce8f18 / svn7450
Forum: https://forums.duke4.net/topic/10751-enemies-are-broken-on-tror-barriers/
As of r7481-422afced1 / svn7488 the player can't leave the trench as well, fixed at r7538-337afdeea / svn7545
(Maybe this info is helpful.)
Reproduce: [vp024-BuildGameTest.zip](/uploads/49c5d72987be1e11a47bd3044920a337/vp024-BuildGameTest.zip)Dino Bollingerdino.bollinger@gmail.comDino Bollingerdino.bollinger@gmail.comhttps://voidpoint.io/terminx/eduke32/-/issues/25Polymost "r_usenewaspect 0" deforms floor/ceiling aligned models2023-05-20T14:33:25-07:00LeoDPolymost "r_usenewaspect 0" deforms floor/ceiling aligned modelsBisect-compiled to r6697-afa113f15 / svn6704
The Polymost oldaspect wasn't any precise compared to Polymer in the first place, but now...
Reproduce: [vp025-BuildGameTest.7z](/uploads/6e796979b252f5aa7e952aab953ca66c/vp025-BuildGameTest...Bisect-compiled to r6697-afa113f15 / svn6704
The Polymost oldaspect wasn't any precise compared to Polymer in the first place, but now...
Reproduce: [vp025-BuildGameTest.7z](/uploads/6e796979b252f5aa7e952aab953ca66c/vp025-BuildGameTest.7z)https://voidpoint.io/terminx/eduke32/-/issues/26Polymost mdzoff maphack error for floor-aligned models2023-05-20T14:33:25-07:00LeoDPolymost mdzoff maphack error for floor-aligned modelsForum: https://forums.duke4.net/index.php?showtopic=11182
Patch:
[mhk-8644-8894.cpp.patch](/uploads/addbaa34ac4827dbfbaf1314b350d0db/mhk-8644-8894.cpp.patch)
Detailed test+example suite:
[vp026-BuildGameTest.7z](/uploads/db8c68d3edfb77...Forum: https://forums.duke4.net/index.php?showtopic=11182
Patch:
[mhk-8644-8894.cpp.patch](/uploads/addbaa34ac4827dbfbaf1314b350d0db/mhk-8644-8894.cpp.patch)
Detailed test+example suite:
[vp026-BuildGameTest.7z](/uploads/db8c68d3edfb7780c095dfbb2abf20af/vp026-BuildGameTest.7z)
As initially described [here](https://forums.duke4.net/topic/775-eduke32-20-and-polymer/page__st__5370__p__236233#entry236233), the mdzoff maphack token is processed contrarily by Polymost/Polymer. I've come to the conclusion that Polymer is right.
Devsplaining:
If you use positive values for both pitch/mdzoff to move a normal or wall-aligned sprite/model, it will move forwards. A floor-aligned sprite is displayed like fallen over backwards. Moving the model forwards should now mean to lift it up from the ground (from the player's point of view).
The md[x|y|z]off tokens were introduced for Polymost in r570-0788a646a / svn573. (To get comparable screenshots, four missing break commands need to be added - see r602-42f5eb950 / svn605.) Right from the start, Polymost needs one of pitch/mdzoff to be negative in order to lift up a floor-aligned model. Otherwise it gets stuck deeper into the ground. Since the pitch parameter is processed correctly (try big values like 256), mdzoff must be the one handled wrongly. The new code in engine.c has no hint why that is, because the actual handling takes place in the somewhat older mdsprite.c, where I found no hint either.
Processing pitch/roll/md[x|y|z]off was added to Polymer at r1372-5580fa844 / svn1375. Moving forward/lifting up a floor-aligned sprite works as expected. The new code in polymer.c provides no help in figuring out why Polymost is wrong, unfortunately.
The patch attached will, while loading the *mhk, invert the mdzoff value for floor-aligned sprites when Polymost is used. Changing the renderer while playing will therefore make the issue visible (again).
Instead of trying to figure out why Polymost behaves differently, I have simply patched mhk.cpp instead. Changing the actual behaviour of Polymost would break stuff elsewhere with an expected probability of 100%.https://voidpoint.io/terminx/eduke32/-/issues/27Bad response to invalid quote number2021-06-29T00:59:38-07:00LeoDBad response to invalid quote numberForum: https://forums.duke4.net/index.php?showtopic=10941
Related: https://forums.duke4.net/topic/11183-finally-done-with-my-city-map/page__view__findpost__p__341914
I think that, at least in the latter case, the error should be downgr...Forum: https://forums.duke4.net/index.php?showtopic=10941
Related: https://forums.duke4.net/topic/11183-finally-done-with-my-city-map/page__view__findpost__p__341914
I think that, at least in the latter case, the error should be downgraded to a warning. And a default quote like "EDuke32: invalid quote." should be displayed ingame.https://voidpoint.io/terminx/eduke32/-/issues/28Sentry Turrets can move around2021-08-21T14:51:41-07:00LeoDSentry Turrets can move aroundForum: https://forums.duke4.net/index.php?showtopic=10913Forum: https://forums.duke4.net/index.php?showtopic=10913https://voidpoint.io/terminx/eduke32/-/issues/29Player not looking straight ahead on map start2023-05-20T14:09:02-07:00LeoDPlayer not looking straight ahead on map startBisect-compiled to r8544-d8a523e50 / svn8551 & r8545-16fc20a5d / svn8552
r8544: the player's view "slides" into the correct position.
32-bit builds appear unaffected as of r8545.
https://forums.duke4.net/index.php?showtopic=11174
T...Bisect-compiled to r8544-d8a523e50 / svn8551 & r8545-16fc20a5d / svn8552
r8544: the player's view "slides" into the correct position.
32-bit builds appear unaffected as of r8545.
https://forums.duke4.net/index.php?showtopic=11174
Test suite with some example builds attached: [vp029-BuildGameTest.7z](/uploads/d04f7a60ddbd3020b33553b14954672a/vp029-BuildGameTest.7z)
The bug is "turned off" when a valid md3 model (frame+skin) or (highres) texture is defined for a (any?) sprite of the test map.https://voidpoint.io/terminx/eduke32/-/issues/30Compile Issues w/ GCC10 (Fedora 32 x86_64)2020-05-11T23:38:55-07:00morbCompile Issues w/ GCC10 (Fedora 32 x86_64)`In file included from source/duke3d/src/duke3d.h:146,
from source/duke3d/src/actors.cpp:29:
source/audiolib/include/music.h:44:8: error: ‘string’ in namespace ‘std’ does not name a type
44 | std::string name;
...`In file included from source/duke3d/src/duke3d.h:146,
from source/duke3d/src/actors.cpp:29:
source/audiolib/include/music.h:44:8: error: ‘string’ in namespace ‘std’ does not name a type
44 | std::string name;
| ^~~~~~
source/audiolib/include/music.h:41:1: note: ‘std::string’ is defined in header ‘<string>’; did you forget to ‘#include <string>’?
40 | #include <vector>
+++ |+#include <string>
41 |
Failed building obj/duke3d/actors.o from source/duke3d/src/actors.cpp!
make: *** [GNUmakefile:1084: obj/duke3d/actors.o] Error 1
`
https://voidpoint.io/terminx/eduke32/-/issues/31Tripbomb Placement Bug2020-06-04T07:53:14-07:00LeoDTripbomb Placement BugIntroduced between 1.3D (shareware?) and Atomic.
https://forums.duke4.net/index.php?showtopic=11197
In some situations, Duke will place tripbombs on a FAR away wall.
Load the attached map, (do not turn,) jump and press fire to place a...Introduced between 1.3D (shareware?) and Atomic.
https://forums.duke4.net/index.php?showtopic=11197
In some situations, Duke will place tripbombs on a FAR away wall.
Load the attached map, (do not turn,) jump and press fire to place a tripbomb on a far away wall.
The Atomic executable doesn't like zoowgr.map and freezes on map load.
Attached: stripped down test map, accepted by the Atomic executable. Two tripbombs placed at the bug's threshold. Due to issue #29 you may want to press "Center View" first.
[VP031-tripbug.zip](/uploads/ddb2503631676b7188dac1119f51bb6a/VP031-tripbug.zip)https://voidpoint.io/terminx/eduke32/-/issues/32VoidSW Last Warrior cutscene crash2021-07-01T12:48:13-07:00Slim BruceVoidSW Last Warrior cutscene crashWhen you reach the 4th level in The Last Warrior in VoidSW.
You need to fight a boss which is a reskin of the Serpent God. When the boss' health has been halved. A cutscene will play.
The issues already arrive when the cutscene starts pl...When you reach the 4th level in The Last Warrior in VoidSW.
You need to fight a boss which is a reskin of the Serpent God. When the boss' health has been halved. A cutscene will play.
The issues already arrive when the cutscene starts playing, The cutscene was made for 4:3, while this isn't a problem. Instead of black bars like usual, an image from before the cutscene starts to flicker at the place of the black bars.
When the cutscene is over. The game simply crashes.
[voidsw.crash.log](/uploads/1401456fac6ceef180975e5b794f435f/voidsw.crash.log)
[voidsw.log](/uploads/5460b51a4be044b1e11781334fc6b231/voidsw.log)https://voidpoint.io/terminx/eduke32/-/issues/33SW multiplayer: Add another way to set the player's nickname from the game2020-05-24T04:09:07-07:00NY00123SW multiplayer: Add another way to set the player's nickname from the gamehttps://voidpoint.io/terminx/eduke32/-/issues/34SW: Player view is initially jittery in level 5 if SO interpolation is disabled2020-06-06T14:36:15-07:00NY00123SW: Player view is initially jittery in level 5 if SO interpolation is disabledThis is a side-effect of commit bf31bc2987a3eccd31d343622327bd4ee0f9c5a1, which was added in order to resolve jitters while being carried by a rotating sector, again without SO interpolation.
The problem seems to disappear after the use...This is a side-effect of commit bf31bc2987a3eccd31d343622327bd4ee0f9c5a1, which was added in order to resolve jitters while being carried by a rotating sector, again without SO interpolation.
The problem seems to disappear after the user moves the player, and even after such player movement stops.https://voidpoint.io/terminx/eduke32/-/issues/35SW: Lo Wang Rap does not play after beating the original campaign2021-03-14T07:28:49-07:00MYHOUSE.MAPSW: Lo Wang Rap does not play after beating the original campaignAfter defeating the final boss and watching the end cutscene in Code of Honor, Lo Wang says "After all that work, Lo Wang feel like a song! Heh heh.". The game should then start playing the "Lo Wang Rap" song while looping through the cr...After defeating the final boss and watching the end cutscene in Code of Honor, Lo Wang says "After all that work, Lo Wang feel like a song! Heh heh.". The game should then start playing the "Lo Wang Rap" song while looping through the credit textures on screen. However, the player is booted right back to the main menu with the main theme playing after Lo Wang says "After all that work, Lo Wang feel like a song! Heh heh" in VoidSW.
This happened with Interlopate SO on and off.
Version used is r9028-02eff8c8c.Evan RamosEvan Ramoshttps://voidpoint.io/terminx/eduke32/-/issues/36SW: Screen does not fade to black after beating the final boss in the origina...2021-07-02T12:11:05-07:00MYHOUSE.MAPSW: Screen does not fade to black after beating the final boss in the original campaignWhwen defeating Zilla in the original executable in Code of Honor, the screen fades to black to transition to the cutscene that plays once he is defeated and the player has waited a few seconds after his death animation is done. This doe...Whwen defeating Zilla in the original executable in Code of Honor, the screen fades to black to transition to the cutscene that plays once he is defeated and the player has waited a few seconds after his death animation is done. This does not happen in VoidSW. Instead, the cutscene suddenly plays after a few seconds of waiting after Zilla's death animation is complete.
This problem hapens with Interlopate SO on and off. Version tested is r9028-02eff8c8c.https://voidpoint.io/terminx/eduke32/-/issues/37SW: Unusual boss music issues in level 202021-07-03T02:44:19-07:00MYHOUSE.MAPSW: Unusual boss music issues in level 20In level 20, you refight both the Sumo and Serpent God bosses before dealing with the final boss, Zilla. Normally, the game starts the boss music when the player first enters the boss arena, then stops once the boss' death animation is c...In level 20, you refight both the Sumo and Serpent God bosses before dealing with the final boss, Zilla. Normally, the game starts the boss music when the player first enters the boss arena, then stops once the boss' death animation is complete. However, I've noticed two unusual cases regarding it.
Case 1: The boss music did not stop once the Sumo was defeated. Saving a game after this, then loading it, would play the music at a lower volume, but it was still there. The music would restart at regular volume once entering the Serpent God and Zilla's chambers, but would continue to play after their deaths. This happened twice.
Case 2: The boss music stopped once the Sumo was defeated, but did not start again once the Serpent God nor Zilla were encountered. This happened once.
There dosen't seem to be any way to reliably repeat these issues. I had two testing runs through level 20 where the "boss music never stops" issue did not happen, then it popped up again in the third one. Interlopate SO doesn't seem to have an effect on this, as Case 1 happened with it on and off.
Version used is VoidSW r9028-02eff8c8c.https://voidpoint.io/terminx/eduke32/-/issues/38SW: Game stopping bug in level 20 secret2021-07-01T02:09:51-07:00MYHOUSE.MAPSW: Game stopping bug in level 20 secretIn level 20, there is a secret right at the entrance of the building that leads to the Sumo boss fight. The right tiger print can be used, revealing a secret room. The door to the secret will close after a few seconds of being open. If t...In level 20, there is a secret right at the entrance of the building that leads to the Sumo boss fight. The right tiger print can be used, revealing a secret room. The door to the secret will close after a few seconds of being open. If the player is in the room when the door closes, it is impossible to open the door again because the switch that should open the door in the secret room itself does not work. If this happens, the only way out is via noclip. Players that don't know the noclip cheat code are stuck and must reload a save that was not made in the room.
This is a problem in the original executable as well. I'm not sure if this is a mapping or code error, but I'm making a ticket so the team is aware of it.
Version used is VoidSW r9028-02eff8c8c.https://voidpoint.io/terminx/eduke32/-/issues/39Duke3D: Player movement not locked properly when frozen.2020-06-17T04:01:21-07:00Mitchell RichtersDuke3D: Player movement not locked properly when frozen.Happens since the changes with framerate-based input polling. I imagine something in `P_CheckLockedMovement()` needs amending but I'm not sure what, sorry.
Easy enough to reproduce, just give yourself all weapons and bouce the freeze gu...Happens since the changes with framerate-based input polling. I imagine something in `P_CheckLockedMovement()` needs amending but I'm not sure what, sorry.
Easy enough to reproduce, just give yourself all weapons and bouce the freeze gun off a wall so it reflects back at you. Expected behaviour is that on changes to q16horiz/q16ang are permitted. Experienced behaviour is is that both can change with mouse input. The player's horizon continually tries to return view to center though.https://voidpoint.io/terminx/eduke32/-/issues/40Mapster32: Cannot select 3D models in OpenGL 3D Mode2020-08-23T04:50:24-07:00Dino Bollingerdino.bollinger@gmail.comMapster32: Cannot select 3D models in OpenGL 3D ModeIn mapster32, tiles that are displayed as 3d models in OpenGL cannot be selected by hovering over them with the cursor.
Bisection indicates that this was caused by SVN revisions 7740 - 7742. (commits: [12330045](https://voidpoint.io/ter...In mapster32, tiles that are displayed as 3d models in OpenGL cannot be selected by hovering over them with the cursor.
Bisection indicates that this was caused by SVN revisions 7740 - 7742. (commits: [12330045](https://voidpoint.io/terminx/eduke32/-/commit/12330045097e21f3da8d993ae434c433f341c71d), [7089627b](https://voidpoint.io/terminx/eduke32/-/commit/7089627b0cc27a937bcd8651ad740451998f8b69), [0ae1765d ](https://voidpoint.io/terminx/eduke32/-/commit/0ae1765d3acfb200f0ee2869b155b2af0c18aa66))
To reproduce, download the attached zip file (taken from the HRP), extract it to your base folder, open mapster32 and place a Trooper actor. Post r7742, you will not be able to target and select the sprite in 3D mode when it is displayed as a 3d model.
[3dmodel_bug.zip](/uploads/6eaa917e257226b47c4e91b6561bf487/3dmodel_bug.zip)https://voidpoint.io/terminx/eduke32/-/issues/41Duke 3D: Viewscreens pre-placed with a yvel of 1 no longer display their came...2021-08-12T14:49:34-07:00Dino Bollingerdino.bollinger@gmail.comDuke 3D: Viewscreens pre-placed with a yvel of 1 no longer display their camera feedForum thread: https://forums.duke4.net/topic/10446-r7326-fog-and-viewscreens/
https://www.youtube.com/watch?v=p86F2RIlQqo
The viewscreens shown in the video by design cannot be activated by the use key, but instead are supposed to disp...Forum thread: https://forums.duke4.net/topic/10446-r7326-fog-and-viewscreens/
https://www.youtube.com/watch?v=p86F2RIlQqo
The viewscreens shown in the video by design cannot be activated by the use key, but instead are supposed to display their camera image while the player stands in range. This is done by setting yvel of the viewscreen to 1, and relying on the fact that all viewscreens begin displaying an image when one has activated.
This behavior was intentionally disabled in 5f63918c, and the relevant code sections are more or less unchanged since then. The following is in `actors.cpp`:
```cpp
{
const int32_t p = A_FindPlayer(s, &x);
const DukePlayer_t *const ps = g_player[p].ps;
if (dist(&sprite[ps->i], s) < VIEWSCREEN_ACTIVE_DISTANCE)
{
#if 0
if (sprite[i].yvel == 1) // VIEWSCREEN_YVEL
g_curViewscreen = i;
#endif
}
else if (g_curViewscreen == i /*&& T1 == 1*/)
{
g_curViewscreen = -1;
sprite[i].yvel = 0; // VIEWSCREEN_YVEL
T1 = 0;
walock[TILE_VIEWSCR] = 199;
}
```
Relevant to the activation of the viewscreen at close ranges is the #if0 portion of the code. This is what reset the screen to the camera view when coming close to the screen, and it relies on the yvel of the screen being 1. Note that every screen has its yvel set to 1 after being used, but screens may also be placed this way in the map itself. The attached map shows how this could be used, and it may have been utilized in real usermaps.
The else-if portion of the code sets the yvel back to 0. This also prevents the screen from showing the camera view when being close, so this also needs to be removed if one wants to restore this functionality.
Then we have the following in `game.cpp`:
```cpp
else if (g_curViewscreen == i && display_mirror != 3 && waloff[TILE_VIEWSCR] && walock[TILE_VIEWSCR] > 200)
```
The conditional check was changed from `g_curViewscreen >= 0` to `g_curViewscreen == i`. This means that only a single viewscreen may be active at a time. This may be important to reconsider for potential multiplayer.
Finally, in a previous commit, the `VIEWSCREEN_ACTIVE_DISTANCE` has been increased from 2048 to 8192. This has an effect on the viewscreen in the attached test map, in the sense that the active distance of both screens overlaps. If both are active, it will show the same view from both of them.
The following map is a particularly extreme example, relying on several tricks to display the camera image: [___scrn2.map](/uploads/d857d8263497bba000f00c74b33df29d/___scrn2.map)
I will leave it up to the maintainers to decide what should be done with this functionality -- whether it should be kept as is at the expense of potential map-placed active viewscreens (for which we don't even know if a real usermap exists with this functionality) or whether any of this behavior should be changed.https://voidpoint.io/terminx/eduke32/-/issues/42Duke3D: DEF Skyboxes are loaded into memory twice2021-08-21T15:29:27-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: DEF Skyboxes are loaded into memory twiceOriginally reported here: https://forums.duke4.net/topic/10653-skyboxes-loading-twice-in-polymost-but-not-in-polymer/
I don't know if this is an expected result of the "Polymost sky Z buffer hack" from SVN commit r7415 (commit: [74b3c44...Originally reported here: https://forums.duke4.net/topic/10653-skyboxes-loading-twice-in-polymost-but-not-in-polymer/
I don't know if this is an expected result of the "Polymost sky Z buffer hack" from SVN commit r7415 (commit: [74b3c44e](https://voidpoint.io/terminx/eduke32/-/commit/74b3c44e7242ef56e92ce4b0690bfb05f608106d)) but ever since this commit, each texture of the defined DEF skybox faces (https://wiki.eduke32.com/wiki/Skybox_(DEF)) is loaded twice, resulting in a noticeable stutter when a face needs to be loaded.
In the attachment you'll find a skybox grp as well as 2 compiled builds to compare. They aren't available on synthesis so I decided to include them too. Run the batch files and the game will start directly in E1L1 to demonstrate the issue. Checking the console/log will reveal that the faces are loaded twice, doubling the total load time.
[skybox_issue.zip](/uploads/f2f9f6ce1786accb7d230e669840694e/skybox_issue.zip)https://voidpoint.io/terminx/eduke32/-/issues/43Duke3D: Paused sounds reactivate when main menu is closed2020-06-05T05:44:08-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Paused sounds reactivate when main menu is closedIntroduced in SVN revision r7724 (commit [a1f40e5f](https://voidpoint.io/terminx/eduke32/-/commit/a1f40e5fe04d03e0bad8cae767ab34e8f34f5ef5)), if you pause the game using the pause button and then open & close the menu, all paused sounds ...Introduced in SVN revision r7724 (commit [a1f40e5f](https://voidpoint.io/terminx/eduke32/-/commit/a1f40e5fe04d03e0bad8cae767ab34e8f34f5ef5)), if you pause the game using the pause button and then open & close the menu, all paused sounds will resume playing.https://voidpoint.io/terminx/eduke32/-/issues/44Duke 3D: Normally inaccessible passage can be crouched into on E2L4 (Fusion S...2023-05-20T14:42:36-07:00Dino Bollingerdino.bollinger@gmail.comDuke 3D: Normally inaccessible passage can be crouched into on E2L4 (Fusion Station)Forum thread: https://forums.duke4.net/topic/10914-crouch-clipping-is-too-permissive-as-of-r8494/
This was caused by SVN revision r7488 (commit: [422afced](https://voidpoint.io/terminx/eduke32/-/commit/422afced12d75b29e96dbf5c0aa5bb7ed9...Forum thread: https://forums.duke4.net/topic/10914-crouch-clipping-is-too-permissive-as-of-r8494/
This was caused by SVN revision r7488 (commit: [422afced](https://voidpoint.io/terminx/eduke32/-/commit/422afced12d75b29e96dbf5c0aa5bb7ed920e5e7)). This particular alcove in E2L4 shown in the [screenshot](https://forums.duke4.net/index.php?app=core&module=attach§ion=attach&attach_rel_module=post&attach_id=14494) is not supposed to be accessible, as the player is intended to shoot the switch through it. As it stands however the player can simply walk through unhindered.
Here's a cutout of the offending map portion: [crouch_clipping_check.map](/uploads/b88d13659b6d19b25ea256510d39fc3a/crouch_clipping_check.map)https://voidpoint.io/terminx/eduke32/-/issues/45Duke3D/Engine: Player cannot jump when standing on a sprite platform close to...2020-07-26T08:59:32-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D/Engine: Player cannot jump when standing on a sprite platform close to the ceiling of the lower TROR layerTaken from here:
* https://forums.duke4.net/topic/775-eduke32-20-and-polymer/page__view__findpost__p__319968
* https://forums.duke4.net/topic/10788-incorrect-getzrange-calculation-while-standing-on-sprite-bridges-in-tror-areas/
**Illust...Taken from here:
* https://forums.duke4.net/topic/775-eduke32-20-and-polymer/page__view__findpost__p__319968
* https://forums.duke4.net/topic/10788-incorrect-getzrange-calculation-while-standing-on-sprite-bridges-in-tror-areas/
**Illustration:** https://media.discordapp.net/attachments/309183622143803392/568383929783156746/unknown.png
**To reproduce:** https://forums.duke4.net/index.php?app=core&module=attach§ion=attach&attach_id=14341
**Description:**
The problem here is a bug in the `getzrange()` function causing the condition `if (klabs(floorZ2-ceilZ2) > (48<<8))` to be false in `player.cpp`, see below:
```
// jumping
if (!TEST_SYNC_KEY(playerBits, SK_JUMP) && pPlayer->jumping_toggle)
pPlayer->jumping_toggle--;
else if (TEST_SYNC_KEY(playerBits, SK_JUMP) && pPlayer->jumping_toggle == 0)
{
int32_t floorZ2, ceilZ2;
getzrange(&pPlayer->pos, pPlayer->cursectnum, &ceilZ2, &dummy, &floorZ2, &dummy, pPlayer->clipdist - GETZRANGECLIPDISTOFFSET, CLIPMASK0);
if (klabs(floorZ2-ceilZ2) > (48<<8))
{
.......
}
}
```
In a TROR area as in the example map, `getzrange(...)` returns the wrong value for `ceilZ` if the player is standing on a spritefloor. It returns the ceiling height of the lower TROR layer, rather than the height of the actual physical ceiling in the upper layer. The problem does not occur when one is standing on a sector floor.
(The statement made in the thread about the height of the floor grate is wrong, but I cannot edit the post anymore)
Edit: I completely forgot to mention that this started with commit d060ca95, in which the aforementioned `getzrange()` call was added.https://voidpoint.io/terminx/eduke32/-/issues/46Engine: Per-map art previous board filename is not updated when starting a ma...2020-06-05T05:44:08-07:00Dino Bollingerdino.bollinger@gmail.comEngine: Per-map art previous board filename is not updated when starting a map without loading a saveForum Thread: https://forums.duke4.net/topic/10927-per-map-art-oversight-on-savegame-load/
When a new map is started, the per-map art tiles are cleared or overridden, but the `previousboardfilename` variable is not updated.
This can ca...Forum Thread: https://forums.duke4.net/topic/10927-per-map-art-oversight-on-savegame-load/
When a new map is started, the per-map art tiles are cleared or overridden, but the `previousboardfilename` variable is not updated.
This can cause a problem when one does the following:
1. Load a save of a map with per-map art defined. `previousboardfilename` is updated to the current map's filename.
2. Start a new map through the newgame menu, or transition to another map through level exit. The per-map art tiles are cleared.
3. Now load the save. Since `previousboardfilename` still holds the filename of the map in the save, the per-map tiles are not reloaded. This can result in a hall-of-mirrors effect, or the wrong textures appearing in place of the per-map tiles.
This variable was originally devised as a band-aid fix to cache pollution when savegames of maps with per-map tiles defined were loaded repeatedly. A solution would be to update `previousboardfilename` on every map load, and not just when a savegame is loaded.
Here's the map to reproduce the problem: https://forums.duke4.net/index.php?app=core&module=attach§ion=attach&attach_id=14516
https://voidpoint.io/terminx/eduke32/-/issues/47Engine: Game freezes when trying to play certain midi tracks through OPL3 Emu...2023-05-20T14:45:09-07:00Dino Bollingerdino.bollinger@gmail.comEngine: Game freezes when trying to play certain midi tracks through OPL3 EmulationThe midi file in the attachment crashes the game on the first note when played using OPL3 emulation.
Windows MME does not have any problems playing this midi.
Crash has been present since OPL3 emulation was introduced.
[dethtoll.mid](/...The midi file in the attachment crashes the game on the first note when played using OPL3 emulation.
Windows MME does not have any problems playing this midi.
Crash has been present since OPL3 emulation was introduced.
[dethtoll.mid](/uploads/7d16e87caf32b295db3d85e5c4154716/dethtoll.mid)nukeyktnukeykthttps://voidpoint.io/terminx/eduke32/-/issues/48Engine: OPL3 emulation produces note that plays indefinitely on certain midi ...2023-05-21T13:06:34-07:00Dino Bollingerdino.bollinger@gmail.comEngine: OPL3 emulation produces note that plays indefinitely on certain midi tracksThe midi file in the attachment is from Jimmy's DukeDC music pack. When played in OPL3 emulation, one of the last notes in the track gets stuck when the track is looped, causing it to play throughout the entirety of the next loop. This g...The midi file in the attachment is from Jimmy's DukeDC music pack. When played in OPL3 emulation, one of the last notes in the track gets stuck when the track is looped, causing it to play throughout the entirety of the next loop. This gets rather annoying, very fast.
The midi plays flawlessly in Windows MME, and interestingly, GZDoom's Nuked OPL3 emulation also has no issues with it, so I'm tending towards this being a problem with the emulator as implemented in eduke32, rather than the file itself.
Like issue #47, this has also been present since the introduction of OPL3 to eduke32.
[dethtoll.mid](/uploads/bf90ac1c07c16a2c96caa1ad02214016/dethtoll.mid)nukeyktnukeykthttps://voidpoint.io/terminx/eduke32/-/issues/49Engine: Player's view gets mirrored on switch from Polymer to Polymost after ...2021-07-19T23:27:08-07:00Dino Bollingerdino.bollinger@gmail.comEngine: Player's view gets mirrored on switch from Polymer to Polymost after having seen a mirrorFrom this thread: https://forums.duke4.net/topic/10934-polymost-not-working-right/page__view__findpost__p__334867
**See also:** Issue #50
**Example map:** [polymer_mirror_bug.map](/uploads/14c567005ee0492bdf54d31f2fbbd219/polymer_mirr...From this thread: https://forums.duke4.net/topic/10934-polymost-not-working-right/page__view__findpost__p__334867
**See also:** Issue #50
**Example map:** [polymer_mirror_bug.map](/uploads/14c567005ee0492bdf54d31f2fbbd219/polymer_mirror_bug.map)
**Steps to reproduce:**
1. Start the map in Polymer.
2. Turn away from the mirror such that it is no longer in view.
3. While the mirror is out of view, switch to Polymost.
4. The player's view becomes mirrored.
**Additional Information:**
This happens any time the player has previously seen a mirror in the Polymer renderer.
Looking at the mirror again or switching to Polymer results in everything turning back to normal.
This started with revision r7493 (commit: [b1719f69](https://voidpoint.io/terminx/eduke32/-/commit/b1719f692ffc5ce68d9e966d5733e87cf0d6a736)). Issue #50 is very likely related to this one.
Additionally, I noticed that if I revert back to this revision, and change the lines 6495-6501 in `polymost.cpp` as follows:
```
grhalfxdown10x = grhalfxdown10;
- if (mirrorrender)
- grhalfxdown10x = -grhalfxdown10;
if (inpreparemirror)
{
+ grhalfxdown10x = -grhalfxdown10;
inpreparemirror = 0;
```
then the mirroring no longer occurs. Maybe this helps diagnose the problem.https://voidpoint.io/terminx/eduke32/-/issues/50Engine: Screen goes black when switching from Polymer to Classic after having...2021-07-07T00:20:17-07:00Dino Bollingerdino.bollinger@gmail.comEngine: Screen goes black when switching from Polymer to Classic after having seen a mirrorVery similar to Issue #49, but does not stem from the same commit. I do believe they are related however.
**Example map:** [polymer_mirror_bug.map](/uploads/14c567005ee0492bdf54d31f2fbbd219/polymer_mirror_bug.map)
**Steps to reproduce:...Very similar to Issue #49, but does not stem from the same commit. I do believe they are related however.
**Example map:** [polymer_mirror_bug.map](/uploads/14c567005ee0492bdf54d31f2fbbd219/polymer_mirror_bug.map)
**Steps to reproduce:**
1. Start the map in Polymer.
2. Turn away from the mirror such that it is no longer in view.
3. While the mirror is out of view, switch to Classic.
4. The screen will now be entirely black, but the game remains controllable.
**Additional Information:**
This happens any time the player has previously seen a mirror in the Polymer renderer.
Looking at the mirror again or switching to Polymer turns everything back to normal.
This started occurring with SVN commit r7733 (commit: [5bc0157d](https://voidpoint.io/terminx/eduke32/-/commit/5bc0157d761c27719453dd6ef4f71ca16a9a3ce4)). Perhaps investigating Issue #49 can also help resolve this problem.https://voidpoint.io/terminx/eduke32/-/issues/51Duke 3D: Presence of the Megaton Edition OGGs overrides Audio Device configur...2021-11-27T00:07:57-08:00Dino Bollingerdino.bollinger@gmail.comDuke 3D: Presence of the Megaton Edition OGGs overrides Audio Device configurationIf one has Duke Nukem 3D: Megaton Edition installed, then the OGGs (steam path: `common\Duke Nukem 3D\gameroot\music`) are always autoloaded, and will take precedence over Windows MME, OPL3 or the SF2 soundfonts. They will also take prec...If one has Duke Nukem 3D: Megaton Edition installed, then the OGGs (steam path: `common\Duke Nukem 3D\gameroot\music`) are always autoloaded, and will take precedence over Windows MME, OPL3 or the SF2 soundfonts. They will also take precedence over any custom `dethtoll.mid` that may have been downloaded with some old usermap. The only way to turn it off is to rename or otherwise get rid of this folder. (afaik)
Ideally there should probably be a way to disable this without having to edit the folder name, as some people (at least those who still have Megaton installed) may not even realize that this is what's being loaded.Richard Gobeillerichard@voidpoint.comRichard Gobeillerichard@voidpoint.comhttps://voidpoint.io/terminx/eduke32/-/issues/52Duke3D/Engine: Extremely specific OPL3 crash when replacing grabbag.mid with ...2023-05-21T13:07:04-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D/Engine: Extremely specific OPL3 crash when replacing grabbag.mid with an OGGSo this is kind the edge case to end all edge cases, but if one replaces `grabbag.mid` with any OGG file (either through CON or directly), and then loads the OPL3 emulator exactly 6 times, then the game will crash to desktop.
Here's the...So this is kind the edge case to end all edge cases, but if one replaces `grabbag.mid` with any OGG file (either through CON or directly), and then loads the OPL3 emulator exactly 6 times, then the game will crash to desktop.
Here's the CON + example OGG to test this: [beetlejuice.zip](/uploads/e35296b67ca699cc111fdd80f222b974/beetlejuice.zip)
And here's the crashlog: [eduke32.crash.log](/uploads/8b4abb513c5817e617b4809411b3906c/eduke32.crash.log)https://voidpoint.io/terminx/eduke32/-/issues/53Duke3D: (clipping) Cannot get crushed by enemies when shrunk (again)2021-07-07T00:19:24-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: (clipping) Cannot get crushed by enemies when shrunk (again)Yep, this bug is back, reintroduced by SVN revision r8737 (commit [d2a530cd](https://voidpoint.io/terminx/eduke32/-/commit/d2a530cd9fa625d13d9d09b312970fa541df439e)).
Namely, you can walk under active enemy sprites while shrunk, but gro...Yep, this bug is back, reintroduced by SVN revision r8737 (commit [d2a530cd](https://voidpoint.io/terminx/eduke32/-/commit/d2a530cd9fa625d13d9d09b312970fa541df439e)).
Namely, you can walk under active enemy sprites while shrunk, but growing from under them does not crush you.
I have attached a file to quickly check the shrinking. If you survive the piggening, the bug is still present: [pigbox.map](/uploads/82a26c77de295a55c5feb94444d2d9e8/pigbox.map)
However I did notice that inactive actor sprites do in fact crush you if you move under them and then grow. The following test map shows this in action: [dormant_squish_test.map](/uploads/103126971e5f467b9507829a644685ae/dormant_squish_test.map)Richard Gobeillerichard@voidpoint.comRichard Gobeillerichard@voidpoint.comhttps://voidpoint.io/terminx/eduke32/-/issues/54Engine: Rare palette issue when switching from Polymer to Polymost2023-05-21T13:07:16-07:00Dino Bollingerdino.bollinger@gmail.comEngine: Rare palette issue when switching from Polymer to PolymostForum thread: https://forums.duke4.net/topic/10936-switching-from-polymer-to-polymost-after-changing-the-screen-resolution-screws-the-palette-up/
Another edge case, but performing the steps as described in the thread results in either a...Forum thread: https://forums.duke4.net/topic/10936-switching-from-polymer-to-polymost-after-changing-the-screen-resolution-screws-the-palette-up/
Another edge case, but performing the steps as described in the thread results in either a black screen or a screwed up palette.
Started with r6777 (commit 1fc78c3b) and still occurs at the time of writing.https://voidpoint.io/terminx/eduke32/-/issues/55Mapster32: Sliding tile selection mouse input problem2020-06-05T05:44:08-07:00Dino Bollingerdino.bollinger@gmail.comMapster32: Sliding tile selection mouse input problemForum thread: https://forums.duke4.net/topic/10814-sliding-tiles-selection/page__view__findpost__p__336098
Scrolling to the top or bottom of the tile selection prevents the mouse scrollwheel input from being cleared. This combined with ...Forum thread: https://forums.duke4.net/topic/10814-sliding-tiles-selection/page__view__findpost__p__336098
Scrolling to the top or bottom of the tile selection prevents the mouse scrollwheel input from being cleared. This combined with the Mouse1 + Scrollwheel function to directly cycle through tiles in 3D Mode causes the tile selection to shift by 1 to the left or right when it is not supposed to.https://voidpoint.io/terminx/eduke32/-/issues/56Duke 3D: Getting squished during godmode can render the player unable to look...2020-06-10T05:44:24-07:00Dino Bollingerdino.bollinger@gmail.comDuke 3D: Getting squished during godmode can render the player unable to look around or moveWhenever the player gets crushed by one of the following 3 sources during godmode:
1. Current sector being -1
2. A subway train cart, such as the one present on E3L6 (Rabid Transit)
3. A moving wall such as the ones on E2L7 right before ...Whenever the player gets crushed by one of the following 3 sources during godmode:
1. Current sector being -1
2. A subway train cart, such as the one present on E3L6 (Rabid Transit)
3. A moving wall such as the ones on E2L7 right before the chasm (Lunar Reactor)
then the player will become completely unable to move or look around, even if noclip is turned on afterwards.
The only way to regain control is to turn off god mode again.
Bisection indicates that this was introduced by commit d8a523e5.
The following attachment contains the map sections in question where the effect is visible. Make sure to turn on godmode before being crushed: [squish_testcases.zip](/uploads/4856d11f8f68608b0c63215fb1e9bbf6/squish_testcases.zip)https://voidpoint.io/terminx/eduke32/-/issues/57Duke3D: (clipping) Sprites can push you out of bounds into invalid sectors, c...2021-06-29T00:04:29-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: (clipping) Sprites can push you out of bounds into invalid sectors, causing instant deathThis is one of those issues that started with the great clipping overhaul (r7428, d060ca95) and I expect it to not have an easy solution.
I noticed a while ago that enemies were capable of pushing the player out of bounds into invalid s...This is one of those issues that started with the great clipping overhaul (r7428, d060ca95) and I expect it to not have an easy solution.
I noticed a while ago that enemies were capable of pushing the player out of bounds into invalid sectors if the player happened to walk into them at the wrong angle. This of course would cause instant death by cursectnum == -1.
The problem here was that I didn't have a good way to reproduce the problem, but I think I now have a testcase to check this behavior.
The following map section is from map 3 of Life's a Beach: [splashy_clipping02.map](/uploads/5308a3ebba5cca49cf285005a4ffe716/splashy_clipping02.map)
By walking into the wall-aligned pigcop or battlelord sprite from the side, it is very easy to get crushed or stuck inside the sprite with no way out. Prior to d060ca95, this did not pose a problem, and the player never got crushed or stuck by walking at these sprites from any angle.Richard Gobeillerichard@voidpoint.comRichard Gobeillerichard@voidpoint.comhttps://voidpoint.io/terminx/eduke32/-/issues/58Duke3D: Player cannot enter sectors that have a height of 6144 if they are no...2023-05-21T13:07:37-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Player cannot enter sectors that have a height of 6144 if they are not aligned with the floor or the ceiling of the adjacent sectorAnother issue that began with the clipping changes of r7428 (commit d060ca95), the most recent commit that attempted to solve this problem was r8640 (commit 744a46f1). This did solve the problem for all but a single vent in DUKEDC3.map. ...Another issue that began with the clipping changes of r7428 (commit d060ca95), the most recent commit that attempted to solve this problem was r8640 (commit 744a46f1). This did solve the problem for all but a single vent in DUKEDC3.map. Unfortunately this vent happens to be one that leads to the yellow key.
From what I can tell, entry is prevented for any sector that has height of 6144 (1024 * 6) and which does not share a ceiling height or floor height with the adjacent sector. Sectors of this height that do share at least one of the two can be entered by player, albeit with some effort. The attached map showcases this behavior:
[ventcheck02.map](/uploads/452b1b614277ec0a1f7ed653f01464cb/ventcheck02.map)
Also note that sectors of size 7168 (1024 * 7) can always be entered, and sectors of size 5120 (1024*5) can never be entered, even prior to r7428. Since multiples of 1024 are common for sector heights, I believe that there may be usermaps out there that cannot be completed because of this.
Another related, but minor issue is that areas of size 6144 have the player move at crouching speed, whereas previous to r7428, this speed was the same as if the player were standing upright. I haven't encountered any maps where this would become an issue, but I think it's worth pointing this difference out. EDIT: It appears that the crouch speed modifier in tight vents was intentional and added with 744a46f1. Huh. Let's keep it for now until we find a problem with it.Richard Gobeillerichard@voidpoint.comRichard Gobeillerichard@voidpoint.comhttps://voidpoint.io/terminx/eduke32/-/issues/59Duke3D: Player movement not locked when crushing shrunk enemies2020-06-10T05:48:43-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Player movement not locked when crushing shrunk enemiesIntroduced by commit a868d2a0.
When the player crushes a shrunk enemy, he can still move around, when normally he shouldn't be able to do so while the kick animation is playing.
Test map: [shrinkerlock_test.map](/uploads/2cffb626068437...Introduced by commit a868d2a0.
When the player crushes a shrunk enemy, he can still move around, when normally he shouldn't be able to do so while the kick animation is playing.
Test map: [shrinkerlock_test.map](/uploads/2cffb626068437a8ac09859b2cecdce5/shrinkerlock_test.map)https://voidpoint.io/terminx/eduke32/-/issues/60Duke3D: Considerable camera jitter when standing on moving sectors2020-06-10T06:01:48-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Considerable camera jitter when standing on moving sectors**Before:** https://www.youtube.com/watch?v=6IfHO6bTZv4
**After:** https://www.youtube.com/watch?v=7cFyDipYJhM
This started with commit d8a523e5.
Note that any mod that uses camera movement not controlled by the player also shows sim...**Before:** https://www.youtube.com/watch?v=6IfHO6bTZv4
**After:** https://www.youtube.com/watch?v=7cFyDipYJhM
This started with commit d8a523e5.
Note that any mod that uses camera movement not controlled by the player also shows similarly jittery effects after this commit, specifically when the player struct members `ang` and `horiz` are altered in CON code. The jitter and associated ill effects can be worked around by using `cameraang` and `camerahoriz` in `EVENT_DISPLAYROOMS`, at least for singleplayer. But for multiplayer I believe this would break completely.https://voidpoint.io/terminx/eduke32/-/issues/61Duke3D: New swinging door behavior can be broken2021-06-17T22:45:58-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: New swinging door behavior can be brokenIntroduced with SVN r8722, commit ed5d2265.
Swinging doors now reverse direction automatically if there is something in the way. This can be broken, see the following video:
https://www.youtube.com/watch?v=K1kNfxnjC9g
Enemies also ten...Introduced with SVN r8722, commit ed5d2265.
Swinging doors now reverse direction automatically if there is something in the way. This can be broken, see the following video:
https://www.youtube.com/watch?v=K1kNfxnjC9g
Enemies also tend to get stuck behind swinging doors now, and can break these doors as well:
https://www.youtube.com/watch?v=xxmE4ZJ8g6A
The behavior from r8721 (commit 4c4fdd1f) seemed a bit more robust to me:
https://www.youtube.com/watch?v=XXkfv0F60K4Richard Gobeillerichard@voidpoint.comRichard Gobeillerichard@voidpoint.comhttps://voidpoint.io/terminx/eduke32/-/issues/62Duke3D: Radius damage inaccuracy with Devastator explosions2020-06-10T06:06:28-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Radius damage inaccuracy with Devastator explosionsOn E2L11 (Lunatic Fringe) there are 4 captured woman sprites that can be blown up by explosives, but which cannot be shot by hitscan weapons.
Currently both the pipebomb, the RPG as well as the tripmine can blow these sprites up, but the...On E2L11 (Lunatic Fringe) there are 4 captured woman sprites that can be blown up by explosives, but which cannot be shot by hitscan weapons.
Currently both the pipebomb, the RPG as well as the tripmine can blow these sprites up, but the Devastator cannot, when it should be able to. (verified with DOSbox)
This was introduced by r8079 (commit 71a790d2), i.e. the same commit that resulted in the other radius damage problems.
Here's a test case to verify it quickly, taken from E2L11: [radius_devastator_test.map](/uploads/0f324455857c61258c8623f2ef193475/radius_devastator_test.map)https://voidpoint.io/terminx/eduke32/-/issues/63Duke3D: Opening the newgame menu clears the E1L8 (usermap) slot2023-05-21T13:07:56-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Opening the newgame menu clears the E1L8 (usermap) slotAs reported on the forums, as soon as one confirms the "Abort this game?" dialog and enters the newgame menu, the E1L8 slot is cleared, causing any restarts on death in a usermap to revert to the default E1L8.map.
In fact, this occurs a...As reported on the forums, as soon as one confirms the "Abort this game?" dialog and enters the newgame menu, the E1L8 slot is cleared, causing any restarts on death in a usermap to revert to the default E1L8.map.
In fact, this occurs as soon as `m_volume_number != 0` or `m_level_number != 7`.
From what I can tell, this has been the case for over a decade worth of revisions, so I'm going to assume this has always been the case.Richard Gobeillerichard@voidpoint.comRichard Gobeillerichard@voidpoint.comhttps://voidpoint.io/terminx/eduke32/-/issues/64Duke3D: Stopped 3D model animations restart despite mdflags being set to 22020-06-10T05:48:43-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Stopped 3D model animations restart despite mdflags being set to 2So this is a very strange problem and it concerns the animation of 3D Models. I'll let the video demonstrate:
https://www.youtube.com/watch?v=xrNu0opp0n8
In this video, you can see 4 instances of a bullet casing tile, which has been de...So this is a very strange problem and it concerns the animation of 3D Models. I'll let the video demonstrate:
https://www.youtube.com/watch?v=xrNu0opp0n8
In this video, you can see 4 instances of a bullet casing tile, which has been defined as a 3D model with a spinning animation. Initially, this animation is stopped through the use of the following CON code:
```
define CASING 2534
move STOP
useractor notenemy CASING 0
ifmove STOP
nullop
else
{
sizeat 32 32
setactor[THISACTOR].mdflags 2
move STOP
}
enda
```
If my assessment is correct, this sets the `mdflags = 2` exactly a single time on spawning, and should hence disable the animation. However, as soon as the player picks up the pistol sprites on the ground, the animation of certain sprites restarts. Even more curiously, by adding additional sprites onto the map, e.g. through firing a weapon such as the pistol, the RPG or throwing a pipebomb, the animation can be interrupted again. Note that this does not depend on the type of sprite that is removed or added to the map. Also note that the above is the only piece of custom CON code that is running, so the problem cannot stem from overwriting the flag in another script.
This problem started somewhere between r5070 (74f180de) and r5075 (ad8fcba6) (inclusive), I couldn't bisect any further due to compilation problems.
In the attachment you find the files required to reproduce this bug. Simply put the contents of the folder into the eduke32 base directory and run the batch file: [mdflag2bug.zip](/uploads/ca3e353ad92cc2a6e8dadc4f08605066/mdflag2bug.zip)https://voidpoint.io/terminx/eduke32/-/issues/65Duke3D: Sprites are invisible behind models with transparent skin textures2020-06-10T06:42:05-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Sprites are invisible behind models with transparent skin textures**How it should look:** https://imgur.com/f9em5nH
**How it looks after r8166:** https://imgur.com/SnW1Vis
The model in question is a flat plane with a transparent png (a smoke effect). To reproduce, see attached zip file:
[transparenc...**How it should look:** https://imgur.com/f9em5nH
**How it looks after r8166:** https://imgur.com/SnW1Vis
The model in question is a flat plane with a transparent png (a smoke effect). To reproduce, see attached zip file:
[transparency_bug.zip](/uploads/08afd25be512877ece6994d33a35eddb/transparency_bug.zip)
This was caused by commit a6490738.nukeyktnukeykthttps://voidpoint.io/terminx/eduke32/-/issues/66Engine: Backing up of waloff array in per-map setup results in dereferencing ...2020-10-05T06:27:35-07:00Dino Bollingerdino.bollinger@gmail.comEngine: Backing up of waloff array in per-map setup results in dereferencing of stale pointersRepeatedly loading per-map art of two different maps (example: see attachment) will eventually start overriding other tile data. What I observed is that it overwrote data of the menu and UI tiles, including the crosshair. Here's a screen...Repeatedly loading per-map art of two different maps (example: see attachment) will eventually start overriding other tile data. What I observed is that it overwrote data of the menu and UI tiles, including the crosshair. Here's a screenshot of the bug in action: https://imgur.com/YqwDVQg
Here's the test case to reproduce this: [mapart_swaplevel.zip](/uploads/50801aa21ca1bd65839aed523adbbb7f/mapart_swaplevel.zip)
Simply load E1L1 and hit alt fire repeatedly to switch levels. Eventually you will notice the crosshair having been overwritten. The following is the output of cacheinfo after this occurred:
[cacheinfo_out.txt](/uploads/bd9fea3823da6a6700b37f75bc90c824/cacheinfo_out.txt)
No particular revision where this started, in fact this used to crash the game instead due to running out of cache entries.
**UPDATE 2020-08-26:** I have investigated this issue further and was able to make some new discoveries.
~~First, I no longer believe this problem is restricted to per-map tiles, and have hence altered the title. Much rather I believe that the per-map art system has a bug that exposed a potentially bigger underlying problem.~~
Nevermind, turns out this is only a problem for per-map art, see below.
First, let's take a look at the bug in `artSetupMapArt()` and `artClearMapArt()`:
```cpp
void artClearMapArt(void)
{
...
for (bssize_t i=0; i<MAXTILES; i++)
{
if (tilefilenum[i] >= MAXARTFILES_BASE)
{
// XXX: OK way to free it? Better: cache1d API. CACHE1D_FREE
walock[i] = CACHE1D_FREE;
waloff[i] = 0;
}
}
// Restore original per-tile arrays
RESTORE_MAPART_ARRAY(tilefilenum, g_bakTileFileNum);
RESTORE_MAPART_ARRAY(tilefileoffs, g_bakTileFileOffs);
RESTORE_MAPART_ARRAY(tilesiz, g_bakTileSiz);
RESTORE_MAPART_ARRAY(picsiz, g_bakPicSiz);
RESTORE_MAPART_ARRAY(walock, g_bakWalock);
RESTORE_MAPART_ARRAY(waloff, g_bakWaloff);
RESTORE_MAPART_ARRAY(picanm, g_bakPicAnm);
RESTORE_MAPART_ARRAY(faketile, g_bakFakeTile);
RESTORE_MAPART_ARRAY(rottile, g_bakRottile);
...
}
void artSetupMapArt(const char *filename)
{
artClearMapArt();
...
// Allocate backup arrays.
ALLOC_MAPART_ARRAY(tilefilenum, g_bakTileFileNum);
ALLOC_MAPART_ARRAY(tilefileoffs, g_bakTileFileOffs);
ALLOC_MAPART_ARRAY(tilesiz, g_bakTileSiz);
ALLOC_MAPART_ARRAY(picsiz, g_bakPicSiz);
ALLOC_MAPART_ARRAY(walock, g_bakWalock);
ALLOC_MAPART_ARRAY(waloff, g_bakWaloff);
ALLOC_MAPART_ARRAY(picanm, g_bakPicAnm);
ALLOC_MAPART_ARRAY(faketile, g_bakFakeTile);
ALLOC_MAPART_ARRAY(faketiledata, g_bakFakeTileData);
ALLOC_MAPART_ARRAY(rottile, g_bakRottile);
...
}
```
Immediately you will notice that the loop to zero all the cache pointers to per-map tiles of `waloff`, as well freeing all the locks to per-map tile entries in `walock` inside the function `artClearMapArt()` is actually redundant, as both of these arrays are afterwards overwritten by their backups.
Furthermore it is not clear if making a backup of the pointer and lock arrays (i.e. `waloff`and `walock`) is actually a good idea, because maybe you are storing dangling pointers to data that has already been freed elsewhere. This backup was introduced in 298d80a2 as part of a fix to prevent viewscreens from crashing the game if used in conjunction with per-map art (if I remember correctly).
Finally, what actually exposes the corruption problem is that, if the first map you load before anything else has a per-map art tile assigned, then this code will actually create a backup of the `waloff` array that consists almost entirely of null pointers. If you then repeatedly load usermaps that have a per-map art file assigned, the code will proceed to discard most of the previously cached tiles, replacing the existing `waloff` array with the backup, and thus reloading almost all of the tiles from disk.
Some tile data however is not reloaded in this process, which happens to include pretty much all the data required to display the menu, including the crosshair, the letters, the logo and the spinning nuke tiles. These tiles are the ones that have been loaded prior to any map being played, and what we can observe is that it is exactly those tiles that end up getting corrupted if the remaining tiles are reloaded from disk often enough.
If the first map the player starts is a map that does not have any per-map tiles, then if the player then attempts to repeatedly load a map which does have them assigned, the problem does not occur. Since the `waloff` array has been filled with pointers prior to the loading of the per-map art, a backup will be created which does not consist of zero pointers, and hence less tiles will end up being reloaded.
**Final Update:** Further debugging with GDB indicates that it is only restricted to per-map art tiles.
What causes the corruption is that, as previously suspected, stale pointers are in fact loaded from the backup `waloff` array. Namely, once the cache is full and tiles start getting evicted, the `waloff` pointers for those tiles that are reloaded will now point to a different location in memory. However, once another map with per-map tile is loaded, the data from the backup waloff array is restored, including the stale pointers.
Therefore, the solution to this problem is to not back up the `waloff` array. https://voidpoint.io/terminx/eduke32/-/issues/67Audiolib: Overflow in RateScale computation (dependent on sampling rate and p...2023-11-27T11:34:58-08:00Dino Bollingerdino.bollinger@gmail.comAudiolib: Overflow in RateScale computation (dependent on sampling rate and pitch)The following statement is repeated across multiple locations in the audiolib source code:
``` voice->RateScale = divideu32(voice->SamplingRate * voice->PitchScale, MV_MixRate);```
Where `voice->PitchScale` is computed from the pitch o...The following statement is repeated across multiple locations in the audiolib source code:
``` voice->RateScale = divideu32(voice->SamplingRate * voice->PitchScale, MV_MixRate);```
Where `voice->PitchScale` is computed from the pitch offset, which can be specified through `definesound` in CON. `MV_MixRate` is defined in the sound options menu, one of either 22015Hz, 44100Hz or 48000Hz.
Issues occur once one attempts to specify a high pitch offset for soundfiles with a high sampling rate, for example a pitch of 700 with a sampling rate of 44100 Hz. This does occur in practice: for example the EBIKE found in the DNF2013 mod uses increasing offsets to pitch up the engine sound of the bike when it moves, and 44100Hz sounds are commonly used in most games today.
With a pitch_offset of 700, `voice->PitchScale = 98193`, and therefore we have
```voice->SamplingRate * voice->PitchScale = 44'100 * 98'193 = 4'330'311'300 > 2^32```
i.e. we get a uint_32 overflow for the intermediate value, and the resulting RateScale will be incorrect. For lower sampling rates the overflow does not occur, resulting in inconsistent pitch depending on the sampling rate of the file. Of course, having to multiply first is necessary because otherwise we would get rounding errors, so I believe increasing the integer precision for this division is necessary to resolve the issue.
Git blame tells me that this goes all the way back to 1cdd18b016, where audiolib was introduced from JonoF's port.https://voidpoint.io/terminx/eduke32/-/issues/68Duke3D: (clipping) Grins of Divinity's ladder implementation is broken2021-07-06T07:55:48-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: (clipping) Grins of Divinity's ladder implementation is brokenForum Thread: https://forums.duke4.net/topic/10992-grins-of-divinity-ladder-problem/
A regression occured with r7436 (commit 1eb95599) that manifests itself with the ladders in Grins of Divinity and the Starship Troopers TC, but its eff...Forum Thread: https://forums.duke4.net/topic/10992-grins-of-divinity-ladder-problem/
A regression occured with r7436 (commit 1eb95599) that manifests itself with the ladders in Grins of Divinity and the Starship Troopers TC, but its effects may not necessarily be restricted to these mods. This is another one of those rabbit hole issues that needs to be investigated more thoroughly.
First of all we have the ladders themselves, their function is demonstrated in the following video: https://streamable.com/n1pbq
The mod utilizes floor-aligned sprites that raise once the player presses use if they are close. However, starting with r7436 these ladders continuously move down: https://streamable.com/jceia
Now, in the forum thread I speculated that `ifceilingdistl` may be broken, but this is not the case. Much rather, starting with r7436, the actor field `vm.pActor->ceilingz` is altered continuously as the sprite moves up and down, where in r7435 and before this value would remain constant. This is strange because the sprite never moves anywhere on the x or y axis.
For example, before the offending commit, the sprite seen in the video has a constant `ceilingz` value of `-121856`, which matches the ceiling height reported by mapster32 for the sector the sprite is placed in. After said commit however, the value increases as soon as the player presses use and the sprite is moved upwards. Values I've observed were `-75776` which is the ceiling height of the adjacent sector, `-26244` , `-25988` and `-25476`. For the latter three values, there are no ceilings on the map with those specific heights. However, they were very close to the z-position of the ladder sprite itself, leading me to believe that it is detecting another sprite, possibly the player, as the ceiling.
Since the commit this difference originated from was about projectile collision, I believe that this may not be intended. It stems from the following change:
```
diff --git a/source/duke3d/src/actors.cpp b/source/duke3d/src/actors.cpp
index 019dc15f9..84a6d3b43 100644
--- a/source/duke3d/src/actors.cpp
+++ b/source/duke3d/src/actors.cpp
@@ -388,6 +388,8 @@ static int32_t A_CheckNeedZUpdate(int32_t spriteNum, int32_t zChange, int32_t *p
*pZcoord = newZ;
+ A_GetZLimits(spriteNum);
+
if (newZ > actor[spriteNum].ceilingz && newZ <= actor[spriteNum].floorz)
return 1;
```
By removing this call, the ladder regains its functionality and the reported ceiling height is once again constant.https://voidpoint.io/terminx/eduke32/-/issues/69Duke3D: Half-visible "Authorized Personnel" sign in E2L12021-11-19T15:14:27-08:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Half-visible "Authorized Personnel" sign in E2L1You know the one: https://imgur.com/SlQTMEk
I'm aware that this particular sprite is kind of a headache and has had rendering issues since the dawn of time.
Currently it renders correctly in Classic mode, but is cut off in Polymost and...You know the one: https://imgur.com/SlQTMEk
I'm aware that this particular sprite is kind of a headache and has had rendering issues since the dawn of time.
Currently it renders correctly in Classic mode, but is cut off in Polymost and Polymer as in the screenshot. It used to be rendered correctly in Polymost for r5724, but broke again starting from r5725 (commit a125e137). As far as I can tell, after this commit the sign remained glitched like this in Polymost.
As for Polymer, I don't think there was ever a point where the renderer could display the sign properly.https://voidpoint.io/terminx/eduke32/-/issues/70Duke3D: Superjump out of water bug2020-06-10T08:00:34-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Superjump out of water bugAs reported in several threads on the duke4 forums.
If you press the jump key twice in quick succession while standing in a water sector (lotag 1), sometimes the game allows you to jump much higher than you are supposed to, even compare...As reported in several threads on the duke4 forums.
If you press the jump key twice in quick succession while standing in a water sector (lotag 1), sometimes the game allows you to jump much higher than you are supposed to, even compared to jumping on solid ground. The following video demonstrates this, it should be pretty obvious:
https://www.youtube.com/watch?v=Z3QvXsaOZA0
This problem started occuring with r7428 (commit d060ca95) aka. the controversial clipping changes.
Test map: [superjump_bug.map](/uploads/6633b1d0419efddba0bb0c1619a13e7d/superjump_bug.map)https://voidpoint.io/terminx/eduke32/-/issues/71Duke3D: Clipping issue in Caribbean Secret Level (VACASL.map)2023-05-21T13:08:40-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Clipping issue in Caribbean Secret Level (VACASL.map)Found by Ninety-Six on duke4.
The following table holds a secret and the player should be able to crouch under it: https://i.imgur.com/yyb94bh.png
However, as of the time of writing this is no longer possible, and the player cannot pas...Found by Ninety-Six on duke4.
The following table holds a secret and the player should be able to crouch under it: https://i.imgur.com/yyb94bh.png
However, as of the time of writing this is no longer possible, and the player cannot pass under the table at all.
Originally broken with d060ca95, fixed by 54e67e4b , and then broken again by d2a530cd.
Map file to reproduce: [vaca_clipping03.map](/uploads/2c011f059f5839b3911a003f32983fe8/vaca_clipping03.map)https://voidpoint.io/terminx/eduke32/-/issues/72Duke3D: Minor clipping issue in E1L4 (Toxic Dump)2023-05-21T13:08:21-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Minor clipping issue in E1L4 (Toxic Dump)Just another one of these small differences caused by the clipping overhaul. At least this one doesn't break progression.
The following small opening can be entered by simply walking towards it and crouching (normally obscured by a text...Just another one of these small differences caused by the clipping overhaul. At least this one doesn't break progression.
The following small opening can be entered by simply walking towards it and crouching (normally obscured by a texture): https://imgur.com/huSxECf
Caused by 54e67e4b.
Here's a simplified test map: [e1l4_clipping.map](/uploads/fca1fb79387693d2e1f1226e014e0619/e1l4_clipping.map)https://voidpoint.io/terminx/eduke32/-/issues/73Engine: Wrong path searched for custom game content directory on GTK startup ...2021-07-07T00:16:26-07:00Dino Bollingerdino.bollinger@gmail.comEngine: Wrong path searched for custom game content directory on GTK startup windowsThe GTK startup window used with Linux builds looks for custom game content in the path `~/.eduke32` instead of `~/.config/eduke32`.
It also ignores the `user_profiles_disabled` file, which should tell the game to look for content in th...The GTK startup window used with Linux builds looks for custom game content in the path `~/.eduke32` instead of `~/.config/eduke32`.
It also ignores the `user_profiles_disabled` file, which should tell the game to look for content in the current working directory instead.https://voidpoint.io/terminx/eduke32/-/issues/74Engine: Certain mirrors are rendered incorrectly in Polymost2023-05-21T13:09:02-07:00Dino Bollingerdino.bollinger@gmail.comEngine: Certain mirrors are rendered incorrectly in PolymostOriginally reported here: https://forum.zdoom.org/viewtopic.php?f=340&t=67621
If there are multiple mirror textures adjacent to the same "mirror sector" (separated only by vertices) then only one of the mirrors is rendered correctly. Al...Originally reported here: https://forum.zdoom.org/viewtopic.php?f=340&t=67621
If there are multiple mirror textures adjacent to the same "mirror sector" (separated only by vertices) then only one of the mirrors is rendered correctly. All others result in a glitchy HOM effect. This only happens in Polymost, both Classic and Polymer are unaffected.
Example: https://imgur.com/ciZF5X4 , https://imgur.com/82iEPTj
This problem was introduced in SVN r7736 (commit e18c561f).
Demo map: [amass_mirrors.map](/uploads/86dcf95a04643b49d2b6fc18527f14b5/amass_mirrors.map)https://voidpoint.io/terminx/eduke32/-/issues/75Duke3D: Minor issue with continuous MusicAndSFX sprites and activated sectors2021-08-26T10:21:24-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Minor issue with continuous MusicAndSFX sprites and activated sectorsOriginally posted here: https://forums.duke4.net/topic/10912-sound-oddity-when-loading-a-savegame-with-rotating-doors/
For MusicAndSFX sprites that are placed in an operated sector (e.g. a door), which are defined to play a continuous l...Originally posted here: https://forums.duke4.net/topic/10912-sound-oddity-when-loading-a-savegame-with-rotating-doors/
For MusicAndSFX sprites that are placed in an operated sector (e.g. a door), which are defined to play a continuous looping sound for the duration of their activation (e.g. grinding gears while the door is opening), there is the potential for that sound to play indefinitely if one saves a game while the sector is in motion.
To reproduce, load the map in the attachment and do the following:
1. Open the door directly in front of you.
2. Save while it is opening, then load that save.
3. Once the door comes to a stop, the sound effect will start playing indefinitely.
I suspect that this started with r3083 (commit 9a335de0) but I wasn't able to pin it down exactly (it's definitely between r3079 and r3084 however).
Test map: [looping_doorsound_bug.map](/uploads/5f4a10b4b92e0004657f2d31a0bbd4fe/looping_doorsound_bug.map)https://voidpoint.io/terminx/eduke32/-/issues/76Duke3D/Engine: TROR Water sectors with an upper sector height of 12144 or les...2021-07-22T06:37:44-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D/Engine: TROR Water sectors with an upper sector height of 12144 or less causes clipping problemsIf one constructs a TROR water sector where the upper sector (with lotag 1) has a height of 12144 or less, the player is constantly pushed into a single direction, which may even cause him to be crushed. Note that this does not occur wit...If one constructs a TROR water sector where the upper sector (with lotag 1) has a height of 12144 or less, the player is constantly pushed into a single direction, which may even cause him to be crushed. Note that this does not occur with normal non-TROR lotag 1 sectors, and it also does not occur if the upper sector of a TROR area has a solid floor.
This was caused by r7829 (commit 4c9e2706).
Test map to reproduce: [aquarium_TRORbug.map](/uploads/e2913fc01b92f516675b0c29c84c835f/aquarium_TRORbug.map)Richard Gobeillerichard@voidpoint.comRichard Gobeillerichard@voidpoint.comhttps://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.https://voidpoint.io/terminx/eduke32/-/issues/78Duke3D: Demo playback crashes after roughly 3 seconds2020-06-13T12:04:24-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Demo playback crashes after roughly 3 secondsTo reproduce:
1. Enable demo recording and start any map (doesn't matter which, also occurs on completely empty ones)
2. Play for roughly 5 seconds, then quit to title.
3. Demo playback will crash the game after roughly 3 seconds, and "...To reproduce:
1. Enable demo recording and start any map (doesn't matter which, also occurs on completely empty ones)
2. Play for roughly 5 seconds, then quit to title.
3. Demo playback will crash the game after roughly 3 seconds, and "out of sync" messages are visible shortly before that.
This started with SVN r7112 (commit 5132b41). Seems to have been an unintended regression while cleaning up code, so nothing related to recent savegame changes.
Debug crashlog: [eduke32.crash.log](/uploads/41ca6a836dc6618219959d31cdc1d1cf/eduke32.crash.log)https://voidpoint.io/terminx/eduke32/-/issues/79Duke3D: Player sprite is suspended in mid-air when frozen2020-06-13T19:48:03-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Player sprite is suspended in mid-air when frozenLeft is correct, right is incorrect: https://imgur.com/6fPzph1
Started a long time ago, in some revision between March and September 2009. Can't bisect any further because too old.
Minor, but probably very noticeable once Multiplayer ...Left is correct, right is incorrect: https://imgur.com/6fPzph1
Started a long time ago, in some revision between March and September 2009. Can't bisect any further because too old.
Minor, but probably very noticeable once Multiplayer becomes functional.https://voidpoint.io/terminx/eduke32/-/issues/80Duke3D: Player aim input is no longer recorded in demos, causing immediate de...2021-06-28T23:45:13-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Player aim input is no longer recorded in demos, causing immediate desync**Demonstration:** https://www.youtube.com/watch?v=UXJVZrIv9k0
Started with commit d8a523e5.
Player input appears to no longer be recorded in demos, causing immediate desync as the demo player is unable to turn around at all. The only ...**Demonstration:** https://www.youtube.com/watch?v=UXJVZrIv9k0
Started with commit d8a523e5.
Player input appears to no longer be recorded in demos, causing immediate desync as the demo player is unable to turn around at all. The only thing that does make him turn are periodic state snapshots that attempt to restore demo sync (unsuccessfully).
Can be reproduced by creating a demo anywhere and then watching the playback after quitting to title. (assuming the crash in #78 is fixed)
(Also, as a sidenote, it might be desirable that the quote "demo recording started" cannot be seen during playback)https://voidpoint.io/terminx/eduke32/-/issues/81Duke3D: Main menu layout breaks when demo playback ends2020-06-17T14:59:00-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Main menu layout breaks when demo playback endsExample: https://imgur.com/jVQFb2d
To reproduce: (assuming the crash bug is fixed)
1. Record a very short demo (e.g. ~5 seconds)
2. Quit to title.
3. As soon as you enter the menu, switch to another submenu and wait.
4. Once the demo e...Example: https://imgur.com/jVQFb2d
To reproduce: (assuming the crash bug is fixed)
1. Record a very short demo (e.g. ~5 seconds)
2. Quit to title.
3. As soon as you enter the menu, switch to another submenu and wait.
4. Once the demo ends, the layout breaks as seen in the screenshot above.
Note that the menu layout will eventually correct itself given enough time. Perhaps a variable is being overwritten that affects the menu transition animation?
This was introduced in commit b191efdf.https://voidpoint.io/terminx/eduke32/-/issues/82Duke3D: Menu cannot be closed during demo playback2020-06-17T14:59:00-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Menu cannot be closed during demo playbackIn DOS and earlier versions of eduke32, it was possible to close the main menu to continue watching the demo in the background.
However, starting from commit b191efdf (r4688) this is no longer possible.In DOS and earlier versions of eduke32, it was possible to close the main menu to continue watching the demo in the background.
However, starting from commit b191efdf (r4688) this is no longer possible.https://voidpoint.io/terminx/eduke32/-/issues/83Duke3D: Menu animations are frozen during demo pause2021-08-21T15:23:48-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Menu animations are frozen during demo pauseIf one enters the menu while having paused demo playback using space, the menu transition animations will all be frozen, making it almost impossible to use the menu properly. Similarly, the spinning nuke icons and any sprite animated on ...If one enters the menu while having paused demo playback using space, the menu transition animations will all be frozen, making it almost impossible to use the menu properly. Similarly, the spinning nuke icons and any sprite animated on the menu will also be frozen in place.
I believe this is occurring because these animations depend on `totalclock` updating, which is frozen during a pause. Likely also the cause of terminx/eduke32#81.https://voidpoint.io/terminx/eduke32/-/issues/84Duke3D: Pressing the fast-forward keys during demo pause disables sound2020-06-17T14:59:00-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Pressing the fast-forward keys during demo pause disables soundRecord a small demo, start playback, pause it using space, and then press KP4 or KP6 to move backwards or forwards.
By doing so, the sound will be disabled even after unpausing, and needs to be manually re-enabled in the sounds menu.
S...Record a small demo, start playback, pause it using space, and then press KP4 or KP6 to move backwards or forwards.
By doing so, the sound will be disabled even after unpausing, and needs to be manually re-enabled in the sounds menu.
Started with the update of the demo system from r1595-r1598 (83a7656d). The apparently more crude rewind system from r1536 (df3f900a ) didn't have this problem.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/86Suggestion: IF: Lock Shelly's angle input while on a ladder2023-05-21T13:10:36-07:00Mitchell RichtersSuggestion: IF: Lock Shelly's angle input while on a ladderCurrently while on a ladder, the player can move side to side and constantly fight the game trying to return to center. Suggest just locking angle input out while on a ladder to avoid that.Currently while on a ladder, the player can move side to side and constantly fight the game trying to return to center. Suggest just locking angle input out while on a ladder to avoid that.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/88Duke3D: Sounds defined through DEF are never cached2020-07-02T06:06:18-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Sounds defined through DEF are never cachedOriginally reported here: https://forums.duke4.net/topic/10686-custom-sounds-missing-in-latest-revisions/
Simple problem, started with r7758 (commit 520f5725 ).
The call to `cacheAllSounds()` was moved out of `G_CacheMapData()` and int...Originally reported here: https://forums.duke4.net/topic/10686-custom-sounds-missing-in-latest-revisions/
Simple problem, started with r7758 (commit 520f5725 ).
The call to `cacheAllSounds()` was moved out of `G_CacheMapData()` and into `G_Startup()`.
However, `G_Startup()` is called in `app_main` before the DEF files are loaded. Thus, sounds defined inside the DEF file will never be cached, and thus cannot be heard ingame.https://voidpoint.io/terminx/eduke32/-/issues/89Duke3D: Sounds defined in DEF are inaudible with a volume of 1.02020-07-02T10:21:37-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Sounds defined in DEF are inaudible with a volume of 1.0In commit r8291 (501f8e67) volume control was altered such that it now uses `fix16_t` instead of `float`.
This commit forgot to change the `sound` DEF command, which uses a `double` type variable to store the sound volume. This is then ...In commit r8291 (501f8e67) volume control was altered such that it now uses `fix16_t` instead of `float`.
This commit forgot to change the `sound` DEF command, which uses a `double` type variable to store the sound volume. This is then passed to `S_DefineSound` which implicitly converts it to `float`, and it then attempts to convert the value from `float` to `fix16_t`.
The assumption made in the DEF `sound` command is that the default volume is `1.0`. However, since the internal default volume with `fix16_t` is `0x00010000`, the implicit conversion results in a `fix16_t` value of `0x00000001`, which is completely inaudible. In fact, setting the volume to `65536` inside the DEF script results in the normal volume level, confirming my theory.https://voidpoint.io/terminx/eduke32/-/issues/90Allow mapster32 to load script on startup (feature suggestion)2020-07-07T07:58:12-07:00Rob AnybodyAllow mapster32 to load script on startup (feature suggestion)It would be nice if mapster32 could load arbitrary user scripts on startup (via autoload directory, command line switch, config file entry, or whatever else works).It would be nice if mapster32 could load arbitrary user scripts on startup (via autoload directory, command line switch, config file entry, or whatever else works).https://voidpoint.io/terminx/eduke32/-/issues/91Duke3D: Jumping out of TROR water blocked by dummyplayer sprite2021-07-22T08:05:27-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Jumping out of TROR water blocked by dummyplayer spriteIf the distance between a TROR water surface and the ceiling above (either a normal sector ceiling or another transparent TROR layer) is less or equal to 18432 units, then the player is completely unable to jump out of the water, despite...If the distance between a TROR water surface and the ceiling above (either a normal sector ceiling or another transparent TROR layer) is less or equal to 18432 units, then the player is completely unable to jump out of the water, despite there being visibly enough room to do so. In fact, the player has no problems jumping out of a regular water sector in the same situation.
This issue dates back as far as r3078, and as such I suspect it has been an issue as long as TROR water has been a feature.
Attached are a number of test maps that demonstrate odd TROR water behavior, test map 02 and 03 are relevant in this case. By dropping into the pool, the player becomes trapped, despite normally being able to jump out just fine.
[TROR_WATER_TESTS.zip](/uploads/1679d1a76bfab09b5859b5cfc93157a4/TROR_WATER_TESTS.zip)https://voidpoint.io/terminx/eduke32/-/issues/92When "extra" is set on a wall in a map, "extra" field of wall struct evaluate...2020-07-12T08:37:15-07:00Rob AnybodyWhen "extra" is set on a wall in a map, "extra" field of wall struct evaluates to -1Setting `extra` on a wall (alt-m in mapster32) and then attempting to retrieve it in CON script fails (evaluates to -1). The `extra` value in the map persists across mapster32 sessions, but is not accessible to CON.
Setting the `extra` ...Setting `extra` on a wall (alt-m in mapster32) and then attempting to retrieve it in CON script fails (evaluates to -1). The `extra` value in the map persists across mapster32 sessions, but is not accessible to CON.
Setting the `extra` field from CON and retrieving it again works properly.https://voidpoint.io/terminx/eduke32/-/issues/93Mapster32 texture browser shows white boxes in rendermode 42020-07-27T14:50:36-07:00Rob AnybodyMapster32 texture browser shows white boxes in rendermode 4Texture browser (v key) looks like this in rendermode 4 (polymer) on the laptop I've been using for this stuff.
![Untitled](/uploads/357874b9173c3661c966e4c25ac28236/Untitled.png)
Looks fine in other modes. Seems like a bug, but is thi...Texture browser (v key) looks like this in rendermode 4 (polymer) on the laptop I've been using for this stuff.
![Untitled](/uploads/357874b9173c3661c966e4c25ac28236/Untitled.png)
Looks fine in other modes. Seems like a bug, but is this something I should try to fix on my end by tweaking some `r_*` settings?
Here's some info on this laptop:
```
OS Name Microsoft Windows 10 Home
Version 10.0.18363 Build 18363
System Manufacturer Dell Inc.
System Model Inspiron 5545
System Type x64-based PC
Processor AMD A10-7300 Radeon R6, 10 Compute Cores 4C+6G, 1900 Mhz, 4 Core(s), 4 Logical Processor(s)
BIOS Version/Date Dell Inc. A02, 6/17/2014
SMBIOS Version 2.8
Embedded Controller Version 1.01
BIOS Mode UEFI
BaseBoard Manufacturer Dell Inc.
BaseBoard Product 0D5TC7
BaseBoard Version A00
Platform Role Mobile
Hardware Abstraction Layer Version = "10.0.18362.752"
Installed Physical Memory (RAM) 8.00 GB
Total Physical Memory 6.94 GB
Available Physical Memory 3.59 GB
Total Virtual Memory 8.87 GB
Available Virtual Memory 5.06 GB
Page File Space 1.92 GB
```https://voidpoint.io/terminx/eduke32/-/issues/94Parallax floors don't scroll2023-05-21T13:12:52-07:00Rob AnybodyParallax floors don't scrollA scrolling sky tile, when placed on a floor and made parallax, won't scroll.
Ideally in a sector with the ceiling lowered to the floor, both having the same parallax scrolling sky texture, the floor and ceiling should be seamless and i...A scrolling sky tile, when placed on a floor and made parallax, won't scroll.
Ideally in a sector with the ceiling lowered to the floor, both having the same parallax scrolling sky texture, the floor and ceiling should be seamless and indistinguishable (and both scrolling).
Can test this out with pic 79.https://voidpoint.io/terminx/eduke32/-/issues/95undefineskill can cause silent termination on startup2021-08-22T14:13:00-07:00Rob Anybodyundefineskill can cause silent termination on startupUndefining skill levels can cause the program to terminate immediately after the window opens, before 3DR logo or title screen animation shows. There's no indication of what happened in the terminal; the last line is `Wrote settings.cfg`...Undefining skill levels can cause the program to terminate immediately after the window opens, before 3DR logo or title screen animation shows. There's no indication of what happened in the terminal; the last line is `Wrote settings.cfg`.
To reproduce, undefine skill level 1 and leave the others.
Removing *all* skills also causes the same issue, but is probably a case of "don't do that."
After digging into this a bit, what *appears* to cause the issue is undefining any skill levels lower than those that are still defined. For example, undefining only 2 and 3 is alright, but undefining only 0 and 1 triggers the issue.https://voidpoint.io/terminx/eduke32/-/issues/96Skip certain menus when only one menu item is present (suggestion)2021-08-22T14:13:00-07:00Rob AnybodySkip certain menus when only one menu item is present (suggestion)After using `undefineskill` to remove all skill levels but one, the skill menu is no longer useful; could streamline things by bypassing the menu and jumping straight into the game. Same thing applies to campaign selection menu; if only ...After using `undefineskill` to remove all skill levels but one, the skill menu is no longer useful; could streamline things by bypassing the menu and jumping straight into the game. Same thing applies to campaign selection menu; if only one campaign is defined, skipping straight to its submenu or to the skill menu from "new game" would be a nice touch.https://voidpoint.io/terminx/eduke32/-/issues/97Duke3D: Color correction menu allows negative brightness while expected lower...2020-12-21T11:47:56-08:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Color correction menu allows negative brightness while expected lower bound is 0.0Originally reported here: https://forums.duke4.net/topic/11290-color-correction-settings-not-keeping-when-starting-next-session/
There's an inconsistency in the brightness setting of the color correction menu of Duke 3D.
Namely, the Duk...Originally reported here: https://forums.duke4.net/topic/11290-color-correction-settings-not-keeping-when-starting-next-session/
There's an inconsistency in the brightness setting of the color correction menu of Duke 3D.
Namely, the Duke 3D menu allows the user to move the brightness slider below 0.0 down to a lower bound of -0.8.
However, `build/src/baselayer.cpp`, `build/src/config.cpp` and `duke3d/src/osdcmds.cpp` all expect `vid_brightness` to be constrained to a range of [0, 10], and will clamp this value if it is out of bounds.
One way in which this manifests itself ingame is that the game will not save the player's chosen brightness in the CFG on exit if it is less than 0.https://voidpoint.io/terminx/eduke32/-/issues/98Duke3D: Undefining gamefuncs breaks the mouse buttons display2020-07-27T14:49:54-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Undefining gamefuncs breaks the mouse buttons displayBy using the CON command `definegamefuncname`, it is possible to disable a gamefunc entirely by simply not specifying a name, thus removing it from the list of available keybinds. This completely disables the gamefunc and it cannot even ...By using the CON command `definegamefuncname`, it is possible to disable a gamefunc entirely by simply not specifying a name, thus removing it from the list of available keybinds. This completely disables the gamefunc and it cannot even be bound through the console, so my assumption is that this behavior is intended.
For instance, the following definitions disable all multiplayer-related keybinds:
```
definegamefuncname 37
definegamefuncname 43
definegamefuncname 45
definegamefuncname 53
```
However, as soon as a single gamefunc is undefined, upon restarting the game with the script loaded, all mouse keybinds that are normally set to `"-NONE-"` will instead display `"Custom"`, see attached screenshot:
![duke0063](/uploads/5cdfdbe85b89894ecfd23d5d4faf72ff/duke0063.png)
This does not appear to have any effect on the functionality of the keybinds. Judging from the source code, the "custom" string is the result of a binary search not finding the value in the list, so it's possible that by undefining a gamefunc, the binary search stops working correctly.https://voidpoint.io/terminx/eduke32/-/issues/99Duke3D: Clipping problem that prevents progression in Duke Hard2023-05-21T13:53:59-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Clipping problem that prevents progression in Duke HardThe last map of Duke Hard requires you to crouch under a wall-aligned sprite of wires in order to hit a switch.
Unfortunately, as of r7428 (d060ca95) it is no longer possible to do so, thus rendering the map impossible to complete witho...The last map of Duke Hard requires you to crouch under a wall-aligned sprite of wires in order to hit a switch.
Unfortunately, as of r7428 (d060ca95) it is no longer possible to do so, thus rendering the map impossible to complete without cheats.
The attached map has the section in question. Prior to r7428, it was possible to move under these sprites.
[dukehard_clipping.map](/uploads/3a113ce1802338bcb8de7ad02986affb/dukehard_clipping.map)https://voidpoint.io/terminx/eduke32/-/issues/100Duke3D: camera vec3_t position smoothing causes visual glitches with transpo...2021-07-20T15:08:49-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: camera vec3_t position smoothing causes visual glitches with transport sectorsCommit a359877b added camera vec3_t position smoothing across frames to mask jitter that occurs when strafing and turning at the same time.
However, it causes visual glitches with elevator transport sectors. (and perhaps other instant t...Commit a359877b added camera vec3_t position smoothing across frames to mask jitter that occurs when strafing and turning at the same time.
However, it causes visual glitches with elevator transport sectors. (and perhaps other instant transport effects as well)
The following map places a sky sector between source and destination to make the glitch more obvious. It however occurs without this as well.
Before the commit:
https://cdn.discordapp.com/attachments/461290354726010891/738717075781976144/2020-07-31_12-59-48.mp4
After the commit:
https://cdn.discordapp.com/attachments/461290354726010891/738717185387790406/2020-07-31_13-06-02.mp4
Map used: [transport_glitch.map](/uploads/2b1eb6730305310da6eea8ec9451c0a1/transport_glitch.map)