> I'm having a bit of difficulty installing the 128 bit code into my rather
> heavily modified mud. The current conflict I'm having deals with the
> playerfile saving/loading routines, in which the ascii pfile code makes
> calls with asciiflag_conv() to what used to be a single argument but now has
> to deal with an array of flags instead. The original ascii pfile code uses
> this in db.c load_char:
>
> case 'A':
> if(!strcmp(tag, "Ac "))
> cpd->armor = num;
> else if(!strcmp(tag, "Act ")) <--
> csds->act = num; | these are
> now arrays of flags,
> else if(!strcmp(tag, "Aff ")) | for
> instance
> csds->affected_by = asciiflag_conv(line); <--
> else if(!strcmp(tag, "Affs")) {
I've never used 128 bit flags, but from what I remember hearing
about them from a while back, they were basically a set of macros to allow
for 4 normal sets of 32 bits to be accessed as one unit. I have seen
asciiflag_conv before though - it simply takes a numeric line (what you
get after bitvectors are all added up) and converts it into a more
editable syntax... a=1, b=2, c=4, d=8,etc...
I would guess that in save you're going to have to print out each
32 bits seperately (examine code to find out what the bits are called).
Something like;
sprintf(outgoing_buffer,"Affs: %s %s %s %s\n",
convert_to_asciiflag(BIT_VECTOR_ONE(ch)),
.
.
.);
And for reading in;
sscanf(line,"%s %s %s %s", bit1,bit2,bit3,bit4;
BIT_VECTOR_ONE(ch) = asciiflag_conv(bit1);
.
.
.
I'm sure though someone will be more than happy to share their
code, but you could probably work through it before then if you try hard.
PjD
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 04/10/01 PDT