# HG changeset patch # User koda # Date 1295303095 -3600 # Node ID e7b1f0aaf36fa41a7d9a3ac3238596bd6e118ef7 # Parent 7f21c08fd7d2e0c022d9d8737a507f6d441e1ad9# Parent 03aa62a649780a032d3640c915c6d9508ff92c82 merge diff -r 03aa62a64978 -r e7b1f0aaf36f .hgtags --- a/.hgtags Mon Jan 17 01:44:15 2011 +0100 +++ b/.hgtags Mon Jan 17 23:24:55 2011 +0100 @@ -11,17 +11,10 @@ bb56f0682655b18f229be97085a409e3c76f578e hedgewars-0.8.1 fee68e3a303998fdfcc69f74775dc84a36f587fb 0.9.9 fee68e3a303998fdfcc69f74775dc84a36f587fb 0.9.9.1 -fd6c20cd90e33fa5e4f03e1c1f220b3eb14d169a Hedgewars-iOS-1.0 -fd6c20cd90e33fa5e4f03e1c1f220b3eb14d169a Hedgewars-iOS-1.0 -0000000000000000000000000000000000000000 Hedgewars-iOS-1.0 -0000000000000000000000000000000000000000 Hedgewars-iOS-1.0 81db3c85784b4f35c7ff1ef9a5d64f5bdd383f08 Hedgewars-iOS-1.0 -296ec09490d92a74619aa8595df1bbcfd0dff4e5 Hedgewars-iOS-1.0.1 -296ec09490d92a74619aa8595df1bbcfd0dff4e5 Hedgewars-iOS-1.0.1 -0000000000000000000000000000000000000000 Hedgewars-iOS-1.0.1 -0000000000000000000000000000000000000000 Hedgewars-iOS-1.0.1 3620607258cdc1213dce20cb6ad7872f6b8085e0 Hedgewars-iOS-1.0.1 adffb668f06e265b45d1e4aedc283e6f4e5ba7e8 Hedgewars-iOS-1.1 ede569bb76f389bd5dfbb7ebf68af3087e3e881c Hedgewars-iOS-1.2 a5735e877aae61cd705265e2f8c0c7ad08d45f0e Hedgewars-iOS-1.2.1 +29ab0d49c3e6e72a7633d0bd316ae533db15c65d 0.9.15-release 5ea3d182415e4327e7584b1aa68197931d232ac3 Hedgewars-iOS-1.2.2 diff -r 03aa62a64978 -r e7b1f0aaf36f CMakeLists.txt --- a/CMakeLists.txt Mon Jan 17 01:44:15 2011 +0100 +++ b/CMakeLists.txt Mon Jan 17 23:24:55 2011 +0100 @@ -77,7 +77,6 @@ set(CMAKE_OSX_ARCHITECTURES "i386;ppc7400") - #create universal binaries only when it's time to bundle the application, also build server IF(BUNDLE) set(WITH_SERVER true) @@ -86,7 +85,11 @@ set(CMAKE_CXX_COMPILER "g++-4.0") else() if(current_macosx_version MATCHES "10.6") - set(CMAKE_OSX_ARCHITECTURES "x86_64") + if(MACAPPSTORE) + set(CMAKE_OSX_ARCHITECTURES "x86_64;i386") + else() + set(CMAKE_OSX_ARCHITECTURES "x86_64") + endif() endif() endif() ELSE() diff -r 03aa62a64978 -r e7b1f0aaf36f QTfrontend/game.cpp --- a/QTfrontend/game.cpp Mon Jan 17 01:44:15 2011 +0100 +++ b/QTfrontend/game.cpp Mon Jan 17 23:24:55 2011 +0100 @@ -56,7 +56,7 @@ emit HaveRecord(true, demo); break; default: - if (gameState == gsInterrupted) emit HaveRecord(false, demo); + if (gameState == gsInterrupted || gameState == gsHalted) emit HaveRecord(false, demo); else if (gameState == gsFinished) emit HaveRecord(true, demo); } SetGameState(gsStopped); @@ -229,6 +229,10 @@ SetGameState(gsFinished); break; } + case 'H': { + SetGameState(gsHalted); + break; + } case 's': { int size = msg.size(); QString msgbody = QString::fromUtf8(msg.mid(2).left(size - 4)); @@ -250,8 +254,8 @@ { emit SendNet(msg); } - if (msg.at(1) != 's') - demo.append(msg); + if (msg.at(1) != 's') + demo.append(msg); } } } diff -r 03aa62a64978 -r e7b1f0aaf36f QTfrontend/game.h --- a/QTfrontend/game.h Mon Jan 17 01:44:15 2011 +0100 +++ b/QTfrontend/game.h Mon Jan 17 23:24:55 2011 +0100 @@ -35,7 +35,8 @@ gsInterrupted = 2, gsFinished = 3, gsStopped = 4, - gsDestroyed = 5 + gsDestroyed = 5, + gsHalted = 6 }; bool checkForDir(const QString & dir); diff -r 03aa62a64978 -r e7b1f0aaf36f QTfrontend/hwform.cpp --- a/QTfrontend/hwform.cpp Mon Jan 17 01:44:15 2011 +0100 +++ b/QTfrontend/hwform.cpp Mon Jan 17 23:24:55 2011 +0100 @@ -974,12 +974,13 @@ if (id == ID_PAGE_INGAME || // was room chief and the game was aborted (hwnet && hwnet->isRoomChief() && hwnet->isInRoom() && - (gameState == gsInterrupted || gameState == gsStopped || gameState == gsDestroyed))) { + (gameState == gsInterrupted || gameState == gsStopped || gameState == gsDestroyed || gameState == gsHalted))) { if (id == ID_PAGE_INGAME) GoBack(); Music(ui.pageOptions->CBEnableFrontendMusic->isChecked()); if (wBackground) wBackground->startAnimation(); if (hwnet) hwnet->gameFinished(); } + if (gameState == gsHalted) close(); }; } } diff -r 03aa62a64978 -r e7b1f0aaf36f hedgewars/hwengine.pas --- a/hedgewars/hwengine.pas Mon Jan 17 01:44:15 2011 +0100 +++ b/hedgewars/hwengine.pas Mon Jan 17 23:24:55 2011 +0100 @@ -157,8 +157,8 @@ cHasFocus:= true; {$ELSE} KeyPressChat(event.key.keysym.unicode); - SDL_MOUSEBUTTONDOWN: if event.button.button = SDL_BUTTON_WHEELDOWN then uKeys.wheelDown:= true; - SDL_MOUSEBUTTONUP: if event.button.button = SDL_BUTTON_WHEELUP then uKeys.wheelUp:= true; + SDL_MOUSEBUTTONDOWN: if event.button.button = SDL_BUTTON_WHEELDOWN then wheelDown:= true; + SDL_MOUSEBUTTONUP: if event.button.button = SDL_BUTTON_WHEELUP then wheelUp:= true; SDL_ACTIVEEVENT: if (event.active.state and SDL_APPINPUTFOCUS) <> 0 then cHasFocus:= event.active.gain = 1; diff -r 03aa62a64978 -r e7b1f0aaf36f hedgewars/uCommandHandlers.pas --- a/hedgewars/uCommandHandlers.pas Mon Jan 17 01:44:15 2011 +0100 +++ b/hedgewars/uCommandHandlers.pas Mon Jan 17 23:24:55 2011 +0100 @@ -23,27 +23,41 @@ procedure chQuit(var s: shortstring); const prevGState: TGameState = gsConfirm; begin -s:= s; // avoid compiler hint -if GameState <> gsConfirm then - begin + s:= s; // avoid compiler hint + if GameState <> gsConfirm then + begin prevGState:= GameState; GameState:= gsConfirm - end else - GameState:= prevGState + end else + GameState:= prevGState +end; + +procedure chForceQuit(var s: shortstring); +begin + s:= s; // avoid compiler hint + GameState:= gsConfirm; + ParseCommand('confirm', true); end; procedure chConfirm(var s: shortstring); begin -s:= s; // avoid compiler hint -if GameState = gsConfirm then + s:= s; // avoid compiler hint + if GameState = gsConfirm then begin - SendIPC('Q'); - GameState:= gsExit + SendIPC('Q'); + GameState:= gsExit end else ParseCommand('chat team', true); end; +procedure chHalt (var s: shortstring); +begin + s:= s; // avoid compiler hint + SendIPC('H'); + GameState:= gsExit +end; + procedure chCheckProto(var s: shortstring); var i, c: LongInt; begin @@ -581,7 +595,9 @@ RegisterVariable('grave' , vtCommand, @chGrave , false); RegisterVariable('hat' , vtCommand, @chSetHat , false); RegisterVariable('quit' , vtCommand, @chQuit , true ); + RegisterVariable('forcequit', vtCommand, @chForceQuit , true ); RegisterVariable('confirm' , vtCommand, @chConfirm , true ); + RegisterVariable('halt', vtCommand, @chHalt , true ); RegisterVariable('+speedup', vtCommand, @chSpeedup_p , true ); RegisterVariable('-speedup', vtCommand, @chSpeedup_m , true ); RegisterVariable('zoomin' , vtCommand, @chZoomIn , true ); diff -r 03aa62a64978 -r e7b1f0aaf36f hedgewars/uKeys.pas --- a/hedgewars/uKeys.pas Mon Jan 17 01:44:15 2011 +0100 +++ b/hedgewars/uKeys.pas Mon Jan 17 23:24:55 2011 +0100 @@ -40,47 +40,10 @@ procedure ControllerHatEvent(joy, hat, value: Byte); procedure ControllerButtonEvent(joy, button: Byte; pressed: Boolean); -var hideAmmoMenu: boolean; - wheelUp: boolean; - wheelDown: boolean; - - ControllerNumControllers: Integer; - ControllerEnabled: Integer; - ControllerNumAxes: array[0..5] of Integer; - //ControllerNumBalls: array[0..5] of Integer; - ControllerNumHats: array[0..5] of Integer; - ControllerNumButtons: array[0..5] of Integer; - ControllerAxes: array[0..5] of array[0..19] of Integer; - //ControllerBalls: array[0..5] of array[0..19] of array[0..1] of Integer; - ControllerHats: array[0..5] of array[0..19] of Byte; - ControllerButtons: array[0..5] of array[0..19] of Byte; - - DefaultBinds, CurrentBinds: TBinds; - - coeff: LongInt; -{$IFDEF HWLIBRARY} - leftClick: boolean; - middleClick: boolean; - rightClick: boolean; - - upKey: boolean; - downKey: boolean; - rightKey: boolean; - leftKey: boolean; - preciseKey: boolean; - - backspaceKey: boolean; - spaceKey: boolean; - enterKey: boolean; - tabKey: boolean; - - chatAction: boolean; - pauseAction: boolean; - {$IFDEF IPHONEOS} procedure setiPhoneBinds; {$ENDIF} -{$ENDIF} + implementation uses uConsole, uCommands, uMisc, uVariables, uConsts, uUtils, uDebug; @@ -109,7 +72,7 @@ // move cursor/camera // TODO: Scale on screen dimensions and/or axis value (game controller)? -movecursor(coeff * CursorMovementX, coeff * CursorMovementY); +movecursor(5 * CursorMovementX, 5 * CursorMovementY); k:= SDL_GetMouseState(nil, nil); @@ -139,8 +102,7 @@ {$IFDEF IPHONEOS} setiPhoneBinds(); -{$ENDIF} - +{$ELSE} // Controller(s) k:= j; // should we test k for hitting the limit? sounds rather unlikely to ever reach it for j:= 0 to Pred(ControllerNumControllers) do @@ -165,6 +127,18 @@ inc(k, 1); end; end; +{$ENDIF} + +// ctrl/cmd + w/q to close engine and/or frontend +{$IFDEF DARWIN} + if ((tkbdn[KeyNameToCode('left_meta')] = 1) or (tkbdn[KeyNameToCode('right_meta')] = 1)) then +{$ELSE} + if ((tkbdn[KeyNameToCode('left_ctrl')] = 1) or (tkbdn[KeyNameToCode('right_ctrl')] = 1)) then +{$ENDIF} + begin + if tkbdn[KeyNameToCode('q')] = 1 then ParseCommand ('halt', true) + else if tkbdn[KeyNameToCode('w')] = 1 then ParseCommand ('forcequit', true); + end; // now process strokes for i:= 0 to cKeyMaxIndex do @@ -222,8 +196,7 @@ {$IFDEF IPHONEOS} setiPhoneBinds(); -{$ENDIF} - +{$ELSE} // Controller(s) k:= j; // should we test k for hitting the limit? sounds rather unlikely to ever reach it for j:= 0 to Pred(ControllerNumControllers) do @@ -248,6 +221,7 @@ inc(k, 1); end; end; +{$ENDIF} for t:= 0 to cKeyMaxIndex do tkbd[i]:= tkbdn[i] @@ -502,7 +476,6 @@ begin wheelUp:= false; wheelDown:= false; - coeff:= 5; {$IFDEF HWLIBRARY} // this function is called by HW_allKeysUp so be careful diff -r 03aa62a64978 -r e7b1f0aaf36f hedgewars/uVariables.pas