src/proto2/Network.hh
author terom
Sun, 09 Nov 2008 21:51:13 +0000
changeset 25 af75a1894a32
parent 24 b81cb670e6b2
child 32 2ff929186c90
child 66 1415a2d45686
permissions -rw-r--r--
simple proto *almost* works
5
617813994ab1 move proto/p2 -> src/proto2
terom
parents:
diff changeset
     1
#ifndef NETWORK_HH
617813994ab1 move proto/p2 -> src/proto2
terom
parents:
diff changeset
     2
#define NETWORK_HH
617813994ab1 move proto/p2 -> src/proto2
terom
parents:
diff changeset
     3
21
32c6cc55256a change proto2 network code to use CL_NetSession
terom
parents: 15
diff changeset
     4
#include "NetworkConfig.hh"
32c6cc55256a change proto2 network code to use CL_NetSession
terom
parents: 15
diff changeset
     5
#include "GameState.hh"
32c6cc55256a change proto2 network code to use CL_NetSession
terom
parents: 15
diff changeset
     6
13
3fbb927c6a27 fix broken includes
terom
parents: 8
diff changeset
     7
#include <ClanLib/network.h>
5
617813994ab1 move proto/p2 -> src/proto2
terom
parents:
diff changeset
     8
21
32c6cc55256a change proto2 network code to use CL_NetSession
terom
parents: 15
diff changeset
     9
class NetworkCore {
24
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    10
    protected:
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    11
        GameState &state;
5
617813994ab1 move proto/p2 -> src/proto2
terom
parents:
diff changeset
    12
24
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    13
        CL_SlotContainer slots;
22
b70d30e1b0fe all the network code is now there, although it doesn't quite work
terom
parents: 21
diff changeset
    14
24
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    15
        CL_NetSession netsession;
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    16
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    17
        CL_NetObject_Controller netobjs;
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    18
        
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    19
        // constructor
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    20
        NetworkCore (GameState &state) : state(state), netsession(NETWORK_APP_NAME), netobjs(&netsession, NETWORK_NETOBJ_CHAN) { }
22
b70d30e1b0fe all the network code is now there, although it doesn't quite work
terom
parents: 21
diff changeset
    21
};
b70d30e1b0fe all the network code is now there, although it doesn't quite work
terom
parents: 21
diff changeset
    22
b70d30e1b0fe all the network code is now there, although it doesn't quite work
terom
parents: 21
diff changeset
    23
enum NetworkMessage {
24
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    24
    NETMSG_PACKET_INVALID   = 0x00,
22
b70d30e1b0fe all the network code is now there, although it doesn't quite work
terom
parents: 21
diff changeset
    25
24
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    26
    /*
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    27
     * You have joined the game:
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    28
     *
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    29
     *  uint32_t x
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    30
     *  uint32_t y
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    31
     */
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    32
    NETMSG_SERVER_HELLO = 0x0100,
22
b70d30e1b0fe all the network code is now there, although it doesn't quite work
terom
parents: 21
diff changeset
    33
24
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    34
    /*
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    35
     * New client has connected to server:
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    36
     *
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    37
     *  uint32_t x
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    38
     *  uint32_t y
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    39
     */
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    40
    NETMSG_PLAYER_JOIN  = 0x0101,
22
b70d30e1b0fe all the network code is now there, although it doesn't quite work
terom
parents: 21
diff changeset
    41
24
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    42
    /*
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    43
     * Client has left server:
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    44
     *
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    45
     */
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    46
    NETMSG_PLAYER_QUIT  = 0x0102,
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    47
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    48
    /*
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    49
     * Client has moved
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    50
     *
25
af75a1894a32 simple proto *almost* works
terom
parents: 24
diff changeset
    51
     *  int32_t dx
af75a1894a32 simple proto *almost* works
terom
parents: 24
diff changeset
    52
     *  int32_t dy
24
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    53
     */
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    54
    NETMSG_CLIENT_MOVE  = 0x0201,
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    55
    
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    56
    /*
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    57
     * Initial player info
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    58
     *
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    59
     *  uint32_t x
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    60
     *  uint32_t y
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    61
     */
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    62
    NETMSG_PLAYER_INFO  = 0x0300,
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    63
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    64
    /*
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    65
     * Player position update
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    66
     *
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    67
     *  uint32_t x
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    68
     *  uint32_t y
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    69
     */
b81cb670e6b2 the great :retab
terom
parents: 22
diff changeset
    70
    NETMSG_PLAYER_POSITION  = 0x0301,
5
617813994ab1 move proto/p2 -> src/proto2
terom
parents:
diff changeset
    71
};
617813994ab1 move proto/p2 -> src/proto2
terom
parents:
diff changeset
    72
617813994ab1 move proto/p2 -> src/proto2
terom
parents:
diff changeset
    73
#endif