[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [freesci-develop] game selection screen
From: |
Hugues Valois |
Subject: |
Re: [freesci-develop] game selection screen |
Date: |
Thu, 18 Sep 2003 00:20:25 -0700 |
Hello all,
Here are some details about the game selection screen I mentioned last week.
Here are the links first:
Screenshot: http://hugues.dnsalias.com/data/freesci/game_select.gif
Win32 binary: http://hugues.dnsalias.com/data/freesci/freesci.zip
Source changes: http://hugues.dnsalias.com/data/freesci/freesci_changes.zip
These are hosted on my home server, it is not up 24/7 so if it's not
working, please try again later.
Current functionality
---------------------
Game selection screen is only invoked if no game is specified as command
line parameter when invoking FreeSCI.
Game list reflects the contents of the FreeSCI config file. Since the config
file does not allow names to have spaces, the underscore character is
automatically replaced with a space character. The game list is
alphabetically ordered.
Up/Down/PgUp/PgDn/Tab/ESC/ENTER are used to navigate, mouse is not currently
supported.
Game selection screen is scaled according to value specified in config file.
Implementation details
----------------------
When game selection screen comes up, no SCI resources are available at this
time, so many functions are difficult or impossible to reuse because they
require a resource manager
Graphics driver is initialized for the game selection screen, then destroyed
and then proceeds with the regular initialization code for the selected
game. This is needed because the initialization settings for the game are
not known until that game is selected. I have reused what I could, but some
initialization functions for the game selection screen I copied and edited
from the regular initialization functions. I wanted to minimize changes to
existing initialization code (dont want to break it).
The screen is drawn using some game selection specific high level functions
that talk to the graphics driver (no widgets, again, no resource manager).
Fonts are created dynamically in C code (because no resources means no fonts
to load).
Known bugs
----------
Graphics driver initialization problems in full screen mode.
Future ideas
------------
Add/Edit/Remove buttons to allow editing of the FreeSCI config file. This
requires more UI and also the ability to serialize the config structure back
to disk, with minimal loss of information (for example comments would be
lost).
Scan for games. There could be a button that clears the game list and
recreates it based on the resources found in the folders that were scanned.
The name for the games can be assigned arbitrarily if it's not possible to
detect them. This is basically an easy way to create a new config file, and
the user can then use the edit/remove buttons to fine tune the results.
Mouse support.
hugues
_________________________________________________________________
Express yourself with MSN Messenger 6.0 -- download now!
http://www.msnmessenger-download.com/tracking/reach_general