]> jfr.im git - irc/gameservirc.git/blobdiff - gameserv/tcpclient.cpp
This is a major bugfix for several mistakes made in coding that were
[irc/gameservirc.git] / gameserv / tcpclient.cpp
index b4a9c81ed7e9860ce91054e936ed3bb4b2800997..4e939d569017f8fbe4153dfb50e9e0e617817f32 100644 (file)
@@ -35,7 +35,7 @@ using std::cerr;
 using std::endl;
 
 char *PACKAGE = "GameServ";
 using std::endl;
 
 char *PACKAGE = "GameServ";
-char *VERSION = "1.2.3 +devel";
+char *VERSION = "1.2.4 +devel";
 
 int sock;
 long lastrefresh;
 
 int sock;
 long lastrefresh;
@@ -103,12 +103,26 @@ int main(int argc, char *argv[])
         exit(3);
     }
 
         exit(3);
     }
 
-  init_masters();
   load_gs_dbase();
   loadNews(newsdata, todaysnews);
 
   load_gs_dbase();
   loadNews(newsdata, todaysnews);
 
+  if (load_masters() == false)
+  {
+       log("Error loading masters");
+       goto end;
+  }
+
   if (load_monsters() == false)
   if (load_monsters() == false)
+  {
+       log("Error loading monsters");
        goto end;
        goto end;
+  }
+
+  if (load_levels() == false)
+  {
+       log("Error loading levels");
+       goto end;
+  }
 
     shuttingdown = false;
 
 
     shuttingdown = false;
 
@@ -122,16 +136,16 @@ int main(int argc, char *argv[])
        currentserver = strtok(NULL, " ");
     }
 
        currentserver = strtok(NULL, " ");
     }
 
-  strcpy(boss.name, "Red Dragon");
-  strcpy(boss.weapon, "Breath of Unholy Fire");
+  boss.name = "Red Dragon";
+  boss.weapon = "Breath of Unholy Fire";
   boss.strength = 2500;
   boss.gold = 2000000000;
   boss.exp = 2000000000;
   boss.maxhp = 6667;
   boss.hp = 6667;
   boss.strength = 2500;
   boss.gold = 2000000000;
   boss.exp = 2000000000;
   boss.maxhp = 6667;
   boss.hp = 6667;
-  strcpy(boss.death, "You finally snuff out the deadly murderous "\
+  boss.death = "You finally snuff out the deadly murderous "\
     "dragon's dark flames. You have freed the land of its terror "\
     "dragon's dark flames. You have freed the land of its terror "\
-    "filled reign from above!");
+    "filled reign from above!";
 
 
  // This loop will retry the connection 3 times
 
 
  // This loop will retry the connection 3 times
@@ -274,7 +288,7 @@ int main(int argc, char *argv[])
            lastrefresh = currentTime;
            save_lastrefresh();
            notice(s_GameServ, c_Forest, "Refreshing all players "\
            lastrefresh = currentTime;
            save_lastrefresh();
            notice(s_GameServ, c_Forest, "Refreshing all players "\
-                       "and resetting news! %ld", refreshperiod);
+                       "and resetting news!");
        }
 
        // Save the player data every updateperiod seconds
        }
 
        // Save the player data every updateperiod seconds
@@ -283,8 +297,14 @@ int main(int argc, char *argv[])
        {
            oldTime = currentTime;
            log("Saving to %s", playerdata);
        {
            oldTime = currentTime;
            log("Saving to %s", playerdata);
+
            save_gs_dbase();
            saveNews(newsdata, todaysnews);
            save_gs_dbase();
            saveNews(newsdata, todaysnews);
+           if (isSavedNotice())
+           {
+               // Send notice to the channel of the update
+               notice(s_GameServ, c_Forest, "%S player data saved");
+           }
        }
 
 
        }
 
 
@@ -520,7 +540,7 @@ int main(int argc, char *argv[])
            {
                #ifdef DEBUGMODE
                    log("Player %s (IRC: %s) joined %s", 
            {
                #ifdef DEBUGMODE
                    log("Player %s (IRC: %s) joined %s", 
-                       joiner->stats->name, 
+                       joiner->stats->name.c_str()
                        #ifdef P10
                            joiner->getRealNick(),
                        #else
                        #ifdef P10
                            joiner->getRealNick(),
                        #else
@@ -574,7 +594,6 @@ int main(int argc, char *argv[])
   saveNews(newsdata, todaysnews);
 
   delete_monsters();
   saveNews(newsdata, todaysnews);
 
   delete_monsters();
-  delete_masters();
 
   #ifdef DEBUGMODE
       log("<CLOSED>");
 
   #ifdef DEBUGMODE
       log("<CLOSED>");
@@ -663,7 +682,7 @@ aClient *findIRCplayer(const char *nick)
     if (!is_playing(p))
        return NULL;
 
     if (!is_playing(p))
        return NULL;
 
-    unsigned long hv = iHASH((unsigned char *) p->stats->name);
+    unsigned long hv = iHASH((unsigned char *) p->stats->name.c_str());
 
     for (newPtr = players[hv].First(); newPtr; newPtr = newPtr->Next())
     {
 
     for (newPtr = players[hv].First(); newPtr; newPtr = newPtr->Next())
     {
@@ -687,7 +706,7 @@ aClient *findplayer(const char *name)
     for (newPtr = players[hv].First(); newPtr; newPtr = newPtr->Next())
     {
        p = newPtr->getData()->stats;
     for (newPtr = players[hv].First(); newPtr; newPtr = newPtr->Next())
     {
        p = newPtr->getData()->stats;
-       if (stricmp(p->name, name) == 0)
+       if (stricmp(p->name.c_str(), name) == 0)
            return newPtr->getData();
        p = NULL;
     }
            return newPtr->getData();
        p = NULL;
     }
@@ -709,7 +728,7 @@ void check_idles()
                case 1:
                if ((time(NULL) - p->lastlogin) / 86400 >= level1expire)
                {
                case 1:
                if ((time(NULL) - p->lastlogin) / 86400 >= level1expire)
                {
-                   logout(p->client);
+                   logout(newPtr->getData());
                    players[x].remove(newPtr->getData());
                    return;
                }
                    players[x].remove(newPtr->getData());
                    return;
                }
@@ -718,7 +737,7 @@ void check_idles()
                default:
                if ((time(NULL) - p->lastlogin) / 86400 >= defaultexpire)
                {
                default:
                if ((time(NULL) - p->lastlogin) / 86400 >= defaultexpire)
                {
-                   logout(p->client);
+                   logout(newPtr->getData());
                    players[x].remove(newPtr->getData());
                    return;
                }
                    players[x].remove(newPtr->getData());
                    return;
                }