Login
User Name:

Password:



Register
Forgot your password?
Vote for Us!
AFKMud 2.2.2
Mar 3, 2019 5:35 pm
By Samson
Development
Nov 28, 2018 12:10 pm
By Keirath
First Immortal
Oct 12, 2018 2:02 pm
By GatewaySysop
Bug in do_climb( )
Jun 5, 2018 7:31 pm
By joeyfogas
question on overland code
May 31, 2018 12:03 pm
By joeyfogas
SmaugFUSS 1.9.3
Author: Various
Submitted by: Samson
AFKMud 2.2.2
Author: AFKMud Team
Submitted by: Samson
tintin++ ogg sound player script for linux
Author: Robert Smith
Submitted by: Vladaar
6Dragons ogg Soundpack
Author: Vladaar
Submitted by: Vladaar
6Dragons 4.4
Author: Vladaar
Submitted by: Vladaar
Users Online
CommonCrawl

Members: 0
Guests: 19
Stats
Files
Topics
Posts
Members
Newest Member
483
3,743
19,401
655
RodrickMci
Today's Birthdays
tphegley (37)
Related Links
» SmaugMuds » 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 3:43 pm   Last edited Apr 11, 2014 3: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 7:53 pm   Last edited Apr 11, 2014 7: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 >>