Crossfire Server, Trunk
R21670
|
Go to the source code of this file.
Functions | |
int | absdir (int d) |
void | add_abilities (object *op, const object *change) |
void | add_button_link (object *button, mapstruct *map, int connected) |
void | add_friendly_object (object *op) |
sstring | add_refcount (sstring str) |
void | add_statbonus (object *op) |
sstring | add_string (const char *str) |
int | adjust_dir (int dir, int destination_dir) |
int | allowed_class (const object *op) |
void | animate_object (object *op, int dir) |
void | animate_turning (object *op) |
void | apply_anim_suffix (object *who, const char *suffix) |
void | apply_death_exp_penalty (object *op) |
void | arch_info (object *op) |
object * | arch_present_in_ob (const archetype *at, const object *op) |
object * | arch_to_object (archetype *at) |
unsigned | artifact_get_face (const artifact *art) |
int | atnr_is_dragon_enabled (int attacknr) |
int | blocked_link (object *ob, mapstruct *m, int16_t sx, int16_t sy) |
int | book_overflow (const char *buf1, const char *buf2, size_t booksize) |
int | buf_overflow (const char *buf1, const char *buf2, size_t bufsize) |
int | calc_item_power (const object *op) |
void | calc_perm_exp (object *op) |
int | calculate_difficulty (mapstruct *m) |
int | can_see_monsterP (mapstruct *m, int x, int y, int dir) |
int | change_abil (object *op, object *tmp) |
void | change_attr_value (living *stats, int attr, int8_t value) |
void | change_exp (object *op, int64_t exp, const char *skill_name, int flag) |
void | change_luck (object *op, int value) |
int | change_map_light (mapstruct *m, int change) |
int | check_altar_sacrifice (const object *altar, const object *sacrifice, int remove_others, int *toremove) |
int64_t | check_exp_adjust (const object *op, int64_t exp) |
int64_t | check_exp_loss (const object *op, int64_t exp) |
void | check_generators (void) |
void | check_inv (object *op, object *trig) |
object * | check_inv_recursive (object *op, const object *trig) |
int | check_path (const char *name, int prepend_dir) |
void | check_stat_bounds (living *stats, int8_t min_stat, int8_t max_stat) |
void | check_summoned (void) |
int | check_trigger (object *op, object *cause) |
void | clean_friendly_list (void) |
void | clean_object (object *op) |
void | clean_tmp_map (mapstruct *m) |
void | clear_archetable (void) |
void | clear_los (player *pl) |
void | clear_player (player *pl) |
object * | create_archetype (const char *name) |
object * | create_archetype_by_object_name (const char *name) |
void | create_overlay_pathname (const char *name, char *buf, size_t size) |
char * | create_pathname (const char *name, char *buf, size_t size) |
object * | create_singularity (const char *name) |
void | create_template_pathname (const char *name, char *buf, size_t size) |
void | create_treasure (treasurelist *t, object *op, int flag, int difficulty, int tries) |
void | decay_objects (mapstruct *m) |
void | delete_map (mapstruct *m) |
StringBuffer * | describe_attacktype (const char *attack, int value, StringBuffer *buf) |
int | describe_god (const object *god, int what, StringBuffer *buf, size_t maxlen) |
StringBuffer * | describe_item (const object *op, const object *owner, int use_media_tags, StringBuffer *buf) |
StringBuffer * | describe_monster (const object *op, int use_media_tags, StringBuffer *buf) |
StringBuffer * | describe_resistance (const object *op, int newline, int use_media_tags, StringBuffer *buf) |
StringBuffer * | describe_spellpath_attenuation (const char *attenuation, int value, StringBuffer *buf) |
int | did_make_save (const object *op, int level, int bonus) |
int | die_roll (int num, int size, const object *op, int goodbad) |
int | dirdiff (int dir1, int dir2) |
void | drain_specific_stat (object *op, int deplete_stats) |
void | drain_stat (object *op) |
void | dump_abilities (void) |
void | dump_alchemy (void) |
void | dump_alchemy_costs (void) |
void | dump_all_archetypes (void) |
void | dump_all_maps (void) |
void | dump_animations (void) |
void | dump_arch (archetype *at, StringBuffer *sb) |
void | dump_artifacts (void) |
void | dump_experience (void) |
void | dump_friendly_objects (void) |
void | dump_gods (void) |
void | dump_map (const mapstruct *m) |
void | dump_monster_treasure (const char *name) |
int | exp_level (int64_t exp) |
void | fatal (enum fatal_error err) __attribute__((noreturn)) |
const Animations * | find_animation (const char *name) |
archetype * | find_archetype (const char *name) |
archetype * | find_archetype_by_object_name (const char *name) |
archetype * | find_archetype_by_object_type_name (int type, const char *name) |
const artifact * | find_artifact (const object *op, const char *name) |
const artifactlist * | find_artifactlist (int type) |
int | find_dir_2 (int x, int y) |
const Face * | find_face (const char *name, const Face *error) |
recipe * | find_recipe_for_tool (const char *tool, recipe *from) |
int | find_smooth (const Face *face, const Face **smoothed) |
sstring | find_string (const char *str) |
archetype * | find_treasure_by_name (const treasure *t, const char *name, int depth) |
treasurelist * | find_treasurelist (const char *name) |
void | fix_generated_item (object *op, object *creator, int difficulty, int max_magic, int flags) |
void | fix_object (object *op) |
void | free_all_anim (void) |
void | free_all_archs (void) |
void | free_all_artifacts (void) |
void | free_all_god (void) |
void | free_all_images (void) |
void | free_all_maps (void) |
void | free_all_readable (void) |
void | free_all_recipes (void) |
void | free_all_treasures (void) |
void | free_arch (archetype *at) |
void | free_dialog_information (object *op) |
void | free_experience (void) |
void | free_globals (void) |
void | free_loader (void) |
void | free_map (mapstruct *m) |
void | free_objectlink (objectlink *ol) |
void | free_objectlinkpt (oblinkpt *obp) |
void | free_player (player *pl) |
void | free_socket_images (void) |
void | free_string (sstring str) |
void | generate_artifact (object *op, int difficulty) |
object * | generate_treasure (treasurelist *t, int difficulty) |
archetype * | get_archetype_by_skill_name (const char *skill, int type) |
archetype * | get_archetype_by_type_subtype (int type, int subtype) |
archetype * | get_archetype_struct (void) |
int8_t | get_attr_value (const living *stats, int attr) |
int | get_button_value (const object *button) |
int | get_cha_bonus (int stat) |
int | get_cleric_chance (int stat) |
client_spell * | get_client_spell_state (player *pl, object *spell) |
int | get_dam_bonus (int stat) |
int | get_dex_bonus (int stat) |
int | get_dialog_message (object *op, const char *text, struct_dialog_message **message, struct_dialog_reply **reply) |
mapstruct * | get_empty_map (int sizex, int sizey) |
const Face * | get_face_by_id (uint16_t id) |
const Face * | get_face_by_index (int index) |
int | get_face_fallback (int faceset, int imageno) |
unsigned int | get_faces_count (void) |
int | get_fear_bonus (int stat) |
recipelist * | get_formulalist (int i) |
object * | get_jail_exit (object *op) |
int | get_language (object *op) |
int | get_learn_spell (int stat) |
void | get_levelnumber (int i, char *buf, size_t size) |
mapstruct * | get_linked_map (void) |
int | get_map_flags (mapstruct *oldmap, mapstruct **newmap, int16_t x, int16_t y, int16_t *nx, int16_t *ny) |
mapstruct * | get_map_from_coord (mapstruct *m, int16_t *x, int16_t *y) |
sstring | get_message_body (const GeneralMessage *message) |
const Face * | get_message_face (const GeneralMessage *message) |
const GeneralMessage * | get_message_from_identifier (const char *identifier) |
sstring | get_message_title (const GeneralMessage *message) |
const char * | get_month_name (const int index) |
const char * | get_name_of_region_for_map (const mapstruct *m) |
void | get_ob_diff (StringBuffer *sb, const object *op, const object *op2) |
objectlink * | get_objectlink (void) |
oblinkpt * | get_objectlinkpt (void) |
const char * | get_periodofday (const int index) |
int | get_power_from_ench (int ench) |
godlink * | get_rand_god (void) |
int | get_random_dir (void) |
object * | get_random_mon (int level) |
recipe * | get_random_recipe (recipelist *rpl) |
int | get_randomized_dir (int dir) |
int | get_rangevector (object *op1, const object *op2, rv_vector *retval, int flags) |
int | get_rangevector_from_mapcoord (const mapstruct *m, int x, int y, const object *op2, rv_vector *retval, int flags) |
const readable_message_type * | get_readable_message_type (object *readable) |
region * | get_region_by_map (mapstruct *m) |
region * | get_region_by_name (const char *region_name) |
region * | get_region_from_string (const char *name) |
const char * | get_region_longname (const region *r) |
const char * | get_region_msg (const region *r) |
region * | get_region_struct (void) |
void | get_search_arr (int *search_arr) |
const char * | get_season_name (const int index) |
long | get_sleep_remaining (void) |
float | get_speed_bonus (int stat) |
int | get_thaco_bonus (int stat) |
void | get_tod (timeofday_t *tod) |
int | get_turn_bonus (int stat) |
const typedata * | get_typedata (int itemtype) |
const typedata * | get_typedata_by_name (const char *name) |
const char * | get_weekday (const int index) |
uint32_t | get_weight_limit (int stat) |
void | give_artifact_abilities (object *op, const object *artifact) |
object * | give_skill_by_name (object *op, const char *skill_name) |
int | has_ability (const object *ob) |
mapstruct * | has_been_loaded (const char *name) |
int | has_carried_lights (const object *op) |
const char * | i18n (const object *who, const char *code) |
int | i18n_find_language_by_code (const char *code) |
void | i18n_free (void) |
int | i18n_get_language_by_code (const char *code) |
sstring | i18n_get_language_code (int language) |
void | i18n_init (void) |
void | i18n_list_languages (object *who) |
object * | identify (object *op) |
void | init_anim (void) |
void | init_archetype_pointers (void) |
void | init_archetypes (void) |
void | init_artifacts (void) |
void | init_block (void) |
void | init_experience (void) |
void | init_formulae (void) |
void | init_globals (void) |
void | init_gods (void) |
void | init_hash_table (void) |
void | init_library (void) |
void | init_ob_method_struct (ob_methods *methods, ob_methods *fallback) |
void | init_ob_types (ob_methods *base_type) |
void | init_objects (void) |
void | init_readable (void) |
int | init_regions (void) |
void | init_stats (int reload) |
int | is_dragon_pl (const object *op) |
int | is_friendly (const object *op) |
int | is_identifiable_type (const object *op) |
int | is_identified (const object *op) |
int | is_magical (const object *op) |
int | is_old_wraith_pl (object *op) |
int | is_type_valid (uint8_t type) |
int | is_valid_faceset (int fsn) |
int | is_wraith_pl (object *op) |
int | isqrt (int n) |
void | jump_time (void) |
int | legal_artifact_combination (const object *op, const artifact *art) |
int64_t | level_exp (int level, double expmul) |
int | lex_load (int *depth, object **items, int maxdepth, int map_flags, int linemode) |
void | link_player_skills (object *op) |
int | load_object (FILE *fp, object *op, int bufstate, int map_flags) |
void | load_treasures (void) |
const artifact * | locate_recipe_artifact (const recipe *rp, size_t idx) |
void | LOG (LogLevel logLevel, const char *format,...) |
void | make_list_like (char *input) |
void | make_path_to_file (const char *filename) |
void | make_sure_not_seen (const object *op) |
void | make_sure_seen (const object *op) |
object * | map_find_by_archetype (mapstruct *m, int x, int y, const archetype *at) |
object * | map_find_by_flag (mapstruct *map, int x, int y, int flag) |
object * | map_find_by_type (mapstruct *m, int x, int y, uint8_t type) |
int | map_find_dir (mapstruct *m, int x, int y, object *exclude) |
const char * | map_get_path (const object *item) |
void | map_remove_unique_files (const mapstruct *map) |
mapstruct * | mapfile_load (const char *map, int flags) |
materialtype_t * | name_to_material (const char *name) |
int64_t | new_exp (const object *ob) |
int | nstrtok (const char *buf1, const char *buf2) |
method_ret | ob_apply (object *op, object *applier, int aflags) |
int | ob_blocked (const object *ob, mapstruct *m, int16_t x, int16_t y) |
char * | ob_describe (const object *op, const object *observer, int use_media_tags, char *buf, size_t size) |
method_ret | ob_move_on (object *op, object *victim, object *originator) |
method_ret | ob_process (object *op) |
method_ret | ob_trigger (object *op, object *cause, int state) |
void | object_add_weight (object *op, signed long weight) |
int | object_can_merge (object *ob1, object *ob2) |
int | object_can_pick (const object *who, const object *item) |
int | object_check_move_on (object *op, object *originator) |
void | object_clear (object *op) |
void | object_clear_owner (object *op) |
void | object_copy (const object *src_ob, object *dest_ob) |
void | object_copy_owner (object *op, object *clone) |
void | object_copy_with_inv (const object *src_ob, object *dest_ob) |
int | object_count_active (void) |
int | object_count_free (void) |
int | object_count_used (void) |
object * | object_create_arch (archetype *at) |
object * | object_create_clone (object *asrc) |
object * | object_decrease_nrof (object *op, uint32_t i) |
int | object_distance (const object *ob1, const object *ob2) |
void | object_dump (const object *op, StringBuffer *sb) |
void | object_dump_all (void) |
object * | object_find_by_arch_name (const object *who, const char *name) |
object * | object_find_by_flag (const object *who, int flag) |
object * | object_find_by_flag_applied (const object *who, int flag) |
object * | object_find_by_name (const object *who, const char *name) |
object * | object_find_by_name_global (const char *str) |
object * | object_find_by_tag (const object *who, tag_t tag) |
object * | object_find_by_tag_global (tag_t i) |
object * | object_find_by_type (const object *who, int type) |
object * | object_find_by_type2 (const object *who, int type1, int type2) |
object * | object_find_by_type_and_arch_name (const object *who, int type, const char *name) |
object * | object_find_by_type_and_name (const object *who, int type, const char *name) |
object * | object_find_by_type_and_race (const object *who, int type, const char *race) |
object * | object_find_by_type_and_skill (const object *who, int type, const char *skill) |
object * | object_find_by_type_and_slaying (const object *who, int type, const char *slaying) |
object * | object_find_by_type_applied (const object *who, int type) |
object * | object_find_by_type_subtype (const object *who, int type, int subtype) |
object * | object_find_by_type_without_flags (const object *who, int type, int *flags, int num_flags) |
int | object_find_first_free_spot (const object *ob, mapstruct *m, int x, int y) |
int | object_find_free_spot (const object *ob, mapstruct *m, int x, int y, int start, int stop) |
int | object_find_multi_free_spot_around (const object *ob, const object *gen, int16_t *hx, int16_t *hy) |
int | object_find_multi_free_spot_within_radius (const object *ob, const object *gen, int *hx, int *hy) |
void | object_fix_multipart (object *tmp) |
void | object_free (object *ob, int flags) |
void | object_free_all_data (void) |
void | object_free_drop_inventory (object *ob) |
void | object_free_key_values (object *op) |
object * | object_get_env_recursive (object *op) |
key_value * | object_get_key_value (const object *ob, const char *key) |
void | object_get_multi_size (const object *ob, int *sx, int *sy, int *hx, int *hy) |
object * | object_get_owner (object *op) |
object * | object_get_player_container (object *op) |
const char * | object_get_value (const object *op, const char *const key) |
void | object_give_identified_properties (object *op) |
object * | object_insert_in_map (object *op, mapstruct *m, object *originator, int flag) |
object * | object_insert_in_map_at (object *op, mapstruct *m, object *originator, int flag, int x, int y) |
object * | object_insert_in_ob (object *op, object *where) |
void | object_insert_to_free_spot_or_free (object *op, mapstruct *map, int x, int y, int start, int stop, object *originator) |
int | object_matches_string (object *pl, object *op, const char *name) |
object * | object_merge (object *op, object *top) |
void | object_merge_spell (object *op, int16_t x, int16_t y) |
object * | object_new (void) |
object * | object_present_in_ob (uint8_t type, const object *op) |
object * | object_present_in_ob_by_name (int type, const char *str, const object *op) |
void | object_remove (object *op) |
void | object_remove_from_active_list (object *op) |
void | object_replace_insert_in_map (const char *arch_string, object *op) |
void | object_reset (object *op) |
void | object_set_cheat (object *op) |
void | object_set_enemy (object *op, object *enemy) |
void | object_set_flag_inv (object *op, int flag) |
void | object_set_msg (object *op, const char *msg) |
void | object_set_owner (object *op, object *owner) |
int | object_set_value (object *op, const char *key, const char *value, int add_key) |
object * | object_split (object *orig_ob, uint32_t nr, char *err, size_t size) |
void | object_sub_weight (object *op, signed long weight) |
signed long | object_sum_weight (object *op) |
void | object_unset_flag_inv (object *op, int flag) |
void | object_update (object *op, int action) |
void | object_update_speed (object *op) |
void | object_update_turn_face (object *op) |
int | on_same_map (const object *op1, const object *op2) |
int | operate_altar (object *altar, object **sacrifice) |
int | out_of_map (mapstruct *m, int x, int y) |
char * | path_combine (const char *src, const char *dst, char *path, size_t size) |
char * | path_combine_and_normalize (const char *src, const char *dst, char *path, size_t size) |
void | path_normalize (char *path) |
const char * | player_get_own_title (const struct pl *pl) |
void | player_get_title (const struct pl *pl, char *buf, size_t bufsize) |
int | player_has_own_title (const struct pl *pl) |
void | player_lvl_adj (object *who, object *op) |
void | player_set_dragon_title (struct pl *pl, int level, const char *attack, int skin_resist) |
void | player_set_own_title (struct pl *pl, const char *title) |
const object * | pntr_to_god_obj (godlink *godlnk) |
void | print_los (object *op) |
void | print_monsters (void) |
void | push_button (object *op) |
void | query_base_name (const object *op, int plural, char *buf, size_t size) |
void | query_name (const object *op, char *buf, size_t size) |
int | query_refcount (sstring str) |
void | query_short_name (const object *op, char *buf, size_t size) |
void | query_weight (const object *op, char *buf, size_t size) |
int | random_roll (int min, int max, const object *op, int goodbad) |
int64_t | random_roll64 (int64_t min, int64_t max, const object *op, int goodbad) |
const char * | re_cmp (const char *str, const char *regexp) |
void | read_bmap_names (void) |
void | read_client_images (void) |
int | read_smooth (void) |
mapstruct * | ready_map_name (const char *name, int flags) |
int | region_is_child_of_region (const region *child, const region *r) |
void | register_apply (int ob_type, apply_func method) |
void | register_describe (int ob_type, describe_func method) |
void | register_move_on (int ob_type, move_on_func method) |
void | register_process (int ob_type, process_func method) |
void | register_trigger (int ob_type, trigger_func method) |
void | remove_button_link (object *op) |
int | remove_depletion (object *op, int level) |
void | remove_directory (const char *path) |
void | remove_friendly_object (object *op) |
void | remove_statbonus (object *op) |
void | replace (const char *src, const char *key, const char *replacement, char *result, size_t resultsize) |
void | replace_unprintable_chars (char *buf) |
void | reset_sleep (void) |
int | rndm (int min, int max) |
int | save_map (mapstruct *m, int flag) |
int | save_object (FILE *fp, object *op, int flag) |
long | seconds (void) |
void | set_abs_magic (object *op, int magic) |
void | set_attr_value (living *stats, int attr, int8_t value) |
void | set_dragon_name (object *pl, const object *abil, const object *skin) |
void | set_map_reset_time (mapstruct *map) |
void | set_materialname (object *op) |
void | set_max_time (long t) |
int | set_variable (object *op, const char *buf) |
void | share_exp (object *op, int64_t exp, const char *skill, int flag) |
size_t | split_string (char *str, char *array[], size_t array_size, char sep) |
void | ss_dump_statistics (char *buf, size_t size) |
char * | ss_dump_table (int what, char *buf, size_t size) |
void | stringbuffer_append_printf (StringBuffer *sb, const char *format,...) |
void | stringbuffer_append_string (StringBuffer *sb, const char *str) |
void | stringbuffer_append_stringbuffer (StringBuffer *sb, const StringBuffer *sb2) |
void | stringbuffer_delete (StringBuffer *sb) |
char * | stringbuffer_finish (StringBuffer *sb) |
sstring | stringbuffer_finish_shared (StringBuffer *sb) |
size_t | stringbuffer_length (StringBuffer *sb) |
StringBuffer * | stringbuffer_new (void) |
void | strip_endline (char *buf) |
const char * | strrstr (const char *haystack, const char *needle) |
int | strtoint (const char *buf) |
char * | strtoktolin (const char *buf1, const char *buf2, char *retbuf, size_t size) |
void | tailor_readable_ob (object *book, int msg_type) |
FILE * | tempnam_secure (const char *dir, const char *pfx, char **filename) |
void | tick_game_time (void) |
const char * | time_format_time (const timeofday_t *tod, char *buf, size_t bufsize) |
void | time_info (object *op) |
void | transmute_materialname (object *op, const object *change) |
objectlink * | treasurelist_find_matching_type (const treasurelist *randomitems, int type, int traverse) |
void | trigger_connected (objectlink *ol, object *cause, const int state) |
const Animations * | try_find_animation (const char *name) |
archetype * | try_find_archetype (const char *name) |
void | update_all_los (const mapstruct *map, int x, int y) |
void | update_all_map_los (mapstruct *map) |
void | update_button (object *op) |
void | update_buttons (mapstruct *m) |
void | update_los (object *op) |
void | update_position (mapstruct *m, int x, int y) |
void | use_trigger (object *op) |
long | usec_elapsed (struct timespec first, struct timespec second) |
void | verify_button_links (const mapstruct *map) |
void | write_book_archive (void) |
void | write_todclock (void) |
void | yyfree (void *ptr) |
int | yyget_debug (void) |
FILE * | yyget_in (void) |
int | yyget_lineno (void) |
FILE * | yyget_out (void) |
char * | yyget_text (void) |
int | yylex_destroy (void) |
void | yypop_buffer_state (void) |
void | yyrestart (FILE *input_file) |
void | yyset_debug (int bdebug) |
void | yyset_in (FILE *in_str) |
void | yyset_lineno (int line_number) |
void | yyset_out (FILE *out_str) |
int absdir | ( | int | d | ) |
Computes an absolute direction.
d | direction to convert. |
Definition at line 3493 of file object.c.
Referenced by adjust_dir(), check_spell_knockback(), common_process_projectile(), fire_arch_from_position(), fire_bolt(), flee_player(), forklightning(), get_randomized_dir(), monster_compute_path(), monster_dist_att(), monster_disthit_att(), monster_hitrun_att(), monster_move(), monster_run_att(), monster_wait_att(), monster_wait_att2(), move_ball_spell(), move_bolt(), move_bullet(), move_cone(), move_swarm_spell(), path_to_player(), pets_move(), pets_summon_object(), player_fire_bow(), pray_at_altar(), spinner_type_move_on(), and turn_transport().
Used in artifact generation. The bonuses of the first object is modified by the bonuses of the second object.
For items that do not need identifying, use their identified face/animation immediately. This should make seas of generated creatures look more interesting.
Daniel Hawkins 2018-01-07
Add query flags to perform the same treatment for identified items or artifacts that come identified. Also make sure we have op->arch. Otherwise it segfaults when we don't.
2018-01-08
Definition at line 288 of file artifact.c.
References liv::ac, add_refcount(), obj::anim_speed, obj::animation, obj::arch, arch_to_object(), obj::attacktype, blank_face, change_attr_value(), CLEAR_FLAG, compute_face_name(), liv::dam, liv::exp, obj::face, find_face(), FLAG_ALIVE, FLAG_ANIMATE, FLAG_BLIND, FLAG_CLIENT_ANIM_RANDOM, FLAG_CONFUSED, FLAG_CURSED, FLAG_DAMNED, FLAG_IDENTIFIED, FLAG_LIFESAVE, FLAG_MAKE_INVIS, FLAG_NO_SAVE, FLAG_REFL_MISSILE, FLAG_REFL_SPELL, FLAG_SEE_IN_DARK, FLAG_STAND_STILL, FLAG_STEALTH, FLAG_XRAYS, liv::food, FOR_INV_FINISH, FOR_INV_PREPARE, free_string(), obj::gen_sp_armour, get_attr_value(), liv::hp, obj::inv, is_identified(), obj::item_power, _key_value::key, KEY_ANIMATION_SUFFIX, KEY_FACE_SUFFIX, obj::key_values, obj::last_sp, obj::level, llevDebug, LOG(), liv::luck, obj::magic, obj::material, obj::materialname, MAX_BUF, liv::maxhp, liv::maxsp, obj::move_type, obj::msg, Face::name, animations_struct::name, _key_value::next, obj::nrof, NROFATTACKS, NUM_STATS, Face::number, object_copy(), object_free_drop_inventory(), object_get_value(), object_give_identified_properties(), object_insert_in_ob(), object_new(), object_remove(), object_set_msg(), object_set_value(), object_update_speed(), obj::other_arch, obj::path_attuned, obj::path_denied, obj::path_repelled, POTION, QUERY_FLAG, obj::race, RANDOM, obj::resist, ROD, set_abs_magic(), SET_FLAG, obj::slaying, snprintf, liv::sp, obj::speed, obj::stats, try_find_animation(), obj::type, _key_value::value, obj::value, liv::wc, and obj::weight.
Referenced by artifact_describe(), and give_artifact_abilities().
Links specified object in the map.
button | object to link. Must not be NULL. |
map | map we are on. Should not be NULL. |
connected | connection value for the item. |
Definition at line 661 of file button.c.
References mapdef::buttons, obj::count, FLAG_IS_LINKED, free_objectlink(), get_objectlink(), get_objectlinkpt(), oblnk::id, oblinkpt::link, llevError, LOG(), oblnk::next, oblinkpt::next, oblnk::ob, SET_FLAG, and oblinkpt::value.
Referenced by apply_builder_item(), and include_map_in_map().
void add_friendly_object | ( | object * | op | ) |
Add a new friendly object to the linked list of friendly objects. Will log an error if the object is already on that list.
op | object to add to the list. |
Definition at line 30 of file friend.c.
References obj::count, first_friendly_object, get_objectlink(), oblnk::id, is_friendly(), llevError, LOG(), obj::name, oblnk::next, and oblnk::ob.
Referenced by add_player(), animate_weapon(), cfapi_object_set_property(), change_object(), do_mood_floor(), fix_summon_pet(), mood_change(), pets_summon_golem(), pets_summon_object(), polymorph_living(), receive_play_again(), and use_oratory().
This will increase the refcount of the string str.
str | string which *must *have been returned from a previous add_string(). |
Definition at line 210 of file shstr.c.
Referenced by add_abilities(), animate_bomb(), cast_bless(), cast_change_ability(), cast_curse(), cast_invisible(), cone_drop(), create_aura(), do_symptoms(), dragon_focus_type_apply(), explode_bullet(), fire_arch_from_position(), fire_bolt(), fire_bow(), fix_object(), get_or_create_quest(), get_or_create_state(), give_artifact_abilities(), hit_with_arrow(), i18n_init(), identify(), infect_object(), init_skills(), knowledge_get_or_create(), monster_move(), object_copy(), object_set_value_s(), poison_living(), receive_play_again(), set_spell_skill(), and START_TEST().
void add_statbonus | ( | object * | op | ) |
Adds stat-bonuses given by the class which the player has chosen.
op | object which must be a player with contr not NULL. |
Definition at line 865 of file living.c.
References obj::arch, liv::Cha, archt::clone, liv::Con, obj::contr, liv::Dex, liv::Int, pl::orig_stats, liv::Pow, obj::stats, liv::Str, and liv::Wis.
Referenced by apply_race_and_class(), key_change_class(), and key_roll_stat().
sstring add_string | ( | const char * | str | ) |
This will add 'str' to the hash table. If there's no entry for this string, a copy will be allocated, and a pointer to that is returned.
str | string to share. |
Definition at line 124 of file shstr.c.
References _shared_string::array, GATHER, hashstr(), new_shared_string(), _shared_string::next, _shared_string::previous, _shared_string::refcount, _shared_string::string, TOPBIT, and _shared_string::u.
Referenced by account_char_add(), account_char_load(), account_play_cmd(), add_author(), add_book_to_list(), add_god_to_list(), add_to_racelist(), adjust_sign_msg(), alchemy_failure_effect(), animate_weapon(), apply_race_and_class(), become_follower(), cast_bless(), cast_create_town_portal(), cast_word_of_recall(), cctk_set_object_strings(), cfapi_system_add_string(), change_abil(), change_book(), change_treasure(), check_login(), command_follow(), command_reset(), command_summon(), command_teleport(), command_unarmed_skill(), confuse_living(), create_singularity(), determine_god(), do_goto(), do_throw(), enter_player_savebed(), enter_random_map(), examine_monster(), find_or_create_connection_for_map(), fire_bow(), fix_container_multipart(), fix_generated_item(), fix_stopped_arrow(), get_jail_exit(), get_player(), give_artifact_abilities(), god_enchants_weapon(), grant_immunity(), i18n(), i18n_init(), init_anim(), init_artifacts(), init_book_archive(), init_formulae(), init_globals(), init_msgfile(), init_races(), key_change_class(), keyplace(), kill_player(), knowledge_add(), knowledge_read_player_data(), load_materials(), load_quests_from_file(), load_treasure(), load_treasures(), local_check_loaded_object(), lock_and_hide_doors(), monster_do_talk_npc(), move_marker(), new_text_name(), object_find_by_name(), object_find_by_name_global(), object_fix_multipart(), object_set_msg(), object_set_value(), object_set_value_s(), pets_summon_golem(), place_chest(), place_exits(), place_special_exit(), potion_type_apply(), process_object(), quest_read_player_data(), receive_play_again(), set_materialname(), START_TEST(), stringbuffer_finish_shared(), tailor_god_spell(), town_portal_find_force(), and write_mark().
int adjust_dir | ( | int | dir, |
int | destination_dir | ||
) |
Adjusts a given direction by +/-1 towards a destination direction.
dir | the direction to adjust |
destination_dir | the destination direction to adjust towards |
Definition at line 453 of file utils.c.
References absdir(), and rndm().
Referenced by move_ball_spell(), and move_missile().
int allowed_class | ( | const object * | op | ) |
Returns true if the given player is a legal class. The function to add and remove class-bonuses to the stats doesn't check if the stat becomes negative, thus this function merely checks that all stats are 1 or more, and returns false otherwise.
op | object to check. |
Definition at line 1646 of file living.c.
References liv::Cha, liv::Con, liv::Dex, liv::Int, liv::Pow, obj::stats, liv::Str, and liv::Wis.
Referenced by apply_race_and_class(), and key_change_class().
void animate_object | ( | object * | op, |
int | dir | ||
) |
Updates the face-variable of an object. If the object is the head of a multi-object, all objects are animated. The object's state is not changed, but merely updated if needed (out of bounds of new animation, reached end of animation, ...). This function correctly handles FLAG_IS_TURNABLE too.
op | is the object to animate. |
dir | is the direction the object is facing. This is generally same as op->direction, but in some cases, op->facing is used instead - the caller has a better idea which one it really wants to be using, so let it pass along the right one. This parameter is ignored if the object has a head or is turnable. |
Definition at line 212 of file anim.c.
References animate_object(), obj::animation, obj::arch, blank_face, CLEAR_FLAG, archt::clone, obj::direction, obj::face, FLAG_ALIVE, FLAG_IS_TURNABLE, obj::head, obj::invisible, llevError, LOG(), obj::more, NUM_ANIMATIONS, NUM_FACINGS, Face::number, object_dump(), object_update(), PLAYER, QUERY_FLAG, SET_ANIMATION, SET_FLAG, obj::state, stringbuffer_finish(), stringbuffer_new(), obj::temp_animation, obj::type, and UP_OBJ_FACE.
Referenced by animate_object(), apply_anim_suffix(), apply_changes_to_player(), dragon_ability_gain(), face_player(), fix_stopped_arrow(), monster_move(), monster_use_scroll(), move_hole(), move_player(), move_to(), object_give_identified_properties(), object_update_turn_face(), process_events(), process_object(), turn_one_transport(), and turn_transport().
void animate_turning | ( | object * | op | ) |
Animates one step of object.
op | object to animate. |
Definition at line 275 of file button.c.
References obj::direction, FIREWALL, NUM_ANIMATIONS, object_update(), SET_ANIMATION, liv::sp, obj::state, obj::stats, obj::type, and UP_OBJ_FACE.
Referenced by legacy_ob_process(), and trigger_connected().
void apply_anim_suffix | ( | object * | who, |
const char * | suffix | ||
) |
Applies a compound animation to an object.
who | object to apply the animation to. Must not be NULL. |
suffix | animation suffix to apply. Must not be NULL. |
Definition at line 318 of file anim.c.
References animate_object(), obj::animation, obj::facing, animations_struct::facings, HEAD, obj::last_anim, MAX_BUF, obj::more, animations_struct::name, animations_struct::num_animations, snprintf, obj::state, obj::temp_anim_speed, obj::temp_animation, and try_find_animation().
Referenced by apply_by_living(), attack_ob_simple(), cast_spell(), do_skill(), fire_bow(), and god_intervention().
void apply_death_exp_penalty | ( | object * | op | ) |
Applies a death penalty experience, the size of this is defined by the settings death_penalty_percentage and death_penalty_levels, and by the amount of permenent experience, whichever gives the lowest loss.
op | victim of the penalty. Must not be NULL. |
Definition at line 2227 of file living.c.
References check_exp_loss(), Settings::death_penalty_level, Settings::death_penalty_ratio, liv::exp, FOR_INV_FINISH, FOR_INV_PREPARE, obj::level, levels, MAX, MIN, player_lvl_adj(), settings, SKILL, and obj::stats.
Referenced by kill_player_not_permadeath().
void arch_info | ( | object * | op | ) |
Stores debug-information about how efficient the hashtable used for archetypes has been in the static errmsg array.
Definition at line 199 of file arch.c.
References arch_cmp, arch_search, draw_ext_info_format(), MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DEBUG, and NDI_UNIQUE.
Referenced by command_archs().
Searches for any objects with a matching archetype in the inventory of the given object.
at | archetype to search for. |
op | where to search. |
Definition at line 2943 of file object.c.
References obj::arch, obj::below, and obj::inv.
Referenced by cast_heal(), cfapi_object_find_archetype_inside(), cfapi_object_get_property(), change_luck(), create_aura(), drain_specific_stat(), kill_player_not_permadeath(), perceive_self(), poison_living(), remove_depletion(), restore_player(), slow_living_by(), and START_TEST().
Creates and returns a new object which is a copy of the given archetype. This function returns NULL if given a NULL pointer, else an object.
at | archetype from which to get an object. |
Definition at line 571 of file arch.c.
References obj::arch, archt::clone, llevError, LOG(), object_copy_with_inv(), and object_new().
Referenced by add_abilities(), add_one_item(), animate_bomb(), animate_weapon(), apply_builder_floor(), apply_builder_window(), CREArtifactPanel::artifactChanged(), cast_bless(), cast_cause_disease(), cast_change_ability(), cast_cone(), cast_consecrate(), cast_curse(), cast_destruction(), cast_detection(), cast_heal(), cast_light(), cast_polymorph(), cast_raise_dead_spell(), cast_smite_spell(), change_luck(), change_object(), command_create(), cone_drop(), create_all_treasures(), create_archetype(), create_archetype_by_object_name(), create_aura(), create_bomb(), create_one_treasure(), create_player_cmd(), do_turn(), dragon_ability_gain(), drain_specific_stat(), explode_bullet(), fire_arch_from_position(), fire_bolt(), fire_swarm(), fix_container_multipart(), fix_summon_pet(), fix_walls(), generate_monster_arch(), get_player(), get_spell_by_name(), give_skill_by_name(), god_gives_present(), kill_player(), kill_player_not_permadeath(), kill_player_permadeath(), knowledge_alchemy_face(), magic_wall(), make_map_floor(), make_map_walls(), mood_change(), move_aura(), move_ball_spell(), move_symptom(), object_create_arch(), object_fix_multipart(), object_replace_insert_in_map(), pets_summon_object(), pick_joined_wall(), place_exits(), poison_living(), potion_type_apply(), print_monsters(), put_a_monster(), put_decor(), put_doors(), put_floor(), put_in_icecube(), remove_door(), remove_locked_door(), retrofit_joined_wall(), save_object_in_sb(), slow_living_by(), spell_effect(), spring_trap(), START_TEST(), town_portal_find_force(), write_mark(), and write_rune().
unsigned artifact_get_face | ( | const artifact * | art | ) |
Get a suitable face number for representing an artifact.
art | what to get the face of. |
Definition at line 723 of file artifact.c.
References artifactstruct::allowed, artifactstruct::allowed_size, blank_face, archt::clone, obj::face, find_archetype(), first_archetype, artifactstruct::item, linked_char::name, archt::name, linked_char::next, archt::next, Face::number, and obj::type.
int atnr_is_dragon_enabled | ( | int | attacknr | ) |
Determine if the attacktype represented by the specified attack-number is enabled for dragon players. A dragon player (quetzal) can gain resistances for all enabled attacktypes.
attacknr | attacktype to check |
Definition at line 95 of file player.c.
References ATNR_ACID, ATNR_COLD, ATNR_ELECTRICITY, ATNR_FIRE, ATNR_MAGIC, and ATNR_POISON.
Referenced by command_resistances(), describe_item(), describe_resistance(), dragon_eat_flesh(), dragon_level_gain(), perceive_self(), and set_dragon_name().
Returns true if the given coordinate is blocked except by the object passed is not blocking. This is used with multipart monsters - if we want to see if a 2x2 monster can move 1 space to the left, we don't want its own area to block it from moving there.
ob | object we ignore. Must not be NULL. |
m | map we're considering. |
sx | |
sy | target coordinates |
Definition at line 354 of file map.c.
References CHECK_INV, check_inv_recursive(), DOOR, draw_ext_info(), FLAG_ALIVE, FLAG_WIZ, MapSpace::flags, FOR_MAP_FINISH, FOR_MAP_PREPARE, GET_MAP_MOVE_BLOCK, HEAD, llevError, LOG(), obj::move_type, MSG_TYPE_ATTACK, MSG_TYPE_ATTACK_NOKEY, NDI_NAVY, NDI_UNIQUE, OB_MOVE_BLOCK, OB_TYPE_MOVE_BLOCK, OUT_OF_REAL_MAP, P_IS_ALIVE, PLAYER, QUERY_FLAG, mapdef::spaces, TRANSPORT, obj::type, and mapdef::width.
Referenced by move_ob(), and path_to_player().
int book_overflow | ( | const char * | buf1, |
const char * | buf2, | ||
size_t | booksize | ||
) |
Checks if buf1 and buf2 can be combined.
buf1 | |
buf2 | buffer we plan on combining. |
booksize | maximum book size. |
Definition at line 722 of file readable.c.
References BOOK_BUF, and buf_overflow().
Referenced by write_note().
int buf_overflow | ( | const char * | buf1, |
const char * | buf2, | ||
size_t | bufsize | ||
) |
We don't want to exceed the buffer size of buf1 by adding on buf2!
buf1 | |
buf2 | buffers we plan on concatening. Can be NULL. |
bufsize | size of buf1. Can be NULL. |
Definition at line 398 of file shstr.c.
Referenced by book_overflow(), init_msgfile(), and START_TEST().
int calc_item_power | ( | const object * | op | ) |
This takes an object 'op' and figures out what its item_power rating should be. This should only really be used by the treasure generation code, and when loading legacy objects. It returns the item_power it calculates.
op | object of which to compute the item_power |
Definition at line 237 of file item.c.
References AMULET, ARMOUR, obj::attacktype, bits_set(), BOOTS, BRACERS, CLOAK, liv::exp, FLAG_LIFESAVE, FLAG_MAKE_INVIS, FLAG_REFL_MISSILE, FLAG_REFL_SPELL, FLAG_SEE_IN_DARK, FLAG_STEALTH, FLAG_XRAYS, liv::food, get_attr_value(), get_power_from_ench(), GIRDLE, GLOVES, liv::grace, HELMET, liv::hp, liv::luck, obj::magic, NROFATTACKS, NRSPELLPATHS, NUM_STATS, obj::path_attuned, obj::path_denied, obj::path_repelled, QUERY_FLAG, obj::resist, RING, SHIELD, obj::slaying, liv::sp, obj::stats, obj::type, and WEAPON.
Referenced by add_one_item(), fix_generated_item(), and local_check_loaded_object().
void calc_perm_exp | ( | object * | op | ) |
Ensure that the permanent experience requirements in an exp object are met. This really just checks 'op to make sure the perm_exp value is within proper range. Note that the checking of what is passed through has been reduced. Since there is now a proper field for perm_exp, this can now work on a much larger set of objects.
op | object to check. |
Definition at line 1897 of file living.c.
References liv::exp, MAX_EXPERIENCE, Settings::permanent_exp_ratio, settings, obj::stats, and obj::total_exp.
Referenced by add_player_exp(), and command_addexp().
int calculate_difficulty | ( | mapstruct * | m | ) |
This routine is supposed to find out the difficulty of the map. Difficulty does not have a lot to do with character level, but does have a lot to do with treasure on the map.
Difficulty can now be set by the map creature. If the value stored in the map is zero, then use this routine. Maps should really have a difficulty set than using this function - human calculation is much better than this functions guesswork.
m | map for which to compute difficulty. |
Definition at line 1921 of file map.c.
References archt::clone, liv::exp, FLAG_GENERATOR, FLAG_MONSTER, FOR_MAP_FINISH, FOR_MAP_PREPARE, GENERATE_TYPE, get_archetype_by_type_subtype(), level_exp(), MAP_DIFFICULTY, MAP_HEIGHT, MAP_WIDTH, QUERY_FLAG, and obj::stats.
Referenced by cfapi_map_get_map_property(), generate_random_map(), and mapfile_load().
int can_see_monsterP | ( | mapstruct * | m, |
int | x, | ||
int | y, | ||
int | dir | ||
) |
Recursive routine to see if we can find a path to a certain point.
Modified to be map tile aware -.MSW
m | map we're on |
x | |
y | origin coordinates |
dir | direction we're going to. Must be less than SIZEOFFREE. |
Definition at line 3601 of file object.c.
References can_see_monsterP(), freearr_x, freearr_y, get_map_flags(), P_BLOCKSVIEW, P_OUT_OF_MAP, and reduction_dir.
Referenced by can_see_monsterP(), do_skill_ident(), monster_find_nearest_living_creature(), and spell_find_dir().
Permanently alters an object's stats/flags based on another object.
Definition at line 395 of file living.c.
References liv::ac, add_string(), obj::arch, AT_CONFUSION, ATNR_PHYSICAL, obj::attacktype, BOW, change_attr_value(), change_resist_msg, check_stat_bounds(), CLEAR_FLAG, archt::clone, obj::contr, DIFF_MSG, pl::do_los, draw_ext_info(), draw_ext_info_format(), liv::exp, fix_object(), FLAG_APPLIED, FLAG_BLIND, FLAG_LIFESAVE, FLAG_MAKE_INVIS, FLAG_REFL_MISSILE, FLAG_REFL_SPELL, FLAG_SEE_IN_DARK, FLAG_STEALTH, FLAG_UNDEAD, FLAG_WIZ, FLAG_XRAYS, liv::food, free_string(), gain_msg, get_attr_value(), liv::grace, liv::hp, lose_msg, liv::luck, Settings::max_stat, MIN_STAT, MOVE_FLY_HIGH, MOVE_FLY_LOW, MOVE_SWIM, obj::move_type, MSG_TYPE_ATTRIBUTE, MSG_TYPE_ATTRIBUTE_ATTACKTYPE_GAIN, MSG_TYPE_ATTRIBUTE_ATTACKTYPE_LOSS, MSG_TYPE_ATTRIBUTE_BAD_EFFECT_END, MSG_TYPE_ATTRIBUTE_BAD_EFFECT_START, MSG_TYPE_ATTRIBUTE_GOOD_EFFECT_END, MSG_TYPE_ATTRIBUTE_GOOD_EFFECT_START, MSG_TYPE_ATTRIBUTE_MOVE, MSG_TYPE_ATTRIBUTE_PROTECTION_GAIN, MSG_TYPE_ATTRIBUTE_PROTECTION_LOSS, MSG_TYPE_ATTRIBUTE_RACE, MSG_TYPE_ATTRIBUTE_STAT_GAIN, MSG_TYPE_ATTRIBUTE_STAT_LOSS, NDI_BLUE, NDI_UNIQUE, NROFATTACKS, NUM_STATS, object_check_move_on(), pl::orig_stats, obj::path_attuned, obj::path_denied, obj::path_repelled, PLAYER, POTION, QUERY_FLAG, obj::race, obj::resist, set_attr_value(), SET_FLAG, settings, SKILL, liv::sp, obj::stats, obj::type, and liv::wc.
Referenced by apply_special(), become_follower(), blind_living(), blindness_type_process(), cast_bless(), cast_change_ability(), cast_curse(), cfapi_object_change_abil(), create_aura(), eat_special_food(), potion_type_apply(), remove_force(), swap_random_stats(), and unapply_special().
Like set_attr_value(), but instead the value (which can be negative) is added to the specified stat.
stats | item to modify. Must not be NULL. |
attr | attribute to change. |
value | delta (can be positive). |
Definition at line 265 of file living.c.
References liv::Cha, CHARISMA, liv::Con, CONSTITUTION, liv::Dex, DEXTERITY, liv::Int, INTELLIGENCE, llevError, LOG(), liv::Pow, POWER, liv::Str, STRENGTH, liv::Wis, and WISDOM.
Referenced by add_abilities(), alchemy_failure_effect(), apply_changes_to_player(), change_abil(), drain_specific_stat(), fix_object(), and kill_player_not_permadeath().
Changes experience to a player/monster. This does bounds checking to make sure we don't overflow the max exp.
The exp passed is typically not modified much by this function - it is assumed the caller has modified the exp as needed. skill_name is the skill that should get the exp added. flag is what to do if player doesn't have the skill. these last two values are only used for players.
op | victim to alter. |
exp | experience to gain (positive) or lose (negative). |
skill_name | skill to change. Can be NULL. |
flag |
|
Definition at line 2162 of file living.c.
References add_player_exp(), ADD_TOTALEXP, liv::exp, FABS, FLAG_ALIVE, obj::item_power, level_exp(), llevError, LOG(), MAX_EXPERIENCE, PLAYER, QUERY_FLAG, obj::stats, subtract_player_exp(), obj::total_exp, obj::type, and WEAPON.
Referenced by attempt_do_alchemy(), book_type_apply(), cfapi_object_change_exp(), cure_disease(), do_harvest(), do_hidden_move(), do_skill(), examine(), god_examines_priest(), hit_with_one_attacktype(), pay_for_item(), peacemaker_type_process(), scroll_type_apply(), sell_item(), share_exp(), spellbook_type_apply(), and try_leave_cult().
void change_luck | ( | object * | op, |
int | value | ||
) |
Alter the object's luck.
op | object to altar. |
value | delta to apply. 0 indicates timeout (moves luck towards 0), otherwise change the luck of the object via an applied bad_luck object in inventory. |
Definition at line 793 of file living.c.
References arch_present_in_ob(), arch_to_object(), FABS, find_archetype(), FLAG_APPLIED, liv::luck, object_insert_in_ob(), RANDOM, SET_FLAG, and obj::stats.
Referenced by fix_luck(), and kill_object().
int change_map_light | ( | mapstruct * | m, |
int | change | ||
) |
Used to change map light level (darkness) up or down. It should now be possible to change a value by more than 1.
Move this from los.c to map.c since this is more related to maps than los. postive values make it darker, negative make it brighter
Will inform players on the map.
m | map to change. |
change | delta of light. |
Definition at line 2003 of file map.c.
References mapdef::darkness, ext_info_map(), MAX_DARKNESS, MSG_SUBTYPE_NONE, MSG_TYPE_MISC, NDI_BLACK, and update_all_map_los().
Referenced by cast_change_map_lightlevel(), cfapi_map_change_light(), dawn_to_dusk(), and set_darkness_map().
int check_altar_sacrifice | ( | const object * | altar, |
const object * | sacrifice, | ||
int | remove_others, | ||
int * | toremove | ||
) |
Checks whether the altar has enough to sacrifice.
Function put in (0.92.1) so that identify altars won't grab money unnecessarily - we can see if there is sufficient money, see if something needs to be identified, and then remove money if needed.
0.93.4: Linked objects (ie, objects that are connected) can not be sacrificed. This fixes a bug of trying to put multiple altars/related objects on the same space that take the same sacrifice.
The function will now check for all items sitting on the altar, so that the player can put various matching but non merging items on the altar.
This function can potentially remove other items, if remove_others is set.
altar | item to which there is a sacrifice | |
sacrifice | object that may be sacrifed | |
remove_others | if 1, will remove enough items apart sacrifice to compensate for not having enough in sacrifice itself. | |
[out] | toremove | will contain the nrof of sacrifice to really remove to finish operating. Will be set if not NULL only if the function returns 1. |
Definition at line 352 of file button.c.
References ARCH_SACRIFICE, FLAG_UNPAID, FOR_ABOVE_FINISH, FOR_ABOVE_PREPARE, llevError, LOG(), obj::map, matches_sacrifice(), obj::nrof, NROF(), NROF_SACRIFICE, object_decrease_nrof(), object_remove(), mapdef::path, QUERY_FLAG, and obj::value.
Referenced by identify_altar_type_move_on(), and operate_altar().
Returns the maximum experience the object can gain or lose.
op | object which will be the victim. |
exp | experience to gain or lose. |
Definition at line 2085 of file living.c.
References check_exp_loss(), liv::exp, MAX_EXPERIENCE, MIN, and obj::stats.
Referenced by command_addexp().
This function checks to make sure that object 'op' can lose 'exp' experience. It basically makes adjustments based on permanent exp and the like. This function should always be used for losing experience - the 'exp' value passed should be positive - this is the amount that should get subtract from the player.
op | object from which to subtract. |
exp | experience to lose. |
Definition at line 2060 of file living.c.
References liv::exp, PERM_EXP, PERM_EXP_MAX_LOSS_RATIO, Settings::permanent_exp_ratio, settings, obj::stats, and obj::total_exp.
Referenced by apply_death_exp_penalty(), check_exp_adjust(), kill_object(), and subtract_player_exp().
void check_generators | ( | void | ) |
Check all generators have the other_arch set or something in inventory.
Definition at line 469 of file arch.c.
References archt::clone, fatal(), first_archetype, FLAG_CONTENT_ON_GEN, FLAG_GENERATOR, obj::inv, llevError, LOG(), archt::name, archt::next, obj::other_arch, QUERY_FLAG, and SEE_LAST_ERROR.
Referenced by load_archetypes().
Function to search the inventory, of a player and then based on a set of conditions, the square will activate connected items.
Monsters can't trigger this square (for now) Values are: last_sp = 1/0 obj/no obj triggers last_heal = 1/0 remove/dont remove obj if triggered -b.t. (thoma s@no mad.a stro .psu. edu
op | object to check. Must be a player. |
trig | trigger object that may be activated. |
Definition at line 830 of file button.c.
References check_inv_recursive(), obj::last_heal, obj::last_sp, object_decrease_nrof_by_one, PLAYER, obj::type, and use_trigger().
Referenced by check_inv_type_move_on().
Checks object and its inventory for specific item.
It will descend through containers to find the object. slaying = match object slaying flag race = match object archetype name flag hp = match object type (excpt type '0'== PLAYER) title = match object title unpaid = 1 -> match only unpaid, 0 -> match only not unpaid Searching by title only is not recommended, as it can be a rather slow operation; use it in combination with archetype or type.
op | object of which to search inventory |
trig | what to search |
Definition at line 787 of file button.c.
References obj::arch, check_inv_recursive(), FLAG_UNPAID, FOR_INV_FINISH, FOR_INV_PREPARE, liv::hp, archt::name, QUERY_FLAG, obj::race, obj::slaying, obj::stats, obj::title, and obj::type.
Referenced by blocked_link(), check_inv(), check_inv_recursive(), town_portal_destroy_existing(), and town_portal_find_force().
int check_path | ( | const char * | name, |
int | prepend_dir | ||
) |
This function checks if a file with the given path exists.
name | map path to check. |
prepend_dir | If set, then we call create_pathname (which prepends libdir & mapdir). Otherwise, we assume the name given is fully complete. |
Definition at line 211 of file map.c.
References create_pathname(), MAX_BUF, S_IRGRP, S_IROTH, S_IRUSR, S_ISREG, S_IWGRP, S_IWOTH, S_IWUSR, and strlcpy().
Referenced by cfapi_system_check_path(), and check_login().
Ensures that all stats (str/dex/con/wis/cha/int) are within the passed in range of min_stat and max_stat. Often, the caller will pass in MIN_STAT and MAX_STAT, but in case of force objects or temporary calculations, we want things outside the range (force objects may have negative stats, but we don't want them too negative)
stats | attributes to check. |
min_stat | lowest the stat can be |
max_stat | highest the stat can be |
Definition at line 355 of file living.c.
References get_attr_value(), NUM_STATS, and set_attr_value().
Referenced by change_abil(), do_symptoms(), fix_object(), fix_player(), and kill_player_not_permadeath().
void check_summoned | ( | void | ) |
This checks all summonable items for move_type and other things. Will call fatal() if an error is found.
Definition at line 497 of file arch.c.
References archt::clone, fatal(), first_archetype, llevError, LOG(), obj::move_type, obj::name, archt::name, archt::next, obj::other_arch, SEE_LAST_ERROR, SP_SUMMON_GOLEM, SPELL, obj::subtype, and obj::type.
Referenced by load_archetypes().
cause == NULL: nothing has moved, we have been called from animate_trigger().
TRIGGER_ALTAR: Returns 1 if 'cause' was destroyed, 0 if not.
TRIGGER: Returns 1 if handle could be moved, 0 if not.
TRIGGER_BUTTON, TRIGGER_PEDESTAL: Returns 0.
Definition at line 523 of file button.c.
References liv::ac, FOR_ABOVE_FINISH, FOR_ABOVE_PREPARE, obj::last_sp, llevDebug, LOG(), obj::move_on, obj::move_type, obj::name, NROF(), NUM_ANIMATIONS, object_update(), object_update_speed(), operate_altar(), PLAYER, push(), obj::race, SET_ANIMATION, obj::slaying, obj::speed, obj::stats, TRIGGER, TRIGGER_ALTAR, TRIGGER_BUTTON, trigger_move(), TRIGGER_PEDESTAL, obj::type, UP_OBJ_FACE, obj::value, liv::wc, and obj::weight.
Referenced by animate_trigger(), apply_auto_fix(), cfapi_object_check_trigger(), do_auto_apply(), trigger_altar_type_move_on(), trigger_button_type_move_on(), trigger_pedestal_type_move_on(), trigger_type_apply(), and trigger_type_process().
void clean_friendly_list | ( | void | ) |
It traverses the friendly list removing objects that should not be here (ie, do not have friendly flag set, freed, etc)
Definition at line 111 of file friend.c.
References first_friendly_object, FLAG_FREED, FLAG_FRIENDLY, llevDebug, LOG(), oblnk::next, and QUERY_FLAG.
Referenced by do_specials().
void clean_object | ( | object * | op | ) |
Remove and free all objects in the inventory of the given object.
op | object to clean. |
Definition at line 1626 of file map.c.
References clean_object(), FLAG_IS_LINKED, FOR_INV_FINISH, FOR_INV_PREPARE, object_free_drop_inventory(), object_remove(), QUERY_FLAG, and remove_button_link().
Referenced by cfapi_object_clean_object(), clean_object(), delete_unique_items(), and free_all_objects().
void clean_tmp_map | ( | mapstruct * | m | ) |
Removse the temporary file used by the map.
m | map, which mustn't be NULL but can have no temporary file set. |
Definition at line 1962 of file map.c.
References mapdef::tmpname, and unlink.
Referenced by clean_tmp_files(), flush_old_maps(), and ready_map_name().
void clear_archetable | ( | void | ) |
Initialise the hashtable used by the archetypes.
Definition at line 208 of file arch.c.
References ARCHTABLE.
Referenced by free_all_archs(), load_archetypes(), and START_TEST().
void clear_los | ( | player * | pl | ) |
Clears/initialises the los-array associated to the player controlling the object.
pl | player to clear. |
Definition at line 252 of file los.c.
References pl::blocked_los, MAP_CLIENT_X, and MAP_CLIENT_Y.
Referenced by do_wizard_dm(), get_player(), and update_los().
void clear_player | ( | player * | pl | ) |
Clears data in player structure.
Socket isn't touched. Nor is anything that doesn't need to be freed. So you may need to do a memset() to clear out values.
pl | player to clear. Pointer is still valid, and can be reused for "play again". |
Definition at line 33 of file player.c.
References FREE_AND_CLEAR_STR, client_spell::next, pl::spell_state, pl::stack_items, pl::stack_position, and pl::unarmed_skill.
Referenced by free_player(), and get_player().
object* create_archetype | ( | const char * | name | ) |
Finds which archetype matches the given name, and returns a new object containing a copy of the archetype.
name | archetype name |
Definition at line 620 of file arch.c.
References arch_to_object(), create_singularity(), and find_archetype().
Referenced by alchemy_failure_effect(), apply_handle_yield(), become_follower(), blind_living(), cast_bless(), cast_cause_disease(), cast_change_ability(), cast_create_missile(), cast_create_town_portal(), cast_curse(), cast_spell(), cast_word_of_recall(), change_book(), charge_mana_effect(), command_use(), confuse_living(), convert_item(), converter_type_move_on(), create_aura(), do_symptoms(), eat_special_food(), examine_monster(), find_or_create_connection_for_map(), find_transmution_ob(), fire_swarm(), fix_generated_item(), god_examines_priest(), god_intervention(), grant_immunity(), keyplace(), kill_object(), kill_player_not_permadeath(), local_check_loaded_object(), locate_recipe_artifact(), lock_and_hide_doors(), make_object_glow(), move_marker(), CREMainWindow::onReportSpellDamage(), place_alchemy_objects(), place_chest(), place_exits(), potion_type_apply(), pray_at_altar(), prayer_failure(), put_a_monster(), recharge(), save_throw_object(), scroll_failure(), second_arch_pass(), setup(), spell_failure(), START_TEST(), surround_by_doors(), swap_random_stats(), town_portal_destroy_existing(), transmute_item_to_flower(), trap_show(), and write_rune().
object* create_archetype_by_object_name | ( | const char * | name | ) |
Creates an object given the name that appears during the game (for example, "writing pen" instead of "stylus").
name | the name we're searching for (ex: "writing pen"), must not be null |
Definition at line 161 of file arch.c.
References arch_to_object(), create_singularity(), find_archetype_by_object_name(), and MAX_BUF.
Referenced by god_intervention(), local_check_loaded_object(), and START_TEST().
void create_overlay_pathname | ( | const char * | name, |
char * | buf, | ||
size_t | size | ||
) |
Same as create_pathname(), but for the overlay maps. /
name | path of the overlay map. |
buf | buffer that will contain the full path. |
size | buffer's length. |
Definition at line 133 of file map.c.
References Settings::localdir, Settings::mapdir, settings, and snprintf.
Referenced by cfapi_map_create_path(), command_overlay_reset(), load_overlay_map(), mapfile_load(), and save_map().
char* create_pathname | ( | const char * | name, |
char * | buf, | ||
size_t | size | ||
) |
Get the full path to a map file. This simply means prepending the correct map directory to the given path.
name | path of the map. |
buf | buffer that will contain the full path. |
size | buffer's length. |
Definition at line 112 of file map.c.
References Settings::datadir, Settings::mapdir, settings, and snprintf.
Referenced by CREMapInformationManager::browseMaps(), cfapi_map_create_path(), check_path(), enter_fixed_template_map(), mapfile_load(), CREMapInformationManager::process(), process_map(), and save_map().
object* create_singularity | ( | const char * | name | ) |
Creates a dummy object. This function is called by get_archetype() if it fails to find the appropriate archetype. Thus get_archetype() will be guaranteed to always return an object, and never NULL.
name | name to give the dummy object. |
Definition at line 597 of file arch.c.
References add_string(), obj::arch, ARCH_SINGULARITY, empty_archetype, FLAG_NO_PICK, MAX_BUF, obj::name, obj::name_pl, object_new(), SET_FLAG, and snprintf.
Referenced by create_archetype(), create_archetype_by_object_name(), and START_TEST().
void create_template_pathname | ( | const char * | name, |
char * | buf, | ||
size_t | size | ||
) |
same as create_pathname(), but for the template maps.
name | path of the template map. |
buf | buffer that will contain the full path. |
size | buf's length |
Definition at line 153 of file map.c.
References Settings::localdir, settings, snprintf, and Settings::templatedir.
Referenced by enter_fixed_template_map(), and enter_random_template_map().
void decay_objects | ( | mapstruct * | m | ) |
Decay and destroy persihable items in a map
Definition at line 175 of file utils.c.
References CLOAK, FLAG_IS_FLOOR, FLAG_OBJ_ORIGINAL, FLAG_OVERLAY_FLOOR, FLAG_UNIQUE, FLAG_UNPAID, FOOD, FOR_MAP_FINISH, FOR_MAP_PREPARE, GIRDLE, GLOVES, IS_ARMOR, IS_LIVE, IS_SHIELD, IS_WEAPON, M_ADAMANT, M_BONE, M_CLOTH, M_GLASS, M_ICE, M_IRON, M_LEATHER, M_LIQUID, M_ORGANIC, M_PAPER, M_SOFT_METAL, M_STONE, M_WOOD, MAP_HEIGHT, MAP_WIDTH, object_free_drop_inventory(), object_remove(), QUERY_FLAG, rndm(), and mapdef::unique.
Referenced by ready_map_name().
void delete_map | ( | mapstruct * | m | ) |
Frees the map, including the mapstruct.
This deletes all the data on the map (freeing pointers) and then removes this map from the global linked list of maps.
m | pointer to mapstruct, if NULL no action. Will be invalid after this function. |
Definition at line 1736 of file map.c.
References first_map, free_map(), mapdef::in_memory, llevError, LOG(), MAP_IN_MEMORY, MAP_SAVING, mapdef::next, mapdef::path, mapdef::tile_map, and mapdef::tmpname.
Referenced by cfapi_map_delete_map(), flush_old_maps(), free_all_maps(), free_style_maps(), init_dynamic(), key_confirm_quit(), mapfile_load(), monsterFight(), CREMapInformationManager::process(), process_map(), ready_map_name(), START_TEST(), swap_map(), and teardown().
StringBuffer* describe_attacktype | ( | const char * | attack, |
int | value, | ||
StringBuffer * | buf | ||
) |
Describe the specified attack type.
attack | string describing the attack ("Clawing", and such). |
value | attack type to describe. |
buf | where to describe, can be NULL. |
Definition at line 562 of file utils.c.
References attacks, NROFATTACKS, stringbuffer_append_printf(), stringbuffer_append_string(), and stringbuffer_new().
Referenced by describe_item(), and describe_monster().
int describe_god | ( | const object * | god, |
int | what, | ||
StringBuffer * | buf, | ||
size_t | maxlen | ||
) |
Describe a god. The reason we return a combination is to know what exactly was written for knowledge management.
god | which god to describe. |
what | information to describe, combination of GOD_xxx flags. |
buf | where to describe, must not be NULL. |
maxlen | maximum wanted length of the description, if 0 no maximum length. |
Definition at line 137 of file holy.c.
References attacktype_desc, describe_resistance(), describe_spellpath_attenuation(), GOD_BLESSED, GOD_ENEMY, GOD_HOLYWORD, GOD_IMMUNITIES, GOD_PATHS, GOD_RESISTANCES, GOD_SACRED, HUGE_BUF, MAX_BUF, obj::msg, obj::name, NROFATTACKS, nstrtok(), obj::path_attuned, obj::path_denied, obj::path_repelled, PATH_SUMMON, PATH_TURNING, obj::race, obj::resist, obj::slaying, snprintf, stringbuffer_append_printf(), stringbuffer_append_string(), stringbuffer_append_stringbuffer(), stringbuffer_finish(), stringbuffer_length(), stringbuffer_new(), strtoktolin(), and obj::title.
Referenced by god_info_msg(), and knowledge_god_detail().
StringBuffer* describe_item | ( | const object * | op, |
const object * | owner, | ||
int | use_media_tags, | ||
StringBuffer * | buf | ||
) |
Describes an item, in all its details.
It would be really handy to actually pass another object pointer on who is examining this object. Then, you could reveal certain information depending on what the examiner knows, eg, wouldn't need to use the SEE_INVISIBLE flag to know it is a dragon player examining food. Could have things like a dwarven axe, in which the full abilities are only known to dwarves, etc.
Add 'owner' who is the person examining this object. owner can be null if no one is being associated with this item (eg, debug dump or the like)
op | object to describe. Must not be NULL. |
owner | player examining the object. |
use_media_tags | if non-zero, then media tags (colors and such) are inserted in the description. This enables the player to more easily see some things. |
buf | buffer that will contain the description. Can be NULL. |
Definition at line 935 of file item.c.
References liv::ac, AMULET, ARMOUR, ARMOUR_SPEED, ARMOUR_SPELLS, ARROW, atnr_is_dragon_enabled(), obj::attacktype, BOOTS, BOW, BRACERS, change_resist_msg, CLOAK, liv::dam, describe_attacktype(), describe_monster(), describe_resistance(), describe_spellpath_attenuation(), DRINK, liv::exp, FLAG_BEEN_APPLIED, FLAG_CURSED, FLAG_LIFESAVE, FLAG_MONSTER, FLAG_REFL_MISSILE, FLAG_REFL_SPELL, FLAG_SEE_IN_DARK, FLAG_STEALTH, FLAG_XRAYS, FLESH, FMT64, liv::food, FOOD, FORCE, get_attr_value(), GIRDLE, GLOVES, obj::glow_radius, liv::grace, HELMET, liv::hp, is_dragon_pl(), is_identified(), obj::item_power, LAMP, obj::last_eat, obj::level, liv::luck, obj::magic, MOVE_FLY_HIGH, MOVE_FLY_LOW, MOVE_SWIM, obj::move_type, NUM_STATS, obj::path_attuned, obj::path_denied, obj::path_repelled, PLAYER, QUERY_FLAG, RING, ring_desc(), ROD, SHIELD, short_stat_name, SKILL, SKILL_TOOL, obj::slaying, liv::sp, obj::stats, stringbuffer_append_printf(), stringbuffer_append_string(), stringbuffer_new(), obj::type, WAND, liv::wc, WEAPON, and WEAPON_SPEED.
Referenced by artifact_describe(), CREArtifactPanel::artifactChanged(), cfapi_object_describe(), common_ob_describe(), dump_abilities(), knowledge_monster_detail(), mon_desc(), perceive_self(), and START_TEST().
StringBuffer* describe_monster | ( | const object * | op, |
int | use_media_tags, | ||
StringBuffer * | buf | ||
) |
Describes a monster.
op | monster to describe. Must not be NULL, and must have FLAG_MONSTER or be a PLAYER. |
use_media_tags | if non-zero, then media tags (colors and such) are inserted in the description. This enables the player to more easily see some things. |
buf | buffer that will contain the description. Can be NULL. |
Definition at line 761 of file item.c.
References obj::attacktype, archt::clone, obj::contr, describe_attacktype(), describe_resistance(), describe_spellpath_attenuation(), pl::digestion, FABS, FLAG_CAN_USE_SKILL, FLAG_CAST_SPELL, FLAG_FRIENDLY, FLAG_HITBACK, FLAG_MONSTER, FLAG_SEE_INVISIBLE, FLAG_STEALTH, FLAG_UNAGGRESSIVE, FLAG_UNDEAD, FLAG_USE_ARMOUR, FLAG_USE_BOW, FLAG_USE_RANGE, FLAG_USE_RING, FLAG_USE_SCROLL, FLAG_USE_WEAPON, pl::gen_grace, pl::gen_hp, pl::gen_sp, is_dragon_pl(), treasurestruct::item, treasureliststruct::items, liv::luck, MIN_ACTIVE_SPEED, obj::name, treasurestruct::next, object_find_by_type_and_name(), obj::path_attuned, obj::path_denied, obj::path_repelled, PLAYER, QUERY_FLAG, obj::randomitems, SKILL, obj::speed, SPELL, obj::stats, stringbuffer_append_printf(), stringbuffer_append_string(), stringbuffer_new(), and obj::type.
Referenced by describe_item(), and START_TEST().