OpenMoHAA 0.82.0
Loading...
Searching...
No Matches
chatMain.h
1/*
2GameSpy Chat SDK
3Dan "Mr. Pants" Schoenblum
4dan@gamespy.com
5
6Copyright 1999-2007 GameSpy Industries, Inc
7
8devsupport@gamespy.com
9*/
10
11#ifndef _CHATMAIN_H_
12#define _CHATMAIN_H_
13
14/*************
15** INCLUDES **
16*************/
17#include "chat.h"
18#include "chatSocket.h"
19#include "chatHandlers.h"
20#include "../hashtable.h"
21#include "../darray.h"
22#include "../md5.h"
23
24/************
25** DEFINES **
26************/
27#define MAX_NICK 64
28#define MAX_CHAT_NICK 21
29#define MAX_NAME 128
30#define MAX_USER 128
31#define MAX_SERVER 128
32#define MAX_PARAM 512
33#define MAX_SECRETKEY 128
34#define MAX_EMAIL 64
35#define MAX_PROFILENICK 32
36#define MAX_UNIQUENICK 64
37#define MAX_PASSWORD 32
38#define MAX_AUTHTOKEN 256
39#define MAX_PARTNERCHALLENGE 256
40
41#define CONNECTION ciConnection * connection;\
42 assert(chat != NULL);\
43 connection = (ciConnection *)chat;\
44 GSI_UNUSED(connection);
45#define CONNECTED if(!connection || !connection->connected) return; //ERRCON
46#if 0
47ciConnection * connection; // for visual assist
48#endif
49
50#define VALID_NICK_CHARS "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\"#$%&'()*+,-./:;<=>?@[]^_`{|}~"
51
52#define CI_DEFAULT_SERVER_ADDRESS "peerchat." GSI_DOMAIN_NAME
53#define CI_DEFUILT_SERVER_PORT 6667
54/**********
55** TYPES **
56**********/
57typedef enum
58{
59 CINoLogin,
60 CIUniqueNickLogin,
61 CIProfileLogin,
62 CIPreAuthLogin
63} CILoginType;
64
65typedef struct ciConnection
66{
67 CHATBool connected;
68 CHATBool connecting;
69 CHATBool disconnected;
70 chatNickErrorCallback nickErrorCallback;
71 chatFillInUserCallback fillInUserCallback;
72 chatConnectCallback connectCallback;
73 void * connectParam;
74
75 ciSocket chatSocket;
76
77 char nick[MAX_NICK];
78 char name[MAX_NAME];
79 char user[MAX_USER];
80
81 int namespaceID;
82 char email[MAX_EMAIL];
83 char profilenick[MAX_PROFILENICK];
84 char uniquenick[MAX_UNIQUENICK];
85 char password[MAX_PASSWORD];
86
87 char authtoken[MAX_AUTHTOKEN];
88 char partnerchallenge[MAX_PARTNERCHALLENGE];
89
90#ifdef GSI_UNICODE
91 unsigned short nickW[MAX_NICK];
92 unsigned short userW[MAX_NAME];
93#endif
94
95 unsigned int IP;
96
97 char server[MAX_SERVER];
98 int port;
99
100 chatGlobalCallbacks globalCallbacks;
101
102 HashTable channelTable;
103 DArray enteringChannelList;
104
105 ciServerMessageFilter * filterList;
106 ciServerMessageFilter * lastFilter;
107
108 int nextID;
109
110 DArray callbackList;
111
112 CHATBool quiet;
113
114 char secretKey[MAX_SECRETKEY];
115
116 CILoginType loginType;
117
118 int userID;
119 int profileID;
121
122void ciSendNickAndUser(CHAT chat);
123void ciSendNick(CHAT chat);
124void ciSendUser(CHAT chat);
125void ciSendLogin(CHAT chat);
126void ciHandleDisconnect(CHAT chat, const char * reason);
127int ciNickIsValid(const char* nick);
128void ciNickError(CHAT chat, int type, const char * nick, int numSuggestedNicks, char ** suggestedNicks);
129
130#define strzcpy(dest, src, len) { strncpy(dest, src, (len)); (dest)[(len) - 1] = '\0'; }
131#define wcszcpy(dest, src, len) { wcsncpy(dest, src, (len)); (dest)[(len) - 1] = 0; }
132
133#endif
Definition chat.h:246
Definition chatMain.h:66
Definition chatHandlers.h:32
Definition chatSocket.h:55