summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/mods/theme/scpt/s_demon.lua30
-rw-r--r--lib/scpt/s_demon.lua30
-rw-r--r--src/object.pkg5
-rw-r--r--src/object1.c19
4 files changed, 19 insertions, 65 deletions
diff --git a/lib/mods/theme/scpt/s_demon.lua b/lib/mods/theme/scpt/s_demon.lua
index d8f29a60..8bf14c21 100644
--- a/lib/mods/theme/scpt/s_demon.lua
+++ b/lib/mods/theme/scpt/s_demon.lua
@@ -164,33 +164,3 @@ CONTROL_DEMON = add_spell
"Attempts to control a demon",
}
}
-
--- ok we need to have different wield slots
-add_hooks
-{
- [HOOK_WIELD_SLOT] = function (obj, ideal)
- if (obj.tval == TV_DAEMON_BOOK) then
- local slot
- if (obj.sval == SV_DEMONBLADE) then
- if(ideal == TRUE) then
- slot = INVEN_WIELD
- else
- slot = get_slot(INVEN_WIELD)
- end
- elseif (obj.sval == SV_DEMONSHIELD) then
- if(ideal == TRUE) then
- slot = INVEN_ARM
- else
- slot = get_slot(INVEN_ARM)
- end
- elseif (obj.sval == SV_DEMONHORN) then
- if(ideal == TRUE) then
- slot = INVEN_HEAD
- else
- slot = get_slot(INVEN_HEAD)
- end
- end
- return TRUE, slot
- end
- end,
-}
diff --git a/lib/scpt/s_demon.lua b/lib/scpt/s_demon.lua
index d8f29a60..8bf14c21 100644
--- a/lib/scpt/s_demon.lua
+++ b/lib/scpt/s_demon.lua
@@ -164,33 +164,3 @@ CONTROL_DEMON = add_spell
"Attempts to control a demon",
}
}
-
--- ok we need to have different wield slots
-add_hooks
-{
- [HOOK_WIELD_SLOT] = function (obj, ideal)
- if (obj.tval == TV_DAEMON_BOOK) then
- local slot
- if (obj.sval == SV_DEMONBLADE) then
- if(ideal == TRUE) then
- slot = INVEN_WIELD
- else
- slot = get_slot(INVEN_WIELD)
- end
- elseif (obj.sval == SV_DEMONSHIELD) then
- if(ideal == TRUE) then
- slot = INVEN_ARM
- else
- slot = get_slot(INVEN_ARM)
- end
- elseif (obj.sval == SV_DEMONHORN) then
- if(ideal == TRUE) then
- slot = INVEN_HEAD
- else
- slot = get_slot(INVEN_HEAD)
- end
- end
- return TRUE, slot
- end
- end,
-}
diff --git a/src/object.pkg b/src/object.pkg
index a89dad9a..1ff281c7 100644
--- a/src/object.pkg
+++ b/src/object.pkg
@@ -835,11 +835,6 @@ static obj_theme lua_obj_theme @ theme_forge;
#define SV_CORPSE_SKULL 4
#define SV_CORPSE_MEAT 5
-/* The "sval" codes for TV_DAEMON_BOOK */
-#define SV_DEMONBLADE 55
-#define SV_DEMONSHIELD 56
-#define SV_DEMONHORN 57
-
/*
* Special Object Flags
*/
diff --git a/src/object1.c b/src/object1.c
index 857deb2c..b834eb91 100644
--- a/src/object1.c
+++ b/src/object1.c
@@ -4145,6 +4145,25 @@ s16b wield_slot_ideal(object_type *o_ptr, bool_ ideal)
}
return -1;
}
+
+ case TV_DAEMON_BOOK:
+ {
+ int slot = -1;
+
+ switch (o_ptr->sval)
+ {
+ case SV_DEMONBLADE : slot = INVEN_WIELD; break;
+ case SV_DEMONSHIELD: slot = INVEN_ARM; break;
+ case SV_DEMONHORN : slot = INVEN_HEAD; break;
+ }
+
+ if ((slot >= 0) && (!ideal))
+ {
+ slot = get_slot(slot);
+ }
+
+ return slot;
+ }
}
/* No slot available */