… | |
… | |
70 | new_draw_info (NDI_UNIQUE, 0, op, "You can't write a rune on top of another rune."); |
70 | new_draw_info (NDI_UNIQUE, 0, op, "You can't write a rune on top of another rune."); |
71 | return 0; |
71 | return 0; |
72 | } |
72 | } |
73 | |
73 | |
74 | if (spell->other_arch) |
74 | if (spell->other_arch) |
75 | rune_spell = arch_to_object (spell->other_arch); |
75 | rune_spell = spell->other_arch->instance (); |
76 | else |
76 | else |
77 | { |
77 | { |
78 | /* Player specified spell. The player has to know the spell, so |
78 | /* Player specified spell. The player has to know the spell, so |
79 | * lets just look through the players inventory see if they know it |
79 | * lets just look through the players inventory see if they know it |
80 | * use the item_matched_string for our typical matching method. |
80 | * use the item_matched_string for our typical matching method. |
… | |
… | |
291 | { |
291 | { |
292 | if (trap->inv) |
292 | if (trap->inv) |
293 | cast_spell (env, trap, trap->direction, trap->inv, NULL); |
293 | cast_spell (env, trap, trap->direction, trap->inv, NULL); |
294 | else |
294 | else |
295 | { |
295 | { |
296 | object *spell = arch_to_object (trap->other_arch); |
296 | object *spell = trap->other_arch->instance (); |
297 | |
297 | |
298 | cast_spell (env, trap, trap->direction, spell, NULL); |
298 | cast_spell (env, trap, trap->direction, spell, NULL); |
299 | spell->destroy (); |
299 | spell->destroy (); |
300 | } |
300 | } |
301 | } |
301 | } |