{"¤¢¤Ê¤¿¤Ï°¤òÌǤܤ¹¤¿¤á¤Ë¤³¤ÎÃϤËÁ÷¤é¤ì¤Æ¤¤Þ¤·¤¿¡£", 100, 143, 144, 80},
{"¤³¤ÎÌÜŪ¤òÀ®¤·¿ë¤²¤ë¤Þ¤Ç¤ÏµÙ¤à¤³¤È¤Ïµö¤µ¤ì¤Þ¤»¤ó¡£", 100, 144, 0, 80},
#else
- {"You are of the blessed host of heaven.", 100, 142, 143, 80},
+ {"You are of the blessed host of heaven. ", 100, 142, 143, 80},
{"You have been sent to earth to eradicate the wicked, ", 100, 143, 144, 80},
{"and shall not rest until you have succeeded.", 100, 144, 0, 80},
#endif
"¥¨¥ë¥Õ¤Ï¿Í´Ö¤è¤êÎɤ¤ËâË¡»È¤¤¤Ë¤Ê¤ì¤Þ¤¹¤¬¡¢ÀïÆ®¤Ï¶ì¼ê¤Ç¤¹¡£Èà¤é¤Ï¿Í´Ö¤ä¥Ï¡¼¥Õ¥¨¥ë¥Õ¤è¤ê¤âƬ¤¬Îɤ¯¡¢¹â¤¤¸¤µ¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£¥¨¥ë¥Õ¤Ïõº÷, ²ò½ü, ÃγÐ, ±£Ì©¹ÔÆ°, ¼Í·â, ¤½¤·¤ÆËâË¡Æ»¶ñ»ÈÍѤÇÍ¥¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢Éð´ï¤Î°·¤¤¤ÏÆÀ°Õ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£Èà¤é¤ÏÀ¸¤Þ¤ì¤Ä¤¸÷¤ËÂФ¹¤ëÂÑÀ¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£",
-"¥Û¥Ó¥Ã¥È¡¢¤Þ¤¿¤Ï¥Ï¡¼¥Õ¥ê¥ó¥°¤ÏµÝ¤äÅêÚ³¤ËŤ±¡¢ËâË¡Ëɸæ¤âÍ¥¤ì¤Æ¤¤¤Þ¤¹¡£¤Þ¤¿¡¢Ãµº÷, ²ò½ü, ÃγÐ, ¤½¤·¤Æ±£Ì©¹ÔÆ°¤Ç¤â¤È¤Æ¤âÎɤ¤Ç½ÎϤò¼¨¤·¤Þ¤¹¡£¤½¤Î¤¿¤á¡¢Èà¤é¤ÏÍ¥¤ì¤¿Åð±¤È¤Ê¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡Ê¤·¤«¤·¡¢¡ÖǦ¤Ó¤Î¼Ô¡×¤È¸Æ¤Ð¤ì¤ë¤³¤È¤ò¹¥¤ß¤Þ¤¹¡Ë¡£¥Û¥Ó¥Ã¥È¤Ï¿Í´Ö¤è¤êÍÚ¤«¤ËÉϼå¤Ç¡¢Àï»Î¤È¤·¤Æ¤Ï¤Æ¤ó¤Ç¥À¥á¤Ç¤¹¡£Èà¤é¤Ï¤«¤Ê¤êÎɤ¤ÀÖ³°Àþ»ëÎϤò»ý¤Ã¤Æ¤ª¤ê¡¢²¹·ìưʪ¤òÎ¥¤ì¤¿¾ì½ê¤«¤é¸«¤Ä¤±¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¥Û¥Ó¥Ã¥È¤Ï´ïÍѤµ¤ò²¼¤²¤é¤ì¤ë¤³¤È¤¬¤¢¤ê¤Þ¤»¤ó¡£",
+"¥Û¥Ó¥Ã¥È¡¢¤Þ¤¿¤Ï¥Ï¡¼¥Õ¥ê¥ó¥°¤ÏµÝ¤äÅêÚ³¤ËŤ±¡¢ËâË¡Ëɸæ¤âÍ¥¤ì¤Æ¤¤¤Þ¤¹¡£¤Þ¤¿¡¢Ãµº÷, ²ò½ü, ÃγÐ, ¤½¤·¤Æ±£Ì©¹ÔÆ°¤Ç¤â¤È¤Æ¤âÎɤ¤Ç½ÎϤò¼¨¤·¤Þ¤¹¡£¤½¤Î¤¿¤á¡¢Èà¤é¤ÏÍ¥¤ì¤¿Åð±¤È¤Ê¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡Ê¤·¤«¤·¡¢¡ÖǦ¤Ó¤Î¼Ô¡×¤È¸Æ¤Ð¤ì¤ë¤³¤È¤ò¹¥¤ß¤Þ¤¹¡Ë¡£¥Û¥Ó¥Ã¥È¤Ï¿Í´Ö¤è¤êÍÚ¤«¤ËÉϼå¤Ç¡¢Àï»Î¤È¤·¤Æ¤Ï¤Æ¤ó¤Ç¥À¥á¤Ç¤¹¡£Èà¤é¤Ï¤«¤Ê¤êÎɤ¤ÀÖ³°Àþ»ëÎϤò»ý¤Ã¤Æ¤ª¤ê¡¢²¹·ìưʪ¤òÎ¥¤ì¤¿¾ì½ê¤«¤é¸«¤Ä¤±¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£Èà¤é¤ÏÀ¸Ì¿ÎϤòÊÝ»ý¤¹¤ëÎϤ¬¶¯¤¯¡¢À¸Ì¿Îϵۼý¹¶·â¤ËÂФ·¤ÆÂÑÀ¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£",
"¥Î¡¼¥à¤Ï¥É¥ï¡¼¥Õ¤è¤ê¾®¤µ¤¤¤Ç¤¹¤¬¡¢¥Û¥Ó¥Ã¥È¤è¤ê¤ÏÂ礤¤¼ï²¤Ç¤¹¡£Èà¤é¤Ï¥Û¥Ó¥Ã¥ÈƱÍÍÃÏɽ¤Îƶ·ê¤Î¤è¤¦¤Ê²È¤Ë½»¤ó¤Ç¤¤¤Þ¤¹¡£¥Î¡¼¥à¤Ï¤È¤Æ¤âÎɤ¤ËâË¡Ëɸæ¤ò»ý¤Á¡¢Ãµº÷, ²ò½ü, ÃγÐ, ±£Ì©¹ÔÆ°¤Ç¤âÍ¥¤ì¤Æ¤¤¤Þ¤¹¡£Èà¤é¤Ï¿Í´Ö¤è¤êÄ㤤ÏÓÎϤò»ý¤Á¡¢Éð´ï¤ò»ý¤Ã¤Æ¤ÎÀïÆ®¤Ï¶ì¼ê¤Ç¤¹¡£¥Î¡¼¥à¤Ï¤«¤Ê¤êÎɤ¤ÀÖ³°Àþ»ëÎϤò»ý¤Ã¤Æ¤ª¤ê¡¢²¹·ìưʪ¤òÎ¥¤ì¤¿¾ì½ê¤«¤é¸«¤Ä¤±¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¥Î¡¼¥à¤ÏÀ¸¤Þ¤ì¤Ä¤Ëãáã¤ËÂФ¹¤ëÂÑÀ¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£",
"Elves are better magicians then humans, but not as good at fighting. They tend to be smarter and faster than either humans or half-elves and also have better wisdom. Elves are better at searching, disarming, perception, stealth, bows, and magic, but they are not as good at hand weapons. They resist light effects intrinsically.",
-"Hobbits, or Halflings, are very good at bows, throwing, and have good saving throws. They also are very good at searching, disarming, perception, and stealth; so they make excellent rogues, but prefer to be called burglars. They are much weaker than humans, and no good at melee fighting. Halflings have fair infravision, so they can detect warm creatures at a distance. They have their dexterity sustained.",
+"Hobbits, or Halflings, are very good at bows, throwing, and have good saving throws. They also are very good at searching, disarming, perception, and stealth; so they make excellent rogues, but prefer to be called burglars. They are much weaker than humans, and no good at melee fighting. Halflings have fair infravision, so they can detect warm creatures at a distance. They have a strong hold on their life force, and are thus intrinsically resistant to life draining.",
"Gnomes are smaller than dwarves but larger than Halflings. They, like the hobbits, live in the earth in burrow-like homes. Gnomes make excellent mages, and have very good saving throws. They are good at searching, disarming, perception, and stealth. They have lower strength than humans so they are not very good at fighting with hand weapons. Gnomes have fair infra-vision, so they can detect warm-blooded creatures at a distance. Gnomes are intrinsically protected against paralysis.",
"¶À»È¤¤¤Ï¡¢ËâÎϤιþ¤á¤é¤ì¤¿¶À¤òºî¤ê½Ð¤·¤Æ¡¢¤½¤ì¤ò¿¨ÇޤȤ·¤Æ¹¶·â¤ò¹Ô¤Ê¤¦¤³¤È¤¬¤Ç¤¤ë¶ÀËâË¡¤ò»È¤¤¤Þ¤¹¡£¶À»È¤¤¤Ï¶À¤Î¾å¤Ç¼ÂÎϤòȯ´ø¤·¡¢¶À¤Î¾å¤Ç¤ÏÁÇÁᤤ¥Æ¥ì¥Ý¡¼¥È¤¬²Äǽ¤È¤Ê¤ê¤Þ¤¹¡£ËâË¡¤Î¶À¤Ï¡¢¥ì¥Ù¥ë¤Ë¤è¤Ã¤Æ°ìÅÙ¤ËÀ©¸æ¤Ç¤¤ë¿ô¤¬À©¸Â¤µ¤ì¤Þ¤¹¡£¶ÀËâË¡¤ËɬÍפÊǽÎϤÏÃÎǽ¤Ç¤¹¡£",
-"Ǧ¼Ô¤Ï°Å°Ç¤ËÀø¤à¶²¤ë¤Ù¤°Å»¦¼Ô¤Ç¤¢¤ê¡¢¸÷¸»¤ò»ý¤¿¤º¤Ë¹ÔÆ°¤·¡¢Áê¼ê¤ÎÉÔ°Õ¤ò¤Ä¤°ì·â¤Ç©¤Îº¬¤ò»ß¤á¤Þ¤¹¡£¤Þ¤¿¡¢Áê¼ê¤òÏǤ魯¤¿¤á¤ÎǦ½Ñ¤â¿È¤Ë¤Ä¤±¤Þ¤¹¡£æ«¤ä¥É¥¢¤ò¸«¤Ä¤±¤ëǽÎϤËÍ¥¤ì¡¢æ«¤Î²ò½ü¤ä¸°³«¤±¤Ë½Ï㤷¤Æ¤¤¤Þ¤¹¡£·ÚÁõ¤ò¹¥¤ß¡¢½Å¤¤³»¤äÉð´ï¤òÁõÈ÷¤¹¤ë¤ÈÃø¤·¤¯Æ°¤¤¬À©¸Â¤µ¤ì¡¢¤Þ¤¿¡¢½â¤òÁõÈ÷¤·¤è¤¦¤È¤Ï¤·¤Þ¤»¤ó¡£·ÚÁõ¤Ê¤é¤Ð¡¢¥ì¥Ù¥ë¤¬¾å¤¬¤ë¤Ë¤Ä¤ì¤è¤ê®¤¯¤è¤êÀŤ«¤Ë¹ÔÆ°¤Ç¤¤Þ¤¹¡£¤µ¤é¤ËǦ¼Ô¤Ï¶²Éݤ»¤º¡¢À®Ä¹¤¹¤ì¤ÐÆǤ¬¤Û¤È¤ó¤É¸ú¤«¤Ê¤¯¤Ê¤ê¡¢Æ©ÌÀ¤Ê¤â¤Î¤ò¸«¤ë¤³¤È¤¬¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£Ç¦½Ñ¤ËɬÍפÊǽÎϤϴïÍѤµ¤Ç¤¹¡£"
+"Ǧ¼Ô¤Ï°Å°Ç¤ËÀø¤à¶²¤ë¤Ù¤°Å»¦¼Ô¤Ç¤¢¤ê¡¢¸÷¸»¤ò»ý¤¿¤º¤Ë¹ÔÆ°¤·¡¢Áê¼ê¤ÎÉÔ°Õ¤ò¤Ä¤°ì·â¤Ç©¤Îº¬¤ò»ß¤á¤Þ¤¹¡£¤Þ¤¿¡¢Áê¼ê¤òÏǤ魯¤¿¤á¤ÎǦ½Ñ¤â¿È¤Ë¤Ä¤±¤Þ¤¹¡£æ«¤ä¥É¥¢¤ò¸«¤Ä¤±¤ëǽÎϤËÍ¥¤ì¡¢æ«¤Î²ò½ü¤ä¸°³«¤±¤Ë½Ï㤷¤Æ¤¤¤Þ¤¹¡£·ÚÁõ¤ò¹¥¤ß¡¢½Å¤¤³»¤äÉð´ï¤òÁõÈ÷¤¹¤ë¤ÈÃø¤·¤¯Æ°¤¤¬À©¸Â¤µ¤ì¡¢¤Þ¤¿¡¢½â¤òÁõÈ÷¤·¤è¤¦¤È¤Ï¤·¤Þ¤»¤ó¡£·ÚÁõ¤Ê¤é¤Ð¡¢¥ì¥Ù¥ë¤¬¾å¤¬¤ë¤Ë¤Ä¤ì¤è¤ê®¤¯¤è¤êÀŤ«¤Ë¹ÔÆ°¤Ç¤¤Þ¤¹¡£¤µ¤é¤ËǦ¼Ô¤Ï¶²Éݤ»¤º¡¢À®Ä¹¤¹¤ì¤ÐÆǤ¬¤Û¤È¤ó¤É¸ú¤«¤Ê¤¯¤Ê¤ê¡¢Æ©ÌÀ¤Ê¤â¤Î¤ò¸«¤ë¤³¤È¤¬¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£Ç¦½Ñ¤ËɬÍפÊǽÎϤϴïÍѤµ¤Ç¤¹¡£",
+
+"¥¹¥Ê¥¤¥Ñ¡¼¤Ï°ì·âɬ»¦¤òÁÀ¤¦¶²¤ë¤Ù¤¼Í¼ê¤Ç¤¹¡£Àº¿À¤ò¹â¤á¤ë¤³¤È¤Ë¤è¤ê¡¢¼Í·â¤Î°ÒÎϤÈÀºÅÙ¤ò¹â¤á¤Þ¤¹¡£¤Þ¤¿¡¢ËâË¡¤ò»È¤¦¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¤¬¡¢¸¦¤®À¡¤Þ¤µ¤ì¤¿Àº¿À¤«¤é·«¤ê½Ð¤µ¤ì¤ë¼Í·â½Ñ¤Ï¤µ¤é¤Ê¤ë°ÒÎϤò¤â¤¿¤é¤¹¤³¤È¤Ç¤·¤ç¤¦¡£¥Æ¥¯¥Ë¥Ã¥¯¤¬É¬ÍפȤµ¤ì¤ë¿¦¶È¤Ç¤¹¡£"
#else
"Mirror-Masters are spell casters; like other mages, they must live by their wits. They can create magical mirrors, and employ them in the casting of Mirror-Magic spells. A Mirror-Master standing on a mirror has greater ability and, for example, can perform quick teleports. The maximum number of Magical Mirrors which can be controlled simultaneously depends on the level. Intelligence determines a Mirror-Master's spell casting ability.",
-"A Ninja is a fearful assassin lurking in darkness. He or she can navigate effectively with no light source, catch enemies unawares, and kill with a single blow. Ninjas can use Ninjutsu, and are good at locating hidden traps and doors, disarming traps and picking locks. Since heavy armors, heavy weapons, or shields will restrict their motion greatly, they prefer light clothes, and become faster and more stealthy as they gain levels. A Ninja knows no fear and, at high level, becomes almost immune to poison and able to see invisible things. Dexterity determines a Ninja's ability to use Ninjutsu."
+"A Ninja is a fearful assassin lurking in darkness. He or she can navigate effectively with no light source, catch enemies unawares, and kill with a single blow. Ninjas can use Ninjutsu, and are good at locating hidden traps and doors, disarming traps and picking locks. Since heavy armors, heavy weapons, or shields will restrict their motion greatly, they prefer light clothes, and become faster and more stealthy as they gain levels. A Ninja knows no fear and, at high level, becomes almost immune to poison and able to see invisible things. Dexterity determines a Ninja's ability to use Ninjutsu.",
+
+"Snipers are good at shooting, and they can kill targets by a few shots. After they concentrate deeply, they can demonstrate their shooting talents. You can see incredibly firepower of their shots."
#endif
};
"²Î½¸¤Ï¡¢²Î¤Ë¤è¤Ã¤Æ¸ú²Ì¤òȯ´ø¤¹¤ëËâË¡¤Ç¤¹¡£ËâË¡¤ÈƱÍÍ¡¢»È¤Ã¤¿»þ¤Ë¸ú²Ì¤Î¤¢¤ë¤â¤Î¤È¡¢²Î¤¤Â³¤±¤ë¤³¤È¤Ë¤è¤Ã¤Æ»ý³¤·¤Æ¸ú²Ì¤òȯ´ø¤¹¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡£¸å¼Ô¤Î¾ì¹ç¤Ï¡¢MP¤Î³¤¯¸Â¤ê¸ú²Ì¤òȯ´ø¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¤¬¡¢Æ±»þ¤Ë²Î¤¨¤ë²Î¤Ï1¤Ä¤À¤±¤È¤¤¤¦À©¸Â¤â¤¢¤ê¤Þ¤¹¡£",
-"Éð·Ý¤Î½ñ¤Ï¡¢ÍÍ¡¹¤ÊÀïÆ®¤Îµ»¤Ë¤Ä¤¤¤Æ½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤ÎËܤϵ»¤ò³Ð¤¨¤ë¤È¤¤ËÆɤàɬÍפ¬¤¢¤ê¤Þ¤¹¤¬¡¢°ìÅٳФ¨¤¿µ»¤Ï»È¤¦¤Î¤ËËܤò»ý¤ÄɬÍפϤ¢¤ê¤Þ¤»¤ó¡£µ»¤ò»È¤¦¤È¤¤Ë¤Ïɬ¤ºÉð´ï¤òÁõÈ÷¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£"
+"Éð·Ý¤Î½ñ¤Ï¡¢ÍÍ¡¹¤ÊÀïÆ®¤Îµ»¤Ë¤Ä¤¤¤Æ½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤ÎËܤϵ»¤ò³Ð¤¨¤ë¤È¤¤ËÆɤàɬÍפ¬¤¢¤ê¤Þ¤¹¤¬¡¢°ìÅٳФ¨¤¿µ»¤Ï»È¤¦¤Î¤ËËܤò»ý¤ÄɬÍפϤ¢¤ê¤Þ¤»¤ó¡£µ»¤ò»È¤¦¤È¤¤Ë¤Ïɬ¤ºÉð´ï¤òÁõÈ÷¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£",
+"¼ö½Ñ¤Ï´÷¤à¤Ù¤Îΰè¤Ç¤¹¡£Ê£¿ô¤Î¼ö¤¤¤Î¸ÀÍÕ¤ò²Î¤Î¤è¤¦¤Ëˤ®¤Ê¤¬¤é±Ó¾§¤·¤Þ¤¹¡£Â¿¤¯¤Î¼öʸ¤Ï±Ó¾§¤·Â³¤±¤ë¤³¤È¤Ë¤è¤Ã¤Æ¸ú²Ì¤¬»ý³¤µ¤ì¤Þ¤¹¡£¼öʸ¤Ë¤ÏÁê¼ê¤Î¹ÔÆ°¤ò«Çû¤¹¤ë¤â¤Î¡¢¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¤â¤Î¡¢¹¶·â¤ËÂФ·¤ÆÈ¿·â¤¹¤ë¤â¤Î¤¬Â¿¤¯¤¢¤ê¤Þ¤¹¡£"
#else
"Life magic is very good for healing; it relies mostly on healing, protection and detection spells. Also life magic have a few attack spells as well. It said that some high level spell of life magic can disintegrate Undead monsters into ash.",
"Music magic shows various effects as sing song. There is two type of song; the one which shows effects instantly and the other one shows effect continuously until SP runs out. But the latter type has a limit; only one song can be sing at the same time.",
-"The books of Kendo describe about various combat techniques. When learning new techniques, you are required to carry the books, but once you memorizes them, you don't have to carry them. When using a technique, wielding a weapon is required."
+"The books of Kendo describe about various combat techniques. When learning new techniques, you are required to carry the books, but once you memorizes them, you don't have to carry them. When using a technique, wielding a weapon is required.",
+
+"Hex is a very terrible realm. Spells gives continual effects when they are spelled continually like songs. Spells may obstract monsters' actions, may deal damages in sight, may revenge against enemies."
#endif
};
"¹¶·â¤ÈËɸæ¤ÎξÌ̤ËÍ¥¤ì¤Æ¤¤¤Þ¤¹",
"¼Ù°¤Ê²øʪ¤ËÂФ¹¤ë¹¶·â¤ËÍ¥¤ì¤Æ¤¤¤Þ¤¹",
"ÍÍ¡¹¤ÊËâË¡¸ú²Ì¤ò»ý¤Ã¤¿²Î¤ò²Î¤¤¤Þ¤¹",
-"ÂǷ⹶·â¤ËÆüìǽÎϤòÉղä·¤Þ¤¹"
+"ÂǷ⹶·â¤ËÆüìǽÎϤòÉղä·¤Þ¤¹",
+"Ũ¤ò¼ÙË⤷¤Ä¤ÄÉü½²¤òÁÀ¤¤¤Þ¤¹"
#else
"Good at detection and healing.",
"Utility and protective spells.",
"Good at both offence and defence.",
"Destroys evil creatures.",
"Song with magical effects.",
-"Special attacks on melee."
+"Special attacks on melee.",
+"Good at obstacle and revenge."
#endif
};
if (choices & CH_ENCHANT)
{
(*count)++;
- auto_select = REALM_ENCHANT;
+ auto_select = REALM_CRAFT;
}
if (choices & CH_DAEMON)
{
(*count)++;
auto_select = REALM_HISSATSU;
}
+ if (choices & CH_HEX)
+ {
+ (*count)++;
+ auto_select = REALM_HEX;
+ }
clear_from(10);
#endif
cs = 0;
- for (i = 0; i<16; i++)
+ for (i = 0; i<32; i++)
{
/* Analize realms */
- if (choices & (1 << i))
+ if (choices & (1L << i))
{
if (p_ptr->realm1 == i+1)
{
c_put_str(TERM_L_BLUE, realm_names[picks[cs]], 3, 40);
put_str(": Characteristic", 3, 40+strlen(realm_names[picks[cs]]));
#endif
- put_str(realm_subinfo[picks[cs]-1], 4, 40);
+ put_str(realm_subinfo[technic2magic(picks[cs])-1], 4, 40);
}
c_put_str(TERM_YELLOW, cur, 12 + (cs/5), 2 + 15 * (cs%5));
os = cs;
p_ptr->realm2 = 255;
while (1)
{
- char temp[80*8];
+ char temp[80*10];
cptr t;
count = 0;
p_ptr->realm1 = choose_realm(realm_choices1[p_ptr->pclass], &count);
roff_to_buf(realm_jouhou[technic2magic(p_ptr->realm1)-1], 74, temp, sizeof(temp));
t = temp;
- for (i = 0; i< 6; i++)
+ for (i = 0; i < 10; i++)
{
if(t[0] == 0)
break;
p_ptr->stat_cur[i] = j;
}
p_ptr->knowledge &= ~(KNOW_STAT);
+
+ /* Redisplay the stats later */
+ p_ptr->redraw |= (PR_STATS);
}
chart = 148;
break;
}
- case RACE_KUTA:
+ case RACE_KUTAR:
{
chart = 154;
break;
}
+static void k_info_reset(void)
+{
+ int i;
+
+ /* Reset the "objects" */
+ for (i = 1; i < max_k_idx; i++)
+ {
+ object_kind *k_ptr = &k_info[i];
+
+ /* Reset "tried" */
+ k_ptr->tried = FALSE;
+
+ /* Reset "aware" */
+ k_ptr->aware = FALSE;
+ }
+}
+
+
/*
* Clear all the global "character" data
*/
/* Hack -- Non-unique Nazguls are semi-unique */
else if (r_ptr->flags7 & RF7_NAZGUL) r_ptr->max_num = MAX_NAZGUL_NUM;
- /* Clear player kills */
+ /* Clear visible kills in this life */
r_ptr->r_pkills = 0;
+
+ /* Clear all kills in this life */
+ r_ptr->r_akills = 0;
}
/*
* Initialize random quests and final quests
*/
-static void init_dungeon_quests(int number_of_quests)
+static void init_dungeon_quests(void)
{
+ int number_of_quests = MAX_RANDOM_QUEST - MIN_RANDOM_QUEST + 1;
int i;
- monster_race *r_ptr;
/* Init the random quests */
init_flags = INIT_ASSIGN;
p_ptr->inside_quest = 0;
- /* Remove QUESTOR flag */
- for (i = 1; i < max_r_idx; i++)
- {
- r_ptr = &r_info[i];
- if (r_ptr->flags1 & RF1_QUESTOR) r_ptr->flags1 &= ~RF1_QUESTOR;
- }
-
/* Generate quests */
for (i = MIN_RANDOM_QUEST + number_of_quests - 1; i >= MIN_RANDOM_QUEST; i--)
{
{
/* Undead start just after midnight */
turn = (TURNS_PER_TICK*3 * TOWN_DAWN) / 4 + 1;
+ turn_limit = TURNS_PER_TICK * TOWN_DAWN * MAX_DAYS + TURNS_PER_TICK * TOWN_DAWN * 3 / 4;
}
else
{
turn = 1;
+ turn_limit = TURNS_PER_TICK * TOWN_DAWN * (MAX_DAYS - 1) + TURNS_PER_TICK * TOWN_DAWN * 3 / 4;
}
dungeon_turn = 1;
+ dungeon_turn_limit = TURNS_PER_TICK * TOWN_DAWN * (MAX_DAYS - 1) + TURNS_PER_TICK * TOWN_DAWN * 3 / 4;
}
+
+/*
+ * Try to wield everything wieldable in the inventory.
+ * Code taken from Angband 3.1.0 under Angband license
+ */
+static void wield_all(void)
+{
+ object_type *o_ptr;
+ object_type *i_ptr;
+ object_type object_type_body;
+
+ int slot;
+ int item;
+
+ /* Scan through the slots backwards */
+ for (item = INVEN_PACK - 1; item >= 0; item--)
+ {
+ o_ptr = &inventory[item];
+
+ /* Skip non-objects */
+ if (!o_ptr->k_idx) continue;
+
+ /* Make sure we can wield it and that there's nothing else in that slot */
+ slot = wield_slot(o_ptr);
+ if (slot < INVEN_RARM) continue;
+ if (slot == INVEN_LITE) continue; /* Does not wield toaches because buys a lantern soon */
+ if (inventory[slot].k_idx) continue;
+
+ /* Get local object */
+ i_ptr = &object_type_body;
+ object_copy(i_ptr, o_ptr);
+
+ /* Modify quantity */
+ i_ptr->number = 1;
+
+ /* Decrease the item (from the pack) */
+ if (item >= 0)
+ {
+ inven_item_increase(item, -1);
+ inven_item_optimize(item);
+ }
+
+ /* Decrease the item (from the floor) */
+ else
+ {
+ floor_item_increase(0 - item, -1);
+ floor_item_optimize(0 - item);
+ }
+
+ /* Get the wield slot */
+ o_ptr = &inventory[slot];
+
+ /* Wear the new stuff */
+ object_copy(o_ptr, i_ptr);
+
+ /* Increase the weight */
+ p_ptr->total_weight += i_ptr->weight;
+
+ /* Increment the equip counter by hand */
+ equip_cnt++;
+
+ }
+ return;
+}
+
+
/*
* Each player starts out with a few items, given as tval/sval pairs.
* In addition, he always has some food and a few torches.
},
{
- /* Harper */
+ /* Bard */
{ TV_MUSIC_BOOK, 0 },
{ TV_SOFT_ARMOR, SV_SOFT_LEATHER_ARMOR},
{ TV_SWORD, SV_SHORT_SWORD },
},
{
- /* Kihei */
+ /* Cavalry */
{ TV_BOW, SV_SHORT_BOW },
{ TV_SOFT_ARMOR, SV_LEATHER_SCALE_MAIL},
{ TV_POLEARM, SV_BROAD_SPEAR}
},
{
- /* Kaji */
+ /* Weaponsmith */
{ TV_RING, SV_RING_RES_FEAR }, /* Warriors need it! */
{ TV_HARD_ARMOR, SV_CHAIN_MAIL },
{ TV_POLEARM, SV_BROAD_AXE }
{ TV_SOFT_ARMOR, SV_SOFT_LEATHER_ARMOR },
{ TV_SWORD, SV_DAGGER }
},
+ {
+ /* Sniper */
+ { TV_BOW, SV_LIGHT_XBOW },
+ { TV_SOFT_ARMOR, SV_SOFT_LEATHER_ARMOR },
+ { TV_SWORD, SV_DAGGER }
+ },
};
/*
+ * Add an outfit object
+ */
+static void add_outfit(object_type *o_ptr)
+{
+ s16b slot;
+
+ object_aware(o_ptr);
+ object_known(o_ptr);
+ slot = inven_carry(o_ptr);
+
+ /* Auto-inscription */
+ autopick_alter_item(slot, FALSE);
+
+ /* Now try wielding everything */
+ wield_all();
+}
+
+
+/*
* Init players with some belongings
*
* Having an item makes the player "aware" of its purpose.
object_prep(q_ptr, lookup_kind(TV_CORPSE, SV_CORPSE));
q_ptr->pval = get_mon_num(2);
q_ptr->number = 1;
- (void)inven_carry(q_ptr);
+ add_outfit(q_ptr);
}
break;
/* Some Skeletons */
object_prep(q_ptr, lookup_kind(TV_SKELETON, SV_ANY));
q_ptr->number = (byte)rand_range(7, 12);
- object_aware(q_ptr);
- object_known(q_ptr);
- (void)inven_carry(q_ptr);
+ add_outfit(q_ptr);
break;
#endif
case RACE_SKELETON:
/* Staff (of Nothing) */
object_prep(q_ptr, lookup_kind(TV_STAFF, SV_STAFF_NOTHING));
q_ptr->number = 1;
- object_aware(q_ptr);
- object_known(q_ptr);
- (void)inven_carry(q_ptr);
+ add_outfit(q_ptr);
break;
case RACE_ENT:
/* Potions of Water */
object_prep(q_ptr, lookup_kind(TV_POTION, SV_POTION_WATER));
q_ptr->number = (byte)rand_range(15, 23);
- object_aware(q_ptr);
- object_known(q_ptr);
- (void)inven_carry(q_ptr);
+ add_outfit(q_ptr);
break;
apply_magic(q_ptr, 1, AM_NO_FIXED_ART);
q_ptr->number = (byte)rand_range(7, 12);
- object_aware(q_ptr);
- object_known(q_ptr);
- (void)inven_carry(q_ptr);
+ add_outfit(q_ptr);
break;
/* Food rations */
object_prep(q_ptr, lookup_kind(TV_FOOD, SV_FOOD_RATION));
q_ptr->number = (byte)rand_range(3, 7);
- object_aware(q_ptr);
- object_known(q_ptr);
- (void)inven_carry(q_ptr);
+ add_outfit(q_ptr);
}
/* Get local object */
q_ptr->number = (byte)rand_range(2, 5);
- object_aware(q_ptr);
- object_known(q_ptr);
-
- (void)inven_carry(q_ptr);
+ add_outfit(q_ptr);
}
else if (p_ptr->pclass != CLASS_NINJA)
{
object_prep(q_ptr, lookup_kind(TV_LITE, SV_LITE_TORCH));
q_ptr->number = (byte)rand_range(3, 7);
q_ptr->xtra4 = rand_range(3, 7) * 500;
- object_aware(q_ptr);
- object_known(q_ptr);
- (void)inven_carry(q_ptr);
+ add_outfit(q_ptr);
}
/* Get local object */
object_prep(q_ptr, lookup_kind(TV_ARROW, SV_AMMO_NORMAL));
q_ptr->number = (byte)rand_range(15, 20);
- object_aware(q_ptr);
- object_known(q_ptr);
-
- (void)inven_carry(q_ptr);
+ add_outfit(q_ptr);
}
if (p_ptr->pclass == CLASS_RANGER)
{
/* Hack -- Give the player some arrows */
object_prep(q_ptr, lookup_kind(TV_BOW, SV_SHORT_BOW));
- object_aware(q_ptr);
- object_known(q_ptr);
-
- (void)inven_carry(q_ptr);
+ add_outfit(q_ptr);
}
else if (p_ptr->pclass == CLASS_ARCHER)
{
object_prep(q_ptr, lookup_kind(TV_ARROW, SV_AMMO_NORMAL));
q_ptr->number = (byte)rand_range(15, 20);
- object_aware(q_ptr);
- object_known(q_ptr);
-
- (void)inven_carry(q_ptr);
+ add_outfit(q_ptr);
}
else if (p_ptr->pclass == CLASS_HIGH_MAGE)
{
q_ptr->number = 1;
q_ptr->pval = (byte)rand_range(25, 30);
- object_aware(q_ptr);
- object_known(q_ptr);
-
- (void)inven_carry(q_ptr);
+ add_outfit(q_ptr);
}
else if (p_ptr->pclass == CLASS_SORCERER)
{
object_prep(q_ptr, lookup_kind(i, 0));
q_ptr->number = 1;
- object_aware(q_ptr);
- object_known(q_ptr);
-
- (void)inven_carry(q_ptr);
+ add_outfit(q_ptr);
}
}
else if (p_ptr->pclass == CLASS_TOURIST)
object_prep(q_ptr, lookup_kind(TV_SHOT, SV_AMMO_LIGHT));
q_ptr->number = (byte)rand_range(15, 20);
- object_aware(q_ptr);
- object_known(q_ptr);
-
- (void)inven_carry(q_ptr);
+ add_outfit(q_ptr);
}
object_prep(q_ptr, lookup_kind(TV_FOOD, SV_FOOD_BISCUIT));
q_ptr->number = (byte)rand_range(2, 4);
- object_aware(q_ptr);
- object_known(q_ptr);
-
- (void)inven_carry(q_ptr);
+ add_outfit(q_ptr);
object_prep(q_ptr, lookup_kind(TV_FOOD, SV_FOOD_WAYBREAD));
q_ptr->number = (byte)rand_range(2, 4);
- object_aware(q_ptr);
- object_known(q_ptr);
-
- (void)inven_carry(q_ptr);
+ add_outfit(q_ptr);
object_prep(q_ptr, lookup_kind(TV_FOOD, SV_FOOD_JERKY));
q_ptr->number = (byte)rand_range(1, 3);
- object_aware(q_ptr);
- object_known(q_ptr);
-
- (void)inven_carry(q_ptr);
+ add_outfit(q_ptr);
object_prep(q_ptr, lookup_kind(TV_FOOD, SV_FOOD_PINT_OF_ALE));
q_ptr->number = (byte)rand_range(2, 4);
- object_aware(q_ptr);
- object_known(q_ptr);
-
- (void)inven_carry(q_ptr);
+ add_outfit(q_ptr);
object_prep(q_ptr, lookup_kind(TV_FOOD, SV_FOOD_PINT_OF_WINE));
q_ptr->number = (byte)rand_range(2, 4);
- object_aware(q_ptr);
- object_known(q_ptr);
-
- (void)inven_carry(q_ptr);
+ add_outfit(q_ptr);
}
else if (p_ptr->pclass == CLASS_NINJA)
{
object_prep(q_ptr, lookup_kind(TV_SPIKE, 0));
q_ptr->number = (byte)rand_range(15, 20);
- object_aware(q_ptr);
- object_known(q_ptr);
+ add_outfit(q_ptr);
+ }
+ else if (p_ptr->pclass == CLASS_SNIPER)
+ {
+ /* Hack -- Give the player some bolts */
+ object_prep(q_ptr, lookup_kind(TV_BOLT, SV_AMMO_NORMAL));
+ q_ptr->number = (byte)rand_range(15, 20);
- (void)inven_carry(q_ptr);
+ add_outfit(q_ptr);
}
if(p_ptr->pseikaku == SEIKAKU_SEXY)
q_ptr->name2 = EGO_BRAND_POIS;
}
- object_aware(q_ptr);
- object_known(q_ptr);
-
- (void)inven_carry(q_ptr);
+ add_outfit(q_ptr);
}
/* Hack -- make aware of the water */
p_ptr->prace = k;
rp_ptr = &race_info[p_ptr->prace];
- str = rp_ptr->title;
/* Display */
- c_put_str(TERM_L_BLUE, str, 4, 15);
+ c_put_str(TERM_L_BLUE, rp_ptr->title, 4, 15);
/* Success */
return TRUE;
p_ptr->pclass = k;
cp_ptr = &class_info[p_ptr->pclass];
mp_ptr = &m_info[p_ptr->pclass];
- str = cp_ptr->title;
/* Display */
-#ifdef JP
- c_put_str(TERM_L_BLUE, str, 5, 15);
-#else
c_put_str(TERM_L_BLUE, cp_ptr->title, 5, 15);
-#endif
return TRUE;
}
if (c == '8')
{
if (cs >= 4) cs -= 4;
- if (seikaku_info[cs].sex && (seikaku_info[cs].sex != (p_ptr->psex+1)))
+ if (cs != MAX_SEIKAKU && seikaku_info[cs].sex && (seikaku_info[cs].sex != (p_ptr->psex+1)))
{
if((cs - 4) > 0)
cs -= 4;
if (c == '4')
{
if (cs > 0) cs--;
- if (seikaku_info[cs].sex && (seikaku_info[cs].sex != (p_ptr->psex+1)))
+ if (cs != MAX_SEIKAKU && seikaku_info[cs].sex && (seikaku_info[cs].sex != (p_ptr->psex+1)))
{
if((cs - 1) > 0)
cs--;
if (c == '6')
{
if (cs < MAX_SEIKAKU) cs++;
- if (seikaku_info[cs].sex && (seikaku_info[cs].sex != (p_ptr->psex+1)))
+ if (cs != MAX_SEIKAKU && seikaku_info[cs].sex && (seikaku_info[cs].sex != (p_ptr->psex+1)))
{
if((cs + 1) <= MAX_SEIKAKU)
cs++;
if (c == '2')
{
if ((cs + 4) <= MAX_SEIKAKU) cs += 4;
- if (seikaku_info[cs].sex && (seikaku_info[cs].sex != (p_ptr->psex+1)))
+ if (cs != MAX_SEIKAKU && seikaku_info[cs].sex && (seikaku_info[cs].sex != (p_ptr->psex+1)))
{
if((cs + 4) <= MAX_SEIKAKU)
cs += 4;
histpref_buf = histbuf;
#ifdef JP
- sprintf(buf, "histedit-%s.prf", player_name);
+ sprintf(buf, "histedit-%s.prf", player_base);
#else
- sprintf(buf, "histpref-%s.prf", player_name);
+ sprintf(buf, "histpref-%s.prf", player_base);
#endif
err = process_histpref_file(buf);
return FALSE;
}
+ else if (!histpref_buf[0])
+ {
+#ifdef JP
+ msg_print("͸ú¤ÊÀ¸¤¤Î©¤ÁÀßÄê¤Ï¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤¢¤ê¤Þ¤»¤ó¡£");
+#else
+ msg_print("There does not exist valid background history preference.");
+#endif
+ msg_print(NULL);
+
+ /* Kill the buffer */
+ histpref_buf = NULL;
+
+ return FALSE;
+ }
/* Clear the previous history strings */
for (i = 0; i < 4; i++) p_ptr->history[i][0] = '\0';
if (!(skey & SKEY_MASK)) c = (char)skey;
else c = 0;
- if (skey == SKEY_UP)
+ if (skey == SKEY_UP || c == KTRL('p'))
{
y--;
if (y < 0) y = 3;
if ((x > 0) && (iskanji2(p_ptr->history[y], x-1))) x--;
#endif
}
- else if (skey == SKEY_DOWN)
+ else if (skey == SKEY_DOWN || c == KTRL('n'))
{
y++;
if (y > 3) y = 0;
if ((x > 0) && (iskanji2(p_ptr->history[y], x-1))) x--;
#endif
}
- else if (skey == SKEY_RIGHT)
+ else if (skey == SKEY_RIGHT || c == KTRL('f'))
{
#ifdef JP
if (iskanji2(p_ptr->history[y], x)) x++;
if (y < 3) y++;
}
}
- else if (skey == SKEY_LEFT)
+ else if (skey == SKEY_LEFT || c == KTRL('b'))
{
x--;
if (x < 0)
if ((x > 0) && (iskanji2(p_ptr->history[y], x-1))) x--;
#endif
}
- else if (c == '\r')
+ else if (c == '\r' || c == '\n')
{
Term_erase(0, 11, 255);
Term_erase(0, 17, 255);
static bool player_birth_aux(void)
{
int i, k, n, cs, os;
- int number_of_quests;
int mode = 0;
char b2 = ']';
char buf[80], cur[80];
- char inp[80];
/*** Intro ***/
{
/* Analyze */
sp_ptr = &sex_info[n];
- str = sp_ptr->title;
-
/* Display */
#ifdef JP
- sprintf(buf, "%c%c%s", I2A(n), p2, str);
+ sprintf(buf, "%c%c%s", I2A(n), p2, sp_ptr->title);
#else
- sprintf(buf, "%c%c %s", I2A(n), p2, str);
+ sprintf(buf, "%c%c %s", I2A(n), p2, sp_ptr->title);
#endif
put_str(buf, 12 + (n/5), 2 + 15 * (n%5));
}
/* Set sex */
p_ptr->psex = k;
sp_ptr = &sex_info[p_ptr->psex];
- str = sp_ptr->title;
-
/* Display */
- c_put_str(TERM_L_BLUE, str, 3, 15);
+ c_put_str(TERM_L_BLUE, sp_ptr->title, 3, 15);
/* Clean up */
clear_from(10);
#endif /* ALLOW_AUTOROLLER */
- /* Clean up */
- clear_from(10);
-
- /*** User enters number of quests ***/
- /* Heino Vander Sanden and Jimmy De Laet */
-
- /* Extra info */
-#ifdef JP
- put_str("ɬ¿Ü¤Î¥¯¥¨¥¹¥È(¥ª¥Ù¥í¥óµÚ¤Óº®Æ٤Υµ¡¼¥Ú¥ó¥È)¤Ë²Ã¤¨¤Æ¡¢ÄɲäΥ¯¥¨¥¹¥È¤Î", 10, 5);
- put_str("¿ô¤òÀßÄꤹ¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£", 11, 5);
- put_str("Äɲ寥¨¥¹¥È¤ò¹Ô¤Ê¤¤¤¿¤¯¤Ê¤¤¾ì¹ç¤Ï '0'¤òÆþÎϤ·¤Æ²¼¤µ¤¤¡£", 12, 5);
- put_str("¥é¥ó¥À¥à¤Ë·èÄꤹ¤ë¤Ë¤Ï'*'¤òÆþÎϤ·¤Æ²¼¤µ¤¤¡£", 13, 5);
-#else
- put_str("You can enter the number of quests you'd like to perform in addition", 10, 5);
- put_str("to the two obligatory ones ( Oberon and the Serpent of Chaos )", 11, 5);
- put_str("In case you do not want any additional quests, just enter 0", 12, 5);
- put_str("If you want a random number of random quests, just enter *", 13, 5);
-#endif
-
- /* Ask the number of additional quests */
- while (TRUE)
- {
-
-#ifdef JP
- put_str(format("Äɲ寥¨¥¹¥È¤Î¿ô (%u°Ê²¼) ", MAX_RANDOM_QUEST - MIN_RANDOM_QUEST + 1), 15, 5);
-#else
- put_str(format("Number of additional quests? (<%u) ", MAX_RANDOM_QUEST - MIN_RANDOM_QUEST + 2), 15, 5);
-#endif
-
-
- /* Get a the number of additional quest */
- while (TRUE)
- {
- /* Move the cursor */
- put_str("", 15, 40);
-
- /* Default */
- strcpy(inp, "10");
-
- /* Get a response (or escape) */
- if (!askfor_aux(inp, 2, FALSE)) strcpy(inp, "10");
-
- /* Quit */
- if (inp[0] == 'Q') birth_quit();
-
- /* Start over */
- if (inp[0] == 'S') return (FALSE);
-
- /* Check for random number of quests */
- if (inp[0] == '*')
- {
- /* 0 to 10 random quests */
- number_of_quests = randint0(11);
- }
- else if (inp[0] == '?')
- {
-#ifdef JP
- show_help("jbirth.txt#RandomQuests");
-#else
- show_help("birth.txt#RandomQuests");
-#endif
- continue;
- }
- else
- {
- number_of_quests = atoi(inp);
- }
-
- /* Break on valid input */
- if ((number_of_quests <= MAX_RANDOM_QUEST - MIN_RANDOM_QUEST + 1) && (number_of_quests >= 0)) break;
- }
- break;
- }
-
/* Clear */
clear_from(10);
/* Clear prompt */
clear_from(23);
+ /* Get a name, recolor it, prepare savefile */
+ get_name();
+
+ /* Process the player name */
+ process_player_name(creating_savefile);
+
/*** Edit character background ***/
edit_history();
get_max_stats();
- /* Get a name, recolor it, prepare savefile */
-
- get_name();
-
get_virtues();
/* Prompt for it */
/* Start over */
if (c == 'S') return (FALSE);
- init_dungeon_quests(number_of_quests);
+
+ /* Initialize random quests */
+ init_dungeon_quests();
/* Save character data for quick start */
save_prev_data(&previous_char);
- previous_char.quests = number_of_quests;
previous_char.quick_ok = TRUE;
- /* Process the player name */
- process_player_name(FALSE);
-
/* Accept */
return (TRUE);
}
}
load_prev_data(FALSE);
- init_dungeon_quests(previous_char.quests);
+ init_dungeon_quests();
init_turn();
sp_ptr = &sex_info[p_ptr->psex];