]> jfr.im git - irc/gameservirc.git/blobdiff - gameserv/gameserv.cpp
Tweaked the monsters data files to not include number values because they're now...
[irc/gameservirc.git] / gameserv / gameserv.cpp
index bf59c8d2e91430180dfdff9dfbe8367ffe50f630..77b758bbbe87d00fcfd83afb5977f1e6ef6c115d 100644 (file)
@@ -3,6 +3,7 @@
 #include "extern.h"
 #include "flags.h"
 #include "list.h"
+#include "level.h"
 #include "sockhelp.h"
 
 #include <cctype>
@@ -23,9 +24,8 @@ using std::ios;
 #endif
 
 
-List<Monster> monsters[LEVELS];                // The new way to store monsters...
 Monster boss;                          // The boss monster
-
+Level levels[LEVELS];                  // The newest way to store monsters
 
 Monster *masters[LEVELS];              // A master for each level
 
@@ -88,6 +88,7 @@ void updateTS(Player *p);
 void reset(Player *p);
 void init_masters();
 bool load_monsters();
+bool load_levels();
 void delete_monsters();
 void delete_masters();
 
@@ -304,7 +305,12 @@ void gameserv(char *source, char *buf)
        }
     } else if (stricmp(cmd, "PRINT") == 0) {
        for (int x = 0; x < LEVELS; x++)
-           monsters[x].print();
+           levels[x].monsters.print();
+    } else if (stricmp(cmd, "RANDOM") == 0) {
+       char *rstr = strtok(NULL, "");
+       range trange;
+       trange.setRange(rstr);
+       notice(s_GameServ, source, "Random number in that range: %d", trange.random());
     #endif
     } else {
        aClient *user;
@@ -1051,7 +1057,7 @@ void init_masters()
 void delete_monsters()
 {
     for (int x = 0; x < LEVELS; x++)
-       monsters[x].deleteNodes();
+       levels[x].monsters.deleteNodes();
 }
 
 void delete_masters()
@@ -3412,6 +3418,21 @@ void do_admin(char *u)
     }
 }
 
+bool load_levels()
+{
+    char *filename;
+    filename = new char[256];
+
+    for (int x = 1; x <= LEVELS; x++)
+    {
+       sprintf(filename, "data/levels/level%d.dat", x);
+       if (levels[x - 1].loadLevel(filename) == false)
+           return false;
+    }
+
+    delete []filename;
+    return true;
+}
 bool load_monsters()
 {
     char *filename;
@@ -3422,7 +3443,7 @@ bool load_monsters()
   for (int level = 1; level <= LEVELS; level++)
   {
     filename = new char[256];
-    sprintf(filename, "monsters/level%d.dat", level);
+    sprintf(filename, "data/monsters/level%d.dat", level);
     infile.open(filename);
 
     if (!infile)
@@ -3446,14 +3467,16 @@ bool load_monsters()
 
             strcpy(temp->name, strtok(buf, "~"));
             strcpy(temp->weapon, strtok(NULL, "~"));
+           /*
             temp->strength = stringtoint(strtok(NULL, "~"));
             temp->gold = stringtoint(strtok(NULL, "~"));
             temp->exp = stringtoint(strtok(NULL, "~"));
             temp->maxhp = stringtoint(strtok(NULL, "~"));
             temp->hp = temp->maxhp;
+           */
             strcpy(temp->death, strtok(NULL, "~"));
 
-       monsters[level - 1].insertAtBack_RLN(temp);
+       levels[level - 1].monsters.insertAtBack_RLN(temp);
        delete temp;
     }
     delete [] filename;