MantisBT - Zandronum
View Issue Details
0004216Zandronum[All Projects] Suggestionpublic2024-04-04 23:572025-11-03 19:17
BinaryCode 
Kaminsky 
normaltweakalways
resolvedfixed 
3.1 
3.33.3 
0004216: CurrentPlayerClass variable is limited to 255
In d_player.h, "CurrentPlayerClass" is a BYTE variable, meaning you cannot select a class after the 255th index, or it will reset back to 0.

I feel like this is a bug, but GZDoom has the same thing (uses a different variable type, but still has the same limitation):'https://github.com/ZDoom/gzdoom/blob/master/src/playsim/d_player.h#L340 [^]'

This isn't really a major issue, since there isn't a mod with THAT many classes, but I wanted to make a ticket issue in case.
No tags attached.
? ClassLimitIssue-0.pk3 (2,503) 2025-09-25 02:12
/tracker/file_download.php?file_id=3281&type=bug
patch NoLimit-CurrentPlayerClass-1.patch (3,585) 2025-09-25 02:15
/tracker/file_download.php?file_id=3282&type=bug
Issue History
2024-04-04 23:57BinaryCodeNew Issue
2024-04-05 23:21Ru5tK1ngNote Added: 0023517
2024-04-05 23:21Ru5tK1ngStatusnew => acknowledged
2024-04-05 23:21Ru5tK1ngResolutionopen => waiting for zdoom
2024-04-05 23:21Ru5tK1ngCategoryBug => Suggestion
2024-04-06 00:05KaminskyNote Added: 0023520
2025-09-25 02:12BinaryCodeFile Added: ClassLimitIssue-0.pk3
2025-09-25 02:14BinaryCodeNote Added: 0024567
2025-09-25 02:15BinaryCodeFile Added: NoLimit-CurrentPlayerClass-1.patch
2025-11-03 16:42Ru5tK1ngNote Added: 0024628
2025-11-03 16:42Ru5tK1ngStatusacknowledged => needs testing
2025-11-03 16:42Ru5tK1ngTarget Version => 3.3
2025-11-03 18:55BinaryCodeNote Added: 0024629
2025-11-03 19:17Ru5tK1ngStatusneeds testing => resolved
2025-11-03 19:17Ru5tK1ngResolutionwaiting for zdoom => fixed
2025-11-03 19:17Ru5tK1ngFixed in Version => 3.3
2025-11-03 19:17KaminskyAssigned To => Kaminsky

Notes
(0023517)
Ru5tK1ng   
2024-04-05 23:21   
Marking this as a suggestion since this seems more like an oversight than a bug due to the reason you specified: no mod uses over 255 classes.
(0023520)
Kaminsky   
2024-04-06 00:05   
After speaking in private with Binary about this ticket, it's better if GZDoom decides (if they really want) to change the data type of that variable to something bigger than an unsigned 8-bit integer, which we could then backport someday. I don't see any justification in changing this ourselves and creating more delta from GZDoom if there's seemingly no mod out there that's defined more than, or even close to, 256 player classes.
(0024567)
BinaryCode   
2025-09-25 02:14   
Made a GZDoom PR:'https://github.com/ZDoom/gzdoom/pull/3370 [^]'

And uploaded an example PK3 and patch file. Hopefully the patch file can be used...
(0024628)
Ru5tK1ng   
2025-11-03 16:42   
Merged in:'https://foss.heptapod.net/zandronum/zandronum-stable/-/commit/9cee7e80ec2496a0ad90e0b01dc05be61c760d98 [^]'
(0024629)
BinaryCode   
2025-11-03 18:55   
Works for me, feel free to mark as done