new engine

This commit is contained in:
Roman Larionov 2017-11-14 22:04:04 +05:00
parent 59f74b3826
commit 450e80b278
20 changed files with 586865 additions and 661 deletions

View File

@ -19,32 +19,33 @@ TGameCredits::TGameCredits()
void TGameCredits::Draw() void TGameCredits::Draw()
{ {
//*SE::Console << "TGameCredits::Draw";
float transparency = StateTimer/CONST_APPEAR_TIME; float transparency = StateTimer/CONST_APPEAR_TIME;
RenderUniform1f("Transparency", transparency); RenderUniform1f("Transparency", transparency);
glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList["main_menu_bkg_left"]); glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList["main_menu_bkg_left"]);
Renderer->DrawRect(vec2(0, 0.f), vec2(480.f, 320.f)); Renderer->DrawRect(Vector2f(0, 0.f), Vector2f(480.f, 320.f));
const vec2 creditsPos(140.f, 130.f); const Vector2f creditsPos(140.f, 130.f);
const vec2 creditsHalfSize(128.f, 128.f); const Vector2f creditsHalfSize(128.f, 128.f);
glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_CREDITS_TEXTURE]); glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_CREDITS_TEXTURE]);
Renderer->DrawRect(creditsPos-creditsHalfSize, creditsPos+creditsHalfSize); Renderer->DrawRect(creditsPos-creditsHalfSize, creditsPos+creditsHalfSize);
glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_LOGO_SMALL_TEXTURE]); 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)); Renderer->DrawRect(Vector2f(240.f-128.f+15.f, 320.f-64.f), Vector2f(240.f+128.f+15.f, 320.f));
CheckGlError("Draw TGameCredits"); CheckGlError("Draw TGameCredits");
} }
void TGameCredits::Update(cardinal dt) void TGameCredits::Update(size_t dt)
{ {
if (State == CONST_STATE_APPEARING) if (State == CONST_STATE_APPEARING)
{ {
*SE::Console << "TGameCredits::Update - CONST_STATE_APPEARING";
StateTimer += dt; StateTimer += dt;
if (StateTimer >= CONST_APPEAR_TIME) if (StateTimer >= CONST_APPEAR_TIME)
{ {
@ -63,17 +64,20 @@ void TGameCredits::Update(cardinal dt)
} }
} }
void TGameCredits::OnTapDown(vec2 p) void TGameCredits::OnTapDown(Vector2f p)
{ {
*SE::Console << "TGameCredits::OnTapDown";
Application->GoFromCreditsToMenu(); Application->GoFromCreditsToMenu();
} }
void TGameCredits::StartAppear() void TGameCredits::StartAppear()
{ {
*SE::Console << "TGameCredits::StartAppear";
State = CONST_STATE_APPEARING; State = CONST_STATE_APPEARING;
} }
void TGameCredits::StartDisappear() void TGameCredits::StartDisappear()
{ {
*SE::Console << "TGameCredits::StartDisappear";
State = CONST_STATE_DISAPPEARING; State = CONST_STATE_DISAPPEARING;
} }

View File

@ -23,8 +23,8 @@ public:
TGameCredits(); TGameCredits();
virtual void Draw(); virtual void Draw();
virtual void Update(cardinal dt); virtual void Update(size_t dt);
virtual void OnTapDown(vec2 p); virtual void OnTapDown(Vector2f p);
void StartAppear(); void StartAppear();
void StartDisappear(); void StartDisappear();

View File

@ -10,13 +10,13 @@ class TGameAreaAncestor
{ {
public: public:
virtual void Draw() { } virtual void Draw() { }
virtual void Update(cardinal) { } virtual void Update(size_t) { }
virtual void OnTapUp(vec2) { } virtual void OnTapUp(Vector2f) { }
virtual void OnTapUpAfterMove(vec2) { } virtual void OnTapUpAfterMove(Vector2f) { }
virtual void OnTapDown(vec2) { } virtual void OnTapDown(Vector2f) { }
virtual void OnFling(vec2) { } virtual void OnFling(Vector2f) { }
virtual void OnScroll(vec2) { } virtual void OnScroll(Vector2f) { }
virtual ~TGameAreaAncestor() { } //By default destructor is not virtual virtual ~TGameAreaAncestor() { } //By default destructor is not virtual
}; };

File diff suppressed because it is too large Load Diff

View File

@ -45,16 +45,16 @@ protected:
int Locked; //0, 1 or 2 int Locked; //0, 1 or 2
int State; int State;
float StateTimer; float StateTimer;
vec4 Color; Vector4f Color;
public: public:
TBrick(); TBrick();
void SetVisible(vec4 color, int locked); void SetVisible(Vector4f color, int locked);
void SetInvisible(); void SetInvisible();
void TryDrawAppear(int ipos, int jpos); void TryDrawAppear(int ipos, int jpos);
void Update(cardinal dt); void Update(size_t dt);
vec2 GetPosFrom(int ipos, int jpos); Vector2f GetPosFrom(int ipos, int jpos);
vec4 GetColor(); Vector4f GetColor();
void Appear(vec4 color, int locked); void Appear(Vector4f color, int locked);
void Appear(); void Appear();
void Hit(); void Hit();
void Disappear(); void Disappear();
@ -66,30 +66,30 @@ class TBonusFalling
{ {
protected: protected:
float Lifetime; float Lifetime;
vec2 Pos; Vector2f Pos;
std::string TexName; std::string TexName;
int BonusType; //0 - multiplier, 1 - Go-through, 2 - floor int BonusType; //0 - multiplier, 1 - Go-through, 2 - floor
public: public:
TBonusFalling(vec2 pos); TBonusFalling(Vector2f pos);
vec2 GetPos(); Vector2f GetPos();
int GetType(); int GetType();
void Draw(); void Draw();
void Update(cardinal dt); void Update(size_t dt);
}; };
struct TBall struct TBall
{ {
vec2 Pos; Vector2f Pos;
vec2 Velocity; Vector2f Velocity;
vec4 Color; Vector4f Color;
std::list<vec2> TalePos; std::list<Vector2f> TalePos;
vec2 BallInBlock; Vector2f BallInBlock;
vec2 PrevBallInBlock; Vector2f PrevBallInBlock;
TBall(vec2 pos, vec2 velocity, vec4 color); TBall(Vector2f pos, Vector2f velocity, Vector4f color);
vec2 GetPos(); Vector2f GetPos();
vec2 GetVelocityVector(); Vector2f GetVelocityVector();
void Go(); void Go();
@ -98,12 +98,12 @@ struct TBall
void ReflectToUp(); void ReflectToUp();
void ReflectToDown(); void ReflectToDown();
void TryReflectOnReflector(vec2 refPos); void TryReflectOnReflector(Vector2f refPos);
void Update(cardinal dt); void Update(size_t dt);
}; };
typedef std::pair<vec4, std::string> PairColorTexture; typedef std::pair<Vector4f, std::string> PairColorTexture;
struct TBlockInstansingList struct TBlockInstansingList
{ {
@ -124,7 +124,7 @@ protected:
std::string LevelScreenTexture; std::string LevelScreenTexture;
std::string LevelFileName; std::string LevelFileName;
vec2 ReflectorPos; Vector2f ReflectorPos;
int LevelState; int LevelState;
bool PrevLevelStateIsStandby; bool PrevLevelStateIsStandby;
@ -133,7 +133,7 @@ protected:
TBrick BlockMatrix[CONST_BRICKMATRIX_WIDTH][CONST_BRICKMATRIX_HEIGHT]; TBrick BlockMatrix[CONST_BRICKMATRIX_WIDTH][CONST_BRICKMATRIX_HEIGHT];
TBlockInstansingList BlockInstansingList; TBlockInstansingList BlockInstansingList;
bool TapInBackBtnArea(const vec2& pos); bool TapInBackBtnArea(const Vector2f& pos);
void ReloadBlockInstansingList(); void ReloadBlockInstansingList();
void SetFinished(); void SetFinished();
@ -158,23 +158,23 @@ protected:
TBallInstancingList BallInstancingList; TBallInstancingList BallInstancingList;
vec4 BallColor; Vector4f BallColor;
void ReloadBallInstancingList(); void ReloadBallInstancingList();
void RefreshBallInstancingList(); void RefreshBallInstancingList();
void UpdateBallList(cardinal dt); void UpdateBallList(size_t dt);
void MultiplyBalls(vec2 pos, vec2 velocity); void MultiplyBalls(Vector2f pos, Vector2f velocity);
vec2 GetBlock(const vec2& pos); Vector2f GetBlock(const Vector2f& pos);
void InitLevel(); void InitLevel();
float BonusGothroughTimer; float BonusGothroughTimer;
float BonusFloorTimer; float BonusFloorTimer;
float BonusFloorPosY; float BonusFloorPosY;
vec4 ParseColor(const std::string& s); Vector4f ParseColor(const std::string& s);
void ReloadLevel(); void ReloadLevel();
public: public:
@ -193,11 +193,11 @@ public:
bool IsPaused(); bool IsPaused();
void ReleasePause(); void ReleasePause();
virtual void Update(cardinal dt); virtual void Update(size_t dt);
virtual void OnTapDown(vec2 pos); virtual void OnTapDown(Vector2f pos);
virtual void OnTapUp(vec2 pos); virtual void OnTapUp(Vector2f pos);
virtual void OnFling(vec2 slideSpeed); virtual void OnFling(Vector2f slideSpeed);
virtual void OnScroll(vec2 shift); virtual void OnScroll(Vector2f shift);
}; };

View File

@ -4,12 +4,16 @@
void TGameLoading::Draw() void TGameLoading::Draw()
{ {
//*SE::Console << "TGameLoading::Draw";
glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList[CONST_LOADING_BACKGROUND_BLACK]);
Renderer->DrawRect(Vector2f(0.f, 0.f), Vector2f(Renderer->GetMatrixWidth(), Renderer->GetMatrixHeight()));
glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_LOADING_TEXTURE]); 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)); Renderer->DrawRect(Vector2f(240.f - 128.f, 10.f), Vector2f(240.f + 128.f, 10.f + 64.f));
glBindTexture(GL_TEXTURE_2D,ResourceManager->TexList[CONST_LOGO_SMALL_TEXTURE]); 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)); Renderer->DrawRect(Vector2f(480.f - 256.f+50.f, 320.f - 64.f), Vector2f(480.f+50.f, 320.f));
CheckGlError(); CheckGlError();

View File

@ -11,11 +11,11 @@
#include "main_code.h" #include "main_code.h"
boost::signals2::signal<void (vec2)> OnTapUpSignal; boost::signals2::signal<void (Vector2f)> OnTapUpSignal;
boost::signals2::signal<void (vec2)> OnTapUpAfterMoveSignal; boost::signals2::signal<void (Vector2f)> OnTapUpAfterMoveSignal;
boost::signals2::signal<void (vec2)> OnTapDownSignal; boost::signals2::signal<void (Vector2f)> OnTapDownSignal;
boost::signals2::signal<void (vec2)> OnFlingSignal; boost::signals2::signal<void (Vector2f)> OnFlingSignal;
boost::signals2::signal<void (vec2)> OnScrollSignal; boost::signals2::signal<void (Vector2f)> OnScrollSignal;
boost::signals2::signal<void ()> OnDrawSignal; boost::signals2::signal<void ()> OnDrawSignal;
@ -43,13 +43,15 @@ 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_TAP_TO_CONTINUE_BTN_TEXTURE = "tap_to_continue_btn";
const std::string CONST_LOADING_TEXTURE = "loading"; const std::string CONST_LOADING_TEXTURE = "loading";
const std::string CONST_LOGO_SMALL_TEXTURE = "logo_small"; const std::string CONST_LOGO_SMALL_TEXTURE = "logo_small";
const std::string CONST_LOADING_BACKGROUND_BLACK = "loading_background_black";
const std::string CONST_CREDITS_TEXTURE = "credits"; const std::string CONST_CREDITS_TEXTURE = "credits";
const float CONST_CREDITS_SHOW_TIME = 150.f; const float CONST_CREDITS_SHOW_TIME = 150.f;
TAndroidApplication* Application; TMyApplication* Application;
void TAndroidApplication::InnerInit()
void TMyApplication::InnerInit()
{ {
Application = this; Application = this;
@ -70,7 +72,7 @@ void TAndroidApplication::InnerInit()
{ {
*Console<<"APP INIT\n"; *Console<<"APP INIT\n";
} }
srand (static_cast<cardinal>(time(NULL))); srand (static_cast<size_t>(time(NULL)));
GameState = CONST_GAMESTATE_PRELOADING; GameState = CONST_GAMESTATE_PRELOADING;
StateTimer = 0.f; StateTimer = 0.f;
@ -80,6 +82,7 @@ void TAndroidApplication::InnerInit()
ResourceManager->ShaderManager.AddShader("BrickShader", "brickshader_vertex.txt", "brickshader_fragment.txt"); ResourceManager->ShaderManager.AddShader("BrickShader", "brickshader_vertex.txt", "brickshader_fragment.txt");
Renderer->PushShader("DefaultShader"); Renderer->PushShader("DefaultShader");
ResourceManager->TexList.AddTexture(CONST_LOADING_BACKGROUND_BLACK + ".png", CONST_LOADING_BACKGROUND_BLACK);
ResourceManager->TexList.AddTexture(CONST_LOADING_TEXTURE + ".png", CONST_LOADING_TEXTURE); 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(CONST_LOGO_SMALL_TEXTURE + ".png", CONST_LOGO_SMALL_TEXTURE);
@ -94,11 +97,9 @@ void TAndroidApplication::InnerInit()
Renderer->SetFullScreenViewport(); Renderer->SetFullScreenViewport();
} }
void TAndroidApplication::InnerDeinit() void TMyApplication::InnerDeinit()
{ {
Inited = false; Inited = false;
Loaded = false; Loaded = false;
@ -131,32 +132,33 @@ void TAndroidApplication::InnerDeinit()
} }
void TAndroidApplication::InnerOnTapDown(vec2 p) void TMyApplication::InnerOnTapDown(Vector2f p)
{ {
OnTapDownSignal(vec2(p.v[0], p.v[1])); //-OnTapDownSignal(Vector2f(p.v[0], p.v[1]));
OnTapDownSignal(Vector2f(p(0), p(1)));
} }
void TAndroidApplication::InnerOnTapUp(vec2 p) void TMyApplication::InnerOnTapUp(Vector2f p)
{ {
OnTapUpSignal(vec2(p.v[0], p.v[1])); OnTapUpSignal(Vector2f(p(0), p(1)));
} }
void TAndroidApplication::InnerOnTapUpAfterMove(vec2 p) void TMyApplication::InnerOnTapUpAfterMove(Vector2f p)
{ {
OnTapUpAfterMoveSignal(vec2(p.v[0], p.v[1])); OnTapUpAfterMoveSignal(Vector2f(p(0), p(1)));
} }
void TAndroidApplication::InnerOnMove(vec2 shift) void TMyApplication::InnerOnMove(Vector2f p, Vector2f shift)
{ {
OnScrollSignal(shift); OnScrollSignal(Vector2f(shift(0), shift(1)));
} }
void TAndroidApplication::OnFling(vec2 v) void TMyApplication::OnFling(Vector2f v)
{ {
} }
void TAndroidApplication::ApplySignalsToMenu() void TMyApplication::ApplySignalsToMenu()
{ {
OnTapUpSignal.connect(boost::bind(&TGameMenu::OnTapUp, boost::ref(Menu), _1)); OnTapUpSignal.connect(boost::bind(&TGameMenu::OnTapUp, boost::ref(Menu), _1));
@ -168,7 +170,7 @@ void TAndroidApplication::ApplySignalsToMenu()
} }
void TAndroidApplication::DisapplySignalsToMenu() void TMyApplication::DisapplySignalsToMenu()
{ {
OnTapUpSignal.disconnect(boost::bind(&TGameMenu::OnTapUp, boost::ref(Menu), _1)); OnTapUpSignal.disconnect(boost::bind(&TGameMenu::OnTapUp, boost::ref(Menu), _1));
OnTapUpAfterMoveSignal.disconnect(boost::bind(&TGameMenu::OnTapUpAfterMove, boost::ref(Menu), _1)); OnTapUpAfterMoveSignal.disconnect(boost::bind(&TGameMenu::OnTapUpAfterMove, boost::ref(Menu), _1));
@ -177,9 +179,8 @@ void TAndroidApplication::DisapplySignalsToMenu()
OnTapDownSignal.disconnect(boost::bind(&TGameMenu::OnTapDown, boost::ref(Menu), _1)); OnTapDownSignal.disconnect(boost::bind(&TGameMenu::OnTapDown, boost::ref(Menu), _1));
} }
void TAndroidApplication::ApplySignalsToGame() void TMyApplication::ApplySignalsToGame()
{ {
OnTapUpSignal.connect(boost::bind(&TGameLevel::OnTapUp, boost::ref(GameLevel), _1)); OnTapUpSignal.connect(boost::bind(&TGameLevel::OnTapUp, boost::ref(GameLevel), _1));
OnFlingSignal.connect(boost::bind(&TGameLevel::OnFling, boost::ref(GameLevel), _1)); OnFlingSignal.connect(boost::bind(&TGameLevel::OnFling, boost::ref(GameLevel), _1));
OnScrollSignal.connect(boost::bind(&TGameLevel::OnScroll, boost::ref(GameLevel), _1)); OnScrollSignal.connect(boost::bind(&TGameLevel::OnScroll, boost::ref(GameLevel), _1));
@ -187,7 +188,7 @@ void TAndroidApplication::ApplySignalsToGame()
} }
void TAndroidApplication::DisapplySignalsToGame() void TMyApplication::DisapplySignalsToGame()
{ {
OnTapUpSignal.disconnect(boost::bind(&TGameLevel::OnTapUp, boost::ref(GameLevel), _1)); OnTapUpSignal.disconnect(boost::bind(&TGameLevel::OnTapUp, boost::ref(GameLevel), _1));
OnFlingSignal.disconnect(boost::bind(&TGameLevel::OnFling, boost::ref(GameLevel), _1)); OnFlingSignal.disconnect(boost::bind(&TGameLevel::OnFling, boost::ref(GameLevel), _1));
@ -196,18 +197,18 @@ void TAndroidApplication::DisapplySignalsToGame()
} }
void TAndroidApplication::ApplySignalsToCredits() void TMyApplication::ApplySignalsToCredits()
{ {
OnTapDownSignal.connect(boost::bind(&TGameCredits::OnTapDown, boost::ref(GameCredits), _1)); OnTapDownSignal.connect(boost::bind(&TGameCredits::OnTapDown, boost::ref(GameCredits), _1));
} }
void TAndroidApplication::DisapplySignalsToCredits() void TMyApplication::DisapplySignalsToCredits()
{ {
OnTapDownSignal.disconnect(boost::bind(&TGameCredits::OnTapDown, boost::ref(GameCredits), _1)); OnTapDownSignal.disconnect(boost::bind(&TGameCredits::OnTapDown, boost::ref(GameCredits), _1));
} }
void TAndroidApplication::LoadResources() void TMyApplication::LoadResources()
{ {
TextureNamesToLoad.clear(); TextureNamesToLoad.clear();
@ -273,7 +274,7 @@ void TAndroidApplication::LoadResources()
} }
void TAndroidApplication::TryLoadSavedGame() void TMyApplication::TryLoadSavedGame()
{ {
std::string fileName = GetFilePathUserData("progress.txt"); std::string fileName = GetFilePathUserData("progress.txt");
@ -292,7 +293,7 @@ void TAndroidApplication::TryLoadSavedGame()
} }
} }
void TAndroidApplication::TrySaveGame() void TMyApplication::TrySaveGame()
{ {
std::string fileName = GetFilePathUserData("progress.txt"); std::string fileName = GetFilePathUserData("progress.txt");
@ -310,23 +311,22 @@ void TAndroidApplication::TrySaveGame()
void TAndroidApplication::InnerDraw() void TMyApplication::InnerDraw()
{ {
glDisable(GL_DEPTH_TEST); glDisable(GL_DEPTH_TEST);
OnDrawSignal(); OnDrawSignal();
} }
void TAndroidApplication::InnerUpdate(cardinal dt) void TMyApplication::InnerUpdate(size_t dt)
{ {
if (GameState == CONST_GAMESTATE_PRELOADING) if (GameState == CONST_GAMESTATE_PRELOADING)
{ {
*SE::Console << "1CONST_GAMESTATE_PRELOADING";
StateTimer += dt/1000.f; StateTimer += dt/1000.f;
if (StateTimer >= 1.f) if (StateTimer >= 1.f)
{ {
@ -337,6 +337,7 @@ void TAndroidApplication::InnerUpdate(cardinal dt)
} }
else if (GameState == CONST_GAMESTATE_LOADING) else if (GameState == CONST_GAMESTATE_LOADING)
{ {
*SE::Console << "2CONST_GAMESTATE_LOADING";
StateTimer += dt/1000.f; StateTimer += dt/1000.f;
if (StateTimer >= 1.f) if (StateTimer >= 1.f)
{ {
@ -360,17 +361,21 @@ void TAndroidApplication::InnerUpdate(cardinal dt)
} }
else if (GameState == CONST_GAMESTATE_LEVEL) else if (GameState == CONST_GAMESTATE_LEVEL)
{ {
*SE::Console << "3CONST_GAMESTATE_LEVEL";
GameLevel.Update(dt); GameLevel.Update(dt);
} }
else if (GameState == CONST_GAMESTATE_MENU) else if (GameState == CONST_GAMESTATE_MENU)
{ {
//*SE::Console << "4CONST_GAMESTATE_MENU";
Menu.Update(dt); Menu.Update(dt);
} }
else if (GameState == CONST_GAMESTATE_FROM_MENU_TO_LEVEL) else if (GameState == CONST_GAMESTATE_FROM_MENU_TO_LEVEL)
{ {
*SE::Console << "5CONST_GAMESTATE_FROM_MENU_TO_LEVEL";
GameLevel.Update(dt); GameLevel.Update(dt);
if (GameLevel.IsLoaded()) if (GameLevel.IsLoaded())
{ {
//*SE::Console << "5CONST_GAMESTATE_FROM_MENU_TO_LEVEL";
GameState = CONST_GAMESTATE_LEVEL; GameState = CONST_GAMESTATE_LEVEL;
OnDrawSignal.disconnect(boost::bind(&TGameMenu::Draw, boost::ref(Menu))); OnDrawSignal.disconnect(boost::bind(&TGameMenu::Draw, boost::ref(Menu)));
//CONNECT SLOT //CONNECT SLOT
@ -380,6 +385,7 @@ void TAndroidApplication::InnerUpdate(cardinal dt)
} }
else if (GameState == CONST_GAMESTATE_FROM_MENU_TO_CREDITS) else if (GameState == CONST_GAMESTATE_FROM_MENU_TO_CREDITS)
{ {
*SE::Console << "6CONST_GAMESTATE_FROM_MENU_TO_CREDITS";
Menu.Update(dt); Menu.Update(dt);
GameCredits.Update(dt); GameCredits.Update(dt);
StateTimer -= dt; StateTimer -= dt;
@ -393,6 +399,7 @@ void TAndroidApplication::InnerUpdate(cardinal dt)
} }
else if (GameState == CONST_GAMESTATE_CREDITS) else if (GameState == CONST_GAMESTATE_CREDITS)
{ {
//*SE::Console << "7CONST_GAMESTATE_CREDITS";
GameCredits.Update(dt); GameCredits.Update(dt);
} }
else if (GameState == CONST_GAMESTATE_FROM_CREDITS_TO_MENU) else if (GameState == CONST_GAMESTATE_FROM_CREDITS_TO_MENU)
@ -411,12 +418,12 @@ void TAndroidApplication::InnerUpdate(cardinal dt)
} }
void TAndroidApplication::GoFromMenuToGame(int level) void TMyApplication::GoFromMenuToGame(int level)
{ {
//#ifndef TARGET_IOS //#ifndef TARGET_IOS
ResourceManager->SoundManager.PlayMusicLooped("level1ogg.ogg"); // ResourceManager->SoundManager.PlayMusicLooped("level1ogg.ogg");
//#endif //#endif
GameLevel.FillWithFile(ST::PathToResources + "level"+tostr(level+1)+".txt"); GameLevel.FillWithFile(ST::PathToResources + "level"+tostr(level+1)+".txt");
GameLevel.SetLoading("shutterstock" + tostr(level+1), "levelshot"+tostr(level+1)); GameLevel.SetLoading("shutterstock" + tostr(level+1), "levelshot"+tostr(level+1));
GameState = CONST_GAMESTATE_FROM_MENU_TO_LEVEL; GameState = CONST_GAMESTATE_FROM_MENU_TO_LEVEL;
@ -426,10 +433,10 @@ void TAndroidApplication::GoFromMenuToGame(int level)
} }
void TAndroidApplication::GoFromGameToMenu() void TMyApplication::GoFromGameToMenu()
{ {
//#ifndef TARGET_IOS //#ifndef TARGET_IOS
ResourceManager->SoundManager.StopMusic("level1ogg.ogg"); // ResourceManager->SoundManager.StopMusic("level1ogg.ogg");
//#endif //#endif
TrySaveGame(); TrySaveGame();
DisapplySignalsToGame(); DisapplySignalsToGame();
@ -438,7 +445,7 @@ void TAndroidApplication::GoFromGameToMenu()
OnDrawSignal.disconnect(boost::bind(&TGameLevel::Draw, boost::ref(GameLevel))); OnDrawSignal.disconnect(boost::bind(&TGameLevel::Draw, boost::ref(GameLevel)));
} }
void TAndroidApplication::GoFromMenuToCredits() void TMyApplication::GoFromMenuToCredits()
{ {
GameState = CONST_GAMESTATE_FROM_MENU_TO_CREDITS; GameState = CONST_GAMESTATE_FROM_MENU_TO_CREDITS;
StateTimer = CONST_CREDITS_SHOW_TIME; StateTimer = CONST_CREDITS_SHOW_TIME;
@ -448,7 +455,7 @@ void TAndroidApplication::GoFromMenuToCredits()
} }
void TAndroidApplication::GoFromCreditsToMenu() void TMyApplication::GoFromCreditsToMenu()
{ {
GameState = CONST_GAMESTATE_FROM_CREDITS_TO_MENU; GameState = CONST_GAMESTATE_FROM_CREDITS_TO_MENU;
@ -459,28 +466,28 @@ void TAndroidApplication::GoFromCreditsToMenu()
DisapplySignalsToCredits(); DisapplySignalsToCredits();
} }
void TAndroidApplication::MarkSetGameLevelPause() void TMyApplication::MarkSetGameLevelPause()
{ {
OnDrawSignal.connect(0, boost::bind(&TGameMenu::Draw, boost::ref(Menu))); OnDrawSignal.connect(0, boost::bind(&TGameMenu::Draw, boost::ref(Menu)));
} }
void TAndroidApplication::MarkReleaseGameLevelPause() void TMyApplication::MarkReleaseGameLevelPause()
{ {
OnDrawSignal.disconnect(boost::bind(&TGameMenu::Draw, boost::ref(Menu))); OnDrawSignal.disconnect(boost::bind(&TGameMenu::Draw, boost::ref(Menu)));
} }
void TAndroidApplication::OpenNextLevel() void TMyApplication::OpenNextLevel()
{ {
Menu.OpenNextLevel(); Menu.OpenNextLevel();
} }
bool TAndroidApplication::IsLoaded() bool TMyApplication::IsLoaded()
{ {
return Loaded; return Loaded;
} }
bool TAndroidApplication::IsInited() bool TMyApplication::IsInited()
{ {
return Inited; return Inited;
} }

View File

@ -32,14 +32,14 @@
using namespace SE; using namespace SE;
extern boost::signals2::signal<void (vec2)> OnTapUpSignal; extern boost::signals2::signal<void(Vector2f)> OnTapUpSignal;
extern boost::signals2::signal<void (vec2)> OnTapUpAfterMoveSignal; extern boost::signals2::signal<void(Vector2f)> OnTapUpAfterMoveSignal;
extern boost::signals2::signal<void (vec2)> OnTapDownSignal; extern boost::signals2::signal<void(Vector2f)> OnTapDownSignal;
extern boost::signals2::signal<void (vec2)> OnFlingSignal; extern boost::signals2::signal<void(Vector2f)> OnFlingSignal;
extern boost::signals2::signal<void (vec2)> OnScrollSignal; extern boost::signals2::signal<void(Vector2f)> OnScrollSignal;
extern boost::signals2::signal<void ()> OnDrawSignal; extern boost::signals2::signal<void()> OnDrawSignal;
extern const std::string CONST_BLOCK_TEXTURE1; extern const std::string CONST_BLOCK_TEXTURE1;
extern const std::string CONST_BLOCK_TEXTURE2; extern const std::string CONST_BLOCK_TEXTURE2;
@ -70,6 +70,7 @@ extern const std::string CONST_SLIDE_UP_BTN_TEXTURE;
extern const std::string CONST_TAP_TO_CONTINUE_BTN_TEXTURE; extern const std::string CONST_TAP_TO_CONTINUE_BTN_TEXTURE;
extern const std::string CONST_LOADING_TEXTURE; extern const std::string CONST_LOADING_TEXTURE;
extern const std::string CONST_LOGO_SMALL_TEXTURE; extern const std::string CONST_LOGO_SMALL_TEXTURE;
extern const std::string CONST_LOADING_BACKGROUND_BLACK;
extern const std::string CONST_CREDITS_TEXTURE; extern const std::string CONST_CREDITS_TEXTURE;
@ -84,7 +85,7 @@ const int CONST_GAMESTATE_LOADING = 6;
const int CONST_GAMESTATE_PRELOADING = 7; const int CONST_GAMESTATE_PRELOADING = 7;
class TAndroidApplication : public TApplication class TMyApplication : public TApplication
{ {
protected: protected:
TGameMenu Menu; TGameMenu Menu;
@ -112,7 +113,7 @@ protected:
public: public:
bool Loaded; bool Loaded;
TAndroidApplication() : TApplication(), Loaded(false), Inited(false) { } TMyApplication() : TApplication(), Loaded(false), Inited(false) { }
virtual void InnerInit(); virtual void InnerInit();
@ -120,7 +121,7 @@ public:
virtual void InnerDraw(); virtual void InnerDraw();
virtual void InnerUpdate(cardinal dt); virtual void InnerUpdate(size_t dt);
void GoFromMenuToGame(int level); void GoFromMenuToGame(int level);
void GoFromGameToMenu(); void GoFromGameToMenu();
@ -137,20 +138,20 @@ public:
void LoadResources(); void LoadResources();
virtual void InnerOnTapDown(vec2 p); virtual void InnerOnTapDown(Vector2f p);
virtual void InnerOnTapUp(vec2 p); virtual void InnerOnTapUp(Vector2f p);
virtual void InnerOnTapUpAfterMove(vec2 p); virtual void InnerOnTapUpAfterMove(Vector2f p);
virtual void InnerOnMove(vec2 shift); virtual void InnerOnMove(Vector2f p, Vector2f shift);
virtual void OnFling(vec2 v); virtual void OnFling(Vector2f v);
}; };
extern TAndroidApplication* Application; extern TMyApplication* Application;

View File

@ -21,14 +21,15 @@ TGameMenu::TGameMenu()
void TGameMenu::Draw() void TGameMenu::Draw()
{ {
// *SE::Console << "TGameMenu::Draw";
CheckGlError("Draw TGameMenu"); CheckGlError("Draw TGameMenu");
RenderUniform1i("sel", 0); RenderUniform1i("sel", 0);
RenderUniform1f("Transparency", 1.f); RenderUniform1f("Transparency", 1.f);
float bkgShift = MenuPos*0.1f - 100.f; float bkgShift = MenuPos*0.1f - 100.f;
glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList["main_menu_bkg_left"]); glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList["main_menu_bkg_left"]);
Renderer->DrawRect(vec2(bkgShift,0.f), vec2(480.f+bkgShift,320.f)); Renderer->DrawRect(Vector2f(bkgShift,0.f), Vector2f(480.f+bkgShift,320.f));
glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList["main_menu_bkg_right"]); glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList["main_menu_bkg_right"]);
Renderer->DrawRect(vec2(480.f+bkgShift,0.f), vec2(960.f+bkgShift,320.f)); Renderer->DrawRect(Vector2f(480.f+bkgShift,0.f), Vector2f(960.f+bkgShift,320.f));
if (SelectedGame == 0) if (SelectedGame == 0)
@ -43,34 +44,34 @@ void TGameMenu::Draw()
for (int i=0; i<MenuItemCount; i++) for (int i=0; i<MenuItemCount; i++)
{ {
glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList["levelshot"+tostr(i+1)]); glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList["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)); Renderer->DrawRect(Vector2f(160.f+MenuPos+CONST_MENU_WINDOW_DISTANCE*i,80.f), Vector2f(160.f+240.f+MenuPos+CONST_MENU_WINDOW_DISTANCE*i, 240.f));
} }
if (MenuItemCount == 12) if (MenuItemCount == 12)
{ {
glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList["game_end"]); 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)); Renderer->DrawRect(Vector2f(160.f+MenuPos+CONST_MENU_WINDOW_DISTANCE*12,160.f - 64.f), Vector2f(160.f+256.f+MenuPos+CONST_MENU_WINDOW_DISTANCE*12, 160.f + 64.f));
} }
glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList["select_level"]); glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList["select_level"]);
Renderer->DrawRect(vec2(240.f-128.f, 241.f), vec2(240.f+128.f, 305.f)); Renderer->DrawRect(Vector2f(240.f-128.f, 241.f), Vector2f(240.f+128.f, 305.f));
glBindTexture(GL_TEXTURE_2D, ResourceManager->TexList["logo_small"]); 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)); Renderer->DrawRect(Vector2f(240.f-128.f+15.f, 0.f), Vector2f(240.f+128.f+15.f, 64.f));
CheckGlError("Draw TGameMenu 2"); CheckGlError("Draw TGameMenu 2");
} }
void TGameMenu::Update(cardinal dt) void TGameMenu::Update(size_t dt)
{ {
if (HoldToTap) if (HoldToTap)
return; return;
// åñëè êíîïêà íå íàæàòà
float k; float k;
MenuPos = MenuPos + MenuSpeed*dt/1000.f; MenuPos = MenuPos + MenuSpeed*dt/1000.f;
@ -130,22 +131,22 @@ void TGameMenu::Update(cardinal dt)
} }
void TGameMenu::OnTapDown(vec2 pos) void TGameMenu::OnTapDown(Vector2f pos)
{ {
*SE::Console << "TGameMenu::OnTapDown";
HoldToTap = true; HoldToTap = true;
if (pos.v[1]<64.f && pos.v[0]>=265.f-128.f && pos.v[0]<=265.f+128.f) if (pos(1)<64.f && pos(0)>=265.f-128.f && pos(0)<=265.f+128.f)
{ {
Application->GoFromMenuToCredits(); Application->GoFromMenuToCredits();
return; return;
} }
vec2 realPos = pos - vec2(MenuPos, 0); Vector2f realPos = pos - Vector2f(MenuPos, 0);
if (realPos.v[1] >= 80.f && realPos.v[1] <= 240.f) if (realPos(1) >= 80.f && realPos(1) <= 240.f)
{ {
float x = realPos.v[0] - 160.f; float x = realPos(0) - 160.f;
int p = 0; int p = 0;
while (x >280.f) while (x >280.f)
@ -166,8 +167,9 @@ void TGameMenu::OnTapDown(vec2 pos)
} }
void TGameMenu::OnTapUp(vec2 pos) void TGameMenu::OnTapUp(Vector2f pos)
{ {
*SE::Console << "TGameMenu::OnTapUp";
HoldToTap = false; HoldToTap = false;
if (SelectedGame != -1) if (SelectedGame != -1)
@ -178,25 +180,27 @@ void TGameMenu::OnTapUp(vec2 pos)
} }
} }
void TGameMenu::OnTapUpAfterMove(vec2 pos) void TGameMenu::OnTapUpAfterMove(Vector2f pos)
{ {
HoldToTap = false; HoldToTap = false;
} }
void TGameMenu::OnFling(vec2 slideSpeed) void TGameMenu::OnFling(Vector2f slideSpeed)
{ {
*SE::Console << "TGameMenu::OnFling";
HoldToTap = false; HoldToTap = false;
MenuSpeed = slideSpeed.v[0]; MenuSpeed = slideSpeed(0);
} }
void TGameMenu::OnScroll(vec2 shift) void TGameMenu::OnScroll(Vector2f shift)
{ {
MenuPos = MenuPos - shift.v[0]; MenuPos = MenuPos - shift(0);
} }
void TGameMenu::OpenNextLevel() void TGameMenu::OpenNextLevel()
{ {
*SE::Console << "TGameMenu::OpenNextLevel";
if (MenuItemCount < 12) if (MenuItemCount < 12)
{ {
MenuItemCount++; MenuItemCount++;
@ -205,10 +209,12 @@ void TGameMenu::OpenNextLevel()
int TGameMenu::GetMenuItemCount() int TGameMenu::GetMenuItemCount()
{ {
*SE::Console << "TGameMenu::GetMenuItemCount";
return MenuItemCount; return MenuItemCount;
} }
void TGameMenu::SetMenuItemCount(int menuItemCount) void TGameMenu::SetMenuItemCount(int menuItemCount)
{ {
*SE::Console << "TGameMenu::SetMenuItemCount";
MenuItemCount = menuItemCount; MenuItemCount = menuItemCount;
} }

View File

@ -23,12 +23,12 @@ protected:
public: public:
TGameMenu(); TGameMenu();
virtual void Draw(); virtual void Draw();
virtual void Update(cardinal dt); virtual void Update(size_t dt);
virtual void OnTapDown(vec2 pos); virtual void OnTapDown(Vector2f pos);
virtual void OnTapUp(vec2 pos); virtual void OnTapUp(Vector2f pos);
virtual void OnTapUpAfterMove(vec2 pos); virtual void OnTapUpAfterMove(Vector2f pos);
virtual void OnFling(vec2 slideSpeed); virtual void OnFling(Vector2f slideSpeed);
virtual void OnScroll(vec2 shift); virtual void OnScroll(Vector2f shift);
void OpenNextLevel(); void OpenNextLevel();
int GetMenuItemCount(); int GetMenuItemCount();

View File

@ -1,121 +1,81 @@
Log started 2017-Nov-13 16:11:17: Log started
OpenGL Window created 2017-Nov-13 16:11:17: Script manager ready
Sound thread finally over. Let's go! 2017-Nov-13 16:11:17: Render::OpenGL glVersion = 4.4.0 - Build 20.19.15.4483
Render::OpenGL glVersion = 4.0.10318 Compatibility Profile Context 2017-Nov-13 16:11:17: Render::OpenGL glVersion above 2.0 ok
Render::OpenGL glVersion above 2.0 ok 2017-Nov-13 16:11:17: Render::OpenGL GL_ARB_framebuffer_object supported ok
Render::OpenGL GL_ARB_framebuffer_object supported ok 2017-Nov-13 16:11:17: Render::OpenGL GL_ARB_uniform_buffer_object supported ok
Render::OpenGL GL_ARB_uniform_buffer_object supported ok 2017-Nov-13 16:11:17: Bind basic functions
APP INIT 2017-Nov-13 16:11:17: APP INIT
Prepare to add shader TestShader
ResourceManager::ShaderManager::Shader deleting
ResourceManager::ShaderManager::Shader deleting
Buffer thread go!
Sound thread go!
No more music and no sounds. Lock sound thread!
ResourceManager::ShaderManager::Shader Vertex shader was successfully compiled to run on hardware.
ResourceManager::ShaderManager::Shader Fragment shader was successfully compiled to run on hardware. 2017-Nov-13 16:11:17: Prepare to add shader DefaultShader
WARNING: 0:1: warning(#260) Keyword 'precision' is supported in GLSL 1.3 2017-Nov-13 16:11:17: ResourceManager::ShaderManager::Shader WARNING: 0:2: '' : #version directive missing
ResourceManager::ShaderManager::Shader Fragment shader(s) linked, vertex shader(s) linked.
WARNING: 0:1: warning(#260) Keyword 'precision' is supported in GLSL 1.3
WARNING: warning(#276) Symbol 'texCoord' usage doesn't match between two stages
WARNING: warning(#276) Symbol 'texCoord' usage do
ResourceManager::ShaderManager shader loaded: TestShader
Prepare to add shader FrameShader
ResourceManager::ShaderManager::Shader deleting
ResourceManager::ShaderManager::Shader deleting
ResourceManager::ShaderManager::Shader Vertex shader was successfully compiled to run on hardware.
ResourceManager::ShaderManager::Shader Fragment shader was successfully compiled to run on hardware. 2017-Nov-13 16:11:17: ResourceManager::ShaderManager::Shader WARNING: 0:1: 'precision' : symbol not available in current GLSL version
WARNING: 0:1: warning(#260) Keyword 'precision' is supported in GLSL 1.3 WARNING: 0:1: 'mediump' : symbol not available in current GLSL version
WARNING: 0:2: '' : #version directive missing
ResourceManager::ShaderManager::Shader Fragment shader(s) linked, vertex shader(s) linked.
WARNING: 0:1: warning(#260) Keyword 'precision' is supported in GLSL 1.3
WARNING: warning(#276) Symbol 'texCoord' usage doesn't match between two stages
WARNING: warning(#276) Symbol 'texCoord' usage do
ResourceManager::ShaderManager shader loaded: FrameShader
Prepare to add shader BrickShader
ResourceManager::ShaderManager::Shader deleting
ResourceManager::ShaderManager::Shader deleting
ResourceManager::ShaderManager::Shader Vertex shader was successfully compiled to run on hardware.
ResourceManager::ShaderManager::Shader Fragment shader was successfully compiled to run on hardware. 2017-Nov-13 16:11:17: Shader program is - 3
WARNING: 0:1: warning(#260) Keyword 'precision' is supported in GLSL 1.3 2017-Nov-13 16:11:17: ResourceManager::ShaderManager::Shader
2017-Nov-13 16:11:17: ResourceManager::ShaderManager shader loaded: DefaultShader
2017-Nov-13 16:11:17: Prepare to add shader FrameShader
2017-Nov-13 16:11:17: ResourceManager::ShaderManager::Shader WARNING: 0:2: '' : #version directive missing
ResourceManager::ShaderManager::Shader Fragment shader(s) linked, vertex shader(s) linked.
WARNING: 0:1: warning(#260) Keyword 'precision' is supported in GLSL 1.3 2017-Nov-13 16:11:17: ResourceManager::ShaderManager::Shader WARNING: 0:1: 'precision' : symbol not available in current GLSL version
WARNING: warning(#276) Symbol 'texCoord' usage doesn't match between two stages WARNING: 0:1: 'mediump' : symbol not available in current GLSL version
WARNING: warning(#276) Symbol 'texCoord' usage do WARNING: 0:2: '' : #version directive missing
ResourceManager::ShaderManager shader loaded: BrickShader
ResourceManager::TexList Texture added: loading.bmp with id = 1
ResourceManager::TexList Texture added: logo_small.bmp32 with id = 2 2017-Nov-13 16:11:17: Shader program is - 6
FrameManager:: frame buffer added: LevelBuffer 2017-Nov-13 16:11:17: ResourceManager::ShaderManager::Shader
OggStream created successfully 2017-Nov-13 16:11:17: ResourceManager::ShaderManager shader loaded: FrameShader
ResourceManager::TexList Texture added: main_menu_bkg_left.bmp with id = 4 2017-Nov-13 16:11:17: Prepare to add shader BrickShader
ResourceManager::TexList Texture added: main_menu_bkg_right.bmp with id = 5 2017-Nov-13 16:11:17: ResourceManager::ShaderManager::Shader WARNING: 0:2: '' : #version directive missing
ResourceManager::TexList Texture added: select_level.bmp32 with id = 6
ResourceManager::TexList Texture added: shutterstock1.bmp with id = 7
ResourceManager::TexList Texture added: shutterstock2.bmp with id = 8 2017-Nov-13 16:11:17: ResourceManager::ShaderManager::Shader WARNING: 0:1: 'precision' : symbol not available in current GLSL version
ResourceManager::TexList Texture added: shutterstock3.bmp with id = 9 WARNING: 0:1: 'mediump' : symbol not available in current GLSL version
ResourceManager::TexList Texture added: shutterstock4.bmp with id = 10 WARNING: 0:2: '' : #version directive missing
ResourceManager::TexList Texture added: shutterstock5.bmp with id = 11
ResourceManager::TexList Texture added: shutterstock6.bmp with id = 12
ResourceManager::TexList Texture added: shutterstock7.bmp with id = 13 2017-Nov-13 16:11:17: Shader program is - 9
ResourceManager::TexList Texture added: shutterstock8.bmp with id = 14 2017-Nov-13 16:11:17: ResourceManager::ShaderManager::Shader
ResourceManager::TexList Texture added: shutterstock9.bmp with id = 15 2017-Nov-13 16:11:17: ResourceManager::ShaderManager shader loaded: BrickShader
ResourceManager::TexList Texture added: shutterstock10.bmp with id = 16 2017-Nov-13 16:11:17: ResourceManager::TexList Texture added: loading with id = 1
ResourceManager::TexList Texture added: shutterstock11.bmp with id = 17 2017-Nov-13 16:11:17: ResourceManager::TexList Texture added: logo_small with id = 2
ResourceManager::TexList Texture added: shutterstock12.bmp with id = 18 2017-Nov-13 16:11:17: ResourceManager::TexList Texture added: console_bkg.bmp with id = 3
ResourceManager::TexList Texture added: levelshot1.bmp with id = 19 2017-Nov-13 16:11:17: FrameManager:: frame buffer added: LevelBuffer
ResourceManager::TexList Texture added: levelshot2.bmp with id = 20 2017-Nov-13 16:11:18: ResourceManager::TexList Texture added: droid_sans14_font_bitmap.png with id = 5
ResourceManager::TexList Texture added: levelshot3.bmp with id = 21 2017-Nov-13 16:11:18: ResourceManager::TexList Texture added: main_menu_bkg_left with id = 6
ResourceManager::TexList Texture added: levelshot4.bmp with id = 22 2017-Nov-13 16:11:18: ResourceManager::TexList Texture added: main_menu_bkg_right with id = 7
ResourceManager::TexList Texture added: levelshot5.bmp with id = 23 2017-Nov-13 16:11:18: ResourceManager::TexList Texture added: select_level with id = 8
ResourceManager::TexList Texture added: levelshot6.bmp with id = 24 2017-Nov-13 16:11:18: ResourceManager::TexList Texture added: shutterstock1 with id = 9
ResourceManager::TexList Texture added: levelshot7.bmp with id = 25 2017-Nov-13 16:11:18: ResourceManager::TexList Texture added: shutterstock2 with id = 10
ResourceManager::TexList Texture added: levelshot8.bmp with id = 26 2017-Nov-13 16:11:18: ResourceManager::TexList Texture added: shutterstock3 with id = 11
ResourceManager::TexList Texture added: levelshot9.bmp with id = 27 2017-Nov-13 16:11:18: ResourceManager::TexList Texture added: shutterstock4 with id = 12
ResourceManager::TexList Texture added: levelshot10.bmp with id = 28 2017-Nov-13 16:11:18: ResourceManager::TexList Texture added: shutterstock5 with id = 13
ResourceManager::TexList Texture added: levelshot11.bmp with id = 29 2017-Nov-13 16:11:18: ResourceManager::TexList Texture added: shutterstock6 with id = 14
ResourceManager::TexList Texture added: levelshot12.bmp with id = 30 2017-Nov-13 16:11:18: ResourceManager::TexList Texture added: shutterstock7 with id = 15
ResourceManager::TexList Texture added: game_end.bmp32 with id = 31 2017-Nov-13 16:11:19: ResourceManager::TexList Texture added: shutterstock8 with id = 16
ResourceManager::TexList Texture added: block1.bmp32 with id = 32 2017-Nov-13 16:11:19: ResourceManager::TexList Texture added: shutterstock9 with id = 17
ResourceManager::TexList Texture added: block2.bmp32 with id = 33 2017-Nov-13 16:11:19: ResourceManager::TexList Texture added: shutterstock10 with id = 18
ResourceManager::TexList Texture added: block3.bmp32 with id = 34 2017-Nov-13 16:11:19: ResourceManager::TexList Texture added: shutterstock11 with id = 19
ResourceManager::TexList Texture added: bonus_gothrough.bmp32 with id = 35 2017-Nov-13 16:11:19: Outer Deinit
ResourceManager::TexList Texture added: bonus_multiplier.bmp32 with id = 36 2017-Nov-13 16:11:19: APP DEINIT
ResourceManager::TexList Texture added: bonus_floor.bmp32 with id = 37
ResourceManager::TexList Texture added: ball.bmp32 with id = 38 2017-Nov-13 16:11:19: Program prepares to quit
ResourceManager::TexList Texture added: ball_glow.bmp32 with id = 39 2017-Nov-13 16:11:19: HalibutAnimationManager deleting...
ResourceManager::TexList Texture added: wall_left.bmp32 with id = 40 2017-Nov-13 16:11:19: GUI Manager deleting...
ResourceManager::TexList Texture added: wall_right.bmp32 with id = 41 2017-Nov-13 16:11:19: TFontManager deleting...
ResourceManager::TexList Texture added: wall_up.bmp32 with id = 42 2017-Nov-13 16:11:19: Script manager shutdown
ResourceManager::TexList Texture added: wall_bonus.bmp32 with id = 43 2017-Nov-13 16:11:19: ResourceManager::FrameManager deleting
ResourceManager::TexList Texture added: reflector.bmp32 with id = 44 2017-Nov-13 16:11:19: ResourceManager::ShaderManager::Shader deleting
ResourceManager::TexList Texture added: back_btn.bmp32 with id = 45 2017-Nov-13 16:11:19: ResourceManager::ShaderManager::Shader deleting
ResourceManager::TexList Texture added: slide_up_btn.bmp32 with id = 46 2017-Nov-13 16:11:19: ResourceManager::ShaderManager::Shader deleting
ResourceManager::TexList Texture added: tap_to_continue_btn.bmp32 with id = 47 2017-Nov-13 16:11:19: ResourceManager::ShaderManager cleared
ResourceManager::TexList Texture added: credits.bmp32 with id = 48 2017-Nov-13 16:11:19: ResourceManager::ShaderManager deleting
Projection: 2017-Nov-13 16:11:19: ResourceManager::ModelManager deleting
0.00416667 0 0 0 0 0.00625 0 0 0 0 -1 0 -1 -1 0 1 2017-Nov-13 16:11:19: ResourceManager::TexList cleared
Modelview: 2017-Nov-13 16:11:19: ResourceManager::TexList deleting
1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
ProjectonModelview:
0.00416667 0 0 0 0 0.00625 0 0 0 0 -1 0 -1 -1 0 1
Program prepares to quit
APP DEINIT
Deinit Sound Manager!
Buffer thread over!
Unlock processSoundListMutex to destroy buffering thread!
No more music and no sounds. Lock sound thread!
Sound thread over!
Unlock SoundThreadMutex to destroy sound thread!
ResourceManager::FrameManager deleting
ResourceManager::ShaderManager::Shader deleting
ResourceManager::ShaderManager::Shader deleting
ResourceManager::ShaderManager::Shader deleting
ResourceManager::ShaderManager deleting
ResourceManager::TexList cleared
ResourceManager::TexList deleting
HalibutRender::deleting

View File

@ -1,32 +1,105 @@
 
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
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DoubleHitBalls-win", "DoubleHitBalls-win\DoubleHitBalls-win.vcxproj", "{1CC98EEE-BBCB-4D79-B6D7-8511789172C5}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DoubleHitBalls-win", "DoubleHitBalls-win\DoubleHitBalls-win.vcxproj", "{1CC98EEE-BBCB-4D79-B6D7-8511789172C5}"
ProjectSection(ProjectDependencies) = postProject ProjectSection(ProjectDependencies) = postProject
{48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20} = {48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20} {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}") = "Salmon Engine", "..\..\..\..\Engine\Salmon Engine\Salmon Engine.vcxproj", "{48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}" 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}") = "libjpeg", "..\..\..\tes-engine\windows\libjpeg\libjpeg.vcxproj", "{A05BADE1-D792-4620-9928-13A7AFD0F195}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpng", "..\..\..\tes-engine\windows\libpng\libpng.vcxproj", "{03736B28-58F6-4AEA-9D37-B6AC4F5F853B}"
EndProject 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|x644 = Debug_nosound|x644
Debug|Win32 = Debug|Win32 Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Debug|x644 = Debug|x644
Release|Win32 = Release|Win32 Release|Win32 = Release|Win32
Release|x64 = Release|x64
Release|x644 = Release|x644
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{1CC98EEE-BBCB-4D79-B6D7-8511789172C5}.Debug_nosound|Win32.ActiveCfg = Debug|Win32 {1CC98EEE-BBCB-4D79-B6D7-8511789172C5}.Debug_nosound|Win32.ActiveCfg = Debug|Win32
{1CC98EEE-BBCB-4D79-B6D7-8511789172C5}.Debug_nosound|Win32.Build.0 = Debug|Win32 {1CC98EEE-BBCB-4D79-B6D7-8511789172C5}.Debug_nosound|Win32.Build.0 = Debug|Win32
{1CC98EEE-BBCB-4D79-B6D7-8511789172C5}.Debug_nosound|x64.ActiveCfg = Debug|x64
{1CC98EEE-BBCB-4D79-B6D7-8511789172C5}.Debug_nosound|x64.Build.0 = Debug|x64
{1CC98EEE-BBCB-4D79-B6D7-8511789172C5}.Debug_nosound|x644.ActiveCfg = Release|Win32
{1CC98EEE-BBCB-4D79-B6D7-8511789172C5}.Debug_nosound|x644.Build.0 = Release|Win32
{1CC98EEE-BBCB-4D79-B6D7-8511789172C5}.Debug|Win32.ActiveCfg = Debug|Win32 {1CC98EEE-BBCB-4D79-B6D7-8511789172C5}.Debug|Win32.ActiveCfg = Debug|Win32
{1CC98EEE-BBCB-4D79-B6D7-8511789172C5}.Debug|Win32.Build.0 = Debug|Win32 {1CC98EEE-BBCB-4D79-B6D7-8511789172C5}.Debug|Win32.Build.0 = Debug|Win32
{1CC98EEE-BBCB-4D79-B6D7-8511789172C5}.Debug|x64.ActiveCfg = Debug|x64
{1CC98EEE-BBCB-4D79-B6D7-8511789172C5}.Debug|x64.Build.0 = Debug|x64
{1CC98EEE-BBCB-4D79-B6D7-8511789172C5}.Debug|x644.ActiveCfg = Debug|Win32
{1CC98EEE-BBCB-4D79-B6D7-8511789172C5}.Debug|x644.Build.0 = Debug|Win32
{1CC98EEE-BBCB-4D79-B6D7-8511789172C5}.Release|Win32.ActiveCfg = Release|Win32 {1CC98EEE-BBCB-4D79-B6D7-8511789172C5}.Release|Win32.ActiveCfg = Release|Win32
{1CC98EEE-BBCB-4D79-B6D7-8511789172C5}.Release|Win32.Build.0 = Release|Win32 {1CC98EEE-BBCB-4D79-B6D7-8511789172C5}.Release|Win32.Build.0 = Release|Win32
{48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Debug_nosound|Win32.ActiveCfg = Debug_nosound|Win32 {1CC98EEE-BBCB-4D79-B6D7-8511789172C5}.Release|x64.ActiveCfg = Release|x64
{48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Debug_nosound|Win32.Build.0 = Debug_nosound|Win32 {1CC98EEE-BBCB-4D79-B6D7-8511789172C5}.Release|x64.Build.0 = Release|x64
{48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Debug|Win32.ActiveCfg = Debug|Win32 {1CC98EEE-BBCB-4D79-B6D7-8511789172C5}.Release|x644.ActiveCfg = Release|Win32
{48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Debug|Win32.Build.0 = Debug|Win32 {534F100C-E611-43BF-B6F3-AD9F9925F703}.Debug_nosound|Win32.ActiveCfg = Debug|Win32
{48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Release|Win32.ActiveCfg = Release|Win32 {534F100C-E611-43BF-B6F3-AD9F9925F703}.Debug_nosound|Win32.Build.0 = Debug|Win32
{48ADCE9F-9539-4D3A-BCFA-C2ABABAF0B20}.Release|Win32.Build.0 = Release|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|x644.ActiveCfg = Debug|x64
{534F100C-E611-43BF-B6F3-AD9F9925F703}.Debug_nosound|x644.Build.0 = Debug|x64
{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|x644.ActiveCfg = Debug|x64
{534F100C-E611-43BF-B6F3-AD9F9925F703}.Debug|x644.Build.0 = Debug|x64
{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|x644.ActiveCfg = Release|x64
{534F100C-E611-43BF-B6F3-AD9F9925F703}.Release|x644.Build.0 = Release|x64
{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|x644.ActiveCfg = Debug|x64
{A05BADE1-D792-4620-9928-13A7AFD0F195}.Debug_nosound|x644.Build.0 = Debug|x64
{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|x644.ActiveCfg = Debug|x64
{A05BADE1-D792-4620-9928-13A7AFD0F195}.Debug|x644.Build.0 = Debug|x64
{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|x644.ActiveCfg = Release|x64
{A05BADE1-D792-4620-9928-13A7AFD0F195}.Release|x644.Build.0 = Release|x64
{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|x644.ActiveCfg = Debug|x64
{03736B28-58F6-4AEA-9D37-B6AC4F5F853B}.Debug_nosound|x644.Build.0 = Debug|x64
{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|x644.ActiveCfg = Debug|x64
{03736B28-58F6-4AEA-9D37-B6AC4F5F853B}.Debug|x644.Build.0 = Debug|x64
{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|x644.ActiveCfg = Release|x64
{03736B28-58F6-4AEA-9D37-B6AC4F5F853B}.Release|x644.Build.0 = Release|x64
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>{1CC98EEE-BBCB-4D79-B6D7-8511789172C5}</ProjectGuid> <ProjectGuid>{1CC98EEE-BBCB-4D79-B6D7-8511789172C5}</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,20 +56,36 @@
<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'">
<LinkIncremental>false</LinkIncremental> <LinkIncremental>false</LinkIncremental>
<IncludePath>$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(SalmonEnginePath)include</IncludePath> <IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
<LibraryPath>$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;$(SalmonEnginePath)$(Configuration)</LibraryPath> <LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>false</LinkIncremental>
<IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental> <LinkIncremental>false</LinkIncremental>
<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'">
<LinkIncremental>false</LinkIncremental>
<IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath>
<LibraryPath>$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64</LibraryPath>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile> <ClCompile>
<PrecompiledHeader> <PrecompiledHeader>
@ -54,14 +93,31 @@
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;TARGET_WIN32;_WIN32_WINNT=0x0501;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;TARGET_WIN32;_WIN32_WINNT=0x0501;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SalmonEnginePath);$(LibsPath)\boost_1_52_0;$(LibsPath)\libogg-1.3.0\include;$(LibsPath)\libvorbis-1.3.2\include;$(LibsPath)\sqplus\sqplus;$(LibsPath)\sqplus\include;$(LibsPath)\DirectXsdk\Include;$(LibsPath)\lpng1510;$(SolutionDir)\..\..\jni;</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>../../../game;../../../../tes-engine;../../../../eigen;../../../../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>
<DisableSpecificWarnings>4503</DisableSpecificWarnings> <DisableSpecificWarnings>4503</DisableSpecificWarnings>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(LibsPath)\boost_1_52_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)\sqplus\lib;$(LibsPath)\DirectXsdk\Lib\x86;$(LibsPath)\lpng1510\projects\vstudio\Debug Library</AdditionalLibraryDirectories> <AdditionalLibraryDirectories>../../../game;../../../../tes-engine;../../../../eigen;../../../../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</AdditionalLibraryDirectories>
<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;Salmon Engine.lib;libogg_static.lib;libvorbis_static.lib;libvorbisfile_static.lib;zlib.lib;libpng15.lib;dsound.lib;dxguid.lib;sqplusD.lib;squirrelD.lib;sqdbglibD.lib;sqstdlibD.lib</AdditionalDependencies> <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>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>TARGET_WIN32;DEBUG;_WIN32_WINNT=0x0501;EIGEN_DONT_ALIGN_STATICALLY;_WINDOWS;WIN32;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>../../../game;../../../../tes-engine;../../../../eigen;../../../../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>
<DisableSpecificWarnings>4503</DisableSpecificWarnings>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>../../../game;../../../../tes-engine;../../../../eigen;../../../../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</AdditionalLibraryDirectories>
<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>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@ -85,21 +141,42 @@
<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;Salmon Engine.lib;libogg_static.lib;libvorbis_static.lib;libvorbisfile_static.lib;zlib.lib;libpng15.lib;dsound.lib;dxguid.lib;sqplus.lib;squirrel.lib;sqdbglib.lib;sqstdlib.lib</AdditionalDependencies> <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;Salmon Engine.lib;libogg_static.lib;libvorbis_static.lib;libvorbisfile_static.lib;zlib.lib;libpng15.lib;dsound.lib;dxguid.lib;sqplus.lib;squirrel.lib;sqdbglib.lib;sqstdlib.lib</AdditionalDependencies>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;TARGET_WIN32;_WIN32_WINNT=0x0501;WIN32_LEAN_AND_MEAN;EIGEN_DONT_ALIGN_STATICALLY;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>../../../game;../../../../tes-engine;../../../../eigen;../../../../boost_1_63_0/;../../../../boost_1_63_0/bin.v2/libs/system/build/msvc-14.0/release/address-model-64/link-static/threading-multi;../../../../boost_1_63_0/bin.v2/libs/date_time/build/msvc-14.0/release/address-model-64/link-static/threading-multi/;../../../../boost_1_63_0/bin.v2/libs/regex/build/msvc-14.0/release/address-model-64/link-static/threading-multi;../../../../boost_1_63_0/bin.v2/libs/thread/build/msvc-14.0/release/address-model-64/link-static/threading-multi;../../../../boost_1_63_0/bin.v2/libs/chrono/build/msvc-14.0/release/address-model-64/link-static/threading-multi;../../../../boost_1_63_0/bin.v2/libs/signals/build/msvc-14.0/release/address-model-64/link-static/threading-multi;../../../../libs/boost-gil-extension;../../../../libs/jpeg-9;../../../../libs/jpeg-9/vc10;../../../../libs/lpng1510</AdditionalIncludeDirectories>
<DisableSpecificWarnings>4503</DisableSpecificWarnings>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>../../../game;../../../../tes-engine;../../../../eigen;../../../../boost_1_63_0/;../../../../boost_1_63_0/bin.v2/libs/system/build/msvc-14.0/release/address-model-64/link-static/threading-multi;../../../../boost_1_63_0/bin.v2/libs/date_time/build/msvc-14.0/release/address-model-64/link-static/threading-multi/;../../../../boost_1_63_0/bin.v2/libs/regex/build/msvc-14.0/release/address-model-64/link-static/threading-multi;../../../../boost_1_63_0/bin.v2/libs/thread/build/msvc-14.0/release/address-model-64/link-static/threading-multi;../../../../boost_1_63_0/bin.v2/libs/chrono/build/msvc-14.0/release/address-model-64/link-static/threading-multi;../../../../boost_1_63_0/bin.v2/libs/signals/build/msvc-14.0/release/address-model-64/link-static/threading-multi;../../../../libs/boost-gil-extension;../../../../libs/jpeg-9;../../../../libs/jpeg-9/vc10;../../../../libs/lpng1510</AdditionalLibraryDirectories>
<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>
</Link>
</ItemDefinitionGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="..\..\..\jni\creditscode.cpp" /> <ClCompile Include="..\..\..\game\creditscode.cpp" />
<ClCompile Include="..\..\..\jni\gamecode.cpp" /> <ClCompile Include="..\..\..\game\gamecode.cpp" />
<ClCompile Include="..\..\..\jni\loadingcode.cpp" /> <ClCompile Include="..\..\..\game\loadingcode.cpp" />
<ClCompile Include="..\..\..\jni\main_code.cpp" /> <ClCompile Include="..\..\..\game\main_code.cpp" />
<ClCompile Include="..\..\..\jni\menucode.cpp" /> <ClCompile Include="..\..\..\game\menucode.cpp" />
<ClCompile Include="main.cpp" /> <ClCompile Include="main.cpp" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="..\..\..\jni\creditscode.h" /> <ClInclude Include="..\..\..\game\creditscode.h" />
<ClInclude Include="..\..\..\jni\gamecode.h" /> <ClInclude Include="..\..\..\game\gamecode.h" />
<ClInclude Include="..\..\..\jni\game_area_interface.h" /> <ClInclude Include="..\..\..\game\game_area_interface.h" />
<ClInclude Include="..\..\..\jni\loadingcode.h" /> <ClInclude Include="..\..\..\game\loadingcode.h" />
<ClInclude Include="..\..\..\jni\main_code.h" /> <ClInclude Include="..\..\..\game\main_code.h" />
<ClInclude Include="..\..\..\jni\menucode.h" /> <ClInclude Include="..\..\..\game\menucode.h" />
<ClInclude Include="main.h" /> <ClInclude Include="main.h" />
</ItemGroup> </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

View File

@ -18,19 +18,19 @@
<ClCompile Include="main.cpp"> <ClCompile Include="main.cpp">
<Filter>Файлы исходного кода</Filter> <Filter>Файлы исходного кода</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\..\jni\creditscode.cpp"> <ClCompile Include="..\..\..\game\main_code.cpp">
<Filter>Файлы исходного кода</Filter> <Filter>Файлы исходного кода</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\..\jni\gamecode.cpp"> <ClCompile Include="..\..\..\game\menucode.cpp">
<Filter>Файлы исходного кода</Filter> <Filter>Файлы исходного кода</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\..\jni\loadingcode.cpp"> <ClCompile Include="..\..\..\game\creditscode.cpp">
<Filter>Файлы исходного кода</Filter> <Filter>Файлы исходного кода</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\..\jni\main_code.cpp"> <ClCompile Include="..\..\..\game\gamecode.cpp">
<Filter>Файлы исходного кода</Filter> <Filter>Файлы исходного кода</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\..\jni\menucode.cpp"> <ClCompile Include="..\..\..\game\loadingcode.cpp">
<Filter>Файлы исходного кода</Filter> <Filter>Файлы исходного кода</Filter>
</ClCompile> </ClCompile>
</ItemGroup> </ItemGroup>
@ -38,22 +38,22 @@
<ClInclude Include="main.h"> <ClInclude Include="main.h">
<Filter>Заголовочные файлы</Filter> <Filter>Заголовочные файлы</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\..\..\jni\loadingcode.h"> <ClInclude Include="..\..\..\game\main_code.h">
<Filter>Заголовочные файлы</Filter> <Filter>Заголовочные файлы</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\..\..\jni\main_code.h"> <ClInclude Include="..\..\..\game\menucode.h">
<Filter>Заголовочные файлы</Filter> <Filter>Заголовочные файлы</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\..\..\jni\menucode.h"> <ClInclude Include="..\..\..\game\creditscode.h">
<Filter>Заголовочные файлы</Filter> <Filter>Заголовочные файлы</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\..\..\jni\creditscode.h"> <ClInclude Include="..\..\..\game\game_area_interface.h">
<Filter>Заголовочные файлы</Filter> <Filter>Заголовочные файлы</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\..\..\jni\game_area_interface.h"> <ClInclude Include="..\..\..\game\gamecode.h">
<Filter>Заголовочные файлы</Filter> <Filter>Заголовочные файлы</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\..\..\jni\gamecode.h"> <ClInclude Include="..\..\..\game\loadingcode.h">
<Filter>Заголовочные файлы</Filter> <Filter>Заголовочные файлы</Filter>
</ClInclude> </ClInclude>
</ItemGroup> </ItemGroup>

File diff suppressed because it is too large Load Diff

View File

@ -2,7 +2,7 @@
#include "main_code.h" #include "main_code.h"
TAndroidApplication* App = NULL; TMyApplication* App = NULL;
int APIENTRY WinMain(HINSTANCE hCurrentInst, HINSTANCE hPreviousInst, int APIENTRY WinMain(HINSTANCE hCurrentInst, HINSTANCE hPreviousInst,
LPSTR lpszCmdLine, int nCmdShow) LPSTR lpszCmdLine, int nCmdShow)
@ -11,11 +11,11 @@ int APIENTRY WinMain(HINSTANCE hCurrentInst, HINSTANCE hPreviousInst,
int width = 480; int width = 480;
int height = 320; int height = 320;
if (CreateEngine(width, height)) if (CreateEngine(width, height))
{ {
App = new TMyApplication;
App = new TAndroidApplication;
App->OuterInit(width, height, width, height); App->OuterInit(width, height, width, height);

View File

@ -1,6 +1,8 @@
#pragma once #pragma once
#include <iostream> #include <iostream>
#include "include/Engine.h"
#define NOMINMAX 1 #define NOMINMAX 1
#include <Windows.h> #include <Windows.h>
#undef NOMINMAX #undef NOMINMAX