Compare commits

...

10 Commits
master ... dev

62 changed files with 2232 additions and 660 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

35
jni/Sounds.cpp Executable file
View File

@ -0,0 +1,35 @@
#include "Sounds.h"
#include <jni.h>
static JNIEnv* env = NULL;
static jclass jSounds = NULL;
/** BackgroundSound */
void playBackgroundSound() {
jmethodID method = env->GetStaticMethodID(jSounds, "JniPlayBackgroundSound", "()V");
env->CallStaticVoidMethod(jSounds, method);
}
void stopBackgroundSound () {
jmethodID method = env->GetStaticMethodID(jSounds, "JniStopBackgroundSound", "()V");
env->CallStaticVoidMethod(jSounds, method);
}
/** GameSound - Gunshot */
void playGameSoundGunshot() {
jmethodID method = env->GetStaticMethodID(jSounds, "JniPlayGunshotSound", "()V");
env->CallStaticVoidMethod(jSounds, method);
}
void stopGameSoundGunshot() {
jmethodID method = env->GetStaticMethodID(jSounds, "JniStopGunshotSound", "()V");
env->CallStaticVoidMethod(jSounds, method);
}
JNIEXPORT void JNICALL Java_com_fishrungames_crystalofrhylil_sounds_JniSoundCalls_initJniSounds(JNIEnv *pEnv, jobject pThis) {
env = pEnv;
jSounds = env->FindClass("com/fishrungames/crystalofrhyli/sounds/JniSoundCalls");
playBackgroundSound();
}

7
jni/Sounds.h Executable file
View File

@ -0,0 +1,7 @@
#include <jni.h>
extern "C" {
JNIEXPORT void JNICALL Java_com_fishrungames_crystalofrhylil_sounds_JniSoundCalls_initJniSounds(JNIEnv *pEnv, jobject pThis);
}

View File

@ -2,149 +2,9 @@
#include "main_code.h" #include "main_code.h"
JNIEXPORT void JNICALL Java_com_fishrungames_crystalofrhylil_JniWrapper_Init(JNIEnv * env, jobject obj, jint width, jint height)
//#include "boost/shared_ptr.h"
const float CONST_MAXRIX_WIDTH = 800.f;
const float CONST_MAXRIX_HEIGHT = 480.f;
boost::mutex RenderMutex;
JNIEXPORT void JNICALL Java_fishrungames_crystalofrhylil_JniWrapper_Init(JNIEnv * env, jobject obj, jint width, jint height)
{ {
try JniInitApp<TMyApplication>(width, height, width, height);
{
if (App->Inited)
{
App->OuterDeinit(); //Clean up what is left at previous launch (if applicable)
}
App->OuterInit(width, height, CONST_MAXRIX_WIDTH, CONST_MAXRIX_HEIGHT);
App->Inited = true;
}
catch (ErrorCommon e)
{
throw;
}
}
JNIEXPORT void JNICALL Java_fishrungames_crystalofrhylil_JniWrapper_StopSounds(JNIEnv * env, jobject obj)
{
} }
JNIEXPORT void JNICALL Java_fishrungames_crystalofrhylil_JniWrapper_Update(JNIEnv * env, jobject obj, long dt)
{
RenderMutex.lock();
try
{
if (App->Inited)
{
App->OuterDraw();
App->OuterUpdate(dt);
}
}
catch (...)
{
throw;
}
RenderMutex.unlock();
}
JNIEXPORT int JNICALL Java_fishrungames_crystalofrhylil_JniWrapper_IsInited(JNIEnv * env, jobject obj)
{
if (App->Inited)
{
return 1;
}
else
{
return 0;
}
}
JNIEXPORT void JNICALL Java_fishrungames_crystalofrhylil_JniWrapper_Destroy(JNIEnv * env, jobject obj)
{
RenderMutex.lock();
try
{
if (App->Inited)
{
App->Inited = false;
App->OuterDeinit();
}
}
catch (ErrorCommon e)
{
throw;
}
RenderMutex.unlock();
}
JNIEXPORT void JNICALL Java_fishrungames_crystalofrhylil_JniWrapper_OnTapDown(JNIEnv * env, jobject obj, float x, float y, long time)
{
try
{
App->OuterOnTapDown(vec2(x*CONST_MAXRIX_WIDTH/HalibutRender->GetScreenWidth(), y*CONST_MAXRIX_HEIGHT/HalibutRender->GetScreenHeight()));
}
catch (ErrorCommon e)
{
throw;
}
}
JNIEXPORT void JNICALL Java_fishrungames_crystalofrhylil_JniWrapper_OnTapUp(JNIEnv * env, jobject obj, float x, float y, long time)
{
try
{
App->OuterOnTapUp(vec2(x*CONST_MAXRIX_WIDTH/HalibutRender->GetScreenWidth(), y*CONST_MAXRIX_HEIGHT/HalibutRender->GetScreenHeight()));
}
catch (ErrorCommon e)
{
throw;
}
}
JNIEXPORT void JNICALL Java_fishrungames_crystalofrhylil_JniWrapper_OnTapMove(JNIEnv * env, jobject obj, float x, float y, long time)
{
}
JNIEXPORT void JNICALL Java_fishrungames_crystalofrhylil_JniWrapper_OnFling(JNIEnv * env, jobject obj, jfloat velocityX, jfloat velocityY, long time)
{
}
JNIEXPORT void JNICALL Java_fishrungames_crystalofrhylil_JniWrapper_OnScroll(JNIEnv * env, jobject obj, jfloat distanceX, jfloat distanceY, long time)
{
try
{
App->OuterOnMove(vec2(distanceX*CONST_MAXRIX_WIDTH/HalibutRender->GetScreenWidth(), distanceY*CONST_MAXRIX_HEIGHT/HalibutRender->GetScreenHeight()));
}
catch (ErrorCommon e)
{
throw;
}
}
JNIEXPORT void JNICALL Java_fishrungames_crystalofrhylil_JniWrapper_OnKeyPress(JNIEnv * env, jobject obj, jint keyCode)
{
try
{
App->OnKeyPress(keyCode);
}
catch (ErrorCommon e)
{
throw;
}
}

View File

@ -12,19 +12,13 @@
#include "main_code.h" #include "main_code.h"
#include "include/Engine.h"
extern "C" { using namespace SE;
JNIEXPORT void JNICALL Java_fishrungames_crystalofrhylil_JniWrapper_Init(JNIEnv * env, jobject obj, jint width, jint height);
JNIEXPORT void JNICALL Java_fishrungames_crystalofrhylil_JniWrapper_StopSounds(JNIEnv * env, jobject obj); extern "C"
JNIEXPORT void JNICALL Java_fishrungames_crystalofrhylil_JniWrapper_Update(JNIEnv * env, jobject obj, long dt); {
JNIEXPORT void JNICALL Java_fishrungames_crystalofrhylil_JniWrapper_Destroy(JNIEnv * env, jobject obj); JNIEXPORT void JNICALL Java_com_fishrungames_crystalofrhylil_JniWrapper_Init(JNIEnv * env, jobject obj, jint width, jint height);
JNIEXPORT int JNICALL Java_fishrungames_crystalofrhylil_JniWrapper_IsInited(JNIEnv * env, jobject obj);
JNIEXPORT void JNICALL Java_fishrungames_crystalofrhylil_JniWrapper_OnTapDown(JNIEnv * env, jobject obj, jfloat x, jfloat y, long time);
JNIEXPORT void JNICALL Java_fishrungames_crystalofrhylil_JniWrapper_OnTapUp(JNIEnv * env, jobject obj, jfloat x, jfloat y, long time);
JNIEXPORT void JNICALL Java_fishrungames_crystalofrhylil_JniWrapper_OnTapMove(JNIEnv * env, jobject obj, jfloat x, jfloat y, long time);
JNIEXPORT void JNICALL Java_fishrungames_crystalofrhylil_JniWrapper_OnFling(JNIEnv * env, jobject obj, jfloat velocityX, jfloat velocityY, long time);
JNIEXPORT void JNICALL Java_fishrungames_crystalofrhylil_JniWrapper_OnScroll(JNIEnv * env, jobject obj, jfloat distanceX, jfloat distanceY, long time);
JNIEXPORT void JNICALL Java_fishrungames_crystalofrhylil_JniWrapper_OnKeyPress(JNIEnv * env, jobject obj, jint keyCode);
}; };

View File

@ -14,11 +14,12 @@
#include "main_code.h" #include "main_code.h"
#ifndef TARGET_IOS #ifndef TARGET_IOS
boost::shared_ptr<TMyApplication> App(new TMyApplication); std::shared_ptr<TMyApplication> App = std::make_shared<TMyApplication>();
#endif #endif
bool animPaused = false; bool animPaused = false;
struct TOnClickTest struct TOnClickTest
{ {
void operator()() void operator()()
@ -52,75 +53,67 @@ struct TOnClickTest
//What to do on init //What to do on init
void TMyApplication::InnerInit() void TMyApplication::InnerInit()
{ {
#ifdef TARGET_ANDROID #ifdef TARGET_ANDROID
ResourceManager->PathToResources = ""; SE::ST::PathToResources = "";
#endif #endif
#ifdef TARGET_WIN32 #ifdef TARGET_WIN32
#ifdef DEBUG #ifdef DEBUG
ResourceManager->PathToResources = "../../assets/"; SE::ST::PathToResources = "../../assets/";
#else #else
ResourceManager->PathToResources = "res/"; SE::ST::PathToResources = "res/";
#endif #endif
#endif #endif
#ifdef TARGET_IOS #ifdef TARGET_IOS
ResourceManager->PathToResources = "assets/"; SE::ST::PathToResources = "assets/";
#endif #endif
if (SE::Console != nullptr) {
*SE::Console << "APP INIT\n";
}
boost::shared_ptr<boost::property_tree::ptree> px = FileToPropertyTree("function_info_list.xml"); SE::ResourceManager->ShaderManager.AddShader("DefaultShader", "shader_vertex.txt", "shader_fragment.txt");
SE::ResourceManager->ShaderManager.AddShader("FrameShader", "frameshader_vertex.txt", "frameshader_fragment.txt");
SE::ResourceManager->ShaderManager.AddShader("BrickShader", "brickshader_vertex.txt", "brickshader_fragment.txt");
SE::Renderer->PushShader("DefaultShader");
ResourceManager->ScriptManager.Serialize(*px); const std::string CONST_LOADING_BACKGROUND_BLACK = "loading_background_black";
const std::string CONST_LOADING_TEXTURE = "loading";
const std::string CONST_LOGO_SMALL_TEXTURE = "logo_small";
px = FileToPropertyTree("shaders.xml"); SE::ResourceManager->TexList.AddTexture(CONST_LOADING_BACKGROUND_BLACK + ".png", CONST_LOADING_BACKGROUND_BLACK);
ResourceManager->ShaderManager.Serialize(*px); SE::ResourceManager->TexList.AddTexture(CONST_LOADING_TEXTURE + ".png", CONST_LOADING_TEXTURE);
SE::ResourceManager->TexList.AddTexture(CONST_LOGO_SMALL_TEXTURE + ".png", CONST_LOGO_SMALL_TEXTURE);
HalibutRender->PushShader("DefaultShader"); SE::ResourceManager->TexList.AddTexture("console_bkg.bmp");
px = FileToPropertyTree("textures.xml"); SE::ResourceManager->FrameManager.AddFrameRenderBuffer("LevelBuffer", 512, 512);
ResourceManager->TexList.Serialize(*px);
px = FileToPropertyTree("fonts.xml");
ResourceManager->FontManager.Serialize(*px);
ResourceManager->FontManager.PushFont("droid_sans14");
Inited = true;
ResourceManager->GUIManager.AddWidgetAndFill(boost::shared_ptr<TInstancingWidgetAncestor>(new TSquareButton),
"ololo", "group1",
boost::shared_ptr<TTriangleListFillerAncestor>(new TSquareButtonTriangleListFiller(vec2(100, 100), vec2(200, 200), "button_normal", "button_pressed")));
ResourceManager->GUIManager.AddWidgetAndFill(boost::shared_ptr<TInstancingWidgetAncestor>(new TSquareStatic), SE::Renderer->SetOrthoProjection();
"Background", "group1",
boost::shared_ptr<TSquareStaticTriangleListFiller>(new TSquareStaticTriangleListFiller(vec2(0, 0), vec2(800, 480), "cave_hd")));
ResourceManager->GUIManager.AddWidget(boost::shared_ptr<TInstancingWidgetAncestor>(new TMatch3Field(Match3Controller)),
"match3", "group1");
ResourceManager->GUIManager.MoveWidget("ololo", vec2(-100, 0)); SE::Renderer->SetFullScreenViewport();
TOnClickTest OnClickTest;
//ResourceManager->GUIManager.GetOnClickSignal("ololo").connect(OnClickTest);
//testAnimObject.Serialize(FileToPropertyTree("test_animation_xml.xml"));
//ResourceManager->HalibutAnimationManager.AddAnimationObject("test_anim", testAnimObject);
//ResourceManager->HalibutAnimationManager.StartAnimation("test_anim");
//ResourceManager->ShaderManager.AddShader("DefaultShader", "shader_vertex.txt", "shader_fragment.txt"); auto px = SE::FileToPropertyTree("shaders.xml");
/*HalibutRender->PushShader("DefaultShader"); SE::ResourceManager->ShaderManager.Serialize(*px);
ResourceManager->TexList.AddTexture(CONST_CONSOLE_TEX_NAME); px = SE::FileToPropertyTree("textures.xml");
SE::ResourceManager->TexList.Serialize(*px);
ResourceManager->FontManager.AddFont("droid_sans14", "droid_sans14_font_bitmap.bmp32", "droid_sans14_font_charmap.txt"); //this cause exception
ResourceManager->FontManager.PushFont("droid_sans14");*/ //px = SE::FileToPropertyTree("fonts.xml");
//SE::ResourceManager->FontManager.Serialize(*px);
//SE::ResourceManager->FontManager.PushFont("droid_sans14");
Match3Controller.Match3Field = std::make_shared<TMatch3Field>(Match3Controller);
} }
@ -133,9 +126,39 @@ void TMyApplication::InnerDeinit()
//What to do on draw //What to do on draw
void TMyApplication::InnerDraw() void TMyApplication::InnerDraw()
{ {
auto &list = Match3Controller.Match3Field.get()->TriangleListVector;
for (auto j = list.begin(); j != list.end(); ++j)
{
SE::TRenderParamsSetter paramSetter(j->first);
SE::Renderer->DrawTriangleList(j->second);
SE::CheckGlError("TMyApplication::InnerDraw()");
}
} }
//What to do on update. timer means how many ms passed since last update //What to do on update. timer means how many ms passed since last update
void TMyApplication::InnerUpdate(cardinal timer) void TMyApplication::InnerUpdate(size_t timer)
{ {
Match3Controller.Match3Field.get()->Update(timer);
} }
void TMyApplication::InnerOnTapDown(Eigen::Vector2f p) {
if (!Match3Controller.Match3Field.get()->CheckClick(p)) {
return;
}
Match3Controller.Match3Field.get()->OnTapDown(p);
}
void TMyApplication::InnerOnTapUp(Eigen::Vector2f p) {
if (!Match3Controller.Match3Field.get()->CheckClick(p)) {
return;
}
Match3Controller.Match3Field.get()->OnTapUp(p);
}
void TMyApplication::InnerOnMove(Eigen::Vector2f pos, Eigen::Vector2f shift) {
// if (!Match3Controller.Match3Field.get()->CheckClick(pos)) {
// return;
// }
// Match3Controller.Match3Field.get()->OnMove(pos);
}

View File

@ -8,6 +8,7 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <math.h> #include <math.h>
#include <memory>
#include "boost/shared_ptr.hpp" #include "boost/shared_ptr.hpp"
/*#include "boost/thread/thread.hpp" /*#include "boost/thread/thread.hpp"
@ -19,28 +20,30 @@
#include "match3/match3field.h" #include "match3/match3field.h"
class TMatch3Field;
class TMatch3Controller class TMatch3Controller
{ {
public: public:
TMatch3Field* Match3Field; std::shared_ptr<TMatch3Field> Match3Field;
TMatch3Controller() TMatch3Controller()
: Match3Field(NULL) {
{
} }
}; };
//Application class //Application class
class TMyApplication : public TApplication class TMyApplication : public SE::TApplication
{ {
public: public:
bool Inited; bool Inited;
TMatch3Controller Match3Controller; TMatch3Controller Match3Controller;
SE::TRenderPair testPair;
TMyApplication() : Inited(false) { } TMyApplication() : Inited(false) { }
@ -53,12 +56,19 @@ public:
virtual void InnerDraw(); virtual void InnerDraw();
//What to do on draw //What to do on draw
virtual void InnerUpdate(cardinal timer); virtual void InnerUpdate(size_t timer);
//What to do on update. timer means how many ms passed since last update //What to do on update. timer means how many ms passed since last update
virtual void InnerOnTapDown(Eigen::Vector2f p) override;
virtual void InnerOnTapUp(Eigen::Vector2f p) override;
virtual void InnerOnMove(Eigen::Vector2f pos, Eigen::Vector2f shift) override;
}; };
#ifndef TARGET_IOS #ifndef TARGET_IOS
extern boost::shared_ptr<TMyApplication> App; extern std::shared_ptr<TMyApplication> App;
#endif #endif
#endif #endif

File diff suppressed because it is too large Load Diff

View File

@ -2,11 +2,12 @@
#define MATCH3FIELD_H_INCLUDED #define MATCH3FIELD_H_INCLUDED
#include "include/Engine.h" #include "include/Engine.h"
#include <Eigen/src/Core/Matrix.h>
const cardinal CONST_MAX_FIELD_WIDTH = 11; const size_t CONST_MAX_FIELD_WIDTH = 11;
const cardinal CONST_MAX_FIELD_HEIGHT = 11; const size_t CONST_MAX_FIELD_HEIGHT = 11;
const float CONST_MATCH3_CELL_WIDTH = 42.f; const float CONST_MATCH3_CELL_WIDTH = 42.f;
@ -20,7 +21,7 @@ const float CONST_MATCH3_CELL_HEIGHT = 32.f;
const float CONST_CHIP_LOWEST_SPEED = -0.3f; const float CONST_CHIP_LOWEST_SPEED = -0.3f;
const float CONST_CHIP_ACCELERATION = -0.001f; const float CONST_CHIP_ACCELERATION = -0.001f;
*/ */
const cardinal CONST_MATCH_TIME = 150; const size_t CONST_MATCH_TIME = 150;
const float CONST_CHIP_POSITION_EPSILON = 1.f; const float CONST_CHIP_POSITION_EPSILON = 1.f;
const float CONST_CHIP_VELOCITY_EPSILON = 0.3f; const float CONST_CHIP_VELOCITY_EPSILON = 0.3f;
@ -28,25 +29,24 @@ const float CONST_CHIP_VELOCITY_EPSILON = 0.3f;
const float CONST_CHIP_K = 0.4f; const float CONST_CHIP_K = 0.4f;
const cardinal CONST_CHIP_TYPE_COUNT = 4; const size_t CONST_CHIP_TYPE_COUNT = 4;
struct TChipTemplateParams : public TSerializeInterface struct TChipTemplateParams : public SE::TSerializeInterface
{ {
THalibutExternalAnimObject SelectedTemplateAnimObject; SE::THalibutExternalAnimObject SelectedTemplateAnimObject;
THalibutExternalAnimObject FinishingTemplateAnimObject; SE::THalibutExternalAnimObject FinishingTemplateAnimObject;
TRenderParams SelectedRenderParams; SE::TRenderParams SelectedRenderParams;
TRenderParams FinishingRenderParams; SE::TRenderParams FinishingRenderParams;
virtual void Serialize(boost::property_tree::ptree& propertyTree); virtual void Serialize(boost::property_tree::ptree& propertyTree);
}; };
struct TMatch3FieldParams : public SE::TSerializeInterface
struct TMatch3FieldParams : public TSerializeInterface
{ {
cardinal FieldWidth; size_t FieldWidth;
cardinal FieldHeight; size_t FieldHeight;
float CellWidth; float CellWidth;
float CellHeight; float CellHeight;
float ChipLowestSpeed; float ChipLowestSpeed;
@ -55,9 +55,9 @@ struct TMatch3FieldParams : public TSerializeInterface
float ChipPositionEpsilon; float ChipPositionEpsilon;
float ChipVelocityEpsilon; float ChipVelocityEpsilon;
float ChipK; float ChipK;
cardinal ChipMatchTime; size_t ChipMatchTime;
cardinal ChipTypeCount; size_t ChipTypeCount;
std::vector<TChipTemplateParams> ChipTemplateParamsArr; std::vector<TChipTemplateParams> ChipTemplateParamsArr;
@ -82,15 +82,14 @@ struct TMatch3FieldParams : public TSerializeInterface
}; };
struct TChip struct TChip
{ {
int ChipType; // -1 means empty field int ChipType; // -1 means empty field
std::string AnimName; //Generated automatically std::string AnimName; //Generated automatically
TRenderPairList::iterator RenderPair; SE::TRenderPairList::iterator RenderPair;
cardinal VertexListShift; size_t VertexListShift;
float Velocity; float Velocity;
@ -104,31 +103,32 @@ struct TChip
CS_X, CS_X,
} ChipState; } ChipState;
TChip(int chipType, TRenderPairList::iterator renderPair, cardinal vertexListShift, TChipState chipState = CS_FALLING); TChip(int chipType, SE::TRenderPairList::iterator renderPair, size_t vertexListShift, TChipState chipState = CS_FALLING);
~TChip(); ~TChip();
vec2 GetLeftBottomPos(); Eigen::Vector2f GetLeftBottomPos();
void SetLeftBottomPos(vec2 newPos); void SetLeftBottomPos(Eigen::Vector2f newPos);
void MoveLeftBottomPos(vec2 shift); void MoveLeftBottomPos(Eigen::Vector2f shift);
static int StaticAnimationIndex; static int StaticAnimationIndex;
}; };
struct TChipSwappingPair struct TChipSwappingPair
{ {
float T; float T;
ivec2 Chip1; Eigen::Vector2i Chip1;
ivec2 Chip2; Eigen::Vector2i Chip2;
vec2 Chip1RealPosFrom; Eigen::Vector2f Chip1RealPosFrom;
vec2 Chip2RealPosFrom; Eigen::Vector2f Chip2RealPosFrom;
bool IsReturning; bool IsReturning;
TChipSwappingPair(ivec2 chip1, ivec2 chip2, vec2 chip1PosFrom, vec2 chip2PosFrom) TChipSwappingPair(Eigen::Vector2i chip1, Eigen::Vector2i chip2, Eigen::Vector2f chip1PosFrom, Eigen::Vector2f chip2PosFrom)
: Chip1(chip1) : Chip1(chip1)
, Chip2(chip2) , Chip2(chip2)
, T(0) , T(0)
@ -143,10 +143,10 @@ struct TChipSwappingPair
struct TChipDeletingData struct TChipDeletingData
{ {
float T; float T;
ivec2 Chip; Eigen::Vector2i Chip;
vec2 Pos; Eigen::Vector2f Pos;
TChipDeletingData(ivec2 chip, vec2 pos) TChipDeletingData(Eigen::Vector2i chip, Eigen::Vector2f pos)
: T(0.f) : T(0.f)
, Chip(chip) , Chip(chip)
, Pos(pos) , Pos(pos)
@ -154,99 +154,113 @@ struct TChipDeletingData
} }
}; };
class TMatch3Logic class TMatch3Logic
{ {
protected: protected:
cardinal ChipTypeCount; size_t ChipTypeCount;
std::vector<std::vector<TChip> > ChipMatrix; std::vector<std::vector<TChip> > ChipMatrix;
std::vector<TChipSwappingPair> ChipSwappingPairVector; std::vector<TChipSwappingPair> ChipSwappingPairVector;
std::vector<TChipDeletingData> ChipDeletingVector; std::vector<TChipDeletingData> ChipDeletingVector;
std::vector<TRenderPairList::iterator> RenderPairIteratorVector; std::vector<SE::TRenderPairList::iterator> RenderPairIteratorVector;
ivec2 selectedChip; Eigen::Vector2i selectedChip;
vec2 LeftBottomPosField; Eigen::Vector2f LeftBottomPosField;
TMatch3FieldParams Match3FieldParams; TMatch3FieldParams Match3FieldParams;
void FillRandomChipMatrix(std::vector<TRenderPairList::iterator> renderPairIteratorVector, vec2 leftBottomPos); void FillRandomChipMatrix(std::vector<SE::TRenderPairList::iterator> renderPairIteratorVector, Eigen::Vector2f leftBottomPos);
vec2 GetExpectedLeftBottomPos(cardinal x, cardinal y); Eigen::Vector2f GetExpectedLeftBottomPos(size_t x, size_t y);
void StartAnimateChip(cardinal x, cardinal y); void StartAnimateChip(size_t x, size_t y);
void StopAnimateChip(cardinal x, cardinal y); void StopAnimateChip(size_t x, size_t y);
bool ChipIsLocked(ivec2 chip); bool ChipIsLocked(Eigen::Vector2i chip);
bool ChipIsFinishing(ivec2 chip); bool ChipIsFinishing(Eigen::Vector2i chip);
bool ChipIsStable(ivec2 chip); bool ChipIsStable(Eigen::Vector2i chip);
bool ChipCanBeSelected(ivec2 chip); bool ChipCanBeSelected(Eigen::Vector2i chip);
bool ChipsCanBeSwapped(ivec2 p1, ivec2 p2); bool ChipsCanBeSwapped(Eigen::Vector2i p1, Eigen::Vector2i p2);
bool ChipCanBeMatchedUp(ivec2 chip); bool ChipCanBeMatchedUp(Eigen::Vector2i chip);
bool ChipCanBeMatchedDown(ivec2 chip); bool ChipCanBeMatchedDown(Eigen::Vector2i chip);
bool ChipCanBeMatchedLeft(ivec2 chip); bool ChipCanBeMatchedLeft(Eigen::Vector2i chip);
bool ChipCanBeMatchedRight(ivec2 chip); bool ChipCanBeMatchedRight(Eigen::Vector2i chip);
void UnmatchChips(std::vector<ivec2> chipList); void UnmatchChips(std::vector<Eigen::Vector2i> chipList);
void UpdateChipPosition(cardinal dt); void UpdateChipPosition(size_t dt);
void RemoveBubbles(); void RemoveBubbles();
void ReplaceAnimation(ivec2 p); void ReplaceAnimation(Eigen::Vector2i p);
void MoveVertexListShiftBack(TRenderPairList::iterator renderPairItr, cardinal moveFrom); void MoveVertexListShiftBack(SE::TRenderPairList::iterator renderPairItr, size_t moveFrom);
void MoveVertexCoordDown(TRenderPairList::iterator renderPairItr, cardinal moveFrom, float value); void MoveVertexListShiftBackWithoutAnimation(SE::TRenderPairList::iterator renderPairItr, size_t moveFrom);
void MoveVertexCoordDown(SE::TRenderPairList::iterator renderPairItr, size_t moveFrom, float value);
void AddChipToUp(cardinal colNum, int chipType, vec2 spawnPos, TChip::TChipState chipState = TChip::CS_FALLING); void AddChipToUp(size_t colNum, int chipType, Eigen::Vector2f spawnPos, TChip::TChipState chipState = TChip::CS_FALLING);
void InsertEmptyChip(cardinal colNum, cardinal rowNum, int chipType); void InnerAddChipToUp(size_t colNum, int chipType, Eigen::Vector2f spawnPos, TChip::TChipState chipState = TChip::CS_FALLING);
void UpdateChipSwapping(cardinal dt); void InsertEmptyChip(size_t colNum, size_t rowNum, int chipType);
void UpdateChipSwapping(size_t dt);
void TryMatchAllChips(); void TryMatchAllChips();
void DestroyChip(ivec2 p); void DestroyChip(Eigen::Vector2i p);
void ChangeChipType(ivec2 p); void ChangeChipType(Eigen::Vector2i p);
void innerUpdateAnimation(size_t dt);
public: public:
TMatch3Logic(); TMatch3Logic();
virtual ~TMatch3Logic(); virtual ~TMatch3Logic();
void SelectChip(ivec2 pos); void SelectChip(Eigen::Vector2i pos);
void UnselectChip(); void UnselectChip();
ivec2 GetSelectedChip(); Eigen::Vector2i GetSelectedChip();
std::vector<ivec2> GetAvailableMatchingChips(); std::vector<Eigen::Vector2i> GetAvailableMatchingChips();
void SwapChips(ivec2 p1, ivec2 p2, bool isReturning = false); void SwapChips(Eigen::Vector2i p1, Eigen::Vector2i p2, bool isReturning = false);
void ResetChipPos(ivec2 p); void ResetChipPos(Eigen::Vector2i p);
void UpdateLogic(cardinal dt); void UpdateLogic(size_t dt);
void HitFieldWithPattern(ivec2 pos, std::vector<std::vector<char> > pattern, std::vector<std::vector<char> > jumpingPattern); void HitFieldWithPattern(Eigen::Vector2i pos, std::vector<std::vector<char> > pattern, std::vector<std::vector<char> > jumpingPattern);
}; };
class TMatch3Controller; class TMatch3Controller;
class TMatch3Field : public TMatch3Logic, public TInstancingWidgetAncestor class TMatch3Field : protected TMatch3Logic
{ {
protected: protected:
void FillBasicChipMatrixAndTriangleList(); void FillBasicChipMatrixAndTriangleList();
//TMatch3Controller& Match3Controller; //TMatch3Controller& Match3Controller;
vec2 LastTappedPos; Eigen::Vector2f LastTappedPos;
vec2 LastMovePos; Eigen::Vector2f LastMovePos;
Eigen::Vector2i PosToChip(Eigen::Vector2f pos);
ivec2 PosToChip(vec2 pos);
public: public:
//should be in protected
Eigen::Vector2f LeftBottomPos;
SE::TRenderPairList TriangleListVector;
TMatch3Field(); TMatch3Field();
TMatch3Field(const TMatch3Field& m); TMatch3Field(const TMatch3Field& m);
TMatch3Field& operator=(const TMatch3Field& m); TMatch3Field& operator=(const TMatch3Field& m);
@ -254,11 +268,11 @@ public:
TMatch3Field(TMatch3Controller& match3Controller); TMatch3Field(TMatch3Controller& match3Controller);
~TMatch3Field(); ~TMatch3Field();
virtual void Update(cardinal dt); virtual void Update(size_t dt);
virtual void OnTapDown(vec2 pos); virtual void OnTapDown(Eigen::Vector2f pos);
virtual void OnTapUp(vec2 pos); virtual void OnTapUp(Eigen::Vector2f pos);
virtual void OnMove(vec2 shift); virtual void OnMove(Eigen::Vector2f shift);
virtual bool CheckClick(vec2 mousePos); virtual bool CheckClick(Eigen::Vector2f mousePos);
void HighlightMatch3(); void HighlightMatch3();
@ -267,10 +281,4 @@ public:
#endif #endif

10
proj.android-studio/.gitignore vendored Executable file
View File

@ -0,0 +1,10 @@
*.iml
.gradle
/local.properties
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
.DS_Store
/build
/captures
.externalNativeBuild

View File

@ -0,0 +1,29 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<Objective-C-extensions>
<file>
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Import" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Macro" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Typedef" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Enum" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Constant" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Global" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Struct" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="FunctionPredecl" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Function" />
</file>
<class>
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Property" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Synthesize" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InitMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="StaticMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InstanceMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="DeallocMethod" />
</class>
<extensions>
<pair source="cpp" header="h" fileNamingConvention="NONE" />
<pair source="c" header="h" fileNamingConvention="NONE" />
</extensions>
</Objective-C-extensions>
</code_scheme>
</component>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
<option value="$PROJECT_DIR$/../../tes-engine/SalmonEngineAndroid/app" />
</set>
</option>
<option name="resolveModulePerSourceSet" value="false" />
</GradleProjectSettings>
</option>
</component>
</project>

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="NullableNotNullManager">
<option name="myDefaultNullable" value="android.support.annotation.Nullable" />
<option name="myDefaultNotNull" value="android.support.annotation.NonNull" />
<option name="myNullables">
<value>
<list size="5">
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
<item index="2" class="java.lang.String" itemvalue="javax.annotation.CheckForNull" />
<item index="3" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" />
<item index="4" class="java.lang.String" itemvalue="android.support.annotation.Nullable" />
</list>
</value>
</option>
<option name="myNotNulls">
<value>
<list size="4">
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
<item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
<item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" />
</list>
</value>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
</component>
</project>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RunConfigurationProducerService">
<option name="ignoredProducers">
<set>
<option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
</set>
</option>
</component>
</project>

1
proj.android-studio/app/.gitignore vendored Executable file
View File

@ -0,0 +1 @@
/build

View File

@ -0,0 +1,112 @@
# Sets the minimum version of CMake required to build the native
# library. You should either keep the default value or only pass a
# value of 3.4.0 or lower.
cmake_minimum_required(VERSION 3.4.1)
# Creates and names a library, sets it as either STATIC
# or SHARED, and provides the relative paths to its source code.
# You can define multiple libraries, and CMake builds it for you.
# Gradle automatically packages shared libraries with your APK.
add_definitions(-DTARGET_ANDROID)
set(JNI_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../jni)
set(BOOST_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../boost_1_67_0)
set(BOOST_GIL_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/boost-gil-extension)
set(ZIP_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/julienr-libzip-android/jni)
set(LIBPNG_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/libpng_1.4.1_android)
set(LIBJPEG_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/jpeg-9")
set(EIGEN_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../eigen)
set(SOL2_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../sol2)
set(LUA_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/lua-5.3.4/src)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../tes-engine)
include_directories(${JNI_PATH})
include_directories(${JNI_PATH}/match3)
include_directories(${BOOST_PATH})
include_directories(${EIGEN_PATH})
include_directories(${SOL2_PATH})
include_directories(${LUA_PATH})
include_directories(${LIBPNG_PATH})
include_directories(${LIBJPEG_PATH})
include_directories(${ZIP_PATH})
include_directories(${BOOST_GIL_PATH})
add_library( # Sets the name of the library.
CrystalOfRhylil
# Sets the library as a shared library.
SHARED
# Provides a relative path to your source file(s).
# Associated headers in the same location as their source
# file are automatically included.
${JNI_PATH}/main_code.cpp
${JNI_PATH}/match3/match3field.cpp
${JNI_PATH}/android_api.cpp
${JNI_PATH}/Sounds.cpp
)
add_library( engine
SHARED
IMPORTED )
set_target_properties( # Specifies the target library.
engine
# Specifies the parameter you want to define.
PROPERTIES IMPORTED_LOCATION
# Provides the path to the library you want to import.
${CMAKE_CURRENT_SOURCE_DIR}/../../../tes-engine/SalmonEngineAndroid/app/build/intermediates/cmake/debug/obj/${ANDROID_ABI}/libengine.so
)
# Searches for a specified prebuilt library and stores the path as a
# variable. Because system libraries are included in the search path by
# default, you only need to specify the name of the public NDK library
# you want to add. CMake verifies that the library exists before
# completing its build.
find_library( # Sets the name of the path variable.
log-lib
# Specifies the name of the NDK library that
# you want CMake to locate.
log )
find_library( # Sets the name of the path variable.
GLESv2-lib
# Specifies the name of the NDK library that
# you want CMake to locate.
GLESv2 )
# Specifies libraries CMake should link to your target library. You
# can link multiple libraries, such as libraries you define in the
# build script, prebuilt third-party libraries, or system libraries.
target_link_libraries( # Specifies the target library.
CrystalOfRhylil
engine
# Links the target library to the log library
# included in the NDK.
${log-lib} ${GLESv2-lib} )

View File

@ -0,0 +1,51 @@
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
buildToolsVersion "28.0.0"
defaultConfig {
applicationId "com.fishrungames.crystalofrhylil"
minSdkVersion 24
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
externalNativeBuild {
cmake {
abiFilters "armeabi-v7a"
arguments "-DANDROID_STL=c++_shared"
cppFlags "-std=c++17 -frtti -fexceptions -fsigned-char -Wno-c++11-narrowing"
cFlags "-DTARGET_ANDROID",
"-DTARGET_HALIBUT"
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
sourceSets {
main {
assets.srcDirs = ['../../assets/']
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28+'
implementation project(':SalmonEngineAndroid')
}

21
proj.android-studio/app/proguard-rules.pro vendored Executable file
View File

@ -0,0 +1,21 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

View File

@ -0,0 +1,26 @@
package com.fishrungames.crystalofrhylil;
import android.content.Context;
import android.support.test.InstrumentationRegistry;
import android.support.test.runner.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getTargetContext();
assertEquals("com.fishrungames.crystalofrhylil", appContext.getPackageName());
}
}

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.fishrungames.crystalofrhylil">
<application
android:icon="@drawable/ic_menu_template" android:label="Crystal of Rhylil">
<activity android:name="MainActivity"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:launchMode="singleTask"
android:configChanges="orientation|keyboardHidden"
android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-feature android:glEsVersion="0x00020000"/>
</manifest>

View File

@ -0,0 +1,12 @@
#include <jni.h>
#include <string>
extern "C" JNIEXPORT jstring
JNICALL
Java_com_fishrungames_crystalofrhylil_MainActivity_stringFromJNI(
JNIEnv *env,
jobject /* this */) {
std::string hello = "Hello from C++";
return env->NewStringUTF(hello.c_str());
}

View File

@ -0,0 +1,145 @@
package com.fishrungames.crystalofrhylil;
import java.util.Calendar;
import android.content.Context;
import android.opengl.GLSurfaceView;
import com.fishrungames.crystalofrhylil.sounds.JniSoundCalls;
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;
import fishrungames.salmonengineandroid.GLViewAncestor;
import fishrungames.salmonengineandroid.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);
JniSoundCalls.init();
}
public void onSurfaceCreated(GL10 gl, EGLConfig config)
{
//Do nothing.
}
}
}
//package com.fishrungames.crystalofrhylil;
//
//
//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.salmonengineandroid.GLViewAncestor;
//
//
//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();
//
// JniWrapper.Update(currentTimeStamp - lastTimeStamp);
//
// lastTimeStamp = currentTimeStamp;
// }
// }
//
// public void onSurfaceChanged(GL10 gl, int width, int height)
// {
//
//
// //JniWrapper.Destroy();
//
// JniWrapper.Init(width,height);
// }
//
// public void onSurfaceCreated(GL10 gl, EGLConfig config)
// {
// //Do nothing.
// }
// }
//}

View File

@ -0,0 +1,38 @@
package com.fishrungames.crystalofrhylil;
public class JniWrapper
{
static {
System.loadLibrary("CrystalOfRhylil");
}
public static native void Init(int width, int height);
}
//package com.fishrungames.crystalofrhylil;
//
//public class JniWrapper
//{
// static {
// //System.loadLibrary("gnustl_shared");
// //System.loadLibrary("HalibutEngine");
// System.loadLibrary("CrystalOfRhylilLib");
// }
//
//
// public static native void Init(int width, int height);
// public static native void Update(long dt);
// public static native void StopSounds();
// public static native void Destroy();
// public static native int IsInited();
// public static native void OnTapDown(float x, float y, long time);
// public static native void OnTapUp(float x, float y, long time);
// public static native void OnTapMove(float x, float y, long time);
//
// public static native void OnFling(float velocityX, float velocityY, long time);
// public static native void OnScroll(float distanceX, float distanceY, long time);
//
// public static native void OnKeyPress(int keyCode);
//}

View File

@ -0,0 +1,292 @@
package com.fishrungames.crystalofrhylil;
import fishrungames.salmonengineandroid.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 MainActivity extends Activity
{
private static MainActivity instance;
GLView mView;
@Override
protected void onCreate(Bundle icicle)
{
super.onCreate(icicle);
instance = this;
EngineWrapper.LoadSalmonEngineLibrary();
EngineWrapper.SetActivityInstance(this);
EngineWrapper.SetupEnviroment();
String apkFilePath = null;
ApplicationInfo appInfo = null;
PackageManager packMgmr = this.getPackageManager();
try {
appInfo = packMgmr.getApplicationInfo("com.fishrungames.crystalofrhylil", 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);
}
public static MainActivity getInstance() {
if (instance == null) {
throw new RuntimeException("error GL2JNIActivity getInstance() - you are trying to get activity instance when it is not created or already destroyed");
}
return instance;
}
}
//package com.fishrungames.crystalofrhylil;
//
//
//
////Deprecated
////import fishrungames.crystalofrhylil.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.GestureDetector.SimpleOnGestureListener;
//import android.view.KeyEvent;
//import android.view.MotionEvent;
//
//import fishrungames.salmonengineandroid.EngineWrapper;
//
//
////Deprecated
////import java.lang.reflect.Field;
//
//
//public class MainActivity extends Activity
//{
//
// GLView mView;
//
// boolean IsScrolling = false;
//
// private GestureDetector gestureDetector;
//
// @Override
// protected void onCreate(Bundle icicle)
// {
// super.onCreate(icicle);
//
// gestureDetector = new GestureDetector(new MyGestureListener());
//
// EngineWrapper.LoadSalmonEngineLibrary();
// EngineWrapper.SetActivityInstance(this);
// EngineWrapper.SetupEnviroment();
///*
// * Deprecated
// *
// try
// {
// for (Field f : R.raw.class.getFields())
// {
// FileWrapper.AddToFileMap(f.getName(), f.getInt(null));
// }
//
//
// } catch (IllegalArgumentException e)
// {
// FileWrapper.ConsoleOut("IllegalArgumentException\n");
// onStop();
// } catch (IllegalAccessException e)
// {
// FileWrapper.ConsoleOut("IllegalAccessException\n");
// onStop();
// }
//*/
// mView = new GLView(getApplication());
//
// setContentView(mView);
//
// String apkFilePath = null;
// ApplicationInfo appInfo = null;
// PackageManager packMgmr = this.getPackageManager();
// try {
// appInfo = packMgmr.getApplicationInfo("com.fishrungames.crystalofrhylil", 0);
// } catch (NameNotFoundException e) {
//
// e.printStackTrace();
// throw new RuntimeException("Unable to locate assets, aborting...");
// }
// apkFilePath = appInfo.sourceDir;
//
// EngineWrapper.SetupApkFilePath(apkFilePath);
// //FileWrapper.ConsoleOut("Out of java\n");
//
// }
//
// @Override
// protected void onPause()
// {
// JniWrapper.Destroy();
// super.onPause();
// mView.onPause();
// }
//
// @Override
// protected void onResume()
// {
// //Don't write anything here!
// super.onResume();
// mView.onResume();
// }
//
// @Override
// protected void onStop()
// {
// //Don't write anything here!
// super.onStop();
// }
//
//
// public boolean onKeyDown(int keyCode, KeyEvent event)
// {
// int ascii_keycode = keyCode;
//
// if (keyCode == KeyEvent.KEYCODE_DEL)
// {
// ascii_keycode = 8; //Hack - getUnicodeChar does not recognize backspace
// }
// else
// {
// ascii_keycode = event.getUnicodeChar();
// }
//
// JniWrapper.OnKeyPress(ascii_keycode);
// return super.onKeyDown(keyCode, event);
// }
//
// public boolean onKeyUp(int keyCode, KeyEvent event)
// {
// return true;
// }
//
// public boolean onTouchEvent(MotionEvent event)
// {
// if (gestureDetector.onTouchEvent(event))
// {
// return true;
// }
//
// if (event.getAction() == MotionEvent.ACTION_UP)
// {
// float x = event.getX();
// float y = (float) mView.getHeight() - event.getY();
//
// if (IsScrolling)
// {
// IsScrolling = false;
// }
//
// JniWrapper.OnTapUp(x, y, event.getEventTime());
//
// }
// return true;
// }
//
// class MyGestureListener extends SimpleOnGestureListener
// {
//
// @Override
// public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
// float velocityY)
// {
// JniWrapper.OnFling(velocityX, velocityY, e2.getEventTime());
// return true;
// }
//
// public boolean onScroll(MotionEvent e1, MotionEvent e2,
// float distanceX, float distanceY)
// {
// JniWrapper.OnScroll(distanceX, distanceY, e2.getEventTime());
// IsScrolling = true;
// return true;
// }
//
// public boolean onDown(MotionEvent event)
// {
//
// float x = event.getX();
// float y = (float) mView.getHeight() - event.getY();
//
// JniWrapper.OnTapDown(x, y, event.getEventTime());
//
// return true;
// }
//
// }
//
//}

View File

@ -0,0 +1,43 @@
package com.fishrungames.crystalofrhylil.sounds;
import android.media.MediaPlayer;
import com.fishrungames.crystalofrhylil.MainActivity;
import com.fishrungames.crystalofrhylil.R;
public class JniSoundCalls {
native public static void initJniSounds();
private static MediaPlayer backgroundPlayer = null;
private static MediaPlayer gunshotPlayer = null;
public static void init() {
initJniSounds();
}
public static void JniPlayBackgroundSound() {
backgroundPlayer = MediaPlayer.create(MainActivity.getInstance(), R.raw.background_sound);
backgroundPlayer.setLooping(true);
backgroundPlayer.start();
}
public static void JniStopBackgroundSound() {
if (backgroundPlayer != null) {
backgroundPlayer.stop();
}
}
public static void JniPlayGunshotSound() {
gunshotPlayer = MediaPlayer.create(MainActivity.getInstance(), R.raw.gunshot_sound);
gunshotPlayer.setLooping(false);
gunshotPlayer.start();
}
public static void JniStopGunshotSound() {
if (gunshotPlayer != null) {
gunshotPlayer.stop();
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -0,0 +1,34 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:viewportHeight="108"
android:viewportWidth="108">
<path
android:fillType="evenOdd"
android:pathData="M32,64C32,64 38.39,52.99 44.13,50.95C51.37,48.37 70.14,49.57 70.14,49.57L108.26,87.69L108,109.01L75.97,107.97L32,64Z"
android:strokeColor="#00000000"
android:strokeWidth="1">
<aapt:attr name="android:fillColor">
<gradient
android:endX="78.5885"
android:endY="90.9159"
android:startX="48.7653"
android:startY="61.0927"
android:type="linear">
<item
android:color="#44000000"
android:offset="0.0" />
<item
android:color="#00000000"
android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<path
android:fillColor="#FFFFFF"
android:fillType="nonZero"
android:pathData="M66.94,46.02L66.94,46.02C72.44,50.07 76,56.61 76,64L32,64C32,56.61 35.56,50.11 40.98,46.06L36.18,41.19C35.45,40.45 35.45,39.3 36.18,38.56C36.91,37.81 38.05,37.81 38.78,38.56L44.25,44.05C47.18,42.57 50.48,41.71 54,41.71C57.48,41.71 60.78,42.57 63.68,44.05L69.11,38.56C69.84,37.81 70.98,37.81 71.71,38.56C72.44,39.3 72.44,40.45 71.71,41.19L66.94,46.02ZM62.94,56.92C64.08,56.92 65,56.01 65,54.88C65,53.76 64.08,52.85 62.94,52.85C61.8,52.85 60.88,53.76 60.88,54.88C60.88,56.01 61.8,56.92 62.94,56.92ZM45.06,56.92C46.2,56.92 47.13,56.01 47.13,54.88C47.13,53.76 46.2,52.85 45.06,52.85C43.92,52.85 43,53.76 43,54.88C43,56.01 43.92,56.92 45.06,56.92Z"
android:strokeColor="#00000000"
android:strokeWidth="1" />
</vector>

View File

@ -0,0 +1,170 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportHeight="108"
android:viewportWidth="108">
<path
android:fillColor="#26A69A"
android:pathData="M0,0h108v108h-108z" />
<path
android:fillColor="#00000000"
android:pathData="M9,0L9,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M19,0L19,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M29,0L29,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M39,0L39,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M49,0L49,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M59,0L59,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M69,0L69,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M79,0L79,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M89,0L89,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M99,0L99,108"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,9L108,9"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,19L108,19"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,29L108,29"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,39L108,39"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,49L108,49"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,59L108,59"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,69L108,69"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,79L108,79"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,89L108,89"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M0,99L108,99"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M19,29L89,29"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M19,39L89,39"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M19,49L89,49"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M19,59L89,59"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M19,69L89,69"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M19,79L89,79"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M29,19L29,89"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M39,19L39,89"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M49,19L49,89"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M59,19L59,89"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M69,19L69,89"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
<path
android:fillColor="#00000000"
android:pathData="M79,19L79,89"
android:strokeColor="#33FFFFFF"
android:strokeWidth="0.8" />
</vector>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
</resources>

View File

@ -0,0 +1,3 @@
<resources>
<string name="app_name">crystalofrhylil</string>
</resources>

View File

@ -0,0 +1,8 @@
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<!-- Customize your theme here. -->
</style>
</resources>

View File

@ -0,0 +1,17 @@
package com.fishrungames.crystalofrhylil;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Example local unit test, which will execute on the development machine (host).
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
public class ExampleUnitTest {
@Test
public void addition_isCorrect() {
assertEquals(4, 2 + 2);
}
}

View File

@ -0,0 +1,27 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}

View File

@ -0,0 +1,13 @@
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx1536m
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true

Binary file not shown.

View File

@ -0,0 +1,6 @@
#Thu Jul 19 17:06:55 YEKT 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip

172
proj.android-studio/gradlew vendored Executable file
View File

@ -0,0 +1,172 @@
#!/usr/bin/env sh
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn () {
echo "$*"
}
die () {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=$((i+1))
done
case $i in
(0) set -- ;;
(1) set -- "$args0" ;;
(2) set -- "$args0" "$args1" ;;
(3) set -- "$args0" "$args1" "$args2" ;;
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Escape application args
save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
APP_ARGS=$(save "$@")
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
cd "$(dirname "$0")"
fi
exec "$JAVACMD" "$@"

84
proj.android-studio/gradlew.bat vendored Executable file
View File

@ -0,0 +1,84 @@
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto init
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:init
@rem Get command-line arguments, handling Windows variants
if not "%OS%" == "Windows_NT" goto win9xME_args
:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2
:win9xME_args_slurp
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega

View File

@ -0,0 +1,7 @@
include ':SalmonEngineAndroid'
project(':SalmonEngineAndroid').projectDir =new File(settingsDir, '../../tes-engine/SalmonEngineAndroid/app')
include ':app'

BIN
src/.DS_Store vendored Normal file

Binary file not shown.

BIN
src/fishrungames/.DS_Store vendored Normal file

Binary file not shown.

View File

@ -1,32 +1,106 @@
 
Microsoft Visual Studio Solution File, Format Version 11.00 Microsoft Visual Studio Solution File, Format Version 12.00
# Visual C++ Express 2010 # Visual Studio 14
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Halibut Engine", "..\..\..\Engine\Halibut Engine\Halibut Engine.vcxproj", "{4E274B19-10B2-4987-96C5-76F35A149502}" VisualStudioVersion = 14.0.25123.0
EndProject MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Crystal of Rhylil", "Crystal of Rhylil\Crystal of Rhylil.vcxproj", "{0080A3E1-DFBF-4557-B198-E6D5D7724393}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Crystal of Rhylil", "Crystal of Rhylil\Crystal of Rhylil.vcxproj", "{0080A3E1-DFBF-4557-B198-E6D5D7724393}"
ProjectSection(ProjectDependencies) = postProject ProjectSection(ProjectDependencies) = postProject
{4E274B19-10B2-4987-96C5-76F35A149502} = {4E274B19-10B2-4987-96C5-76F35A149502} {534F100C-E611-43BF-B6F3-AD9F9925F703} = {534F100C-E611-43BF-B6F3-AD9F9925F703}
{03736B28-58F6-4AEA-9D37-B6AC4F5F853B} = {03736B28-58F6-4AEA-9D37-B6AC4F5F853B}
{A05BADE1-D792-4620-9928-13A7AFD0F195} = {A05BADE1-D792-4620-9928-13A7AFD0F195}
EndProjectSection EndProjectSection
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Engine", "..\..\tes-engine\windows\Engine\Engine.vcxproj", "{534F100C-E611-43BF-B6F3-AD9F9925F703}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpng", "..\..\tes-engine\windows\libpng\libpng.vcxproj", "{03736B28-58F6-4AEA-9D37-B6AC4F5F853B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libjpeg", "..\..\tes-engine\windows\libjpeg\libjpeg.vcxproj", "{A05BADE1-D792-4620-9928-13A7AFD0F195}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug_nosound|Win32 = Debug_nosound|Win32 Debug_nosound|Win32 = Debug_nosound|Win32
Debug_nosound|x64 = Debug_nosound|x64
Debug_nosound|x86 = Debug_nosound|x86
Debug|Win32 = Debug|Win32 Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Win32 = Release|Win32 Release|Win32 = Release|Win32
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{4E274B19-10B2-4987-96C5-76F35A149502}.Debug_nosound|Win32.ActiveCfg = Debug_nosound|Win32
{4E274B19-10B2-4987-96C5-76F35A149502}.Debug_nosound|Win32.Build.0 = Debug_nosound|Win32
{4E274B19-10B2-4987-96C5-76F35A149502}.Debug|Win32.ActiveCfg = Debug|Win32
{4E274B19-10B2-4987-96C5-76F35A149502}.Debug|Win32.Build.0 = Debug|Win32
{4E274B19-10B2-4987-96C5-76F35A149502}.Release|Win32.ActiveCfg = Release|Win32
{4E274B19-10B2-4987-96C5-76F35A149502}.Release|Win32.Build.0 = Release|Win32
{0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug_nosound|Win32.ActiveCfg = Debug|Win32 {0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug_nosound|Win32.ActiveCfg = Debug|Win32
{0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug_nosound|Win32.Build.0 = Debug|Win32 {0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug_nosound|Win32.Build.0 = Debug|Win32
{0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug_nosound|x64.ActiveCfg = Debug|x64
{0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug_nosound|x64.Build.0 = Debug|x64
{0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug_nosound|x86.ActiveCfg = Debug|Win32
{0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug_nosound|x86.Build.0 = Debug|Win32
{0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug|Win32.ActiveCfg = Debug|Win32 {0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug|Win32.ActiveCfg = Debug|Win32
{0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug|Win32.Build.0 = Debug|Win32 {0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug|Win32.Build.0 = Debug|Win32
{0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug|x64.ActiveCfg = Debug|x64
{0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug|x64.Build.0 = Debug|x64
{0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug|x86.ActiveCfg = Debug|Win32
{0080A3E1-DFBF-4557-B198-E6D5D7724393}.Debug|x86.Build.0 = Debug|Win32
{0080A3E1-DFBF-4557-B198-E6D5D7724393}.Release|Win32.ActiveCfg = Release|Win32 {0080A3E1-DFBF-4557-B198-E6D5D7724393}.Release|Win32.ActiveCfg = Release|Win32
{0080A3E1-DFBF-4557-B198-E6D5D7724393}.Release|Win32.Build.0 = Release|Win32 {0080A3E1-DFBF-4557-B198-E6D5D7724393}.Release|Win32.Build.0 = Release|Win32
{0080A3E1-DFBF-4557-B198-E6D5D7724393}.Release|x64.ActiveCfg = Release|x64
{0080A3E1-DFBF-4557-B198-E6D5D7724393}.Release|x64.Build.0 = Release|x64
{0080A3E1-DFBF-4557-B198-E6D5D7724393}.Release|x86.ActiveCfg = Release|Win32
{0080A3E1-DFBF-4557-B198-E6D5D7724393}.Release|x86.Build.0 = Release|Win32
{534F100C-E611-43BF-B6F3-AD9F9925F703}.Debug_nosound|Win32.ActiveCfg = Debug|Win32
{534F100C-E611-43BF-B6F3-AD9F9925F703}.Debug_nosound|Win32.Build.0 = Debug|Win32
{534F100C-E611-43BF-B6F3-AD9F9925F703}.Debug_nosound|x64.ActiveCfg = Debug|x64
{534F100C-E611-43BF-B6F3-AD9F9925F703}.Debug_nosound|x64.Build.0 = Debug|x64
{534F100C-E611-43BF-B6F3-AD9F9925F703}.Debug_nosound|x86.ActiveCfg = Debug|Win32
{534F100C-E611-43BF-B6F3-AD9F9925F703}.Debug_nosound|x86.Build.0 = Debug|Win32
{534F100C-E611-43BF-B6F3-AD9F9925F703}.Debug|Win32.ActiveCfg = Debug|Win32
{534F100C-E611-43BF-B6F3-AD9F9925F703}.Debug|Win32.Build.0 = Debug|Win32
{534F100C-E611-43BF-B6F3-AD9F9925F703}.Debug|x64.ActiveCfg = Debug|x64
{534F100C-E611-43BF-B6F3-AD9F9925F703}.Debug|x64.Build.0 = Debug|x64
{534F100C-E611-43BF-B6F3-AD9F9925F703}.Debug|x86.ActiveCfg = Debug|Win32
{534F100C-E611-43BF-B6F3-AD9F9925F703}.Debug|x86.Build.0 = Debug|Win32
{534F100C-E611-43BF-B6F3-AD9F9925F703}.Release|Win32.ActiveCfg = Release|Win32
{534F100C-E611-43BF-B6F3-AD9F9925F703}.Release|Win32.Build.0 = Release|Win32
{534F100C-E611-43BF-B6F3-AD9F9925F703}.Release|x64.ActiveCfg = Release|x64
{534F100C-E611-43BF-B6F3-AD9F9925F703}.Release|x64.Build.0 = Release|x64
{534F100C-E611-43BF-B6F3-AD9F9925F703}.Release|x86.ActiveCfg = Release|Win32
{534F100C-E611-43BF-B6F3-AD9F9925F703}.Release|x86.Build.0 = Release|Win32
{03736B28-58F6-4AEA-9D37-B6AC4F5F853B}.Debug_nosound|Win32.ActiveCfg = Debug|Win32
{03736B28-58F6-4AEA-9D37-B6AC4F5F853B}.Debug_nosound|Win32.Build.0 = Debug|Win32
{03736B28-58F6-4AEA-9D37-B6AC4F5F853B}.Debug_nosound|x64.ActiveCfg = Debug|x64
{03736B28-58F6-4AEA-9D37-B6AC4F5F853B}.Debug_nosound|x64.Build.0 = Debug|x64
{03736B28-58F6-4AEA-9D37-B6AC4F5F853B}.Debug_nosound|x86.ActiveCfg = Debug|Win32
{03736B28-58F6-4AEA-9D37-B6AC4F5F853B}.Debug_nosound|x86.Build.0 = Debug|Win32
{03736B28-58F6-4AEA-9D37-B6AC4F5F853B}.Debug|Win32.ActiveCfg = Debug|Win32
{03736B28-58F6-4AEA-9D37-B6AC4F5F853B}.Debug|Win32.Build.0 = Debug|Win32
{03736B28-58F6-4AEA-9D37-B6AC4F5F853B}.Debug|x64.ActiveCfg = Debug|x64
{03736B28-58F6-4AEA-9D37-B6AC4F5F853B}.Debug|x64.Build.0 = Debug|x64
{03736B28-58F6-4AEA-9D37-B6AC4F5F853B}.Debug|x86.ActiveCfg = Debug|Win32
{03736B28-58F6-4AEA-9D37-B6AC4F5F853B}.Debug|x86.Build.0 = Debug|Win32
{03736B28-58F6-4AEA-9D37-B6AC4F5F853B}.Release|Win32.ActiveCfg = Release|Win32
{03736B28-58F6-4AEA-9D37-B6AC4F5F853B}.Release|Win32.Build.0 = Release|Win32
{03736B28-58F6-4AEA-9D37-B6AC4F5F853B}.Release|x64.ActiveCfg = Release|x64
{03736B28-58F6-4AEA-9D37-B6AC4F5F853B}.Release|x64.Build.0 = Release|x64
{03736B28-58F6-4AEA-9D37-B6AC4F5F853B}.Release|x86.ActiveCfg = Release|Win32
{03736B28-58F6-4AEA-9D37-B6AC4F5F853B}.Release|x86.Build.0 = Release|Win32
{A05BADE1-D792-4620-9928-13A7AFD0F195}.Debug_nosound|Win32.ActiveCfg = Debug|Win32
{A05BADE1-D792-4620-9928-13A7AFD0F195}.Debug_nosound|Win32.Build.0 = Debug|Win32
{A05BADE1-D792-4620-9928-13A7AFD0F195}.Debug_nosound|x64.ActiveCfg = Debug|x64
{A05BADE1-D792-4620-9928-13A7AFD0F195}.Debug_nosound|x64.Build.0 = Debug|x64
{A05BADE1-D792-4620-9928-13A7AFD0F195}.Debug_nosound|x86.ActiveCfg = Debug|Win32
{A05BADE1-D792-4620-9928-13A7AFD0F195}.Debug_nosound|x86.Build.0 = Debug|Win32
{A05BADE1-D792-4620-9928-13A7AFD0F195}.Debug|Win32.ActiveCfg = Debug|Win32
{A05BADE1-D792-4620-9928-13A7AFD0F195}.Debug|Win32.Build.0 = Debug|Win32
{A05BADE1-D792-4620-9928-13A7AFD0F195}.Debug|x64.ActiveCfg = Debug|x64
{A05BADE1-D792-4620-9928-13A7AFD0F195}.Debug|x64.Build.0 = Debug|x64
{A05BADE1-D792-4620-9928-13A7AFD0F195}.Debug|x86.ActiveCfg = Debug|Win32
{A05BADE1-D792-4620-9928-13A7AFD0F195}.Debug|x86.Build.0 = Debug|Win32
{A05BADE1-D792-4620-9928-13A7AFD0F195}.Release|Win32.ActiveCfg = Release|Win32
{A05BADE1-D792-4620-9928-13A7AFD0F195}.Release|Win32.Build.0 = Release|Win32
{A05BADE1-D792-4620-9928-13A7AFD0F195}.Release|x64.ActiveCfg = Release|x64
{A05BADE1-D792-4620-9928-13A7AFD0F195}.Release|x64.Build.0 = Release|x64
{A05BADE1-D792-4620-9928-13A7AFD0F195}.Release|x86.ActiveCfg = Release|Win32
{A05BADE1-D792-4620-9928-13A7AFD0F195}.Release|x86.Build.0 = Release|Win32
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE

View File

@ -1,14 +1,22 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations"> <ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32"> <ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration> <Configuration>Debug</Configuration>
<Platform>Win32</Platform> <Platform>Win32</Platform>
</ProjectConfiguration> </ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32"> <ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration> <Configuration>Release</Configuration>
<Platform>Win32</Platform> <Platform>Win32</Platform>
</ProjectConfiguration> </ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup> </ItemGroup>
<PropertyGroup Label="Globals"> <PropertyGroup Label="Globals">
<ProjectGuid>{0080A3E1-DFBF-4557-B198-E6D5D7724393}</ProjectGuid> <ProjectGuid>{0080A3E1-DFBF-4557-B198-E6D5D7724393}</ProjectGuid>
@ -20,12 +28,27 @@
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>NotSet</CharacterSet> <CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>NotSet</CharacterSet> <CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings"> <ImportGroup Label="ExtensionSettings">
@ -33,18 +56,33 @@
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" /> <PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(SalmonEnginePath)include</IncludePath> <IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(SalmonEnginePath)include</IncludePath>
<LibraryPath>$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;$(SalmonEnginePath)$(Configuration)</LibraryPath> <LibraryPath>$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;$(SalmonEnginePath)$(Configuration)</LibraryPath>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath)</IncludePath>
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(SalmonEnginePath)include</IncludePath> <IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(SalmonEnginePath)include</IncludePath>
<LibraryPath>$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;$(SalmonEnginePath)$(Configuration)</LibraryPath> <LibraryPath>$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;$(SalmonEnginePath)$(Configuration)</LibraryPath>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(SalmonEnginePath)include</IncludePath>
<LibraryPath>$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;$(SalmonEnginePath)$(Configuration)</LibraryPath>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile> <ClCompile>
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
@ -58,6 +96,21 @@
<AdditionalLibraryDirectories>$(LibsPath)\boost_1_47_0\boost_windows\libs_engine\$(Configuration);$(LibsPath)\libogg-1.3.0\win32\VS2010\Win32\$(Configuration);$(LibsPath)\libvorbis-1.3.2\win32\VS2010\Win32\$(Configuration);$(LibsPath)\openal\OpenAL11_windows_sdk\libs\Win32;$(LibsPath)\sqplus\lib;$(LibsPath)\DirectXsdk\Lib\x86;$(LibsPath)\lpng1510\projects\vstudio\Debug Library</AdditionalLibraryDirectories> <AdditionalLibraryDirectories>$(LibsPath)\boost_1_47_0\boost_windows\libs_engine\$(Configuration);$(LibsPath)\libogg-1.3.0\win32\VS2010\Win32\$(Configuration);$(LibsPath)\libvorbis-1.3.2\win32\VS2010\Win32\$(Configuration);$(LibsPath)\openal\OpenAL11_windows_sdk\libs\Win32;$(LibsPath)\sqplus\lib;$(LibsPath)\DirectXsdk\Lib\x86;$(LibsPath)\lpng1510\projects\vstudio\Debug Library</AdditionalLibraryDirectories>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../../../eigen;../../../tes-engine;../../../boost_1_63_0/;../../../boost_1_63_0/bin.v2/libs/system/build/msvc-14.0/debug/address-model-64/link-static/threading-multi;../../../boost_1_63_0/bin.v2/libs/date_time/build/msvc-14.0/debug/address-model-64/link-static/threading-multi/;../../../boost_1_63_0/bin.v2/libs/regex/build/msvc-14.0/debug/address-model-64/link-static/threading-multi;../../../boost_1_63_0/bin.v2/libs/thread/build/msvc-14.0/debug/address-model-64/link-static/threading-multi;../../../boost_1_63_0/bin.v2/libs/chrono/build/msvc-14.0/debug/address-model-64/link-static/threading-multi;../../../boost_1_63_0/bin.v2/libs/signals/build/msvc-14.0/debug/address-model-64/link-static/threading-multi;../../../libs/boost-gil-extension;../../../libs/jpeg-9;../../../libs/jpeg-9/vc10;../../../libs/lpng1510</AdditionalIncludeDirectories>
<PreprocessorDefinitions>TARGET_WIN32;DEBUG;_WIN32_WINNT=0x0501;EIGEN_DONT_ALIGN_STATICALLY;_WINDOWS;WIN32;WIN32_LEAN_AND_MEAN</PreprocessorDefinitions>
<DisableSpecificWarnings>4503</DisableSpecificWarnings>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>libjpeg.lib;libpng.lib;Engine.lib;opengl32.lib;glu32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>../../game;../../../tes-engine;../../../eigen;../../../boost_1_63_0/;../../../boost_1_63_0/stage/x64/lib;../../../boost_1_63_0/bin.v2/libs/system/build/msvc-14.0/debug/address-model-64/link-static/threading-multi;../../../boost_1_63_0/bin.v2/libs/date_time/build/msvc-14.0/debug/address-model-64/link-static/threading-multi/;../../../boost_1_63_0/bin.v2/libs/regex/build/msvc-14.0/debug/address-model-64/link-static/threading-multi;../../../boost_1_63_0/bin.v2/libs/thread/build/msvc-14.0/debug/address-model-64/link-static/threading-multi;../../../boost_1_63_0/bin.v2/libs/chrono/build/msvc-14.0/debug/address-model-64/link-static/threading-multi;../../../boost_1_63_0/bin.v2/libs/filesystem/build/msvc-14.0/debug/address-model-64/link-static/threading-multi;../../../boost_1_63_0/bin.v2/libs/signals/build/msvc-14.0/debug/address-model-64/link-static/threading-multi;../../../libs/boost-gil-extension;../../../libs/jpeg-9;../../../libs/jpeg-9/vc10;../../../libs/lpng1510;../x64/Debug</AdditionalLibraryDirectories>
<SubSystem>Windows</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile> <ClCompile>
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
@ -75,12 +128,31 @@
<AdditionalLibraryDirectories>$(LibsPath)\boost_1_47_0\boost_windows\libs_engine\$(Configuration);$(LibsPath)\libogg-1.3.0\win32\VS2010\Win32\$(Configuration);$(LibsPath)\libvorbis-1.3.2\win32\VS2010\Win32\$(Configuration);$(LibsPath)\openal\OpenAL11_windows_sdk\libs\Win32;$(LibsPath)\sqplus\lib;$(LibsPath)\DirectXsdk\Lib\x86;$(LibsPath)\lpng1510\projects\vstudio\Release Library</AdditionalLibraryDirectories> <AdditionalLibraryDirectories>$(LibsPath)\boost_1_47_0\boost_windows\libs_engine\$(Configuration);$(LibsPath)\libogg-1.3.0\win32\VS2010\Win32\$(Configuration);$(LibsPath)\libvorbis-1.3.2\win32\VS2010\Win32\$(Configuration);$(LibsPath)\openal\OpenAL11_windows_sdk\libs\Win32;$(LibsPath)\sqplus\lib;$(LibsPath)\DirectXsdk\Lib\x86;$(LibsPath)\lpng1510\projects\vstudio\Release Library</AdditionalLibraryDirectories>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>$(SalmonEnginePath);$(LibsPath)\boost_1_47_0;$(LibsPath)\openal\OpenAL11_windows_sdk;$(LibsPath)\libogg-1.3.0\include;$(LibsPath)\libvorbis-1.3.2\include;$(LibsPath)\sqplus\sqplus;$(LibsPath)\sqplus\include;$(SolutionDir)\..\jni;$(LibsPath)\DirectXsdk\Include;$(LibsPath)\lpng1510</AdditionalIncludeDirectories>
<PreprocessorDefinitions>TARGET_WIN32;TARGET_HALIBUT;WIN32_LEAN_AND_MEAN;_WIN32_WINNT=0x0501</PreprocessorDefinitions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;opengl32.lib;glu32.lib;Halibut Engine.lib;libogg_static.lib;libvorbis_static.lib;libvorbisfile_static.lib;OpenAL32.lib;zlib.lib;libpng15.lib;sqplus.lib;squirrel.lib;sqdbglib.lib;sqstdlib.lib;dsound.lib;dxguid.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(LibsPath)\boost_1_47_0\boost_windows\libs_engine\$(Configuration);$(LibsPath)\libogg-1.3.0\win32\VS2010\Win32\$(Configuration);$(LibsPath)\libvorbis-1.3.2\win32\VS2010\Win32\$(Configuration);$(LibsPath)\openal\OpenAL11_windows_sdk\libs\Win32;$(LibsPath)\sqplus\lib;$(LibsPath)\DirectXsdk\Lib\x86;$(LibsPath)\lpng1510\projects\vstudio\Release Library</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="..\..\jni\main_code.cpp" /> <ClCompile Include="..\..\jni\main_code.cpp" />
<ClCompile Include="..\..\jni\match3\match3field.cpp" /> <ClCompile Include="..\..\jni\match3\match3field.cpp" />
<ClCompile Include="main.cpp"> <ClCompile Include="main.cpp">
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TARGET_WIN32;HALIBUT_WIN32;DEBUG;WIN32_LEAN_AND_MEAN</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">TARGET_WIN32;HALIBUT_WIN32;DEBUG;WIN32_LEAN_AND_MEAN</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">TARGET_WIN32;HALIBUT_WIN32;DEBUG;WIN32_LEAN_AND_MEAN</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TARGET_WIN32;HALIBUT_WIN32;WIN32_LEAN_AND_MEAN</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">TARGET_WIN32;HALIBUT_WIN32;WIN32_LEAN_AND_MEAN</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">TARGET_WIN32;HALIBUT_WIN32;WIN32_LEAN_AND_MEAN</PreprocessorDefinitions>
</ClCompile> </ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -7,14 +7,29 @@
#include "boost/foreach.hpp" #include "boost/foreach.hpp"
extern boost::shared_ptr<TMyApplication> App; extern std::shared_ptr<TMyApplication> App;
int APIENTRY WinMain(HINSTANCE hCurrentInst, HINSTANCE hPreviousInst, int APIENTRY WinMain(HINSTANCE hCurrentInst, HINSTANCE hPreviousInst,
LPSTR lpszCmdLine, int nCmdShow) LPSTR lpszCmdLine, int nCmdShow)
{ {
App->Height = 480;
App->Width = 800;
//Start application //480x320
return MainLoop(*App); int height = 600;
int width = 800;
//int height = 480;
//int width = 800;
if (SE::CreateEngine(width, height)) {
App->OuterInit(width, height, width, height);
MainLoop(App.get());
App->OuterDeinit();
SE::DestroyEngine();
}
return 0;
} }

View File

@ -1,6 +1,6 @@
#pragma once #pragma once
/* Path to the engine */ /* Path to the engine */
#include "HalibutEngineWindows.h" #include "include/Engine.h"
#include "../../jni/main_code.h" #include "../../jni/main_code.h"