Just add this, it seems to be all you need to do, the rest of the code is already done.
Gendi.
snippet provided by William McSchmeiter.
** in space.c **
Add to do_launch
At start
SHIP_DATA *onship
if ( ( onship = ship_from_hanger( ship->lastdoc ) ) != NULL && ! onship->bayopen )
{
send_to_char("&RThe hanger is closed!\n\r",ch);
return;
}
void do_openbay( CHAR_DATA *ch, char *argument )
{
SHIP_DATA *ship;
int chance;
if ( (ship = ship_from_cockpit(ch->in_room->vnum)) == NULL )
{
send_to_char("&RYou must be in the cockpit of a ship to do that!\n\r",ch);
return;
}
if ( ship->class > SHIP_PLATFORM )
{
send_to_char("&RThis isn't a spacecraft!\n\r",ch);
return;
}
if ( ship->class == SHIP_PLATFORM )
{
send_to_char("&RPlatforms don't have Bay Doors!\n\r",ch);
return;
}
if ( (ship = ship_from_pilotseat(ch->in_room->vnum)) == NULL )
{
send_to_char("&RYou aren't in the pilots chair!\n\r",ch);
return;
}
/* I have removed this because I don't think it is right to use
but put it back in if you want
if ( autofly(ship) )
{
send_to_char("&RYou'll have to turn off the ships autopilot
first....\n\r",ch);
return;
}
*/
chance = IS_NPC(ch) ? ch->top_level
: (int) (ch->pcdata->learned[gsn_shipsystems]) ;
if ( number_percent( ) > chance )
{
send_to_char("&RYour notsure which switch to flip.\n\r",ch);
learn_from_failure( ch, gsn_shipsystems );
return;
}
act( AT_PLAIN, "$n flips a switch on the control panel.", ch,
NULL, argument , TO_ROOM );
if (ship->bayopen)
{
ship->bayopen = FALSE;
echo_to_cockpit( AT_YELLOW , ship, "Closing bay doors.");
}
else
{
ship->bayopen = TRUE;
echo_to_cockpit( AT_YELLOW , ship, "Opening Bay Doors.");
}
learn_from_success( ch, gsn_shipsystems );
}