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_ |