src/hcode/include/coolmenu_interface2.h File Reference

Go to the source code of this file.

Defines

#define MAYBESHOW
#define CMD(a)   void a (dbref player, void *data, char *buffer)
#define COMMAND_ADD(fname, letter, mod)
#define COMMAND_TOGGLE(fname, letter)
#define COMMAND_SET(fname, letter)
#define COMMANDS(bname, letter)
#define COMMANDSET(name)

Functions

static coolmenuretrieve_matching_letter (coolmenu *c, char l)
static void update_entry (dbref player, coolmenu *c, char l, int val)
static void update_entry_toggle (dbref player, coolmenu *c, char l)
static void update_entry_set (dbref player, coolmenu *c, char l, char *buffer)


Define Documentation

#define CMD (  )     void a (dbref player, void *data, char *buffer)

Definition at line 113 of file coolmenu_interface2.h.

#define COMMAND_ADD ( fname,
letter,
mod   ) 

Value:

CMD(fname) \
{ DASMAGIC; DOCHECK(!c, "Huh?"); if (buffer && (strlen(buffer) > 1 || (buffer[0] && buffer[0] != ' '))) \
{ if (atoi(buffer) > 0) \
   update_entry(player, DASMAGIC2, letter, mod*atoi(buffer)); \
 else \
   notify(player, "Invalid argument!"); \
} else update_entry(player, DASMAGIC2, letter, mod*1); }

Definition at line 116 of file coolmenu_interface2.h.

#define COMMAND_SET ( fname,
letter   ) 

Value:

CMD(fname) \
{ DASMAGIC; DOCHECK(!c, "Huh?"); if (!(buffer && (strlen(buffer) > 1 || (buffer[0] && buffer[0] != ' ')))) notify(player, "Lack argument(s)!"); \
 else update_entry_set(player, DASMAGIC2, letter, buffer); }

Definition at line 130 of file coolmenu_interface2.h.

#define COMMAND_TOGGLE ( fname,
letter   ) 

Value:

CMD(fname) \
{ DASMAGIC; DOCHECK(!c, "Huh?"); if (buffer && (strlen(buffer) > 1 || (buffer[0] && buffer[0] != ' ')))  notify(player, "Invalid argument!"); \
 else update_entry_toggle(player, DASMAGIC2, letter); }

Definition at line 125 of file coolmenu_interface2.h.

#define COMMANDS ( bname,
letter   ) 

Value:

COMMAND_ADD(bname ## _add,letter,1); \
COMMAND_ADD(bname ## _minus,letter,-1); \
COMMAND_TOGGLE(bname ## _toggle,letter); \
COMMAND_SET(bname ## _set,letter);

Definition at line 135 of file coolmenu_interface2.h.

#define COMMANDSET ( name   ) 

Value:

COMMANDS(name ## _a,'a'); \
COMMANDS(name ## _b,'b'); \
COMMANDS(name ## _c,'c'); \
COMMANDS(name ## _d,'d'); \
COMMANDS(name ## _e,'e'); \
COMMANDS(name ## _f,'f'); \
COMMANDS(name ## _g,'g'); \
COMMANDS(name ## _h,'h'); \
COMMANDS(name ## _i,'i'); \
COMMANDS(name ## _j,'j'); \
COMMANDS(name ## _k,'k'); \
COMMANDS(name ## _l,'l'); \
COMMANDS(name ## _m,'m'); \
COMMANDS(name ## _n,'n'); \
COMMANDS(name ## _o,'o'); \
COMMANDS(name ## _p,'p'); \
COMMANDS(name ## _q,'q'); \
COMMANDS(name ## _r,'r'); \
COMMANDS(name ## _s,'s'); \
COMMANDS(name ## _t,'t'); \
COMMANDS(name ## _u,'u'); \
COMMANDS(name ## _v,'v'); \
COMMANDS(name ## _w,'w'); \
COMMANDS(name ## _x,'x'); \
COMMANDS(name ## _y,'y'); \
COMMANDS(name ## _z,'z');

Definition at line 141 of file coolmenu_interface2.h.

#define MAYBESHOW

Definition at line 36 of file coolmenu_interface2.h.

Referenced by update_entry(), update_entry_set(), and update_entry_toggle().


Function Documentation

static coolmenu* retrieve_matching_letter ( coolmenu c,
char  l 
) [static]

Definition at line 15 of file coolmenu_interface2.h.

References c, coolmenu_type::letter, and coolmenu_type::next.

Referenced by update_entry(), update_entry_set(), and update_entry_toggle().

00016 {
00017     l = tolower(l);
00018     for (; c; c = c->next)
00019         if (c->letter == l)
00020             return c;
00021     return NULL;
00022 }

static void update_entry ( dbref  player,
coolmenu c,
char  l,
int  val 
) [static]

Definition at line 39 of file coolmenu_interface2.h.

References c, CM_NUMBER, DOCHECK, coolmenu_type::flags, coolmenu_type::maxvalue, MAYBESHOW, notify_printf(), retrieve_matching_letter(), coolmenu_type::text, and coolmenu_type::value.

00040 {
00041     int o;
00042     coolmenu *d = retrieve_matching_letter(c, l);
00043 
00044     DOCHECK(!d, "Invalid letter!");
00045     DOCHECK(c->flags & CM_NUMBER, "Invalid type of field!");
00046     o = d->value;
00047     d->value += val;
00048     if (d->value < 0) {
00049         val = 0 - o;
00050         d->value = 0;
00051     }
00052     if (d->value > d->maxvalue) {
00053         val = d->maxvalue - o;
00054         d->value = d->maxvalue;
00055     }
00056     DOCHECK(!val,
00057         "Uh.. You think about changing something and then don't.");
00058     if (val > 0)
00059         notify_printf(player, "%s increased by %d to %d!", d->text, val,
00060                 d->value);
00061     else
00062         notify_printf(player, "%s decreased by %d to %d!", d->text,
00063                 0 - val, d->value);
00064     DASMAGIC3;
00065     MAYBESHOW;
00066 }

static void update_entry_set ( dbref  player,
coolmenu c,
char  l,
char *  buffer 
) [static]

Definition at line 85 of file coolmenu_interface2.h.

References c, CM_NUMBER, CM_STRING, DOCHECK, coolmenu_type::flags, coolmenu_type::maxvalue, MAYBESHOW, notify_printf(), retrieve_matching_letter(), coolmenu_type::text, and coolmenu_type::value.

00087 {
00088     coolmenu *d = retrieve_matching_letter(c, l);
00089     int i;
00090 
00091     DOCHECK(!d, "Invalid letter!");
00092     DOCHECK(!(d->flags & (CM_STRING | CM_NUMBER)),
00093         "Invalid type of field!");
00094     if (d->flags & CM_STRING) {
00095         if (d->text)
00096             free((void *) d->text);
00097         d->text = strdup(buffer);
00098     } else {
00099         i = atoi(buffer);
00100         if (i > d->maxvalue)
00101             i = d->maxvalue;
00102         DOCHECK(i < 0,
00103             "You consider a negative value, and then forget about it.");
00104         notify_printf(player, "%s set to %d!", d->text, i);
00105         d->value = i;
00106     }
00107     DASMAGIC3;
00108     MAYBESHOW;
00109 }

static void update_entry_toggle ( dbref  player,
coolmenu c,
char  l 
) [static]

Definition at line 68 of file coolmenu_interface2.h.

References c, CM_TOGGLE, DOCHECK, coolmenu_type::flags, MAYBESHOW, notify_printf(), retrieve_matching_letter(), coolmenu_type::text, and coolmenu_type::value.

00069 {
00070     coolmenu *d = retrieve_matching_letter(c, l);
00071 
00072     DOCHECK(!d, "Invalid letter!");
00073     DOCHECK(!(d->flags & CM_TOGGLE), "Invalid type of field!");
00074 #ifndef REAL_SNEAKY_SET
00075     if (d->value)
00076         notify_printf(player, "%s set off!", d->text);
00077     else
00078         notify_printf(player, "%s set on!", d->text);
00079 #endif
00080     d->value = !d->value;
00081     DASMAGIC3;
00082     MAYBESHOW;
00083 }


Generated on Mon May 28 04:25:44 2007 for BattletechMUX by  doxygen 1.4.7