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

The implementation of the Exit class of objects. More...

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

Go to the source code of this file.

Functions

static method_ret exit_type_apply (ob_methods *context, object *exit, object *op, int autoapply)
 Handles applying an exit.
static method_ret exit_type_move_on (ob_methods *context, object *trap, object *victim, object *originator)
 Move on this Exit object.
void init_type_exit (void)
 Initializer for the EXIT object type.
static int is_legal_2ways_exit (object *op, object *exit)
 This fonction return true if the exit is not a 2 ways one or it is 2 ways, valid exit.

Detailed Description

The implementation of the Exit class of objects.

Definition in file exit.c.


Function Documentation

static method_ret exit_type_apply ( ob_methods context,
object *  exit,
object *  op,
int  autoapply 
) [static]

Handles applying an exit.

Parameters:
contextThe method context
exitThe exit applied
opThe object applying the exit
autoapplySet this to 1 to automatically apply the sign
Returns:
METHOD_OK unless op is not a player, in which case METHOD_ERROR

Definition at line 160 of file exit.c.

References draw_ext_info(), draw_ext_info_format(), enter_exit(), EXIT_PATH, is_legal_2ways_exit(), MAX_BUF, METHOD_ERROR, METHOD_OK, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, MSG_TYPE_APPLY_SUCCESS, NDI_NAVY, NDI_UNIQUE, PLAYER, and query_name().

Referenced by init_type_exit().

Here is the call graph for this function:

Here is the caller graph for this function:

static method_ret exit_type_move_on ( ob_methods context,
object *  trap,
object *  victim,
object *  originator 
) [static]

Move on this Exit object.

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

Definition at line 52 of file exit.c.

References common_post_ob_move_on(), common_pre_ob_move_on(), draw_ext_info(), enter_exit(), EXIT_PATH, METHOD_ERROR, METHOD_OK, MSG_TYPE_APPLY, MSG_TYPE_APPLY_TRAP, NDI_NAVY, and PLAYER.

Referenced by init_type_exit().

Here is the call graph for this function:

Here is the caller graph for this function:

void init_type_exit ( void  )

Initializer for the EXIT object type.

Definition at line 39 of file exit.c.

References EXIT, exit_type_apply(), exit_type_move_on(), register_apply(), and register_move_on().

Referenced by register_all_ob_types().

Here is the call graph for this function:

Here is the caller graph for this function:

static int is_legal_2ways_exit ( object *  op,
object *  exit 
) [static]

This fonction return true if the exit is not a 2 ways one or it is 2 ways, valid exit.

A valid 2 way exit means:

  • You can come back (there is another exit at the other side)
  • You are
    • the owner of the exit
    • or in the same party as the owner
Note:
a owner in a 2 way exit is saved as the owner's name in the field exit->name cause the field exit->owner doesn't survive in the swapping (in fact the whole exit doesn't survive).
Parameters:
opplayer to check for.
exitexit object.
Returns:
1 if exit is not 2 way, 0 else.

Definition at line 90 of file exit.c.

References EXIT, EXIT_PATH, EXIT_X, EXIT_Y, first_player, GET_MAP_OB, has_been_loaded(), Settings::localdir, MAP_PLAYER_UNIQUE, pl::next, pl::ob, ready_map_name(), and settings.

Referenced by exit_type_apply().

Here is the call graph for this function:

Here is the caller graph for this function: