# HG changeset patch # User Medo # Date 1338670449 -7200 # Node ID b66eef8c8092d121a07321ab44f4c1f8c0c03030 # Parent 8d1d6adf5f821489ffdc3db2dfc2cbc6f07ea410# Parent 0b3b306f129ae57d4def95f355ec56469c616d58 Merge diff -r 8d1d6adf5f82 -r b66eef8c8092 hedgewars/SDLh.pas --- a/hedgewars/SDLh.pas Sat Jun 02 14:27:09 2012 +0200 +++ b/hedgewars/SDLh.pas Sat Jun 02 22:54:09 2012 +0200 @@ -968,6 +968,10 @@ function SDL_getenv(const text: PChar): PChar; cdecl; external SDLLibName; {$ENDIF} +{$IFDEF ANDROID} +function Android_JNI_getDensity(): Single; cdecl; external SDLLibName; +{$ENDIF} + {* Compatibility between SDL-1.2 and SDL-1.3 *} procedure SDL_WarpMouse(x, y: Word); {$IFDEF SDL13}inline{$ELSE}cdecl; external SDLLibName{$ENDIF}; function SDL_GetKeyState(numkeys: PLongInt): PByteArray; cdecl; external SDLLibName {$IFDEF SDL13} name 'SDL_GetKeyboardState'{$ENDIF}; diff -r 8d1d6adf5f82 -r b66eef8c8092 hedgewars/uGears.pas --- a/hedgewars/uGears.pas Sat Jun 02 14:27:09 2012 +0200 +++ b/hedgewars/uGears.pas Sat Jun 02 22:54:09 2012 +0200 @@ -363,11 +363,11 @@ FreeActionsList; // could send -left, -right and similar commands, so should be called before /nextturn - ParseCommand('/nextturn', true); SwitchHedgehog; AfterSwitchHedgehog; - bBetweenTurns:= false + bBetweenTurns:= false; + ParseCommand('/nextturn', true) end; step:= Low(step) end; diff -r 8d1d6adf5f82 -r b66eef8c8092 hedgewars/uGearsRender.pas --- a/hedgewars/uGearsRender.pas Sat Jun 02 14:27:09 2012 +0200 +++ b/hedgewars/uGearsRender.pas Sat Jun 02 22:54:09 2012 +0200 @@ -321,8 +321,8 @@ // reached edge of land. assume infinite beam. Extend it way out past camera if ((ty and LAND_HEIGHT_MASK) <> 0) or ((tx and LAND_WIDTH_MASK) <> 0) then begin - tx:= round(lx + ax * (LAND_WIDTH div 4)); - ty:= round(ly + ay * (LAND_WIDTH div 4)); + tx:= round(lx + ax * (LAND_WIDTH div 2)); + ty:= round(ly + ay * (LAND_WIDTH div 2)); end; //if (abs(lx-tx)>8) or (abs(ly-ty)>8) then diff -r 8d1d6adf5f82 -r b66eef8c8092 hedgewars/uWorld.pas --- a/hedgewars/uWorld.pas Sat Jun 02 14:27:09 2012 +0200 +++ b/hedgewars/uWorld.pas Sat Jun 02 22:54:09 2012 +0200 @@ -214,8 +214,13 @@ procedure InitTouchInterface; begin {$IFDEF USE_TOUCH_INTERFACE} + //positioning of the buttons +{$IFDEF ANDROID} +buttonScale:= Android_JNI_getDensity()/cDefaultZoomLevel; +{$ELSE} buttonScale:= 1.5/cDefaultZoomLevel; +{$ENDIF} with JumpWidget do diff -r 8d1d6adf5f82 -r b66eef8c8092 project_files/Android-build/SDL-android-project/jni/SDL/src/core/android/SDL_android.cpp --- a/project_files/Android-build/SDL-android-project/jni/SDL/src/core/android/SDL_android.cpp Sat Jun 02 14:27:09 2012 +0200 +++ b/project_files/Android-build/SDL-android-project/jni/SDL/src/core/android/SDL_android.cpp Sat Jun 02 22:54:09 2012 +0200 @@ -638,6 +638,21 @@ return Android_JNI_FileClose(ctx, true); } +/******************************************************************************* + Functions called by the hwengine into Java +*******************************************************************************/ + +extern "C" float Android_JNI_getDensity(){ + jmethodID mid; + jfloat density; + //SDLActivity.getDensity() + mid = mEnv->GetStaticMethodID(mActivityClass, "getDensity", "()F"); + if(!mid) return 1.5f; + density = mEnv->CallStaticFloatMethod(mActivityClass, mid); + return density; + +} + #endif /* __ANDROID__ */ /* vi: set ts=4 sw=4 expandtab: */ diff -r 8d1d6adf5f82 -r b66eef8c8092 project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/SDLActivity.java --- a/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/SDLActivity.java Sat Jun 02 14:27:09 2012 +0200 +++ b/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/SDLActivity.java Sat Jun 02 22:54:09 2012 +0200 @@ -24,6 +24,7 @@ import android.os.Bundle; import android.os.Handler; import android.os.Message; +import android.util.DisplayMetrics; import android.util.Log; import android.view.KeyEvent; import android.view.MotionEvent; @@ -401,6 +402,11 @@ mAudioTrack = null; } } + + public static float getDensity(){ + DisplayMetrics dm = SDLActivity.getContext().getResources().getDisplayMetrics(); + return dm.density; + } } /** diff -r 8d1d6adf5f82 -r b66eef8c8092 share/hedgewars/Data/Missions/Training/Basic_Training_-_Bazooka.lua --- a/share/hedgewars/Data/Missions/Training/Basic_Training_-_Bazooka.lua Sat Jun 02 14:27:09 2012 +0200 +++ b/share/hedgewars/Data/Missions/Training/Basic_Training_-_Bazooka.lua Sat Jun 02 22:54:09 2012 +0200 @@ -111,11 +111,11 @@ -- Note that there are 1000 ticks within one second. -- You shouldn't try to calculate too complicated -- code here as this might slow down your game. -function onGameTick() +function onGameTick20() -- If time's up, set the game to be lost. -- We actually check the time to be "1 ms" as it -- will be at "0 ms" right at the start of the game. - if TurnTimeLeft == 1 and score < score_goal then + if TurnTimeLeft < 40 and TurnTimeLeft > 0 and score < score_goal then game_lost = true -- ... and show a short message. ShowMission(loc("Bazooka Training"), loc("Aiming Practice"), loc("Oh no! Time's up! Just try again."), -amSkip, 0) @@ -133,7 +133,7 @@ EndGame() else -- ... or just lower the timer by 1. - end_timer = end_timer - 1 + end_timer = end_timer - 20 -- Reset the time left to stop the timer TurnTimeLeft = time_goal end @@ -150,8 +150,8 @@ -- This function is called when a new gear is added. -- We don't need it for this training, so we can -- keep it empty. -function onGearAdd(gear) -end +-- function onGearAdd(gear) +-- end -- This function is called before a gear is destroyed. -- We use it to count the number of targets destroyed. diff -r 8d1d6adf5f82 -r b66eef8c8092 share/hedgewars/Data/Missions/Training/Basic_Training_-_Cluster_Bomb.lua --- a/share/hedgewars/Data/Missions/Training/Basic_Training_-_Cluster_Bomb.lua Sat Jun 02 14:27:09 2012 +0200 +++ b/share/hedgewars/Data/Missions/Training/Basic_Training_-_Cluster_Bomb.lua Sat Jun 02 22:54:09 2012 +0200 @@ -63,9 +63,9 @@ end -function onGameTick() +function onGameTick20() - if TurnTimeLeft == 1 and scored < 12 and game_lost == false then + if TurnTimeLeft < 40 and TurnTimeLeft > 0 and scored < 12 and game_lost == false then game_lost = true ShowMission(loc("Cluster Bomb Training"), loc("Aiming Practice"), loc("Oh no! Time's up! Just try again."), -amSkip, 0) SetHealth(player, 0) @@ -76,7 +76,7 @@ if end_timer == 0 then EndGame() else - end_timer = end_timer - 1 + end_timer = end_timer - 20 TurnTimeLeft = time_goal end end @@ -87,8 +87,8 @@ ParseCommand("setweap " .. string.char(amClusterBomb)) end -function onGearAdd(gear) -end +--function onGearAdd(gear) +--end function onGearDamage(gear, damage) @@ -120,4 +120,4 @@ end function onGearDelete(gear) -end \ No newline at end of file +end diff -r 8d1d6adf5f82 -r b66eef8c8092 share/hedgewars/Data/Missions/Training/Basic_Training_-_Grenade.lua --- a/share/hedgewars/Data/Missions/Training/Basic_Training_-_Grenade.lua Sat Jun 02 14:27:09 2012 +0200 +++ b/share/hedgewars/Data/Missions/Training/Basic_Training_-_Grenade.lua Sat Jun 02 22:54:09 2012 +0200 @@ -114,11 +114,11 @@ -- Note that there are 1000 ticks within one second. -- You shouldn't try to calculate too complicated -- code here as this might slow down your game. -function onGameTick() +function onGameTick20() -- If time's up, set the game to be lost. -- We actually check the time to be "1 ms" as it -- will be at "0 ms" right at the start of the game. - if TurnTimeLeft == 1 and score < score_goal then + if TurnTimeLeft < 40 and TurnTimeLeft > 0 and score < score_goal then game_lost = true -- ... and show a short message. ShowMission(loc("Grenade Training"), loc("Aiming Practice"), loc("Oh no! Time's up! Just try again."), -amSkip, 0) @@ -145,7 +145,7 @@ end else -- ... or just lower the timer by 1. - end_timer = end_timer - 1 + end_timer = end_timer - 20 -- Reset the time left to stop the timer TurnTimeLeft = time_goal end @@ -162,8 +162,8 @@ -- This function is called when a new gear is added. -- We don't need it for this training, so we can -- keep it empty. -function onGearAdd(gear) -end +-- function onGearAdd(gear) +-- end -- This function is called before a gear is destroyed. -- We use it to count the number of targets destroyed. diff -r 8d1d6adf5f82 -r b66eef8c8092 share/hedgewars/Data/Missions/Training/Basic_Training_-_Rope.lua --- a/share/hedgewars/Data/Missions/Training/Basic_Training_-_Rope.lua Sat Jun 02 14:27:09 2012 +0200 +++ b/share/hedgewars/Data/Missions/Training/Basic_Training_-_Rope.lua Sat Jun 02 22:54:09 2012 +0200 @@ -128,8 +128,8 @@ ParseCommand( "setweap " .. string.char( amRope ) ) -- Set the default weapon to Rope end -function onGameTick() - if TurnTimeLeft == 1 then -- Round starts at 0, so we check if the round is finished by using 1 +function onGameTick20() + if TurnTimeLeft < 40 and TurnTimeLeft > 0 then -- Round starts at 0, so we check if the round is finished by using 1 GameLost = true -- You lost the game Info( "Aiming Practice", "You did not make it in time, try again!", -amSkip ) SetHealth( Player, 0 ) -- Kill the player so he can't keep moving! @@ -151,7 +151,7 @@ WaitTime = -1 else - WaitTime = WaitTime - 1 + WaitTime = WaitTime - 20 end end @@ -161,7 +161,7 @@ FollowTime = 1500 FollowGear( Player ) else - FollowTime = FollowTime - 1 + FollowTime = FollowTime - 20 end end @@ -172,7 +172,7 @@ end end - GetTime = GetTime + 1 + GetTime = GetTime + 20 CheckPosition( Player, 70 ) -- Run the CheckPosition function to check if the player is close to a target end diff -r 8d1d6adf5f82 -r b66eef8c8092 share/hedgewars/Data/Missions/Training/Basic_Training_-_Shotgun.lua --- a/share/hedgewars/Data/Missions/Training/Basic_Training_-_Shotgun.lua Sat Jun 02 14:27:09 2012 +0200 +++ b/share/hedgewars/Data/Missions/Training/Basic_Training_-_Shotgun.lua Sat Jun 02 22:54:09 2012 +0200 @@ -111,11 +111,11 @@ -- Note that there are 1000 ticks within one second. -- You shouldn't try to calculate too complicated -- code here as this might slow down your game. -function onGameTick() +function onGameTick20() -- If time's up, set the game to be lost. -- We actually check the time to be "1 ms" as it -- will be at "0 ms" right at the start of the game. - if TurnTimeLeft == 1 and score < score_goal then + if TurnTimeLeft < 40 and TurnTimeLeft > 20 and score < score_goal then game_lost = true -- ... and show a short message. ShowMission(loc("Shotgun Training"), loc("Aiming Practice"), loc("Oh no! Time's up! Just try again."), -amSkip, 0) @@ -133,7 +133,7 @@ EndGame() else -- ... or just lower the timer by 1. - end_timer = end_timer - 1 + end_timer = end_timer - 20 -- Reset the time left to stop the timer TurnTimeLeft = time_goal end @@ -150,8 +150,8 @@ -- This function is called when a new gear is added. -- We don't need it for this training, so we can -- keep it empty. -function onGearAdd(gear) -end +-- function onGearAdd(gear) +-- end -- This function is called before a gear is destroyed. -- We use it to count the number of targets destroyed. diff -r 8d1d6adf5f82 -r b66eef8c8092 share/hedgewars/Data/Missions/Training/Basic_Training_-_Sniper_Rifle.lua --- a/share/hedgewars/Data/Missions/Training/Basic_Training_-_Sniper_Rifle.lua Sat Jun 02 14:27:09 2012 +0200 +++ b/share/hedgewars/Data/Missions/Training/Basic_Training_-_Sniper_Rifle.lua Sat Jun 02 22:54:09 2012 +0200 @@ -112,7 +112,7 @@ -- Note that there are 1000 ticks within one second. -- You shouldn't try to calculate too complicated -- code here as this might slow down your game. -function onGameTick() +function onGameTick20() if game_lost then return end @@ -127,7 +127,7 @@ -- If time's up, set the game to be lost. -- We actually check the time to be "1 ms" as it -- will be at "0 ms" right at the start of the game. - if TurnTimeLeft == 1 and score < score_goal then + if TurnTimeLeft < 40 and TurnTimeLeft > 0 and score < score_goal then game_lost = true -- ... and show a short message. ShowMission(loc("Sniper Training"), loc("Aiming Practice"), loc("Oh no! Time's up! Just try again."), -amSkip, 0) @@ -145,7 +145,7 @@ EndGame() else -- ... or just lower the timer by 1. - end_timer = end_timer - 1 + end_timer = end_timer - 20 -- Reset the time left to stop the timer TurnTimeLeft = time_goal end @@ -162,8 +162,8 @@ -- This function is called when a new gear is added. -- We don't need it for this training, so we can -- keep it empty. -function onGearAdd(gear) -end +-- function onGearAdd(gear) +-- end -- This function is called before a gear is destroyed. -- We use it to count the number of targets destroyed.