# HG changeset patch # User koda # Date 1279377314 -7200 # Node ID bc35f8fee587e427de3945dd153d07692fffa812 # Parent 2477029463edf2ece04a2542358a0944cd07fdaf aim now starts slow and then moves faster diff -r 2477029463ed -r bc35f8fee587 hedgewars/PascalExports.pas --- a/hedgewars/PascalExports.pas Sat Jul 17 06:56:39 2010 +0200 +++ b/hedgewars/PascalExports.pas Sat Jul 17 16:35:14 2010 +0200 @@ -63,6 +63,7 @@ rightKey:= false; upKey:= false; downKey:= false; + preciseKey:= false; end; procedure HW_otherKeysUp; cdecl; export; @@ -88,6 +89,11 @@ rightKey:= true; end; +procedure HW_preciseSet(status:boolean); cdecl; export; +begin + preciseKey:= status; +end; + procedure HW_aimUp; cdecl; export; begin upKey:= true; diff -r 2477029463ed -r bc35f8fee587 hedgewars/uKeys.pas --- a/hedgewars/uKeys.pas Sat Jul 17 06:56:39 2010 +0200 +++ b/hedgewars/uKeys.pas Sat Jul 17 16:35:14 2010 +0200 @@ -70,7 +70,8 @@ downKey: boolean; rightKey: boolean; leftKey: boolean; - + preciseKey: boolean; + backspaceKey: boolean; spaceKey: boolean; enterKey: boolean; @@ -342,6 +343,7 @@ DefaultBinds[24]:= '+down'; DefaultBinds[25]:= '+left'; DefaultBinds[26]:= '+right'; +DefaultBinds[27]:= '+precise'; DefaultBinds[44]:= 'chat'; DefaultBinds[55]:= 'pause'; DefaultBinds[66]:= '+cur_u'; @@ -380,6 +382,7 @@ tkbdn[24]:= ord(downKey); tkbdn[25]:= ord(leftKey); tkbdn[26]:= ord(rightKey); + tkbdn[27]:= ord(preciseKey); tkbdn[ 8]:= ord(backspaceKey); tkbdn[ 9]:= ord(tabKey); @@ -520,6 +523,7 @@ downKey:= false; rightKey:= false; leftKey:= false; + preciseKey:= false; // action key emulation backspaceKey:= false; diff -r 2477029463ed -r bc35f8fee587 project_files/HedgewarsMobile/Classes/InGameMenuViewController.m --- a/project_files/HedgewarsMobile/Classes/InGameMenuViewController.m Sat Jul 17 06:56:39 2010 +0200 +++ b/project_files/HedgewarsMobile/Classes/InGameMenuViewController.m Sat Jul 17 16:35:14 2010 +0200 @@ -158,9 +158,10 @@ #pragma mark actionSheet methods -(void) actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger) buttonIndex { if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone){ + CGRect screen = [[UIScreen mainScreen] bounds]; [UIView beginAnimations:@"table width less" context:NULL]; [UIView setAnimationDuration:0.2]; - self.view.frame = CGRectMake(280, 0, 200, 170); + self.view.frame = CGRectMake(screen.size.height-200, 0, 200, 170); [UIView commitAnimations]; } diff -r 2477029463ed -r bc35f8fee587 project_files/HedgewarsMobile/Classes/OverlayViewController.m --- a/project_files/HedgewarsMobile/Classes/OverlayViewController.m Sat Jul 17 06:56:39 2010 +0200 +++ b/project_files/HedgewarsMobile/Classes/OverlayViewController.m Sat Jul 17 16:35:14 2010 +0200 @@ -183,6 +183,9 @@ case 1: case 2: case 3: + [NSObject cancelPreviousPerformRequestsWithTarget:self + selector:@selector(unsetPreciseStatus) + object:nil]; HW_walkingKeysUp(); break; case 4: @@ -218,9 +221,13 @@ HW_walkRight(); break; case 2: + [self performSelector:@selector(unsetPreciseStatus) withObject:nil afterDelay:0.8]; + HW_preciseSet(YES); HW_aimUp(); break; case 3: + [self performSelector:@selector(unsetPreciseStatus) withObject:nil afterDelay:0.8]; + HW_preciseSet(YES); HW_aimDown(); break; case 4: @@ -249,6 +256,10 @@ } } +-(void) unsetPreciseStatus { + HW_preciseSet(NO); +} + // present a further check before closing game -(void) actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger) buttonIndex { if ([actionSheet cancelButtonIndex] != buttonIndex) diff -r 2477029463ed -r bc35f8fee587 project_files/HedgewarsMobile/Classes/PascalImports.h --- a/project_files/HedgewarsMobile/Classes/PascalImports.h Sat Jul 17 06:56:39 2010 +0200 +++ b/project_files/HedgewarsMobile/Classes/PascalImports.h Sat Jul 17 16:35:14 2010 +0200 @@ -39,6 +39,8 @@ void HW_walkRight(void); void HW_aimUp(void); void HW_aimDown(void); + void HW_preciseSet(BOOL status); + void HW_shoot(void); void HW_jump(void); void HW_backjump(void); @@ -53,14 +55,15 @@ void HW_cursorLeft(int); void HW_cursorRight(int); - void HW_terminate(BOOL); + void HW_terminate(BOOL andCloseFrontend); - void HW_setLandscape(BOOL); + void HW_setLandscape(BOOL rotate); void HW_setCursor(int x, int y); void HW_saveCursor(BOOL reset); BOOL HW_isAmmoOpen(void); BOOL HW_isWeaponRequiringClick(void); + #ifdef __cplusplus } #endif