Exemple #1
0
main() {
    char bits[5];
    int pick = 20;
    if(test_bit(bits,pick) == 1) {
        printf("bit %d is 1\n", pick);
    } else {
        printf("bit %d is 0\n", pick);
    }
    set_bit(bits, pick);
    if(test_bit(bits,pick) == 1) {
        printf("bit %d is 1\n", pick);
    } else {
        printf("bit %d is 0\n", pick);
    }
    clear_bit(bits, pick);
    if(test_bit(bits,pick) == 1) {
        printf("bit %d is 1\n", pick);
    } else {
        printf("bit %d is 0\n", pick);
    }
    assign_bit(bits, pick, -1);
    if(test_bit(bits,pick) == 1) {
        printf("bit %d is 1\n", pick);
    } else {
        printf("bit %d is 0\n", pick);
    }
    assign_bit(bits, pick, 0);
    if(test_bit(bits,pick) == 1) {
        printf("bit %d is 1\n", pick);
    } else {
        printf("bit %d is 0\n", pick);
    }
    
}
Exemple #2
0
static VALUE rb_bitset_aset(VALUE self, VALUE index, VALUE value) {
    Bitset * bs = get_bitset(self);
    int idx = NUM2INT(index);
    validate_index(bs, idx);
    assign_bit(bs, idx, value);
    return Qtrue;
}
Exemple #3
0
void do_dflag( char_data* ch, char* argument )
{
  wizard_data*   imm  = (wizard_data*) ch; 
  exit_data*    exit;
  exit_data*    back;
  int          flags;

  if( !get_flags( ch, argument, &flags, "1", "dflag" ) )
    return;

  if( ( exit = imm->exit_edit ) == NULL ) {
    send( ch, "Use dedit to specify direction.\n\r" );
    return;
    }

  if( *argument == '\0' ) {
    display_flags( "Door Flags", &dflag_name[0], &dflag_name[1],
      &exit->exit_info, MAX_DFLAG, ch );
    return;
    }

  if( !can_edit( ch, ch->in_room ) ) 
    return;

  ch->in_room->area->modified = TRUE;

  for( int i = 0; i < MAX_DFLAG; i++ ) 
    if( fmatches( argument, dflag_name[i] ) ) {
      switch_bit( &exit->exit_info, i );
      if( ( back = reverse( exit ) ) != NULL
        && !is_set( &flags, 0 ) )
        assign_bit( &back->exit_info, i, is_set( &exit->exit_info,i ) );
      send( ch, "%s set %s on %sthe %s exit.\n\r",
        dflag_name[i], true_false( &exit->exit_info, i ),
        back != NULL && !is_set( &flags, 0 ) ? "both sides of " : "",
        dir_table[ exit->direction ].name );
      return;
      }

  send( ch, "Unknown flag - see dflag with no arguments for list.\n\r" );
}
Exemple #4
0
void passive_action( char_data* ch )
{
  command_data*   cmd;

  if( ch->cast != NULL ) {
    spell_update( ch );
    return;
    }

  for( ; ; ) {
    if( ( cmd = pop( ch->cmd_queue ) ) == NULL )
      break;
    assign_bit( &ch->status, STAT_ORDERED, cmd->ordered );
    interpret( ch, cmd->string );
    remove_bit( &ch->status, STAT_ORDERED );
    delete cmd;
    if( ch->link != NULL )
      ch->link->idle = 0;
    if( ch->active.time != -1 )
      return;
    }

  check_wimpy( ch );

  if( is_set( ch->affected_by, AFF_ENTANGLED ) ) {
    struggle_web( ch );
    add_queue( &ch->active, 32 );
    return;
    }

  if( ch->position < POS_STANDING
    && ( ch->fighting != NULL
    || !is_empty( ch->aggressive ) ) ) {
    jump_feet( ch );
    add_queue( &ch->active, 32 );
    }    
}