Bug #796 more fixes for changing controls
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@5274 30fe4595-0a0c-4342-8851-515496e4dcbd Former-commit-id: 061ed046c5031c3e8fb96571cc0e515f9bc18a95 Former-commit-id: 8ceaa30795263cebe6e6d1be8b223d9820e90179
This commit is contained in:
parent
b359091140
commit
24dc38e16b
2 changed files with 29 additions and 7 deletions
|
@ -603,8 +603,28 @@ newrace(int index, tCarElt* car, tSituation *s)
|
||||||
void
|
void
|
||||||
resumerace(int index, tCarElt* car, tSituation *s)
|
resumerace(int index, tCarElt* car, tSituation *s)
|
||||||
{
|
{
|
||||||
|
const int idx = index - 1;
|
||||||
|
tControlCmd *cmd = HCtx[idx]->cmdControl;
|
||||||
|
|
||||||
// re-read the controls as they may have changed
|
// re-read the controls as they may have changed
|
||||||
HmReadPrefs(index);
|
HmReadPrefs(index);
|
||||||
|
|
||||||
|
// Setup Keyboard map (key code => index of the associated command in keyInfo / lastReadKeyState).
|
||||||
|
keyIndex = 0;
|
||||||
|
mapKeys.clear();
|
||||||
|
|
||||||
|
for (int i = 0; i < NbCmdControl; i++)
|
||||||
|
{
|
||||||
|
if (cmd[i].type == GFCTRL_TYPE_KEYBOARD)
|
||||||
|
{
|
||||||
|
if (mapKeys.find(cmd[i].val) == mapKeys.end())
|
||||||
|
{
|
||||||
|
mapKeys[cmd[i].val] = keyIndex;
|
||||||
|
keyIndex++;
|
||||||
|
}
|
||||||
|
}//KEYBOARD
|
||||||
|
|
||||||
|
}//for i
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
|
|
@ -610,10 +610,17 @@ ControlMenuInit(void *prevMenu, void *prefHdle, unsigned index, tGearChangeMode
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
/* Don't recreate screen if already done */
|
||||||
|
if (ScrHandle) {
|
||||||
|
if (PrevScrHandle != prevMenu)
|
||||||
|
// Need to re-create screen as parent has changed
|
||||||
|
GfuiScreenRelease(ScrHandle);
|
||||||
|
else
|
||||||
|
return ScrHandle;
|
||||||
|
}
|
||||||
|
|
||||||
ReloadValues = 1;
|
ReloadValues = 1;
|
||||||
|
|
||||||
PrevScrHandle = prevMenu;
|
PrevScrHandle = prevMenu;
|
||||||
|
|
||||||
PrefHdle = prefHdle;
|
PrefHdle = prefHdle;
|
||||||
SaveOnExit = saveOnExit;
|
SaveOnExit = saveOnExit;
|
||||||
|
|
||||||
|
@ -623,11 +630,6 @@ ControlMenuInit(void *prevMenu, void *prefHdle, unsigned index, tGearChangeMode
|
||||||
/* Set specified gear changing mode for current player */
|
/* Set specified gear changing mode for current player */
|
||||||
GearChangeMode = gearChangeMode;
|
GearChangeMode = gearChangeMode;
|
||||||
|
|
||||||
/* Don't recreate screen if already done */
|
|
||||||
if (ScrHandle) {
|
|
||||||
return ScrHandle;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Initialize joysticks array */
|
/* Initialize joysticks array */
|
||||||
for (int jsInd = 0; jsInd < GFCTRL_JOY_NUMBER; jsInd++)
|
for (int jsInd = 0; jsInd < GFCTRL_JOY_NUMBER; jsInd++)
|
||||||
Joystick[jsInd] = 0;
|
Joystick[jsInd] = 0;
|
||||||
|
|
Loading…
Reference in a new issue