]> git.localhorst.tv Git - l2e.git/blob - src/graphics/Font.cpp
added simple font implementation
[l2e.git] / src / graphics / Font.cpp
1 /*
2  * Font.cpp
3  *
4  *  Created on: Aug 8, 2012
5  *      Author: holy
6  */
7
8 #include "Font.h"
9
10 #include "../geometry/operators.h"
11 #include "../geometry/Vector.h"
12
13 #include <cmath>
14
15 using geometry::Point;
16 using geometry::Vector;
17 using std::pow;
18
19 namespace graphics {
20
21 void Font::DrawDigit(int digit, SDL_Surface *dest, Point<int> position) const {
22         sprite->Draw(dest, position, digitsCol + digit, digitsRow);
23 }
24
25 void Font::DrawNumber(int numberIn, SDL_Surface *dest, Point<int> positionIn, int digits) const {
26         int number(numberIn);
27         if (digits > 0 && numberIn >= pow(10.0, digits)) {
28                 numberIn = pow(10.0, digits) - 1;
29         }
30
31         Point<int> position(positionIn);
32         Vector<int> step(sprite->Width(), 0);
33
34         if (digits > 0) {
35                 int i(digits - 1);
36                 while (number < pow(10.0, i)) {
37                         position += step;
38                         --i;
39                 }
40         }
41
42         int m(10);
43         while (m <= number) {
44                 m *= 10;
45         }
46
47         while (m > 9) {
48                 m /= 10;
49                 DrawDigit((number / m) % 10, dest, position);
50                 position += step;
51         }
52 }
53
54 }