diff -r e21cfda0edde -r 785d220fc6b7 src/proto2/NetworkClient.cc --- a/src/proto2/NetworkClient.cc Tue Nov 18 22:58:50 2008 +0000 +++ b/src/proto2/NetworkClient.cc Thu Nov 20 19:25:56 2008 +0000 @@ -5,17 +5,17 @@ #include -NetworkClient::NetworkClient (GameState &state, const CL_IPAddress &connect_to) : - NetworkCore(state), server(netsession.connect(connect_to)) { +NetworkClient::NetworkClient (GameState &state, const NetworkAddress &connect_to) : + NetworkCore(state), netsession(NETWORK_MAGIC_ID), server(netsession.connect(connect_to)), netobjs(netsession, NETCHAN_CORE, server) { // connect slots - slots.connect(netobjs.sig_create_object(), this, &NetworkClient::on_create_object); + slots.connect(netobjs.sig_create(), this, &NetworkClient::on_create); // XXX: sig_disconnected } -void NetworkClient::on_create_object (CL_NetObject_Client &obj, int msg_type, CL_NetPacket &pkt) { - switch (msg_type) { +void NetworkClient::on_create (NetworkObject_Client *obj, NetworkMessageID msg_id, NetworkPacket &pkt) { + switch (msg_id) { case NETMSG_SERVER_HELLO: on_server_hello(obj, pkt); @@ -32,13 +32,13 @@ break; default: - Engine::log(WARN, "client.on_create_object") << "unknown msg_type=" << msg_type << " for obj=" << obj; + Engine::log(WARN, "client.on_create_object") << "unknown msg_id=" << msg_id << " for obj=" << obj; } } -void NetworkClient::on_server_hello (CL_NetObject_Client &obj, CL_NetPacket &pkt) { +void NetworkClient::on_server_hello (NetworkObject_Client *obj, NetworkPacket &pkt) { // read the packet - Vector position = readVector(pkt); + Vector position = pkt.read_vector(); Engine::log(INFO, "client.on_server_hello") << "obj=" << obj << ", pos=" << position; @@ -49,9 +49,9 @@ state.newLocalPlayer(player); } -void NetworkClient::on_player_info (CL_NetObject_Client &obj, CL_NetPacket &pkt) { +void NetworkClient::on_player_info (NetworkObject_Client *obj, NetworkPacket &pkt) { // read the packet - Vector position = readVector(pkt); + Vector position = pkt.read_vector(); Engine::log(INFO, "client.on_player_info") << "obj=" << obj << ", pos=" << position; @@ -63,9 +63,9 @@ } -void NetworkClient::on_player_join (CL_NetObject_Client &obj, CL_NetPacket &pkt) { +void NetworkClient::on_player_join (NetworkObject_Client *obj, NetworkPacket &pkt) { // read the packet - Vector position = readVector(pkt); + Vector position = pkt.read_vector(); Engine::log(INFO, "client.on_player_join") << "obj=" << obj << ", pos=" << position; @@ -85,57 +85,58 @@ // delete player; } -NetworkClientLocalPlayer::NetworkClientLocalPlayer (NetworkClient &client, CL_NetObject_Client &obj, Vector position) : +NetworkClientLocalPlayer::NetworkClientLocalPlayer (NetworkClient &client, NetworkObject_Client *obj, Vector position) : LocalPlayer(client.state, position, true), client(client), obj(obj) { // receive messages - slots.connect(obj.sig_received_message(NETMSG_PLAYER_POSITION), this, &NetworkClientLocalPlayer::on_position); + slots.connect(obj->sig_message(NETMSG_PLAYER_POSITION), this, &NetworkClientLocalPlayer::on_position); } void NetworkClientLocalPlayer::applyForce (Vector force, uint16_t dt) { // always send move, in all cases - CL_NetPacket pkt; - writeVector(pkt, force); - pkt.output.write_uint16(dt); + NetworkPacket pkt; + pkt.write_vector(force); + pkt.write_uint16(dt); - obj.send(NETMSG_CLIENT_MOVE, pkt, false); + obj->send(NETMSG_CLIENT_MOVE, pkt, false); // do not handle locally } -void NetworkClientLocalPlayer::on_position (CL_NetPacket &pkt) { - Vector position = readVector(pkt); - Vector velocity = readVector(pkt); +void NetworkClientLocalPlayer::on_position (NetworkPacket &pkt) { + Vector position = pkt.read_vector(); + Vector velocity = pkt.read_vector(); - Engine::log(INFO, "client_player.on_position") << "obj=" << obj << ", position=" << position << ", velocity=" << velocity; + Engine::log(INFO, "client_player.on_position") /* << "obj=" << obj */ << ", position=" << position << ", velocity=" << velocity; // just update... updatePhysics(position, velocity); } -NetworkClientRemotePlayer::NetworkClientRemotePlayer (NetworkClient &client, CL_NetObject_Client &obj, Vector position) : +NetworkClientRemotePlayer::NetworkClientRemotePlayer (NetworkClient &client, NetworkObject_Client *obj, Vector position) : RemotePlayer(client.state, position, true), client(client), obj(obj) { // receive messages - slots.connect(obj.sig_received_message(NETMSG_PLAYER_POSITION), this, &NetworkClientRemotePlayer::on_position); - slots.connect(obj.sig_received_message(NETMSG_PLAYER_QUIT), this, &NetworkClientRemotePlayer::on_quit); + slots.connect(obj->sig_message(NETMSG_PLAYER_POSITION), this, &NetworkClientRemotePlayer::on_position); + slots.connect(obj->sig_message(NETMSG_PLAYER_QUIT), this, &NetworkClientRemotePlayer::on_quit); } -void NetworkClientRemotePlayer::on_position (CL_NetPacket &pkt) { - Vector position = readVector(pkt); - Vector velocity = readVector(pkt); +void NetworkClientRemotePlayer::on_position (NetworkPacket &pkt) { + Vector position = pkt.read_vector(); + Vector velocity = pkt.read_vector(); - Engine::log(INFO, "client_player.on_position") << "obj=" << obj << ", position=" << position << ", velocity=" << velocity; + Engine::log(INFO, "client_player.on_position") /* << "obj=" << obj */ << ", position=" << position << ", velocity=" << velocity; // just update... updatePhysics(position, velocity); } -void NetworkClientRemotePlayer::on_quit (CL_NetPacket &pkt) { +void NetworkClientRemotePlayer::on_quit (NetworkPacket &pkt) { // pkt is empty (void) pkt; - Engine::log(INFO, "client_player.on_quit") << "obj=" << obj; + Engine::log(INFO, "client_player.on_quit") /* << "obj=" << obj */; client.player_quit(this); } +