if (pet) fprintf(fff, "\n");
}
+
+ if (p_ptr->pclass == CLASS_BLUE_MAGE) {
+
+ int i = 0;
+ int j = 0;
+ int l1 = 0;
+ int l2 = 0;
+ int num = 0;
+ int spellnum[MAX_MONSPELLS];
+ s32b f4 = 0, f5 = 0, f6 = 0;
+ char p[60][80];
+ int col = 0;
+ bool pcol = FALSE;
+
+ for (i=0;i<60;i++) { p[i][0] = '\0'; }
+
+#ifdef JP
+ strcat(p[col], "\n [³Ø½¬ºÑ¤ß¤ÎÀÄËâË¡]\n");
+#else
+ strcat(p[col], "\n [Learned blue magic]\n");
+#endif
+
+
+ for (j=1;j<6;j++)
+ {
+ col++;
+ set_rf_masks(&f4, &f5, &f6, j);
+ switch(j)
+ {
+ case MONSPELL_TYPE_BOLT:
+#ifdef JP
+ strcat(p[col], "\n [¥Ü¥ë¥È·¿]\n");
+#else
+ strcat(p[col], "\n [Bolt type]\n");
+#endif
+ break;
+
+ case MONSPELL_TYPE_BALL:
+#ifdef JP
+ strcat(p[col], "\n [¥Ü¡¼¥ë·¿]\n");
+#else
+ strcat(p[col], "\n [Ball type]\n");
+#endif
+ break;
+
+ case MONSPELL_TYPE_BREATH:
+#ifdef JP
+ strcat(p[col], "\n [¥Ö¥ì¥¹·¿]\n");
+#else
+ strcat(p[col], "\n [ Breath ]\n");
+#endif
+ break;
+
+ case MONSPELL_TYPE_SUMMON:
+#ifdef JP
+ strcat(p[col], "\n [¾¤´ËâË¡]\n");
+#else
+ strcat(p[col], "\n [Summonning]\n");
+#endif
+ break;
+
+ case MONSPELL_TYPE_OTHER:
+#ifdef JP
+ strcat(p[col], "\n [ ¤½¤Î¾ ]\n");
+#else
+ strcat(p[col], "\n [Other type]\n");
+#endif
+ break;
+ }
+
+ for (i = 0, num = 0; i < 32; i++)
+ {
+ if ((0x00000001 << i) & f4) spellnum[num++] = i;
+ }
+ for (; i < 64; i++)
+ {
+ if ((0x00000001 << (i - 32)) & f5) spellnum[num++] = i;
+ }
+ for (; i < 96; i++)
+ {
+ if ((0x00000001 << (i - 64)) & f6) spellnum[num++] = i;
+ }
+
+ col++;
+ pcol = FALSE;
+ strcat(p[col], " ");
+
+ for (i = 0; i < num; i++)
+ {
+ if (p_ptr->magic_num2[spellnum[i]])
+ {
+ pcol = TRUE;
+ /* Dump blue magic */
+ l1 = strlen(p[col]);
+ l2 = strlen(monster_powers_short[spellnum[i]]);
+ if ((l1 + l2) >= 75)
+ {
+ strcat(p[col], "\n");
+ col++;
+ strcat(p[col], " ");
+ }
+ strcat(p[col], monster_powers_short[spellnum[i]]);
+ strcat(p[col], ", ");
+ }
+ }
+
+ if (!pcol)
+ {
+#ifdef JP
+ strcat(p[col], "¤Ê¤·");
+#else
+ strcat(p[col], "None");
+#endif
+ }
+ else
+ {
+ if (p[col][strlen(p[col])-2] == ',')
+ {
+ p[col][strlen(p[col])-2] = '\0';
+ }
+ else
+ {
+ p[col][strlen(p[col])-10] = '\0';
+ }
+ }
+
+ strcat(p[col], "\n");
+ }
+
+ for (i=0;i<=col;i++)
+ {
+ fprintf(fff, p[i]);
+ }
+ }
+
+ fprintf(fff, "\n");
+
+
#ifdef JP
fprintf(fff, "\n [¥¯¥¨¥¹¥È¾ðÊó]\n");
#else
}
}
- if (mode == 1)
- {
- f4 = ((RF4_BOLT_MASK | RF4_BEAM_MASK) & ~(RF4_ROCKET));
- f5 = RF5_BOLT_MASK | RF5_BEAM_MASK;
- f6 = RF6_BOLT_MASK | RF6_BEAM_MASK;
- }
- else if (mode == 2)
- {
- f4 = (RF4_BALL_MASK & ~(RF4_BREATH_MASK));
- f5 = (RF5_BALL_MASK & ~(RF5_BREATH_MASK));
- f6 = (RF6_BALL_MASK & ~(RF6_BREATH_MASK));
- }
- else if (mode == 3)
- {
- f4 = RF4_BREATH_MASK;
- f5 = RF5_BREATH_MASK;
- f6 = RF6_BREATH_MASK;
- }
- else if (mode == 4)
- {
- f4 = RF4_SUMMON_MASK;
- f5 = RF5_SUMMON_MASK;
- f6 = RF6_SUMMON_MASK;
- }
- else if (mode == 5)
- {
- f4 = ~(RF4_BOLT_MASK | RF4_BEAM_MASK | RF4_BALL_MASK | RF4_SUMMON_MASK | RF4_INDIRECT_MASK | RF4_RIDING_MASK);
- f5 = ~(RF5_BOLT_MASK | RF5_BEAM_MASK | RF5_BALL_MASK | RF5_SUMMON_MASK | RF5_INDIRECT_MASK | RF5_RIDING_MASK);
- f6 = (~(RF6_BOLT_MASK | RF6_BEAM_MASK | RF6_BALL_MASK | RF6_SUMMON_MASK | RF6_INDIRECT_MASK | RF6_RIDING_MASK)) | (RF6_TRAPS | RF6_DARKNESS);
- }
+ set_rf_masks(&f4, &f5, &f6, mode);
for (i = 0, num = 0; i < 32; i++)
{
p_ptr->redraw |= (PR_STATE);
}
}
+
+
+void set_rf_masks(s32b *f4, s32b *f5, s32b *f6, int mode)
+{
+ switch(mode)
+ {
+ case MONSPELL_TYPE_BOLT:
+ *f4 = ((RF4_BOLT_MASK | RF4_BEAM_MASK) & ~(RF4_ROCKET));
+ *f5 = RF5_BOLT_MASK | RF5_BEAM_MASK;
+ *f6 = RF6_BOLT_MASK | RF6_BEAM_MASK;
+ break;
+
+ case MONSPELL_TYPE_BALL:
+ *f4 = (RF4_BALL_MASK & ~(RF4_BREATH_MASK));
+ *f5 = (RF5_BALL_MASK & ~(RF5_BREATH_MASK));
+ *f6 = (RF6_BALL_MASK & ~(RF6_BREATH_MASK));
+ break;
+
+ case MONSPELL_TYPE_BREATH:
+ *f4 = RF4_BREATH_MASK;
+ *f5 = RF5_BREATH_MASK;
+ *f6 = RF6_BREATH_MASK;
+ break;
+
+ case MONSPELL_TYPE_SUMMON:
+ *f4 = RF4_SUMMON_MASK;
+ *f5 = RF5_SUMMON_MASK;
+ *f6 = RF6_SUMMON_MASK;
+ break;
+
+ case MONSPELL_TYPE_OTHER:
+ *f4 = ~(RF4_BOLT_MASK | RF4_BEAM_MASK | RF4_BALL_MASK | RF4_SUMMON_MASK | RF4_INDIRECT_MASK | RF4_RIDING_MASK | RF4_XXX_MASK);
+ *f5 = ~(RF5_BOLT_MASK | RF5_BEAM_MASK | RF5_BALL_MASK | RF5_SUMMON_MASK | RF5_INDIRECT_MASK | RF5_RIDING_MASK);
+ *f6 = (~(RF6_BOLT_MASK | RF6_BEAM_MASK | RF6_BALL_MASK | RF6_SUMMON_MASK | RF6_INDIRECT_MASK | RF6_RIDING_MASK)) | (RF6_TRAPS | RF6_DARKNESS);
+ break;
+ }
+
+ return;
+}
};
+cptr monster_powers_short[MAX_MONSPELLS] = {
+#ifdef JP
+
+ "¶«¤Ö", "²¿¤«", "ËâÎϾõî", "¥í¥±¥Ã¥È", "¼Í·â", "²¿¤«", "²¿¤«", "²¿¤«",
+ "»À", "ÅÅ·â", "²Ð±ê", "Î䵤", "ÆÇ", "ÃϹö", "Á®¸÷", "°Å¹õ",
+ "º®Íð", "¹ì²»", "¥«¥ª¥¹", "Îô²½", "°ø²Ìº®Íð", "»þ´ÖµÕž", "ÃÙÆß", "½ÅÎÏ",
+ "ÇËÊÒ", "¥×¥é¥º¥Þ", "¥Õ¥©¡¼¥¹", "ËâÎÏ", "Êü¼Íǽµå", "Êü¼ÍÀÇÑ´þʪ", "½ã¥í¥°¥ë¥¹", "ʬ²ò",
+
+ "»À", "ÅÅ·â", "²Ð±ê", "Î䵤", "°½±À", "ÃϹöµå", "¥¦¥©¡¼¥¿¡¼", "ËâÎϤÎÍò",
+ "°Å¹õ¤ÎÍò", "ËâÎϵۼý", "Àº¿À¹¶·â", "Ǿ¹¶·â", "·Ú½ý", "½Å½ý", "Ã×Ì¿½ý", "È빦¤òÆͤ¯",
+ "»À", "ÅÅ·â", "²Ð±ê", "Î䵤", "¥¹¥¿¡¼¥Ð¡¼¥¹¥È", "ÃϹö¤ÎÌð", "¥¦¥©¡¼¥¿¡¼", "ËâÎϤÎÌð",
+ "¥×¥é¥º¥Þ", "¶Ë´¨", "¥Þ¥¸¥Ã¥¯¥ß¥µ¥¤¥ë", "¶²¹²", "ÌÕÌÜ", "º®Íð", "¸ºÂ®", "¿ç̲",
+
+ "²Ã®", "ÇËÌǤμê", "ÂÎÎϲóÉü", "̵½ý¤Îµå", "¥·¥ç¡¼¥È¥Æ¥ì¥Ý¡¼¥È", "¥Æ¥ì¥Ý¡¼¥È", "»þ¤ò»ß¤á¤ë", "²¿¤«",
+ "°ú¤¤è¤»¤ë", "¥Æ¥ì¥Ý¡¼¥È¥¢¥¦¥§¥¤", "¥Æ¥ì¥Ý¡¼¥È¥ì¥Ù¥ë", "¸÷¤Î·õ", "°Å°Ç", "¥È¥é¥Ã¥×ÁϤ", "µ²±ÁÓ¼º", "»à¼ÔÉü³è",
+ "±ç·³", "¥µ¥¤¥Ð¡¼¥Ç¡¼¥â¥ó", "¥â¥ó¥¹¥¿¡¼", "Ê£¿ô¤Î¥â¥ó¥¹¥¿¡¼", "µÂ", "ÃØéá", "¥Ï¥¦¥ó¥É", "¥Ò¥É¥é",
+ "Å·»È", "°Ëâ", "¥¢¥ó¥Ç¥Ã¥É", "¥É¥é¥´¥ó", "¾åµé¥¢¥ó¥Ç¥Ã¥É", "¸ÅÂå¥É¥é¥´¥ó", "¥¢¥ó¥Ð¡¼¤Î²¦Â²", "¥æ¥Ë¡¼¥¯"
+
+#else
+
+ "Shriek", "Something", "Dispel-magic", "Rocket", "Arrow", "Arrows", "Missile", "Missiles",
+ "Acid", "Lightning", "Fire", "Cold", "Poison", "Nether", "Light", "Dark",
+ "Confusion", "Sound", "Chaos", "Disenchantment", "Nexus", "Time", "Inertia", "Gravity",
+ "Shards", "Plasma", "Force", "Mana", "Nuke", "Nuke", "Logrus", "Disintergrate",
+
+ "Acid", "Lightning", "Fire", "Frost", "Stinking Cloud", "Nether", "Water", "Mana storm",
+ "Darkness storm", "Drain mana", "Mind blast", "Brain smash", "Cause Light Wound", "Cause Serious Wound", "Cause Critical Wound", "Cause Mortal Wound",
+ "Acid", "Lightning", "Fire", "Frost", "Starburst", "Nether", "Water", "Mana",
+ "Plasm", "Ice", "Magic missile", "Scare", "Blind", "Confuse", "Slow", "Sleep",
+
+ "Speed", "Hand of doom", "Heal-self", "Invulnerable", "Blink", "Teleport", "The world", "Something",
+ "Teleport to", "Teleport away", "Teleport level", "Psycho-spear", "Create darkness", "Create traps", "Amnesia", "Raise dead",
+ "Aid", "Cyberdeamons", "A monster", "Monsters", "Ants", "Spiders", "Hounds", "Hydras",
+ "Angel", "Daemon", "Undead", "Dragon", "Greater Undead", "Ancient Dragon", "Lords of Amber", "Unique monsters"
+
+#endif
+};
+
/*
* Hack -- the "basic" color names (see "TERM_xxx")