diff --git a/mux/src/levels.cpp b/mux/src/levels.cpp index 615b9fea1..469ef5f39 100644 --- a/mux/src/levels.cpp +++ b/mux/src/levels.cpp @@ -502,13 +502,14 @@ void did_it_rlevel ( dbref player, dbref thing, - int what, + int what, const char *def, - int owhat, + int owhat, const char *odef, - int awhat, + int awhat, + int ctrl_flags, char *args[], - int nargs + int nargs ) { char *d, *buff, *act, *charges, *bp, *str; @@ -532,7 +533,7 @@ void did_it_rlevel // Ok, if it's A_DESC, we need to check against A_IDESC. // if ( A_IDESC == what - && desclist[i] == A_DESC) + && A_DESC == desclist[i]) { d = atr_pget(thing, A_IDESC, &aowner, &aflags); } @@ -540,6 +541,7 @@ void did_it_rlevel { d = atr_pget(thing, desclist[i], &aowner, &aflags); } + if (*d) { // No need for the 'def' message. @@ -573,6 +575,7 @@ void did_it_rlevel } free_lbuf(d); } + if (!found_a_desc) { // No desc found... try the default desc (again). @@ -671,15 +674,29 @@ void did_it_rlevel if (*buff) { - notify_except2_rlevel2(loc, player, player, thing, - tprintf("%s %s", Name(player), buff)); + if (aflags & AF_NONAME) + { + notify_except2_rlevel2(loc, player, player, thing, buff); + } + else + { + notify_except2_rlevel2(loc, player, player, thing, + tprintf("%s %s", Name(player), buff)); + } } free_lbuf(buff); } else if (odef) { - notify_except2_rlevel2(loc, player, player, thing, - tprintf("%s %s", Name(player), odef)); + if (ctrl_flags & VERB_NONAME) + { + notify_except2_rlevel2(loc, player, player, thing, odef); + } + else + { + notify_except2_rlevel2(loc, player, player, thing, + tprintf("%s %s", Name(player), odef)); + } } free_lbuf(d); } @@ -688,8 +705,15 @@ void did_it_rlevel && Has_location(player) && Good_obj(loc = Location(player))) { - notify_except2_rlevel2(loc, player, player, thing, - tprintf("%s %s", Name(player), odef)); + if (ctrl_flags & VERB_NONAME) + { + notify_except2_rlevel2(loc, player, player, thing, odef); + } + else + { + notify_except2_rlevel2(loc, player, player, thing, + tprintf("%s %s", Name(player), odef)); + } } // If we preserved the state of the global registers, restore them. diff --git a/mux/src/levels.h b/mux/src/levels.h index ed5b023b6..43aa52a39 100644 --- a/mux/src/levels.h +++ b/mux/src/levels.h @@ -10,15 +10,27 @@ #define IsReal(R, T) ((R) == (T) || (RxLevel(R) & TxLevel(T))) -extern RLEVEL RxLevel(dbref); -extern RLEVEL TxLevel(dbref); -extern void notify_except_rlevel(dbref, dbref, dbref, const char *, int); -extern void notify_except2_rlevel(dbref, dbref, dbref, dbref,const char *); -extern void notify_except2_rlevel2(dbref, dbref, dbref, dbref,const char *); -extern char * rxlevel_description(dbref, dbref); -extern char * txlevel_description(dbref, dbref); -extern void decompile_rlevels(dbref, dbref, char *); -extern RLEVEL find_rlevel(char *); -extern void did_it_rlevel(dbref, dbref, int, const char *, int,const char *, int, char *[], int); +RLEVEL RxLevel(dbref); +RLEVEL TxLevel(dbref); +void notify_except_rlevel(dbref, dbref, dbref, const char *, int); +void notify_except2_rlevel(dbref, dbref, dbref, dbref,const char *); +void notify_except2_rlevel2(dbref, dbref, dbref, dbref,const char *); +char * rxlevel_description(dbref, dbref); +char * txlevel_description(dbref, dbref); +void decompile_rlevels(dbref, dbref, char *); +RLEVEL find_rlevel(char *); +void did_it_rlevel +( + dbref player, + dbref thing, + int what, + const char *def, + int owhat, + const char *odef, + int awhat, + int ctrl_flags, + char *args[], + int nargs +); -#endif /* __LEVELS_H */ +#endif // __LEVELS_H