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); } }
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; }
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" ); }
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 ); } }