tfe-1.0/area/
tfe-1.0/files/
tfe-1.0/logs/
tfe-1.0/logs/immortal/
tfe-1.0/logs/mob/
tfe-1.0/logs/object/
tfe-1.0/logs/player/
tfe-1.0/logs/room/
tfe-1.0/notes/clans/
tfe-1.0/player/
tfe-1.0/prev/
tfe-1.0/prev/area/
tfe-1.0/prev/player/
tfe-1.0/prev/rooms/
tfe-1.0/rooms/
tfe-1.0/src-gc/
tfe-1.0/src-msvc/
tfe-1.0/src-unix/
tfe-1.0/www/
tfe-1.0/www/html/
#include "define.h"
#include "struct.h"


void* code_open( void** argument )
{
  room_data*  room  = (room_data*) argument[0];
  int         door  = (int)        argument[1];
  exit_data*  exit;

  if( room != NULL
    && ( exit = exit_direction( room, door ) ) != NULL ) {
    remove_bit( &exit->exit_info, EX_CLOSED );
    if( ( exit = reverse( exit ) ) != NULL )
      remove_bit( &exit->exit_info, EX_CLOSED );
    }

  return NULL;
}


void* code_close( void** argument )
{
  room_data*  room  = (room_data*) argument[0];
  int         door  = (int)        argument[1];
  exit_data*  exit;

  if( room != NULL
    && ( exit = exit_direction( room, door ) ) != NULL ) {
    set_bit( &exit->exit_info, EX_CLOSED );
    if( ( exit = reverse( exit ) ) != NULL )
      set_bit( &exit->exit_info, EX_CLOSED );
    }

  return NULL;
}


void* code_lock( void** argument )
{
  room_data*  room  = (room_data*) argument[0];
  int         door  = (int)        argument[1];
  exit_data*  exit;

  if( room != NULL
    && ( exit = exit_direction( room, door ) ) != NULL ) {
    set_bit( &exit->exit_info, EX_LOCKED );
    if( ( exit = reverse( exit ) ) != NULL )
      set_bit( &exit->exit_info, EX_LOCKED );
    }

  return NULL;
}


void* code_unlock( void** argument )
{
  room_data*   room  = (room_data*) argument[0];
  int          door  = (int)        argument[1];
  exit_data*   exit;

  if( room != NULL
    && ( exit = exit_direction( room, door ) ) != NULL ) {
    remove_bit( &exit->exit_info, EX_LOCKED );
    if( ( exit = reverse( exit ) ) != NULL )
      remove_bit( &exit->exit_info, EX_LOCKED );
    }

  return NULL;
}


void* code_is_open( void** argument )
{
  room_data*  room  = (room_data*) argument[0];
  int          dir  = (int)        argument[1];
  exit_data*  exit;  

  return (void*) ( room != NULL
    && ( exit = exit_direction( room, dir ) ) != NULL
    && !is_set( &exit->exit_info, EX_CLOSED ) );
}


void* code_is_locked( void** argument )
{
  room_data*  room  = (room_data*) argument[0];
  int          dir  = (int)        argument[1];
  exit_data*  exit;  

  return (void*) ( room != NULL
    && ( exit = exit_direction( room, dir ) ) != NULL
    && is_set( &exit->exit_info, EX_LOCKED ) );
}


void* code_show( void** argument )
{
  char_data*    ch  = (char_data*) argument[0];
  room_data*  room  = (room_data*) argument[1];
  int          dir  = (int)        argument[2];
  exit_data*  exit;  

  if( room != NULL && ch != NULL
    && ( exit = exit_direction( room, dir ) ) != NULL     
    && is_set( &exit->exit_info, EX_SECRET ) )
    ch->seen_exits += exit;

  return NULL;
}