included in all such copies.
*/
-#include "angband.h"
+#include "system/angband.h"
#include "avatar.h"
-#include "realm.h"
-#include "player-race.h"
-#include "player-class.h"
+#include "realm/realm.h"
+#include "player/player-race.h"
+#include "player/player-class.h"
/*!
* 徳の名称 / The names of the virtues
* @return 比較の真偽値を返す
* @todo 引数名を直しておく
*/
-bool compare_virtue(int type, int num, int tekitou)
+bool compare_virtue(player_type *creature_ptr, int type, int num, int tekitou)
{
int vir;
- if (virtue_number(type))
- vir = p_ptr->virtues[virtue_number(type) - 1];
+ if (virtue_number(creature_ptr, type))
+ vir = creature_ptr->virtues[virtue_number(creature_ptr, type) - 1];
else
vir = 0;
* @param type 確認したい徳のID
* @return スロットがあるならばスロットのID(0~7)+1、ない場合は0を返す。
*/
-int virtue_number(int type)
+int virtue_number(player_type *creature_ptr, int type)
{
int i;
/* Search */
for (i = 0; i < 8; i++)
{
- if (p_ptr->vir_types[i] == type) return i + 1;
+ if (creature_ptr->vir_types[i] == type) return i + 1;
}
/* No match */
* @param which 確認したい徳のID
* @return なし
*/
-static void get_random_virtue(int which)
+static void get_random_virtue(player_type *creature_ptr, int which)
{
int type = 0;
/* Randomly choose a type */
- while (!(type) || virtue_number(type))
+ while (!(type) || virtue_number(creature_ptr, type))
{
switch (randint1(29))
{
}
/* Chosen */
- p_ptr->vir_types[which] = (s16b)type;
+ creature_ptr->vir_types[which] = (s16b)type;
}
/*!
* @param realm 魔法領域のID
* @return 対応する徳のID
*/
-static VIRTUES_IDX get_realm_virtues(REALM_IDX realm)
+static VIRTUES_IDX get_realm_virtues(player_type *creature_ptr, REALM_IDX realm)
{
switch (realm)
{
case REALM_LIFE:
- if (virtue_number(V_VITALITY)) return V_TEMPERANCE;
+ if (virtue_number(creature_ptr, V_VITALITY)) return V_TEMPERANCE;
else return V_VITALITY;
case REALM_SORCERY:
- if (virtue_number(V_KNOWLEDGE)) return V_ENCHANT;
+ if (virtue_number(creature_ptr, V_KNOWLEDGE)) return V_ENCHANT;
else return V_KNOWLEDGE;
case REALM_NATURE:
- if (virtue_number(V_NATURE)) return V_HARMONY;
+ if (virtue_number(creature_ptr, V_NATURE)) return V_HARMONY;
else return V_NATURE;
case REALM_CHAOS:
- if (virtue_number(V_CHANCE)) return V_INDIVIDUALISM;
+ if (virtue_number(creature_ptr, V_CHANCE)) return V_INDIVIDUALISM;
else return V_CHANCE;
case REALM_DEATH:
return V_UNLIFE;
case REALM_ARCANE:
return 0;
case REALM_CRAFT:
- if (virtue_number(V_ENCHANT)) return V_INDIVIDUALISM;
+ if (virtue_number(creature_ptr, V_ENCHANT)) return V_INDIVIDUALISM;
else return V_ENCHANT;
case REALM_DAEMON:
- if (virtue_number(V_JUSTICE)) return V_FAITH;
+ if (virtue_number(creature_ptr, V_JUSTICE)) return V_FAITH;
else return V_JUSTICE;
case REALM_CRUSADE:
- if (virtue_number(V_JUSTICE)) return V_HONOUR;
+ if (virtue_number(creature_ptr, V_JUSTICE)) return V_HONOUR;
else return V_JUSTICE;
case REALM_HEX:
- if (virtue_number(V_COMPASSION)) return V_JUSTICE;
+ if (virtue_number(creature_ptr, V_COMPASSION)) return V_JUSTICE;
else return V_COMPASSION;
};
/* Get a virtue for realms */
if (creature_ptr->realm1)
{
- tmp_vir = get_realm_virtues(creature_ptr->realm1);
+ tmp_vir = get_realm_virtues(creature_ptr, creature_ptr->realm1);
if (tmp_vir) creature_ptr->vir_types[i++] = tmp_vir;
}
if (creature_ptr->realm2)
{
- tmp_vir = get_realm_virtues(creature_ptr->realm2);
+ tmp_vir = get_realm_virtues(creature_ptr, creature_ptr->realm2);
if (tmp_vir) creature_ptr->vir_types[i++] = tmp_vir;
}
/* Fill in the blanks */
for (i = 0; i < 8; i++)
{
- if (creature_ptr->vir_types[i] == 0) get_random_virtue(i);
+ if (creature_ptr->vir_types[i] == 0) get_random_virtue(creature_ptr, i);
}
}
* @param amount 加減量
* @return なし
*/
-void chg_virtue(int virtue_id, int amount)
+void chg_virtue(player_type *creature_ptr, int virtue_id, int amount)
{
int i = 0;
for (i = 0; i < 8; i++)
{
- if (p_ptr->vir_types[i] == virtue_id)
+ if (creature_ptr->vir_types[i] == virtue_id)
{
if (amount > 0)
{
- if ((amount + p_ptr->virtues[i] > 50) && one_in_(2))
+ if ((amount + creature_ptr->virtues[i] > 50) && one_in_(2))
{
- p_ptr->virtues[i] = MAX(p_ptr->virtues[i], 50);
+ creature_ptr->virtues[i] = MAX(creature_ptr->virtues[i], 50);
return;
}
- if ((amount + p_ptr->virtues[i] > 80) && one_in_(2))
+ if ((amount + creature_ptr->virtues[i] > 80) && one_in_(2))
{
- p_ptr->virtues[i] = MAX(p_ptr->virtues[i], 80);
+ creature_ptr->virtues[i] = MAX(creature_ptr->virtues[i], 80);
return;
}
- if ((amount + p_ptr->virtues[i] > 100) && one_in_(2))
+ if ((amount + creature_ptr->virtues[i] > 100) && one_in_(2))
{
- p_ptr->virtues[i] = MAX(p_ptr->virtues[i], 100);
+ creature_ptr->virtues[i] = MAX(creature_ptr->virtues[i], 100);
return;
}
- if (amount + p_ptr->virtues[i] > 125)
- p_ptr->virtues[i] = 125;
+ if (amount + creature_ptr->virtues[i] > 125)
+ creature_ptr->virtues[i] = 125;
else
- p_ptr->virtues[i] = p_ptr->virtues[i] + amount;
+ creature_ptr->virtues[i] = creature_ptr->virtues[i] + amount;
}
else
{
- if ((amount + p_ptr->virtues[i] < -50) && one_in_(2))
+ if ((amount + creature_ptr->virtues[i] < -50) && one_in_(2))
{
- p_ptr->virtues[i] = MIN(p_ptr->virtues[i], -50);
+ creature_ptr->virtues[i] = MIN(creature_ptr->virtues[i], -50);
return;
}
- if ((amount + p_ptr->virtues[i] < -80) && one_in_(2))
+ if ((amount + creature_ptr->virtues[i] < -80) && one_in_(2))
{
- p_ptr->virtues[i] = MIN(p_ptr->virtues[i], -80);
+ creature_ptr->virtues[i] = MIN(creature_ptr->virtues[i], -80);
return;
}
- if ((amount + p_ptr->virtues[i] < -100) && one_in_(2))
+ if ((amount + creature_ptr->virtues[i] < -100) && one_in_(2))
{
- p_ptr->virtues[i] = MIN(p_ptr->virtues[i], -100);
+ creature_ptr->virtues[i] = MIN(creature_ptr->virtues[i], -100);
return;
}
- if (amount + p_ptr->virtues[i] < -125)
- p_ptr->virtues[i] = -125;
+ if (amount + creature_ptr->virtues[i] < -125)
+ creature_ptr->virtues[i] = -125;
else
- p_ptr->virtues[i] = p_ptr->virtues[i] + amount;
+ creature_ptr->virtues[i] = creature_ptr->virtues[i] + amount;
}
- p_ptr->update |= (PU_BONUS);
+ creature_ptr->update |= (PU_BONUS);
return;
}
}
* @param amount セットしたい値。
* @return なし
*/
-void set_virtue(int virtue_id, int amount)
+void set_virtue(player_type *creature_ptr, int virtue_id, int amount)
{
int i = 0;
for (i = 0; i < 8; i++)
{
- if (p_ptr->vir_types[i] == virtue_id)
+ if (creature_ptr->vir_types[i] == virtue_id)
{
- p_ptr->virtues[i] = (s16b)amount;
+ creature_ptr->virtues[i] = (s16b)amount;
return;
}
}
* @param OutFile ファイルポインタ。
* @return なし
*/
-void dump_virtues(FILE *OutFile)
+void dump_virtues(player_type *creature_ptr, FILE *OutFile)
{
int v_nr = 0;
for (v_nr = 0; v_nr < 8; v_nr++)
{
GAME_TEXT vir_name [20];
- int tester = p_ptr->virtues[v_nr];
+ int tester = creature_ptr->virtues[v_nr];
- strcpy(vir_name, virtue[(p_ptr->vir_types[v_nr])-1]);
+ strcpy(vir_name, virtue[(creature_ptr->vir_types[v_nr])-1]);
- if (p_ptr->vir_types[v_nr] == 0 || p_ptr->vir_types[v_nr] > MAX_VIRTUE)
+ if (creature_ptr->vir_types[v_nr] == 0 || creature_ptr->vir_types[v_nr] > MAX_VIRTUE)
fprintf(OutFile, _("おっと。%sの情報なし。", "Oops. No info about %s."), vir_name);
else if (tester < -100)