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