Changed the way we convert flag tables when coming from pennmush.
authornveid <nveid@cobramush.org>
Mon, 9 Apr 2007 03:51:14 +0000 (03:51 +0000)
committerAri Johnson <ari@cobramush.org>
Wed, 4 Apr 2007 05:49:46 +0000 (05:49 +0000)
(cherry picked from commit 716fcf28d1e2db23752f71d19bfaa04058b76be5)

game/txt/changes/0.72p4
hdrs/flags.h
hdrs/mushdb.h
src/bsd.c
src/flags.c

index f4c26b3703a6c09983d776e9880f1f62e8da862d..7d4d7acdba1a425768f248b5994247bf432efa05 100644 (file)
@@ -13,6 +13,8 @@ CobraMUSH Version 0.72p4
     * Parts of the RPMODE_SYS were not appropriately enclosed in ifdef
       statements, causing all non-privileged players to be rpgagged on
       channels. [RLB]
+    * Improved PennMUSH to CobraMUSH flag conversion code for flags that are
+      set to be of 'ANY' type. [RLB]
     * Fixed a bug related to uninitialized lastmod entries [AEJ]
     * Fixed SHS 64-bit incompatability, to allow password encryption
       to work properly on 64-bit platforms [AEJ]
index 96f75885404cefdc8cf6e2aae0a34d5f753c1c56..d087bd1332bfbe16c01891afca2c3ee76484f666 100644 (file)
@@ -122,6 +122,7 @@ extern void decompile_flags(dbref player, dbref thing, const char *name);
 #define NOTYPE          0xFFFF
 
 #define ALLTYPES (0 | TYPE_ROOM | TYPE_THING | TYPE_EXIT | TYPE_PLAYER | TYPE_DIVISION)
+#define ALL_PENNMUSH_TYPES (0 | TYPE_ROOM | TYPE_THING | TYPE_EXIT | TYPE_PLAYER)
 
 
 
index 2ccafc6b13f5064732c4f0a5d611526eb8af60c3..c87497b936befa4230d6fe1e983866d91fe4166b 100644 (file)
@@ -222,6 +222,8 @@ int unfindable(dbref);
 
 #define HAS_COBRADBFLAG(x,y)   (!(x & DBF_TYPE_GARBAGE) && (x & y)) /* Macro exists so cobra & penn dbflags can exist as same DBFs */
 
+#define IS_COBRA_DB(x) (!(x & DBF_TYPE_GARBAGE))
+
 /* Reboot DB flag macros - these should be defined whether or not the
  * corresponding system option is defined 
  * They are successive binary numbers
index d9668e8e64bf92fb232f32c053dd01607c15bccb..2f6a8bbc67c6661e27ee7f05042f60934314cc8e 100644 (file)
--- a/src/bsd.c
+++ b/src/bsd.c
@@ -586,10 +586,10 @@ main(int argc, char **argv)
   }
 #endif
 #ifdef HAS_TEXTDOMAIN
-  textdomain("pennmush");
+  textdomain("cobramush");
 #endif
 #ifdef HAS_BINDTEXTDOMAIN
-  bindtextdomain("pennmush", "../po");
+  bindtextdomain("cobramush", "../po");
 #endif
 
   /* Build the locale-dependant tables used by PCRE */
index c956d489408775395e3201a53bd92676a014f8d6..5f6439eeeacb6efe8095a2ec5bc94bbebde0c1bd 100644 (file)
@@ -498,8 +498,12 @@ flag_read(FILE * in)
   db_read_this_labeled_string(in, "type", &tmp);
   if(!strcmp(tmp, "ANY"))
     f->type = ALLTYPES;
-  else
+  else {
     f->type = string_to_privs(type_privs, tmp, 0);
+    /* Check to See if we're converting from Penn.. if so, change their Any to include our Any */
+    if(!IS_COBRA_DB(flagdb_flags) && f->type == ALL_PENNMUSH_TYPES)
+      f->type = ALLTYPES;
+  }
   db_read_this_labeled_string(in, "perms", &tmp);
   f->perms = string_to_privs(flag_privs, tmp, 0);
   db_read_this_labeled_string(in, "negate_perms", &tmp);
@@ -711,6 +715,8 @@ init_flag_table(const char *ns)
     return;
   }
 
+  do_rawlog(LT_ERR, T("Initializing flag table."));
+
   ptab_init(n->tab);
   /* do regular flags first */
   for (f = n->flag_table; f->name; f++) {
@@ -727,6 +733,8 @@ init_flag_table(const char *ns)
                T("FLAG INIT: flag alias %s matches no known flag."), a->alias);
   }
   flag_add_additional();
+
+  do_rawlog(LT_ERR, T("Flag table initialization complete."));
 }
 
 /* This is where the developers will put flag_add statements to create