1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- #pragma once
- class CClientEvents;
- class CPacketController;
- class BinaryWriter;
- class BinaryReader;
- typedef struct DungeonDesc_s DungeonDesc_t;
- class CClient : public CKillable
- {
- friend class CClientEvents;
- public:
- CClient(SOCKADDR_IN *, WORD slot, char *account, int accessLevel);
- ~CClient();
- void Think();
- void ThinkOutbound();
- void WorldThink();
- BOOL CheckAccount(const char *);
- BOOL CheckAddress(SOCKADDR_IN *);
- const char* GetAccount(); //The client's account name.
- const char* GetDescription(); //The status text to display for this client.
- WORD GetIndex(); //The client's assigned RecipientID.
- SOCKADDR_IN* GetHostAddress(); //The client's address.
- void SetLoginData(DWORD dwUnixTime, DWORD dwPortalStamp, DWORD dwCellStamp);
- void IncomingBlob(BlobPacket_s *);
- void ProcessMessage(BYTE *data, DWORD length, WORD);
- void SendNetMessage(BinaryWriter*, WORD group, BOOL game_event = 0, BOOL del = 1);
- void SendNetMessage(void *data, DWORD length, WORD group, BOOL game_event = 0);
- CClientEvents* GetEvents() { return m_pEvents; }
- int GetAccessLevel();
- private:
- void UpdateLoginScreen();
- // Non-world events.
- void EnterWorld();
- void ExitWorld();
- void CreateCharacter(BinaryReader *);
- void SendLandblock(DWORD dwFileID);
- void SendLandcell(DWORD dwFileID);
- //
- BOOL CheckNameValidity(const char *name);
- // This is a dumbly separated way of parsing methods. Change this.
- CClientEvents *m_pEvents;
- // This handles parts of the network layer.
- CPacketController *m_pPC;
- struct CL_ClientVars_t
- {
- WORD slot; //The client's assigned RecipientID.
- SOCKADDR_IN addr; //The client's socket address.
- std::string account; //The client's account name.
- //WARNING: These are controlled by the client.
- DWORD unixtime; //The client's unix timestamp at login.
- DWORD portalstamp;//The client's portal.dat version.
- DWORD cellstamp; //The client's cell.dat version.
- //Server controlled variables.
- double logintime; //The high-frequency time the client connected.
- BOOL initdats; //Has the client's dat files been updated?
- BOOL needchars; //Does the client need a character list update?
- BOOL inworld; //Is the client in the world, or not?
- } m_vars;
- int m_AccessLevel;
- };
|