File: Client.h

package info (click to toggle)
arkrpg 0.1.4b-6
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 6,104 kB
  • ctags: 5,445
  • sloc: cpp: 28,145; sh: 9,006; ansic: 3,259; makefile: 344
file content (72 lines) | stat: -rw-r--r-- 1,965 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/* $Id: Client.h,v 1.14 2003/03/12 21:50:01 mrq Exp $
**
** Ark - Libraries, Tools & Programs for MMORPG developpements.
** Copyright (C) 1999-2002 The Contributors of the Ark Project
** Please see the file "AUTHORS" for a list of contributors
**
** 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., 675 Mass Ave, Cambridge, MA 02139, USA.
*/

#ifndef CLIENT_CLIENT_H
#define CLIENT_CLIENT_H

#include <Ark/ArkConfig.h>
#include <Ark/ArkMath.h>
#include <Ark/ArkWorld.h>
#include <Ark/ArkWorldUpd.h>
#include <Ark/ArkEntity.h>
#include <Ark/ArkRenderer.h>

#include <Client/Widget.h>
#include <stdio.h>

namespace Client
{

   class Client
   {
      protected:
	 Ark::Config *m_Config;
	 Ark::Renderer *m_Renderer;

	 Ark::WorldUpdater *m_Updater;
	 Ark::World *m_World;
	 Ark::Entity *m_Player;
	 scalar m_MaxFPS;

      public:
	 Client (int argc, char **argv);
	 virtual ~Client();

	 virtual void Login (const Ark::String &name,
			     const Ark::String &pass);

	 virtual void HandleMenuString(const Ark::String &str) = 0;

	 /* === Looping stuff === */
	 virtual int Loop () = 0;

	 /* === Wrap === */
	 Ark::World  *GetWorld()     {return m_World;}
	 Ark::Cache  *GetCache()     {return m_World->GetCache();}
	 Ark::Config *GetConfig ()   {return m_Config;}
	 Ark::Entity *GetPlayer ()   {return m_Player;}
   };

  extern Client *g_Client;

}

#endif