changeset 96:0b65ca27f113

compile on Mac OS X 2
author Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp>
date Thu, 02 Jun 2011 14:56:11 +0900
parents b0249b856488
children afddacdf30dd
files .DS_Store Linda/lindaapi.h Linda/lindaapi.h~ Makefile TAGS camera.c camera.h car.c car.h carNode.c carNode.h col.c col.h compile controler.c controler.h field.c field.h gFont.c gFont.h gSprite.c gSprite.h game.c game.h game_time.c game_time.h libps2.h light.c light.h linda.c linda.h main.c mytype.c mytype.h ps2util.c ps2util.h schedule.c schedule.h sjoy.c sjoy.h sprite.h test_vector.c title_scene.c title_scene.h
diffstat 44 files changed, 2431 insertions(+), 1699 deletions(-) [+]
line wrap: on
line diff
Binary file .DS_Store has changed
--- a/Linda/lindaapi.h	Thu May 26 18:13:40 2011 +0900
+++ b/Linda/lindaapi.h	Thu Jun 02 14:56:11 2011 +0900
@@ -103,6 +103,4 @@
 } COMMAND, *COMMAND_PTR;
 
 
-
-
 #endif
--- a/Linda/lindaapi.h~	Thu May 26 18:13:40 2011 +0900
+++ b/Linda/lindaapi.h~	Thu Jun 02 14:56:11 2011 +0900
@@ -1,5 +1,7 @@
-//  $Id$
-//
+#ifndef LINDAAPI_H
+#define LINDAAPI_H
+
+
 
 /*----------------------------------------------------------------------
  ¥Þ¥¯¥íÄêµÁ
@@ -99,3 +101,8 @@
     struct command_queue *next;
     unsigned int size;
 } COMMAND, *COMMAND_PTR;
+
+
+
+
+#endif
--- a/Makefile	Thu May 26 18:13:40 2011 +0900
+++ b/Makefile	Thu Jun 02 14:56:11 2011 +0900
@@ -1,6 +1,6 @@
 TARGET = main
 CC = gcc
-SRCS = main.c game.c car.c col.c quotanion.c controler.c field.c camera.c gSprite.c schedule.c mytype.c gFont.c carNode.c light.c title_scene.c game_time.c ps2util.c
+SRCS = main.c game.c car.c col.c quotanion.c controler.c field.c camera.c gSprite.c schedule.c mytype.c gFont.c carNode.c light.c title_scene.c game_time.c ps2util.c sjoy.c
 #linda/lindaapi.c linda.c
 OBJS = ${SRCS:.c=.o}
 VU1DIR = vu1code
@@ -71,3 +71,4 @@
 light.o:
 title_scene.o:
 game_time.o:
+sjoy.o:
\ No newline at end of file
--- a/TAGS	Thu May 26 18:13:40 2011 +0900
+++ b/TAGS	Thu Jun 02 14:56:11 2011 +0900
@@ -1,108 +1,3 @@
-
-camera.h,74
-#define CAMERA_H2,17
-typedef struct camera{camera8,75
-} CAMERA;13,159
-
-car.h,74
-#define CAR_H2,14
-typedef struct car 6,50
-} Car, *CarPtr;CarPtr19,471
-
-carNode.h,23
-#define CARNODE_H2,18
-
-col.h,157
-#define COL_H2,14
-typedef struct detection_face 8,72
-} ColFace, *ColFacePtr;ColFacePtr13,164
-typedef struct col_face_handler 15,189
-} ColFaceHd;19,285
-
-controler.h,48
-typedef struct SGO_PAD 7,129
-} SGO_PAD;22,374
-
-field.h,225
-#define FIELD_H2,16
-#define EFFECT_TEXTURE_USE 13,300
-#define EFFECT_ALPHABLEND_UNUSE 14,329
-#define EFFECT_SHADING_FLAT 15,363
-#define DEFAULT_SET 17,394
-typedef struct field 18,483
-} Field, *FieldPtr;FieldPtr26,669
-
-gSprite.h,112
-#define GSPRITE_H2,18
-#define SPRITE_PRIO_FOREGROUND 5,81
-typedef struct sptable 7,115
-} SpriteTable;12,188
-
-game.h,81
-#define GAME_H2,15
-typedef struct game 14,180
-} Game, *GamePtr;GamePtr21,364
-
-libps2.h,316
-#define LIBPS2_H2,17
-typedef float FVECTOR[FVECTOR6,49
-typedef float FMATRIX[FMATRIX7,105
-typedef struct texture 11,193
-} TEXTURE;19,599
-typedef struct surface 23,646
-} SURFACE;32,1189
-typedef struct object 36,1242
-} OBJECT;43,1511
-} SPRITE;56,1808
-typedef struct popygon 65,1904
-} PolygonInfo;68,1956
-
-linda.h,723
-#define LINDA_H2,16
-#define MODE_INIT 21,547
-#define MODE_WAIT 22,579
-#define MODE_WAIT_READY 23,611
-#define MODE_OPENING 24,643
-#define MODE_SELECT_CAR 25,675
-#define MODE_SELECT_COURSE 26,707
-#define MODE_READY 27,739
-#define MODE_MAIN_INIT 28,771
-#define MODE_MAIN_READY 29,803
-#define MODE_MAIN 30,835
-#define MODE_MAIN_PAUSE 31,867
-#define MODE_MAIN_GOAL 32,899
-#define MODE_MAIN_FINISH 33,931
-#define MODE_FINISH 34,963
-#define PLAYER_1P 36,996
-#define CLIENT_MAX 38,1017
-#define LINDA_ASK_ID 39,1038
-#define LINDA_HOST 40,1065
-#define PKT_MODE_OFFSET 43,1117
-#define PKT_CARID_OFFSET 44,1148
-#define PKT_COURSEID_OFFSET 45,1179
-#define PKT_DATA_OFFSET 46,1210
-#define PKT_HEADER_SIZE 48,1242
-
-mytype.h,211
-#define RADIAN(3,18
-#define INIT_VECTOR(4,53
-#define NORM(5,122
-enum { X_AXIS=7,200
-enum { X_AXIS=0, Y_AXIS=7,200
-enum { X_AXIS=0, Y_AXIS=1, Z_AXIS=7,200
-enum { X_AXIS=0, Y_AXIS=1, Z_AXIS=2, W_AXIS=7,200
-
-ps2util.h,117
-#define PS2UTIL_H2,18
-#define ALIGN_16BYTE 8,84
-typedef struct ps2sprite{ps2sprite22,350
-} ps2utilSprite;24,397
-
-quotanion.h,25
-#define QUOTANION_H2,20
-
-schedule.h,24
-#define SCHEDULE_H2,19
 
 camera.c,138
 static CAMERA camera,13,216
@@ -258,7 +153,7 @@
 time_RaceStart(40,495
 time_RaceTime(46,550
 
-ps2util.c,1173
+ps2util.c,1176
 OBJECT *ps2util_obj_Create_fromXML(ps2util_obj_Create_fromXML12,282
 void ps2util_obj_Set_effect(27,551
 void ps2_vu0_copy_vector(33,617
@@ -268,30 +163,30 @@
 int ps2util_sprite_Create(61,987
 void ps2util_obj_Set_texture(67,1071
 void ps2_vu0_unit_matrix(72,1146
-void ps2_vu0_rot_matrix_y(77,1198
-void ps2_vu0_apply_matrix(83,1281
-void ps2_vu0_scale_vector(89,1365
-void ps2_vu0_add_vector(94,1458
-void ps2_vu0_outer_product(100,1555
-float ps2_vu0_inner_product(106,1648
-void ps2_vu0_mul_matrix(113,1743
-void ps2_vu0_copy_matrix(118,1825
-void ps2util_tex_Exclude(124,1906
-void ps2util_obj_Free(129,1957
-void ps2_vu0_sub_vector(136,2011
-void ps2_vu0_normalize(144,2087
-void xml_free(150,2175
-void ps2util_obj_Draw(156,2221
-void gSprite_Init(162,2274
-void  ps2util_sprite_Destroy(168,2309
-void ps2util_sprite_Set_basicAttribute(176,2385
-void ps2util_sprite_Request(186,2691
-void ps2util_sprite_Unuse_alpha(192,2752
-void ps2util_graphic_Init(197,2817
-sprite_disappear(207,2925
-void delete_name_dictionary(229,3325
-void free_texture(262,4002
-int malloc_align16(277,4308
+void ps2_vu0_rot_matrix_y(81,1374
+void ps2_vu0_apply_matrix(102,1817
+void ps2_vu0_scale_vector(111,2215
+void ps2_vu0_add_vector(119,2454
+void ps2_vu0_outer_product(125,2551
+float ps2_vu0_inner_product(134,2779
+void ps2_vu0_mul_matrix(140,2893
+void ps2_vu0_copy_matrix(145,2975
+void ps2util_tex_Exclude(151,3045
+void ps2util_obj_Free(156,3096
+void ps2_vu0_sub_vector(163,3151
+void ps2_vu0_normalize(171,3227
+void xml_free(181,3432
+void ps2util_obj_Draw(187,3478
+void gSprite_Init(193,3531
+void  ps2util_sprite_Destroy(199,3566
+void ps2util_sprite_Set_basicAttribute(207,3642
+void ps2util_sprite_Request(217,3948
+void ps2util_sprite_Unuse_alpha(223,4009
+void ps2util_graphic_Init(228,4074
+sprite_disappear(238,4182
+void delete_name_dictionary(260,4582
+void free_texture(293,5259
+int malloc_align16(309,5587
 
 quotanion.c,69
 quotanion(11,226
@@ -345,7 +240,110 @@
 title_finish_call(55,919
 title_scene(61,968
 
-light.c,0
+camera.h,74
+#define CAMERA_H2,17
+typedef struct camera{camera8,75
+} CAMERA;13,159
+
+car.h,74
+#define CAR_H2,14
+typedef struct car 6,50
+} Car, *CarPtr;CarPtr19,471
+
+carNode.h,23
+#define CARNODE_H2,18
+
+col.h,157
+#define COL_H2,14
+typedef struct detection_face 8,72
+} ColFace, *ColFacePtr;ColFacePtr13,164
+typedef struct col_face_handler 15,189
+} ColFaceHd;19,285
+
+controler.h,48
+typedef struct SGO_PAD 7,129
+} SGO_PAD;22,374
+
+field.h,225
+#define FIELD_H2,16
+#define EFFECT_TEXTURE_USE 13,300
+#define EFFECT_ALPHABLEND_UNUSE 14,329
+#define EFFECT_SHADING_FLAT 15,363
+#define DEFAULT_SET 17,394
+typedef struct field 18,483
+} Field, *FieldPtr;FieldPtr26,669
+
+gSprite.h,112
+#define GSPRITE_H2,18
+#define SPRITE_PRIO_FOREGROUND 5,81
+typedef struct sptable 7,115
+} SpriteTable;12,188
+
+game.h,81
+#define GAME_H2,15
+typedef struct game 14,180
+} Game, *GamePtr;GamePtr21,364
+
+libps2.h,316
+#define LIBPS2_H2,17
+typedef float FVECTOR[FVECTOR6,49
+typedef float FMATRIX[FMATRIX7,105
+typedef struct texture 11,193
+} TEXTURE;19,599
+typedef struct surface 23,646
+} SURFACE;32,1189
+typedef struct object 36,1242
+} OBJECT;43,1511
+} SPRITE;56,1808
+typedef struct popygon 65,1904
+} PolygonInfo;68,1956
+
+linda.h,723
+#define LINDA_H2,16
+#define MODE_INIT 21,547
+#define MODE_WAIT 22,579
+#define MODE_WAIT_READY 23,611
+#define MODE_OPENING 24,643
+#define MODE_SELECT_CAR 25,675
+#define MODE_SELECT_COURSE 26,707
+#define MODE_READY 27,739
+#define MODE_MAIN_INIT 28,771
+#define MODE_MAIN_READY 29,803
+#define MODE_MAIN 30,835
+#define MODE_MAIN_PAUSE 31,867
+#define MODE_MAIN_GOAL 32,899
+#define MODE_MAIN_FINISH 33,931
+#define MODE_FINISH 34,963
+#define PLAYER_1P 36,996
+#define CLIENT_MAX 38,1017
+#define LINDA_ASK_ID 39,1038
+#define LINDA_HOST 40,1065
+#define PKT_MODE_OFFSET 43,1117
+#define PKT_CARID_OFFSET 44,1148
+#define PKT_COURSEID_OFFSET 45,1179
+#define PKT_DATA_OFFSET 46,1210
+#define PKT_HEADER_SIZE 48,1242
+
+mytype.h,211
+#define RADIAN(3,18
+#define INIT_VECTOR(4,53
+#define NORM(5,122
+enum { X_AXIS=7,200
+enum { X_AXIS=0, Y_AXIS=7,200
+enum { X_AXIS=0, Y_AXIS=1, Z_AXIS=7,200
+enum { X_AXIS=0, Y_AXIS=1, Z_AXIS=2, W_AXIS=7,200
+
+ps2util.h,117
+#define PS2UTIL_H2,18
+#define ALIGN_16BYTE 8,84
+typedef struct ps2sprite{ps2sprite22,350
+} ps2utilSprite;24,397
+
+quotanion.h,25
+#define QUOTANION_H2,20
+
+schedule.h,24
+#define SCHEDULE_H2,19
 
 title_scene.h,0
 
@@ -354,3 +352,5 @@
 game_time.h,0
 
 gFont.h,0
+
+light.c,0
--- a/camera.c	Thu May 26 18:13:40 2011 +0900
+++ b/camera.c	Thu Jun 02 14:56:11 2011 +0900
@@ -8,7 +8,7 @@
 #include "camera.h"
 
 //大域変数ã€å„部ã§å…±æœ‰
-//extern SGO_PAD pad;
+extern SGO_PAD pad;
 
 static CAMERA camera, def_camera;
 
@@ -44,8 +44,6 @@
   
 }
 
-
-
 /*
   ps2ä¾å­˜é–¢ä¿‚ã‹ã‚‰æ‹å€Ÿã€‚
   自分ãŒæ¶ˆã—ãŸã®ã‹ã€å…ƒã€…ç„¡ã„ã®ã‹ã¯è¦šãˆã¦ã„ãªã„ã‘ã©
@@ -58,8 +56,6 @@
 }
 
 
-
-
 /**
  * pose: カメラã®å¯¾è±¡ç‰©(obj)ã®åº§æ¨™è¡Œåˆ—
  * カメラãŒobjã«ã¤ã„ã¦ã„ãよã†ã«(ãã®ã‚ˆã†ãªå‹•ãã«è¦‹ã›ã‚‹ãŸã‚)
@@ -68,43 +64,42 @@
 void
 camera_update(Game *game, FMATRIX pose)
 {
- 
-    FVECTOR location, eyes, vertical, angle;
+  FVECTOR location, eyes, vertical, angle;
     
-    //int type = game->camera_type;
+  //int type = game->camera_type;
 
-    ps2_vu0_apply_matrix(location, pose, def_camera.xyz);
-    ps2_vu0_apply_matrix(eyes, pose, def_camera.zd);
-    ps2_vu0_apply_matrix(vertical, pose, def_camera.yd);
+  ps2_vu0_apply_matrix(location, pose, def_camera.xyz);
+  ps2_vu0_apply_matrix(eyes, pose, def_camera.zd);
+  ps2_vu0_apply_matrix(vertical, pose, def_camera.yd);
 
   /**When the car bends, the angle of the camera is changed**/
-    //if(pad.left>0  && game.jiki->speed !=0){
+  if(pad.left>0  && game->jiki->speed !=0){
     if(game->jiki->speed !=0){
-        if(def_camera.angle[1]<=0.2){
-	  def_camera.angle[1]+=0.02;
-	}
+      if(def_camera.angle[1]<=0.2){
+	def_camera.angle[1]+=0.02;
+      }
     }
-    //else if(pad.right>0 && game.jiki->speed !=0){
-    else if(game->jiki->speed !=0){
-        if(def_camera.angle[1]>=-0.2){
-	  def_camera.angle[1]-=0.02;
-	}
+  }
+  else if(pad.right>0 && game->jiki->speed !=0){
+    if(game->jiki->speed !=0){
+      if(def_camera.angle[1]>=-0.2){
+        def_camera.angle[1]-=0.02;
+      }
     }
-    else {
-        if(def_camera.angle[1]<-0.01){
-	  def_camera.angle[1]+=0.02;
-	}
-	else if(def_camera.angle[1]>0.01){
-	  def_camera.angle[1]-=0.02;
-	}
-    } 
-    ps2_vu0_apply_matrix(angle, pose, def_camera.angle);
-    ps2_vu0_copy_vector(camera.xyz, location);
-    ps2_vu0_copy_vector(camera.zd,  eyes);
-    ps2_vu0_copy_vector(camera.yd,  vertical);
-    ps2_vu0_copy_vector(camera.angle, angle);
-    set_camera(&camera);
-
+  }
+  else {
+    if(def_camera.angle[1]<-0.01){
+      def_camera.angle[1]+=0.02;
+    }
+    else if(def_camera.angle[1]>0.01){
+      def_camera.angle[1]-=0.02;
+    }
+  } 
+  ps2_vu0_apply_matrix(angle, pose, def_camera.angle);
+  ps2_vu0_copy_vector(camera.xyz, location);
+  ps2_vu0_copy_vector(camera.zd,  eyes);
+  ps2_vu0_copy_vector(camera.yd,  vertical);
+  ps2_vu0_copy_vector(camera.angle, angle);
+  set_camera(&camera);
+    
 }
-
-
--- a/camera.h	Thu May 26 18:13:40 2011 +0900
+++ b/camera.h	Thu Jun 02 14:56:11 2011 +0900
@@ -4,7 +4,6 @@
 #include "game.h"
 #include "libps2.h"
 
-
 typedef struct camera{
   FVECTOR xyz;
   FVECTOR zd;
@@ -12,10 +11,8 @@
   float angle[4];
 } CAMERA;
 
-extern void camera_update(Game *game, FMATRIX pose);
-extern void camera_init();
+void camera_update(Game *game, FMATRIX pose);
+void camera_init();
 void set_camera(CAMERA *camera);
 
-
-
 #endif
--- a/car.c	Thu May 26 18:13:40 2011 +0900
+++ b/car.c	Thu Jun 02 14:56:11 2011 +0900
@@ -1,3 +1,5 @@
+/* car.c */
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdbool.h>
@@ -19,118 +21,111 @@
 
 extern FILE* main_fp;
 
-/* --- field.c --- */
-extern int field_rap_increment(int);
-extern void field_set_actual(FieldPtr);
-extern FieldPtr field_get_actual();
-
-
 static CarPtr
 car_create(int car_id, char *filename, char *texname, float speed_accel,
 	   float speed_max, float rot, float brake)
 {
-    CarPtr car;
-    OBJECT *body;
-    TEXTURE* tex;
-    void *free_addr;
+  CarPtr car;
+  OBJECT *body;
+  TEXTURE* tex;
+  void *free_addr;
     
-    body = ps2util_obj_Create_fromXML(filename);
-    ps2util_obj_Set_effect(body, DEFAULT_SET);
+  body = ps2util_obj_Create_fromXML(filename);
+  ps2util_obj_Set_effect(body, DEFAULT_SET);
 
-    if (malloc_align16(&free_addr, &car, sizeof(Car)) == -1) {
-      	fprintf(main_fp, "car.c: malloc_align16 error\n");
-	exit(EXIT_FAILURE);	
-    }
-    car->body           = body;
-    car->next           = NULL;
-    car->speed          = 0.0;
-    car->speed_accel    = speed_accel;
-    car->speed_max      = speed_max;
-    car->brake          = brake;
-    car->rotation_angle = rot;
-    car->y_angle        = 0.0;
-    car->free_addr      = free_addr;
+  if (malloc_align16(&free_addr, &car, sizeof(Car)) == -1) {
+    fprintf(main_fp, "car.c: malloc_align16 error\n");
+    exit(EXIT_FAILURE);	
+  }
+  car->body           = body;
+  car->next           = NULL;
+  car->speed          = 0.0;
+  car->speed_accel    = speed_accel;
+  car->speed_max      = speed_max;
+  car->brake          = brake;
+  car->rotation_angle = rot;
+  car->y_angle        = 0.0;
+  car->free_addr      = free_addr;
 
-    ps2_vu0_copy_vector(car->direction, direction);
-    ps2_vu0_copy_vector(car->location, location);
-    INIT_VECTOR(car->vertical,    0, -1, 0, 1);
-    INIT_VECTOR(car->body->xyz,   0,  0, 0, 1);
-    INIT_VECTOR(car->body->angle, 0,  0, 0, 1);
+  ps2_vu0_copy_vector(car->direction, direction);
+  ps2_vu0_copy_vector(car->location, location);
+  INIT_VECTOR(car->vertical,    0, -1, 0, 1);
+  INIT_VECTOR(car->body->xyz,   0,  0, 0, 1);
+  INIT_VECTOR(car->body->angle, 0,  0, 0, 1);
 
-    ps2util_obj_Renew_transMatrix(car->body);
-    ps2util_obj_Set_effect(car->body, DEFAULT_SET);
+  ps2util_obj_Renew_transMatrix(car->body);
+  ps2util_obj_Set_effect(car->body, DEFAULT_SET);
 
-    if (*texname != 'n') {
-        tex = read_png_file(texname);
-	ps2util_tex_Set(tex);
-	ps2util_obj_Set_texture(car->body, tex);
-    }
+  if (*texname != 'n') {
+    tex = read_png_file(texname);
+    ps2util_tex_Set(tex);
+    ps2util_obj_Set_texture(car->body, tex);
+  }
 
 #ifdef DEBUG
-    fprintf(main_fp, "malloc car addr = %x\n", (int)free_addr);
+  fprintf(main_fp, "malloc car addr = %x\n", (int)free_addr);
 #endif
 
-   return car;
+  return car;
 }
 
 static CarPtr
 car_new_readCSV(FILE *fp, int id)
 {
-    CarPtr new;
-    int   car_id;
-    float speed_accel, speed_max, brake, rot;
-    char  buff[BUFSIZE], *bufp;
-    char  carImg[BUFSIZE], texImg[BUFSIZE];
-    bool  flag;
+  CarPtr new;
+  int   car_id;
+  float speed_accel, speed_max, brake, rot;
+  char  buff[BUFSIZE], *bufp;
+  char  carImg[BUFSIZE], texImg[BUFSIZE];
+  bool  flag;
 
-    flag = false;
+  flag = false;
 
-    while ((bufp = fgets(buff, BUFSIZE, fp)) != NULL) {
-	bufp++;
+  while ((bufp = fgets(buff, BUFSIZE, fp)) != NULL) {
+    bufp++;
 
-	switch (buff[0]) {
-	case 'n':
-	    if (flag == false) {
-		sscanf(bufp, " %d\n", &car_id);
-		if (id == car_id) {
-		    flag = true;
-		}
-	    }
-	    break;
-	case 't':
-	    if (flag == true) {
-		sscanf(bufp, " %s %s %f %f %f %f\n",
-		       carImg, texImg, &speed_accel, &speed_max, &rot, &brake);
-		new = car_create(id, carImg, texImg,
-				 speed_accel, speed_max, rot, brake);
-		return new;
-	    }
-	    break;
-	default:
-	    break;
+    switch (buff[0]) {
+    case 'n':
+      if (flag == false) {
+	sscanf(bufp, " %d\n", &car_id);
+	if (id == car_id) {
+	  flag = true;
 	}
+      }
+      break;
+    case 't':
+      if (flag == true) {
+	sscanf(bufp, " %s %s %f %f %f %f\n",
+	       carImg, texImg, &speed_accel, &speed_max, &rot, &brake);
+	new = car_create(id, carImg, texImg,
+			 speed_accel, speed_max, rot, brake);
+	return new;
+      }
+      break;
+    default:
+      break;
     }
+  }
 
-    /* ã“ã“ã¾ã§è¾¿ã‚Šç€ã„ãŸã‚‰èª­ã¿è¾¼ã¿å¤±æ•— */
-    fprintf(main_fp, "error - car_new_readCSV\n");
-    exit(EXIT_FAILURE);
+  /* ã“ã“ã¾ã§è¾¿ã‚Šç€ã„ãŸã‚‰èª­ã¿è¾¼ã¿å¤±æ•— */
+  fprintf(main_fp, "error - car_new_readCSV\n");
+  exit(EXIT_FAILURE);
 }
 
-CarPtr
-car_init(int id)
+CarPtr car_init(int id)
 {
-    CarPtr new;
-    FILE *fp;
-    char *filename = "car/car.dat";
+  CarPtr new;
+  FILE *fp;
+  char *filename = "car/car.dat";
 
-    if (!(fp = fopen(filename, "r"))) {
-        fprintf(main_fp, "error read file %s\n", filename);
-	exit(EXIT_FAILURE);
-    }
-    new = car_new_readCSV(fp, id);
-    fclose(fp);
+  if (!(fp = fopen(filename, "r"))) {
+    fprintf(main_fp, "error read file %s\n", filename);
+    exit(EXIT_FAILURE);
+  }
+  new = car_new_readCSV(fp, id);
+  fclose(fp);
 
-    return new;
+  return new;
 }
 
 /*---------------------------
@@ -143,14 +138,14 @@
   FMATRIX rot;
   FVECTOR v;
 
-    car->y_angle += (float)flg*car->rotation_angle;
-    car->y_angle += (car->y_angle < 0) ? 360.0 : 0;
-    car->y_angle += (car->y_angle > 360.0) ? -360.0 : 0;
+  car->y_angle += (float)flg*car->rotation_angle;
+  car->y_angle += (car->y_angle < 0) ? 360.0 : 0;
+  car->y_angle += (car->y_angle > 360.0) ? -360.0 : 0;
 
-    ps2_vu0_unit_matrix(rot);
-    ps2_vu0_rot_matrix_y(rot, rot, degree2radian((float)flg*car->rotation_angle));
-    ps2_vu0_copy_vector(v, car->direction);
-    ps2_vu0_apply_matrix(car->direction, rot, v); 
+  ps2_vu0_unit_matrix(rot);
+  ps2_vu0_rot_matrix_y(rot, rot, degree2radian((float)flg*car->rotation_angle));
+  ps2_vu0_copy_vector(v, car->direction);
+  ps2_vu0_apply_matrix(car->direction, rot, v); 
 }
 
 /*----------------------------
@@ -160,9 +155,9 @@
 void
 car_accelerate(CarPtr car, int flg)
 {
-    car->speed += (flg == 1) ? car->speed_accel : -car->brake;
-    car->speed = (car->speed < 0) ? 0 : car->speed;
-    car->speed = (car->speed > car->speed_max) ? car->speed_max : car->speed;
+  car->speed += (flg == 1) ? car->speed_accel : -car->brake;
+  car->speed = (car->speed < 0) ? 0 : car->speed;
+  car->speed = (car->speed > car->speed_max) ? car->speed_max : car->speed;
 }
 
 
@@ -178,37 +173,37 @@
 static bool
 car_field_check(Game *game ,CarPtr car)
 {
-    FieldPtr p;
-    FieldPtr f = field_get_actual();
+  FieldPtr p;
+  FieldPtr f = field_get_actual();
 
-    // ç¾åœ¨ã®ã‚³ãƒ¼ã‚¹ã§è¡çªãƒ»å†…外判定
-    p = f;
-    if (col_detect(&p->colface, car->vertical, car->location) == true) {
-    	goto FIELD_CHECK_OK;
-    }
+  // ç¾åœ¨ã®ã‚³ãƒ¼ã‚¹ã§è¡çªãƒ»å†…外判定
+  p = f;
+  if (col_detect(&p->colface, car->vertical, car->location) == true) {
+    goto FIELD_CHECK_OK;
+  }
 
-    // ç¾åœ¨ã®ã‚³ãƒ¼ã‚¹ã®æ¬¡ã«éš£æŽ¥ã™ã‚‹ã‚³ãƒ¼ã‚¹ã§è¡çªãƒ»å†…外判定
-    p = f->next;
-    if (col_detect(&p->colface, car->vertical, car->location) == true) {
-	if (field_rap_increment(1)) {
-	    game->rap++;
-	}
-	goto FIELD_CHECK_OK;
+  // ç¾åœ¨ã®ã‚³ãƒ¼ã‚¹ã®æ¬¡ã«éš£æŽ¥ã™ã‚‹ã‚³ãƒ¼ã‚¹ã§è¡çªãƒ»å†…外判定
+  p = f->next;
+  if (col_detect(&p->colface, car->vertical, car->location) == true) {
+    if (field_rap_increment(1)) {
+      game->rap++;
     }
+    goto FIELD_CHECK_OK;
+  }
 
-    // ç¾åœ¨ã®ã‚³ãƒ¼ã‚¹ã®å‰ã«éš£æŽ¥ã™ã‚‹ã‚³ãƒ¼ã‚¹ã§è¡çªãƒ»å†…外判定
-    p = f->prev;
-    if (col_detect(&p->colface, car->vertical, car->location) == true) {
-	field_rap_increment(-1);
-	goto FIELD_CHECK_OK;
-    }
+  // ç¾åœ¨ã®ã‚³ãƒ¼ã‚¹ã®å‰ã«éš£æŽ¥ã™ã‚‹ã‚³ãƒ¼ã‚¹ã§è¡çªãƒ»å†…外判定
+  p = f->prev;
+  if (col_detect(&p->colface, car->vertical, car->location) == true) {
+    field_rap_increment(-1);
+    goto FIELD_CHECK_OK;
+  }
 
-    // ã©ã®ã‚³ãƒ¼ã‚¹ä¸Šã«ã‚‚å±…ãªã„(å£ã«è¡çª)
-    return false;
+  // ã©ã®ã‚³ãƒ¼ã‚¹ä¸Šã«ã‚‚å±…ãªã„(å£ã«è¡çª)
+  return false;
 
-  FIELD_CHECK_OK:
-    field_set_actual(p);
-    return true;
+ FIELD_CHECK_OK:
+  field_set_actual(p);
+  return true;
 }
 
 
@@ -238,61 +233,67 @@
 {
   FMATRIX pose, yrot, yrotinv;
 
-    ps2_vu0_unit_matrix(yrot);
-    ps2_vu0_rot_matrix_y(yrot, yrot, -degree2radian(car->y_angle));
-    ps2_vu0_unit_matrix(yrotinv);
-    ps2_vu0_rot_matrix_y(yrotinv, yrotinv, degree2radian(car->y_angle));
+  ps2_vu0_unit_matrix(yrot);
+  ps2_vu0_rot_matrix_y(yrot, yrot, -degree2radian(car->y_angle));
+  ps2_vu0_unit_matrix(yrotinv);
+  ps2_vu0_rot_matrix_y(yrotinv, yrotinv, degree2radian(car->y_angle));
 
-    {
-      	FVECTOR yd = {0, -1, 0, 1};
-      	FVECTOR rotaxis;
-      	FVECTOR q;
+  {
+    FVECTOR yd = {0, -1, 0, 1};
+    FVECTOR rotaxis;
+    FVECTOR q;
 	
-	ps2_vu0_outer_product(rotaxis, car->vertical, yd);
-	{
-	      float scale=1/NORM(rotaxis);
-	      rotaxis[0] *= scale;
-	      rotaxis[1] *= scale;
-	      rotaxis[2] *= scale;
-	}
+    ps2_vu0_outer_product(rotaxis, car->vertical, yd);
+    {
+      float scale=1/NORM(rotaxis);
+      rotaxis[0] *= scale;
+      rotaxis[1] *= scale;
+      rotaxis[2] *= scale;
+    }
 	
-	quotanion(q, rotaxis, acos(ps2_vu0_inner_product(yd, car->vertical)/(NORM(yd)*NORM(car->vertical))));
-	quotanion_rotmatrix(pose, q);
-    }
+    quotanion(q, rotaxis, acos(ps2_vu0_inner_product(yd, car->vertical)/(NORM(yd)*NORM(car->vertical))));
+    quotanion_rotmatrix(pose, q);
+  }
 
-    ps2_vu0_mul_matrix(pose, yrot, pose);
-    ps2_vu0_mul_matrix(pose, pose, yrotinv);
-    ps2_vu0_copy_matrix(car->body->transfer, pose);
-    ps2_vu0_rot_matrix_y(car->body->transfer, car->body->transfer, degree2radian(car->y_angle));
+  ps2_vu0_mul_matrix(pose, yrot, pose);
+  ps2_vu0_mul_matrix(pose, pose, yrotinv);
+  ps2_vu0_copy_matrix(car->body->transfer, pose);
+  ps2_vu0_rot_matrix_y(car->body->transfer, car->body->transfer, degree2radian(car->y_angle));
 }
 
-void
-car_update(Game *game,CarPtr car)
+void car_update( Game *game, CarPtr car )
 {
-    // 移動
-    car_move(game,car);
+  // 移動
+  car_move(game,car);
 
-    // 摩擦ã«ã‚ˆã‚‹é€Ÿåº¦æ¸›å°‘
-    car->speed -= 0.005;
-    car->speed = (car->speed < 0) ? 0 : car->speed;
+  // 摩擦ã«ã‚ˆã‚‹é€Ÿåº¦æ¸›å°‘
+  car->speed -= 0.005;
+  car->speed = (car->speed < 0) ? 0 : car->speed;
 
-    // 傾ã
-    car_axis_rotation(car);
+  // 傾ã
+  car_axis_rotation(car);
 }
 
+
 void
 car_destroy(CarPtr p)
 {
   TEXTURE *t;
 
   if ((t = p->body->surfaces->texture)) {
-      	ps2util_tex_Exclude(t);
-      	free_texture(t);
+    ps2util_tex_Exclude(t);
+    free_texture(t);
   }
-        ps2util_obj_Free(p->body);
-        free(p->free_addr);
+  ps2util_obj_Free(p->body);
+  free(p->free_addr);
 
 #ifdef DEBUG
-        fprintf(main_fp, "free car addr = %x\n", (int)p->free_addr);
+  fprintf(main_fp, "free car addr = %x\n", (int)p->free_addr);
 #endif
 }
+
+// é©å½“ã«è‡ªä½œ 
+void car_id_update(Game *game, CarPtr jiki)
+{
+  printf("car_id_update\n");
+}
--- a/car.h	Thu May 26 18:13:40 2011 +0900
+++ b/car.h	Thu Jun 02 14:56:11 2011 +0900
@@ -1,25 +1,30 @@
+/* car.h */
+
 #ifndef CAR_H
 #define CAR_H
 
 #include "libps2.h"
 
 typedef struct car {
-    FVECTOR direction;    // å‘ã
-    FVECTOR vertical;     //
-    FVECTOR location;     // ä½ç½®
-    float speed;          // 速度
-    float speed_accel;    // 加速度
-    float speed_max;      // 最高速度
-    float brake;          // ブレーキ
-    float rotation_angle; // 回転度数
-    float y_angle;        // 角度
-    void *free_addr;
-    struct car *next;
-    OBJECT*  body;
+  FVECTOR direction;    // å‘ã
+  FVECTOR vertical;     //
+  FVECTOR location;     // ä½ç½®
+  float speed;          // 速度
+  float speed_accel;    // 加速度
+  float speed_max;      // 最高速度
+  float brake;          // ブレーキ
+  float rotation_angle; // 回転度数
+  float y_angle;        // 角度
+  void *free_addr;
+  struct car *next;
+  OBJECT*  body;
 } Car, *CarPtr;
 
-extern CarPtr car_init(int id);
-extern void car_accelerate(CarPtr, int);
-extern void car_swerve(CarPtr, int);
+CarPtr car_init(int id);
+void car_accelerate(CarPtr, int);
+void car_swerve(CarPtr, int);
+
+// ã“ã“ã§å®£è¨€ã—ãŸã‚‰game.hã¨ç›¸äº’ã«includeã—ã¡ã‚ƒã†ã‹ã‚‰schedule.hã®ã»ã†ã«æ›¸ã„ã¦ã—ã¾ã„ã¾ã—ãŸ
+// void car_update( Game *game, CarPtr car );
 
 #endif
--- a/carNode.c	Thu May 26 18:13:40 2011 +0900
+++ b/carNode.c	Thu Jun 02 14:56:11 2011 +0900
@@ -7,44 +7,44 @@
 #include "carNode.h"
 
 /* --- car.c --- */
-extern void car_destroy(CarPtr car);
+void car_destroy(CarPtr car);
 
 static CarPtr car_list;
 
 void
 carNode_append(CarPtr new) 
 {
-    CarPtr p = car_list;
+  CarPtr p = car_list;
 
-    if (!p) {
-	car_list = new;
-    } else {
-	while (p->next) p = p->next;
-	p->next = new;
-    }
+  if (!p) {
+    car_list = new;
+  } else {
+    while (p->next) p = p->next;
+    p->next = new;
+  }
 }
 
 
 void
 carNode_draw()
 {
-    CarPtr p = car_list;
+  CarPtr p = car_list;
 
-    while (p) {
-        ps2util_obj_Draw(p->body);
-	p = p->next;
-    }
+  while (p) {
+    ps2util_obj_Draw(p->body);
+    p = p->next;
+  }
 }
 
 
 void
 carNode_destroy()
 {
-    CarPtr p = car_list;
+  CarPtr p = car_list;
 
-    while (p) {
-	car_destroy(p);
-	p = p->next;
-    }
-    car_list = NULL;
+  while (p) {
+    car_destroy(p);
+    p = p->next;
+  }
+  car_list = NULL;
 }
--- a/carNode.h	Thu May 26 18:13:40 2011 +0900
+++ b/carNode.h	Thu Jun 02 14:56:11 2011 +0900
@@ -1,11 +1,10 @@
 #ifndef CARNODE_H
 #define CARNODE_H
 
-
 #include "car.h"
 
 /* --- car.c --- */
-extern void car_destroy(CarPtr car);
+void car_destroy(CarPtr car);
 
 void carNode_append(CarPtr new) ;
 void carNode_draw();
--- a/col.c	Thu May 26 18:13:40 2011 +0900
+++ b/col.c	Thu Jun 02 14:56:11 2011 +0900
@@ -19,20 +19,20 @@
 bool 
 col_detect_approx(FVECTOR p, FVECTOR v0, FVECTOR v1){
 
-    float v_r1, v_r2, r1_r2, r1_r1, r2_r2;
-    float a, b, r;
+  float v_r1, v_r2, r1_r2, r1_r1, r2_r2;
+  float a, b, r;
 
-    v_r1  = ps2_vu0_inner_product( p,  v0 );
-    v_r2  = ps2_vu0_inner_product( p,  v1 );
-    r1_r2 = ps2_vu0_inner_product( v0, v1 );
-    r1_r1 = ps2_vu0_inner_product( v0, v0 );
-    r2_r2 = ps2_vu0_inner_product( v1, v1 );
+  v_r1  = ps2_vu0_inner_product( p,  v0 );
+  v_r2  = ps2_vu0_inner_product( p,  v1 );
+  r1_r2 = ps2_vu0_inner_product( v0, v1 );
+  r1_r1 = ps2_vu0_inner_product( v0, v0 );
+  r2_r2 = ps2_vu0_inner_product( v1, v1 );
 
-    a = (v_r1  * r2_r2 - v_r2  * r1_r2);
-    b = (v_r2  * r1_r1 - v_r1  * r1_r2);
-    r = (r1_r1 * r2_r2 - r1_r2 * r1_r2);
+  a = (v_r1  * r2_r2 - v_r2  * r1_r2);
+  b = (v_r2  * r1_r1 - v_r1  * r1_r2);
+  r = (r1_r1 * r2_r2 - r1_r2 * r1_r2);
 
-    return (a>=0 && b>=0 && a+b-r<=0) ? true : false;
+  return (a>=0 && b>=0 && a+b-r<=0) ? true : false;
 }
 
 
@@ -46,17 +46,17 @@
 col_orthocenter(FVECTOR o, FVECTOR p, FVECTOR p0, FVECTOR normal)
 {
   
-    FVECTOR o0, d;
+  FVECTOR o0, d;
 
-    ps2_vu0_sub_vector(o0, p, p0);
-    o0[W_AXIS] = 0;
-    ps2_vu0_scale_vector(
-	d, normal, ps2_vu0_inner_product(o0, normal));
+  ps2_vu0_sub_vector(o0, p, p0);
+  o0[W_AXIS] = 0;
+  ps2_vu0_scale_vector(
+		       d, normal, ps2_vu0_inner_product(o0, normal));
 
-    o[X_AXIS] = p[X_AXIS] - d[X_AXIS];
-    o[Y_AXIS] = p[Y_AXIS] - d[Y_AXIS];
-    o[Z_AXIS] = p[Z_AXIS] - d[Z_AXIS];
-    o[W_AXIS] = 1;
+  o[X_AXIS] = p[X_AXIS] - d[X_AXIS];
+  o[Y_AXIS] = p[Y_AXIS] - d[Y_AXIS];
+  o[Z_AXIS] = p[Z_AXIS] - d[Z_AXIS];
+  o[W_AXIS] = 1;
 }
 
 /**
@@ -70,29 +70,29 @@
 bool
 col_detect(ColFaceHd* hd, FVECTOR pose, FVECTOR p)
 {
-    FVECTOR o, o0;
-    int i;
-    ColFacePtr col_face=hd->colface;
-    for (i=0; i<hd->facenum; i++) {
+  FVECTOR o, o0;
+  int i;
+  ColFacePtr col_face=hd->colface;
+  for (i=0; i<hd->facenum; i++) {
 
-	// * 垂心oを求ã‚ã‚‹
-	col_orthocenter(o, p, col_face[i].p0, col_face[i].normal);
+    // * 垂心oを求ã‚ã‚‹
+    col_orthocenter(o, p, col_face[i].p0, col_face[i].normal);
 
-	// * detection face上ã®ã‚る点p0ã‹ã‚‰åž‚心oã¸ã®ãƒ™ã‚¯ãƒˆãƒ«o0を求ã‚ã‚‹
-	ps2_vu0_sub_vector(o0, o, col_face[i].p0);
+    // * detection face上ã®ã‚る点p0ã‹ã‚‰åž‚心oã¸ã®ãƒ™ã‚¯ãƒˆãƒ«o0を求ã‚ã‚‹
+    ps2_vu0_sub_vector(o0, o, col_face[i].p0);
 
-	// * ベクトルv0, v1ã®æã三角形ã¨o0ã¨ã§å†…外判定(range approx detection)ã‚’è¡Œã†
-	if (col_detect_approx(o0, col_face[i].v0, col_face[i].v1)==true) {
-	    goto NOCOLLISION;
-	}
+    // * ベクトルv0, v1ã®æã三角形ã¨o0ã¨ã§å†…外判定(range approx detection)ã‚’è¡Œã†
+    if (col_detect_approx(o0, col_face[i].v0, col_face[i].v1)==true) {
+      goto NOCOLLISION;
     }
-    return false;
-NOCOLLISION:
-    ps2_vu0_copy_vector(p, o);
-    ps2_vu0_copy_vector(pose, col_face[i].normal);
-    return true;
+  }
+  return false;
+ NOCOLLISION:
+  ps2_vu0_copy_vector(p, o);
+  ps2_vu0_copy_vector(pose, col_face[i].normal);
+  return true;
 
-    return false;
+  return false;
 }
 
 
@@ -105,34 +105,32 @@
 col_init(ColFaceHd* hd, PolygonInfo* face)
 {
   
-    int i;
-    FVECTOR p1, p2;
-    ColFacePtr colface;
+  int i;
+  FVECTOR p1, p2;
+  ColFacePtr colface;
 
-    malloc_align16(&hd->free_addr, &colface, sizeof(ColFace)*face->siz/3);
+  malloc_align16(&hd->free_addr, &colface, sizeof(ColFace)*face->siz/3);
 
-    hd->facenum = face->siz/3;
+  hd->facenum = face->siz/3;
     
-    for (i=0; i<hd->facenum; i++) {
-	memcpy(colface[i].p0, ((FVECTOR*)face->pnts)[i*3], sizeof(FVECTOR));
- 	memcpy(p1, ((FVECTOR*)face->pnts)[i*3+2], sizeof(FVECTOR));
- 	memcpy(p2, ((FVECTOR*)face->pnts)[i*3+1], sizeof(FVECTOR));
+  for (i=0; i<hd->facenum; i++) {
+    memcpy(colface[i].p0, ((FVECTOR*)face->pnts)[i*3], sizeof(FVECTOR));
+    memcpy(p1, ((FVECTOR*)face->pnts)[i*3+2], sizeof(FVECTOR));
+    memcpy(p2, ((FVECTOR*)face->pnts)[i*3+1], sizeof(FVECTOR));
 
-   	ps2_vu0_sub_vector(colface[i].v0, p1, colface[i].p0);
-   	ps2_vu0_sub_vector(colface[i].v1, p2, colface[i].p0);
+    ps2_vu0_sub_vector(colface[i].v0, p1, colface[i].p0);
+    ps2_vu0_sub_vector(colface[i].v1, p2, colface[i].p0);
 
-        ps2_vu0_outer_product(colface[i].normal, colface[i].v0, colface[i].v1);
-        ps2_vu0_normalize(colface[i].normal, colface[i].normal); 
+    ps2_vu0_outer_product(colface[i].normal, colface[i].v0, colface[i].v1);
+    ps2_vu0_normalize(colface[i].normal, colface[i].normal); 
 
-	if (colface[i].normal[1] > 0) {
-	    colface[i].normal[0] = -colface[i].normal[0];
-	    colface[i].normal[1] = -colface[i].normal[1];
-	    colface[i].normal[2] = -colface[i].normal[2];
-	}
+    if (colface[i].normal[1] > 0) {
+      colface[i].normal[0] = -colface[i].normal[0];
+      colface[i].normal[1] = -colface[i].normal[1];
+      colface[i].normal[2] = -colface[i].normal[2];
     }
+  }
 
-    hd->colface = colface;
-  
+  hd->colface = colface;
 
 }
-
--- a/col.h	Thu May 26 18:13:40 2011 +0900
+++ b/col.h	Thu Jun 02 14:56:11 2011 +0900
@@ -18,10 +18,8 @@
     int facenum;
 } ColFaceHd;
 
-extern void col_init(ColFaceHd* hd, PolygonInfo* face);
-extern bool col_detect(ColFaceHd* hd, FVECTOR pose, FVECTOR p);
-
-
+void col_init(ColFaceHd* hd, PolygonInfo* face);
+bool col_detect(ColFaceHd* hd, FVECTOR pose, FVECTOR p);
 
 
 bool col_detect_approx(FVECTOR p, FVECTOR v0, FVECTOR v1);
@@ -29,5 +27,3 @@
 
 #endif
 
-//FVECTOR p, FVECTOR v0, FVECTOR v1);
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compile	Thu Jun 02 14:56:11 2011 +0900
@@ -0,0 +1,103 @@
+#include <stdlib.h>
+#include <string.h>
+#include "libps2.h"
+#include "ps2util.h"
+#include "car.h"
+#include "game.h"
+#include "controler.h"
+#include "camera.h"
+
+//大域変数ã€å„部ã§å…±æœ‰
+extern SGO_PAD pad;
+
+static CAMERA camera, def_camera;
+
+
+void
+camera_init()
+{
+  
+ //カメラã®åˆæœŸä½ç½®è¨­å®š
+ def_camera.xyz[0] = 0;
+ def_camera.xyz[1] =-7;// -3;
+ def_camera.xyz[2] =-14; //0;
+ def_camera.xyz[3] = 1;
+
+ def_camera.zd[0] = 0;
+ def_camera.zd[1] = 2;
+ def_camera.zd[2] = 7;
+ def_camera.zd[3] = 1;
+
+ def_camera.yd[0] = 0;
+ def_camera.yd[1] = 1;
+ def_camera.yd[2] = 0;
+ def_camera.yd[3] = 1;
+
+ def_camera.angle[0]=-0.2;//0;  //pich
+ def_camera.angle[1]=0;     //yoh 
+ def_camera.angle[2]=0;     //roll
+ def_camera.angle[3]=0;
+
+ //def_cameraã‚’cameraã«ã‚³ãƒ”ー
+ memcpy( &camera, &def_camera, sizeof(CAMERA));
+ set_camera(&def_camera);
+  
+}
+
+/*
+  ps2ä¾å­˜é–¢ä¿‚ã‹ã‚‰æ‹å€Ÿã€‚
+  自分ãŒæ¶ˆã—ãŸã®ã‹ã€å…ƒã€…ç„¡ã„ã®ã‹ã¯è¦šãˆã¦ã„ãªã„ã‘ã©
+  呼ã°ã‚Œã¦ã„ã‚‹ã®ã§ã¨ã‚Šã‚ãˆãšï¼ˆç©ºã£ã½ã«ã—ã¦ãŠã)。
+*/
+// set_camera must be called if camera's parameters were moved                  
+void set_camera(CAMERA *camera)
+{
+  //vu0_rot_camera_matrix(world_view, camera->xyz, camera->zd, camera->yd,camera->angle);
+}
+
+
+/**
+ * pose: カメラã®å¯¾è±¡ç‰©(obj)ã®åº§æ¨™è¡Œåˆ—
+ * カメラãŒobjã«ã¤ã„ã¦ã„ãよã†ã«(ãã®ã‚ˆã†ãªå‹•ãã«è¦‹ã›ã‚‹ãŸã‚)
+ * カメラã®ä½ç½®ãƒ™ã‚¯ãƒˆãƒ«ã€è¦–点ベクトルを更新
+ */
+void
+camera_update(Game *game, FMATRIX pose)
+{
+  FVECTOR location, eyes, vertical, angle;
+    
+  //int type = game->camera_type;
+
+  ps2_vu0_apply_matrix(location, pose, def_camera.xyz);
+  ps2_vu0_apply_matrix(eyes, pose, def_camera.zd);
+  ps2_vu0_apply_matrix(vertical, pose, def_camera.yd);
+
+  /**When the car bends, the angle of the camera is changed**/
+  if(pad.left>0  && game->jiki->speed !=0){
+    if(game->jiki->speed !=0){
+      if(def_camera.angle[1]<=0.2){
+	def_camera.angle[1]+=0.02;
+      }
+    }
+    else if(pad.right>0 && game->jiki->speed !=0){
+  if(game->jiki->speed !=0){
+    if(def_camera.angle[1]>=-0.2){
+      def_camera.angle[1]-=0.02;
+    }
+  }
+  else {
+    if(def_camera.angle[1]<-0.01){
+      def_camera.angle[1]+=0.02;
+    }
+    else if(def_camera.angle[1]>0.01){
+      def_camera.angle[1]-=0.02;
+    }
+  } 
+  ps2_vu0_apply_matrix(angle, pose, def_camera.angle);
+  ps2_vu0_copy_vector(camera.xyz, location);
+  ps2_vu0_copy_vector(camera.zd,  eyes);
+  ps2_vu0_copy_vector(camera.yd,  vertical);
+  ps2_vu0_copy_vector(camera.angle, angle);
+  set_camera(&camera);
+
+    }
--- a/controler.c	Thu May 26 18:13:40 2011 +0900
+++ b/controler.c	Thu Jun 02 14:56:11 2011 +0900
@@ -1,100 +1,109 @@
+/* controler.c */
+
 #include "libps2.h"
 #include "ps2util.h"
 #include "controler.h"
 #include <stdbool.h>
 
-//SGO_PAD pad;
+#include "sjoy.h" // ps2関連ファイルã‹ã‚‰
+
 
+// 使ã£ã¦ã„ãªã„ã£ã½ã„? ã©ã“ã§å®£è¨€ã—ã¦ã‚‹ã‹ã‚ã‹ã‚‰ãªã„
+/*
 #ifdef DEMO_CREATE
 qextern void setPadValue(int pad);
 #endif
 extern int getPadValue();
+*/
+
+
+
+SGO_PAD pad;
 
 bool padCheck() {
-  /*
-    int pad1;
 
-    pad1 = sjoy_get_ps2_button( JOYPAD_1 );
+  int pad1;
+
+  pad1 = sjoy_get_ps2_button( JOYPAD_1 );
 
-    if (pad1 & SJOY_PS2_START) {
-	pad.st += (pad.st < 2) ? 1 : 0;
-    } else {
-	pad.st = 0;
-    }
+  if (pad1 & SJOY_PS2_START) {
+    pad.st += (pad.st < 2) ? 1 : 0;
+  } else {
+    pad.st = 0;
+  }
 
-    if (pad1 & SJOY_PS2_SELECT) {
-	pad.se += (pad.se < 2) ? 1 : 0;
-    } else {
-	pad.se = 0;
-    }
-    if (pad1 & SJOY_PS2_LEFT) {
-	pad.left += (pad.left < 2) ? 1 : 0;
-    } else {
-	pad.left = 0;
-    }
-    if (pad1 & SJOY_PS2_RIGHT) {
-	pad.right += (pad.right < 2) ? 1 : 0;
-    } else {
-	pad.right = 0;
-    }
-    if (pad1 & SJOY_PS2_UP) {
-	pad.up += (pad.up < 2) ? 1 : 0;
-    } else {
-	pad.up = 0;
-    }
-    if (pad1 & SJOY_PS2_DOWN) {
-	pad.down += (pad.down < 2) ? 1 : 0;
-    } else {
-	pad.down = 0;
-    }
-    if (pad1 & SJOY_PS2_R1) {
-	pad.r1 += (pad.r1 < 2) ? 1 : 0;
-    } else {
-	pad.r1 = 0;
-    }
-    if (pad1 & SJOY_PS2_R2) {
-	pad.r2 += (pad.r2 < 2) ? 1 : 0;
-    } else {
-	pad.r2 = 0;
-    }
-    if (pad1 & SJOY_PS2_L1) {
-	pad.l1 += (pad.l1 < 2) ? 1 : 0;
-    } else {
-	pad.l1 = 0;
-    }
-    if (pad1 & SJOY_PS2_L2) {
-	pad.l2 += (pad.l2 < 2) ? 1 : 0;
-    } else {
-	pad.l2 = 0;
-    }
-    if (pad1 & SJOY_PS2_CROSS) {
-	pad.cross += (pad.cross < 2) ? 1 : 0;
-    } else {
-	pad.cross = 0;
-    }
-    if (pad1 & SJOY_PS2_CIRCLE) {
-	pad.circle += (pad.circle < 2) ? 1 : 0;
-    } else {
-	pad.circle = 0;
-    }
-    if (pad1 & SJOY_PS2_TRIANGLE) {
-	pad.triangle += (pad.triangle < 2) ? 1 : 0;
-    } else {
-	pad.triangle = 0;
-    }
-    if (pad1 & SJOY_PS2_SQUARE) {
-	pad.square += (pad.square < 2) ? 1 : 0;
-    } else {
-	pad.square = 0;
-    }
+  if (pad1 & SJOY_PS2_SELECT) {
+    pad.se += (pad.se < 2) ? 1 : 0;
+  } else {
+    pad.se = 0;
+  }
+  if (pad1 & SJOY_PS2_LEFT) {
+    pad.left += (pad.left < 2) ? 1 : 0;
+  } else {
+    pad.left = 0;
+  }
+  if (pad1 & SJOY_PS2_RIGHT) {
+    pad.right += (pad.right < 2) ? 1 : 0;
+  } else {
+    pad.right = 0;
+  }
+  if (pad1 & SJOY_PS2_UP) {
+    pad.up += (pad.up < 2) ? 1 : 0;
+  } else {
+    pad.up = 0;
+  }
+  if (pad1 & SJOY_PS2_DOWN) {
+    pad.down += (pad.down < 2) ? 1 : 0;
+  } else {
+    pad.down = 0;
+  }
+  if (pad1 & SJOY_PS2_R1) {
+    pad.r1 += (pad.r1 < 2) ? 1 : 0;
+  } else {
+    pad.r1 = 0;
+  }
+  if (pad1 & SJOY_PS2_R2) {
+    pad.r2 += (pad.r2 < 2) ? 1 : 0;
+  } else {
+    pad.r2 = 0;
+  }
+  if (pad1 & SJOY_PS2_L1) {
+    pad.l1 += (pad.l1 < 2) ? 1 : 0;
+  } else {
+    pad.l1 = 0;
+  }
+  if (pad1 & SJOY_PS2_L2) {
+    pad.l2 += (pad.l2 < 2) ? 1 : 0;
+  } else {
+    pad.l2 = 0;
+  }
+  if (pad1 & SJOY_PS2_CROSS) {
+    pad.cross += (pad.cross < 2) ? 1 : 0;
+  } else {
+    pad.cross = 0;
+  }
+  if (pad1 & SJOY_PS2_CIRCLE) {
+    pad.circle += (pad.circle < 2) ? 1 : 0;
+  } else {
+    pad.circle = 0;
+  }
+  if (pad1 & SJOY_PS2_TRIANGLE) {
+    pad.triangle += (pad.triangle < 2) ? 1 : 0;
+  } else {
+    pad.triangle = 0;
+  }
+  if (pad1 & SJOY_PS2_SQUARE) {
+    pad.square += (pad.square < 2) ? 1 : 0;
+  } else {
+    pad.square = 0;
+  }
 
-    if ( (pad1 & SJOY_PS2_SELECT) && (pad1 & SJOY_PS2_START) && 
-	 (pad1 & SJOY_PS2_L1) && (pad1 & SJOY_PS2_R1) && 
-	 (pad1 & SJOY_PS2_L2) && (pad1 & SJOY_PS2_R2)) {
-	return FALSE;
-    }
-  */
+  if ( (pad1 & SJOY_PS2_SELECT) && (pad1 & SJOY_PS2_START) && 
+       (pad1 & SJOY_PS2_L1) && (pad1 & SJOY_PS2_R1) && 
+       (pad1 & SJOY_PS2_L2) && (pad1 & SJOY_PS2_R2)) {
+    return false;
+  }
 
 
-    return true;
+  return true;
 }
--- a/controler.h	Thu May 26 18:13:40 2011 +0900
+++ b/controler.h	Thu Jun 02 14:56:11 2011 +0900
@@ -4,6 +4,8 @@
  *         1: 1回押ã—ãŸ
  *         2: 押ã—続ã‘ã¦ã„ã‚‹
  */
+
+
 typedef struct SGO_PAD {
     short st;
     short se;
@@ -21,5 +23,6 @@
     short square;
 } SGO_PAD;
 
-extern SGO_PAD pad;
+//extern SGO_PAD pad;
 
+bool padCheck( void );
--- a/field.c	Thu May 26 18:13:40 2011 +0900
+++ b/field.c	Thu Jun 02 14:56:11 2011 +0900
@@ -21,49 +21,59 @@
 static FieldPtr field_list;
 static FieldPtr field_actual;
 
+// é©å½“ã«è‡ªä½œ:miya
+PolygonInfo  xml_read_file(char *colImg)
+{
+  PolygonInfo test;
+  printf("xml_read_file");
+
+  return test;
+}
+
+
 static FieldPtr
 field_create(char *fieldImg, char *colImg, TEXTURE *tex)
 {
-    FieldPtr    self;
-    OBJECT      *obj;
-    PolygonInfo *xml;
-    void *free_addr;
+  FieldPtr    self;
+  OBJECT      *obj;
+  PolygonInfo *xml;
+  void *free_addr;
 
-    FVECTOR location  = {0, 0, 0, 1};
-    FVECTOR direction = {0, 0, 0, 1};
+  FVECTOR location  = {0, 0, 0, 1};
+  FVECTOR direction = {0, 0, 0, 1};
 
-    //    obj = ps2util_obj_Create_fromXML(fieldImg);
-    memcpy(obj->xyz,    location, sizeof(FVECTOR));
-    memcpy(obj->angle, direction, sizeof(FVECTOR));
-    ps2util_obj_Renew_transMatrix(obj);
-    ps2util_obj_Set_effect(obj, DEFAULT_SET);
-    ps2util_obj_Set_texture(obj, tex);
+  obj = ps2util_obj_Create_fromXML(fieldImg);
+  memcpy(obj->xyz,    location, sizeof(FVECTOR));
+  memcpy(obj->angle, direction, sizeof(FVECTOR));
+  ps2util_obj_Renew_transMatrix(obj);
+  ps2util_obj_Set_effect(obj, DEFAULT_SET);
+  ps2util_obj_Set_texture(obj, tex);
 
-    //    xml = xml_read_file(colImg);    //ã“ã“ã§ã‚³ãƒ¼ã‚¹ã®èµ°ã‚Œã‚‹å ´æ‰€(当ãŸã‚Šåˆ¤å®š)
+  //  xml = xml_read_file(colImg);    //ã“ã“ã§ã‚³ãƒ¼ã‚¹ã®èµ°ã‚Œã‚‹å ´æ‰€(当ãŸã‚Šåˆ¤å®š)
 
-    if (malloc_align16(&free_addr, &self, sizeof(Field)) == -1) {
-	fprintf(stderr, "field.c: malloc_align16 error\n");
-	fflush(stderr);
-	exit(EXIT_FAILURE);
-    }
-    self->object = obj;
-    self->next   = NULL;
-    self->prev   = NULL;
-    self->free_addr = free_addr;
+  if (malloc_align16(&free_addr, &self, sizeof(Field)) == -1) {
+    fprintf(stderr, "field.c: malloc_align16 error\n");
+    fflush(stderr);
+    exit(EXIT_FAILURE);
+  }
+  self->object = obj;
+  self->next   = NULL;
+  self->prev   = NULL;
+  self->free_addr = free_addr;
 #ifdef DEBUG
-    fprintf(main_fp, "malloc fieldNode addr = %x(free), %x(obj)\n", (int)free_addr, (int)self);
+  fprintf(main_fp, "malloc fieldNode addr = %x(free), %x(obj)\n", (int)free_addr, (int)self);
 #endif
-    col_init(&self->colface, xml);
+  col_init(&self->colface, xml);
 
 #ifdef DEBUG
-    fprintf(main_fp, "       facenum = %d\n", self->colface.facenum);
-    fprintf(main_fp, "       facenum = %x(free), ", (int)self->colface.free_addr);
-    fprintf(main_fp, "facenum = %x(obj)\n", (int)self->colface.colface);
+  fprintf(main_fp, "       facenum = %d\n", self->colface.facenum);
+  fprintf(main_fp, "       facenum = %x(free), ", (int)self->colface.free_addr);
+  fprintf(main_fp, "facenum = %x(obj)\n", (int)self->colface.colface);
 #endif
 
-    //xml_free(xml);
+  //xml_free(xml);
 
-    return self;
+  return self;
 }
 
 
@@ -71,62 +81,62 @@
 static void
 field_new_readCSV(FILE *fp, int id)
 {
-    FieldPtr fieldHead = NULL;
-    FieldPtr newField  = NULL;
-    FieldPtr prevField = NULL;
-    char buff[BUFSIZE], *bufp;
-    char fieldImg[BUFSIZE], colImg[BUFSIZE], texname[BUFSIZE];
-    TEXTURE *tex = NULL;
-    int course_id;
-    bool flag = false;
+  FieldPtr fieldHead = NULL;
+  FieldPtr newField  = NULL;
+  FieldPtr prevField = NULL;
+  char buff[BUFSIZE], *bufp;
+  char fieldImg[BUFSIZE], colImg[BUFSIZE], texname[BUFSIZE];
+  TEXTURE *tex = NULL;
+  int course_id;
+  bool flag = false;
 
-    while ((bufp = fgets(buff, BUFSIZE, fp)) != NULL) {
-	bufp++;
+  while ((bufp = fgets(buff, BUFSIZE, fp)) != NULL) {
+    bufp++;
 
-	switch (buff[0]) {
-	case 'n': // コースIDã®èª­ã¿å–ã‚Š
-	    if (!flag) {
-		sscanf(bufp, " %d\n", &course_id);
-		if (id == course_id) {
-		    flag = true;
-		}
-	    } else {
-		goto FINISH_LOAD;
-	    }
-	    break;
-	case 't': // テクスãƒãƒ£ã®ãƒ­ãƒ¼ãƒ‰
-	    if (flag) {
-		sscanf(bufp, " %s\n", texname);
-		//tex = read_png_file(texname);
-		ps2util_tex_Set(tex);
-	    }
-	    break;
-	case 'c': // コースã®ãƒ­ãƒ¼ãƒ‰
-	    if (flag) {
-		sscanf(bufp, " %s %s\n", fieldImg, colImg);
-		newField = field_create(fieldImg, colImg, tex);
-		if (!fieldHead) {
-		    fieldHead = prevField = newField;
-		} else {
-		    prevField->next = newField;
-		    newField->prev = prevField;
-		    prevField = newField;
-		}
-		newField->init = fieldHead;	
-		field_num_max++;
-	    }
-	    break;
-	default:
-	    break;
+    switch (buff[0]) {
+    case 'n': // コースIDã®èª­ã¿å–ã‚Š
+      if (!flag) {
+	sscanf(bufp, " %d\n", &course_id);
+	if (id == course_id) {
+	  flag = true;
 	}
+      } else {
+	goto FINISH_LOAD;
+      }
+      break;
+    case 't': // テクスãƒãƒ£ã®ãƒ­ãƒ¼ãƒ‰
+      if (flag) {
+	sscanf(bufp, " %s\n", texname);
+	//tex = read_png_file(texname);
+	ps2util_tex_Set(tex);
+      }
+      break;
+    case 'c': // コースã®ãƒ­ãƒ¼ãƒ‰
+      if (flag) {
+	sscanf(bufp, " %s %s\n", fieldImg, colImg);
+	newField = field_create(fieldImg, colImg, tex);
+	if (!fieldHead) {
+	  fieldHead = prevField = newField;
+	} else {
+	  prevField->next = newField;
+	  newField->prev = prevField;
+	  prevField = newField;
+	}
+	newField->init = fieldHead;	
+	field_num_max++;
+      }
+      break;
+    default:
+      break;
     }
+  }
 
  FINISH_LOAD:
-    // 先頭ã¨æœ€å¾Œå°¾ã®ãƒªãƒ³ã‚¯ã‚’張る
-    newField->next = newField->init;
-    newField->init->prev = newField;
+  // 先頭ã¨æœ€å¾Œå°¾ã®ãƒªãƒ³ã‚¯ã‚’張る
+  newField->next = newField->init;
+  newField->init->prev = newField;
 
-    field_list = field_actual = fieldHead;
+  field_list = field_actual = fieldHead;
 }
 
 
@@ -155,76 +165,75 @@
 static void
 field_draw(FieldPtr p)
 {
-    ps2_vu0_unit_matrix(p->object->transfer);
+  ps2_vu0_unit_matrix(p->object->transfer);
 
-    p->object->transfer[3][0] = p->location[0];
-    p->object->transfer[3][1] = p->location[1];
-    p->object->transfer[3][2] = p->location[2];
-    p->object->transfer[3][3] = p->location[3];
-    ps2util_obj_Draw(p->object);
+  p->object->transfer[3][0] = p->location[0];
+  p->object->transfer[3][1] = p->location[1];
+  p->object->transfer[3][2] = p->location[2];
+  p->object->transfer[3][3] = p->location[3];
+  ps2util_obj_Draw(p->object);
 }
 
 
-void
-field_update(CarPtr car)
+void field_update(CarPtr car)
 {
-    FieldPtr p;
+  FieldPtr p;
 
-    p = field_actual;
-    // current
+  p = field_actual;
+  // current
+  p->location[0] = -car->location[0];
+  p->location[1] = -car->location[1];
+  p->location[2] = -car->location[2];
+  p->location[3] = 1;
+  field_draw(p);
+
+  // next
+  p = field_actual->next;
+  if (p) {
     p->location[0] = -car->location[0];
     p->location[1] = -car->location[1];
     p->location[2] = -car->location[2];
     p->location[3] = 1;
     field_draw(p);
+  }
 
-    // next
-    p = field_actual->next;
-    if (p) {
-	p->location[0] = -car->location[0];
-	p->location[1] = -car->location[1];
-      	p->location[2] = -car->location[2];
-	p->location[3] = 1;
-	field_draw(p);
-    }
-
-    // prev
-    p = field_actual->prev;
-    if (p) {
-	p->location[0] = -car->location[0];
-	p->location[1] = -car->location[1];
-	p->location[2] = -car->location[2];
-	p->location[3] = 1;
-	field_draw(p);
-    }
+  // prev
+  p = field_actual->prev;
+  if (p) {
+    p->location[0] = -car->location[0];
+    p->location[1] = -car->location[1];
+    p->location[2] = -car->location[2];
+    p->location[3] = 1;
+    field_draw(p);
+  }
 }
 
 void
 field_destroy()
 {
-    FieldPtr p = field_list;
-    FieldPtr d;
-    TEXTURE *t;
+  FieldPtr p = field_list;
+  FieldPtr d;
+  TEXTURE *t;
 
-    p->prev->next = NULL;
+  p->prev->next = NULL;
 
-    t = p->object->surfaces->texture;
-    ps2util_tex_Exclude(t);
-    free_texture(t);
+  t = p->object->surfaces->texture;
+  ps2util_tex_Exclude(t);
+  free_texture(t);
 
-    while (p) {
-	d = p;
-	p = p->next;
-	ps2util_obj_Free(d->object);
-	free(d->colface.free_addr);
-	free(d->free_addr);
+  while (p) {
+    d = p;
+    p = p->next;
+    ps2util_obj_Free(d->object);
+    free(d->colface.free_addr);
+    free(d->free_addr);
 #ifdef DEBUG
-	fprintf(main_fp, "free fieldNode addr = %x\n", (int)d->free_addr);
+    fprintf(main_fp, "free fieldNode addr = %x\n", (int)d->free_addr);
 #endif
-    }
+  }
 
-    field_num_max = 0;
-    field_num = 1;
+  field_num_max = 0;
+  field_num = 1;
 }
 
 /*
@@ -232,24 +241,24 @@
  */
 int
 field_rap_increment(int n)
-{    
-    field_num += n;
-    if (field_num > field_num_max) {
-	field_num = 1;
-	return 1;
-    } else {
-	return 0;
-    }
+{
+  field_num += n;
+  if (field_num > field_num_max) {
+    field_num = 1;
+    return 1;
+  } else {
+    return 0;
+  }
 }
 
 void
 field_set_actual(FieldPtr p)
 {
-    field_actual = p;
+  field_actual = p;
 }
 
 FieldPtr
 field_get_actual()
 {
-    return field_actual;
+  return field_actual;
 }
--- a/field.h	Thu May 26 18:13:40 2011 +0900
+++ b/field.h	Thu Jun 02 14:56:11 2011 +0900
@@ -3,6 +3,7 @@
 
 
 #include "col.h"
+#include "car.h" // field_update用
 
 /*
   ãŸã¶ã‚“ã€ps2ã§ã€
@@ -25,7 +26,14 @@
     ColFaceHd colface;
 } Field, *FieldPtr;
 
-extern void field_init(int id);
-extern void field_destroy();
 
 #endif
+
+void field_init(int id);
+void field_destroy();
+
+void field_update(CarPtr car);
+
+int field_rap_increment(int);
+void field_set_actual(FieldPtr);
+FieldPtr field_get_actual();
--- a/gFont.c	Thu May 26 18:13:40 2011 +0900
+++ b/gFont.c	Thu Jun 02 14:56:11 2011 +0900
@@ -8,8 +8,8 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdbool.h>
-//#include "libps2.h"
-//#include "ps2util.h"
+#include "libps2.h"
+#include "ps2util.h"
 #include "gSprite.h"
 
 #define DEFOBJ 120
@@ -20,88 +20,92 @@
 #define CHAR_H_SIZE 34
 
 static SpriteTable   sptable[DEFOBJ];
-//static ps2utilSprite sp[DEFOBJ*2]; // 表示スプライト用スタック
+static ps2utilSprite sp[DEFOBJ*2]; // 表示スプライト用スタック
 static unsigned int  sp_counter;
 static bool          flag_spriteInited = false; // スプライトロードフラグ
 
-//static TEXTURE *font_tex;
+static TEXTURE *font_tex;
 
 static void
 gFont_Init_Png(char *texname)
 {
-  /*    if (!(font_tex = read_png_file(texname))) {
-	fprintf(stderr,
-		"cannot creat texture - gFont_Init_Png().\n");
-	fflush(stderr);
-	exit(EXIT_FAILURE);
-	}*/
+  if (!(font_tex = read_png_file(texname))) {
+    fprintf(stderr,
+	    "cannot creat texture - gFont_Init_Png().\n");
+    fflush(stderr);
+    exit(EXIT_FAILURE);
+  }
 
-  /*    if (ps2util_tex_Set(font_tex) == -1) {
-	fprintf(stderr,
-		"cannot set texture - gFont_Init_Png().\n");
-	fflush(stderr);
-	exit(EXIT_FAILURE);
-	}*/
+  if (ps2util_tex_Set(font_tex) == -1) {
+    fprintf(stderr,
+	    "cannot set texture - gFont_Init_Png().\n");
+    fflush(stderr);
+    exit(EXIT_FAILURE);
+  }
 }
 
 static void
 gFont_Create()
 {
-    int i;
+  int i;
+  for (i=0; i<DEFOBJ; i++) {
+    if (ps2util_sprite_Create(&sp[i], font_tex) == -1) {
+      fprintf(stderr,
+	      "cannot create sprite - gFont_Create()\n");
+      fflush(stderr);
+      exit(EXIT_FAILURE);
+    }
+    ps2util_sprite_Unuse_alpha(&sp[i]);
+  }
 
-    for (i=0; i<DEFOBJ; i++) {
-      /*	if (ps2util_sprite_Create(&sp[i], font_tex) == -1) {
-	    fprintf(stderr,
-		    "cannot create sprite - gFont_Create()\n");
-	    fflush(stderr);
-	    exit(EXIT_FAILURE);
-	}
-	ps2util_sprite_Unuse_alpha(&sp[i]);*/
-    }
-    flag_spriteInited = true;
+
+  flag_spriteInited = true;
 }
 
 static void
 gFont_DefSprite(int number, int x, int y, int w, int h)
 {
-    sptable[number].tx = x;
-    sptable[number].ty = y;
-    sptable[number].tw = w;
-    sptable[number].th = h;
+  sptable[number].tx = x;
+  sptable[number].ty = y;
+  sptable[number].tw = w;
+  sptable[number].th = h;
 }
 
 void
 gFont_Init()
 {
-    int i, j;
-    int number = 0;
+  int i, j;
+  int number = 0;
 
-    gFont_Init_Png("img/font.png");
-    gFont_Create(); // スプライト生æˆ
+  gFont_Init_Png("img/font.png");
+  gFont_Create(); // スプライト生æˆ
 
-    for (i=0; i<7; i++) {
-	for (j=0; j<15; j++) {
-	    gFont_DefSprite(number, j*17, i*34, 17, 34);
-	    number++;
-	}
+  for (i=0; i<7; i++) {
+    for (j=0; j<15; j++) {
+      gFont_DefSprite(number, j*17, i*34, 17, 34);
+      number++;
     }
+  }
 }
 
 
 static void
 gFont_PutSprite(int number, int x, int y)
 {
-  //    ps2utilSprite *p = &sp[sp_counter];
+    ps2utilSprite *p = &sp[sp_counter];
 
-  /*    ps2util_sprite_Set_basicAttribute(
+    // ushortã£ã¦ãªã‚“ã§ã™ã‹ï¼Ÿ:miya
+    /*
+    ps2util_sprite_Set_basicAttribute(
 	p,
 	(ushort)x, (ushort)y,
 	(ushort)sptable[number].tw*1.5, (ushort)sptable[number].th*1.5,
 	(ushort)sptable[number].tx, (ushort)sptable[number].ty,
 	(ushort)sptable[number].tw, (ushort)sptable[number].th,
-	SPRITE_PRIO_FOREGROUND);*/
+	SPRITE_PRIO_FOREGROUND);
+    */
 
-  //    ps2util_sprite_Request(p);
+    ps2util_sprite_Request(p);
     sp_counter++;
 }
 
@@ -112,7 +116,7 @@
     int i;
 
     for (i=0; i<DEFOBJ; i++) {
-      //	sprite_disappear(&sp[i].attribute);
+   	sprite_disappear(&sp[i].attribute);
     }
     sp_counter = 0;
 }
@@ -137,14 +141,14 @@
 void
 gFont_SetString(char *str, int x, int y)
 {
-    int number;
+  int number;
 
-    while (*str != '\0') {
-	number = get_number_char(*str);
-	gFont_PutSprite(number, x, y);
-	str++;
-	x += (int)CHAR_W_SIZE*1.5;
-    }
+  while (*str != '\0') {
+    number = get_number_char(*str);
+    gFont_PutSprite(number, x, y);
+    str++;
+    x += (int)CHAR_W_SIZE*1.5;
+  }
 }
 
 /*
@@ -153,10 +157,10 @@
 void
 gFont_SetStringInt(int num, int x, int y)
 {
-    char bufp[256];
+  char bufp[256];
 
-    snprintf(bufp, 256, "%d", num);
-    gFont_SetString(bufp, x, y);
+  snprintf(bufp, 256, "%d", num);
+  gFont_SetString(bufp, x, y);
 }
 
 void
--- a/gFont.h	Thu May 26 18:13:40 2011 +0900
+++ b/gFont.h	Thu Jun 02 14:56:11 2011 +0900
@@ -1,11 +1,11 @@
-/*
- * $Id$
- */
-extern void gFont_Draw_Reset();
-extern void gFont_SetString(char *str, int x, int y);
-extern void gFont_SetStringInt(int str, int x, int y);
-extern void gFont_Init();
-extern void gFont_SetFont_OP();
-extern void gFont_SetFont_SelCar();
-extern void gFont_SetFont_SelCourse();
-extern void gFont_SetFont_Ready();
+/* gFont.h */
+
+// extern 消ã—ã¦ã¿ãŸ:miya
+void gFont_Draw_Reset();
+void gFont_SetString(char *str, int x, int y);
+void gFont_SetStringInt(int str, int x, int y);
+void gFont_Init();
+void gFont_SetFont_OP();
+void gFont_SetFont_SelCar();
+void gFont_SetFont_SelCourse();
+void gFont_SetFont_Ready();
--- a/gSprite.c	Thu May 26 18:13:40 2011 +0900
+++ b/gSprite.c	Thu Jun 02 14:56:11 2011 +0900
@@ -17,13 +17,14 @@
 
 static TEXTURE *sprite_tex;
 
+
 void
 gSprite_DefSprite(int number, int tx, int ty, int tw, int th)
 {
-    sptable[number].tx = tx;
-    sptable[number].ty = ty;
-    sptable[number].tw = tw;
-    sptable[number].th = th;
+  sptable[number].tx = tx;
+  sptable[number].ty = ty;
+  sptable[number].tw = tw;
+  sptable[number].th = th;
 }
 
 void
@@ -64,67 +65,65 @@
 static void
 gSprite_Init_Png(char *texname)
 {
-        if (!(sprite_tex = read_png_file(texname))) {
-	fprintf(stderr,
-		"cannot creat texture - init_png().\n");
-	fflush(stderr);
-	exit(EXIT_FAILURE);
-    }
+  if (!(sprite_tex = read_png_file(texname))) {
+    fprintf(stderr,
+	    "cannot creat texture - init_png().\n");
+    fflush(stderr);
+    exit(EXIT_FAILURE);
+  }
 
-    if (ps2util_tex_Set(sprite_tex) == -1) {
-	fprintf(stderr,
-		"cannot set texture - init_png().\n");
-	fflush(stderr);
-	exit(EXIT_FAILURE);
-	}
+  if (ps2util_tex_Set(sprite_tex) == -1) {
+    fprintf(stderr,
+	    "cannot set texture - init_png().\n");
+    fflush(stderr);
+    exit(EXIT_FAILURE);
+  }
 
 }
 
-
-
 static void
 gSprite_Create()
 {
-    int i;
+  int i;
 
-    for (i=0; i<DEFOBJ; i++) {
-        if (ps2util_sprite_Create(&sp[i], sprite_tex) == -1) {
-	    fprintf(stderr,
-		    "cannot create sprite No.%d - create_sprite()\n", i);
-	    fflush(stderr);
-	    exit(EXIT_FAILURE);
-	}
-	ps2util_sprite_Unuse_alpha(&sp[i]);
+  for (i=0; i<DEFOBJ; i++) {
+    if (ps2util_sprite_Create(&sp[i], sprite_tex) == -1) {
+      fprintf(stderr,
+	      "cannot create sprite No.%d - create_sprite()\n", i);
+      fflush(stderr);
+      exit(EXIT_FAILURE);
     }
+    ps2util_sprite_Unuse_alpha(&sp[i]);
+  }
 
-    flag_spriteInited = false;
+  flag_spriteInited = false;
 }
 
 
 void
 gSprite_Init()
 {
-    ps2util_graphic_Init();
-    gSprite_Init_Png("img/main2.png");
-    gSprite_Create(); // スプライト生æˆ
+  ps2util_graphic_Init();
+  gSprite_Init_Png("img/main2.png");
+  gSprite_Create(); // スプライト生æˆ
 
 
-    // スプライトã®ç™»éŒ² 
-    gSprite_DefSprite(10,   1,   1, 512, 666); // タイトル  
-    gSprite_DefSprite(17,   1,  35,  33,  33); // é¸æŠžãƒžãƒ¼ã‚¯
-    gSprite_DefSprite(23,   1,   1, 106,  34); // スピードメーター
-    gSprite_DefSprite(24,  51,  40,  18,  20); // å³çŸ¢å°
-    gSprite_DefSprite(25,  33,  40,  17,  20); // 左矢å°
-    gSprite_DefSprite(26,  56,  89,  55,  26); // km/h
-    gSprite_DefSprite(27,  62,  62,  39,  26); // Rap
-    gSprite_DefSprite(28, 430,  62,  53,  46); // 1p
-    gSprite_DefSprite(29, 460,   6,  53,  46); // 2P 
-    gSprite_DefSprite(51, 333, 116, 165,  140); // é¸æŠžç”»é¢ã®è»Š 
-    gSprite_DefSprite(52, 181, 116, 165,  140);
-    gSprite_DefSprite(53,  12, 116, 165,  140);
-    gSprite_DefSprite(81, 115,   1, 148, 114); // é¸æŠžç”»é¢ã®ã‚³ãƒ¼ã‚¹ 
-    // 本当㯠(82, 272,...)ã§ã™ã€‚二ã¤ç›®ã®ã‚³ãƒ¼ã‚¹çµµãŒãªã„ã®ã§ 
-    gSprite_DefSprite(82, 272,   1, 148, 114);
+  // スプライトã®ç™»éŒ² 
+  gSprite_DefSprite(10,   1,   1, 512, 666); // タイトル  
+  gSprite_DefSprite(17,   1,  35,  33,  33); // é¸æŠžãƒžãƒ¼ã‚¯
+  gSprite_DefSprite(23,   1,   1, 106,  34); // スピードメーター
+  gSprite_DefSprite(24,  51,  40,  18,  20); // å³çŸ¢å°
+  gSprite_DefSprite(25,  33,  40,  17,  20); // 左矢å°
+  gSprite_DefSprite(26,  56,  89,  55,  26); // km/h
+  gSprite_DefSprite(27,  62,  62,  39,  26); // Rap
+  gSprite_DefSprite(28, 430,  62,  53,  46); // 1p
+  gSprite_DefSprite(29, 460,   6,  53,  46); // 2P 
+  gSprite_DefSprite(51, 333, 116, 165,  140); // é¸æŠžç”»é¢ã®è»Š 
+  gSprite_DefSprite(52, 181, 116, 165,  140);
+  gSprite_DefSprite(53,  12, 116, 165,  140);
+  gSprite_DefSprite(81, 115,   1, 148, 114); // é¸æŠžç”»é¢ã®ã‚³ãƒ¼ã‚¹ 
+  // 本当㯠(82, 272,...)ã§ã™ã€‚二ã¤ç›®ã®ã‚³ãƒ¼ã‚¹çµµãŒãªã„ã®ã§ 
+  gSprite_DefSprite(82, 272,   1, 148, 114);
 
 }
 
@@ -132,12 +131,12 @@
 static void
 gSprite_Clear()
 {
-    int i;
+  int i;
 
-    for (i=0; i<DEFOBJ; i++) {
-	sprite_disappear(&sp[i].attribute);
-    }
-    sp_counter = 0;
+  for (i=0; i<DEFOBJ; i++) {
+    sprite_disappear(&sp[i].attribute);
+  }
+  sp_counter = 0;
 }
 
 
@@ -145,9 +144,9 @@
 void
 gSprite_Draw_Reset()
 {
-    if (flag_spriteInited == true) {
-	gSprite_Clear();
-    }
+  if (flag_spriteInited == true) {
+    gSprite_Clear();
+  }
 }
 
 
@@ -156,4 +155,3 @@
 gSprite_PutSprite_Pause()
 {
 }
-
--- a/gSprite.h	Thu May 26 18:13:40 2011 +0900
+++ b/gSprite.h	Thu Jun 02 14:56:11 2011 +0900
@@ -12,10 +12,11 @@
 } SpriteTable;
 
 
-extern void gSprite_Init();
-extern void gSprite_Draw_Reset();
-extern void gSprite_PutSprite(int number, int x, int y);
-extern void gSprite_PutSpriteEx(int number, int x, int y, float w, float h);
-extern void gSprite_DefSprite(int number, int tx, int ty, int tw, int th);
+// extern ã¨ã£ã¦ã¿ãŸã‘ã©ã€ãªã«ã‹ä¸éƒ½åˆã‚ã‚Šã¾ã™ã‹ï¼Ÿ:miya
+void gSprite_Init();
+void gSprite_Draw_Reset();
+void gSprite_PutSprite(int number, int x, int y);
+void gSprite_PutSpriteEx(int number, int x, int y, float w, float h);
+void gSprite_DefSprite(int number, int tx, int ty, int tw, int th);
 
 #endif
--- a/game.c	Thu May 26 18:13:40 2011 +0900
+++ b/game.c	Thu Jun 02 14:56:11 2011 +0900
@@ -1,16 +1,18 @@
+/* game.c */
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdbool.h>
-//#include "libps2.h"
-//#include "ps2util.h"
-//#include "controler.h"
+#include "libps2.h"
+#include "ps2util.h"
+#include "controler.h"
 //#include "linda/lindaapi.h"
+#include "game.h"
 #include "car.h"
-#include "game.h"
+
 #include "schedule.h"
 
-/* controler.c */
-//extern Bool padCheck();
+
 /* linda.c */
 #ifdef LINDA
 //extern int linda_init();
@@ -18,28 +20,26 @@
 #define linda_init 1
 #endif
 
-void
-game_main()
+void game_main()
 {
-
-    Game *game;
-    bool flg = true;
+  Game *game;
+  bool flg = true;
 #ifdef LINDA
-    game->play_id = linda_init();
+  game->play_id = linda_init();
 #endif
-
-    while (1) {
-        flg = true;//padCheck();
-	if (flg == false) {
-	    break;
-	}
-	schedule(game);
-
+  
+  while (1) {
+    flg = padCheck();
+    
+    if (flg == false) {
+      break;
+    }
+    schedule(game);
+    
 #ifdef LINDA
-	psx_sync_n();
+    psx_sync_n();
 #endif
-    }
+  }
 }
 
-
 //ceriumã®mainルーãƒãƒ³ã«ç›´ã™ã€‚
--- a/game.h	Thu May 26 18:13:40 2011 +0900
+++ b/game.h	Thu Jun 02 14:56:11 2011 +0900
@@ -1,15 +1,15 @@
+/* game.h */
+
 #ifndef GAME_H
 #define GAME_H
 
 #include "car.h"
 #include "linda/lindaapi.h"
 
-extern void game_main();
-extern void schedule();
-extern int linda_init();
-extern void psx_sync_n();
+void game_main();
 
-
+int linda_init();
+void psx_sync_n();
 
 typedef struct game {
     CarPtr jiki;
@@ -24,3 +24,6 @@
 extern Game *game;
 
 #endif
+
+// car.hã«æ›¸ãã¨ã€game.hã¨ãŠäº’ã„ã«includeã—ã¦ã—ã¾ã†
+void car_id_update(Game *game, CarPtr jiki);
--- a/game_time.c	Thu May 26 18:13:40 2011 +0900
+++ b/game_time.c	Thu Jun 02 14:56:11 2011 +0900
@@ -55,17 +55,17 @@
  **/
 void game_time_set_raptime (char *s,int msec)  
 {
-   char chminute[3]; 
-   char chsec[2];
-   char chcsec[2];
-   char raptime[10];
-   int minute  = game_time_conv_ms2minute (msec);
-   int sec  = game_time_conv_ms2sec (msec); 
-   int csec = game_time_conv_ms2cs (msec);
-   int i;
+  char chminute[3]; 
+  char chsec[2];
+  char chcsec[2];
+  char raptime[10];
+  int minute  = game_time_conv_ms2minute (msec);
+  int sec  = game_time_conv_ms2sec (msec); 
+  int csec = game_time_conv_ms2cs (msec);
+  int i;
 
 
-   if (minute < 10 ){
+  if (minute < 10 ){
     chminute[0] = ' ';
     chminute[1] = '0';
     chminute[2] = minute + 48;
@@ -78,7 +78,7 @@
     chminute[1] = (minute / 10) + 48;  
     chminute[2] = (minute % 10) + 48;
   }
-   if (sec < 10 ){  
+  if (sec < 10 ){  
     chsec[0] = '0';
     chsec[1] = sec + 48;
   } else {
@@ -86,7 +86,7 @@
     chsec[1] = (sec % 10) + 48;
   }
 
-   if (csec < 10 ){  
+  if (csec < 10 ){  
     chcsec[0] = '0';
     chcsec[1] = csec + 48;
   } else {
--- a/game_time.h	Thu May 26 18:13:40 2011 +0900
+++ b/game_time.h	Thu Jun 02 14:56:11 2011 +0900
@@ -1,10 +1,9 @@
 #include <sys/time.h>
 #include <time.h>
 
-extern int game_time_get_msec();
-extern int game_time_conv_ms2cs(int);
-extern int game_time_conv_ms2sec(int);
-extern int game_time_conv_ms2minute(int);
-extern void game_time_set_raptime(char *,int);
 
-
+int game_time_get_msec();
+int game_time_conv_ms2cs(int);
+int game_time_conv_ms2sec(int);
+int game_time_conv_ms2minute(int);
+void game_time_set_raptime(char *,int);
--- a/libps2.h	Thu May 26 18:13:40 2011 +0900
+++ b/libps2.h	Thu Jun 02 14:56:11 2011 +0900
@@ -1,3 +1,4 @@
+
 #ifndef LIBPS2_H
 #define LIBPS2_H
 
@@ -42,10 +43,31 @@
   SURFACE *surfaces;
 } OBJECT;
 
+// sprite.hã‹ã‚‰
+typedef struct {
+  //__u64 rgbaq;
+  // __u64 rgbaq_addr;
+  // __u64 st;
+  // __u64 st_addr;
+  // __u64 xyz;
+  //  __u64 xyz_addr;
+
+  int xyz_addr;
+
+} GsPrim;
+
+typedef struct {
+  //ps2_giftag giftag;
+  //__u64 prim;
+  //__u64 prim_addr;
+  GsPrim primData[4];
+
+  int x;
+} GsSpritePacket;
 
 //ps2 ä¾å­˜é–¢ä¿‚内㮠libps2.h ã‹ã‚‰ã‚‚ã£ã¦ããŸ
 typedef struct {
-  //GsSpritePacket* gs_packet;
+  GsSpritePacket* gs_packet;
   unsigned char r, g, b, a;
   unsigned short cx, cy;
   unsigned short x, y, w, h;
--- a/light.c	Thu May 26 18:13:40 2011 +0900
+++ b/light.c	Thu Jun 02 14:56:11 2011 +0900
@@ -1,12 +1,16 @@
+/* light.c */
+
 #include <stdio.h>
-//#include "libps2.h"
-//#include "light.h"
+#include "libps2.h"
+#include "light.h"
 
-//FMATRIX normal_light;
-//FMATRIX light_color;
+#include "sjoy.h" // ps2関連ファイルã‹ã‚‰
 
-/*
-void light_init(LIGHT *l)
+FMATRIX normal_light;
+FMATRIX light_color;
+
+
+void init_light(LIGHT *l)
 {
   //Three lights in all.
   //   The color of the light of "light0" is color0.
@@ -51,12 +55,23 @@
   l->ambient[3] = 1.0;
 
 }
-*/
+
+// 自作:miya
+void ps2_vu0_normal_light_matrix(FMATRIX light_color, FVECTOR l0, FVECTOR l1, FVECTOR l2)
+{
+  char *miyahira;
+  miyahira = "ã“ã®é–¢æ•°ãªã«ï¼Ÿ";
+}
 
- /*
-void light_set(LIGHT *l)
+// 自作:miya
+void ps2_vu0_light_color_matrix( FMATRIX light_color, FVECTOR c0, FVECTOR c1, FVECTOR c2, FVECTOR a)
+{
+  char *miyahira;
+  miyahira = "test";
+}
+
+void set_light(LIGHT *l)
 {
   ps2_vu0_normal_light_matrix(normal_light, l->light0, l->light1, l->light2);
   ps2_vu0_light_color_matrix(light_color, l->color0, l->color1, l->color2, l->ambient);
 }
- */
--- a/light.h	Thu May 26 18:13:40 2011 +0900
+++ b/light.h	Thu Jun 02 14:56:11 2011 +0900
@@ -1,2 +1,15 @@
-//extern void light_init(LIGHT *l);
-//extern void light_set(LIGHT *l);
+/* light.h */
+
+typedef struct {
+  FVECTOR light0;
+  FVECTOR light1;
+  FVECTOR light2;
+  FVECTOR color0;
+  FVECTOR color1;
+  FVECTOR color2;
+  FVECTOR ambient;
+} LIGHT;
+
+// functions                                                                         
+void init_light(LIGHT *l);
+void set_light(LIGHT *l);
--- a/linda.c	Thu May 26 18:13:40 2011 +0900
+++ b/linda.c	Thu Jun 02 14:56:11 2011 +0900
@@ -71,437 +71,437 @@
 send_packet(unsigned int dest, unsigned int mode, unsigned int car,
 	    unsigned int course,  char *data)
 {
-    char *pkt;
-    char *reply;
-    int len = PKT_HEADER_SIZE;
+  char *pkt;
+  char *reply;
+  int len = PKT_HEADER_SIZE;
 
-    if (data) len += sizeof(FMATRIX);
+  if (data) len += sizeof(FMATRIX);
 
-    reply = psx_reply(linda_seq[dest]);
+  reply = psx_reply(linda_seq[dest]);
     
-    if (linda_seq[dest] == 0) {
-	pkt = make_packet(mode, car, course, data);
-	psx_out(dest, pkt, len);
-	free(pkt);
-    } else if (reply = psx_reply(linda_seq[dest])) {
-	pkt = make_packet(mode, car, course, data);
-	psx_out(dest, pkt, len);
-	free(pkt);
-	psx_free(reply);
-	}
+  if (linda_seq[dest] == 0) {
+    pkt = make_packet(mode, car, course, data);
+    psx_out(dest, pkt, len);
+    free(pkt);
+  } else if (reply = psx_reply(linda_seq[dest])) {
+    pkt = make_packet(mode, car, course, data);
+    psx_out(dest, pkt, len);
+    free(pkt);
+    psx_free(reply);
+  }
     
-    pkt = make_packet(mode, car, course, data);
-    //psx_out(dest, pkt, len);
-    free(pkt);
+  pkt = make_packet(mode, car, course, data);
+  psx_out(dest, pkt, len);
+  free(pkt);
 }
 
 static void
 get_packet(int id, int *flg, int *mode, int *car, int *course, char *data)
 {
-    char *reply = NULL;
-    char *pkt = NULL;
+  char *reply = NULL;
+  char *pkt = NULL;
 
-    reply = psx_reply(linda_seq[id]);
-    if (reply) {
-	pkt    = reply+LINDA_HEADER_SIZE;
+  reply = psx_reply(linda_seq[id]);
+  if (reply) {
+    pkt    = reply+LINDA_HEADER_SIZE;
 
-	if (flg)    *flg    = 1;
-	if (mode)   *mode   = get_header(pkt, PKT_MODE_OFFSET);
-	if (car)    *car    = get_header(pkt, PKT_CARID_OFFSET);
-	if (course) *course = get_header(pkt, PKT_COURSEID_OFFSET);
-	if (data)   memcpy(data, pkt+PKT_DATA_OFFSET, sizeof(FMATRIX));
-	psx_free(reply);
-	linda_seq[id] = psx_rd(id);
-    }    
+    if (flg)    *flg    = 1;
+    if (mode)   *mode   = get_header(pkt, PKT_MODE_OFFSET);
+    if (car)    *car    = get_header(pkt, PKT_CARID_OFFSET);
+    if (course) *course = get_header(pkt, PKT_COURSEID_OFFSET);
+    if (data)   memcpy(data, pkt+PKT_DATA_OFFSET, sizeof(FMATRIX));
+    psx_free(reply);
+    linda_seq[id] = psx_rd(id);
+  }    
 }
 
 static void
 linda_set_schedule(void *func, int mode, Game *game)
 {
-    int id = game->play_id;
+  int id = game->play_id;
 
-    linda_seq[id] = psx_in(id);
-    sche_func = func;
-    send_packet(id, mode, game->car_id, game->course_id, NULL);
+  linda_seq[id] = psx_in(id);
+  sche_func = func;
+  send_packet(id, mode, game->car_id, game->course_id, NULL);
 }
 
 static bool linda_sche_wait0(int p, Game *game)
 {
-    int i, flg=0;
-    int mode = 0;
-    int id = game->play_id;
-    int connect = 1; // 接続済ã¿ãƒ¦ãƒ¼ã‚¶æ•°
+  int i, flg=0;
+  int mode = 0;
+  int id = game->play_id;
+  int connect = 1; // 接続済ã¿ãƒ¦ãƒ¼ã‚¶æ•°
 
-    for (i=1; i<=CLIENT_MAX; i++) {
-	if (i == id) continue;
-	get_packet(i, &flg, &mode, NULL, NULL, NULL);
-	if (flg == 1 && mode == MODE_WAIT) {
-	    connect++;
-	    flg = 0;
-	}
+  for (i=1; i<=CLIENT_MAX; i++) {
+    if (i == id) continue;
+    get_packet(i, &flg, &mode, NULL, NULL, NULL);
+    if (flg == 1 && mode == MODE_WAIT) {
+      connect++;
+      flg = 0;
     }
+  }
 
-    if (p == 1 && connect == CLIENT_MAX) {
-      linda_set_schedule(linda_sche_wait_ready0, MODE_WAIT_READY,game);
-	return true;
-    } else {
-	return false;
-    }
+  if (p == 1 && connect == CLIENT_MAX) {
+    linda_set_schedule(linda_sche_wait_ready0, MODE_WAIT_READY,game);
+    return true;
+  } else {
+    return false;
+  }
 }
 
 static bool
 linda_sche_wait1(int p, Game *game)
 {
-    int mode;
+  int mode;
 
-    get_packet(PLAYER_1P, NULL, &mode, NULL, NULL, NULL);
+  get_packet(PLAYER_1P, NULL, &mode, NULL, NULL, NULL);
 
-    if (mode == MODE_WAIT_READY) {
-        linda_set_schedule(linda_sche_wait_ready1, MODE_WAIT_READY, game);
-	return true;
-    } else {
-	return false;
-    }
+  if (mode == MODE_WAIT_READY) {
+    linda_set_schedule(linda_sche_wait_ready1, MODE_WAIT_READY, game);
+    return true;
+  } else {
+    return false;
+  }
 }
 
 static bool
 linda_sche_wait_ready0(int p, Game *game)
 {
-    int i, flg, mode;
-    int id = game->play_id;
-    int connect = 1;
+  int i, flg, mode;
+  int id = game->play_id;
+  int connect = 1;
 
-    for (i=1; i<=CLIENT_MAX; i++) {
-	if (i == id) continue;
-	get_packet(i, &flg, &mode, NULL, NULL, NULL);
-	if (i == id) {
-	    flg = 0;
-	    continue;
-	}
-	if (flg == 1 && mode == MODE_WAIT_READY) {
-	    connect++;
-	    flg = 0;
-	}
+  for (i=1; i<=CLIENT_MAX; i++) {
+    if (i == id) continue;
+    get_packet(i, &flg, &mode, NULL, NULL, NULL);
+    if (i == id) {
+      flg = 0;
+      continue;
     }
+    if (flg == 1 && mode == MODE_WAIT_READY) {
+      connect++;
+      flg = 0;
+    }
+  }
 
-    if (p == 1 && connect == CLIENT_MAX) {
-        linda_set_schedule(linda_sche_opening0, MODE_OPENING,game);
-	return true;
-    } else {
-	return false;
-    }
+  if (p == 1 && connect == CLIENT_MAX) {
+    linda_set_schedule(linda_sche_opening0, MODE_OPENING,game);
+    return true;
+  } else {
+    return false;
+  }
 
 }
 
 static bool
 linda_sche_wait_ready1(int p, Game *game)
 {
-    int mode;
+  int mode;
 
-    get_packet(PLAYER_1P, NULL, &mode, NULL, NULL, NULL);
+  get_packet(PLAYER_1P, NULL, &mode, NULL, NULL, NULL);
 
-    if (mode == MODE_OPENING) {
-        linda_set_schedule(linda_sche_opening1, MODE_OPENING,game);
-	return true;
-    } else {
-	return false;
-    }
+  if (mode == MODE_OPENING) {
+    linda_set_schedule(linda_sche_opening1, MODE_OPENING,game);
+    return true;
+  } else {
+    return false;
+  }
 }
 
 static bool
 linda_sche_opening0(int p, Game *game)
 {
-    int i, flg, mode;
-    int id = game->play_id;
-    int connect = 1;
+  int i, flg, mode;
+  int id = game->play_id;
+  int connect = 1;
 
-    for (i=1; i<=CLIENT_MAX; i++) {
-	if (i == id) continue;
-	get_packet(i, &flg, &mode, NULL, NULL, NULL);
-	if (flg == 1 && mode == MODE_OPENING) {
-	    connect++;
-	    flg = 0;
-	}
+  for (i=1; i<=CLIENT_MAX; i++) {
+    if (i == id) continue;
+    get_packet(i, &flg, &mode, NULL, NULL, NULL);
+    if (flg == 1 && mode == MODE_OPENING) {
+      connect++;
+      flg = 0;
     }
+  }
 
-    if (p == 1 && connect == CLIENT_MAX) {
-        linda_set_schedule(linda_sche_select_car0, MODE_SELECT_CAR, game);
-	return true;
-    } else {
-	return false;
-    }
+  if (p == 1 && connect == CLIENT_MAX) {
+    linda_set_schedule(linda_sche_select_car0, MODE_SELECT_CAR, game);
+    return true;
+  } else {
+    return false;
+  }
 }
 
 static bool
 linda_sche_opening1(int p, Game *game)
 {
-    int mode;
+  int mode;
 
-    get_packet(PLAYER_1P, NULL, &mode, NULL, NULL, NULL);
+  get_packet(PLAYER_1P, NULL, &mode, NULL, NULL, NULL);
 
-    if (mode == MODE_SELECT_CAR) {
-        linda_set_schedule(linda_sche_select_car1, MODE_SELECT_CAR, game);
-	return true;
-    } else {
-	return false;
-    }
+  if (mode == MODE_SELECT_CAR) {
+    linda_set_schedule(linda_sche_select_car1, MODE_SELECT_CAR, game);
+    return true;
+  } else {
+    return false;
+  }
 }
 
 static bool 
 linda_sche_select_car0(int p, Game *game)
 {
-    int i, flg, mode;
-    int id = game->play_id;
-    int connect = 1;
+  int i, flg, mode;
+  int id = game->play_id;
+  int connect = 1;
 
-    for (i=1; i<=CLIENT_MAX; i++) {
-	if (i == id) continue;
-	get_packet(i, &flg, &mode, NULL, NULL, NULL);
-	if (flg == 1 && mode == MODE_SELECT_CAR) {
-	    connect++;
-	    flg = 0;
-	}
+  for (i=1; i<=CLIENT_MAX; i++) {
+    if (i == id) continue;
+    get_packet(i, &flg, &mode, NULL, NULL, NULL);
+    if (flg == 1 && mode == MODE_SELECT_CAR) {
+      connect++;
+      flg = 0;
     }
+  }
 
-    if (p == 1 && connect == CLIENT_MAX) {
-        linda_set_schedule(linda_sche_select_course0, MODE_SELECT_COURSE, game);
-	return true;
-    } else {
-	return false;
-    }
+  if (p == 1 && connect == CLIENT_MAX) {
+    linda_set_schedule(linda_sche_select_course0, MODE_SELECT_COURSE, game);
+    return true;
+  } else {
+    return false;
+  }
 }
 
 static bool
 linda_sche_select_car1(int p, Game *game)
 {
-    int mode;
+  int mode;
 
-    get_packet(PLAYER_1P, NULL, &mode, NULL, NULL, NULL);
+  get_packet(PLAYER_1P, NULL, &mode, NULL, NULL, NULL);
 
-    if (mode == MODE_SELECT_COURSE) {
-        linda_set_schedule(linda_sche_select_course1, MODE_SELECT_COURSE, game);
-	return true;
-    } else {
-	return false;
-    }
+  if (mode == MODE_SELECT_COURSE) {
+    linda_set_schedule(linda_sche_select_course1, MODE_SELECT_COURSE, game);
+    return true;
+  } else {
+    return false;
+  }
 }
 
 static bool
 linda_sche_select_course0(int p, Game *game)
 {
-    int i;
-    int flg, mode;
-    int connect = 1;
-    int id = game->play_id;
-    static int course_id = 1;
+  int i;
+  int flg, mode;
+  int connect = 1;
+  int id = game->play_id;
+  static int course_id = 1;
 
-    if (course_id != game->course_id) {
-	course_id = game->course_id;
-	linda_seq[id] = psx_in(id);
-	send_packet(id, MODE_SELECT_COURSE, 0, course_id, NULL);
-	return false;
+  if (course_id != game->course_id) {
+    course_id = game->course_id;
+    linda_seq[id] = psx_in(id);
+    send_packet(id, MODE_SELECT_COURSE, 0, course_id, NULL);
+    return false;
+  }
+
+  for (i=1; i<=CLIENT_MAX; i++) {
+    if (i == id) continue; 
+    get_packet(i, &flg, &mode, NULL, NULL, NULL);
+    if (flg == 1 && mode == MODE_SELECT_COURSE) {
+      connect++;
+      flg = 0;
     }
 
-    for (i=1; i<=CLIENT_MAX; i++) {
-        if (i == id) continue; 
-	get_packet(i, &flg, &mode, NULL, NULL, NULL);
-	if (flg == 1 && mode == MODE_SELECT_COURSE) {
-	    connect++;
-	    flg = 0;
-	}
+  }
 
-    }
-
-    if (p == 1 && connect == CLIENT_MAX) {
-        linda_set_schedule(linda_sche_ready0, MODE_READY, game);
-	return true;
-    } else {
-	return false;
-    }
+  if (p == 1 && connect == CLIENT_MAX) {
+    linda_set_schedule(linda_sche_ready0, MODE_READY, game);
+    return true;
+  } else {
+    return false;
+  }
 }
 
 static bool
 linda_sche_select_course1(int p, Game *game)
 {
-    int mode, course_id;
+  int mode, course_id;
 
-    get_packet(PLAYER_1P, NULL, &mode, NULL, &course_id, NULL);
+  get_packet(PLAYER_1P, NULL, &mode, NULL, &course_id, NULL);
 
-    if (mode == MODE_SELECT_COURSE) {
-	game->course_id = course_id;
-	return false;
-    } else if (mode == MODE_READY) {
-        linda_set_schedule(linda_sche_ready1, MODE_READY, game);
-	return true;
-    } else {
-	return false;
-    }
+  if (mode == MODE_SELECT_COURSE) {
+    game->course_id = course_id;
+    return false;
+  } else if (mode == MODE_READY) {
+    linda_set_schedule(linda_sche_ready1, MODE_READY, game);
+    return true;
+  } else {
+    return false;
+  }
 }
 
 
 static bool
 linda_sche_ready0(int p, Game *game)
 {
-    int i, flg, mode;
-    int id = game->play_id;
-    int connect = 1;
+  int i, flg, mode;
+  int id = game->play_id;
+  int connect = 1;
 
-    for (i=1; i<=CLIENT_MAX; i++) {
-	if (i == id) continue;
-	get_packet(i, &flg, &mode, NULL, NULL, NULL);
-	if (flg == 1 && mode == MODE_READY) {
-	    connect++;
-	    flg = 0;
-	}
+  for (i=1; i<=CLIENT_MAX; i++) {
+    if (i == id) continue;
+    get_packet(i, &flg, &mode, NULL, NULL, NULL);
+    if (flg == 1 && mode == MODE_READY) {
+      connect++;
+      flg = 0;
     }
+  }
 
-    if (p == 1 && connect == CLIENT_MAX) {
-        linda_set_schedule(linda_sche_main_init, MODE_MAIN_INIT, game);
-	return true;
-    } else {
-	return false;
-    }
+  if (p == 1 && connect == CLIENT_MAX) {
+    linda_set_schedule(linda_sche_main_init, MODE_MAIN_INIT, game);
+    return true;
+  } else {
+    return false;
+  }
 }
 
 static bool
 linda_sche_ready1(int p, Game *game)
 {
-    int mode;
+  int mode;
 
-    get_packet(PLAYER_1P, NULL, &mode, NULL, NULL, NULL);
+  get_packet(PLAYER_1P, NULL, &mode, NULL, NULL, NULL);
 
-    if (mode == MODE_MAIN_INIT) {
-        linda_set_schedule(linda_sche_main_init, MODE_MAIN_INIT, game);
-	return true;
-    } else {
-	return false;
-    }
+  if (mode == MODE_MAIN_INIT) {
+    linda_set_schedule(linda_sche_main_init, MODE_MAIN_INIT, game);
+    return true;
+  } else {
+    return false;
+  }
 }
 
 static bool
 linda_sche_main_init(int p, Game *game)
 {
-    int i, flg, mode, car_id;
-    int id = game->play_id;
-    int connect = 1;
-    CarPtr car = NULL;
+  int i, flg, mode, car_id;
+  int id = game->play_id;
+  int connect = 1;
+  CarPtr car = NULL;
 
-    for (i=1; i<=CLIENT_MAX; i++) {
-	if (i == id) continue;
-	get_packet(i, &flg, &mode, &car_id, NULL, NULL);
+  for (i=1; i<=CLIENT_MAX; i++) {
+    if (i == id) continue;
+    get_packet(i, &flg, &mode, &car_id, NULL, NULL);
 
-	if (flg == 1 && mode == MODE_MAIN_INIT) {
-	    if (linda_carlist[i] == NULL) {
-		car = car_init(car_id);
-		carNode_append(car);
-		linda_carlist[i] = car;
-	    }
-	    connect++;
-	    flg = 0;
-	}
+    if (flg == 1 && mode == MODE_MAIN_INIT) {
+      if (linda_carlist[i] == NULL) {
+	car = car_init(car_id);
+	carNode_append(car);
+	linda_carlist[i] = car;
+      }
+      connect++;
+      flg = 0;
     }
+  }
 
-    if (p == 1 && connect == CLIENT_MAX) {
-	if (id == PLAYER_1P)
-            linda_set_schedule(linda_sche_main_ready0, MODE_MAIN_READY, game);
-	else
- 	    linda_set_schedule(linda_sche_main_ready1, MODE_MAIN_READY, game);
-	return true;
-    } else {
-	return false;
-    }
+  if (p == 1 && connect == CLIENT_MAX) {
+    if (id == PLAYER_1P)
+      linda_set_schedule(linda_sche_main_ready0, MODE_MAIN_READY, game);
+    else
+      linda_set_schedule(linda_sche_main_ready1, MODE_MAIN_READY, game);
+    return true;
+  } else {
+    return false;
+  }
 }
 
 
 static bool
 linda_sche_main_ready0(int p, Game *game)
 {
-    int i, flg, mode;
-    int id = game->play_id;
-    int connect = 1;
+  int i, flg, mode;
+  int id = game->play_id;
+  int connect = 1;
 
-    for (i=1; i<=CLIENT_MAX; i++) {
-	if (i == id) continue;
-	get_packet(i, &flg, &mode, NULL, NULL, NULL);
-	if (flg == 1 && mode == MODE_MAIN_READY) {
-	    connect++;
-	    flg = 0;
-	}
+  for (i=1; i<=CLIENT_MAX; i++) {
+    if (i == id) continue;
+    get_packet(i, &flg, &mode, NULL, NULL, NULL);
+    if (flg == 1 && mode == MODE_MAIN_READY) {
+      connect++;
+      flg = 0;
     }
+  }
 
-    if (p == 1 && connect == CLIENT_MAX) {
-        linda_set_schedule(linda_sche_main, MODE_MAIN, game);
-	return true;
-    } else {
-	return false;
-    }
+  if (p == 1 && connect == CLIENT_MAX) {
+    linda_set_schedule(linda_sche_main, MODE_MAIN, game);
+    return true;
+  } else {
+    return false;
+  }
 }
 
 static bool
 linda_sche_main_ready1(int p, Game *game)
 {
-    int mode;
+  int mode;
 
-    get_packet(PLAYER_1P, NULL, &mode, NULL, NULL, NULL);
+  get_packet(PLAYER_1P, NULL, &mode, NULL, NULL, NULL);
 
-    if (mode == MODE_MAIN) {
-        linda_set_schedule(linda_sche_main, MODE_MAIN, game);
-	return true;
-    } else {
-	return false;
-    }
+  if (mode == MODE_MAIN) {
+    linda_set_schedule(linda_sche_main, MODE_MAIN, game);
+    return true;
+  } else {
+    return false;
+  }
 }
 
 static bool
 linda_sche_main(int p, Game *game)
 {
-    int i, flg, mode;
-    int id = game->play_id;
-    int connect = 1;
-    FMATRIX po;
-    CarPtr mycar = game->jiki;
-    CarPtr enemy = NULL;
+  int i, flg, mode;
+  int id = game->play_id;
+  int connect = 1;
+  FMATRIX po;
+  CarPtr mycar = game->jiki;
+  CarPtr enemy = NULL;
 
-    for (i=1; i<=CLIENT_MAX; i++) {
-      	ps2_vu0_unit_matrix(po);
-      	get_packet(i, &flg, &mode, NULL, NULL, (char*)po);
+  for (i=1; i<=CLIENT_MAX; i++) {
+    ps2_vu0_unit_matrix(po);
+    get_packet(i, &flg, &mode, NULL, NULL, (char*)po);
 
-	if (i == id) {
-	    ps2_vu0_copy_matrix(po, mycar->body->transfer);
-	    ps2_vu0_copy_vector(po[3], mycar->location);
+    if (i == id) {
+      ps2_vu0_copy_matrix(po, mycar->body->transfer);
+      ps2_vu0_copy_vector(po[3], mycar->location);
 	    
-	    linda_seq[i] = psx_in(i);
-	    send_packet(i, MODE_MAIN, 0, 0, (char*)po);
-	} else {
-	    enemy = linda_carlist[i];
-	    if (flg == 1 && mode == MODE_MAIN) {
-	        ps2_vu0_copy_matrix(enemy->body->transfer, po);
-		enemy->body->transfer[3][0] -= mycar->location[0];
-		enemy->body->transfer[3][1] -= mycar->location[1];
-		enemy->body->transfer[3][2] -= mycar->location[2];
-		enemy->body->transfer[3][3] = 1;
-	    }
-	}
+      linda_seq[i] = psx_in(i);
+      send_packet(i, MODE_MAIN, 0, 0, (char*)po);
+    } else {
+      enemy = linda_carlist[i];
+      if (flg == 1 && mode == MODE_MAIN) {
+	ps2_vu0_copy_matrix(enemy->body->transfer, po);
+	enemy->body->transfer[3][0] -= mycar->location[0];
+	enemy->body->transfer[3][1] -= mycar->location[1];
+	enemy->body->transfer[3][2] -= mycar->location[2];
+	enemy->body->transfer[3][3] = 1;
+      }
     }
+  }
 
-    if (p == 1 && connect == CLIENT_MAX) {
-	if (id == PLAYER_1P)
-  	    linda_set_schedule(linda_sche_main_ready0, MODE_MAIN_READY, game);
-	else
-	    linda_set_schedule(linda_sche_main_ready1, MODE_MAIN_READY, game);
-	return true;
-    } else {
-	return false;
-    }
+  if (p == 1 && connect == CLIENT_MAX) {
+    if (id == PLAYER_1P)
+      linda_set_schedule(linda_sche_main_ready0, MODE_MAIN_READY, game);
+    else
+      linda_set_schedule(linda_sche_main_ready1, MODE_MAIN_READY, game);
+    return true;
+  } else {
+    return false;
+  }
 
 
-    return false;
+  return false;
 }
 
 bool
 linda_update(int p, Game *game)
 {
-    return sche_func(p);
+  return sche_func(p);
 }
 
 #if 0
@@ -513,23 +513,23 @@
 static int
 linda_jiki_compareLocation(Game *game)
 {
-    float x,y,z;
-    double d;
+  float x,y,z;
+  double d;
 
-    if (common_state == GAME_MAIN || common_state == GAME_GOAL) {
-	x = jiki.position[3][0] - game.jiki->location[0];
-	y = jiki.position[3][1] - game.jiki->location[1];
-	z = jiki.position[3][2] - game.jiki->location[2];
-	d = sqrt(x*x+y*y+z*z);
+  if (common_state == GAME_MAIN || common_state == GAME_GOAL) {
+    x = jiki.position[3][0] - game.jiki->location[0];
+    y = jiki.position[3][1] - game.jiki->location[1];
+    z = jiki.position[3][2] - game.jiki->location[2];
+    d = sqrt(x*x+y*y+z*z);
 
-	if (d < 1.0) {
-	    return 1;
-	} else {
-	    return 0;
-	}
+    if (d < 1.0) {
+      return 1;
     } else {
-	return 1;
+      return 0;
     }
+  } else {
+    return 1;
+  }
 }
 
 
@@ -540,166 +540,164 @@
 static int
 linda_jiki_compare()
 {
-    if ((jiki.car_id == game.car_id) &&
-	(jiki.course_id == game.course_id) &&
-	(jiki.create_flg == ((game.jiki) ? 1:0)) &&
-	(jiki.state == common_state) &&
-	(linda_jiki_compareLocation())) {
-	return 0;
-    } else {
-	return 1;
-    }
+  if ((jiki.car_id == game.car_id) &&
+      (jiki.course_id == game.course_id) &&
+      (jiki.create_flg == ((game.jiki) ? 1:0)) &&
+      (jiki.state == common_state) &&
+      (linda_jiki_compareLocation())) {
+    return 0;
+  } else {
+    return 1;
+  }
 }
 
 static void
 linda_jiki_update()
 {
-    int i,j;
+  int i,j;
     
 
-    jiki.car_id     = game.car_id;
-    jiki.course_id  = game.course_id;
-    jiki.create_flg = (game.jiki) ? 1 : 0;
-    jiki.state      = common_state;
+  jiki.car_id     = game.car_id;
+  jiki.course_id  = game.course_id;
+  jiki.create_flg = (game.jiki) ? 1 : 0;
+  jiki.state      = common_state;
 
-    if (common_state == GAME_MAIN || common_state == GAME_GOAL) {
-	for (i=0; i<3; i++) {
-	    for (j=0; j<4; j++) {
-		jiki.position[i][j]
-		    = game.jiki->body->transfer[i][j];
-	    }
-	}
-	jiki.position[3][0] = game.jiki->location[0];
-	jiki.position[3][1] = game.jiki->location[1];
-	jiki.position[3][2] = game.jiki->location[2];
-	jiki.position[3][3] = 1;
+  if (common_state == GAME_MAIN || common_state == GAME_GOAL) {
+    for (i=0; i<3; i++) {
+      for (j=0; j<4; j++) {
+	jiki.position[i][j]
+	  = game.jiki->body->transfer[i][j];
+      }
     }
+    jiki.position[3][0] = game.jiki->location[0];
+    jiki.position[3][1] = game.jiki->location[1];
+    jiki.position[3][2] = game.jiki->location[2];
+    jiki.position[3][3] = 1;
+  }
 }
 
 void
 linda_update()
 {
-    int i;
-    int barrier = 1; // ãƒãƒªã‚¢åŒæœŸ(?)用
-    int connect = 1;
-    int mode, id, flg;
-    char* reply;
-    char* pkt;
-    CarPtr car = NULL;
+  int i;
+  int barrier = 1; // ãƒãƒªã‚¢åŒæœŸ(?)用
+  int connect = 1;
+  int mode, id, flg;
+  char* reply;
+  char* pkt;
+  CarPtr car = NULL;
 
-    for (i=1; i<=CLIENT_MAX; i++) {
-	reply = psx_reply(linda_seq[i]);
-	if (reply) {
-	    pkt  = reply+LINDA_HEADER_SIZE;
-	    mode = get_header(pkt, PKT_MODE_OFFSET);
-	    id   = get_header(pkt, PKT_ID_OFFSET);
-	    flg  = get_header(pkt, PKT_FLG_OFFSET);
+  for (i=1; i<=CLIENT_MAX; i++) {
+    reply = psx_reply(linda_seq[i]);
+    if (reply) {
+      pkt  = reply+LINDA_HEADER_SIZE;
+      mode = get_header(pkt, PKT_MODE_OFFSET);
+      id   = get_header(pkt, PKT_ID_OFFSET);
+      flg  = get_header(pkt, PKT_FLG_OFFSET);
 	    
-	    if (i != game.play_id) {
-		connect++;
+      if (i != game.play_id) {
+	connect++;
 		
-		car = linda_carlist[i];
-		if (common_state == GAME_MAIN && !car && p->create_flg == 1) {
-		    car = car_init(p->car_id);
-		    carNode_append(car);
-		    linda_carlist[i] = car;
-		}
-		linda_enemy_update(i, car, p);
-		if (common_state == p->state) {
-		    barrier++;
-		}
-	    }
-	    psx_free(reply);
-	    linda_seq[i] = psx_rd(i);
+	car = linda_carlist[i];
+	if (common_state == GAME_MAIN && !car && p->create_flg == 1) {
+	  car = car_init(p->car_id);
+	  carNode_append(car);
+	  linda_carlist[i] = car;
+	}
+	linda_enemy_update(i, car, p);
+	if (common_state == p->state) {
+	  barrier++;
 	}
+      }
+      psx_free(reply);
+      linda_seq[i] = psx_rd(i);
+    }
+  }
+
+  if (connect == CLIENT_MAX) {
+    if (game->state == GAME_WAIT) {
+      gFont_SetString("CONNECT OK!!", 170, 300);
+      if (game->play_id == 1)
+	gFont_SetString(" PUSH START ", 170, 400);
     }
 
-    if (connect == CLIENT_MAX) {
-	if (game->state == GAME_WAIT) {
-	    gFont_SetString("CONNECT OK!!", 170, 300);
-	    if (game->play_id == 1)
-		gFont_SetString(" PUSH START ", 170, 400);
+    // ã”ã¡ã‚ƒã”ã¡ã‚ƒã—ã¦ã‚‹...
+    // ãªã‚“ã‹ç„¡é§„ãªå‡¦ç†ãŒã‚ã‚Šãã†ã 
+    if (game->play_id == 1) {
+      // 全員ã®ãƒ•ãƒ©ã‚°æˆç«‹
+      if (common_state == GAME_GOAL) {
+	if (game->state == GAME_FINISH) {
+	  common_state = game->state;
+	} else {
+	  game->state = common_state;
 	}
-
-	// ã”ã¡ã‚ƒã”ã¡ã‚ƒã—ã¦ã‚‹...
-	// ãªã‚“ã‹ç„¡é§„ãªå‡¦ç†ãŒã‚ã‚Šãã†ã 
-	if (game->play_id == 1) {
-	    // 全員ã®ãƒ•ãƒ©ã‚°æˆç«‹
-	    if (common_state == GAME_GOAL) {
-		if (game->state == GAME_FINISH) {
-		    common_state = game->state;
-		} else {
-		    game->state = common_state;
-		}
-	    } else if (barrier == CLIENT_MAX) {
-		common_state = game->state;
-	    } else {
-		game->state = common_state;
-	    }
+      } else if (barrier == CLIENT_MAX) {
+	common_state = game->state;
+      } else {
+	game->state = common_state;
+      }
+    } else {
+      if (game->state == GAME_GOAL) {
+	if (common_state != GAME_FINISH) {
+	  common_state = game->state;
 	} else {
-	    if (game->state == GAME_GOAL) {
-		if (common_state != GAME_FINISH) {
-		    common_state = game->state;
-		} else {
-		    game->state = common_state;
-		}
-	    } else {
-		game->state = common_state;
-	    }
+	  game->state = common_state;
 	}
-    } else {
-	if (game->state == GAME_WAIT) {
-	    gFont_SetString("WAITING...", 200, 100);
-	}
+      } else {
 	game->state = common_state;
+      }
     }
+  } else {
+    if (game->state == GAME_WAIT) {
+      gFont_SetString("WAITING...", 200, 100);
+    }
+    game->state = common_state;
+  }
 
-    if (linda_jiki_compare()) {
+  if (linda_jiki_compare()) {
 #ifdef DEBUG
-	// ã©ã®ã‚¿ã‚¤ãƒŸãƒ³ã‚°ã§outã•ã‚Œã¦ã‚‹ã‹è¦‹ã‚‹
-	// å¿…è¦ãªã¨ãã ã‘outã—ãªã„ã¨é‡ã„ã§ã™ã­å½“然ã ã‘ã©
-	fprintf(main_fp, "psx_out() jiki\n");
+    // ã©ã®ã‚¿ã‚¤ãƒŸãƒ³ã‚°ã§outã•ã‚Œã¦ã‚‹ã‹è¦‹ã‚‹
+    // å¿…è¦ãªã¨ãã ã‘outã—ãªã„ã¨é‡ã„ã§ã™ã­å½“然ã ã‘ã©
+    fprintf(main_fp, "psx_out() jiki\n");
 #endif
-	linda_jiki_update();
-	// ç„¡ç†çŸ¢ç†
-	// å¤ã„ã‚‚ã®ã‚’消ã™ã ã‘ãªã‚“ã ã‘ã©
-	// æ­£ã—ã„ã‚„ã‚Šæ–¹ãŒä»–ã«æœ‰ã‚‹ã®ã‹ãªï¼Ÿ
-	// 実行ã—続ã‘ã¦ã‚‹ã¨æœ€çµ‚çš„ã«æ¿€é‡ã«ãªã‚‹ã®ã§
-	// ã“ã“ら辺ã«å•é¡ŒãŒæœ‰ã‚‹ã®ã ã‚ã†ã‹ã€‚
-	psx_free(psx_reply(psx_in(game->play_id)));
-	linda_seq[my_id]=psx_in(game->play_id);
-	psx_out(game->play_id, (char*)&jiki, sizeof(CarInfo));
-    }
+    linda_jiki_update();
+    // ç„¡ç†çŸ¢ç†
+    // å¤ã„ã‚‚ã®ã‚’消ã™ã ã‘ãªã‚“ã ã‘ã©
+    // æ­£ã—ã„ã‚„ã‚Šæ–¹ãŒä»–ã«æœ‰ã‚‹ã®ã‹ãªï¼Ÿ
+    // 実行ã—続ã‘ã¦ã‚‹ã¨æœ€çµ‚çš„ã«æ¿€é‡ã«ãªã‚‹ã®ã§
+    // ã“ã“ら辺ã«å•é¡ŒãŒæœ‰ã‚‹ã®ã ã‚ã†ã‹ã€‚
+    psx_free(psx_reply(psx_in(game->play_id)));
+    linda_seq[my_id]=psx_in(game->play_id);
+    psx_out(game->play_id, (char*)&jiki, sizeof(CarInfo));
+  }
 }
 #endif
 
 static int
 get_id()
 {
-    unsigned char * reply;
-    int seq;
-    int id;
+  unsigned char * reply;
+  int seq;
+  int id;
 
-    //ユーザIDãŒæ ¼ç´ã•ã‚Œã¦ã„ã‚‹TUPLE Spaceã®IDã¸ã‚¢ã‚¯ã‚»ã‚¹
-    seq = psx_in(LINDA_ASK_ID);
+  //ユーザIDãŒæ ¼ç´ã•ã‚Œã¦ã„ã‚‹TUPLE Spaceã®IDã¸ã‚¢ã‚¯ã‚»ã‚¹
+  seq = psx_in(LINDA_ASK_ID);
 
-    // IDãŒå–å¾—ã§ãã‚‹ã¾ã§ãƒ«ãƒ¼ãƒ—
-    while((reply = psx_reply(seq)) == 0) psx_sync_n();
+  // IDãŒå–å¾—ã§ãã‚‹ã¾ã§ãƒ«ãƒ¼ãƒ—
+  while((reply = psx_reply(seq)) == 0) psx_sync_n();
 
-    id = atoi(reply+LINDA_HEADER_SIZE);
-    psx_free(reply);
-    return id;
+  id = atoi(reply+LINDA_HEADER_SIZE);
+  psx_free(reply);
+  return id;
 }
 
-void
-linda_env_init()
+void linda_env_init( void )
 {
-    int i;
-
-    for (i=0; i<CLIENT_MAX+1; i++) {
-	linda_carlist[i] = NULL;
-    }
-
+  int i;
+  
+  for (i=0; i<CLIENT_MAX+1; i++) {
+    linda_carlist[i] = NULL;
+  }
 }
 
 
@@ -707,25 +705,25 @@
 int
 linda_init(Game *game)
 {
-    int i;
-
-    start_linda(LINDA_HOST);
-    my_id = get_id();
+  int i;
 
-    for (i=1; i<=CLIENT_MAX; i++) {
-	if (i == my_id) {
-	    send_packet(i, MODE_WAIT, i, 0, NULL);
-	}
-	linda_seq[i] = psx_rd(i);
+  start_linda(LINDA_HOST);
+  my_id = get_id();
+
+  for (i=1; i<=CLIENT_MAX; i++) {
+    if (i == my_id) {
+      send_packet(i, MODE_WAIT, i, 0, NULL);
     }
-    psx_sync_n();
+    linda_seq[i] = psx_rd(i);
+  }
+  psx_sync_n();
 
-    if (my_id == PLAYER_1P) {
-	sche_func = &linda_sche_wait0;
-    } else {
-	sche_func = &linda_sche_wait1;
-    }
-    send_packet(game->play_id, MODE_WAIT, 1, 1, NULL);
+  if (my_id == PLAYER_1P) {
+    sche_func = &linda_sche_wait0;
+  } else {
+    sche_func = &linda_sche_wait1;
+  }
+  send_packet(game->play_id, MODE_WAIT, 1, 1, NULL);
 
-    return my_id;
+  return my_id;
 }
--- a/linda.h	Thu May 26 18:13:40 2011 +0900
+++ b/linda.h	Thu Jun 02 14:56:11 2011 +0900
@@ -47,32 +47,38 @@
 
 #define PKT_HEADER_SIZE     12
 #include "game.h"
-//#include "schedule.h"
+#include "schedule.h"
 #include <stdbool.h>
 
 extern Game *game;
 
-static void linda_set_schedule(void *func, int mode, Game *game);
-static bool linda_sche_wait0(int p, Game *game);
-static bool linda_sche_wait1(int p, Game *game);
-static bool linda_sche_wait_ready0(int p, Game *game);
-static bool linda_sche_wait_ready1(int p, Game *game);
-static bool linda_sche_opening0(int p, Game *game);
-static bool linda_sche_opening1(int p, Game *game);
-static bool linda_sche_select_car0(int p, Game *game);
-static bool linda_sche_select_car1(int p, Game *game);
-static bool linda_sche_select_course0(int p, Game *game);
-static bool linda_sche_select_course1(int p, Game *game);
-static bool linda_sche_ready0(int p, Game *game);
-static bool linda_sche_ready1(int p, Game *game);
-static bool linda_sche_main_init(int p, Game *game);
-//static bool linda_sche_main_init(int p, Game *game);
-static bool linda_sche_main_ready0(int p, Game *game);
-static bool linda_sche_main_ready1(int p, Game *game);
-static bool linda_sche_main(int p, Game *game);
+// static を付ã‘ã¦ãŸã‚‰waringãŒå‡ºã‚‹ã‹ã‚‰æ¶ˆã—ãŸã‘ã©ã€å•é¡Œã‚る?:miya
+void linda_set_schedule(void *func, int mode, Game *game);
+bool linda_sche_wait0(int p, Game *game);
+bool linda_sche_wait1(int p, Game *game);
+bool linda_sche_wait_ready0(int p, Game *game);
+bool linda_sche_wait_ready1(int p, Game *game);
+bool linda_sche_opening0(int p, Game *game);
+bool linda_sche_opening1(int p, Game *game);
+bool linda_sche_select_car0(int p, Game *game);
+bool linda_sche_select_car1(int p, Game *game);
+bool linda_sche_select_course0(int p, Game *game);
+bool linda_sche_select_course1(int p, Game *game);
+bool linda_sche_ready0(int p, Game *game);
+bool linda_sche_ready1(int p, Game *game);
+bool linda_sche_main_init(int p, Game *game);
+bool linda_sche_main_init(int p, Game *game);
+bool linda_sche_main_ready0(int p, Game *game);
+bool linda_sche_main_ready1(int p, Game *game);
+bool linda_sche_main(int p, Game *game);
 
 int linda_int(Game *game);
 
+// schedule.cã§ä½¿ç”¨ã—ã¦ã‚‹
+void linda_env_init( void );
+
+
+
 extern void psx_id(unsigned char *);
 extern void psx_linda(unsigned char *);
 extern void psx_sync(unsigned char *);
--- a/main.c	Thu May 26 18:13:40 2011 +0900
+++ b/main.c	Thu Jun 02 14:56:11 2011 +0900
@@ -8,13 +8,12 @@
 int
 main(int argc, char* argv[])
 {
-  /*main_fp = fopen("/dev/stdout", "w");
-    if (!main_fp) {
-	perror("main");
-	}*/
+  main_fp = fopen("/dev/stdout", "w");
+  if (!main_fp) {
+    perror("main");
+  }
 
-    game_main();
-//    ps2util_graphic_Finish();
-    return 0;
+  game_main();
+  ps2util_graphic_Finish();
+  return 0;
 }
-
--- a/mytype.c	Thu May 26 18:13:40 2011 +0900
+++ b/mytype.c	Thu Jun 02 14:56:11 2011 +0900
@@ -1,11 +1,10 @@
-/*
- * $Id$
- */
+/*  mytype.c */
+
 #include <time.h>
 #include <stdio.h>
 #include <stdbool.h>
-//#include "libps2.h"
-//#include "ps2util.h"
+#include "libps2.h"
+#include "ps2util.h"
 #include "mytype.h"
 
 static clock_t start;
@@ -14,7 +13,7 @@
 void
 wait_init()
 {
-    start = clock();
+  start = clock();
 }
 
 /*
@@ -24,32 +23,32 @@
 bool
 wait(double time)
 {
-    clock_t t;
-    double a;
+  clock_t t;
+  double a;
 
-    t = clock();
-    a = (t-start)/(double)CLOCKS_PER_SEC;
-    if (a > time) {
-	return true;
-    }
+  t = clock();
+  a = (t-start)/(double)CLOCKS_PER_SEC;
+  if (a > time) {
+    return true;
+  }
 
-    return false;
+  return false;
 }
 
 void
 time_RaceStart()
 {
-    race_start = clock();
+  race_start = clock();
 }
 
 double
 time_RaceTime()
 {
-    clock_t t;
-    double a;
+  clock_t t;
+  double a;
 
-    t = clock();
-    a = (t-race_start)/(double)CLOCKS_PER_SEC;
+  t = clock();
+  a = (t-race_start)/(double)CLOCKS_PER_SEC;
 
-    return a;
+  return a;
 }
--- a/mytype.h	Thu May 26 18:13:40 2011 +0900
+++ b/mytype.h	Thu Jun 02 14:56:11 2011 +0900
@@ -1,3 +1,4 @@
+/* mytype.h */
 #include<math.h>
 
 #define RADIAN(d) ((d)*M_PI/180.0)
@@ -5,3 +6,5 @@
 #define NORM(v) (float)(sqrt((v)[0]*(v)[0] + (v)[1]*(v)[1] + (v)[2]*(v)[2]))
 
 enum { X_AXIS=0, Y_AXIS=1, Z_AXIS=2, W_AXIS=3, };
+
+void wait_init( void );
--- a/ps2util.c	Thu May 26 18:13:40 2011 +0900
+++ b/ps2util.c	Thu Jun 02 14:56:11 2011 +0900
@@ -1,9 +1,12 @@
+/* ps2util.c */
+
+#include <string.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <math.h> 
 #include "libps2.h"
 #include "ps2util.h"
 
-
 /*
   ãŸã¶ã‚“ã€æœ¬å½“ã¯èª­ã¿è¾¼ã‚“ã  xml file ã‹ã‚‰æƒ…報をå–å¾—ã™ã‚‹ã¨ã‹ãã‚“ãªã‚“ã ã¨æ€ã†
   ã©ã‚“ãªå‡¦ç†ã‹åˆ†ã‹ã‚‰ãªã„ã®ã§ã€ã¨ã‚Šã‚ãˆãšã€åˆæœŸåŒ–ã—ã¦ã„る。
@@ -12,6 +15,7 @@
 OBJECT *ps2util_obj_Create_fromXML(char *filename)
 {
   OBJECT *body;
+
   /*
   body->xyz = {0,0,0,0};
   body->angle = {0,0,0,0};
@@ -19,6 +23,7 @@
   body->*name = filename;
   body->*free_me = NULL;
   */
+  
   return body;
 }
 
@@ -29,10 +34,10 @@
   //none
 }
 
-
+// ベクトル v1 をベクトル v2 ã«ã‚³ãƒ”ーã™ã‚‹
 void ps2_vu0_copy_vector(FVECTOR directionA, FVECTOR directionB)
 {
-  //none
+  memcpy(directionA, directionB, sizeof(FVECTOR));
 }
 
 
@@ -58,7 +63,7 @@
   return -1;
 }
 
-int ps2util_sprite_Create(ps2utilSprite sp, TEXTURE *sprite_tex)
+int ps2util_sprite_Create(ps2utilSprite *Sp, TEXTURE *sprite_tex)
 {
   return -1;
 }
@@ -69,6 +74,7 @@
   //none
 }
 
+// 与ãˆã‚‰ã‚ŒãŸè¡Œåˆ—ã‚’å˜ä½è¡Œåˆ—ã«å¤‰æ›ã™ã‚‹
 void ps2_vu0_unit_matrix(FMATRIX m)
 {
   m[0][1] = m[0][2] = m[0][3] = 0;
@@ -78,27 +84,35 @@
   m[0][0] = m[1][1] = m[2][2] = m[3][3] = 1.0;
 }
 
+/*
+Y軸を中心ã¨ã—ãŸè¡Œåˆ—ã®å›žè»¢ 
+回転角 rx より X 軸を中心ã¨ã—ãŸå›žè»¢ãƒžãƒˆãƒªãƒƒã‚¯ã‚¹ã‚’求ã‚ã¦ã€ãƒžãƒˆãƒªãƒƒã‚¯ã‚¹ m1 ã«å·¦å´ã‹ã‚‰ä¹—ç®—ã—ã¦ã€ãã®çµæžœã‚’マトリックス m0 ã«ä¸Žãˆã‚‹ã€‚ 
+X 軸ãŸã‚™ã‘ã¦ã‚™ãªã Y 軸ã€Z 軸を中心ã¨ã—ãŸé–¢æ•°ã‚‚ã‚る。ã¾ãŸ3ã¤ã„ã£ã‚“ã«å›žè»¢ã•ã›ã‚‹é–¢æ•°ã‚‚ã‚る。
+*/
 void ps2_vu0_rot_matrix_y(FMATRIX result, FMATRIX m, float radian)
 {
-  FMATRIX rot;
+  // 回転行列を作ã£ã¦ã‹ã‘ã¦ã‚„ã‚Œã°è‰¯ã„
+
   m[0][1] = m[0][2] = m[0][3] = 0;
   m[1][0] = m[1][2] = m[1][3] = 0;
   m[2][0] = m[2][1] = m[2][3] = 0;
   m[3][0] = m[3][1] = m[3][2] = 0;
   m[0][0] = m[1][1] = m[2][2] = m[3][3] = 1.0;
 
-  m[0][0] = fsign(radian);
-  m[2][2] = fsign(radian);
-  m[0][2] = -fcos(radian);
-  m[2][0] = fcos(radian);
-
-  FMATRIX m1 = m;
+  
+  m[0][0] = sinf(radian);
+  m[2][2] = sinf(radian);
+  m[0][2] = -cosf(radian);
+  m[2][0] = cosf(radian);
+  
+  FMATRIX m1;// = m;
+  memcpy(&m1, m, sizeof(FMATRIX));
 
   ps2_vu0_mul_matrix(result, m1, m);
-  
 }
 
-
+// ベクトルã®è¨ˆç®—
+// マトリックス m ã«ãƒ˜ã‚™ã‚¯ãƒˆãƒ«  ã‚’å³ã‹ã‚‰ä¹—ç®—ã—㦠result ã«ä¸Žãˆã‚‹
 void ps2_vu0_apply_matrix(FVECTOR result, FMATRIX m, FVECTOR v)
 {
   result[0] = m[0][0] * v[0] + m[0][1] * v[1] + m[0][2] * v[2] + m[0][3] * v[3] ;
@@ -116,12 +130,17 @@
   mov[3] = car_direction[3];
 }
 
-void ps2_vu0_add_vector(FVECTOR car_location1, FVECTOR car_location2,FVECTOR mov)
+// ベクトル v1 ã®å„è¦ç´ ã¨ãƒ™ã‚¯ãƒˆãƒ« v2 ã®å„è¦ç´ ã‚’å„々加算ã—ã¦v0ã«ä¸Žãˆã‚‹
+// v0 = v1+v2
+void ps2_vu0_add_vector(FVECTOR result, FVECTOR v0, FVECTOR v1)
 {
-  //none
+  result[0] = v0[0] + v1[0];
+  result[1] = v0[1] + v1[1];
+  result[2] = v0[2] + v1[2];
+  result[3] = v0[3] + v1[3];
 }
 
-
+// 外ç©
 void ps2_vu0_outer_product(FVECTOR result, FVECTOR v0, FVECTOR v1)
 {
   result[0] = v0[1] * v1[2] - v0[2] * v1[1] ;
@@ -130,27 +149,40 @@
   result[3] = 1;
 }
 
-
+// 内ç©
 float ps2_vu0_inner_product(FVECTOR v0, FVECTOR v1)
 {
   return v0[0] * v1[0] + v0[1] * v1[1] + v0[2] * v1[2];
 }
 
 
-void ps2_vu0_mul_matrix(FMATRIX pose1, FMATRIX yrot, FMATRIX pose2)
+void ps2_vu0_mul_matrix(FMATRIX result, FMATRIX m0, FMATRIX m1)
 {
-  //none
-}
+  result[0][0] = m0[0][0] * m1[0][0] + m0[0][1] * m1[1][0] + m0[0][2] * m1[2][0] + m0[0][3] * m1[3][0];
+  result[0][1] = m0[0][0] * m1[0][1] + m0[0][1] * m1[1][1] + m0[0][2] * m1[2][1] + m0[0][3] * m1[3][1];
+  result[0][2] = m0[0][0] * m1[0][2] + m0[0][1] * m1[1][2] + m0[0][2] * m1[2][2] + m0[0][3] * m1[3][2];
+  result[0][3] = m0[0][0] * m1[0][3] + m0[0][1] * m1[1][3] + m0[0][2] * m1[2][3] + m0[0][3] * m1[3][3];
+
+  result[1][0] = m0[1][0] * m1[0][0] + m0[1][1] * m1[1][0] + m0[1][2] * m1[2][0] + m0[1][3] * m1[3][0];
+  result[1][1] = m0[1][0] * m1[0][1] + m0[1][1] * m1[1][1] + m0[1][2] * m1[2][1] + m0[1][3] * m1[3][1];
+  result[1][2] = m0[1][0] * m1[0][2] + m0[1][1] * m1[1][2] + m0[1][2] * m1[2][2] + m0[1][3] * m1[3][2];
+  result[1][3] = m0[1][0] * m1[0][3] + m0[1][1] * m1[1][3] + m0[1][2] * m1[2][3] + m0[1][3] * m1[3][3];
 
-void ps2_vu0_copy_matrix(FMATRIX from, FMATRIX to)
-{
-  to = from;
+  result[2][0] = m0[2][0] * m1[0][0] + m0[2][1] * m1[1][0] + m0[2][2] * m1[2][0] + m0[2][3] * m1[3][0];
+  result[2][1] = m0[2][0] * m1[0][1] + m0[2][1] * m1[1][1] + m0[2][2] * m1[2][1] + m0[2][3] * m1[3][1];
+  result[2][2] = m0[2][0] * m1[0][2] + m0[2][1] * m1[1][2] + m0[2][2] * m1[2][2] + m0[2][3] * m1[3][2];
+  result[2][3] = m0[2][0] * m1[0][3] + m0[2][1] * m1[1][3] + m0[2][2] * m1[2][3] + m0[2][3] * m1[3][3];
+
+  result[3][0] = m0[3][0] * m1[0][0] + m0[3][1] * m1[1][0] + m0[3][2] * m1[2][0] + m0[3][3] * m1[3][0];
+  result[3][1] = m0[3][0] * m1[0][1] + m0[3][1] * m1[1][1] + m0[3][2] * m1[2][1] + m0[3][3] * m1[3][1];
+  result[3][2] = m0[3][0] * m1[0][2] + m0[3][1] * m1[1][2] + m0[3][2] * m1[2][2] + m0[3][3] * m1[3][2];
+  result[3][3] = m0[3][0] * m1[0][3] + m0[3][1] * m1[1][3] + m0[3][2] * m1[2][3] + m0[3][3] * m1[3][3];
 }
 
 
-void ps2util_tex_Exclude(TEXTURE* t)
+void ps2_vu0_copy_matrix(FMATRIX transfer, FMATRIX pose)
 {
-  //none
+  memcpy(transfer, pose, sizeof(FMATRIX));
 }
 
 void ps2util_obj_Free(OBJECT* obj)
@@ -160,17 +192,20 @@
 
 
 
-void ps2_vu0_sub_vector(FVECTOR o0, FVECTOR p, FVECTOR p0)
+void ps2_vu0_sub_vector(FVECTOR result, FVECTOR v0, FVECTOR v1)
 {
-  //none
+  result[0] = v0[0] - v1[0];
+  result[1] = v0[1] - v1[1];
+  result[2] = v0[2] - v1[2];
+  result[3] = v0[3] - v1[3];
 }
 
 
 
-
 void ps2_vu0_normalize(FVECTOR result, FVECTOR v)
 {
-  float d = fsqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]);
+  // 大ãã•ã§å‰²ã£ã¦ã‚‹ã ã‘ã£ã¦
+  float d;// = fsqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]);
   result[0] = v[0] / d;
   result[1] = v[1] / d;
   result[2] = v[2] / d;
@@ -190,12 +225,6 @@
 }
 
 
-void gSprite_Init()
-{
-  //none
-}
-
-
 void  ps2util_sprite_Destroy(ps2utilSprite *title_sprite )
 {
   //none
@@ -234,24 +263,22 @@
 /*
   ps2 ä¾å­˜é–¢ä¿‚ã® sprite.c より引用。
 */
+#define SPRITE_HAS_4VERTEXIS 4
+
+#define PS2_GS_XYZ3 1 // ãªã«ã‹ã‚ã‹ã‚‰ã‚“定数ã ã‹ã‚‰é©å½“ã«ä½œã‚Šã¾ã—ãŸ
+
 inline void
 sprite_disappear( SPRITE* sprite )
 {
-  
   int i;
   GsSpritePacket* packet = sprite->gs_packet;
   for (i=0; i<SPRITE_HAS_4VERTEXIS; i++)
     packet->primData[i].xyz_addr = PS2_GS_XYZ3;
-  
 }
 
 
 
 
-
-
-
-
 /*
   ã‹ã‚‰ã®é–¢æ•°
   ps2 ä¾å­˜é–¢ä¿‚ã«ã‚ã£ãŸã‘ã©ã€( name_dictionary.c ) ã®ä¸­ã®ã‚‚ã®
@@ -326,3 +353,29 @@
 
   return(0);
 }
+
+
+
+// miya
+void ps2util_tex_Exclude( TEXTURE* t )
+{
+  char *miyahira;
+  miyahira = "ãªã«ã“ã®é–¢æ•°ï¼Ÿ";
+}
+
+void ps2util_sprite_Draw()
+{
+  printf("ps2util_sprite_Draw()\n");
+}
+
+void ps2util_graphic_Finish( void )
+{
+  printf("ps2util_graphic_Finish()\n");
+}
+
+
+// title.cã«æ›¸ã„ã¦ãŸ
+void ps2util_sprite_Use_alpha( ps2utilSprite *title )
+{
+  printf("ps2util_sprite_Use_alpha()\n");
+}
--- a/ps2util.h	Thu May 26 18:13:40 2011 +0900
+++ b/ps2util.h	Thu Jun 02 14:56:11 2011 +0900
@@ -1,3 +1,9 @@
+/* ps2util.h */
+
+// é©å½“ã«æ•°å€¤å½“ã¦:miya 
+#define JOYPAD_1 1
+
+
 #ifndef PS2UTIL_H
 #define PS2UTIL_H
 
@@ -7,7 +13,7 @@
 */
 #define ALIGN_16BYTE 64
 
-#include "field.h"
+//#include "field.h"
 #include "libps2.h"
 #include "col.h"
 
@@ -32,26 +38,32 @@
 */
 void ps2util_obj_Set_effect(OBJECT*, int);
 
-void ps2_vu0_copy_vector(FVECTOR , FVECTOR);
+void ps2_vu0_copy_vector( FVECTOR a,  FVECTOR b);
 void ps2util_obj_Renew_transMatrix(OBJECT*);
 
 TEXTURE* read_png_file(char *texname);
 int ps2util_tex_Set(TEXTURE*);
 void ps2util_obj_Set_texture(OBJECT*, TEXTURE*);
-void ps2_vu0_unit_matrix(FMATRIX);
-void ps2_vu0_rot_matrix_y(FMATRIX , FMATRIX , float);
+void ps2_vu0_unit_matrix( FMATRIX );
+void ps2_vu0_rot_matrix_y( FMATRIX , FMATRIX , float);
+
+// マトリックス m0 ã«ãƒ˜ã‚™ã‚¯ãƒˆãƒ« v1 ã‚’å³ã‹ã‚‰ä¹—ç®—ã—㦠v0 ã«ä¸Žãˆã‚‹
+//void ps2_vu0_apply_matrix(ps2_vu0_fvector v0, ps2_vu0_fmatrix m0, ps2_vu0_fvector v1)
 void ps2_vu0_apply_matrix(FVECTOR , FMATRIX , FVECTOR );
 
-void ps2_vu0_scale_vector(FVECTOR , FVECTOR , float );
+void ps2_vu0_scale_vector( FVECTOR , FVECTOR , float );
 void ps2_vu0_add_vector(FVECTOR , FVECTOR , FVECTOR );
 
 void ps2_vu0_outer_product(FVECTOR rotaxis, FVECTOR car_vertical, FVECTOR yd);
 float ps2_vu0_inner_product(FVECTOR yd, FVECTOR car_vertical);
 
 void ps2_vu0_mul_matrix(FMATRIX pose1, FMATRIX yrot, FMATRIX pose2);
-void ps2_vu0_copy_matrix(FMATRIX car_body_transfer, FMATRIX pose);
 
-void ps2util_tex_Exclude(TEXTURE* t);
+//void ps2_vu0_copy_matrix(FMATRIX *car_body_transfer, FMATRIX pose);
+void ps2_vu0_copy_matrix(FMATRIX transfer, FMATRIX pose); // 一個目ã®å¼•æ•°ãŒãƒã‚¤ãƒ³ã‚¿ã ã¨ã‚³ãƒ³ãƒ‘イル通らãªã‹ã£ãŸã€‚ãªã‚“ã§ï¼Ÿ
+
+
+void ps2util_tex_Exclude( TEXTURE* t );
 
 
 void free_texture(TEXTURE *tex);
@@ -66,8 +78,6 @@
 
 void ps2util_obj_Draw(OBJECT *object);
 
-void gSprite_Init();
-
 void delete_name_dictionary(const char *string);
 
 void ps2util_sprite_Destroy(ps2utilSprite *title_sprite);
@@ -79,17 +89,21 @@
 	unsigned short sptable_tx, unsigned short sptable_ty,
 	unsigned short sptable_tw2, unsigned short sptable_th2,
 	int sprite_prio_foreground);
+
 void ps2util_sprite_Request(ps2utilSprite *p);
-
 int ps2util_sprite_Create(ps2utilSprite *sp, TEXTURE *sprite_tex);
 void ps2util_sprite_Unuse_alpha(ps2utilSprite *sp);
 void ps2util_graphic_Init();
 
+void ps2util_sprite_Draw();
+
 //ps2 ä¾å­˜é–¢ä¿‚ã® sprite.c より
 inline void sprite_disappear( SPRITE *sprite );
 
-
+void ps2util_graphic_Finish( void );
 
-
+// title.cã«æ›¸ã„ã¦ãŸ
+void ps2util_sprite_Use_alpha( ps2utilSprite *title );
 
 #endif
+
--- a/schedule.c	Thu May 26 18:13:40 2011 +0900
+++ b/schedule.c	Thu Jun 02 14:56:11 2011 +0900
@@ -1,3 +1,5 @@
+/* schedule.c */
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -12,13 +14,16 @@
 #include "controler.h"
 #include "camera.h"
 #include "carNode.h"
-//#include "light.h"
+#include "light.h"
 #include "title_scene.h"
 #include "game_time.h"
 #include "schedule.h"
 #include "game.h"
 
+#include "mytype.h"
+#include "linda.h"
 
+#include "sjoy.h"
 
 #ifdef LINDA
 bool linda_update(int p, Game *game);
@@ -32,11 +37,14 @@
 #define SP_SEL_CAR    50
 #define SP_SEL_COURSE 80
 
+// controler.cより
+extern SGO_PAD pad;
+
 
 static void set_schedule(Game *game);
 static void sche_game_init(Game *game);
-//static void sche_game_wait(Game *game);
-//static void sche_game_wait_ready(Game *game);
+static void sche_game_wait(Game *game);
+static void sche_game_wait_ready(Game *game);
 static void sche_game_opening(Game *game);
 static void sche_game_select_car(Game *game);
 static void sche_game_select_course(Game *game);
@@ -44,75 +52,82 @@
 static void sche_game_main_init(Game *game);
 static void sche_game_main_ready(Game *game);
 static void sche_game_main(Game *game);
-//static void sche_game_main_pause(Game *game);
+static void sche_game_main_pause(Game *game);
 static void sche_game_main_goal(Game *game);
 static void sche_game_main_finish(Game *game);
 static void sche_game_main_finish2(Game *game);
 
 
 
-
 /* timer */
 static int start_time,time_count;
 static int RUNNIG=0;
 char raptime[10];
 
 static int ranking = 0;
-//static LIGHT l;
-
+static LIGHT l;
 static int i=0;
 
 static void (*sche_func_assumption)();
 static void (*sche_func)() = &sche_game_init;
 static int change_state = 0;
+
+// schedule.cã§ä½¿ç”¨ã—ã¦ã‚‹
+void linda_env_init( void );
+
 static void
 set_schedule_assumption(void *_func)
 {
-    sche_func_assumption = _func;
-    change_state = 1;
+  sche_func_assumption = _func;
+  change_state = 1;
 }
 
 static void
 unset_schedule()
 {
-    change_state = 0;
+  change_state = 0;
 }
 
 static void
 set_schedule(Game *game)
 {
-    sche_func = sche_func_assumption;
-    change_state = 0;
+  sche_func = sche_func_assumption;
+  change_state = 0;
 }
 
 static void
 graphic_init()
 {
-    gSprite_Init(); // グラフィック関連ã®åˆæœŸåŒ–
-    gFont_Init();   // フォント関連ã®åˆæœŸåŒ–
+  gSprite_Init(); // グラフィック関連ã®åˆæœŸåŒ–
+  gFont_Init();   // フォント関連ã®åˆæœŸåŒ–
 }
 
-static void
-play_init(Game *game)
+static void 
+play_init( Game *game )
 {
-    game->jiki = car_init(game->car_id);
-    carNode_append(game->jiki);
-    field_init(game->course_id);
+  game->jiki = car_init(game->car_id);
+  carNode_append(game->jiki);
+  field_init(game->course_id);
 }
 
-static void
-game_env_init(Game *game)
+// é©å½“ã«è‡ªä½œ :miya
+void linda_env_init( void )
+{
+  printf("hogehoge");
+}
+
+static void game_env_init ( Game *game )
 {
-    game->car_id      = 1;
-    game->course_id   = 1;
-    game->camera_type = 0;
-    game->rap         = 1;
-    game->jiki        = NULL;
+  game->car_id      = 1;
+  game->course_id   = 1;
+  game->camera_type = 0;
+  game->rap         = 1;
+  game->jiki        = NULL;
 
-    ranking = 0;
+  ranking = 0;
 
-    wait_init();
-
+  wait_init();
+  linda_env_init();
 }
 
 
@@ -120,15 +135,15 @@
 void
 sche_game_init(Game *game)
 {
-    game_env_init(game);
-    graphic_init();
-    camera_init();
+  game_env_init(game);
+  graphic_init();
+  camera_init();
 
 #ifdef LINDA
-    //sche_func = &sche_game_wait;
-    //set_schedule_assumption(sche_game_wait);
+  sche_func = &sche_game_wait;
+  set_schedule_assumption(sche_game_wait);
 #else
-    set_schedule_assumption(sche_game_opening);
+  set_schedule_assumption(sche_game_opening);
 #endif
 }
 
@@ -138,14 +153,15 @@
  * ・・・ã ã£ãŸã‚“ã ã‘ã©ã€ç¾åœ¨ linda を切ã£ã¦ã„ã‚‹ãŸã‚ worning ãŒå‡ºã‚‹ã€‚
  * ã®ã§ cut ã™ã‚‹ã€‚
  */
-/*
+
+
 static void
 sche_game_wait(Game *game)
 {
-    gFont_SetString("WAITING...", 200, 100);
-    set_schedule_assumption(sche_game_wait_ready);
+  gFont_SetString("WAITING...", 200, 100);
+  set_schedule_assumption(sche_game_wait_ready);
 }
-*/
+
 
 
 /**
@@ -153,115 +169,115 @@
  * 全ユーザã®æŽ¥ç¶šã‚’確èªã—ãŸã‚‰å‘¼ã³å‡ºã™
  * ã“ã„ã¤ã‚‚ã€linda ãŒãªã„ã®ã§ cut
  */
-/*
+
 static void
 sche_game_wait_ready(Game *game)
 {
-    gFont_SetString("CONNECT OK!!", 170, 300);
-    if (game->play_id == 1) {
-	gFont_SetString(" PUSH START ", 170, 400);
-	//if (pad.st != 1) { goto WAIT_READY; }
-    }
+  gFont_SetString("CONNECT OK!!", 170, 300);
+  if (game->play_id == 1) {
+    gFont_SetString(" PUSH START ", 170, 400);
+    if (pad.st != 1) { goto WAIT_READY; }
+  }
 
-    set_schedule_assumption(sche_game_opening);
+  set_schedule_assumption(sche_game_opening);
     
-    //WAIT_READY:
-    return;
+ WAIT_READY:
+  return;
 }
-*/
+
 
 void
 sche_game_opening(Game *game)
 {
-    static int blink_count = 0;
-    if (game->play_id==1){
-	if (blink_count < 35) {
-	    gFont_SetString("PUSH START !!", 170, 380);
-	}
-	blink_count = (blink_count > 70) ? 0 : blink_count + 1;
+  static int blink_count = 0;
+  if (game->play_id==1){
+    if (blink_count < 35) {
+      gFont_SetString("PUSH START !!", 170, 380);
+    }
+    blink_count = (blink_count > 70) ? 0 : blink_count + 1;
 
-	//	if (pad.st != 1) { goto OPENING; }
-    }
+    if (pad.st != 1) { goto OPENING; }
+  }
 
     
-	set_schedule_assumption(sche_game_select_car);
+  set_schedule_assumption(sche_game_select_car);
 
-	//OPENING:
-    return;
+ OPENING:
+  return;
+
 
-    /*
-    if (game->play_id == 1) {
-	if (title_scene() < 0){
-	}
-    } else if (game->play_id == 2) {
-	if (i==0){
-	    title_init_call();
-	    i=1;
-	}
+  if (game->play_id == 1) {
+    if (title_scene() < 0){
     }
-    */
+  } else if (game->play_id == 2) {
+    if (i==0){
+      title_init_call();
+      i=1;
+    }
+  }
+
+
 }
 
 void
 sche_game_select_car(Game *game)
 {
-    if (i==1){
-	title_finish_call();
-	i=2;
-    }
-    //    gSprite_PutSpriteEx(SP_SEL_CAR+game->car_id, 190, 200, 1.5, 1.5);
-    //    gSprite_PutSprite(24, 460, 300);
-    //    gSprite_PutSprite(25, 120, 300);
-    //    gFont_SetString("SELECT CAR", 180, 50);
-    /*
-    if (pad.right == 1) {
-	game->car_id =
-	        (game->car_id > MAXCAR-1) ? 1 : game->car_id + 1
-    }
-    if (pad.left == 1) {
-    	game->car_id =
-		(game->car_id < 2) ? MAXCAR : game->car_id - 1
-    }
+  if (i==1){
+    title_finish_call();
+    i=2;
+  }
+  gSprite_PutSpriteEx(SP_SEL_CAR+game->car_id, 190, 200, 1.5, 1.5);
+  gSprite_PutSprite(24, 460, 300);
+  gSprite_PutSprite(25, 120, 300);
+  gFont_SetString("SELECT CAR", 180, 50);
+ 
+  if (pad.right == 1) {
+    game->car_id =
+      (game->car_id > MAXCAR-1) ? 1 : game->car_id + 1;
+  }
+  if (pad.left == 1) {
+    game->car_id =
+      (game->car_id < 2) ? MAXCAR : game->car_id - 1;
+  }
 
-    if (game->play_id == 1)
-	  if (pad.circle != 1) { goto SELECT_CAR; }
-    */
+  if (game->play_id == 1)
+    if (pad.circle != 1) { goto SELECT_CAR; }
+ 
     
-    set_schedule_assumption(sche_game_select_course);
+  set_schedule_assumption(sche_game_select_course);
     
-    //SELECT_CAR:
-    return;
+ SELECT_CAR:
+  return;
 }
 
 void
 sche_game_select_course(Game *game)
 {
-  //    gSprite_PutSpriteEx(SP_SEL_COURSE+game->course_id, 190, 200, 1.7, 1.8);
-  //    gSprite_PutSprite(24, 460, 300);
-  //    gSprite_PutSprite(25, 120, 300);
+  gSprite_PutSpriteEx(SP_SEL_COURSE+game->course_id, 190, 200, 1.7, 1.8);
+  gSprite_PutSprite(24, 460, 300);
+  gSprite_PutSprite(25, 120, 300);
 
-  //    gFont_SetString("SELECT COURSE", 150, 50);
+  gFont_SetString("SELECT COURSE", 150, 50);
 
-    if (game->play_id == 1) {
-      /*	if (pad.right == 1) {
-	    game->course_id =
-		(game->course_id > MAXFIELD-1) ? 1 : game->course_id + 1;
-	    goto SELECT_COURSE;
-	}
-	if (pad.left == 1) {
-	    game->course_id =
-		(game->course_id < 2) ? MAXFIELD : game->course_id - 1;
-	    goto SELECT_COURSE;
-	}
-
-	if (pad.circle != 1) { goto SELECT_COURSE; }
-      */
+  if (game->play_id == 1) {
+    if (pad.right == 1) {
+      game->course_id =
+	(game->course_id > MAXFIELD-1) ? 1 : game->course_id + 1;
+      goto SELECT_COURSE;
+    }
+    if (pad.left == 1) {
+      game->course_id =
+	(game->course_id < 2) ? MAXFIELD : game->course_id - 1;
+      goto SELECT_COURSE;
     }
 
-    set_schedule_assumption(sche_game_ready);
+    if (pad.circle != 1) { goto SELECT_COURSE; }
+  }
 
-    //SELECT_COURSE:
-    return;
+  set_schedule_assumption(sche_game_ready);
+
+ SELECT_COURSE:
+  return;
 
 }
 
@@ -270,212 +286,226 @@
 {
   static int blink_count = 0;//
 
-    gSprite_PutSprite(27+game->play_id,265,10);
-    gSprite_PutSpriteEx(SP_SEL_CAR+game->car_id, 50, 120, 1.5, 1.5);
-    gSprite_PutSpriteEx(SP_SEL_COURSE+game->course_id, 340, 120, 1.7, 1.8);
+  gSprite_PutSprite(27+game->play_id,265,10);
+  gSprite_PutSpriteEx(SP_SEL_CAR+game->car_id, 50, 120, 1.5, 1.5);
+  gSprite_PutSpriteEx(SP_SEL_COURSE+game->course_id, 340, 120, 1.7, 1.8);
 	
-    /* 点滅 */
-    if (blink_count < 35) {
-	gFont_SetString("GAME START !!", 170, 380);
-    }
-    blink_count = (blink_count > 70) ? 0 : blink_count + 1;
+  /* 点滅 */
+  if (blink_count < 35) {
+    gFont_SetString("GAME START !!", 170, 380);
+  }
+  blink_count = (blink_count > 70) ? 0 : blink_count + 1;
 
-    set_schedule_assumption(sche_game_main_init);
+  set_schedule_assumption(sche_game_main_init);
+
 
-/*
-    if (pad.st == 1) {
-	set_schedule_assumption(sche_game_main_init);
-    }
-    if (pad.cross > 0) {
-	set_schedule_assumption(sche_game_select_car);
-    }
-*/
+  if (pad.st == 1) {
+    set_schedule_assumption(sche_game_main_init);
+  }
+  if (pad.cross > 0) {
+    set_schedule_assumption(sche_game_select_car);
+  }
+
 }
 
 void
 sche_game_main_init(Game *game)
 {
-    if (!game->jiki)
-	play_init(game);
-    RUNNIG=0;
+  if (!game->jiki)
+    play_init(game);
+  RUNNIG=0;
 
-    set_schedule_assumption(sche_game_main_ready);
+  set_schedule_assumption(sche_game_main_ready);
 }
 
 static void
 sche_game_main_ready(Game *game)
 {
-    gFont_SetString("Loading....", 180, 100);
-    set_schedule_assumption(sche_game_main);
+  gFont_SetString("Loading....", 180, 100);
+  set_schedule_assumption(sche_game_main);
 }
 
 static void
 sche_game_main(Game *game)
 {
+  /** begin: dispaly RAP TIME **/
+  if(RUNNIG==0){
+    start_time = game_time_get_msec();
+    RUNNIG=1;
+  }
 
-    /** begin: dispaly RAP TIME **/
-    if(RUNNIG==0){
-	start_time = game_time_get_msec();
-	RUNNIG=1;
-    }
+  time_count = game_time_get_msec() - start_time;
+  game_time_set_raptime(raptime,time_count);
+  gFont_SetString("TIME",300,20);
+  gFont_SetString(raptime,400,20);
+  /** end: dispaly RAP TIME **/
 
-    time_count = game_time_get_msec() - start_time;
-    game_time_set_raptime(raptime,time_count);
-    gFont_SetString("TIME",300,20);
-    gFont_SetString(raptime,400,20);
-    /** end: dispaly RAP TIME **/
-      
-    //    light_init(&l);
-    //    set_light(&l);
-     
-    car_update(game->jiki);
-    field_update(game->jiki);
-        camera_update(game,game->jiki->body->transfer);
-    //    carNode_draw();
+  // light_init 㨠init_lightã®æ›¸ãé–“é•ãˆï¼Ÿ
+  init_light(&l);
+  set_light(&l);
+    
+  car_id_update(game, game->jiki);
 
-    gFont_SetStringInt(game->rap, 50, 100);
+  field_update(game->jiki);
+  camera_update(game,game->jiki->body->transfer);
+  carNode_draw();
+
+  gFont_SetStringInt(game->rap, 50, 100);
 
-    /* スピードメーター */
-    gSprite_DefSprite(23, 1, 1,(int)(106.0*(game->jiki->speed/game->jiki->speed_max)), 34);
-    gSprite_PutSprite(23, 400, 400);
-    /* km/h */
-    gSprite_PutSprite(26, 470, 350);
-    /* Rap */
-    gSprite_PutSprite(27, 80, 100);
+  /* スピードメーター */
+  gSprite_DefSprite(23, 1, 1,(int)(106.0*(game->jiki->speed/game->jiki->speed_max)), 34);
+  gSprite_PutSprite(23, 400, 400);
+  /* km/h */
+  gSprite_PutSprite(26, 470, 350);
+  /* Rap */
+  gSprite_PutSprite(27, 80, 100);
 
-    if (game->rap > MAXRAP) {
-	ranking = 1;
-	set_schedule_assumption(sche_game_main_goal);
-    }
+  if (game->rap > MAXRAP) {
+    ranking = 1;
+    set_schedule_assumption(sche_game_main_goal);
+  }
 
-    gFont_SetStringInt((int)(100.0*game->jiki->speed), 380, 350);
+  gFont_SetStringInt((int)(100.0*game->jiki->speed), 380, 350);
 
-    /*
-    if ((pad.right > 0) && ((game->jiki->speed != 0) || (pad.circle > 0))) {
-	car_swerve(game->jiki, 1);
-    }
-    if ((pad.left > 0) && ((game->jiki->speed != 0) || (pad.circle > 0))) {
-	car_swerve(game->jiki, -1);
-    }
-    if (pad.circle > 0) {
-	car_accelerate(game->jiki, 1);
-    }
-    if (pad.cross > 0) {
-	car_accelerate(game->jiki, -1);
-    }
+  
+  if ((pad.right > 0) && ((game->jiki->speed != 0) || (pad.circle > 0))) {
+    car_swerve(game->jiki, 1);
+  }
+  if ((pad.left > 0) && ((game->jiki->speed != 0) || (pad.circle > 0))) {
+    car_swerve(game->jiki, -1);
+  }
+  if (pad.circle > 0) {
+    car_accelerate(game->jiki, 1);
+  }
+  if (pad.cross > 0) {
+    car_accelerate(game->jiki, -1);
+  }
 
-    if (pad.r1 == 1) {
-	game->camera_type = !game->camera_type;
-    }
-    if (pad.st == 1) {
-	set_schedule_assumption(sche_game_main_pause);
-    }
-    */
+  if (pad.r1 == 1) {
+    game->camera_type = !game->camera_type;
+  }
+  if (pad.st == 1) {
+    set_schedule_assumption(sche_game_main_pause);
+  }
+
 }
 
-/*
+
 void
 sche_game_main_pause(Game *game)
 {
-    static int select = 0;
+  static int select = 0;
 
-    field_update(game->jiki);
-    //    carNode_draw();
+  field_update(game->jiki);
+  carNode_draw();
       
-    if (game->play_id == 1) {
-	// é¸æŠžãƒžãƒ¼ã‚¯ 
-	gSprite_PutSprite(17, 100, 190+select*100);
+  if (game->play_id == 1) {
+    // é¸æŠžãƒžãƒ¼ã‚¯ 
+    gSprite_PutSprite(17, 100, 190+select*100);
 	
-	gFont_SetString("BACK TO GAME", 200, 200);
-	gFont_SetString("GO TO TITLE",  200, 300);
-    } else {
-	gFont_SetString("Pause ...", 200, 200);
-    }
+    gFont_SetString("BACK TO GAME", 200, 200);
+    gFont_SetString("GO TO TITLE",  200, 300);
+  } else {
+    gFont_SetString("Pause ...", 200, 200);
+  }
 
     
-    if (pad.circle == 1) {
-	if (select == 0) {
-	    set_schedule_assumption(sche_game_main);
-	} else {
-	    set_schedule_assumption(sche_game_main_finish);
-	}
-    } else if (pad.st == 1) {
-	set_schedule_assumption(sche_game_main);
-    } else if (pad.up == 1 || pad.down == 1) {
-	select = !select;
+  if (pad.circle == 1) {
+    if (select == 0) {
+      set_schedule_assumption(sche_game_main);
+    } else {
+      set_schedule_assumption(sche_game_main_finish);
     }
-    
+  } else if (pad.st == 1) {
+    set_schedule_assumption(sche_game_main);
+  } else if (pad.up == 1 || pad.down == 1) {
+    select = !select;
+  }
+   
 }
-*/
+
 
 void
 sche_game_main_goal(Game *game)
 {
-    /** dispaly TOTAL TIME **/ 
-    game_time_set_raptime(raptime,time_count);
+  /** dispaly TOTAL TIME **/ 
+  game_time_set_raptime(raptime,time_count);
 
-    gFont_SetString("TOTAL TIME",150,20);
-    gFont_SetString(raptime,400,20);
-    gFont_SetString("GOAL !!", 220, 150);
+  gFont_SetString("TOTAL TIME",150,20);
+  gFont_SetString(raptime,400,20);
+  gFont_SetString("GOAL !!", 220, 150);
 
 #ifdef LINDA
-    if (ranking == 1)
-	gFont_SetString("You WIN!!", 200, 250);
-    else
-	gFont_SetString("You Lose...", 200, 250);
+  if (ranking == 1)
+    gFont_SetString("You WIN!!", 200, 250);
+  else
+    gFont_SetString("You Lose...", 200, 250);
 #endif
 
-    car_update(game->jiki);
-    field_update(game->jiki);
-    carNode_draw();
-    camera_update(game,game->jiki->body->transfer);
+
+  // 宣言ã§ã¯å¼•æ•°ãŒäºŒã¤ã ã£ãŸã‹ã‚‰ã€ç¬¬ä¸€å¼•æ•°ã« game を入れã¦ã¿ãŸ
+  car_update(game, game->jiki);
+  field_update(game->jiki);
+  carNode_draw();
+  camera_update(game,game->jiki->body->transfer);
     
-    if (true){//pad.st == 1) {
-	set_schedule_assumption(sche_game_main_finish);
-    }
+  if (pad.st == 1) {
+    set_schedule_assumption(sche_game_main_finish);
+  }
     
 }
 
 void
 sche_game_main_finish(Game *game)
 {
-    field_destroy();
-    carNode_destroy();
-    game_env_init(game);
+  field_destroy();
+  carNode_destroy();
+  game_env_init(game);
 
-    set_schedule_assumption(sche_game_main_finish2);
+  set_schedule_assumption(sche_game_main_finish2);
 }
 
 void
 sche_game_main_finish2(Game *game)
 {
-    gFont_SetString("GAME OVER ...", 200, 200);
+  gFont_SetString("GAME OVER ...", 200, 200);
+
 
-    /*
-    if (pad.st == 1) {
-	set_schedule_assumption(sche_game_opening);
-    }
-    */
+  if (pad.st == 1) {
+    set_schedule_assumption(sche_game_opening);
+  }
+
 }
 
+// é©å½“ã«ä½œã‚Šã¾ã—ãŸ
+void wait_sync(Game *game)
+{
+  printf("wait_sync\n");
+}
+
+// é©å½“ã«
+void swap_dbuff()
+{
+  printf("swap_dbuff()\n");
+}
 
 void
 schedule(Game *game)
 {
-    sche_func(game);
-    
-    if (linda_update(change_state, game) == true){
-	set_schedule(game);
-    }
-    else{
-	unset_schedule();
-    }
+  sche_func(game);
+
+  if (linda_update(change_state, game) == true){
+    set_schedule(game);
+  }
+  else{
+    unset_schedule();
+  }
 
-    //    wait_sync(game);
-    //    swap_dbuff();
-    //    sjoy_poll();
+  wait_sync(game);
+  swap_dbuff();
+  sjoy_poll();
     
-    //    ps2util_sprite_Draw();
-    //    gSprite_Draw_Reset();
-    //    gFont_Draw_Reset();
+  ps2util_sprite_Draw();
+  gSprite_Draw_Reset();
+  gFont_Draw_Reset();
 }
--- a/schedule.h	Thu May 26 18:13:40 2011 +0900
+++ b/schedule.h	Thu Jun 02 14:56:11 2011 +0900
@@ -1,47 +1,11 @@
+/* schedule.h */
 #ifndef SCHEDULE_H
 #define SCHEDULE_H
-#include "game.h"
-extern void schedule(Game *game);
-
-/*
-static void set_schedule();
-static void sche_game_init();
-static void sche_game_wait();
-static void sche_game_wait_ready();
-static void sche_game_opening();
-static void sche_game_select_car();
-static void sche_game_select_course();
-static void sche_game_ready();
-static void sche_game_main_init();
-static void sche_game_main_ready();
-static void sche_game_main();
-static void sche_game_main_pause();
-static void sche_game_main_goal();
-static void sche_game_main_finish();
-static void sche_game_main_finish2();
-*/
-/* schedule.c */
-extern void schedule();
-extern Game *game;
-
-
-/* --- car.c --- */
-extern void car_update(CarPtr);
-/* --- carNode.c */
-extern void carNode_append(CarPtr);
-extern void carNode_draw();
-extern void carNode_destroy();
-/* --- fielc.c */
-extern void field_update(CarPtr);
-/* --- mytype.c --- */
-extern void wait_init();
-//extern bool wait(double);
-extern void time_RaceStart();
-extern double time_RaceTime();
-/* --- linda.c --- */
-extern void linda_env_init();
-
-
-
 
 #endif
+
+// game.hã‹ã‚‰ã“ã“ã«ç§»å‹•
+void schedule();
+
+// car.hã‹ã‚‰ã€‚ 
+void car_update( Game *game, CarPtr car );
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sjoy.c	Thu Jun 02 14:56:11 2011 +0900
@@ -0,0 +1,144 @@
+// Copyright(C) 2001 Sony Computer Entertainment Inc. All Rights Reserved.
+//
+// "sjoy.c"
+//
+//
+#include <stdio.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <assert.h>
+
+
+#include "sjoy.h"
+
+#define N_JOY   2
+
+static char *g_devName[N_JOY] = {
+  "/dev/js0",
+  "/dev/js1",
+};
+
+static int g_fd[N_JOY] = {
+  -1, -1,
+};
+
+//static __u32 g_button[N_JOY];   // max 32 buttons per joystick
+//static __s16 g_axis[N_JOY][2];  // max 2 axis per joystick
+
+//----------------------------------------------------------------------
+int sjoy_open(void)
+{
+  int joy;
+        
+  sjoy_close();
+        
+  for (joy = 0; joy < N_JOY; joy++) {
+    assert(g_fd[joy] == -1);
+    g_fd[joy] = open(g_devName[joy], O_RDONLY | O_NONBLOCK);
+    if (g_fd[joy] < 0) {
+      fprintf(stderr, "can't open %s\n", g_devName[joy]);
+      fprintf(stderr,
+	      "You don't have permission, or should load module for joysticks.\n"
+	      "How to load joystick module:\n"
+	      "    # modprobe ps2pad\n");
+      return -1;
+    }
+  }
+        
+  return 0;
+}
+
+//----------------------------------------------------------------------
+int sjoy_close(void)
+{
+  int joy;
+  int fail = 0;
+        
+  for (joy = 0; joy < N_JOY; joy++) {
+    if (g_fd[joy] >= 0) {
+      fail |= close(g_fd[joy]);
+    }
+    g_fd[joy] = -1;
+  }
+        
+  return fail ? -1 : 0;
+}
+
+/* é©å½“ã«è‡ªä½œ:miya */
+struct js_event
+{
+  int type;
+  int number;
+  int value;
+};
+
+int g_button[10];
+int g_axis[10][10];
+
+#define JS_EVENT_INIT 1
+#define JS_EVENT_BUTTON 2
+#define JS_EVENT_AXIS 3
+/* ã“ã“ã¾ã§é©å½“ã«è‡ªä½œ:miya */
+
+
+//----------------------------------------------------------------------
+void sjoy_poll(void)
+{
+  int joy;
+        
+  for (joy = 0; joy < N_JOY; joy++) {
+    if (g_fd[joy] < 0) {
+      continue;
+    }
+    for (; ;) {
+      struct js_event e;
+      int n = read(g_fd[joy], &e, sizeof(e));
+      if (n != sizeof(e)) {
+	break;
+      }
+      switch (e.type & ~JS_EVENT_INIT) {
+      case JS_EVENT_BUTTON:
+	g_button[joy] &= ~(1 << e.number);
+	g_button[joy] |= (e.value << e.number);
+	break;
+                                
+      case JS_EVENT_AXIS:
+	g_axis[joy][e.number] = e.value;
+	break;
+                                
+      default:
+	assert(0);
+	break;
+      }
+    }
+  }
+
+}
+
+//----------------------------------------------------------------------
+int sjoy_get_button(int joy)
+{
+  return g_button[joy];
+}
+
+//----------------------------------------------------------------------
+int sjoy_get_axis(int joy, int axis)
+{
+  return g_axis[joy][axis];
+}
+
+//----------------------------------------------------------------------
+int sjoy_get_ps2_button(int joy)
+{
+  int w = g_button[joy];
+  int a0 = g_axis[joy][0];
+  int a1 = g_axis[joy][1];
+  int th = 0x4000;
+        
+  w |= (a0 < -th) ? SJOY_PS2_L_LEFT : 0;
+  w |= (a1 > th) ? SJOY_PS2_L_DOWN : 0;
+  w |= (a0 > th) ? SJOY_PS2_L_RIGHT : 0;
+  w |= (a1 < -th) ? SJOY_PS2_L_UP : 0;
+        
+  return w;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sjoy.h	Thu Jun 02 14:56:11 2011 +0900
@@ -0,0 +1,56 @@
+// Copyright(C) 2001 Sony Computer Entertainment Inc. All Rights Reserved.
+//
+// "sjoy.h"
+//
+//
+//----------------------------------------------------------------------
+// defines
+//----------------------------------------------------------------------
+// original defines
+#define SJOY_PS2_R_LEFT         (1)
+#define SJOY_PS2_R_DOWN         (1 << 1)
+#define SJOY_PS2_R_UP           (1 << 2)
+#define SJOY_PS2_R_RIGHT        (1 << 3)
+#define SJOY_PS2_L1             (1 << 4)
+#define SJOY_PS2_R1             (1 << 5)
+#define SJOY_PS2_L2             (1 << 6)
+#define SJOY_PS2_R2             (1 << 7)
+#define SJOY_PS2_SELECT         (1 << 8)
+#define SJOY_PS2_START          (1 << 9)
+#define SJOY_PS2_L_LEFT         (1 << 10)
+#define SJOY_PS2_L_DOWN         (1 << 11)
+#define SJOY_PS2_L_UP           (1 << 12)
+#define SJOY_PS2_L_RIGHT        (1 << 13)
+
+// new defines
+#define SJOY_PS2_SQUARE         (1)
+#define SJOY_PS2_CROSS          (1 << 1)
+#define SJOY_PS2_TRIANGLE       (1 << 2)
+#define SJOY_PS2_CIRCLE         (1 << 3)
+#define SJOY_PS2_LEFT           (1 << 10)
+#define SJOY_PS2_DOWN           (1 << 11)
+#define SJOY_PS2_UP             (1 << 12)
+#define SJOY_PS2_RIGHT          (1 << 13)
+
+//           ___                              ___
+//          [___] L2 (btn 6)                 [___] R2 (btn 7)
+//          [___] L1 (btn 4)                 [___] R1 (btn 5)
+//
+//     (axis 1-)         (btn 8) (btn 9)         (btn 2)
+//            ^ LUp       Select Start         ^ RUp
+//            |           [__]   [__>          | 
+//   LLeft <-- --> LRight             RLeft <-- --> RRight
+//   (axis 0-)|    (axis 0+)          (btn 0)  |    (btn3)
+//            V LDown                          V RDown
+//              (axis 1+)                      (btn 1)
+//
+
+//----------------------------------------------------------------------
+// prototypes
+//----------------------------------------------------------------------
+int sjoy_open(void);
+int sjoy_close(void);
+void sjoy_poll(void);
+int sjoy_get_button(int joy);
+int sjoy_get_axis(int joy, int axis);
+int sjoy_get_ps2_button(int joy);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sprite.h	Thu Jun 02 14:56:11 2011 +0900
@@ -0,0 +1,102 @@
+#define FRAME_ANGLE_NORMAL           0
+#define FRAME_ANGLE_REVERSE_HORIZON  1
+#define FRAME_ANGLE_REVERSE_VERTICAL 2
+#define FRAME_ANGLE_ROTATE_180       3
+
+// defines for visible of sprite
+#define UNVISIBLE 0
+#define VISIBLE   1
+
+#if 0
+typedef struct sprite_frame {
+    int x;
+    int y;
+    int w;
+    int h;
+    int offset_x;
+    int offset_y;
+    int angle;
+    int visible;
+    TEXTURE *texture;
+} SPRITE_FRAME;
+
+typedef struct sprite_polygon {
+    FVECTOR xyz;
+    FVECTOR angle;
+    int polygon_w;
+    int polygon_h;
+    int texture_w;
+    int texture_h;
+    int offset_x;
+    int offset_y;
+    int r,g,b,a;
+    int visible;
+    ps2_giftag giftag;
+    ps2_dmatag *packet;
+} SPRITE_POLYGON;
+
+typedef struct sprite_polygon_head {
+    int all_number;
+    TEXTURE *texture;
+    SPRITE_POLYGON *sprites;  // SPRITE_POLYGON
+    char *free_sprites;       // SPRITE_POLYGON
+    char *free_packets;
+} SPRITE_POLYGON_HEAD;
+
+// sprite_frame's functions
+SPRITE_FRAME *create_sprite_frame(int number, TEXTURE *tex);
+int draw_sprite_frame(int number, SPRITE_FRAME *sprite);
+#define free_sprite_frame free
+
+// sprite_polygon's functions
+SPRITE_POLYGON_HEAD *create_sprite_polygon(int number, TEXTURE *tex);
+int draw_sprite_polygon(int number, SPRITE_POLYGON_HEAD *sprite);
+void free_sprite_polygon(SPRITE_POLYGON_HEAD *s);
+int set_packet_sprite_polygon(int number, SPRITE_POLYGON_HEAD *head);
+ps2_giftag *get_giftag_sprite_polygon(int number, SPRITE_POLYGON_HEAD *head);
+void sprite_polygon_Set_world( void );
+#endif
+
+typedef struct {
+  /* __u64 rgbaq;
+    __u64 rgbaq_addr;
+    __u64 st;
+    __u64 st_addr;
+    __u64 xyz;
+    __u64 xyz_addr;
+  */
+  int x;
+} GsPrim;
+
+
+/*!  
+    \ref GS primitive data of a sprite.
+    PS2 doesn't have sprite method, so we have to implement it with using 
+    a substitute method. Fortunately, PS2 has some powerful methods.
+    Then, we use the TRIANGLE_STRIP drawing option.
+
+    TRIANGLE_STRIP takes 4 GsPrim.
+*/
+
+
+typedef struct {
+  //ps2_giftag giftag;
+  //__u64 prim;
+  //__u64 prim_addr;
+  GsPrim primData[4];
+} GsSpritePacket;
+
+
+/*!
+    \ref sprite's GS packet.
+    gs_packet (\ref GsSpritePacket) is an address of head of GS primitive data 
+    which contains some sprites.  then, free_add is an address to free gs_packet. 
+    gs_packet (\ref ) is aligned at 16byte memory border, bacause GS treats this
+    packet data as that unit. so, we have to manage a real address after aligned.
+*/
+typedef struct {
+    GsSpritePacket* gs_packet;
+    void* free_addr;
+    unsigned char enable_offset;
+    unsigned char enable_num;
+} SpritePacketHeader;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test_vector.c	Thu Jun 02 14:56:11 2011 +0900
@@ -0,0 +1,179 @@
+#include <stdio.h>
+#include "ps2util.h"
+#include "libps2.h"
+
+void init_FVECTOR(FVECTOR v, float num);
+void init_FMATRIX(FMATRIX m, float num);
+void output_FVECTOR(FVECTOR v);
+void output_FMATRIX(FMATRIX m);
+void all_init(FVECTOR v0, FVECTOR v1, FMATRIX m0, FMATRIX m1, float num);
+
+int main(){
+
+  FVECTOR resultV;
+  FMATRIX resultM;
+  float resultf;
+
+  FVECTOR v0,v1;
+  FMATRIX m0,m1;
+
+  float f0 = 0.5;
+  float num = 0.1;
+  
+  int i,j;
+  int lim1 = 4;
+  
+  //v0,v1,m0,m1 ã‚’åˆæœŸåŒ–
+  all_init(v0, v1, m0, m1, num);
+  
+  printf("v0\n");
+  output_FVECTOR(v0);
+
+  printf("v1\n");
+  output_FVECTOR(v1);
+
+  printf("m0\n");
+  output_FMATRIX(m0);
+
+  printf("m1\n");
+  output_FMATRIX(m1);
+
+  printf("\n");
+  printf("\n");
+  
+  
+
+  
+  /*-----------ps2util.c test----------*/
+
+  ps2_vu0_copy_vector(v0, v1);
+  printf("ps2_vu0_copy_vector(v0, v1)\n");
+  output_FVECTOR(v0);
+  output_FVECTOR(v1);
+  printf("\n");
+  all_init(v0, v1, m0, m1, num);
+
+  ps2_vu0_unit_matrix(m0);
+  printf("ps2_vu0_unit_matrix(m0)\n");
+  output_FMATRIX(m0);
+  printf("\n");
+  all_init(v0, v1, m0, m1, num);
+
+  ps2_vu0_rot_matrix_y(resultM, m0, f0);
+  printf("ps2_vu0_rot_matrix_y(resultM, m0, f0)\n");
+  output_FMATRIX(resultM);
+  printf("\n");
+  all_init(v0, v1, m0, m1, num);
+
+  ps2_vu0_apply_matrix(resultV, m0, v0);
+  printf("ps2_vu0_apply_matrix(resultV, m0, v0)\n");
+  output_FVECTOR(resultV);
+  printf("\n");
+  all_init(v0, v1, m0, m1, num);
+
+  ps2_vu0_scale_vector(resultV, v0, f0);
+  printf("ps2_vu0_sacle_vector(resultV, v0, f0)\n");
+  output_FVECTOR(resultV);
+  printf("\n");
+  all_init(v0, v1, m0, m1, num);
+
+  ps2_vu0_add_vector(resultV, v0, v1);
+  printf("ps2_vu0_add_vector(resultV, v0, v1)\n");
+  output_FVECTOR(resultV);
+  printf("\n");
+  all_init(v0, v1, m0, m1, num);
+
+  ps2_vu0_outer_product(resultV, v0, v1);
+  printf("ps2_vu0_outer_product(resultV, v0, v1)\n");
+  output_FVECTOR(resultV);
+  printf("\n");
+  all_init(v0, v1, m0, m1, num);
+
+  resultf = ps2_vu0_inner_product(v0, v1);
+  printf("ps2_vu0_inner_product(v0, v1)\n");
+  printf("resultf = %10f\n",&resultf);
+  printf("\n");
+  all_init(v0, v1, m0, m1, num);
+
+  ps2_vu0_mul_matrix(resultM, m0, m1);
+  printf("ps2_vu0_mul_matrix(resultM, m0, m1)\n");
+  output_FMATRIX(resultM);
+  printf("\n");
+  all_init(v0, v1, m0, m1, num);
+
+  ps2_vu0_copy_matrix(m0, m1);
+  printf("ps2_vu0_copy_matrix(m0, m1)\n");
+  output_FMATRIX(m0);
+  output_FMATRIX(m0);
+  printf("\n");
+  all_init(v0, v1, m0, m1, num);
+
+  ps2_vu0_sub_vector(resultV, v0, v1);
+  printf("ps2_vu0_sub_vector(resultV, v0, v1)\n");
+  output_FVECTOR(resultV);
+  printf("\n");
+  all_init(v0, v1, m0, m1, num);
+  
+  ps2_vu0_normalize(resultV, v0);
+  printf("ps2_vu0_normalize(result, v0)\n");
+  output_FVECTOR(resultV);
+  printf("\n");
+  all_init(v0, v1, m0, m1, num);
+
+  
+}
+
+
+
+//使用ã™ã‚‹å€¤ã®åˆæœŸåŒ– FVECTOR
+void init_FVECTOR(FVECTOR v, float num){
+  int i;
+  int lim1=4;
+  for ( i=0; i<lim1; i++ ) {
+    v[i] = num + ( (float)i * num * 0.3 ) ;
+  }
+}
+
+//使用ã™ã‚‹å€¤ã®åˆæœŸåŒ– FMATRIX
+void init_FMATRIX(FMATRIX m, float num){
+  int i,j;
+  int lim1=4;
+  for ( i=0; i<lim1; i++ ) {
+    for ( j=0; j<lim1; j++ ) {
+      m[i][j] = ( num * (float)j )  + ( (float)i * num*4.0 ) ;
+    }
+  }
+}
+
+//--------出力---------
+void output_FVECTOR(FVECTOR v){
+  int i;
+  int lim1 = 4;
+  for ( i=0; i<lim1; i++ ) {
+    printf("%10f ",v[i]);
+  }
+  printf("\n\n");
+}
+
+//--------出力---------
+void output_FMATRIX(FMATRIX m){
+  int i,j;
+  int lim1 = 4;
+  for ( i=0; i<lim1; i++ ) {
+    for ( j=0; j<lim1; j++ ) {
+      printf("%10f",m[i][j]);
+    }
+    printf("\n");
+  }
+  printf("\n");
+}
+
+
+
+//全部をåˆæœŸå€¤ã«æˆ»ã™ã€‚
+void all_init(FVECTOR v0, FVECTOR v1, FMATRIX m0, FMATRIX m1, float num){
+  init_FVECTOR(v0, num);
+  init_FVECTOR(v1, num*2);
+  init_FMATRIX(m0, num);
+  init_FMATRIX(m1, num*2);
+}
--- a/title_scene.c	Thu May 26 18:13:40 2011 +0900
+++ b/title_scene.c	Thu Jun 02 14:56:11 2011 +0900
@@ -1,6 +1,10 @@
 #include "libps2.h"
 #include "ps2util.h"
 #include "title_scene.h"
+#include "gSprite.h"
+
+#include "sjoy.h"
+
 
 typedef enum {
     TITLE_INIT,
@@ -8,7 +12,6 @@
     TITLE_FINISH
 } TITLE_STATE;
 
-
 static ps2utilSprite title_sprite;
 
 static TEXTURE *title_img;
@@ -19,22 +22,22 @@
 static void
 title_init() 
 {    
-    /* 
-	  load texture 
-    */
-  //    title_img = read_png_file( TITLE_IMG_FILE );
-  //    ps2util_tex_Set( title_img );
+
+  //load texture 
 
-    /*    
-	  create sprite object
-     */
-  /*
+  title_img = read_png_file( TITLE_IMG_FILE );
+  ps2util_tex_Set( title_img );
+
+  /*    
+	create sprite object
+  */
+
     ps2util_sprite_Create( &title_sprite, title_img );
     ps2util_sprite_Set_basicAttribute( &title_sprite, 
-    	0, 0, 650, 500, 0, 0, 512, 256, SPRITE_PRIO_FOREGROUND );
+    0, 0, 650, 500, 0, 0, 512, 256, SPRITE_PRIO_FOREGROUND );
+
     ps2util_sprite_Use_alpha( &title_sprite );
     ps2util_sprite_Request( &title_sprite );
-  */
 }
 
 void
@@ -54,32 +57,32 @@
 void
 title_finish_call()
 {
-    title_finish();
+  title_finish();
 }
 
 int
 title_scene() 
 {
-    static TITLE_STATE state = TITLE_INIT;
-    //int pad;
+  static TITLE_STATE state = TITLE_INIT;
+  int pad;
 
-    switch (state) {
-    case TITLE_INIT:
-	title_init();
-	state = TITLE_MAIN;
-	break;
+  switch (state) {
+  case TITLE_INIT:
+    title_init();
+    state = TITLE_MAIN;
+    break;
 
-    case TITLE_MAIN:
-      //	pad = sjoy_get_ps2_button( JOYPAD_1 );
-      //	state = (pad & SJOY_PS2_START) ? TITLE_FINISH : TITLE_MAIN;
-	break;
+  case TITLE_MAIN:
+    pad = sjoy_get_ps2_button( JOYPAD_1 );
+    state = (pad & SJOY_PS2_START) ? TITLE_FINISH : TITLE_MAIN;
+    break;
 
-    case TITLE_FINISH:
-      	title_finish();
-	return -1;
+  case TITLE_FINISH:
+    title_finish();
+    return -1;
 
-    default:
-	break;
-    }
-    return 0;
+  default:
+    break;
+  }
+  return 0;
 }
--- a/title_scene.h	Thu May 26 18:13:40 2011 +0900
+++ b/title_scene.h	Thu Jun 02 14:56:11 2011 +0900
@@ -1,6 +1,4 @@
-/*
- * $Id$
-*/
-extern int title_scene();
-extern void title_finish_call();
-extern void title_init_call();
+/* title_scene.h */
+int title_scene();
+void title_finish_call();
+void title_init_call();