public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: c++/3336
@ 2001-07-09 7:36 Travis Smith
0 siblings, 0 replies; 5+ messages in thread
From: Travis Smith @ 2001-07-09 7:36 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR c++/3336; it has been noted by GNATS.
From: Travis Smith <TSmith@hy-tekmail.net>
To: "'gcc-gnats@gcc.gnu.org'" <gcc-gnats@gcc.gnu.org>,
"'gcc-prs@gcc.gnu.org'" <gcc-prs@gcc.gnu.org>, Travis Smith
<TSmith@hy-tekmail.net>, "'gcc-bugs@gcc.gnu.org'" <gcc-bugs@gcc.gnu.org>,
"'nobody@gcc.gnu.org'" <nobody@gcc.gnu.org>, "'tazium@yahoo.com'"
<tazium@yahoo.com>
Cc:
Subject: Re: c++/3336
Date: Mon, 9 Jul 2001 10:28:01 -0400
This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.
------_=_NextPart_000_01C10883.5BD4DF60
Content-Type: text/plain;
charset="iso-8859-1"
Here's the preprocessor for it.
<<comm.ii>>
*********************************************
This email is confidential and intended solely for the use of the individual
to whom it is addressed. Any views or opinions presented are solely those
of the author and do not necessarily represent those of Hy-Tek Material
Handling .
If you are not the intended recipient, be advised that you have received
this email in error and that any use, dissemination, forwarding, printing,
or copying of this email is strictly prohibited.
If you have received this email in error please contact the sender.
**********************************************
------_=_NextPart_000_01C10883.5BD4DF60
Content-Type: application/octet-stream;
name="comm.ii"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="comm.ii"
# 1 "comm.cp"=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "types.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "conf.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 16 "types.h" 2=0A=
=0A=
# 1 "sysdep.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/g++-3/cstdio" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/stdio.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern "C" {=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/_ansi.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/sys/config.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 14 "/usr/include/sys/config.h" 3=0A=
=0A=
=0A=
# 25 "/usr/include/sys/config.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 44 "/usr/include/sys/config.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
typedef int __int32_t;=0A=
typedef unsigned int __uint32_t;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 15 "/usr/include/_ansi.h" 2 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 67 "/usr/include/_ansi.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 32 "/usr/include/stdio.h" 2 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 21 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 63 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 133 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
typedef unsigned int size_t;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 273 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
# 285 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 319 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 37 "/usr/include/stdio.h" 2 3=0A=
=0A=
=0A=
=0A=
# 1 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stdarg.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
typedef void *__gnuc_va_list;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 123 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stdarg.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 210 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stdarg.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 40 "/usr/include/stdio.h" 2 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/sys/reent.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern "C" {=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/time.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern "C" {=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/machine/time.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 21 "/usr/include/time.h" 2 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 21 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 63 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 133 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 190 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 273 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
# 285 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 319 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 30 "/usr/include/time.h" 2 3=0A=
=0A=
=0A=
# 1 "/usr/include/sys/types.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 63 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
typedef int ptrdiff_t;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 190 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
typedef unsigned int wint_t;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 319 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 31 "/usr/include/sys/types.h" 2 3=0A=
=0A=
# 1 "/usr/include/machine/types.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 32 "/usr/include/sys/types.h" 2 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
typedef unsigned char u_char;=0A=
typedef unsigned short u_short;=0A=
typedef unsigned int u_int;=0A=
typedef unsigned long u_long;=0A=
=0A=
=0A=
=0A=
typedef unsigned short ushort; =0A=
typedef unsigned int uint; =0A=
=0A=
=0A=
=0A=
typedef unsigned long clock_t;=0A=
=0A=
=0A=
=0A=
=0A=
typedef long time_t;=0A=
=0A=
=0A=
=0A=
=0A=
struct timespec {=0A=
time_t tv_sec; =0A=
long tv_nsec; =0A=
};=0A=
=0A=
struct itimerspec {=0A=
struct timespec it_interval; =0A=
struct timespec it_value; =0A=
};=0A=
=0A=
=0A=
typedef long daddr_t;=0A=
typedef char * caddr_t;=0A=
=0A=
=0A=
typedef unsigned long ino_t;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
typedef unsigned long vm_offset_t;=0A=
typedef unsigned long vm_size_t;=0A=
=0A=
=0A=
=0A=
typedef char int8_t;=0A=
typedef unsigned char u_int8_t;=0A=
typedef short int16_t;=0A=
typedef unsigned short u_int16_t;=0A=
typedef int int32_t;=0A=
typedef unsigned int u_int32_t;=0A=
typedef long long int64_t;=0A=
typedef unsigned long long u_int64_t;=0A=
typedef int32_t register_t;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
typedef short dev_t;=0A=
=0A=
=0A=
typedef long off_t;=0A=
=0A=
typedef unsigned short uid_t;=0A=
typedef unsigned short gid_t;=0A=
typedef int pid_t;=0A=
typedef long key_t;=0A=
typedef long ssize_t;=0A=
=0A=
=0A=
typedef char * addr_t;=0A=
typedef int mode_t;=0A=
# 152 "/usr/include/sys/types.h" 3=0A=
=0A=
=0A=
typedef unsigned short nlink_t;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
typedef long fd_mask;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
typedef struct _types_fd_set {=0A=
fd_mask fds_bits[((( 64 )+(( (sizeof (fd_mask) * 8 ) )-1))/( =
(sizeof (fd_mask) * 8 ) )) ];=0A=
} _types_fd_set;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
typedef unsigned long clockid_t;=0A=
=0A=
=0A=
=0A=
=0A=
typedef unsigned long timer_t;=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/sys/features.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern "C" {=0A=
=0A=
=0A=
=0A=
=0A=
# 72 "/usr/include/sys/features.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
}=0A=
=0A=
=0A=
# 221 "/usr/include/sys/types.h" 2 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 324 "/usr/include/sys/types.h" 3=0A=
=0A=
=0A=
# 1 "/usr/include/cygwin/types.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern "C"=0A=
{=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
typedef void *pthread_t;=0A=
typedef void *pthread_mutex_t;=0A=
=0A=
typedef void *pthread_key_t;=0A=
typedef void *pthread_attr_t;=0A=
typedef void *pthread_mutexattr_t;=0A=
typedef void *pthread_condattr_t;=0A=
typedef void *pthread_cond_t;=0A=
=0A=
=0A=
typedef struct=0A=
{=0A=
pthread_mutex_t mutex;=0A=
int state;=0A=
}=0A=
pthread_once_t;=0A=
typedef void *pthread_rwlock_t;=0A=
typedef void *pthread_rwlockattr_t;=0A=
=0A=
# 58 "/usr/include/cygwin/types.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
}=0A=
=0A=
# 326 "/usr/include/sys/types.h" 2 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 32 "/usr/include/time.h" 2 3=0A=
=0A=
=0A=
struct tm=0A=
{=0A=
int tm_sec;=0A=
int tm_min;=0A=
int tm_hour;=0A=
int tm_mday;=0A=
int tm_mon;=0A=
int tm_year;=0A=
int tm_wday;=0A=
int tm_yday;=0A=
int tm_isdst;=0A=
};=0A=
=0A=
clock_t __attribute__((__cdecl__)) clock (void) ;=0A=
double __attribute__((__cdecl__)) difftime (time_t _time2, =
time_t _time1) ;=0A=
time_t __attribute__((__cdecl__)) mktime (struct tm =
*_timeptr) ;=0A=
time_t __attribute__((__cdecl__)) time (time_t *_timer) =
;=0A=
=0A=
char * __attribute__((__cdecl__)) asctime (const struct tm =
*_tblock) ;=0A=
char * __attribute__((__cdecl__)) ctime (const time_t *_time) =
;=0A=
struct tm * __attribute__((__cdecl__)) gmtime (const time_t =
*_timer) ;=0A=
struct tm * __attribute__((__cdecl__)) localtime (const time_t =
*_timer) ;=0A=
=0A=
size_t __attribute__((__cdecl__)) strftime (char *_s, size_t =
_maxsize, const char *_fmt, const struct tm *_t) ;=0A=
=0A=
char * __attribute__((__cdecl__)) asctime_r (const struct tm *, =
char *) ;=0A=
char * __attribute__((__cdecl__)) ctime_r (const time_t *, char =
*) ;=0A=
struct tm * __attribute__((__cdecl__)) gmtime_r (const time_t *, =
struct tm *) ;=0A=
struct tm * __attribute__((__cdecl__)) localtime_r (const time_t =
*, struct tm *) ;=0A=
=0A=
=0A=
=0A=
extern __attribute__(( dllimport )) time_t _timezone;=0A=
extern __attribute__(( dllimport )) int _daylight;=0A=
extern __attribute__(( dllimport )) char *_tzname[2];=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
char * __attribute__((__cdecl__)) timezone (void) ;=0A=
=0A=
void __attribute__((__cdecl__)) tzset (void) ;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 121 "/usr/include/time.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 158 "/usr/include/time.h" 3=0A=
=0A=
=0A=
# 168 "/usr/include/time.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
}=0A=
=0A=
=0A=
=0A=
# 14 "/usr/include/sys/reent.h" 2 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
typedef __uint32_t __ULong;=0A=
=0A=
=0A=
struct _glue =0A=
{=0A=
struct _glue *_next;=0A=
int _niobs;=0A=
struct __sFILE *_iobs;=0A=
};=0A=
=0A=
struct _Bigint =0A=
{=0A=
struct _Bigint *_next;=0A=
int _k, _maxwds, _sign, _wds;=0A=
__ULong _x[1];=0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
struct _atexit {=0A=
struct _atexit *_next; =0A=
int _ind; =0A=
void (*_fns[32 ])(void); =0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
struct __sbuf {=0A=
unsigned char *_base;=0A=
int _size;=0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
typedef long _fpos_t; =0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
struct __sFILE {=0A=
unsigned char *_p; =0A=
int _r; =0A=
int _w; =0A=
short _flags; =0A=
short _file; =0A=
struct __sbuf _bf; =0A=
int _lbfsize; =0A=
=0A=
=0A=
void * _cookie; =0A=
=0A=
ssize_t __attribute__((__cdecl__)) (*_read) (void * _cookie, =
char *_buf, int _n) ;=0A=
ssize_t __attribute__((__cdecl__)) (*_write) (void * _cookie, =
const char *_buf,=0A=
int _n) ;=0A=
_fpos_t __attribute__((__cdecl__)) (*_seek) (void * _cookie, =
_fpos_t _offset, int _whence) ;=0A=
int __attribute__((__cdecl__)) (*_close) (void * _cookie) ;=0A=
=0A=
=0A=
struct __sbuf _ub; =0A=
unsigned char *_up; =0A=
int _ur; =0A=
=0A=
=0A=
unsigned char _ubuf[3]; =0A=
unsigned char _nbuf[1]; =0A=
=0A=
=0A=
struct __sbuf _lb; =0A=
=0A=
=0A=
int _blksize; =0A=
int _offset; =0A=
=0A=
struct _reent *_data;=0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
struct _rand48 {=0A=
unsigned short _seed[3];=0A=
unsigned short _mult[3];=0A=
unsigned short _add;=0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
struct _reent=0A=
{=0A=
=0A=
int _errno;=0A=
=0A=
=0A=
=0A=
=0A=
struct __sFILE *_stdin, *_stdout, *_stderr;=0A=
=0A=
int _inc; =0A=
char _emergency[25];=0A=
=0A=
int _current_category; =0A=
const char *_current_locale;=0A=
=0A=
int __sdidinit; =0A=
=0A=
void __attribute__((__cdecl__)) (*__cleanup) (struct _reent *) =
;=0A=
=0A=
=0A=
struct _Bigint *_result;=0A=
int _result_k;=0A=
struct _Bigint *_p5s;=0A=
struct _Bigint **_freelist;=0A=
=0A=
=0A=
int _cvtlen; =0A=
char *_cvtbuf;=0A=
=0A=
union=0A=
{=0A=
struct=0A=
{=0A=
unsigned int _unused_rand;=0A=
char * _strtok_last;=0A=
char _asctime_buf[26];=0A=
struct tm _localtime_buf;=0A=
int _gamma_signgam;=0A=
__extension__ unsigned long long _rand_next;=0A=
struct _rand48 _r48;=0A=
} _reent;=0A=
=0A=
=0A=
=0A=
struct=0A=
{=0A=
=0A=
unsigned char * _nextf[30 ];=0A=
unsigned int _nmalloc[30 ];=0A=
} _unused;=0A=
} _new;=0A=
=0A=
=0A=
struct _atexit *_atexit; =0A=
struct _atexit _atexit0; =0A=
=0A=
=0A=
void (**(_sig_func))(int);=0A=
=0A=
=0A=
=0A=
=0A=
struct _glue __sglue; =0A=
struct __sFILE __sf[3]; =0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern struct _reent *_impure_ptr ;=0A=
=0A=
void _reclaim_reent (struct _reent *) ;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
}=0A=
=0A=
=0A=
# 48 "/usr/include/stdio.h" 2 3=0A=
=0A=
=0A=
typedef _fpos_t fpos_t;=0A=
=0A=
typedef struct __sFILE FILE;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
FILE * __attribute__((__cdecl__)) tmpfile (void) ;=0A=
char * __attribute__((__cdecl__)) tmpnam (char *) ;=0A=
int __attribute__((__cdecl__)) fclose (FILE *) ;=0A=
int __attribute__((__cdecl__)) fflush (FILE *) ;=0A=
FILE * __attribute__((__cdecl__)) freopen (const char *, const =
char *, FILE *) ;=0A=
void __attribute__((__cdecl__)) setbuf (FILE *, char *) ;=0A=
int __attribute__((__cdecl__)) setvbuf (FILE *, char *, int, =
size_t) ;=0A=
int __attribute__((__cdecl__)) fprintf (FILE *, const char *, ...) =
;=0A=
int __attribute__((__cdecl__)) fscanf (FILE *, const char *, ...) =
;=0A=
int __attribute__((__cdecl__)) printf (const char *, ...) ;=0A=
int __attribute__((__cdecl__)) scanf (const char *, ...) ;=0A=
int __attribute__((__cdecl__)) sscanf (const char *, const char *, =
...) ;=0A=
int __attribute__((__cdecl__)) vfprintf (FILE *, const char *, =
__gnuc_va_list ) ;=0A=
int __attribute__((__cdecl__)) vprintf (const char *, =
__gnuc_va_list ) ;=0A=
int __attribute__((__cdecl__)) vsprintf (char *, const char *, =
__gnuc_va_list ) ;=0A=
int __attribute__((__cdecl__)) fgetc (FILE *) ;=0A=
char * __attribute__((__cdecl__)) fgets (char *, int, FILE *) =
;=0A=
int __attribute__((__cdecl__)) fputc (int, FILE *) ;=0A=
int __attribute__((__cdecl__)) fputs (const char *, FILE *) ;=0A=
int __attribute__((__cdecl__)) getc (FILE *) ;=0A=
int __attribute__((__cdecl__)) getchar (void) ;=0A=
char * __attribute__((__cdecl__)) gets (char *) ;=0A=
int __attribute__((__cdecl__)) putc (int, FILE *) ;=0A=
int __attribute__((__cdecl__)) putchar (int) ;=0A=
int __attribute__((__cdecl__)) puts (const char *) ;=0A=
int __attribute__((__cdecl__)) ungetc (int, FILE *) ;=0A=
size_t __attribute__((__cdecl__)) fread (void * , size_t _size, =
size_t _n, FILE *) ;=0A=
size_t __attribute__((__cdecl__)) fwrite (const void * , size_t =
_size, size_t _n, FILE *) ;=0A=
int __attribute__((__cdecl__)) fgetpos (FILE *, fpos_t *) ;=0A=
int __attribute__((__cdecl__)) fseek (FILE *, long, int) ;=0A=
int __attribute__((__cdecl__)) fsetpos (FILE *, const fpos_t *) =
;=0A=
long __attribute__((__cdecl__)) ftell ( FILE *) ;=0A=
void __attribute__((__cdecl__)) rewind (FILE *) ;=0A=
void __attribute__((__cdecl__)) clearerr (FILE *) ;=0A=
int __attribute__((__cdecl__)) feof (FILE *) ;=0A=
int __attribute__((__cdecl__)) ferror (FILE *) ;=0A=
void __attribute__((__cdecl__)) perror (const char *) ;=0A=
=0A=
FILE * __attribute__((__cdecl__)) fopen (const char *_name, const =
char *_type) ;=0A=
int __attribute__((__cdecl__)) sprintf (char *, const char *, ...) =
;=0A=
int __attribute__((__cdecl__)) remove (const char *) ;=0A=
int __attribute__((__cdecl__)) rename (const char *, const char *) =
;=0A=
=0A=
=0A=
int __attribute__((__cdecl__)) vfiprintf (FILE *, const char *, =
__gnuc_va_list ) ;=0A=
int __attribute__((__cdecl__)) iprintf (const char *, ...) ;=0A=
int __attribute__((__cdecl__)) fiprintf (FILE *, const char *, =
...) ;=0A=
int __attribute__((__cdecl__)) siprintf (char *, const char *, =
...) ;=0A=
char * __attribute__((__cdecl__)) tempnam (const char *, const =
char *) ;=0A=
int __attribute__((__cdecl__)) vsnprintf (char *, size_t, const =
char *, __gnuc_va_list ) ;=0A=
int __attribute__((__cdecl__)) vfscanf (FILE *, const char *, =
__gnuc_va_list ) ;=0A=
int __attribute__((__cdecl__)) vscanf (const char *, =
__gnuc_va_list ) ;=0A=
int __attribute__((__cdecl__)) vsscanf (const char *, const char =
*, __gnuc_va_list ) ;=0A=
=0A=
int __attribute__((__cdecl__)) snprintf (char *, size_t, const =
char *, ...) ;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
FILE * __attribute__((__cdecl__)) fdopen (int, const char *) ;=0A=
=0A=
int __attribute__((__cdecl__)) fileno (FILE *) ;=0A=
int __attribute__((__cdecl__)) getw (FILE *) ;=0A=
int __attribute__((__cdecl__)) pclose (FILE *) ;=0A=
FILE * __attribute__((__cdecl__)) popen (const char *, const char =
*) ;=0A=
int __attribute__((__cdecl__)) putw (int, FILE *) ;=0A=
void __attribute__((__cdecl__)) setbuffer (FILE *, char *, int) =
;=0A=
int __attribute__((__cdecl__)) setlinebuf (FILE *) ;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
FILE * __attribute__((__cdecl__)) _fdopen_r (struct _reent *, int, =
const char *) ;=0A=
FILE * __attribute__((__cdecl__)) _fopen_r (struct _reent *, const =
char *, const char *) ;=0A=
int __attribute__((__cdecl__)) _fscanf_r (struct _reent *, FILE *, =
const char *, ...) ;=0A=
int __attribute__((__cdecl__)) _getchar_r (struct _reent *) ;=0A=
char * __attribute__((__cdecl__)) _gets_r (struct _reent *, char =
*) ;=0A=
int __attribute__((__cdecl__)) _iprintf_r (struct _reent *, const =
char *, ...) ;=0A=
int __attribute__((__cdecl__)) _mkstemp_r (struct _reent *, char =
*) ;=0A=
char * __attribute__((__cdecl__)) _mktemp_r (struct _reent *, char =
*) ;=0A=
void __attribute__((__cdecl__)) _perror_r (struct _reent *, const =
char *) ;=0A=
int __attribute__((__cdecl__)) _printf_r (struct _reent *, const =
char *, ...) ;=0A=
int __attribute__((__cdecl__)) _putchar_r (struct _reent *, int) =
;=0A=
int __attribute__((__cdecl__)) _puts_r (struct _reent *, const =
char *) ;=0A=
int __attribute__((__cdecl__)) _remove_r (struct _reent *, const =
char *) ;=0A=
int __attribute__((__cdecl__)) _rename_r (struct _reent *,=0A=
const char *_old, const char *_new) ;=0A=
int __attribute__((__cdecl__)) _scanf_r (struct _reent *, const =
char *, ...) ;=0A=
int __attribute__((__cdecl__)) _sprintf_r (struct _reent *, char =
*, const char *, ...) ;=0A=
int __attribute__((__cdecl__)) _snprintf_r (struct _reent *, char =
*, size_t, const char *, ...) ;=0A=
int __attribute__((__cdecl__)) _sscanf_r (struct _reent *, const =
char *, const char *, ...) ;=0A=
char * __attribute__((__cdecl__)) _tempnam_r (struct _reent *, =
const char *, const char *) ;=0A=
FILE * __attribute__((__cdecl__)) _tmpfile_r (struct _reent *) =
;=0A=
char * __attribute__((__cdecl__)) _tmpnam_r (struct _reent *, char =
*) ;=0A=
int __attribute__((__cdecl__)) _vfprintf_r (struct _reent *, FILE =
*, const char *, __gnuc_va_list ) ;=0A=
int __attribute__((__cdecl__)) _vprintf_r (struct _reent *, const =
char *, __gnuc_va_list ) ;=0A=
int __attribute__((__cdecl__)) _vsprintf_r (struct _reent *, char =
*, const char *, __gnuc_va_list ) ;=0A=
int __attribute__((__cdecl__)) _vsnprintf_r (struct _reent *, char =
*, size_t, const char *, __gnuc_va_list ) ;=0A=
int __attribute__((__cdecl__)) _vfscanf_r (struct _reent *, FILE =
*, const char *, __gnuc_va_list ) ;=0A=
int __attribute__((__cdecl__)) _vscanf_r (struct _reent *, const =
char *, __gnuc_va_list ) ;=0A=
int __attribute__((__cdecl__)) _vsscanf_r (struct _reent *, const =
char *, const char *, __gnuc_va_list ) ;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
int __attribute__((__cdecl__)) __srget (FILE *) ;=0A=
int __attribute__((__cdecl__)) __swbuf (int, FILE *) ;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
FILE * __attribute__((__cdecl__)) funopen (const void * =
_cookie,=0A=
int (*readfn)(void * _cookie, char *_buf, int _n),=0A=
int (*writefn)(void * _cookie, const char *_buf, int _n),=0A=
fpos_t (*seekfn)(void * _cookie, fpos_t _off, int _whence),=0A=
int (*closefn)(void * _cookie)) ;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
static __inline__ int __sgetc(FILE *__p)=0A=
{=0A=
int __c =3D (--( __p )->_r < 0 ? __srget( __p ) : (int)(*( __p =
)->_p++)) ;=0A=
if ((__p->_flags & 0x4000 ) && (__c =3D=3D '\r'))=0A=
{=0A=
int __c2 =3D (--( __p )->_r < 0 ? __srget( __p ) : (int)(*( __p =
)->_p++)) ;=0A=
if (__c2 =3D=3D '\n')=0A=
__c =3D __c2;=0A=
else=0A=
ungetc(__c2, __p);=0A=
}=0A=
return __c;=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
# 309 "/usr/include/stdio.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
}=0A=
=0A=
=0A=
# 6 "/usr/include/g++-3/cstdio" 2 3=0A=
=0A=
=0A=
# 37 "sysdep.h" 2=0A=
=0A=
# 1 "/usr/include/g++-3/cctype" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/ctype.h" 1 3=0A=
=0A=
=0A=
extern "C" {=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
int __attribute__((__cdecl__)) isalnum (int __c) ;=0A=
int __attribute__((__cdecl__)) isalpha (int __c) ;=0A=
int __attribute__((__cdecl__)) iscntrl (int __c) ;=0A=
int __attribute__((__cdecl__)) isdigit (int __c) ;=0A=
int __attribute__((__cdecl__)) isgraph (int __c) ;=0A=
int __attribute__((__cdecl__)) islower (int __c) ;=0A=
int __attribute__((__cdecl__)) isprint (int __c) ;=0A=
int __attribute__((__cdecl__)) ispunct (int __c) ;=0A=
int __attribute__((__cdecl__)) isspace (int __c) ;=0A=
int __attribute__((__cdecl__)) isupper (int __c) ;=0A=
int __attribute__((__cdecl__)) isxdigit (int __c) ;=0A=
int __attribute__((__cdecl__)) tolower (int __c) ;=0A=
int __attribute__((__cdecl__)) toupper (int __c) ;=0A=
=0A=
=0A=
int __attribute__((__cdecl__)) isascii (int __c) ;=0A=
int __attribute__((__cdecl__)) toascii (int __c) ;=0A=
int __attribute__((__cdecl__)) _tolower (int __c) ;=0A=
int __attribute__((__cdecl__)) _toupper (int __c) ;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern __attribute__(( dllimport )) const char _ctype_[];=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
}=0A=
=0A=
=0A=
# 6 "/usr/include/g++-3/cctype" 2 3=0A=
=0A=
=0A=
# 38 "sysdep.h" 2=0A=
=0A=
# 1 "/usr/include/g++-3/cstdarg" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stdarg.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
void va_end (__gnuc_va_list); =0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 176 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stdarg.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
typedef __gnuc_va_list va_list;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 6 "/usr/include/g++-3/cstdarg" 2 3=0A=
=0A=
=0A=
# 39 "sysdep.h" 2=0A=
=0A=
=0A=
# 1 "/usr/include/g++-3/cstdlib" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/stdlib.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern "C" {=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 21 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 63 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 128 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 190 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 271 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 319 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 17 "/usr/include/stdlib.h" 2 3=0A=
=0A=
=0A=
=0A=
=0A=
typedef struct =0A=
{=0A=
int quot; =0A=
int rem; =0A=
} div_t;=0A=
=0A=
typedef struct =0A=
{=0A=
long quot; =0A=
long rem; =0A=
} ldiv_t;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern __attribute__(( dllimport )) int __mb_cur_max;=0A=
=0A=
=0A=
=0A=
void __attribute__((__cdecl__)) abort (void ) __attribute__ ( =
(noreturn) ) ;=0A=
int __attribute__((__cdecl__)) abs (int) ;=0A=
int __attribute__((__cdecl__)) atexit (void (*__func)(void )) =
;=0A=
double __attribute__((__cdecl__)) atof (const char *__nptr) ;=0A=
=0A=
float __attribute__((__cdecl__)) atoff (const char *__nptr) ;=0A=
=0A=
int __attribute__((__cdecl__)) atoi (const char *__nptr) ;=0A=
long __attribute__((__cdecl__)) atol (const char *__nptr) ;=0A=
void * __attribute__((__cdecl__)) bsearch (const void * __key,=0A=
const void * __base,=0A=
size_t __nmemb,=0A=
size_t __size,=0A=
int (* __attribute__((__cdecl__)) _compar ) (const void * , =
const void * ) ) ;=0A=
void * __attribute__((__cdecl__)) calloc (size_t __nmemb, size_t =
__size) ;=0A=
div_t __attribute__((__cdecl__)) div (int __numer, int __denom) =
;=0A=
void __attribute__((__cdecl__)) exit (int __status) __attribute__ =
( (noreturn) ) ;=0A=
void __attribute__((__cdecl__)) free (void * ) ;=0A=
char * __attribute__((__cdecl__)) getenv (const char *__string) =
;=0A=
char * __attribute__((__cdecl__)) _getenv_r (struct _reent *, const =
char *__string) ;=0A=
char * __attribute__((__cdecl__)) _findenv (const char *, int *) =
;=0A=
char * __attribute__((__cdecl__)) _findenv_r (struct _reent *, =
const char *, int *) ;=0A=
long __attribute__((__cdecl__)) labs (long) ;=0A=
ldiv_t __attribute__((__cdecl__)) ldiv (long __numer, long __denom) =
;=0A=
void * __attribute__((__cdecl__)) malloc (size_t __size) ;=0A=
int __attribute__((__cdecl__)) mblen (const char *, size_t) ;=0A=
int __attribute__((__cdecl__)) _mblen_r (struct _reent *, const =
char *, size_t, int *) ;=0A=
int __attribute__((__cdecl__)) mbtowc (wchar_t *, const char *, =
size_t) ;=0A=
int __attribute__((__cdecl__)) _mbtowc_r (struct _reent *, wchar_t =
*, const char *, size_t, int *) ;=0A=
int __attribute__((__cdecl__)) wctomb (char *, wchar_t) ;=0A=
int __attribute__((__cdecl__)) _wctomb_r (struct _reent *, char *, =
wchar_t, int *) ;=0A=
size_t __attribute__((__cdecl__)) mbstowcs (wchar_t *, const char =
*, size_t) ;=0A=
size_t __attribute__((__cdecl__)) _mbstowcs_r (struct _reent *, =
wchar_t *, const char *, size_t, int *) ;=0A=
size_t __attribute__((__cdecl__)) wcstombs (char *, const wchar_t =
*, size_t) ;=0A=
size_t __attribute__((__cdecl__)) _wcstombs_r (struct _reent *, =
char *, const wchar_t *, size_t, int *) ;=0A=
=0A=
=0A=
int __attribute__((__cdecl__)) mkstemp (char *) ;=0A=
char * __attribute__((__cdecl__)) mktemp (char *) ;=0A=
=0A=
=0A=
void __attribute__((__cdecl__)) qsort (void * __base, size_t =
__nmemb, size_t __size, int(*_compar)(const void * , const void * )) =
;=0A=
int __attribute__((__cdecl__)) rand (void ) ;=0A=
void * __attribute__((__cdecl__)) realloc (void * __r, size_t =
__size) ;=0A=
void __attribute__((__cdecl__)) srand (unsigned __seed) ;=0A=
double __attribute__((__cdecl__)) strtod (const char *__n, char =
**_end_PTR) ;=0A=
double __attribute__((__cdecl__)) _strtod_r (struct _reent *,const =
char *__n, char **_end_PTR) ;=0A=
=0A=
float __attribute__((__cdecl__)) strtodf (const char *__n, char =
**_end_PTR) ;=0A=
=0A=
long __attribute__((__cdecl__)) strtol (const char *__n, char =
**_end_PTR, int __base) ;=0A=
long __attribute__((__cdecl__)) _strtol_r (struct _reent *,const =
char *__n, char **_end_PTR, int __base) ;=0A=
unsigned long __attribute__((__cdecl__)) strtoul (const char =
*_n_PTR, char **_end_PTR, int __base) ;=0A=
unsigned long __attribute__((__cdecl__)) _strtoul_r (struct _reent =
*,const char *_n_PTR, char **_end_PTR, int __base) ;=0A=
int __attribute__((__cdecl__)) system (const char *__string) ;=0A=
=0A=
=0A=
int __attribute__((__cdecl__)) putenv (const char *__string) ;=0A=
int __attribute__((__cdecl__)) _putenv_r (struct _reent *, const =
char *__string) ;=0A=
int __attribute__((__cdecl__)) setenv (const char *__string, const =
char *__value, int __overwrite) ;=0A=
int __attribute__((__cdecl__)) _setenv_r (struct _reent *, const =
char *__string, const char *__value, int __overwrite) ;=0A=
=0A=
char * __attribute__((__cdecl__)) gcvt (double,int,char *) ;=0A=
char * __attribute__((__cdecl__)) gcvtf (float,int,char *) ;=0A=
char * __attribute__((__cdecl__)) fcvt (double,int,int *,int *) =
;=0A=
char * __attribute__((__cdecl__)) fcvtf (float,int,int *,int *) =
;=0A=
char * __attribute__((__cdecl__)) ecvt (double,int,int *,int *) =
;=0A=
char * __attribute__((__cdecl__)) ecvtbuf (double, int, int*, int*, =
char *) ;=0A=
char * __attribute__((__cdecl__)) fcvtbuf (double, int, int*, int*, =
char *) ;=0A=
char * __attribute__((__cdecl__)) ecvtf (float,int,int *,int *) =
;=0A=
char * __attribute__((__cdecl__)) dtoa (double, int, int, int *, =
int*, char**) ;=0A=
int __attribute__((__cdecl__)) rand_r (unsigned *__seed) ;=0A=
=0A=
double __attribute__((__cdecl__)) drand48 (void ) ;=0A=
double __attribute__((__cdecl__)) _drand48_r (struct _reent *) =
;=0A=
double __attribute__((__cdecl__)) erand48 (unsigned short [3]) =
;=0A=
double __attribute__((__cdecl__)) _erand48_r (struct _reent *, =
unsigned short [3]) ;=0A=
long __attribute__((__cdecl__)) jrand48 (unsigned short [3]) =
;=0A=
long __attribute__((__cdecl__)) _jrand48_r (struct _reent *, =
unsigned short [3]) ;=0A=
void __attribute__((__cdecl__)) lcong48 (unsigned short [7]) =
;=0A=
void __attribute__((__cdecl__)) _lcong48_r (struct _reent *, =
unsigned short [7]) ;=0A=
long __attribute__((__cdecl__)) lrand48 (void ) ;=0A=
long __attribute__((__cdecl__)) _lrand48_r (struct _reent *) =
;=0A=
long __attribute__((__cdecl__)) mrand48 (void ) ;=0A=
long __attribute__((__cdecl__)) _mrand48_r (struct _reent *) =
;=0A=
long __attribute__((__cdecl__)) nrand48 (unsigned short [3]) =
;=0A=
long __attribute__((__cdecl__)) _nrand48_r (struct _reent *, =
unsigned short [3]) ;=0A=
unsigned short *=0A=
__attribute__((__cdecl__)) seed48 (unsigned short [3]) ;=0A=
unsigned short *=0A=
__attribute__((__cdecl__)) _seed48_r (struct _reent *, =
unsigned short [3]) ;=0A=
void __attribute__((__cdecl__)) srand48 (long) ;=0A=
void __attribute__((__cdecl__)) _srand48_r (struct _reent *, =
long) ;=0A=
=0A=
=0A=
=0A=
=0A=
char * __attribute__((__cdecl__)) realpath (const char *, char *) =
;=0A=
void __attribute__((__cdecl__)) unsetenv (const char *__string) =
;=0A=
void __attribute__((__cdecl__)) _unsetenv_r (struct _reent *, const =
char *__string) ;=0A=
int __attribute__((__cdecl__)) random (void ) ;=0A=
long __attribute__((__cdecl__)) srandom (unsigned __seed) ;=0A=
char * __attribute__((__cdecl__)) ptsname (int) ;=0A=
int __attribute__((__cdecl__)) grantpt (int) ;=0A=
int __attribute__((__cdecl__)) unlockpt (int) ;=0A=
=0A=
=0A=
=0A=
=0A=
char * __attribute__((__cdecl__)) _dtoa_r (struct _reent *, double, =
int, int, int *, int*, char**) ;=0A=
void * __attribute__((__cdecl__)) _malloc_r (struct _reent *, =
size_t) ;=0A=
void * __attribute__((__cdecl__)) _calloc_r (struct _reent *, =
size_t, size_t) ;=0A=
void __attribute__((__cdecl__)) _free_r (struct _reent *, void * ) =
;=0A=
void * __attribute__((__cdecl__)) _realloc_r (struct _reent *, =
void * , size_t) ;=0A=
void __attribute__((__cdecl__)) _mstats_r (struct _reent *, char =
*) ;=0A=
int __attribute__((__cdecl__)) _system_r (struct _reent *, const =
char *) ;=0A=
=0A=
void __attribute__((__cdecl__)) __eprintf (const char *, const =
char *, unsigned int, const char *) ;=0A=
=0A=
=0A=
}=0A=
=0A=
=0A=
# 6 "/usr/include/g++-3/cstdlib" 2 3=0A=
=0A=
=0A=
=0A=
#pragma interface "cstdlib"=0A=
=0A=
=0A=
extern "C++" {=0A=
=0A=
=0A=
=0A=
=0A=
inline long abs(long x) { return x >=3D 0 ? x : -x; }=0A=
=0A=
=0A=
=0A=
} =0A=
=0A=
=0A=
# 41 "sysdep.h" 2=0A=
=0A=
# 1 "/usr/include/g++-3/cstring" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/string.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern "C" {=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 21 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 63 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 128 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 190 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 271 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 319 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 18 "/usr/include/string.h" 2 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
void * __attribute__((__cdecl__)) memchr (const void * , int, =
size_t) ;=0A=
int __attribute__((__cdecl__)) memcmp (const void * , const void =
* , size_t) ;=0A=
void * __attribute__((__cdecl__)) memcpy (void * , const void * =
, size_t) ;=0A=
void * __attribute__((__cdecl__)) memmove (void * , const void * =
, size_t) ;=0A=
void * __attribute__((__cdecl__)) memset (void * , int, size_t) =
;=0A=
char * __attribute__((__cdecl__)) strcat (char *, const char *) =
;=0A=
char * __attribute__((__cdecl__)) strchr (const char *, int) ;=0A=
int __attribute__((__cdecl__)) strcmp (const char *, const char *) =
;=0A=
int __attribute__((__cdecl__)) strcoll (const char *, const char =
*) ;=0A=
char * __attribute__((__cdecl__)) strcpy (char *, const char *) =
;=0A=
size_t __attribute__((__cdecl__)) strcspn (const char *, const =
char *) ;=0A=
char * __attribute__((__cdecl__)) strerror (int) ;=0A=
size_t __attribute__((__cdecl__)) strlen (const char *) ;=0A=
char * __attribute__((__cdecl__)) strncat (char *, const char *, =
size_t) ;=0A=
int __attribute__((__cdecl__)) strncmp (const char *, const char =
*, size_t) ;=0A=
char * __attribute__((__cdecl__)) strncpy (char *, const char *, =
size_t) ;=0A=
char * __attribute__((__cdecl__)) strpbrk (const char *, const =
char *) ;=0A=
char * __attribute__((__cdecl__)) strrchr (const char *, int) =
;=0A=
size_t __attribute__((__cdecl__)) strspn (const char *, const char =
*) ;=0A=
char * __attribute__((__cdecl__)) strstr (const char *, const char =
*) ;=0A=
=0A=
=0A=
char * __attribute__((__cdecl__)) strtok (char *, const char *) =
;=0A=
=0A=
=0A=
size_t __attribute__((__cdecl__)) strxfrm (char *, const char *, =
size_t) ;=0A=
=0A=
=0A=
char * __attribute__((__cdecl__)) strtok_r (char *, const char *, =
char **) ;=0A=
=0A=
int __attribute__((__cdecl__)) bcmp (const char *, const char *, =
size_t) ;=0A=
void __attribute__((__cdecl__)) bcopy (const char *, char *, =
size_t) ;=0A=
void __attribute__((__cdecl__)) bzero (char *, size_t) ;=0A=
int __attribute__((__cdecl__)) ffs (int) ;=0A=
char * __attribute__((__cdecl__)) index (const char *, int) ;=0A=
void * __attribute__((__cdecl__)) memccpy (void * , const void * =
, int, size_t) ;=0A=
char * __attribute__((__cdecl__)) rindex (const char *, int) ;=0A=
int __attribute__((__cdecl__)) strcasecmp (const char *, const =
char *) ;=0A=
char * __attribute__((__cdecl__)) strdup (const char *) ;=0A=
char * __attribute__((__cdecl__)) _strdup_r (struct _reent *, =
const char *) ;=0A=
int __attribute__((__cdecl__)) strncasecmp (const char *, const =
char *, size_t) ;=0A=
char * __attribute__((__cdecl__)) strsep (char **, const char *) =
;=0A=
char * __attribute__((__cdecl__)) strlwr (char *) ;=0A=
char * __attribute__((__cdecl__)) strupr (char *) ;=0A=
=0A=
=0A=
const char * __attribute__((__cdecl__)) strsignal (int __signo) =
;=0A=
=0A=
int __attribute__((__cdecl__)) strtosigno (const char *__name) =
;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
}=0A=
=0A=
=0A=
# 7 "/usr/include/g++-3/cstring" 2 3=0A=
=0A=
=0A=
# 94 "/usr/include/g++-3/cstring" 3=0A=
=0A=
=0A=
=0A=
# 42 "sysdep.h" 2=0A=
=0A=
=0A=
# 1 "/usr/include/g++-3/climits" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/limits.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/syslimits.h" 1 =
3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/limits.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 114 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/limits.h" 3=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/limits.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 117 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/limits.h" 2 =
3=0A=
=0A=
=0A=
=0A=
=0A=
# 7 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/syslimits.h" 2 =
3=0A=
=0A=
=0A=
# 11 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/limits.h" 2 3=0A=
=0A=
=0A=
# 110 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/limits.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 6 "/usr/include/g++-3/climits" 2 3=0A=
=0A=
=0A=
# 44 "sysdep.h" 2=0A=
=0A=
# 1 "/usr/include/g++-3/cerrno" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/errno.h" 1 3=0A=
# 1 "/usr/include/sys/errno.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern "C" {=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern int *__errno (void) ;=0A=
=0A=
=0A=
extern __attribute__(( dllimport )) const char * const =
_sys_errlist[];=0A=
extern __attribute__(( dllimport )) int _sys_nerr;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
}=0A=
=0A=
=0A=
# 1 "/usr/include/errno.h" 2 3=0A=
=0A=
# 6 "/usr/include/g++-3/cerrno" 2 3=0A=
=0A=
=0A=
# 45 "sysdep.h" 2=0A=
=0A=
# 1 "/usr/include/g++-3/cassert" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/assert.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern "C" {=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
void __attribute__((__cdecl__)) __assert (const char *, int, const =
char *) ;=0A=
=0A=
=0A=
}=0A=
=0A=
# 6 "/usr/include/g++-3/cassert" 2 3=0A=
=0A=
=0A=
# 46 "sysdep.h" 2=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/unistd.h" 1 3=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/sys/unistd.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
extern "C" {=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 21 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 63 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 128 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 190 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 271 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 319 "/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-4/include/stddef.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 12 "/usr/include/sys/unistd.h" 2 3=0A=
=0A=
=0A=
extern char **environ;=0A=
=0A=
void __attribute__((__cdecl__)) _exit (int __status ) =
__attribute__ ( (noreturn) ) ;=0A=
=0A=
int __attribute__((__cdecl__)) access (const char *__path, int =
__amode ) ;=0A=
unsigned __attribute__((__cdecl__)) alarm (unsigned __secs ) =
;=0A=
int __attribute__((__cdecl__)) chdir (const char *__path ) =
;=0A=
int __attribute__((__cdecl__)) chmod (const char *__path, =
mode_t __mode ) ;=0A=
int __attribute__((__cdecl__)) chown (const char *__path, =
uid_t __owner, gid_t __group ) ;=0A=
=0A=
int __attribute__((__cdecl__)) chroot (const char *__path ) =
;=0A=
=0A=
int __attribute__((__cdecl__)) close (int __fildes ) ;=0A=
char __attribute__((__cdecl__)) *ctermid (char *__s ) ;=0A=
char __attribute__((__cdecl__)) *cuserid (char *__s ) ;=0A=
int __attribute__((__cdecl__)) dup (int __fildes ) ;=0A=
int __attribute__((__cdecl__)) dup2 (int __fildes, int =
__fildes2 ) ;=0A=
int __attribute__((__cdecl__)) execl (const char *__path, =
const char *, ... ) ;=0A=
int __attribute__((__cdecl__)) execle (const char *__path, =
const char *, ... ) ;=0A=
int __attribute__((__cdecl__)) execlp (const char *__file, =
const char *, ... ) ;=0A=
int __attribute__((__cdecl__)) execv (const char *__path, char =
* const __argv[] ) ;=0A=
int __attribute__((__cdecl__)) execve (const char *__path, =
char * const __argv[], char * const __envp[] ) ;=0A=
int __attribute__((__cdecl__)) execvp (const char *__file, =
char * const __argv[] ) ;=0A=
int __attribute__((__cdecl__)) fchmod (int __fildes, mode_t =
__mode ) ;=0A=
int __attribute__((__cdecl__)) fchown (int __fildes, uid_t =
__owner, gid_t __group ) ;=0A=
pid_t __attribute__((__cdecl__)) fork (void ) ;=0A=
long __attribute__((__cdecl__)) fpathconf (int __fd, int __name =
) ;=0A=
int __attribute__((__cdecl__)) fsync (int __fd) ;=0A=
char __attribute__((__cdecl__)) *getcwd (char *__buf, size_t =
__size ) ;=0A=
gid_t __attribute__((__cdecl__)) getegid (void ) ;=0A=
uid_t __attribute__((__cdecl__)) geteuid (void ) ;=0A=
gid_t __attribute__((__cdecl__)) getgid (void ) ;=0A=
int __attribute__((__cdecl__)) getgroups (int __gidsetsize, =
gid_t __grouplist[] ) ;=0A=
char __attribute__((__cdecl__)) *getlogin (void ) ;=0A=
=0A=
int __attribute__((__cdecl__)) getlogin_r (char *name, size_t =
namesize) ;=0A=
=0A=
char __attribute__((__cdecl__)) *getpass (__const char *__prompt) =
;=0A=
size_t __attribute__((__cdecl__)) getpagesize (void) ;=0A=
pid_t __attribute__((__cdecl__)) getpgid (pid_t) ;=0A=
pid_t __attribute__((__cdecl__)) getpgrp (void ) ;=0A=
pid_t __attribute__((__cdecl__)) getpid (void ) ;=0A=
pid_t __attribute__((__cdecl__)) getppid (void ) ;=0A=
uid_t __attribute__((__cdecl__)) getuid (void ) ;=0A=
=0A=
char __attribute__((__cdecl__)) *getwd (char *__buf ) ;=0A=
=0A=
int __attribute__((__cdecl__)) isatty (int __fildes ) ;=0A=
int __attribute__((__cdecl__)) lchown (const char *__path, =
uid_t __owner, gid_t __group ) ;=0A=
int __attribute__((__cdecl__)) link (const char *__path1, =
const char *__path2 ) ;=0A=
int __attribute__((__cdecl__)) nice (int __nice_value ) ;=0A=
off_t __attribute__((__cdecl__)) lseek (int __fildes, off_t =
__offset, int __whence ) ;=0A=
long __attribute__((__cdecl__)) pathconf (const char *__path, =
int __name ) ;=0A=
int __attribute__((__cdecl__)) pause (void ) ;=0A=
=0A=
int __attribute__((__cdecl__)) pthread_atfork (void (*)(void), =
void (*)(void), void (*)(void)) ;=0A=
=0A=
int __attribute__((__cdecl__)) pipe (int __fildes[2] ) ;=0A=
ssize_t __attribute__((__cdecl__)) read (int __fd, void *__buf, =
size_t __nbyte ) ;=0A=
int __attribute__((__cdecl__)) rmdir (const char *__path ) =
;=0A=
=0A=
=0A=
=0A=
void * __attribute__((__cdecl__)) sbrk (size_t __incr) ;=0A=
=0A=
=0A=
int __attribute__((__cdecl__)) setegid (gid_t __gid ) ;=0A=
int __attribute__((__cdecl__)) seteuid (uid_t __uid ) ;=0A=
=0A=
int __attribute__((__cdecl__)) setgid (gid_t __gid ) ;=0A=
int __attribute__((__cdecl__)) setpgid (pid_t __pid, pid_t =
__pgid ) ;=0A=
int __attribute__((__cdecl__)) setpgrp (void ) ;=0A=
pid_t __attribute__((__cdecl__)) setsid (void ) ;=0A=
int __attribute__((__cdecl__)) setuid (uid_t __uid ) ;=0A=
unsigned __attribute__((__cdecl__)) sleep (unsigned int __seconds =
) ;=0A=
void __attribute__((__cdecl__)) swab (const void *, void *, =
ssize_t) ;=0A=
long __attribute__((__cdecl__)) sysconf (int __name ) ;=0A=
pid_t __attribute__((__cdecl__)) tcgetpgrp (int __fildes ) ;=0A=
int __attribute__((__cdecl__)) tcsetpgrp (int __fildes, pid_t =
__pgrp_id ) ;=0A=
char __attribute__((__cdecl__)) *ttyname (int __fildes ) ;=0A=
int __attribute__((__cdecl__)) unlink (const char *__path ) =
;=0A=
int __attribute__((__cdecl__)) vhangup (void ) ;=0A=
ssize_t __attribute__((__cdecl__)) write (int __fd, const void =
*__buf, size_t __nbyte ) ;=0A=
=0A=
=0A=
pid_t __attribute__((__cdecl__)) vfork (void ) ;=0A=
=0A=
=0A=
=0A=
=0A=
int __attribute__((__cdecl__)) _close (int __fildes ) ;=0A=
pid_t __attribute__((__cdecl__)) _fork (void ) ;=0A=
pid_t __attribute__((__cdecl__)) _getpid (void ) ;=0A=
int __attribute__((__cdecl__)) _link (const char *__path1, =
const char *__path2 ) ;=0A=
off_t __attribute__((__cdecl__)) _lseek (int __fildes, off_t =
__offset, int __whence ) ;=0A=
ssize_t __attribute__((__cdecl__)) _read (int __fd, void *__buf, =
size_t __nbyte ) ;=0A=
void * __attribute__((__cdecl__)) _sbrk (size_t __incr) ;=0A=
int __attribute__((__cdecl__)) _unlink (const char *__path ) =
;=0A=
ssize_t __attribute__((__cdecl__)) _write (int __fd, const void =
*__buf, size_t __nbyte ) ;=0A=
int __attribute__((__cdecl__)) _execve (const char *__path, =
char * const __argv[], char * const __envp[] ) ;=0A=
=0A=
=0A=
int __attribute__((__cdecl__)) getdtablesize (void) ;=0A=
int __attribute__((__cdecl__)) setdtablesize (int) ;=0A=
unsigned __attribute__((__cdecl__)) usleep (unsigned int =
__useconds) ;=0A=
int __attribute__((__cdecl__)) ftruncate (int __fd, off_t =
__length) ;=0A=
int __attribute__((__cdecl__)) truncate (const char *, off_t =
__length) ;=0A=
=0A=
=0A=
int __attribute__((__cdecl__)) gethostname (char *__name, size_t =
__len) ;=0A=
=0A=
char * __attribute__((__cdecl__)) mktemp (char *) ;=0A=
int __attribute__((__cdecl__)) sync (void) ;=0A=
int __attribute__((__cdecl__)) readlink (const char *__path, =
char *__buf, int __buflen) ;=0A=
int __attribute__((__cdecl__)) symlink (const char *__name1, =
const char *__name2) ;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
}=0A=
=0A=
=0A=
# 4 "/usr/include/unistd.h" 2 3=0A=
=0A=
=0A=
=0A=
# 53 "sysdep.h" 2=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/sys/wait.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/sys/resource.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/sys/time.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern "C" {=0A=
=0A=
=0A=
=0A=
struct timeval {=0A=
long tv_sec;=0A=
long tv_usec;=0A=
};=0A=
=0A=
struct timezone {=0A=
int tz_minuteswest;=0A=
int tz_dsttime;=0A=
};=0A=
=0A=
=0A=
# 1 "/usr/include/sys/select.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/sys/cdefs.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 17 "/usr/include/sys/select.h" 2 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/sys/time.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
# 83 "/usr/include/sys/time.h" 3=0A=
=0A=
# 23 "/usr/include/sys/select.h" 2 3=0A=
=0A=
=0A=
=0A=
extern "C" { =0A=
=0A=
int select (int __n, _types_fd_set *__readfds, _types_fd_set =
*__writefds,=0A=
_types_fd_set *__exceptfds, struct timeval *__timeout) ;=0A=
=0A=
} =0A=
=0A=
=0A=
=0A=
=0A=
# 27 "/usr/include/sys/time.h" 2 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
struct itimerval {=0A=
struct timeval it_interval;=0A=
struct timeval it_value;=0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 62 "/usr/include/sys/time.h" 3=0A=
=0A=
# 71 "/usr/include/sys/time.h" 3=0A=
=0A=
=0A=
int __attribute__((__cdecl__)) gettimeofday (struct timeval *__p, =
struct timezone *__z) ;=0A=
int __attribute__((__cdecl__)) settimeofday (const struct timeval =
*, const struct timezone *) ;=0A=
int __attribute__((__cdecl__)) utimes (const char *__path, struct =
timeval *__tvp) ;=0A=
int __attribute__((__cdecl__)) getitimer (int __which, struct =
itimerval *__value) ;=0A=
int __attribute__((__cdecl__)) setitimer (int __which, const =
struct itimerval *__value,=0A=
struct itimerval *__ovalue) ;=0A=
=0A=
=0A=
}=0A=
=0A=
=0A=
# 14 "/usr/include/sys/resource.h" 2 3=0A=
=0A=
=0A=
=0A=
extern "C" {=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
typedef unsigned long rlim_t;=0A=
=0A=
struct rlimit {=0A=
rlim_t rlim_cur;=0A=
rlim_t rlim_max;=0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
struct rusage {=0A=
struct timeval ru_utime; =0A=
struct timeval ru_stime; =0A=
long ru_maxrss;=0A=
long ru_ixrss; =0A=
long ru_idrss; =0A=
long ru_isrss; =0A=
long ru_minflt; =0A=
long ru_majflt; =0A=
long ru_nswap; =0A=
long ru_inblock; =0A=
long ru_oublock; =0A=
long ru_msgsnd; =0A=
long ru_msgrcv; =0A=
long ru_nsignals; =0A=
long ru_nvcsw; =0A=
long ru_nivcsw; =0A=
=0A=
};=0A=
=0A=
int getrlimit (int __resource, struct rlimit *__rlp);=0A=
int setrlimit (int __resource, const struct rlimit *__rlp);=0A=
=0A=
int getrusage (int __who, struct rusage *__rusage);=0A=
=0A=
=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
# 15 "/usr/include/sys/wait.h" 2 3=0A=
=0A=
=0A=
=0A=
extern "C" {=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
pid_t wait (int *);=0A=
pid_t waitpid (pid_t, int *, int);=0A=
pid_t wait3 (int *__status, int __options, struct rusage *__rusage);=0A=
pid_t wait4 (pid_t __pid, int *__status, int __options, struct rusage =
*__rusage);=0A=
=0A=
union wait=0A=
{=0A=
int w_status;=0A=
struct=0A=
{=0A=
unsigned int __w_termsig:7; =0A=
unsigned int __w_coredump:1; =0A=
unsigned int __w_retcode:8; =0A=
unsigned int:16;=0A=
} __wait_terminated;=0A=
struct=0A=
{=0A=
unsigned int __w_stopval:8; =0A=
unsigned int __w_stopsig:8; =0A=
unsigned int:16;=0A=
} __wait_stopped;=0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
};=0A=
=0A=
=0A=
=0A=
# 57 "sysdep.h" 2=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/g++-3/csignal" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/signal.h" 1 3=0A=
=0A=
=0A=
extern "C" {=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/sys/signal.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern "C" {=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
typedef unsigned long sigset_t;=0A=
=0A=
# 105 "/usr/include/sys/signal.h" 3=0A=
=0A=
=0A=
struct sigaction =0A=
{=0A=
void (*sa_handler)(int);=0A=
sigset_t sa_mask;=0A=
int sa_flags;=0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
int __attribute__((__cdecl__)) sigprocmask (int how, const =
sigset_t *set, sigset_t *oset) ;=0A=
=0A=
=0A=
int __attribute__((__cdecl__)) pthread_sigmask (int how, const =
sigset_t *set, sigset_t *oset) ;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
int __attribute__((__cdecl__)) kill (int, int) ;=0A=
int __attribute__((__cdecl__)) killpg (pid_t, int) ;=0A=
int __attribute__((__cdecl__)) sigaction (int, const struct =
sigaction *, struct sigaction *) ;=0A=
int __attribute__((__cdecl__)) sigaddset (sigset_t *, const int) =
;=0A=
int __attribute__((__cdecl__)) sigdelset (sigset_t *, const int) =
;=0A=
int __attribute__((__cdecl__)) sigismember (const sigset_t *, int) =
;=0A=
int __attribute__((__cdecl__)) sigfillset (sigset_t *) ;=0A=
int __attribute__((__cdecl__)) sigemptyset (sigset_t *) ;=0A=
int __attribute__((__cdecl__)) sigpending (sigset_t *) ;=0A=
int __attribute__((__cdecl__)) sigsuspend (const sigset_t *) ;=0A=
int __attribute__((__cdecl__)) sigpause (int) ;=0A=
=0A=
=0A=
int __attribute__((__cdecl__)) pthread_kill (pthread_t thread, int =
sig) ;=0A=
=0A=
=0A=
# 179 "/usr/include/sys/signal.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 219 "/usr/include/sys/signal.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 328 "/usr/include/sys/signal.h" 3=0A=
=0A=
=0A=
=0A=
}=0A=
=0A=
=0A=
# 8 "/usr/include/signal.h" 2 3=0A=
=0A=
=0A=
typedef int sig_atomic_t; =0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
typedef void (*_sig_func_ptr) (int);=0A=
=0A=
struct _reent;=0A=
=0A=
_sig_func_ptr __attribute__((__cdecl__)) _signal_r (struct _reent =
*, int, _sig_func_ptr) ;=0A=
int __attribute__((__cdecl__)) _raise_r (struct _reent *, int) =
;=0A=
=0A=
=0A=
_sig_func_ptr __attribute__((__cdecl__)) signal (int, =
_sig_func_ptr) ;=0A=
int __attribute__((__cdecl__)) raise (int) ;=0A=
=0A=
=0A=
=0A=
}=0A=
=0A=
=0A=
# 6 "/usr/include/g++-3/csignal" 2 3=0A=
=0A=
=0A=
# 81 "sysdep.h" 2=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/crypt.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern "C"=0A=
{=0A=
=0A=
=0A=
=0A=
=0A=
void __attribute__((__cdecl__)) encrypt (char *block, int edflag) =
;=0A=
void __attribute__((__cdecl__)) setkey (char *key) ;=0A=
char * __attribute__((__cdecl__)) crypt (const char *key, const =
char *salt) ;=0A=
=0A=
=0A=
}=0A=
=0A=
=0A=
=0A=
# 102 "sysdep.h" 2=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "memory.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
void Free_Error(char * file, int line);=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 125 "sysdep.h" 2=0A=
=0A=
# 17 "types.h" 2=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
typedef unsigned char UInt8;=0A=
typedef signed char SInt8;=0A=
=0A=
=0A=
=0A=
typedef unsigned short UInt16;=0A=
typedef signed short SInt16;=0A=
typedef unsigned int UInt32;=0A=
typedef signed int SInt32;=0A=
=0A=
=0A=
# 55 "types.h"=0A=
=0A=
=0A=
typedef void * Ptr;=0A=
typedef const void * CPtr;=0A=
=0A=
=0A=
typedef SInt16 VNum;=0A=
=0A=
=0A=
typedef UInt32 IDNum;=0A=
typedef UInt32 Flags;=0A=
typedef UInt8 Type;=0A=
=0A=
=0A=
=0A=
class SString {=0A=
public:=0A=
SString(void);=0A=
SString(const char *str);=0A=
SString * Share(void);=0A=
void Free(void);=0A=
const char * Data(void);=0A=
=0A=
static SString * Create(const char *str);=0A=
static SString * fread(FILE *fl, char *error, char *filename);=0A=
=0A=
char * str;=0A=
UInt32 count;=0A=
};=0A=
=0A=
inline const char *SString::Data(void) { return this ? this->str : =
__null ; }=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
struct TimeInfoData {=0A=
=0A=
UInt16 hours : 6; =0A=
UInt16 day : 10; =0A=
SInt16 month : 5; =0A=
SInt16 year : 13; =0A=
}; =0A=
=0A=
=0A=
struct Dice {=0A=
UInt16 number;=0A=
UInt16 size;=0A=
};=0A=
=0A=
=0A=
=0A=
# 18 "comm.cp" 2=0A=
=0A=
# 1 "structs.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "internal.defs.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
const SInt32 OPT_USEC =3D 100000; =0A=
const SInt32 PASSES_PER_SEC =3D (1000000 / OPT_USEC);=0A=
=0A=
=0A=
const SInt32 PULSE_ZONE =3D 10 * PASSES_PER_SEC ;=0A=
const SInt32 PULSE_MOBILE =3D 1 * PASSES_PER_SEC ;=0A=
const SInt32 PULSE_POINTS =3D 25 * PASSES_PER_SEC ; =0A=
const SInt32 PULSE_VIOLENCE =3D 2 * PASSES_PER_SEC ; =0A=
const SInt32 PULSE_BUFFER =3D 5 * PASSES_PER_SEC ;=0A=
const SInt32 PULSE_SCRIPT =3D 10 * PASSES_PER_SEC ;=0A=
const SInt32 PULSE_EVENT =3D 1 * PASSES_PER_SEC ;=0A=
=0A=
const SInt32 TICK_WRAP_COUNT =3D 10;=0A=
=0A=
const SInt32 MOBILE_PERCENT =3D 20; =0A=
=0A=
=0A=
const SInt32 MAX_SOCK_BUF =3D (12 * 1024); =0A=
const SInt32 MAX_PROMPT_LENGTH =3D512; =0A=
const SInt32 GARBAGE_SPACE =3D 32; =0A=
const SInt32 SMALL_BUFSIZE =3D 1024; =0A=
=0A=
const SInt32 LARGE_BUFSIZE =3D (MAX_SOCK_BUF - GARBAGE_SPACE - =
MAX_PROMPT_LENGTH);=0A=
=0A=
=0A=
=0A=
const SInt32 HISTORY_SIZE =3D 5;=0A=
const SInt32 MAX_STRING_LENGTH =3D8192;=0A=
const SInt32 MAX_INPUT_LENGTH =3D 256; =0A=
const SInt32 MAX_RAW_INPUT_LENGTH =3D 512; =0A=
const SInt32 MAX_MESSAGES =3D 60;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
enum {=0A=
FORMAT_INDENT =3D (1 << 0)=0A=
};=0A=
=0A=
enum {=0A=
REAL,=0A=
VIRTUAL=0A=
};=0A=
=0A=
=0A=
# 20 "structs.h" 2=0A=
=0A=
# 1 "characters.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "character.defs.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
class Character;=0A=
=0A=
=0A=
=0A=
=0A=
enum Race {=0A=
RACE_UNDEFINED =3D -1,=0A=
RACE_HUMAN,=0A=
RACE_SYNTHETIC,=0A=
RACE_PREDATOR,=0A=
RACE_ALIEN,=0A=
RACE_OTHER=0A=
};=0A=
=0A=
=0A=
=0A=
enum Sex {=0A=
Neutral,=0A=
Male,=0A=
Female=0A=
};=0A=
=0A=
=0A=
=0A=
enum Position {=0A=
POS_DEAD =3D 0, =0A=
POS_MORTALLYW, =0A=
POS_INCAP, =0A=
POS_STUNNED, =0A=
POS_SLEEPING, =0A=
POS_RESTING, =0A=
POS_SITTING, =0A=
POS_FIGHTING, =0A=
POS_STANDING =0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
enum {=0A=
PLR_TRAITOR =3D (1 << 0), =0A=
PLR_unused1 =3D (1 << 1), =0A=
PLR_FROZEN =3D (1 << 2), =0A=
PLR_DONTSET =3D (1 << 3), =0A=
PLR_WRITING =3D (1 << 4), =0A=
PLR_MAILING =3D (1 << 5), =0A=
PLR_CRASH =3D (1 << 6), =0A=
PLR_SITEOK =3D (1 << 7), =0A=
PLR_NOSHOUT =3D (1 << 8), =0A=
PLR_NOTITLE =3D (1 << 9), =0A=
PLR_DELETED =3D (1 << 10), =0A=
PLR_LOADROOM =3D (1 << 11), =0A=
PLR_unused12 =3D (1 << 12), =0A=
PLR_NODELETE =3D (1 << 13), =0A=
PLR_INVSTART =3D (1 << 14) =0A=
};=0A=
=0A=
=0A=
enum {=0A=
MOB_SPEC =3D (1 << 0), =0A=
MOB_SENTINEL =3D (1 << 1), =0A=
MOB_SCAVENGER =3D (1 << 2), =0A=
MOB_ISNPC =3D (1 << 3), =0A=
MOB_AWARE =3D (1 << 4), =0A=
MOB_AGGRESSIVE =3D (1 << 5), =0A=
MOB_STAY_ZONE =3D (1 << 6), =0A=
MOB_WIMPY =3D (1 << 7), =0A=
MOB_AGGR_ALL =3D (1 << 8), =0A=
MOB_MEMORY =3D (1 << 9), =0A=
MOB_HELPER =3D (1 << 10), =0A=
MOB_NOCHARM =3D (1 << 11), =0A=
MOB_NOSUMMON =3D (1 << 12), =0A=
MOB_NOSLEEP =3D (1 << 13), =0A=
MOB_NOBASH =3D (1 << 14), =0A=
MOB_NOBLIND =3D (1 << 15), =0A=
MOB_ACIDBLOOD =3D (1 << 16), =0A=
MOB_PROGMOB =3D (1 << 17), =0A=
=0A=
MOB_APPROVED =3D (1 << 20), =0A=
MOB_TRAITOR =3D (1 << 30), =0A=
MOB_DELETED =3D (1 << 31) =0A=
};=0A=
=0A=
=0A=
=0A=
namespace Staff {=0A=
enum {=0A=
General =3D (1 << 0), =0A=
Admin =3D (1 << 1), =0A=
Security =3D (1 << 2), =0A=
Game =3D (1 << 3), =0A=
Houses =3D (1 << 4), =0A=
Chars =3D (1 << 5), =0A=
Clans =3D (1 << 6), =0A=
OLC =3D (1 << 7), =0A=
OLCAdmin =3D (1 << 8), =0A=
Socials =3D (1 << 9), =0A=
Help =3D (1 << 10), =0A=
Shops =3D (1 << 11), =0A=
Scripts =3D (1 << 12), =0A=
IMC =3D (1 << 13), =0A=
Coder =3D (1 << 14)=0A=
};=0A=
}=0A=
=0A=
=0A=
=0A=
namespace Preference {=0A=
enum {=0A=
Brief =3D (1 << 0), =0A=
Compact =3D (1 << 1), =0A=
PK =3D (1 << 2), =0A=
StaffInvis =3D (1 << 3),=0A=
AdminInvis =3D (1 << 4),=0A=
Newbie =3D (1 << 5),=0A=
AutoExit =3D (1 << 7), =0A=
NoHassle =3D (1 << 8), =0A=
Summonable =3D (1 << 10), =0A=
NoRepeat =3D (1 << 11), =0A=
HolyLight =3D (1 << 12), =0A=
Color =3D (1 << 13), =0A=
Log1 =3D (1 << 16), =0A=
Log2 =3D (1 << 17), =0A=
RoomFlags =3D (1 << 21), =0A=
AutoSwitch =3D (1 << 25)=0A=
};=0A=
}=0A=
=0A=
=0A=
namespace Channel {=0A=
enum {=0A=
NoShout =3D (1 << 0),=0A=
NoTell =3D (1 << 1),=0A=
NoChat =3D (1 << 2),=0A=
Mission =3D (1 << 3),=0A=
NoMusic =3D (1 << 4),=0A=
NoGratz =3D (1 << 5),=0A=
NoInfo =3D (1 << 6),=0A=
NoWiz =3D (1 << 7),=0A=
NoRace =3D (1 << 8),=0A=
NoClan =3D (1 << 9)=0A=
};=0A=
}=0A=
=0A=
=0A=
=0A=
namespace AffectBit {=0A=
enum {=0A=
Blind =3D (1 << 0), =0A=
Invisible =3D (1 << 1), =0A=
DetectInvis =3D (1 << 2), =0A=
SenseLife =3D (1 << 3), =0A=
Waterwalk =3D (1 << 4), =0A=
Sanctuary =3D (1 << 5), =0A=
Group =3D (1 << 6), =0A=
Flying =3D (1 << 7), =0A=
Infravision =3D (1 << 8), =0A=
Poison =3D (1 << 9), =0A=
Sleep =3D (1 << 10), =0A=
NoTrack =3D (1 << 11), =0A=
Sneak =3D (1 << 12), =0A=
Hide =3D (1 << 13), =0A=
Charm =3D (1 << 14), =0A=
Tracking =3D (1 << 15), =0A=
VacuumSafe =3D (1 << 16), =0A=
Light =3D (1 << 17), =0A=
Trapped =3D (1 << 18), =0A=
Impregnated =3D (1 << 19) =0A=
};=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
enum {=0A=
WEAR_FINGER_R,=0A=
WEAR_FINGER_L,=0A=
WEAR_NECK,=0A=
WEAR_BODY,=0A=
WEAR_HEAD,=0A=
WEAR_LEGS,=0A=
WEAR_FEET,=0A=
WEAR_HANDS,=0A=
WEAR_ARMS,=0A=
WEAR_ABOUT,=0A=
WEAR_WAIST,=0A=
WEAR_WRIST_R,=0A=
WEAR_WRIST_L,=0A=
WEAR_EYES,=0A=
WEAR_HAND_R,=0A=
WEAR_HAND_L,=0A=
=0A=
POS_WIELD_TWO,=0A=
POS_HOLD_TWO,=0A=
POS_WIELD,=0A=
POS_WIELD_OFF,=0A=
POS_LIGHT,=0A=
POS_HOLD=0A=
};=0A=
=0A=
=0A=
class BodyDesign {=0A=
public:=0A=
SInt32 heads : 4; =0A=
SInt32 legsLeft : 3,=0A=
legsRight : 3; =0A=
SInt32 armsLeft : 2,=0A=
armsRight : 2; =0A=
SInt32 wingsLeft : 2,=0A=
wingsRight : 2; =0A=
SInt32 tail : 1; =0A=
SInt32 shell : 1; =0A=
SInt32 segments : 4; =0A=
};=0A=
=0A=
=0A=
=0A=
namespace Bodyform {=0A=
enum {=0A=
Biped, =0A=
Bird, =0A=
Animal, =0A=
Insect, =0A=
Arachnid, =0A=
Decapod, =0A=
Millipede, =0A=
Fish, =0A=
Crustacean, =0A=
Snake, =0A=
=0A=
=0A=
Tripod, =0A=
Hexapod, =0A=
Mist, =0A=
Blob =0A=
};=0A=
}=0A=
=0A=
=0A=
namespace Bodypart {=0A=
enum {=0A=
Head, =0A=
LeftArm, RightArm, =0A=
LeftHand, RightHand, =0A=
LeftLeg, RightLeg, =0A=
LeftFoot, RightFoot, =0A=
LeftHindLeg, RightHindLeg, =0A=
LeftHindFoot, RightHindFoot, =0A=
Tail, =0A=
LeftEye, RightEye, =0A=
Jaw, =0A=
LeftWing, RightWing, =0A=
=0A=
=0A=
Claws =3D 24,=0A=
Fangs =3D 25,=0A=
Horns =3D 26,=0A=
Tusks =3D 27=0A=
};=0A=
}=0A=
=0A=
=0A=
const SInt32 NUM_WEARS =3D WEAR_HAND_L + 1; =0A=
=0A=
=0A=
const SInt32 LVL_STAFF =3D 101;=0A=
=0A=
=0A=
=0A=
enum { DRUNK, FULL, THIRST };=0A=
=0A=
enum {=0A=
MAX_NAME_LENGTH =3D 12,=0A=
MAX_PWD_LENGTH =3D 10,=0A=
MAX_TITLE_LENGTH =3D 80,=0A=
HOST_LENGTH =3D 30,=0A=
EXDSCR_LENGTH =3D 480,=0A=
MAX_SKILLS =3D 25,=0A=
MAX_AFFECT =3D 32,=0A=
MAX_ICE_LENGTH =3D 160=0A=
};=0A=
=0A=
=0A=
namespace Relation {=0A=
enum Relation {=0A=
None =3D -1,=0A=
Friend,=0A=
Neutral,=0A=
Enemy=0A=
};=0A=
}=0A=
=0A=
=0A=
=0A=
# 19 "characters.h" 2=0A=
=0A=
# 1 "room.defs.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
enum {=0A=
NOWHERE =3D -1,=0A=
NORTH,=0A=
EAST,=0A=
SOUTH,=0A=
WEST,=0A=
UP,=0A=
DOWN,=0A=
NUM_OF_DIRS=0A=
};=0A=
=0A=
=0A=
=0A=
enum {=0A=
ROOM_DARK =3D (1 << 0), =0A=
ROOM_DEATH =3D (1 << 1), =0A=
ROOM_NOMOB =3D (1 << 2), =0A=
ROOM_INDOORS =3D (1 << 3), =0A=
ROOM_PEACEFUL =3D (1 << 4), =0A=
ROOM_SOUNDPROOF =3D (1 << 5), =0A=
ROOM_NOTRACK =3D (1 << 6), =0A=
ROOM_PARSE =3D (1 << 7), =0A=
ROOM_TUNNEL =3D (1 << 8), =0A=
ROOM_PRIVATE =3D (1 << 9), =0A=
ROOM_STAFFROOM =3D (1 << 10), =0A=
ROOM_HOUSE =3D (1 << 11), =0A=
ROOM_HOUSE_CRASH =3D (1 << 12), =0A=
ROOM_GRAVITY =3D (1 << 13), =0A=
ROOM_VEHICLE =3D (1 << 14), =0A=
ROOM_ADMINROOM =3D (1 << 15), =0A=
ROOM_VACUUM =3D (1 << 16), =0A=
=0A=
=0A=
ROOM_DELETED =3D (1 << 31) =0A=
};=0A=
=0A=
=0A=
=0A=
namespace Exit {=0A=
enum {=0A=
Door =3D (1 << 0),=0A=
Closed =3D (1 << 1),=0A=
Locked =3D (1 << 2),=0A=
Pickproof =3D (1 << 3),=0A=
Hidden =3D (1 << 4),=0A=
NoShoot =3D (1 << 5),=0A=
NoMove =3D (1 << 6), =0A=
NoMob =3D (1 << 7),=0A=
NoVehicles =3D (1 << 8),=0A=
Automatic =3D (1 << 9),=0A=
SeeThru =3D (1 << 10) =0A=
};=0A=
}=0A=
=0A=
=0A=
=0A=
namespace Sector {=0A=
enum Sector {=0A=
Inside, =0A=
City, =0A=
Road, =0A=
Field, =0A=
Desert,=0A=
Swamp,=0A=
Arctic,=0A=
Hills, =0A=
Forest, =0A=
Jungle,=0A=
Mountain, =0A=
HighMountain,=0A=
Underground,=0A=
WaterSwim, =0A=
WaterNoswim, =0A=
Underwater, =0A=
Flying, =0A=
Space, =0A=
DeepSpace, =0A=
=0A=
Number =0A=
};=0A=
}=0A=
=0A=
=0A=
=0A=
# 20 "characters.h" 2=0A=
=0A=
=0A=
# 1 "mud.base.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern IDNum max_id;=0A=
=0A=
=0A=
class Character;=0A=
class Object;=0A=
class Script;=0A=
=0A=
=0A=
=0A=
class Base {=0A=
public:=0A=
Base(VNum v =3D -1) : purged(false), vnum(v), id(0) { };=0A=
virtual ~Base(void) { }=0A=
bool Purged(void) const;=0A=
VNum Virtual(void) const;=0A=
IDNum ID(void) const;=0A=
VNum Virtual(VNum newVNum);=0A=
=0A=
protected:=0A=
bool Purged(bool purge);=0A=
IDNum ID(IDNum newId);=0A=
=0A=
private:=0A=
bool purged;=0A=
VNum vnum;=0A=
IDNum id;=0A=
};=0A=
=0A=
=0A=
inline VNum Base::Virtual(void) const { return vnum; }=0A=
inline VNum Base::Virtual(VNum newVNum) { return (vnum =3D newVNum); =
}=0A=
inline IDNum Base::ID(void) const { return id; }=0A=
inline IDNum Base::ID(IDNum newId) { return (id =3D newId); }=0A=
inline bool Base::Purged(void) const { return purged; }=0A=
inline bool Base::Purged(bool purge) {=0A=
if (purge) purged =3D purge;=0A=
return purged;=0A=
}=0A=
=0A=
=0A=
=0A=
class Scriptable : public Base {=0A=
public:=0A=
enum { None, MobScript, ObjectScript, RoomScript };=0A=
=0A=
Scriptable(VNum vnum =3D -1, Type thisType =3D None);=0A=
Scriptable(const Scriptable &scriptObj);=0A=
virtual ~Scriptable(void);=0A=
=0A=
virtual ::Character * TargetChar(const char *arg) const;=0A=
virtual ::Object * TargetObj(const char *arg) const;=0A=
virtual VNum TargetRoom(const char *arg) const;=0A=
=0A=
virtual VNum AbsoluteRoom(void) const;=0A=
=0A=
=0A=
Type ScriptType(void) const;=0A=
=0A=
public:=0A=
Script * script;=0A=
=0A=
private:=0A=
Type type;=0A=
};=0A=
=0A=
=0A=
inline Scriptable::Scriptable(VNum vnum, Type thisType) : Base(vnum), =
script(__null ), type(thisType) { }=0A=
inline Scriptable::Scriptable(const Scriptable &so) : Base(so), =
script(so.script), type(so.type) { };=0A=
inline Scriptable::~Scriptable(void) { }=0A=
=0A=
inline Character *Scriptable::TargetChar(const char *arg) const { =
return __null ; }=0A=
inline Object * Scriptable::TargetObj(const char *arg) const { return =
__null ; }=0A=
inline VNum Scriptable::TargetRoom(const char *arg) const { return -1; =
}=0A=
inline VNum Scriptable::AbsoluteRoom(void) const { return -1; }=0A=
=0A=
inline Type Scriptable::ScriptType(void) const { return type;}=0A=
=0A=
=0A=
=0A=
class MUDObject : public Scriptable {=0A=
public:=0A=
MUDObject(VNum vnum =3D -1, Type type =3D Scriptable::None);=0A=
MUDObject(const MUDObject &mo);=0A=
virtual ~MUDObject(void) { }=0A=
=0A=
=0A=
virtual const char * Name(void) const;=0A=
=0A=
virtual VNum InRoom(void) const;=0A=
void SetRoom(VNum theRoom);=0A=
virtual void FromRoom(void);=0A=
virtual void ToRoom(VNum theRoom);=0A=
=0A=
virtual VNum AbsoluteRoom(void) const;=0A=
=0A=
virtual void Extract(void);=0A=
=0A=
private:=0A=
VNum room; =0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
inline MUDObject::MUDObject(VNum vnum, Type type) : Scriptable(vnum, =
type), room(-1) { }=0A=
inline MUDObject::MUDObject(const MUDObject &mo) : Scriptable(mo), =
room(-1) { }=0A=
=0A=
inline const char * MUDObject::Name(void) const { return __null ; =
}=0A=
=0A=
inline VNum MUDObject::InRoom(void) const { return room; }=0A=
inline void MUDObject::SetRoom(VNum theRoom) { room =3D theRoom; }=0A=
inline void MUDObject::FromRoom(void) { return; }=0A=
inline void MUDObject::ToRoom(VNum theRoom) { return; }=0A=
=0A=
=0A=
=0A=
=0A=
inline VNum MUDObject::AbsoluteRoom(void) const { return InRoom(); =
}=0A=
=0A=
inline void MUDObject::Extract(void) { return; }=0A=
=0A=
=0A=
=0A=
# 22 "characters.h" 2=0A=
=0A=
=0A=
# 1 "index.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "stl.map.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
template<class K, class V> class Map;=0A=
=0A=
=0A=
=0A=
=0A=
template<class KEY, class VALUE>=0A=
class Pair {=0A=
public:=0A=
Pair(void) {}=0A=
Pair(const Pair<KEY, VALUE> &p);=0A=
Pair(const KEY& k, const VALUE& d);=0A=
~Pair(void) {}=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
KEY key;=0A=
VALUE data;=0A=
=0A=
Pair<KEY, VALUE> & operator=3D(const Pair<KEY, VALUE> &p);=0A=
=0A=
bool operator<(const Pair<KEY, VALUE> &p) { return (key < p.key); =
}=0A=
};=0A=
=0A=
=0A=
template<class KEY, class VALUE>=0A=
Pair<KEY, VALUE>::Pair(const KEY& k, const VALUE& v) : key(k), data(v) =
{ }=0A=
=0A=
=0A=
template<class KEY, class VALUE>=0A=
Pair<KEY, VALUE>::Pair(const Pair<KEY, VALUE> &p) : key(p.key), =
data(p.data) { }=0A=
=0A=
=0A=
template<class K, class V>=0A=
Pair<K, V> &Pair<K, V>::operator=3D(const Pair &p) {=0A=
key =3D p.key;=0A=
data =3D p.data;=0A=
=0A=
return *this;=0A=
}=0A=
=0A=
=0A=
template<class K, class V>=0A=
class Node {=0A=
public:=0A=
Node(void) : left(__null ), right(__null ), parent(__null ), =
bal(0) { }=0A=
Node *left, *right, *parent;=0A=
=0A=
Pair<K, V> pair;=0A=
int bal;=0A=
=0A=
Node * add(Node *node);=0A=
Node * remove(Node *node);=0A=
=0A=
private:=0A=
Node * singleRotateLeft(void);=0A=
Node * singleRotateRight(void);=0A=
Node * restoreLeftBalance(int bal);=0A=
Node * restoreRightBalance(int bal);=0A=
Node * balance(void);=0A=
Node * removeLeftChild(Node *&ref);=0A=
};=0A=
=0A=
=0A=
template <class K, class V>=0A=
class MapIterator {=0A=
public:=0A=
friend class Map<K, V>;=0A=
=0A=
typedef typename Map<K, V>::MapPair MapPair;=0A=
typedef typename Map<K, V>::Node Node;=0A=
MapIterator(void);=0A=
MapIterator(Map<K, V> &theMap);=0A=
~MapIterator(void);=0A=
void Start(Map<K, V> &theMap);=0A=
void Finish(void);=0A=
void Restart(Map<K, V> &theMap);=0A=
void Update(Node *node);=0A=
=0A=
V * Peek(void) const;=0A=
V * Prev(void);=0A=
V * Next(void);=0A=
void Reset(void);=0A=
=0A=
protected:=0A=
Map<K, V> * map;=0A=
Node * current;=0A=
=0A=
};=0A=
=0A=
=0A=
template<class K, class V>=0A=
class Map {=0A=
=0A=
public:=0A=
typedef Pair<K, V> MapPair;=0A=
typedef Node<K, V> Node;=0A=
typedef MapIterator<K, V> Iterator;=0A=
=0A=
Map(void);=0A=
=0A=
~Map(void);=0A=
=0A=
Map<K, V> & Insert(Node *node);=0A=
Map<K, V> & Remove(const K &key);=0A=
=0A=
V & operator[](const K &key);=0A=
Map<K, V> & operator=3D(const Map<K, V> &m);=0A=
Map<K, V> & Move(const K &from, const K &to);=0A=
Map<K, V> & Swap(const K &a, const K &b);=0A=
=0A=
const K Top(void);=0A=
const K Bottom(void);=0A=
int Count(void);=0A=
=0A=
bool Find(const K &key) const;=0A=
Node * GetElement(const K &key) const;=0A=
=0A=
public:=0A=
Node * root;=0A=
int count;=0A=
mutable Node * cache;=0A=
};=0A=
=0A=
=0A=
template<class K, class V>=0A=
Map<K, V>::Map(void) : root(__null ), count(0), cache(0) {=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
template<class K, class V>=0A=
Map<K, V>::~Map(void) {=0A=
}=0A=
=0A=
=0A=
=0A=
template<class K, class V>=0A=
Node<K, V> *Node<K, V>::singleRotateLeft(void) {=0A=
Node * node =3D right;=0A=
=0A=
=0A=
right =3D node->left;=0A=
node->left =3D this;=0A=
=0A=
if (right) right->parent =3D this;=0A=
parent =3D node;=0A=
=0A=
int Abf =3D bal;=0A=
int Bbf =3D node->bal;=0A=
=0A=
if (Bbf <=3D 0) {=0A=
node->bal =3D (Abf >=3D 1) ? (Bbf - 1) : (Abf + Bbf - 2);=0A=
bal =3D Abf - 1;=0A=
} else {=0A=
node->bal =3D (Abf <=3D Bbf) ? (Abf - 2) : (Bbf - 1);=0A=
bal =3D (Abf - Bbf) - 1;=0A=
}=0A=
return node;=0A=
}=0A=
=0A=
=0A=
=0A=
template<class K, class V>=0A=
Node<K, V> *Node<K, V>::singleRotateRight(void) {=0A=
Node * node =3D left;=0A=
=0A=
=0A=
left =3D node->right;=0A=
node->right =3D this;=0A=
=0A=
if (left) left->parent =3D this;=0A=
parent =3D node;=0A=
=0A=
int Abf =3D bal;=0A=
int Bbf =3D node->bal;=0A=
=0A=
if (Bbf <=3D 0) {=0A=
node->bal =3D (Bbf > Abf) ? (Bbf + 1) : (Abf + 2);=0A=
bal =3D (Abf - Bbf) + 1;=0A=
} else {=0A=
node->bal =3D (Abf <=3D -1) ? (Bbf + 1) : (Abf + Bbf + 2);=0A=
bal =3D Abf + 1;=0A=
}=0A=
return node;=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
template<class K, class V>=0A=
Node<K, V> *Node<K, V>::balance(void) {=0A=
if (bal < 0) {=0A=
if (left->bal <=3D 0) return singleRotateRight();=0A=
else {=0A=
left =3D left->singleRotateLeft();=0A=
left->parent =3D this;=0A=
return singleRotateRight();=0A=
}=0A=
} else {=0A=
if (right->bal >=3D 0) return singleRotateLeft();=0A=
else {=0A=
right =3D right->singleRotateRight();=0A=
right->parent =3D this;=0A=
return singleRotateLeft();=0A=
}=0A=
}=0A=
}=0A=
=0A=
=0A=
=0A=
template<class K, class V>=0A=
Node<K, V> *Node<K, V>::add(Node *node) {=0A=
if (node->pair.key < pair.key) {=0A=
if (left) {=0A=
int oldBalance =3D left->bal;=0A=
left =3D left->add(node);=0A=
=0A=
if ((left->bal !=3D oldBalance) && left->bal)=0A=
bal--;=0A=
} else {=0A=
left =3D node;=0A=
bal--;=0A=
}=0A=
left->parent =3D this;=0A=
} else {=0A=
if (right) {=0A=
int oldBalance =3D right->bal;=0A=
right =3D right->add(node);=0A=
=0A=
if ((right->bal !=3D oldBalance) && right->bal)=0A=
bal++;=0A=
} else {=0A=
right =3D node;=0A=
bal++;=0A=
}=0A=
right->parent =3D this;=0A=
}=0A=
=0A=
if ((bal < -1) || (bal > 1))=0A=
return balance();=0A=
=0A=
return this;=0A=
}=0A=
=0A=
=0A=
=0A=
template<class K, class V>=0A=
Node<K, V> *Node<K, V>::removeLeftChild(Node *&node) {=0A=
if (!left) {=0A=
node =3D this;=0A=
return right;=0A=
}=0A=
=0A=
int oldBalance =3D left->bal;=0A=
=0A=
left =3D left->removeLeftChild(node);=0A=
left->parent =3D this;=0A=
=0A=
return restoreLeftBalance(oldBalance);=0A=
}=0A=
=0A=
=0A=
=0A=
template<class K, class V>=0A=
Node<K, V> *Node<K, V>::restoreLeftBalance(int oldBalance) {=0A=
if (!left) bal++;=0A=
else if ((left->bal =3D=3D oldBalance) && left->bal =3D=3D 0)=0A=
bal++;=0A=
=0A=
if (bal > 1) return balance();=0A=
=0A=
return this;=0A=
}=0A=
=0A=
=0A=
=0A=
template<class K, class V>=0A=
Node<K, V> *Node<K, V>::restoreRightBalance(int oldBalance) {=0A=
if (!right) bal--;=0A=
else if ((right->bal =3D=3D oldBalance) && right->bal =3D=3D 0)=0A=
bal--;=0A=
=0A=
if (bal < -1) return balance();=0A=
=0A=
return this;=0A=
}=0A=
=0A=
=0A=
=0A=
template<class K, class V>=0A=
Node<K, V> *Node<K, V>::remove(Node *node) {=0A=
if (node =3D=3D this) {=0A=
=0A=
if (!right) return left;=0A=
=0A=
int oldBalance =3D right->bal;=0A=
Node * root;=0A=
right =3D right->removeLeftChild(root);=0A=
=0A=
root->left =3D left; if (left) left->parent =3D root;=0A=
root->right =3D right; if (right) right->parent =3D root;=0A=
root->bal =3D bal;=0A=
return root->restoreRightBalance(oldBalance);=0A=
} else if (node->pair.key < pair.key) {=0A=
if (!left) return this;=0A=
=0A=
int oldBalance =3D left->bal;=0A=
left =3D left->remove(node);=0A=
if (left) left->parent =3D this;=0A=
return restoreLeftBalance(oldBalance);=0A=
} else {=0A=
if (!right) return this;=0A=
int oldBalance =3D right->bal;=0A=
=0A=
right =3D right->remove(node);=0A=
if (right) right->parent =3D this;=0A=
return restoreRightBalance(oldBalance);=0A=
}=0A=
}=0A=
=0A=
=0A=
template<class K, class V>=0A=
Map<K, V> &Map<K,V>::Insert(Node *node) {=0A=
root =3D root ? root->add(node) : node;=0A=
if (root) root->parent =3D __null ;=0A=
count++;=0A=
return *this;=0A=
}=0A=
=0A=
=0A=
template<class K, class V>=0A=
Map<K, V> &Map<K,V>::Remove(const K &key) {=0A=
Node * node =3D GetElement(key);=0A=
if (!node) return *this;=0A=
root =3D root->remove(node);=0A=
if (root) root->parent =3D __null ;=0A=
count--;=0A=
if (cache =3D=3D node) cache =3D=3D __null ;=0A=
delete node;=0A=
return *this;=0A=
}=0A=
=0A=
=0A=
template<class K, class V>=0A=
V &Map<K, V>::operator[](const K &key) {=0A=
Node * node =3D GetElement(key);=0A=
if (node) return node->pair.data;=0A=
=0A=
node =3D new Node;=0A=
node->pair.key =3D key;=0A=
=0A=
Insert(node);=0A=
return node->pair.data;=0A=
}=0A=
=0A=
=0A=
template<class K, class V>=0A=
Map<K, V> &Map<K, V>::operator=3D(const Map<K, V> &m) {=0A=
=0A=
}=0A=
=0A=
=0A=
template<class K, class V>=0A=
Map<K, V> &Map<K, V>::Move(const K &from, const K &to) {=0A=
Node *node =3D GetElement(from);=0A=
if (!node) return *this;=0A=
root =3D root->remove(node);=0A=
if (root) root->parent =3D __null ;=0A=
node->pair.key =3D to;=0A=
root =3D root->add(node);=0A=
root->parent =3D __null ;=0A=
=0A=
return *this;=0A=
}=0A=
=0A=
=0A=
template<class K, class V>=0A=
Map<K, V> &Map<K, V>::Swap(const K &a, const K &b) {=0A=
Node *nodeA =3D GetElement(a);=0A=
Node *nodeB =3D GetElement(b);=0A=
=0A=
if (!nodeA && !nodeB) return *this;=0A=
=0A=
if (nodeA) {=0A=
root =3D root->remove(nodeA);=0A=
if (root) root->parent =3D __null ;=0A=
}=0A=
if (nodeB) {=0A=
root =3D root->remove(nodeB);=0A=
if (root) root->parent =3D __null ;=0A=
}=0A=
=0A=
if (nodeA) {=0A=
nodeA->pair.key =3D b;=0A=
root =3D root.add(nodeA);=0A=
root->parent =3D __null ;=0A=
}=0A=
if (nodeB) {=0A=
nodeB->pair.key =3D a;=0A=
root =3D root.add(nodeB);=0A=
root->parent =3D __null ;=0A=
}=0A=
return *this;=0A=
}=0A=
=0A=
=0A=
template<class K, class V>=0A=
const K Map<K, V>::Bottom(void) {=0A=
Node *node =3D root;=0A=
if (!node) return K();=0A=
while (node->left) node =3D node->left;=0A=
return node->pair.key;=0A=
}=0A=
=0A=
=0A=
template<class K, class V>=0A=
const K Map<K, V>::Top(void) {=0A=
Node *node =3D root;=0A=
if (!node) return K();=0A=
while (node->right) node =3D node->right;=0A=
return node->pair.key;=0A=
}=0A=
=0A=
=0A=
template<class K, class V>=0A=
int Map<K, V>::Count(void) {=0A=
return count;=0A=
}=0A=
=0A=
=0A=
=0A=
template<class K, class V>=0A=
Map<K, V>::Node *Map<K, V>::GetElement(const K &key) const {=0A=
if (cache && cache->pair.key =3D=3D key) return cache;=0A=
=0A=
Node * node =3D root;=0A=
while (node) {=0A=
if (node->pair.key =3D=3D key) {=0A=
cache =3D node;=0A=
return node;=0A=
}=0A=
if (key < node->pair.key) node =3D node->left;=0A=
else node =3D node->right;=0A=
}=0A=
=0A=
return __null ;=0A=
}=0A=
=0A=
=0A=
template<class K, class V>=0A=
bool Map<K, V>::Find(const K &key) const {=0A=
return (GetElement(key) !=3D __null );=0A=
}=0A=
=0A=
=0A=
template<class K, class V>=0A=
MapIterator<K, V>::MapIterator(void) : map(__null ), current(__null ) =
{=0A=
}=0A=
=0A=
=0A=
template<class K, class V>=0A=
MapIterator<K, V>::MapIterator(Map<K, V> &theMap) : map(__null ), =
current(__null ) {=0A=
this->Start(theMap);=0A=
}=0A=
=0A=
=0A=
template<class K, class V>=0A=
MapIterator<K, V>::~MapIterator(void) {=0A=
this->Finish();=0A=
}=0A=
=0A=
=0A=
template<class K, class V>=0A=
void MapIterator<K, V>::Start(Map<K, V> &theMap) {=0A=
if (map) Finish();=0A=
if (!(map =3D &theMap)) return;=0A=
=0A=
=0A=
Reset();=0A=
}=0A=
=0A=
=0A=
template<class K, class V>=0A=
void MapIterator<K, V>::Finish(void) {=0A=
if (!map) return;=0A=
=0A=
=0A=
current =3D __null ;=0A=
map =3D __null ;=0A=
}=0A=
=0A=
=0A=
template<class K, class V>=0A=
void MapIterator<K, V>::Restart(Map<K, V> &theMap) {=0A=
Finish();=0A=
Start(theList);=0A=
}=0A=
=0A=
=0A=
template<class K, class V>=0A=
void MapIterator<K, V>::Update(Node *node) {=0A=
=0A=
}=0A=
=0A=
=0A=
template<class K, class V>=0A=
V *MapIterator<K, V>::Peek(void) const {=0A=
if (!map) return __null ;=0A=
return (current ? ¤t->pair.data : __null );=0A=
}=0A=
=0A=
=0A=
template<class K, class V>=0A=
V *MapIterator<K, V>::Next(void) {=0A=
Node *node =3D current;=0A=
=0A=
if (!node) return __null ;=0A=
=0A=
if (current->right) {=0A=
current =3D current->right;=0A=
while (current->left) current =3D current->left;=0A=
} else {=0A=
Node *link =3D current->parent;=0A=
while (link && current =3D=3D link->right) {=0A=
current =3D link;=0A=
link =3D link->parent;=0A=
}=0A=
=0A=
current =3D link;=0A=
}=0A=
=0A=
return &node->pair.data;=0A=
}=0A=
=0A=
=0A=
template<class K, class V>=0A=
V *MapIterator<K, V>::Prev(void) {=0A=
=0A=
=0A=
return __null ;=0A=
}=0A=
=0A=
=0A=
template<class K, class V>=0A=
void MapIterator<K, V>::Reset(void) {=0A=
Node *node =3D map->root;=0A=
if (node) while (node->left) node =3D node->left;=0A=
current =3D node;=0A=
}=0A=
=0A=
=0A=
=0A=
# 20 "index.h" 2=0A=
=0A=
# 1 "stl.vector.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
template <class T> class Vector;=0A=
template <class T> class VectorIter;=0A=
=0A=
=0A=
template <class T>=0A=
class Vector {=0A=
public:=0A=
Vector(void);=0A=
Vector(const Vector<T> &v);=0A=
~Vector(void);=0A=
=0A=
void Append(const T & item);=0A=
void Prepend(const T & item);=0A=
void Add(const T & item);=0A=
void Insert(const T & item, int nIndex);=0A=
=0A=
=0A=
bool Remove(int item);=0A=
bool Remove(const T &item);=0A=
int Find(const T &item) const;=0A=
=0A=
T & Top(void) const;=0A=
T & Bottom(void) const;=0A=
int Count(void) const;=0A=
bool Contains(const T & item) const;=0A=
void Clear(void);=0A=
void Erase(void);=0A=
=0A=
void SetSize(int newCount);=0A=
=0A=
T & operator[](int nIndex) const;=0A=
=0A=
Vector<T> & operator=3D(const Vector<T> &v);=0A=
protected:=0A=
T * table;=0A=
int count, size;=0A=
=0A=
void Resize(int newSize);=0A=
};=0A=
=0A=
=0A=
template<class T>=0A=
Vector<T>::Vector(void) : table(new T[5]), count(0), size(5) {=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
Vector<T>::Vector(const Vector<T> &v) : table(new T[v.size]), =
count(v.count), size(v.size) {=0A=
=0A=
for (int element =3D 0; element < v.count; element++)=0A=
table[element] =3D v.table[element];=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
Vector<T>::~Vector(void) {=0A=
delete [] table;=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
void Vector<T>::Append(const T & item) {=0A=
if (count >=3D size) Resize(size + 5);=0A=
table[count++] =3D item;=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
void Vector<T>::Prepend(const T & item) {=0A=
if (count >=3D size) Resize(size + 5);=0A=
=0A=
for (int x =3D count++; x > 0; x--)=0A=
table[x] =3D table[x - 1];=0A=
table[0] =3D item;=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
void Vector<T>::Add(const T & item) {=0A=
this->Append(item);=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
void Vector<T>::Insert(const T & item, int nIndex) {=0A=
if (count >=3D size) Resize(size + 5);=0A=
=0A=
if (nIndex < 0) nIndex =3D 0;=0A=
if (nIndex > count) nIndex =3D count;=0A=
=0A=
for (int x =3D count++; x > nIndex; x--)=0A=
table[x] =3D table[x - 1];=0A=
table[nIndex] =3D item;=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
bool Vector<T>::Remove(int nIndex) {=0A=
if (nIndex < 0 || nIndex > count) return false;=0A=
=0A=
for (int i =3D nIndex; i < (count - 1); i++)=0A=
table[i] =3D table[i + 1];=0A=
=0A=
count--;=0A=
=0A=
if (count < (size - 5)) Resize(size - 5);=0A=
=0A=
return true;=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
bool Vector<T>::Remove(const T &what) {=0A=
int nIndex;=0A=
=0A=
for (nIndex =3D 0; nIndex < count; nIndex++) {=0A=
if (table[nIndex] =3D=3D what)=0A=
break;=0A=
}=0A=
=0A=
if (!count || nIndex >=3D count) return false;=0A=
=0A=
for (; nIndex < (count - 1); nIndex++)=0A=
table[nIndex] =3D table[nIndex + 1];=0A=
=0A=
count--;=0A=
=0A=
if (count < (size - 5)) Resize(size - 5);=0A=
=0A=
return true;=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
int Vector<T>::Find(const T &t) const {=0A=
for (int i =3D 0; i < count; i++)=0A=
if (table[i] =3D=3D t)=0A=
return i;=0A=
=0A=
return -1;=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
T &Vector<T>::Top(void) const {=0A=
return table[count - 1];=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
T &Vector<T>::Bottom(void) const {=0A=
return table[0];=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
int Vector<T>::Count(void) const {=0A=
return count;=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
bool Vector<T>::Contains(const T & item) const {=0A=
for (int i =3D 0; i < count; i++)=0A=
if (table[i] =3D=3D item)=0A=
return true;=0A=
return false;=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
void Vector<T>::Clear(void) {=0A=
delete [] table;=0A=
table =3D new T[5];=0A=
size =3D 5;=0A=
count =3D 0;=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
void Vector<T>::Erase(void) {=0A=
table =3D new T[5];=0A=
size =3D 5;=0A=
count =3D 0;=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
T &Vector<T>::operator[](int nIndex) const {=0A=
if (nIndex >=3D count) nIndex =3D count - 1;=0A=
if (nIndex < 0) nIndex =3D 0;=0A=
=0A=
return table[nIndex];=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
void Vector<T>::SetSize(int newCount) {=0A=
if (count =3D=3D newCount || newCount =3D=3D 0) return;=0A=
=0A=
int newSize =3D newCount;=0A=
while (newSize % 5) newSize++;=0A=
Resize(newSize);=0A=
=0A=
count =3D newCount;=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
void Vector<T>::Resize(int newSize) {=0A=
if (size =3D=3D newSize || newSize =3D=3D 0) return;=0A=
=0A=
T * newTable =3D new T[newSize];=0A=
int top =3D newSize > size ? size : newSize;=0A=
=0A=
for (int i =3D 0; i < top; i++)=0A=
newTable[i] =3D table[i];=0A=
=0A=
delete [] table;=0A=
table =3D newTable;=0A=
size =3D newSize;=0A=
=0A=
if (count > size) count =3D size;=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
Vector<T> &Vector<T>::operator=3D(const Vector<T> &v) {=0A=
count =3D v.count;=0A=
size =3D v.size;=0A=
=0A=
delete [] table;=0A=
table =3D new T[v.size];=0A=
=0A=
for (int element =3D 0; element < count; element++)=0A=
table[element] =3D v.table[element];=0A=
=0A=
return *this;=0A=
}=0A=
=0A=
=0A=
=0A=
# 21 "index.h" 2=0A=
=0A=
# 1 "stl.llist.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
template <class T> class LListNode;=0A=
template <class T> class LList;=0A=
template <class T> class LListIterator;=0A=
=0A=
=0A=
template <class T>=0A=
class LListNode {=0A=
public:=0A=
friend class LList<T>;=0A=
friend class LListIterator<T>;=0A=
=0A=
LListNode(void);=0A=
LListNode(T item);=0A=
LListNode(LListNode<T> &node);=0A=
~LListNode(void);=0A=
protected:=0A=
T data;=0A=
LListNode<T> *next, *prev;=0A=
};=0A=
=0A=
=0A=
template<class T>=0A=
LListNode<T>::LListNode(void) : data(__null ), next(__null ), =
prev(__null ) { }=0A=
=0A=
=0A=
template<class T>=0A=
LListNode<T>::LListNode(LListNode<T> &node) : data(node.data), =
next(__null ), prev(__null ) { }=0A=
=0A=
=0A=
template<class T>=0A=
LListNode<T>::LListNode(T item) : data(item), next(__null ), =
prev(__null ) { }=0A=
=0A=
=0A=
template<class T>=0A=
LListNode<T>::~LListNode(void) { }=0A=
=0A=
=0A=
template <class T>=0A=
class LList {=0A=
public:=0A=
friend class LListIterator<T>;=0A=
=0A=
LList(void);=0A=
=0A=
LList(const LList<T> &theList);=0A=
~LList(void);=0A=
=0A=
void Append(T item);=0A=
void Prepend(T item);=0A=
void Add(T item);=0A=
void InsertAfter(T item, T after);=0A=
void InsertBefore(T item, T before);=0A=
bool Remove(T item);=0A=
void UpdateIters(void);=0A=
T Top(void) const;=0A=
T Bottom(void) const;=0A=
int Count(void) const;=0A=
bool Contains(T item) const;=0A=
void Clear(void);=0A=
void Erase(void);=0A=
=0A=
LList<T> & operator=3D(const LList<T> &l);=0A=
protected:=0A=
LListNode<T> * head;=0A=
LListNode<T> * tail;=0A=
mutable LListIterator<T> * iters;=0A=
int count;=0A=
};=0A=
=0A=
=0A=
template <class T>=0A=
LList<T>::LList(void) : head(__null ), tail(__null ), iters(__null ), =
count(0) {=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
template <class T>=0A=
LList<T>::LList(const LList<T> &theList) : head(__null ), tail(__null =
), iters(__null ), count(0) {=0A=
=0A=
=0A=
for (LListNode<T> *node =3D theList.head; node; node =3D =
node->next)=0A=
Append(node->data);=0A=
}=0A=
=0A=
=0A=
template <class T>=0A=
LList<T>::~LList(void) {=0A=
Clear();=0A=
}=0A=
=0A=
=0A=
template <class T>=0A=
void LList<T>::Append(T item) { =0A=
LListNode<T> * node =3D new LListNode<T>(item);=0A=
=0A=
node->next =3D __null ;=0A=
node->prev =3D tail;=0A=
=0A=
if (head =3D=3D __null ) head =3D node;=0A=
if (tail) tail->next =3D node;=0A=
tail =3D node;=0A=
=0A=
count++;=0A=
}=0A=
=0A=
=0A=
template <class T>=0A=
void LList<T>::Prepend(T item) { =0A=
LListNode<T> * node =3D new LListNode<T>(item);=0A=
=0A=
node->prev =3D __null ;=0A=
node->next =3D head;=0A=
=0A=
if (head) head->prev =3D node;=0A=
head =3D node;=0A=
if (!tail) tail =3D node;=0A=
=0A=
count++;=0A=
}=0A=
=0A=
=0A=
template <class T>=0A=
void LList<T>::Add(T item) { =0A=
Prepend(item);=0A=
}=0A=
=0A=
=0A=
template <class T>=0A=
void LList<T>::InsertAfter(T item, T after) {=0A=
LListNode<T> * element;=0A=
LListNode<T> * node =3D new LListNode<T>(item);=0A=
=0A=
for (element =3D head; element; element =3D element->next)=0A=
if (element->data =3D=3D after)=0A=
break;=0A=
=0A=
if (!element) {=0A=
node->next =3D head;=0A=
=0A=
if (tail =3D=3D __null ) tail =3D node;=0A=
if (head) head->prev =3D node;=0A=
head =3D node;=0A=
} else {=0A=
node->prev =3D element;=0A=
if (element) {=0A=
node->next =3D element->next;=0A=
if (element->next) element->next->prev =3D node;=0A=
element->next =3D node;=0A=
}=0A=
=0A=
if (tail =3D=3D element) tail =3D node;=0A=
if (head =3D=3D __null ) head =3D node;=0A=
}=0A=
=0A=
count++;=0A=
}=0A=
=0A=
=0A=
template <class T>=0A=
void LList<T>::InsertBefore(T item, T before) {=0A=
LListNode<T> * element;=0A=
LListNode<T> * node =3D new LListNode<T>(item);=0A=
=0A=
for (element =3D head; element; element =3D element->next)=0A=
if (element->data =3D=3D before)=0A=
break;=0A=
=0A=
if (!element) {=0A=
node->prev =3D tail;=0A=
=0A=
if (head =3D=3D __null ) head =3D node;=0A=
if (tail) tail->next =3D node;=0A=
tail =3D node;=0A=
} else {=0A=
node->next =3D element;=0A=
if (element) {=0A=
node->prev =3D element->prev;=0A=
if (element->prev) element->prev->next =3D node;=0A=
element->prev =3D node;=0A=
}=0A=
=0A=
if (head =3D=3D element) head =3D node;=0A=
if (tail =3D=3D __null ) tail =3D node;=0A=
}=0A=
=0A=
count++;=0A=
}=0A=
=0A=
=0A=
template <class T>=0A=
bool LList<T>::Remove(T item) {=0A=
LListIterator<T> * iter;=0A=
LListNode<T> * element;=0A=
=0A=
if (!head)=0A=
return false;=0A=
=0A=
=0A=
for (element =3D head; element; element =3D element->next)=0A=
if (element->data =3D=3D item)=0A=
break;=0A=
=0A=
if (!element) return false;=0A=
=0A=
if (element->prev) element->prev->next =3D element->next;=0A=
else head =3D element->next;=0A=
=0A=
if (element->next) element->next->prev =3D element->prev;=0A=
else tail =3D element->prev;=0A=
=0A=
for (iter =3D iters; iter; iter =3D iter->next)=0A=
iter->Update(element);=0A=
=0A=
delete element;=0A=
count--;=0A=
=0A=
return true;=0A=
}=0A=
=0A=
=0A=
template <class T>=0A=
void LList<T>::UpdateIters(void) {=0A=
LListIterator<T> *iter;=0A=
for (iter =3D iters; iter; iter =3D iter->next)=0A=
iter->list =3D this;=0A=
}=0A=
=0A=
=0A=
template <class T>=0A=
T LList<T>::Top(void) const {=0A=
return head ? head->data : __null ;=0A=
}=0A=
=0A=
=0A=
template <class T>=0A=
T LList<T>::Bottom(void) const {=0A=
return tail ? tail->data : __null ;=0A=
}=0A=
=0A=
=0A=
template <class T>=0A=
int LList<T>::Count(void) const {=0A=
return count;=0A=
}=0A=
=0A=
=0A=
template <class T>=0A=
bool LList<T>::Contains(T item) const {=0A=
LListNode<T> * element;=0A=
=0A=
for (element =3D head; element; element =3D element->next) {=0A=
if (element->data =3D=3D item)=0A=
return true;=0A=
}=0A=
return false;=0A=
}=0A=
=0A=
=0A=
template <class T>=0A=
void LList<T>::Clear(void) {=0A=
LListNode<T> * element;=0A=
while(head) {=0A=
element =3D head;=0A=
head =3D head->next;=0A=
delete element;=0A=
}=0A=
}=0A=
=0A=
=0A=
template <class T>=0A=
void LList<T>::Erase(void) {=0A=
head =3D tail =3D __null ;=0A=
iters =3D __null ;=0A=
count =3D 0;=0A=
}=0A=
=0A=
=0A=
template <class T>=0A=
LList<T> &LList<T>::operator=3D(const LList<T> &theList) {=0A=
Clear();=0A=
=0A=
for (LListNode<T> *node =3D theList.head; node; node =3D =
node->next)=0A=
Append(node->data);=0A=
=0A=
return *this;=0A=
}=0A=
=0A=
=0A=
template <class T>=0A=
class LListIterator {=0A=
public:=0A=
friend class LList<T>;=0A=
LListIterator(void);=0A=
LListIterator(const LList<T> &theList);=0A=
~LListIterator(void);=0A=
void Start(const LList<T> &theList);=0A=
void Finish(void);=0A=
void Restart(const LList<T> &theList);=0A=
void Update(LListNode<T> *element);=0A=
=0A=
T Peek(T def =3D 0);=0A=
T Prev(T def =3D 0);=0A=
T Next(T def =3D 0);=0A=
void Reset(void);=0A=
=0A=
protected:=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
const LList<T> * list;=0A=
LListNode<T> * current;=0A=
LListIterator<T> * next;=0A=
};=0A=
=0A=
=0A=
template<class T>=0A=
LListIterator<T>::LListIterator(void) : list(__null ), current(__null =
), next(__null ) {=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
LListIterator<T>::LListIterator(const LList<T> &theList) : list(__null =
), current(__null ), next(__null ) {=0A=
Start(theList);=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
LListIterator<T>::~LListIterator(void) {=0A=
Finish();=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
void LListIterator<T>::Start(const LList<T> &theList) {=0A=
if (list) Finish();=0A=
if (!(list =3D (&theList)))=0A=
return;=0A=
next =3D list->iters;=0A=
list->iters =3D this;=0A=
Reset();=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
void LListIterator<T>::Finish(void) {=0A=
if (!list) return;=0A=
list->iters =3D next;=0A=
current =3D __null ;=0A=
next =3D __null ;=0A=
list =3D __null ;=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
void LListIterator<T>::Restart(const LList<T> &theList) {=0A=
Finish();=0A=
Start(theList);=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
void LListIterator<T>::Update(LListNode<T> *element) {=0A=
if (current =3D=3D element)=0A=
current =3D current->prev;=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
T LListIterator<T>::Peek(T def) {=0A=
return (current && current->next ? current->next->data : def);=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
T LListIterator<T>::Next(T def) {=0A=
if (!list) return def;=0A=
if (!current) return def;=0A=
T *data =3D ¤t->data;=0A=
current =3D current->next;=0A=
return *data;=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
T LListIterator<T>::Prev(T def) {=0A=
if (!list) return def;=0A=
current =3D current ? current->prev : list->tail;=0A=
return current ? current->data : def;=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
void LListIterator<T>::Reset(void) {=0A=
current =3D list ? list->head : __null ;=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 22 "index.h" 2=0A=
=0A=
=0A=
class TrigVarData;=0A=
class Character;=0A=
=0A=
template <class T>=0A=
class IndexData {=0A=
public:=0A=
IndexData(void);=0A=
IndexData(const IndexData<T> &i);=0A=
~IndexData(void);=0A=
=0A=
IndexData<T> & operator=3D(const IndexData<T> &i);=0A=
=0A=
VNum vnum; =0A=
UInt32 number; =0A=
Vector<VNum> triggers; =0A=
LList<TrigVarData *> variables; =0A=
T * proto;=0A=
int ( *func )(Character *ch, Ptr me, const char * cmd, char =
*argument) ; =0A=
};=0A=
=0A=
=0A=
template <class T>=0A=
IndexData<T>::IndexData(void) : vnum(-1), number(0), proto(__null ), =
func(__null ) {=0A=
}=0A=
=0A=
=0A=
template <class T>=0A=
IndexData<T>::IndexData(const IndexData<T> &i) : vnum(i.vnum), =
number(i.number), triggers(i.triggers),=0A=
variables(i.variables), proto(i.proto), func(i.func) {=0A=
}=0A=
=0A=
=0A=
template <class T>=0A=
IndexData<T>::~IndexData(void) {=0A=
}=0A=
=0A=
=0A=
template<class T>=0A=
IndexData<T> &IndexData<T>::operator=3D(const IndexData<T> &i) {=0A=
vnum =3D i.vnum;=0A=
number =3D i.number;=0A=
triggers =3D i.triggers;=0A=
proto =3D i.proto;=0A=
func =3D i.func;=0A=
progtypes =3D i.progtypes;=0A=
mobprogs =3D i.mobprogs;=0A=
=0A=
return *this;=0A=
}=0A=
=0A=
=0A=
template <class T>=0A=
class Index : public Map<VNum, IndexData<T> > { };=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 24 "characters.h" 2=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
class Descriptor;=0A=
class Opinion;=0A=
class Affect;=0A=
class Event;=0A=
class Alias;=0A=
class Path;=0A=
=0A=
=0A=
=0A=
struct time_data {=0A=
time_t birth; =0A=
time_t logon; =0A=
UInt32 played; =0A=
};=0A=
=0A=
=0A=
struct title_type {=0A=
char * title_m;=0A=
char * title_f;=0A=
};=0A=
=0A=
=0A=
struct MiscData {=0A=
MiscData(void) : watching(0), carry_weight(0), carry_items(0), =
clannum(-1) { }=0A=
MiscData(const MiscData &data) : watching(0), carry_weight(0), =
carry_items(0),=0A=
clannum(data.clannum) { }=0A=
SInt32 watching;=0A=
=0A=
SInt32 carry_weight;=0A=
UInt8 carry_items;=0A=
VNum clannum;=0A=
};=0A=
=0A=
=0A=
struct GeneralData {=0A=
GeneralData(void) : name(__null ), shortDesc(__null ), =
longDesc(__null ),=0A=
description(__null ), title(__null ), sex(Neutral),=0A=
race(RACE_UNDEFINED), level(0), position(POS_STANDING),=0A=
weight(0), height(0), act(0), affected_by(0), fighting(__null ) { =
}=0A=
GeneralData(const GeneralData &data) : name( data.name ->Share() =
),=0A=
description( data.description ->Share() ), title( data.title =
->Share() ),=0A=
sex(data.sex), race(data.race), level(data.level),=0A=
position(data.position), weight(data.weight), =
height(data.height),=0A=
act(data.act), affected_by(data.affected_by), fighting(__null ), =
misc(data.misc) {=0A=
this->conditions[0] =3D data.conditions[0];=0A=
this->conditions[1] =3D data.conditions[1];=0A=
this->conditions[2] =3D data.conditions[2];=0A=
}=0A=
SString * name;=0A=
SString * shortDesc;=0A=
SString * longDesc;=0A=
SString * description;=0A=
SString * title;=0A=
=0A=
Sex sex;=0A=
Race race;=0A=
SInt8 level;=0A=
=0A=
Position position;=0A=
=0A=
UInt16 weight;=0A=
UInt16 height;=0A=
=0A=
Flags act;=0A=
Flags affected_by;=0A=
=0A=
SInt8 conditions[3];=0A=
=0A=
Character * fighting;=0A=
=0A=
MiscData misc; =0A=
};=0A=
=0A=
=0A=
struct PlayerSpecialData {=0A=
SInt8 skills[MAX_SKILLS+1];=0A=
UInt32 wimp_level;=0A=
VNum load_room;=0A=
Flags preferences;=0A=
Flags channels;=0A=
Flags staff_flags;=0A=
UInt8 bad_pws;=0A=
=0A=
SInt8 clanrank;=0A=
=0A=
UInt32 pracs;=0A=
=0A=
UInt32 PKills, MKills;=0A=
UInt32 PDeaths, MDeaths;=0A=
float killScore;=0A=
=0A=
struct {=0A=
char * listen;=0A=
char * rreply;=0A=
char * rreply_name;=0A=
Flags deaf; =0A=
Flags allow; =0A=
Flags deny; =0A=
} imc;=0A=
};=0A=
=0A=
=0A=
class PlayerData {=0A=
public:=0A=
PlayerData(void);=0A=
~PlayerData(void);=0A=
=0A=
struct PlayerSpecialData special;=0A=
char passwd[MAX_PWD_LENGTH+1];=0A=
char * afk;=0A=
char * prompt;=0A=
char * host;=0A=
char * email;=0A=
char * poofin;=0A=
char * poofout;=0A=
LList<Alias *> aliases;=0A=
time_data time;=0A=
=0A=
SInt32 last_tell;=0A=
=0A=
SInt32 idnum;=0A=
SInt32 timer;=0A=
};=0A=
=0A=
=0A=
class MobData {=0A=
public:=0A=
MobData(void);=0A=
MobData(const MobData &mob);=0A=
~MobData(void);=0A=
=0A=
UInt32 attack_type;=0A=
Position default_pos;=0A=
UInt8 last_direction;=0A=
UInt8 tick;=0A=
UInt8 dodge;=0A=
struct Dice damage;=0A=
struct Dice hitdice;=0A=
=0A=
Opinion * hates;=0A=
Opinion * fears;=0A=
=0A=
};=0A=
=0A=
=0A=
=0A=
struct Abilities {=0A=
Abilities(void) : Co(0), Ag(0), SD(0), Me(0), Re(0), St(0), Qu(0), =
Pr(0), In(0), Em(0) { }=0A=
Abilities(const Abilities &a) { *this =3D a; };=0A=
UInt8 Co, Ag, SD, Me, Re;=0A=
UInt8 St, Qu, Pr, In, Em;=0A=
};=0A=
=0A=
=0A=
struct Points {=0A=
Points(void) : hit(0), max_hit(0), move(0), max_move(0), =
mana(0),=0A=
max_mana(0), mp(0), armor(0), offense(0), defense(0) { }=0A=
Points(const Points &p) : hit(p.hit), max_hit(p.max_hit), =
move(p.move),=0A=
max_move(p.max_move), mana(p.mana), max_mana(p.max_mana), =
mp(p.mp),=0A=
armor(p.armor), offense(p.offense), defense(p.defense) { }=0A=
SInt16 hit, max_hit;=0A=
SInt16 move, max_move;=0A=
SInt16 mana, max_mana;=0A=
=0A=
SInt32 mp;=0A=
=0A=
SInt8 armor; =0A=
SInt16 offense; =0A=
SInt16 defense; =0A=
};=0A=
=0A=
=0A=
class Character : public MUDObject {=0A=
public:=0A=
friend void close_socket(Descriptor *d);=0A=
Character(void);=0A=
Character(const Character &ch);=0A=
virtual ~Character(void);=0A=
=0A=
=0A=
virtual const char *Name(void) const;=0A=
const char * RealName(void) const;=0A=
=0A=
SInt32 CalcLevel(void);=0A=
=0A=
=0A=
void ToWorld(void);=0A=
void FromWorld(void);=0A=
=0A=
void Save(VNum load_room =3D NOWHERE);=0A=
SInt32 Load(char *name);=0A=
=0A=
void Initialize(void);=0A=
void Reset(void);=0A=
=0A=
=0A=
=0A=
void set_title(char *title =3D __null );=0A=
void set_level(UInt8 level);=0A=
=0A=
=0A=
virtual void Extract(void);=0A=
void EventCleanup(void);=0A=
=0A=
virtual void FromRoom(void);=0A=
virtual void ToRoom(VNum room);=0A=
=0A=
void update_pos(void);=0A=
void update_objects(void);=0A=
void AffectTotal(void);=0A=
=0A=
void Appear(void);=0A=
=0A=
void die_follower(void);=0A=
void stop_follower(void);=0A=
=0A=
void Fight(Character *vict);=0A=
void StopFighting(void);=0A=
void Die(Character *killer);=0A=
SInt32 Hit(Character *victim, SInt32 type, SInt32 times, SInt32 =
range =3D 0);=0A=
SInt32 Damage(Character *attacker, SInt32 damage, SInt32 type, =
SInt32 times);=0A=
SInt32 Critical(Character *attacker, char critical, SInt32 =
type);=0A=
=0A=
void LoseBodypart(SInt32 part);=0A=
=0A=
Relation::Relation GetRelation(const Character *target) const;=0A=
VNum StartRoom(void);=0A=
=0A=
=0A=
bool LightOk(void) const;=0A=
bool InvisOk(const Character *target) const;=0A=
bool CanSeeStaff(const Character *target) const;=0A=
bool CanSee(const Character *target) const;=0A=
bool CanSee(const Object *target) const;=0A=
=0A=
bool CanUse(const Object *obj) const;=0A=
=0A=
SInt32 Send(const char *messg, ...) __attribute__ ((format (printf, =
2, 3)));=0A=
=0A=
SInt32 pfilepos; =0A=
=0A=
VNum was_in_room; =0A=
int wait;=0A=
=0A=
GeneralData general; =0A=
Abilities real_abils; =0A=
Abilities aff_abils; =0A=
Points points; =0A=
PlayerData * player; =0A=
MobData * mob; =0A=
=0A=
Flags parts, =0A=
realParts; =0A=
=0A=
LList<Affect *> affected; =0A=
=0A=
mutable LList<Object *> carrying; =0A=
Object * equipment[NUM_WEARS]; =0A=
=0A=
Descriptor * desc; =0A=
=0A=
LList<Character *> followers; =0A=
Character * master; =0A=
=0A=
LList<Event *> events;=0A=
Event * points_event[3];=0A=
=0A=
Path * path;=0A=
=0A=
Object * sitting_on;=0A=
=0A=
public:=0A=
static Character * Read(VNum nr);=0A=
static bool Find(VNum vnum);=0A=
=0A=
=0A=
static Index<Character> Index;=0A=
=0A=
void Parser(char *input);=0A=
=0A=
public:=0A=
virtual Character * TargetChar(const char *arg) const;=0A=
virtual Object * TargetObj(const char *arg) const;=0A=
virtual VNum TargetRoom(const char *arg) const;=0A=
};=0A=
=0A=
=0A=
extern LList<Character *> Characters;=0A=
extern LList<Character *> PurgedChars;=0A=
extern LList<Character *> CombatList;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
struct PlayerIndex {=0A=
PlayerIndex(void) : name(__null ), id(0) { }=0A=
char * name;=0A=
UInt32 id;=0A=
};=0A=
=0A=
extern Vector<PlayerIndex> player_table;=0A=
=0A=
extern const struct title_type titles[5 ][12];=0A=
extern const int thaco[5 +1][2];=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
inline bool Character::Find(VNum vnum) { return Index.Map::Find(vnum); =
}=0A=
=0A=
=0A=
# 21 "structs.h" 2=0A=
=0A=
# 1 "descriptors.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/netinet/in.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/cygwin/in.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/cygwin/types.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern "C"=0A=
{=0A=
=0A=
=0A=
# 59 "/usr/include/cygwin/types.h" 3=0A=
=0A=
=0A=
=0A=
}=0A=
=0A=
# 21 "/usr/include/cygwin/in.h" 2 3=0A=
=0A=
=0A=
=0A=
enum {=0A=
IPPROTO_IP =3D 0, =0A=
IPPROTO_ICMP =3D 1, =0A=
IPPROTO_IGMP =3D 2, =0A=
IPPROTO_IPIP =3D 4, =0A=
IPPROTO_TCP =3D 6, =0A=
IPPROTO_EGP =3D 8, =0A=
IPPROTO_PUP =3D 12, =0A=
IPPROTO_UDP =3D 17, =0A=
IPPROTO_IDP =3D 22, =0A=
=0A=
IPPROTO_RAW =3D 255, =0A=
IPPROTO_MAX=0A=
};=0A=
=0A=
=0A=
enum=0A=
{=0A=
IPPORT_ECHO =3D 7, =0A=
IPPORT_DISCARD =3D 9, =0A=
IPPORT_SYSTAT =3D 11, =0A=
IPPORT_DAYTIME =3D 13, =0A=
IPPORT_NETSTAT =3D 15, =0A=
IPPORT_FTP =3D 21, =0A=
IPPORT_TELNET =3D 23, =0A=
IPPORT_SMTP =3D 25, =0A=
IPPORT_TIMESERVER =3D 37, =0A=
IPPORT_NAMESERVER =3D 42, =0A=
IPPORT_WHOIS =3D 43, =0A=
IPPORT_MTP =3D 57,=0A=
=0A=
IPPORT_TFTP =3D 69, =0A=
IPPORT_RJE =3D 77,=0A=
IPPORT_FINGER =3D 79, =0A=
IPPORT_TTYLINK =3D 87,=0A=
IPPORT_SUPDUP =3D 95, =0A=
=0A=
=0A=
IPPORT_EXECSERVER =3D 512, =0A=
IPPORT_LOGINSERVER =3D 513, =0A=
IPPORT_CMDSERVER =3D 514,=0A=
IPPORT_EFSSERVER =3D 520,=0A=
=0A=
=0A=
IPPORT_BIFFUDP =3D 512,=0A=
IPPORT_WHOSERVER =3D 513,=0A=
IPPORT_ROUTESERVER =3D 520,=0A=
=0A=
=0A=
IPPORT_RESERVED =3D 1024,=0A=
=0A=
=0A=
IPPORT_USERRESERVED =3D 5000=0A=
};=0A=
=0A=
=0A=
=0A=
struct in_addr {=0A=
unsigned int s_addr;=0A=
};=0A=
=0A=
=0A=
=0A=
struct ip_mreq=0A=
{=0A=
struct in_addr imr_multiaddr; =0A=
struct in_addr imr_interface; =0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
struct sockaddr_in {=0A=
short int sin_family; =0A=
unsigned short int sin_port; =0A=
struct in_addr sin_addr; =0A=
=0A=
=0A=
unsigned char __pad[16 - sizeof(short int) -=0A=
sizeof(unsigned short int) - sizeof(struct in_addr)];=0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/asm/byteorder.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern "C" {=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern unsigned long int ntohl(unsigned long int);=0A=
extern unsigned short int ntohs(unsigned short int);=0A=
extern unsigned long int htonl(unsigned long int);=0A=
extern unsigned short int htons(unsigned short int);=0A=
=0A=
extern __inline__ unsigned long int __ntohl(unsigned long int);=0A=
extern __inline__ unsigned short int __ntohs(unsigned short int);=0A=
extern __inline__ unsigned long int __constant_ntohl(unsigned long =
int);=0A=
extern __inline__ unsigned short int __constant_ntohs(unsigned short =
int);=0A=
=0A=
extern __inline__ unsigned long int=0A=
__ntohl(unsigned long int x)=0A=
{=0A=
__asm__("xchgb %b0,%h0\n\t" =0A=
"rorl $16,%0\n\t" =0A=
"xchgb %b0,%h0" =0A=
:"=3Dq" (x)=0A=
: "0" (x));=0A=
return x;=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern __inline__ unsigned short int=0A=
__ntohs(unsigned short int x)=0A=
{=0A=
__asm__("xchgb %b0,%h0" =0A=
: "=3Dq" (x)=0A=
: "0" (x));=0A=
return x;=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 96 "/usr/include/asm/byteorder.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
}=0A=
=0A=
=0A=
=0A=
# 160 "/usr/include/cygwin/in.h" 2 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
struct in6_addr=0A=
{=0A=
unsigned char s6_addr[16];=0A=
};=0A=
=0A=
struct sockaddr_in6=0A=
{=0A=
unsigned short sin6_family;=0A=
unsigned short sin6_port;=0A=
unsigned long sin6_flowinfo;=0A=
struct in6_addr sin6_addr;=0A=
};=0A=
=0A=
=0A=
# 14 "/usr/include/netinet/in.h" 2 3=0A=
=0A=
=0A=
=0A=
# 19 "descriptors.h" 2=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
class Editor;=0A=
class Character;=0A=
=0A=
=0A=
=0A=
=0A=
enum State {=0A=
CON_PLAYING, =0A=
CON_CLOSE, =0A=
CON_GET_NAME, =0A=
CON_NAME_CNFRM, =0A=
CON_PASSWORD, =0A=
CON_NEWPASSWD, =0A=
CON_CNFPASSWD, =0A=
CON_QSEX, =0A=
CON_QRACE, =0A=
CON_RMOTD, =0A=
CON_MENU, =0A=
CON_EXDESC, =0A=
CON_CHPWD_GETOLD, =0A=
CON_CHPWD_GETNEW, =0A=
CON_CHPWD_VRFY, =0A=
CON_DELCNF1, =0A=
CON_DELCNF2, =0A=
CON_OEDIT, =0A=
CON_REDIT, =0A=
CON_ZEDIT, =0A=
CON_MEDIT, =0A=
CON_SEDIT, =0A=
CON_AEDIT, =0A=
CON_HEDIT, =0A=
CON_CEDIT, =0A=
=0A=
CON_TEXTED, =0A=
CON_SCRIPTEDIT, =0A=
CON_DISCONNECT, =0A=
CON_IDENT, =0A=
CON_GETEMAIL=0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
struct txt_block {=0A=
char * text;=0A=
int aliased;=0A=
struct txt_block *next;=0A=
};=0A=
=0A=
=0A=
struct txt_q {=0A=
struct txt_block *head;=0A=
struct txt_block *tail;=0A=
};=0A=
=0A=
class Descriptor {=0A=
public:=0A=
Descriptor(UInt32 desc);=0A=
~Descriptor(void);=0A=
=0A=
Character * Original(void);=0A=
=0A=
SInt32 Write(const char *fmt, ...) __attribute__ ((format (printf, =
2, 3)));=0A=
=0A=
=0A=
public:=0A=
int descriptor; =0A=
char host[HOST_LENGTH+1]; =0A=
UInt8 bad_pws; =0A=
UInt8 idle_tics; =0A=
State connected; =0A=
=0A=
SInt32 desc_num; =0A=
time_t login_time; =0A=
=0A=
=0A=
char * showstr_head; =0A=
char ** showstr_vector; =0A=
UInt8 showstr_count; =0A=
UInt8 showstr_page; =0A=
=0A=
=0A=
char ** str; =0A=
char * backstr; =0A=
size_t max_str; =0A=
SInt32 mail_to; =0A=
char * imc_mail_to; =0A=
=0A=
bool has_prompt; =0A=
=0A=
=0A=
char inbuf[MAX_RAW_INPUT_LENGTH]; =0A=
char last_input[MAX_INPUT_LENGTH]; =0A=
char small_outbuf[SMALL_BUFSIZE]; =0A=
char ** history; =0A=
int history_pos; =0A=
char * output; =0A=
SInt32 bufptr; =0A=
SInt32 bufspace; =0A=
=0A=
struct txt_block * large_outbuf; =0A=
=0A=
=0A=
=0A=
struct txt_q input; =0A=
=0A=
=0A=
Character * character; =0A=
Character * original; =0A=
Descriptor * snooping; =0A=
Descriptor * snoop_by; =0A=
=0A=
=0A=
Editor * editor;=0A=
char * textstorage;=0A=
=0A=
struct sockaddr_in saddr;=0A=
char host_ip[HOST_LENGTH + 1];=0A=
char host_name[HOST_LENGTH + 1];=0A=
char user_name[HOST_LENGTH + 1];=0A=
};=0A=
=0A=
inline Character * Descriptor::Original(void) {=0A=
return this->original ? this->original : this->character;=0A=
}=0A=
=0A=
extern LList<Descriptor *> descriptor_list;=0A=
=0A=
=0A=
# 22 "structs.h" 2=0A=
=0A=
# 1 "objects.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "object.defs.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
enum {=0A=
ITEM_GLOW =3D (1 << 0), =0A=
ITEM_HUM =3D (1 << 1), =0A=
ITEM_NORENT =3D (1 << 2), =0A=
ITEM_NODONATE =3D (1 << 3), =0A=
ITEM_NOINVIS =3D (1 << 4), =0A=
ITEM_INVISIBLE =3D (1 << 5), =0A=
ITEM_NODROP =3D (1 << 6), =0A=
ITEM_ANTI_HUMAN =3D (1 << 7), =0A=
ITEM_ANTI_SYNTHETIC =3D (1 << 8), =0A=
ITEM_ANTI_PREDATOR =3D (1 << 9), =0A=
ITEM_ALIEN =3D (1 << 10), =0A=
ITEM_NOSELL =3D (1 << 11), =0A=
ITEM_NOLOSE =3D (1 << 12), =0A=
ITEM_MOVEABLE =3D (1 << 13), =0A=
ITEM_MISSION =3D (1 << 14), =0A=
ITEM_TWO_HAND =3D (1 << 15),=0A=
=0A=
ITEM_APPROVED =3D (1 << 30), =0A=
ITEM_DELETED =3D (1 << 31) =0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 19 "objects.h" 2=0A=
=0A=
# 1 "affects.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "event.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "queue.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
class QueueElement {=0A=
public:=0A=
QueueElement(Ptr data, SInt32 key);=0A=
=0A=
Ptr data;=0A=
SInt32 key;=0A=
QueueElement *prev, *next;=0A=
};=0A=
=0A=
class Queue {=0A=
public:=0A=
Queue(void);=0A=
~Queue(void);=0A=
=0A=
QueueElement * Enqueue(Ptr data, SInt32 key);=0A=
void Dequeue(QueueElement *qe);=0A=
Ptr QueueHead(void);=0A=
SInt32 QueueKey(void);=0A=
=0A=
QueueElement *head[10 ],=0A=
*tail[10 ];=0A=
};=0A=
=0A=
=0A=
# 22 "event.h" 2=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
class EventData {=0A=
public:=0A=
EventData(void) { };=0A=
virtual ~EventData(void) { };=0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
class Event {=0A=
public:=0A=
Event(SInt32 ( *func )(EventData * event_obj, Event *event) , =
EventData * event_obj, UInt32 when, Event **masterPtr);=0A=
~Event(void);=0A=
SInt32 Run(void);=0A=
void Cancel(void);=0A=
UInt32 Time(void) const;=0A=
=0A=
protected:=0A=
SInt32 ( *func )(EventData * event_obj, Event *event) ;=0A=
EventData * object;=0A=
QueueElement * queue;=0A=
=0A=
=0A=
bool running;=0A=
=0A=
public:=0A=
static void Initialize(void);=0A=
static void Shutdown(void);=0A=
static void Process(void);=0A=
static Event * Find(LList<Event *> &list, SInt32 ( *func )(EventData =
* event_obj, Event *event) );=0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
class FallingEvent : public EventData {=0A=
public:=0A=
SInt32 faller;=0A=
SInt32 previous;=0A=
};=0A=
=0A=
=0A=
class GrenadeEvent : public EventData {=0A=
public:=0A=
SInt32 obj;=0A=
SInt32 ch;=0A=
};=0A=
=0A=
=0A=
=0A=
# 19 "affects.h" 2=0A=
=0A=
=0A=
=0A=
class Character;=0A=
class Event;=0A=
=0A=
=0A=
class Affect {=0A=
public:=0A=
enum Type { NoAffect, Blind, Charm, Sleep, Poison, Sneak, Tired }; =
=0A=
static const int Number =3D 6;=0A=
static const char *affects[];=0A=
=0A=
public:=0A=
=0A=
=0A=
enum Location {=0A=
None,=0A=
Co, Ag, SD, Me, Re,=0A=
St, Qu, Pr, In, Em,=0A=
=0A=
Weight, Height,=0A=
Hit, Move,=0A=
=0A=
Offense, Defense=0A=
};=0A=
=0A=
Affect(Type t, SInt32 mod, Location loc, Flags bv);=0A=
Affect(const Affect &aff, Character *ch);=0A=
~Affect(void);=0A=
=0A=
void Remove(Character *ch);=0A=
void ToChar(Character *ch, UInt32 duration);=0A=
void Join(Character *ch, UInt32 duration, bool add_dur, bool =
avg_dur, bool add_mod, bool avg_mod);=0A=
=0A=
static void FromChar(Character *ch, Type type);=0A=
static bool AffectedBy(Character *ch, Type type);=0A=
static void Modify(Character * ch, Location loc, SInt8 mod, Flags =
bitv, bool add);=0A=
void Modify(Character * ch, bool add) { Modify(ch, location, =
modifier, flags, add); }=0A=
=0A=
static SInt32 ( AffEvent )(EventData * event_obj, Event *event) ;=0A=
=0A=
inline Type AffType(void) const { return type; }=0A=
inline Location AffLocation(void) const { return location; }=0A=
inline SInt32 AffModifier(void) const { return modifier; }=0A=
inline Flags AffFlags(void) const { return flags; }=0A=
=0A=
inline SInt32 Time(void) const { return event ? event->Time() : 0; =
}=0A=
=0A=
protected:=0A=
Type type; =0A=
Location location; =0A=
SInt32 modifier; =0A=
Flags flags; =0A=
=0A=
Event * event;=0A=
};=0A=
=0A=
=0A=
=0A=
# 20 "objects.h" 2=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
class ExtraDesc;=0A=
class Event;=0A=
=0A=
=0A=
=0A=
class GunData {=0A=
public:=0A=
GunData(void);=0A=
GunData(const GunData &data);=0A=
~GunData(void);=0A=
=0A=
Type attack; =0A=
UInt8 rate; =0A=
UInt8 rank; =0A=
UInt8 range; =0A=
SInt8 closeRange, longRange;=0A=
struct {=0A=
VNum vnum; =0A=
SInt16 amount; =0A=
Type type; =0A=
} ammo;=0A=
};=0A=
=0A=
=0A=
class Object : public MUDObject {=0A=
public:=0A=
class Affect {=0A=
public:=0A=
Affect(void) : location(::Affect::None), modifier(0) { } =0A=
::Affect::Location location; =0A=
SInt16 modifier; =0A=
};=0A=
=0A=
public:=0A=
Object(void);=0A=
Object(const Object &proto);=0A=
virtual ~Object(void);=0A=
=0A=
=0A=
virtual const char *Name(void) const;=0A=
virtual void Extract(void);=0A=
virtual void ToRoom(VNum room);=0A=
virtual void FromRoom(void);=0A=
VNum AbsoluteRoom(void) const;=0A=
=0A=
=0A=
void ToChar(Character *ch);=0A=
void FromChar(void);=0A=
void ToObj(Object *obj_to);=0A=
void FromObj(void);=0A=
void Unequip(void);=0A=
void Equip(Character *ch);=0A=
=0A=
void Update(UInt32 use);=0A=
=0A=
bool Load(FILE *fl, char *filename);=0A=
void Save(FILE *fl, SInt32 location);=0A=
=0A=
SInt32 TotalValue(void);=0A=
void ExtractNoKeep(Object *corpse, Character *ch);=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
SString * name; =0A=
SString * description; =0A=
SString * shortDesc; =0A=
SString * actionDesc; =0A=
LList<ExtraDesc *> exDesc; =0A=
=0A=
Character * carried_by; =0A=
Character * worn_by; =0A=
SInt8 worn_on; =0A=
Object * in_obj; =0A=
=0A=
LList<Object *> contents; =0A=
=0A=
LList<Event *> events; =0A=
=0A=
=0A=
SInt32 value[8]; =0A=
SInt32 cost; =0A=
SInt32 weight; =0A=
UInt32 timer; =0A=
Type type; =0A=
Flags wear; =0A=
Flags extra; =0A=
Flags affects; =0A=
=0A=
=0A=
UInt32 speed; =0A=
=0A=
GunData * gun; =0A=
=0A=
Affect affect[6 ]; =0A=
=0A=
public:=0A=
=0A=
static bool Find(VNum vnum);=0A=
static Object * Read(VNum nr);=0A=
=0A=
static Index<Object>Index;=0A=
=0A=
static Object * Create(void);=0A=
void Parser(char *input);=0A=
=0A=
=0A=
public:=0A=
virtual Character * TargetChar(const char *arg) const;=0A=
virtual Object * TargetObj(const char *arg) const;=0A=
virtual VNum TargetRoom(const char *arg) const;=0A=
};=0A=
=0A=
=0A=
inline const char *Object::Name(void) const { return shortDesc->Data(); =
}=0A=
=0A=
=0A=
extern LList<Object *> Objects;=0A=
extern LList<Object *> PurgedObjs;=0A=
=0A=
void equip_char(Character * ch, Object * obj, UInt8 pos);=0A=
Object *unequip_char(Character * ch, UInt8 pos);=0A=
=0A=
=0A=
inline bool Object::Find(VNum vnum) { return Index.Map::Find(vnum); =
}=0A=
=0A=
=0A=
=0A=
# 23 "structs.h" 2=0A=
=0A=
# 1 "rooms.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
class Editor;=0A=
class ExtraDesc;=0A=
=0A=
=0A=
class RoomDirection {=0A=
public:=0A=
friend class Room;=0A=
friend class REdit;=0A=
=0A=
RoomDirection(void);=0A=
RoomDirection(RoomDirection *dir);=0A=
~RoomDirection(void);=0A=
=0A=
const char * Keyword(const char *def =3D __null ) const;=0A=
const char * Description(const char *def =3D __null ) const;=0A=
=0A=
Flags exit_info; =0A=
VNum key; =0A=
VNum to_room; =0A=
=0A=
protected:=0A=
char * general_description;=0A=
char * keyword;=0A=
=0A=
public:=0A=
void Parser(char *input);=0A=
};=0A=
=0A=
=0A=
inline const char * RoomDirection::Keyword(const char *def) const {=0A=
return (keyword ? keyword : def);=0A=
}=0A=
=0A=
=0A=
inline const char * RoomDirection::Description(const char *def) const =
{=0A=
return (general_description ? general_description : def);=0A=
}=0A=
=0A=
=0A=
class Ship;=0A=
=0A=
class Room : public Scriptable {=0A=
public:=0A=
friend class REdit;=0A=
Room(void);=0A=
virtual ~Room(void);=0A=
=0A=
const char * Name(const char *def =3D __null ) const;=0A=
const char * Description(const char *def =3D __null ) const;=0A=
=0A=
SInt32 Send(const char *messg, ...) const __attribute__ ((format =
(printf, 2, 3)));=0A=
VNum AbsoluteRoom(void) const;=0A=
=0A=
=0A=
=0A=
UInt16 zone; =0A=
Sector::Sector sector_type; =0A=
Flags flags; =0A=
=0A=
LList<ExtraDesc *> ex_description; =0A=
=0A=
RoomDirection * dir_option[NUM_OF_DIRS]; =0A=
=0A=
UInt8 light; =0A=
int ( *func )(Character *ch, Ptr me, const char * cmd, char *argument) =
;=0A=
=0A=
LList<Object *> contents; =0A=
LList<Character *> people; =0A=
LList<Ship *> ships;=0A=
=0A=
protected:=0A=
char * name;=0A=
char * description;=0A=
=0A=
public:=0A=
=0A=
static bool Find(VNum vnum);=0A=
=0A=
void Parse(char *input);=0A=
=0A=
=0A=
public:=0A=
virtual Character * TargetChar(const char *arg) const;=0A=
virtual Object * TargetObj(const char *arg) const;=0A=
virtual VNum TargetRoom(const char *arg) const;=0A=
};=0A=
=0A=
=0A=
=0A=
extern Map<VNum, Room>world;=0A=
=0A=
=0A=
=0A=
extern VNum mortal_start_room;=0A=
extern VNum immort_start_room;=0A=
extern VNum frozen_start_room;=0A=
=0A=
=0A=
=0A=
void check_start_rooms(void);=0A=
=0A=
=0A=
=0A=
=0A=
inline const char * Room::Name(const char *def) const {=0A=
return (name ? name : def);=0A=
}=0A=
=0A=
=0A=
inline const char * Room::Description(const char *def) const {=0A=
return (description ? description : def);=0A=
}=0A=
=0A=
=0A=
inline VNum Room::AbsoluteRoom(void) const {=0A=
return Virtual();=0A=
}=0A=
=0A=
=0A=
inline bool Room::Find(VNum vnum) {=0A=
return world.Find(vnum);=0A=
}=0A=
=0A=
=0A=
=0A=
# 24 "structs.h" 2=0A=
=0A=
=0A=
=0A=
# 19 "comm.cp" 2=0A=
=0A=
=0A=
# 1 "/usr/include/fcntl.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/sys/fcntl.h" 1 3=0A=
=0A=
=0A=
=0A=
extern "C" {=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
struct flock {=0A=
short l_type; =0A=
short l_whence; =0A=
long l_start; =0A=
long l_len; =0A=
short l_pid; =0A=
short l_xxx; =0A=
};=0A=
=0A=
=0A=
=0A=
struct eflock {=0A=
short l_type; =0A=
short l_whence; =0A=
long l_start; =0A=
long l_len; =0A=
short l_pid; =0A=
short l_xxx; =0A=
long l_rpid; =0A=
long l_rsys; =0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/sys/stat.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
extern "C" {=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
struct stat =0A=
{=0A=
dev_t st_dev;=0A=
ino_t st_ino;=0A=
mode_t st_mode;=0A=
nlink_t st_nlink;=0A=
uid_t st_uid;=0A=
gid_t st_gid;=0A=
dev_t st_rdev;=0A=
off_t st_size;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
time_t st_atime;=0A=
long st_spare1;=0A=
time_t st_mtime;=0A=
long st_spare2;=0A=
time_t st_ctime;=0A=
long st_spare3;=0A=
long st_blksize;=0A=
long st_blocks;=0A=
long st_spare4[2];=0A=
=0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 94 "/usr/include/sys/stat.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
int __attribute__((__cdecl__)) chmod ( const char *__path, mode_t =
__mode ) ;=0A=
int __attribute__((__cdecl__)) fchmod (int __fd, mode_t __mode) =
;=0A=
int __attribute__((__cdecl__)) fstat ( int __fd, struct stat =
*__sbuf ) ;=0A=
int __attribute__((__cdecl__)) mkdir ( const char *_path, mode_t =
__mode ) ;=0A=
int __attribute__((__cdecl__)) mkfifo ( const char *__path, mode_t =
__mode ) ;=0A=
int __attribute__((__cdecl__)) stat ( const char *__path, struct =
stat *__sbuf ) ;=0A=
mode_t __attribute__((__cdecl__)) umask ( mode_t __mask ) ;=0A=
=0A=
=0A=
int __attribute__((__cdecl__)) lstat ( const char *__path, struct =
stat *__buf ) ;=0A=
int __attribute__((__cdecl__)) mknod ( const char *__path, mode_t =
__mode, dev_t __dev ) ;=0A=
=0A=
=0A=
=0A=
=0A=
int __attribute__((__cdecl__)) _fstat ( int __fd, struct stat =
*__sbuf ) ;=0A=
int __attribute__((__cdecl__)) _stat ( const char *__path, struct =
stat *__sbuf ) ;=0A=
=0A=
=0A=
=0A=
}=0A=
=0A=
=0A=
# 164 "/usr/include/sys/fcntl.h" 2 3=0A=
=0A=
=0A=
extern int open (const char *, int, ...) ;=0A=
extern int creat (const char *, mode_t) ;=0A=
extern int fcntl (int, int, ...) ;=0A=
=0A=
=0A=
=0A=
extern int _open (const char *, int, ...) ;=0A=
extern int _fcntl (int, int, ...) ;=0A=
=0A=
=0A=
}=0A=
=0A=
=0A=
# 14 "/usr/include/fcntl.h" 2 3=0A=
=0A=
=0A=
=0A=
=0A=
# 21 "comm.cp" 2=0A=
=0A=
# 1 "/usr/include/sys/ioctl.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern "C" { =0A=
=0A=
int ioctl (int __fd, int __cmd, void *);=0A=
=0A=
} =0A=
=0A=
=0A=
# 22 "comm.cp" 2=0A=
=0A=
# 1 "/usr/include/sys/socket.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/features.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 14 "/usr/include/sys/socket.h" 2 3=0A=
=0A=
# 1 "/usr/include/cygwin/socket.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern "C" {=0A=
=0A=
=0A=
struct sockaddr {=0A=
unsigned short sa_family; =0A=
char sa_data[14]; =0A=
};=0A=
=0A=
# 1 "/usr/include/asm/socket.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/cygwin/if.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern "C" {=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/sys/socket.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 53 "/usr/include/sys/socket.h" 3=0A=
=0A=
# 19 "/usr/include/cygwin/if.h" 2 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
struct ifreq=0A=
{=0A=
=0A=
=0A=
union=0A=
{=0A=
char ifrn_name[16 ]; =0A=
} ifr_ifrn;=0A=
=0A=
union {=0A=
struct sockaddr ifru_addr;=0A=
struct sockaddr ifru_broadaddr;=0A=
struct sockaddr ifru_netmask;=0A=
struct sockaddr ifru_hwaddr;=0A=
short ifru_flags;=0A=
int ifru_metric;=0A=
int ifru_mtu;=0A=
} ifr_ifru;=0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
struct ifconf=0A=
{=0A=
int ifc_len; =0A=
union=0A=
{=0A=
caddr_t ifcu_buf;=0A=
struct ifreq *ifcu_req;=0A=
} ifc_ifcu;=0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
};=0A=
=0A=
=0A=
=0A=
# 14 "/usr/include/asm/socket.h" 2 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 23 "/usr/include/cygwin/socket.h" 2 3=0A=
=0A=
# 1 "/usr/include/cygwin/sockios.h" 1 3=0A=
=0A=
# 24 "/usr/include/cygwin/socket.h" 2 3=0A=
=0A=
# 1 "/usr/include/cygwin/uio.h" 1 3=0A=
=0A=
# 25 "/usr/include/cygwin/socket.h" 2 3=0A=
=0A=
=0A=
=0A=
struct linger {=0A=
unsigned short l_onoff; =0A=
unsigned short l_linger; =0A=
};=0A=
=0A=
struct msghdr=0A=
{=0A=
void * msg_name; =0A=
int msg_namelen; =0A=
struct iovec * msg_iov; =0A=
int msg_iovlen; =0A=
void * msg_accrights; =0A=
int msg_accrightslen; =0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
};=0A=
=0A=
=0A=
=0A=
# 15 "/usr/include/sys/socket.h" 2 3=0A=
=0A=
=0A=
=0A=
=0A=
extern "C"=0A=
{=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
int accept (int, struct sockaddr *__peer, int *);=0A=
int bind (int, const struct sockaddr *__my_addr, int __addrlen);=0A=
int connect (int, const struct sockaddr *, int);=0A=
int getpeername (int, struct sockaddr *__peer, int *);=0A=
int getsockname (int, struct sockaddr *__addr, int *);=0A=
int listen (int, int __n);=0A=
int recv (int, void *__buff, int __len, unsigned int __flags);=0A=
int recvfrom (int, char *__buff, int __len, int __flags,=0A=
struct sockaddr *__from, int *__fromlen);=0A=
int send (int, const void *__buff, int __len, unsigned int =
__flags);=0A=
int sendto (int, const void *, int, unsigned int, const struct =
sockaddr *, int);=0A=
int setsockopt (int __s, int __level, int __optname, const void =
*optval, int __optlen);=0A=
int getsockopt (int __s, int __level, int __optname, void *__optval, =
int *__optlen);=0A=
int shutdown (int, int);=0A=
int socket (int __family, int __type, int __protocol);=0A=
int socketpair (int __domain, int __type, int __protocol, int =
*__socket_vec);=0A=
=0A=
struct servent *getservbyname (const char *__name, const char =
*__proto);=0A=
=0A=
=0A=
=0A=
};=0A=
=0A=
=0A=
=0A=
# 23 "comm.cp" 2=0A=
=0A=
=0A=
# 1 "/usr/include/netdb.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern "C" {=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
struct hostent {=0A=
const char *h_name; =0A=
char **h_aliases; =0A=
short h_addrtype; =0A=
short h_length; =0A=
char **h_addr_list; =0A=
=0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
struct netent {=0A=
char *n_name; =0A=
char **n_aliases; =0A=
short n_addrtype; =0A=
unsigned long n_net; =0A=
};=0A=
=0A=
struct servent {=0A=
char *s_name; =0A=
char **s_aliases; =0A=
short s_port; =0A=
char *s_proto; =0A=
};=0A=
=0A=
struct protoent=0A=
{=0A=
char *p_name; =0A=
char **p_aliases; =0A=
short p_proto; =0A=
};=0A=
=0A=
struct rpcent {=0A=
char *r_name; =0A=
char **r_aliases; =0A=
int r_number; =0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern __attribute__(( dllimport )) int h_errno;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
void endhostent (void);=0A=
void endnetent (void);=0A=
void endprotoent (void);=0A=
void endservent (void);=0A=
void endrpcent (void);=0A=
struct hostent *gethostbyaddr (const char *, int, int);=0A=
struct hostent *gethostbyname (const char *);=0A=
struct hostent *gethostent (void);=0A=
struct netent *getnetbyaddr (long, int); =0A=
struct netent *getnetbyname (const char *);=0A=
struct netent *getnetent (void);=0A=
struct protoent *getprotobyname (const char *);=0A=
struct protoent *getprotobynumber (int);=0A=
struct protoent *getprotoent (void);=0A=
struct servent *getservbyname (const char *, const char *);=0A=
struct servent *getservbyport (int, const char *);=0A=
struct servent *getservent (void);=0A=
struct rpcent *getrpcent (void);=0A=
struct rpcent *getrpcbyname (const char *);=0A=
struct rpcent *getrpcbynumber (int);=0A=
const char *hstrerror (int);=0A=
void herror (const char *);=0A=
void sethostent (int);=0A=
void setnetent (int);=0A=
void setprotoent (int);=0A=
void setservent (int);=0A=
void setrpcent (int);=0A=
=0A=
=0A=
=0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
# 25 "comm.cp" 2=0A=
=0A=
=0A=
# 1 "/usr/include/arpa/inet.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern "C"=0A=
{=0A=
=0A=
=0A=
=0A=
unsigned long inet_addr (const char *);=0A=
int inet_aton (const char *, struct in_addr *);=0A=
unsigned long inet_lnaof (struct in_addr);=0A=
struct in_addr inet_makeaddr (unsigned long , unsigned long);=0A=
unsigned int inet_netof (struct in_addr);=0A=
unsigned int inet_network (const char *);=0A=
char *inet_ntoa (struct in_addr);=0A=
=0A=
=0A=
=0A=
};=0A=
=0A=
=0A=
=0A=
# 27 "comm.cp" 2=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "db.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "weather.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
namespace Weather {=0A=
=0A=
namespace Seasons {=0A=
enum { One, TwoEqual, TwoFirstLong, TwoSecondLong, Three,=0A=
FourEqual, FourEvenLong, FourOddLong };=0A=
} =0A=
=0A=
const int MaxSeasons =3D 4;=0A=
=0A=
namespace Wind {=0A=
enum { Calm, Breezy, Unsettled, Windy, Chinook, Violent, Hurricane =
};=0A=
} =0A=
=0A=
namespace Precipitation {=0A=
enum { None, Arid, Dry, Low, Average, High, Stormy, Torrent, Constant =
};=0A=
} =0A=
=0A=
namespace Temperature {=0A=
enum { Arctic, SubFreezing, Freezing, Cold, Cool, Mild, Warm, Hot, =
Blustery,=0A=
Heatstroke, Boiling };=0A=
} =0A=
=0A=
enum { =0A=
NoMoon =3D (1 << 0),=0A=
NoSun =3D (1 << 1),=0A=
Uncontrollable =3D (1 << 2),=0A=
AffectsIndoors =3D (1 << 3)=0A=
};=0A=
=0A=
=0A=
class Climate {=0A=
public:=0A=
Climate();=0A=
=0A=
SInt16 pattern,=0A=
wind[MaxSeasons],=0A=
windDirection[MaxSeasons],=0A=
windVariance[MaxSeasons],=0A=
precipitation[MaxSeasons],=0A=
temperature[MaxSeasons];=0A=
Flags flags;=0A=
SInt32 energy;=0A=
};=0A=
=0A=
=0A=
enum {=0A=
MoonVisible =3D (1 << 0),=0A=
SunVisible =3D (1 << 1),=0A=
Controlled =3D (1 << 2)=0A=
};=0A=
=0A=
=0A=
class Weather {=0A=
public:=0A=
Weather();=0A=
=0A=
SInt8 temperature, =0A=
humidity;=0A=
UInt8 windspeed;=0A=
SInt8 windDirection;=0A=
=0A=
SInt8 precipRate,=0A=
precipDepth,=0A=
precipChange;=0A=
=0A=
SInt8 pressureChange;=0A=
SInt32 pressure;=0A=
=0A=
SInt32 energy;=0A=
Flags flags;=0A=
=0A=
SInt8 light;=0A=
};=0A=
=0A=
=0A=
void Change(void);=0A=
=0A=
=0A=
extern const char *seasons[];=0A=
extern const char *winds[];=0A=
extern const char *precipitations[];=0A=
extern const char *temperatures[];=0A=
extern const char *climateflags[];=0A=
extern const char *weatherflags[];=0A=
=0A=
=0A=
} =0A=
=0A=
=0A=
=0A=
# 23 "db.h" 2=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
void boot_db(void);=0A=
int create_entry(const char *name);=0A=
void zone_update(void);=0A=
=0A=
SInt32 get_id_by_name(const char *name);=0A=
const char *get_name_by_id(SInt32 id);=0A=
void save_player_index(void);=0A=
=0A=
SInt32 vnum_mobile(char *searchname, Character *ch);=0A=
SInt32 vnum_object(char *searchname, Character *ch);=0A=
SInt32 vnum_trigger(char *searchname, Character * ch);=0A=
=0A=
void sprintbits(UInt32 vektor,char *outstring);=0A=
=0A=
void vwear_object(int wearpos, Character * ch);=0A=
=0A=
=0A=
=0A=
struct reset_com {=0A=
char command; =0A=
=0A=
bool if_flag; =0A=
SInt32 repeat; =0A=
SInt32 arg1; =0A=
SInt32 arg2; =0A=
SInt32 arg3; =0A=
SInt32 arg4;=0A=
UInt32 line; =0A=
=0A=
char *command_string;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
};=0A=
=0A=
=0A=
=0A=
struct zone_data {=0A=
char * name; =0A=
LList<char *> builders; =0A=
SInt16 lifespan; =0A=
SInt16 age; =0A=
VNum top; =0A=
=0A=
SInt16 reset_mode; =0A=
VNum number; =0A=
struct reset_com *cmd; =0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
Weather::Climate climate;=0A=
Weather::Weather conditions;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
char GetSeason(void);=0A=
void CalcLight(void);=0A=
};=0A=
=0A=
=0A=
extern struct zone_data *zone_table;=0A=
=0A=
=0A=
=0A=
struct reset_q_element {=0A=
int zone_to_reset; =0A=
struct reset_q_element *next;=0A=
};=0A=
=0A=
=0A=
=0A=
struct reset_q_type {=0A=
struct reset_q_element *head;=0A=
struct reset_q_element *tail;=0A=
};=0A=
=0A=
=0A=
extern char *OK;=0A=
extern char *NOPERSON;=0A=
extern char *NOEFFECT;=0A=
=0A=
=0A=
# 38 "comm.cp" 2=0A=
=0A=
# 1 "utils.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "strings.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
char * str_dup(const char *source);=0A=
int str_cmp(const char *arg1, const char *arg2);=0A=
int strn_cmp(const char *arg1, const char *arg2, int n);=0A=
const char *str_str(const char *cs, const char *ct);=0A=
void sprintbit(UInt32 vektor, const char *names[], char *result);=0A=
void sprinttype(int type, const char *names[], char *result);=0A=
int str_prefix(const char *astr, const char *bstr);=0A=
bool is_substring(const char *sub, const char *string);=0A=
char * one_phrase(char *arg, char *first_arg);=0A=
bool word_check(const char *str, const char *wordlist);=0A=
char * matching_quote(char *p);=0A=
char * matching_paren(char *p);=0A=
int str_len(const char *arg);=0A=
int color_len(const char *arg);=0A=
int color_len(const char *arg, int maxlen);=0A=
=0A=
=0A=
=0A=
int search_block(const char *arg, const char **list, bool exact);=0A=
int search_chars(const char arg, const char *list);=0A=
char * one_argument(const char *argument, char *first_arg);=0A=
char * one_word(const char *argument, char *first_arg);=0A=
char * any_one_arg(const char *argument, char *first_arg);=0A=
char * any_one_name(const char *argument, char *first_arg);=0A=
char * two_arguments(const char *argument, char *first_arg, char =
*second_arg);=0A=
char * three_arguments(const char *argument, char *first_arg, char =
*second_arg, char *third_arg);=0A=
bool fill_word(const char *argument);=0A=
void half_chop(const char *string, char *arg1, char *arg2);=0A=
bool is_abbrev(const char *arg1, const char *arg2);=0A=
bool is_number(const char *str);=0A=
void skip_spaces(const char *&string);=0A=
char * delete_doubledollar(char *string);=0A=
=0A=
=0A=
=0A=
# 19 "utils.h" 2=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
class Room;=0A=
class Character;=0A=
class Descriptor;=0A=
=0A=
=0A=
int touch(const char *path);=0A=
void log_death_trap(Character *ch);=0A=
int Number(int from, int to);=0A=
int dice(int number, int size);=0A=
int get_line(FILE *fl, char *buf);=0A=
int get_filename(const char *orig_name, char *filename);=0A=
struct TimeInfoData age(Character *ch);=0A=
int num_pc_in_room(Room *room);=0A=
int replace_str(char **string, char *pattern, char *replacement, int =
rep_all, int max_size);=0A=
void format_text(char **ptr_string, int mode, Descriptor *d, int =
maxlen);=0A=
void core_dump_func(const char *who, SInt16 line);=0A=
=0A=
=0A=
=0A=
void circle_srandom(UInt32 initial_seed);=0A=
UInt32 circle_random(void);=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
void log(const char *format, ...) __attribute__ ((format (printf, 1, =
2)));=0A=
=0A=
void mudlogf(SInt8 type, Character *ch, bool file, const char =
*format, ...) __attribute__ ((format (printf, 4, 5)));=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
template<class T> const T& MAX(const T& a, const T& b) {=0A=
return (a > b) ? a : b;=0A=
}=0A=
template<class T> const T& MIN(const T& a, const T& b) {=0A=
return (a < b) ? a : b;=0A=
}=0A=
template<class T> const T& RANGE(const T& low, const T& a, const T& =
high) {=0A=
return (low > a) ? low : ((a > high) ? high : a);=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
int circle_follow(Character *ch, Character * victim);=0A=
=0A=
=0A=
void look_at_room(Character *ch, int mode);=0A=
void look_at_rnum(Character *ch, VNum room, int mode);=0A=
=0A=
=0A=
int do_simple_move(Character *ch, int dir, int following);=0A=
int perform_move(Character *ch, int dir, int following);=0A=
=0A=
=0A=
int hit_gain(Character *ch);=0A=
int move_gain(Character *ch);=0A=
void advance_level(Character *ch);=0A=
void gain_condition(Character *ch, int condition, int value);=0A=
void check_idling(Character *ch);=0A=
void point_update(void);=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 178 "utils.h"=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 211 "utils.h"=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 39 "comm.cp" 2=0A=
=0A=
# 1 "buffer.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
class Buffer {=0A=
public:=0A=
enum Type { =0A=
tBuffer, =0A=
tPersist, =0A=
tMalloc =0A=
};=0A=
=0A=
=0A=
Buffer(size_t size, Type type);=0A=
~Buffer(void);=0A=
=0A=
Type Clear(void);=0A=
void Remove(void);=0A=
int Used(void);=0A=
int Magnitude(void);=0A=
=0A=
SInt8 magic; =0A=
Type type; =0A=
size_t req_size; =0A=
const size_t size; =0A=
char * data; =0A=
public:=0A=
Buffer * next; =0A=
=0A=
# 73 "buffer.h"=0A=
=0A=
=0A=
public:=0A=
union {=0A=
SInt32 life; =0A=
const char * var; =0A=
};=0A=
SInt16 line; =0A=
const char * who; =0A=
=0A=
void Check(void);=0A=
=0A=
public:=0A=
static void Init(void);=0A=
static void Exit(void);=0A=
=0A=
static void Reboot(void);=0A=
=0A=
static Buffer **Head(Type type);=0A=
=0A=
=0A=
=0A=
static Buffer * Find(const char *given, Type type);=0A=
static Buffer * FindAvailable(size_t size);=0A=
static void Detach(const char *data, Type type,=0A=
const char *func, const int line_n);=0A=
static char * Acquire(size_t size, Type type,=0A=
const char *varname, const char *who, UInt16 line);=0A=
=0A=
static void ReleaseAll(void);=0A=
=0A=
static Buffer **buf;=0A=
static Buffer **mem;=0A=
=0A=
static Flags options;=0A=
static const char *const optionsDesc[];=0A=
=0A=
private:=0A=
static void Decrement(void);=0A=
static void ReleaseOld(void);=0A=
static void FreeOld(void);=0A=
};=0A=
=0A=
=0A=
inline Buffer **Buffer::Head(Buffer::Type type) {=0A=
return (type =3D=3D Buffer::tMalloc ? mem : buf);=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
class Character;=0A=
void show_buffers(Character *ch, Buffer::Type type, int =
display_type);=0A=
=0A=
=0A=
# 40 "comm.cp" 2=0A=
=0A=
# 1 "comm.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
void send_to_outdoorf(const char *messg, ...) __attribute__ ((format =
(printf, 1, 2)));=0A=
void send_to_playersf(Character *ch, const char *messg, ...) =
__attribute__ ((format (printf, 2, 3)));=0A=
void send_to_all(const char *messg);=0A=
void send_to_outdoor(const char *messg);=0A=
void send_to_players(Character *ch, const char *messg);=0A=
void send_to_zone(char *messg, int zone_rnum);=0A=
=0A=
void close_socket(Descriptor *d);=0A=
void echo_off(Descriptor *d);=0A=
void echo_on(Descriptor *d);=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
void the_act(const char *str, bool hide_invisible, const Character *ch, =
const Object *obj,=0A=
CPtr vict_obj, int type, const char *who, UInt16 line);=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
void sub_write(char *arg, Character *ch, bool find_invis, int =
targets);=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
int write_to_descriptor(int desc, const char *txt);=0A=
void write_to_q(const char *txt, struct txt_q *queue, int aliased);=0A=
void page_string(Descriptor *d, const char *str, bool =
keep_internal);=0A=
void string_add(Descriptor *d, char *str);=0A=
void string_write(Descriptor *d, char **txt, size_t len, long mailto, =
const char *data);=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
typedef void sigfunc();=0A=
=0A=
=0A=
extern FILE *logfile; =0A=
# 41 "comm.cp" 2=0A=
=0A=
# 1 "interpreter.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
class Character;=0A=
class Descriptor;=0A=
=0A=
void command_interpreter(Character *ch, char *argument);=0A=
void nanny(Descriptor *d, char *arg);=0A=
int find_command(const char *command);=0A=
=0A=
=0A=
struct command_info {=0A=
const char * command;=0A=
const char * sort_as;=0A=
Position minimum_position;=0A=
=0A=
void ( *command_pointer )(Character *ch, char *argument, SInt32 cmd, =
const char *command, SInt32 subcmd) ;=0A=
SInt32 minimum_level;=0A=
Flags staffcmd;=0A=
SInt32 subcmd;=0A=
};=0A=
=0A=
=0A=
extern struct command_info *complete_cmd_info;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
enum {=0A=
SCMD_BUG,=0A=
SCMD_TYPO,=0A=
SCMD_IDEA,=0A=
SCMD_WARNING=0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 42 "comm.cp" 2=0A=
=0A=
# 1 "handler.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
int isname(const char *str, const char *namelist);=0A=
char * fname(const char *namelist);=0A=
int get_number(char **name);=0A=
int silly_isname(const char *str, const char *namelist);=0A=
int split_string(char *str, char *sep, char **argv);=0A=
=0A=
=0A=
=0A=
int is_same_group(Character *ach, Character *bch );=0A=
=0A=
=0A=
=0A=
=0A=
void Crash_listrent(Character *ch, char *name);=0A=
int Crash_load(Character *ch);=0A=
void Crash_crashsave(Character *ch);=0A=
void Crash_save_all(void);=0A=
=0A=
=0A=
void forget(Character *ch, Character *victim);=0A=
void remember(Character *ch, Character *victim);=0A=
# 43 "comm.cp" 2=0A=
=0A=
# 1 "find.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
class Object;=0A=
class Character;=0A=
class Room;=0A=
=0A=
Object * get_obj(const char *name);=0A=
Object * get_obj_num(VNum nr);=0A=
Object * get_obj_vis(const Character *ch, const char *name);=0A=
Object * get_obj_in_list(const char *name, LList<Object *> &list);=0A=
Object * get_obj_in_list_vis(const Character *ch, const char *name, =
LList<Object *> &list);=0A=
Object * get_obj_in_list_num(VNum num, LList<Object *> &list);=0A=
Object * get_obj_in_list_type(Type type, LList<Object *> &list);=0A=
Object * get_obj_in_list_flagged(Flags flag, LList<Object *> &list);=0A=
Object * get_object_in_equip(const Character * ch, const char *arg, =
Object * const equipment[], int *j);=0A=
Object * get_object_in_equip_vis(const Character * ch, const char *arg, =
Object * const equipment[], int *j);=0A=
Object * get_obj_by_obj(const Object *obj, const char *name);=0A=
Object * get_obj_by_room(const Room *room, const char *name);=0A=
Object * find_vehicle_by_vnum(VNum vnum);=0A=
Object * find_obj(IDNum n);=0A=
=0A=
int get_num_chars_on_obj(const Object * obj);=0A=
Character * get_char_on_obj(const Object *obj);=0A=
=0A=
Character * get_char(const char *name);=0A=
Character * get_char_room(const char *name, VNum room);=0A=
Character * get_char_num(VNum nr);=0A=
Character * get_char_by_obj(const Object *obj, const char *name);=0A=
=0A=
=0A=
=0A=
Character * get_player_vis(const Character *ch, const char *name, Flags =
mode);=0A=
Character * get_char_vis(const Character *ch, const char *name, Flags =
mode);=0A=
=0A=
Character *find_char(IDNum n);=0A=
Character *get_char_by_room(const Room *room, const char *name);=0A=
=0A=
Room *get_room(const char *name);=0A=
Room *find_room(IDNum n);=0A=
=0A=
VNum find_the_room(const char *roomstr);=0A=
=0A=
int count_mobs_in_room(VNum num, VNum room);=0A=
int count_mobs_in_zone(VNum num, int zone);=0A=
=0A=
=0A=
=0A=
int find_all_dots(char *arg);=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
int generic_find(const char *arg, int bitvector, const Character *ch, =
Character **tar_ch, Object **tar_obj);=0A=
=0A=
=0A=
enum {=0A=
FIND_CHAR_ROOM =3D (1 << 0),=0A=
FIND_CHAR_WORLD =3D (1 << 1),=0A=
FIND_OBJ_INV =3D (1 << 2),=0A=
FIND_OBJ_EQUIP =3D (1 << 3),=0A=
FIND_OBJ_ROOM =3D (1 << 4),=0A=
FIND_OBJ_WORLD =3D (1 << 5)=0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
static const char UID_CHAR =3D '\x1b';=0A=
# 44 "comm.cp" 2=0A=
=0A=
# 1 "house.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
class Object;=0A=
class Character;=0A=
=0A=
=0A=
class House {=0A=
public:=0A=
House(void);=0A=
~House(void);=0A=
=0A=
VNum vnum;=0A=
=0A=
time_t created, lastPayment;=0A=
IDNum owner, maker;=0A=
Vector<IDNum> guests;=0A=
SInt8 mode;=0A=
=0A=
public:=0A=
void Parser(char *block);=0A=
void ListGuests(char *buf, bool quiet);=0A=
=0A=
static void Boot(void);=0A=
static void SaveHouses(void);=0A=
=0A=
static bool GetFilename(VNum house, char *filename);=0A=
static void DeleteFile(VNum house);=0A=
=0A=
static void SaveAll(void);=0A=
static void CrashSave(VNum house);=0A=
static void Save(Object * obj, FILE * fp, int locate);=0A=
static bool Load(VNum vnum);=0A=
=0A=
static void RestoreWeight(Object * obj);=0A=
=0A=
static bool CanEnter(Character *ch, VNum house); =0A=
=0A=
static void Listrent(Character *ch, VNum house);=0A=
=0A=
static House * Find(VNum house);=0A=
};=0A=
=0A=
=0A=
extern LList<House *> Houses;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 45 "comm.cp" 2=0A=
=0A=
# 1 "ban.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
const SInt32 BANNED_SITE_LENGTH =3D 50;=0A=
=0A=
class Ban {=0A=
public:=0A=
enum BanType { Not, New, Select, All };=0A=
Ban(void);=0A=
Ban(const char *site, const char *name, SInt32 type, time_t date =
=3D 0);=0A=
~Ban(void);=0A=
=0A=
char * mSite; =0A=
SInt32 mID; =0A=
time_t mDate;=0A=
BanType mType;=0A=
=0A=
public:=0A=
static void Load(void);=0A=
static BanType Banned(char *hostname);=0A=
static bool ValidName(const char *name);=0A=
static void ReadInvalids(void);=0A=
=0A=
static void Write(void);=0A=
};=0A=
=0A=
extern Vector<Ban *> bans;=0A=
=0A=
=0A=
=0A=
# 46 "comm.cp" 2=0A=
=0A=
# 1 "olc.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
class Character;=0A=
class Trigger;=0A=
class ExtraDesc;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
const SInt32 NUM_GENDERS =3D 3;=0A=
const SInt32 NUM_SHOP_FLAGS =3D 2;=0A=
const SInt32 NUM_TRADERS =3D 3;=0A=
=0A=
=0A=
enum {=0A=
HEDIT_PERMISSION =3D 666,=0A=
CEDIT_PERMISSION =3D 888,=0A=
AEDIT_PERMISSION =3D 999=0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
const SInt32 MAX_ROOM_NAME =3D 75;=0A=
const SInt32 MAX_MOB_NAME =3D 50;=0A=
const SInt32 MAX_OBJ_NAME =3D 50;=0A=
const SInt32 MAX_ROOM_DESC =3D 1024;=0A=
const SInt32 MAX_EXIT_DESC =3D 256;=0A=
const SInt32 MAX_EXTRA_DESC =3D 512;=0A=
const SInt32 MAX_MOB_DESC =3D 512;=0A=
const SInt32 MAX_OBJ_DESC =3D 512;=0A=
const SInt32 MAX_HELP_KEYWORDS =3D75;=0A=
const SInt32 MAX_HELP_ENTRY =3D 1024;=0A=
=0A=
=0A=
void strip_string(char *str);=0A=
void olc_add_to_save_list(int zone, UInt8 type);=0A=
void olc_remove_from_save_list(int zone, UInt8 type);=0A=
bool get_zone_perms(Character * ch, int rnum);=0A=
int real_zone(int number);=0A=
=0A=
struct olc_save_info {=0A=
SInt16 zone;=0A=
UInt8 type;=0A=
olc_save_info * next;=0A=
};=0A=
=0A=
=0A=
extern struct olc_save_info *olc_save_list;=0A=
=0A=
=0A=
enum {=0A=
OLC_SAVE_ROOM,=0A=
OLC_SAVE_OBJ,=0A=
OLC_SAVE_ZONE,=0A=
OLC_SAVE_MOB,=0A=
OLC_SAVE_SHOP,=0A=
OLC_SAVE_ACTION,=0A=
OLC_SAVE_HELP,=0A=
OLC_SAVE_TRIGGER,=0A=
OLC_SAVE_CLAN=0A=
};=0A=
=0A=
=0A=
=0A=
# 47 "comm.cp" 2=0A=
=0A=
=0A=
# 1 "ident.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/pthread.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/sched.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
struct sched_param=0A=
{=0A=
int sched_priority;=0A=
};=0A=
=0A=
=0A=
extern "C" {=0A=
=0A=
=0A=
=0A=
int sched_get_priority_max (int);=0A=
=0A=
int sched_get_priority_min (int);=0A=
=0A=
int sched_getparam (pid_t, struct sched_param *);=0A=
=0A=
int sched_getscheduler (pid_t);=0A=
=0A=
int sched_rr_get_interval (pid_t, struct timespec *);=0A=
=0A=
int sched_setparam (pid_t, const struct sched_param *);=0A=
=0A=
int sched_setscheduler (pid_t, int, const struct sched_param *);=0A=
=0A=
int sched_yield (void);=0A=
=0A=
# 59 "/usr/include/sched.h" 3=0A=
=0A=
=0A=
=0A=
}=0A=
=0A=
=0A=
# 15 "/usr/include/pthread.h" 2 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern "C"=0A=
{=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
int pthread_attr_destroy (pthread_attr_t *);=0A=
int pthread_attr_getdetachstate (const pthread_attr_t *, int *);=0A=
int pthread_attr_getinheritsched (const pthread_attr_t *, int *);=0A=
int pthread_attr_getschedparam (const pthread_attr_t *, struct =
sched_param *);=0A=
int pthread_attr_getschedpolicy (const pthread_attr_t *, int *);=0A=
int pthread_attr_getscope (const pthread_attr_t *, int *);=0A=
int pthread_attr_init (pthread_attr_t *);=0A=
int pthread_attr_setdetachstate (pthread_attr_t *, int);=0A=
int pthread_attr_setinheritsched (pthread_attr_t *, int);=0A=
int pthread_attr_setschedparam (pthread_attr_t *, const struct =
sched_param *);=0A=
int pthread_attr_setschedpolicy (pthread_attr_t *, int);=0A=
int pthread_attr_setscope (pthread_attr_t *, int);=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
int pthread_attr_getstacksize (const pthread_attr_t *, size_t *);=0A=
int pthread_attr_setstacksize (pthread_attr_t *, size_t);=0A=
=0A=
=0A=
int pthread_cancel (pthread_t);=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
typedef void __cleanup_routine_type (void *);=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
int pthread_cond_broadcast (pthread_cond_t *);=0A=
int pthread_cond_destroy (pthread_cond_t *);=0A=
int pthread_cond_init (pthread_cond_t *, const pthread_condattr_t =
*);=0A=
int pthread_cond_signal (pthread_cond_t *);=0A=
int pthread_cond_timedwait (pthread_cond_t *,=0A=
pthread_mutex_t *, const struct timespec *);=0A=
int pthread_cond_wait (pthread_cond_t *, pthread_mutex_t *);=0A=
int pthread_condattr_destroy (pthread_condattr_t *);=0A=
int pthread_condattr_getpshared (const pthread_condattr_t *, int *);=0A=
int pthread_condattr_init (pthread_condattr_t *);=0A=
int pthread_condattr_setpshared (pthread_condattr_t *, int);=0A=
=0A=
int pthread_create (pthread_t *, const pthread_attr_t *,=0A=
void *(*)(void *), void *);=0A=
int pthread_detach (pthread_t);=0A=
int pthread_equal (pthread_t, pthread_t);=0A=
void pthread_exit (void *);=0A=
int pthread_getschedparam (pthread_t, int *, struct sched_param *);=0A=
void *pthread_getspecific (pthread_key_t);=0A=
int pthread_join (pthread_t, void **);=0A=
int pthread_key_create (pthread_key_t *, void (*)(void *));=0A=
int pthread_key_delete (pthread_key_t);=0A=
=0A=
=0A=
int pthread_mutex_destroy (pthread_mutex_t *);=0A=
int pthread_mutex_getprioceiling (const pthread_mutex_t *, int *);=0A=
int pthread_mutex_init (pthread_mutex_t *, const pthread_mutexattr_t =
*);=0A=
int pthread_mutex_lock (pthread_mutex_t *);=0A=
int pthread_mutex_setprioceiling (pthread_mutex_t *, int, int *);=0A=
int pthread_mutex_trylock (pthread_mutex_t *);=0A=
int pthread_mutex_unlock (pthread_mutex_t *);=0A=
int pthread_mutexattr_destroy (pthread_mutexattr_t *);=0A=
int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t *, int =
*);=0A=
int pthread_mutexattr_getprotocol (const pthread_mutexattr_t *, int =
*);=0A=
int pthread_mutexattr_getpshared (const pthread_mutexattr_t *, int =
*);=0A=
int pthread_mutexattr_gettype (const pthread_mutexattr_t *, int *);=0A=
int pthread_mutexattr_init (pthread_mutexattr_t *);=0A=
int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *, int);=0A=
int pthread_mutexattr_setprotocol (pthread_mutexattr_t *, int);=0A=
int pthread_mutexattr_setpshared (pthread_mutexattr_t *, int);=0A=
int pthread_mutexattr_settype (pthread_mutexattr_t *, int);=0A=
=0A=
int pthread_once (pthread_once_t *, void (*)(void));=0A=
=0A=
=0A=
int pthread_getconcurrency (void);=0A=
int pthread_setconcurrency (int);=0A=
=0A=
=0A=
pthread_t pthread_self (void);=0A=
int pthread_setcancelstate (int, int *);=0A=
int pthread_setcanceltype (int, int *);=0A=
int pthread_setschedparam (pthread_t, int, const struct sched_param =
*);=0A=
int pthread_setspecific (pthread_key_t, const void *);=0A=
void pthread_testcancel (void);=0A=
=0A=
=0A=
=0A=
int pthread_suspend (pthread_t);=0A=
int pthread_continue (pthread_t);=0A=
=0A=
=0A=
}=0A=
=0A=
=0A=
=0A=
# 16 "ident.h" 2=0A=
=0A=
=0A=
=0A=
namespace Identd {=0A=
void Startup(void);=0A=
void Shutdown(void);=0A=
=0A=
=0A=
void Lookup(Descriptor *newd);=0A=
char * LookupHost(struct sockaddr_in sa);=0A=
char * LookupUser(struct sockaddr_in sa);=0A=
void Receive(void);=0A=
void * Loop(void *);=0A=
=0A=
=0A=
bool IsActive(void);=0A=
=0A=
struct LookupRec {=0A=
bool done;=0A=
=0A=
struct sockaddr_in address;=0A=
SInt32 fd;=0A=
char host[256];=0A=
char user[256];=0A=
};=0A=
=0A=
extern LList<LookupRec *> lookups;=0A=
=0A=
extern pthread_t thread;=0A=
extern pthread_mutex_t lookup_mutex;=0A=
=0A=
=0A=
struct Prefs {=0A=
bool host;=0A=
bool user;=0A=
};=0A=
extern Prefs lookup;=0A=
}=0A=
# 49 "comm.cp" 2=0A=
=0A=
# 1 "constants.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern const char *weekdays[];=0A=
extern const char *month_name[];=0A=
extern const char *connected_types[];=0A=
extern const char circlemud_version[];=0A=
extern const char *color_liquid[];=0A=
extern const char *fullness[];=0A=
=0A=
=0A=
extern const struct attack_hit_type attack_hit_text[];=0A=
extern const char *genders[];=0A=
extern const char *affected_bits[];=0A=
extern const char *apply_types[];=0A=
extern const char *action_bits[];=0A=
extern const char *player_bits[];=0A=
extern const char *preference_bits[];=0A=
extern const char *position_types[];=0A=
extern const char *connected_types[];=0A=
extern const char *staff_bits[];=0A=
extern const char *race_abbrevs[];=0A=
extern const char relation_colors[];=0A=
extern const char *positions[];=0A=
extern const char *race_types[];=0A=
extern const char *pc_race_types[];=0A=
extern const char *mobprog_types[];=0A=
extern const char *relations[];=0A=
=0A=
=0A=
extern const char *MENU;=0A=
extern const char *WELC_MESSG;=0A=
extern const char *START_MESSG;=0A=
extern char *GREETINGS;=0A=
extern const char *race_menu;=0A=
=0A=
extern const char *bodyparts[];=0A=
extern const char *bodyparts_limbs[];=0A=
=0A=
=0A=
extern const char *item_types[];=0A=
extern const char *wear_bits[];=0A=
extern const char *extra_bits[];=0A=
extern const char *container_bits[];=0A=
extern const char *drinks[];=0A=
extern const char *equipment_types[];=0A=
extern const char * ammo_types[];=0A=
extern const char *where[];=0A=
=0A=
=0A=
extern const char *room_bits[];=0A=
extern const char *exit_bits[];=0A=
extern const char *sector_types[];=0A=
=0A=
=0A=
extern const int rev_dir[];=0A=
extern const int movement_loss[];=0A=
extern char *dir_text[];=0A=
extern char *dirs[];=0A=
extern char *from_dir[];=0A=
extern char *dir_text_2[];=0A=
=0A=
=0A=
extern const char *mtrig_types[];=0A=
extern const char *otrig_types[];=0A=
extern const char *wtrig_types[];=0A=
=0A=
=0A=
extern const char *trade_letters[];=0A=
extern const char *shop_bits[];=0A=
=0A=
=0A=
# 50 "comm.cp" 2=0A=
=0A=
# 1 "editor.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
class Editor {=0A=
public:=0A=
Editor(Descriptor *desc) : d(desc), mode(0), value(0), =
number(0),=0A=
zoneNum(0), storage(__null ) { };=0A=
virtual ~Editor(void) { };=0A=
=0A=
virtual void SaveInternally(void) =3D 0;=0A=
static void SaveDisk(SInt32 number) { };=0A=
=0A=
virtual void Menu(void) =3D 0;=0A=
virtual void Parse(char *arg) =3D 0;=0A=
=0A=
virtual void EndTextEdit(void) =3D 0;=0A=
=0A=
enum FinishMode { Structs, All };=0A=
void Finish(void);=0A=
virtual void Finish(FinishMode mode) =3D 0;=0A=
=0A=
protected:=0A=
Descriptor * d;=0A=
SInt32 mode;=0A=
SInt32 value;=0A=
=0A=
public:=0A=
VNum number;=0A=
SInt16 zoneNum;=0A=
=0A=
protected:=0A=
char * storage;=0A=
};=0A=
=0A=
inline void Editor::SaveInternally(void) { }=0A=
inline void Editor::Menu(void) { }=0A=
inline void Editor::Parse(char *arg) { }=0A=
inline void Editor::EndTextEdit(void) { }=0A=
inline void Editor::Finish(FinishMode mode) { }=0A=
=0A=
=0A=
# 51 "comm.cp" 2=0A=
=0A=
# 1 "space.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
class Point { =0A=
public:=0A=
float x, y, z;=0A=
=0A=
Point(float xVal =3D 0, float yVal =3D 0, float zVal =3D 0) :=0A=
x(xVal), y(yVal), z(zVal) { }=0A=
Point(const Point &a) : x(a.x), y(a.y), z(a.z) { }=0A=
=0A=
Point & operator+=3D(const Point &b);=0A=
Point & operator-=3D(const Point &b);=0A=
float Pythagorean(void) const;=0A=
static float Distance(const Point &a, const Point &b);=0A=
};=0A=
Point operator-(const Point &a, const Point &b);=0A=
Point operator+(const Point &a, const Point &b);=0A=
Point operator/(const Point &a, const Point &b);=0A=
Point operator/(const Point &a, float b);=0A=
Point operator*(const Point &a, const Point &b);=0A=
Point operator*(const Point &a, float b);=0A=
=0A=
=0A=
class StellarObject { =0A=
public:=0A=
enum StellarObjectType { Base, Star, Planet };=0A=
StellarObject(StellarObjectType objectType =3D Base);=0A=
virtual ~StellarObject(void);=0A=
=0A=
char * name;=0A=
=0A=
Point position;=0A=
=0A=
SInt32 gravity;=0A=
StellarObjectType type;=0A=
};=0A=
=0A=
=0A=
class Star : public StellarObject {=0A=
public:=0A=
Star(void) : StellarObject(StellarObject::Star) { };=0A=
virtual ~Star(void) { };=0A=
};=0A=
=0A=
=0A=
=0A=
class Dock {=0A=
public:=0A=
Dock(void);=0A=
~Dock(void);=0A=
=0A=
VNum dockVNum;=0A=
char * name;=0A=
};=0A=
=0A=
=0A=
class Planet : public StellarObject {=0A=
public:=0A=
Planet(void) : StellarObject(StellarObject::Planet) { };=0A=
virtual ~Planet(void) { };=0A=
=0A=
Vector<Dock *> docks;=0A=
};=0A=
=0A=
=0A=
class Ship;=0A=
class StarSystem {=0A=
public:=0A=
SInt32 Send(Ship *from, Ship *ignore, const char *fmt, ...)=0A=
__attribute__ ((format (printf, 4, 5)));=0A=
=0A=
=0A=
char * name;=0A=
VNum number;=0A=
=0A=
=0A=
char * file;=0A=
=0A=
=0A=
Point position;=0A=
=0A=
=0A=
LList<Ship *> ships;=0A=
LList<Star *> stars;=0A=
LList<Planet *> planets;=0A=
=0A=
void Update(void);=0A=
void Write(void);=0A=
void Parser(char *input);=0A=
=0A=
public:=0A=
const char * Name(void);=0A=
=0A=
public:=0A=
static Map<VNum, StarSystem>Index;=0A=
=0A=
static bool Find(VNum vnum) { return Index.Find(vnum); }=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
static VNum FromName(const char *name);=0A=
static VNum FromVNum(VNum vnum);=0A=
=0A=
static void WriteList(void);=0A=
};=0A=
=0A=
=0A=
inline const char *StarSystem::Name(void) { return name; }=0A=
=0A=
=0A=
class Ship : public MUDObject {=0A=
public:=0A=
enum ShipType { Civilian, Mob };=0A=
enum Kind { Fighter, Midsize, Capital, Platform, Flight, Hover, Boat, =
Wheeled, Tread, Walker };=0A=
enum State { Docked, Ready, Busy1, Busy2, Busy3, Refuel, Launch1, =
Launch2, Land1, Land2,=0A=
PreHyper, Hyperspace, Disabled, Flying };=0A=
enum { ShipTypes =3D Mob + 1, ShipKinds =3D Walker + 1, ShipStates =3D =
Flying + 1};=0A=
public:=0A=
Ship(void);=0A=
virtual ~Ship(void);=0A=
=0A=
virtual const char *Name(void) const;=0A=
virtual void Extract(void);=0A=
void Save(void);=0A=
=0A=
void Parser(char *input);=0A=
=0A=
void Move(void);=0A=
void Update(void);=0A=
=0A=
SInt32 SendCockpit(const char *fmt, ...) __attribute__ ((format =
(printf, 2, 3)));=0A=
SInt32 Send(const char *fmt, ...) __attribute__ ((format (printf, =
2, 3)));=0A=
=0A=
bool Facing(const Point &target);=0A=
=0A=
=0A=
static Ship * FindInList(const char *name, LList<Ship *> &list);=0A=
=0A=
void ToSystem(VNum newSystem);=0A=
void FromSystem(void);=0A=
virtual void ToRoom(VNum newRoom);=0A=
virtual void FromRoom(void);=0A=
=0A=
void Launch(void);=0A=
void Orbit(void);=0A=
void Hyper(void);=0A=
void EnterOrbit(void);=0A=
void Land(void);=0A=
=0A=
void Destroy(Character *killer =3D __null );=0A=
void Reset(void);=0A=
public:=0A=
=0A=
char * name;=0A=
char * description;=0A=
=0A=
=0A=
char * file;=0A=
char * home;=0A=
char * dest;=0A=
State state;=0A=
=0A=
=0A=
=0A=
Kind kind;=0A=
ShipType type;=0A=
SInt16 hyperSpeed, realSpeed;=0A=
=0A=
=0A=
char * owner;=0A=
char * pilot;=0A=
=0A=
=0A=
VNum starsystem; =0A=
VNum shipyard; =0A=
VNum lastDock;=0A=
SInt16 speed;=0A=
Point position, heading;=0A=
SInt32 hyperDistance;=0A=
VNum targetSystem;=0A=
=0A=
=0A=
VNum firstRoom, lastRoom;=0A=
VNum cockpit, pilotSeat;=0A=
VNum enterance;=0A=
=0A=
public:=0A=
static LList<Ship *>ships;=0A=
=0A=
static Ship * ByPilot(const char *name);=0A=
static Ship * ByCockpit(VNum seat);=0A=
static Ship * ByPilotSeat(VNum seat);=0A=
=0A=
=0A=
=0A=
static Ship * ByEnterance(VNum seat);=0A=
=0A=
=0A=
static void ShowShips(Character *ch, LList<Ship *> &shipList);=0A=
=0A=
static Index<Ship> Index;=0A=
};=0A=
=0A=
=0A=
inline const char *Ship::Name(void) const { return this->name; }=0A=
=0A=
=0A=
void UpdateSpace(void);=0A=
void MoveShips(void);=0A=
# 52 "comm.cp" 2=0A=
=0A=
=0A=
# 1 "imc.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "imc-config.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
namespace IMC {=0A=
=0A=
const SInt32 Memory =3D 256; =0A=
const SInt32 PacketLife =3D 60; =0A=
=0A=
const SInt32 MaxReconnectTime =3D 90 * 60, =0A=
MinReconnectTime =3D 2 * 60; =0A=
=0A=
const SInt32 LoginTimeout =3D 120, =0A=
KeepaliveTime =3D 300, =0A=
KeepaliveTimeout=3D 400, =0A=
DropTimeout =3D 600; =0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
const SInt32 SPAM1INTERVAL =3D 1,=0A=
SPAM1MAX =3D 1,=0A=
SPAM1TIME =3D 10;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
const SInt32 SPAM2INTERVAL =3D 1,=0A=
SPAM2MAX =3D 3,=0A=
SPAM2TIME =3D 5;=0A=
=0A=
=0A=
const SInt32 VERSION =3D 2; =0A=
extern const char * REVISION;=0A=
extern const char * VERSIONID; =0A=
=0A=
} =0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 179 "imc-config.h"=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 195 "imc-config.h"=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 38 "imc.h" 2=0A=
=0A=
=0A=
namespace IMC {=0A=
=0A=
=0A=
enum {=0A=
IA_NONE =3D 0,=0A=
IA_CONFIG1,=0A=
IA_CONFIG2,=0A=
IA_UP,=0A=
IA_LISTENING=0A=
};=0A=
=0A=
=0A=
=0A=
enum {=0A=
IMC_CLOSED =3D 0,=0A=
IMC_CONNECTING,=0A=
IMC_WAIT1,=0A=
IMC_WAIT2,=0A=
IMC_CONNECTED=0A=
};=0A=
=0A=
=0A=
=0A=
enum {=0A=
IMC_NOAUTO =3D (1 << 0), =0A=
IMC_CLIENT =3D (1 << 1), =0A=
IMC_RECONNECT =3D (1 << 2), =0A=
IMC_BROADCAST =3D (1 << 3), =0A=
IMC_DENY =3D (1 << 4), =0A=
IMC_QUIET =3D (1 << 5), =0A=
IMC_HUB =3D (1 << 6), =0A=
IMC_MAIN_HUB =3D (1 << 7), =0A=
IMC_OLD_HUB =3D (1 << 8), =0A=
IMC_DEAD_HUB =3D (1 << 9), =0A=
IMC_NEW_HUB =3D (1 << 10), =0A=
IMC_NOSWITCH =3D (1 << 11) =0A=
};=0A=
=0A=
=0A=
=0A=
enum {=0A=
IMC_IGNORE =3D 1, =0A=
IMC_NOTRUST, =0A=
IMC_TRUST =0A=
};=0A=
=0A=
=0A=
=0A=
enum {=0A=
IMC_IGNORE_EXACT =3D 0, =0A=
IMC_IGNORE_PREFIX, =0A=
IMC_IGNORE_SUFFIX =0A=
};=0A=
=0A=
=0A=
=0A=
enum {=0A=
IMC_INVIS =3D 1,=0A=
IMC_HIDDEN=0A=
};=0A=
=0A=
} =0A=
=0A=
class Character;=0A=
=0A=
=0A=
namespace IMC {=0A=
=0A=
class IMCFlagType;=0A=
class IMCData;=0A=
class IMCCharacter;=0A=
class IMCPacket;=0A=
class IMCConnect;=0A=
class IMCInfo;=0A=
=0A=
=0A=
class IMCFlagType {=0A=
public:=0A=
char * name;=0A=
SInt32 value;=0A=
};=0A=
=0A=
=0A=
class IMCData {=0A=
public:=0A=
IMCData(void) { value[0] =3D key[0] =3D '\0'; };=0A=
~IMCData(void) { };=0A=
=0A=
void Init(void);=0A=
void Free(void);=0A=
void Clone(const IMCData *p);=0A=
=0A=
const char * GetKey(const char *key, const char *def) const;=0A=
SInt32 GetKey(const char *key, SInt32 def) const;=0A=
=0A=
void AddKey(const char *key, const char *value);=0A=
void AddKey(const char *key, SInt32 value);=0A=
=0A=
char * key[20 ];=0A=
char * value[20 ];=0A=
};=0A=
=0A=
=0A=
=0A=
class IMCCharacter {=0A=
public:=0A=
IMCCharacter(void) : invis(0), level(0), wizi(0) { *name =3D =
'\0'; };=0A=
=0A=
=0A=
static const IMCCharacter * Get(const Character *ch);=0A=
bool Visible(const IMCCharacter *viewed) const;=0A=
bool Visible(const Character *viewed) const;=0A=
=0A=
char name[(20 + 40 +1) ]; =0A=
bool invis; =0A=
SInt8 level; =0A=
SInt8 wizi; =0A=
};=0A=
=0A=
=0A=
class IMCPacket {=0A=
public:=0A=
IMCPacket(void) {=0A=
to[0] =3D from[0] =3D type[0] =3D '\0';=0A=
i.to[0] =3D i.from[0] =3D i.path[0] =3D '\0';=0A=
i.sequence =3D 0;=0A=
i.stamp =3D 0;=0A=
};=0A=
~IMCPacket(void) { };=0A=
=0A=
void Send(void);=0A=
void Receive(void);=0A=
bool Receive(SInt32 bcast); =0A=
=0A=
void Forward(void);=0A=
void GetData(IMCCharacter *d);=0A=
void SetData(const IMCCharacter *d);=0A=
=0A=
char to[(20 + 40 +1) ]; =0A=
char from[(20 + 40 +1) ]; =0A=
char type[20 ]; =0A=
IMCData data;=0A=
struct {=0A=
char to[(20 + 40 +1) ];=0A=
char from[(20 + 40 +1) ];=0A=
char path[200 ];=0A=
UInt32 sequence;=0A=
SInt32 stamp;=0A=
} i;=0A=
protected:=0A=
bool CanForward(void);=0A=
};=0A=
=0A=
=0A=
class IMCConnect {=0A=
public:=0A=
IMCConnect(void);=0A=
~IMCConnect(void);=0A=
=0A=
void Close(void);=0A=
void Read(void);=0A=
void Write(void);=0A=
void Send(const char *line);=0A=
void Debug(SInt32 out, const char *string);=0A=
=0A=
IMCPacket * InterpretPacket(const char *line);=0A=
void SendPacket(const IMCPacket *p);=0A=
=0A=
void ClientPassword(const char *argument);=0A=
void ServerPassword(const char *argument);=0A=
=0A=
const char * Name(void);=0A=
=0A=
IMCInfo * info;=0A=
=0A=
SInt32 desc;=0A=
UInt16 state;=0A=
UInt16 version;=0A=
=0A=
SInt16 newoutput;=0A=
=0A=
char * inbuf;=0A=
SInt32 insize;=0A=
=0A=
char * outbuf;=0A=
SInt32 outsize;=0A=
=0A=
SInt32 spamcounter1, spamcounter2;=0A=
SInt32 spamtime1, spamtime2;=0A=
};=0A=
=0A=
=0A=
class IMCInfo {=0A=
public:=0A=
IMCInfo(void);=0A=
~IMCInfo(void);=0A=
=0A=
void SetupReconnect(void);=0A=
=0A=
=0A=
=0A=
char * name;=0A=
char * host;=0A=
=0A=
IMCConnect * connection;=0A=
UInt16 port;=0A=
=0A=
char * serverpw;=0A=
char * clientpw;=0A=
=0A=
Flags flags;=0A=
=0A=
time_t timer_duration;=0A=
=0A=
SInt32 rcvstamp;=0A=
Flags noforward;=0A=
=0A=
time_t last_connected;=0A=
SInt32 connectionAttempts;=0A=
};=0A=
=0A=
=0A=
class IMCStats {=0A=
public:=0A=
time_t start;=0A=
SInt32 rx_pkts;=0A=
SInt32 tx_pkts;=0A=
SInt32 rx_bytes;=0A=
SInt32 tx_bytes;=0A=
=0A=
SInt32 max_pkt;=0A=
SInt32 sequence_drops;=0A=
};=0A=
=0A=
=0A=
enum {=0A=
IMC_REMINFO_NORMAL =3D 0,=0A=
IMC_REMINFO_EXPIRED =3D 1=0A=
};=0A=
=0A=
=0A=
class IMCRemInfo {=0A=
public:=0A=
IMCRemInfo(void);=0A=
~IMCRemInfo(void);=0A=
=0A=
char * name;=0A=
char * version;=0A=
time_t alive;=0A=
SInt32 ping;=0A=
SInt32 type;=0A=
bool hide;=0A=
char * route;=0A=
char * path;=0A=
UInt32 top_sequence;=0A=
};=0A=
=0A=
=0A=
class IMCEvent {=0A=
public:=0A=
IMCEvent(void);=0A=
~IMCEvent(void);=0A=
=0A=
time_t when;=0A=
void (*callback)(Ptr data);=0A=
Ptr data;=0A=
SInt32 timed;=0A=
public:=0A=
static void Add(int when, void (*callback)(Ptr), Ptr data, int =
timed);=0A=
static void Cancel(void (*callback)(Ptr), Ptr data);=0A=
static void Run(time_t time);=0A=
static int Next(void (*callback)(Ptr), Ptr data);=0A=
};=0A=
=0A=
=0A=
struct IMCVInfo {=0A=
SInt32 version;=0A=
const char * (*generate)(const IMCPacket *);=0A=
IMCPacket * (*interpret)(const char *);=0A=
};=0A=
=0A=
=0A=
=0A=
struct IMCMemory {=0A=
char * from;=0A=
UInt32 sequence;=0A=
};=0A=
=0A=
=0A=
class IMCIgnore {=0A=
public:=0A=
IMCIgnore(void);=0A=
~IMCIgnore(void);=0A=
char * name;=0A=
SInt32 match;=0A=
SInt32 type;=0A=
=0A=
public:=0A=
static IMCIgnore * Find(const char *who, int type);=0A=
static int Ignored(const char *who);=0A=
static void Add(const char *who, int flags);=0A=
static int Delete(const char *who);=0A=
};=0A=
=0A=
=0A=
class IMCMail {=0A=
public:=0A=
IMCMail(void);=0A=
~IMCMail(void);=0A=
=0A=
void Write(FILE *out);=0A=
=0A=
char * from;=0A=
char * to;=0A=
char * text;=0A=
char * date;=0A=
char * subject;=0A=
char * id;=0A=
time_t received;=0A=
SInt32 usage;=0A=
};=0A=
=0A=
=0A=
class IMCQNode {=0A=
public:=0A=
IMCQNode(void);=0A=
~IMCQNode(void);=0A=
=0A=
void Write(FILE *out);=0A=
=0A=
IMCMail * data;=0A=
char * tomud;=0A=
IMCQNode * next;=0A=
};=0A=
=0A=
=0A=
class IMCMailID {=0A=
public:=0A=
IMCMailID(void);=0A=
~IMCMailID(void);=0A=
=0A=
void Write(FILE *out);=0A=
=0A=
char * id;=0A=
time_t received;=0A=
};=0A=
=0A=
=0A=
class IMCSiteInfo {=0A=
public:=0A=
char * name;=0A=
char * host;=0A=
char * email;=0A=
char * imail;=0A=
char * www;=0A=
char * details;=0A=
char * flags;=0A=
SInt32 maxGuests;=0A=
};=0A=
=0A=
=0A=
=0A=
extern IMCSiteInfo siteinfo;=0A=
=0A=
=0A=
extern IMCMemory memory[Memory];=0A=
=0A=
extern IMCVInfo vinfo[];=0A=
=0A=
=0A=
extern IMCStats stats;=0A=
=0A=
=0A=
extern const IMCFlagType connection_flags[];=0A=
extern const IMCFlagType ignore_types[];=0A=
extern const IMCFlagType state_names[];=0A=
extern const IMCFlagType active_names[];=0A=
=0A=
extern time_t boottime; =0A=
extern SInt32 lock; =0A=
extern char * name; =0A=
extern UInt16 port; =0A=
extern UInt32 bind; =0A=
extern char * prefix; =0A=
extern bool router, =0A=
logOn, =0A=
hubSwitch; =0A=
extern LList<IMCIgnore *> ignore_list; =0A=
extern LList<IMCRemInfo *> reminfo_list; =0A=
=0A=
extern LList<IMCConnect *> connect_list; =0A=
extern LList<IMCInfo *> info_list; =0A=
extern LList<IMCEvent *> event_list; =0A=
=0A=
=0A=
extern time_t now; =0A=
extern UInt32 sequencenumber; =0A=
extern SInt32 active; =0A=
extern SInt32 lock_file; =0A=
=0A=
extern LList<IMCMail *> ml_head; =0A=
extern IMCQNode *mq_head, *mq_tail; =0A=
extern LList<IMCMailID *> idlist; =0A=
=0A=
extern char lasterror[(16300 -2* (20 + 40 +1) - 200 - 20 -20) ]; =0A=
=0A=
=0A=
=0A=
char * getsbuf(int len); =0A=
void shrinksbuf(char *buf);=0A=
IMCRemInfo *find_reminfo(const char *name, int type); =0A=
IMCInfo * getinfo(const char *name); =0A=
=0A=
=0A=
=0A=
const char *flagname(int value, const IMCFlagType *table);=0A=
int flagvalue(const char *name, const IMCFlagType *table);=0A=
const char *statename(int value, const IMCFlagType *table);=0A=
int statevalue(const char *name, const IMCFlagType *table);=0A=
=0A=
=0A=
const char *nameof(const char *name);=0A=
const char *mudof(const char *name);=0A=
const char *makename(const char *name, const char *mud);=0A=
const char *firstinpath(const char *path);=0A=
const char *lastinpath(const char *path);=0A=
const char *getarg(const char *arg, char *buf, int length);=0A=
bool hasname(const char *list, const char *name);=0A=
void addname(char **list, const char *name);=0A=
void removename(char **list, const char *name);=0A=
void slower(char *what);=0A=
void sncpy(char *dest, const char *src, int count);=0A=
=0A=
=0A=
=0A=
void logstring(const char *format,...) =
__attribute__((format(printf,1,2)));=0A=
void logerror(const char *format,...) =
__attribute__((format(printf,1,2)));=0A=
void qerror(const char *format,...) =
__attribute__((format(printf,1,2)));=0A=
void lerror(const char *format,...) =
__attribute__((format(printf,1,2)));=0A=
const char *error(void);=0A=
=0A=
=0A=
=0A=
void log(const char *string);=0A=
=0A=
=0A=
=0A=
void ev_expire_reminfo(Ptr data);=0A=
void ev_drop_reminfo(Ptr data);=0A=
void ev_login_timeout(Ptr data); =0A=
void ev_reconnect(Ptr data);=0A=
void ev_shrink_input(Ptr data);=0A=
void ev_shrink_output(Ptr data);=0A=
void ev_keepalive(Ptr data);=0A=
void ev_request_keepalive(Ptr data);=0A=
void ev_spam1(Ptr data);=0A=
void ev_spam2(Ptr data);=0A=
void ev_qnode_expire(Ptr data); =0A=
void ev_mailid_expire(Ptr data); =0A=
void ev_qnode_send(Ptr data); =0A=
void ev_imc_optimize(Ptr data);=0A=
void ev_imc_pollforhub(Ptr data);=0A=
=0A=
=0A=
=0A=
void Startup(const char *prefix);=0A=
void StartupPort(void);=0A=
void StartupNetwork(void);=0A=
void Shutdown(void);=0A=
void ShutdownPort(void);=0A=
void ShutdownNetwork(void);=0A=
void Idle(int s, int us);=0A=
=0A=
int get_max_timeout(void);=0A=
int fill_fdsets(int maxfd, _types_fd_set *read, _types_fd_set *write, =
_types_fd_set *exc);=0A=
void idle_select(_types_fd_set *read, _types_fd_set *write, =
_types_fd_set *exc, time_t now);=0A=
=0A=
int Connect(const char *mud);=0A=
int Disconnect(const char *mud);=0A=
=0A=
=0A=
=0A=
void sendignore(const char *to);=0A=
=0A=
void sendChat(const IMCCharacter *from, int channel, const char =
*argument, const char *to);=0A=
void sendEmote(const IMCCharacter *from, int channel, const char =
*argument, const char *to);=0A=
void sendTell(const IMCCharacter *from, const char *to, const char =
*argument, int isreply);=0A=
void sendWho(const IMCCharacter *from, const char *to, const char =
*type);=0A=
void sendWhoreply(const char *to, const char *data, int sequence);=0A=
void sendWhois(const IMCCharacter *from, const char *to);=0A=
void sendWhoisreply(const char *to, const char *data);=0A=
void sendBeep(const IMCCharacter *from, const char *to);=0A=
void sendKeepalive(void);=0A=
void sendPing(const char *to, int time_s, int time_u);=0A=
void sendPingreply(const char *to, int time_s, int time_u, const char =
*path);=0A=
void sendWhois(const IMCCharacter *from, const char *to);=0A=
void sendWhoisreply(const char *to, const char *text);=0A=
void sendAutoconnect(const char *to);=0A=
void sendInfoRequest(void);=0A=
=0A=
void whoreply_start(const char *to);=0A=
void whoreply_add(const char *text);=0A=
void whoreply_end(void);=0A=
=0A=
=0A=
=0A=
void recvChat(const IMCCharacter *from, int channel, const char =
*argument);=0A=
void recvEmote(const IMCCharacter *from, int channel, const char =
*argument);=0A=
void recvTell(const IMCCharacter *from, const char *to, const char =
*argument, int isreply);=0A=
void recvWhoreply(const char *to, const char *data, int sequence);=0A=
void recvWho(const IMCCharacter *from, const char *type);=0A=
void recvBeep(const IMCCharacter *from, const char *to);=0A=
void recvKeepalive(const char *from, const char *version, const char =
*flags);=0A=
void recvPing(const char *from, int time_s, int time_u, const char =
*path);=0A=
void recvPingreply(const char *from, int time_s, int time_u, const char =
*pathto, const char *pathfrom);=0A=
void recvWhois(const IMCCharacter *from, const char *to);=0A=
void recvWhoisreply(const char *to, const char *text);=0A=
void recvInforequest(const char *from);=0A=
void recvInforeply(const char *from, const char *hub, int direct);=0A=
void recvAutoconnect(const char *to, const char *rhost, int rport, =
const char *rclientpw, const char *rserverpw,=0A=
int rrcvstamp, int rnoforward, const char *rflags, const char =
*remotename);=0A=
=0A=
void requestKeepalive(void);=0A=
void autoconnectReplyAccept(const char *from, const char *rhost, int =
rport, const char *rclientpw, const char *rserverpw,=0A=
int rrcvstamp, int rnoforward, const char *rflags, const char =
*remotename, const char *confirm);=0A=
=0A=
void traceroute(int ping, const char *pathto, const char *pathfrom);=0A=
=0A=
=0A=
const char *sockets(void);=0A=
const char *getstats(void);=0A=
=0A=
=0A=
const char *make_password(void);=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
const char *Ignore(const char *what);=0A=
const char *List(int level);=0A=
int Command(const char *argument);=0A=
int SaveConfig(void);=0A=
int ReadConfig(void);=0A=
int SaveIgnores(void);=0A=
int ReadIgnores(void);=0A=
=0A=
extern char globalHubname[20 ];=0A=
extern int globalDirectnum;=0A=
=0A=
=0A=
=0A=
void recvMailok(const char *from, const char *id);=0A=
void recvMailrej(const char *from, const char *id, const char =
*reason);=0A=
void recvMail(const char *from, const char *to, const char *date,=0A=
const char *subject, const char *id, const char *text);=0A=
void sendMail(const char *from, const char *to, const char *date,=0A=
const char *subject, const char *text);=0A=
=0A=
char *mail_arrived(const char *from, const char *to, const char =
*date,=0A=
const char *subject, const char *text);=0A=
=0A=
void mail_startup(void);=0A=
void mail_shutdown(void);=0A=
=0A=
char *mail_showqueue(void);=0A=
=0A=
} =0A=
=0A=
=0A=
# 54 "comm.cp" 2=0A=
=0A=
# 1 "imc-mercbase.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "imc-mercdefs.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 48 "imc-mercdefs.h"=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 85 "imc-mercdefs.h"=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 37 "imc-mercbase.h" 2=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
void ( do_rinfo )(Character *ch, char *argument, SInt32 cmd, const char =
*command, SInt32 subcmd) ;=0A=
=0A=
void ( do_rtell )(Character *ch, char *argument, SInt32 cmd, const char =
*command, SInt32 subcmd) ;=0A=
void ( do_rreply )(Character *ch, char *argument, SInt32 cmd, const =
char *command, SInt32 subcmd) ;=0A=
void ( do_rwho )(Character *ch, char *argument, SInt32 cmd, const char =
*command, SInt32 subcmd) ;=0A=
void ( do_rwhois )(Character *ch, char *argument, SInt32 cmd, const =
char *command, SInt32 subcmd) ;=0A=
void ( do_rquery )(Character *ch, char *argument, SInt32 cmd, const =
char *command, SInt32 subcmd) ;=0A=
void ( do_rbeep )(Character *ch, char *argument, SInt32 cmd, const char =
*command, SInt32 subcmd) ;=0A=
void ( do_rfinger )(Character *ch, char *argument, SInt32 cmd, const =
char *command, SInt32 subcmd) ;=0A=
=0A=
void ( do_imclist )(Character *ch, char *argument, SInt32 cmd, const =
char *command, SInt32 subcmd) ;=0A=
void ( do_rsockets )(Character *ch, char *argument, SInt32 cmd, const =
char *command, SInt32 subcmd) ;=0A=
void ( do_imc )(Character *ch, char *argument, SInt32 cmd, const char =
*command, SInt32 subcmd) ;=0A=
void ( do_imcpoll )(Character *ch, char *argument, SInt32 cmd, const =
char *command, SInt32 subcmd) ;=0A=
void ( do_rignore )(Character *ch, char *argument, SInt32 cmd, const =
char *command, SInt32 subcmd) ;=0A=
void ( do_rconnect )(Character *ch, char *argument, SInt32 cmd, const =
char *command, SInt32 subcmd) ;=0A=
void ( do_rdisconnect )(Character *ch, char *argument, SInt32 cmd, =
const char *command, SInt32 subcmd) ;=0A=
=0A=
void ( do_mailqueue )(Character *ch, char *argument, SInt32 cmd, const =
char *command, SInt32 subcmd) ;=0A=
void ( do_istats )(Character *ch, char *argument, SInt32 cmd, const =
char *command, SInt32 subcmd) ;=0A=
=0A=
void ( do_rchannels )(Character *ch, char *argument, SInt32 cmd, const =
char *command, SInt32 subcmd) ;=0A=
void ( do_rchanset )(Character *ch, char *argument, SInt32 cmd, const =
char *command, SInt32 subcmd) ;=0A=
=0A=
void ( do_rping )(Character *ch, char *argument, SInt32 cmd, const char =
*command, SInt32 subcmd) ;=0A=
=0A=
namespace IMC {=0A=
=0A=
void markstrings(void (*markfn)(char *));=0A=
=0A=
=0A=
const char *color_mtoi(const char *);=0A=
const char *color_itom(const char *);=0A=
=0A=
=0A=
void post_mail(Character *from, const char *sender, const char =
*to_list,=0A=
const char *subject, const char *date, const char =
*text);=0A=
} =0A=
=0A=
=0A=
# 55 "comm.cp" 2=0A=
=0A=
# 1 "icec-mercbase.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "ice.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
namespace ICE {=0A=
=0A=
enum { Timeout =3D 650 };=0A=
=0A=
void Init(void);=0A=
void Shutdown(void);=0A=
=0A=
const char * Command(const char *from, const char *arg);=0A=
=0A=
void recvMsgR(const char *from, const char *realfrom, const char =
*chan,=0A=
const char *txt, int emote);=0A=
void recvMsgB(const char *from, const char *chan, const char *txt, =
int emote);=0A=
void recvUpdate(const char *from, const char *chan, const char =
*owner,=0A=
const char *operators, const char *policy, const char =
*invited,=0A=
const char *excluded);=0A=
void recvDestroy(const char *from, const char *channel);=0A=
=0A=
const char * NameOf(const char *fullname);=0A=
const char * MudOf(const char *fullname);=0A=
=0A=
=0A=
class LocalChannel {=0A=
public:=0A=
LocalChannel(void) : name(__null ), level(0), format1(__null ), =
format2(__null ) { };=0A=
~LocalChannel(void);=0A=
=0A=
char * name;=0A=
int level;=0A=
char * format1;=0A=
char * format2;=0A=
};=0A=
=0A=
=0A=
class Channel {=0A=
public:=0A=
Channel(void);=0A=
~Channel(void);=0A=
=0A=
bool Audible(const char *who);=0A=
void SendMessage(const char *name, const char *text, bool =
emote);=0A=
void Show(const char *from, const char *text, bool emote);=0A=
void FreeLocal(void);=0A=
void NotifyUpdate(void);=0A=
=0A=
char * name;=0A=
char * owner;=0A=
char * operators;=0A=
=0A=
enum Policy { Open =3D 1, Closed, Private }=0A=
policy;=0A=
char * invited;=0A=
char * excluded;=0A=
char * active;=0A=
LocalChannel * local;=0A=
=0A=
public:=0A=
static void Load(void);=0A=
static void Save(void);=0A=
static Channel * Find(const char *name);=0A=
static Channel * FindLocal(const char *name);=0A=
};=0A=
=0A=
=0A=
extern LList<Channel *> channels;=0A=
=0A=
} =0A=
=0A=
=0A=
# 37 "icec-mercbase.h" 2=0A=
=0A=
=0A=
=0A=
void ( do_icommand )(Character *ch, char *argument, SInt32 cmd, const =
char *command, SInt32 subcmd) ;=0A=
void ( do_isetup )(Character *ch, char *argument, SInt32 cmd, const =
char *command, SInt32 subcmd) ;=0A=
void ( do_ilist )(Character *ch, char *argument, SInt32 cmd, const char =
*command, SInt32 subcmd) ;=0A=
void ( do_ichannels )(Character *ch, char *argument, SInt32 cmd, const =
char *command, SInt32 subcmd) ;=0A=
=0A=
bool icec_command_hook(Character *ch, const char *command, char =
*argument);=0A=
=0A=
=0A=
# 56 "comm.cp" 2=0A=
=0A=
=0A=
# 1 "iced.h" 1=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
namespace ICED {=0A=
=0A=
extern const char * Creators;=0A=
=0A=
const int RefreshTime =3D 30;=0A=
=0A=
extern LList<ICE::Channel *> Channels;=0A=
=0A=
ICE::Channel * FindChannel(const char *name);=0A=
=0A=
int Receive(const IMC::IMCPacket *p, int bcast);=0A=
=0A=
void recvCommand(const char *from, const char *chan, const char *cmd, =
const char *data, int override);=0A=
void policy (ICE::Channel *c, const char *cname, const char *from, =
const char *data);=0A=
void addop (ICE::Channel *c, const char *cname, const char *from, =
const char *data);=0A=
void removeop (ICE::Channel *c, const char *cname, const char *from, =
const char *data);=0A=
void invite (ICE::Channel *c, const char *cname, const char *from, =
const char *data);=0A=
void uninvite (ICE::Channel *c, const char *cname, const char *from, =
const char *data);=0A=
void exclude (ICE::Channel *c, const char *cname, const char *from, =
const char *data);=0A=
void unexclude (ICE::Channel *c, const char *cname, const char *from, =
const char *data);=0A=
void create (ICE::Channel *c, const char *cname, const char *from, =
const char *data);=0A=
void destroy (ICE::Channel *c, const char *cname, const char *from, =
const char *data);=0A=
void refresh (ICE::Channel *c, const char *cname, const char *from, =
const char *data);=0A=
void list (ICE::Channel *c, const char *cname, const char *from, const =
char *data);=0A=
=0A=
void sendDestroy(const char *cname, const char *to);=0A=
=0A=
void recvMsgP(const char *from, const char *chan, const char *txt, int =
emote);=0A=
void recvMsgB(const char *from, const char *chan);=0A=
void recvRefresh(const char *from, const char *chan);=0A=
void recvJoin(const char *from, const char *chan);=0A=
void recvLeave(const char *from, const char *chan);=0A=
=0A=
void update(ICE::Channel *c, const char *to);=0A=
=0A=
void Init(void);=0A=
=0A=
void GAnnounce(const char *fmt, ...) __attribute__((format(printf, 1, =
2)));=0A=
void Announce(ICE::Channel *c, const char *fmt, ...) =
__attribute__((format(printf, 2, 3)));=0A=
=0A=
void ev_iced_chanlist(void *data);=0A=
void ev_iced_refresh(void *data);=0A=
}=0A=
=0A=
=0A=
=0A=
# 58 "comm.cp" 2=0A=
=0A=
=0A=
=0A=
=0A=
# 1 "/usr/include/arpa/telnet.h" 1 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern char *telcmds[];=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 144 "/usr/include/arpa/telnet.h" 3=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern char *slc_names[];=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern char *authtype_names[];=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 311 "/usr/include/arpa/telnet.h" 3=0A=
=0A=
extern char *encrypt_names[];=0A=
extern char *enctype_names[];=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
# 62 "comm.cp" 2=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
extern int num_invalid;=0A=
extern SInt32 circle_restrict;=0A=
extern bool mini_mud;=0A=
bool no_rent_check =3D false;=0A=
extern UInt16 DFLT_PORT;=0A=
extern const char *DFLT_DIR;=0A=
extern const char *DFLT_IP;=0A=
extern int MAX_PLAYERS;=0A=
bool no_external_procs =3D false;=0A=
const char *LOGNAME;=0A=
=0A=
extern struct TimeInfoData time_info; =0A=
extern char *help;=0A=
=0A=
=0A=
=0A=
=0A=
struct txt_block *bufpool =3D 0; =0A=
=0A=
int buf_largecount =3D 0; =0A=
int buf_overflows =3D 0; =0A=
int buf_switches =3D 0; =0A=
int circle_shutdown =3D 0; =0A=
int circle_reboot =3D 0; =0A=
int circle_copyover =3D 0;=0A=
int no_specials =3D 0; =0A=
int max_players =3D 0; =0A=
int tics =3D 0; =0A=
int act_check;=0A=
int scheck =3D 0; =0A=
extern int nameserver_is_slow; =0A=
extern int auto_save; =0A=
extern UInt32 autosave_time; =0A=
struct timeval null_time; =0A=
FILE *logfile =3D __null ;=0A=
extern char *LOGFILE;=0A=
=0A=
static bool fCopyOver; =0A=
SInt32 mother_desc; =0A=
SInt32 port;=0A=
=0A=
=0A=
bool get_from_q(struct txt_q *queue, char *dest, int *aliased);=0A=
void init_game(UInt16 port);=0A=
void signal_setup(void);=0A=
void game_loop(int mother_desc);=0A=
int init_socket(UInt16 port);=0A=
int new_descriptor(int s);=0A=
int get_max_players(void);=0A=
int process_output(Descriptor *t);=0A=
int process_input(Descriptor *t);=0A=
void close_socket(Descriptor *d);=0A=
timeval operator-(timeval a, timeval b);=0A=
timeval operator+(timeval a, timeval b);=0A=
void flush_queues(Descriptor *d);=0A=
void nonblock(int s);=0A=
int perform_subst(Descriptor *t, char *orig, char *subst);=0A=
int perform_alias(Descriptor *d, char *orig);=0A=
void record_usage(void);=0A=
char *make_prompt(Descriptor *point);=0A=
void check_idle_passwords(void);=0A=
void heartbeat(int pulse);=0A=
void copyover_recover(void);=0A=
int set_sendbuf(int s);=0A=
void sub_write_to_char(Character *ch, char *tokens[], Ptr otokens[], =
SInt8 type[]);=0A=
void proc_color(char *inbuf, int color);=0A=
char *prompt_str(Character *ch);=0A=
void perform_act(const char *orig, const Character *ch, const Object =
*obj,=0A=
CPtr vict_obj, Character *to);=0A=
void setup_log(const char *filename, int fd);=0A=
int open_logfile(const char *filename, FILE *stderr_fp);=0A=
=0A=
=0A=
void checkpointing(int);=0A=
void reread_wizlists(int);=0A=
void unrestrict_game(int);=0A=
void hupsig(int);=0A=
void reap(int sig);=0A=
ssize_t perform_socket_read(int desc, char *read_point,size_t =
space_left);=0A=
ssize_t perform_socket_write(int desc, const char *txt,size_t =
length);=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
void reboot_wizlists(void);=0A=
void boot_db(void);=0A=
void boot_world(void);=0A=
void zone_update(void);=0A=
void point_update(void); =0A=
void hour_update(void); =0A=
void free_purged_lists(); =0A=
void check_mobile_activity(UInt32 pulse);=0A=
=0A=
void perform_violence(void);=0A=
void show_string(Descriptor *d, char *input);=0A=
void weather_and_time(int mode);=0A=
void act_mtrigger(Character *ch, const char *str, const Character =
*actor, =0A=
const Character *victim, const Object *object, const Object *target, =
const char *arg);=0A=
void script_trigger_check(void);=0A=
=0A=
UInt32 pulse;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
int enter_player_game(Descriptor *d);=0A=
=0A=
=0A=
void copyover_recover(void) {=0A=
Descriptor *d;=0A=
FILE *fp;=0A=
char *host =3D Buffer::Acquire(( 1024 ), Buffer::tBuffer, __null , =
__FUNCTION__, 197) ;=0A=
int desc, player_i;=0A=
int fOld;=0A=
char *name =3D Buffer::Acquire(( MAX_INPUT_LENGTH ), Buffer::tBuffer, =
__null , __FUNCTION__, 200) ;=0A=
=0A=
log ("Copyover recovery initiated");=0A=
=0A=
if (!(fp =3D fopen ("copyover.dat" , "r"))) { =0A=
perror ("copyover_recover:fopen");=0A=
log ("Copyover file not found. Exitting.\r\n");=0A=
exit (1);=0A=
}=0A=
=0A=
unlink ("copyover.dat" ); =0A=
=0A=
for (;;) {=0A=
fOld =3D (! 0 ) ;=0A=
fscanf (fp, "%d %s %s\n", &desc, name, host);=0A=
if (desc =3D=3D -1)=0A=
break;=0A=
=0A=
=0A=
if (write_to_descriptor (desc, "\r\nRestoring from copyover...\r\n") =
< 0) {=0A=
close (desc); =0A=
continue;=0A=
}=0A=
=0A=
d =3D new Descriptor(desc);=0A=
=0A=
strcpy(d->host, host);=0A=
descriptor_list.Add(d);=0A=
=0A=
(( d )->connected) =3D CON_CLOSE;=0A=
=0A=
=0A=
=0A=
d->character =3D new Character();=0A=
d->character->desc =3D d;=0A=
=0A=
if ((player_i =3D d->character->Load(name)) >=3D 0) {=0A=
(( d->character )->pfilepos) =3D player_i;=0A=
if (! (! ((( (( d->character )->general.act) ) & ( MOB_ISNPC =
)) ) && (( (( d->character )->general.act) ) & ( ( PLR_DELETED ) =
)) ) )=0A=
(( (( d->character )->general.act) ) &=3D ~( PLR_WRITING | =
PLR_MAILING )) ;=0A=
else=0A=
fOld =3D 0 ;=0A=
} else=0A=
fOld =3D 0 ;=0A=
=0A=
if (!fOld) { =0A=
write_to_descriptor (desc, "\r\nSomehow, your character was lost in =
the copyover. Sorry.\r\n");=0A=
close_socket (d);=0A=
} else { =0A=
write_to_descriptor (desc, "\r\nCopyover recovery =
complete.\r\n");=0A=
enter_player_game(d);=0A=
(( d )->connected) =3D CON_PLAYING;=0A=
look_at_room(d->character, 0);=0A=
}=0A=
=0A=
}=0A=
=0A=
fclose (fp);=0A=
do { Buffer::Detach(( name ), Buffer::tBuffer, __FUNCTION__, 258); ( =
name ) =3D __null ; } while(0) ;=0A=
do { Buffer::Detach(( host ), Buffer::tBuffer, __FUNCTION__, 259); ( =
host ) =3D __null ; } while(0) ;=0A=
}=0A=
=0A=
=0A=
int main(int argc, char **argv) {=0A=
int pos =3D 1;=0A=
const char *dir;=0A=
=0A=
Buffer::Init();=0A=
=0A=
port =3D DFLT_PORT;=0A=
dir =3D DFLT_DIR;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
while ((pos < argc) && (*(argv[pos]) =3D=3D '-')) {=0A=
switch (*(argv[pos] + 1)) {=0A=
case 'o':=0A=
if (*(argv[pos] + 2)) LOGNAME =3D argv[pos] + 2;=0A=
else if (++pos < argc) LOGNAME =3D argv[pos];=0A=
else {=0A=
puts("SYSERR: File name to log to expected after optoin -o.");=0A=
exit(1);=0A=
}=0A=
case 'C': =0A=
fCopyOver =3D (! 0 ) ;=0A=
mother_desc =3D atoi(argv[pos]+2);=0A=
no_rent_check =3D true;=0A=
break;=0A=
case 'd':=0A=
if (*(argv[pos] + 2)) dir =3D argv[pos] + 2;=0A=
else if (++pos < argc) dir =3D argv[pos];=0A=
else {=0A=
puts("SYSERR: Directory arg expected after option -d.");=0A=
exit(1);=0A=
}=0A=
break;=0A=
case 'm':=0A=
mini_mud =3D true;=0A=
no_rent_check =3D true;=0A=
puts("Running in minimized mode & with no rent check.");=0A=
break;=0A=
case 'c':=0A=
scheck =3D 1;=0A=
puts("Syntax check mode enabled.");=0A=
break;=0A=
case 'q':=0A=
no_rent_check =3D true;=0A=
puts("Quick boot mode -- rent check supressed.");=0A=
break;=0A=
case 'r':=0A=
circle_restrict =3D 1;=0A=
puts("Restricting game -- no new players allowed.");=0A=
break;=0A=
case 's':=0A=
no_specials =3D 1;=0A=
puts("Suppressing assignment of special routines.");=0A=
break;=0A=
case 'v':=0A=
if (*(argv[pos] + 2)) Buffer::options =3D atoi(argv[pos] + 2);=0A=
else if (++pos < argc) Buffer::options =3D atoi(argv[pos]);=0A=
else {=0A=
puts("SYSERR: Number expected after option -v.");=0A=
exit(1);=0A=
}=0A=
case 'x':=0A=
no_external_procs =3D true;=0A=
break;=0A=
default:=0A=
printf("SYSERR: Unknown option -%c in argument string.", =
*(argv[pos] + 1));=0A=
break;=0A=
}=0A=
pos++;=0A=
}=0A=
=0A=
if (pos < argc) {=0A=
if (! ((_ctype_+1)[(unsigned)( *argv[pos] )]& 04 ) ) {=0A=
printf("Usage: %s [-c] [-m] [-q] [-r] [-s] [-x] [-v val] [-d =
pathname] [port #]", argv[0]);=0A=
exit(1);=0A=
} else if ((port =3D atoi(argv[pos])) <=3D 1024) {=0A=
printf("SYSERR: Illegal port number.");=0A=
exit(1);=0A=
}=0A=
}=0A=
=0A=
=0A=
=0A=
setup_log(LOGNAME, 2 );=0A=
=0A=
=0A=
=0A=
if (chdir(dir) < 0) {=0A=
perror("SYSERR: Fatal error changing to data directory");=0A=
exit(1);=0A=
}=0A=
log("Using %s as data directory.", dir);=0A=
=0A=
log("Signal trapping.");=0A=
signal_setup();=0A=
=0A=
Identd::Startup();=0A=
=0A=
if (scheck) {=0A=
boot_world();=0A=
log("Done.");=0A=
exit(0);=0A=
} else {=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
log("Running game on port %d.", port);=0A=
init_game(port);=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
}=0A=
=0A=
Identd::Shutdown();=0A=
Buffer::Exit();=0A=
=0A=
if (circle_copyover) {=0A=
=0A=
=0A=
char buf[256], buf2[64];=0A=
=0A=
IMC::Shutdown();=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
sprintf (buf, "%d", port);=0A=
sprintf (buf2, "-C%d", mother_desc);=0A=
=0A=
=0A=
chdir ("..");=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
execl ("bin/circle" , "circle", buf2, buf, __null );=0A=
=0A=
}=0A=
=0A=
return 0;=0A=
}=0A=
=0A=
=0A=
=0A=
void init_game(UInt16 port) {=0A=
circle_srandom(time(0));=0A=
=0A=
log("Finding player limit.");=0A=
max_players =3D get_max_players();=0A=
=0A=
if (!fCopyOver) { =0A=
log("Opening mother connection.");=0A=
mother_desc =3D init_socket(port);=0A=
}=0A=
=0A=
Event::Initialize();=0A=
=0A=
boot_db();=0A=
=0A=
IMC::Startup("imc/" );=0A=
ICE::Init();=0A=
=0A=
ICED::Init();=0A=
=0A=
=0A=
if (fCopyOver) =0A=
copyover_recover();=0A=
=0A=
log("Entering game loop.");=0A=
=0A=
game_loop(mother_desc);=0A=
=0A=
=0A=
IMC::Shutdown();=0A=
=0A=
if (!circle_copyover) {=0A=
Crash_save_all();=0A=
=0A=
log("Closing all sockets.");=0A=
while (descriptor_list.Top())=0A=
close_socket(descriptor_list.Top());=0A=
=0A=
close( mother_desc ) ;=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
if (circle_reboot) {=0A=
log("Rebooting.");=0A=
exit(52); =0A=
} else if (!circle_copyover)=0A=
log("Normal termination of game.");=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
int init_socket(UInt16 port) {=0A=
int s;=0A=
int opt;=0A=
struct sockaddr_in sa;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
if ((s =3D socket(2 , 1 , 0)) < 0) {=0A=
perror("Error creating socket");=0A=
exit(1);=0A=
}=0A=
=0A=
=0A=
=0A=
opt =3D 1;=0A=
if (setsockopt(s, 0xffff , 0x0004 , (char *) &opt, sizeof(opt)) < 0) =
{=0A=
perror("SYSERR: setsockopt REUSEADDR");=0A=
exit(1);=0A=
}=0A=
=0A=
=0A=
=0A=
set_sendbuf(s);=0A=
=0A=
=0A=
{=0A=
struct linger ld;=0A=
=0A=
ld.l_onoff =3D 0;=0A=
ld.l_linger =3D 0;=0A=
if (setsockopt(s, 0xffff , 0x0080 , (char *) &ld, sizeof(ld)) < 0)=0A=
perror("SYSERR: setsockopt LINGER");=0A=
}=0A=
=0A=
=0A=
memset(&sa, 0, sizeof(sa));=0A=
=0A=
sa.sin_family =3D 2 ;=0A=
sa.sin_port =3D htons(port);=0A=
=0A=
=0A=
=0A=
sa.sin_addr.s_addr =3D inet_addr("209.123.14.5");=0A=
=0A=
=0A=
if (bind(s, (struct sockaddr *) &sa, sizeof(sa)) < 0) {=0A=
perror("SYSERR: bind");=0A=
close( s ) ;=0A=
exit(1);=0A=
}=0A=
nonblock(s);=0A=
listen(s, 5);=0A=
return s;=0A=
}=0A=
=0A=
=0A=
int get_max_players(void) {=0A=
return MAX_PLAYERS;=0A=
int max_descs =3D 0;=0A=
const char *method;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
{=0A=
struct rlimit limit;=0A=
=0A=
=0A=
method =3D "rlimit";=0A=
if (getrlimit(5 , &limit) < 0) {=0A=
perror("SYSERR: calling getrlimit");=0A=
exit(1);=0A=
}=0A=
=0A=
limit.rlim_cur =3D limit.rlim_max;=0A=
if (setrlimit(5 , &limit) < 0) {=0A=
perror("SYSERR: calling setrlimit");=0A=
exit(1);=0A=
}=0A=
=0A=
if (limit.rlim_max =3D=3D (0xffffffffUL) )=0A=
max_descs =3D MAX_PLAYERS + 8 ;=0A=
else=0A=
max_descs =3D MIN(MAX_PLAYERS + 8 , (int)limit.rlim_max);=0A=
=0A=
=0A=
=0A=
}=0A=
=0A=
# 643 "comm.cp"=0A=
=0A=
=0A=
=0A=
max_descs =3D MIN(MAX_PLAYERS, max_descs - 8 );=0A=
=0A=
if (max_descs <=3D 0) {=0A=
log("SYSERR: Non-positive max player limit! (Set at %d using %s).", =
max_descs, method);=0A=
exit(1);=0A=
}=0A=
log(" Setting player limit to %d using %s.", max_descs, method);=0A=
return max_descs;=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
void game_loop(int mother_desc) {=0A=
_types_fd_set input_set, output_set, exc_set, null_set;=0A=
struct timeval last_time, before_sleep, opt_time, process_time, now, =
timeout;=0A=
char *comm;=0A=
Descriptor *d;=0A=
SInt32 missed_pulses =3D 0, maxdesc, aliased;=0A=
=0A=
=0A=
null_time.tv_sec =3D 0;=0A=
null_time.tv_usec =3D 0;=0A=
opt_time.tv_usec =3D OPT_USEC;=0A=
opt_time.tv_sec =3D 0;=0A=
(__extension__ (void)({ size_t __i; char *__tmp =3D (char *) &null_set =
; for (__i =3D 0; __i < sizeof (*( &null_set )); ++__i) *__tmp++ =3D 0; =
})) ;=0A=
=0A=
gettimeofday(&last_time, (struct timezone *) 0);=0A=
=0A=
LListIterator<Descriptor *> iter(descriptor_list);=0A=
=0A=
=0A=
while (!circle_shutdown) {=0A=
=0A=
if (descriptor_list.Count() =3D=3D 0) {=0A=
=0A=
=0A=
(__extension__ (void)({ size_t __i; char *__tmp =3D (char *) =
&input_set ; for (__i =3D 0; __i < sizeof (*( &input_set )); ++__i) =
*__tmp++ =3D 0; })) ;=0A=
(__extension__ (void)({ size_t __i; char *__tmp =3D (char *) =
&output_set ; for (__i =3D 0; __i < sizeof (*( &output_set )); ++__i) =
*__tmp++ =3D 0; })) ; =0A=
(__extension__ (void)({ size_t __i; char *__tmp =3D (char *) =
&exc_set ; for (__i =3D 0; __i < sizeof (*( &exc_set )); ++__i) =
*__tmp++ =3D 0; })) ; =0A=
(( &input_set )->fds_bits[( mother_desc )/ (sizeof (fd_mask) * 8 ) =
] |=3D (1L << (( mother_desc ) % (sizeof (fd_mask) * 8 ) ))) ;=0A=
=0A=
maxdesc =3D IMC::fill_fdsets(mother_desc, &input_set, &output_set, =
&exc_set);=0A=
=0A=
if (select(maxdesc + 1, &input_set, &output_set, &exc_set, __null ) =
< 0) {=0A=
if ((*__errno()) =3D=3D 4 ) log("Waking up to process =
signal.");=0A=
else perror("SYSERR: Select coma");=0A=
} =0A=
=0A=
gettimeofday(&last_time, (struct timezone *) 0);=0A=
}=0A=
=0A=
(__extension__ (void)({ size_t __i; char *__tmp =3D (char *) =
&input_set ; for (__i =3D 0; __i < sizeof (*( &input_set )); ++__i) =
*__tmp++ =3D 0; })) ;=0A=
(__extension__ (void)({ size_t __i; char *__tmp =3D (char *) =
&output_set ; for (__i =3D 0; __i < sizeof (*( &output_set )); ++__i) =
*__tmp++ =3D 0; })) ;=0A=
(__extension__ (void)({ size_t __i; char *__tmp =3D (char *) &exc_set =
; for (__i =3D 0; __i < sizeof (*( &exc_set )); ++__i) *__tmp++ =3D 0; =
})) ;=0A=
(( &input_set )->fds_bits[( mother_desc )/ (sizeof (fd_mask) * 8 ) ] =
|=3D (1L << (( mother_desc ) % (sizeof (fd_mask) * 8 ) ))) ;=0A=
=0A=
maxdesc =3D MAX(mother_desc, maxdesc);=0A=
=0A=
iter.Reset();=0A=
while ((d =3D iter.Next())) {=0A=
if (d->descriptor > maxdesc)=0A=
maxdesc =3D d->descriptor;=0A=
(( &input_set )->fds_bits[( d->descriptor )/ (sizeof (fd_mask) * 8 =
) ] |=3D (1L << (( d->descriptor ) % (sizeof (fd_mask) * 8 ) ))) ;=0A=
(( &output_set )->fds_bits[( d->descriptor )/ (sizeof (fd_mask) * 8 =
) ] |=3D (1L << (( d->descriptor ) % (sizeof (fd_mask) * 8 ) ))) ;=0A=
(( &exc_set )->fds_bits[( d->descriptor )/ (sizeof (fd_mask) * 8 ) =
] |=3D (1L << (( d->descriptor ) % (sizeof (fd_mask) * 8 ) ))) ;=0A=
}=0A=
=0A=
maxdesc =3D IMC::fill_fdsets(maxdesc, &input_set, &output_set, =
&exc_set);=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
gettimeofday(&before_sleep, (struct timezone *) 0); =0A=
process_time =3D before_sleep - last_time;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
if (process_time.tv_sec =3D=3D 0 && process_time.tv_usec < OPT_USEC) =
{=0A=
missed_pulses =3D 0;=0A=
} else {=0A=
missed_pulses =3D process_time.tv_sec * PASSES_PER_SEC ;=0A=
missed_pulses +=3D process_time.tv_usec / OPT_USEC;=0A=
process_time.tv_sec =3D 0;=0A=
process_time.tv_usec =3D process_time.tv_usec % OPT_USEC;=0A=
}=0A=
=0A=
=0A=
last_time =3D before_sleep + (opt_time - process_time);=0A=
=0A=
=0A=
gettimeofday(&now, (struct timezone *) 0);=0A=
timeout =3D last_time - now;=0A=
=0A=
=0A=
do {=0A=
if (select(0, (_types_fd_set *) 0, (_types_fd_set *) 0, =
(_types_fd_set *) 0, &timeout) < 0) {=0A=
if ((*__errno()) !=3D 4 ) {=0A=
perror("SYSERR: Select sleep");=0A=
exit(1);=0A=
}=0A=
}=0A=
gettimeofday(&now, (struct timezone *) 0);=0A=
timeout =3D last_time - now;=0A=
} while (timeout.tv_usec || timeout.tv_sec);=0A=
=0A=
=0A=
if (select(maxdesc + 1, &input_set, &output_set, &exc_set, =
&null_time) < 0) {=0A=
perror("SYSERR: Select poll");=0A=
return;=0A=
}=0A=
=0A=
=0A=
if ((( &input_set )->fds_bits[( mother_desc )/ (sizeof (fd_mask) * 8 =
) ] & (1L << (( mother_desc ) % (sizeof (fd_mask) * 8 ) ))) )=0A=
new_descriptor(mother_desc);=0A=
=0A=
=0A=
if (Identd::lookups.Count() > 0)=0A=
Identd::Receive();=0A=
=0A=
=0A=
iter.Reset();=0A=
while ((d =3D iter.Next())) {=0A=
if ((( &exc_set )->fds_bits[( d->descriptor )/ (sizeof (fd_mask) * =
8 ) ] & (1L << (( d->descriptor ) % (sizeof (fd_mask) * 8 ) ))) ) {=0A=
(( &input_set )->fds_bits[( d->descriptor )/ (sizeof (fd_mask) * 8 =
) ] &=3D ~(1L << (( d->descriptor ) % (sizeof (fd_mask) * 8 ) ))) ;=0A=
(( &output_set )->fds_bits[( d->descriptor )/ (sizeof (fd_mask) * =
8 ) ] &=3D ~(1L << (( d->descriptor ) % (sizeof (fd_mask) * 8 ) ))) =
;=0A=
close_socket(d);=0A=
}=0A=
}=0A=
=0A=
=0A=
iter.Reset();=0A=
while ((d =3D iter.Next())) {=0A=
if ((( &input_set )->fds_bits[( d->descriptor )/ (sizeof (fd_mask) =
* 8 ) ] & (1L << (( d->descriptor ) % (sizeof (fd_mask) * 8 ) ))) )=0A=
if (process_input(d) < 0)=0A=
close_socket(d);=0A=
}=0A=
=0A=
=0A=
comm =3D Buffer::Acquire(( MAX_STRING_LENGTH ), Buffer::tBuffer, =
__null , __FUNCTION__, 797) ;=0A=
iter.Reset();=0A=
while ((d =3D iter.Next())) {=0A=
if (d->character) {=0A=
d->Original()->wait -=3D (d->Original()->wait > 0) ? 1 : 0;=0A=
if (d->Original()->wait) continue;=0A=
}=0A=
if (!get_from_q(&d->input, comm, &aliased)) continue;=0A=
if (d->character) {=0A=
=0A=
d->character->player->timer =3D 0;=0A=
if (((( d )->connected) =3D=3D CON_PLAYING) && ((( d->character =
)->was_in_room) !=3D NOWHERE)) {=0A=
if ((( d->character )->InRoom()) !=3D NOWHERE)=0A=
d->character->FromRoom();=0A=
d->character->ToRoom((( d->character )->was_in_room) );=0A=
(( d->character )->was_in_room) =3D NOWHERE;=0A=
the_act( "$n has returned." , (! 0 ) , d->character , 0 , =
0 , (1 << 0) , __FUNCTION__, 813) ;=0A=
}=0A=
d->Original()->wait =3D 1;=0A=
}=0A=
d->has_prompt =3D 0;=0A=
=0A=
if (d->showstr_count) show_string(d, comm); =0A=
else if (d->str) string_add(d, comm); =0A=
else if ((( d )->connected) !=3D CON_PLAYING) nanny(d, comm); =
=0A=
else { =0A=
if (aliased) d->has_prompt =3D 1; =0A=
else if (perform_alias(d, comm)) =0A=
get_from_q(&d->input, comm, &aliased);=0A=
command_interpreter(d->character, comm); =0A=
}=0A=
}=0A=
do { Buffer::Detach(( comm ), Buffer::tBuffer, __FUNCTION__, 829); ( =
comm ) =3D __null ; } while(0) ;=0A=
=0A=
=0A=
iter.Reset();=0A=
while ((d =3D iter.Next())) {=0A=
if (*(d->output) && (( &output_set )->fds_bits[( d->descriptor )/ =
(sizeof (fd_mask) * 8 ) ] & (1L << (( d->descriptor ) % (sizeof =
(fd_mask) * 8 ) ))) ) {=0A=
=0A=
if (process_output(d) < 0) close_socket(d);=0A=
else d->has_prompt =3D 1;=0A=
}=0A=
}=0A=
=0A=
if (circle_copyover) break;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
iter.Reset();=0A=
while ((d =3D iter.Next())) {=0A=
if (!d->has_prompt && ((( d )->connected) !=3D CON_DISCONNECT)) =
{=0A=
write_to_descriptor(d->descriptor, make_prompt(d));=0A=
d->has_prompt =3D 1;=0A=
}=0A=
}=0A=
=0A=
=0A=
iter.Reset();=0A=
while ((d =3D iter.Next())) {=0A=
if (((( d )->connected) =3D=3D CON_CLOSE) || ((( d )->connected) =
=3D=3D CON_DISCONNECT))=0A=
close_socket(d);=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
missed_pulses++;=0A=
=0A=
if (missed_pulses <=3D 0) {=0A=
log("SYSERR: **BAD** MISSED_PULSES IS NONPOSITIVE (%d), TIME GOING =
BACKWARDS!!!", missed_pulses / PASSES_PER_SEC);=0A=
missed_pulses =3D 1;=0A=
}=0A=
=0A=
=0A=
if (missed_pulses > (30 * PASSES_PER_SEC )) {=0A=
log("SYSERR: Missed more than 30 seconds worth of pulses");=0A=
missed_pulses =3D 30 * PASSES_PER_SEC ;=0A=
}=0A=
=0A=
IMC::idle_select(&input_set, &output_set, &exc_set, =
last_time.tv_sec);=0A=
=0A=
=0A=
while (missed_pulses--) heartbeat(++pulse);=0A=
=0A=
tics++; =0A=
}=0A=
}=0A=
=0A=
=0A=
void heartbeat(int pulse) {=0A=
static UInt32 mins_since_crashsave =3D 0;=0A=
=0A=
Event::Process();=0A=
=0A=
if (!(pulse % PULSE_ZONE)) zone_update();=0A=
if (!(pulse % (15 * PASSES_PER_SEC ))) check_idle_passwords(); =
=0A=
if (!(pulse % PULSE_MOBILE)) check_mobile_activity(pulse);=0A=
if (!(pulse % PULSE_VIOLENCE)) perform_violence();=0A=
if (!(pulse % PULSE_SCRIPT)) script_trigger_check();=0A=
=0A=
if (!(pulse % (75 * PASSES_PER_SEC))) {=0A=
weather_and_time(1);=0A=
hour_update();=0A=
free_purged_lists();=0A=
}=0A=
if (!(pulse % PULSE_POINTS)) point_update();=0A=
=0A=
if (!(pulse % PULSE_BUFFER)) Buffer::ReleaseAll();=0A=
=0A=
if (!(pulse % 1)) MoveShips();=0A=
if (!(pulse % 10)) UpdateSpace();=0A=
=0A=
if (auto_save && !(pulse % (60 * PASSES_PER_SEC ))) { =0A=
if (++mins_since_crashsave >=3D autosave_time) {=0A=
mins_since_crashsave =3D 0;=0A=
Crash_save_all();=0A=
House::SaveAll();=0A=
=0A=
}=0A=
}=0A=
=0A=
if (!(pulse % (5 * 60 * PASSES_PER_SEC ))) record_usage(); =0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
timeval operator-(timeval a, timeval b) {=0A=
timeval rslt;=0A=
=0A=
if (a.tv_sec < b.tv_sec) return null_time;=0A=
else if (a.tv_sec =3D=3D b.tv_sec) {=0A=
if (a.tv_usec < b.tv_usec) return null_time;=0A=
else {=0A=
rslt.tv_sec =3D 0;=0A=
rslt.tv_usec =3D a.tv_usec - b.tv_usec;=0A=
return rslt;=0A=
}=0A=
} else { =0A=
rslt.tv_sec =3D a.tv_sec - b.tv_sec;=0A=
if (a.tv_usec < b.tv_usec) {=0A=
rslt.tv_usec =3D a.tv_usec + 1000000 - b.tv_usec;=0A=
rslt.tv_sec--;=0A=
} else=0A=
rslt.tv_usec =3D a.tv_usec - b.tv_usec;=0A=
return rslt;=0A=
}=0A=
}=0A=
=0A=
=0A=
=0A=
timeval operator+(timeval a, timeval b) {=0A=
timeval rslt;=0A=
=0A=
rslt.tv_sec =3D a.tv_sec + b.tv_sec;=0A=
rslt.tv_usec =3D a.tv_usec + b.tv_usec;=0A=
=0A=
while (rslt.tv_usec >=3D 1000000) {=0A=
rslt.tv_usec -=3D 1000000;=0A=
rslt.tv_sec++;=0A=
}=0A=
=0A=
return rslt;=0A=
}=0A=
=0A=
=0A=
void record_usage(void) {=0A=
int sockets_playing =3D 0;=0A=
Descriptor *d;=0A=
LListIterator<Descriptor *> iter(descriptor_list);=0A=
=0A=
while ((d =3D iter.Next()))=0A=
if ((( d )->connected) =3D=3D CON_PLAYING)=0A=
sockets_playing++;=0A=
=0A=
log("nusage: %-3d sockets connected, %-3d sockets playing",=0A=
descriptor_list.Count(), sockets_playing);=0A=
=0A=
# 999 "comm.cp"=0A=
=0A=
}=0A=
=0A=
=0A=
=0A=
void echo_off(Descriptor *d) {=0A=
char off_string[] =3D {=0A=
(char) 255 ,=0A=
(char) 251 ,=0A=
(char) 1 ,=0A=
(char) 0,=0A=
};=0A=
=0A=
d->Write(off_string);=0A=
}=0A=
=0A=
=0A=
=0A=
void echo_on(Descriptor *d) {=0A=
char on_string[] =3D {=0A=
(char) 255 ,=0A=
(char) 252 ,=0A=
(char) 1 ,=0A=
(char) 13 ,=0A=
(char) 10 ,=0A=
(char) 0,=0A=
};=0A=
=0A=
d->Write(on_string);=0A=
}=0A=
=0A=
=0A=
char *prompt_str(Character *ch) {=0A=
Character *vict =3D (( ch )->general.fighting) ; =0A=
static char pbuf[MAX_STRING_LENGTH]; =0A=
char *str =3D (( ch )->player->prompt) ;=0A=
Character *tank;=0A=
int perc; =0A=
char *cp, *tmp;=0A=
char *i;=0A=
=0A=
if (!str || !*str)=0A=
str =3D "`YAvP`K: `cSet your prompt (see `K'`Chelp prompt`K'`c)`W> =
`n";=0A=
=0A=
if (!strchr(str, '%'))=0A=
return (str);=0A=
=0A=
i =3D Buffer::Acquire(( 256 ), Buffer::tBuffer, __null , __FUNCTION__, =
1046) ;=0A=
=0A=
cp =3D pbuf;=0A=
=0A=
for (;;) {=0A=
if (*str =3D=3D '%') {=0A=
switch (*(++str)) {=0A=
case 'h': =0A=
sprintf(i, "%d", (( ch )->points.hit) );=0A=
tmp =3D i;=0A=
break;=0A=
case 'H': =0A=
sprintf(i, "%d", (( ch )->points.max_hit) );=0A=
tmp =3D i;=0A=
break;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
case 'v': =0A=
sprintf(i, "%d", (( ch )->points.move) );=0A=
tmp =3D i;=0A=
break;=0A=
case 'V': =0A=
sprintf(i, "%d", (( ch )->points.max_move) );=0A=
tmp =3D i;=0A=
break;=0A=
case 'P':=0A=
case 'p': =0A=
str++;=0A=
switch (((( *str ) >=3D 'A' && ( *str ) <=3D 'Z') ? (( *str =
)+('a'-'A')) : ( *str )) ) {=0A=
case 'h':=0A=
perc =3D (100 * (( ch )->points.hit) ) / (( ch =
)->points.max_hit) ;=0A=
break;=0A=
=0A=
=0A=
=0A=
case 'v':=0A=
perc =3D (100 * (( ch )->points.move) ) / (( ch =
)->points.max_move) ;=0A=
break;=0A=
=0A=
=0A=
=0A=
default :=0A=
perc =3D 0;=0A=
break;=0A=
}=0A=
sprintf(i, "%d%%", perc);=0A=
tmp =3D i;=0A=
break;=0A=
case 'O':=0A=
case 'o': =0A=
if (vict) {=0A=
perc =3D (100* (( vict )->points.hit) ) / (( vict =
)->points.max_hit) ;=0A=
sprintf(i, "%s `K(`r%s`K)`n", (( ch )->CanSee( vict ) ? ( vict =
)->Name() : "someone") ,=0A=
(perc >=3D 95 ? "unscathed" :=0A=
perc >=3D 75 ? "scratched" :=0A=
perc >=3D 50 ? "beaten-up" :=0A=
perc >=3D 25 ? "bloody" :=0A=
"near death"));=0A=
tmp =3D i;=0A=
} else {=0A=
str++;=0A=
continue;=0A=
}=0A=
break;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
case 'T':=0A=
case 't': =0A=
if (vict && (tank =3D (( vict )->general.fighting) ) && tank !=3D =
ch) {=0A=
perc =3D (100* (( tank )->points.hit) ) / (( tank =
)->points.max_hit) ;=0A=
sprintf(i, "%s `K(`r%s`K)`n", (( ch )->CanSee( tank ) ? ( tank =
)->Name() : "someone") ,=0A=
(perc >=3D 95 ? "unscathed" :=0A=
perc >=3D 75 ? "scratched" :=0A=
perc >=3D 50 ? "beaten-up" :=0A=
perc >=3D 25 ? "bloody" :=0A=
"near death"));=0A=
tmp =3D i;=0A=
} else {=0A=
str++;=0A=
continue;=0A=
}=0A=
break;=0A=
case '_':=0A=
tmp =3D "\r\n";=0A=
break;=0A=
case '%':=0A=
*(cp++) =3D '%';=0A=
str++;=0A=
continue;=0A=
default :=0A=
str++;=0A=
continue;=0A=
}=0A=
=0A=
while ((*cp =3D *(tmp++)))=0A=
cp++;=0A=
str++;=0A=
} else if (!(*(cp++) =3D *(str++)))=0A=
break;=0A=
}=0A=
=0A=
*cp =3D '\0';=0A=
=0A=
strcat(pbuf, " `n");=0A=
do { Buffer::Detach(( i ), Buffer::tBuffer, __FUNCTION__, 1170); ( i ) =
=3D __null ; } while(0) ;=0A=
return (pbuf);=0A=
}=0A=
=0A=
=0A=
char *make_prompt(Descriptor *d) {=0A=
static char prompt[MAX_PROMPT_LENGTH + 1];=0A=
=0A=
=0A=
=0A=
=0A=
if (d->showstr_count) {=0A=
sprintf(prompt, "\r[ Return to continue, (q)uit, (r)efresh, (b)ack, =
or page number (%d/%d) ]",=0A=
d->showstr_page, d->showstr_count);=0A=
=0A=
} else if (d->str)=0A=
strcpy(prompt, "] ");=0A=
else if ((( d )->connected) =3D=3D CON_PLAYING) {=0A=
*prompt =3D '\0';=0A=
=0A=
=0A=
=0A=
=0A=
if (! ((( (( d->character )->general.act) ) & ( MOB_ISNPC )) ) =
&& (( d->character )->player->afk) )=0A=
strcat(prompt, "`C[AFK]`n");=0A=
strcat(prompt, prompt_str(d->character));=0A=
if(d->character)=0A=
proc_color(prompt, (! ((( (( d->character )->general.act) ) & ( =
MOB_ISNPC )) ) && (( (( d->character =
)->player->special.preferences) ) & ( Preference::Color )) ) ); =
=0A=
} else=0A=
*prompt =3D '\0';=0A=
=0A=
return prompt;=0A=
}=0A=
=0A=
=0A=
void write_to_q(const char *txt, struct txt_q *queue, int aliased) {=0A=
struct txt_block *new_text;=0A=
=0A=
do { if (( 1 * sizeof( struct txt_block )) <=3D 0) mudlogf(1 , =
__null , (! 0 ) , "CODEERR: Attempt to alloc 0 at %s:%d", __FUNCTION__, =
1208); else if (!(( new_text ) =3D ( struct txt_block *) calloc( ( 1 =
? 1 : 1) , sizeof( struct txt_block ) ) )) { perror("SYSERR: =
malloc failure"); abort(); } } while(0) ;=0A=
new_text->text =3D str_dup(txt);=0A=
new_text->aliased =3D aliased;=0A=
=0A=
=0A=
if (!queue->head) {=0A=
new_text->next =3D __null ;=0A=
queue->head =3D queue->tail =3D new_text;=0A=
} else {=0A=
queue->tail->next =3D new_text;=0A=
queue->tail =3D new_text;=0A=
new_text->next =3D __null ;=0A=
}=0A=
}=0A=
=0A=
=0A=
=0A=
bool get_from_q(struct txt_q *queue, char *dest, int *aliased) {=0A=
struct txt_block *tmp;=0A=
=0A=
=0A=
if (!queue->head)=0A=
return false;=0A=
=0A=
tmp =3D queue->head;=0A=
strcpy(dest, queue->head->text);=0A=
*aliased =3D queue->head->aliased;=0A=
queue->head =3D queue->head->next;=0A=
=0A=
if ( tmp->text =3D=3D __null ) { Free_Error(__FUNCTION__, 1237); } =
else { free( tmp->text ); tmp->text =3D __null ; } ;=0A=
if ( tmp =3D=3D __null ) { Free_Error(__FUNCTION__, 1238); } else { =
free( tmp ); tmp =3D __null ; } ;=0A=
=0A=
return true;=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
void flush_queues(Descriptor *d) {=0A=
int dummy;=0A=
char *buf2 =3D Buffer::Acquire(( MAX_STRING_LENGTH ), Buffer::tBuffer, =
__null , __FUNCTION__, 1248) ;=0A=
=0A=
=0A=
=0A=
=0A=
if (d->large_outbuf) {=0A=
=0A=
d->large_outbuf->next =3D bufpool;=0A=
bufpool =3D d->large_outbuf;=0A=
=0A=
=0A=
=0A=
=0A=
}=0A=
while (get_from_q(&d->input, buf2, &dummy));=0A=
do { Buffer::Detach(( buf2 ), Buffer::tBuffer, __FUNCTION__, 1263); ( =
buf2 ) =3D __null ; } while(0) ;=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
int set_sendbuf(int s) {=0A=
=0A=
int opt =3D MAX_SOCK_BUF;=0A=
if (setsockopt(s, 0xffff , 0x1001 , (char *) &opt, sizeof(opt)) < 0) =
{=0A=
perror("SYSERR: setsockopt SNDBUF");=0A=
return -1;=0A=
}=0A=
=0A=
return 0;=0A=
}=0A=
=0A=
=0A=
int new_descriptor(int s) {=0A=
int desc;=0A=
int i;=0A=
Descriptor *newd;=0A=
struct sockaddr_in peer;=0A=
=0A=
=0A=
i =3D sizeof(peer);=0A=
if ((desc =3D accept(s, (struct sockaddr *) &peer, &i)) =3D=3D -1 ) =
{=0A=
perror("SYSERR: accept");=0A=
return -1;=0A=
}=0A=
=0A=
=0A=
nonblock(desc);=0A=
=0A=
=0A=
if (set_sendbuf(desc) < 0) {=0A=
close( desc ) ;=0A=
return 0;=0A=
}=0A=
=0A=
=0A=
if (descriptor_list.Count() >=3D max_players) {=0A=
write_to_descriptor(desc, "Sorry, Aliens vs Predator is full right =
now... please try again later!\r\n");=0A=
close( desc ) ;=0A=
return 0;=0A=
}=0A=
=0A=
=0A=
=0A=
if ((write_to_descriptor(desc, "Validating socket, looking up =
hostname.")) < 0) {=0A=
=0A=
close( desc ) ;=0A=
return 0;=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
newd =3D new Descriptor(desc);=0A=
=0A=
=0A=
descriptor_list.Add(newd);=0A=
=0A=
(( newd )->connected) =3D CON_GET_NAME;=0A=
newd->saddr =3D peer;=0A=
strcpy(newd->host_ip, inet_ntoa(newd->saddr.sin_addr));=0A=
strcpy(newd->host , newd->host_ip);=0A=
Identd::Lookup(newd);=0A=
if ((( newd )->connected) !=3D CON_GET_NAME)=0A=
write_to_descriptor(desc, " This may take a moment.");=0A=
write_to_descriptor(desc, "\r\n");=0A=
=0A=
return 0;=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
int process_output(Descriptor *t) {=0A=
char i[MAX_SOCK_BUF];=0A=
int written =3D 0, offset, result;=0A=
=0A=
strcpy(i, "\r\n"); =0A=
=0A=
strcpy(i + 2, t->output); =0A=
=0A=
if (t->bufptr < 0) =0A=
strcat(i, "**OVERFLOW**\r\n");=0A=
=0A=
=0A=
if (((( t )->connected) =3D=3D CON_PLAYING) && t->character && ! (! =
((( (( t->character )->general.act) ) & ( MOB_ISNPC )) ) && (( =
(( t->character )->player->special.preferences) ) & ( =
Preference::Compact )) ) )=0A=
strcat(i + 2, "\r\n");=0A=
=0A=
=0A=
strncat(i + 2, make_prompt(t), MAX_PROMPT_LENGTH);=0A=
=0A=
if (t->character)=0A=
proc_color(i, (! ((( (( t->character )->general.act) ) & ( =
MOB_ISNPC )) ) && (( (( t->character )->player->special.preferences) =
) & ( Preference::Color )) ) );=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
if (t->has_prompt) offset =3D 0;=0A=
else offset =3D 2;=0A=
=0A=
result =3D write_to_descriptor(t->descriptor, i + offset);=0A=
written =3D result >=3D 0 ? result : -result;=0A=
=0A=
=0A=
if (t->snoop_by)=0A=
t->snoop_by->Write("%% %s%%%%", t->output, t->snoop_by);=0A=
=0A=
=0A=
=0A=
if (t->large_outbuf) {=0A=
=0A=
t->large_outbuf->next =3D bufpool;=0A=
bufpool =3D t->large_outbuf;=0A=
t->large_outbuf =3D __null ;=0A=
=0A=
=0A=
=0A=
t->output =3D t->small_outbuf;=0A=
}=0A=
=0A=
t->bufspace =3D SMALL_BUFSIZE - 1;=0A=
t->bufptr =3D 0;=0A=
*(t->output) =3D '\0';=0A=
=0A=
=0A=
if (result =3D=3D 0) return -1; =0A=
if (result > 0) return 1; =0A=
=0A=
=0A=
t->Write("%s", i + written + offset);=0A=
return 0;=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
ssize_t perform_socket_write(int desc, const char *txt, size_t length) =
{=0A=
ssize_t result;=0A=
=0A=
result =3D write(desc, txt, length);=0A=
=0A=
if (result > 0) {=0A=
=0A=
return result;=0A=
}=0A=
=0A=
if (result =3D=3D 0) {=0A=
=0A=
log("SYSERR: Huh?? write() returned 0??? Please report this!");=0A=
return -1;=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
if ((*__errno()) =3D=3D 11 )=0A=
return 0;=0A=
=0A=
=0A=
=0A=
if ((*__errno()) =3D=3D 11 )=0A=
return 0;=0A=
=0A=
=0A=
=0A=
if ((*__errno()) =3D=3D 45 )=0A=
return 0;=0A=
=0A=
=0A=
=0A=
return -1;=0A=
}=0A=
=0A=
=0A=
int write_to_descriptor(int desc, const char *txt) {=0A=
ssize_t bytes_written, total_written =3D 0;=0A=
size_t total =3D strlen(txt);=0A=
=0A=
while (total > 0) {=0A=
bytes_written =3D perform_socket_write(desc, txt, total);=0A=
if (bytes_written < 0) {=0A=
perror("SYSERR: write_to_descriptor");=0A=
return 0;=0A=
} else if (bytes_written =3D=3D 0) {=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
log("WARNING: write_to_descriptor: socket write would block");=0A=
return -total_written;=0A=
} else {=0A=
txt +=3D bytes_written;=0A=
total -=3D bytes_written;=0A=
total_written +=3D bytes_written;=0A=
}=0A=
}=0A=
=0A=
return total_written;=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
ssize_t perform_socket_read(int desc, char *read_point, size_t =
space_left) {=0A=
ssize_t ret;=0A=
=0A=
ret =3D read(desc, read_point, space_left);=0A=
=0A=
=0A=
if (ret > 0)=0A=
return ret;=0A=
=0A=
=0A=
if (ret =3D=3D 0) {=0A=
log("WARNING: EOF on socket read (connection broken by peer)");=0A=
return -1;=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
if ((*__errno()) =3D=3D 4 )=0A=
return 0;=0A=
=0A=
=0A=
=0A=
if ((*__errno()) =3D=3D 11 )=0A=
return 0;=0A=
=0A=
=0A=
=0A=
if ((*__errno()) =3D=3D 11 )=0A=
return 0;=0A=
=0A=
=0A=
=0A=
if ((*__errno()) =3D=3D 45 )=0A=
return 0;=0A=
=0A=
=0A=
=0A=
perror("SYSERR: process_input: about to lose connection");=0A=
return -1;=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
int process_input(Descriptor *t) {=0A=
int buf_length, failed_subst;=0A=
ssize_t bytes_read;=0A=
size_t space_left;=0A=
char *ptr, *read_point, *write_point, *nl_pos =3D __null ;=0A=
char *tmp;=0A=
=0A=
=0A=
buf_length =3D strlen(t->inbuf);=0A=
read_point =3D t->inbuf + buf_length;=0A=
space_left =3D MAX_RAW_INPUT_LENGTH - buf_length - 1;=0A=
=0A=
do {=0A=
if (space_left <=3D 0) {=0A=
log("WARNING: process_input: about to close connection: input =
overflow");=0A=
return -1;=0A=
}=0A=
bytes_read =3D perform_socket_read(t->descriptor, read_point, =
space_left);=0A=
=0A=
if (bytes_read < 0) return -1;=0A=
else if (bytes_read =3D=3D 0) return 0;=0A=
=0A=
=0A=
*(read_point + bytes_read) =3D '\0'; =0A=
=0A=
=0A=
for (ptr =3D read_point; *ptr && !nl_pos; ptr++)=0A=
if ((( *ptr ) =3D=3D '\n' || ( *ptr ) =3D=3D '\r') )=0A=
nl_pos =3D ptr;=0A=
=0A=
read_point +=3D bytes_read;=0A=
space_left -=3D bytes_read;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
}=0A=
=0A=
while (!nl_pos);=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
read_point =3D t->inbuf;=0A=
=0A=
tmp =3D Buffer::Acquire(( MAX_INPUT_LENGTH + 8 ), Buffer::tBuffer, =
__null , __FUNCTION__, 1612) ;=0A=
while (nl_pos !=3D __null ) {=0A=
write_point =3D tmp;=0A=
space_left =3D MAX_INPUT_LENGTH - 1;=0A=
=0A=
for (ptr =3D read_point; (space_left > 0) && (ptr < nl_pos); ptr++) =
{=0A=
if (*ptr =3D=3D '\b' || *ptr =3D=3D 127) { =0A=
if (write_point > tmp) {=0A=
if (*(--write_point) =3D=3D '$') {=0A=
write_point--;=0A=
space_left +=3D 2;=0A=
} else=0A=
space_left++;=0A=
}=0A=
} else if (((unsigned)( *ptr )<=3D0177) && ((_ctype_+1)[(unsigned)( =
*ptr )]&(020 | 01 | 02 | 04 | 0200 )) ) {=0A=
if ((*(write_point++) =3D *ptr) =3D=3D '$') { =0A=
*(write_point++) =3D '$'; =0A=
space_left -=3D 2;=0A=
} else=0A=
space_left--;=0A=
}=0A=
}=0A=
=0A=
*write_point =3D '\0';=0A=
=0A=
if ((space_left <=3D 0) && (ptr < nl_pos)) {=0A=
char *buffer =3D Buffer::Acquire(( MAX_INPUT_LENGTH + 64 ), =
Buffer::tBuffer, __null , __FUNCTION__, 1638) ;=0A=
=0A=
sprintf(buffer, "Line too long. Truncated to:\r\n%s\r\n", tmp);=0A=
if (write_to_descriptor(t->descriptor, buffer) =3D=3D 0) { =0A=
do { Buffer::Detach(( tmp ), Buffer::tBuffer, __FUNCTION__, 1642); =
( tmp ) =3D __null ; } while(0) ;=0A=
do { Buffer::Detach(( buffer ), Buffer::tBuffer, __FUNCTION__, =
1643); ( buffer ) =3D __null ; } while(0) ;=0A=
return -1;=0A=
}=0A=
do { Buffer::Detach(( buffer ), Buffer::tBuffer, __FUNCTION__, =
1646); ( buffer ) =3D __null ; } while(0) ;=0A=
}=0A=
if (t->snoop_by)=0A=
t->snoop_by->Write("%% %s\r\n", tmp);=0A=
failed_subst =3D 0;=0A=
=0A=
if (*tmp =3D=3D '!' && !(*(tmp + 1)))=0A=
strcpy(tmp, t->last_input);=0A=
else if (*tmp =3D=3D '!' && *(tmp + 1)) {=0A=
char *commandln =3D (tmp + 1);=0A=
int starting_pos =3D t->history_pos,=0A=
cnt =3D (t->history_pos =3D=3D 0 ? HISTORY_SIZE - 1 : t->history_pos =
- 1);=0A=
=0A=
skip_spaces(commandln);=0A=
for (; cnt !=3D starting_pos; cnt--) {=0A=
if (t->history[cnt] && is_abbrev(commandln, t->history[cnt])) {=0A=
strcpy(tmp, t->history[cnt]);=0A=
strcpy(t->last_input, tmp);=0A=
t->Write("%s\r\n", tmp);=0A=
break;=0A=
}=0A=
if (cnt =3D=3D 0) =0A=
cnt =3D HISTORY_SIZE;=0A=
}=0A=
} else if (*tmp =3D=3D '^') {=0A=
if (!(failed_subst =3D perform_subst(t, t->last_input, tmp)))=0A=
strcpy(t->last_input, tmp);=0A=
} else {=0A=
strcpy(t->last_input, tmp);=0A=
if (t->history[t->history_pos])=0A=
free(t->history[t->history_pos]); =0A=
t->history[t->history_pos] =3D str_dup(tmp); =0A=
if (++t->history_pos >=3D HISTORY_SIZE) =0A=
t->history_pos =3D 0;=0A=
}=0A=
=0A=
if (!failed_subst)=0A=
write_to_q(tmp, &t->input, 0);=0A=
=0A=
=0A=
while ((( *nl_pos ) =3D=3D '\n' || ( *nl_pos ) =3D=3D '\r') )=0A=
nl_pos++;=0A=
=0A=
=0A=
read_point =3D ptr =3D nl_pos;=0A=
for (nl_pos =3D __null ; *ptr && !nl_pos; ptr++)=0A=
if ((( *ptr ) =3D=3D '\n' || ( *ptr ) =3D=3D '\r') )=0A=
nl_pos =3D ptr;=0A=
}=0A=
=0A=
=0A=
write_point =3D t->inbuf;=0A=
while (*read_point)=0A=
*(write_point++) =3D *(read_point++);=0A=
*write_point =3D '\0';=0A=
=0A=
do { Buffer::Detach(( tmp ), Buffer::tBuffer, __FUNCTION__, 1702); ( =
tmp ) =3D __null ; } while(0) ;=0A=
return 1;=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
int perform_subst(Descriptor *t, char *orig, char *subst) {=0A=
char *new_t =3D Buffer::Acquire(( MAX_INPUT_LENGTH + 5 ), =
Buffer::tBuffer, __null , __FUNCTION__, 1714) ;=0A=
char *first, *second, *strpos;=0A=
=0A=
=0A=
=0A=
first =3D subst + 1;=0A=
=0A=
=0A=
if (!(second =3D strchr(first, '^'))) {=0A=
t->Write("Invalid substitution.\r\n");=0A=
do { Buffer::Detach(( new_t ), Buffer::tBuffer, __FUNCTION__, 1724); =
( new_t ) =3D __null ; } while(0) ;=0A=
return 1;=0A=
}=0A=
=0A=
=0A=
*(second++) =3D '\0';=0A=
=0A=
=0A=
if (!(strpos =3D strstr(orig, first))) {=0A=
t->Write("Invalid substitution.\r\n");=0A=
do { Buffer::Detach(( new_t ), Buffer::tBuffer, __FUNCTION__, 1734); =
( new_t ) =3D __null ; } while(0) ;=0A=
return 1;=0A=
}=0A=
=0A=
=0A=
=0A=
strncpy(new_t, orig, (strpos - orig));=0A=
new_t[(strpos - orig)] =3D '\0';=0A=
=0A=
=0A=
strncat(new_t, second, (MAX_INPUT_LENGTH - strlen(new_t) - 1));=0A=
=0A=
=0A=
=0A=
if (((strpos - orig) + strlen(first)) < strlen(orig))=0A=
strncat(new_t, strpos + strlen(first), (MAX_INPUT_LENGTH - =
strlen(new_t) - 1));=0A=
=0A=
=0A=
new_t[MAX_INPUT_LENGTH - 1] =3D '\0';=0A=
strcpy(subst, new_t);=0A=
=0A=
do { Buffer::Detach(( new_t ), Buffer::tBuffer, __FUNCTION__, 1755); ( =
new_t ) =3D __null ; } while(0) ;=0A=
return 0;=0A=
}=0A=
=0A=
=0A=
=0A=
void close_socket(Descriptor *d) {=0A=
descriptor_list.Remove(d);=0A=
=0A=
close( d->descriptor ) ;=0A=
flush_queues(d);=0A=
=0A=
=0A=
if (d->snooping)=0A=
d->snooping->snoop_by =3D __null ;=0A=
=0A=
if (d->snoop_by) {=0A=
d->snoop_by->Write("Your victim is no longer among us.\r\n");=0A=
d->snoop_by->snooping =3D __null ;=0A=
}=0A=
=0A=
if (d->editor) {=0A=
d->editor->Finish(Editor::All);=0A=
delete d->editor;=0A=
}=0A=
=0A=
if (d->character) {=0A=
if ((! ((( (( d->character )->general.act) ) & ( MOB_ISNPC )) ) =
&& (( (( d->character )->general.act) ) & ( ( PLR_MAILING ) )) ) =
&& d->str) {=0A=
if (*d->str) free(*d->str);=0A=
=0A=
*d->str =3D __null ;=0A=
d->str =3D __null ;=0A=
}=0A=
if (((( d )->connected) =3D=3D CON_PLAYING) || ((( d )->connected) =
=3D=3D CON_DISCONNECT)) {=0A=
if ((( d->character )->InRoom()) !=3D NOWHERE)=0A=
the_act( "$n has lost $s link." , (! 0 ) , d->character , 0 =
, 0 , (1 << 0) , __FUNCTION__, 1790) ;=0A=
if (! ((( (( d->character )->general.act) ) & ( MOB_ISNPC )) ) ) =
{=0A=
d->character->Save(NOWHERE);=0A=
mudlogf( 2 , __null , (! 0 ) , "Closing link to: %s.", =
d->character->RealName() ? d->character->RealName() : "UNDEFINED");=0A=
d->character->desc =3D __null ;=0A=
}=0A=
=0A=
if (d->character->player->host)=0A=
if ( d->character->player->host =3D=3D __null ) { =
Free_Error(__FUNCTION__, 1798); } else { free( =
d->character->player->host ); d->character->player->host =3D __null ; =
} ;=0A=
d->character->player->host =3D str_dup(d->host);=0A=
} else {=0A=
mudlogf(3 , __null , (! 0 ) , "Losing player: %s.",=0A=
d->character->general.name ->Data() ? =
d->character->general.name ->Data() : "<null>");=0A=
=0A=
if (! (( d->character )->Purged()) ) {=0A=
if ((( d->character )->InRoom()) !=3D NOWHERE)=0A=
d->character->Extract();=0A=
else {=0A=
d->character->Purged(true);=0A=
PurgedChars.Add(d->character);=0A=
}=0A=
}=0A=
}=0A=
} else=0A=
mudlogf( 3 , __null , (! 0 ) , "Losing descriptor without =
char." ) ;=0A=
=0A=
=0A=
if (d->original && d->original->desc)=0A=
d->original->desc =3D __null ;=0A=
=0A=
delete d;=0A=
}=0A=
=0A=
=0A=
=0A=
void check_idle_passwords(void) {=0A=
Descriptor *d;=0A=
=0A=
LListIterator< Descriptor * > iter ( descriptor_list ); while (( d =
=3D iter .Next())) {=0A=
if (((( d )->connected) !=3D CON_PASSWORD) && ((( d )->connected) =
!=3D CON_GET_NAME))=0A=
continue;=0A=
if (++d->idle_tics > 2) {=0A=
echo_on(d);=0A=
d->Write("\r\nTimed out... goodbye.\r\n");=0A=
(( d )->connected) =3D CON_CLOSE;=0A=
}=0A=
}=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
void nonblock(int s) {=0A=
int flags;=0A=
=0A=
flags =3D fcntl(s, 3 , 0);=0A=
flags |=3D 0x4000 ;=0A=
if (fcntl(s, 4 , flags) < 0) {=0A=
perror("SYSERR: Fatal error executing nonblock (comm.c)");=0A=
exit(1);=0A=
}=0A=
=0A=
=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
void checkpointing(int unused) {=0A=
if (!tics) {=0A=
log("SYSERR: CHECKPOINT shutdown: tics not updated. (Infinite Loop =
Suspected)");=0A=
=0A=
abort();=0A=
} else=0A=
tics =3D 0;=0A=
}=0A=
=0A=
=0A=
void reread_wizlists(int unused) {=0A=
mudlogf( 3 , __null , (! 0 ) , "Signal received - rereading =
wizlists." ) ;=0A=
reboot_wizlists();=0A=
}=0A=
=0A=
=0A=
void unrestrict_game(int unused) {=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
}=0A=
=0A=
=0A=
void hupsig(int unused) {=0A=
log("SYSERR: Received SIGHUP, SIGINT, or SIGTERM. Shutting =
down...");=0A=
exit(0); =0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
sigfunc *my_signal(int signo, sigfunc * func);=0A=
=0A=
sigfunc *my_signal(int signo, sigfunc * func) {=0A=
struct sigaction act, oact;=0A=
=0A=
act.sa_handler =3D func;=0A=
sigemptyset(&act.sa_mask);=0A=
act.sa_flags =3D 0;=0A=
=0A=
=0A=
=0A=
=0A=
if (sigaction(signo, &act, &oact) < 0)=0A=
return ((void (*)(int))-1) ;=0A=
=0A=
return oact.sa_handler;=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
void reap(int sig) {=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
}=0A=
=0A=
=0A=
void signal_setup(void) {=0A=
=0A=
struct itimerval itime;=0A=
struct timeval interval;=0A=
=0A=
=0A=
my_signal(31 , unrestrict_game);=0A=
=0A=
=0A=
interval.tv_sec =3D 60;=0A=
interval.tv_usec =3D 0;=0A=
itime.it_interval =3D interval;=0A=
itime.it_value =3D interval;=0A=
setitimer(1 , &itime, __null );=0A=
my_signal(26 , checkpointing);=0A=
=0A=
=0A=
my_signal(1 , hupsig);=0A=
=0A=
=0A=
my_signal(20 , reap);=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
my_signal(2 , hupsig);=0A=
my_signal(15 , hupsig);=0A=
my_signal(13 , ((void (*)(int))1) );=0A=
my_signal(14 , ((void (*)(int))1) );=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
void send_to_all(const char *messg) {=0A=
Descriptor *i;=0A=
=0A=
if (!messg || !*messg)=0A=
return;=0A=
=0A=
LListIterator<Descriptor *> iter(descriptor_list);=0A=
while ((i =3D iter.Next())) {=0A=
if ((( i )->connected) =3D=3D CON_PLAYING)=0A=
i->Write("%s", messg);=0A=
}=0A=
}=0A=
=0A=
=0A=
void send_to_zone(char *messg, int zone_rnum) {=0A=
Descriptor *i;=0A=
=0A=
if (!messg || !*messg)=0A=
return;=0A=
=0A=
LListIterator<Descriptor *> iter(descriptor_list);=0A=
while ((i =3D iter.Next())) {=0A=
if (((( i )->connected) =3D=3D CON_PLAYING) && i->character && ((( =
i->character )->general.position) > POS_SLEEPING) &&=0A=
! (! ((( (( i->character )->general.act) ) & ( MOB_ISNPC )) ) =
&& (( (( i->character )->general.act) ) & ( ( PLR_WRITING ) )) ) =
&&=0A=
((( i->character )->InRoom()) !=3D NOWHERE) &&=0A=
(world[(( i->character )->InRoom()) ].zone =3D=3D zone_rnum))=0A=
i->Write("%s", messg);=0A=
}=0A=
}=0A=
=0A=
=0A=
void send_to_outdoor(const char *messg) {=0A=
Descriptor *i;=0A=
=0A=
if (!messg || !*messg)=0A=
return;=0A=
=0A=
LListIterator<Descriptor *> iter(descriptor_list);=0A=
while ((i =3D iter.Next())) {=0A=
if ((( i )->connected) !=3D CON_PLAYING || !i->character)=0A=
continue;=0A=
if (! ((( i->character )->general.position) > POS_SLEEPING) || ! =
(! ((( (world[( (( i->character )->InRoom()) )].flags) ) & ( ( =
ROOM_INDOORS ) )) ) ) )=0A=
continue;=0A=
if ((! ((( (( i->character )->general.act) ) & ( MOB_ISNPC )) ) =
&& (( (( i->character )->general.act) ) & ( ( PLR_WRITING ) )) ) =
)=0A=
continue;=0A=
i->Write("%s", messg);=0A=
}=0A=
}=0A=
=0A=
=0A=
void send_to_players(Character *ch, const char *messg) {=0A=
Descriptor *i;=0A=
=0A=
if (!messg || !*messg)=0A=
return;=0A=
=0A=
LListIterator<Descriptor *> iter(descriptor_list);=0A=
while ((i =3D iter.Next())) {=0A=
if (((( i )->connected) =3D=3D CON_PLAYING) && i->character && =
i->character !=3D ch &&=0A=
! (! ((( (( i->character )->general.act) ) & ( MOB_ISNPC )) ) =
&& (( (( i->character )->general.act) ) & ( ( PLR_WRITING ) )) ) =
)=0A=
i->Write("%s", messg);=0A=
}=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
void send_to_playersf(Character *ch, const char *messg, ...) {=0A=
Descriptor *i;=0A=
char *send_buf;=0A=
va_list args;=0A=
=0A=
if (!messg || !*messg)=0A=
return;=0A=
=0A=
send_buf =3D Buffer::Acquire(( MAX_STRING_LENGTH ), Buffer::tBuffer, =
__null , __FUNCTION__, 2091) ;=0A=
=0A=
( args =3D ((__gnuc_va_list) __builtin_next_arg ( messg ))) ;=0A=
vsprintf(send_buf, messg, args);=0A=
((void)0) ;=0A=
=0A=
LListIterator<Descriptor *> iter(descriptor_list);=0A=
while ((i =3D iter.Next())) {=0A=
if (((( i )->connected) =3D=3D CON_PLAYING) && i->character && =
i->character !=3D ch &&=0A=
! (! ((( (( i->character )->general.act) ) & ( MOB_ISNPC )) ) =
&& (( (( i->character )->general.act) ) & ( ( PLR_WRITING ) )) ) =
)=0A=
i->Write("%s", send_buf);=0A=
}=0A=
=0A=
do { Buffer::Detach(( send_buf ), Buffer::tBuffer, __FUNCTION__, =
2104); ( send_buf ) =3D __null ; } while(0) ;=0A=
}=0A=
=0A=
=0A=
void send_to_outdoorf(const char *messg, ...) {=0A=
Descriptor *i;=0A=
va_list args;=0A=
char *send_buf;=0A=
=0A=
if (!messg || !*messg)=0A=
return;=0A=
=0A=
send_buf =3D Buffer::Acquire(( MAX_STRING_LENGTH ), Buffer::tBuffer, =
__null , __FUNCTION__, 2116) ;=0A=
=0A=
( args =3D ((__gnuc_va_list) __builtin_next_arg ( messg ))) ;=0A=
vsprintf(send_buf, messg, args);=0A=
((void)0) ;=0A=
=0A=
LListIterator<Descriptor *> iter(descriptor_list);=0A=
while ((i =3D iter.Next())) {=0A=
if (((( i )->connected) =3D=3D CON_PLAYING) && i->character && ((( =
i->character )->general.position) > POS_SLEEPING) &&=0A=
(! ((( (world[( (( i->character )->InRoom()) )].flags) ) & ( =
( ROOM_INDOORS ) )) ) ) && ! (! ((( (( i->character =
)->general.act) ) & ( MOB_ISNPC )) ) && (( (( i->character =
)->general.act) ) & ( ( PLR_WRITING ) )) ) )=0A=
i->Write("%s", send_buf);=0A=
}=0A=
=0A=
do { Buffer::Detach(( send_buf ), Buffer::tBuffer, __FUNCTION__, =
2129); ( send_buf ) =3D __null ; } while(0) ;=0A=
}=0A=
=0A=
=0A=
const char *ACTNULL =3D "<NULL>";=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
void perform_act(const char *orig, const Character *ch, const Object =
*obj, CPtr vict_obj,=0A=
Character *to) {=0A=
const char *i =3D __null ;=0A=
=0A=
char * lbuf =3D Buffer::Acquire(( MAX_STRING_LENGTH ), =
Buffer::tBuffer, __null , __FUNCTION__, 2144) ;=0A=
char * buf =3D lbuf;=0A=
=0A=
Relation::Relation relation =3D Relation::None;=0A=
const Character * victim =3D __null ;=0A=
const Object * target =3D __null ;=0A=
const char * arg =3D __null ;=0A=
=0A=
for (;;) {=0A=
if (*orig =3D=3D '$') {=0A=
switch (*(++orig)) {=0A=
case 'n':=0A=
i =3D (( to )->CanSee( ch ) ? ( ch )->Name() : "someone") ;=0A=
relation =3D ch->GetRelation(to);=0A=
break;=0A=
case 'N':=0A=
victim =3D static_cast<const Character *>(vict_obj);=0A=
if (!( victim )) i =3D ACTNULL; else i =3D ( (( to )->CanSee( =
victim ) ? ( victim )->Name() : "someone") ); ;=0A=
if (victim) relation =3D to->GetRelation(victim);=0A=
break;=0A=
case 'm':=0A=
i =3D ((( ch )->general.sex) ? ((( ch )->general.sex) =
=3D=3DMale ? "him":"her") : "it") ;=0A=
break;=0A=
case 'M':=0A=
victim =3D static_cast<const Character *>(vict_obj);=0A=
if (!( victim )) i =3D ACTNULL; else i =3D ( ((( victim =
)->general.sex) ? ((( victim )->general.sex) =3D=3DMale ? =
"him":"her") : "it") ); ;=0A=
break;=0A=
case 's':=0A=
i =3D ((( ch )->general.sex) ? ((( ch )->general.sex) =
=3D=3DMale ? "his":"her") :"its") ;=0A=
break;=0A=
case 'S':=0A=
victim =3D static_cast<const Character *>(vict_obj);=0A=
if (!( vict_obj )) i =3D ACTNULL; else i =3D ( ((( victim =
)->general.sex) ? ((( victim )->general.sex) =3D=3DMale ? =
"his":"her") :"its") ); ;=0A=
break;=0A=
case 'e':=0A=
i =3D ((( ch )->general.sex) ? ((( ch )->general.sex) =
=3D=3DMale ? "he" :"she") : "it") ;=0A=
break;=0A=
case 'E':=0A=
victim =3D static_cast<const Character *>(vict_obj);=0A=
if (!( victim )) i =3D ACTNULL; else i =3D ( ((( victim =
)->general.sex) ? ((( victim )->general.sex) =3D=3DMale ? "he" =
:"she") : "it") ); ;=0A=
break;=0A=
case 'o':=0A=
if (!( obj )) i =3D ACTNULL; else i =3D ( (( to )->CanSee( obj ) =
? fname( ( obj )->name ->Data() ) : "something") ); ;=0A=
break;=0A=
case 'O':=0A=
target =3D static_cast<const Object *>(vict_obj);=0A=
if (!( target )) i =3D ACTNULL; else i =3D ( (( to )->CanSee( =
target ) ? fname( ( target )->name ->Data() ) : "something") ); ;=0A=
break;=0A=
case 'p':=0A=
if (!( obj )) i =3D ACTNULL; else i =3D ( (( to )->CanSee( obj ) =
? ( obj )->shortDesc ->Data() : "something") ); ;=0A=
break;=0A=
case 'P':=0A=
target =3D static_cast<const Object *>(vict_obj);=0A=
if (!( target )) i =3D ACTNULL; else i =3D ( (( to )->CanSee( =
target ) ? ( target )->shortDesc ->Data() : "something") ); ;=0A=
break;=0A=
case 'a':=0A=
if (!( obj )) i =3D ACTNULL; else i =3D ( (strchr("aeiouyAEIOUY", =
* ( obj )->name ->Data() ) ? "an" : "a") ); ;=0A=
break;=0A=
case 'A':=0A=
target =3D static_cast<const Object *>(vict_obj);=0A=
if (!( target )) i =3D ACTNULL; else i =3D ( =
(strchr("aeiouyAEIOUY", * ( target )->name ->Data() ) ? "an" : "a") =
); ;=0A=
break;=0A=
case 'T':=0A=
arg =3D static_cast<const char *>(vict_obj);=0A=
if (!( arg )) i =3D ACTNULL; else i =3D ( arg ); ;=0A=
break;=0A=
case 't':=0A=
if (!( obj )) i =3D ACTNULL; else i =3D ( reinterpret_cast<const =
char *>(obj) ); ;=0A=
break;=0A=
case 'F':=0A=
if (!( vict_obj )) i =3D ACTNULL; else i =3D ( =
fname(static_cast<const char *>(vict_obj)) ); ;=0A=
break;=0A=
case '%':=0A=
if (to !=3D ch) i =3D "s";=0A=
break;=0A=
case '$':=0A=
i =3D "$";=0A=
break;=0A=
default:=0A=
log("SYSERR: Illegal $-code to act(): %c", *orig);=0A=
log("SYSERR: %s", orig);=0A=
break;=0A=
}=0A=
if (i) {=0A=
if (relation !=3D Relation::None) {=0A=
*buf++ =3D '`';=0A=
*buf++ =3D relation_colors[relation];=0A=
}=0A=
=0A=
while ((*buf =3D *(i++)))=0A=
buf++;=0A=
=0A=
if (relation !=3D Relation::None) {=0A=
*buf++ =3D '`';=0A=
*buf++ =3D 'n';=0A=
}=0A=
relation =3D Relation::None;=0A=
}=0A=
orig++;=0A=
} else if (!(*(buf++) =3D *(orig++)))=0A=
break;=0A=
}=0A=
=0A=
*(--buf) =3D '\r';=0A=
*(++buf) =3D '\n';=0A=
*(++buf) =3D '\0';=0A=
=0A=
if (to->desc)=0A=
to->desc->Write("%s", (*( lbuf ) =3D ((( *( lbuf ) ) >=3D 'a' && ( =
*( lbuf ) ) <=3D 'z') ? (( *( lbuf ) )+('A'-'a')) : ( *( lbuf ) )) , =
lbuf ) );=0A=
if (((( (( to )->general.act) ) & ( MOB_ISNPC )) ) && act_check =
&& (to !=3D ch))=0A=
act_mtrigger(to, lbuf, ch, victim, obj, target, arg);=0A=
do { Buffer::Detach(( lbuf ), Buffer::tBuffer, __FUNCTION__, 2255); ( =
lbuf ) =3D __null ; } while(0) ;=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
void the_act(const char *str, bool hide_invisible, const Character *ch, =
const Object *obj,=0A=
CPtr vict_obj, int type, const char *who, UInt16 line)=0A=
=0A=
=0A=
=0A=
{=0A=
Character * to;=0A=
Descriptor * i;=0A=
VNum room;=0A=
bool sleep =3D false;=0A=
=0A=
if (!str || !*str) {=0A=
return;=0A=
}=0A=
=0A=
if ((( type ) & ( (1 << 8) )) )=0A=
sleep =3D true;=0A=
=0A=
=0A=
act_check =3D ! (( type ) & ( (1 << 7) )) ;=0A=
=0A=
if ((( type ) & ( (1 << 3) )) && ch && ((((( (( ch =
)->general.act) ) & ( MOB_ISNPC )) ) || (( ch )->desc && ((( ch =
->desc )->connected) =3D=3D CON_PLAYING))) && (((( ch =
)->general.position) > POS_SLEEPING) || sleep) && ! (! ((( (( ( ch =
) )->general.act) ) & ( MOB_ISNPC )) ) && (( (( ( ch ) =
)->general.act) ) & ( ( PLR_WRITING ) )) ) ) )=0A=
perform_act(str, ch, obj, vict_obj, const_cast<Character *>(ch));=0A=
=0A=
if ((( type ) & ( (1 << 1) )) && (to =3D static_cast<Character =
*>(const_cast<Ptr>(vict_obj))) && ((((( (( to )->general.act) ) & =
( MOB_ISNPC )) ) || (( to )->desc && ((( to ->desc )->connected) =
=3D=3D CON_PLAYING))) && (((( to )->general.position) > =
POS_SLEEPING) || sleep) && ! (! ((( (( ( to ) )->general.act) ) & =
( MOB_ISNPC )) ) && (( (( ( to ) )->general.act) ) & ( ( =
PLR_WRITING ) )) ) ) )=0A=
perform_act(str, ch, obj, vict_obj, to);=0A=
=0A=
if ((( type ) & ( (1 << 4) | (1 << 5) )) ) {=0A=
LListIterator< Descriptor * > iter ( descriptor_list ); while (( =
i =3D iter .Next())) {=0A=
if (i->character && ((((( (( i->character )->general.act) ) & ( =
MOB_ISNPC )) ) || (( i->character )->desc && ((( i->character ->desc =
)->connected) =3D=3D CON_PLAYING))) && (((( i->character =
)->general.position) > POS_SLEEPING) || sleep) && ! (! ((( (( ( =
i->character ) )->general.act) ) & ( MOB_ISNPC )) ) && (( (( ( =
i->character ) )->general.act) ) & ( ( PLR_WRITING ) )) ) ) && =
(i->character !=3D ch) &&=0A=
!(hide_invisible && ch && !i->character->CanSee(ch)) &&=0A=
(((( type ) & ( (1 << 5) )) ) || (world[(( ch )->InRoom()) =
].zone =3D=3D world[(( i->character )->InRoom()) ].zone)))=0A=
perform_act(str, ch, obj, vict_obj, i->character);=0A=
}=0A=
}=0A=
=0A=
=0A=
if ((( type ) & ( (1 << 0) | (1 << 2) )) ) {=0A=
if (ch && ((( ch )->InRoom()) !=3D NOWHERE)) {=0A=
room =3D (( ch )->InRoom()) ;=0A=
} else if (obj && ((( obj )->InRoom()) !=3D NOWHERE)) {=0A=
room =3D (( obj )->InRoom()) ;=0A=
} else {=0A=
=0A=
log("SYSERR: no valid target to act() called by %s:%d", who, =
line);=0A=
=0A=
=0A=
=0A=
log("SYSERR: \"%s\"", str);=0A=
return;=0A=
}=0A=
=0A=
LListIterator< Character * > iter ( world[room].people ); while (( =
to =3D iter .Next())) {=0A=
if (((((( (( to )->general.act) ) & ( MOB_ISNPC )) ) || (( to =
)->desc && ((( to ->desc )->connected) =3D=3D CON_PLAYING))) && (((( =
to )->general.position) > POS_SLEEPING) || sleep) && ! (! ((( (( =
( to ) )->general.act) ) & ( MOB_ISNPC )) ) && (( (( ( to ) =
)->general.act) ) & ( ( PLR_WRITING ) )) ) ) && !(hide_invisible && =
ch && !to->CanSee(ch)) &&=0A=
(to !=3D ch) && ((( type ) & ( (1 << 0) )) || (to !=3D =
vict_obj)))=0A=
perform_act(str, ch, obj, vict_obj, to);=0A=
}=0A=
}=0A=
}=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
const char *COLORLIST[] =3D {"\x1B[0;0m" , "\x1B[0;30m" , "\x1B[0;31m" =
,"\x1B[0;32m" ,"\x1B[0;33m" ,"\x1B[0;34m" ,"\x1B[0;35m" ,"\x1B[0;36m" =
,"\x1B[0;37m" ,=0A=
"\x1B[1;30m" , "\x1B[1;31m" ,"\x1B[1;32m" ,"\x1B[1;33m" =
,"\x1B[1;34m" ,"\x1B[1;35m" ,"\x1B[1;36m" ,"\x1B[1;37m" ,=0A=
"\x1B[7m" , "\x1B[7m" , "\x1B[5m" , "\x1B[5m" , "\007" , "`",=0A=
"\x1B[40m" ,"\x1B[41m" ,"\x1B[42m" ,"\x1B[43m" ,"\x1B[44m" =
,"\x1B[45m" ,"\x1B[46m" ,"\x1B[47m" , "^"};=0A=
=0A=
void proc_color(char *inbuf, int color) {=0A=
int j=3D0,p=3D0;=0A=
int c =3D 0,=0A=
k,max;=0A=
static char out_buf[32 * 1024];=0A=
=0A=
if(!*inbuf)=0A=
return;=0A=
=0A=
while(inbuf[j]) {=0A=
if(((inbuf[j]=3D=3D'`') && (c =3D search_chars(inbuf[j+1], =
"nkrgybmcwKRGYBMCWiIfF*`\n")) >=3D 0) ||=0A=
((inbuf[j]=3D=3D'^') && (c =3D search_chars(inbuf[j+1], =
"krgybmcw^\n")) >=3D 0)) {=0A=
if (inbuf[j] =3D=3D '^')=0A=
c +=3D 23;=0A=
max=3Dstrlen(COLORLIST[c]);=0A=
j+=3D2;=0A=
if(color || (inbuf[j-1] =3D=3D '`') || (inbuf[j-1] =3D=3D '^'))=0A=
for(k=3D0;k<max;k++)=0A=
out_buf[p++] =3D COLORLIST[c][k];=0A=
} else=0A=
out_buf[p++] =3D inbuf[j++];=0A=
}=0A=
max=3Dstrlen(COLORLIST[0]);=0A=
if (color)=0A=
for(k=3D0; k < max; k++)=0A=
out_buf[p++] =3D COLORLIST[0][k];=0A=
=0A=
out_buf[p] =3D '\0';=0A=
=0A=
strcpy(inbuf, out_buf);=0A=
}=0A=
=0A=
=0A=
void sub_write_to_char(Character *ch, char *tokens[], Ptr otokens[], =
SInt8 type[]) {=0A=
char * string =3D Buffer::Acquire(( MAX_STRING_LENGTH ), =
Buffer::tBuffer, __null , __FUNCTION__, 2394) ;=0A=
int i;=0A=
=0A=
for (i =3D 0; tokens[i + 1]; i++) {=0A=
strcat(string, tokens[i]);=0A=
=0A=
switch (type[i]) {=0A=
case '~':=0A=
if (!otokens[i]) strcat(string, "someone");=0A=
else if (otokens[i] =3D=3D ch) strcat(string, "you");=0A=
else strcat(string, (( ch )->CanSee( static_cast<Character =
*>(otokens[i]) ) ? ( static_cast<Character *>(otokens[i]) )->Name() : =
"someone") );=0A=
break;=0A=
=0A=
case '@':=0A=
if (!otokens[i]) strcat(string, "someone's");=0A=
else if (otokens[i] =3D=3D ch) strcat(string, "your");=0A=
else sprintf(string + strlen(string), "%s's",=0A=
(( ch )->CanSee( static_cast<Character *>(otokens[i]) ) ? =
( static_cast<Character *>(otokens[i]) )->Name() : "someone") );=0A=
break;=0A=
=0A=
case '^':=0A=
if (!otokens[i] || !ch->CanSee(static_cast<Character =
*>(otokens[i])))=0A=
strcat(string, "its");=0A=
else if (otokens[i] =3D=3D ch) strcat(string, "your");=0A=
else strcat(string, ((( static_cast<Character *>(otokens[i]) =
)->general.sex) ? ((( static_cast<Character *>(otokens[i]) =
)->general.sex) =3D=3DMale ? "his":"her") :"its") );=0A=
break;=0A=
=0A=
case '&':=0A=
if (!otokens[i] || !ch->CanSee(static_cast<Character =
*>(otokens[i])))=0A=
strcat(string, "it");=0A=
else if (otokens[i] =3D=3D ch) strcat(string, "you");=0A=
else strcat(string, ((( static_cast<Character *>(otokens[i]) =
)->general.sex) ? ((( static_cast<Character *>(otokens[i]) =
)->general.sex) =3D=3DMale ? "he" :"she") : "it") );=0A=
break;=0A=
=0A=
case '*':=0A=
if (!otokens[i] || !ch->CanSee(static_cast<Character =
*>(otokens[i])))=0A=
strcat(string, "it");=0A=
else if (otokens[i] =3D=3D ch) strcat(string, "you");=0A=
else strcat(string, ((( static_cast<Character *>(otokens[i]) =
)->general.sex) ? ((( static_cast<Character *>(otokens[i]) =
)->general.sex) =3D=3DMale ? "him":"her") : "it") );=0A=
break;=0A=
=0A=
case '`':=0A=
if (!otokens[i]) strcat(string, "something");=0A=
else strcat(string, (( ch )->CanSee( static_cast<Object =
*>(otokens[i]) ) ? ( static_cast<Object *>(otokens[i]) )->shortDesc =
->Data() : "something") );=0A=
break;=0A=
}=0A=
}=0A=
=0A=
ch->Send("%s%s\r\n", (*( string ) =3D ((( *( string ) ) >=3D 'a' && =
( *( string ) ) <=3D 'z') ? (( *( string ) )+('A'-'a')) : ( *( =
string ) )) , string ) , tokens[i]);=0A=
do { Buffer::Detach(( string ), Buffer::tBuffer, __FUNCTION__, 2443); =
( string ) =3D __null ; } while(0) ;=0A=
}=0A=
=0A=
=0A=
void sub_write(char *arg, Character *ch, bool find_invis, int targets) =
{=0A=
char *str =3D Buffer::Acquire(( MAX_STRING_LENGTH ), Buffer::tBuffer, =
__null , __FUNCTION__, 2448) ;=0A=
char *name =3D Buffer::Acquire(( MAX_INPUT_LENGTH ), Buffer::tBuffer, =
__null , __FUNCTION__, 2449) ;=0A=
SInt8 type[256];=0A=
char * tokens[256], *s, *p;=0A=
Ptr otokens[256];=0A=
Object *obj;=0A=
Character *to;=0A=
int i, tmp;=0A=
=0A=
if (arg) {=0A=
tokens[0] =3D str;=0A=
=0A=
for (i =3D 0, p =3D arg, s =3D str; *p;) {=0A=
switch (*p) {=0A=
case '~': =0A=
case '@':=0A=
case '^':=0A=
case '&':=0A=
case '*':=0A=
type[i] =3D *p;=0A=
*s =3D '\0';=0A=
p =3D any_one_name(++p, name);=0A=
otokens[i] =3D find_invis ? get_char(name) : get_char_vis(ch, =
name, FIND_CHAR_ROOM);=0A=
tokens[++i] =3D ++s;=0A=
break;=0A=
=0A=
case '`': =0A=
type[i] =3D *p;=0A=
*s =3D '\0';=0A=
p =3D any_one_name(++p, name);=0A=
otokens[i] =3D=0A=
find_invis ? (obj =3D get_obj(name)) :=0A=
((obj =3D get_obj_in_list_vis(ch, name, world[(( ch )->InRoom()) =
].contents)) ?=0A=
obj : (obj =3D get_object_in_equip_vis(ch, name, ch->equipment, =
&tmp)) ?=0A=
obj : (obj =3D get_obj_in_list_vis(ch, name, =
ch->carrying)));=0A=
otokens[i] =3D obj;=0A=
tokens[++i] =3D ++s;=0A=
break;=0A=
=0A=
case '\\':=0A=
p++;=0A=
*s++ =3D *p++;=0A=
break;=0A=
=0A=
default:=0A=
*s++ =3D *p++;=0A=
}=0A=
}=0A=
=0A=
*s =3D '\0';=0A=
tokens[++i] =3D __null ;=0A=
=0A=
if ((( targets ) & ( (1 << 3) )) && ((((( (( ch )->general.act)=
) & ( MOB_ISNPC )) ) || (( ch )->desc && ((( ch ->desc =
)->connected) =3D=3D CON_PLAYING))) && (((( ch =
)->general.position) > POS_SLEEPING) || sleep) && ! (! ((( (( ( ch =
) )->general.act) ) & ( MOB_ISNPC )) ) && (( (( ( ch ) =
)->general.act) ) & ( ( PLR_WRITING ) )) ) ) )=0A=
sub_write_to_char(ch, tokens, otokens, type);=0A=
=0A=
if ((( targets ) & ( (1 << 0) )) ) {=0A=
LListIterator<Character *> iter(world[(( ch )->InRoom()) =
].people);=0A=
while ((to =3D iter.Next())) {=0A=
if (to !=3D ch && ((((( (( to )->general.act) ) & ( MOB_ISNPC =
)) ) || (( to )->desc && ((( to ->desc )->connected) =3D=3D =
CON_PLAYING))) && (((( to )->general.position) > POS_SLEEPING) || =
sleep) && ! (! ((( (( ( to ) )->general.act) ) & ( MOB_ISNPC )) ) =
&& (( (( ( to ) )->general.act) ) & ( ( PLR_WRITING ) )) ) ) )=0A=
sub_write_to_char(to, tokens, otokens, type);=0A=
}=0A=
}=0A=
}=0A=
do { Buffer::Detach(( str ), Buffer::tBuffer, __FUNCTION__, 2511); ( =
str ) =3D __null ; } while(0) ;=0A=
do { Buffer::Detach(( name ), Buffer::tBuffer, __FUNCTION__, 2512); ( =
name ) =3D __null ; } while(0) ;=0A=
}=0A=
=0A=
=0A=
=0A=
void setup_log(const char *filename, int fd) {=0A=
FILE *s_fp;=0A=
=0A=
=0A=
s_fp =3D (_impure_ptr->_stderr) ;=0A=
# 2533 "comm.cp"=0A=
=0A=
=0A=
if (filename =3D=3D __null || *filename =3D=3D '\0') {=0A=
=0A=
logfile =3D s_fp;=0A=
puts("Using file descriptor for logging.");=0A=
return;=0A=
}=0A=
=0A=
=0A=
if (open_logfile(filename, s_fp)) return;=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
if (open_logfile("syslog", s_fp)) return;=0A=
=0A=
=0A=
puts("SYSERR: Couldn't open anything to log to, giving up.");=0A=
exit(1);=0A=
}=0A=
=0A=
=0A=
int open_logfile(const char *filename, FILE *stderr_fp) {=0A=
if (stderr_fp) =0A=
logfile =3D freopen(filename, "w", stderr_fp);=0A=
else=0A=
logfile =3D fopen(filename, "w");=0A=
=0A=
if (logfile) {=0A=
printf("Using log file '%s'%s.\n", filename, stderr_fp ? " with =
redirection" : "");=0A=
return (! 0 ) ;=0A=
}=0A=
=0A=
printf("SYSERR: Error opening file '%s': %s\n", filename, =
strerror((*__errno()) ));=0A=
return 0 ;=0A=
}=0A=
------_=_NextPart_000_01C10883.5BD4DF60--
^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: c++/3336
@ 2001-07-09 14:46 Travis Smith
0 siblings, 0 replies; 5+ messages in thread
From: Travis Smith @ 2001-07-09 14:46 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR c++/3336; it has been noted by GNATS.
From: Travis Smith <TSmith@hy-tekmail.net>
To: 'Phil Edwards' <pedwards@disaster.jaj.com>, Travis Smith
<TSmith@hy-tekmail.net>
Cc: gcc-gnats@gcc.gnu.org
Subject: RE: c++/3336
Date: Mon, 9 Jul 2001 17:35:57 -0400
If your name contains a vowel that is not in the first character position (
*[aeiouyAEIOUY] ) then you are now the intended recipient. Anyone else,
you're just outa luck. Go home, go to bed, and sleep your worries away :).
I'd like to note, that in the original email, it was attached automatically
- and to the end of the email, which just happened to be the end of the
attachment. It had nothing to do with the code, just company policy. Which
they will not let me change. (And they wonder why they can't send
attachments correctly).
Travis Smith
Information Systems
Hy-Tek Material Handling
2222 Port Road
Columbus, Oh 43217
Phone: 614.497.2500 ext 274
Fax: 614.497.2321
E-mail: TSmith@hy-tekmail.net
-----Original Message-----
From: Phil Edwards [ mailto:pedwards@disaster.jaj.com ]
Sent: Monday, July 09, 2001 5:33 PM
To: Travis Smith
Cc: gcc-gnats@gcc.gnu.org
Subject: Re: c++/3336
On Mon, Jul 09, 2001 at 09:26:03PM -0000, Travis Smith wrote:
> It's code from a GPL'd software package. It is not confidential code.
>
> Travis Smith
> Information Systems
> Hy-Tek Material Handling
> 2222 Port Road
> Columbus, Oh 43217
> Phone: 614.497.2500 ext 274
> Fax: 614.497.2321
> E-mail: TSmith@hy-tekmail.net
>
> *********************************************
> This email is confidential and intended solely for the use of the
individual
> to whom it is addressed. Any views or opinions presented are solely
those
> of the author and do not necessarily represent those of Hy-Tek Material
> Handling .
> If you are not the intended recipient, be advised that you have received
> this email in error and that any use, dissemination, forwarding,
printing,
> or copying of this email is strictly prohibited.
>
> If you have received this email in error please contact the sender.
> **********************************************
Can you confirm that your statement confirming that the code is not
confidential, is also not confidential?
:-)
Phil
--
Would I had phrases that are not known, utterances that are strange, in
new language that has not been used, free from repetition, not an utterance
which has grown stale, which men of old have spoken.
- anonymous Egyptian scribe, c.1700 BC
*********************************************
This email is confidential and intended solely for the use of the individual
to whom it is addressed. Any views or opinions presented are solely those
of the author and do not necessarily represent those of Hy-Tek Material
Handling .
If you are not the intended recipient, be advised that you have received
this email in error and that any use, dissemination, forwarding, printing,
or copying of this email is strictly prohibited.
If you have received this email in error please contact the sender.
**********************************************
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: c++/3336
@ 2001-07-09 14:36 Phil Edwards
0 siblings, 0 replies; 5+ messages in thread
From: Phil Edwards @ 2001-07-09 14:36 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR c++/3336; it has been noted by GNATS.
From: Phil Edwards <pedwards@disaster.jaj.com>
To: Travis Smith <TSmith@hy-tekmail.net>
Cc: gcc-gnats@gcc.gnu.org
Subject: Re: c++/3336
Date: Mon, 9 Jul 2001 17:32:34 -0400
On Mon, Jul 09, 2001 at 09:26:03PM -0000, Travis Smith wrote:
> It's code from a GPL'd software package. It is not confidential code.
>
> Travis Smith
> Information Systems
> Hy-Tek Material Handling
> 2222 Port Road
> Columbus, Oh 43217
> Phone: 614.497.2500 ext 274
> Fax: 614.497.2321
> E-mail: TSmith@hy-tekmail.net
>
> *********************************************
> This email is confidential and intended solely for the use of the individual
> to whom it is addressed. Any views or opinions presented are solely those
> of the author and do not necessarily represent those of Hy-Tek Material
> Handling .
> If you are not the intended recipient, be advised that you have received
> this email in error and that any use, dissemination, forwarding, printing,
> or copying of this email is strictly prohibited.
>
> If you have received this email in error please contact the sender.
> **********************************************
Can you confirm that your statement confirming that the code is not
confidential, is also not confidential?
:-)
Phil
--
Would I had phrases that are not known, utterances that are strange, in
new language that has not been used, free from repetition, not an utterance
which has grown stale, which men of old have spoken.
- anonymous Egyptian scribe, c.1700 BC
^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: c++/3336
@ 2001-07-09 14:26 Travis Smith
0 siblings, 0 replies; 5+ messages in thread
From: Travis Smith @ 2001-07-09 14:26 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR c++/3336; it has been noted by GNATS.
From: Travis Smith <TSmith@hy-tekmail.net>
To: 'Nathan Sidwell' <nathan@codesourcery.com>, Travis Smith
<TSmith@hy-tekmail.net>
Cc: "'gcc-gnats@gcc.gnu.org'" <gcc-gnats@gcc.gnu.org>,
"'gcc-prs@gcc.gnu.org'" <gcc-prs@gcc.gnu.org>, "'tazium@yahoo.com'"
<tazium@yahoo.com>
Subject: RE: c++/3336
Date: Mon, 9 Jul 2001 17:18:09 -0400
It's code from a GPL'd software package. It is not confidential code.
Travis Smith
Information Systems
Hy-Tek Material Handling
2222 Port Road
Columbus, Oh 43217
Phone: 614.497.2500 ext 274
Fax: 614.497.2321
E-mail: TSmith@hy-tekmail.net
-----Original Message-----
From: Nathan Sidwell [ mailto:nathan@codesourcery.com ]
Sent: Monday, July 09, 2001 5:14 PM
To: Travis Smith
Cc: 'gcc-gnats@gcc.gnu.org'; 'gcc-prs@gcc.gnu.org'; 'tazium@yahoo.com'
Subject: Re: c++/3336
Travis Smith wrote:
>
> Here's the preprocessor for it.
You've provided the cpp output, but your mail has the following boilerplate
on it.
> This email is confidential and intended solely for the use of the
individual
> to whom it is addressed. Any views or opinions presented are solely those
> of the author and do not necessarily represent those of Hy-Tek Material
> Handling .
> If you are not the intended recipient, be advised that you have received
> this email in error and that any use, dissemination, forwarding, printing,
> or copying of this email is strictly prohibited.
>
> If you have received this email in error please contact the sender.
can you confirm that 'comm.ii' is not confidential?
nathan
--
Dr Nathan Sidwell :: http://www.codesourcery.com :: CodeSourcery LLC
'But that's a lie.' - 'Yes it is. What's your point?'
nathan@codesourcery.com : http://www.cs.bris.ac.uk/~nathan/ : nathan@acm.org
*********************************************
This email is confidential and intended solely for the use of the individual
to whom it is addressed. Any views or opinions presented are solely those
of the author and do not necessarily represent those of Hy-Tek Material
Handling .
If you are not the intended recipient, be advised that you have received
this email in error and that any use, dissemination, forwarding, printing,
or copying of this email is strictly prohibited.
If you have received this email in error please contact the sender.
**********************************************
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: c++/3336
@ 2001-07-09 14:16 Nathan Sidwell
0 siblings, 0 replies; 5+ messages in thread
From: Nathan Sidwell @ 2001-07-09 14:16 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR c++/3336; it has been noted by GNATS.
From: Nathan Sidwell <nathan@codesourcery.com>
To: Travis Smith <TSmith@hy-tekmail.net>
Cc: "'gcc-gnats@gcc.gnu.org'" <gcc-gnats@gcc.gnu.org>,
"'gcc-prs@gcc.gnu.org'" <gcc-prs@gcc.gnu.org>,
"'tazium@yahoo.com'" <tazium@yahoo.com>
Subject: Re: c++/3336
Date: Mon, 09 Jul 2001 22:14:16 +0100
Travis Smith wrote:
>
> Here's the preprocessor for it.
You've provided the cpp output, but your mail has the following boilerplate on it.
> This email is confidential and intended solely for the use of the individual
> to whom it is addressed. Any views or opinions presented are solely those
> of the author and do not necessarily represent those of Hy-Tek Material
> Handling .
> If you are not the intended recipient, be advised that you have received
> this email in error and that any use, dissemination, forwarding, printing,
> or copying of this email is strictly prohibited.
>
> If you have received this email in error please contact the sender.
can you confirm that 'comm.ii' is not confidential?
nathan
--
Dr Nathan Sidwell :: http://www.codesourcery.com :: CodeSourcery LLC
'But that's a lie.' - 'Yes it is. What's your point?'
nathan@codesourcery.com : http://www.cs.bris.ac.uk/~nathan/ : nathan@acm.org
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2001-07-09 14:46 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-07-09 7:36 c++/3336 Travis Smith
2001-07-09 14:16 c++/3336 Nathan Sidwell
2001-07-09 14:26 c++/3336 Travis Smith
2001-07-09 14:36 c++/3336 Phil Edwards
2001-07-09 14:46 c++/3336 Travis Smith
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).