[Coldstuff] Waifs draft 2 (was: Re: First version of waif-patch)

xmath xmath@nubz.org
Sat, 5 Jan 2002 21:28:48 +0100


--============_-1201859963==_============
Content-Type: text/plain; charset="us-ascii" ; format="flowed"

>One possibility might be to use structs that have the same layout 
>for the shared portions and then to do some type casting.

OK, included with this email is a new patch that does exactly that. 
Please let me know if this looks better than the previous one.

You can also browse the modified sources at:
http://www.liacs.nl/~mavduin/genesis-waif/

NOTE: textdb.c is not updated. this patched version does not actually 
build, and has not been tested in any way, it's just for review. 
however, I have confirmed that all sources except textdb.c and 
modules compile.

this patch is actually larger than the previous one, mostly due to 
small changes (casts / type changes) and because this is a more 
thorough patch (neither this one nor the previous was done, but this 
one is more complete than the previous one). One thing that's still 
missing is you can't make frobs that target waifs, then again, do we 
need this anyway?


>And in that line of thought ... it'd be easier if, in the future, 
>you provided a short doc explaining the structure of your changes 
>and what some of the intent was as well as the thinking behind the 
>choices made.

OK.. my main changes:
1. The common part of waifs and objects is named "Obj" (to avoid too 
many changes) and waifs and objects themselves are "cWaif" and 
"cObject"
2. because of this, there's still a fair amount of places where "Obj" 
has been replaced by "cObject". quite a lot of casting was necessary 
too (mostly Obj -> cObject and vice versa)
3. in various places (cache, Obj->objnum, Frame->sender) a negative 
object number (except -1 which is always invalid) means a waif.

  - xmath

--============_-1201859963==_============
Content-Id: <v0422080cb85d0fe4b5cf@[194.134.44.75].0.0>
Content-Type: multipart/appledouble; boundary="============_-1201859963==_D============"

--============_-1201859963==_D============
Content-Transfer-Encoding: base64
Content-Type: application/applefile; name="%waif2.patch.gz"
Content-Disposition: attachment; filename="%waif2.patch.gz"
 ; modification-date="Sat, 5 Jan 2002 21:19:30 +0100"

AAUWBwACAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAPgAAAA4AAAAJAAAATAAAACAA
AAAIAAAAbAAAABB3YWlmMi5wYXRjaC5nekd6aXBFWmd6AQAAnwEtAAAAAAAAAAAAAAAA
AAAAAAAAA8oqYQPKKmJLbQwAA8oslQ==
--============_-1201859963==_D============
Content-Type: application/octet-stream; name="waif2.patch.gz"
 ; x-mac-type="477A6970"
 ; x-mac-creator="455A677A"
Content-Disposition: attachment; filename="waif2.patch.gz"
Content-Transfer-Encoding: base64

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
--============_-1201859963==_D============--
--============_-1201859963==_============--