EDuke32 issueshttps://voidpoint.io/terminx/eduke32/-/issues2023-10-07T07:53:29-07:00https://voidpoint.io/terminx/eduke32/-/issues/292Engine: Autosaves keep saving over the same slot2023-10-07T07:53:29-07:00Dino Bollingerdino.bollinger@gmail.comEngine: Autosaves keep saving over the same slotThis is a problem that's commonly observed in the Bike Race maps in Aftershock.
Despite specifying e.g. 5 available autosave slots, the game keeps saving over the same one, instead of cycling through them properly.This is a problem that's commonly observed in the Bike Race maps in Aftershock.
Despite specifying e.g. 5 available autosave slots, the game keeps saving over the same one, instead of cycling through them properly.https://voidpoint.io/terminx/eduke32/-/issues/291Timeframe for new code used in Ion Fury to show up in the eduke32 repo?2024-01-18T09:12:11-08:00eisnerguy1Timeframe for new code used in Ion Fury to show up in the eduke32 repo?I'm wondering how long it usually takes for code used in new versions of Ion Fury, like [3\.0.02](https://steamcommunity.com/app/562860/discussions/0/3886101131583442440/), to show up in the eduke32 repo?
![Screen Shot 2023-10-04 at 8.1...I'm wondering how long it usually takes for code used in new versions of Ion Fury, like [3\.0.02](https://steamcommunity.com/app/562860/discussions/0/3886101131583442440/), to show up in the eduke32 repo?
![Screen Shot 2023-10-04 at 8.17.26 PM copy.png](/uploads/1f541c43345cf4dca35521605bf70298/Screen_Shot_2023-10-04_at_8.17.26_PM_copy.png){width=666 height=74}
I don't see any commit that has 2bd99eb00 in the commit hash at all. I wanted to make sure my compiled eduke32 matched the official commit used in the newest version of Ion Fury. Thanks! :thumbsup:https://voidpoint.io/terminx/eduke32/-/issues/290Unable to compile on macOS 12.6.8 Intel2023-10-03T16:14:17-07:00eisnerguy1Unable to compile on macOS 12.6.8 IntelI'm trying to compile the [latest fury commit](https://voidpoint.io/terminx/eduke32/-/tree/c42e09ac0d832a38e3d5f91b777dc0220ec5243c) on macOS 12.6.8 Intel. It errors out at this point:
```plaintext
Built object obj/imgui/imgui_impl_open...I'm trying to compile the [latest fury commit](https://voidpoint.io/terminx/eduke32/-/tree/c42e09ac0d832a38e3d5f91b777dc0220ec5243c) on macOS 12.6.8 Intel. It errors out at this point:
```plaintext
Built object obj/imgui/imgui_impl_opengl3.o
Built object obj/imgui/imgui_impl_sdl2.o
Built object obj/imgui/imgui_tables.o
Built object obj/imgui/imgui_widgets.o
Built object obj/glad/glad.o
clang: warning: argument unused during compilation: '-no-pie' [-Wunused-command-line-argument]
ld: unknown option: -Bstatic
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Failed linking fury!
If the build options, environment, or system packages have changed, run 'make clean' and try again.
make: *** [fury] Error 1
```
I've attached the full command line output if that helps at all
[eduke32_fury_c42e09ac_output.txt](/uploads/a5533b6f12b12e948bfb5475b78ed5d8/eduke32_fury_c42e09ac_output.txt)
I feel like I'm missing something super obvious here. Any help at all would be greatly appreciated.https://voidpoint.io/terminx/eduke32/-/issues/289Allow changing localtion of the logfiles (eduke32.log, mapster32.log)2023-10-03T22:36:05-07:00Ignacio TarantoAllow changing localtion of the logfiles (eduke32.log, mapster32.log)Currently, EDuke32 creates `eduke32.log` file in the *current working directory* from where the `eduke32` executable is run.
For example, in Linux, if I use the `.desktop` launcher, the `eduke32.log` file gets created in my home directo...Currently, EDuke32 creates `eduke32.log` file in the *current working directory* from where the `eduke32` executable is run.
For example, in Linux, if I use the `.desktop` launcher, the `eduke32.log` file gets created in my home directory.
But if I change the directory to somewhere else, for example, `cd /tmp` and then I run `eduke32` (from the terminal), then the file is created in `/tmp` instead.
I would like to have more control over where this log file is created.
I read the docs but I couldn't find any way to change this behavior, either through the config file or environment variables.
Thanks.https://voidpoint.io/terminx/eduke32/-/issues/287save/load cycle changes boardfilename2023-09-18T00:21:03-07:00Dezolatorsave/load cycle changes boardfilenameWhen I start new game via game menu, lets say 'L.A.MELTDOWN' episode, boardfilename[0]=='\0'. After I save and load game 'boardfilename' becomes "/E1L1.map"
I think that this may be result of 5e55626963681c363131fe5df8f7533fee2b9a21 and...When I start new game via game menu, lets say 'L.A.MELTDOWN' episode, boardfilename[0]=='\0'. After I save and load game 'boardfilename' becomes "/E1L1.map"
I think that this may be result of 5e55626963681c363131fe5df8f7533fee2b9a21 and subsequent commits, and I consider this behavior undesirable. 'boardfilename' is used in various tests for example in 'G_HaveUserMap'.
This can cause certain mods that contain more than 7 levels in first episode (Blast Radius) to end prematurely, because engine, based on if level was loaded from savefile or not, evaluates that user map, instead of episode is being played.Dino Bollingerdino.bollinger@gmail.comDino Bollingerdino.bollinger@gmail.comhttps://voidpoint.io/terminx/eduke32/-/issues/286Unable to compile on macOS (arm64; Apple Silicon)2023-12-22T21:14:54-08:00John KlimekUnable to compile on macOS (arm64; Apple Silicon)I'm trying to compile on macOS (arm64; Apple Silicon) and it compiles most of the code successfully but then it errors on loguru.cpp:
```
In file included from source/build/src/loguru.cpp:46:
In file included from /Library/Developer/Com...I'm trying to compile on macOS (arm64; Apple Silicon) and it compiles most of the code successfully but then it errors on loguru.cpp:
```
In file included from source/build/src/loguru.cpp:46:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/regex:771:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__locale:888:21: error: too many arguments provided to function-like macro invocation
isalpha(_CharT __c, const locale& __loc)
^
source/build/include/compat.h:769:11: note: macro 'isalpha' defined here
# define isalpha(ch) ({ int32_t c__dontuse2_=ch; (c__dontuse2_>='A' && c__dontuse2_<='Z') || (c__dontuse2_>='a' && c__dontuse2_<='z'); })
^
In file included from source/build/src/loguru.cpp:46:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/regex:771:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__locale:888:1: error: declaration conflicts with target of using declaration already in scope
isalpha(_CharT __c, const locale& __loc)
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_ctype.h:218:1: note: target of using declaration
isalpha(int _c)
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/cctype:113:9: note: using declaration
using ::isalpha _LIBCPP_USING_IF_EXISTS;
^
In file included from source/build/src/loguru.cpp:46:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/regex:771:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__locale:890:5: error: expected expression
return std::use_facet<ctype<_CharT> >(__loc).is(ctype_base::alpha, __c);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__locale:891:2: error: expected ';' at end of declaration
}
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__locale:896:21: error: too many arguments provided to function-like macro invocation
isdigit(_CharT __c, const locale& __loc)
^
source/build/include/compat.h:768:11: note: macro 'isdigit' defined here
# define isdigit(ch) ({ int32_t c__dontuse_=ch; c__dontuse_>='0' && c__dontuse_<='9'; })
^
In file included from source/build/src/loguru.cpp:46:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/regex:771:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__locale:896:1: error: declaration conflicts with target of using declaration already in scope
isdigit(_CharT __c, const locale& __loc)
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_ctype.h:237:1: note: target of using declaration
isdigit(int _c)
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/cctype:116:9: note: using declaration
using ::isdigit _LIBCPP_USING_IF_EXISTS;
^
In file included from source/build/src/loguru.cpp:46:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/regex:771:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__locale:898:5: error: expected expression
return std::use_facet<ctype<_CharT> >(__loc).is(ctype_base::digit, __c);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__locale:899:2: error: expected ';' at end of declaration
}
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__locale:920:21: error: too many arguments provided to function-like macro invocation
isalnum(_CharT __c, const locale& __loc)
^
source/build/include/compat.h:770:11: note: macro 'isalnum' defined here
# define isalnum(ch2) ({ int32_t c2__dontuse_=ch2; isalpha(c2__dontuse_) || isdigit(c2__dontuse_); })
^
In file included from source/build/src/loguru.cpp:46:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/regex:771:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__locale:920:1: error: declaration conflicts with target of using declaration already in scope
isalnum(_CharT __c, const locale& __loc)
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_ctype.h:212:1: note: target of using declaration
isalnum(int _c)
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/cctype:112:9: note: using declaration
using ::isalnum _LIBCPP_USING_IF_EXISTS;
^
In file included from source/build/src/loguru.cpp:46:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/regex:771:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__locale:922:5: error: expected expression
return std::use_facet<ctype<_CharT> >(__loc).is(ctype_base::alnum, __c);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__locale:923:2: error: expected ';' at end of declaration
}
^
source/build/src/loguru.cpp:514:25: error: expected unqualified-id
last_is_alpha = std::isalpha(static_cast<int>(cmd[arg_len]));
^
source/build/include/compat.h:769:23: note: expanded from macro 'isalpha'
# define isalpha(ch) ({ int32_t c__dontuse2_=ch; (c__dontuse2_>='A' && c__dontuse2_<='Z') || (c__dontuse2_>='a' && c__dontuse2_<='z'); })
^
source/build/src/loguru.cpp:514:25: error: unexpected type name 'int32_t': expected expression
source/build/include/compat.h:769:26: note: expanded from macro 'isalpha'
# define isalpha(ch) ({ int32_t c__dontuse2_=ch; (c__dontuse2_>='A' && c__dontuse2_<='Z') || (c__dontuse2_>='a' && c__dontuse2_<='z'); })
^
source/build/src/loguru.cpp:514:25: error: expected '}'
source/build/include/compat.h:769:34: note: expanded from macro 'isalpha'
# define isalpha(ch) ({ int32_t c__dontuse2_=ch; (c__dontuse2_>='A' && c__dontuse2_<='Z') || (c__dontuse2_>='a' && c__dontuse2_<='z'); })
^
source/build/src/loguru.cpp:514:25: note: to match this '{'
source/build/include/compat.h:769:24: note: expanded from macro 'isalpha'
# define isalpha(ch) ({ int32_t c__dontuse2_=ch; (c__dontuse2_>='A' && c__dontuse2_<='Z') || (c__dontuse2_>='a' && c__dontuse2_<='z'); })
^
15 errors generated.
```
Thanks for any help!https://voidpoint.io/terminx/eduke32/-/issues/285Current version not buildable on Linux2023-12-03T13:37:31-08:00Jörg StrebelCurrent version not buildable on LinuxHallo!
Enclosed you will find the error messages that I encountered when buildung Duke3D on openSUSE Leap 15.4 Linux with the current version from the git repo
[error-messages.txt](/uploads/80ddd40a367371cba8c6e2b0d0785d6e/error-message...Hallo!
Enclosed you will find the error messages that I encountered when buildung Duke3D on openSUSE Leap 15.4 Linux with the current version from the git repo
[error-messages.txt](/uploads/80ddd40a367371cba8c6e2b0d0785d6e/error-messages.txt)
It seems, the optimized memory library does not work with my CPU. Here is the information on my system:
- CPU: Intel Core i5-2500 (Sandy Bridge D2/J1/Q0) {Sandy Bridge}
- RAM: 16 GB
- OS: openSUSE Leap 15.4
- Kernel-Version: 5.14.21-150400.24.81-default (64-bit)
- X-Windows: X11
Is there a way to disable the mimalloc library?https://voidpoint.io/terminx/eduke32/-/issues/281Duke3D: crash at pushmove2023-08-27T00:50:37-07:00Alexey MDuke3D: crash at pushmoveSteps to reproduce:
1. Load attached save file.
2. Drop into the water and shoot at Octabrains. It's important to use Devastator, I don't think it works with other weapons.
3. 80-90% of the time the crash happens once either (or both) o...Steps to reproduce:
1. Load attached save file.
2. Drop into the water and shoot at Octabrains. It's important to use Devastator, I don't think it works with other weapons.
3. 80-90% of the time the crash happens once either (or both) of Octabrains is blown into pieces.
[save0000.esv](/uploads/39bd8c1bba98175d3f6450c59c3845a9/save0000.esv)
Log and stack trace:
```cpp
0,3589s INFO| EDuke32 r10363-dd98c3ec5
0,3590s INFO| Built Aug 26 2023 10:19:31, clang 14.0.0 , 64-bit
...
==719986==WARNING: ASan is ignoring requested __asan_handle_no_return: stack type: default top: 0x7fffb5cb0600; bottom 0x7fffffffc000; size: 0xffffffffb5cb4600 (-1244969472)
False positive error reports may follow
For details see https://github.com/google/sanitizers/issues/189
Thread 1 "eduke32" received signal SIGILL, Illegal instruction.
0x000055555656a6c1 in pushmove (vect=0x555558a65e50 <sprite_s+16720>, sectnum=0x7fffffffd6c0, walldist=128, ceildist=1024, flordist=1024, cliptype=65537, clear=<optimized out>) at source/build/src/clip.cpp:1839
1839 }
(gdb) bt
#0 0x000055555656a6c1 in pushmove(vec3_t*, int16_t*, int32_t, int32_t, int32_t, uint32_t, bool)
(vect=0x555558a65e50 <sprite_s+16720>, sectnum=0x7fffffffd6c0, walldist=128, ceildist=1024, flordist=1024, cliptype=65537, clear=<optimized out>)
at source/build/src/clip.cpp:1839
#1 0x000055555640738d in A_DamageObject_Duke3D(int, int)
(spriteNum=380, dmgSrc=<optimized out>) at source/duke3d/src/sector.cpp:2431
#2 0x00005555564149ee in A_DamageObject(int, int) (spriteNum=0, dmgSrc=0)
at source/duke3d/src/sector.cpp:2573
#3 0x0000555555f9afa9 in G_MoveWeapons() () at source/duke3d/src/actors.cpp:3584
#4 0x0000555555f8df8c in G_MoveWorld() () at source/duke3d/src/actors.cpp:9292
#5 0x0000555556144e72 in G_DoMoveThings() () at source/duke3d/src/game.cpp:7343
#6 0x000055555613eec6 in app_main(int, char const* const*)
(argc=<optimized out>, argv=<optimized out>) at source/duke3d/src/game.cpp:7128
#7 0x00005555569a9bf2 in main(int, char**) (argc=0, argv=0x0)
at source/build/src/sdlayer.cpp:568
```https://voidpoint.io/terminx/eduke32/-/issues/278[SW] Assertion `(spr->cstat & CSTAT_SPRITE_ALIGNMENT) == CSTAT_SPRITE_ALIGNME...2023-11-16T16:35:48-08:00Roland Häder[SW] Assertion `(spr->cstat & CSTAT_SPRITE_ALIGNMENT) == CSTAT_SPRITE_ALIGNMENT_FLOOR` failedThis happens during saving the game in airplane map.
```
voidsw: source/build/src/engine_priv.h:457: vec2_t get_floorspr_center(const void*, bool): Assertion `(spr->cstat & CSTAT_SPRITE_ALIGNMENT) == CSTAT_SPRITE_ALIGNMENT_FLOOR' failed....This happens during saving the game in airplane map.
```
voidsw: source/build/src/engine_priv.h:457: vec2_t get_floorspr_center(const void*, bool): Assertion `(spr->cstat & CSTAT_SPRITE_ALIGNMENT) == CSTAT_SPRITE_ALIGNMENT_FLOOR' failed.
Caught signal: SIGABRT
Stack trace:
22 0x63185b752e0a _start + 42
21 0x785cfb4bdd0a __libc_start_main + 234
20 0x63185badc9b0 main + 463
19 0x63185b78ecd9 app_main + 4603
18 0x63185b78cd8e Control(int, char const* const*) + 104
17 0x63185b78a240 NewLevel() + 259
16 0x63185b78d682 RunLevel() + 238
15 0x63185b7e015e UpdateInputs() + 87
14 0x63185b791ac9 getinput(SW_PACKET*, unsigned char) + 6299
13 0x63185b78f564 FunctionKeys(PLAYERstruct*) + 913
12 0x63185b78f15b DoQuickSave(short) + 30
11 0x63185b822433 SaveGame(short) + 265
10 0x63185b78630d ScreenSaveSetup() + 71
9 0x63185b785735 drawscreen(PLAYERstruct*) + 3255
8 0x63185b9fb161 renderDrawMasks + 2294
7 0x63185b9fa696 /home/quix0r/git/eduke32/voidsw(+0x44d696) [0x63185b9fa696]
6 0x63185b9cac9d /home/quix0r/git/eduke32/voidsw(+0x41dc9d) [0x63185b9cac9d]
5 0x785cfb4cb662 /lib/x86_64-linux-gnu/libc.so.6(+0x31662) [0x785cfb4cb662]
4 0x785cfb4bc40f /lib/x86_64-linux-gnu/libc.so.6(+0x2240f) [0x785cfb4bc40f]
3 0x785cfb4bc537 abort + 291
2 0x785cfb4d2ce1 gsignal + 321
1 0x785cfb682140 /lib/x86_64-linux-gnu/libpthread.so.0(+0x13140) [0x785cfb682140]
0 0x63185ba2e43b loguru::signal_handler(int, siginfo_t*, void*) + 29
2049.1478s FATAL| Signal: SIGABRT
```
This set the save game to zero bytes.
Just download this save-game, exit the map and then you should be inside the airplane. Then try to quick-save it.
[game0.sav](/uploads/e3b666d547a99575952cc69d5b2b4221/game0.sav)https://voidpoint.io/terminx/eduke32/-/issues/277SW: Let's support high-resoultion pack2023-08-12T13:27:11-07:00Roland HäderSW: Let's support high-resoultion packWith GOG's Shadow Warrior Classic Redux, you have added high-resolution images. The SW.GRP can be found as usual by voidsw. The high-res images are in a separate directory `highres/`:
````
-rw-r--r-- 1 quix0r quix0r 10499 Jul 25 2017 ...With GOG's Shadow Warrior Classic Redux, you have added high-resolution images. The SW.GRP can be found as usual by voidsw. The high-res images are in a separate directory `highres/`:
````
-rw-r--r-- 1 quix0r quix0r 10499 Jul 25 2017 air.png
-rw-r--r-- 1 quix0r quix0r 6290 Jul 25 2017 bossbar_001.png
-rw-r--r-- 1 quix0r quix0r 6382 Jul 25 2017 bossbar_002.png
-rw-r--r-- 1 quix0r quix0r 6335 Jul 25 2017 bossbar_003.png
-rw-r--r-- 1 quix0r quix0r 6386 Jul 25 2017 bossbar_004.png
-rw-r--r-- 1 quix0r quix0r 6368 Jul 25 2017 bossbar_005.png
-rw-r--r-- 1 quix0r quix0r 6339 Jul 25 2017 bossbar_006.png
-rw-r--r-- 1 quix0r quix0r 6322 Jul 25 2017 bossbar_007.png
-rw-r--r-- 1 quix0r quix0r 6277 Jul 25 2017 bossbar_008.png
-rw-r--r-- 1 quix0r quix0r 6267 Jul 25 2017 bossbar_009.png
-rw-r--r-- 1 quix0r quix0r 6218 Jul 25 2017 bossbar_010.png
-rw-r--r-- 1 quix0r quix0r 6106 Jul 25 2017 bossbar_011.png
-rw-r--r-- 1 quix0r quix0r 6170 Jul 25 2017 bossbar_012.png
-rw-r--r-- 1 quix0r quix0r 6199 Jul 25 2017 bossbar_013.png
-rw-r--r-- 1 quix0r quix0r 6241 Jul 25 2017 bossbar_014.png
-rw-r--r-- 1 quix0r quix0r 6185 Jul 25 2017 bossbar_015.png
-rw-r--r-- 1 quix0r quix0r 6203 Jul 25 2017 bossbar_016.png
-rw-r--r-- 1 quix0r quix0r 6220 Jul 25 2017 bossbar_017.png
-rw-r--r-- 1 quix0r quix0r 6215 Jul 25 2017 bossbar_018.png
-rw-r--r-- 1 quix0r quix0r 6192 Jul 25 2017 bossbar_019.png
-rw-r--r-- 1 quix0r quix0r 6193 Jul 25 2017 bossbar_020.png
-rw-r--r-- 1 quix0r quix0r 6133 Jul 25 2017 bossbar_021.png
-rw-r--r-- 1 quix0r quix0r 6150 Jul 25 2017 bossbar_022.png
-rw-r--r-- 1 quix0r quix0r 6086 Jul 25 2017 bossbar_023.png
-rw-r--r-- 1 quix0r quix0r 6083 Jul 25 2017 bossbar_024.png
-rw-r--r-- 1 quix0r quix0r 6081 Jul 25 2017 bossbar_025.png
-rw-r--r-- 1 quix0r quix0r 52483 Jul 25 2017 bossbar_026.png
-rw-r--r-- 1 quix0r quix0r 52483 Jul 25 2017 bossbar_027.png
-rw-r--r-- 1 quix0r quix0r 52483 Jul 25 2017 bossbar_028.png
-rw-r--r-- 1 quix0r quix0r 52483 Jul 25 2017 bossbar_029.png
-rw-r--r-- 1 quix0r quix0r 52483 Jul 25 2017 bossbar_030.png
-rw-r--r-- 1 quix0r quix0r 52483 Jul 25 2017 bossbar_empty.png
[..]
````
I think it isn't hard to add support for it:
1. Check if highres/<filename>.png does exist
2. If so, load it.
3. If not, check if `sw.grp contains the image (<filename>.pcx I guess?)https://voidpoint.io/terminx/eduke32/-/issues/273Duke3D: Default maxfps setting of -1 shows up as "CVAR" in menu, has no corre...2023-08-19T22:28:21-07:00Dino Bollingerdino.bollinger@gmail.comDuke3D: Default maxfps setting of -1 shows up as "CVAR" in menu, has no corresponding menu entryTitle pretty much describes the problem in full.
To reproduce, simply run eduke32 from a freshly created config. The "Framerate Limit" option will show "CVAR", which is the fallback text, when r_maxfps is set to -1.Title pretty much describes the problem in full.
To reproduce, simply run eduke32 from a freshly created config. The "Framerate Limit" option will show "CVAR", which is the fallback text, when r_maxfps is set to -1.https://voidpoint.io/terminx/eduke32/-/issues/272WGR2: SIGFPE/SIGSEGV in first map (very old regression)2023-08-20T06:53:55-07:00Roland HäderWGR2: SIGFPE/SIGSEGV in first map (very old regression)WGR2: Siege Breaker is a free fan-made addon to Duke Nukem 3D, you can find it [here](https://fissile.duke4.net/fissile_wgr2.html) freely for download. It also endorses Eduke32.
The crash happens only when you shoot (and you must) a spe...WGR2: Siege Breaker is a free fan-made addon to Duke Nukem 3D, you can find it [here](https://fissile.duke4.net/fissile_wgr2.html) freely for download. It also endorses Eduke32.
The crash happens only when you shoot (and you must) a specific enemy, others work just fine (you cannot continue without shooting him.
Attaching standard eduke32.log file and config files.
- [eduke32.log](/uploads/e164359ea59531f065f83170a43afeb3/eduke32.log)
- [eduke32.cfg](/uploads/551349e577de26c596f66b675d60d30b/eduke32.cfg)
- [wgr2.cfg](/uploads/a491a296411ec029b8beb3f2474e449c/wgr2.cfg)
- [wgr2_settings.cfg](/uploads/0cc59ff9d820cb31d7a5fb410cd7fe4f/wgr2_settings.cfg)
- [save0012.esv](/uploads/ce7c316853144aff29ce3333fa541ef6/save0012.esv)
eduke32 is built from commit id 6537106e66fe29413e5a5edc3145dcad8f9bb12c
Steps to reproduce:
- install the addon as usual
- just load the attached save0012.esv file and shoot that enemy up there (maybe 3 times). Yes, GOD cheat is used, you won't die. ;-)https://voidpoint.io/terminx/eduke32/-/issues/267Assertion Failure when opening a map with a start point in the void2023-07-03T16:51:56-07:00J. Gareth MoretonAssertion Failure when opening a map with a start point in the void# Description
If you open a map that has a starting location in null space (e.g. because you forgot to set it), the program crashes with an assertion failure: ```"Expression: (unsigned)sectnum < MAXSECTORS". In "source/build/src/engine....# Description
If you open a map that has a starting location in null space (e.g. because you forgot to set it), the program crashes with an assertion failure: ```"Expression: (unsigned)sectnum < MAXSECTORS". In "source/build/src/engine.cpp" line 8687.```
Since that is an easy-to-make mapping error, I feel that should be handled more cleanly.
This is for NetDuke32, but applies for EDuke32 too.
# Reproduction
Create any map with the start location outside of a valid sector, then attempt to load it as a user map in the game
# Priority
4 (Low) - caused by mapper error and the alternative would probably be a cleaner crash or dropping to console.
# Additional Notes
Presumably ```sectnum``` got set to -1 or is equal to ```MAXSECTORS``` due to a for-loop not finding a sector that encapsulates the start point.https://voidpoint.io/terminx/eduke32/-/issues/265Duke3D: Automatic vertical view angle creates "flickering" effect in some sit...2023-05-27T05:32:50-07:00Ricardo GarciaDuke3D: Automatic vertical view angle creates "flickering" effect in some situationsThis can be noticed specially on E1L6. When going up the slope to the force field control tower, which uses slopes combined with horizontal sprites laid out to cover gaps, near the edges of some of those sprites the view angle is adjuste...This can be noticed specially on E1L6. When going up the slope to the force field control tower, which uses slopes combined with horizontal sprites laid out to cover gaps, near the edges of some of those sprites the view angle is adjusted suddenly a high amount up or down and then corrected, creating a flickering or heaving nodding effect. MR incoming with video to showcase the problem.https://voidpoint.io/terminx/eduke32/-/issues/264Duke3D: Overwrite confirmation appending character to save name2023-03-14T17:41:14-07:00Ricardo GarciaDuke3D: Overwrite confirmation appending character to save nameThis happens to me on Fedora 37. When saving a game and choosing a slot which is already in use, a confirmation dialogue pops up with the question "Overwrite previous saved game?". After answering "y", you're prompted for a save name, an...This happens to me on Fedora 37. When saving a game and choosing a slot which is already in use, a confirmation dialogue pops up with the question "Overwrite previous saved game?". After answering "y", you're prompted for a save name, and a "Y" character is appended to the existing save name in the slot (leaking from answering the question).https://voidpoint.io/terminx/eduke32/-/issues/263Broken "Duke-Tag!" announcement sounds2024-03-16T00:33:52-07:00NY00123Broken "Duke-Tag!" announcement soundsThese can be played back in E4L10's "Duke-Tag!" mode upon obtaining a pair of boots, and also when scoring for a team.
The problem is also relevant for NetDuke32 and Rednukem.
Changing S_PlaySound3D to ignore S_PlaySound's return value...These can be played back in E4L10's "Duke-Tag!" mode upon obtaining a pair of boots, and also when scoring for a team.
The problem is also relevant for NetDuke32 and Rednukem.
Changing S_PlaySound3D to ignore S_PlaySound's return value, and unconditionally return 0 instead, appeared to fix the problem in all of EDuke32, NetDuke32 and Rednukem; This is a bit closer to the original DOS code, but I'm unsure it's the correct solution. I also tried returning -1 instead.https://voidpoint.io/terminx/eduke32/-/issues/258Rotatesprite Interpolation breaks with > 120 FPS2022-12-25T18:55:41-08:00Jordon MossRotatesprite Interpolation breaks with > 120 FPSWith Vsync off, and r_maxfps set to a high value over 120, rotatesprite interpolation breaks and becomes very jerky.
To reproduce this, compare r_maxfps 120, to r_maxfps 280 or higher. The interpolation becomes a lot less smooth. Someth...With Vsync off, and r_maxfps set to a high value over 120, rotatesprite interpolation breaks and becomes very jerky.
To reproduce this, compare r_maxfps 120, to r_maxfps 280 or higher. The interpolation becomes a lot less smooth. Something seems to mess up the timing. With uncapped framerate, and if you manage to get something absurdly high, like 1000fps, it's like interpolation isn't there at all, like it was locked back at 30fps. This is easier to notice at higher resolutions and refresh rates.
Could this be a floating point precision error, or perhaps an issue with totalclock only having a 120hz resolution?https://voidpoint.io/terminx/eduke32/-/issues/255Classic - Graphic corruption with the pipebomb asset and red lighting2022-10-27T02:50:39-07:00DrUm78Classic - Graphic corruption with the pipebomb asset and red lighting- Platform: Windows 11
- Build: eduke32_win32_20221018-10164-810e1c13f
When in a zone with some red lighting, the pipebomb asset is corrupt. That does not seem to happen with other lighting. It's been like this in classic engine for yea...- Platform: Windows 11
- Build: eduke32_win32_20221018-10164-810e1c13f
When in a zone with some red lighting, the pipebomb asset is corrupt. That does not seem to happen with other lighting. It's been like this in classic engine for years (was already present in EDuke32 built with 20100727 code).
Steps to reproduce
1. Equip a pipebomb
2. Reach a zone with some red lighting (in front of the end of stage button in Hollywood Holocaust or in the elevator at the beginning of Red light District for instance).
3. Notice that the asset is corrupt
![pipebomb_corrupt](/uploads/cf6333694131d067acd4c255c64bbca3/pipebomb_corrupt.png)https://voidpoint.io/terminx/eduke32/-/issues/250Engine: Localization DEF token should use abstract, unique keys as first inpu...2022-07-29T14:11:35-07:00Dino Bollingerdino.bollinger@gmail.comEngine: Localization DEF token should use abstract, unique keys as first input, instead of exact English stringsThis is a problem of how the strings are currently defined within the engine, and would require a far-reaching refactoring to clean up.
It is a minor issue and shouldn't cause any problems right now, but the potential for trouble exists...This is a problem of how the strings are currently defined within the engine, and would require a far-reaching refactoring to clean up.
It is a minor issue and shouldn't cause any problems right now, but the potential for trouble exists.
Namely, strings visible to the player are currently inlined directly inside the source code, like such:
```
source/duke3d/src/menus.cpp:435:static MenuEntry_t ME_GAMESETUP_SAVESETUP = MAKE_MENUENTRY( "Save setup", &MF_Redfont, &MEF_BigOptionsRt, &MEO_GAMESETUP_SAVESETUP, Link );
source/duke3d/src/menus.cpp:1526:static MenuMenu_t M_SAVESETUP = MAKE_MENUMENU( "Save Setup", &MMF_BigOptions, MEL_SAVESETUP );
```
This is an example of an ambiguous string that may cause problems when translated.
In the location where this string is used, "Save Setup" refers to the menu where the settings for savegames can be set up.
However, assume we have another menu, where the final entry of a range of gameplay settings that reads "Save Setup", where selecting it applies the selected settings.
In this case, the string carries the meaning of "Save the selected setup" but holds the exact same characters.
Now assume an outside observer wants to translate this string to German. He will define the following DEF code:
```
localization "de"
{
str "Save Setup" "Einstellungen Speichern"
}
```
The problem is that in German, the two meanings cannot be expressed using the same string. If you wish to translate the "Save Setup" menu, you would write something akin to "Speicher-Einstellungen". But if you wish to translate "save current setup", you would write "Einstellungen Speichern" as above. No matter the quality of the translation, you would not be able to translate both instances of the string appropriately.
There are of course other problems:
* Each time the English string is changed in the source code, translations for that string no longer apply.
* There is code duplication that could be simplified if the same string is required in different locations, as is the case in the first grep result.
To fix this, the strings inside the code should be replaced by a string representing a unique key (preferably with a leading character like "__") that is used in combination with an external mapping, which assigns each unique key to the actual visible string to be seen by the player. This would then be loaded into the localization system, and used for the "en" locale.https://voidpoint.io/terminx/eduke32/-/issues/249Engine: findfrompath(fn, where) returns 0 when fn is an empty string2022-09-29T21:33:21-07:00Dino Bollingerdino.bollinger@gmail.comEngine: findfrompath(fn, where) returns 0 when fn is an empty stringThis issue concerns the function `findfrompath(fn,where)` in `source/build/src/vfs.cpp`, line 280.
If we pass an empty string as filename, the function should return a non-zero value, since the empty string does not exist as a file insi...This issue concerns the function `findfrompath(fn,where)` in `source/build/src/vfs.cpp`, line 280.
If we pass an empty string as filename, the function should return a non-zero value, since the empty string does not exist as a file inside the folder. However, due to a bug, it will return 0 instead.
This code causes the problem:
```C
char *pfn = (char *)Xmalloc(allocsiz);
strcpy(pfn, "./");
strcat(pfn, ffn);
if (buildvfs_exists(pfn))
{
*where = pfn;
Xfree(ffn);
return 0;
}
```
`ffn` is hereby a copy of `fn`. `ffn` contains an empty string, and the code hence stores the path `"./"` inside `pfn`.
Of course, this is the current directory, which always exists, hence the function will return 0. There needs to be a special case here that makes the function return -1 if the input `fn` is empty.
A concrete instance where this leads to a bug is with RTS file checking in Duke3D. If the RTS filename is empty, i.e. undefined, then the function will return true, and the game will attempt to read the base directory as the RTS file, and produce a strange error in the console.Dino Bollingerdino.bollinger@gmail.comDino Bollingerdino.bollinger@gmail.com