OSDN Git Service

[Refactor] #40275 Separated race_info[] from player-race.c/h to race-info-table.c/h
[hengband/hengband.git] / src / player-effects.c
index 8816205..d9361dd 100644 (file)
@@ -39,7 +39,7 @@
 #include "player-class.h"
 #include "player-move.h"
 #include "player-effects.h"
-#include "player-race.h"
+#include "player/race-info-table.h"
 #include "player-class.h"
 #include "player-personality.h"
 #include "player-sex.h"
@@ -3206,7 +3206,7 @@ bool lose_all_info(player_type *creature_ptr)
        {
                object_type *o_ptr = &creature_ptr->inventory_list[i];
                if (!o_ptr->k_idx) continue;
-               if (o_ptr->ident & (IDENT_MENTAL)) continue;
+               if (OBJECT_IS_FULL_KNOWN(o_ptr)) continue;
 
                o_ptr->feeling = FEEL_NONE;
                o_ptr->ident &= ~(IDENT_EMPTY);
@@ -3809,3 +3809,38 @@ bool choose_ele_immune(player_type *creature_ptr, TIME_EFFECT immune_turn)
        screen_load();
        return TRUE;
 }
+
+bool_hack drop_weapons(player_type *creature_ptr)
+{
+       INVENTORY_IDX slot = 0;
+       object_type *o_ptr = NULL;
+
+       if (creature_ptr->wild_mode) return FALSE;
+
+       msg_print(NULL);
+       if (has_melee_weapon(creature_ptr, INVEN_RARM))
+       {
+               slot = INVEN_RARM;
+               o_ptr = &creature_ptr->inventory_list[INVEN_RARM];
+
+               if (has_melee_weapon(creature_ptr, INVEN_LARM) && one_in_(2))
+               {
+                       o_ptr = &creature_ptr->inventory_list[INVEN_LARM];
+                       slot = INVEN_LARM;
+               }
+       }
+       else if (has_melee_weapon(creature_ptr, INVEN_LARM))
+       {
+               o_ptr = &creature_ptr->inventory_list[INVEN_LARM];
+               slot = INVEN_LARM;
+       }
+
+       if (slot && !object_is_cursed(o_ptr))
+       {
+               msg_print(_("武器を落としてしまった!", "You drop your weapon!"));
+               drop_from_inventory(creature_ptr, slot, 1);
+               return TRUE;
+       }
+
+       return FALSE;
+}