wolfpaw4.0-release/area/
wolfpaw4.0-release/backup/
wolfpaw4.0-release/bin/
wolfpaw4.0-release/boards/
wolfpaw4.0-release/clans/
wolfpaw4.0-release/councils/
wolfpaw4.0-release/deity/
wolfpaw4.0-release/finger/
wolfpaw4.0-release/gods/
wolfpaw4.0-release/guilds/
wolfpaw4.0-release/lockers/
wolfpaw4.0-release/log/
wolfpaw4.0-release/log/Clean/
wolfpaw4.0-release/maps/
wolfpaw4.0-release/offline_data/
wolfpaw4.0-release/player-obj/
wolfpaw4.0-release/player-obj/a/
wolfpaw4.0-release/player/
wolfpaw4.0-release/player/a/
wolfpaw4.0-release/plog/
wolfpaw4.0-release/save-rooms/
wolfpaw4.0-release/secure/
wolfpaw4.0-release/source/
wolfpaw4.0-release/source/betasrc/system/
wolfpaw4.0-release/source/betasrc/util/
wolfpaw4.0-release/system/clean-source/
wolfpaw4.0-release/system/clean-source/grux/
/*--------------------------------------------------------------------------*
 *                         ** WolfPaw 1.0 **                                *
 *--------------------------------------------------------------------------*
 *               WolfPaw 1.0 (c) 1997,1998 by Dale Corse                    *
 *--------------------------------------------------------------------------*
 *            The WolfPaw Coding Team is headed by: Greywolf                *
 *  With the Assitance from: Callinon, Dhamon, Sentra, Wyverns, Altrag      *
 *  Scryn, Thoric, Justice, Tricops and Mask.                               *
 *--------------------------------------------------------------------------*
 *			Vehicle Handling Module				    *
 *--------------------------------------------------------------------------*/
#include <sys/types.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <sys/stat.h>
#include "mud.h"

OBJ_DATA *get_vehicle( CHAR_DATA *ch );

/*
 * Move the vehicle in a certain direction --GW
 */
void do_steer( CHAR_DATA *ch, char *argument )
{
VEHICLE_DATA *vehicle;
char arg[MIL];
int dir=0;
EXIT_DATA *xit;
char *dtxt;
char buf[MSL];
OBJ_DATA *obj;
CHAR_DATA *temp, *temp_next;

if ( IS_NPC(ch) )
return;

if ( !ch->pcdata->vehicle )
{
send_to_char("Your not in a Vehicle!\n\r",ch);
return;
}

vehicle = ch->pcdata->vehicle;

/* Disables for Now -- as vehicles only support 1 occupant at this time --GW */
/*
if ( !str_cmp( vehicle->operator, ch->name ) )
{
send_to_char("But you are not driving this vehicle!\n\r",ch);
return;
}
*/

one_argument( argument, arg );

if ( !str_prefix( arg, "north" ) )
dir = DIR_NORTH;
else if ( !str_prefix( arg, "east" ) )
dir = DIR_EAST;
else if ( !str_prefix( arg, "south" ) )
dir = DIR_SOUTH;
else if ( !str_prefix( arg, "west" ) )
dir = DIR_WEST;
else if ( !str_prefix( arg, "up" ) )
dir = DIR_UP;
else if ( !str_prefix( arg, "down" ) )
dir = DIR_DOWN;

xit = NULL;
xit = get_exit( ch->in_room, dir );

if ( !xit || !xit->to_room )
{
send_to_char("Your cannot go that way!\n\r",ch);
return;
}

obj = get_vehicle( ch );

if ( !obj )
{
ch->pcdata->vehicle = NULL;
return;
}

sprintf(buf,"A %s drives %s.",obj->short_descr,dir_name[dir]);
act(AT_GREEN,buf,ch,NULL,NULL,TO_ROOM);

obj_from_room( obj );
obj_to_room( obj, xit->to_room );

for ( temp = ch->in_room->first_person; temp; temp = temp_next )
{
temp_next = temp->next_in_room; 

if ( !IS_NPC(temp) && temp->pcdata->vehicle &&
     temp->pcdata->vehicle == ch->pcdata->vehicle )
{
char_from_room(temp);
char_to_room( temp, xit->to_room);
}

}
      switch( dir )
      {
      default: dtxt = "somewhere";      break;
      case 0:  dtxt = "the south";      break;
      case 1:  dtxt = "the west";       break;
      case 2:  dtxt = "the north";      break;
      case 3:  dtxt = "the east";       break;
      case 4:  dtxt = "below";          break;
      case 5:  dtxt = "above";          break;
      case 6:  dtxt = "the south-west"; break;
      case 7:  dtxt = "the south-east"; break;
      case 8:  dtxt = "the north-west"; break;
      case 9:  dtxt = "the north-east"; break;
      }

sprintf(buf,"A %s drives in from %s.",obj->short_descr,dtxt);
act( AT_GREEN,buf,ch,NULL,NULL,TO_ROOM);
do_look(ch,"auto");
return;
}

/*
 * Make a new Vehicle online --GW
 */
void do_makevehicle( CHAR_DATA *ch, char *argument )
{

return;
}

/*
 * Set a Vehicle's stuff Online --GW
 */
void do_setvehicle( CHAR_DATA *ch, char *argument )
{

return;
}

/*
 * Remove a Vehicle from the game --GW
 */
void do_vehicledel( CHAR_DATA *ch, char *argument )
{

return;
}

OBJ_DATA *get_vehicle( CHAR_DATA *ch )
{
OBJ_DATA *obj, *obj_next;

for ( obj = ch->in_room->first_content; obj; obj = obj_next )
{
	obj_next = obj->next_content;

	if ( obj->item_type == ITEM_VEHICLE &&
             obj->pIndexData->vehicle == ch->pcdata->vehicle )
	   return obj;
}

return NULL;
}