On Fri, 1 Dec 2000, Janvier D. Anonical wrote:
>The date computation seems limited to the length of the data type. In the
>code mud_time_passed() under utility.c, the data type of secs is long.
>Since this is the case, when secs exceeds the data type range, an
>overflow will occur thus limiting the date to a certain value (in my
>case, when I tested it, I got only to year 776 so that mud_time_passed()
>can give me a correct value).
act.informative.c: do_time() (and others)
sprintf(buf, "The %d%s Day of the %s, Year %d.\r\n",
day, suf, month_name[(int) time_info.month],
time_info.year);
to:
sprintf(buf, "The %d%s Day of the %s, Year %d.\r\n",
day, suf, month_name[(int) time_info.month],
time_info.year + OFFSET);
>Is there any way to fix this?
Unless you really need the range, just do the above. Otherwise easiest
would probably be changing it to a 'long long' type. You could also adjust
your minutes/hour, hours/day, etc.
--
George Greer | If it's about the CircleMUD mailing list,
greerga@circlemud.org | mail owner-circle@post.queensu.ca instead.
--
+---------------------------------------------------------------+
| FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
| Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
+---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 04/11/01 PDT