ec-/baseq3a

[Feature] Skipping maps in a rotation

Opened this issue · 4 comments

With an existing map rotation in rotation.txt, it is currently not possible to resume where you left off if you end the game during the rotation and later jump back to the last map. It would load the first map in rotation.txt next instead of following the list and choose the map following the one you skipped to.

E.g. you have in rotation.txt:
map1
map2
map3
...
After going to /map map2 and finishing that, it would load map1 next instead of map3.

Related to that, the +map mapname startup parameter seems to be ignored. While you are required to add it if you want to launch the game and enter the rotation cycle directly, it would always load the first entry of the list instead of the map you stated in the parameter.

ec- commented

Initial +map command needed to launch game engine, it is not supposed to use any rotation code which executed only at level end. Also, rotation list could have duplicated map entries so it is not possible (and not assumed) to identify rotation position depending from map name, rotation always driven by its internal counter only, nothing more.

If you still feel "confused" - launch map3 (-last rotaton entry) at engine startup or add +wait; +rotate to the command line

I suppose you could have a cvar for the rotation index that can be overridden?

The thing is, if you set up a rotation in a cfg file via vstr, it's actually still more convenient than this (to some degree) since resuming where you left off is indeed possible.

Map command is engine based. Rotation system is implemented in qagame.qvm which is not loaded until there's a map loaded.