Zandronum Chat on our Discord Server Get the latest version: 3.1
Source Code

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0003599DoomseekerUIpublic2019-01-27 05:252019-07-30 10:13
ReporterBLOODWOLF 
Assigned ToPol M 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSWindowsOS Version8.1
Product Version1.2 
Target Version1.3Fixed in Version1.3 
Summary0003599: Allow Adding Maps En Masse To Playlist
DescriptionCurrently we cannot shift or ctrl+click multiple maps to add at once to the playlist. And Create Game>Rules Tab>Map List always warns about "Current map isn't on map list. Game may misbehave." when attempting to add maps using that method (Doom 1, typing "E1M1" into text box then clicking [add]). General Tab>Map: [is empty]

I only bring this up because if a user creates a server and defines the starting mission in General Tab>Map: E3M1 for example, once the players defeat that episode's final boss the server starts back over at E3M1 (if it doesnt kick all the players instead which commonly occurs) instead of moving onto E4M1 which I think the community would intuitively assume should have happened.
Attached Files

- Relationships
related to 0003542closedPol M No CXX_STANDARD defined in CMake build files 
parent of 0003650closedPol M Missing support for Universal Doom Map Format on the "add from loaded maps" create server menu 

-  Notes
User avatar (0020321)
Zalewa (developer)
2019-01-27 11:29

Your point has merit but I'm not sure what's the solution you're seeking. What do you mean by adding multiple maps to the map list by "shift" or "ctrl+click"? The maps to the map list are typed in.

Do you want Doomseeker to define some batch presets that can be included on the map list with a single click? Consider that WADs are free to define their own map names - so E#M# and MAP## are not the only formats that will be encountered.

Or do you want the map list box to accept a drag'n'drop from a text file with a predefined map list?

Or do you want Doomseeker to parse the loaded WADs and list all the map names for you? (this will be a lot of work, mind you)
User avatar (0020324)
BLOODWOLF (reporter)
2019-01-27 17:12
edited on: 2019-01-28 01:56

Personally I would like it if we could shift+click add maps (with add button or drag 'n drop is fine too) in the Maps > Playlist... dialog when a server has already been created. That new window populates all the maps included in your current .wad and what I intuitively attempted to do at first.

Or allow the server to continue on to the next episode after E3M8 for example instead of looping back to E3M1 after the boss which is the reason why I began looking into how to populate a map playlist. And even if you start your server on E3M4 for example it will loop back to E3M1 (or kick everyone from the server) after defeating the Spiderdemon.

So, this behavior from Doomseeker is the actual cause/issue that lead to the request to add many maps at once to the playlist. If it automatically jumped to the next episode or did not kick all players from the server after the boss in Doom I then that would resolve the issue as well.

User avatar (0020325)
Zalewa (developer)
2019-01-28 19:24
edited on: 2019-01-28 19:24

So, to fulfill your needs, Doomseeker would have to parse the WADs (and PK3s) selected for the game and list all the available maps. You would then be able to select & drag all of them to the map list in one go.

This is not unfeasible, but it will be quite an undertaking. Doomseeker currently has no code whatsoever for parsing WADs. Maybe we could borrow some from Zandronum?

User avatar (0020326)
Pol M (developer)
2019-01-28 20:53

Quote from Zalewa

Maybe we could borrow some from Zandronum?

I was thinking of suggesting this, but I was gonna wait to see if it looked like it was possible. I'd say that this would be a good idea and would save us the hassle.
User avatar (0020327)
BLOODWOLF (reporter)
2019-01-28 21:52

Yes, if that is the Zandronum code that is listing all the maps once you already have a server running and then allow mass adding/removing that would be much more user-friendly.
User avatar (0020328)
Pol M (developer)
2019-01-28 22:19
edited on: 2019-01-28 22:20

Huh, so you're asking for a way to change the parameters of the zandronum server once it has already been initialized, right? (I'd say that this, unfortunately, will probably be impossible, all the data is set when the server starts).
That said, making the process of adding wads *before* the server starts easier can be feasible. That said, maybe there is some RCon magic that can be pulled out, I'd need to read more the wiki :)

If I'm wrong, I'll be very happy :P

User avatar (0020329)
Zalewa (developer)
2019-01-28 23:10

Let's not over-do this. Limiting the functionality to a pre-game setup is enough. Server admins that need more flexibility in configuring their servers always have the whole .ini file at their disposal and the "exec" CCMD.
User avatar (0020330)
Pol M (developer)
2019-01-29 23:41
edited on: 2019-02-02 16:57

Okay then. I'll take a look at the possibilities we have. As said, maybe it will be necessary to take code from zandronum. I don't know a lot about licences and anything non-code related that could apply in this situation, so I'll leave that to the reviewer of a potential pr :)

EDIT: The code I want (w_wads.*) has a massive amount of dependencies that either would need to be imported (bad idea, I reached 200 files and decided to stop, plus it needs things like lzma) or that should be replaced (bad for me, because some classes are quite intricate). I've been reading about the wad structure and pk3 (it is just a zip), and it *should* be easy to grab the info we need more easily if I wrote it myself (Well, maybe not easier but truly a lot more entertaining). Since there is nothing urgent here, I'll give it a try.
EDIT2: I take it back, I rather deal with the dependency hell
EDIT3: Man, this is going to take forever. I've found this (really old) library that is cross-platform, LGPL licenced, documented, and that while it claims to be not yet finished, in the TODO file it only says that there are just a few missing features and needs more testing. I'll dust it off and give it a go (fingers crossed)(https://sourceforge.net/projects/libdoomwad/)

User avatar (0020331)
Zalewa (developer)
2019-02-03 08:34

The game will have tons of code for WAD parsing because the game needs to parse everything, while all that we need to do is find the map lumps (however that's done) and return their names.

If you find this library any good, its code can be incorporated directly into Doomseeker's code. Its license is already compatible and it will save us from adding an extra dependency.
User avatar (0020332)
Pol M (developer)
2019-02-03 14:36
edited on: 2019-02-03 14:43

Quote from Zalewa
The game will have tons of code for WAD parsing because the game needs to parse everything.

I know, but it is so tangled up that it ends up needing pretty much all the engine. I have decided to not continue because of how time-consuming it would be to get what I need.
Quote from Zalewa

its code can be incorporated directly into Doomseeker's code.

Done! I'll proceed with a pr with an example. Please note that it only handles wad files and not pk3. This example covers most cases while only checking the bare minimum of the requirements for a map. Here is a list of the "requirements" for a map
(just for clarity, the necessary lumps are: THINGS, LINEDEFS, SIDEDEFS, VERTEXES, SEGS, SSECTORS, NODES, SECTORS, REJECT, BLOCKMAP)

User avatar (0020333)
Blzut3 (administrator)
2019-02-03 20:38

For pk3 files we already have zip reading code in Wadseeker which we make public since it's useful for extracting development builds. Pk3s could be complicated since some mod authors like to abuse the recursive file loading that ZDoom/Zandronum does. My recommendation would be to only support listing the maps in the maps/ directory in order to give more incentive for authors to do the right thing, but maybe that's just me.

I don't particularly care if you want to use that library, but just want to mention that with QDataStream you should be able to read the WAD's directory with maybe 20 lines of code. It's a pretty trivial container format.
User avatar (0020334)
Pol M (developer)
2019-02-03 23:00
edited on: 2019-02-04 00:24

Quote from Blut3

I don't particularly care if you want to use that library, but just want to mention that with QDataStream you should be able to read the WAD's directory with maybe 20 lines of code. It's a pretty trivial container format.

Oh. that is indeed easy.
...
...
Well, I'll proceed to make a small class that reads the header and the directory. XD
EDIT: DONE :)

User avatar (0020335)
Pol M (developer)
2019-02-05 15:36

I'm pretty much done (pr)
User avatar (0020414)
Pol M (developer)
2019-02-18 20:12

Applying changes based on Zalewa's review.
User avatar (0020428)
Pol M (developer)
2019-02-26 10:39

Changes applied
User avatar (0020444)
Zalewa (developer)
2019-03-17 13:18

Changes squashed and merged:

-'https://bitbucket.org/Doomseeker/doomseeker/commits/372e943eb5c9356aab9047b58a207292cb59cba6 [^]'
-'https://bitbucket.org/Doomseeker/doomseeker/commits/e69b235a28aab51909fe053bb6d245ec5634d9a6 [^]'
User avatar (0020446)
Pol M (developer)
2019-03-17 19:18

Completing 0003542 will solve our pipelines problem.
User avatar (0020822)
Zalewa (developer)
2019-06-23 10:34

BLOODWOLF, this may be tested by auto-updating at the beta channel or running Doomseeker from this package:'https://devbuilds.drdteam.org/doomseeker/doomseeker-1.3~beta-190622-1032.zip [^]'

Personally I haven't noticed any problems.
User avatar (0020824)
BLOODWOLF (reporter)
2019-06-23 16:19

Looks good. Still shows that "Map isn't present on maplist. Game may misbehave." warning message but, that's trivial. And when dragging and dropping maps in between others to change the order the listbox snaps back up to the very top but, still gives us the functionality I was wanting so, very good.
User avatar (0020825)
Zalewa (developer)
2019-06-23 21:06

Quote from BLOODWOLF
"Map isn't present on maplist. Game may misbehave."

That's a warning that you should actually heed, as I put it in because the game did misbehave for me. I'm not sure what the exact problem was, but I remember that Zandronum did not act as expected. Basically, if you put maps on the map list, ensure that one of those maps is typed in to the "Map" field in the "General" tab.

About the list snapping - I see what you mean, but this may be something that Qt does and may not be simple to fix. But we should try - this is definitely undesireable.
User avatar (0020851)
Zalewa (developer)
2019-06-30 10:40

We should see if something can be done about list snapping back to top.
User avatar (0020858)
Pol M (developer)
2019-06-30 13:15

If you mean that when you reorder it snaps to the top, I'll look into it :)
User avatar (0020899)
Pol M (developer)
2019-07-20 16:17

PR
User avatar (0020900)
Zalewa (developer)
2019-07-20 18:48

Quote from Pol M
[Scrolling the list by pixel rather than by item] solves the problem, but I must admit that the small pixel movement that still occurs when moving items infuriates me a little bit :/ Regardless, at least it doesn’t move you to the beggining.


I checked this and I think it's totally acceptable now. I hate that hacks like this are necessary to get the UI to work right, but what can you do? At least Qt is not as bad as SmartGWT in this regard. In this particular case the hack doesn't incur any actual side-effects either. Good job.

I think we can consider this ticket as resolved at this point.
User avatar (0020901)
Pol M (developer)
2019-07-21 19:39

I'm also inclined to mark this as resolved. Stuff has already been tested, and setting this to needs testing only to see that, indeed, it now doesn't snap, is not necessary :)

Resolving it is!

Issue Community Support
This issue is already marked as resolved.
If you feel that is not the case, please reopen it and explain why.
Supporters: No one explicitly supports this issue yet.
Opponents: No one explicitly opposes this issue yet.

- Issue History
Date Modified Username Field Change
2019-01-27 05:25 BLOODWOLF New Issue
2019-01-27 11:29 Zalewa Note Added: 0020321
2019-01-27 11:36 Zalewa Status new => feedback
2019-01-27 17:12 BLOODWOLF Note Added: 0020324
2019-01-27 17:12 BLOODWOLF Status feedback => new
2019-01-28 01:56 BLOODWOLF Note Edited: 0020324 View Revisions
2019-01-28 19:24 Zalewa Note Added: 0020325
2019-01-28 19:24 Zalewa Note Edited: 0020325 View Revisions
2019-01-28 20:53 Pol M Note Added: 0020326
2019-01-28 21:52 BLOODWOLF Note Added: 0020327
2019-01-28 22:19 Pol M Note Added: 0020328
2019-01-28 22:19 Pol M Note Edited: 0020328 View Revisions
2019-01-28 22:20 Pol M Note Edited: 0020328 View Revisions
2019-01-28 23:10 Zalewa Note Added: 0020329
2019-01-29 23:41 Pol M Note Added: 0020330
2019-01-29 23:41 Pol M Assigned To => Pol M
2019-01-29 23:41 Pol M Status new => assigned
2019-01-31 17:44 Pol M Note Edited: 0020330 View Revisions
2019-01-31 20:13 Pol M Note Edited: 0020330 View Revisions
2019-01-31 20:14 Pol M Note Edited: 0020330 View Revisions
2019-02-02 16:57 Pol M Note Edited: 0020330 View Revisions
2019-02-03 08:34 Zalewa Note Added: 0020331
2019-02-03 14:36 Pol M Note Added: 0020332
2019-02-03 14:43 Pol M Note Edited: 0020332 View Revisions
2019-02-03 20:38 Blzut3 Note Added: 0020333
2019-02-03 23:00 Pol M Note Added: 0020334
2019-02-04 00:24 Pol M Note Edited: 0020334 View Revisions
2019-02-05 15:36 Pol M Note Added: 0020335
2019-02-05 15:38 Pol M Status assigned => needs review
2019-02-18 20:12 Pol M Note Added: 0020414
2019-02-18 20:12 Pol M Status needs review => assigned
2019-02-26 10:39 Pol M Note Added: 0020428
2019-02-26 10:39 Pol M Status assigned => needs review
2019-03-17 13:18 Zalewa Note Added: 0020444
2019-03-17 19:18 Pol M Note Added: 0020446
2019-03-17 19:18 Pol M Relationship added related to 0003542
2019-05-20 14:13 Pol M Status needs review => needs testing
2019-05-20 14:14 Pol M Relationship added parent of 0003650
2019-05-30 06:13 WubTheCaptain Target Version => 1.3
2019-06-23 10:34 Zalewa Note Added: 0020822
2019-06-23 12:08 WubTheCaptain Platform HP laptop =>
2019-06-23 16:19 BLOODWOLF Note Added: 0020824
2019-06-23 20:53 WubTheCaptain Status needs testing => needs review
2019-06-23 21:06 Zalewa Note Added: 0020825
2019-06-30 10:40 Zalewa Note Added: 0020851
2019-06-30 10:40 Zalewa Status needs review => assigned
2019-06-30 13:15 Pol M Note Added: 0020858
2019-07-20 16:17 Pol M Note Added: 0020899
2019-07-20 16:18 Pol M Status assigned => needs review
2019-07-20 18:48 Zalewa Note Added: 0020900
2019-07-21 19:39 Pol M Note Added: 0020901
2019-07-21 19:40 Pol M Status needs review => resolved
2019-07-21 19:40 Pol M Fixed in Version => 1.3
2019-07-21 19:40 Pol M Resolution open => fixed
2019-07-30 10:13 WubTheCaptain Status resolved => closed






Questions or other issues? Contact Us.

Links


Copyright © 2000 - 2024 MantisBT Team
Powered by Mantis Bugtracker