This is a little function I wrote so OasisOLC would be able to save
bitvectors as letters not numbers and it has been working well for me.
If you want to use it with OasisOLC:
put this fucntion somewhere in olc.c:
void bits_to_ascii(long flag, char *string)
{
bool set = FALSE;
register int i;
char letter[2] = {'a'};
char bits[40] = {'\0'};
strcpy(string, "0");
for (i = 0; i < 32; i++) {
if (i == 26)
*letter -= 58;
if (IS_SET(flag, (1 << i))) {
set = TRUE;
strcat(bits, letter);
}
++*letter;
}
if (set)
strcpy(string, bits);
}
prototype it where it says 'from olc.c' in olc.h as:
bits_to_ascii(long flag, char *string);
then in the ?edit_save_to_disk fucntions anytime it wants to write a
bitvector make sure there is a variable like:
char bits[40];
and where it intializes other strings that need to be wrote do:
bits_to_ascii(GET_BLAH(blah), bits);
and in the fprintf or sprintf change the %d that was for the bitvector to
a %s, then replace the bitvector with bits and it should work.
Hope it helps someone.
Chris
+-----------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://cspo.queensu.ca/~fletcher/Circle/list_faq.html |
+-----------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/18/00 PST