// crafts HASH_ITER(hh, craft_table, craft, next_craft) { if (GET_CRAFT_TYPE(craft) == CRAFT_TYPE_BUILD && GET_CRAFT_BUILD_TYPE(craft) == vnum) { GET_CRAFT_BUILD_TYPE(craft) = NOTHING; SET_BIT(GET_CRAFT_FLAGS(craft), CRAFT_IN_DEVELOPMENT); save_library_file_for_vnum(DB_BOOT_CRAFT, GET_CRAFT_VNUM(craft)); } }
/** * Checks for common craft recipe problems and reports them to ch. * * @param craft_data *craft The item to audit. * @param char_data *ch The person to report to. * @return bool TRUE if any problems were reported; FALSE if all good. */ bool audit_craft(craft_data *craft, char_data *ch) { bool problem = FALSE; if (GET_CRAFT_REQUIRES_OBJ(craft) == NOTHING && GET_CRAFT_ABILITY(craft) == NO_ABIL) { olc_audit_msg(ch, GET_CRAFT_VNUM(craft), "Craft requires no object or ability"); problem = TRUE; } if (IS_SET(GET_CRAFT_FLAGS(craft), CRAFT_IN_DEVELOPMENT)) { olc_audit_msg(ch, GET_CRAFT_VNUM(craft), "IN-DEVELOPMENT"); problem = TRUE; } if (!IS_SET(GET_CRAFT_FLAGS(craft), CRAFT_APIARIES | CRAFT_GLASS) && GET_CRAFT_RESOURCES(craft)[0].vnum == NOTHING) { olc_audit_msg(ch, GET_CRAFT_VNUM(craft), "Craft requires no resources"); problem = TRUE; } if (!IS_SET(GET_CRAFT_FLAGS(craft), CRAFT_SOUP) && (GET_CRAFT_OBJECT(craft) == NOTHING || !obj_proto(GET_CRAFT_OBJECT(craft))) && (GET_CRAFT_BUILD_TYPE(craft) == NOTHING || !building_proto(GET_CRAFT_BUILD_TYPE(craft)))) { olc_audit_msg(ch, GET_CRAFT_VNUM(craft), "Craft makes nothing"); problem = TRUE; } if (!str_cmp(GET_CRAFT_NAME(craft), "unnamed recipe")) { olc_audit_msg(ch, GET_CRAFT_VNUM(craft), "Craft not named"); problem = TRUE; } if (GET_CRAFT_TYPE(craft) == CRAFT_TYPE_ERROR) { olc_audit_msg(ch, GET_CRAFT_VNUM(craft), "Craft type not set"); problem = TRUE; } if (GET_CRAFT_TYPE(craft) != CRAFT_TYPE_BUILD && GET_CRAFT_OBJECT(craft) != NOTHING && GET_CRAFT_OBJECT(craft) != GET_CRAFT_VNUM(craft)) { olc_audit_msg(ch, GET_CRAFT_VNUM(craft), "Craft creates item with different vnum"); problem = TRUE; } if (GET_CRAFT_TYPE(craft) == CRAFT_TYPE_BUILD && GET_CRAFT_BUILD_TYPE(craft) != NOTHING && GET_CRAFT_BUILD_TYPE(craft) != GET_CRAFT_VNUM(craft)) { olc_audit_msg(ch, GET_CRAFT_VNUM(craft), "Craft creates building with different vnum"); problem = TRUE; } if (GET_CRAFT_QUANTITY(craft) == 0 && GET_CRAFT_TYPE(craft) != CRAFT_TYPE_BUILD) { olc_audit_msg(ch, GET_CRAFT_VNUM(craft), "Craft creates 0 quantity"); problem = TRUE; } if (GET_CRAFT_TIME(craft) == 0 && GET_CRAFT_TYPE(craft) != CRAFT_TYPE_BUILD) { olc_audit_msg(ch, GET_CRAFT_VNUM(craft), "Craft requires 0 time"); problem = TRUE; } return problem; }