OSDN Git Service

Merge branch 'master' of git.osdn.net:/gitroot/hengband/hengband
[hengband/hengband.git] / src / player / player-race.c
1 #include "player/player-race.h"
2 #include "core/player-redraw-types.h"
3 #include "inventory/inventory-slot-types.h"
4 #include "player/player-race-types.h"
5 #include "system/object-type-definition.h"
6 #include "mimic-info-table.h"
7 #include "player/race-info-table.h"
8
9 const player_race *rp_ptr;
10
11 SYMBOL_CODE get_summon_symbol_from_player(player_type *creature_ptr)
12 {
13     SYMBOL_CODE symbol = 'N';
14     switch (creature_ptr->mimic_form) {
15     case MIMIC_NONE:
16         switch (creature_ptr->prace) {
17         case RACE_HUMAN:
18         case RACE_AMBERITE:
19         case RACE_BARBARIAN:
20         case RACE_BEASTMAN:
21         case RACE_DUNADAN:
22             symbol = 'p';
23             break;
24         case RACE_HALF_ELF:
25         case RACE_ELF:
26         case RACE_HOBBIT:
27         case RACE_GNOME:
28         case RACE_DWARF:
29         case RACE_HIGH_ELF:
30         case RACE_NIBELUNG:
31         case RACE_DARK_ELF:
32         case RACE_MIND_FLAYER:
33         case RACE_KUTAR:
34         case RACE_S_FAIRY:
35             symbol = 'h';
36             break;
37         case RACE_HALF_ORC:
38             symbol = 'o';
39             break;
40         case RACE_HALF_TROLL:
41             symbol = 'T';
42             break;
43         case RACE_HALF_OGRE:
44             symbol = 'O';
45             break;
46         case RACE_HALF_GIANT:
47         case RACE_HALF_TITAN:
48         case RACE_CYCLOPS:
49             symbol = 'P';
50             break;
51         case RACE_YEEK:
52             symbol = 'y';
53             break;
54         case RACE_KLACKON:
55             symbol = 'K';
56             break;
57         case RACE_KOBOLD:
58             symbol = 'k';
59             break;
60         case RACE_IMP:
61             if (one_in_(13))
62                 symbol = 'U';
63             else
64                 symbol = 'u';
65             break;
66         case RACE_DRACONIAN:
67             symbol = 'd';
68             break;
69         case RACE_GOLEM:
70         case RACE_ANDROID:
71             symbol = 'g';
72             break;
73         case RACE_SKELETON:
74             if (one_in_(13))
75                 symbol = 'L';
76             else
77                 symbol = 's';
78             break;
79         case RACE_ZOMBIE:
80             symbol = 'z';
81             break;
82         case RACE_VAMPIRE:
83             symbol = 'V';
84             break;
85         case RACE_SPECTRE:
86             symbol = 'G';
87             break;
88         case RACE_SPRITE:
89             symbol = 'I';
90             break;
91         case RACE_ENT:
92             symbol = '#';
93             break;
94         case RACE_ARCHON:
95             symbol = 'A';
96             break;
97         case RACE_BALROG:
98             symbol = 'U';
99             break;
100         default:
101             symbol = 'p';
102             break;
103         }
104         break;
105     case MIMIC_DEMON:
106         if (one_in_(13))
107             symbol = 'U';
108         else
109             symbol = 'u';
110         break;
111     case MIMIC_DEMON_LORD:
112         symbol = 'U';
113         break;
114     case MIMIC_VAMPIRE:
115         symbol = 'V';
116         break;
117     }
118     return symbol;
119 }
120
121 bool is_specific_player_race(player_type *creature_ptr, player_race_type prace) { return (!creature_ptr->mimic_form && (creature_ptr->prace == prace)); }