aboutsummaryrefslogtreecommitdiffstats
path: root/src/screens
diff options
context:
space:
mode:
authorbrunzelchen <brunzelchen@b956fd51-792f-4845-bead-9b4dfca2ff2c>2010-03-15 21:14:51 +0000
committerbrunzelchen <brunzelchen@b956fd51-792f-4845-bead-9b4dfca2ff2c>2010-03-15 21:14:51 +0000
commitecaf172eeda812de19e1e93daa1b0fd27d6a4186 (patch)
tree084745235ce1668959cd6226a36b3c5280ab54d9 /src/screens
parent91d892149bdc487725e96a63aad8c37fc1f5798a (diff)
downloadusdx-ecaf172eeda812de19e1e93daa1b0fd27d6a4186.tar.gz
usdx-ecaf172eeda812de19e1e93daa1b0fd27d6a4186.tar.xz
usdx-ecaf172eeda812de19e1e93daa1b0fd27d6a4186.zip
bugfix: player selection on party player screen (the layout is still ugly)
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@2201 b956fd51-792f-4845-bead-9b4dfca2ff2c
Diffstat (limited to '')
-rw-r--r--src/screens/UScreenPartyPlayer.pas103
1 files changed, 57 insertions, 46 deletions
diff --git a/src/screens/UScreenPartyPlayer.pas b/src/screens/UScreenPartyPlayer.pas
index 3f9c0f77..a7f4d627 100644
--- a/src/screens/UScreenPartyPlayer.pas
+++ b/src/screens/UScreenPartyPlayer.pas
@@ -167,13 +167,17 @@ var
begin
repeat
InteractNext;
- until (Interactions[Interaction].Typ <> iButton) or (Button[Interactions[Interaction].Num].Visible);
+ until ((Interactions[Interaction].Typ = iSelectS) and
+ SelectsS[Interactions[Interaction].Num].Visible) or
+ (Button[Interactions[Interaction].Num].Visible);
end;
procedure IntPrev;
begin
repeat
InteractPrev;
- until (Interactions[Interaction].Typ <> iButton) or (Button[Interactions[Interaction].Num].Visible);
+ until ((Interactions[Interaction].Typ = iSelectS) and
+ SelectsS[Interactions[Interaction].Num].Visible) or
+ (Button[Interactions[Interaction].Num].Visible);
end;
begin
Result := true;
@@ -184,8 +188,10 @@ begin
else
SDL_ModState := 0;
- begin // Key Down
- // check normal keys
+ // Key Down
+ // check normal keys
+ if (Interactions[Interaction].Typ = iButton) then
+ begin
case CharCode of
Ord('0')..Ord('9'),
Ord('a')..Ord('z'),
@@ -193,144 +199,149 @@ begin
Ord(' '), Ord('-'), Ord('_'), Ord('!'), Ord(','), Ord('<'), Ord('/'),
Ord('*'), Ord('?'), Ord(''''), Ord('"'):
begin
- Button[Interaction].Text[0].Text := Button[Interaction].Text[0].Text +
- UCS4ToUTF8String(CharCode);
+ Button[Interactions[Interaction].Num].Text[0].Text :=
+ Button[Interactions[Interaction].Num].Text[0].Text + UCS4ToUTF8String(CharCode);
Exit;
end;
end;
+
// check special keys
case PressedKey of
// Templates for Names Mod
SDLK_F1:
if (SDL_ModState = KMOD_LALT) then
begin
- Ini.NameTemplate[0] := Button[Interaction].Text[0].Text;
+ Ini.NameTemplate[0] := Button[Interactions[Interaction].Num].Text[0].Text;
end
else
begin
- Button[Interaction].Text[0].Text := Ini.NameTemplate[0];
+ Button[Interactions[Interaction].Num].Text[0].Text := Ini.NameTemplate[0];
end;
SDLK_F2:
if (SDL_ModState = KMOD_LALT) then
begin
- Ini.NameTemplate[1] := Button[Interaction].Text[0].Text;
+ Ini.NameTemplate[1] := Button[Interactions[Interaction].Num].Text[0].Text;
end
else
begin
- Button[Interaction].Text[0].Text := Ini.NameTemplate[1];
+ Button[Interactions[Interaction].Num].Text[0].Text := Ini.NameTemplate[1];
end;
SDLK_F3:
if (SDL_ModState = KMOD_LALT) then
begin
- Ini.NameTemplate[2] := Button[Interaction].Text[0].Text;
+ Ini.NameTemplate[2] := Button[Interactions[Interaction].Num].Text[0].Text;
end
else
begin
- Button[Interaction].Text[0].Text := Ini.NameTemplate[2];
+ Button[Interactions[Interaction].Num].Text[0].Text := Ini.NameTemplate[2];
end;
SDLK_F4:
if (SDL_ModState = KMOD_LALT) then
begin
- Ini.NameTemplate[3] := Button[Interaction].Text[0].Text;
+ Ini.NameTemplate[3] := Button[Interactions[Interaction].Num].Text[0].Text;
end
else
begin
- Button[Interaction].Text[0].Text := Ini.NameTemplate[3];
+ Button[Interactions[Interaction].Num].Text[0].Text := Ini.NameTemplate[3];
end;
SDLK_F5:
if (SDL_ModState = KMOD_LALT) then
begin
- Ini.NameTemplate[4] := Button[Interaction].Text[0].Text;
+ Ini.NameTemplate[4] := Button[Interactions[Interaction].Num].Text[0].Text;
end
else
begin
- Button[Interaction].Text[0].Text := Ini.NameTemplate[4];
+ Button[Interactions[Interaction].Num].Text[0].Text := Ini.NameTemplate[4];
end;
SDLK_F6:
if (SDL_ModState = KMOD_LALT) then
begin
- Ini.NameTemplate[5] := Button[Interaction].Text[0].Text;
+ Ini.NameTemplate[5] := Button[Interactions[Interaction].Num].Text[0].Text;
end
else
begin
- Button[Interaction].Text[0].Text := Ini.NameTemplate[5];
+ Button[Interactions[Interaction].Num].Text[0].Text := Ini.NameTemplate[5];
end;
SDLK_F7:
if (SDL_ModState = KMOD_LALT) then
begin
- Ini.NameTemplate[6] := Button[Interaction].Text[0].Text;
+ Ini.NameTemplate[6] := Button[Interactions[Interaction].Num].Text[0].Text;
end
else
begin
- Button[Interaction].Text[0].Text := Ini.NameTemplate[6];
+ Button[Interactions[Interaction].Num].Text[0].Text := Ini.NameTemplate[6];
end;
SDLK_F8:
if (SDL_ModState = KMOD_LALT) then
begin
- Ini.NameTemplate[7] := Button[Interaction].Text[0].Text;
+ Ini.NameTemplate[7] := Button[Interactions[Interaction].Num].Text[0].Text;
end
else
begin
- Button[Interaction].Text[0].Text := Ini.NameTemplate[7];
+ Button[Interactions[Interaction].Num].Text[0].Text := Ini.NameTemplate[7];
end;
SDLK_F9:
if (SDL_ModState = KMOD_LALT) then
begin
- Ini.NameTemplate[8] := Button[Interaction].Text[0].Text;
+ Ini.NameTemplate[8] := Button[Interactions[Interaction].Num].Text[0].Text;
end
else
begin
- Button[Interaction].Text[0].Text := Ini.NameTemplate[8];
+ Button[Interactions[Interaction].Num].Text[0].Text := Ini.NameTemplate[8];
end;
SDLK_F10:
if (SDL_ModState = KMOD_LALT) then
begin
- Ini.NameTemplate[9] := Button[Interaction].Text[0].Text;
+ Ini.NameTemplate[9] := Button[Interactions[Interaction].Num].Text[0].Text;
end
else
begin
- Button[Interaction].Text[0].Text := Ini.NameTemplate[9];
+ Button[Interactions[Interaction].Num].Text[0].Text := Ini.NameTemplate[9];
end;
SDLK_F11:
if (SDL_ModState = KMOD_LALT) then
begin
- Ini.NameTemplate[10] := Button[Interaction].Text[0].Text;
+ Ini.NameTemplate[10] := Button[Interactions[Interaction].Num].Text[0].Text;
end
else
begin
- Button[Interaction].Text[0].Text := Ini.NameTemplate[10];
+ Button[Interactions[Interaction].Num].Text[0].Text := Ini.NameTemplate[10];
end;
SDLK_F12:
if (SDL_ModState = KMOD_LALT) then
begin
- Ini.NameTemplate[11] := Button[Interaction].Text[0].Text;
+ Ini.NameTemplate[11] := Button[Interactions[Interaction].Num].Text[0].Text;
end
else
begin
- Button[Interaction].Text[0].Text := Ini.NameTemplate[11];
+ Button[Interactions[Interaction].Num].Text[0].Text := Ini.NameTemplate[11];
end;
SDLK_BACKSPACE:
begin
- Button[Interaction].Text[0].DeleteLastLetter;
+ Button[Interactions[Interaction].Num].Text[0].DeleteLastLetter;
end;
+ end;
+ end;
- SDLK_ESCAPE:
- begin
- Ini.SaveNames;
- AudioPlayback.PlaySound(SoundLib.Back);
- FadeTo(@ScreenPartyOptions);
- end;
+ case PressedKey of
+ SDLK_ESCAPE:
+ begin
+ Ini.SaveNames;
+ AudioPlayback.PlaySound(SoundLib.Back);
+ FadeTo(@ScreenPartyOptions);
+ end;
- SDLK_RETURN: UpdateParty;
+ SDLK_RETURN: UpdateParty;
- // Up and Down could be done at the same time,
- // but I don't want to declare variables inside
- // functions like this one, called so many times
- SDLK_DOWN: IntNext;
- SDLK_UP: IntPrev;
- SDLK_RIGHT: begin
+ // Up and Down could be done at the same time,
+ // but I don't want to declare variables inside
+ // functions like this one, called so many times
+ SDLK_DOWN: IntNext;
+ SDLK_UP: IntPrev;
+ SDLK_RIGHT:
+ begin
if (Interaction in [0,2,8,14]) then
begin
AudioPlayback.PlaySound(SoundLib.Option);
@@ -339,7 +350,8 @@ begin
UpdateInterface;
end;
end;
- SDLK_LEFT: begin
+ SDLK_LEFT:
+ begin
if (Interaction in [0,2,8,14]) then
begin
AudioPlayback.PlaySound(SoundLib.Option);
@@ -348,7 +360,6 @@ begin
UpdateInterface;
end;
end;
- end;
end;
end;