DOH! gawd I should have thought a little harder about what i was trying to accomplish. Sigh. --Angus obcircle - here is a little something for the weather discussion: These should help get you started. Essentially, embed the weather structures in a zone, define the # of seasons in the zone, Set each of wind (calm-tornado)/ wind_dir/ wind_vaiance/ precip (arid-continual)/ temp(freezing - Boiling) general season trends, and work up a way to change the seasons. G'Luck. struct climate { char season_pattern; char season_wind[MAX_SEASONS]; char season_wind_dir[MAX_SEASONS]; char season_wind_variance[MAX_SEASONS]; char season_precip[MAX_SEASONS]; char season_temp[MAX_SEASONS]; char flags; signed int energy_add; }; struct weather_data { int free_energy; int pressure; /* Kept from previous system */ int windspeed; char ambient_light; /* Interaction between sun, moon, clouds, etc. Local lights ignored */ char flags; char precip_depth; /* Snowpack, flood level */ char pressure_change, precip_change; char wind_dir; signed char humidity; signed char precip_rate; signed char temp; /* In Celsius... So what if I'm a yankee, I still prefer the metric system */ }; struct zone_data { char *name; /* name of this zone */ int lifespan; /* current (minutes) in this reset */ int age; /* current age of this zone (minutes) */ int top; /* upper limit for rooms in this zone */ ubyte flags; int real_top, real_bottom; int reset_mode; /* * Reset mode: * * 0: Don't reset, and don't update age. * * 1: Reset if no PC's are located in zone. * * 2: Just reset. * */ struct reset_com *cmd; /* command table for reset */ struct climate climate; struct weather_data conditions; }; ______________________________ Reply Separator _________________________________ Subject: Re: hmmm.... db.c:free_char() Author: INTERNET:CIRCLE@POST.QUEENSU.CA at CSERVE Date: 8/6/98 11:22 AM On Thu, 6 Aug 1998, Angus Mezick wrote: >At the very end of this function, is there any reason not to do a ch=NULL; >right have the free(ch); call? I think this might be a nice way to ensure >consistancy. But for that DT and fast aggr problem, you need to check to >see if(ch && ch->in_room) Won't do anything, the pointer's value is passed, not the actual pointer. If you really wanted to, you'd have to make it a struct char_data **ch in that function instead, then free_char(&ch), and fix the function accordingly. -- George Greer, greerga@circlemud.org +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST