proto/p2/GameState.hh
author ekku
Mon, 03 Nov 2008 22:20:21 +0000
changeset 4 e28b28b8817c
parent 3 5a209a8585c9
permissions -rw-r--r--
Drawer lis?tty. Pari metodia gamestateen ja dimensioniin.
3
5a209a8585c9 proto p2
terom
parents:
diff changeset
     1
#ifndef GAMESTATE_HH
5a209a8585c9 proto p2
terom
parents:
diff changeset
     2
#define GAMESTATE_HH
5a209a8585c9 proto p2
terom
parents:
diff changeset
     3
4
e28b28b8817c Drawer lis?tty. Pari metodia gamestateen ja dimensioniin.
ekku
parents: 3
diff changeset
     4
#include "Dimension.hh"
e28b28b8817c Drawer lis?tty. Pari metodia gamestateen ja dimensioniin.
ekku
parents: 3
diff changeset
     5
3
5a209a8585c9 proto p2
terom
parents:
diff changeset
     6
class GameState {
5a209a8585c9 proto p2
terom
parents:
diff changeset
     7
	public:
5a209a8585c9 proto p2
terom
parents:
diff changeset
     8
		Dimension map_dimensions;
5a209a8585c9 proto p2
terom
parents:
diff changeset
     9
		std::list<Player> player_list;
5a209a8585c9 proto p2
terom
parents:
diff changeset
    10
5a209a8585c9 proto p2
terom
parents:
diff changeset
    11
		LocalPlayer &getLocalPlayer (void) {
5a209a8585c9 proto p2
terom
parents:
diff changeset
    12
			// XXX: jotain
5a209a8585c9 proto p2
terom
parents:
diff changeset
    13
		}
5a209a8585c9 proto p2
terom
parents:
diff changeset
    14
};
5a209a8585c9 proto p2
terom
parents:
diff changeset
    15
5a209a8585c9 proto p2
terom
parents:
diff changeset
    16
enum PlayerType {
5a209a8585c9 proto p2
terom
parents:
diff changeset
    17
	PLAYER_LOCAL = 0x01;
5a209a8585c9 proto p2
terom
parents:
diff changeset
    18
	PLAYER_REMOTE = 0x02;
5a209a8585c9 proto p2
terom
parents:
diff changeset
    19
};
5a209a8585c9 proto p2
terom
parents:
diff changeset
    20
5a209a8585c9 proto p2
terom
parents:
diff changeset
    21
class Player {
5a209a8585c9 proto p2
terom
parents:
diff changeset
    22
	private:
5a209a8585c9 proto p2
terom
parents:
diff changeset
    23
		Coordinate position;
5a209a8585c9 proto p2
terom
parents:
diff changeset
    24
5a209a8585c9 proto p2
terom
parents:
diff changeset
    25
	public:
4
e28b28b8817c Drawer lis?tty. Pari metodia gamestateen ja dimensioniin.
ekku
parents: 3
diff changeset
    26
e28b28b8817c Drawer lis?tty. Pari metodia gamestateen ja dimensioniin.
ekku
parents: 3
diff changeset
    27
		Player(Coordinate c) : position(c) {}
e28b28b8817c Drawer lis?tty. Pari metodia gamestateen ja dimensioniin.
ekku
parents: 3
diff changeset
    28
3
5a209a8585c9 proto p2
terom
parents:
diff changeset
    29
		PlayerType type;
5a209a8585c9 proto p2
terom
parents:
diff changeset
    30
		Dimensions dimensions;
5a209a8585c9 proto p2
terom
parents:
diff changeset
    31
4
e28b28b8817c Drawer lis?tty. Pari metodia gamestateen ja dimensioniin.
ekku
parents: 3
diff changeset
    32
		Coordinate getPosition (void) const {
3
5a209a8585c9 proto p2
terom
parents:
diff changeset
    33
			return this->position;
5a209a8585c9 proto p2
terom
parents:
diff changeset
    34
		}
5a209a8585c9 proto p2
terom
parents:
diff changeset
    35
};
5a209a8585c9 proto p2
terom
parents:
diff changeset
    36
5a209a8585c9 proto p2
terom
parents:
diff changeset
    37
class LocalPlayer : public Player {
5a209a8585c9 proto p2
terom
parents:
diff changeset
    38
	public:
5a209a8585c9 proto p2
terom
parents:
diff changeset
    39
		void doMovement (PositionDelta d) {
5a209a8585c9 proto p2
terom
parents:
diff changeset
    40
			this->position += d;
5a209a8585c9 proto p2
terom
parents:
diff changeset
    41
5a209a8585c9 proto p2
terom
parents:
diff changeset
    42
			// XXX: notify server
5a209a8585c9 proto p2
terom
parents:
diff changeset
    43
		}
5a209a8585c9 proto p2
terom
parents:
diff changeset
    44
};
5a209a8585c9 proto p2
terom
parents:
diff changeset
    45
5a209a8585c9 proto p2
terom
parents:
diff changeset
    46
class RemotePlayer : public Player {
5a209a8585c9 proto p2
terom
parents:
diff changeset
    47
	public:
5a209a8585c9 proto p2
terom
parents:
diff changeset
    48
		void updatePosition (Position p) {
5a209a8585c9 proto p2
terom
parents:
diff changeset
    49
			this->position = p;
5a209a8585c9 proto p2
terom
parents:
diff changeset
    50
		}
5a209a8585c9 proto p2
terom
parents:
diff changeset
    51
}
5a209a8585c9 proto p2
terom
parents:
diff changeset
    52
5a209a8585c9 proto p2
terom
parents:
diff changeset
    53
#endif