]> 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";
-char *VERSION = "1.2.3 +devel";
+char *VERSION = "1.2.4 +devel";
 
 int sock;
 long lastrefresh;
@@ -103,12 +103,26 @@ int main(int argc, char *argv[])
         exit(3);
     }
 
-  init_masters();
   load_gs_dbase();
   loadNews(newsdata, todaysnews);
 
+  if (load_masters() == false)
+  {
+       log("Error loading masters");
+       goto end;
+  }
+
   if (load_monsters() == false)
+  {
+       log("Error loading monsters");
        goto end;
+  }
+
+  if (load_levels() == false)
+  {
+       log("Error loading levels");
+       goto end;
+  }
 
     shuttingdown = false;
 
@@ -122,16 +136,16 @@ int main(int argc, char *argv[])
        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;
-  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 "\
-    "filled reign from above!");
+    "filled reign from above!";
 
 
  // 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 "\
-                       "and resetting news! %ld", refreshperiod);
+                       "and resetting news!");
        }
 
        // Save the player data every updateperiod seconds
@@ -283,8 +297,14 @@ int main(int argc, char *argv[])
        {
            oldTime = currentTime;
            log("Saving to %s", playerdata);
+
            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", 
-                       joiner->stats->name, 
+                       joiner->stats->name.c_str()
                        #ifdef P10
                            joiner->getRealNick(),
                        #else
@@ -574,7 +594,6 @@ int main(int argc, char *argv[])
   saveNews(newsdata, todaysnews);
 
   delete_monsters();
-  delete_masters();
 
   #ifdef DEBUGMODE
       log("<CLOSED>");
@@ -663,7 +682,7 @@ aClient *findIRCplayer(const char *nick)
     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())
     {
@@ -687,7 +706,7 @@ aClient *findplayer(const char *name)
     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;
     }
@@ -709,7 +728,7 @@ void check_idles()
                case 1:
                if ((time(NULL) - p->lastlogin) / 86400 >= level1expire)
                {
-                   logout(p->client);
+                   logout(newPtr->getData());
                    players[x].remove(newPtr->getData());
                    return;
                }
@@ -718,7 +737,7 @@ void check_idles()
                default:
                if ((time(NULL) - p->lastlogin) / 86400 >= defaultexpire)
                {
-                   logout(p->client);
+                   logout(newPtr->getData());
                    players[x].remove(newPtr->getData());
                    return;
                }