tavli

annotate src/board.h @ 18:986c0b76513f

shadows, not completed
author John Tsiombikas <nuclear@member.fsf.org>
date Mon, 29 Jun 2015 01:29:36 +0300
parents f1ecc2439802
children c3fbf9616dbd
rev   line source
nuclear@0 1 #ifndef BOARD_H_
nuclear@0 2 #define BOARD_H_
nuclear@0 3
nuclear@1 4 #include <vector>
nuclear@2 5 #include "object.h"
nuclear@4 6 #include "image.h"
nuclear@0 7
nuclear@17 8 #define NUM_SLOTS 20
nuclear@17 9 #define PLAYER_PIECES 15
nuclear@17 10 #define MAX_PIECES (PLAYER_PIECES * 2)
nuclear@0 11
nuclear@17 12 enum { MINE, OTHER };
nuclear@17 13
nuclear@17 14 class Piece {
nuclear@17 15 private:
nuclear@17 16 int prev_slot, prev_level;
nuclear@17 17 unsigned long move_start;
nuclear@17 18
nuclear@17 19 public:
nuclear@17 20 int owner, slot, level;
nuclear@17 21
nuclear@17 22 Piece();
nuclear@17 23
nuclear@17 24 void move_to(int slot, int level, bool anim = true);
nuclear@17 25 };
nuclear@17 26
nuclear@0 27
nuclear@0 28 class Board {
nuclear@0 29 private:
nuclear@17 30 Piece pieces[MAX_PIECES];
nuclear@17 31 int hist[NUM_SLOTS + 1];
nuclear@17 32
nuclear@2 33 std::vector<Object*> obj;
nuclear@17 34 Object *piece_obj;
nuclear@1 35
nuclear@7 36 Image img_wood, img_field, img_hinge;
nuclear@4 37
nuclear@1 38 bool generate();
nuclear@4 39 bool generate_textures();
nuclear@0 40
nuclear@0 41 public:
nuclear@0 42 Board();
nuclear@0 43 ~Board();
nuclear@0 44
nuclear@0 45 bool init();
nuclear@0 46 void destroy();
nuclear@0 47
nuclear@0 48 void clear();
nuclear@17 49 void setup();
nuclear@17 50
nuclear@17 51 int slot_pieces(int slot) const;
nuclear@17 52 bool move_piece(int id, int slot, bool anim = true);
nuclear@17 53
nuclear@17 54 Vector3 piece_pos(int slot, int level = 0) const;
nuclear@0 55
nuclear@0 56 void draw() const;
nuclear@0 57 };
nuclear@0 58
nuclear@0 59 #endif // BOARD_H_