Jons scrawled the following: > How about 128bitvector with OasisOLC and ascii pfile? Are there anything > that I should change to make them work with 128bitvector? If yes, how? My solution was to implement bitvector_t as an unsigned long long (64 bits on an ix86 running Linux). This is sort of a bridge between the 128 bit patch and the implementation of additional flags. I did, hewever, run into a few problems: 1) asciiflag_conv() and sprintascii() need some fiddling to get past 52 bits 2) printf under gcc 2.95 doesn't deal well with printing long longs, so I had to convert each place a bitvector was written to a file to ASCII. (Question: Why doesn't OASIS do this anyhow? It seems easier to read.) 3) 1 << x doesn't work for values of x > 31 (the compiler assumes size int). I worked around this by using BIT << x where bit is defined as 1LL. This solution has the advantage over the 128 bit patch of being completely compatible with stock world files (no conversion needed). I have not yet run out of flags in my initial 64 bits, and since all of my files are ASCII I can add the additional flags later should they be needed. As far as things that would need to be changed in OASIS and ASCII pfiles, the 128 bit patch gets its extra 96 bits from three additional 32 bit values. So, you'll have to modify both to save all four bitvectors for each flag. There is a guide to doing this for Oasis in the olc directory of the ftp site. -- Anton Graham aka Dionysus Implementor of Etruria bladehawke.darktech.org:4000 Death is only the beginning.... -- Not Open to the Public -- -- +---------------------------------------------------------------+ | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html | +---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/04/01 PST