Potential fix for issue #1128

1008-fix
tomangelo2 2019-01-02 01:18:45 +01:00
parent 92d2de5325
commit be97167994
1 changed files with 4 additions and 3 deletions

View File

@ -33,6 +33,7 @@
#include "math/func.h" #include "math/func.h"
#include <algorithm>
#include <SDL.h> #include <SDL.h>
#include <SDL_ttf.h> #include <SDL_ttf.h>
@ -1252,13 +1253,13 @@ FontTexture CText::CreateFontTexture(Math::IntPoint tileSize)
Math::IntPoint CText::GetNextTilePos(const FontTexture& fontTexture) Math::IntPoint CText::GetNextTilePos(const FontTexture& fontTexture)
{ {
int horizontalTiles = FONT_TEXTURE_SIZE.x / fontTexture.tileSize.x; int horizontalTiles = FONT_TEXTURE_SIZE.x / std::max(1, fontTexture.tileSize.x); //this should prevent crashes in some combinations of resolution and font size, see issue #1128
int verticalTiles = FONT_TEXTURE_SIZE.y / fontTexture.tileSize.y; int verticalTiles = FONT_TEXTURE_SIZE.y / std::max(1, fontTexture.tileSize.y);
int totalTiles = horizontalTiles * verticalTiles; int totalTiles = horizontalTiles * verticalTiles;
int tileNumber = totalTiles - fontTexture.freeSlots; int tileNumber = totalTiles - fontTexture.freeSlots;
int verticalTileIndex = tileNumber / horizontalTiles; int verticalTileIndex = tileNumber / std::max(1, horizontalTiles);
int horizontalTileIndex = tileNumber % horizontalTiles; int horizontalTileIndex = tileNumber % horizontalTiles;
return Math::IntPoint(horizontalTileIndex * fontTexture.tileSize.x, return Math::IntPoint(horizontalTileIndex * fontTexture.tileSize.x,