# HG changeset patch # User unc0rr # Date 1231627854 0 # Node ID 89b536a3cf3c579d1c911a3308127ecc302bb540 # Parent 5e2189989fe8d03ddfeeada83f5350091b4dcaa3 Implement precise aiming when pressing left shift diff -r 5e2189989fe8 -r 89b536a3cf3c QTfrontend/binds.cpp --- a/QTfrontend/binds.cpp Sat Jan 10 17:58:05 2009 +0000 +++ b/QTfrontend/binds.cpp Sat Jan 10 22:50:54 2009 +0000 @@ -27,6 +27,7 @@ {"ljump", "return", QT_TRANSLATE_NOOP("binds", "jump"), false}, {"hjump", "backspace", QT_TRANSLATE_NOOP("binds", "jump"), false}, {"+attack", "space", QT_TRANSLATE_NOOP("binds", "attack"), false}, + {"+precise", "left_shift", QT_TRANSLATE_NOOP("binds", "precise aim"), false}, {"put", "mousel", QT_TRANSLATE_NOOP("binds", "put"), false}, {"switch", "tab", QT_TRANSLATE_NOOP("binds", "switch"), false}, {"findhh", "h", QT_TRANSLATE_NOOP("binds", "find hedgehog"), true}, diff -r 5e2189989fe8 -r 89b536a3cf3c QTfrontend/binds.h --- a/QTfrontend/binds.h Sat Jan 10 17:58:05 2009 +0000 +++ b/QTfrontend/binds.h Sat Jan 10 22:50:54 2009 +0000 @@ -21,7 +21,7 @@ #include -#define BINDS_NUMBER 35 +#define BINDS_NUMBER 36 struct BindAction { diff -r 5e2189989fe8 -r 89b536a3cf3c doc/Release.txt --- a/doc/Release.txt Sat Jan 10 17:58:05 2009 +0000 +++ b/doc/Release.txt Sat Jan 10 22:50:54 2009 +0000 @@ -7,5 +7,5 @@ 7. Make packages 8. Test packages 9. Upload (hedgewars.org, fireforge.net, gna.org) -10. Post news (hedgewars.org, fireforge.net, gna.org, etc.) +10. Post news (hedgewars.org, hedgewars forum, fireforge.net, gna.org, happypenguin, etc.) 11. Make tag (svn copy svn+ssh://unc0rr@svn.fireforge.net/svnroot/hedgewars/branches/0.9.7 svn+ssh://unc0rr@svn.fireforge.net/svnroot/hedgewars/tags/0.9.7 -m "Tag for 0.9.7 release") \ No newline at end of file diff -r 5e2189989fe8 -r 89b536a3cf3c doc/protocol.txt --- a/doc/protocol.txt Sat Jan 10 17:58:05 2009 +0000 +++ b/doc/protocol.txt Sat Jan 10 22:50:54 2009 +0000 @@ -4,6 +4,7 @@ 'r','R' -right, +right 'u','U' -up, +up 'd','D' -down, +down + 'z', 'Z' -precise, +precise 'N' срабатывание команды /nextturn 'S' /switch 's' + <текст> /say diff -r 5e2189989fe8 -r 89b536a3cf3c hedgewars/CCHandlers.inc --- a/hedgewars/CCHandlers.inc Sat Jan 10 17:58:05 2009 +0000 +++ b/hedgewars/CCHandlers.inc Sat Jan 10 22:50:54 2009 +0000 @@ -231,6 +231,23 @@ Message:= Message and not gm_Down end; +procedure chPrecise_p(var s: shortstring); +begin +if CheckNoTeamOrHH then exit; +bShowFinger:= false; +if not CurrentTeam^.ExtDriven then SendIPC('Z'); +with CurrentHedgehog^.Gear^ do + Message:= Message or gm_Precise +end; + +procedure chPrecise_m(var s: shortstring); +begin +if CheckNoTeamOrHH then exit; +if not CurrentTeam^.ExtDriven then SendIPC('z'); +with CurrentHedgehog^.Gear^ do + Message:= Message and not gm_Precise +end; + procedure chLJump(var s: shortstring); begin if CheckNoTeamOrHH then exit; diff -r 5e2189989fe8 -r 89b536a3cf3c hedgewars/HHHandlers.inc --- a/hedgewars/HHHandlers.inc Sat Jan 10 17:58:05 2009 +0000 +++ b/hedgewars/HHHandlers.inc Sat Jan 10 22:50:54 2009 +0000 @@ -403,9 +403,10 @@ if (Ammo^[CurSlot, CurAmmo].AmmoType = amRope) and ((Gear^.State and (gstMoving or gstHHJumping)) = gstMoving) then da:= 2 else da:= 1; -if ((Gear^.Message and gm_Up) <> 0) and (Gear^.Angle - da >= CurMinAngle) then dec(Gear^.Angle, da) -else -if ((Gear^.Message and gm_Down) <> 0) and (Gear^.Angle + da <= CurMaxAngle) then inc(Gear^.Angle, da); +if (((Gear^.Message and gm_Precise) = 0) or ((GameTicks mod 5) = 1)) then + if ((Gear^.Message and gm_Up) <> 0) and (Gear^.Angle - da >= CurMinAngle) then dec(Gear^.Angle, da) + else + if ((Gear^.Message and gm_Down) <> 0) and (Gear^.Angle + da <= CurMaxAngle) then inc(Gear^.Angle, da); end; procedure doStepHedgehog(Gear: PGear); forward; diff -r 5e2189989fe8 -r 89b536a3cf3c hedgewars/uConsole.pas --- a/hedgewars/uConsole.pas Sat Jan 10 17:58:05 2009 +0000 +++ b/hedgewars/uConsole.pas Sat Jan 10 22:50:54 2009 +0000 @@ -258,6 +258,8 @@ RegisterVariable('chat' , vtCommand, @chChat , true ); RegisterVariable('say' , vtCommand, @chSay , true ); RegisterVariable('ammomenu', vtCommand, @chAmmoMenu , false); +RegisterVariable('+precise', vtCommand, @chPrecise_p , false); +RegisterVariable('-precise', vtCommand, @chPrecise_m , false); RegisterVariable('+left' , vtCommand, @chLeft_p , false); RegisterVariable('-left' , vtCommand, @chLeft_m , false); RegisterVariable('+right' , vtCommand, @chRight_p , false); diff -r 5e2189989fe8 -r 89b536a3cf3c hedgewars/uConsts.pas --- a/hedgewars/uConsts.pas Sat Jan 10 17:58:05 2009 +0000 +++ b/hedgewars/uConsts.pas Sat Jan 10 22:50:54 2009 +0000 @@ -207,7 +207,8 @@ gm_Weapon = $00000400; // with param gm_Timer = $00000800; // with param gm_Animate= $00001000; // with param - gmAllStoppable = gm_Left or gm_Right or gm_Up or gm_Down or gm_Attack; + gm_Precise= $00002000; + gmAllStoppable = gm_Left or gm_Right or gm_Up or gm_Down or gm_Attack or gm_Precise; cMaxSlotIndex = 8; cMaxSlotAmmoIndex = 3; diff -r 5e2189989fe8 -r 89b536a3cf3c hedgewars/uIO.pas --- a/hedgewars/uIO.pas Sat Jan 10 17:58:05 2009 +0000 +++ b/hedgewars/uIO.pas Sat Jan 10 22:50:54 2009 +0000 @@ -231,6 +231,8 @@ 'u': ParseCommand('-up', true); 'D': ParseCommand('+down', true); 'd': ParseCommand('-down', true); + 'Z': ParseCommand('+precise', true); + 'z': ParseCommand('-precise', true); 'A': ParseCommand('+attack', true); 'a': ParseCommand('-attack', true); 'S': ParseCommand('switch', true);