Crossfire Server, Trunk
|
#include <global.h>
#include <ob_methods.h>
#include <ob_types.h>
#include <sounds.h>
#include <sproto.h>
Go to the source code of this file.
Functions | |
static void | animate_bomb (object *op) |
static void | check_spell_knockback (object *op) |
static void | execute_word_of_recall (object *op) |
static void | explosion (object *op) |
static void | forklightning (object *op, object *tmp) |
void | init_type_spell_effect (void) |
static void | move_aura (object *aura) |
static void | move_ball_spell (object *op) |
static void | move_bolt (object *op) |
static object * | move_bullet (object *op) |
static void | move_cone (object *op) |
static void | move_missile (object *op) |
static void | move_swarm_spell (object *op) |
static method_ret | spell_effect_type_move_on (object *trap, object *victim, object *originator) |
static method_ret | spell_effect_type_process (object *op) |
The implementation of the Spell Effect class of objects.
Definition in file spell_effect.cpp.
|
static |
This handles an exploding bomb.
op | The original bomb object. |
Definition at line 461 of file spell_effect.cpp.
References add_refcount(), arch_to_object(), env, explode_bullet(), find_archetype(), free_string(), freearr_x, NUM_ANIMATIONS, ob_process(), object_copy_owner(), object_get_env_recursive(), object_insert_in_map_at(), object_remove(), object_update_turn_face(), give::op, out_of_map(), SPLINT, and Ice::tmp.
Referenced by spell_effect_type_process().
|
static |
Checks to see if a spell pushes objects as well as flies over and damages them (only used for cones for now) but moved here so it could be applied to bolts too
op | The spell object. |
Definition at line 899 of file spell_effect.cpp.
References absdir(), FLAG_IS_FLOOR, FLAG_NO_PICK, FLAG_WIZ, GET_MAP_OB, object::more, MOVE_FLYING, move_object(), give::op, QUERY_FLAG, rndm(), and Ice::tmp.
Referenced by explosion(), move_bolt(), and move_cone().
|
static |
Handles the actual word of recalling. Called when force in player inventory expires.
op | The word of recall effect activating. |
Definition at line 537 of file spell_effect.cpp.
References enter_exit(), object_free_drop_inventory(), object_remove(), give::op, PLAYER, and remove_unpaid_objects().
Referenced by spell_effect_type_process().
|
static |
Expands an explosion. op is a piece of the explosion - this expans it in the different directions. At least that is what I think this does.
op | piece of explosion expanding. |
Definition at line 320 of file spell_effect.cpp.
References check_spell_knockback(), freearr_x, freearr_y, hit_map(), m, object_copy(), object_free_drop_inventory(), object_insert_in_map_at(), object_merge_spell(), object_new(), object_remove(), ok_to_put_more(), give::op, and Ice::tmp.
Referenced by spell_effect_type_process().
Causes op to fork.
op | original bolt. |
tmp | first piece of the fork. |
Definition at line 848 of file spell_effect.cpp.
References absdir(), living::Con, living::dam, living::Dex, object::direction, object::duration, freearr_x, freearr_y, get_map_flags(), GET_MAP_MOVE_BLOCK, m, OB_TYPE_MOVE_BLOCK, object_copy(), object_insert_in_map_at(), object_new(), object_update_turn_face(), give::op, P_OUT_OF_MAP, rndm(), object::speed_left, object::stats, and Ice::tmp.
Referenced by move_bolt().
void init_type_spell_effect | ( | void | ) |
Initializer for the SPELL_EFFECT object type.
Definition at line 54 of file spell_effect.cpp.
References register_move_on(), register_process(), SPELL_EFFECT, spell_effect_type_move_on(), and spell_effect_type_process().
Referenced by register_all_ob_types().
|
static |
Process an aura. An aura is a part of someone's inventory, which he carries with him, but which acts on the map immediately around him. Aura parameters: duration: duration counter. attacktype: aura's attacktype other_arch: archetype to drop where we attack
aura | The spell effect. |
Definition at line 728 of file spell_effect.cpp.
References animate::anim, animate_object(), object::animation, arch_to_object(), object::attacktype, cast_spell(), check_spell_expiry(), archetype::clone, object::duration, object::env, FLAG_ALIVE, FLAG_ANIMATE, FLAG_FRIENDLY, FLAG_REMOVED, FLAG_UNAGGRESSIVE, FOR_MAP_FINISH, FOR_MAP_PREPARE, FREE_OBJ_FREE_INVENTORY, FREE_OBJ_NO_DESTROY_CALLBACK, get_map_flags(), GET_MAP_MOVE_BLOCK, hit_map(), IS_PLAYER(), m, object::map, OB_TYPE_MOVE_BLOCK, object_free(), object_free_drop_inventory(), object_get_value(), object_insert_in_map_at(), object_insert_in_ob(), object_remove(), object::other_arch, P_OUT_OF_MAP, QUERY_FLAG, object::range, SET_FLAG, SPELL, sstring, object::state, Ice::tmp, try_find_animation(), object::type, object::x, and object::y.
Referenced by spell_effect_type_process().
|
static |
This handles ball type spells that just sort of wander about. Note that duration is handled by process_object() in time.c
op | The spell effect. |
Definition at line 559 of file spell_effect.cpp.
References absdir(), adjust_dir(), arch_to_object(), freearr_x, freearr_y, get_map_flags(), GET_MAP_MOVE_BLOCK, hit_map(), m, OB_TYPE_MOVE_BLOCK, object_get_owner(), object_insert_in_map_at(), object_remove(), on_same_map(), give::op, P_IS_ALIVE, P_OUT_OF_MAP, rndm(), spell_find_dir(), object::x, and object::y.
Referenced by spell_effect_type_process().
|
static |
Moves bolt 'op'. Basically, it just advances a space, and checks for various things that may stop it.
op | The bolt object moving. |
Definition at line 156 of file spell_effect.cpp.
References absdir(), check_spell_knockback(), DIRX, DIRY, FLAG_REFLECTING, forklightning(), freearr_x, freearr_y, get_map_flags(), GET_MAP_MOVE_BLOCK, hit_map(), m, OB_TYPE_MOVE_BLOCK, object_copy(), object_free_drop_inventory(), object_insert_in_map_at(), object_new(), object_remove(), object_update_turn_face(), give::op, P_IS_ALIVE, P_OUT_OF_MAP, QUERY_FLAG, reflwall(), rndm(), Ice::tmp, diamondslots::x, and diamondslots::y.
Referenced by spell_effect_type_process().
Moves bullet 'op'. Basically, we move 'op' one square, and if it hits something, call check_bullet. This function is only applicable to bullets, but not to all fired arches (eg, bolts).
op | The bullet being moved. |
Definition at line 260 of file spell_effect.cpp.
References absdir(), check_bullet(), DIRX, DIRY, explode_bullet(), FLAG_FREED, get_map_flags(), GET_MAP_MOVE_BLOCK, m, OB_TYPE_MOVE_BLOCK, object_free_drop_inventory(), object_insert_in_map_at(), object_remove(), object_update_turn_face(), give::op, P_OUT_OF_MAP, QUERY_FLAG, and reflwall().
Referenced by move_missile(), and spell_effect_type_process().
|
static |
Causes cone object 'op' to move a space/hit creatures.
op | cone object moving. |
Definition at line 393 of file spell_effect.cpp.
References absdir(), check_spell_knockback(), cone_drop(), FLAG_LIFESAVE, freearr_x, freearr_y, hit_map(), llevError, LOG(), object_copy(), object_free_drop_inventory(), object_insert_in_map_at(), object_new(), object_remove(), object_update_speed(), object_was_destroyed, ok_to_put_more(), give::op, QUERY_FLAG, CFweardisguise::tag, Ice::tmp, diamondslots::x, and diamondslots::y.
Referenced by spell_effect_type_process().
|
static |
Move a missile object. This is the same as move_bullet(), except that after moving, we update the projectile's direction (if it's still in existence) so that it homes in on things.
op | The missile that needs to be moved. |
Definition at line 516 of file spell_effect.cpp.
References adjust_dir(), move_bullet(), object_get_owner(), object_update_turn_face(), give::op, and spell_find_dir().
Referenced by spell_effect_type_process().
|
static |
Definition at line 658 of file spell_effect.cpp.
References absdir(), fire_arch_from_position(), freearr_x, freearr_y, get_map_flags(), get_random_dir(), m, object_free_drop_inventory(), object_get_owner(), object_remove(), give::op, P_OUT_OF_MAP, rndm(), SP_BULLET, SP_MAGIC_MISSILE, SPELL, object::x, and object::y.
Referenced by spell_effect_type_process().
|
static |
Move on this Spell Effect object.
trap | The Spell Effect we're moving on |
victim | The object moving over this one |
originator | The object that caused the move_on event |
Definition at line 66 of file spell_effect.cpp.
References object::attacktype, common_post_ob_move_on(), common_pre_ob_move_on(), object::count, living::dam, FLAG_ALIVE, hit_player(), METHOD_ERROR, METHOD_OK, object_free_drop_inventory(), object_remove(), object_was_destroyed, QUERY_FLAG, save_throw_object(), SP_CONE, SP_MAGIC_MISSILE, SP_MOVING_BALL, object::speed, object::stats, object::subtype, and sword_of_souls::victim.
Referenced by init_type_spell_effect().
|
static |
Handle ob_process for all SPELL_EFFECT objects.
op | The spell effect that's being processed. |
Definition at line 106 of file spell_effect.cpp.
References animate_bomb(), execute_word_of_recall(), explosion(), METHOD_OK, move_aura(), move_ball_spell(), move_bolt(), move_bullet(), move_cone(), move_missile(), move_swarm_spell(), give::op, SP_AURA, SP_BOLT, SP_BOMB, SP_BULLET, SP_CONE, SP_EXPLOSION, SP_MAGIC_MISSILE, SP_MOVING_BALL, SP_SWARM, and SP_WORD_OF_RECALL.
Referenced by init_type_spell_effect().