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 | |
void | init_type_marker (void) |
static method_ret | marker_type_process (object *op) |
static method_ret | marker_type_trigger (object *op, object *cause, int state) |
static void | move_marker (object *op) |
void init_type_marker | ( | void | ) |
Initializer for the marker object type.
Definition at line 40 of file marker.c.
References MARKER, marker_type_process(), marker_type_trigger(), register_process(), register_trigger(), and TRIGGER_MARKER.
Referenced by register_all_ob_types().
|
static |
Processes a marker.
op | The marker to process |
METHOD_OK |
Definition at line 102 of file marker.c.
References METHOD_OK, move_marker(), and give::op.
Referenced by init_type_marker().
|
static |
A marker is triggered.
op | The object being triggered |
cause | Ignored. |
state | Ignored. |
METHOD_OK |
Definition at line 114 of file marker.c.
References METHOD_OK, move_marker(), give::op, quest::state, and nlohmann::detail::void().
Referenced by init_type_marker().
|
static |
Move function for marker objects.
When moved, a marker will search for a player sitting above it, and insert an invisible, weightless force into him with a specific code as the slaying field.
At that time, it writes the contents of its own message field to the player. The marker will decrement hp to 0 and then delete itself every time it grants a mark. unless hp was zero to start with, in which case it is infinite.
op | marker to move. Can be removed if it reached its marking limit. |
Definition at line 61 of file marker.c.
References add_force(), add_string(), draw_ext_info(), find_force(), dragon_attune::force, GET_MAP_OB, MSG_SUBTYPE_NONE, MSG_TYPE_MISC, NDI_NAVY, NDI_UNIQUE, object_free_drop_inventory(), object_remove(), give::op, PLAYER, and Ice::tmp.
Referenced by marker_type_process(), and marker_type_trigger().