summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/birth.c10
-rw-r--r--src/defines.h2
-rw-r--r--src/externs.h5
-rw-r--r--src/init1.c28
-rw-r--r--src/init2.c35
-rw-r--r--src/loadsave.c7
-rw-r--r--src/player.pkg8
-rw-r--r--src/powers.c11
-rw-r--r--src/spells.pkg6
-rw-r--r--src/spells2.c2
-rw-r--r--src/tables.c2
-rw-r--r--src/types.h4
-rw-r--r--src/variable.c6
-rw-r--r--src/xtra1.c13
14 files changed, 37 insertions, 102 deletions
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
@@ -1480,12 +1480,6 @@ hist_type *bg;
int max_bg_idx;
/*
- * Powers
- */
-s16b power_max = POWER_MAX_INIT;
-power_type *powers_type;
-
-/*
* Variable savefile stuff
*/
s32b extra_savefile_parts = 0;
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_);
}