⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xneko.c

📁 早期freebsd实现
💻 C
📖 第 1 页 / 共 3 页
字号:
/*- * Copyright (c) 1991, 1993 *	The Regents of the University of California.  All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software *    must display the following acknowledgement: *	This product includes software developed by the University of *	California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */#ifndef lintstatic char copyright[] ="@(#) Copyright (c) 1991, 1993\n\	The Regents of the University of California.  All rights reserved.\n";#endif /* not lint */#ifndef lintstatic char sccsid[] = "@(#)xneko.c	8.1 (Berkeley) 5/31/93";#endif /* not lint *//*-------------------------------------------------------------- * *	xneko  -  X11 G- * *			Original Writer: Masayuki Koba *			Programmed by Masayuki Koba, 1990 * *-------------------------------------------------------------- * *!!Introduction: * *!!!!K\@(#)xneko.c	8.1m%0%i%`$O Macintosh $N5/31/939%/%"%/%;%5%j!< "neko" $N *!!F0:n$r X11 $G%^%M$?$b$N$G$9!# * *!!!!Macintosh "neko" $N=(0o$J5/31/936%$%s$K7I0U$rI=$7$D$D!"$3$N *!!@(#)xneko.c	8.1m%0%i%`$r3'$5$s$KJ{$2$^$9!# * *-------------------------------------------------------------- * *!!Special Thanks to * *	toshi-w	!D!!Macintosh neko $N>R2p<T *	shio-m	!D!!!VX11 $N neko $,M_$7$$!*!W$H%?%@$r$3$M$??M *	disco	!D!!X11 SCCS/s.xneko.c/%K%+%k!&%"8.1P%$%6!< * *	HOMY	!D!!/usr/src/games/xneko/SCCS/s.xneko.c0;XE&<T *	BNS	!D!!J#?t@(#)xneko.c	8.1l!<%sBP1~May 31, 1993C%ADs6!<T * *		"xneko"  Presented by Masayuki Koba (masa-k). * *-------------------------------------------------------------- * *!!Manifest: * *!!!!K\@(#)xneko.c	8.1m%0%i%`$O Public Domain Software $G$9!#E>:\!&2~NI$O *!!<+M3$K9T$C$F2<$5$$!# * *!!!!$J$*!"86:n<T$O!"K\@(#)xneko.c	8.1m%0%i%`$r;HMQ$9$k$3$H$K$h$C$F@8$8$? *!!>c32$dITMx1W$K$D$$$F$$$C$5$$@UG$$r;}$A$^$;$s!# * *-------------------------------------------------------------- * *!!Bugs: * *!!!!!J#1!KX11 $N .Xdefaults $N@_Dj$r$^$k$C$-$jL5;k$7$F$$$^$9!# * *!!!!!J#2!KG-$NF0:n$,;~4V$HF14|$7$F$$$k$?$a!"%^%&%9$N0\F0>pJs *!!!!!!!!$r%]!<%j%s%0$7$F$$$^$9!#=>$C$F!"%^%&%9$,A4$/F0:n$7$F *!!!!!!!!$$$J$$;~$OL5BL$J%^%&%9:BI8FI$_<h$j$r9T$C$F$7$^$$$^$9!# * *!!!!!J#3!K%&%#%s8.1&$,%"%$%3%s2=$5$l$F$b!"$7$i$s$W$j$GIA2h$7 *!!!!!!!!$D$E$1$^$9!#$3$NItJ,$O!"8=:_$N%&%#%s8.1&$N>uBV$r@(#) xneko.c 8.1@(#)' *!!!!!!!!70/$7$F!"%"%$%3%s2=$5$l$F$$$k;~$O40A4$K%$s%HBT$A *!!!!!!!!$K$J$k$h$&$K=q$-JQ$($J$1$l$P$J$j$^$;$s!# ($=$s$J$3$H!" *!!!!!!!!$G$-$k$N$+$J$!!#X10 $G$O$G$-$^$7$?$,!#) * *!!!!!J#4!K%j%5%$%:8e$N%&%#%s8.1&$,6KC<$K>.$5$/$J$C$?;~$NF0:n *!!!!!!!!$OJ]>Z$G$-$^$;$s!# * *!!!!!J#5!KK\Mh$J$i$P3NJ]$7$?%&%#%s8.1&$d Pixmap $O@(#)xneko.c	8.1m%0%i%` *!!!!!!!!=*N;;~$K2rJ|$9$kI,MW$,$"$j$^$9$,!"K\@(#)xneko.c	8.1m%0%i%`$O$=$N *!!!!!!!!$X$s$r%5%\$C$F$*$j!"Hs>o$K$*9T57$,0-$/$J$C$F$$$^$9!# *!!!!!!!!IaDL$O exit() ;~$K%7%9SCCS/s.xneko.c`$,M>J,$J%j%=!<%9$r2rJ|$7$F *!!!!!!!!$/$l$^$9$,!"#O#S$K/usr/src/games/xneko/SCCS/s.xneko.c0$,$"$k>l9g$O xneko $r2?EY$b5/ *!!!!!!!!F0$9$k$H!"$=$N$&$A%9%o82WNN0h$,ITB-$7$F$7$^$&$3$H$K *!!!!!!!!$J$k$+$b$7$l$^$;$s!# * *!!!!!J#6!K;~4V$KF14|$7$FI,$:IA2h=hM}$r<B9T$9$k$?$a!"0BDj>uBV *!!!!!!!!$G$b Idle 90 !A 95% $H$J$j!"%7%9SCCS/s.xneko.c`#C#P#U$r 5 !A 10% *!!!!!!!!Dx>CHq$7$^$9!#!Jxtachos $GD4$Y$^$7$?!#!K * *-------------------------------------------------------------- * *!!System (Machine): * *!!!!K\@(#)xneko.c	8.1m%0%i%`$NF0:n$r3NG'$7$?%7%9SCCS/s.xneko.c`9=@.$O0J2<$NDL$j!# * *	!&NWS-1750!"NWS-1720 (NEWS)!"NWP-512D *	!!NEWS-OS 3.2a (UNIX 4.3BSD)!"X11 Release 2 * *	!&NWS-1750!"NWS-1720 (NEWS)!"NWP-512D *	!!NEWS-OS 3.3 (UNIX 4.3BSD)!"X11 Release 3 * *	!&Sun 3!"X11 Release 4 * *	!&LUNA!"X11 Release 3 * *	!&DECstation 3100!"ULTRIX!"X11 * *--------------------------------------------------------------*/#include <X11/Xlib.h>#include <X11/Xutil.h>#include <X11/keysym.h>#include <stdio.h>#include <signal.h>#include <math.h>#include <sys/time.h>#ifndef	lintstatic char	rcsid[] = "$Header: /afs/athena.mit.edu/user/j/jik/sipbsrc/src/xneko/RCS/xneko.c,v 1.2 90/09/01 23:40:01 jik Exp $";static char	WriterMessage[] = "xneko: Programmed by Masayuki Koba, 1990";#endif/* *	X11 G- 0C5/31/93^129W18:45:36!%$%k0lMw!' * *		"icon.xbm"		!D!!%"%$%3%s *		"cursor.xbm"		!D!!%+!<%=%k *		"cursor_mask.xbm"	!D!!%+!<%=%k!J%^%9%/!K * *		"space.xbm"		!D!!%9%Z!<%9 * *		"mati2.xbm"		!D!!BT$A#2 *		"jare2.xbm"		!D!!$8$c$l#2 *		"kaki1.xbm"		!D!!A_$-#1 *		"kaki2.xbm"		!D!!A_$-#2 *		"mati3.xbm"		!D!!BT$A#3!J$"$/$S!K *		"sleep1.xbm"		!D!!?2$k#1 *		"sleep2.xbm"		!D!!?2$k#2 * *		"awake.xbm"		!D!!L\3P$a * *		"up1.xbm"		!D!!>e#1 *		"up2.xbm"		!D!!>e#2 *		"down1.xbm"		!D!!2<#1 *		"down2.xbm"		!D!!2<#2 *		"left1.xbm"		!D!!:8#1 *		"left2.xbm"		!D!!:8#2 *		"right1.xbm"		!D!!1&#1 *		"right2.xbm"		!D!!1&#2 *		"upleft1.xbm"		!D!!:8>e#1 *		"upleft2.xbm"		!D!!:8>e#2 *		"upright1.xbm"		!D!!1&>e#1 *		"upright2.xbm"		!D!!1&>e#2 *		"dwleft1.xbm"		!D!!:82<#1 *		"dwleft2.xbm"		!D!!:82<#2 *		"dwright1.xbm"		!D!!1&2<#1 *		"dwright2.xbm"		!D!!1&2<#2 * *		"utogi1.xbm"		!D!!>eKa$.#1 *		"utogi2.xbm"		!D!!>eKa$.#2 *		"dtogi1.xbm"		!D!!2<Ka$.#1 *		"dtogi2.xbm"		!D!!2<Ka$.#2 *		"ltogi1.xbm"		!D!!:8Ka$.#1 *		"ltogi2.xbm"		!D!!:8Ka$.#2 *		"rtogi1.xbm"		!D!!1&Ka$.#1 *		"rtogi2.xbm"		!D!!1&Ka$.#2 * *	!!$3$l$i$N18:45:36!%$%k$O bitmap %3%^%s%I$GJT=82DG=$G$9!# * *		(bitmap size "* 32x32 ... Macintosh ICON resource size.) * */#include "bitmaps/icon.xbm"#include "bitmaps/cursor.xbm"#include "bitmaps/cursor_mask.xbm"#include "bitmaps/space.xbm"#include "bitmaps/mati2.xbm"#include "bitmaps/jare2.xbm"#include "bitmaps/kaki1.xbm"#include "bitmaps/kaki2.xbm"#include "bitmaps/mati3.xbm"#include "bitmaps/sleep1.xbm"#include "bitmaps/sleep2.xbm"#include "bitmaps/awake.xbm"#include "bitmaps/up1.xbm"#include "bitmaps/up2.xbm"#include "bitmaps/down1.xbm"#include "bitmaps/down2.xbm"#include "bitmaps/left1.xbm"#include "bitmaps/left2.xbm"#include "bitmaps/right1.xbm"#include "bitmaps/right2.xbm"#include "bitmaps/upright1.xbm"#include "bitmaps/upright2.xbm"#include "bitmaps/upleft1.xbm"#include "bitmaps/upleft2.xbm"#include "bitmaps/dwleft1.xbm"#include "bitmaps/dwleft2.xbm"#include "bitmaps/dwright1.xbm"#include "bitmaps/dwright2.xbm"#include "bitmaps/utogi1.xbm"#include "bitmaps/utogi2.xbm"#include "bitmaps/dtogi1.xbm"#include "bitmaps/dtogi2.xbm"#include "bitmaps/ltogi1.xbm"#include "bitmaps/ltogi2.xbm"#include "bitmaps/rtogi1.xbm"#include "bitmaps/rtogi2.xbm"/* *	Dj?tDj5A */#define	BITMAP_WIDTH		32	/* #1%-%c%i%/%?$NI} (18:45:53/%;%k) */#define	BITMAP_HEIGHT		32	/* #1%-%c%i%/%?$N9b$5 (18:45:53/%;%k) */#define	WINDOW_WIDTH		320	/* %&%#%s8.1&$NI} (18:45:53/%;%k) */#define	WINDOW_HEIGHT		256	/* %&%#%s8.1&$N9b$5 (18:45:53/%;%k) */#define	DEFAULT_BORDER		2	/* %\!<%@!<%5%$%: */#define	DEFAULT_WIN_X		1	/* %&%#%s8.1&@8@.#X:BI8 */#define	DEFAULT_WIN_Y		1	/* %&%#%s8.1&@8@.#Y:BI8 */#define	AVAIL_KEYBUF		255#define	EVENT_MASK1		( KeyPressMask | StructureNotifyMask )#define	EVENT_MASK2		( KeyPressMask | \				  ExposureMask | \				  StructureNotifyMask )#define	MAX_TICK		9999		/* Odd Only! */#define	INTERVAL		125000L		/* %$%s%?!</usr/src/games/xneko/SCCS/s.xneko.ck%?%$%` */#define	NEKO_SPEED		16#define	IDLE_SPACE		6#define	NORMAL_STATE		1#define	DEBUG_LIST		2#define	DEBUG_MOVE		3/* G-$N>uBVDj?t */#define	NEKO_STOP		0	/* N)$A;_$^$C$? */#define	NEKO_JARE		1	/* 4i$r@v$C$F$$$k */#define	NEKO_KAKI		2	/* F,$rA_$$$F$$$k */#define	NEKO_AKUBI		3	/* $"$/$S$r$7$F$$$k */#define	NEKO_SLEEP		4	/* ?2$F$7$^$C$? */#define	NEKO_AWAKE		5	/* L\$,3P$a$? */#define	NEKO_U_MOVE		6	/* >e$K0\F0Cf */#define	NEKO_D_MOVE		7	/* 2<$K0\F0Cf */#define	NEKO_L_MOVE		8	/* :8$K0\F0Cf */#define	NEKO_R_MOVE		9	/* 1&$K0\F0Cf */#define	NEKO_UL_MOVE		10	/* :8>e$K0\F0Cf */#define	NEKO_UR_MOVE		11	/* 1&>e$K0\F0Cf */#define	NEKO_DL_MOVE		12	/* :82<$K0\F0Cf */#define	NEKO_DR_MOVE		13	/* 1&2<$K0\F0Cf */#define	NEKO_U_TOGI		14	/* >e$NJI$r0z$CA_$$$F$$$k */#define	NEKO_D_TOGI		15	/* 2<$NJI$r0z$CA_$$$F$$$k */#define	NEKO_L_TOGI		16	/* :8$NJI$r0z$CA_$$$F$$$k */#define	NEKO_R_TOGI		17	/* 1&$NJI$r0z$CA_$$$F$$$k *//* G-$N%"%K%a!<%7%g%s7+$jJV$72s?t */#define	NEKO_STOP_TIME		4#define	NEKO_JARE_TIME		10#define	NEKO_KAKI_TIME		4#define	NEKO_AKUBI_TIME		3#define	NEKO_AWAKE_TIME		3#define	NEKO_TOGI_TIME		10#define	PI_PER8			((double)3.1415926535/(double)8)#define	DIRNAMELEN		255/* *	%0%m!</usr/src/games/xneko/SCCS/s.xneko.ckJQ?t */static char		*ProgramName;		/* %3%^%s%IL>>N */Display			*theDisplay;int			theScreen;unsigned int		theDepth;unsigned long		theBlackPixel;unsigned long		theWhitePixel;Window			theWindow;Cursor			theCursor;static unsigned int	WindowWidth;static unsigned int	WindowHeight;static int		WindowPointX;static int		WindowPointY;static unsigned int	BorderWidth = DEFAULT_BORDER;long			IntervalTime = INTERVAL;int			EventState;		/* %$s%H=hM}MQ >uBVJQ?t */int			NekoTickCount;		/* G-F0:n%+%&%s%? */int			NekoStateCount;		/* G-F10l>uBV%+%&%s%? */int			NekoState;		/* G-$N>uBV */int			MouseX;			/* %^%&%9#X:BI8 */int			MouseY;			/* %^%&%9#Y:BI8 */int			PrevMouseX = 0;		/* D>A0$N%^%&%9#X:BI8 */int			PrevMouseY = 0;		/* D>A0$N%^%&%9#Y:BI8 */int			NekoX;			/* G-#X:BI8 */int			NekoY;			/* G-#Y:BI8 */int			NekoMoveDx;		/* G-0\F05wN%#X */int			NekoMoveDy;		/* G-0\F05wN%#Y */int			NekoLastX;		/* G-:G=*IA2h#X:BI8 */int			NekoLastY;		/* G-:G=*IA2h#Y:BI8 */GC			NekoLastGC;		/* G-:G=*IA2h GC */double			NekoSpeed = (double)NEKO_SPEED;double			SinPiPer8Times3;	/* sin( #3&P!?#8 ) */double			SinPiPer8;		/* sin( &P!?#8 ) */Pixmap			SpaceXbm;Pixmap			Mati2Xbm;Pixmap			Jare2Xbm;Pixmap			Kaki1Xbm;Pixmap			Kaki2Xbm;Pixmap			Mati3Xbm;Pixmap			Sleep1Xbm;Pixmap			Sleep2Xbm;Pixmap			AwakeXbm;Pixmap			Up1Xbm;Pixmap			Up2Xbm;Pixmap			Down1Xbm;Pixmap			Down2Xbm;Pixmap			Left1Xbm;Pixmap			Left2Xbm;Pixmap			Right1Xbm;Pixmap			Right2Xbm;Pixmap			UpLeft1Xbm;Pixmap			UpLeft2Xbm;Pixmap			UpRight1Xbm;Pixmap			UpRight2Xbm;Pixmap			DownLeft1Xbm;Pixmap			DownLeft2Xbm;Pixmap			DownRight1Xbm;Pixmap			DownRight2Xbm;Pixmap			UpTogi1Xbm;Pixmap			UpTogi2Xbm;Pixmap			DownTogi1Xbm;Pixmap			DownTogi2Xbm;Pixmap			LeftTogi1Xbm;Pixmap			LeftTogi2Xbm;Pixmap			RightTogi1Xbm;Pixmap			RightTogi2Xbm;GC			SpaceGC;GC			Mati2GC;GC			Jare2GC;GC			Kaki1GC;GC			Kaki2GC;GC			Mati3GC;GC			Sleep1GC;GC			Sleep2GC;GC			AwakeGC;GC			Up1GC;GC			Up2GC;GC			Down1GC;GC			Down2GC;GC			Left1GC;GC			Left2GC;GC			Right1GC;GC			Right2GC;GC			UpLeft1GC;GC			UpLeft2GC;GC			UpRight1GC;GC			UpRight2GC;GC			DownLeft1GC;GC			DownLeft2GC;GC			DownRight1GC;GC			DownRight2GC;GC			UpTogi1GC;GC			UpTogi2GC;GC			DownTogi1GC;GC			DownTogi2GC;GC			LeftTogi1GC;GC			LeftTogi2GC;GC			RightTogi1GC;GC			RightTogi2GC;typedef struct {    GC			*GCCreatePtr;    Pixmap		*BitmapCreatePtr;    char		*PixelPattern;    unsigned int	PixelWidth;    unsigned int	PixelHeight;} BitmapGCData;BitmapGCData	BitmapGCDataTable[] ={    { &SpaceGC, &SpaceXbm, space_bits, space_width, space_height },    { &Mati2GC, &Mati2Xbm, mati2_bits, mati2_width, mati2_height },    { &Jare2GC, &Jare2Xbm, jare2_bits, jare2_width, jare2_height },    { &Kaki1GC, &Kaki1Xbm, kaki1_bits, kaki1_width, kaki1_height },    { &Kaki2GC, &Kaki2Xbm, kaki2_bits, kaki2_width, kaki2_height },    { &Mati3GC, &Mati3Xbm, mati3_bits, mati3_width, mati3_height },    { &Sleep1GC, &Sleep1Xbm, sleep1_bits, sleep1_width, sleep1_height },    { &Sleep2GC, &Sleep2Xbm, sleep2_bits, sleep2_width, sleep2_height },    { &AwakeGC, &AwakeXbm, awake_bits, awake_width, awake_height },    { &Up1GC, &Up1Xbm, up1_bits, up1_width, up1_height },    { &Up2GC, &Up2Xbm, up2_bits, up2_width, up2_height },    { &Down1GC, &Down1Xbm, down1_bits, down1_width, down1_height },    { &Down2GC, &Down2Xbm, down2_bits, down2_width, down2_height },    { &Left1GC, &Left1Xbm, left1_bits, left1_width, left1_height },    { &Left2GC, &Left2Xbm, left2_bits, left2_width, left2_height },    { &Right1GC, &Right1Xbm, right1_bits, right1_width, right1_height },    { &Right2GC, &Right2Xbm, right2_bits, right2_width, right2_height },    { &UpLeft1GC, &UpLeft1Xbm, upleft1_bits, upleft1_width, upleft1_height },    { &UpLeft2GC, &UpLeft2Xbm, upleft2_bits, upleft2_width, upleft2_height },    { &UpRight1GC,      &UpRight1Xbm, upright1_bits, upright1_width, upright1_height },    { &UpRight2GC,      &UpRight2Xbm, upright2_bits, upright2_width, upright2_height },    { &DownLeft1GC,      &DownLeft1Xbm, dwleft1_bits, dwleft1_width, dwleft1_height },    { &DownLeft2GC,      &DownLeft2Xbm, dwleft2_bits, dwleft2_width, dwleft2_height },    { &DownRight1GC,      &DownRight1Xbm, dwright1_bits, dwright1_width, dwright1_height },    { &DownRight2GC,      &DownRight2Xbm, dwright2_bits, dwright2_width, dwright2_height },    { &UpTogi1GC, &UpTogi1Xbm, utogi1_bits, utogi1_width, utogi1_height },    { &UpTogi2GC, &UpTogi2Xbm, utogi2_bits, utogi2_width, utogi2_height },    { &DownTogi1GC, &DownTogi1Xbm, dtogi1_bits, dtogi1_width, dtogi1_height },    { &DownTogi2GC, &DownTogi2Xbm, dtogi2_bits, dtogi2_width, dtogi2_height },    { &LeftTogi1GC, &LeftTogi1Xbm, ltogi1_bits, ltogi1_width, ltogi1_height },    { &LeftTogi2GC, &LeftTogi2Xbm, ltogi2_bits, ltogi2_width, ltogi2_height },    { &RightTogi1GC,      &RightTogi1Xbm, rtogi1_bits, rtogi1_width, rtogi1_height },    { &RightTogi2GC,      &RightTogi2Xbm, rtogi2_bits, rtogi2_width, rtogi2_height },    { NULL, NULL, NULL, NULL, NULL }};typedef struct {    GC		*TickEvenGCPtr;    GC		*TickOddGCPtr;} Animation;Animation	AnimationPattern[] ={    { &Mati2GC, &Mati2GC },		/* NekoState == NEKO_STOP */    { &Jare2GC, &Mati2GC },		/* NekoState == NEKO_JARE */    { &Kaki1GC, &Kaki2GC },		/* NekoState == NEKO_KAKI */    { &Mati3GC, &Mati3GC },		/* NekoState == NEKO_AKUBI */    { &Sleep1GC, &Sleep2GC },		/* NekoState == NEKO_SLEEP */    { &AwakeGC, &AwakeGC },		/* NekoState == NEKO_AWAKE */    { &Up1GC, &Up2GC }	,		/* NekoState == NEKO_U_MOVE */    { &Down1GC, &Down2GC },		/* NekoState == NEKO_D_MOVE */    { &Left1GC, &Left2GC },		/* NekoState == NEKO_L_MOVE */    { &Right1GC, &Right2GC },		/* NekoState == NEKO_R_MOVE */    { &UpLeft1GC, &UpLeft2GC },		/* NekoState == NEKO_UL_MOVE */    { &UpRight1GC, &UpRight2GC },	/* NekoState == NEKO_UR_MOVE */    { &DownLeft1GC, &DownLeft2GC },	/* NekoState == NEKO_DL_MOVE */    { &DownRight1GC, &DownRight2GC },	/* NekoState == NEKO_DR_MOVE */    { &UpTogi1GC, &UpTogi2GC },		/* NekoState == NEKO_U_TOGI */    { &DownTogi1GC, &DownTogi2GC },	/* NekoState == NEKO_D_TOGI */    { &LeftTogi1GC, &LeftTogi2GC },	/* NekoState == NEKO_L_TOGI */    { &RightTogi1GC, &RightTogi2GC },	/* NekoState == NEKO_R_TOGI */};/*-------------------------------------------------------------- * *	0C5/31/93^504W%G!<%?!&GC =i4|2= * *--------------------------------------------------------------*/voidInitBitmapAndGCs(){    BitmapGCData	*BitmapGCDataTablePtr;    XGCValues		theGCValues;    theGCValues.function = GXcopy;    theGCValues.foreground = BlackPixel( theDisplay, theScreen );    theGCValues.background = WhitePixel( theDisplay, theScreen );    theGCValues.fill_style = FillTiled;    for ( BitmapGCDataTablePtr = BitmapGCDataTable;	  BitmapGCDataTablePtr->GCCreatePtr != NULL;	  BitmapGCDataTablePtr++ ) {	*(BitmapGCDataTablePtr->BitmapCreatePtr)	    = XCreatePixmapFromBitmapData(		  theDisplay,		  RootWindow( theDisplay, theScreen ),		  BitmapGCDataTablePtr->PixelPattern,		  BitmapGCDataTablePtr->PixelWidth,		  BitmapGCDataTablePtr->PixelHeight,		  BlackPixel( theDisplay, theScreen ),		  WhitePixel( theDisplay, theScreen ),		  DefaultDepth( theDisplay, theScreen ) );	theGCValues.tile = *(BitmapGCDataTablePtr->BitmapCreatePtr);	*(BitmapGCDataTablePtr->GCCreatePtr)	    = XCreateGC( theDisplay, theWindow,			 GCFunction | GCForeground | GCBackground |			 GCTile | GCFillStyle,			 &theGCValues );    }    XFlush( theDisplay );}/*-------------------------------------------------------------- * *	%9%/%j!<%s4D6-=i4|2= * *--------------------------------------------------------------*/voidInitScreen( DisplayName, theGeometry, TitleName, iconicState )    char	*DisplayName;    char	*theGeometry;    char	*TitleName;    Bool	iconicState;{    int				GeometryStatus;    XSetWindowAttributes	theWindowAttributes;    XSizeHints			theSizeHints;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -