psyced/world/net/include/status.h

74 lines
2.8 KiB
C

#ifndef _INCLUDE_STATUS_H
#define _INCLUDE_STATUS_H
#include <storage.h>
#define SNICKER (objectp(source) ? vars["_nick"] : source)
// 'verbosity' is an internal selection scheme to select aspects of a place
// status. the place status however should probably become its description
// as provided by /x or /surf, and the description data should in long term
// be multicast to all cslaves. thus all we really need is a way to ask our
// local cslave for the data we want to see. that's why we come full circle
// back to the current implementation of verbosity: since it is a local
// operation, it is not useful to define a generic key selector protocol
// for _request_description, but rather act out of current status of things
// and maybe mc extensions, which is what 'verbosity' does.
// place status flags
#define VERBOSITY_MEMBERS 1
#define VERBOSITY_TOPIC 2
#define VERBOSITY_HISTORY 4
#define VERBOSITY_UNIFORMS 8
#define VERBOSITY_NEWSFEED 16
#define VERBOSITY_MASQUERADE 32
#define VERBOSITY_FILTER 64
#define VERBOSITY_LOGGING 128
#define VERBOSITY_PUBLICIZED 256
// user status flags
#define VERBOSITY_FRIENDS 512
#define VERBOSITY_FRIENDS_DETAILS 1024 // idle times of friends
#define VERBOSITY_PLACE 2048 // info about current place
#define VERBOSITY_EVENTS 4096 // last invitation etc.
#define VERBOSITY_PRESENCE 8192 // showMyPresence(0)
#define VERBOSITY_PRESENCE_DETAILS 16384 // showMyPresence(1)
// special case. never use in masks etc.
#define VERBOSITY_AUTOMATIC 65536 // NOT in ALL!
#define VERBOSITY_MEDIUM VERBOSITY_TERSE | VERBOSITY_TOPIC
#define VERBOSITY_ALL (32768-1)
// masks for various occasions
#if 1 //def ENTER_MEMBERS
# define VERBOSITY_TERSE 0
# define VERBOSITY_BIG VERBOSITY_MEDIUM
#else
# define VERBOSITY_TERSE VERBOSITY_MEMBERS
# define VERBOSITY_BIG VERBOSITY_MEDIUM | VERBOSITY_HISTORY
#endif
// each occasion has its mask or selection
// these are for places
#define VERBOSITY_REQUEST_MEMBERS VERBOSITY_MEMBERS
#define VERBOSITY_ENTER_AUTOMATIC VERBOSITY_TERSE
#define VERBOSITY_ENTER VERBOSITY_BIG
#define VERBOSITY_STATUS_TERSE VERBOSITY_TERSE
#define VERBOSITY_STATUS VERBOSITY_ALL - VERBOSITY_HISTORY
#define VERBOSITY_IRCGATE_LOGON VERBOSITY_TERSE | VERBOSITY_UNIFORMS
#define VERBOSITY_IRCGATE_USER VERBOSITY_ALL
// automatic user status in telnet & mud interfaces
#define VERBOSITY_STATUS_AUTOMATIC VERBOSITY_PRESENCE | VERBOSITY_FRIENDS | VERBOSITY_MEMBERS
// these come from usercmd.i
#define VERBOSITY_COMMAND_STATUS VERBOSITY_ALL
#define VERBOSITY_COMMAND_STATUS_TERSE VERBOSITY_STATUS_AUTOMATIC
#define VERBOSITY_COMMAND_STATUS_INFO VERBOSITY_PRESENCE_DETAILS | VERBOSITY_FRIENDS_DETAILS | VERBOSITY_EVENTS
#define VERBOSITY_COMMAND_FRIENDS VERBOSITY_FRIENDS_DETAILS
// currently not necessary:
//efine VERBOSITY_COMMAND_PRESENCE VERBOSITY_PRESENCE_DETAILS
//efine VERBOSITY_COMMAND_MEMBERS VERBOSITY_MEMBERS
#endif