source: trunk/monsterz/piece.h @ 664

Last change on this file since 664 was 664, checked in by sam, 10 years ago

Get rid of float3, float4, int3 etc. in favour of GLSL types.

File size: 1.3 KB
Line 
1//
2// Monsterz
3//
4// Copyright: (c) 2005-2011 Sam Hocevar <sam@hocevar.net>
5//   This program is free software; you can redistribute it and/or
6//   modify it under the terms of the Do What The Fuck You Want To
7//   Public License, Version 2, as published by Sam Hocevar. See
8//   http://sam.zoy.org/projects/COPYING.WTFPL for more details.
9//
10
11//
12// The Piece class
13// ---------------
14//
15
16#if !defined __MONSTERZ_PIECE_H__
17#define __MONSTERZ_PIECE_H__
18
19#include "core.h"
20
21class PieceData;
22
23class Piece : public WorldEntity
24{
25public:
26    typedef enum
27    {
28        PIECE_HUNT,
29        PIECE_FUSION,
30    }
31    piece_t;
32
33    Piece(piece_t, Emitter *emitter, vec2i cell, int id);
34    virtual ~Piece();
35
36    virtual char const *GetName();
37
38    void SetCell(vec2i cell);
39    vec2i GetCell() const;
40    void SetPos(vec2i pos);
41    vec2i GetPos() const;
42
43    vec2i GetSize() const;
44    vec2i GetShift() const;
45
46    void SetAbove(Piece *below);
47    Piece *GetAbove() const;
48    void SetBelow(Piece *below);
49    Piece *GetBelow() const;
50
51    int IsDead() const;
52
53    int Pop();
54    int Grab(vec2i dir);
55    int Ungrab(vec2i pos);
56    int Move(vec2i pos);
57
58protected:
59    virtual void TickGame(float deltams);
60    virtual void TickDraw(float deltams);
61
62private:
63    PieceData *data;
64};
65
66#endif // __MONSTERZ_PIECE_H__
67
Note: See TracBrowser for help on using the repository browser.