]> jfr.im git - irc/gameservirc.git/blobdiff - gameserv/gameserv.cpp
Fixed bug # 998029 causing a crash on gentoo systems due to a mistake in code:
[irc/gameservirc.git] / gameserv / gameserv.cpp
index 23b06d711efb66707ed674f28dc97e73b73d0a8f..d1b50f7ab84013cf67b543fb66c3947aac7502ad 100644 (file)
@@ -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();
 
@@ -305,6 +306,11 @@ void gameserv(char *source, char *buf)
     } else if (stricmp(cmd, "PRINT") == 0) {
        for (int x = 0; x < LEVELS; x++)
            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;
@@ -2596,7 +2602,7 @@ void do_tavern(char *u)
                    notice(s_GameServ, u, "You don't have enough gold!");
                break;
            case 4:
-               price = 3000 * p->level * 4;
+               price = 2000 * p->level * 4;
                if (p->gold >= price)
                {
                    notice(s_GameServ, u, "One HP Potion coming right up!");
@@ -2838,7 +2844,7 @@ void do_dragon(char *u)
     notice(s_GameServ, u, "You adjust your %s, tighten your grip on "\
        "your %s, and venture into the hot, dark cave. "\
        "You are surprised at the angle of descent as you climb "\
-       "lower and lower, deeper into the dragon's den.");
+       "lower and lower, deeper into the dragon's den.", armors[p->level - 1], weapons[p->level - 1]);
     notice(s_GameServ, u, "You come to the end of the cave to find "\
        "a tooth. It is a large tooth... bigger than your torso."\
        " Suddenly the darkness lifts from the gleam of an eye "\
@@ -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;
@@ -3446,11 +3467,6 @@ 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, "~"));
 
        levels[level - 1].monsters.insertAtBack_RLN(temp);