git repos / sago_multi_scrambler_puzzle2

commit 80b30ac0

Poul Sander · 2022-06-19 11:47
80b30ac0c0de66019cff2e47acf3a0496cdac4d8 patch · browse files
parent ed145b351c6f73571f446b96bd33b8e43ed12a0b

Fix ratio of wide images

Changed files

M src/PuzzleSingleImageState.cpp before
M src/PuzzleSingleImageState.hpp before
diff --git a/src/PuzzleSingleImageState.cpp b/src/PuzzleSingleImageState.cpp index 389c805..e90f511 100644 --- a/src/PuzzleSingleImageState.cpp +++ b/src/PuzzleSingleImageState.cpp
@@ -48,7 +48,7 @@ void PuzzleSingleImageState::Draw(SDL_Renderer* target) {
globalData.spriteHolder->GetSprite("background_sixteen_nine").Draw(target, SDL_GetTicks(), 0, 0);
SDL_Rect rect;
rect.x = globalData.xsize/2-resized_image_width/2;
- rect.y = globalData.ysize/2-resized_image_height/2;;
+ rect.y = globalData.ysize/2-resized_image_height/2;
rect.h = resized_image_height;
rect.w = resized_image_width;
if (!shuffeled) {
@@ -124,7 +124,12 @@ void PuzzleSingleImageState::LoadPictureFromFile(const std::string& filename, SD
}
source_image_height = bitmapSurface->h;
source_image_width = bitmapSurface->w;
+ resized_image_height = resized_image_height_max;
resized_image_width = double(resized_image_height) * (double(source_image_width)/double(source_image_height));
+ if (resized_image_width > resized_image_width_max) {
+ resized_image_width = resized_image_width_max;
+ resized_image_height = double(resized_image_width) * (double(source_image_height)/double(source_image_width));
+ }
this->pictureTex = SDL_CreateTextureFromSurface(renderer, bitmapSurface);
std::cerr << resized_image_width << ", " << resized_image_height << "\n";
SDL_FreeSurface(bitmapSurface);
diff --git a/src/PuzzleSingleImageState.hpp b/src/PuzzleSingleImageState.hpp index 82a8713..ec44361 100644 --- a/src/PuzzleSingleImageState.hpp +++ b/src/PuzzleSingleImageState.hpp
@@ -52,8 +52,10 @@ private:
SDL_Texture* pictureTex = NULL;
int source_image_height = 1;
int source_image_width = 1;
- const int resized_image_height = 700;
+ int resized_image_height = 700;
int resized_image_width = 1;
+ const int resized_image_height_max = 700;
+ const int resized_image_width_max = 1100;
std::vector<SDL_Rect> pieces;
int min_piece_size = 120;
bool shuffeled = false;