# HG changeset patch # User Wuzzy # Date 1547059188 -3600 # Node ID ec0afe1c6024d9e86e1d558950009e0c7320c99b # Parent db646b3c0b95aeddde7840f40cec7d9f0dc4a62c Add control (default: X) to unselect current weapon diff -r db646b3c0b95 -r ec0afe1c6024 ChangeLog.txt --- a/ChangeLog.txt Wed Jan 09 19:10:11 2019 +0100 +++ b/ChangeLog.txt Wed Jan 09 19:39:48 2019 +0100 @@ -14,6 +14,7 @@ + The Specialists: Unlock game scheme + The Specialists: Add script parameter support to set custom specialists order + Display player name of own teams in online games + + Add control to unselect current weapon (default: X) * Use player-chosen team identity in campaigns and singleplayer missions * Fix last 2 characters in demo chat being missing * Fix homing bee flying weird if passing wrap world edge or target was placed beyond it diff -r db646b3c0b95 -r ec0afe1c6024 QTfrontend/binds.cpp --- a/QTfrontend/binds.cpp Wed Jan 09 19:10:11 2019 +0100 +++ b/QTfrontend/binds.cpp Wed Jan 09 19:39:48 2019 +0100 @@ -39,6 +39,7 @@ {"slot 8", "f8", QT_TRANSLATE_NOOP("binds", "slot 8"), NULL, NULL}, {"slot 9", "f9", QT_TRANSLATE_NOOP("binds", "slot 9"), NULL, NULL}, {"slot :", "f10", QT_TRANSLATE_NOOP("binds", "slot 10"), NULL, NULL}, + {"setweap ~", "x", QT_TRANSLATE_NOOP("binds", "unselect weapon"), NULL, NULL}, {"timer 1", "1", QT_TRANSLATE_NOOP("binds", "timer 1 sec"), NULL, QT_TRANSLATE_NOOP("binds (descriptions)", "Set the timer on bombs and timed weapons:")}, {"timer 2", "2", QT_TRANSLATE_NOOP("binds", "timer 2 sec"), NULL, NULL}, {"timer 3", "3", QT_TRANSLATE_NOOP("binds", "timer 3 sec"), NULL, NULL}, diff -r db646b3c0b95 -r ec0afe1c6024 QTfrontend/binds.h --- a/QTfrontend/binds.h Wed Jan 09 19:10:11 2019 +0100 +++ b/QTfrontend/binds.h Wed Jan 09 19:39:48 2019 +0100 @@ -22,9 +22,9 @@ #include #ifdef VIDEOREC -#define BINDS_NUMBER 51 +#define BINDS_NUMBER 52 #else -#define BINDS_NUMBER 50 +#define BINDS_NUMBER 51 #endif struct BindAction diff -r db646b3c0b95 -r ec0afe1c6024 README.md --- a/README.md Wed Jan 09 19:10:11 2019 +0100 +++ b/README.md Wed Jan 09 19:39:48 2019 +0100 @@ -63,6 +63,7 @@ * Tab: Switch hedgehog (after activating the utility) * 1-5: Set weapon timer * F1-F10: Weapon shortcuts +* X: Unselect weapon * M: Mission panel / game mode information. Hold pressed to display, release to hide * P: Pause, when playing offline, toggle automatic turn skipping when online * Esc: Quit with prompt diff -r db646b3c0b95 -r ec0afe1c6024 hedgewars/uCommandHandlers.pas --- a/hedgewars/uCommandHandlers.pas Wed Jan 09 19:10:11 2019 +0100 +++ b/hedgewars/uCommandHandlers.pas Wed Jan 09 19:39:48 2019 +0100 @@ -478,6 +478,11 @@ if CheckNoTeamOrHH then exit; + (* Use "~" (ASCII character 126) as synonym for NUL byte (=amNothing). + This is done to allow to add "setweap ~" in QTfrontend/binds.cpp because + the NUL byte would terminate the strings in C++ otherwise. *) + if (s[1] = '~') then + s[1]:= #0; if checkFails((s[0] = #1) and (s[1] <= char(High(TAmmoType))), 'Malformed /setweap', true) then exit; if not isExternalSource then diff -r db646b3c0b95 -r ec0afe1c6024 hedgewars/uInputHandler.pas --- a/hedgewars/uInputHandler.pas Wed Jan 09 19:10:11 2019 +0100 +++ b/hedgewars/uInputHandler.pas Wed Jan 09 19:39:48 2019 +0100 @@ -385,6 +385,7 @@ RegisterBind(DefaultBinds, 'f12', 'fullscr'); for i:= 1 to 10 do RegisterBind(DefaultBinds, 'f'+IntToStr(i), 'slot '+char(48+i)); + RegisterBind(DefaultBinds, 'x', 'setweap ~'); for i:= 1 to 5 do RegisterBind(DefaultBinds, IntToStr(i), 'timer '+IntToStr(i)); RegisterBind(DefaultBinds, _S'n', 'timer_u'); diff -r db646b3c0b95 -r ec0afe1c6024 hedgewars/uTypes.pas --- a/hedgewars/uTypes.pas Wed Jan 09 19:10:11 2019 +0100 +++ b/hedgewars/uTypes.pas Wed Jan 09 19:39:48 2019 +0100 @@ -168,6 +168,8 @@ amPiano, amGasBomb, amSineGun, amFlamethrower, amSMine, amHammer, // 48 amResurrector, amDrillStrike, amSnowball, amTardis, amLandGun, // 53 amIceGun, amKnife, amRubber, amAirMine, amCreeper, amMinigun); // 59 + // NOTE: If we ever reach 126 ammo types, make sure to skip ammo type number 126 because it's + // reserved as synonym for amNothing. See also chSetWeapon. // Different kind of crates that e.g. hedgehogs can pick up TCrateType = (HealthCrate, AmmoCrate, UtilityCrate);