Crossfire Server, Branch 1.12  R12190
Functions
projectile.c File Reference

This file contains code common to projectile objects. More...

#include <global.h>
#include <sproto.h>
#include <ob_methods.h>
#include <ob_types.h>
Include dependency graph for projectile.c:

Go to the source code of this file.

Functions

method_ret common_process_projectile (ob_methods *context, object *op)
 Move an arrow or thrown object along its course.
method_ret common_projectile_move_on (ob_methods *context, object *trap, object *victim, object *originator)
 Move on this Thrown Object object.
void stop_projectile (object *op)
 Handle an arrow or thrown object stopping.

Detailed Description

This file contains code common to projectile objects.

For now it is limited to arrows and thrown objects.

Definition in file projectile.c.


Function Documentation

method_ret common_process_projectile ( ob_methods context,
object *  op 
)

Move an arrow or thrown object along its course.

Parameters:
contextThe method context
opThe arrow or thrown object being moved.
Todo:
Split this function up.
Returns:
METHOD_ERROR if op is not in a map, otherwise METHOD_OK

Definition at line 62 of file projectile.c.

References absdir(), DIRX, DIRY, FLAG_ALIVE, FLAG_REFL_MISSILE, FLAG_REFLECTING, free_object(), freearr_x, freearr_y, GET_ANIM_ID, GET_ANIMATION, get_map_flags(), GET_MAP_MOVE_BLOCK, GET_MAP_OB, hit_with_arrow(), insert_ob_in_map(), llevError, LOG(), METHOD_ERROR, METHOD_OK, new_faces, OB_TYPE_MOVE_BLOCK, P_IS_ALIVE, P_OUT_OF_MAP, QUERY_FLAG, remove_ob(), rndm(), SET_ANIMATION, and stop_projectile().

Referenced by arrow_type_process(), and thrown_object_type_process().

Here is the call graph for this function:

Here is the caller graph for this function:

method_ret common_projectile_move_on ( ob_methods context,
object *  trap,
object *  victim,
object *  originator 
)

Move on this Thrown Object object.

Parameters:
contextThe method context
trapThe thrown object or arrow we're moving on
victimThe object moving over this one
originatorThe object that caused the move_on event
Returns:
METHOD_OK

Definition at line 219 of file projectile.c.

References common_post_ob_move_on(), common_pre_ob_move_on(), FLAG_ALIVE, hit_with_arrow(), METHOD_ERROR, METHOD_OK, and QUERY_FLAG.

Referenced by init_type_arrow(), and init_type_thrown_object().

Here is the call graph for this function:

Here is the caller graph for this function:

void stop_projectile ( object *  op)

Handle an arrow or thrown object stopping.

Parameters:
opThe arrow or thrown object that is stopping.

Definition at line 36 of file projectile.c.

References clear_owner(), EVENT_STOP, execute_event(), fix_stopped_arrow(), free_object(), insert_ob_in_map(), merge_ob(), remove_ob(), and SCRIPT_FIX_NOTHING.

Referenced by arrow_type_process(), common_process_projectile(), and thrown_object_type_process().

Here is the call graph for this function:

Here is the caller graph for this function: