aboutsummaryrefslogtreecommitdiff
path: root/src/games/tetris/Tetromino.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/games/tetris/Tetromino.hpp')
-rw-r--r--src/games/tetris/Tetromino.hpp36
1 files changed, 17 insertions, 19 deletions
diff --git a/src/games/tetris/Tetromino.hpp b/src/games/tetris/Tetromino.hpp
index b40555b..86821b9 100644
--- a/src/games/tetris/Tetromino.hpp
+++ b/src/games/tetris/Tetromino.hpp
@@ -7,7 +7,7 @@
class Tetromino {
public:
- enum TetrominoId : uint8_t {
+ enum Id : uint8_t {
o_piece,
s_piece,
z_piece,
@@ -19,48 +19,46 @@ public:
id_none,
};
- enum TetrominoRotation {
+ enum Rotation {
rotate_clockwise = 1,
rotate_counter_clockwise = 3
};
- enum TetrominoDirection {
+ enum Direction {
left = -1,
right = 1
};
public:
- void Reinit(uint16_t* board_bitmap);
+ explicit Tetromino(uint16_t* board_bitmap);
+ void Reset(Id id);
- TetrominoId GetId();
+ Id GetId();
BoardPos GetPos();
int32_t GetOri();
- void GetBitmap(uint16_t *bitmap);
- bool IsCollisionWithBoard();
+ void GetBitmap(uint16_t* bitmap);
+ bool IsCollisionWithBoard();
bool MaybeMoveDown();
- void MaybeMoveHorizontally(TetrominoDirection direction);
- void MaybeRotate(TetrominoRotation rotation);
+ void MaybeMoveHorizontally(Direction direction);
+ void MaybeRotate(Rotation rotation);
void Draw();
public:
- static bool IsCollisionWithBoard(TetrominoId id, BoardPos pos, int32_t ori, uint16_t *board_bitmap);
- static void GetBitmap(TetrominoId id, BoardPos pos, int32_t ori, uint16_t *bitmap);
- static Color GetColor(TetrominoId id);
- static void Draw(TetrominoId id, int32_t ori, V2F32 pos, float scale);
-
-
-private:
- static TetrominoId GetRandomId();
+ static Id GenerateRandomId();
+ static bool IsCollisionWithBoard(Id id, BoardPos pos, int32_t ori, uint16_t *board_bitmap);
+ static void GetBitmap(Id id, BoardPos pos, int32_t ori, uint16_t *bitmap);
+ static Color GetColor(Id id);
+ static void Draw(Id id, int32_t ori, V2F32 pos, float scale);
private:
- TetrominoId m_id;
+ Id m_id;
BoardPos m_pos;
int32_t m_ori;
- uint16_t *m_board_bitmap;
+ uint16_t* m_board_bitmap;
};