#14 closed enhancement (fixed)
Add a game start dialog
Reported by: | Henrik Heimbuerger | Owned by: | Fabian Rohn |
---|---|---|---|
Priority: | major | Milestone: | MS1: First release (1.0.0) |
Component: | ui | Version: | pre-1.0 |
Keywords: | game start, initialization | Cc: |
Description (last modified by )
After configuring the game in the player view, the user should be able to start a game using a toolbar button.
This should invoke a game start dialog that shows the game startup process in multiple phases. Depending on the game configuration, this might also require interaction with the user.
Which phases are required needs to be determined, but definitely comprises of:
1. Initialisation of input devices, for example Wiimotes have to be connected to the system if they haven't before.
2. Initialisation of the specific track controller, for example when using 42 for the first time (or maybe always?), the cars have to be given unique IDs.
- Some kind of preparation phase, so all players are ready to start the race. This could f.e. be visualised with traffic lights.
Change History (28)
comment:1 Changed 17 years ago by
Milestone: | → MS1: First usable version |
---|---|
Type: | defect → enhancement |
comment:2 Changed 17 years ago by
Owner: | changed from somebody to Fabian Rohn |
---|---|
Status: | new → assigned |
comment:3 Changed 17 years ago by
comment:4 Changed 17 years ago by
Component: | unspecified → ui |
---|---|
Priority: | major → blocker |
comment:5 Changed 17 years ago by
Description: | modified (diff) |
---|
Steps one and two are no longer necessary under the new design and have been crossed out.
The new expected behaviour of the game start dialog is:
- Check if all players have a non-empty name and a selected car. Abort and report if not.
- Check if all players have an input device that is connected (InputDeviceManager has to be asked for the ID). Abort and report if not.
- Check if all players have a technology that is connected and configured (TechnologyConfigurationManager has to be asked for the ID). Abort and report if not.
- Check if all technologies are compatible with the used track type (e.g. no BlueRider on digital tracks). Abort and report if not.
- Switch the active perspective to the race perspective.
- Show the staging lights, and wait until they are done.
- Start the RaceEngine.
comment:6 Changed 17 years ago by
The two modes have been added to the TrackWidget, but please remember to remove the internal animation thread (DEBUGanimationTimer) that is started in TrackWidget.setTrack() when the animation is triggered by the RaceEngine.
comment:7 Changed 17 years ago by
Status: | assigned → accepted |
---|
comment:8 Changed 17 years ago by
Should be obvious, but of course the action also has to check whether players have been defined at all.
comment:9 Changed 17 years ago by
Priority: | blocker → major |
---|
comment:10 Changed 17 years ago by
comment:11 Changed 17 years ago by
New commit by frohn (revision [227]):
[Partial fix for ticket #14] Start Race Actions opens a RaceValidationDialog?
An annotation describes each validation method and represents a label for every single one in the Validation Dialog.
comment:12 Changed 17 years ago by
comment:13 Changed 17 years ago by
New commit by frohn (revision [229]):
[Fix for ticket #14 and #64] Start- and StopRaceAction? inherit from union parent (abstract class RaceControl?)
This solution has the effect that both action get the same RaceEngine? and the code is well arranged and minimized.
comment:14 Changed 17 years ago by
Although the UI should prevent this from occuring in the first place, the dialog should probably also check that no device or connector is assigned to more than one player (i.e. two players share an input device or connector).
comment:15 Changed 17 years ago by
comment:16 Changed 17 years ago by
Bug: It's currently possible to start a race without a track. This results in a NullReferenceException?.
comment:17 Changed 17 years ago by
Bug: It's currently possible to start a race where two players have the same CarController.
comment:18 Changed 17 years ago by
comment:19 Changed 17 years ago by
comment:20 Changed 16 years ago by
comment:21 Changed 16 years ago by
New commit by frohn (revision [403]):
[Fix for ticket #14] Added a JavaDocs? to the TrafficLightsDialog?
comment:22 Changed 16 years ago by
comment:23 Changed 16 years ago by
comment:24 Changed 16 years ago by
New commit by hheimbuerger (revision [422]):
[Partial fix for ticket #14] Added some workarounds to avoid the traffic lights crashing the driving agents.
The driving agents can't be poll()ed until they are activated(). However, with the traffic lights, the TrackWidget is drawn (and therefore poll()s the controller) before the race has been started (and therefore the controllers activate()d).
Some IFs have been added to avoid in crash in that situation.
comment:25 Changed 16 years ago by
The traffic lights could now be reintegrated. I'm pretty sure all remaining problems are not caused by the TrackWidget.
But to be honest, I'd just leave it out. There are too many open issues that can't be fixed in the remaining time.
Or convert the traffic lights to a regular dialog. That might remove some problems -- or maybe not. I had no success whatsoever with my attempts going in that direction.
comment:26 Changed 16 years ago by
comment:27 Changed 16 years ago by
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
The start race dialog in the form of the TrafficLightsDialog? has been implemented, but is not used in the current version.
comment:28 Changed 16 years ago by
New commit by frohn (revision [478]):
[Related to ticket #14] Resolved a warning in the TrafficLightsDialog?
New commit by frohn (revision [79]):
[Partial fix for ticket #14] First Skeleton of the RaceStart? dialog with a progress bar added.