/************************************************************************** * 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) { return get_room_index (*(vnum_t *) arg) != NULL; } Validate_Fun (validate_port) { return (*(int *) arg > 1024); } 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; } bool validate_arg (CharData * ch, const void *val, const void *arg) { Validate_F *fun = (Validate_F *) val; return (!fun || fun (ch, arg)); } #endif