All pastes #149811 Raw Edit

Anonymous

public c v1 · immutable
#149811 ·published 2006-08-26 04:11 UTC
rendered paste body
/* * Copyright (C) 2006 Take (name:?), made the game * Copyright (C) 2006 Armon Khosravi, ported to pz2/ttk * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include <stdio.h>#include <stdlib.h>#include <ctype.h>#include <math.h>#include <string.h>#include <time.h>#include "pz.h"#define TATEHABA 73#define MAXSTAGE 10#define MAXTRA 10#define TRUE 1#define FALSE 0#define TWIDTH 16#define THEIGHT 16#define MENU 0#define INGAME 1#define PAUSE 2#define END 3#define NODATA 4#define SORA 1#define ZIM 0static PzModule *module;static TWindow *window;static TWidget *wid;static ttk_gc keyman_gc;static ttk_surface kmimage_id;static ttk_surface yomipict_pixmap;static ttk_surface allmap_pixmap;static ttk_surface mainmenu_pixmap;static ttk_surface shu_pixmap;static ttk_surface dialogall_pixmap;static ttk_surface dialog_pixmap;static unsigned short keymap1_black[16]={0x0000,0x0780,0x1860,0x2010,0x2010,0x7ffe,0x4008,0x4048,0x4048,0x2110,0x20d0,0x1860,0x1780,0x20c0,0x4040,0x7fc0};static unsigned short keymap2_black[16]={0x0000,0x01e0,0x0618,0x0804,0x0804,0x7ffe,0x1002,0x1202,0x1202,0x0886,0x0b04,0x0618,0x01e8,0x0304,0x0202,0x03fe};static unsigned short keymap3_black[16]={0x0000,0x07e0,0x0810,0x1008,0x2814,0x27e4,0x2004,0x2004,0x2004,0x1008,0x0810,0x07e0,0x0810,0x1008,0x1008,0x1ff8};static unsigned short keymap1_gray[16] = {0x0000,0x0000,0x0180,0x07e0,0x0fe0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0180,0x0000};static unsigned short keymap2_gray[16] = {0x0000,0x0000,0x0180,0x07e0,0x07f0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0180,0x0000};static unsigned short keymap3_gray[16] = {0x0000,0x0000,0x07c0,0x0fe0,0x07c0,0x0180,0x0000,0x1000,0x1000,0x0000,0x0800,0x0400,0x0000,0x1008,0x03c0,0x0000};static unsigned short keymap1_ltgray[16] = {0x0000,0x0000,0x0600,0x1800,0x0000,0x0000,0x1ff0,0x1fb0,0x1fb0,0x0ee0,0x0720,0x0180,0x0000,0x0f00,0x1e00,0x0000};static unsigned short keymap2_ltgray[16] ={0x0000,0x0000,0x0060,0x0018,0x0008,0x0000,0x0ff8,0x0df8,0x0df8,0x0770,0x04e0,0x0180,0x0000,0x00e0,0x0078,0x0000};static unsigned short keymap3_ltgray[16] ={0x0000,0x0000,0x0020,0x0010,0x1020,0x1810,0x1ff0,0x0ff0,0x0ff0,0x07e0,0x03c0,0x0000,0x03c0,0x0420,0x07e0,0x0000};static unsigned short keymap1_white[16] = {0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x2000,0x2000,0x1000,0x1800,0x0600,0x0800,0x1000,0x2000,0x0000};static unsigned short keymap2_white[16] = {0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0004,0x0004,0x0004,0x0008,0x0018,0x0060,0x0010,0x0008,0x0004,0x0000};static unsigned short keymap3_white[16] = {0x0000,0x0000,0x0000,0x0000,0x0008,0x0008,0x0008,0x0008,0x0008,0x0010,0x0020,0x0000,0x0420,0x0810,0x0810,0x0000};static int frame;static int GAMEN;static int scr;static int ketumatu;static int training;static int tranum;static char hensuu[20];static struct afterblock{	int x;	int y;	char mozi;}wafter;static struct deady{	int deadcount;	float sp;	float g;	int nowt;	int kaiten;}wdeady;static struct menukey{	int BA;	int KEY;	int STAGE;	int ANI;}wmenukey;static struct menukey wmenukey={0,1,1,0};static int dialogkey;static struct lastkey{	int AR;	int AL;	int AU;	int AD;	int REE;	int PAU;}wlastkey;static struct lastkey wlastkey={0,0,0,0,0};static struct setkey{	char KLEFT;	char KRIGHT;	char KUP;	char KDOWN;	char KJUMP;	char KPAUSE;}wsetkey;static struct setkey wsetkey={0,0,0,0,0,0};static struct wnowconditon{	int LR;	int XLOC;	int YLOC;	double XKANSEI;	double sXKANSEI;	double YKANSEI;	int MUKI;	int JIMEN;	int MAPSCROLL;	int NUPDW;	int HASIGO;	int KAGI;	int shupict;}wnow;static struct wnowconditon wnow={0,0,0,0,0,0,0,0,0,0,0};static struct yomidata {	int sttop;	int stleft;	int stscroll;	int updw;	char mapd[10][TATEHABA];	char tokud[500];}wyomidata;static char pathimage[]="KMData/pict.png";static char pathmap[]="KMData/mapdata/stage1.txt";void ttk_draw_image_to_fit (ttk_surface dst, int x, int y, int w, int h, ttk_surface img) {    int rw, rh;    float xf, yf;    ttk_surface_get_dimen (img, &rw, &rh);        if (rw == w && rh == h) xf = yf = 1.0;    else {	xf = (float)w / (float)rw;	yf = (float)h / (float)rh;    }    if (xf > 0.95 && xf < 1.05 && yf > 0.95 && yf < 1.05) {	ttk_blit_image (img, dst, x, y);    } else {	ttk_surface tmp = ttk_scale_surface (img, xf);	ttk_blit_image_ex (tmp, 0, 0, w, h, dst, x, y);	ttk_free_surface (tmp);    }}static void kmbitmap(void){		//GrSetGCUseBackground(keyman_gc, GR_FALSE); 	//GrSetGCForeground(keyman_gc, BLACK); 	switch(wnow.shupict){		//case 0:GrBitmap(mainmenu_pixmap, keyman_gc, wnow.XLOC,(wnow.YLOC-(wnow.MAPSCROLL % 16)), 16, 16, keymap1_black);break;		case 0:ttk_bitmap (mainmenu_pixmap, wnow.XLOC,(wnow.YLOC-(wnow.MAPSCROLL % 16)), 16, 16, keymap1_black, ttk_makecol(BLACK));break;		//case 1:GrBitmap(mainmenu_pixmap, keyman_gc, wnow.XLOC,(wnow.YLOC-(wnow.MAPSCROLL % 16)), 16, 16, keymap2_black);break;		case 1:ttk_bitmap (mainmenu_pixmap, wnow.XLOC,(wnow.YLOC-(wnow.MAPSCROLL % 16)), 16, 16, keymap2_black, ttk_makecol(BLACK));break;		//case 2:GrBitmap(mainmenu_pixmap, keyman_gc, wnow.XLOC,(wnow.YLOC-(wnow.MAPSCROLL % 16)), 16, 16, keymap3_black);break;		case 2:ttk_bitmap (mainmenu_pixmap, wnow.XLOC,(wnow.YLOC-(wnow.MAPSCROLL % 16)), 16, 16, keymap3_black, ttk_makecol(BLACK));break;	}	//GrSetGCForeground(keyman_gc, GRAY); 	switch(wnow.shupict){		//case 0:GrBitmap(mainmenu_pixmap, keyman_gc, wnow.XLOC,(wnow.YLOC-(wnow.MAPSCROLL % 16)), 16, 16, keymap1_gray);break;		case 0:ttk_bitmap (mainmenu_pixmap, wnow.XLOC,(wnow.YLOC-(wnow.MAPSCROLL % 16)), 16, 16, keymap1_gray, ttk_makecol(DKGREY));break;		//case 1:GrBitmap(mainmenu_pixmap, keyman_gc, wnow.XLOC,(wnow.YLOC-(wnow.MAPSCROLL % 16)), 16, 16, keymap2_gray);break;		case 1:ttk_bitmap (mainmenu_pixmap, wnow.XLOC,(wnow.YLOC-(wnow.MAPSCROLL % 16)), 16, 16, keymap2_gray, ttk_makecol(DKGREY));break;		//case 2:GrBitmap(mainmenu_pixmap, keyman_gc, wnow.XLOC,(wnow.YLOC-(wnow.MAPSCROLL % 16)), 16, 16, keymap3_gray);break;		case 2:ttk_bitmap (mainmenu_pixmap, wnow.XLOC,(wnow.YLOC-(wnow.MAPSCROLL % 16)), 16, 16, keymap3_gray, ttk_makecol(DKGREY));break;	} 	//GrSetGCForeground(keyman_gc, LTGRAY); 	switch(wnow.shupict){		//case 0:GrBitmap(mainmenu_pixmap, keyman_gc, wnow.XLOC,(wnow.YLOC-(wnow.MAPSCROLL % 16)), 16, 16, keymap1_ltgray);break;		case 0:ttk_bitmap (mainmenu_pixmap, wnow.XLOC,(wnow.YLOC-(wnow.MAPSCROLL % 16)), 16, 16, keymap1_ltgray, ttk_makecol(GREY));break;		//case 1:GrBitmap(mainmenu_pixmap, keyman_gc, wnow.XLOC,(wnow.YLOC-(wnow.MAPSCROLL % 16)), 16, 16, keymap2_ltgray);break;		case 1:ttk_bitmap (mainmenu_pixmap, wnow.XLOC,(wnow.YLOC-(wnow.MAPSCROLL % 16)), 16, 16, keymap2_ltgray, ttk_makecol(GREY));break;		//case 2:GrBitmap(mainmenu_pixmap, keyman_gc, wnow.XLOC,(wnow.YLOC-(wnow.MAPSCROLL % 16)), 16, 16, keymap3_ltgray);break;		case 2:ttk_bitmap (mainmenu_pixmap, wnow.XLOC,(wnow.YLOC-(wnow.MAPSCROLL % 16)), 16, 16, keymap3_ltgray, ttk_makecol(GREY));break;	}	//GrSetGCForeground(keyman_gc, WHITE); 	switch(wnow.shupict){		//case 0:GrBitmap(mainmenu_pixmap, keyman_gc, wnow.XLOC,(wnow.YLOC-(wnow.MAPSCROLL % 16)), 16, 16, keymap1_white);break;		case 0:ttk_bitmap (mainmenu_pixmap, wnow.XLOC,(wnow.YLOC-(wnow.MAPSCROLL % 16)), 16, 16, keymap1_white, ttk_makecol(WHITE));break;		//case 1:GrBitmap(mainmenu_pixmap, keyman_gc, wnow.XLOC,(wnow.YLOC-(wnow.MAPSCROLL % 16)), 16, 16, keymap2_white);break;		case 1:ttk_bitmap (mainmenu_pixmap, wnow.XLOC,(wnow.YLOC-(wnow.MAPSCROLL % 16)), 16, 16, keymap2_white, ttk_makecol(WHITE));break;		//case 2:GrBitmap(mainmenu_pixmap, keyman_gc, wnow.XLOC,(wnow.YLOC-(wnow.MAPSCROLL % 16)), 16, 16, keymap3_white);break;		case 2:ttk_bitmap (mainmenu_pixmap, wnow.XLOC,(wnow.YLOC-(wnow.MAPSCROLL % 16)), 16, 16, keymap3_white, ttk_makecol(WHITE));break;	}}static void makedialog(void){	//GrCopyArea(dialog_pixmap,keyman_gc,0,0,32,32,yomipict_pixmap,0,32,0);	ttk_blit_image_ex (yomipict_pixmap, 0, 32, 32, 32, dialog_pixmap, 0, 0);	//GrCopyArea(dialog_pixmap,keyman_gc,32,0,16,32,yomipict_pixmap,16,32,0);	ttk_blit_image_ex (yomipict_pixmap, 16, 32, 16, 32, dialog_pixmap, 32, 0);	//GrCopyArea(dialog_pixmap,keyman_gc,48,0,16,32,yomipict_pixmap,16,32,0);	ttk_blit_image_ex (yomipict_pixmap, 16, 32, 16, 32, dialog_pixmap, 48, 0);	//GrCopyArea(dialog_pixmap,keyman_gc,64,0,32,32,yomipict_pixmap,16,32,0);	ttk_blit_image_ex (yomipict_pixmap, 16, 32, 32, 32, dialog_pixmap, 64, 0);	//GrCopyArea(dialog_pixmap,keyman_gc,64,32,32,16,yomipict_pixmap,16,48,0);	ttk_blit_image_ex (yomipict_pixmap, 16, 48, 32, 16, dialog_pixmap, 64, 32);	//GrCopyArea(dialog_pixmap,keyman_gc,64,48,32,32,yomipict_pixmap,16,48,0);	ttk_blit_image_ex (yomipict_pixmap, 16, 48, 32, 32, dialog_pixmap, 64, 48);	//GrCopyArea(dialog_pixmap,keyman_gc,32,48,16,32,yomipict_pixmap,16,48,0);	ttk_blit_image_ex (yomipict_pixmap, 16, 48, 16, 32, dialog_pixmap, 32, 48);	//GrCopyArea(dialog_pixmap,keyman_gc,48,48,16,32,yomipict_pixmap,16,48,0);	ttk_blit_image_ex (yomipict_pixmap, 16, 48, 16, 32, dialog_pixmap, 48, 48);	//GrCopyArea(dialog_pixmap,keyman_gc,0,48,32,32,yomipict_pixmap,0,48,0);	ttk_blit_image_ex (yomipict_pixmap, 0, 48, 32, 32, dialog_pixmap, 0, 48);	//GrCopyArea(dialog_pixmap,keyman_gc,0,32,32,16,yomipict_pixmap,0,48,0);	ttk_blit_image_ex (yomipict_pixmap, 0, 48, 32, 16, dialog_pixmap, 0, 32);		//GrCopyArea(dialog_pixmap,keyman_gc,32,32,32,16,yomipict_pixmap,8,48,0);	ttk_blit_image_ex (yomipict_pixmap, 8, 48, 32, 16, dialog_pixmap, 32, 32);		//GrCopyArea(dialog_pixmap,keyman_gc,16,26,64,16,yomipict_pixmap,48,48,0);	ttk_blit_image_ex (yomipict_pixmap, 48, 48, 64, 16, dialog_pixmap, 16, 26);	//GrCopyArea(dialog_pixmap,keyman_gc,16,48,64,16,yomipict_pixmap,48,32,0);	ttk_blit_image_ex (yomipict_pixmap, 48, 32, 64, 16, dialog_pixmap, 16, 48);		//GrCopyArea(dialog_pixmap,keyman_gc,16,8,64,16,yomipict_pixmap,112,32,0);	ttk_blit_image_ex (yomipict_pixmap, 112, 32, 64, 16, dialog_pixmap, 16, 8);}static void makemenu(ttk_surface srf){	char itiziteki[10];	//GrSetGCForeground(keyman_gc, WHITE);	//GrFillRect(mainmenu_pixmap,keyman_gc,0,0,160,128);	ttk_fillrect (srf, 0, 0, ttk_screen->w, ttk_screen->h, ttk_makecol(WHITE));		//GrCopyArea(mainmenu_pixmap,keyman_gc,40,16,80,16,yomipict_pixmap,48,64,0);	ttk_blit_image_ex (yomipict_pixmap, 48, 64, 80, 16, mainmenu_pixmap, 40, 16);		//GrCopyArea(mainmenu_pixmap,keyman_gc,26,46,32,48,yomipict_pixmap,0,32,0);	ttk_blit_image_ex (yomipict_pixmap, 0, 32, 32, 48, mainmenu_pixmap, 26, 46);	//GrCopyArea(mainmenu_pixmap,keyman_gc,58,46,32,48,yomipict_pixmap,8,32,0);	ttk_blit_image_ex (yomipict_pixmap, 8, 32, 32, 48, mainmenu_pixmap, 58, 46);	//GrCopyArea(mainmenu_pixmap,keyman_gc,90,46,40,48,yomipict_pixmap,8,32,0);	ttk_blit_image_ex (yomipict_pixmap, 8, 32, 40, 48, mainmenu_pixmap, 90, 46);		//GrCopyArea(mainmenu_pixmap,keyman_gc,26,78,32,32,yomipict_pixmap,0,48,0);	ttk_blit_image_ex (yomipict_pixmap, 0, 48, 32, 32, mainmenu_pixmap, 26, 78);	//GrCopyArea(mainmenu_pixmap,keyman_gc,58,78,32,32,yomipict_pixmap,8,48,0);	ttk_blit_image_ex (yomipict_pixmap, 8, 48, 32, 32, mainmenu_pixmap, 58, 78);	//GrCopyArea(mainmenu_pixmap,keyman_gc,90,78,40,32,yomipict_pixmap,8,48,0);	ttk_blit_image_ex (yomipict_pixmap, 8, 48, 40, 32, mainmenu_pixmap, 90, 78);		//GrCopyArea(mainmenu_pixmap,keyman_gc,120,80,32,32,yomipict_pixmap,0,80,MWROP_BLACKNESS);		//GrSetGCForeground(keyman_gc, BLACK);	ttk_gc_set_foreground (keyman_gc, ttk_makecol (BLACK));	//GrText(mainmenu_pixmap,keyman_gc,81,32,"for iPod",-1,GR_TFASCII|GR_TFTOP);	ttk_text_gc (mainmenu_pixmap, keyman_gc, 81, 32, "for iPod");	//GrSetGCForeground(keyman_gc, BLACK);	ttk_gc_set_foreground (keyman_gc, ttk_makecol (BLACK));	//GrText(mainmenu_pixmap,keyman_gc,31,50,"Key ",-1,GR_TFASCII|GR_TFTOP);	ttk_text_gc (mainmenu_pixmap, keyman_gc, 31, 50, "Key ");	//GrText(mainmenu_pixmap,keyman_gc,31,60,"Stage",-1,GR_TFASCII|GR_TFTOP);	ttk_text_gc (mainmenu_pixmap, keyman_gc, 31, 60, "Stage");	//GrText(mainmenu_pixmap,keyman_gc,31,70,"Start",-1,GR_TFASCII|GR_TFTOP);	ttk_text_gc (mainmenu_pixmap, keyman_gc, 31, 70, "Start");	//GrText(mainmenu_pixmap,keyman_gc,31,80,"Training",-1,GR_TFASCII|GR_TFTOP);	ttk_text_gc (mainmenu_pixmap, keyman_gc, 31, 80, "Training");	//GrText(mainmenu_pixmap,keyman_gc,31,90,"Quit",-1,GR_TFASCII|GR_TFTOP);	ttk_text_gc (mainmenu_pixmap, keyman_gc, 31, 90, "Quit");		//GrSetGCForeground(keyman_gc, BLACK);	ttk_gc_set_foreground (keyman_gc, ttk_makecol (BLACK));	if (wmenukey.KEY==1){strcpy(itiziteki,"for G3 type");}	else {strcpy(itiziteki,"for G4 type");}	//GrText(mainmenu_pixmap,keyman_gc,71,50,itiziteki,-1,GR_TFASCII|GR_TFTOP);	ttk_text_gc (mainmenu_pixmap, keyman_gc, 71, 50, itiziteki);	sprintf(itiziteki,"%d",wmenukey.STAGE);	//GrText(mainmenu_pixmap,keyman_gc,101,60,itiziteki,-1,GR_TFASCII|GR_TFTOP);	ttk_text_gc (mainmenu_pixmap, keyman_gc, 101, 60, itiziteki);						//GrText(mainmenu_pixmap,keyman_gc,-150,0,pathmap,-1,GR_TFASCII|GR_TFTOP);				if (wmenukey.ANI<3){wmenukey.ANI++;}	else {wmenukey.ANI=0;}	//GrCopyArea(mainmenu_pixmap,keyman_gc,85,73,32,32,yomipict_pixmap,(wmenukey.ANI*32),80,0);	ttk_blit_image_ex (yomipict_pixmap, (wmenukey.ANI*32), 80, 32, 32, mainmenu_pixmap, 85, 73);				//GrCopyArea(mainmenu_pixmap,keyman_gc,12,(48+(wmenukey.BA*10)),14,16,yomipict_pixmap,112,48,0);	ttk_blit_image_ex (yomipict_pixmap, 112, 48, 14, 16, mainmenu_pixmap, 12, (48+(wmenukey.BA*10)));		}static void MINIPHOTO(int a,int b,int c,int d){	//GrCopyArea(keyman_wid,keyman_gc,a+((screen_info.cols-160)/2),b+((screen_info.rows-128)/2),c,d,mainmenu_pixmap,0,0,0);	ttk_blit_image_ex (mainmenu_pixmap, 0, 0, c, d, wid->win->srf, a+((ttk_screen->w-160)/2),b+((ttk_screen->h-128)/2));}static int INIT(int bx,int by,char zi){	int scr= (wnow.MAPSCROLL/16);	int a=(((by-5)/16)+1+scr);	int a1=((bx-5)/16)+1;	int b=(((by+5)/16)+1+scr);	int b1=((bx+5)/16)+1;if ( wyomidata.mapd[a1-1][a-1] == zi || wyomidata.mapd[b1-1][a-1] == zi || wyomidata.mapd[a1-1][b-1] == zi || wyomidata.mapd[b1-1][b-1] == zi ){ return TRUE; } else {return FALSE;}}static int tuka(char x){switch (x){	case 'A':return TRUE;break;	case 'B':return FALSE;break;	case 'C':return FALSE;break;	case 'D':return TRUE;break;	case 'E':return TRUE;break;	case 'F':return TRUE;break;	case 'G':return FALSE;break;	case 'H':return TRUE;break;	case 'I':return FALSE;break;	case 'J':return TRUE;break;	case 'K':return FALSE;break;	case 'L':return TRUE;break;	case 'M':return FALSE;break;	case 'N':return TRUE;break;	case 'O':return FALSE;break;	case 'P':return TRUE;break;	case 'Q':return FALSE;break;	case 'R':return FALSE;break;	case 'S':return FALSE;break;	case 'T':return FALSE;break;	case 'U':return FALSE;break;	case 'V':return FALSE;break;	case 'W':return FALSE;break;	case 'X':return FALSE;break;	default :return FALSE;break;	}}static int tuka2(char x){	switch (x){	case 'G':return FALSE;break;	default:return TRUE;break;	}}void usleep(long usec){    struct timeval tv;    tv.tv_sec =  usec / 1000000;    tv.tv_usec = usec % 1000000;    select(0, NULL, NULL, NULL, &tv);}static char kmsearch(int bx,int by){	int scr= (wnow.MAPSCROLL/16);	int a=(bx/16)+1;	int b=((by/16)+1)+scr;	return wyomidata.mapd[a-1][b-1];}static int pictx (char mozi){	switch(mozi){			case 'A':return 0;break;			case 'B':return 16;break;			case 'C':return 32;break;			case 'D':return 48;break;			case 'E':return 64;break;			case 'F':return 80;break;			case 'G':return 96;break;			case 'H':return 112;break;			case 'I':return 128;break;			case 'J':return 144;break;			case 'K':return 160;break;			case 'L':return 176;break;			case 'M':return 192;break;			case 'N':return 208;break;			case 'O':return 224;break;			case 'P':return 240;break;			case 'Q':return 256;break;			case 'R':return 272;break;			case 'S':return 288;break;			case 'T':return 304;break;			case 'U':return 320;break;			case 'V':return 336;break;			case 'W':return 352;break;			case 'X':return 368;break;			default :return 0;break;			}		}static void tuikapaint(int x,int y,char mozi){	int kari=0;	wyomidata.mapd[x-1][y-1]=mozi;	kari=pictx(mozi);	//GrCopyArea(allmap_pixmap,keyman_gc,((x-1)*16),((y-1)*16),16,16,yomipict_pixmap,kari,0,0);	ttk_blit_image_ex (yomipict_pixmap, kari, 0, 16, 16, allmap_pixmap, ((x-1)*16),((y-1)*16));	//GrCopyArea(mainmenu_pixmap,keyman_gc,0,0,160,128,allmap_pixmap,0,wnow.MAPSCROLL,0);	ttk_blit_image_ex (allmap_pixmap, 0, wnow.MAPSCROLL, 160, 128, mainmenu_pixmap, 0, 0);	kmbitmap();	//GrCopyArea(mainmenu_pixmap,keyman_gc,wnow.XLOC,(wnow.YLOC-(wnow.MAPSCROLL % 16)),160,128,shu_pixmap,0,0,0);		MINIPHOTO(0,0,160,128);}static void poppaint(int x,int y,char mozi){	int kari=0;int Bkari=16;	wyomidata.mapd[x-1][y-1]=mozi;	if (mozi=='B'){kari=pictx('F');}	else{kari=pictx(mozi);}		//GrCopyArea(allmap_pixmap,keyman_gc,((x-1)*16),((y-1)*16),16,16,yomipict_pixmap,Bkari,0,0);	ttk_blit_image_ex (yomipict_pixmap, Bkari, 0, 16, 16, allmap_pixmap, ((x-1)*16), ((y-1)*16));	//GrCopyArea(allmap_pixmap,keyman_gc,((x-1)*16),((y-1)*16)-4,16,16,yomipict_pixmap,kari,0,0);	ttk_blit_image_ex (yomipict_pixmap, kari, 0, 16, 16, allmap_pixmap, ((x-1)*16), ((y-1)*16)-4);	//GrCopyArea(mainmenu_pixmap,keyman_gc,0,0,160,128,allmap_pixmap,0,wnow.MAPSCROLL,0);	ttk_blit_image_ex (allmap_pixmap, 0, wnow.MAPSCROLL, 160, 128, mainmenu_pixmap, 0, 0);	kmbitmap();	//GrCopyArea(mainmenu_pixmap,keyman_gc,wnow.XLOC,(wnow.YLOC-(wnow.MAPSCROLL % 16)),160,128,shu_pixmap,0,0,0);		MINIPHOTO(0,0,160,128);	wafter.mozi=wyomidata.mapd[x-1][y-1];	wafter.x=x;	wafter.y=y;		}static void afterzure(void){	int kari;	wafter.mozi=wyomidata.mapd[wafter.x-1][wafter.y-1];	kari=pictx(wafter.mozi);	//GrCopyArea(allmap_pixmap,keyman_gc,((wafter.x-1)*16),((wafter.y-1)*16),16,16,yomipict_pixmap,kari,0,0);	ttk_blit_image_ex (yomipict_pixmap, kari, 0, 16, 16, allmap_pixmap, ((wafter.x-1)*16), ((wafter.y-1)*16));	wafter.mozi=wyomidata.mapd[wafter.x-1][wafter.y-1-1];	kari=pictx(wafter.mozi);	//GrCopyArea(allmap_pixmap,keyman_gc,((wafter.x-1)*16),((wafter.y-1-1)*16),16,16,yomipict_pixmap,kari,0,0);	ttk_blit_image_ex (yomipict_pixmap, kari, 0, 16, 16, allmap_pixmap, ((wafter.x-1)*16), ((wafter.y-1-1)*16));}static void block (int x,int y,char mozi){	int alllength,i,itar,p,flag;	int xza,yza;		char matome[10];	char target[10];	switch(mozi){		case 'L':			poppaint(x,y,'M');			break;		case 'N':			poppaint(x,y,'O');			break;		case 'P':			poppaint(x,y,'Q');			break;	}			alllength=strlen(wyomidata.tokud);		sprintf(target,"%c %d,%d",mozi,x,y);		/*searchpoint*/	for (p=0;p < alllength;p++){		if (wyomidata.tokud[p]==mozi){			p=p+2;			itar=0;			while (wyomidata.tokud[p]!=' '){								if (wyomidata.tokud[p]==target[itar+2]){flag=1;}				////else {flag=0;break;}				//else {break;}				else {flag=0;break;}				p++;itar++;			}		}		if (flag==1){break;}			}	//sprintf(hensuu,"%c%c%c%c%c%c%c",wyomidata.tokud[p-4],wyomidata.tokud[p-3],wyomidata.tokud[p-2],wyomidata.tokud[p-1],wyomidata.tokud[p],wyomidata.tokud[p+1],wyomidata.tokud[p+2]);			/*rewrite*/	if (flag==1){	i=0;		while(wyomidata.tokud[p] != '\n'){		if (wyomidata.tokud[p]==' ' && wyomidata.tokud[p+1] == '\n'){break;}				else if (wyomidata.tokud[p]==' '){			while(wyomidata.tokud[p] !=','){				matome[i]=wyomidata.tokud[p];				matome[i+1]=0;				p++;				i++;			}						xza=atoi(matome);			i=0;		}								if (wyomidata.tokud[p] ==','){			p++;			while(wyomidata.tokud[p] != ' '){				matome[i]=wyomidata.tokud[p];				matome[i+1]=0;				p++;				i++;			}			yza=atoi(matome);			switch (mozi){			case 'L':tuikapaint(xza,yza,'A');break;			case 'N':tuikapaint(xza,yza,'B');break;			case 'P':tuikapaint(xza,yza,'G');break;			}			usleep(50000);			//p--;		}								i=0;		//p++;			}	}	}static void Punch (int bx, int by){char mozi=kmsearch(bx,(by-12));int x=(bx/16)+1;int y=((by/16)+1)+scr;scr= (wnow.MAPSCROLL/16);	switch(mozi){	case 'D':wnow.YLOC=wnow.YLOC-5;break;	case 'E':ipod_beep();poppaint(x,y-1,'F');afterzure();break;	case 'F':ipod_beep();poppaint(x,y-1,'B');afterzure();break;	case 'H':ipod_beep();poppaint(x,y-1,'I');wnow.NUPDW=-1;afterzure();break;	case 'J':ipod_beep();poppaint(x,y-1,'K');wnow.NUPDW=1;afterzure();break;	case 'U':ipod_beep();poppaint(x,y-1,'A');afterzure();break;	case 'L':ipod_beep();block(x,y-1,'L');afterzure();break;	case 'N':ipod_beep();block(x,y-1,'N');afterzure();break;	case 'P':ipod_beep();block(x,y-1,'P');afterzure();break;	}}static void mappaint(){int x=0;int i=0;int p=0;	//GrSetGCForeground(keyman_gc, BLACK);	ttk_gc_set_foreground (keyman_gc, ttk_makecol (BLACK));	//kmimage_id=GrLoadImageFromFile(pathimage,0);	kmimage_id=ttk_load_image(pathimage);	//yomipict_pixmap=GrNewPixmap(384,128,NULL);	yomipict_pixmap = ttk_new_surface (384, 128, ttk_screen->bpp);	//allmap_pixmap=GrNewPixmap(160,(TATEHABA*16),NULL);	allmap_pixmap = ttk_new_surface (160, (TATEHABA*16), ttk_screen->bpp);	//GrDrawImageToFit(yomipict_pixmap,keyman_gc,0,0,384,128,kmimage_id);	ttk_draw_image_to_fit (yomipict_pixmap, 0, 0, 384, 128, kmimage_id);		for (i=0;i<=(TATEHABA-1);i++){			for (p=0;p<=9;p++){			x=pictx(wyomidata.mapd[p][i]);			//GrCopyArea(allmap_pixmap,keyman_gc,(p*16),(i*16),16,16,yomipict_pixmap,x,0,0);      ttk_blit_image_ex (yomipict_pixmap, x, 0, 16, 16, allmap_pixmap, (p*16), (i*16));					}	}}static void textread(void){	FILE *fp;	int length;	int c;	char cs[10]="";	int line=0;	int mozi=0;	strcpy(wyomidata.tokud,"");	if ((fp=fopen(pathmap,"r")) == NULL){GAMEN=NODATA;}		while ((c=fgetc(fp)) !=EOF)	{		if (line<TATEHABA){			if (c=='\n'){line++;mozi=0;}			else {wyomidata.mapd[mozi][line]=c;mozi++;}			}		else if (line<=TATEHABA+4) {			if (c=='\n'){line++;mozi=0;				if (line==TATEHABA+1){wyomidata.stleft=atoi(cs);strcpy(cs,"");}				if (line==TATEHABA+2){wyomidata.sttop=atoi(cs);strcpy(cs,"");}				if (line==TATEHABA+3){wyomidata.stscroll=atoi(cs);strcpy(cs,"");}				if (line==TATEHABA+4){wyomidata.updw=atoi(cs);strcpy(cs,"");}			}			else {  length=strlen(cs);					cs[length]=c;					cs[length+1]=0;					mozi++;					}		}		else {			length=strlen(wyomidata.tokud);			wyomidata.tokud[length]=c;			wyomidata.tokud[length+1]=0;			mozi++;										}	}			fclose(fp);}static void opencard(void){	wnow.XLOC=wyomidata.stleft;	wnow.YLOC=wyomidata.sttop;	wnow.MAPSCROLL=wyomidata.stscroll;	scr= (wnow.MAPSCROLL/16);	wnow.NUPDW=wyomidata.updw;	wnow.XKANSEI=0;	wnow.YKANSEI=0;	wnow.MUKI=1;	wnow.JIMEN=ZIM;	wnow.KAGI=FALSE;	wnow.HASIGO=FALSE;	wnow.LR=0;	wnow.sXKANSEI=0;	}static void startgame(void){	if (training==0){sprintf(pathmap,"KMData/mapdata/stage%d.txt",wmenukey.STAGE);}	else if (training==1){tranum++;sprintf(pathmap,"KMData/tra/tra%d.txt",tranum);}	switch (wmenukey.KEY){		case 1: wsetkey.KLEFT=3; //'l'			wsetkey.KRIGHT=4; //'r'			wsetkey.KUP=PZ_BUTTON_PREVIOUS;			wsetkey.KDOWN=PZ_BUTTON_NEXT;			wsetkey.KJUMP=PZ_BUTTON_ACTION;			wsetkey.KPAUSE=PZ_BUTTON_MENU;			break;				case 2: wsetkey.KLEFT=3;			wsetkey.KRIGHT=4;			wsetkey.KUP=PZ_BUTTON_NEXT;			wsetkey.KDOWN=PZ_BUTTON_PLAY;			wsetkey.KJUMP=PZ_BUTTON_ACTION;			wsetkey.KPAUSE=PZ_BUTTON_MENU;			break;			}	textread();	mappaint();	opencard();}static void hensu(void){	//GrSetGCForeground(keyman_gc, BLACK);	ttk_gc_set_foreground (keyman_gc, ttk_makecol (BLACK));	//GrText(mainmenu_pixmap,keyman_gc,50,50,hensuu,-1,GR_TFASCII|GR_TFTOP);	ttk_text_gc (mainmenu_pixmap, keyman_gc, 50, 50, hensuu);}static void ATARI2(void){int STAGED=((wnow.YLOC+8-7)/16+1)+scr;int STAGEE=((wnow.YLOC+8+7.99)/16+1)+scr;//int STAGEE=((wnow.YLOC+8)/16+1)+scr;int a=((wnow.XLOC+8-6)/16+1);int b=((wnow.XLOC+8+5.99)/16+1);int MIDLEFT=0;int MIDRIGHT=0;int TOPLEFT=0;int TOPRIGHT=0;int BOTTOMLEFT=0;int BOTTOMRIGHT=0;double XMERI=0;double YMERI=0;int he1=((wnow.XLOC+8+8)/16);int he2=((wnow.YLOC+8+8)/16);int he3=((wnow.XLOC+8-6)/16+1);int he42=((wnow.YLOC+8-7)/16+1);int he5=((wnow.XLOC+8+6-16)/16+1);int he6=((wnow.XLOC+8)/16+1);int he7=(((wnow.YLOC+8)/16+1)+scr);int he8=((wnow.YLOC+8+8)/16+1);//int he9=((wnow.XLOC+8+5.99)/16+1);int he10=((wnow.YLOC+8+8-16)/16+1);int he32=((wnow.XLOC+8-5)/16+1);int he92=((wnow.XLOC+8+4.99)/16+1);	if (wnow.HASIGO == 0){		TOPLEFT=tuka(wyomidata.mapd[a-1][STAGED-1]);		TOPRIGHT=tuka(wyomidata.mapd[b-1][STAGED-1]);		BOTTOMLEFT=tuka(wyomidata.mapd[a-1][STAGEE-1]);		BOTTOMRIGHT=tuka(wyomidata.mapd[b-1][STAGEE-1]);	}	else {		TOPLEFT=tuka2(wyomidata.mapd[a-1][STAGED-1]);		TOPRIGHT=tuka2(wyomidata.mapd[b-1][STAGED-1]);		BOTTOMLEFT=tuka2(wyomidata.mapd[a-1][STAGEE-1]);		BOTTOMRIGHT=tuka2(wyomidata.mapd[b-1][STAGEE-1]);		}				if (wnow.HASIGO == 0 && wyomidata.mapd[a-1][STAGED-1]=='U'){MIDLEFT=1;}	if (wnow.HASIGO == 0 && wyomidata.mapd[b-1][STAGED-1]=='U'){MIDRIGHT=1;}		if (TOPLEFT+TOPRIGHT+MIDLEFT+MIDRIGHT==1){		if (MIDLEFT==1){			XMERI=(wnow.XLOC+8-6-(16*he1))/(wnow.XKANSEI+0.0001);			YMERI=(wnow.YLOC+8-7-(16*he2))/(wnow.YKANSEI+0.0001);			if (wnow.YKANSEI<0){				if ((XMERI*XMERI < YMERI*YMERI && XMERI >= 0)||(YMERI<0)){				}				else {					if (kmsearch(wnow.XLOC-1,(wnow.YLOC+6-15))=='U'){					Punch(wnow.XLOC-1,wnow.YLOC+6);					wnow.YLOC=16*he42+7-8;					wnow.YKANSEI=0;					}				}			}			}		else if(MIDRIGHT==1){			XMERI=(wnow.XLOC+8+6-(16*he1))/(wnow.XKANSEI+0.0001);			YMERI=(wnow.YLOC+8-7-(16*he2))/(wnow.YKANSEI+0.0001);			if (wnow.YKANSEI<0){				if ((XMERI*XMERI < YMERI*YMERI && XMERI >= 0)||(YMERI<0)){				}				else {					if (kmsearch(wnow.XLOC+17,(wnow.YLOC+6-15))=='U'){					Punch(wnow.XLOC+17,wnow.YLOC+6);					wnow.YLOC=16*he42+7-8;					wnow.YKANSEI=0;					}				}			}			}	}	else {		if (TOPLEFT+TOPRIGHT+MIDLEFT+MIDRIGHT==2){			if (wnow.YKANSEI<0){				if (kmsearch(wnow.XLOC+8,wnow.YLOC+8-16) != 'D'){					if (kmsearch(wnow.XLOC+8,(wnow.YLOC+8-15))=='U'){					Punch(wnow.XLOC+8,wnow.YLOC+8);					wnow.YLOC=16*he42+7-8;					wnow.YKANSEI=0;					}				}				else{					wnow.YLOC=wnow.YLOC-5-8;				}			}		}	}		if (TOPLEFT+BOTTOMLEFT+TOPRIGHT+BOTTOMRIGHT==1)	{		if (TOPLEFT==1){			XMERI=(wnow.XLOC+8-6-(16*he1))/(wnow.XKANSEI+0.0001);			YMERI=(wnow.YLOC+8-7-(16*he2))/(wnow.YKANSEI+0.0001);			if ((XMERI*XMERI < YMERI*YMERI && XMERI >= 0)||(YMERI<0)){				wnow.XLOC=16*he3+6-8;				wnow.XKANSEI=0;			}			else {				Punch(wnow.XLOC-1,wnow.YLOC+6);				wnow.YLOC=16*he42+7-8;				wnow.YKANSEI=0;			}		}		else if(TOPRIGHT==1){			XMERI=(wnow.XLOC+8+6-(16*he1))/(wnow.XKANSEI+0.0001);			YMERI=(wnow.YLOC+8-7-(16*he2))/(wnow.YKANSEI+0.0001);			if ((XMERI*XMERI < YMERI*YMERI && XMERI >= 0)||(YMERI<0)){				wnow.XLOC=16*he5-6-8;				wnow.XKANSEI=0;			}			else {				Punch(wnow.XLOC+17,wnow.YLOC+6);				wnow.YLOC=16*he42+7-8;				wnow.YKANSEI=0;			}		}		else if(BOTTOMLEFT==1){			XMERI=(wnow.XLOC+8-6-(16*he1))/(wnow.XKANSEI+0.0001);			YMERI=(wnow.YLOC+8+8-(16*he2))/(wnow.YKANSEI+0.0001);			if ((XMERI*XMERI < YMERI*YMERI && XMERI >= 0)||(YMERI<0)){				wnow.XLOC=16*he3+6-8;				wnow.XKANSEI=0;			}		}		else if(BOTTOMRIGHT==1){			XMERI=(wnow.XLOC+8+6-(16*he1))/(wnow.XKANSEI+0.0001);			YMERI=(wnow.YLOC+8+8-(16*he2))/(wnow.YKANSEI+0.0001);			if ((XMERI*XMERI < YMERI*YMERI && XMERI >= 0)||(YMERI<0)){				wnow.XLOC=16*he5-6-8;				wnow.XKANSEI=0;			}		}	}	else if (TOPLEFT+BOTTOMLEFT+TOPRIGHT+BOTTOMRIGHT==0 || TOPLEFT+BOTTOMLEFT+TOPRIGHT+BOTTOMRIGHT==4){}	else{		if (TOPLEFT+BOTTOMLEFT==2){			wnow.XLOC=16*he3+6-8;			wnow.XKANSEI=0;		}		if (TOPRIGHT+BOTTOMRIGHT==2){			wnow.XLOC=16*he5-6-8;			wnow.XKANSEI=0;		}		if (TOPLEFT+TOPRIGHT==2){			if (kmsearch(wnow.XLOC+8,wnow.YLOC+8-16) != 'D'){				Punch(wnow.XLOC+8,wnow.YLOC+8);				wnow.YLOC=16*he42+7-8;				wnow.YKANSEI=0;			}			else{				wnow.YLOC=wnow.YLOC-5-8;			}		}		if (TOPLEFT+BOTTOMRIGHT==TOPLEFT+BOTTOMLEFT+TOPRIGHT+BOTTOMRIGHT || TOPRIGHT+BOTTOMLEFT==TOPLEFT+BOTTOMLEFT+TOPRIGHT+BOTTOMRIGHT){			if (wnow.XKANSEI>0){wnow.XLOC=(16*he5)-6-8;}			else if (wnow.XKANSEI<0){wnow.XLOC=(16*he3)+6-8;}			wnow.XKANSEI=0;			if (wnow.YKANSEI<0){wnow.YLOC=(16*he42)+7-8;}			wnow.YKANSEI=0;		}	}			if (INIT(wnow.XLOC+8,wnow.YLOC+8,'G')==TRUE){wnow.JIMEN=TRUE;}	else if (kmsearch(wnow.XLOC+8,wnow.YLOC+8)=='R'){		tuikapaint(he6,he7,'S');		wnow.KAGI=TRUE;	}	else if (INIT(wnow.XLOC+8,wnow.YLOC+8,'T')==TRUE){		if (wnow.KAGI==TRUE){			ketumatu=1;			GAMEN=END;		}	}	else if (INIT(wnow.XLOC+8,wnow.YLOC+8,'C')==TRUE){		ketumatu=1;		GAMEN=END;	}	else if (INIT(wnow.XLOC+8,wnow.YLOC+8,'W')==TRUE){		wdeady.sp=-16;		wdeady.g=1.6;		wdeady.nowt=wnow.YLOC;		GAMEN=END;		wdeady.kaiten=0;		ketumatu=0;		wdeady.deadcount=1;	}	else if (INIT(wnow.XLOC+8,wnow.YLOC+8,'X')==TRUE){		wdeady.sp=12;		wdeady.g=0;		wdeady.nowt=wnow.YLOC;		GAMEN=END;		wdeady.kaiten=0;		ketumatu=0;		wdeady.deadcount=1;	}		he32=((wnow.XLOC+8-5)/16+1);	he92=((wnow.XLOC+8+4.99)/16+1);	he8=((wnow.YLOC+8+8)/16+1);				if (wnow.HASIGO==0){		if (TOPLEFT==1){BOTTOMLEFT=0;}		else if (BOTTOMLEFT==1){BOTTOMLEFT=tuka(wyomidata.mapd[he32-1][he8+scr-1]);}		if (TOPRIGHT==1){BOTTOMRIGHT=0;}		else if (BOTTOMRIGHT==1){BOTTOMRIGHT=tuka(wyomidata.mapd[he92-1][he8+scr-1]);}	}	else if (wnow.HASIGO==1){		if (TOPLEFT==1){BOTTOMLEFT=0;}		else if (BOTTOMLEFT==1){BOTTOMLEFT=tuka2(wyomidata.mapd[he32-1][he8+scr-1]);}		if (TOPRIGHT==1){BOTTOMRIGHT=0;}		else if (BOTTOMRIGHT==1){BOTTOMRIGHT=tuka2(wyomidata.mapd[he92-1][he8+scr-1]);}	}		if (BOTTOMLEFT+BOTTOMRIGHT>=1 && BOTTOMLEFT+BOTTOMRIGHT<=4){		wnow.JIMEN=ZIM;		wnow.YLOC=16*he10-8-8;		wnow.YKANSEI=0;	}	else {wnow.JIMEN=SORA;}	if (wnow.NUPDW!=1 && (wnow.YLOC-(wnow.MAPSCROLL % 16))<0){		wnow.YLOC=(wnow.MAPSCROLL % 16);		wnow.YKANSEI=0;		}		}static int event_keyman (PzEvent *e){int ret = TTK_EV_CLICK;switch(e->type) {	 	 case PZ_EVENT_TIMER:	 	 switch(GAMEN){						case MENU:			//makemenu();			frame=2;			wid->dirty++;						MINIPHOTO(0,0,160,128);			wlastkey.AR=0;wlastkey.AL=0;wlastkey.AU=0;wlastkey.AD=0;wlastkey.REE=0;wlastkey.PAU=0;			break;		case INGAME:												if (wlastkey.AL==1){wnow.LR=-1;wnow.MUKI=-1;}			else if(wlastkey.AR==1){wnow.LR=1;wnow.MUKI=1;}			else {wnow.LR=0;}									if(wlastkey.REE==1){					if(wnow.JIMEN==ZIM){					wnow.YKANSEI=-9;					wnow.JIMEN=SORA;					}					else if (wnow.HASIGO==1){					wnow.YKANSEI=-9;					wnow.JIMEN=SORA;					wnow.HASIGO=0;										}			}						if (INIT(wnow.XLOC+8,wnow.YLOC+8,'G')==FALSE){wnow.HASIGO=0;}												if (INIT(wnow.XLOC+8,wnow.YLOC+8,'G')== TRUE && wlastkey.AU !=0){				wnow.HASIGO=1;				wnow.shupict=2;				//GrCopyArea(shu_pixmap,keyman_gc,0,0,16,16,yomipict_pixmap,32,112,0);				wnow.XKANSEI=0;				//wnow.YLOC=wnow.YLOC-3;				}			else if (INIT(wnow.XLOC+8,wnow.YLOC+8,'G')== TRUE && wlastkey.AD !=0){				wnow.HASIGO=0;				//GrCopyArea(shu_pixmap,keyman_gc,0,0,16,16,yomipict_pixmap,32,112,0);				wnow.XKANSEI=0;				//wnow.YLOC=wnow.YLOC+3;					}										if (wnow.JIMEN==ZIM){wnow.XKANSEI=(0.9*wnow.XKANSEI)+(1*wnow.LR);}			else {				if (wnow.LR != 0){				wnow.XKANSEI=(0.99*wnow.XKANSEI)+(0.3*wnow.LR);				}			}			if (wnow.HASIGO==0 ){				if (wnow.YKANSEI <= 6){					wnow.YKANSEI++;				}			}			else {wnow.YKANSEI=0;}															wnow.XLOC=wnow.XLOC+wnow.XKANSEI;			wnow.YLOC=wnow.YLOC+wnow.YKANSEI;									if (wnow.NUPDW==-1 && ((wnow.MAPSCROLL) % 16)==0){wnow.YLOC=wnow.YLOC+16;}			else if (wnow.NUPDW==1 && (wnow.MAPSCROLL % 16)==15){wnow.YLOC=wnow.YLOC-16;}												if (wnow.MAPSCROLL>0 && wnow.MAPSCROLL<TATEHABA*16){				wnow.MAPSCROLL=wnow.MAPSCROLL+wnow.NUPDW;			}			scr= (wnow.MAPSCROLL/16);			ATARI2();												if (wlastkey.AU != 1 && wlastkey.AD != 1){			 if (wnow.MUKI==1){			 wnow.shupict=0;			 //GrCopyArea(shu_pixmap,keyman_gc,0,0,16,16,yomipict_pixmap,0,112,0);			 }			 else {			 wnow.shupict=1;			 //GrCopyArea(shu_pixmap,keyman_gc,0,0,16,16,yomipict_pixmap,16,112,0);			 }			}															if (wnow.NUPDW==-1 && wnow.YLOC>136){				wdeady.sp=-20;				wdeady.g=1.6;				wdeady.nowt=128;				GAMEN=END;				wdeady.kaiten=0;				ketumatu=0;				wdeady.deadcount=1;}							else if(wnow.NUPDW==1 && wnow.YLOC<0){				wdeady.sp=12;				wdeady.g=0;				wdeady.nowt=-16;				GAMEN=END;				wdeady.kaiten=0;				ketumatu=0;				wdeady.deadcount=1;}			else if (wnow.NUPDW==0 && (wnow.YLOC>136)) {							wdeady.sp=-10;				wdeady.g=1.6;				wdeady.nowt=128;				GAMEN=END;				wdeady.kaiten=0;				ketumatu=0;				wdeady.deadcount=1;}															//GrCopyArea(mainmenu_pixmap,keyman_gc,0,0,160,128,allmap_pixmap,0,wnow.MAPSCROLL,0);			ttk_blit_image_ex (allmap_pixmap, 0, wnow.MAPSCROLL, 160, 128, mainmenu_pixmap, 0, 0);			kmbitmap();			//GrCopyArea(mainmenu_pixmap,keyman_gc,wnow.XLOC,(wnow.YLOC-(wnow.MAPSCROLL % 16)),160,128,shu_pixmap,0,0,0);			hensu();								MINIPHOTO(0,0,160,128);			if (wlastkey.PAU==1){GAMEN=PAUSE;}						wlastkey.AR=0;wlastkey.AL=0;wlastkey.AU=0;wlastkey.AD=0;wlastkey.REE=0;wlastkey.PAU=0;			break;		case PAUSE:			//GrCopyArea(dialogall_pixmap,keyman_gc,0,0,96,80,dialog_pixmap,0,0,0);			ttk_blit_image_ex (dialog_pixmap, 0, 0, 96, 80, dialogall_pixmap, 0, 0);			//GrCopyArea(dialogall_pixmap,keyman_gc,3,24+(dialogkey*24),13,16,yomipict_pixmap,115,48,0);			ttk_blit_image_ex (yomipict_pixmap, 115, 48, 13, 16, dialogall_pixmap, 3, 24+(dialogkey*24));			//GrCopyArea(keyman_wid,keyman_gc,32+((screen_info.cols-160)/2),24+((screen_info.rows-128)/2),96,80,dialogall_pixmap,0,0,0);			ttk_blit_image_ex (dialogall_pixmap, 0, 0, 96, 80, wid->win->srf, 32+((ttk_screen->w-160)/2), 24+((ttk_screen->h-128)/2));						break;		case END:				if (ketumatu==0){					wdeady.sp=wdeady.sp+wdeady.g;					wdeady.nowt=wdeady.nowt+wdeady.sp;					//sprintf(hensuu,"%d",wnow.MAPSCROLL+(wdeady.deadcount*wnow.NUPDW));										if (wnow.MAPSCROLL+(wdeady.deadcount*wnow.NUPDW)>0 && wnow.MAPSCROLL+(wdeady.deadcount*wnow.NUPDW)<TATEHABA*16){						//GrCopyArea(mainmenu_pixmap,keyman_gc,0,0,160,128,allmap_pixmap,0,wnow.MAPSCROLL+(wdeady.deadcount*wnow.NUPDW),0);						ttk_blit_image_ex (allmap_pixmap, 0, wnow.MAPSCROLL+(wdeady.deadcount*wnow.NUPDW), 160, 128, mainmenu_pixmap, 0, 0);					}										//GrCopyArea(shu_pixmap,keyman_gc,0,0,16,16,yomipict_pixmap,wdeady.kaiten*16,16,0);					ttk_blit_image_ex (yomipict_pixmap, wdeady.kaiten*16, 16, 16, 16, shu_pixmap, 0, 0);					//GrCopyArea(mainmenu_pixmap,keyman_gc,wnow.XLOC,wdeady.nowt,160,128,shu_pixmap,0,0,0);					ttk_blit_image_ex (shu_pixmap, 0, 0, 160, 128, mainmenu_pixmap, wnow.XLOC, wdeady.nowt);					hensu();										MINIPHOTO(0,0,160,128);					if (wdeady.kaiten<7){wdeady.kaiten++;}else{wdeady.kaiten=0;}					if (training==0){						if (wdeady.deadcount>31){GAMEN=MENU;											}   					}					else if (training==1){						if (wdeady.deadcount>15){opencard();GAMEN=INGAME;						}											}					wdeady.deadcount++;				}				else if (ketumatu==1){					if (training==0){					GAMEN=MENU;					}					if (training==1){						if (tranum>=MAXTRA){							GAMEN=MENU;						}						else{							startgame();							GAMEN=INGAME;						}										}				}			break;		case NODATA:			frame=1;			wid->dirty++;			break;		}		break;				case PZ_EVENT_BUTTON_DOWN:      switch(GAMEN){		    case INGAME:			    if (e->arg==wsetkey.KLEFT){wlastkey.AL=1;}else{wlastkey.AL=0;}			    if (e->arg==wsetkey.KRIGHT){wlastkey.AR=1;}else{wlastkey.AR=0;}			    if (e->arg==wsetkey.KUP){wlastkey.AU=1;}else{wlastkey.AU=0;}			    if (e->arg==wsetkey.KDOWN){wlastkey.AD=1;}else{wlastkey.AD=0;}			    if (e->arg==wsetkey.KJUMP){wlastkey.REE=1;}else{wlastkey.REE=0;}			    if (e->arg==wsetkey.KPAUSE){wlastkey.PAU=1;}else{wlastkey.PAU=0;}			    break;        case MENU:			    switch( e->arg )			    {	    			    case PZ_BUTTON_ACTION: /* action */				    switch (wmenukey.BA){				    case 0:if (wmenukey.KEY<2){wmenukey.KEY++;}else{wmenukey.KEY=1;}break;					    case 1:if (wmenukey.STAGE<MAXSTAGE){wmenukey.STAGE++;}						    else {wmenukey.STAGE=1;}						    break;								    case 2: GAMEN=INGAME; 					    training=0;					    startgame();					    break;				    case 3:GAMEN=INGAME;					    tranum=0;					    training=1;					    startgame();					    break;				    case 4:					    ttk_free_surface(kmimage_id);			        pz_close_window(e->wid->win);					    break;				    }			    break;						    case PZ_BUTTON_MENU: /* menu */					    ttk_free_surface(kmimage_id);			        pz_close_window(e->wid->win);				        break;			    }			    break;										    case PAUSE:			    if (e->arg==wsetkey.KLEFT && dialogkey == 1){ipod_beep();dialogkey=0;}			    if (e->arg==wsetkey.KRIGHT && dialogkey == 0){ipod_beep();dialogkey=1;}			    if (e->arg==wsetkey.KJUMP && dialogkey == 0){GAMEN=INGAME;}			    else if (e->arg==wsetkey.KJUMP && dialogkey == 1){GAMEN=MENU;}						    break;		    case END:break;		    case NODATA:			    if (e->arg==PZ_BUTTON_ACTION){			    ttk_free_surface(kmimage_id);			    pz_close_window(e->wid->win);			    }			    break;		    }        break;            case PZ_EVENT_SCROLL:     TTK_SCROLLMOD( e->arg, 10);      if( e->arg > 0){      	 if(GAMEN==MENU){      	    if (wmenukey.BA<4){ipod_beep();wmenukey.BA++;}      	 }      	 else if(GAMEN==INGAME)      	    e->arg = 4;      	 break;      }      else {      	 if(GAMEN==MENU){      	    if (wmenukey.BA>0){ipod_beep();wmenukey.BA--;}      	 }      	 else if(GAMEN==INGAME)      	    e->arg = 3;      	 break;      }      break;      	      	      }    return ret;}static void keyman_do_draw(PzWidget *wid, ttk_surface srf) {	 if(frame==0) {	   if (!(kmimage_id=ttk_load_image(pathimage))){		   GAMEN=NODATA;			   }	   else {		   GAMEN=MENU;		   //GrDrawImageToFit(yomipict_pixmap,keyman_gc,0,0,384,128,kmimage_id);		   ttk_draw_image_to_fit (yomipict_pixmap, 0, 0, 384, 128, kmimage_id);		   makedialog();	   }	 }	 else if(frame==1) {	 	 //GrSetGCForeground(keyman_gc, WHITE);                 ttk_gc_set_foreground(keyman_gc, ttk_makecol(WHITE));		 //GrFillRect(keyman_wid,keyman_gc,0,0,160,128);		 ttk_fillrect (srf, 0, 0, ttk_screen->w, ttk_screen->h, ttk_makecol(WHITE));					 //GrSetGCForeground(keyman_gc, GRAY); DKGREY                 ttk_gc_set_foreground(keyman_gc, ttk_makecol(GRAY));		 //GrLine(keyman_wid,keyman_gc,80,20,34,100);		 ttk_line (srf, 80, 20, 34, 100, ttk_makecol(DKGREY));		 //GrLine(keyman_wid,keyman_gc,80,20,126,100);		 ttk_line (srf, 80, 20, 126, 100, ttk_makecol(DKGREY));		 //GrLine(keyman_wid,keyman_gc,34,100,126,100);		 ttk_line (srf, 34, 100, 126, 100, ttk_makecol(DKGREY));		 //GrEllipse(keyman_wid,keyman_gc,80,55,5,20);		 ttk_ellipse (srf, 80, 55, 5, 20, ttk_makecol(DKGREY));		 //GrEllipse(keyman_wid,keyman_gc,80,85,5,5);		 ttk_ellipse (srf, 80, 85, 5, 5, ttk_makecol(DKGREY));					 //GrSetGCForeground(keyman_gc, BLACK);		 ttk_gc_set_foreground (keyman_gc, ttk_makecol (BLACK));		 //GrText(keyman_wid,keyman_gc,50,48,"Please Copy",-1,GR_TFASCII|GR_TFTOP);		 ttk_text_gc (srf, keyman_gc, 50, 48, "Please Copy");		 //GrText(keyman_wid,keyman_gc,30,68,"KMData folder to /etc",-1,GR_TFASCII|GR_TFTOP);		 ttk_text_gc (srf, keyman_gc, 30, 68, "KMData folder to /etc");		 //GrText(keyman_wid,keyman_gc,50,100,"Click to Quit",-1,GR_TFASCII|GR_TFTOP);		 ttk_text_gc (srf, keyman_gc, 50, 100, "Click to Quit");	}	else if(frame==2)		 makemenu(srf);}PzWindow *new_keyman_window(){    keyman_gc = ttk_new_gc();    yomipict_pixmap = ttk_new_surface (384, 128, ttk_screen->bpp);    mainmenu_pixmap = ttk_new_surface (160, 128, ttk_screen->bpp);	  shu_pixmap = ttk_new_surface (16, 16, ttk_screen->bpp);	  dialogall_pixmap = ttk_new_surface (96, 80, ttk_screen->bpp);	  dialog_pixmap = ttk_new_surface (96, 80, ttk_screen->bpp);	  frame=0;	      window = pz_new_window ("KeyMan", PZ_WINDOW_NORMAL);    wid = pz_add_widget(window, keyman_do_draw, event_keyman);    pz_widget_set_timer(wid, 90);    return pz_finish_window (window);}void init_keyman(){	  module = pz_register_module ("keyman", NULL);    pz_menu_add_action ("/Extras/Games/KeyMan", new_keyman_window);    }PZ_MOD_INIT (init_keyman)