/************************************************************************** * Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer, * * Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe. * * * * Merc Diku Mud improvements copyright (C) 1992, 1993 by Michael * * Chastain, Michael Quan, and Mitchell Tse. * * * * In order to use any part of this Merc Diku Mud, you must comply with * * both the original Diku license in 'license.doc' as well the Merc * * license in 'license.txt'. In particular, you may not remove either of * * these copyright notices. * * * * Much time and thought has gone into this software and you are * * benefiting. We hope that you share your changes too. What goes * * around, comes around. * *************************************************************************** * ROM 2.4 is copyright 1993-1998 Russ Taylor * * ROM has been brought to you by the ROM consortium * * Russ Taylor (rtaylor@hypercube.org) * * Gabrielle Taylor (gtaylor@hypercube.org) * * Brian Moore (zump@rom.org) * * By using this code, you have agreed to follow the terms of the * * ROM license, in the file Rom24/doc/rom.license * *************************************************************************** * 1stMud ROM Derivative (c) 2001-2004 by Markanth * * http://www.firstmud.com/ <markanth@firstmud.com> * * By using this code you have agreed to follow the term of * * the 1stMud license in ../doc/1stMud/LICENSE * ***************************************************************************/ #ifndef __OLC_VALIDATE_H_ #define __OLC_VALIDATE_H_ 1 Validate_Fun(validate_roomvnum) { if (get_room_index(*(vnum_t *) arg) != NULL) return true; else { chprintln(ch, "No room with that vnum."); return false; } } Validate_Fun(validate_keyword) { const char *str = (const char *) arg; while (*str) { if (isalpha(*str) && !isupper(*str)) { chprintln(ch, "Keyword letters must be all uppercase."); return false; } str++; } return true; } Validate_Fun(validate_ip) { int count = 0; const char *str = (const char *) arg; while (*str != NUL) { if (*str == '.') count++; else if (!isdigit(*str)) { olc_msg(ch, NULL, "IP must be in standard numbers-and-dots notation."); return false; } } if (count != 3) { olc_msg(ch, NULL, "IP must be in standard numbers-and-dots notation."); return false; } return true; } Validate_Fun(validate_autoset) { switch (ch->desc->editor) { case ED_MOBILE: { CharIndex *pMob; GetEdit(ch, CharIndex, pMob); if (pMob->level < 1) { if (pMob->autoset != 0) pMob->autoset = 0; chprintln(ch, "You can't autoset this mob."); return false; } break; } case ED_OBJECT: { ObjIndex *pObj; GetEdit(ch, ObjIndex, pObj); if (pObj->level < 1 || (pObj->item_type != ITEM_ARMOR && pObj->item_type != ITEM_WEAPON)) { chprintln(ch, "You can't autoset this obj."); return false; } break; } default: break; } return true; } Validate_Fun(validate_level) { int num = *(int *) arg; if (num < 0 || num > MAX_LEVEL) { chprintlnf(ch, "Number must be between 0 and %d.", MAX_LEVEL); return false; } return true; } Validate_Fun(validate_align) { int num = *(int *) arg; if (num < -1000 || num > 1000) { chprintln(ch, "Number must be between -1000 and 1000."); return false; } return true; } Validate_Fun(validate_weapon) { ObjIndex *obj; if ((obj = get_obj_index(*(vnum_t *) arg)) == NULL) { chprintln(ch, "Invalid vnum."); return false; } if (obj->item_type != ITEM_WEAPON) { chprintln(ch, "Thats not a vnum of a weapon."); return false; } return true; } Validate_Fun(validate_adept) { int value = *(int *) arg; if (value < 20 || value > 90) { chprintln(ch, "Please choose a value between 20 & 90"); return false; } return true; } Validate_Fun(validate_hmv) { int *value = (int *) arg; if (*value < 1 || *value > 100) { chprintln(ch, "Please choose a value from 1-100."); return false; } return true; } Validate_Fun(validate_group) { int g; g = group_lookup((const char *) arg); if (g < 0 || g >= top_group) { chprintln(ch, "That group doesn't exist"); return false; } return true; } Validate_Fun(validate_groupname) { if (group_lookup((const char *) arg) != -1) { chprintln(ch, "That group already exists."); return false; } return true; } Validate_Fun(validate_pretit) { const char *str = (const char *) arg; if (cstrlen(str) > TITLEBLOCK) { chprintlnf(ch, "Too Long: Limited to %d printed characters.", TITLEBLOCK); return false; } str = strip_color(str); return true; } bool validate_arg(CharData * ch, const void *val, const void *arg) { Validate_F *fun = (Validate_F *) val; return (!fun || fun(ch, arg)); } #endif