From b6c2bf9050a56841bb5a82549fd36a98b03e2f41 Mon Sep 17 00:00:00 2001 From: Bardur Arantsson Date: Sat, 7 Apr 2012 16:16:17 +0200 Subject: Lua: Remove unnecessary dynamism from "powers" handling --- src/birth.c | 10 +--------- src/defines.h | 2 +- src/externs.h | 5 +---- src/init1.c | 28 ++++++++++++++-------------- src/init2.c | 35 ----------------------------------- src/loadsave.c | 7 +++---- src/player.pkg | 8 ++++---- src/powers.c | 11 ++++------- src/spells.pkg | 6 ------ src/spells2.c | 2 +- src/tables.c | 2 +- src/types.h | 4 ++-- src/variable.c | 6 ------ src/xtra1.c | 13 +++++-------- 14 files changed, 37 insertions(+), 102 deletions(-) (limited to 'src') diff --git a/src/birth.c b/src/birth.c index f050f9d1..47b806e7 100644 --- a/src/birth.c +++ b/src/birth.c @@ -822,21 +822,13 @@ static void player_wipe(void) { int i, j; - bool_ *powers; - /* Wipe special levels */ wipe_saved(); - /* Save the powers & corruptions */ - powers = p_ptr->powers; - /* Hack -- zero the struct */ p_ptr = WIPE(p_ptr, player_type); - /* Restore the powers & corruptions */ - p_ptr->powers = powers; - /* Not dead yet */ p_ptr->lives = 0; @@ -1039,7 +1031,7 @@ static void player_wipe(void) p_ptr->loan = p_ptr->loan_time = 0; /* Wipe the power list */ - for (i = 0; i < POWER_MAX_INIT; i++) + for (i = 0; i < POWER_MAX; i++) { p_ptr->powers_mod[i] = 0; } diff --git a/src/defines.h b/src/defines.h index 95c8eff5..1e36119f 100644 --- a/src/defines.h +++ b/src/defines.h @@ -4301,7 +4301,7 @@ /* * Powers (mutation, activations, ...) */ -#define POWER_MAX_INIT 65 +#define POWER_MAX 65 #define PWR_SPIT_ACID 0 #define PWR_BR_FIRE 1 diff --git a/src/externs.h b/src/externs.h index c400d76f..1d2a9c79 100644 --- a/src/externs.h +++ b/src/externs.h @@ -84,7 +84,7 @@ extern activation activation_info[MAX_T_ACT]; extern inscription_info_type inscription_info[MAX_INSCRIPTIONS]; extern cptr sense_desc[]; extern flags_group flags_groups[MAX_FLAG_GROUP]; -extern power_type powers_type_init[POWER_MAX_INIT]; +extern power_type powers_type[POWER_MAX]; extern quest_type quest_info[MAX_Q_IDX_INIT]; extern cptr artifact_names_list; extern monster_power monster_powers[96]; @@ -564,8 +564,6 @@ extern u32b dungeon_flags2; extern birther previous_char; extern hist_type *bg; extern int max_bg_idx; -extern power_type *powers_type; -extern s16b power_max; extern s32b extra_savefile_parts; extern s16b max_q_idx; extern quest_type *quest; @@ -978,7 +976,6 @@ extern void init_spells(s16b new_size); extern void init_schools(s16b new_size); extern void reinit_gods(s16b new_size); extern void reinit_quests(s16b new_size); -extern void reinit_powers_type(s16b new_size); extern void create_stores_stock(int t); extern errr init_v_info(void); extern void init_file_paths(char *path); diff --git a/src/init1.c b/src/init1.c index 9715831d..4c7e7035 100644 --- a/src/init1.c +++ b/src/init1.c @@ -2047,12 +2047,12 @@ errr init_player_info_txt(FILE *fp, char *buf) s = buf + 4; /* Find it in the list */ - for (i = 0; i < power_max; i++) + for (i = 0; i < POWER_MAX; i++) { if (!stricmp(s, powers_type[i].name)) break; } - if (i == power_max) return (6); + if (i == POWER_MAX) return (6); rp_ptr->powers[powers++] = i; @@ -2425,12 +2425,12 @@ errr init_player_info_txt(FILE *fp, char *buf) s = buf + 4; /* Find it in the list */ - for (i = 0; i < power_max; i++) + for (i = 0; i < POWER_MAX; i++) { if (!stricmp(s, powers_type[i].name)) break; } - if (i == power_max) return (6); + if (i == POWER_MAX) return (6); rmp_ptr->powers[powers++] = i; @@ -2948,12 +2948,12 @@ errr init_player_info_txt(FILE *fp, char *buf) s = buf + 4; /* Find it in the list */ - for (i = 0; i < power_max; i++) + for (i = 0; i < POWER_MAX; i++) { if (!stricmp(s, powers_type[i].name)) break; } - if (i == power_max) return (6); + if (i == POWER_MAX) return (6); c_ptr->powers[powers++] = i; @@ -4352,12 +4352,12 @@ errr init_k_info_txt(FILE *fp, char *buf) s = buf + 2; /* Find it in the list */ - for (i = 0; i < power_max; i++) + for (i = 0; i < POWER_MAX; i++) { if (!stricmp(s, powers_type[i].name)) break; } - if (i == power_max) return (6); + if (i == POWER_MAX) return (6); k_ptr->power = i; @@ -5238,12 +5238,12 @@ errr init_a_info_txt(FILE *fp, char *buf) s = buf + 2; /* Find it in the list */ - for (i = 0; i < power_max; i++) + for (i = 0; i < POWER_MAX; i++) { if (!stricmp(s, powers_type[i].name)) break; } - if (i == power_max) return (6); + if (i == POWER_MAX) return (6); a_ptr->power = i; @@ -6763,12 +6763,12 @@ errr init_e_info_txt(FILE *fp, char *buf) s = buf + 2; /* Find it in the list */ - for (i = 0; i < power_max; i++) + for (i = 0; i < POWER_MAX; i++) { if (!stricmp(s, powers_type[i].name)) break; } - if (i == power_max) return (6); + if (i == POWER_MAX) return (6); e_ptr->power = i; @@ -7252,12 +7252,12 @@ errr init_ra_info_txt(FILE *fp, char *buf) s = buf + 2; /* Find it in the list */ - for (i = 0; i < power_max; i++) + for (i = 0; i < POWER_MAX; i++) { if (!stricmp(s, powers_type[i].name)) break; } - if (i == power_max) return (6); + if (i == POWER_MAX) return (6); ra_ptr->power = i; diff --git a/src/init2.c b/src/init2.c index 015a1c0f..8a20cfb3 100644 --- a/src/init2.c +++ b/src/init2.c @@ -1959,13 +1959,6 @@ static errr init_misc(void) /* Hack -- No messages yet */ message__tail = MESSAGE_BUF; - /* Prepare powers */ - p_ptr->powers = NULL; - powers_type = NULL; - power_max = POWER_MAX_INIT; - reinit_powers_type(power_max); - C_COPY(powers_type, powers_type_init, POWER_MAX_INIT, power_type); - /* Prepare quests */ quest = NULL; max_q_idx = MAX_Q_IDX_INIT; @@ -2080,34 +2073,6 @@ static errr init_wilderness(void) return 0; } -/* - * XXX XXX XXX XXX XXX Realloc is not guaranteed to work (see main-gtk.c - * and main-mac.c. - */ -void reinit_powers_type(s16b new_size) -{ - power_type *new_powers_type; - bool_ *new_powers; - - C_MAKE(new_powers_type, new_size, power_type); - C_MAKE(new_powers, new_size, bool_); - - /* Reallocate the extra memory */ - if (powers_type && p_ptr->powers) - { - C_COPY(new_powers_type, powers_type, power_max, power_type); - C_COPY(new_powers, p_ptr->powers, power_max, bool_); - - C_FREE(powers_type, power_max, power_type); - C_FREE(p_ptr->powers, power_max, bool_); - } - - powers_type = new_powers_type; - p_ptr->powers = new_powers; - - power_max = new_size; -} - void reinit_quests(s16b new_size) { quest_type *new_quest; diff --git a/src/loadsave.c b/src/loadsave.c index 74b5112c..56ebfaa9 100644 --- a/src/loadsave.c +++ b/src/loadsave.c @@ -637,12 +637,11 @@ static bool_ do_extra(int flag) /* Are we in astral mode? */ do_byte((byte*)&p_ptr->astral, flag); - if (flag == LS_SAVE) tmp16s = POWER_MAX_INIT; + if (flag == LS_SAVE) tmp16s = POWER_MAX; do_s16b(&tmp16s, flag); - if ((flag == LS_LOAD) && (tmp16s > POWER_MAX_INIT)) + if ((flag == LS_LOAD) && (tmp16s > POWER_MAX)) note(format("Too many (%u) powers!", tmp16s)); - if (flag == LS_SAVE) tmp16s = POWER_MAX_INIT; - for (i = 0; i < tmp16s; i++) + for (i = 0; i < POWER_MAX; i++) do_byte((byte*)&p_ptr->powers_mod[i], flag); skip_ver_byte(100, flag); diff --git a/src/player.pkg b/src/player.pkg index e5d64cbc..0466b322 100644 --- a/src/player.pkg +++ b/src/player.pkg @@ -1766,15 +1766,15 @@ struct player_type */ byte body_parts[28]; - /** @structvar powers_mod[POWER_MAX_INIT] + /** @structvar powers_mod[POWER_MAX] * @brief Boolean * @note Intrinsinc powers */ - bool powers_mod[POWER_MAX_INIT]; - /** @structvar powers[power_max] + bool powers_mod[POWER_MAX]; + /** @structvar powers[POWER_MAX] * @brief Boolean */ - bool powers[power_max]; + bool powers[POWER_MAX]; /** @structvar spellbinder_num * @brief Number diff --git a/src/powers.c b/src/powers.c index 2f0206aa..613968df 100644 --- a/src/powers.c +++ b/src/powers.c @@ -1297,11 +1297,10 @@ static power_type* select_power(int *x_idx) int max = 0, i, start = 0; power_type* ret; bool_ mode = FALSE; - int *p; + int p[POWER_MAX]; - C_MAKE(p, power_max, int); /* Count the max */ - for (i = 0; i < power_max; i++) + for (i = 0; i < POWER_MAX; i++) { if (p_ptr->powers[i]) { @@ -1375,8 +1374,6 @@ static power_type* select_power(int *x_idx) character_icky = FALSE; } - C_FREE(p, power_max, int); - return ret; } @@ -1390,7 +1387,7 @@ void do_cmd_power() /* Get the skill, if available */ if (repeat_pull(&x_idx)) { - if ((x_idx < 0) || (x_idx >= power_max)) return; + if ((x_idx < 0) || (x_idx >= POWER_MAX)) return; x_ptr = &powers_type[x_idx]; push = FALSE; } @@ -1398,7 +1395,7 @@ void do_cmd_power() else { x_idx = command_arg - 1; - if ((x_idx < 0) || (x_idx >= power_max)) return; + if ((x_idx < 0) || (x_idx >= POWER_MAX)) return; x_ptr = &powers_type[x_idx]; } diff --git a/src/spells.pkg b/src/spells.pkg index 041959d6..6ca95cfc 100644 --- a/src/spells.pkg +++ b/src/spells.pkg @@ -2163,12 +2163,6 @@ extern magic_power *grab_magic_power @ get_magic_power(magic_power *m_ptr, int n */ extern bool lua_spell_success @ magic_power_sucess(magic_power *spell, int stat, char *oups_fct=NULL); -/** @var power_max - * @brief Number - * @note Maximum number of innate powers. - */ -extern s16b power_max; - /* Schools */ /** @struct school_spell_type diff --git a/src/spells2.c b/src/spells2.c index 6fb1b1b9..4adab78a 100644 --- a/src/spells2.c +++ b/src/spells2.c @@ -1089,7 +1089,7 @@ void self_knowledge(FILE *fff) } /* List powers */ - for (iter = 0; iter < power_max; iter++) + for (iter = 0; iter < POWER_MAX; iter++) { if (p_ptr->powers[iter]) { diff --git a/src/tables.c b/src/tables.c index 3df97271..b736bb85 100644 --- a/src/tables.c +++ b/src/tables.c @@ -3135,7 +3135,7 @@ flags_group flags_groups[MAX_FLAG_GROUP] = }; /* Powers */ -power_type powers_type_init[POWER_MAX_INIT] = +power_type powers_type[POWER_MAX] = { { "spit acid", diff --git a/src/types.h b/src/types.h index cd08476a..1c9df3f8 100644 --- a/src/types.h +++ b/src/types.h @@ -1827,8 +1827,8 @@ struct player_type bool_ astral; /* We started at the bottom ? */ /* Powers */ - bool_ *powers; /* Actual powers */ - bool_ powers_mod[POWER_MAX_INIT]; /* Intrinsinc powers */ + bool_ powers[POWER_MAX]; /* Actual powers */ + bool_ powers_mod[POWER_MAX]; /* Intrinsinc powers */ /* Skills */ s16b skill_points; diff --git a/src/variable.c b/src/variable.c index 8ad1d14f..52e16e01 100644 --- a/src/variable.c +++ b/src/variable.c @@ -1479,12 +1479,6 @@ birther previous_char; hist_type *bg; int max_bg_idx; -/* - * Powers - */ -s16b power_max = POWER_MAX_INIT; -power_type *powers_type; - /* * Variable savefile stuff */ diff --git a/src/xtra1.c b/src/xtra1.c index 54c079b8..029aa1a5 100644 --- a/src/xtra1.c +++ b/src/xtra1.c @@ -1569,7 +1569,7 @@ bool_ calc_powers_silent = FALSE; static void calc_powers(void) { int i, p = 0; - bool_ *old_powers; + bool_ old_powers[POWER_MAX]; /* Hack -- wait for creation */ if (!character_generated) return; @@ -1577,14 +1577,12 @@ static void calc_powers(void) /* Hack -- handle "xtra" mode */ if (character_xtra) return; - C_MAKE(old_powers, power_max, bool_); - /* Save old powers */ - for (i = 0; i < power_max; i++) old_powers[i] = p_ptr->powers[i]; + for (i = 0; i < POWER_MAX; i++) old_powers[i] = p_ptr->powers[i]; /* Get intrinsincs */ - for (i = 0; i < POWER_MAX_INIT; i++) p_ptr->powers[i] = p_ptr->powers_mod[i]; - for (; i < power_max; i++) p_ptr->powers[i] = 0; + for (i = 0; i < POWER_MAX; i++) p_ptr->powers[i] = p_ptr->powers_mod[i]; + for (; i < POWER_MAX; i++) p_ptr->powers[i] = 0; /* Calculate powers granted by corruptions */ calc_powers_corruption(); @@ -1632,7 +1630,7 @@ static void calc_powers(void) } /* Now lets warn the player */ - for (i = 0; i < power_max; i++) + for (i = 0; i < POWER_MAX; i++) { s32b old = old_powers[i]; s32b new_ = p_ptr->powers[i]; @@ -1648,7 +1646,6 @@ static void calc_powers(void) } calc_powers_silent = FALSE; - C_FREE(old_powers, power_max, bool_); } -- cgit v1.2.3