void spell_stats_on_load(savefile_ptr file) { str_map_ptr map = _spell_stats_map(); int ct, i; str_map_clear(map); ct = savefile_read_s32b(file); for (i = 0; i < ct; i++) { char name[255]; spell_stats_ptr stats = malloc(sizeof(spell_stats_t)); memset(stats, 0, sizeof(spell_stats_t)); savefile_read_cptr(file, name, sizeof(name)); stats->flags = savefile_read_u32b(file); stats->ct_cast = savefile_read_s32b(file); stats->ct_fail = savefile_read_s32b(file); stats->skill = savefile_read_s32b(file); stats->max_skill = savefile_read_s32b(file); stats->last_turn = savefile_read_s32b(file); str_map_add(map, name, stats); } }
void skills_on_birth(void) { int i, j; int class_idx = _class_idx(); for (i = 0; i < 5; i++) { for (j = 0; j < 64; j++) { if (i == TV_BOW-TV_WEAPON_BEGIN && demigod_is_(DEMIGOD_ARTEMIS)) p_ptr->weapon_exp[i][j] = WEAPON_EXP_BEGINNER; else if (demigod_is_(DEMIGOD_ARES)) p_ptr->weapon_exp[i][j] = WEAPON_EXP_BEGINNER; else p_ptr->weapon_exp[i][j] = s_info[class_idx].w_start[i][j]; } } if (p_ptr->personality == PERS_SEXY) p_ptr->weapon_exp[TV_HAFTED-TV_WEAPON_BEGIN][SV_WHIP] = MAX(WEAPON_EXP_BEGINNER, p_ptr->weapon_exp[TV_HAFTED-TV_WEAPON_BEGIN][SV_WHIP]); for (i = 0; i < 10; i++) p_ptr->skill_exp[i] = s_info[class_idx].s_start[i]; if (warlock_is_(WARLOCK_DRAGONS)) p_ptr->skill_exp[SKILL_RIDING] = RIDING_EXP_BEGINNER; str_map_clear(_innate_map()); }
void skills_on_load(savefile_ptr file) { str_map_ptr map = _innate_map(); int ct, i; str_map_clear(map); ct = savefile_read_s32b(file); for (i = 0; i < ct; i++) { char name[255]; _skill_info_ptr info = malloc(sizeof(_skill_info_t)); savefile_read_cptr(file, name, sizeof(name)); info->current = savefile_read_s32b(file); info->max = savefile_read_s32b(file); str_map_add(map, name, info); } /* TODO: Spell Skills for Bookless Casters */ ct = savefile_read_s32b(file); }
void str_map_free(str_map_ptr map) { str_map_clear(map); free(map); }
void spell_stats_on_birth(void) { str_map_ptr map = _spell_stats_map(); str_map_clear(map); }