int mesg_local_perms(dbref player, dbref perms, dbref obj) { if (OWNER(perms) == OWNER(getloc(obj))) return 1; if (isneighbor(perms, obj)) return 1; if (isneighbor(player, obj)) return 1; if (Mageperms(perms)) return 1; if (mesg_read_perms(player, perms, obj)) return 1; return 0; }
dbref mesg_dbref_read(dbref player, dbref what, dbref perms, char *buf) { dbref obj = mesg_dbref_raw(player, what, perms, buf); if (obj == UNKNOWN) return obj; if (!mesg_read_perms(player, perms, obj)) { obj = PERMDENIED; } return obj; }
dbref mesg_dbref(int descr, dbref player, dbref what, dbref perms, char *buf, int mesgtyp) { dbref obj = mesg_dbref_raw(descr, player, what, perms, buf); if (obj == UNKNOWN) return obj; if (!mesg_read_perms(player, perms, obj, mesgtyp)) { obj = PERMDENIED; } return obj; }
int mesg_local_perms(dbref player, dbref perms, dbref obj, int mesgtyp) { if (getloc(obj) != NOTHING && OWNER(perms) == OWNER(getloc(obj))) return 1; if (isneighbor(perms, obj)) return 1; if (isneighbor(player, obj)) return 1; if (mesg_read_perms(player, perms, obj, mesgtyp)) return 1; return 0; }
int mesg_proximity_perms(dbref player, dbref perms, dbref obj) { if (obj == player) return 1; if (isneighbor(player, obj)) return 1; if (isneighbor(perms, obj)) return 1; if ((getloc(obj) != NOTHING) && may_read_nowizperm(OWNER(perms), getloc(obj))) return 1; if (mesg_read_perms(player, perms, obj)) return 1; return 0; }