diff -r 53ffc8853008 -r d8e68cbca7ee hedgewars/uTeams.pas --- a/hedgewars/uTeams.pas Mon Jun 04 21:32:30 2012 +0400 +++ b/hedgewars/uTeams.pas Thu Jun 07 17:42:32 2012 +0400 @@ -248,8 +248,6 @@ FollowGear:= Gear end; -ResetKbd; - if (GameFlags and gfDisableWind) = 0 then begin cWindSpeed:= rndSign(GetRandomf * 2 * cMaxWindSpeed); @@ -554,22 +552,33 @@ end; procedure chBind(var id: shortstring); -var s: shortstring; +var KeyName, Modifier, tmp: shortstring; b: LongInt; begin -s:= ''; +KeyName:= ''; +Modifier:= ''; + if CurrentTeam = nil then exit; -SplitBySpace(id, s); -if s[1]='"' then - Delete(s, 1, 1); -if s[byte(s[0])]='"' then - Delete(s, byte(s[0]), 1); -b:= KeyNameToCode(id); + +if(Pos('mod:', id) <> 0)then + begin + tmp:= ''; + SplitBySpace(id, tmp); + Modifier:= id; + id:= tmp; + end; + +SplitBySpace(id, KeyName); +if KeyName[1]='"' then + Delete(KeyName, 1, 1); +if KeyName[byte(KeyName[0])]='"' then + Delete(KeyName, byte(KeyName[0]), 1); +b:= KeyNameToCode(id, Modifier); if b = 0 then OutError(errmsgUnknownVariable + ' "' + id + '"', false) else - CurrentTeam^.Binds[b]:= s + CurrentTeam^.Binds[b]:= KeyName; end; procedure chTeamGone(var s:shortstring);