Login
User Name:

Password:



Register

Forgot your password?
void nanny_get_new_race -- comm.c
Mar 13, 2025 7:08 am
By Elwood
IPv6
Jan 25, 2025 10:45 pm
By Samson
mudstrlcpy and mudstrlcat
Jan 18, 2025 5:23 pm
By Samson
I3 and IMC
Jan 17, 2025 9:35 pm
By Samson
AFKMud 2.5.1
Jan 17, 2025 2:22 pm
By Samson
SWFotEFUSS 1.5.3
Author: Various
Submitted by: Samson
SWRFUSS 1.4.3
Author: Various
Submitted by: Samson
SmaugFUSS 1.9.8
Author: Various
Submitted by: Samson
AFKMud 2.5.2
Author: AFKMud Team
Submitted by: Samson
SmaugFUSS 1.9.7
Author: Various
Submitted by: Samson
Users Online
Anthropic, AhrefsBot, Amazonbot

Members: 0
Guests: 5
Stats
Files
Topics
Posts
Members
Newest Member
507
3,812
19,722
591
TracySpencer

» 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
Posts86
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
Posts86
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 >>