Warheck wrote
Sadly, I don't know how entity and pool work, or what they are for. Can you explain?
entity is base C++ class for all... well, entities in the game. basically, for everything -- ground, items, chars, etc.
and pool is C++ class that manages entities: call their 'think' functions ( Be() ), processes SendToHell() requests, etc.
i rewrote pool completely (it's still crap though) to get rid of some crashes. seems that it working better this way. just 4 files -- pool.h, pool.cpp, entity.h, entity.cpp -- i'm pretty sure you can just replace yours with mine.
Warheck wrote
I had to tiptoe carefully to avoid causing the game to crash when I built new levels, creatures and materials.
my version reports unknown things instead of crashing. sadly, in windows it have no console to report into. %-) i'll try to add log file with this reports though.
Warheck wrote
It will require documenting for others to be able to quickly make new things for themselves.
my version is hard to build, but it's much easier to add something to it: i splitted huge monolitic files to small and manageable. actually, when i ported features from CLIVAN, i did the same with it's sources (they can't be compiled, but it's easy to pull out changes). my fork now have all features of CLIVAN svnr7 (i think), so if you can build it with your favorite compiler, you can use it as new base version, methinks. it's easier to maintain and extend.
Warheck wrote
Do you think you will change the way the worldmap is created based on what was discussed in the thread with SquashMonster?
seems that i missed that. what thread exactly? %-)
ah, found that. thinking about it.
edit: just added "crash logs". if ivan crashed due to error in script files, it will write some info about crash in crash.log. try it, it's cool!
edit1: no more explicit team and dungeon counters. just extend corresponding enums in defines.dat and add new dungeon/team description. be sure to add empty team description for new team, of the game will crash! (see comments in teams.dat).
edit2: i implemented AllowedDungeons for critters. it's something like SquashMonster's DungeonTags. maybe i'll implement LevelTags instead -- just like DungeonTags, but for specific levels of the dungeon.
edit3: i started to rewriting worldmap generation; it's not yet good, but i can 'register' special worldmap place now and it will be placed by general algo (which will call some class methods to determine where and how it should be placed). it's just a first draft, for now it seems that i didn't broke things too much.
btw. do you know that you can combine data scripts into one file (not by 'cat'! %-), gzip it and game will load it just fine? %-)