diff -abPru Rom24/HACKLOG fixup_081006/HACKLOG
--- Rom24/HACKLOG 1969-12-31 19:00:00.000000000 -0500
+++ fixup_081006/HACKLOG 2008-10-03 23:18:38.000000000 -0400
@@ -0,0 +1,177 @@
+081004 Quixadhal
+ 2031 Started this HACKLOG file!
+
+ Removed the multiple Makefiles and merged their diffrences into
+ a single Makefile. The user can simply comment and uncomment
+ the correct lines for their platform.
+
+ Removed the "make" rule from "make clean", since many times
+ we just want to get rid of the object files and not rebuild.
+
+ Replaced the old .c.o suffix rule with a modern one, and
+ removed the generic "merc.h" prerequisite. Instead, I've
+ had gcc generate dependancy information and appended that
+ to the Makefile. This could be automated, but for simplicity
+ I won't do so.
+ 2107 Changed the function name weapon_type() to be weapon_type_lookup().
+
+ merc.h:2194: warning: 'int weapon_type(const char*)' hides
+ constructor for 'struct weapon_type'
+
+ Fixed a variable scope issue in act_obj.c.
+
+ act_obj.c: In function 'void do_buy(CHAR_DATA*, char*)':
+ act_obj.c:2518: warning: declaration of 'buf' shadows a previous local
+ act_obj.c:2506: warning: shadowed declaration is here
+
+ Same thing here.
+
+ act_wiz.c: In function 'void do_mset(CHAR_DATA*, char*)':
+ act_wiz.c:3466: warning: declaration of 'buf' shadows a previous local
+ act_wiz.c:3329: warning: shadowed declaration is here
+
+ This is a local re-declarations of a global variable.
+
+ comm.c: In function 'void bust_a_prompt(CHAR_DATA*)':
+ comm.c:1328: warning: declaration of 'dir_name' shadows a global declaration
+ merc.h:1904: warning: shadowed declaration is here
+
+ In this case, I think the correct answer is to move the local
+ declaration up to act_move.c, and rename it to be dir_abbrev[],
+ since it really needs to always stay in sync with dir_name[].
+
+ And this is just another shadowed global.
+
+ comm.c: In function 'void nanny(DESCRIPTOR_DATA*, char*)':
+ comm.c:1546: warning: declaration of 'd_next' shadows a global declaration
+ comm.c:301: warning: shadowed declaration is here
+
+ Let's try commenting out the global and see if it's really used
+ anywhere. Hmmmm, mostly just as a local loop variable, only one
+ place seems to want it global, and that doesn't appear to have any
+ effect.
+
+ /* if ( d_next == dclose )
+ d_next = d_next->next; */
+
+ That keeps d_next set, but it isn't ever used anywhere else.
+
+ 2133 Another shadow...
+
+ db.c: In function 'void load_old_obj(FILE*)':
+ db.c:655: warning: declaration of 'letter' shadows a previous local
+ db.c:595: warning: shadowed declaration is here
+
+ A quick change to is_name() to make it also const char *, and this
+ is fine.
+
+ db.c: In function 'char* get_extra_descr(const char*, EXTRA_DESCR_DATA*)':
+ db.c:2055: warning: cast from type 'const char*' to type 'char*' casts away constness
+
+ This one is a bit ugly. str_dup() accepts a const char *, but
+ returns a char *. Normally, not a big deal, but because of the
+ shared string space, it wants to return the source pointer sometimes.
+ THAT now has to be declared without the const, because we won't know
+ ahead of time if it IS const or not.
+
+ db.c: In function 'char* str_dup(const char*)':
+ db.c:2693: warning: cast from type 'const char*' to type 'char*' casts away constness
+
+ Another local shadow...
+
+ db2.c: In function 'void load_objects(FILE*)':
+ db2.c:458: warning: declaration of 'letter' shadows a previous local
+ db2.c:354: warning: shadowed declaration is here
+
+ 2159 Meeeeee, and my shaaaaadow!
+
+ You'd think -Wshadow would be part of -Wall by now.... *sigh*
+
+ fight.c: In function 'void one_hit(CHAR_DATA*, CHAR_DATA*, int)':
+ fight.c:587: warning: declaration of 'dam' shadows a previous local
+ fight.c:392: warning: shadowed declaration is here
+
+ fight.c: In function 'void check_killer(CHAR_DATA*, CHAR_DATA*)':
+ fight.c:1218: warning: declaration of 'buf' shadows a previous local
+ fight.c:1194: warning: shadowed declaration is here
+
+ Wheeeee! handler.c is unhappy!
+
+ handler.c: In function 'bool is_name(const char*, char*)':
+ handler.c:822: error: invalid conversion from 'const char*' to 'char*'
+ handler.c:826: error: invalid conversion from 'const char*' to 'char*'
+ handler.c:826: error: initializing argument 1 of 'char* one_argument(char*, char*)'
+ cc1plus: warnings being treated as errors
+
+ handler.c: In function 'char* affect_bit_name(int)':
+ handler.c:2614: warning: cast from type 'const char*' to type 'char*' casts away constness
+
+ handler.c: In function 'char* extra_bit_name(int)':
+ handler.c:2622: warning: declaration of 'extra_flags' shadows a global declaration
+ tables.h:74: warning: shadowed declaration is here
+ handler.c:2648: warning: cast from type 'const char*' to type 'char*' casts away constness
+
+ handler.c: In function 'char* act_bit_name(int)':
+ handler.c:2652: warning: declaration of 'act_flags' shadows a global declaration
+ tables.h:66: warning: shadowed declaration is here
+ handler.c:2698: warning: cast from type 'const char*' to type 'char*' casts away constness
+
+ handler.c: In function 'char* comm_bit_name(int)':
+ handler.c:2701: warning: declaration of 'comm_flags' shadows a global declaration
+ tables.h:73: warning: shadowed declaration is here
+ handler.c:2725: warning: cast from type 'const char*' to type 'char*' casts away constness
+
+ handler.c: In function 'char* imm_bit_name(int)':
+ handler.c:2728: warning: declaration of 'imm_flags' shadows a global declaration
+ tables.h:70: warning: shadowed declaration is here
+ handler.c:2757: warning: cast from type 'const char*' to type 'char*' casts away constness
+
+ handler.c: In function 'char* wear_bit_name(int)':
+ handler.c:2760: warning: declaration of 'wear_flags' shadows a global declaration
+ tables.h:75: warning: shadowed declaration is here
+ handler.c:2783: warning: cast from type 'const char*' to type 'char*' casts away constness
+
+ handler.c: In function 'char* form_bit_name(int)':
+ handler.c:2786: warning: declaration of 'form_flags' shadows a global declaration
+ tables.h:71: warning: shadowed declaration is here
+ handler.c:2818: warning: cast from type 'const char*' to type 'char*' casts away constness
+
+ handler.c: In function 'char* part_bit_name(int)':
+ handler.c:2821: warning: declaration of 'part_flags' shadows a global declaration
+ tables.h:72: warning: shadowed declaration is here
+ handler.c:2848: warning: cast from type 'const char*' to type 'char*' casts away constness
+
+ handler.c: In function 'char* weapon_bit_name(int)':
+ handler.c:2851: warning: declaration of 'weapon_flags' shadows a global declaration
+ tables.h:76: warning: shadowed declaration is here
+ handler.c:2865: warning: cast from type 'const char*' to type 'char*' casts away constness
+
+ handler.c: In function 'char* cont_bit_name(int)':
+ handler.c:2879: warning: cast from type 'const char*' to type 'char*' casts away constness
+
+ handler.c: In function 'char* off_bit_name(int)':
+ handler.c:2883: warning: declaration of 'off_flags' shadows a global declaration
+ tables.h:69: warning: shadowed declaration is here
+ handler.c:2911: warning: cast from type 'const char*' to type 'char*' casts away constness
+
+ These were all fixed by redoing the return values so it always
+ returns the buffer, but copies "none" into it where there were no
+ flags. Also, renamed all the local variables to "vector", since it
+ made sense and eliminated the conflicts.
+
+ 2312 Undid the change to is_name(), and also removed the const modifier
+ from get_extra_descr(). Adding proper const flags will need some
+ more carful work.
+
+ save.c: In function 'void fread_char(CHAR_DATA*, FILE*)':
+ save.c:743: warning: cast from type 'const char*' to type 'char*' casts away constness
+ save.c: In function 'void fread_pet(CHAR_DATA*, FILE*)':
+ save.c:1140: warning: cast from type 'const char*' to type 'char*' casts away constness
+ save.c:1162: warning: cast from type 'const char*' to type 'char*' casts away constness
+ save.c: In function 'void fread_obj(CHAR_DATA*, FILE*)':
+ save.c:1364: warning: cast from type 'const char*' to type 'char*' casts away constness
+ save.c:1400: warning: cast from type 'const char*' to type 'char*' casts away constness
+
+ Fixed those by adding a static char buffer which is set to
+ "End" or "END" and returned instead of a constant string.
+
diff -abPru Rom24/HACKLOG_1 fixup_081006/HACKLOG_1
--- Rom24/HACKLOG_1 1969-12-31 19:00:00.000000000 -0500
+++ fixup_081006/HACKLOG_1 2008-10-06 15:18:27.000000000 -0400
@@ -0,0 +1,115 @@
+081006 MacGregor/Nibios
+
+Taking Quixadhal's fixup_081004 src and adapting to compile with g++ 3.4.6.
+First pass: compile dies with these errors and fixes:
+comm.c: In function `void act_new(const char*, CHAR_DATA*, const void*, const void*, int, int)':
+comm.c:2443: warning: cast from `const void*' to `CHAR_DATA*' discards qualifiers from pointer target type
+comm.c:2444: warning: cast from `const void*' to `OBJ_DATA*' discards qualifiers from pointer target type
+comm.c:2445: warning: cast from `const void*' to `OBJ_DATA*' discards qualifiers from pointer target type
+comm.c:2512: warning: cast from `const void*' to `char*' discards qualifiers from pointer target type
+comm.c:2513: warning: cast from `const void*' to `char*' discards qualifiers from pointer target type
+comm.c:2536: warning: cast from `const void*' to `char*' discards qualifiers from pointer target type
+comm.c:2542: warning: cast from `const void*' to `char*' discards qualifiers from pointer target type
+
+The offending lines:
+2443: CHAR_DATA *vch = (CHAR_DATA *) arg2;
+2444: OBJ_DATA *obj1 = (OBJ_DATA *) arg1;
+2445: OBJ_DATA *obj2 = (OBJ_DATA *) arg2;
+2512: case 't': i = (char *) arg1; break;
+2513: case 'T': i = (char *) arg2; break;
+2536: if ( arg2 == NULL || ((char *) arg2)[0] == '\0' )
+2542: one_argument( (char *) arg2, fname );
+
+
+The first six were pretty straightforward to fix, changing them respectively to:
+2443: const CHAR_DATA *vch = (const CHAR_DATA *) arg2;
+2444: const OBJ_DATA *obj1 = (const OBJ_DATA *) arg1;
+2445: const OBJ_DATA *obj2 = (const OBJ_DATA *) arg2;
+2512: case 't': i = (const char *) arg1; break;
+2513: case 'T': i = (const char *) arg2; break;
+2536: if ( arg2 == NULL || ((const char *) arg2)[0] == '\0' )
+
+We'll defer fixing line 2542 for now, and just recompile with what we have.
+We now get:
+comm.c: In function `void act_new(const char*, CHAR_DATA*, const void*, const void*, int, int)':
+comm.c:2515: error: invalid conversion from `const CHAR_DATA*' to `CHAR_DATA*'
+comm.c:2515: error: initializing argument 2 of `bool can_see(CHAR_DATA*, CHAR_DATA*)'
+comm.c:2524: error: invalid conversion from `const OBJ_DATA*' to `OBJ_DATA*'
+comm.c:2524: error: initializing argument 2 of `bool can_see_obj(CHAR_DATA*, OBJ_DATA*)'
+comm.c:2530: error: invalid conversion from `const OBJ_DATA*' to `OBJ_DATA*'
+comm.c:2530: error: initializing argument 2 of `bool can_see_obj(CHAR_DATA*, OBJ_DATA*)'
+comm.c:2542: warning: cast from `const void*' to `char*' discards qualifiers from pointer target type
+
+The offending lines:
+2515: case 'N': i = PERS( vch, to ); break;
+2524: i = can_see_obj( to, obj1 )
+2530: i = can_see_obj( to, obj2 )
+2542: one_argument( (char *) arg2, fname );
+
+The PERS macro takes us to the can_see() function in handler.c.
+We change it from
+bool can_see( CHAR_DATA *ch, CHAR_DATA *victim )
+to
+bool can_see( const CHAR_DATA *ch, const CHAR_DATA *victim )
+
+This in turn requires changing get_trust(), get_skill() and get_curr_stat()
+all to take const CHAR_DATA * arguments instead of CHAR_DATA *.
+
+Fixing can_see_obj() is a bit more straightforward since we only have to change
+its own arguments to const CHAR_DATA * and const OBJ_DATA *.
+
+So now the only problem left is line 2542 and its call to one_argument().
+
+Changing one_argument() to take a const char * as its first argument, and
+returning a const char *, is going to open up a huge can of worms. The
+Right Thing To Do at this point would be to make the function take a const
+char * for its first argument, and return a const char *. This would mean,
+among other things, that every do_fun would have to take a const char * for
+their second argument.
+
+However this would definitely break about 95% of the existing ROM snippets,
+and we'd agreed we didn't want to do that. Furthermore, it already compiles
+just fine with gcc 4.1.x. So pretty much against my better judgement, I
+copied one_argument() to a new function get_argument(), with get_argument()
+taking and returning const char *'s, and changed line 2542 to call the new
+get_argument() function.
+
+Okay, it compiles cleanly now! Let's try compiling as gcc instead of g++.
+
+Whoops! act_comm.c blows up big time, referencing incomplete data types.
+The problem is that g++ has its own bool data type and gcc doesn't. So we
+add a couple lines in merc.h like so:
+
+/*
+ * Accomodate both gcc and g++
+ */
+#if !defined __cplusplus
+typedef unsigned char bool;
+#endif
+
+g++ is still happy, and so is gcc until it gets to act_wiz.c:
+act_wiz.c: In function `do_clone':
+act_wiz.c:2386: warning: declaration of 'new_obj' shadows a global declaration
+recycle.h:81: warning: shadowed declaration is here
+
+Hmm, wonder why this didn't show up earlier? Seems to me it should have.
+Anyway, change the local variable new_obj to cloned_obj and continue.
+
+Uh oh, comm.c blows up again, this time over those declarations of system
+calls at the top of comm.c. Let's extend the comment around the
+declarations for accept, bind et al to include the declarations for read,
+select, etc too. I think it would be safe to just remove them but I'll do
+it conservatively.
+
+Okay, another shadow problem in db.c, the variable 'exit' in the function
+do_dump(). Let's change it to pExit.
+
+Now we're getting, of all things, this error:
+handler.c: In function `unequip_char':
+handler.c:1646: warning: suggest explicit braces to avoid ambiguous `else'
+We add curley braces around the for loop inside the 'if', and also around
+the for-loop itself. Either set resolves the problem, but good practice
+requires both.
+
+Now, finally, it compikes with both g++ and gcc.
+
diff -abPru Rom24/src/Makefile fixup_081006/src/Makefile
--- Rom24/src/Makefile 2007-03-05 17:32:46.000000000 -0500
+++ fixup_081006/src/Makefile 2008-10-06 15:19:44.000000000 -0400
@@ -1,22 +1,71 @@
CC = g++
-PROF = -O -g
-NOCRYPT =
-C_FLAGS = -Wall $(PROF) $(NOCRYPT)
-L_FLAGS = $(PROF)
+
+W_FORMAT = -Wformat -Wformat-security -Wmissing-format-attribute
+W_NITPICK = -Wpointer-arith -Winline
+W_MESSY = -Wmissing-braces -Wparentheses -Wshadow #-Wredundant-decls
+W_TYPE = -Wcast-qual -Wcast-align -Wchar-subscripts -Wreturn-type -Wswitch #-Wwrite-strings
+W_EXTRA = -Wunused #-Wunreachable-code
+W_ANSI = #-pedantic
+W_UBER = -Wall #-W
+W_ERROR = -Werror
+
+WARN = $(W_ANSI) $(W_UBER) $(W_FORMAT) $(W_MESSY) $(W_FUNC) $(W_TYPE) $(W_EXTRA) $(W_NITPICK) $(W_ERROR)
+OPT = -O
+DEBUG = -g
+
+C_FLAGS = $(WARN) $(OPT) $(DEBUG)
+L_FLAGS = $(DEBUG)
+SOLARIS_LIBS = -lsocket -lresolv -lnsl
+LINUX_LIBS = -lcrypt
+
+LIBS = $(LINUX_LIBS)
O_FILES = act_comm.o act_enter.o act_info.o act_move.o act_obj.o act_wiz.o \
alias.o ban.o comm.o const.o db.o db2.o effects.o fight.o flags.o \
handler.o healer.o interp.o note.o lookup.o magic.o magic2.o \
music.o recycle.o save.o scan.o skills.o special.o tables.o \
- update.o -lcrypt
+ update.o
rom: $(O_FILES)
rm -f rom
- $(CC) $(L_FLAGS) -o rom $(O_FILES)
+ $(CC) $(L_FLAGS) -o rom $(O_FILES) $(LIBS)
-.c.o: merc.h
- $(CC) -c $(C_FLAGS) $<
+%o : %c
+ $(CC) $(C_FLAGS) -c $< -o $@
clean:
@rm -f *.o
- make
+
+# find . -name \*.c -a -type f -print0 | xargs -0 -P 1 -r g++ -O -g -MM
+
+act_enter.o: act_enter.c merc.h interp.h
+effects.o: effects.c merc.h recycle.h
+act_obj.o: act_obj.c merc.h interp.h
+scan.o: scan.c merc.h
+note.o: note.c merc.h recycle.h tables.h
+update.o: update.c merc.h interp.h music.h
+alias.o: alias.c merc.h
+music.o: music.c merc.h music.h recycle.h
+db2.o: db2.c merc.h db.h lookup.h
+db.o: db.c merc.h db.h recycle.h music.h lookup.h
+recycle.o: recycle.c merc.h recycle.h
+magic.o: magic.c merc.h interp.h magic.h recycle.h
+act_comm.o: act_comm.c merc.h interp.h recycle.h tables.h
+tables.o: tables.c merc.h tables.h
+lookup.o: lookup.c merc.h tables.h
+magic2.o: magic2.c merc.h interp.h magic.h
+act_move.o: act_move.c merc.h interp.h
+save.o: save.c merc.h recycle.h lookup.h tables.h
+interp.o: interp.c merc.h interp.h
+special.o: special.c merc.h interp.h magic.h
+skills.o: skills.c merc.h interp.h magic.h recycle.h
+fight.o: fight.c merc.h interp.h
+comm.o: comm.c merc.h interp.h recycle.h tables.h telnet.h
+healer.o: healer.c merc.h magic.h
+const.o: const.c merc.h magic.h interp.h
+flags.o: flags.c merc.h tables.h
+act_wiz.o: act_wiz.c merc.h interp.h recycle.h tables.h lookup.h
+act_info.o: act_info.c merc.h interp.h magic.h recycle.h tables.h \
+ lookup.h
+ban.o: ban.c merc.h recycle.h
+handler.o: handler.c merc.h interp.h magic.h recycle.h tables.h
Only in Rom24/src: Makefile.linux
Only in Rom24/src: Makefile.normal
Only in Rom24/src: Makefile.solaris
diff -abPru Rom24/src/act_move.c fixup_081006/src/act_move.c
--- Rom24/src/act_move.c 2007-03-05 16:27:47.000000000 -0500
+++ fixup_081006/src/act_move.c 2008-10-03 21:22:01.000000000 -0400
@@ -41,6 +41,7 @@
{
"north", "east", "south", "west", "up", "down"
};
+char * const dir_abbrev[] = {"N","E","S","W","U","D"};
const sh_int rev_dir [] =
{
diff -abPru Rom24/src/act_obj.c fixup_081006/src/act_obj.c
--- Rom24/src/act_obj.c 2007-02-03 10:15:18.000000000 -0500
+++ fixup_081006/src/act_obj.c 2008-10-03 21:13:27.000000000 -0400
@@ -2503,6 +2503,7 @@
void do_buy( CHAR_DATA *ch, char *argument )
{
+ char arg[MAX_INPUT_LENGTH];
char buf[MAX_STRING_LENGTH];
int cost,roll;
@@ -2514,8 +2515,6 @@
if ( IS_SET(ch->in_room->room_flags, ROOM_PET_SHOP) )
{
- char arg[MAX_INPUT_LENGTH];
- char buf[MAX_STRING_LENGTH];
CHAR_DATA *pet;
ROOM_INDEX_DATA *pRoomIndexNext;
ROOM_INDEX_DATA *in_room;
@@ -2613,7 +2612,6 @@
{
CHAR_DATA *keeper;
OBJ_DATA *obj,*t_obj;
- char arg[MAX_INPUT_LENGTH];
int number, count = 1;
if ( ( keeper = find_keeper( ch ) ) == NULL )
diff -abPru Rom24/src/act_wiz.c fixup_081006/src/act_wiz.c
--- Rom24/src/act_wiz.c 2007-03-05 16:28:57.000000000 -0500
+++ fixup_081006/src/act_wiz.c 2008-10-06 14:48:05.000000000 -0400
@@ -2383,7 +2383,7 @@
else if (mob != NULL)
{
CHAR_DATA *clone;
- OBJ_DATA *new_obj;
+ OBJ_DATA *cloned_obj;
char buf[MAX_STRING_LENGTH];
if (!IS_NPC(mob))
@@ -2410,11 +2410,11 @@
{
if (obj_check(ch,obj))
{
- new_obj = create_object(obj->pIndexData,0);
- clone_object(obj,new_obj);
- recursive_clone(ch,obj,new_obj);
- obj_to_char(new_obj,clone);
- new_obj->wear_loc = obj->wear_loc;
+ cloned_obj = create_object(obj->pIndexData,0);
+ clone_object(obj,cloned_obj);
+ recursive_clone(ch,obj,cloned_obj);
+ obj_to_char(cloned_obj,clone);
+ cloned_obj->wear_loc = obj->wear_loc;
}
}
char_to_room(clone,ch->in_room);
@@ -3326,7 +3326,7 @@
char arg1 [MAX_INPUT_LENGTH];
char arg2 [MAX_INPUT_LENGTH];
char arg3 [MAX_INPUT_LENGTH];
- char buf[100];
+ char buf [MAX_STRING_LENGTH];
CHAR_DATA *victim;
int value;
@@ -3463,8 +3463,6 @@
iclass = class_lookup(arg3);
if ( iclass == -1 )
{
- char buf[MAX_STRING_LENGTH];
-
strcpy( buf, "Possible classes are: " );
for ( iclass = 0; iclass < MAX_CLASS; iclass++ )
{
diff -abPru Rom24/src/comm.c fixup_081006/src/comm.c
--- Rom24/src/comm.c 2007-03-05 17:21:17.000000000 -0500
+++ fixup_081006/src/comm.c 2008-10-06 14:56:46.000000000 -0400
@@ -170,7 +170,6 @@
int getpeername args( ( int s, struct sockaddr *name, int *namelen ) );
int getsockname args( ( int s, struct sockaddr *name, int *namelen ) );
int listen args( ( int s, int backlog ) );
-*/
int close args( ( int fd ) );
int gettimeofday args( ( struct timeval *tp, struct timezone *tzp ) );
@@ -179,6 +178,7 @@
fd_set *exceptfds, struct timeval *timeout ) );
int socket args( ( int domain, int type, int protocol ) );
int write args( ( int fd, char *buf, int nbyte ) );
+*/
#endif
#if defined(macintosh)
@@ -298,7 +298,7 @@
* Global variables.
*/
DESCRIPTOR_DATA * descriptor_list; /* All open descriptors */
-DESCRIPTOR_DATA * d_next; /* Next descriptor in loop */
+/* DESCRIPTOR_DATA * d_next; *//* Next descriptor in loop */
FILE * fpReserve; /* Reserved file handle */
bool god; /* All new chars are gods! */
bool merc_down; /* Shutdown */
@@ -502,6 +502,7 @@
struct timeval last_time;
struct timeval now_time;
static DESCRIPTOR_DATA dcon;
+ DESCRIPTOR_DATA * d_next;
gettimeofday( &last_time, NULL );
current_time = (time_t) last_time.tv_sec;
@@ -661,6 +662,7 @@
{
static struct timeval null_time;
struct timeval last_time;
+ DESCRIPTOR_DATA * d_next;
signal( SIGPIPE, SIG_IGN );
gettimeofday( &last_time, NULL );
@@ -1001,8 +1003,8 @@
}
}
- if ( d_next == dclose )
- d_next = d_next->next;
+ /* if ( d_next == dclose )
+ d_next = d_next->next; */
if ( dclose == descriptor_list )
{
@@ -1325,7 +1327,6 @@
char doors[MAX_INPUT_LENGTH];
EXIT_DATA *pexit;
bool found;
- const char *dir_name[] = {"N","E","S","W","U","D"};
int door;
point = buf;
@@ -1369,7 +1370,7 @@
&& !IS_SET(pexit->exit_info,EX_CLOSED))
{
found = TRUE;
- strcat(doors,dir_name[door]);
+ strcat(doors,dir_abbrev[door]);
}
}
if (!found)
@@ -2439,9 +2440,9 @@
char buf[MAX_STRING_LENGTH];
char fname[MAX_INPUT_LENGTH];
CHAR_DATA *to;
- CHAR_DATA *vch = (CHAR_DATA *) arg2;
- OBJ_DATA *obj1 = (OBJ_DATA *) arg1;
- OBJ_DATA *obj2 = (OBJ_DATA *) arg2;
+ const CHAR_DATA *vch = (const CHAR_DATA *) arg2;
+ const OBJ_DATA *obj1 = (const OBJ_DATA *) arg1;
+ const OBJ_DATA *obj2 = (const OBJ_DATA *) arg2;
const char *str;
const char *i;
char *point;
@@ -2508,8 +2509,8 @@
default: bug( "Act: bad code %d.", *str );
i = " <@@@> "; break;
/* Thx alex for 't' idea */
- case 't': i = (char *) arg1; break;
- case 'T': i = (char *) arg2; break;
+ case 't': i = (const char *) arg1; break;
+ case 'T': i = (const char *) arg2; break;
case 'n': i = PERS( ch, to ); break;
case 'N': i = PERS( vch, to ); break;
case 'e': i = he_she [URANGE(0, ch ->sex, 2)]; break;
@@ -2532,13 +2533,13 @@
break;
case 'd':
- if ( arg2 == NULL || ((char *) arg2)[0] == '\0' )
+ if ( arg2 == NULL || ((const char *) arg2)[0] == '\0' )
{
i = "door";
}
else
{
- one_argument( (char *) arg2, fname );
+ get_argument( (const char *) arg2, fname );
i = fname;
}
break;
diff -abPru Rom24/src/db.c fixup_081006/src/db.c
--- Rom24/src/db.c 2007-03-05 17:34:07.000000000 -0500
+++ fixup_081006/src/db.c 2008-10-06 14:58:29.000000000 -0400
@@ -652,11 +652,11 @@
for ( ; ; )
{
- char letter;
+ char another_letter;
- letter = fread_letter( fp );
+ another_letter = fread_letter( fp );
- if ( letter == 'A' )
+ if ( another_letter == 'A' )
{
AFFECT_DATA *paf;
@@ -673,7 +673,7 @@
top_affect++;
}
- else if ( letter == 'E' )
+ else if ( another_letter == 'E' )
{
EXTRA_DESCR_DATA *ed;
@@ -687,7 +687,7 @@
else
{
- ungetc( letter, fp );
+ ungetc( another_letter, fp );
break;
}
}
@@ -2048,11 +2048,11 @@
/*
* Get an extra description from a list.
*/
-char *get_extra_descr( const char *name, EXTRA_DESCR_DATA *ed )
+char *get_extra_descr( char *name, EXTRA_DESCR_DATA *ed )
{
for ( ; ed != NULL; ed = ed->next )
{
- if ( is_name( (char *) name, ed->keyword ) )
+ if ( is_name( name, ed->keyword ) )
return ed->description;
}
return NULL;
@@ -2682,7 +2682,7 @@
* Duplicate a string into dynamic memory.
* Fread_strings are read-only and shared.
*/
-char *str_dup( const char *str )
+char *str_dup( char *str )
{
char *str_new;
@@ -2690,7 +2690,7 @@
return &str_empty[0];
if ( str >= string_space && str < top_string )
- return (char *) str;
+ return str;
str_new = (char *)alloc_mem( strlen(str) + 1 );
strcpy( str_new, str );
@@ -2791,7 +2791,7 @@
OBJ_DATA *obj;
OBJ_INDEX_DATA *pObjIndex;
ROOM_INDEX_DATA *room;
- EXIT_DATA *exit;
+ EXIT_DATA *pExit;
DESCRIPTOR_DATA *d;
AFFECT_DATA *af;
FILE *fp;
@@ -2885,7 +2885,7 @@
/* exits */
fprintf(fp,"Exits %4d (%8d bytes)\n",
- top_exit, top_exit * (sizeof(*exit)));
+ top_exit, top_exit * (sizeof(*pExit)));
fclose(fp);
diff -abPru Rom24/src/db2.c fixup_081006/src/db2.c
--- Rom24/src/db2.c 2007-03-05 16:53:41.000000000 -0500
+++ fixup_081006/src/db2.c 2008-10-03 21:58:15.000000000 -0400
@@ -389,7 +389,7 @@
switch(pObjIndex->item_type)
{
case ITEM_WEAPON:
- pObjIndex->value[0] = weapon_type(fread_word(fp));
+ pObjIndex->value[0] = weapon_type_lookup(fread_word(fp));
pObjIndex->value[1] = fread_number(fp);
pObjIndex->value[2] = fread_number(fp);
pObjIndex->value[3] = attack_lookup(fread_word(fp));
@@ -455,11 +455,11 @@
for ( ; ; )
{
- char letter;
+ char another_letter;
- letter = fread_letter( fp );
+ another_letter = fread_letter( fp );
- if ( letter == 'A' )
+ if ( another_letter == 'A' )
{
AFFECT_DATA *paf;
@@ -476,13 +476,13 @@
top_affect++;
}
- else if (letter == 'F')
+ else if (another_letter == 'F')
{
AFFECT_DATA *paf;
paf = (AFFECT_DATA *)alloc_perm( sizeof(*paf) );
- letter = fread_letter(fp);
- switch (letter)
+ another_letter = fread_letter(fp);
+ switch (another_letter)
{
case 'A':
paf->where = TO_AFFECTS;
@@ -511,7 +511,7 @@
top_affect++;
}
- else if ( letter == 'E' )
+ else if ( another_letter == 'E' )
{
EXTRA_DESCR_DATA *ed;
@@ -525,7 +525,7 @@
else
{
- ungetc( letter, fp );
+ ungetc( another_letter, fp );
break;
}
}
diff -abPru Rom24/src/fight.c fixup_081006/src/fight.c
--- Rom24/src/fight.c 2007-03-05 16:54:22.000000000 -0500
+++ fixup_081006/src/fight.c 2008-10-03 22:10:30.000000000 -0400
@@ -584,8 +584,6 @@
/* but do we have a funky weapon? */
if (result && wield != NULL)
{
- int dam;
-
if (ch->fighting == victim && IS_WEAPON_STAT(wield,WEAPON_POISON))
{
int level;
@@ -1215,11 +1213,11 @@
{
if ( ch->master == NULL )
{
- char buf[MAX_STRING_LENGTH];
+ char buf2[MAX_STRING_LENGTH];
- sprintf( buf, "Check_killer: %s bad AFF_CHARM",
+ sprintf( buf2, "Check_killer: %s bad AFF_CHARM",
IS_NPC(ch) ? ch->short_descr : ch->name );
- bug( buf, 0 );
+ bug( buf2, 0 );
affect_strip( ch, gsn_charm_person );
REMOVE_BIT( ch->affected_by, AFF_CHARM );
return;
diff -abPru Rom24/src/handler.c fixup_081006/src/handler.c
--- Rom24/src/handler.c 2007-03-05 16:59:58.000000000 -0500
+++ fixup_081006/src/handler.c 2008-10-06 15:18:52.000000000 -0400
@@ -155,7 +155,7 @@
return -1;
}
-int weapon_type (const char *name)
+int weapon_type_lookup (const char *name)
{
int type;
@@ -349,7 +349,7 @@
}
/* for returning skill information */
-int get_skill(CHAR_DATA *ch, int sn)
+int get_skill( const CHAR_DATA *ch, int sn )
{
int skill;
@@ -703,7 +703,7 @@
/*
* Retrieve a character's trusted level for permission checking.
*/
-int get_trust( CHAR_DATA *ch )
+int get_trust( const CHAR_DATA *ch )
{
if ( ch->desc != NULL && ch->desc->original != NULL )
ch = ch->desc->original;
@@ -727,7 +727,7 @@
}
/* command for retrieving stats */
-int get_curr_stat( CHAR_DATA *ch, int stat )
+int get_curr_stat( const CHAR_DATA *ch, int stat )
{
int max;
@@ -1644,7 +1644,9 @@
obj->wear_loc = -1;
if (!obj->enchanted)
+ {
for ( paf = obj->pIndexData->affected; paf != NULL; paf = paf->next )
+ {
if ( paf->location == APPLY_SPELL_AFFECT )
{
for ( lpaf = ch->affected; lpaf != NULL; lpaf = lpaf_next )
@@ -1664,6 +1666,8 @@
affect_modify( ch, paf, FALSE );
affect_check(ch,paf->where,paf->bitvector);
}
+ }
+ }
for ( paf = obj->affected; paf != NULL; paf = paf->next )
if ( paf->location == APPLY_SPELL_AFFECT )
@@ -2439,7 +2443,7 @@
/*
* True if char can see victim.
*/
-bool can_see( CHAR_DATA *ch, CHAR_DATA *victim )
+bool can_see( const CHAR_DATA *ch, const CHAR_DATA *victim )
{
/* RT changed so that WIZ_INVIS has levels */
if ( ch == victim )
@@ -2494,7 +2498,7 @@
/*
* True if char can see obj.
*/
-bool can_see_obj( CHAR_DATA *ch, OBJ_DATA *obj )
+bool can_see_obj( const CHAR_DATA *ch, const OBJ_DATA *obj )
{
if ( !IS_NPC(ch) && IS_SET(ch->act, PLR_HOLYLIGHT) )
return TRUE;
@@ -2611,7 +2615,10 @@
if ( vector & AFF_SLOW ) strcat( buf, " slow" );
if ( vector & AFF_PLAGUE ) strcat( buf, " plague" );
if ( vector & AFF_DARK_VISION ) strcat( buf, " dark_vision" );
- return (char *)(( buf[0] != '\0' ) ? buf+1 : "none");
+ if ( !*buf )
+ strcat( buf, " none" );
+
+ return (char *)(buf+1);
}
@@ -2619,294 +2626,310 @@
/*
* Return ascii name of extra flags vector.
*/
-char *extra_bit_name( int extra_flags )
+char *extra_bit_name( int vector )
{
static char buf[512];
buf[0] = '\0';
- if ( extra_flags & ITEM_GLOW ) strcat( buf, " glow" );
- if ( extra_flags & ITEM_HUM ) strcat( buf, " hum" );
- if ( extra_flags & ITEM_DARK ) strcat( buf, " dark" );
- if ( extra_flags & ITEM_LOCK ) strcat( buf, " lock" );
- if ( extra_flags & ITEM_EVIL ) strcat( buf, " evil" );
- if ( extra_flags & ITEM_INVIS ) strcat( buf, " invis" );
- if ( extra_flags & ITEM_MAGIC ) strcat( buf, " magic" );
- if ( extra_flags & ITEM_NODROP ) strcat( buf, " nodrop" );
- if ( extra_flags & ITEM_BLESS ) strcat( buf, " bless" );
- if ( extra_flags & ITEM_ANTI_GOOD ) strcat( buf, " anti-good" );
- if ( extra_flags & ITEM_ANTI_EVIL ) strcat( buf, " anti-evil" );
- if ( extra_flags & ITEM_ANTI_NEUTRAL ) strcat( buf, " anti-neutral" );
- if ( extra_flags & ITEM_NOREMOVE ) strcat( buf, " noremove" );
- if ( extra_flags & ITEM_INVENTORY ) strcat( buf, " inventory" );
- if ( extra_flags & ITEM_NOPURGE ) strcat( buf, " nopurge" );
- if ( extra_flags & ITEM_VIS_DEATH ) strcat( buf, " vis_death" );
- if ( extra_flags & ITEM_ROT_DEATH ) strcat( buf, " rot_death" );
- if ( extra_flags & ITEM_NOLOCATE ) strcat( buf, " no_locate" );
- if ( extra_flags & ITEM_SELL_EXTRACT ) strcat( buf, " sell_extract" );
- if ( extra_flags & ITEM_BURN_PROOF ) strcat( buf, " burn_proof" );
- if ( extra_flags & ITEM_NOUNCURSE ) strcat( buf, " no_uncurse" );
- return (char *)(( buf[0] != '\0' ) ? buf+1 : "none");
+ if ( vector & ITEM_GLOW ) strcat( buf, " glow" );
+ if ( vector & ITEM_HUM ) strcat( buf, " hum" );
+ if ( vector & ITEM_DARK ) strcat( buf, " dark" );
+ if ( vector & ITEM_LOCK ) strcat( buf, " lock" );
+ if ( vector & ITEM_EVIL ) strcat( buf, " evil" );
+ if ( vector & ITEM_INVIS ) strcat( buf, " invis" );
+ if ( vector & ITEM_MAGIC ) strcat( buf, " magic" );
+ if ( vector & ITEM_NODROP ) strcat( buf, " nodrop" );
+ if ( vector & ITEM_BLESS ) strcat( buf, " bless" );
+ if ( vector & ITEM_ANTI_GOOD ) strcat( buf, " anti-good" );
+ if ( vector & ITEM_ANTI_EVIL ) strcat( buf, " anti-evil" );
+ if ( vector & ITEM_ANTI_NEUTRAL ) strcat( buf, " anti-neutral" );
+ if ( vector & ITEM_NOREMOVE ) strcat( buf, " noremove" );
+ if ( vector & ITEM_INVENTORY ) strcat( buf, " inventory" );
+ if ( vector & ITEM_NOPURGE ) strcat( buf, " nopurge" );
+ if ( vector & ITEM_VIS_DEATH ) strcat( buf, " vis_death" );
+ if ( vector & ITEM_ROT_DEATH ) strcat( buf, " rot_death" );
+ if ( vector & ITEM_NOLOCATE ) strcat( buf, " no_locate" );
+ if ( vector & ITEM_SELL_EXTRACT ) strcat( buf, " sell_extract" );
+ if ( vector & ITEM_BURN_PROOF ) strcat( buf, " burn_proof" );
+ if ( vector & ITEM_NOUNCURSE ) strcat( buf, " no_uncurse" );
+ if ( !*buf )
+ strcat( buf, " none" );
+
+ return (char *)(buf+1);
}
/* return ascii name of an act vector */
-char *act_bit_name( int act_flags )
+char *act_bit_name( int vector )
{
static char buf[512];
buf[0] = '\0';
-
- if (IS_SET(act_flags,ACT_IS_NPC))
+ if (IS_SET(vector,ACT_IS_NPC))
{
strcat(buf," npc");
- if (act_flags & ACT_SENTINEL ) strcat(buf, " sentinel");
- if (act_flags & ACT_SCAVENGER ) strcat(buf, " scavenger");
- if (act_flags & ACT_AGGRESSIVE ) strcat(buf, " aggressive");
- if (act_flags & ACT_STAY_AREA ) strcat(buf, " stay_area");
- if (act_flags & ACT_WIMPY ) strcat(buf, " wimpy");
- if (act_flags & ACT_PET ) strcat(buf, " pet");
- if (act_flags & ACT_TRAIN ) strcat(buf, " train");
- if (act_flags & ACT_PRACTICE ) strcat(buf, " practice");
- if (act_flags & ACT_UNDEAD ) strcat(buf, " undead");
- if (act_flags & ACT_CLERIC ) strcat(buf, " cleric");
- if (act_flags & ACT_MAGE ) strcat(buf, " mage");
- if (act_flags & ACT_THIEF ) strcat(buf, " thief");
- if (act_flags & ACT_WARRIOR ) strcat(buf, " warrior");
- if (act_flags & ACT_NOALIGN ) strcat(buf, " no_align");
- if (act_flags & ACT_NOPURGE ) strcat(buf, " no_purge");
- if (act_flags & ACT_IS_HEALER ) strcat(buf, " healer");
- if (act_flags & ACT_IS_CHANGER ) strcat(buf, " changer");
- if (act_flags & ACT_GAIN ) strcat(buf, " skill_train");
- if (act_flags & ACT_UPDATE_ALWAYS) strcat(buf," update_always");
+ if (vector & ACT_SENTINEL ) strcat(buf, " sentinel");
+ if (vector & ACT_SCAVENGER ) strcat(buf, " scavenger");
+ if (vector & ACT_AGGRESSIVE ) strcat(buf, " aggressive");
+ if (vector & ACT_STAY_AREA ) strcat(buf, " stay_area");
+ if (vector & ACT_WIMPY ) strcat(buf, " wimpy");
+ if (vector & ACT_PET ) strcat(buf, " pet");
+ if (vector & ACT_TRAIN ) strcat(buf, " train");
+ if (vector & ACT_PRACTICE ) strcat(buf, " practice");
+ if (vector & ACT_UNDEAD ) strcat(buf, " undead");
+ if (vector & ACT_CLERIC ) strcat(buf, " cleric");
+ if (vector & ACT_MAGE ) strcat(buf, " mage");
+ if (vector & ACT_THIEF ) strcat(buf, " thief");
+ if (vector & ACT_WARRIOR ) strcat(buf, " warrior");
+ if (vector & ACT_NOALIGN ) strcat(buf, " no_align");
+ if (vector & ACT_NOPURGE ) strcat(buf, " no_purge");
+ if (vector & ACT_IS_HEALER ) strcat(buf, " healer");
+ if (vector & ACT_IS_CHANGER ) strcat(buf, " changer");
+ if (vector & ACT_GAIN ) strcat(buf, " skill_train");
+ if (vector & ACT_UPDATE_ALWAYS ) strcat(buf, " update_always");
}
else
{
strcat(buf," player");
- if (act_flags & PLR_AUTOASSIST ) strcat(buf, " autoassist");
- if (act_flags & PLR_AUTOEXIT ) strcat(buf, " autoexit");
- if (act_flags & PLR_AUTOLOOT ) strcat(buf, " autoloot");
- if (act_flags & PLR_AUTOSAC ) strcat(buf, " autosac");
- if (act_flags & PLR_AUTOGOLD ) strcat(buf, " autogold");
- if (act_flags & PLR_AUTOSPLIT ) strcat(buf, " autosplit");
- if (act_flags & PLR_HOLYLIGHT ) strcat(buf, " holy_light");
- if (act_flags & PLR_CANLOOT ) strcat(buf, " loot_corpse");
- if (act_flags & PLR_NOSUMMON ) strcat(buf, " no_summon");
- if (act_flags & PLR_NOFOLLOW ) strcat(buf, " no_follow");
- if (act_flags & PLR_FREEZE ) strcat(buf, " frozen");
- if (act_flags & PLR_THIEF ) strcat(buf, " thief");
- if (act_flags & PLR_KILLER ) strcat(buf, " killer");
+ if (vector & PLR_AUTOASSIST ) strcat(buf, " autoassist");
+ if (vector & PLR_AUTOEXIT ) strcat(buf, " autoexit");
+ if (vector & PLR_AUTOLOOT ) strcat(buf, " autoloot");
+ if (vector & PLR_AUTOSAC ) strcat(buf, " autosac");
+ if (vector & PLR_AUTOGOLD ) strcat(buf, " autogold");
+ if (vector & PLR_AUTOSPLIT ) strcat(buf, " autosplit");
+ if (vector & PLR_HOLYLIGHT ) strcat(buf, " holy_light");
+ if (vector & PLR_CANLOOT ) strcat(buf, " loot_corpse");
+ if (vector & PLR_NOSUMMON ) strcat(buf, " no_summon");
+ if (vector & PLR_NOFOLLOW ) strcat(buf, " no_follow");
+ if (vector & PLR_FREEZE ) strcat(buf, " frozen");
+ if (vector & PLR_THIEF ) strcat(buf, " thief");
+ if (vector & PLR_KILLER ) strcat(buf, " killer");
}
- return (char *)(( buf[0] != '\0' ) ? buf+1 : "none");
+ if ( !*buf )
+ strcat( buf, " none" );
+
+ return (char *)(buf+1);
}
-char *comm_bit_name(int comm_flags)
+char *comm_bit_name(int vector)
{
static char buf[512];
buf[0] = '\0';
+ if (vector & COMM_QUIET ) strcat(buf, " quiet");
+ if (vector & COMM_DEAF ) strcat(buf, " deaf");
+ if (vector & COMM_NOWIZ ) strcat(buf, " no_wiz");
+ if (vector & COMM_NOAUCTION ) strcat(buf, " no_auction");
+ if (vector & COMM_NOGOSSIP ) strcat(buf, " no_gossip");
+ if (vector & COMM_NOQUESTION ) strcat(buf, " no_question");
+ if (vector & COMM_NOMUSIC ) strcat(buf, " no_music");
+ if (vector & COMM_NOQUOTE ) strcat(buf, " no_quote");
+ if (vector & COMM_COMPACT ) strcat(buf, " compact");
+ if (vector & COMM_BRIEF ) strcat(buf, " brief");
+ if (vector & COMM_PROMPT ) strcat(buf, " prompt");
+ if (vector & COMM_COMBINE ) strcat(buf, " combine");
+ if (vector & COMM_NOEMOTE ) strcat(buf, " no_emote");
+ if (vector & COMM_NOSHOUT ) strcat(buf, " no_shout");
+ if (vector & COMM_NOTELL ) strcat(buf, " no_tell");
+ if (vector & COMM_NOCHANNELS ) strcat(buf, " no_channels");
+ if ( !*buf )
+ strcat( buf, " none" );
- if (comm_flags & COMM_QUIET ) strcat(buf, " quiet");
- if (comm_flags & COMM_DEAF ) strcat(buf, " deaf");
- if (comm_flags & COMM_NOWIZ ) strcat(buf, " no_wiz");
- if (comm_flags & COMM_NOAUCTION ) strcat(buf, " no_auction");
- if (comm_flags & COMM_NOGOSSIP ) strcat(buf, " no_gossip");
- if (comm_flags & COMM_NOQUESTION ) strcat(buf, " no_question");
- if (comm_flags & COMM_NOMUSIC ) strcat(buf, " no_music");
- if (comm_flags & COMM_NOQUOTE ) strcat(buf, " no_quote");
- if (comm_flags & COMM_COMPACT ) strcat(buf, " compact");
- if (comm_flags & COMM_BRIEF ) strcat(buf, " brief");
- if (comm_flags & COMM_PROMPT ) strcat(buf, " prompt");
- if (comm_flags & COMM_COMBINE ) strcat(buf, " combine");
- if (comm_flags & COMM_NOEMOTE ) strcat(buf, " no_emote");
- if (comm_flags & COMM_NOSHOUT ) strcat(buf, " no_shout");
- if (comm_flags & COMM_NOTELL ) strcat(buf, " no_tell");
- if (comm_flags & COMM_NOCHANNELS ) strcat(buf, " no_channels");
-
-
- return (char *)(( buf[0] != '\0' ) ? buf+1 : "none");
+ return (char *)(buf+1);
}
-char *imm_bit_name(int imm_flags)
+char *imm_bit_name(int vector)
{
static char buf[512];
buf[0] = '\0';
+ if (vector & IMM_SUMMON ) strcat(buf, " summon");
+ if (vector & IMM_CHARM ) strcat(buf, " charm");
+ if (vector & IMM_MAGIC ) strcat(buf, " magic");
+ if (vector & IMM_WEAPON ) strcat(buf, " weapon");
+ if (vector & IMM_BASH ) strcat(buf, " blunt");
+ if (vector & IMM_PIERCE ) strcat(buf, " piercing");
+ if (vector & IMM_SLASH ) strcat(buf, " slashing");
+ if (vector & IMM_FIRE ) strcat(buf, " fire");
+ if (vector & IMM_COLD ) strcat(buf, " cold");
+ if (vector & IMM_LIGHTNING ) strcat(buf, " lightning");
+ if (vector & IMM_ACID ) strcat(buf, " acid");
+ if (vector & IMM_POISON ) strcat(buf, " poison");
+ if (vector & IMM_NEGATIVE ) strcat(buf, " negative");
+ if (vector & IMM_HOLY ) strcat(buf, " holy");
+ if (vector & IMM_ENERGY ) strcat(buf, " energy");
+ if (vector & IMM_MENTAL ) strcat(buf, " mental");
+ if (vector & IMM_DISEASE ) strcat(buf, " disease");
+ if (vector & IMM_DROWNING ) strcat(buf, " drowning");
+ if (vector & IMM_LIGHT ) strcat(buf, " light");
+ if (vector & VULN_IRON ) strcat(buf, " iron");
+ if (vector & VULN_WOOD ) strcat(buf, " wood");
+ if (vector & VULN_SILVER ) strcat(buf, " silver");
+ if ( !*buf )
+ strcat( buf, " none" );
- if (imm_flags & IMM_SUMMON ) strcat(buf, " summon");
- if (imm_flags & IMM_CHARM ) strcat(buf, " charm");
- if (imm_flags & IMM_MAGIC ) strcat(buf, " magic");
- if (imm_flags & IMM_WEAPON ) strcat(buf, " weapon");
- if (imm_flags & IMM_BASH ) strcat(buf, " blunt");
- if (imm_flags & IMM_PIERCE ) strcat(buf, " piercing");
- if (imm_flags & IMM_SLASH ) strcat(buf, " slashing");
- if (imm_flags & IMM_FIRE ) strcat(buf, " fire");
- if (imm_flags & IMM_COLD ) strcat(buf, " cold");
- if (imm_flags & IMM_LIGHTNING ) strcat(buf, " lightning");
- if (imm_flags & IMM_ACID ) strcat(buf, " acid");
- if (imm_flags & IMM_POISON ) strcat(buf, " poison");
- if (imm_flags & IMM_NEGATIVE ) strcat(buf, " negative");
- if (imm_flags & IMM_HOLY ) strcat(buf, " holy");
- if (imm_flags & IMM_ENERGY ) strcat(buf, " energy");
- if (imm_flags & IMM_MENTAL ) strcat(buf, " mental");
- if (imm_flags & IMM_DISEASE ) strcat(buf, " disease");
- if (imm_flags & IMM_DROWNING ) strcat(buf, " drowning");
- if (imm_flags & IMM_LIGHT ) strcat(buf, " light");
- if (imm_flags & VULN_IRON ) strcat(buf, " iron");
- if (imm_flags & VULN_WOOD ) strcat(buf, " wood");
- if (imm_flags & VULN_SILVER ) strcat(buf, " silver");
-
- return (char *)(( buf[0] != '\0' ) ? buf+1 : "none");
+ return (char *)(buf+1);
}
-char *wear_bit_name(int wear_flags)
+char *wear_bit_name(int vector)
{
static char buf[512];
buf [0] = '\0';
- if (wear_flags & ITEM_TAKE ) strcat(buf, " take");
- if (wear_flags & ITEM_WEAR_FINGER ) strcat(buf, " finger");
- if (wear_flags & ITEM_WEAR_NECK ) strcat(buf, " neck");
- if (wear_flags & ITEM_WEAR_BODY ) strcat(buf, " torso");
- if (wear_flags & ITEM_WEAR_HEAD ) strcat(buf, " head");
- if (wear_flags & ITEM_WEAR_LEGS ) strcat(buf, " legs");
- if (wear_flags & ITEM_WEAR_FEET ) strcat(buf, " feet");
- if (wear_flags & ITEM_WEAR_HANDS ) strcat(buf, " hands");
- if (wear_flags & ITEM_WEAR_ARMS ) strcat(buf, " arms");
- if (wear_flags & ITEM_WEAR_SHIELD ) strcat(buf, " shield");
- if (wear_flags & ITEM_WEAR_ABOUT ) strcat(buf, " body");
- if (wear_flags & ITEM_WEAR_WAIST ) strcat(buf, " waist");
- if (wear_flags & ITEM_WEAR_WRIST ) strcat(buf, " wrist");
- if (wear_flags & ITEM_WIELD ) strcat(buf, " wield");
- if (wear_flags & ITEM_HOLD ) strcat(buf, " hold");
- if (wear_flags & ITEM_NO_SAC ) strcat(buf, " nosac");
- if (wear_flags & ITEM_WEAR_FLOAT ) strcat(buf, " float");
+ if (vector & ITEM_TAKE ) strcat(buf, " take");
+ if (vector & ITEM_WEAR_FINGER ) strcat(buf, " finger");
+ if (vector & ITEM_WEAR_NECK ) strcat(buf, " neck");
+ if (vector & ITEM_WEAR_BODY ) strcat(buf, " torso");
+ if (vector & ITEM_WEAR_HEAD ) strcat(buf, " head");
+ if (vector & ITEM_WEAR_LEGS ) strcat(buf, " legs");
+ if (vector & ITEM_WEAR_FEET ) strcat(buf, " feet");
+ if (vector & ITEM_WEAR_HANDS ) strcat(buf, " hands");
+ if (vector & ITEM_WEAR_ARMS ) strcat(buf, " arms");
+ if (vector & ITEM_WEAR_SHIELD ) strcat(buf, " shield");
+ if (vector & ITEM_WEAR_ABOUT ) strcat(buf, " body");
+ if (vector & ITEM_WEAR_WAIST ) strcat(buf, " waist");
+ if (vector & ITEM_WEAR_WRIST ) strcat(buf, " wrist");
+ if (vector & ITEM_WIELD ) strcat(buf, " wield");
+ if (vector & ITEM_HOLD ) strcat(buf, " hold");
+ if (vector & ITEM_NO_SAC ) strcat(buf, " nosac");
+ if (vector & ITEM_WEAR_FLOAT ) strcat(buf, " float");
+ if ( !*buf )
+ strcat( buf, " none" );
- return (char *)(( buf[0] != '\0' ) ? buf+1 : "none");
+ return (char *)(buf+1);
}
-char *form_bit_name(int form_flags)
+char *form_bit_name(int vector)
{
static char buf[512];
buf[0] = '\0';
- if (form_flags & FORM_POISON ) strcat(buf, " poison");
- else if (form_flags & FORM_EDIBLE ) strcat(buf, " edible");
- if (form_flags & FORM_MAGICAL ) strcat(buf, " magical");
- if (form_flags & FORM_INSTANT_DECAY ) strcat(buf, " instant_rot");
- if (form_flags & FORM_OTHER ) strcat(buf, " other");
- if (form_flags & FORM_ANIMAL ) strcat(buf, " animal");
- if (form_flags & FORM_SENTIENT ) strcat(buf, " sentient");
- if (form_flags & FORM_UNDEAD ) strcat(buf, " undead");
- if (form_flags & FORM_CONSTRUCT ) strcat(buf, " construct");
- if (form_flags & FORM_MIST ) strcat(buf, " mist");
- if (form_flags & FORM_INTANGIBLE ) strcat(buf, " intangible");
- if (form_flags & FORM_BIPED ) strcat(buf, " biped");
- if (form_flags & FORM_CENTAUR ) strcat(buf, " centaur");
- if (form_flags & FORM_INSECT ) strcat(buf, " insect");
- if (form_flags & FORM_SPIDER ) strcat(buf, " spider");
- if (form_flags & FORM_CRUSTACEAN ) strcat(buf, " crustacean");
- if (form_flags & FORM_WORM ) strcat(buf, " worm");
- if (form_flags & FORM_BLOB ) strcat(buf, " blob");
- if (form_flags & FORM_MAMMAL ) strcat(buf, " mammal");
- if (form_flags & FORM_BIRD ) strcat(buf, " bird");
- if (form_flags & FORM_REPTILE ) strcat(buf, " reptile");
- if (form_flags & FORM_SNAKE ) strcat(buf, " snake");
- if (form_flags & FORM_DRAGON ) strcat(buf, " dragon");
- if (form_flags & FORM_AMPHIBIAN ) strcat(buf, " amphibian");
- if (form_flags & FORM_FISH ) strcat(buf, " fish");
- if (form_flags & FORM_COLD_BLOOD ) strcat(buf, " cold_blooded");
+ if (vector & FORM_POISON ) strcat(buf, " poison");
+ else if (vector & FORM_EDIBLE ) strcat(buf, " edible");
+ if (vector & FORM_MAGICAL ) strcat(buf, " magical");
+ if (vector & FORM_INSTANT_DECAY ) strcat(buf, " instant_rot");
+ if (vector & FORM_OTHER ) strcat(buf, " other");
+ if (vector & FORM_ANIMAL ) strcat(buf, " animal");
+ if (vector & FORM_SENTIENT ) strcat(buf, " sentient");
+ if (vector & FORM_UNDEAD ) strcat(buf, " undead");
+ if (vector & FORM_CONSTRUCT ) strcat(buf, " construct");
+ if (vector & FORM_MIST ) strcat(buf, " mist");
+ if (vector & FORM_INTANGIBLE ) strcat(buf, " intangible");
+ if (vector & FORM_BIPED ) strcat(buf, " biped");
+ if (vector & FORM_CENTAUR ) strcat(buf, " centaur");
+ if (vector & FORM_INSECT ) strcat(buf, " insect");
+ if (vector & FORM_SPIDER ) strcat(buf, " spider");
+ if (vector & FORM_CRUSTACEAN ) strcat(buf, " crustacean");
+ if (vector & FORM_WORM ) strcat(buf, " worm");
+ if (vector & FORM_BLOB ) strcat(buf, " blob");
+ if (vector & FORM_MAMMAL ) strcat(buf, " mammal");
+ if (vector & FORM_BIRD ) strcat(buf, " bird");
+ if (vector & FORM_REPTILE ) strcat(buf, " reptile");
+ if (vector & FORM_SNAKE ) strcat(buf, " snake");
+ if (vector & FORM_DRAGON ) strcat(buf, " dragon");
+ if (vector & FORM_AMPHIBIAN ) strcat(buf, " amphibian");
+ if (vector & FORM_FISH ) strcat(buf, " fish");
+ if (vector & FORM_COLD_BLOOD ) strcat(buf, " cold_blooded");
+ if ( !*buf )
+ strcat( buf, " none" );
- return (char *)(( buf[0] != '\0' ) ? buf+1 : "none");
+ return (char *)(buf+1);
}
-char *part_bit_name(int part_flags)
+char *part_bit_name(int vector)
{
static char buf[512];
buf[0] = '\0';
- if (part_flags & PART_HEAD ) strcat(buf, " head");
- if (part_flags & PART_ARMS ) strcat(buf, " arms");
- if (part_flags & PART_LEGS ) strcat(buf, " legs");
- if (part_flags & PART_HEART ) strcat(buf, " heart");
- if (part_flags & PART_BRAINS ) strcat(buf, " brains");
- if (part_flags & PART_GUTS ) strcat(buf, " guts");
- if (part_flags & PART_HANDS ) strcat(buf, " hands");
- if (part_flags & PART_FEET ) strcat(buf, " feet");
- if (part_flags & PART_FINGERS ) strcat(buf, " fingers");
- if (part_flags & PART_EAR ) strcat(buf, " ears");
- if (part_flags & PART_EYE ) strcat(buf, " eyes");
- if (part_flags & PART_LONG_TONGUE ) strcat(buf, " long_tongue");
- if (part_flags & PART_EYESTALKS ) strcat(buf, " eyestalks");
- if (part_flags & PART_TENTACLES ) strcat(buf, " tentacles");
- if (part_flags & PART_FINS ) strcat(buf, " fins");
- if (part_flags & PART_WINGS ) strcat(buf, " wings");
- if (part_flags & PART_TAIL ) strcat(buf, " tail");
- if (part_flags & PART_CLAWS ) strcat(buf, " claws");
- if (part_flags & PART_FANGS ) strcat(buf, " fangs");
- if (part_flags & PART_HORNS ) strcat(buf, " horns");
- if (part_flags & PART_SCALES ) strcat(buf, " scales");
+ if (vector & PART_HEAD ) strcat(buf, " head");
+ if (vector & PART_ARMS ) strcat(buf, " arms");
+ if (vector & PART_LEGS ) strcat(buf, " legs");
+ if (vector & PART_HEART ) strcat(buf, " heart");
+ if (vector & PART_BRAINS ) strcat(buf, " brains");
+ if (vector & PART_GUTS ) strcat(buf, " guts");
+ if (vector & PART_HANDS ) strcat(buf, " hands");
+ if (vector & PART_FEET ) strcat(buf, " feet");
+ if (vector & PART_FINGERS ) strcat(buf, " fingers");
+ if (vector & PART_EAR ) strcat(buf, " ears");
+ if (vector & PART_EYE ) strcat(buf, " eyes");
+ if (vector & PART_LONG_TONGUE ) strcat(buf, " long_tongue");
+ if (vector & PART_EYESTALKS ) strcat(buf, " eyestalks");
+ if (vector & PART_TENTACLES ) strcat(buf, " tentacles");
+ if (vector & PART_FINS ) strcat(buf, " fins");
+ if (vector & PART_WINGS ) strcat(buf, " wings");
+ if (vector & PART_TAIL ) strcat(buf, " tail");
+ if (vector & PART_CLAWS ) strcat(buf, " claws");
+ if (vector & PART_FANGS ) strcat(buf, " fangs");
+ if (vector & PART_HORNS ) strcat(buf, " horns");
+ if (vector & PART_SCALES ) strcat(buf, " scales");
+ if ( !*buf )
+ strcat( buf, " none" );
- return (char *) (( buf[0] != '\0' ) ? buf+1 : "none");
+ return (char *)(buf+1);
}
-char *weapon_bit_name(int weapon_flags)
+char *weapon_bit_name(int vector)
{
static char buf[512];
buf[0] = '\0';
- if (weapon_flags & WEAPON_FLAMING ) strcat(buf, " flaming");
- if (weapon_flags & WEAPON_FROST ) strcat(buf, " frost");
- if (weapon_flags & WEAPON_VAMPIRIC ) strcat(buf, " vampiric");
- if (weapon_flags & WEAPON_SHARP ) strcat(buf, " sharp");
- if (weapon_flags & WEAPON_VORPAL ) strcat(buf, " vorpal");
- if (weapon_flags & WEAPON_TWO_HANDS ) strcat(buf, " two-handed");
- if (weapon_flags & WEAPON_SHOCKING ) strcat(buf, " shocking");
- if (weapon_flags & WEAPON_POISON ) strcat(buf, " poison");
+ if (vector & WEAPON_FLAMING ) strcat(buf, " flaming");
+ if (vector & WEAPON_FROST ) strcat(buf, " frost");
+ if (vector & WEAPON_VAMPIRIC ) strcat(buf, " vampiric");
+ if (vector & WEAPON_SHARP ) strcat(buf, " sharp");
+ if (vector & WEAPON_VORPAL ) strcat(buf, " vorpal");
+ if (vector & WEAPON_TWO_HANDS ) strcat(buf, " two-handed");
+ if (vector & WEAPON_SHOCKING ) strcat(buf, " shocking");
+ if (vector & WEAPON_POISON ) strcat(buf, " poison");
+ if ( !*buf )
+ strcat( buf, " none" );
- return (char *)(( buf[0] != '\0' ) ? buf+1 : "none");
+ return (char *)(buf+1);
}
-char *cont_bit_name( int cont_flags)
+char *cont_bit_name( int vector)
{
static char buf[512];
buf[0] = '\0';
+ if (vector & CONT_CLOSEABLE ) strcat(buf, " closable");
+ if (vector & CONT_PICKPROOF ) strcat(buf, " pickproof");
+ if (vector & CONT_CLOSED ) strcat(buf, " closed");
+ if (vector & CONT_LOCKED ) strcat(buf, " locked");
+ if ( !*buf )
+ strcat( buf, " none" );
- if (cont_flags & CONT_CLOSEABLE ) strcat(buf, " closable");
- if (cont_flags & CONT_PICKPROOF ) strcat(buf, " pickproof");
- if (cont_flags & CONT_CLOSED ) strcat(buf, " closed");
- if (cont_flags & CONT_LOCKED ) strcat(buf, " locked");
-
- return (char *)((buf[0] != '\0' ) ? buf+1 : "none");
+ return (char *)(buf+1);
}
-char *off_bit_name(int off_flags)
+char *off_bit_name(int vector)
{
static char buf[512];
buf[0] = '\0';
+ if (vector & OFF_AREA_ATTACK ) strcat(buf, " area attack");
+ if (vector & OFF_BACKSTAB ) strcat(buf, " backstab");
+ if (vector & OFF_BASH ) strcat(buf, " bash");
+ if (vector & OFF_BERSERK ) strcat(buf, " berserk");
+ if (vector & OFF_DISARM ) strcat(buf, " disarm");
+ if (vector & OFF_DODGE ) strcat(buf, " dodge");
+ if (vector & OFF_FADE ) strcat(buf, " fade");
+ if (vector & OFF_FAST ) strcat(buf, " fast");
+ if (vector & OFF_KICK ) strcat(buf, " kick");
+ if (vector & OFF_KICK_DIRT ) strcat(buf, " kick_dirt");
+ if (vector & OFF_PARRY ) strcat(buf, " parry");
+ if (vector & OFF_RESCUE ) strcat(buf, " rescue");
+ if (vector & OFF_TAIL ) strcat(buf, " tail");
+ if (vector & OFF_TRIP ) strcat(buf, " trip");
+ if (vector & OFF_CRUSH ) strcat(buf, " crush");
+ if (vector & ASSIST_ALL ) strcat(buf, " assist_all");
+ if (vector & ASSIST_ALIGN ) strcat(buf, " assist_align");
+ if (vector & ASSIST_RACE ) strcat(buf, " assist_race");
+ if (vector & ASSIST_PLAYERS ) strcat(buf, " assist_players");
+ if (vector & ASSIST_GUARD ) strcat(buf, " assist_guard");
+ if (vector & ASSIST_VNUM ) strcat(buf, " assist_vnum");
+ if ( !*buf )
+ strcat( buf, " none" );
- if (off_flags & OFF_AREA_ATTACK ) strcat(buf, " area attack");
- if (off_flags & OFF_BACKSTAB ) strcat(buf, " backstab");
- if (off_flags & OFF_BASH ) strcat(buf, " bash");
- if (off_flags & OFF_BERSERK ) strcat(buf, " berserk");
- if (off_flags & OFF_DISARM ) strcat(buf, " disarm");
- if (off_flags & OFF_DODGE ) strcat(buf, " dodge");
- if (off_flags & OFF_FADE ) strcat(buf, " fade");
- if (off_flags & OFF_FAST ) strcat(buf, " fast");
- if (off_flags & OFF_KICK ) strcat(buf, " kick");
- if (off_flags & OFF_KICK_DIRT ) strcat(buf, " kick_dirt");
- if (off_flags & OFF_PARRY ) strcat(buf, " parry");
- if (off_flags & OFF_RESCUE ) strcat(buf, " rescue");
- if (off_flags & OFF_TAIL ) strcat(buf, " tail");
- if (off_flags & OFF_TRIP ) strcat(buf, " trip");
- if (off_flags & OFF_CRUSH ) strcat(buf, " crush");
- if (off_flags & ASSIST_ALL ) strcat(buf, " assist_all");
- if (off_flags & ASSIST_ALIGN ) strcat(buf, " assist_align");
- if (off_flags & ASSIST_RACE ) strcat(buf, " assist_race");
- if (off_flags & ASSIST_PLAYERS ) strcat(buf, " assist_players");
- if (off_flags & ASSIST_GUARD ) strcat(buf, " assist_guard");
- if (off_flags & ASSIST_VNUM ) strcat(buf, " assist_vnum");
-
- return (char *)(( buf[0] != '\0' ) ? buf+1 : "none");
+ return (char *)(buf+1);
}
diff -abPru Rom24/src/interp.c fixup_081006/src/interp.c
--- Rom24/src/interp.c 1998-05-25 03:12:59.000000000 -0400
+++ fixup_081006/src/interp.c 2008-10-06 11:10:14.000000000 -0400
@@ -741,6 +741,36 @@
return argument;
}
+const char *get_argument( const char *argument, char *arg_first )
+{
+ char cEnd;
+
+ while ( isspace(*argument) )
+ argument++;
+
+ cEnd = ' ';
+ if ( *argument == '\'' || *argument == '"' )
+ cEnd = *argument++;
+
+ while ( *argument != '\0' )
+ {
+ if ( *argument == cEnd )
+ {
+ argument++;
+ break;
+ }
+ *arg_first = LOWER(*argument);
+ arg_first++;
+ argument++;
+ }
+ *arg_first = '\0';
+
+ while ( isspace(*argument) )
+ argument++;
+
+ return argument;
+}
+
/*
* Contributed by Alander.
*/
diff -abPru Rom24/src/merc.h fixup_081006/src/merc.h
--- Rom24/src/merc.h 2007-03-05 17:24:55.000000000 -0500
+++ fixup_081006/src/merc.h 2008-10-06 14:33:12.000000000 -0400
@@ -43,7 +43,6 @@
#endif
-
/*
* Short scalar types.
* Diavolo reports AIX compiler has bugs with short types.
@@ -68,6 +67,13 @@
#endif
+/*
+ * Accomodate both gcc and g++
+ */
+#if !defined __cplusplus
+typedef unsigned char bool;
+#endif
+
/*
* Structure types.
@@ -1902,6 +1908,7 @@
[MAX_LEVEL+1]
[2];
extern char * const dir_name [];
+extern char * const dir_abbrev[];
extern const sh_int rev_dir [];
@@ -2124,7 +2131,7 @@
OD * create_object args( ( OBJ_INDEX_DATA *pObjIndex, int level ) );
void clone_object args( ( OBJ_DATA *parent, OBJ_DATA *clone ) );
void clear_char args( ( CHAR_DATA *ch ) );
-char * get_extra_descr args( ( const char *name, EXTRA_DESCR_DATA *ed ) );
+char * get_extra_descr args( ( char *name, EXTRA_DESCR_DATA *ed ) );
MID * get_mob_index args( ( int vnum ) );
OID * get_obj_index args( ( int vnum ) );
RID * get_room_index args( ( int vnum ) );
@@ -2139,7 +2146,7 @@
void * alloc_mem args( ( int sMem ) );
void * alloc_perm args( ( int sMem ) );
void free_mem args( ( void *pMem, int sMem ) );
-char * str_dup args( ( const char *str ) );
+char * str_dup args( ( char *str ) );
void free_string args( ( char *pstr ) );
int number_fuzzy args( ( int number ) );
int number_range args( ( int from, int to ) );
@@ -2191,7 +2198,7 @@
int liq_lookup args( ( const char *name) );
int material_lookup args( ( const char *name) );
int weapon_lookup args( ( const char *name) );
-int weapon_type args( ( const char *name) );
+int weapon_type_lookup args( ( const char *name) );
char *weapon_name args( ( int weapon_Type) );
int item_lookup args( ( const char *name) );
char *item_name args( ( int item_type) );
@@ -2202,13 +2209,13 @@
bool is_clan args( (CHAR_DATA *ch) );
bool is_same_clan args( (CHAR_DATA *ch, CHAR_DATA *victim));
bool is_old_mob args ( (CHAR_DATA *ch) );
-int get_skill args( ( CHAR_DATA *ch, int sn ) );
+int get_skill args( ( const CHAR_DATA *ch, int sn ) );
int get_weapon_sn args( ( CHAR_DATA *ch ) );
int get_weapon_skill args(( CHAR_DATA *ch, int sn ) );
int get_age args( ( CHAR_DATA *ch ) );
void reset_char args( ( CHAR_DATA *ch ) );
-int get_trust args( ( CHAR_DATA *ch ) );
-int get_curr_stat args( ( CHAR_DATA *ch, int stat ) );
+int get_trust args( ( const CHAR_DATA *ch ) );
+int get_curr_stat args( ( const CHAR_DATA *ch, int stat ) );
int get_max_train args( ( CHAR_DATA *ch, int stat ) );
int can_carry_n args( ( CHAR_DATA *ch ) );
int can_carry_w args( ( CHAR_DATA *ch ) );
@@ -2253,25 +2260,26 @@
bool room_is_dark args( ( ROOM_INDEX_DATA *pRoomIndex ) );
bool is_room_owner args( ( CHAR_DATA *ch, ROOM_INDEX_DATA *room) );
bool room_is_private args( ( ROOM_INDEX_DATA *pRoomIndex ) );
-bool can_see args( ( CHAR_DATA *ch, CHAR_DATA *victim ) );
-bool can_see_obj args( ( CHAR_DATA *ch, OBJ_DATA *obj ) );
+bool can_see args( ( const CHAR_DATA *ch, const CHAR_DATA *victim ) );
+bool can_see_obj args( ( const CHAR_DATA *ch, const OBJ_DATA *obj ) );
bool can_see_room args( ( CHAR_DATA *ch, ROOM_INDEX_DATA *pRoomIndex) );
bool can_drop_obj args( ( CHAR_DATA *ch, OBJ_DATA *obj ) );
char * affect_loc_name args( ( int location ) );
char * affect_bit_name args( ( int vector ) );
-char * extra_bit_name args( ( int extra_flags ) );
-char * wear_bit_name args( ( int wear_flags ) );
-char * act_bit_name args( ( int act_flags ) );
-char * off_bit_name args( ( int off_flags ) );
-char * imm_bit_name args( ( int imm_flags ) );
-char * form_bit_name args( ( int form_flags ) );
-char * part_bit_name args( ( int part_flags ) );
-char * weapon_bit_name args( ( int weapon_flags ) );
-char * comm_bit_name args( ( int comm_flags ) );
-char * cont_bit_name args( ( int cont_flags) );
+char * extra_bit_name args( ( int vector ) );
+char * wear_bit_name args( ( int vector ) );
+char * act_bit_name args( ( int vector ) );
+char * off_bit_name args( ( int vector ) );
+char * imm_bit_name args( ( int vector ) );
+char * form_bit_name args( ( int vector ) );
+char * part_bit_name args( ( int vector ) );
+char * weapon_bit_name args( ( int vector ) );
+char * comm_bit_name args( ( int vector ) );
+char * cont_bit_name args( ( int vector ) );
/* interp.c */
+const char *get_argument args( ( const char *argument, char *arg_first ) );
void interpret args( ( CHAR_DATA *ch, char *argument ) );
bool is_number args( ( char *arg ) );
int number_argument args( ( char *argument, char *arg ) );
diff -abPru Rom24/src/save.c fixup_081006/src/save.c
--- Rom24/src/save.c 2007-03-05 17:09:51.000000000 -0500
+++ fixup_081006/src/save.c 2008-10-03 23:18:40.000000000 -0400
@@ -728,6 +728,7 @@
void fread_char( CHAR_DATA *ch, FILE *fp )
{
+ static char end[MAX_INPUT_LENGTH] = "End";
char buf[MAX_STRING_LENGTH];
char *word;
bool fMatch;
@@ -740,7 +741,7 @@
for ( ; ; )
{
- word = (char *) (feof( fp ) ? "End" : fread_word( fp ) );
+ word = (char *) (feof( fp ) ? end : fread_word( fp ) );
fMatch = FALSE;
switch ( UPPER(word[0]) )
@@ -1130,6 +1131,7 @@
/* load a pet from the forgotten reaches */
void fread_pet( CHAR_DATA *ch, FILE *fp )
{
+ static char end[MAX_INPUT_LENGTH] = "END";
char *word;
CHAR_DATA *pet;
bool fMatch;
@@ -1137,7 +1139,7 @@
int percent;
/* first entry had BETTER be the vnum or we barf */
- word = (char *)(feof(fp) ? "END" : fread_word(fp));
+ word = (char *)(feof(fp) ? end : fread_word(fp));
if (!str_cmp(word,"Vnum"))
{
int vnum;
@@ -1159,7 +1161,7 @@
for ( ; ; )
{
- word = (char *)(feof(fp) ? "END" : fread_word(fp));
+ word = (char *)(feof(fp) ? end : fread_word(fp));
fMatch = FALSE;
switch (UPPER(word[0]))
@@ -1345,6 +1347,7 @@
void fread_obj( CHAR_DATA *ch, FILE *fp )
{
+ static char end[MAX_INPUT_LENGTH] = "End";
OBJ_DATA *obj;
char *word;
int iNest;
@@ -1361,7 +1364,7 @@
new_format = FALSE;
make_new = FALSE;
- word = (char *)(feof( fp ) ? "End" : fread_word( fp ));
+ word = (char *)(feof( fp ) ? end : fread_word( fp ));
if (!str_cmp(word,"Vnum" ))
{
int vnum;
@@ -1397,7 +1400,7 @@
if (first)
first = FALSE;
else
- word = (char *)(feof( fp ) ? "End" : fread_word( fp ));
+ word = (char *)(feof( fp ) ? end : fread_word( fp ));
fMatch = FALSE;
switch ( UPPER(word[0]) )