X-Git-Url: https://jfr.im/git/irc/gameservirc.git/blobdiff_plain/b6bf42260843f5388afb3a78766e1f9e270b918d..7bbb4b570740f7abf7ddac7ebeae1b92c75521e4:/gameserv/devel.cpp diff --git a/gameserv/devel.cpp b/gameserv/devel.cpp index e852dc7..4a53046 100644 --- a/gameserv/devel.cpp +++ b/gameserv/devel.cpp @@ -1,5 +1,4 @@ #include "options.h" -#include "list.h" #include "aClient.h" #include "extern.h" #include "flags.h" @@ -9,24 +8,27 @@ #include #include +#include +#include int sock = 1; using namespace std; char *PACKAGE = "GameServ"; -char *VERSION = "1.2.6 +devel"; +char *VERSION = "1.3.2 +devel"; long lastrefresh; +long lastrollover; -List clients[U_TABLE_SIZE]; +list clients[U_TABLE_SIZE]; +list items; void save_lastrefresh(); void load_lastrefresh(); void prettyIntro(); void check_idles(); - int main(int argc, char *argv[]) { char buffer[1024], buf[1024]; @@ -119,38 +121,66 @@ int main(int argc, char *argv[]) } // This loop will retry the connection 3 times + connected = 1; + load_lastrefresh(); - connected = 1; - load_lastrefresh(); - + { + aClient *tempPtr, *tempPtr2; + + list::iterator iter; + char *nick = "testing"; + unsigned long hv = iHASH((unsigned char *) nick); + tempPtr = new aClient(nick); + tempPtr2 = new aClient("testing2"); + + tempPtr->stats = new Player; + clients[hv].push_back(tempPtr); + clients[hv].push_back(tempPtr); + clients[hv].push_back(tempPtr); + clients[hv].push_back(tempPtr); + clients[hv].push_back(tempPtr2); + clients[hv].push_back(tempPtr2); + clients[hv].push_back(tempPtr2); + delete tempPtr->stats; + + + tempPtr = find(nick); + + + //iter = find((clients[0].begin()), (clients[0].end()), tempPtr); + // cout << "Nick: " << (*iter)->getNick() << endl; + clients[hv].remove(tempPtr); + for (unsigned long x = 0; x < U_TABLE_SIZE; x++) + { + for (iter = clients[x].begin(); iter != clients[x].end(); iter++) + { + cout << (*iter)->getNick() << endl; + } + } + + } { - string playername; - Player *p; - - cout << "Enter an name: "; - cin >> playername; - p = new Player(playername); - - cout << "You entered: " << p->name << endl; - item *testitem, *tempitem; - weapon *testweapon; - cout << "Enter a weapon name: "; - cin >> playername; - testitem = new weapon(playername); - testweapon = new weapon(playername, 10000); - - cout << "You entered: " << testitem->getName() << endl; - cout << "Adding the item to your inventory" << endl; - p->inventory->addItem(testitem); - - tempitem = p->inventory->Find(playername); - cout << "Name: " << tempitem->getName() << endl; - tempitem = p->inventory->Find(playername); - cout << "Name: " << tempitem->getName() << endl; - cout << "Testitem: " << &testitem << " Tempitem: " << &tempitem << endl; - - - delete p; + // This is where you can test stuff + /* + string itemname; + item *tempitem; + + cout << "Enter an item name: "; + cin >> itemname; + char num[16]; + for (int x = 1; x < 6000001; x++) + { + sprintf(num, "%d", x); + tempitem = new weapon((itemname + num)); + items.push_back(tempitem); + } + + item *tester = items.front(); + cout << tester->getName() << endl; + item *tester2 = items.back(); + cout << tester2->getName() << endl; + items.clear(); + */ } end: @@ -168,7 +198,7 @@ int main(int argc, char *argv[]) unload_config_file(); return 0; } - + aClient *find(char *nick) { return findbynick(nick); @@ -183,7 +213,7 @@ aClient *find(const char *nick) aClient *findbyrealnick(char *realnick) { - ListNode *newPtr; + ListNode *newPtr; unsigned long hv = sHASH((unsigned char *) realnick); newPtr = clients[hv].First(); @@ -211,139 +241,140 @@ aClient *findbyrealnick(char *realnick) aClient *findbynick(char *nick) { - ListNode *newPtr; + list::iterator iter; #ifdef P10 unsigned long hv = sHASH((unsigned char *) nick); #else unsigned long hv = iHASH((unsigned char *) nick); #endif - newPtr = clients[hv].First(); - aClient *client = NULL; - while (newPtr) - { - client = newPtr->getData(); + for(iter = clients[hv].begin(); iter != clients[hv].end(); iter++) + { + client = (*iter); #ifdef P10 - if (strcmp(client->getNick(), nick) == 0) + if (strcmp(client->getNick(), nick) == 0) + { #else - if (stricmp(client->getNick(), nick) == 0) + if (stricmp(client->getNick(), nick) == 0) + { #endif - return client; - client = NULL; - newPtr = newPtr->Next(); - } - return client; + return client; + } + client = NULL; + } + return client; } - + aClient *findIRCplayer(const char *nick) { - ListNode *newPtr; + list::iterator iter; aClient *p = NULL; p = find(nick); if (!is_playing(p)) - return NULL; + return NULL; - unsigned long hv = iHASH((unsigned char *) p->stats->name.c_str()); + unsigned long hv = iHASH((unsigned char *) p->stats->getName().c_str()); - for (newPtr = players[hv].First(); newPtr; newPtr = newPtr->Next()) - { - p = newPtr->getData(); + for (iter = players[hv].begin(); iter != players[hv].end(); iter++) + { + p = (*iter); #ifdef P10 - if (strcmp(p->getNick(), nick) == 0) + if (strcmp(p->getNick(), nick) == 0) + { #else - if (stricmp(p->getNick(), nick) == 0) + if (stricmp(p->getNick(), nick) == 0) + { #endif - return p; - p = NULL; - } - return NULL; -} - -aClient *findplayer(const char *name) -{ - ListNode *newPtr; - Player *p = NULL; - unsigned long hv = iHASH((unsigned char *) name); - for (newPtr = players[hv].First(); newPtr; newPtr = newPtr->Next()) - { - p = newPtr->getData()->stats; - if (stricmp(p->name.c_str(), name) == 0) - return newPtr->getData(); - p = NULL; - } + return p; + } + p = NULL; + } return NULL; } - -void check_idles() -{ - ListNode *newPtr; - Player *p = NULL; - - for (int x = 0; x < U_TABLE_SIZE; x++) - { - for (newPtr = players[x].First(); newPtr; newPtr = newPtr->Next()) + aClient *findplayer(const char *name) { - p = newPtr->getData()->stats; - switch(p->level) - { - case 1: - if ((time(NULL) - p->lastlogin) / 86400 >= level1expire) + list::iterator iter; + Player *p = NULL; + unsigned long hv = iHASH((unsigned char *) name); + for (iter = players[hv].begin(); iter != players[hv].end(); iter++) { - logout(newPtr->getData()); - players[x].remove(newPtr->getData()); - return; + p = (*iter)->stats; + if (stricmp(p->getName().c_str(), name) == 0) + return (*iter); + p = NULL; } - break; - - default: - if ((time(NULL) - p->lastlogin) / 86400 >= defaultexpire) + return NULL; + } + + void check_idles() + { + list::iterator iter; + + Player *p = NULL; + + for (int x = 0; x < U_TABLE_SIZE; x++) { - logout(newPtr->getData()); - players[x].remove(newPtr->getData()); - return; + for (iter = players[x].begin(); iter != players[x].end(); iter++) + { + p = (*iter)->stats; + + switch(p->getLevel()) + { + case 1: + if ((time(NULL) - p->lastlogin) / 86400 >= level1expire) + { + logout((*iter)); + players[x].remove((*iter)); + return; + } + break; + + default: + if ((time(NULL) - p->lastlogin) / 86400 >= defaultexpire) + { + logout((*iter)); + players[x].remove((*iter)); + return; + } + break; + } + if (timedOut(p)) + { + timeOutEvent(p); + } + } } - break; - } - if (timedOut(p)) - { - timeOutEvent(p); - } } - } -} - -aClient *findbynick(const char *nick) -{ - ListNode *newPtr; + + aClient *findbynick(const char *nick) + { + list::iterator iter; #ifdef P10 - unsigned long hv = sHASH((unsigned char *) nick); + unsigned long hv = sHASH((unsigned char *) nick); #else - unsigned long hv = iHASH((unsigned char *) nick); + unsigned long hv = iHASH((unsigned char *) nick); #endif - - newPtr = clients[hv].First(); - - aClient *client = NULL; - - while (newPtr) - { - client = newPtr->getData(); + + aClient *client = NULL; + + for (iter = clients[hv].begin(); iter != clients[hv].end(); iter++) + { + client = (*iter); #ifdef P10 - if (strcmp(client->getNick(), nick) == 0) + if (strcmp(client->getNick(), nick) == 0) #else - if (stricmp(client->getNick(), nick) == 0) + if (stricmp(client->getNick(), nick) == 0) #endif + return client; + client = NULL; + } return client; - client = NULL; - newPtr = newPtr->Next(); - } - return client; -} - + } + void prettyIntro() { cout << endl;