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_doing_quest( void** argument )
{
  char_data*     ch  = (char_data*) argument[0];
  int         quest  = (int)        argument[1];

  if( quest < 0 || quest >= MAX_QUEST ) {
    code_bug( "Doing_Quest: impossible quest number." );
    return NULL;
    }

  if( ch == NULL ) {
    code_bug( "Doing_Quest: Null character." );
    return NULL;
    } 

  return (void*) ( ch->pcdata != NULL
    && ch->pcdata->quest_flags[quest] == 1 );
}


void* code_done_quest( void** argument )
{
  char_data*     ch  = (char_data*) argument[0];
  int         quest  = (int)        argument[1];

  if( ch == NULL ) {
    code_bug( "Code_Done_Quest: NULL character." );
    return NULL;
    }

  return (void*) ( ch->pcdata != NULL
    && ch->pcdata->quest_flags[quest] == -1 );
}


void* code_has_quest( void** argument )
{
  char_data*     ch  = (char_data*) argument[0];
  int         quest  = (int)        argument[1];

  if( quest < 0 || quest >= MAX_QUEST ) {
    code_bug( "Has_Quest: impossible quest number." );
    return NULL;
    }

  if( ch == NULL ) {
    code_bug( "Code_Has_Quest: Null character." );
    return NULL;
    }

  return (void*) ( ch->pcdata != NULL
    && ch->pcdata->quest_flags[quest] != 0 );
}


void* code_assign_quest( void** argument )
{
  char_data*    ch  = (char_data*) argument[0];
  int        quest  = (int)        argument[1];

  if( quest < 0 || quest >= MAX_QUEST ) {
    code_bug( "Assign_Quest: impossible quest number." );
    return NULL;
    }

  if( ch != NULL && ch->species == NULL
    && ch->pcdata->quest_flags[quest] == 0 ) {
    ch->pcdata->quest_flags[quest] = 1;
    send( ch, "\r\n-*- You have been assigned a quest. -*-\r\n" ); 
    }

  return NULL;
}


void* code_update_quest( void** argument )
{
  char_data*      ch  = (char_data*) argument[0];
  int              i  = (int)        argument[1];

  quest_data*  quest;  

  if( i < 0 || i >= MAX_QUEST ) {
    code_bug( "Update_Quest: impossible quest number." );
    return NULL;
    }

  if( ch == NULL || ch->pcdata == NULL )
    return NULL;

  quest = get_quest_index( i );

  if( ch->pcdata->quest_flags[i] == 1 ) {
    ch->pcdata->quest_flags[i] = -1;
    ch->pcdata->quest_pts += quest->points;
    if( quest->points != 0 ) 
      send( ch, "-*- You gain %d quest points! -*-\r\n", quest->points );
    }

  return NULL;
}