> Ok, this looked great, but is it too good to be true?
> I added this little fix and tested it out, this is what I got:
> I created a new zone and typed show zones
> I see this for the zone I jsut created:
> 32000 (null) Age: 0; Reset: 0 (0); Top:
> 0
> where it should be:
> 33 New Zone Age: 0; Reset: 30(2); Top: 3399
>
Doh! *mutters something about OasisOLC being cursed*
Okay, I'm tired of that akward for loop. Just replace it with the
following code and everything should work fine (I hope):
-----
zedit_create_index(vzone_num, "shp");
/*. Make a new zone in memory.*/
CREATE(new_table, struct zone_data, top_of_zone_table+2);
new_table[top_of_zone_table + 1].number = 32000;
/* START NEW CODE HERE */
if (vzone_num > zone_table[top_of_zone_table].number) {
memcpy(new_table, zone_table, (sizeof(struct zone_data) * (top_of_zone_table + 1)));
i = top_of_zone_table + 1;
}else
for (i=0;vzone_num > zone_table[i].number;++i)
new_table[i] = zone_table[i];
new_table[i].name = str_dup("New Zone");
new_table[i].number = vzone_num;
new_table[i].top = (vzone_num * 100) + 99;
new_table[i].lifespan = 30;
new_table[i].age = 0;
new_table[i].reset_mode = 2;
CREATE(new_table[i].cmd, struct reset_com, 1);
new_table[i].cmd[0].command = 'S';
for(;i <= top_of_zone_table;++i)
new_table[i+1] = zone_table[i];
/* END NEW CODE */
free(zone_table);
zone_table = new_table;
top_of_zone_table++;
-----
+------------------------------------------------------------+
| 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/08/00 PST