Crossfire Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: CF 0.96.* (Was: Re: CF: corpses and Animate Dead spells)
Mark Wedel wrote:
>
> Hwei Sheng TEOH wrote:
> >
> >
> > Hmmm, couldn't we have an extra field that encodes exactly what type the
> > object is, so that any code that needs to assume a certain object type can
> > always check it? (Might be useful for tracking down buggy code)
>
> Yes - there is still a type field (container one of the 5 object types). Below
> that, many of the specific object types will have a subtype field.
Only five main types, and everything else is a subtype of one of those?
Seems a little coarse to me, but that's just a first impression. Can
objects be sub-types of other sub-types, or only sub-types of one of the
main five? For example, weapons, armour and rings are all "equipment", but
are swords, clubs, and axes sub-types of "weapon"? Are longswords,
falchions, and katanas sub-types of "sword"? I think an object hierarchy
like that would be better than just having two levels. The whole notion of
object "race" could then be replaced by tracing object sub-types.
> The other difference which I did not mention is that arbitrary constants won't
> be used in the save files anymore.
>
> For example, right now you might have something like:
>
> attacktype 212412 (which looking at the arch tells you nothing).
> Instead, that would be something like
> attacktype fire weaponmagic fear ...
Yes! Definite improvement. We'd still have to remember to spell things
right, and to keep the attack types seperate from the apell paths, but
that's a good deal easier than all the binary arithmetic.
Does that also include object type constants in archetype definitions?
Not everyone finds it easy to remember the difference between a type 88 cone
spell, and a type 12 bolt spell.
> This is an interesting question. I had thought about some things, and using
> C++ would be easier in that regards.
>
> IF (and that is a big IF) we want to go to C++, now is probably the time to do
> it. It would certainly make some code cleaner. And the amount of work may not
> be as great as one might think - ANSI C code (which crossfire is) for the most
> part compiles under C++. So while some areas may not be in the OOP model (like
> maps and treasures), the code could remain as is (ANSI C) and still get compiled
> in and work OK.
>
> Thoughts?
Personally, I like C++, and I'd use it if we wanted to go that way, but
I know from experience how easy it is to create amazingly ugly and
untraceable bugs if you're not extremely careful with it. In an open-source
project, with an unknown number of contributors tweaking each others' code,
I don't think C++ would be a good idea. Class (a.k.a. archetype) and object
design is a good thing, but I suspect object-oriented programming would just
make things messier in this case.
--
-Dave Noelle, dave@Straylight.org
-the Villa Straylight, http://www.straylight.org
Coalition Against Unsolicited Commercial Email == http://www.cauce.com
Disclaimer: Any similarities to the opinions of any real or fictional
persons, living, dead, or undead, are clearly the reader's own delusion.
Quote of the Day:
"There is no such thing as 'social gambling'. Either you are there to cut
the other bloke's heart out and eat it, or you're a sucker. If you don't
like this choice, don't gamble." - Lazarus Long
-
[you can put yourself on the announcement list only or unsubscribe altogether
by sending an email stating your wishes to crossfire-request@ifi.uio.no]