# HG changeset patch # User koda # Date 1279418156 -7200 # Node ID 7058ca178f3be66fc8345cab6e190a372f9d55c2 # Parent ec90e573f47ae7c5d6239b4481a8e830b1d0aa1f switching hogs now works diff -r ec90e573f47a -r 7058ca178f3b hedgewars/PascalExports.pas --- a/hedgewars/PascalExports.pas Sun Jul 18 03:26:15 2010 +0200 +++ b/hedgewars/PascalExports.pas Sun Jul 18 03:55:56 2010 +0200 @@ -13,7 +13,7 @@ unit PascalExports; interface -uses uKeys, GLunit, uWorld, uMisc, uConsole, uTeams, uConsts, uChat, hwengine; +uses uKeys, GLunit, uWorld, uMisc, uConsole, uTeams, uConsts, uChat, uGears, hwengine; {$INCLUDE "config.inc"} @@ -119,6 +119,11 @@ backspaceKey:= true; end; +procedure HW_tab; cdecl; export; +begin + tabKey:= true; +end; + procedure HW_chat; cdecl; export; begin chatAction:= true; @@ -130,40 +135,11 @@ KeyPressChat(13); // enter - removes chat end; -procedure HW_tab; cdecl; export; -begin - switchAction:= true; -end; - procedure HW_pause; cdecl; export; begin pauseAction:= true; end; -procedure HW_cursorUp(coefficient:LongInt); cdecl; export; -begin - coeff:= coefficient; - cursorUp:= true; -end; - -procedure HW_cursorDown(coefficient:LongInt); cdecl; export; -begin - coeff:= coefficient; - cursorDown:= true; -end; - -procedure HW_cursorLeft(coefficient:LongInt); cdecl; export; -begin - coeff:= coefficient; - cursorLeft:= true; -end; - -procedure HW_cursorRight(coefficient:LongInt); cdecl; export; -begin - coeff:= coefficient; - cursorRight:= true; -end; - procedure HW_terminate(closeFrontend: boolean); cdecl; export; begin isTerminated:= true; @@ -220,6 +196,14 @@ exit( (CurrentHedgehog^.Ammo^[CurSlot, CurAmmo].Propz and ammoprop_Timerable) <> 0) end; +function HW_isWeaponSwitch: boolean cdecl; export; +begin + if CurAmmoGear <> nil then + exit(CurAmmoGear^.AmmoType = amSwitch) + else + exit(false) +end; + procedure HW_setGrenadeTime(time: LongInt); cdecl; export; begin ParseCommand('/timer ' + inttostr(time), true); diff -r ec90e573f47a -r 7058ca178f3b hedgewars/uKeys.pas --- a/hedgewars/uKeys.pas Sun Jul 18 03:26:15 2010 +0200 +++ b/hedgewars/uKeys.pas Sun Jul 18 03:55:56 2010 +0200 @@ -79,12 +79,7 @@ chatAction: boolean; pauseAction: boolean; - switchAction: boolean; - cursorUp: boolean; - cursorDown: boolean; - cursorLeft: boolean; - cursorRight: boolean; {$IFDEF IPHONEOS} procedure setiPhoneBinds; {$ENDIF} @@ -346,10 +341,6 @@ DefaultBinds[27]:= '+precise'; DefaultBinds[44]:= 'chat'; DefaultBinds[55]:= 'pause'; -DefaultBinds[66]:= '+cur_u'; -DefaultBinds[67]:= '+cur_d'; -DefaultBinds[68]:= '+cur_l'; -DefaultBinds[69]:= '+cur_r'; {$ELSE} DefaultBinds[KeyNameToCode('up')]:= '+up'; DefaultBinds[KeyNameToCode('down')]:= '+down'; @@ -391,12 +382,6 @@ tkbdn[44]:= ord(chatAction); tkbdn[55]:= ord(pauseAction); - //tkbdn[100]:= ord(switchAction); - - tkbdn[66]:= ord(cursorUp); - tkbdn[67]:= ord(cursorDown); - tkbdn[68]:= ord(cursorLeft); - tkbdn[69]:= ord(cursorRight); // set to false the keys that only need one stoke leftClick:= false; @@ -409,7 +394,6 @@ chatAction:= false; pauseAction:= false; - //switchAction:= false; end; {$ENDIF} @@ -534,14 +518,6 @@ // other key emulation chatAction:= false; pauseAction:= false; - switchAction:= false; - - // cursor emulation - cursorUp:= false; - cursorDown:= false; - cursorLeft:= false; - cursorRight:= false; - {$ENDIF} end; diff -r ec90e573f47a -r 7058ca178f3b project_files/HedgewarsMobile/Classes/OverlayViewController.h --- a/project_files/HedgewarsMobile/Classes/OverlayViewController.h Sun Jul 18 03:26:15 2010 +0200 +++ b/project_files/HedgewarsMobile/Classes/OverlayViewController.h Sun Jul 18 03:55:56 2010 +0200 @@ -22,6 +22,7 @@ // ths touch section CGFloat initialDistanceForPinching; + CGPoint startingPoint; BOOL isSegmentVisible; // the sdl window underneath diff -r ec90e573f47a -r 7058ca178f3b project_files/HedgewarsMobile/Classes/OverlayViewController.m --- a/project_files/HedgewarsMobile/Classes/OverlayViewController.m Sun Jul 18 03:26:15 2010 +0200 +++ b/project_files/HedgewarsMobile/Classes/OverlayViewController.m Sun Jul 18 03:55:56 2010 +0200 @@ -326,8 +326,9 @@ doDim(); switch ([allTouches count]) { - case 1: + case 1: removeConfirmationInput(); + startingPoint = [[[allTouches allObjects] objectAtIndex:0] locationInView:self.view]; if (2 == [[[allTouches allObjects] objectAtIndex:0] tapCount]) HW_zoomReset(); break; @@ -460,6 +461,8 @@ } else { DLog(@"x: %f y: %f -> X:%d Y:%d", currentPosition.x, currentPosition.y, HWX(currentPosition.x), HWY(currentPosition.y)); HW_setCursor(HWX(currentPosition.x), HWY(currentPosition.y)); + if (HW_isWeaponSwitch()) + HW_tab(); } break; case 2: diff -r ec90e573f47a -r 7058ca178f3b project_files/HedgewarsMobile/Classes/PascalImports.h --- a/project_files/HedgewarsMobile/Classes/PascalImports.h Sun Jul 18 03:26:15 2010 +0200 +++ b/project_files/HedgewarsMobile/Classes/PascalImports.h Sun Jul 18 03:55:56 2010 +0200 @@ -50,11 +50,6 @@ void HW_tab(void); void HW_pause(void); - void HW_cursorUp(int); - void HW_cursorDown(int); - void HW_cursorLeft(int); - void HW_cursorRight(int); - void HW_terminate(BOOL andCloseFrontend); void HW_setLandscape(BOOL rotate); @@ -64,6 +59,7 @@ BOOL HW_isAmmoOpen(void); BOOL HW_isWeaponRequiringClick(void); BOOL HW_isWeaponTimerable(void); + BOOL HW_isWeaponSwitch(void); void HW_setGrenadeTime(int time);