Login
User Name:

Password:



Register
Forgot your password?
Vote for Us!
Couple bugs
Dec 12, 2017, 5:42 pm
By Remcon
Bug in disarm( )
Nov 12, 2017, 6:54 pm
By GatewaySysop
Bug in will_fall( )
Oct 23, 2017, 1:35 am
By GatewaySysop
Bug in do_zap( ), do_brandish( )
Oct 18, 2017, 1:52 pm
By GatewaySysop
Bug in get_exp_worth( )
Oct 10, 2017, 1:26 am
By GatewaySysop
LOP 1.45
Author: Remcon
Submitted by: Remcon
LOP Heroes Edition
Author: Vladaar
Submitted by: Vladaar
Heroes sound extras
Author: Vladaar
Submitted by: Vladaar
6Dragons 4.3
Author: Vladaar
Submitted by: Vladaar
Memwatch
Author: Johan Lindh
Submitted by: Vladaar
Users Online
CommonCrawl, Yahoo!, DotBot, Yandex

Members: 0
Guests: 7
Stats
Files
Topics
Posts
Members
Newest Member
477
3,705
19,232
608
LAntorcha
Today's Birthdays
There are no member birthdays today.
Related Links
» SmaugMuds.org » General » Coding » EXT_BV inside mpcommand
Forum Rules | Mark all | Recent Posts

EXT_BV inside mpcommand
< Newer Topic :: Older Topic >

Pages:<< prev 1 next >>
Post is unread #1 Apr 11, 2014, 1:43 pm   Last edited Apr 11, 2014, 1:43 pm by Matteo2303
Go to the top of the page
Go to the bottom of the page

Matteo2303
Apprentice
GroupMembers
Posts57
JoinedAug 25, 2003

Hi,

If I build a mp_command argument that contain an extended bitvector like:

mpdosomething 3&15

how can I convert "3&15" in a EXT_BV var?

pseudo-code:
do_mpdosomething( CHAR_DATA *ch, char *argument )
{
argument = one_argument( argument, arg1 );
EXT_BV bits;
xCLEAR( bits );
xSET( bits, ??? ); // ??? = arg1 converted ... but how?
return;
}

Thank you in advance for any help.

Bye!
       
Post is unread #2 Apr 11, 2014, 5:53 pm   Last edited Apr 11, 2014, 5:56 pm by Matteo2303
Go to the top of the page
Go to the bottom of the page

Matteo2303
Apprentice
GroupMembers
Posts57
JoinedAug 25, 2003

I don't now but... here my first version and it seems work:

EXT_BV str2xbit( char *arg )
{
    EXT_BV xbit;
    int x = 0, n = 0;
    memset( &xbit, '\0', sizeof(xbit) );
    if ( *arg == '\0' ) return xbit;
    for ( ; *arg != '\0'; arg++ )
    {
	if ( !isdigit(*arg) )
	{
		FINALIZE:
		if ( x < XBI )
		xbit.bits[x] = n;
		++x; n = 0;
		if ( *arg != '&' )
		return xbit;
		continue;
	}
	n = n * 10 + *arg - '0';
    }
goto FINALIZE;
}


bye
mat
       
Pages:<< prev 1 next >>