From ea94e177804856f8276b4c592259e66b258becb7 Mon Sep 17 00:00:00 2001 From: "shakurov.airat" Date: Tue, 10 Jan 2017 17:43:57 +0500 Subject: [PATCH] delete files --- .classpath | 8 - .project | 33 - AndroidManifest.xml | 39 - jni/Android.mk | 77 - jni/Application.mk | 3 - jni/DoubleHitBalls.dev | 179 -- jni/android_api.cpp | 10 - jni/android_api.h | 25 - jni/creditscode.cpp | 79 - jni/creditscode.h | 34 - jni/game_area_interface.h | 23 - jni/gamecode.cpp | 1560 ----------------- jni/gamecode.h | 205 --- jni/loadingcode.cpp | 16 - jni/loadingcode.h | 15 - jni/main_code.cpp | 475 ----- jni/main_code.h | 153 -- jni/menucode.cpp | 207 --- jni/menucode.h | 40 - res/drawable-hdpi/ic_menu_template.png | Bin 3527 -> 0 bytes res/drawable-ldpi/ic_menu_template.png | Bin 1460 -> 0 bytes res/drawable-mdpi/ic_menu_template.png | Bin 2111 -> 0 bytes res/values/strings.xml | 29 - .../doublehitballs/GL2JNIActivity.java | 92 - src/fishrungames/doublehitballs/GLView.java | 70 - .../doublehitballs/JniWrapper.java | 12 - 26 files changed, 3384 deletions(-) delete mode 100644 .classpath delete mode 100644 .project delete mode 100644 AndroidManifest.xml delete mode 100644 jni/Android.mk delete mode 100644 jni/Application.mk delete mode 100644 jni/DoubleHitBalls.dev delete mode 100644 jni/android_api.cpp delete mode 100644 jni/android_api.h delete mode 100644 jni/creditscode.cpp delete mode 100644 jni/creditscode.h delete mode 100644 jni/game_area_interface.h delete mode 100644 jni/gamecode.cpp delete mode 100644 jni/gamecode.h delete mode 100644 jni/loadingcode.cpp delete mode 100644 jni/loadingcode.h delete mode 100644 jni/main_code.cpp delete mode 100644 jni/main_code.h delete mode 100644 jni/menucode.cpp delete mode 100644 jni/menucode.h delete mode 100644 res/drawable-hdpi/ic_menu_template.png delete mode 100644 res/drawable-ldpi/ic_menu_template.png delete mode 100644 res/drawable-mdpi/ic_menu_template.png delete mode 100644 res/values/strings.xml delete mode 100644 src/fishrungames/doublehitballs/GL2JNIActivity.java delete mode 100644 src/fishrungames/doublehitballs/GLView.java delete mode 100644 src/fishrungames/doublehitballs/JniWrapper.java diff --git a/.classpath b/.classpath deleted file mode 100644 index 36de7ba..0000000 --- a/.classpath +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/.project b/.project deleted file mode 100644 index 4c7a50f..0000000 --- a/.project +++ /dev/null @@ -1,33 +0,0 @@ - - - EngineWrapper - - - - - - com.android.ide.eclipse.adt.ResourceManagerBuilder - - - - - com.android.ide.eclipse.adt.PreCompilerBuilder - - - - - org.eclipse.jdt.core.javabuilder - - - - - com.android.ide.eclipse.adt.ApkBuilder - - - - - - com.android.ide.eclipse.adt.AndroidNature - org.eclipse.jdt.core.javanature - - diff --git a/AndroidManifest.xml b/AndroidManifest.xml deleted file mode 100644 index f755666..0000000 --- a/AndroidManifest.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/jni/Android.mk b/jni/Android.mk deleted file mode 100644 index 53c2935..0000000 --- a/jni/Android.mk +++ /dev/null @@ -1,77 +0,0 @@ -# Copyright (C) 2009 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - - -LPATH := $(call my-dir) - -ENGINE_PATH = $(SalmonEnginePathCygwin) - -#BOOST_PATH = $(LibsPathCygwin)/boost_1_47_0 -BOOST_PATH = $(LibsPathCygwin)/boost_1_52_0 - -OGG_PATH = $(LibsPathCygwin)/libogg-1.3.0 - -VORBIS_PATH = $(LibsPathCygwin)/libvorbis-1.3.2 - -SQUIRREL_PATH = $(LibsPathCygwin)/sqplus - -LIBPNG_PATH = $(LibsPathCygwin)/libpng_1.4.1_android - -ZIP_PATH = $(LibsPathCygwin)/julienr-libzip-android/jni - -#====== ENGINE AND LIBS ===================== - -include $(ENGINE_PATH)/Android_Salmon_Engine.mk - -#================= THE GAME ======================= - - -LOCAL_PATH:= $(LPATH) - -include $(CLEAR_VARS) - -LOCAL_CFLAGS := -DTARGET_ANDROID -std=gnu++11 --std=c++11 -LOCAL_STATIC_LIBRARIES := boost -LOCAL_STATIC_LIBRARIES += squirrel -LOCAL_STATIC_LIBRARIES += png_lib -LOCAL_STATIC_LIBRARIES += zip -LOCAL_SHARED_LIBRARIES := SalmonEngine -LOCAL_SHARED_LIBRARIES += gnustl_shared -LOCAL_C_INCLUDES := $(ENGINE_PATH) -LOCAL_C_INCLUDES += $(BOOST_PATH) -LOCAL_C_INCLUDES += $(VORBIS_PATH)/include -LOCAL_C_INCLUDES += $(VORBIS_PATH)/include/vorbis -LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib -LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib/books -LOCAL_C_INCLUDES += $(VORBIS_PATH)/lib/modes -LOCAL_C_INCLUDES += $(OGG_PATH)/include -LOCAL_C_INCLUDES += $(OGG_PATH)/include/ogg -LOCAL_C_INCLUDES += $(SQUIRREL_PATH)/include -LOCAL_C_INCLUDES += $(SQUIRREL_PATH)/sqplus -LOCAL_C_INCLUDES += $(SQUIRREL_PATH)/squirrel -LOCAL_C_INCLUDES += $(SQUIRREL_PATH)/sqstdlib -LOCAL_C_INCLUDES += $(LIBPNG_PATH) -LOCAL_C_INCLUDES += $(ZIP_PATH) -LOCAL_MODULE := gl2jni -LOCAL_SRC_FILES := main_code.cpp -LOCAL_SRC_FILES += android_api.cpp -LOCAL_SRC_FILES += menucode.cpp -LOCAL_SRC_FILES += gamecode.cpp -LOCAL_SRC_FILES += loadingcode.cpp -LOCAL_SRC_FILES += creditscode.cpp -LOCAL_LDLIBS := -lGLESv2 -LOCAL_LDLIBS += -llog -Wl,-s - -include $(BUILD_SHARED_LIBRARY) diff --git a/jni/Application.mk b/jni/Application.mk deleted file mode 100644 index 824acab..0000000 --- a/jni/Application.mk +++ /dev/null @@ -1,3 +0,0 @@ -APP_STL := gnustl_static -APP_CPPFLAGS += -fexceptions -APP_CPPFLAGS += -frtti \ No newline at end of file diff --git a/jni/DoubleHitBalls.dev b/jni/DoubleHitBalls.dev deleted file mode 100644 index c7e6fb9..0000000 --- a/jni/DoubleHitBalls.dev +++ /dev/null @@ -1,179 +0,0 @@ -[Project] -FileName=DoubleHitBalls.dev -Name=DoubleHitBalls -UnitCount=13 -Type=1 -Ver=1 -ObjFiles= -Includes=C:\Workplace\Projects\Engine;C:\Workplace\android-ndk-r6b\platforms\android-8\arch-arm\usr\include;C:\Workplace\libs\boost_1_47_0;C:\Workplace\libs\openal;C:\Workplace\libs\libvorbis-1.3.2\include;C:\Workplace\libs\libogg-1.3.0\include -Libs= -PrivateResource= -ResourceIncludes= -MakeIncludes= -Compiler=-DTARGET_ANDROID_@@_ -CppCompiler=-DTARGET_ANDROID_@@_ -Linker= -IsCpp=1 -Icon= -ExeOutput= -ObjectOutput= -OverrideOutput=0 -OverrideOutputName=DoubleHitBalls.exe -HostApplication= -Folders= -CommandLine= -UseCustomMakefile=0 -CustomMakefile= -IncludeVersionInfo=0 -SupportXPThemes=0 -CompilerSet=0 -CompilerSettings=0000000000000000000000 - -[Unit1] -FileName=main_code.cpp -CompileCpp=1 -Folder=DoubleHitBalls -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit2] -FileName=main_code.h -CompileCpp=1 -Folder=DoubleHitBalls -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit3] -FileName=menucode.cpp -CompileCpp=1 -Folder=DoubleHitBalls -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit4] -FileName=menucode.h -CompileCpp=1 -Folder=DoubleHitBalls -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[VersionInfo] -Major=0 -Minor=1 -Release=1 -Build=1 -LanguageID=1033 -CharsetID=1252 -CompanyName= -FileVersion= -FileDescription=Developed using the Dev-C++ IDE -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion= -AutoIncBuildNr=0 - -[Unit5] -FileName=gamecode.h -CompileCpp=1 -Folder=DoubleHitBalls -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit6] -FileName=gamecode.cpp -CompileCpp=1 -Folder=DoubleHitBalls -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit7] -FileName=game_area_interface.h -CompileCpp=1 -Folder=DoubleHitBalls -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit8] -FileName=creditscode.cpp -CompileCpp=1 -Folder=DoubleHitBalls -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit9] -FileName=creditscode.h -CompileCpp=1 -Folder=DoubleHitBalls -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit10] -FileName=loadingcode.cpp -CompileCpp=1 -Folder=DoubleHitBalls -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit11] -FileName=loadingcode.h -CompileCpp=1 -Folder=DoubleHitBalls -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit12] -FileName=android_api.cpp -CompileCpp=1 -Folder=DoubleHitBalls -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit13] -FileName=android_api.h -CompileCpp=1 -Folder=DoubleHitBalls -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - diff --git a/jni/android_api.cpp b/jni/android_api.cpp deleted file mode 100644 index bab2d1e..0000000 --- a/jni/android_api.cpp +++ /dev/null @@ -1,10 +0,0 @@ -#include "android_api.h" - -#include "main_code.h" - -JNIEXPORT void JNICALL Java_fishrungames_doublehitballs_JniWrapper_Init(JNIEnv * env, jobject obj, jint width, jint height) -{ - JniInitApp(width, height, 480.f, 320.f); -} - - diff --git a/jni/android_api.h b/jni/android_api.h deleted file mode 100644 index f0e87ae..0000000 --- a/jni/android_api.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef ANDROID_API_H_INCLUDED -#define ANDROID_API_H_INCLUDED - -#include -#include - -#include -#include -#include - -#include "boost/shared_ptr.hpp" - -#include "main_code.h" - -#include "include/Engine.h" - -using namespace SE; - -extern "C" -{ - JNIEXPORT void JNICALL Java_fishrungames_doublehitballs_JniWrapper_Init(JNIEnv * env, jobject obj, jint width, jint height); -}; - - -#endif diff --git a/jni/creditscode.cpp b/jni/creditscode.cpp deleted file mode 100644 index 8caef29..0000000 --- a/jni/creditscode.cpp +++ /dev/null @@ -1,79 +0,0 @@ -#include "creditscode.h" -#include "include/Engine.h" - -#include "main_code.h" - -const int TGameCredits::CONST_STATE_APPEARING = 0; -const int TGameCredits::CONST_STATE_APPEARED = 1; -const int TGameCredits::CONST_STATE_DISAPPEARING = 2; -const int TGameCredits::CONST_STATE_DISAPPEARED = 3; - -const float TGameCredits::CONST_APPEAR_TIME = 150.f; - -TGameCredits::TGameCredits() - : TGameAreaAncestor() - , StateTimer(0) - , State(CONST_STATE_DISAPPEARED) -{ -} - -void TGameCredits::Draw() -{ - - float transparency = StateTimer/CONST_APPEAR_TIME; - - - RenderUniform1f("Transparency", transparency); - - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList["main_menu_bkg_left"]); - Renderer->DrawRect(vec2(0, 0.f), vec2(480.f, 320.f)); - - const vec2 creditsPos(140.f, 130.f); - - const vec2 creditsHalfSize(128.f, 128.f); - - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_CREDITS_TEXTURE]); - Renderer->DrawRect(creditsPos-creditsHalfSize, creditsPos+creditsHalfSize); - - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_LOGO_SMALL_TEXTURE]); - Renderer->DrawRect(vec2(240.f-128.f+15.f, 320.f-64.f), vec2(240.f+128.f+15.f, 320.f)); - - CheckGlError("Draw TGameCredits"); -} - -void TGameCredits::Update(cardinal dt) -{ - if (State == CONST_STATE_APPEARING) - { - StateTimer += dt; - if (StateTimer >= CONST_APPEAR_TIME) - { - StateTimer = CONST_APPEAR_TIME; - State = CONST_STATE_APPEARED; - } - } - else if (State == CONST_STATE_DISAPPEARING) - { - StateTimer -= dt; - if (StateTimer <= 0.f) - { - StateTimer = 0.f; - State = CONST_STATE_DISAPPEARED; - } - } -} - -void TGameCredits::OnTapDown(vec2 p) -{ - Application->GoFromCreditsToMenu(); -} - -void TGameCredits::StartAppear() -{ - State = CONST_STATE_APPEARING; -} - -void TGameCredits::StartDisappear() -{ - State = CONST_STATE_DISAPPEARING; -} diff --git a/jni/creditscode.h b/jni/creditscode.h deleted file mode 100644 index 47b866a..0000000 --- a/jni/creditscode.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef CREDITSCODE_H_INCLUDED -#define CREDITSCODE_H_INCLUDED - -#include "game_area_interface.h" - -using namespace SE; - - -class TGameCredits : public TGameAreaAncestor -{ - static const int CONST_STATE_APPEARING; - static const int CONST_STATE_APPEARED; - static const int CONST_STATE_DISAPPEARING; - static const int CONST_STATE_DISAPPEARED; - static const float CONST_APPEAR_TIME; - - - int State; - float StateTimer; - -public: - - TGameCredits(); - - virtual void Draw(); - virtual void Update(cardinal dt); - virtual void OnTapDown(vec2 p); - - void StartAppear(); - void StartDisappear(); -}; - - -#endif diff --git a/jni/game_area_interface.h b/jni/game_area_interface.h deleted file mode 100644 index 7ae5fdb..0000000 --- a/jni/game_area_interface.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef GAME_AREA_INTERFACE_H_INCLUDED -#define GAME_AREA_INTERFACE_H_INCLUDED - -#include "include/Engine.h" - -using namespace SE; - - -class TGameAreaAncestor -{ -public: - virtual void Draw() { } - virtual void Update(cardinal) { } - virtual void OnTapUp(vec2) { } - virtual void OnTapDown(vec2) { } - virtual void OnFling(vec2) { } - virtual void OnScroll(vec2) { } - - virtual ~TGameAreaAncestor() { } //By default destructor is not virtual -}; - - -#endif diff --git a/jni/gamecode.cpp b/jni/gamecode.cpp deleted file mode 100644 index 0a1eaaa..0000000 --- a/jni/gamecode.cpp +++ /dev/null @@ -1,1560 +0,0 @@ -#include "gamecode.h" -#include "main_code.h" - -const int CONST_LEVELSTATE_STANDBY = 0; -const int CONST_LEVELSTATE_PLAYING = 1; -const int CONST_LEVELSTATE_GO_TO_PAUSE = 2; -const int CONST_LEVELSTATE_PAUSE = 3; -const int CONST_LEVELSTATE_LOADING = 4; -const int CONST_LEVELSTATE_NODRAW = 5; -const int CONST_LEVELSTATE_FINISH_FREEZE = 6; -const int CONST_LEVELSTATE_FINISHED = 7; - -const float CONST_TIMER_LOADING = 150.f; - -const float CONST_PAUSE_APPEAR_TIME = 150.f; - -const float CONST_FINISH_FREEZE_TIME = 1000.f; -const float CONST_FINISHING_TIME = 250.f; - -const float CONST_BALL_VELOCITY = 200.f; - -const vec2 CONST_SLIDE_UP_POS(240.f, 64.f); - -const vec2 CONST_TAP_TO_CONTINUE_POS(240.f, 200.f); - -bool operator<(const PairColorTexture& p1, const PairColorTexture& p2) -{ - if (p1.second == p2.second) - { - if (p1.first.v[0] == p2.first.v[0]) - { - if (p1.first.v[1] == p2.first.v[1]) - { - if (p1.first.v[2] == p2.first.v[2]) - { - return p1.first.v[3] < p2.first.v[3]; - } - else - { - return p1.first.v[2] < p2.first.v[2]; - } - } - else - { - return p1.first.v[1] < p2.first.v[1]; - } - } - else - { - return p1.first.v[0] < p2.first.v[0]; - } - } - - return (p1.second < p2.second); -} - - -TBrick::TBrick() - : State(CONST_BRICKSTATE_VISIBLE) - , StateTimer(0.f) - , Color(vec4(0.f, 0.f, 0.f, 1.f)) - , Locked(0) - , InitialLocked(0) -{ -} - -void TBrick::SetVisible(vec4 color, int locked) -{ - State = CONST_BRICKSTATE_VISIBLE; - Color = color; - InitialLocked = locked; - Locked = InitialLocked; -} - -void TBrick::SetInvisible() -{ - State = CONST_BRICKSTATE_INVISIBLE; -} - -void TBrick::TryDrawAppear(int ipos, int jpos) -{ - vec2 centerPos = GetPosFrom(ipos, jpos); - - vec2 blockHalfSize = vec2(0.5f*CONST_BRICK_WIDTH, 0.5f*CONST_BRICK_HEIGHT); - - std::string texName; - if (Locked == 2) - { - texName = CONST_BLOCK_TEXTURE3; - } - else if (Locked == 1) - { - texName = CONST_BLOCK_TEXTURE2; - } - else - { - texName = CONST_BLOCK_TEXTURE1; - } - - if (State == CONST_BRICKSTATE_DISAPPEAR) - { - - RenderUniform1f("Transparency", StateTimer/CONST_BRICK_DISAPPEAR_TIME); - RenderUniform4fv("BrickColor", Color.v); - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[texName]); - Renderer->DrawRect(centerPos - blockHalfSize, centerPos + blockHalfSize); - } - else if (State == CONST_BRICKSTATE_APPEAR) - { - - RenderUniform1f("Transparency", 1.f - StateTimer/CONST_BRICK_APPEAR_TIME); - RenderUniform4fv("BrickColor", Color.v); - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[texName]); - Renderer->DrawRect(centerPos - blockHalfSize, centerPos + blockHalfSize); - } -} - -void TBrick::Update(cardinal dt) -{ - if (State == CONST_BRICKSTATE_DISAPPEAR) - { - StateTimer -= dt; - if (StateTimer < 0.f) - { - StateTimer = 0.f; - State = CONST_BRICKSTATE_INVISIBLE; - } - } - - if (State == CONST_BRICKSTATE_APPEAR) - { - StateTimer -= dt; - if (StateTimer < 0.f) - { - StateTimer = 0.f; - State = CONST_BRICKSTATE_VISIBLE; - } - } -} - -vec4 TBrick::GetColor() -{ - return Color; -} - -vec2 TBrick::GetPosFrom(int ipos, int jpos) -{ - const vec2 BorderShift(CONST_BRICK_SHIFT_X, CONST_BRICK_SHIFT_Y); - - return BorderShift+vec2(CONST_BRICK_WIDTH*ipos + 0.5f*CONST_BRICK_WIDTH, 320.f - CONST_BRICK_HEIGHT*(jpos)-0.5f*CONST_BRICK_HEIGHT); - -} - -void TBrick::Disappear() -{ - StateTimer = CONST_BRICK_DISAPPEAR_TIME; - State = CONST_BRICKSTATE_DISAPPEAR; -} - -void TBrick::Hit() -{ - if (Locked == 0) - { - Disappear(); - } - else - { - Locked--; - } -} - -void TBrick::Appear(vec4 color, int locked) -{ - StateTimer = CONST_BRICK_APPEAR_TIME; - State = CONST_BRICKSTATE_APPEAR; - Color = color; - InitialLocked = locked; - Locked = InitialLocked; -} - -void TBrick::Appear() -{ - Appear(Color, InitialLocked); -} - -int TBrick::GetLocked() -{ - return Locked; -} - -bool TBrick::CanReact() -{ - return (State == CONST_BRICKSTATE_VISIBLE) || (State == CONST_BRICKSTATE_APPEAR); -} - -//=========================================== -//=========================================== -//=========================================== - -TBonusFalling::TBonusFalling(vec2 pos) - : BonusType(rand() % 3) - , Pos(pos) - , Lifetime(0.f) -{ - - if (BonusType == 0) - { - TexName = CONST_BONUS_MULTIPLIER_TEXTURE; - } - - if (BonusType == 1) - { - TexName = CONST_BONUS_GOTHROUGH_TEXTURE; - } - - if (BonusType == 2) - { - TexName = CONST_BONUS_FLOOR_TEXTURE; - } - -} - -vec2 TBonusFalling::GetPos() -{ - return Pos; -} - -int TBonusFalling::GetType() -{ - return BonusType; -} - - -void TBonusFalling::Draw() -{ - vec2 BonusHalfSize = vec2(16.f, 16.f); - - float transparency = min(Lifetime/CONST_BONUS_APPEAR_TIME , 1.f); - - RenderUniform4fv("BrickColor", vec4(1.0f, 1.0f, 1.0f, 1.0f).v); - RenderUniform1f("Transparency", transparency); - - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[TexName]); - Renderer->DrawRect(Pos - BonusHalfSize, Pos + BonusHalfSize); - -} - - -void TBonusFalling::Update(cardinal dt) -{ - Lifetime += dt; - Pos.v[1] -= dt * CONST_BONUS_FALL_SPEED / 1000.f; -} - -//=========================================== -//=========================================== -//=========================================== - - -TBall::TBall(vec2 pos, vec2 velocity, vec4 color) - : Pos(pos) - , Velocity(velocity) - , Color(color) -{ - //must be 5 - TalePos.push_back(Pos); - TalePos.push_back(Pos); - TalePos.push_back(Pos); - TalePos.push_back(Pos); - TalePos.push_back(Pos); -} - -vec2 TBall::GetPos() -{ - return Pos; -} - -vec2 TBall::GetVelocityVector() -{ - return Velocity; -} - -void TBall::Go() -{ - Velocity = Normalize(vec2(2.f, 1.f)); -} - -void TBall::ReflectToLeft() -{ - if (Velocity.v[0] > 0.f) - { - Velocity.v[0] = - Velocity.v[0]; - } -} - -void TBall::ReflectToRight() -{ - if (Velocity.v[0] < 0.f) - { - Velocity.v[0] = - Velocity.v[0]; - } -} - -void TBall::ReflectToUp() -{ - if (Velocity.v[1] < 0.f) - { - Velocity.v[1] = - Velocity.v[1]; - } -} - -void TBall::ReflectToDown() -{ - if (Velocity.v[1] > 0.f) - { - Velocity.v[1] = - Velocity.v[1]; - } -} - -//function for reflector surface. -float ReflectorPlaneFunction(float shift) -{ - /* _______ - / \ - | | - Something like this - - */ - - if (shift>=-70.f && shift < -40.f) - { - float t = (shift+70.f)/30.f; //0 to 1 - return 9.f + 21.f * t; - } - - if (shift>=-40.f && shift < 40.f) - { - return 30.f; - } - - - if (shift >= 40.f && shift <= 70.f) - { - float t = (70.f - shift)/30.f; //1 to 0 - return 9.f + 21.f * t; - } - - return 0.f; -} - -void TBall::TryReflectOnReflector(vec2 refPos) -{ - const float reflectionShiftY = 13.f; - const float reflectionMaxHeight = 30.f; - - - - if ((Pos.v[1] < reflectionMaxHeight + reflectionShiftY) && Pos.v[1] > 0.0f && Velocity.v[1] < 0) - { - float dy = ReflectorPlaneFunction(Pos.v[0] - refPos.v[0]); - - if (dy > 0 && (dy + reflectionShiftY > Pos.v[1])) - { - float shift = (Pos.v[0] - refPos.v[0]) / 128.f; - shift = min(shift, 0.5f); - shift = max(shift, -0.5f); - vec2 n = Normalize(vec2(shift, 1.0f)); - - Velocity = Velocity - n * 2.f * (Velocity.v[0]*n.v[0] + Velocity.v[1]*n.v[1]); - if ((Velocity.v[1] <= 0) || (fabs(Velocity.v[0]/Velocity.v[1]) > 4.f)) - { - Velocity.v[0] = 4.f*sign(Velocity.v[0]); - Velocity.v[1] = 1.f; - Velocity = Normalize(Velocity); - } - } - } -} - - -void TBall::Update(cardinal dt) -{ - Pos += Velocity * (CONST_BALL_VELOCITY * dt / 1000.f); - - TalePos.push_back(Pos); - - if (TalePos.size() > 4) - { - TalePos.erase(TalePos.begin()); - } -} - -//=========================================== -//=========================================== -//=========================================== - - -TGameLevel::TGameLevel() -{ - - BkgTexture = "bkg"; - - RenderBufferReady = false; - PrevLevelStateIsStandby = false; - - OutScale = 1.f; - OutScaleVelocity = 0.f; - - StateTimer = 0.f; - - LevelState = CONST_LEVELSTATE_NODRAW; - - BallColor = vec4(0.2f, 0.8f, 1.0f, 1.0f); - - BonusFloorPosY = 0.f; - -} - -TGameLevel::~TGameLevel() -{ -} - - - -void TGameLevel::ReloadBlockInstansingList() -{ - std::map ConstTextureBlockMap = boost::assign::map_list_of (0,CONST_BLOCK_TEXTURE1) (1,CONST_BLOCK_TEXTURE2) (2,CONST_BLOCK_TEXTURE3); - - std::pair tempPair; - BlockInstansingList.ColorBlockList.clear(); - - for (int i=0; i>::iterator itr = BlockInstansingList.ColorBlockList.end(); - - for (auto b = BlockInstansingList.ColorBlockList.begin(); b != BlockInstansingList.ColorBlockList.end(); ++b) - { - if (b->first == tempPair) - { - itr = b; - } - } - - if (itr == BlockInstansingList.ColorBlockList.end()) - { - BlockInstansingList.ColorBlockList.push_back(std::pair(tempPair, TTriangleList())); - itr = BlockInstansingList.ColorBlockList.end(); - - itr--; - } - - vec2 posFrom = BlockMatrix[i][j].GetPosFrom(i,j) + vec2(-0.5f*CONST_BRICK_WIDTH, -0.5f*CONST_BRICK_HEIGHT); - vec2 posTo = BlockMatrix[i][j].GetPosFrom(i,j) + vec2(+0.5f*CONST_BRICK_WIDTH, +0.5f*CONST_BRICK_HEIGHT); - - itr->second.Data += MakeDataTriangleList(posFrom, posTo); - - } - } - } - - for (auto it = BlockInstansingList.ColorBlockList.begin(); it != BlockInstansingList.ColorBlockList.end(); ++it) - { - it->second.RefreshBuffer(); - } - -} - -vec2 TGameLevel::GetBlock(const vec2& pos) -{ - - int x = static_cast((pos.v[0] - CONST_BRICK_SHIFT_X) / CONST_BRICK_WIDTH); - int y = static_cast((320.0f + CONST_BRICK_SHIFT_Y - pos.v[1]) / CONST_BRICK_HEIGHT); - - if (x < 0) - x = 0; - - if (x > CONST_BRICKMATRIX_WIDTH-1) - x = CONST_BRICKMATRIX_WIDTH-1; - - if (y < 0) - y = 0; - - if (y > CONST_BRICKMATRIX_HEIGHT-1) - y = CONST_BRICKMATRIX_HEIGHT-1; - - return vec2(x, y); -} - -bool TGameLevel::TapInBackBtnArea(const vec2& pos) -{ - return (pos.v[1] > 320.f - 64.f) && (pos.v[0]>=240.f-75.f) && (pos.v[0]<=240.f+75.f); -} - -void TGameLevel::SetFinishFreeze() -{ - StateTimer = CONST_FINISH_FREEZE_TIME; - - LevelState = CONST_LEVELSTATE_FINISH_FREEZE; - -} - -void TGameLevel::SetFinished() -{ - StateTimer = CONST_FINISHING_TIME; - - LevelState = CONST_LEVELSTATE_FINISHED; - - OutScale = 1.f; -} - -vec4 TGameLevel::ParseColor(const std::string& s) -{ - vec4 r; - std::string ss(s); - - int i = ss.find(", "); - int c = toint(ss.substr(0, i)); - ss.erase(0, i+2); - r.v[0] = c / 255.f; - - i = ss.find(", "); - c = toint(ss.substr(0, i)); - ss.erase(0, i+2); - r.v[1] = c / 255.f; - - i = ss.find(", "); - c = toint(ss.substr(0, i)); - ss.erase(0, i+2); - r.v[2] = c / 255.f; - - c = toint(ss); - r.v[3] = c / 255.f; - - return r; -} - -void TGameLevel::ReloadLevel() -{ - cardinal byteCount; - boost::shared_array file = CreateMemFromFile(LevelFileName, byteCount); - std::string fileString(&file[0]); - char c; - //int n = 0; - - - std::vector rows; - int rowLen; - while (fileString.size() > 0) - { - rowLen = fileString.find(fendl); - rows.push_back(fileString.substr(0, rowLen)); - fileString.erase(0, rowLen+2); - } - - std::vector::iterator rowIterator = rows.begin(); - BallColor = ParseColor(*rowIterator); - ++rowIterator; - - std::vector colors; - - vec4 tc; - - while (*rowIterator != "Colormap") - { - tc = ParseColor(*rowIterator); - colors.push_back(tc); - ++rowIterator; - } - - std::vector::iterator rowColorIterator; - std::vector::iterator rowLockIterator; - - rowColorIterator = rowIterator + 1; - - rowLockIterator = rowColorIterator + 14; - - - - for (int j=0; jBallInBlock = GetBlock(ballPos); - BallList.begin()->PrevBallInBlock = BallList.begin()->BallInBlock; - - BonusGothroughTimer = 0.f; - BonusFloorTimer = 0.f; - - BonusFallingList.clear(); - - RenderBufferReady = false; - - ReloadBallInstancingList(); - - BonusFloorPosY = 0.f; - -} - -bool TGameLevel::IsLoaded() -{ - return (LevelState == CONST_LEVELSTATE_STANDBY); -} - -void TGameLevel::Draw() -{ - - if (LevelState == CONST_LEVELSTATE_NODRAW) - { - CheckGlError(); - return; - } - - if (LevelState == CONST_LEVELSTATE_LOADING) - { - Renderer->PushMatrix(); - float scale = 1.f - 0.5f*StateTimer/CONST_TIMER_LOADING; - if (scale < 0.5f) - scale = 0.5f; - - if (scale > 1.f) - scale = 1.f; - - Renderer->TranslateMatrix(vec3(Renderer->GetMatrixWidth() * 0.5f, Renderer->GetMatrixHeight() * 0.5f, 0)); - Renderer->ScaleMatrix(scale); - Renderer->TranslateMatrix(-vec3(Renderer->GetMatrixWidth() * 0.5f, Renderer->GetMatrixHeight() * 0.5f, 0)); - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[LevelScreenTexture]); - Renderer->DrawRect(vec2(0, 0), vec2(480.f, 320.f)); - Renderer->PopMatrix(); - CheckGlError(); - return; - } - - - bool mustShowButtons = ((LevelState == CONST_LEVELSTATE_PAUSE) || (LevelState == CONST_LEVELSTATE_GO_TO_PAUSE)); - - bool pause = (mustShowButtons || (LevelState == CONST_LEVELSTATE_FINISHED)); - - - bool renderBufferReady = RenderBufferReady; - - if (pause && renderBufferReady) - { - - //See also below (same method) - Renderer->PushMatrix(); - Renderer->TranslateMatrix(vec3(Renderer->GetMatrixWidth() * 0.5f, Renderer->GetMatrixHeight() * 0.5f, 0)); - Renderer->ScaleMatrix(OutScale); - Renderer->TranslateMatrix(-vec3(Renderer->GetMatrixWidth() * 0.5f, Renderer->GetMatrixHeight() * 0.5f, 0)); - DrawBuffer(); - - if (mustShowButtons) - { - DrawPauseButtons(); - } - Renderer->PopMatrix(); - CheckGlError(); - return; - } - - if (pause && !renderBufferReady) - { - - Renderer->SwitchToFrameBuffer("LevelBuffer"); - Renderer->SetProjectionMatrix(480.f, 320.f); - glClearColor(0.0f, 0.0f, 0.0f, 1.0f); - glClear( GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); - CheckGlError(); - } - - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[BkgTexture]); - Renderer->DrawRect(vec2(0, 0), vec2(480.f, 320.f)); - - std::list::iterator iBall; - - Renderer->PushShader("BrickShader"); - - - for (int i=0; i>::iterator colorBlockIterator; - for (colorBlockIterator = BlockInstansingList.ColorBlockList.begin(); colorBlockIterator != BlockInstansingList.ColorBlockList.end(); ++colorBlockIterator) - { - RenderUniform4fv("BrickColor", colorBlockIterator->first.first.v); - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[colorBlockIterator->first.second]); - - Renderer->DrawTriangleList(colorBlockIterator->second); - } - - std::list::iterator iBonus; - - for (iBonus = BonusFallingList.begin(); iBonus != BonusFallingList.end(); ++iBonus) - { - iBonus->Draw(); - } - - DrawBallInstancingList(); - - Renderer->PopShader(); - - - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_REFLECTOR_TEXTURE]); - Renderer->DrawRect(vec2(-128.f, -16.f)+ReflectorPos, vec2(128.f, 16.f)+ReflectorPos); - - - const vec2 wallUpPos1(240.f-256.f, 320.f-64.f); - const vec2 wallUpPos2(240.f+256.f, 320.f); - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_WALL_UP_TEXTURE]); - Renderer->DrawRect(wallUpPos1, wallUpPos2); - - const vec2 wallLeftPos1(0.f, 320.f - 512.f); - const vec2 wallLeftPos2(32.f, 320.f); - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_WALL_LEFT_TEXTURE]); - Renderer->DrawRect(wallLeftPos1, wallLeftPos2); - - const vec2 wallRightPos1(480.f-32.f, 320.f - 512.f); - const vec2 wallRightPos2(480.f, 320.f); - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_WALL_RIGHT_TEXTURE]); - Renderer->DrawRect(wallRightPos1, wallRightPos2); - - - if (BonusFloorTimer>0.f) - { - - const vec2 wallDownPos(240.f, BonusFloorPosY); - - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_WALL_BONUS_TEXTURE]); - - Renderer->DrawRect(vec2(-256.f, -16.f)+wallDownPos, vec2(256.f, 16.f)+wallDownPos); - } - - - if (!pause) - { - RenderUniform1f("Transparency", 1.f); - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_BACK_BTN_TEXTURE]); - const vec2 BackBtnPos(240.f, 320.f - 32.f - 20.f); - Renderer->DrawRect(vec2(-128.f, -32.f)+BackBtnPos, vec2(128.f, 32.f)+BackBtnPos); - } - - if (pause && !renderBufferReady) - { - - //ololo - //See also above (same method) - Renderer->SwitchToScreen(); - Renderer->SetFullScreenViewport(); - - Renderer->PushMatrix(); - //Renderer->LoadIdentity(); - Renderer->TranslateMatrix(vec3(Renderer->GetMatrixWidth() * 0.5f, Renderer->GetMatrixHeight() * 0.5f, 0)); - Renderer->ScaleMatrix(OutScale); - Renderer->TranslateMatrix(-vec3(Renderer->GetMatrixWidth() * 0.5f, Renderer->GetMatrixHeight() * 0.5f, 0)); - DrawBuffer(); - if (mustShowButtons) - { - DrawPauseButtons(); - } - Renderer->PopMatrix(); - RenderBufferReady = true; - CheckGlError(); - } - CheckGlError(); -} - -void TGameLevel::DrawPauseButtons() -{ - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_SLIDE_UP_BTN_TEXTURE]); - Renderer->DrawRect(vec2(-128.f, -64.f)+CONST_SLIDE_UP_POS, vec2(128.f, 64.f)+CONST_SLIDE_UP_POS); - - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_TAP_TO_CONTINUE_BTN_TEXTURE]); - Renderer->DrawRect(vec2(-128.f, -128.f)+CONST_TAP_TO_CONTINUE_POS, vec2(128.f, 128.f)+CONST_TAP_TO_CONTINUE_POS); - -} - -void TGameLevel::DrawBallInstancingList() -{ - RenderUniform1f("Transparency", 1.f); - RenderUniform4fv("BrickColor", BallColor.v); - - if (BonusGothroughTimer > 0.f) - { - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_BALLGLOW_TEXTURE]); - - Renderer->DrawTriangleList(BallInstancingList.BallAndGlowList[1]); - } - - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_BALL_TEXTURE]); - - Renderer->DrawTriangleList(BallInstancingList.BallAndGlowList[0]); - -} - -void TGameLevel::DrawBuffer() -{ - - Renderer->PushShader("FrameShader"); - float brightness; - if (CONST_LEVELSTATE_GO_TO_PAUSE) - { - brightness = 0.3f + 0.7f * StateTimer / CONST_PAUSE_APPEAR_TIME; - } - else - { - brightness = 0.3f; - } - - RenderUniform1f("Brightness", brightness); - glBindTexture(GL_TEXTURE_2D,ResourceManager->FrameManager.GetFrameTexture("LevelBuffer")); - - //Matrix switched to identity - //vec2 RectPos = vec2(-1, -1); - //vec2 RectSize = vec2(2, 2); - vec2 RectPos = vec2(240.f, 160.f); - vec2 RectSize = vec2(240.f, 160.f); - - Renderer->DrawRect(RectPos-RectSize, RectPos+RectSize); - - Renderer->PopShader(); - - CheckGlError(); -} - -void TGameLevel::SetPause() -{ - OutScaleVelocity = 0.f; - OutScale = 1.f; - RenderBufferReady = false; - LevelState = CONST_LEVELSTATE_GO_TO_PAUSE; - StateTimer = CONST_PAUSE_APPEAR_TIME; - Application->MarkSetGameLevelPause(); -} - -void TGameLevel::ReleasePause() -{ - RenderBufferReady = false; - - if (PrevLevelStateIsStandby) - { - LevelState = CONST_LEVELSTATE_STANDBY; - PrevLevelStateIsStandby = false; - } - else - { - LevelState = CONST_LEVELSTATE_PLAYING; - } - Application->MarkReleaseGameLevelPause(); -} - -bool TGameLevel::IsPaused() -{ - return ((LevelState == CONST_LEVELSTATE_PAUSE) || (LevelState == CONST_LEVELSTATE_GO_TO_PAUSE) || (LevelState == CONST_LEVELSTATE_FINISHED)); -} - -void TGameLevel::Update(cardinal dt) -{ - - if (LevelState == CONST_LEVELSTATE_NODRAW) - { - return; - } - - if (LevelState == CONST_LEVELSTATE_GO_TO_PAUSE) - { - StateTimer -= dt; - if (StateTimer <= 0.f) - { - StateTimer = 0.f; - LevelState = CONST_LEVELSTATE_PAUSE; - } - - return; - } - - if (LevelState == CONST_LEVELSTATE_PAUSE) - { - OutScale += OutScaleVelocity * dt; - TryGoToMenu(); - CheckGlError(); - return; - } - - if (LevelState == CONST_LEVELSTATE_FINISHED) - { - StateTimer -= dt; - - OutScale = StateTimer/CONST_FINISHING_TIME; - - if (StateTimer <= 0.f) - { - TryGoToMenu(); - } - CheckGlError(); - return; - } - - - if (LevelState == CONST_LEVELSTATE_LOADING) - { - StateTimer -= dt; - if (StateTimer <= 0.f) - { - StateTimer = 0.f; - RenderBufferReady = false; - LevelState = CONST_LEVELSTATE_STANDBY; - } - } - - if (LevelState == CONST_LEVELSTATE_FINISH_FREEZE) - { - StateTimer -= dt; - - if (StateTimer <= 0.f) - { - SetFinished(); - CheckGlError(); - return; - } - - //To make the whole scene like freeze - dt = static_cast(dt / max((CONST_FINISH_FREEZE_TIME-StateTimer)/100.f, 1.f)); - - } - - if (BonusGothroughTimer > 0.f) - { - BonusGothroughTimer -= dt; - BonusGothroughTimer = max(BonusGothroughTimer, 0.f); - } - - if (BonusFloorTimer > 0.f) - { - BonusFloorTimer -= dt; - BonusFloorTimer = max(BonusFloorTimer, 0.f); - } - - UpdateBallList(dt); - - - for (int i=0; i::iterator iBonus = BonusFallingList.begin(); - - while (iBonus != BonusFallingList.end()) - { - iBonus->Update(dt); - - if ((fabs(ReflectorPos.v[0] - iBonus->GetPos().v[0])GetPos().v[1])GetType(); - iBonus = BonusFallingList.erase(iBonus); - - - if (bonusType == CONST_BONUS_TYPE_GOTHROUGH) - { - BonusGothroughTimer = CONST_BONUS_GOTHROUGH_TIME; - } - else if (bonusType == CONST_BONUS_TYPE_MULTIPLIER) - { - vec2 pos = BallList.begin()->GetPos(); - vec2 velocity = BallList.begin()->GetVelocityVector(); - MultiplyBalls(pos, velocity); - } - else if (bonusType == CONST_BONUS_TYPE_FLOOR) - { - BonusFloorTimer = CONST_BONUS_FLOOR_TIME; - } - - } - else if (iBonus->GetPos().v[1] < -15.f) - { - iBonus = BonusFallingList.erase(iBonus); - } - - if (iBonus != BonusFallingList.end()) - { - ++iBonus; - } - } - - //Bonus floor pos - if (BonusFloorTimer/CONST_BONUS_GOTHROUGH_TIME < 0.2f) - { - //Bonus must go down until 0.f - if (BonusFloorPosY > 0.f) - { - BonusFloorPosY -= CONST_BONUS_FLOOR_APPEAR_SPEED * dt / 1000.f; - BonusFloorPosY = max(BonusFloorPosY, 0.f); - } - - } - else - { - //Bonus must go up until 16.f - if (BonusFloorPosY < 16.f) - { - BonusFloorPosY += CONST_BONUS_FLOOR_APPEAR_SPEED * dt / 1000.f; - BonusFloorPosY = min(BonusFloorPosY, 16.f); - } - } - - - bool noMoreBlocks = true; - - for (int i=0; iOpenNextLevel(); - Application->MarkSetGameLevelPause(); - SetFinishFreeze(); - CheckGlError(); - - } - - if (BallList.size() == 0 && LevelState != CONST_LEVELSTATE_FINISH_FREEZE) - { - SetStandBy(); - } - -} - - - -void TGameLevel::ReloadBallInstancingList() -{ - //Changing this function? Don't forget to change next one! - - BallInstancingList.BallAndGlowList.clear(); - - std::list::iterator i; - /* - vec3 p1; - vec3 p2; - vec3 p3; - vec3 p4; - - vec2 t1 = vec2(0.0f, 0.0f); - vec2 t2 = vec2(0.0f, 1.0f); - vec2 t3 = vec2(1.0f, 1.0f); - vec2 t4 = vec2(1.0f, 0.0f); - */ - - - for (i = BallList.begin(); i != BallList.end(); ++i) - { - /* - p1 = vec3(i->Pos, 0.f) + vec3(-8.f, -8.f, 0.f); - p2 = vec3(i->Pos, 0.f) + vec3(-8.f, +8.f, 0.f); - p3 = vec3(i->Pos, 0.f) + vec3(+8.f, +8.f, 0.f); - p4 = vec3(i->Pos, 0.f) + vec3(+8.f, -8.f, 0.f); - - BallInstancingList.BallAndGlowList[0].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(p1); - BallInstancingList.BallAndGlowList[0].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(p2); - BallInstancingList.BallAndGlowList[0].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(p3); - - BallInstancingList.BallAndGlowList[0].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(p3); - BallInstancingList.BallAndGlowList[0].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(p4); - BallInstancingList.BallAndGlowList[0].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(p1); - - BallInstancingList.BallAndGlowList[0].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(t1); - BallInstancingList.BallAndGlowList[0].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(t2); - BallInstancingList.BallAndGlowList[0].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(t3); - - BallInstancingList.BallAndGlowList[0].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(t3); - BallInstancingList.BallAndGlowList[0].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(t4); - BallInstancingList.BallAndGlowList[0].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(t1); - */ - - BallInstancingList.BallAndGlowList[0].Data += MakeDataTriangleList(i->Pos + vec2(-8.f, -8.f), i->Pos + vec2(8.f, 8.f)); - - //Replace6PointsInTriangleList(BallInstancingList.BallAndGlowList[0].Data, n, i->Pos + vec2(-8.f, -8.f), i->Pos + vec2(8.f, 8.f)); - - //n += 6; - } - - std::list::iterator j; - - for (i = BallList.begin(); i != BallList.end(); ++i) - { - for (j = i->TalePos.begin(); j != i->TalePos.end(); ++j) - { - /* - p1 = vec3(*j, 0.f) + vec3(-16.f, -16.f, 0.f); - p2 = vec3(*j, 0.f) + vec3(-16.f, +16.f, 0.f); - p3 = vec3(*j, 0.f) + vec3(+16.f, +16.f, 0.f); - p4 = vec3(*j, 0.f) + vec3(+16.f, -16.f, 0.f); - - BallInstancingList.BallAndGlowList[1].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(p1); - BallInstancingList.BallAndGlowList[1].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(p2); - BallInstancingList.BallAndGlowList[1].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(p3); - - BallInstancingList.BallAndGlowList[1].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(p3); - BallInstancingList.BallAndGlowList[1].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(p4); - BallInstancingList.BallAndGlowList[1].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB].push_back(p1); - - BallInstancingList.BallAndGlowList[1].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(t1); - BallInstancingList.BallAndGlowList[1].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(t2); - BallInstancingList.BallAndGlowList[1].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(t3); - - BallInstancingList.BallAndGlowList[1].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(t3); - BallInstancingList.BallAndGlowList[1].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(t4); - BallInstancingList.BallAndGlowList[1].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB].push_back(t1); - */ - BallInstancingList.BallAndGlowList[1].Data += MakeDataTriangleList(*j + vec2(-16.f, -16.f), *j + vec2(16.f, 16.f)); - //Replace6PointsInTriangleList(BallInstancingList.BallAndGlowList[1].Data, n, *j + vec2(-16.f, -16.f), *j + vec2(16.f, 16.f)); - - //n += 6; - } - } - - //std::map::iterator it; - - auto it = BallInstancingList.BallAndGlowList.begin(); - - for (; it != BallInstancingList.BallAndGlowList.end(); ++it) - //for (auto it = BallInstancingList.BallAndGlowList.begin(); it != BallInstancingList.BallAndGlowList.end(); ++it) - - { - it->second.RefreshBuffer(); - } - -} - -void TGameLevel::RefreshBallInstancingList() -{ - //Changing this function? Don't forget to change previous one! - /* - vec3 p1; - vec3 p2; - vec3 p3; - vec3 p4; - - vec2 t1 = vec2(0.0f, 0.0f); - vec2 t2 = vec2(0.0f, 1.0f); - vec2 t3 = vec2(1.0f, 1.0f); - vec2 t4 = vec2(1.0f, 0.0f); - */ - int n = 0; - int m = 0; - - std::list::iterator i; - - for (i = BallList.begin(); i != BallList.end(); ++i) - { - /* - p1 = vec3(i->Pos, 0.f) + vec3(-8.f, -8.f, 0.f); - p2 = vec3(i->Pos, 0.f) + vec3(-8.f, +8.f, 0.f); - p3 = vec3(i->Pos, 0.f) + vec3(+8.f, +8.f, 0.f); - p4 = vec3(i->Pos, 0.f) + vec3(+8.f, -8.f, 0.f); - - BallInstancingList.BallAndGlowList[0].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB][n++] = p1; - BallInstancingList.BallAndGlowList[0].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB][n++] = p2; - BallInstancingList.BallAndGlowList[0].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB][n++] = p3; - - BallInstancingList.BallAndGlowList[0].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB][n++] = p3; - BallInstancingList.BallAndGlowList[0].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB][n++] = p4; - BallInstancingList.BallAndGlowList[0].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB][n++] = p1; - - BallInstancingList.BallAndGlowList[0].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB][m++] = t1; - BallInstancingList.BallAndGlowList[0].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB][m++] = t2; - BallInstancingList.BallAndGlowList[0].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB][m++] = t3; - - BallInstancingList.BallAndGlowList[0].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB][m++] = t3; - BallInstancingList.BallAndGlowList[0].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB][m++] = t4; - BallInstancingList.BallAndGlowList[0].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB][m++] = t1; - */ - - Replace6PointsInTriangleList(BallInstancingList.BallAndGlowList[0].Data, n, i->Pos + vec2(-8.f, -8.f), i->Pos + vec2(8.f, 8.f)); - - n += 6; - } - - std::list::iterator j; - - n = 0; - m = 0; - - for (i = BallList.begin(); i != BallList.end(); ++i) - { - for (j = i->TalePos.begin(); j != i->TalePos.end(); ++j) - { - /* - p1 = vec3(*j, 0.f) + vec3(-16.f, -16.f, 0.f); - p2 = vec3(*j, 0.f) + vec3(-16.f, +16.f, 0.f); - p3 = vec3(*j, 0.f) + vec3(+16.f, +16.f, 0.f); - p4 = vec3(*j, 0.f) + vec3(+16.f, -16.f, 0.f); - - BallInstancingList.BallAndGlowList[1].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB][n++] = p1; - BallInstancingList.BallAndGlowList[1].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB][n++] = p2; - BallInstancingList.BallAndGlowList[1].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB][n++] = p3; - - BallInstancingList.BallAndGlowList[1].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB][n++] = p3; - BallInstancingList.BallAndGlowList[1].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB][n++] = p4; - BallInstancingList.BallAndGlowList[1].Vec3CoordArr[CONST_STRING_POSITION_ATTRIB][n++] = p1; - - BallInstancingList.BallAndGlowList[1].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB][m++] = t1; - BallInstancingList.BallAndGlowList[1].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB][m++] = t2; - BallInstancingList.BallAndGlowList[1].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB][m++] = t3; - - BallInstancingList.BallAndGlowList[1].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB][m++] = t3; - BallInstancingList.BallAndGlowList[1].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB][m++] = t4; - BallInstancingList.BallAndGlowList[1].Vec2CoordArr[CONST_STRING_TEXCOORD_ATTRIB][m++] = t1;*/ - //BallInstancingList.BallAndGlowList[1].Data += MakeDataTriangleList(); - - Replace6PointsInTriangleList(BallInstancingList.BallAndGlowList[1].Data, n, *j + vec2(-16.f, -16.f), *j + vec2(16.f, 16.f)); - - n += 6; - - } - } - - std::map::iterator it; - - for (it = BallInstancingList.BallAndGlowList.begin(); it != BallInstancingList.BallAndGlowList.end(); ++it) - { - it->second.RefreshBuffer(); - } - -} - - -void TGameLevel::UpdateBallList(cardinal dt) -{ - std::list::iterator iBall; - - bool mustReloadBalls = false; - - //If not loaded - force load - if (BallInstancingList.BallAndGlowList.size() == 0) - { - mustReloadBalls = true; - } - - if (BonusFloorTimer == 0.f) - { - vec2 ballPos; - - iBall = BallList.begin(); - - while (iBall != BallList.end()) - { - ballPos = iBall->GetPos(); - - if (ballPos.v[1]<0.f) - { - iBall = BallList.erase(iBall); - mustReloadBalls = true; - } - - if (iBall != BallList.end()) - { - ++iBall; - } - } - - } - - bool blockListChanged = false; - - for (iBall = BallList.begin(); iBall != BallList.end(); ++iBall) - { - - - iBall->Update(dt); - - vec2 ballPos = iBall->GetPos(); - - - if (ballPos.v[0] > 480.f-15.f) - { - iBall->ReflectToLeft(); - } - - if (ballPos.v[0] < 15.f) - { - iBall->ReflectToRight(); - } - - if (ballPos.v[1] > 320.0f-16.f) - { - iBall->ReflectToDown(); - } - - if (BonusFloorTimer > 0.f) - { - if (ballPos.v[1] < 13.0f) - { - iBall->ReflectToUp(); - } - } - - iBall->TryReflectOnReflector(ReflectorPos); - - vec2 ipos = GetBlock(ballPos); - if (!(ipos == iBall->BallInBlock)) - { - iBall->PrevBallInBlock = iBall->BallInBlock; - iBall->BallInBlock = ipos; - - int i = static_cast(iBall->BallInBlock.v[0]); - int j = static_cast(iBall->BallInBlock.v[1]); - - int iprev = static_cast(iBall->PrevBallInBlock.v[0]); - int jprev = static_cast(iBall->PrevBallInBlock.v[1]); - - - if (BlockMatrix[i][j].CanReact()) - { - bool canThrowBonus; - - blockListChanged = true; - - if (BonusGothroughTimer > 0.f) - { - BlockMatrix[i][j].Disappear(); - canThrowBonus = true; - - } - else - { - canThrowBonus = (BlockMatrix[i][j].GetLocked() == 0); - - BlockMatrix[i][j].Hit(); - - } - - vec2 blockPos = BlockMatrix[i][j].GetPosFrom(i, j); - - - if (canThrowBonus && rand() % 20 == 0) - { - BonusFallingList.push_back(TBonusFalling(blockPos)); - } - - - if (BonusGothroughTimer == 0.f) - { - if (j < jprev) - { - iBall->ReflectToDown(); - } - else - if (j > jprev) - { - iBall->ReflectToUp(); - } - else - if (i < iprev) - { - iBall->ReflectToRight(); - } - else - if (i > iprev) - { - iBall->ReflectToLeft(); - } - } - - - } - - } - - } - - if (blockListChanged) - { - ReloadBlockInstansingList(); - } - - if (mustReloadBalls) - { - ReloadBallInstancingList(); - } - else - { - RefreshBallInstancingList(); - } -} - -void TGameLevel::MultiplyBalls(vec2 pos, vec2 velocity) -{ - mat2 r; - vec2 v; - - for (int i = -2; i<=2; i++) - { - r = mat2(i*pi/4.f); - v = r*velocity; - - v.v[1] = max(static_cast(fabs(v.v[1])), 0.2f) * sign(v.v[1]); //Prevent velocityY from being ~= 0 - - BallList.push_back(TBall(pos, v, BallColor)); - } - - ReloadBallInstancingList(); -} - - -void TGameLevel::OnTapDown(vec2 pos) -{ - if (LevelState == CONST_LEVELSTATE_STANDBY) - { - if (TapInBackBtnArea(pos)) - { - SetPause(); - PrevLevelStateIsStandby = true; - } - else - { - - LevelState = CONST_LEVELSTATE_PLAYING; - BallList.begin()->Go(); - } - } - else if (LevelState == CONST_LEVELSTATE_PLAYING) - { - - - if (TapInBackBtnArea(pos)) - { - SetPause(); - } - else if (fabs(ReflectorPos.v[0] - pos.v[0])>64.f) - { - ReflectorPos.v[0] = pos.v[0]; - } - - } - else if (LevelState == CONST_LEVELSTATE_PAUSE) - { - if (pos.v[1] > 128.f) - { - ReleasePause(); - } - } -} - -void TGameLevel::OnTapUp(vec2 pos) -{ -} - -void TGameLevel::OnFling(vec2 slideSpeed) -{ - if (LevelState == CONST_LEVELSTATE_PAUSE) - { - OutScaleVelocity = slideSpeed.v[1]/320.f; - } -} - -void TGameLevel::OnScroll(vec2 shift) -{ - const float CONST_SCROLL_SCALE = 1.1f; - if (LevelState == CONST_LEVELSTATE_PLAYING || LevelState == CONST_LEVELSTATE_STANDBY) - { - ReflectorPos.v[0] -= CONST_SCROLL_SCALE*shift.v[0]; - } - else if (LevelState == CONST_LEVELSTATE_PAUSE) - { - - - OutScale += shift.v[1]/320.f; - - TryGoToMenu(); - } -} - -void TGameLevel::TryGoToMenu() -{ - if (OutScale < 0.5f) - { - OutScale = 0.5f; - LevelState = CONST_LEVELSTATE_NODRAW; - Application->GoFromGameToMenu(); - } - if (OutScale > 1.f) - { - OutScale = 1.f; - } -} diff --git a/jni/gamecode.h b/jni/gamecode.h deleted file mode 100644 index 48c7c1f..0000000 --- a/jni/gamecode.h +++ /dev/null @@ -1,205 +0,0 @@ -#ifndef GAMECODE_H_INCLUDED -#define GAMECODE_H_INCLUDED - -#include "include/Engine.h" -#include "game_area_interface.h" - -#include - -using namespace SE; - - -const int CONST_BRICKSTATE_VISIBLE = 3; -const int CONST_BRICKSTATE_DISAPPEAR = 2; -const int CONST_BRICKSTATE_INVISIBLE = 1; -const int CONST_BRICKSTATE_APPEAR = 0; - -const float CONST_BRICK_DISAPPEAR_TIME = 200.f; -const float CONST_BRICK_APPEAR_TIME = 200.f; - -const int CONST_BRICKMATRIX_WIDTH = 12; -const int CONST_BRICKMATRIX_HEIGHT = 13; -const float CONST_BRICK_WIDTH = 37.5f; -const float CONST_BRICK_HEIGHT = 0.5f*CONST_BRICK_WIDTH; -const float CONST_BRICK_SHIFT_X = 15.f; -const float CONST_BRICK_SHIFT_Y = -16.f; - -const float CONST_BONUS_APPEAR_TIME = 400.f; -const float CONST_BONUS_FALL_SPEED = 100.f; -const float CONST_BONUS_GOTHROUGH_TIME = 8000.f; -const float CONST_BONUS_CATCH_DISTANCE_X = 65.f; -const float CONST_BONUS_CATCH_DISTANCE_Y = 20.f; - -const float CONST_BONUS_FLOOR_TIME = 8000.f; -const float CONST_BONUS_FLOOR_APPEAR_SPEED = 50.f; - -const int CONST_BONUS_TYPE_MULTIPLIER = 0; -const int CONST_BONUS_TYPE_GOTHROUGH = 1; -const int CONST_BONUS_TYPE_FLOOR = 2; - - -class TBrick -{ -protected: - int InitialLocked; - int Locked; //0, 1 or 2 - int State; - float StateTimer; - vec4 Color; -public: - TBrick(); - void SetVisible(vec4 color, int locked); - void SetInvisible(); - void TryDrawAppear(int ipos, int jpos); - void Update(cardinal dt); - vec2 GetPosFrom(int ipos, int jpos); - vec4 GetColor(); - void Appear(vec4 color, int locked); - void Appear(); - void Hit(); - void Disappear(); - int GetLocked(); - bool CanReact(); -}; - -class TBonusFalling -{ -protected: - float Lifetime; - vec2 Pos; - std::string TexName; - int BonusType; //0 - multiplier, 1 - Go-through, 2 - floor -public: - TBonusFalling(vec2 pos); - vec2 GetPos(); - int GetType(); - void Draw(); - void Update(cardinal dt); -}; - -struct TBall -{ - vec2 Pos; - vec2 Velocity; - vec4 Color; - std::list TalePos; - - vec2 BallInBlock; - vec2 PrevBallInBlock; - - TBall(vec2 pos, vec2 velocity, vec4 color); - vec2 GetPos(); - vec2 GetVelocityVector(); - - void Go(); - - void ReflectToLeft(); - void ReflectToRight(); - void ReflectToUp(); - void ReflectToDown(); - - void TryReflectOnReflector(vec2 refPos); - - void Update(cardinal dt); -}; - -typedef std::pair PairColorTexture; - -struct TBlockInstansingList -{ - //color-texture ---> and list of triangles for this color - std::list> ColorBlockList; -}; - - -struct TBallInstancingList -{ - std::map BallAndGlowList; -}; - -class TGameLevel : public TGameAreaAncestor -{ -protected: - std::string BkgTexture; - std::string LevelScreenTexture; - std::string LevelFileName; - - vec2 ReflectorPos; - - int LevelState; - bool PrevLevelStateIsStandby; - float StateTimer; - - TBrick BlockMatrix[CONST_BRICKMATRIX_WIDTH][CONST_BRICKMATRIX_HEIGHT]; - TBlockInstansingList BlockInstansingList; - - bool TapInBackBtnArea(const vec2& pos); - - void ReloadBlockInstansingList(); - void SetFinished(); - void SetFinishFreeze(); - - void DrawBuffer(); - void DrawPauseButtons(); - - void DrawBallInstancingList(); - - bool RenderBufferReady; - - float OutScale; - - float OutScaleVelocity; - - void TryGoToMenu(); - - std::list BonusFallingList; - - std::list BallList; - - TBallInstancingList BallInstancingList; - - vec4 BallColor; - - void ReloadBallInstancingList(); - void RefreshBallInstancingList(); - - - void UpdateBallList(cardinal dt); - void MultiplyBalls(vec2 pos, vec2 velocity); - - vec2 GetBlock(const vec2& pos); - void InitLevel(); - - float BonusGothroughTimer; - float BonusFloorTimer; - float BonusFloorPosY; - - vec4 ParseColor(const std::string& s); - void ReloadLevel(); - -public: - TGameLevel(); - ~TGameLevel(); - - void FillWithFile(const std::string& filename); - - void SetStandBy(); - void SetLoading(const std::string& bkg, const std::string& levelscreen); - bool IsLoaded(); - - virtual void Draw(); - - void SetPause(); - bool IsPaused(); - void ReleasePause(); - - virtual void Update(cardinal dt); - virtual void OnTapDown(vec2 pos); - virtual void OnTapUp(vec2 pos); - virtual void OnFling(vec2 slideSpeed); - virtual void OnScroll(vec2 shift); -}; - - - -#endif diff --git a/jni/loadingcode.cpp b/jni/loadingcode.cpp deleted file mode 100644 index b9d628b..0000000 --- a/jni/loadingcode.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include "loadingcode.h" -#include "include/Engine.h" -#include "main_code.h" - -void TGameLoading::Draw() -{ - - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_LOADING_TEXTURE]); - Renderer->DrawRect(vec2(240.f - 128.f, 10.f), vec2(240.f + 128.f, 10.f + 64.f)); - - glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_LOGO_SMALL_TEXTURE]); - Renderer->DrawRect(vec2(480.f - 256.f+50.f, 320.f - 64.f), vec2(480.f+50.f, 320.f)); - - CheckGlError(); - -} diff --git a/jni/loadingcode.h b/jni/loadingcode.h deleted file mode 100644 index afa632e..0000000 --- a/jni/loadingcode.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef LOADINGCODE_H_INCLUDED -#define LOADINGCODE_H_INCLUDED - -#include "game_area_interface.h" - -using namespace SE; - -class TGameLoading : public TGameAreaAncestor -{ -public: - virtual void Draw(); -}; - - -#endif diff --git a/jni/main_code.cpp b/jni/main_code.cpp deleted file mode 100644 index 615e773..0000000 --- a/jni/main_code.cpp +++ /dev/null @@ -1,475 +0,0 @@ -#include "main_code.h" - -#include -#include -#include -#include - -#include "include/Engine.h" - -#include "menucode.h" - -#include "main_code.h" - -boost::signal OnTapUpSignal; -boost::signal OnTapDownSignal; -boost::signal OnFlingSignal; -boost::signal OnScrollSignal; - -boost::signal OnDrawSignal; - - -const std::string CONST_BLOCK_TEXTURE1 = "block1"; -const std::string CONST_BLOCK_TEXTURE2 = "block2"; -const std::string CONST_BLOCK_TEXTURE3 = "block3"; - -const std::string CONST_BONUS_GOTHROUGH_TEXTURE = "bonus_gothrough"; -const std::string CONST_BONUS_MULTIPLIER_TEXTURE = "bonus_multiplier"; -const std::string CONST_BONUS_FLOOR_TEXTURE = "bonus_floor"; - -const std::string CONST_BALL_TEXTURE = "ball"; -const std::string CONST_BALLGLOW_TEXTURE = "ball_glow"; - -const std::string CONST_REFLECTOR_TEXTURE = "reflector"; - -const std::string CONST_WALL_LEFT_TEXTURE = "wall_left"; -const std::string CONST_WALL_RIGHT_TEXTURE = "wall_right"; -const std::string CONST_WALL_UP_TEXTURE = "wall_up"; -const std::string CONST_WALL_BONUS_TEXTURE = "wall_bonus"; - -const std::string CONST_BACK_BTN_TEXTURE = "back_btn"; -const std::string CONST_SLIDE_UP_BTN_TEXTURE = "slide_up_btn"; -const std::string CONST_TAP_TO_CONTINUE_BTN_TEXTURE = "tap_to_continue_btn"; -const std::string CONST_LOADING_TEXTURE = "loading"; -const std::string CONST_LOGO_SMALL_TEXTURE = "logo_small"; -const std::string CONST_CREDITS_TEXTURE = "credits"; - -const float CONST_CREDITS_SHOW_TIME = 150.f; - -TAndroidApplication* Application; - -void TAndroidApplication::InnerInit() -{ - - Application = this; - -#ifdef TARGET_WIN32 -#ifdef NDEBUG - ST::PathToResources = "resources/"; -#else - ST::PathToResources = "../../../assets/"; -#endif -#endif - -#ifdef TARGET_IOS - ST::PathToResources = "assets/"; -#endif - - if (Console != NULL) - { - *Console<<"APP INIT\n"; - } - srand (static_cast(time(NULL))); - GameState = CONST_GAMESTATE_PRELOADING; - StateTimer = 0.f; - - - ResourceManager->ShaderManager.AddShader("DefaultShader", "shader1vertex.txt", "shader1fragment.txt"); - ResourceManager->ShaderManager.AddShader("FrameShader", "frameshader_vertex.txt", "frameshader_fragment.txt"); - ResourceManager->ShaderManager.AddShader("BrickShader", "brickshader_vertex.txt", "brickshader_fragment.txt"); - Renderer->PushShader("DefaultShader"); - - ResourceManager->TexList.AddTexture(CONST_LOADING_TEXTURE + ".png", CONST_LOADING_TEXTURE); - ResourceManager->TexList.AddTexture(CONST_LOGO_SMALL_TEXTURE + ".png", CONST_LOGO_SMALL_TEXTURE); - - ResourceManager->TexList.AddTexture("console_bkg.bmp"); - - ResourceManager->FrameManager.AddFrameRenderBuffer("LevelBuffer", 512, 512); - - OnDrawSignal.connect(boost::bind(&TGameLoading::Draw, boost::ref(GameLoading))); - Inited = true; - - Renderer->SetOrthoProjection(); - - Renderer->SetFullScreenViewport(); - - - -} - -void TAndroidApplication::InnerDeinit() -{ - Inited = false; - Loaded = false; - if (Console != NULL) - { - *Console<<"APP DEINIT\n"; - } - - OnTapUpSignal.disconnect(boost::bind(&TGameLevel::OnTapUp, boost::ref(GameLevel), _1)); - OnTapUpSignal.disconnect(boost::bind(&TGameMenu::OnTapUp, boost::ref(Menu), _1)); - - OnFlingSignal.disconnect(boost::bind(&TGameLevel::OnFling, boost::ref(GameLevel), _1)); - OnFlingSignal.disconnect(boost::bind(&TGameMenu::OnFling, boost::ref(Menu), _1)); - - OnScrollSignal.disconnect(boost::bind(&TGameLevel::OnScroll, boost::ref(GameLevel), _1)); - OnScrollSignal.disconnect(boost::bind(&TGameMenu::OnScroll, boost::ref(Menu), _1)); - - OnTapDownSignal.disconnect(boost::bind(&TGameLevel::OnTapDown, boost::ref(GameLevel), _1)); - OnTapDownSignal.disconnect(boost::bind(&TGameMenu::OnTapDown, boost::ref(Menu), _1)); - OnTapDownSignal.disconnect(boost::bind(&TGameCredits::OnTapDown, boost::ref(GameCredits), _1)); - - - OnDrawSignal.disconnect(boost::bind(&TGameLoading::Draw, boost::ref(GameLoading))); - OnDrawSignal.disconnect(boost::bind(&TGameMenu::Draw, boost::ref(Menu))); - OnDrawSignal.disconnect(boost::bind(&TGameLevel::Draw, boost::ref(GameLevel))); - OnDrawSignal.disconnect(boost::bind(&TGameCredits::Draw, boost::ref(GameCredits))); - -} - -void TAndroidApplication::InnerOnTapDown(vec2 p) -{ - OnTapDownSignal(vec2(p.v[0], p.v[1])); -} - -void TAndroidApplication::InnerOnTapUp(vec2 p) -{ - OnTapUpSignal(vec2(p.v[0], p.v[1])); -} - -void TAndroidApplication::InnerOnMove(vec2 shift) -{ - OnScrollSignal(shift); -} - -void TAndroidApplication::OnFling(vec2 v) -{ -} - - -void TAndroidApplication::ApplySignalsToMenu() -{ - - OnTapUpSignal.connect(boost::bind(&TGameMenu::OnTapUp, boost::ref(Menu), _1)); - OnFlingSignal.connect(boost::bind(&TGameMenu::OnFling, boost::ref(Menu), _1)); - OnScrollSignal.connect(boost::bind(&TGameMenu::OnScroll, boost::ref(Menu), _1)); - OnTapDownSignal.connect(boost::bind(&TGameMenu::OnTapDown, boost::ref(Menu), _1)); - -} - - -void TAndroidApplication::DisapplySignalsToMenu() -{ - OnTapUpSignal.disconnect(boost::bind(&TGameMenu::OnTapUp, boost::ref(Menu), _1)); - OnFlingSignal.disconnect(boost::bind(&TGameMenu::OnFling, boost::ref(Menu), _1)); - OnScrollSignal.disconnect(boost::bind(&TGameMenu::OnScroll, boost::ref(Menu), _1)); - OnTapDownSignal.disconnect(boost::bind(&TGameMenu::OnTapDown, boost::ref(Menu), _1)); -} - -void TAndroidApplication::ApplySignalsToGame() -{ - - OnTapUpSignal.connect(boost::bind(&TGameLevel::OnTapUp, boost::ref(GameLevel), _1)); - OnFlingSignal.connect(boost::bind(&TGameLevel::OnFling, boost::ref(GameLevel), _1)); - OnScrollSignal.connect(boost::bind(&TGameLevel::OnScroll, boost::ref(GameLevel), _1)); - OnTapDownSignal.connect(boost::bind(&TGameLevel::OnTapDown, boost::ref(GameLevel), _1)); - -} - -void TAndroidApplication::DisapplySignalsToGame() -{ - OnTapUpSignal.disconnect(boost::bind(&TGameLevel::OnTapUp, boost::ref(GameLevel), _1)); - OnFlingSignal.disconnect(boost::bind(&TGameLevel::OnFling, boost::ref(GameLevel), _1)); - OnScrollSignal.disconnect(boost::bind(&TGameLevel::OnScroll, boost::ref(GameLevel), _1)); - OnTapDownSignal.disconnect(boost::bind(&TGameLevel::OnTapDown, boost::ref(GameLevel), _1)); - -} - -void TAndroidApplication::ApplySignalsToCredits() -{ - OnTapDownSignal.connect(boost::bind(&TGameCredits::OnTapDown, boost::ref(GameCredits), _1)); -} - - -void TAndroidApplication::DisapplySignalsToCredits() -{ - OnTapDownSignal.disconnect(boost::bind(&TGameCredits::OnTapDown, boost::ref(GameCredits), _1)); -} - -void TAndroidApplication::LoadResources() -{ - - TextureNamesToLoad.clear(); - - TextureNamesToLoad.push_back(std::pair("main_menu_bkg_left.png", "main_menu_bkg_left")); - TextureNamesToLoad.push_back(std::pair("main_menu_bkg_right.png", "main_menu_bkg_right")); - TextureNamesToLoad.push_back(std::pair("select_level.png", "select_level")); - TextureNamesToLoad.push_back(std::pair("shutterstock1.png", "shutterstock1")); - TextureNamesToLoad.push_back(std::pair("shutterstock2.png", "shutterstock2")); - TextureNamesToLoad.push_back(std::pair("shutterstock3.png", "shutterstock3")); - TextureNamesToLoad.push_back(std::pair("shutterstock4.png", "shutterstock4")); - TextureNamesToLoad.push_back(std::pair("shutterstock5.png", "shutterstock5")); - TextureNamesToLoad.push_back(std::pair("shutterstock6.png", "shutterstock6")); - TextureNamesToLoad.push_back(std::pair("shutterstock7.png", "shutterstock7")); - TextureNamesToLoad.push_back(std::pair("shutterstock8.png", "shutterstock8")); - TextureNamesToLoad.push_back(std::pair("shutterstock9.png", "shutterstock9")); - - TextureNamesToLoad.push_back(std::pair("shutterstock10.png", "shutterstock10")); - TextureNamesToLoad.push_back(std::pair("shutterstock11.png", "shutterstock11")); - TextureNamesToLoad.push_back(std::pair("shutterstock12.png", "shutterstock12")); - TextureNamesToLoad.push_back(std::pair("levelshot1.png", "levelshot1")); - TextureNamesToLoad.push_back(std::pair("levelshot2.png", "levelshot2")); - TextureNamesToLoad.push_back(std::pair("levelshot3.png", "levelshot3")); - TextureNamesToLoad.push_back(std::pair("levelshot4.png", "levelshot4")); - TextureNamesToLoad.push_back(std::pair("levelshot5.png", "levelshot5")); - TextureNamesToLoad.push_back(std::pair("levelshot6.png", "levelshot6")); - TextureNamesToLoad.push_back(std::pair("levelshot7.png", "levelshot7")); - TextureNamesToLoad.push_back(std::pair("levelshot8.png", "levelshot8")); - TextureNamesToLoad.push_back(std::pair("levelshot9.png", "levelshot9")); - TextureNamesToLoad.push_back(std::pair("levelshot10.png", "levelshot10")); - TextureNamesToLoad.push_back(std::pair("levelshot11.png", "levelshot11")); - TextureNamesToLoad.push_back(std::pair("levelshot12.png", "levelshot12")); - TextureNamesToLoad.push_back(std::pair("game_end.png", "game_end")); - - TextureNamesToLoad.push_back(std::pair(CONST_BLOCK_TEXTURE1 + ".png", CONST_BLOCK_TEXTURE1)); - TextureNamesToLoad.push_back(std::pair(CONST_BLOCK_TEXTURE2 + ".png", CONST_BLOCK_TEXTURE2)); - TextureNamesToLoad.push_back(std::pair(CONST_BLOCK_TEXTURE3 + ".png", CONST_BLOCK_TEXTURE3)); - TextureNamesToLoad.push_back(std::pair(CONST_BONUS_GOTHROUGH_TEXTURE + ".png", CONST_BONUS_GOTHROUGH_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_BONUS_MULTIPLIER_TEXTURE + ".png", CONST_BONUS_MULTIPLIER_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_BONUS_FLOOR_TEXTURE + ".png", CONST_BONUS_FLOOR_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_BALL_TEXTURE + ".png", CONST_BALL_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_BALLGLOW_TEXTURE + ".png", CONST_BALLGLOW_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_WALL_LEFT_TEXTURE + ".png", CONST_WALL_LEFT_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_WALL_RIGHT_TEXTURE + ".png", CONST_WALL_RIGHT_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_WALL_UP_TEXTURE + ".png", CONST_WALL_UP_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_WALL_BONUS_TEXTURE + ".png", CONST_WALL_BONUS_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_REFLECTOR_TEXTURE + ".png", CONST_REFLECTOR_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_BACK_BTN_TEXTURE + ".png", CONST_BACK_BTN_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_SLIDE_UP_BTN_TEXTURE + ".png", CONST_SLIDE_UP_BTN_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_TAP_TO_CONTINUE_BTN_TEXTURE + ".png", CONST_TAP_TO_CONTINUE_BTN_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_CREDITS_TEXTURE + ".png", CONST_CREDITS_TEXTURE)); - -#ifdef TARGET_IOS - ResourceManager->SoundManager.LoadMusicLooped("level1ogg.ogg"); -#else - ResourceManager->SoundManager.LoadMusic("level1ogg.ogg"); -#endif - - ResourceManager->FontManager.AddFont("droid_sans14", "droid_sans14_font_bitmap.png", "droid_sans14_font_charmap.txt"); - ResourceManager->FontManager.PushFont("droid_sans14"); - - TryLoadSavedGame(); - -} - -void TAndroidApplication::TryLoadSavedGame() -{ - - std::string fileName = GetFilePathUserData("progress.txt"); - - FILE* file = fopen(fileName.c_str(), "r"); - if (file != NULL) - { - char line[100]; - char* r; - r = fgets(line, 100, file); - if (r != NULL) - { - Menu.SetMenuItemCount(toint(r)); - } - fclose(file); - } -} - -void TAndroidApplication::TrySaveGame() -{ - - std::string fileName = GetFilePathUserData("progress.txt"); - - std::string s = tostr(Menu.GetMenuItemCount()); - FILE* file = fopen(fileName.c_str(), "w"); - if (file != NULL) - { - fputs(s.c_str(), file); - fflush(file); - fclose(file); - } - -} - - - -void TAndroidApplication::InnerDraw() -{ - - glDisable(GL_DEPTH_TEST); - - - OnDrawSignal(); - - -} - - -void TAndroidApplication::InnerUpdate(cardinal dt) -{ - - if (GameState == CONST_GAMESTATE_PRELOADING) - { - StateTimer += dt/1000.f; - if (StateTimer >= 1.f) - { - LoadResources(); - GameState = CONST_GAMESTATE_LOADING; - StateTimer = 0.f; - } - } - else if (GameState == CONST_GAMESTATE_LOADING) - { - StateTimer += dt/1000.f; - if (StateTimer >= 1.f) - { - StateTimer -= 1.f; - } - - if (TextureNamesToLoad.size() != 0) - { - ResourceManager->TexList.AddTexture(TextureNamesToLoad.begin()->first, TextureNamesToLoad.begin()->second); - TextureNamesToLoad.erase(TextureNamesToLoad.begin()); - } - else - { - GameState = CONST_GAMESTATE_MENU; - ApplySignalsToMenu(); - OnDrawSignal.disconnect(boost::bind(&TGameLoading::Draw, boost::ref(GameLoading))); - OnDrawSignal.connect(0, boost::bind(&TGameMenu::Draw, boost::ref(Menu))); - StateTimer = 0.f; - Loaded = true; - } - } - else if (GameState == CONST_GAMESTATE_LEVEL) - { - GameLevel.Update(dt); - } - else if (GameState == CONST_GAMESTATE_MENU) - { - Menu.Update(dt); - } - else if (GameState == CONST_GAMESTATE_FROM_MENU_TO_LEVEL) - { - GameLevel.Update(dt); - if (GameLevel.IsLoaded()) - { - GameState = CONST_GAMESTATE_LEVEL; - OnDrawSignal.disconnect(boost::bind(&TGameMenu::Draw, boost::ref(Menu))); - //CONNECT SLOT - DisapplySignalsToMenu(); - ApplySignalsToGame(); - } - } - else if (GameState == CONST_GAMESTATE_FROM_MENU_TO_CREDITS) - { - Menu.Update(dt); - GameCredits.Update(dt); - StateTimer -= dt; - if (StateTimer <= 0.f) - { - GameState = CONST_GAMESTATE_CREDITS; - OnDrawSignal.disconnect(boost::bind(&TGameMenu::Draw, boost::ref(Menu))); - ApplySignalsToCredits(); - StateTimer = 0.f; - } - } - else if (GameState == CONST_GAMESTATE_CREDITS) - { - GameCredits.Update(dt); - } - else if (GameState == CONST_GAMESTATE_FROM_CREDITS_TO_MENU) - { - Menu.Update(dt); - GameCredits.Update(dt); - StateTimer -= dt; - if (StateTimer <= 0.f) - { - GameState = CONST_GAMESTATE_MENU; - StateTimer = 0.f; - ApplySignalsToMenu(); - OnDrawSignal.disconnect(boost::bind(&TGameCredits::Draw, boost::ref(GameCredits))); - } - } -} - - -void TAndroidApplication::GoFromMenuToGame(int level) -{ - //#ifndef TARGET_IOS - ResourceManager->SoundManager.PlayMusicLooped("level1ogg.ogg"); - -//#endif - GameLevel.FillWithFile(ST::PathToResources + "level"+tostr(level+1)+".txt"); - GameLevel.SetLoading("shutterstock" + tostr(level+1), "levelshot"+tostr(level+1)); - GameState = CONST_GAMESTATE_FROM_MENU_TO_LEVEL; - OnDrawSignal.connect(1, boost::bind(&TGameLevel::Draw, boost::ref(GameLevel))); - - DisapplySignalsToMenu(); - -} - -void TAndroidApplication::GoFromGameToMenu() -{ - //#ifndef TARGET_IOS - ResourceManager->SoundManager.StopMusic("level1ogg.ogg"); -//#endif - TrySaveGame(); - DisapplySignalsToGame(); - ApplySignalsToMenu(); - GameState = CONST_GAMESTATE_MENU; - OnDrawSignal.disconnect(boost::bind(&TGameLevel::Draw, boost::ref(GameLevel))); -} - -void TAndroidApplication::GoFromMenuToCredits() -{ - GameState = CONST_GAMESTATE_FROM_MENU_TO_CREDITS; - StateTimer = CONST_CREDITS_SHOW_TIME; - GameCredits.StartAppear(); - OnDrawSignal.connect(1, boost::bind(&TGameCredits::Draw, boost::ref(GameCredits))); - DisapplySignalsToMenu(); - -} - -void TAndroidApplication::GoFromCreditsToMenu() -{ - - GameState = CONST_GAMESTATE_FROM_CREDITS_TO_MENU; - StateTimer = CONST_CREDITS_SHOW_TIME; - GameCredits.StartDisappear(); - OnDrawSignal.connect(0, boost::bind(&TGameMenu::Draw, boost::ref(Menu))); - - DisapplySignalsToCredits(); -} - -void TAndroidApplication::MarkSetGameLevelPause() -{ - OnDrawSignal.connect(0, boost::bind(&TGameMenu::Draw, boost::ref(Menu))); -} - -void TAndroidApplication::MarkReleaseGameLevelPause() -{ - OnDrawSignal.disconnect(boost::bind(&TGameMenu::Draw, boost::ref(Menu))); -} - - -void TAndroidApplication::OpenNextLevel() -{ - Menu.OpenNextLevel(); -} - -bool TAndroidApplication::IsLoaded() -{ - return Loaded; -} - -bool TAndroidApplication::IsInited() -{ - return Inited; -} diff --git a/jni/main_code.h b/jni/main_code.h deleted file mode 100644 index cf95069..0000000 --- a/jni/main_code.h +++ /dev/null @@ -1,153 +0,0 @@ -#ifndef MAIN_CODE_H_INCLUDED -#define MAIN_CODE_H_INCLUDED - -#ifdef TARGET_ANDROID -#include "android_api.h" -#endif - -#ifdef TARGET_WIN32 -#define NOMINMAX 1 -#include -#undef NOMINMAX -#endif - -#include -#include -#include - -#include "boost/shared_ptr.hpp" -#include "boost/thread/thread.hpp" -#include "boost/assign.hpp" -#include "boost/bind.hpp" - -#include "include/Engine.h" - -#include "boost/signal.hpp"//Signal must be included after asio - -#include "gamecode.h" -#include "menucode.h" -#include "creditscode.h" -#include "loadingcode.h" - -using namespace SE; - - -extern boost::signal OnTapUpSignal; -extern boost::signal OnTapDownSignal; -extern boost::signal OnFlingSignal; -extern boost::signal OnScrollSignal; - -extern boost::signal OnDrawSignal; - -extern const std::string CONST_BLOCK_TEXTURE1; -extern const std::string CONST_BLOCK_TEXTURE2; -extern const std::string CONST_BLOCK_TEXTURE3; - -extern const std::string CONST_BONUS_GOTHROUGH_TEXTURE; -extern const std::string CONST_BONUS_MULTIPLIER_TEXTURE; -extern const std::string CONST_BONUS_FLOOR_TEXTURE; - -extern const std::string CONST_BALL_TEXTURE; -extern const std::string CONST_BALLGLOW_TEXTURE; - -extern const std::string CONST_WALL_LEFT_TEXTURE; -extern const std::string CONST_WALL_RIGHT_TEXTURE; -extern const std::string CONST_WALL_UP_TEXTURE; -extern const std::string CONST_WALL_BONUS_TEXTURE; - - -extern const std::string CONST_REFLECTOR_TEXTURE; - -extern const std::string CONST_BACK_BTN_TEXTURE; - -extern const std::string CONST_SLIDE_UP_BTN_TEXTURE; -extern const std::string CONST_TAP_TO_CONTINUE_BTN_TEXTURE; - -extern const std::string CONST_BACK_BTN_TEXTURE; -extern const std::string CONST_SLIDE_UP_BTN_TEXTURE; -extern const std::string CONST_TAP_TO_CONTINUE_BTN_TEXTURE; -extern const std::string CONST_LOADING_TEXTURE; -extern const std::string CONST_LOGO_SMALL_TEXTURE; -extern const std::string CONST_CREDITS_TEXTURE; - - - -const int CONST_GAMESTATE_LEVEL = 1; -const int CONST_GAMESTATE_MENU = 0; -const int CONST_GAMESTATE_FROM_MENU_TO_LEVEL = 2; -const int CONST_GAMESTATE_FROM_MENU_TO_CREDITS = 3; -const int CONST_GAMESTATE_CREDITS = 4; -const int CONST_GAMESTATE_FROM_CREDITS_TO_MENU = 5; -const int CONST_GAMESTATE_LOADING = 6; -const int CONST_GAMESTATE_PRELOADING = 7; - - -class TAndroidApplication : public TApplication -{ -protected: - TGameMenu Menu; - TGameLevel GameLevel; - TGameCredits GameCredits; - TGameLoading GameLoading; - - int GameState; - float StateTimer; - - void TryLoadSavedGame(); - void TrySaveGame(); - - bool Inited; - - std::vector > TextureNamesToLoad; - - void ApplySignalsToMenu(); - void DisapplySignalsToMenu(); - void ApplySignalsToGame(); - void DisapplySignalsToGame(); - void ApplySignalsToCredits(); - void DisapplySignalsToCredits(); - -public: - bool Loaded; - - TAndroidApplication() : TApplication(), Loaded(false), Inited(false) { } - - virtual void InnerInit(); - - virtual void InnerDeinit(); - - virtual void InnerDraw(); - - virtual void InnerUpdate(cardinal dt); - - void GoFromMenuToGame(int level); - void GoFromGameToMenu(); - void GoFromMenuToCredits(); - void GoFromCreditsToMenu(); - void MarkSetGameLevelPause(); - void MarkReleaseGameLevelPause(); - - void OpenNextLevel(); - - bool IsLoaded(); - - bool IsInited(); - - void LoadResources(); - - virtual void InnerOnTapDown(vec2 p); - - virtual void InnerOnTapUp(vec2 p); - - virtual void InnerOnMove(vec2 shift); - - virtual void OnFling(vec2 v); - -}; - - -extern TAndroidApplication* Application; - - - -#endif diff --git a/jni/menucode.cpp b/jni/menucode.cpp deleted file mode 100644 index 0185bc6..0000000 --- a/jni/menucode.cpp +++ /dev/null @@ -1,207 +0,0 @@ -#include "menucode.h" -#include "main_code.h" - -const float CONST_SPEED_NEG_ACCELERATION_K = 0.03f; - -const float CONST_MENU_POS_K = 0.25f; - -const float CONST_MENU_WINDOW_DISTANCE = 240.f + 40.f; - -const float CONST_SHIFT_ON_SIDE = 0.f; - -TGameMenu::TGameMenu() - : MenuSpeed(0) - , MenuPos(0) - , HoldToTap(false) - , MenuItemCount(1) - , SelectedGame(-1) -{ -} - - -void TGameMenu::Draw() -{ - CheckGlError("Draw TGameMenu"); - RenderUniform1i("sel", 0); - RenderUniform1f("Transparency", 1.f); - float bkgShift = MenuPos*0.1f - 100.f; - glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList["main_menu_bkg_left"]); - Renderer->DrawRect(vec2(bkgShift,0.f), vec2(480.f+bkgShift,320.f)); - glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList["main_menu_bkg_right"]); - Renderer->DrawRect(vec2(480.f+bkgShift,0.f), vec2(960.f+bkgShift,320.f)); - - - if (SelectedGame == 0) - { - RenderUniform1i("sel", 1); - } - else - { - RenderUniform1i("sel", 0); - } - - for (int i=0; iTexList["levelshot"+tostr(i+1)]); - Renderer->DrawRect(vec2(160.f+MenuPos+CONST_MENU_WINDOW_DISTANCE*i,80.f), vec2(160.f+240.f+MenuPos+CONST_MENU_WINDOW_DISTANCE*i, 240.f)); - } - - if (MenuItemCount == 12) - { - glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList["game_end"]); - Renderer->DrawRect(vec2(160.f+MenuPos+CONST_MENU_WINDOW_DISTANCE*12,160.f - 64.f), vec2(160.f+256.f+MenuPos+CONST_MENU_WINDOW_DISTANCE*12, 160.f + 64.f)); - - } - - - - glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList["select_level"]); - Renderer->DrawRect(vec2(240.f-128.f, 241.f), vec2(240.f+128.f, 305.f)); - - glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList["logo_small"]); - Renderer->DrawRect(vec2(240.f-128.f+15.f, 0.f), vec2(240.f+128.f+15.f, 64.f)); - - CheckGlError("Draw TGameMenu 2"); - - -} - -void TGameMenu::Update(cardinal dt) -{ - if (HoldToTap) - return; - - float k; - - MenuPos = MenuPos + MenuSpeed*dt/1000.f; - - int menuItemToShowCount; - - if (MenuItemCount == 12) - { - menuItemToShowCount = 13; - } - else - { - menuItemToShowCount = MenuItemCount; - } - - float acc; - - if (MenuItemCount == 1) - { - k = 3; - } - else - { - k = fabs( - MenuPos - ((menuItemToShowCount-1)*CONST_MENU_WINDOW_DISTANCE*0.5f)) / ((MenuItemCount-1)*CONST_MENU_WINDOW_DISTANCE*0.5f); - } - - acc = -MenuSpeed * CONST_SPEED_NEG_ACCELERATION_K * k; - - - float xleft = (- MenuPos + CONST_SHIFT_ON_SIDE - (menuItemToShowCount-1)*CONST_MENU_WINDOW_DISTANCE); - - if (xleft < 0) - { - xleft = 0; - } - - acc += xleft*CONST_MENU_POS_K; - - float xright = (MenuPos - CONST_SHIFT_ON_SIDE); - - if (xright < 0) - { - xright = 0; - } - - acc -= xright*CONST_MENU_POS_K; - - if ((MenuSpeed + acc*dt) * MenuSpeed < 0) //Check if MenuSpeed changes direction - { - MenuSpeed = 0; - } - else - { - MenuSpeed += acc*dt; - } - - -} - -void TGameMenu::OnTapDown(vec2 pos) -{ - - if (pos.v[1]<64.f && pos.v[0]>=265.f-128.f && pos.v[0]<=265.f+128.f) - { - Application->GoFromMenuToCredits(); - return; - } - - vec2 realPos = pos - vec2(MenuPos, 0); - - if (realPos.v[1] >= 80.f && realPos.v[1] <= 240.f) - { - float x = realPos.v[0] - 160.f; - - int p = 0; - while (x >280.f) - { - x -= 280.f; - p++; - } - - if (x <= 240.f && x >= 0.f && (pGoFromMenuToGame(SelectedGame); - SelectedGame = -1; - } -} - - -void TGameMenu::OnFling(vec2 slideSpeed) -{ - HoldToTap = false; - MenuSpeed = slideSpeed.v[0]; -} - -void TGameMenu::OnScroll(vec2 shift) -{ - MenuPos = MenuPos - shift.v[0]; -} - -void TGameMenu::OpenNextLevel() -{ - if (MenuItemCount < 12) - { - MenuItemCount++; - } -} - -int TGameMenu::GetMenuItemCount() -{ - return MenuItemCount; -} - -void TGameMenu::SetMenuItemCount(int menuItemCount) -{ - MenuItemCount = menuItemCount; -} diff --git a/jni/menucode.h b/jni/menucode.h deleted file mode 100644 index f5594ac..0000000 --- a/jni/menucode.h +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef MENUCODE_H_INCLUDED -#define MENUCODE_H_INCLUDED - -#include "include/Engine.h" -#include "game_area_interface.h" - -using namespace SE; - - -class TGameMenu : public TGameAreaAncestor -{ -protected: - float MenuSpeed; - float MenuPos; - - bool HoldToTap; - - int MenuItemCount; - - int SelectedGame; - - -public: - TGameMenu(); - virtual void Draw(); - virtual void Update(cardinal dt); - virtual void OnTapDown(vec2 pos); - virtual void OnTapUp(vec2 pos); - virtual void OnFling(vec2 slideSpeed); - virtual void OnScroll(vec2 shift); - - void OpenNextLevel(); - int GetMenuItemCount(); - void SetMenuItemCount(int menuItemCount); - -}; - - - -#endif diff --git a/res/drawable-hdpi/ic_menu_template.png b/res/drawable-hdpi/ic_menu_template.png deleted file mode 100644 index 1e28f93d8bf36cfbf1dff6efe4b4e1d0983dd616..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3527 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 BkiY-{ diff --git a/res/drawable-ldpi/ic_menu_template.png b/res/drawable-ldpi/ic_menu_template.png deleted file mode 100644 index 6a93cf262ac93c29c5e5e9a6351cb91254a24143..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1460 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 diff --git a/res/values/strings.xml b/res/values/strings.xml deleted file mode 100644 index e3f7331..0000000 --- a/res/values/strings.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - GL2JNI - - - diff --git a/src/fishrungames/doublehitballs/GL2JNIActivity.java b/src/fishrungames/doublehitballs/GL2JNIActivity.java deleted file mode 100644 index 5ae46e0..0000000 --- a/src/fishrungames/doublehitballs/GL2JNIActivity.java +++ /dev/null @@ -1,92 +0,0 @@ -package fishrungames.doublehitballs; - -import fishrungames.engine.EngineWrapper; - -//Deprecated -//import fishrungames.doublehitballs.R; - -import android.app.Activity; -import android.content.pm.ApplicationInfo; -import android.content.pm.PackageManager; -import android.content.pm.PackageManager.NameNotFoundException; -import android.os.Bundle; -import android.view.GestureDetector; -import android.view.KeyEvent; -import android.view.GestureDetector.SimpleOnGestureListener; -import android.view.MotionEvent; - -//Deprecated -//import java.lang.reflect.Field; - - -public class GL2JNIActivity extends Activity -{ - - GLView mView; - - @Override - protected void onCreate(Bundle icicle) - { - - super.onCreate(icicle); - - EngineWrapper.LoadSalmonEngineLibrary(); - EngineWrapper.SetActivityInstance(this); - EngineWrapper.SetupEnviroment(); - - String apkFilePath = null; - ApplicationInfo appInfo = null; - PackageManager packMgmr = this.getPackageManager(); - try { - appInfo = packMgmr.getApplicationInfo("fishrungames.doublehitballs", 0); - } catch (NameNotFoundException e) { - - e.printStackTrace(); - - throw new RuntimeException("Unable to locate assets, aborting..."); - } - apkFilePath = appInfo.sourceDir; - - EngineWrapper.SetupApkFilePath(apkFilePath); - - mView = new GLView(getApplication()); - - setContentView(mView); - - EngineWrapper.SetView(mView); - - } - - @Override - protected void onPause() - { - EngineWrapper.CallDestroy(); - super.onPause(); - mView.onPause(); - } - - @Override - protected void onResume() - { - super.onResume(); - mView.onResume(); - } - - @Override - protected void onStop() - { - super.onStop(); - } - - public boolean onTouchEvent (MotionEvent event) - { - EngineWrapper.ProcessTouchEvent(event); - return true; - } - - public boolean onKeyDown(int keyCode, KeyEvent event) - { - EngineWrapper.ProcessKeyDown(keyCode, event); - return super.onKeyDown(keyCode, event); - } -} \ No newline at end of file diff --git a/src/fishrungames/doublehitballs/GLView.java b/src/fishrungames/doublehitballs/GLView.java deleted file mode 100644 index 0e07f13..0000000 --- a/src/fishrungames/doublehitballs/GLView.java +++ /dev/null @@ -1,70 +0,0 @@ -package fishrungames.doublehitballs; - - -import java.util.Calendar; - -import android.content.Context; -import android.opengl.GLSurfaceView; - -import javax.microedition.khronos.egl.EGLConfig; -import javax.microedition.khronos.opengles.GL10; - -import fishrungames.engine.GLViewAncestor; - -import fishrungames.engine.EngineWrapper; - -class GLView extends GLViewAncestor -{ - static long lastTimeStamp; - static boolean gameIsInited = false; - - public GLView(Context context) - { - //Change this method? Don't forget to change method below! - super(context); - init(false, 0, 0); - } - - public GLView(Context context, boolean translucent, int depth, int stencil) - { - //Change this method? Don't forget to change method above! - super(context); - init(translucent, depth, stencil); - } - - public void init(boolean translucent, int depth, int stencil) - { - super.init(translucent, depth, stencil); - setRenderer(new Renderer()); - Calendar c = Calendar.getInstance(); - lastTimeStamp = c.getTimeInMillis(); - gameIsInited = true; - } - - private static class Renderer implements GLSurfaceView.Renderer - { - public void onDrawFrame(GL10 gl) - { - if (gameIsInited) - { - Calendar c = Calendar.getInstance(); - - long currentTimeStamp = c.getTimeInMillis(); - - EngineWrapper.Update(currentTimeStamp - lastTimeStamp); - - lastTimeStamp = currentTimeStamp; - } - } - - public void onSurfaceChanged(GL10 gl, int width, int height) - { - JniWrapper.Init(width,height); - } - - public void onSurfaceCreated(GL10 gl, EGLConfig config) - { - //Do nothing. - } - } -} \ No newline at end of file diff --git a/src/fishrungames/doublehitballs/JniWrapper.java b/src/fishrungames/doublehitballs/JniWrapper.java deleted file mode 100644 index 30fea95..0000000 --- a/src/fishrungames/doublehitballs/JniWrapper.java +++ /dev/null @@ -1,12 +0,0 @@ -package fishrungames.doublehitballs; - -public class JniWrapper -{ - static { - System.loadLibrary("gl2jni"); - } - - - public static native void Init(int width, int height); - -} \ No newline at end of file