Menu

#21 Add map preview to map selection

future
closed
nobody
None
5
2015-07-27
2012-01-05
qubodup
No

Currently, one has to start playing a map, before knowing anything about it.

Ideally, time limit and minimap would show when hovering over the map in selection mode.

The second best solution is that the minimap and time limit get shown when in the 'do you really want to play on this map?' screen (where the author shows).

To me personally, the time limit info is quite important in choosing a level, as usually I'm in the mood/free-time-space for short races. :)

Discussion

  • landroni

    landroni - 2012-01-05

    I'm more in favour of the second solution that you mention. Several points:
    - screen estate. Open any practice track and you'll notice that there is scarcely place for a map. To allow for a map overview, some changes to font size and text layout will be needed.
    - record time. When ID: 3044914 gets implemented, we will have 'record time' on this screen, right beneath the author. I guess that by default it can display the 'track limit'. I guess this should address your concern.

    Moreover, something that I had in mind for some time, we would need a key binding (say, <tab>) that would pause the game and pop up a screen-size overview of the full map and the position of the car on it. This should nicely complement the small map usually displayed left-bottom, but give a clear overview of the layout of the entire track (something that is not available in Trigger right now). How difficult would that be?

     
  • landroni

    landroni - 2012-07-18

    r86 adds a 'time' label to pre-race screen.

    As for a map overview in this screen, it would require more effort (and I'm not entirely convinced it's feasible). Leaving the report open for now.

     
  • qubodup

    qubodup - 2012-07-27

    Thanks for the effort! The time information really helps, maybe even more than a map, to have a feel of what might be expected during the race.

    Adding map previews might be achieved using the same methods that are being used for drawing helmets:

    src/trigger/main.cpp: if (!(tex_hud_life = getSSTexture().loadTexture("/textures/life_helmet.png"))) return false;
    src/trigger/main.h: *tex_hud_life,
    src/trigger/main.cpp: if (!(tex_hud_life = getSSTexture().loadTexture("/textures/life_helmet.png"))) return false;
    src/trigger/menu.cpp: gui.addGraphic(325.0f + i * 50.0f,75.0f, 50.0f,50.0f, tex_hud_life);

    in combination with reading the .level file to find the value of the <level><terrain hudmap attribute.

    In the level details, the image could be embedded for example like:
    http://i.imgur.com/cyx7Z.png
    http://i.imgur.com/pWyCG.png

    I'm not sure how map previews could be added to the event level list (since no "level details" menu is used there).

     
  • landroni

    landroni - 2012-07-27

    src/trigger/main.cpp: if (!(tex_hud_life =
    getSSTexture().loadTexture("/textures/life_helmet.png"))) return false;

    The trouble with this approach is that it would require us to load every map image of every track, including those in .zip files. Isn't this too much overhead? Also, how do we technically do this for .zip files?

     
  • qubodup

    qubodup - 2012-07-27

    Ideally we'd load it at the moment before you enter the "level info" screen.

    No idea how .zip files are handled. I imagine they're abstracted via physfs or extracted at game start?

    Use the same method that is used for reading the .level file inside the .zip files?

     
  • Andrei

    Andrei - 2015-07-27

    Implemented with minimap and screenshot, as two separate 256x256 textures.
    These files are designated in the .LEVEL file. If they aren't, default textures will be used.

    The trouble with this approach is that it would require us to load every map image of every track, including those in .zip files. Isn't this too much overhead?

    This is masked by the loading/splash screen.

     
  • Andrei

    Andrei - 2015-07-27
    • status: open --> closed
    • Group: --> future
     

Log in to post a comment.