From: <wo...@us...> - 2003-10-04 23:54:08
|
Update of /cvsroot/once/oncecode/src/client In directory sc8-pr-cvs1:/tmp/cvs-serv28807/src/client Modified Files: occlient.cpp occlient.h ocmsghandler.cpp Added Files: ochdlloginreply.cpp ochdlloginreply.h Log Message: - Wouter moved the ocsubscription.cpp and h files from server to common. - ocPlayer and ocArea implement ocSubscribable. - ocPlayerState keeps track by being subscribed. - Added substartmsg, subchangemsg and subendmsg to send to client. - Added newusermsg for client to request new user creation - moved from csHashMap to csSet<T>. - Added csSchedule to ocAreaState, it will keep track of players and entities and call them to update themselves. The world has a Simulate(elapsed_time) method that is called periodically. Players send update messages to the client when they are updated, now every 50 msec. --- NEW FILE: ochdlloginreply.cpp --- /* * ochdlloginreply.cpp * Copyright (C) 2003 by W.C.A. Wijngaards * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "cssysdef.h" #include "ochdlloginreply.h" #include "common/ocloginreplymsg.h" #include "occlient.h" //------------------ ocHandleLoginReply -------------------------- int ocHandleLoginReply::GetMessageType() {return ocLoginReplyMsg::ocClassID;} bool ocHandleLoginReply::HandleMessage(ocClient* client, iSerial *ser_msg) { ocLoginReplyMsg* msg = (ocLoginReplyMsg*)ser_msg; client->SetPlayerLogin(msg->player, msg->area); return true; } --- NEW FILE: ochdlloginreply.h --- /* * ochdlloginreply.h * Copyright (C) 2003 by W.C.A. Wijngaards * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef CLIENT_OCHDLLOGINREPLY_H #define CLIENT_OCHDLLOGINREPLY_H #include "ocmsghandler.h" class iSerial; class ocClient; /** * Handles ocLoginReply messages on the client side. */ class ocHandleLoginReply : public iPacketHandlerClient { public: ocHandleLoginReply() {} virtual ~ocHandleLoginReply() {} //---------- iPacketHandlerServer interface ------------- virtual int GetMessageType(); virtual bool HandleMessage(ocClient* client, iSerial *msg); }; #endif // CLIENT_OCHDLLOGINREPLY_H Index: occlient.cpp =================================================================== RCS file: /cvsroot/once/oncecode/src/client/occlient.cpp,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** occlient.cpp 27 Sep 2003 13:43:11 -0000 1.11 --- occlient.cpp 4 Oct 2003 23:54:04 -0000 1.12 *************** *** 271,274 **** --- 271,282 ---- } + void ocClient::SetPlayerLogin(ocID<ocPlayer> player, ocAreaID area) + { + player_id = player; + current_area = area; + SetConnectionState(state_tranfertoarea); + PrintMessage("Login successfull, transfer to area %d.\n", area.GetAreaID()); + } + void ocClient::Report (int severity, const char* msg, ...) { Index: occlient.h =================================================================== RCS file: /cvsroot/once/oncecode/src/client/occlient.h,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** occlient.h 27 Sep 2003 13:43:11 -0000 1.8 --- occlient.h 4 Oct 2003 23:54:04 -0000 1.9 *************** *** 46,49 **** --- 46,51 ---- class ocOverlayLogin; class ocClient; + #include "common/ocidentifier.h" + class ocPlayer; /** *************** *** 105,108 **** --- 107,115 ---- ocOverlayLogin* loginoverlay; + /// info on player (only known once logged in) + ocID<ocPlayer> player_id; + /// current area of player + ocAreaID current_area; + public: /// *************** *** 137,140 **** --- 144,149 ---- /// change to a particular connection state void SetConnectionState(enum ConnectState state); + /// login succesful, player ID and areaID known. + void SetPlayerLogin(ocID<ocPlayer> player, ocAreaID area); /// handle console command callback Index: ocmsghandler.cpp =================================================================== RCS file: /cvsroot/once/oncecode/src/client/ocmsghandler.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ocmsghandler.cpp 8 Jun 2003 23:04:43 -0000 1.2 --- ocmsghandler.cpp 4 Oct 2003 23:54:04 -0000 1.3 *************** *** 24,27 **** --- 24,28 ---- #include "occlient.h" #include "ochdlchat.h" + #include "ochdlloginreply.h" //------------------ ocMsgHandlerClient ----------------- *************** *** 36,39 **** --- 37,41 ---- { RegHandler(new ocHandleChat, reg); + RegHandler(new ocHandleLoginReply, reg); } |