changeset 53:b31bed246abd

fix code and add log.
author koba <koba@cr.ie.u-ryukyu.ac.jp>
date Tue, 25 Jan 2011 17:43:30 +0900
parents 150e832193fe
children 3acdeb3dc3e8
files Character.c Character_state.c Cheat.c Cheat.h Dandy.cc Makefile.mac ObjectType.h StateList.c StateList.h TaskDandy.cc collision_task.cc dandy_log debug_db.h main.c ppe/Atari.cc ppe/task_object.h property.h spe/task_object.h state_task.cc tdandy_log
diffstat 20 files changed, 753 insertions(+), 187 deletions(-) [+]
line wrap: on
line diff
--- a/Character.c	Sun Jan 23 19:01:34 2011 +0900
+++ b/Character.c	Tue Jan 25 17:43:30 2011 +0900
@@ -132,7 +132,7 @@
 
     
     if (q->tama == FALSE) {
-        printf("F%d: CREATE  [NAME]%s  [ID]%d  [COORD]x= %f  y= %f  vx= %f  vy= %f\n",
+        printf("F%d: CREATE  [NAME]%s_%d  [COORD]x= %f  y= %f  vx= %f  vy= %f\n",
 	       filpcount, dtable[q->charano].name, q->chara_id,
 	       q->x, q->y, q->vx, q->vy);
     }
--- a/Character_state.c	Sun Jan 23 19:01:34 2011 +0900
+++ b/Character_state.c	Tue Jan 25 17:43:30 2011 +0900
@@ -53,9 +53,11 @@
 delete_chara(CHARACTER *p)
 {
   if (p->tama == FALSE) {
-      printf("F%d: DELETE  [NAME]%s_%d  [VIT]%lf  [COORD]x= %f  y= %f  vx= %f  vy= %f\n",
-	     filpcount, dtable[p->charano].name, p->chara_id, p->vit,
+      printf("F%d: DELETE  [NAME]%s_%d  [COORD]x= %f  y= %f  vx= %f  vy= %f\n",
+	     filpcount, dtable[p->charano].name, p->chara_id,
 	     p->x, p->y, p->vx, p->vy);
+      printf("               [TAMA]lv1 = %d, lv2 = %d [LASER]lv1 = %d\n",
+	     tama_lv1_end, tama_lv2_end, laser_lv1_end);
   }
   
   CHARACTER *parent = p;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cheat.c	Tue Jan 25 17:43:30 2011 +0900
@@ -0,0 +1,15 @@
+#include "Cheat.h"
+#include "object.h"
+#include "sgoex.h"
+#include "count2.h"
+
+void
+cheat()
+{
+    if (pad[0].l2 > 0) {
+        jiki.zanki++;
+    }
+    if (pad[0].r2 > 0) {
+        jiki.muteki = 600;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cheat.h	Tue Jan 25 17:43:30 2011 +0900
@@ -0,0 +1,6 @@
+#ifndef INCLUDE_CHEAT
+#define INCLUDE_CHEAT
+
+void cheat();
+
+#endif
--- a/Dandy.cc	Sun Jan 23 19:01:34 2011 +0900
+++ b/Dandy.cc	Tue Jan 25 17:43:30 2011 +0900
@@ -29,8 +29,10 @@
 #include "matrix_calc.h"
 #include "Character.h"
 #include "Character_state.h"
+#include "Cheat.h"
 #include "debug_db.h"
 
+
 DebugDB dtable[DEFOBJ];
 
 static int use_keybord = 0;
@@ -539,9 +541,14 @@
 		}
 		SDL_Delay(100);
 		PutSprite(1, 640, 640, 29 - cc / 60);
-		//      	PutSpriteEx(1, 409 * ((cc % 60) + 1), 409 * ((cc % 60) + 1), 0);
+		//PutSpriteEx(1, 409 * ((cc % 60) + 1), 409 * ((cc % 60) + 1), 0);
 
-		Pad(joy);
+		if(use_keybord == 1) {
+		    keybord();
+		} else {
+		    Pad(joy);
+		}
+
 		flip();  // this is not correct
 	    }
 	}
@@ -893,10 +900,12 @@
       } else {
 	Pad(joy);
       }
+      cheat();
       t_buff = CapturePad(t_buff, pad);
       break;
     case 2:
       t_buff = TracePad(t_buff, pad);
+      cheat();
       break;
     }
 }
--- a/Makefile.mac	Sun Jan 23 19:01:34 2011 +0900
+++ b/Makefile.mac	Tue Jan 25 17:43:30 2011 +0900
@@ -2,7 +2,7 @@
 include ./Makefile.def
 
 TARGET = demo dandy t_dandy
-OBJS    =  Character.o Bom.o tokuten.o count2.o schedule3.o tama2.o syokika.o Ss.o sound.o  profile.o debug.o trace.o LoadSprite.o xml.o b64_de.o tree_controll.o object.o sys.o StateList.o
+OBJS    =  Character.o Bom.o tokuten.o count2.o schedule3.o tama2.o syokika.o Ss.o sound.o  profile.o debug.o trace.o LoadSprite.o xml.o b64_de.o tree_controll.o object.o sys.o StateList.o Cheat.o
 
 TASK_DIR  = ppe
 TASK_SRCS_TMP = $(wildcard $(TASK_DIR)/*.cc)
--- a/ObjectType.h	Sun Jan 23 19:01:34 2011 +0900
+++ b/ObjectType.h	Tue Jan 25 17:43:30 2011 +0900
@@ -1,3 +1,4 @@
+// Create Type (for collision_task and state_task)
 enum {
   Boms,
   Tama,
@@ -5,5 +6,17 @@
   Def,
   DefEx,
   Put,
-  PutEx,
+  PutEx
 };
+
+//Collision Type (for collision_task)
+enum {
+  NO,
+  JIKI,
+  TAMALV1,
+  TAMALV2,
+  TAMALV3,
+  LASERLV1,
+  LASERLV2,
+  LASERLV3
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/StateList.c	Tue Jan 25 17:43:30 2011 +0900
@@ -0,0 +1,77 @@
+#include "Character.h"
+#include "Character_state.h"
+#include "Func.h"
+#include "StateList.h"
+
+
+StateList state_list[LIST_NUM];
+
+int
+GetStateNum(int task_num)
+{
+    int num = task_num % LIST_NUM;
+
+    return num;
+}
+
+static void
+SetTaskState(int task_num, CHARACTER *(state)(CHARACTER *chara), const char *name)
+{
+    int num = GetStateNum(task_num);
+    
+    state_list[num].state = state;
+    state_list[num].name = name;
+}
+
+void
+initStateList()
+{
+    SetTaskState(DELETE_CHARA, delete_chara, "delete_chara");
+    SetTaskState(STATE0, chara_state0, "chara_state0");
+    SetTaskState(STATE1, chara_state1, "chara_state1");
+    SetTaskState(STATE2, chara_state2, "chara_state2");
+    SetTaskState(STATE3, chara_state3, "chara_state3");
+    SetTaskState(STATE4, chara_state4, "chara_state4");
+    SetTaskState(STATE5, chara_state5, "chara_state5");
+    SetTaskState(STATE6, chara_state6, "chara_state6");
+    SetTaskState(STATE6, chara_state7, "chara_state7");
+    SetTaskState(STATE6, chara_state8, "chara_state8");
+    SetTaskState(STATE6, chara_state9, "chara_state9");
+    SetTaskState(STATE6, chara_state10, "chara_state10");
+    SetTaskState(STATE6, chara_state11, "chara_state11");
+    SetTaskState(STATE6, chara_state12, "chara_state12");
+    SetTaskState(STATE7, chara_state13, "chara_state13");
+
+    SetTaskState(STATE20, chara_state20, "chara_state20");
+    SetTaskState(STATE20, chara_state21, "chara_state21");
+    SetTaskState(STATE20, chara_state22, "chara_state22");
+    SetTaskState(STATE20, chara_state23, "chara_state23");
+    SetTaskState(STATE20, chara_state24, "chara_state24");
+    SetTaskState(STATE20, chara_state25, "chara_state25");
+    SetTaskState(STATE20, chara_state26, "chara_state26");
+    SetTaskState(STATE20, chara_state27, "chara_state27");
+    SetTaskState(STATE20, chara_state28, "chara_state28");
+    SetTaskState(STATE20, chara_state29, "chara_state29");
+    SetTaskState(STATE20, chara_state30, "chara_state30");
+    SetTaskState(STATE20, chara_state31, "chara_state31");
+    SetTaskState(STATE20, chara_state32, "chara_state32");
+    SetTaskState(STATE20, chara_state33, "chara_state33");
+    SetTaskState(STATE20, chara_state34, "chara_state34");
+    SetTaskState(STATE20, chara_state35, "chara_state35");
+    SetTaskState(STATE20, chara_state40, "chara_state40");
+    SetTaskState(STATE20, chara_state41, "chara_state41");
+
+    SetTaskState(STATE400, chara_state400, "chara_state400");
+    SetTaskState(STATE400, chara_state401, "chara_state401");
+    SetTaskState(STATE400, chara_state402, "chara_state402");
+
+    SetTaskState(STATE410, chara_state410, "chara_state410");
+    SetTaskState(STATE411, chara_state411, "chara_state411");
+
+    SetTaskState(STATE500, chara_state500, "chara_state500");
+    SetTaskState(STATE501, chara_state501, "chara_state501");
+
+    SetTaskState(STATE600, chara_state600, "chara_state600");
+    SetTaskState(STATE601, chara_state601, "chara_state601");
+    SetTaskState(STATE602, chara_state602, "chara_state602");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/StateList.h	Tue Jan 25 17:43:30 2011 +0900
@@ -0,0 +1,18 @@
+#ifndef INCLUDE_STATE_LIST
+#define INCLUDE_STATE_LIST
+
+#define LIST_NUM 50
+#define DATA_LENGTH 10
+
+typedef struct StateList {
+  const char *name;
+  State state;
+
+} StateList, *StateListPtr;
+
+extern StateList state_list[LIST_NUM];
+
+int GetStateNum(int task_num);
+void initStateList();
+
+#endif
--- a/TaskDandy.cc	Sun Jan 23 19:01:34 2011 +0900
+++ b/TaskDandy.cc	Tue Jan 25 17:43:30 2011 +0900
@@ -31,8 +31,10 @@
 #include "Character_state.h"
 #include "property.h"
 #include "StateList.h"
+#include "Cheat.h"
 #include "debug_db.h"
 
+
 static int use_keybord = 0;
 //static int cdp[20] = { 16, 16, 16, 17, 18, 0 };
 static int i;
@@ -538,7 +540,12 @@
 		PutSprite(1, 640, 640, 29 - cc / 60);
 		//PutSpriteEx(1, 409 * ((cc % 60) + 1), 409 * ((cc % 60) + 1), 0);
 
-		Pad(joy);
+		if(use_keybord == 1) {
+		    keybord();
+		} else {
+		    Pad(joy);
+		}
+
 		flip();  // this is not correct
 	    }
 	}
@@ -884,10 +891,12 @@
       } else {
 	Pad(joy);
       }
+      cheat();
       t_buff = CapturePad(t_buff, pad);
       break;
     case 2:
       t_buff = TracePad(t_buff, pad);
+      cheat();
       break;
     }
 }
--- a/collision_task.cc	Sun Jan 23 19:01:34 2011 +0900
+++ b/collision_task.cc	Tue Jan 25 17:43:30 2011 +0900
@@ -2,64 +2,103 @@
 #include <stdlib.h>
 #include <SDL.h>
 #include "SDL_opengl.h"
-#include "object.h"
 #include "Character.h"
-#include "Character_state.h"
 #include "tokuten.h"
-#include "collision.h"
 #include "bom.h"
 #include "count2.h"
+#include "object.h"
 #include "sgoex.h"
 #include "TaskManager.h"
 #include "Func.h"
+#include "ObjectType.h"
 #include "property.h"
 
+
 extern SpriteTable sptable[DEFOBJ];
 extern TaskManager *tmanager;
 
-CollisionPropertyPtr
-get_property()
+static CollisionPropertyPtr
+get_property(CHARACTER *p)
 {
     CollisionPropertyPtr property = (CollisionPropertyPtr)tmanager->allocate(sizeof(CollisionProperty));
 
+    property->collision_type = NO;
     property->enemycount = 0;
     property->tlv3 = tlv3[0];
     property->laser_lv2 = laser_lv2[0];
+    property->p = *p;
 
-    memcpy(property->tama_lv1, tama_lv1, sizeof(tama1)*20);
-    memcpy(property->tama_lv2, tama_lv2, sizeof(tama2)*20);
-    memcpy(property->laser_lv1, laser_lv1, sizeof(laser)*20);
+    memcpy(property->tama_lv1, tama_lv1, sizeof(tama1)*(tama_lv1_end+1));
+    memcpy(property->tama_lv2, tama_lv2, sizeof(tama2)*(tama_lv2_end+1));
+    memcpy(property->laser_lv1, laser_lv1, sizeof(laser)*(laser_lv1_end+1));
     memcpy(property->laser_lv3, laser_lv3, sizeof(laser)*128);
 
     return property;
 }
 
+static void
+check_collision()
+{
+    
+}
+
 void
 free_property(SchedTask *s, void *prop, void *obj)
 {
     CollisionPropertyPtr property = (CollisionPropertyPtr)prop;
-    ObjContainer *new_obj = (ObjContainerPtr)obj;
-    
-    if ((new_obj->flag == true) && (new_obj->length == 1)){
-	ObjDataPtr obj_data = new_obj->data;
-	Bom(obj_data->x, obj_data->y);
+
+    switch(property->collision_type) {
+	check_collision();
+
+    case JIKI:
+	jiki.bf = property->jiki.bf;
+	jiki.zanki = property->jiki.zanki;
+	jiki.muteki = property->jiki.muteki;
+	infg = property->infg;
+	infg_level = property->infg_level;
+	break;
+
+    case TAMALV1:
+	infg = property->infg;
+	memcpy(tama_lv1, property->tama_lv1, sizeof(tama1)*(tama_lv1_end+1));
+	break;
+	
+    case TAMALV2:
+	infg = property->infg;
+	memcpy(tama_lv2, property->tama_lv2, sizeof(tama2)*(tama_lv2_end+1));
+	break;
+	
+    case TAMALV3:
+	infg = property->infg;
+	break;
+	
+    case LASERLV1:
+	infg = property->infg;
+	memcpy(laser_lv1, property->laser_lv1, sizeof(laser)*laser_lv1_end+1);
+	break;
+
+    case LASERLV2:
+	lg.stg -= 26;
+	infg = property->infg;
+	break;
+	
+    case LASERLV3:
+	infg = property->infg;
+
+	break;
+
+    default:
+	break;
     }
 
-    if(lg.stg > property->lg.stg) {
-	lg.stg -= 26;
-    }
-    infg_level = property->infg_level;
-    enemycount += property->enemycount;
+    ObjContainer *new_obj = (ObjContainerPtr)obj;
+    
+    if (new_obj->flag == true){
+	ObjDataPtr obj_data = new_obj->data;
+	Bom(obj_data->x, obj_data->y);
 
-    jiki.bf = property->jiki.bf;
-    jiki.zanki = property->jiki.zanki;
-    jiki.muteki = property->jiki.muteki;
-
-    infg = property->infg;
-
-    memcpy(tama_lv1, property->tama_lv1, sizeof(tama1)*20);
-    memcpy(tama_lv2, property->tama_lv2, sizeof(tama2)*20);
-    memcpy(laser_lv1, property->laser_lv1, sizeof(laser)*20);
+	enemycount += property->enemycount;
+    }
 
     free(new_obj);
     free(prop);
@@ -70,13 +109,13 @@
 atari(CHARACTER *p)
 {
     int w, h, charno;
-    CollisionPropertyPtr property = get_property();
+    CollisionPropertyPtr property = get_property(p);
 
     charno = p->charano;
     w = sptable[charno].w;
     h = sptable[charno].h;
 
-    int obj_size = sizeof(ObjContainer)+sizeof(ObjData)*1;
+    int obj_size = sizeof(ObjContainer);
     ObjContainerPtr obj = (ObjContainerPtr)tmanager->allocate(obj_size);
     obj->flag = false;
     obj->length = 0;
@@ -85,20 +124,18 @@
 
     collision_task->set_param(0,(memaddr)w);
     collision_task->set_param(1,(memaddr)h);
-    collision_task->set_param(2,(memaddr)tama_lv1_end);
-    collision_task->set_param(3,(memaddr)tama_lv2_end);
-    collision_task->set_param(4,(memaddr)laser_lv1_end);
 
-    collision_task->set_inData(0, p, sizeof(CHARACTER));
+    collision_task->set_inData(0, property, sizeof(CollisionProperty));
     collision_task->set_inData(1, &jiki, sizeof(player));
     collision_task->set_inData(2, &lg, sizeof(stge));
     collision_task->set_inData(3, &infg, sizeof(stge));
     collision_task->set_inData(4, &infg_level, sizeof(int));
-    collision_task->set_inData(5, property, sizeof(CollisionProperty));
+    collision_task->set_inData(5, &tama_lv1_end, sizeof(int));
+    collision_task->set_inData(6, &tama_lv2_end, sizeof(int));
+    collision_task->set_inData(7, &laser_lv1_end, sizeof(int));
 
-    collision_task->set_outData(0, p, sizeof(CHARACTER));
-    collision_task->set_outData(1, property, sizeof(CollisionProperty));
-    collision_task->set_outData(2, obj, 0);
+    collision_task->set_outData(0, property, sizeof(CollisionProperty));
+    collision_task->set_outData(1, obj, sizeof(ObjContainer));
 
     collision_task->set_post(free_property, (void*)property, (void*)obj);
     collision_task->set_cpu(SPE_ANY);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dandy_log	Tue Jan 25 17:43:30 2011 +0900
@@ -0,0 +1,205 @@
+Start Trace mode.
+Use Keyboard
+F64: CREATE  [NAME]enemy_greenclab_0  [COORD]x= 120.000000  y= -128.000000  vx= 0.000000  vy= 4.000000
+F85: DELETE  [NAME]enemy_greenclab_0  [COORD]x= 120.000000  y= -44.000000  vx= 0.000000  vy= 4.000000
+               [TAMA]lv1 = 1, lv2 = -1 [LASER]lv1 = -1
+F96: CREATE  [NAME]enemy_greenclab_1  [COORD]x= 56.000000  y= -128.000000  vx= 0.000000  vy= 8.000000
+F96: CREATE  [NAME]enemy_greenclab_2  [COORD]x= 184.000000  y= -128.000000  vx= 0.000000  vy= 8.000000
+F109: DELETE  [NAME]enemy_greenclab_1  [COORD]x= 56.000000  y= -24.000000  vx= 0.000000  vy= 8.000000
+               [TAMA]lv1 = 1, lv2 = -1 [LASER]lv1 = -1
+F117: DELETE  [NAME]enemy_greenclab_2  [COORD]x= 184.000000  y= 40.000000  vx= 0.000000  vy= 8.000000
+               [TAMA]lv1 = 1, lv2 = -1 [LASER]lv1 = -1
+F128: CREATE  [NAME]enemy_greenclab_3  [COORD]x= 120.000000  y= -128.000000  vx= 0.000000  vy= 4.000000
+F156: DELETE  [NAME]enemy_greenclab_3  [COORD]x= 120.000000  y= -16.000000  vx= 0.000000  vy= 4.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F160: CREATE  [NAME]enemy_greenclab_4  [COORD]x= 224.000000  y= -128.000000  vx= 1.000000  vy= 1.000000
+F160: CREATE  [NAME]enemy_greenclab_5  [COORD]x= 184.000000  y= -128.000000  vx= 1.000000  vy= 1.000000
+F192: CREATE  [NAME]enemy_greenclab_6  [COORD]x= 120.000000  y= -128.000000  vx= 1.000000  vy= 2.000000
+F223: DELETE  [NAME]enemy_greenclab_4  [COORD]x= 287.000000  y= -65.000000  vx= 1.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F224: CREATE  [NAME]enemy_greenclab_7  [COORD]x= 56.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F224: CREATE  [NAME]enemy_greenclab_8  [COORD]x= 184.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F231: DELETE  [NAME]enemy_greenclab_6  [COORD]x= 159.000000  y= -50.000000  vx= 1.000000  vy= 2.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F235: DELETE  [NAME]enemy_greenclab_5  [COORD]x= 259.000000  y= -53.000000  vx= 1.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F247: DELETE  [NAME]enemy_greenclab_8  [COORD]x= 184.000000  y= -105.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F256: CREATE  [NAME]enemy_plane_0  [COORD]x= 120.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F360: DELETE  [NAME]enemy_plane_0  [COORD]x= 120.000000  y= -24.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F371: DELETE  [NAME]enemy_greenclab_7  [COORD]x= 56.000000  y= 19.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F384: CREATE  [NAME]enemy_greenclab_9  [COORD]x= 1032.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F416: CREATE  [NAME]enemy_greenclab_10  [COORD]x= 1032.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F448: CREATE  [NAME]enemy_greenclab_11  [COORD]x= 1032.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F480: CREATE  [NAME]enemy_plane_1  [COORD]x= 1032.000000  y= -128.000000  vx= -1.000000  vy= 1.000000
+F512: CREATE  [NAME]enemy_plane_2  [COORD]x= 1032.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F544: CREATE  [NAME]enemy_plane_3  [COORD]x= 1032.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F576: CREATE  [NAME]enemy_greenclab_12  [COORD]x= 1032.000000  y= -32.000000  vx= 0.000000  vy= 1.000000
+F576: CREATE  [NAME]enemy_greenclab_13  [COORD]x= 1152.000000  y= -128.000000  vx= -2.000000  vy= 1.000000
+F576: CREATE  [NAME]enemy_greenclab_14  [COORD]x= 800.000000  y= -88.000000  vx= -1.000000  vy= 1.000000
+F629: DELETE  [NAME]enemy_greenclab_14  [COORD]x= 747.000000  y= -35.000000  vx= -1.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F646: DELETE  [NAME]enemy_plane_1  [COORD]x= 866.000000  y= 38.000000  vx= -1.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F701: DELETE  [NAME]enemy_greenclab_13  [COORD]x= 902.000000  y= -3.000000  vx= -2.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F733: DELETE  [NAME]enemy_greenclab_9  [COORD]x= 1032.000000  y= 221.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F746: DELETE  [NAME]enemy_greenclab_10  [COORD]x= 1032.000000  y= 202.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F755: DELETE  [NAME]enemy_greenclab_11  [COORD]x= 1032.000000  y= 179.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F767: DELETE  [NAME]enemy_greenclab_12  [COORD]x= 1032.000000  y= 159.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F768: CREATE  [NAME]enemy_greenclab_15  [COORD]x= 256.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F768: CREATE  [NAME]enemy_greenclab_16  [COORD]x= 896.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F771: DELETE  [NAME]enemy_plane_2  [COORD]x= 1032.000000  y= 131.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F777: DELETE  [NAME]enemy_plane_3  [COORD]x= 1032.000000  y= 105.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F800: CREATE  [NAME]enemy_plane_4  [COORD]x= 512.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F800: CREATE  [NAME]enemy_plane_5  [COORD]x= 1152.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F832: CREATE  [NAME]enemy_greenclab_17  [COORD]x= 384.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F832: CREATE  [NAME]enemy_greenclab_18  [COORD]x= 1024.000000  y= -128.000000  vx= 0.000000  vy= 2.000000
+F832: CREATE  [NAME]enemy_greenclab_19  [COORD]x= 512.000000  y= -128.000000  vx= 0.000000  vy= 3.000000
+F832: CREATE  [NAME]enemy_greenclab_20  [COORD]x= 1024.000000  y= -128.000000  vx= 0.000000  vy= 2.000000
+F857: DELETE  [NAME]enemy_greenclab_16  [COORD]x= 896.000000  y= -39.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F864: CREATE  [NAME]enemy_plane_6  [COORD]x= 512.000000  y= -128.000000  vx= 0.000000  vy= 3.000000
+F864: CREATE  [NAME]enemy_plane_7  [COORD]x= 128.000000  y= -128.000000  vx= 0.000000  vy= 2.000000
+F864: CREATE  [NAME]enemy_plane_8  [COORD]x= 768.000000  y= -128.000000  vx= 0.000000  vy= 4.000000
+F864: CREATE  [NAME]enemy_plane_9  [COORD]x= 128.000000  y= -128.000000  vx= 0.000000  vy= 3.000000
+F873: DELETE  [NAME]enemy_plane_8  [COORD]x= 768.000000  y= -103.250000  vx= 0.000000  vy= 1.750000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F896: CREATE  [NAME]enemy_greenclab_21  [COORD]x= 256.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F896: CREATE  [NAME]enemy_greenclab_22  [COORD]x= 896.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F925: DELETE  [NAME]enemy_greenclab_18  [COORD]x= 1024.000000  y= 58.000000  vx= 0.000000  vy= 2.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F927: DELETE  [NAME]enemy_greenclab_22  [COORD]x= 896.000000  y= -97.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F928: CREATE  [NAME]enemy_plane_10  [COORD]x= 256.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F928: CREATE  [NAME]enemy_plane_11  [COORD]x= 896.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F936: DELETE  [NAME]enemy_greenclab_20  [COORD]x= 1024.000000  y= 80.000000  vx= 0.000000  vy= 2.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F945: DELETE  [NAME]enemy_plane_11  [COORD]x= 896.000000  y= -111.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F958: DELETE  [NAME]enemy_plane_5  [COORD]x= 1152.000000  y= 30.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F960: CREATE  [NAME]enemy_greenclab_23  [COORD]x= 256.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F960: CREATE  [NAME]enemy_greenclab_24  [COORD]x= 896.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F1026: DELETE  [NAME]enemy_greenclab_24  [COORD]x= 896.000000  y= -62.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F1056: CREATE  [NAME]enemy_greenclab_25  [COORD]x= 256.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1056: CREATE  [NAME]enemy_greenclab_26  [COORD]x= 896.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1088: CREATE  [NAME]enemy_plane_12  [COORD]x= 256.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1088: CREATE  [NAME]enemy_plane_13  [COORD]x= 896.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1102: DELETE  [NAME]enemy_greenclab_19  [COORD]x= 680.000000  y= 472.000000  vx= 4.000000  vy= -2.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F1120: CREATE  [NAME]enemy_greenclab_27  [COORD]x= 256.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1120: CREATE  [NAME]enemy_greenclab_28  [COORD]x= 896.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1152: CREATE  [NAME]enemy_plane_14  [COORD]x= 256.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1152: CREATE  [NAME]enemy_plane_15  [COORD]x= 896.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1184: CREATE  [NAME]enemy_greenclab_29  [COORD]x= 256.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1184: CREATE  [NAME]enemy_greenclab_30  [COORD]x= 896.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1199: DELETE  [NAME]enemy_plane_4  [COORD]x= 512.000000  y= 271.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 1, lv2 = -1 [LASER]lv1 = -1
+F1216: CREATE  [NAME]enemy_plane_16  [COORD]x= 256.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1216: CREATE  [NAME]enemy_plane_17  [COORD]x= 896.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1248: CREATE  [NAME]enemy_greenclab_31  [COORD]x= 256.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1248: CREATE  [NAME]enemy_greenclab_32  [COORD]x= 896.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1248: DELETE  [NAME]enemy_greenclab_17  [COORD]x= 384.000000  y= 288.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 1, lv2 = -1 [LASER]lv1 = -1
+F1289: DELETE  [NAME]enemy_greenclab_15  [COORD]x= 256.000000  y= 393.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F1303: DELETE  [NAME]enemy_greenclab_21  [COORD]x= 256.000000  y= 279.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F1306: DELETE  [NAME]enemy_plane_10  [COORD]x= 256.000000  y= 250.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F1318: DELETE  [NAME]enemy_greenclab_23  [COORD]x= 256.000000  y= 230.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F1472: CREATE  [NAME]gunbattery_0  [COORD]x= 963.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F1600: CREATE  [NAME]gunbattery_1  [COORD]x= 205.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F1700: DELETE  [NAME]gunbattery_0  [COORD]x= 963.000000  y= 100.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F1728: CREATE  [NAME]gunbattery_2  [COORD]x= 280.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F1917: DELETE  [NAME]gunbattery_2  [COORD]x= 280.000000  y= 61.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F1920: CREATE  [NAME]enemy_greenclab_33  [COORD]x= 256.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1920: CREATE  [NAME]enemy_greenclab_34  [COORD]x= 896.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1939: DELETE  [NAME]gunbattery_1  [COORD]x= 205.000000  y= 211.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F1952: CREATE  [NAME]enemy_greenclab_35  [COORD]x= 256.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1952: CREATE  [NAME]enemy_greenclab_36  [COORD]x= 896.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1984: CREATE  [NAME]enemy_greenclab_37  [COORD]x= 256.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1984: CREATE  [NAME]enemy_greenclab_38  [COORD]x= 896.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F2016: CREATE  [NAME]enemy_greenclab_39  [COORD]x= 256.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F2016: CREATE  [NAME]enemy_greenclab_40  [COORD]x= 896.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F2048: CREATE  [NAME]enemy_greenclab_41  [COORD]x= 256.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F2048: CREATE  [NAME]enemy_greenclab_42  [COORD]x= 896.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F2080: CREATE  [NAME]gunbattery_3  [COORD]x= 256.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F2080: CREATE  [NAME]gunbattery_4  [COORD]x= 896.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F2112: CREATE  [NAME]purplecore_0  [COORD]x= 213.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F2240: CREATE  [NAME]purplecore_1  [COORD]x= 780.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F2276: DELETE  [NAME]purplecore_0  [COORD]x= 213.000000  y= 36.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 1, lv2 = -1 [LASER]lv1 = -1
+F2368: CREATE  [NAME]purplecore_2  [COORD]x= 909.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F2482: DELETE  [NAME]purplecore_1  [COORD]x= 780.000000  y= 114.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 1, lv2 = -1 [LASER]lv1 = -1
+F2496: CREATE  [NAME]purplecore_3  [COORD]x= 869.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F2528: DELETE  [NAME]purplecore_2  [COORD]x= 909.000000  y= 32.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F2560: CREATE  [NAME]spacefish_0  [COORD]x= 712.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F2592: CREATE  [NAME]spacefish_1  [COORD]x= 256.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F2592: CREATE  [NAME]spacefish_2  [COORD]x= 896.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F2656: CREATE  [NAME]spacefish_3  [COORD]x= 256.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F2656: CREATE  [NAME]spacefish_4  [COORD]x= 896.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F2673: DELETE  [NAME]purplecore_3  [COORD]x= 869.000000  y= 49.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 1, lv2 = -1 [LASER]lv1 = -1
+F2681: DELETE  [NAME]spacefish_2  [COORD]x= 896.000000  y= -39.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F2688: CREATE  [NAME]spacefish_5  [COORD]x= 708.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F2720: CREATE  [NAME]spacefish_6  [COORD]x= 256.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F2720: CREATE  [NAME]spacefish_7  [COORD]x= 896.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F2723: DELETE  [NAME]spacefish_0  [COORD]x= 712.000000  y= 35.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F2728: DELETE  [NAME]spacefish_4  [COORD]x= 896.000000  y= -56.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F2747: DELETE  [NAME]spacefish_5  [COORD]x= 708.000000  y= -69.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 3, lv2 = -1 [LASER]lv1 = -1
+F2816: CREATE  [NAME]spacefish_8  [COORD]x= 207.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F2872: DELETE  [NAME]spacefish_1  [COORD]x= 256.000000  y= 152.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F2888: DELETE  [NAME]spacefish_3  [COORD]x= 256.000000  y= 104.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 3, lv2 = -1 [LASER]lv1 = -1
+F2904: DELETE  [NAME]spacefish_6  [COORD]x= 256.000000  y= 56.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F2920: DELETE  [NAME]spacefish_8  [COORD]x= 207.000000  y= -24.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F2944: CREATE  [NAME]spacefish_9  [COORD]x= 626.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F3138: DELETE  [NAME]spacefish_9  [COORD]x= 626.000000  y= 66.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 1, lv2 = -1 [LASER]lv1 = -1
+F3200: CREATE  [NAME]purplecore_4  [COORD]x= 256.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F3200: CREATE  [NAME]purplecore_5  [COORD]x= 896.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F3225: DELETE  [NAME]spacefish_7  [COORD]x= 896.000000  y= 377.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F3262: DELETE  [NAME]purplecore_5  [COORD]x= 896.000000  y= -66.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F3328: CREATE  [NAME]purplecore_6  [COORD]x= 256.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F3328: CREATE  [NAME]purplecore_7  [COORD]x= 896.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F3456: CREATE  [NAME]purplecore_8  [COORD]x= 256.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F3456: CREATE  [NAME]purplecore_9  [COORD]x= 896.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F3478: DELETE  [NAME]purplecore_4  [COORD]x= 256.000000  y= 150.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F3509: DELETE  [NAME]purplecore_6  [COORD]x= 256.000000  y= 53.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F3544: DELETE  [NAME]purplecore_8  [COORD]x= 256.000000  y= -40.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F3584: CREATE  [NAME]purplecore_10  [COORD]x= 256.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F3584: CREATE  [NAME]purplecore_11  [COORD]x= 896.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F3986: DELETE  [NAME]purplecore_10  [COORD]x= 256.000000  y= 274.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 1, lv2 = -1 [LASER]lv1 = -1
+F4160: CREATE  [NAME]boss1_organ_0  [COORD]x= 520.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+0.000000 FPS
+game end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debug_db.h	Tue Jan 25 17:43:30 2011 +0900
@@ -0,0 +1,10 @@
+#ifndef INCLUDE_DEBUG_DB
+#define INCLUDE_DEBUG_DB
+
+typedef struct DebugDB {
+  const char *name;
+  int count;
+
+} DebugDB, DebugDBPtr;
+
+#endif
--- a/main.c	Sun Jan 23 19:01:34 2011 +0900
+++ b/main.c	Tue Jan 25 17:43:30 2011 +0900
@@ -5,6 +5,7 @@
 #include <math.h>
 #include <time.h>
 #include <SDL.h>
+#include <SDL_mixer.h>
 #include "SDL_opengl.h"
 #include "object.h"
 #include "tree_controll.h"
@@ -25,8 +26,7 @@
 #include "debug.h"
 #include "trace.h"
 #include "LoadSprite.h"
-#include <SDL_mixer.h>
-
+#include "Cheat.h"
 #include "error.h"
 
 static int runmode = 0;
@@ -304,7 +304,7 @@
 	tlv3[i].y = -1;
     }
     filpcount = 0;
-    stage = 1;
+    stage = 0;
     //for (i = 0; i < 300; i++)
     //enemy[i].f = FALSE;
     jiki.zanki = 3;
@@ -444,10 +444,13 @@
 		}
 		SDL_Delay(100);
 		PutSprite(1, 640, 640, 29 - cc / 60);
-		//      	PutSpriteEx(1, 409 * ((cc % 60) + 1), 409 * ((cc % 60) + 1), 0);
-
-		Pad(joy);
-		SDL_GL_SwapBuffers( );
+		//PutSpriteEx(1, 409 * ((cc % 60) + 1), 409 * ((cc % 60) + 1), 0);
+		
+		if(use_keybord == 1) {
+		  keybord();
+		} else {
+		  Pad(joy);
+		}
 	    }
 	}
 	if (rswait > 60 * 6) {
@@ -479,7 +482,7 @@
 	    tlv3[0].r = 0;
 	    tlv3[0].y = -1;
 	    return;
-	    // sb_size = -1;                                                    
+	    // sb_size = -1;
 	}
     }
 }
@@ -502,10 +505,12 @@
       } else {
 	Pad(joy);
       }
+      cheat();
       t_buff = CapturePad(t_buff, pad);
       break;
     case 2:
       t_buff = TracePad(t_buff, pad);
+      cheat();
       break;
     }
 }
--- a/ppe/Atari.cc	Sun Jan 23 19:01:34 2011 +0900
+++ b/ppe/Atari.cc	Tue Jan 25 17:43:30 2011 +0900
@@ -1,5 +1,6 @@
 #include "task_base.h"
 #include "task_object.h"
+#include "../ObjectType.h"
 
 SchedDefineTask1(Atari, atari);
 
@@ -8,18 +9,22 @@
 {
     int w = (int)smanager->get_param(0);
     int h = (int)smanager->get_param(1);
-    int tama_lv1_end = (int)smanager->get_param(2);
-    int tama_lv2_end = (int)smanager->get_param(3);
-    int laser_lv1_end = (int)smanager->get_param(4);
 
-    CHARACTER *p = (CHARACTER*)smanager->get_input(rbuf, 0);
+    CollisionPropertyPtr property
+	= (CollisionPropertyPtr)smanager->get_input(rbuf, 0);
     player *jiki = (player*)smanager->get_input(rbuf, 1);
-    stge *lg = (stge*)smanager->get_input(rbuf, 2);
-    stge *infg = (stge*)smanager->get_input(rbuf, 3);
-    int *infg_level = (int*)smanager->get_input(rbuf, 4);
-    CollisionPropertyPtr property
-	= (CollisionPropertyPtr)smanager->get_input(rbuf, 5);
+
+    property->lg = *(stge*)smanager->get_input(rbuf, 2);
+    property->infg = *(stge*)smanager->get_input(rbuf, 3);
+    stge *lg = &property->lg;
+    stge *infg = &property->infg;
 
+    int infg_level = *(int*)smanager->get_input(rbuf, 4);
+    int tama_lv1_end = *(int*)smanager->get_input(rbuf, 5);
+    int tama_lv2_end = *(int*)smanager->get_input(rbuf, 6);
+    int laser_lv1_end = *(int*)smanager->get_input(rbuf, 7);
+
+    CHARACTER *p = &property->p;
     int *enemycount = &property->enemycount;
     tama1 *tlv3 = &property->tlv3;
 
@@ -34,40 +39,35 @@
     ex = p->x;
     ey = p->y;
 
-    int length = 1;
-    smanager->set_outputSize(2, sizeof(ObjContainer)+sizeof(ObjData)*(length-1));
-    smanager->setup_outputData();
-    
-    CHARACTER *q = (CHARACTER*)smanager->get_output(wbuf, 0);
     CollisionPropertyPtr w_property
-	= (CollisionPropertyPtr)smanager->get_output(wbuf, 1);
-    ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 2);
+	= (CollisionPropertyPtr)smanager->get_output(wbuf, 0);
+    ObjContainerPtr sprite = (ObjContainerPtr)smanager->get_output(wbuf, 1);
     sprite->flag = false;
-    sprite->length = length;
+    sprite->length = 1;
 
 //自機やられ
 #ifndef INVISIBLE_MODE
     if ((ex < jiki->x + 128 / 2) && (ex + w > jiki->x + 128 / 2)
 	&& (ey < jiki->y + 128 / 2) && (ey + h > jiki->y + 128 / 2)
 	&& jiki->muteki == 0) {
+	
 	sprite->flag = true;
 	Bom(jiki->x + 16, jiki->y + 16, &sprite->data[0]);
+	
+	property->collision_type = JIKI;
+
 	jiki->bf = FALSE;
 	jiki->zanki--;
-	jiki->muteki = 120;
-	
+	jiki->muteki = 120;	
+	property->jiki = *jiki;
 
 	infg->stg = 0;
-	*infg_level--;
-	if (*infg_level < 0)
-	    *infg_level = 0;
+	infg_level--;
+	if (infg_level < 0)
+	    infg_level = 0;
 
-	property->infg_level = *infg_level;
-	property->jiki = *jiki;
-	property->lg = *lg;
-	property->infg = *infg;
+	property->infg_level = infg_level;
 
-	*q = *p;
 	*w_property = *property;
 	return 0;
     }
@@ -81,6 +81,8 @@
 	    && (ex + w > tama_lv1[i1].x + 16)
 	    && (tama_lv1[i1].y + 128 > ey) && (tama_lv1[i1].y < ey + h)
 	    && (tama_lv1[i1].r != -1)) {
+	    property->collision_type = TAMALV1;
+
 	    tama_lv1[i1].r = -1;
 	    p->vit -= TAMALV1P;
 	    infg->stg++;
@@ -89,16 +91,10 @@
 		sprite->flag = true;
 		Bom(p->x, p->y, &sprite->data[0]);
 		*enemycount += (p->score *
-			       ((infg->stg / 128) + *infg_level + 1));
+			       ((infg->stg / 128) + infg_level + 1));
 		p->task = DELETE_CHARA;
 		p->f = FALSE;
 
-		property->infg_level = *infg_level;
-		property->jiki = *jiki;
-		property->lg = *lg;
-		property->infg = *infg;
-		
-		*q = *p;
 		*w_property = *property;
 		return 0;
 	    }
@@ -106,6 +102,8 @@
 	if ((tama_lv1[i1].x + 64 > ex) && (ex + w > tama_lv1[i1].x)
 	    && (tama_lv1[i1].y + 128 > ey) && (tama_lv1[i1].y < ey + h)
 	    && (tama_lv1[i1].l != -1)) {
+	    property->collision_type = TAMALV1;
+
 	    tama_lv1[i1].l = -1;
 	    p->vit -= TAMALV1P;
 	    infg->stg++;
@@ -114,16 +112,10 @@
 		sprite->flag = true;
 		Bom(p->x, p->y, &sprite->data[0]);
 		*enemycount += (p->score *
-			       ((infg->stg / 128) + *infg_level + 1));
+			       ((infg->stg / 128) + infg_level + 1));
 		p->task = DELETE_CHARA;
 		p->f = FALSE;
 
-		property->infg_level = *infg_level;
-		property->jiki = *jiki;
-		property->lg = *lg;
-		property->infg = *infg;
-		
-		*q = *p;
 		*w_property = *property;
 		return 0;
 	    }
@@ -135,6 +127,8 @@
 	    && (ex + w > tama_lv2[i1].x + 128)
 	    && (tama_lv2[i1].y + 192 > ey) && (tama_lv2[i1].y < ey + h)
 	    && (tama_lv2[i1].rr != -1)) {
+	    property->collision_type = TAMALV2;
+
 	    tama_lv2[i1].rr = -1;
 	    p->vit -= TAMALV2P;
 	    infg->stg++;
@@ -143,16 +137,10 @@
 		sprite->flag = true;
 		Bom(p->x, p->y, &sprite->data[0]);
 		*enemycount += (p->score *
-			       ((infg->stg / 128) + *infg_level + 1));
+			       ((infg->stg / 128) + infg_level + 1));
 		p->task = DELETE_CHARA;
 		p->f = FALSE;
 
-		property->infg_level = *infg_level;
-		property->jiki = *jiki;
-		property->lg = *lg;
-		property->infg = *infg;
-		
-		*q = *p;
 		*w_property = *property;
 		return 0;
 	    }
@@ -163,6 +151,8 @@
 	    && (tama_lv2[i1].y - 32 + 192 > ey)
 	    && (tama_lv2[i1].y - 32 < ey + h)
 	    && (tama_lv2[i1].sr != -1)) {
+	    property->collision_type = TAMALV2;
+
 	    tama_lv2[i1].sr = -1;
 	    p->vit -= TAMALV2P;
 	    infg->stg++;
@@ -171,16 +161,10 @@
 		sprite->flag = true;
 		Bom(p->x, p->y, &sprite->data[0]);
 		*enemycount += (p->score *
-			       ((infg->stg / 128) + *infg_level + 1));
+			       ((infg->stg / 128) + infg_level + 1));
 		p->task = DELETE_CHARA;
 		p->f = FALSE;
 
-		property->infg_level = *infg_level;
-		property->jiki = *jiki;
-		property->lg = *lg;
-		property->infg = *infg;
-		
-		*q = *p;
 		*w_property = *property;
 		return 0;
 	    }
@@ -189,6 +173,8 @@
 	    && (tama_lv2[i1].y - 32 + 192 > ey)
 	    && (tama_lv2[i1].y - 32 < ey + h)
 	    && (tama_lv2[i1].sl != -1)) {
+	    property->collision_type = TAMALV2;
+
 	    tama_lv2[i1].sl = -1;
 	    p->vit -= TAMALV2P;
 	    infg->stg++;
@@ -197,16 +183,10 @@
 		sprite->flag = true;
 		Bom(p->x, p->y, &sprite->data[0]);
 		*enemycount += (p->score *
-			       ((infg->stg / 128) + *infg_level + 1));
+			       ((infg->stg / 128) + infg_level + 1));
 		p->task = DELETE_CHARA;
 		p->f = FALSE;
 
-		property->infg_level = *infg_level;
-		property->jiki = *jiki;
-		property->lg = *lg;
-		property->infg = *infg;
-		
-		*q = *p;
 		*w_property = *property;
 		return 0;
 	    }
@@ -215,6 +195,8 @@
 	    && (ex + w > tama_lv2[i1].x - 64)
 	    && (tama_lv2[i1].y + 192 > ey) && (tama_lv2[i1].y < ey + h)
 	    && (tama_lv2[i1].ll != -1)) {
+	    property->collision_type = TAMALV2;
+
 	    tama_lv2[i1].ll = -1;
 	    p->vit -= TAMALV2P;
 	    infg->stg++;
@@ -223,16 +205,10 @@
 		sprite->flag = true;
 		Bom(p->x, p->y, &sprite->data[0]);
 		*enemycount += (p->score *
-			       ((infg->stg / 128) + *infg_level + 1));
+			       ((infg->stg / 128) + infg_level + 1));
 		p->task = DELETE_CHARA;
 		p->f = FALSE;
 
-		property->infg_level = *infg_level;
-		property->jiki = *jiki;
-		property->lg = *lg;
-		property->infg = *infg;
-		
-		*q = *p;
 		*w_property = *property;
 		return 0;
 	    }
@@ -240,6 +216,8 @@
     }
     if ((tlv3->r > 0) && (jiki->x < ex + w) && (jiki->x + 128 > ex)
 	&& (jiki->y > ey + h)) {
+	property->collision_type = TAMALV3;
+
 	p->vit -= TAMALV3P;
 	infg->stg++;
 	if (p->vit <= 0) {
@@ -247,16 +225,10 @@
 	    sprite->flag = true;
 	    Bom(p->x, p->y, &sprite->data[0]);
 	    *enemycount += (p->score *
-			   ((infg->stg / 128) + *infg_level + 1));
+			   ((infg->stg / 128) + infg_level + 1));
 	    p->task = DELETE_CHARA;
 	    p->f = FALSE;
 
-	    property->infg_level = *infg_level;
-	    property->jiki = *jiki;
-	    property->lg = *lg;
-	    property->infg = *infg;
-	    
-	    *q = *p;
 	    *w_property = *property;
 	    return 0;
 	}
@@ -264,6 +236,8 @@
 jumping:
     if ((tlv3->r > 0) && (jiki->x < ex + w) && (jiki->x + 128 > ex)
 	&& (jiki->y + 128 > ey) && (jiki->y < ey + h)) {
+	property->collision_type = TAMALV3;
+
 	p->vit -= TAMALV3P;
 	infg->stg++;
 	if (p->vit <= 0) {
@@ -271,16 +245,10 @@
 	    sprite->flag = true;
 	    Bom(p->x, p->y, &sprite->data[0]);
 	    *enemycount += (p->score *
-			   ((infg->stg / 128) + *infg_level + 1));
+			   ((infg->stg / 128) + infg_level + 1));
 	    p->task = DELETE_CHARA;
 	    p->f = FALSE;
 
-	    property->infg_level = *infg_level;
-	    property->jiki = *jiki;
-	    property->lg = *lg;
-	    property->infg = *infg;
-	    
-	    *q = *p;
 	    *w_property = *property;
 	    return 0;
 	}
@@ -292,6 +260,8 @@
 	if ((laser_lv1[i1].x + n > ex) && (ex + w > laser_lv1[i1].x)
 	    && (laser_lv1[i1].y + n > ey) && (laser_lv1[i1].y < ey + h)
 	    && (laser_lv1[i1].r != -1)) {
+	    property->collision_type = LASERLV1;
+
 	    laser_lv1[i1].r = -1;
 	    laser_lv1[i1].y = -1;
 	    p->vit -= LASERLV1P;
@@ -301,16 +271,10 @@
 		sprite->flag = true;
 		Bom(p->x, p->y, &sprite->data[0]);
 		*enemycount += (p->score *
-			       ((infg->stg / 128) + *infg_level + 1));
+			       ((infg->stg / 128) + infg_level + 1));
 		p->task = DELETE_CHARA;
 		p->f = FALSE;
 
-		property->infg_level = *infg_level;
-		property->jiki = *jiki;
-		property->lg = *lg;
-		property->infg = *infg;
-		
-		*q = *p;
 		*w_property = *property;
 		return 0;
 	    }
@@ -321,24 +285,23 @@
 	(laser_lv2[0].x + 128 > ex) && (ex + w > laser_lv2[0].x - 128)
 	&& (laser_lv2[0].y + 128 > ey) && (laser_lv2[0].y - 128 < ey + h)
 	&& (laser_lv2[0].r != 0)) {
+	property->collision_type = LASERLV2;
+
 	p->vit -= LASERLV2P;
 	lg->stg -= 26;
+
 	infg->stg++;
 	if (p->vit <= 0) {
 	    infg->stg += 4;
+	    property->infg = *infg;
+
 	    sprite->flag = true;
 	    Bom(p->x, p->y, &sprite->data[0]);
 	    *enemycount += (p->score *
-			   ((infg->stg / 128) + *infg_level + 1));
+			   ((infg->stg / 128) + infg_level + 1));
 	    p->task = DELETE_CHARA;
 	    p->f = FALSE;
-
-	    property->infg_level = *infg_level;
-	    property->jiki = *jiki;
-	    property->lg = *lg;
-	    property->infg = *infg;
 	    
-	    *q = *p;
 	    *w_property = *property;
 	    return 0;
 	}
@@ -350,6 +313,8 @@
 		&& (laser_lv3[i1].y + 128 > ey)
 		&& (laser_lv3[i1].y < ey + h)
 		&& (laser_lv3[i1].r > 0)) {
+		property->collision_type = LASERLV3;
+
 		tama_lv2[i1].rr = -1;
 		p->vit -= LASERLV3P;
 		infg->stg++;
@@ -358,16 +323,10 @@
 		    sprite->flag = true;
 		    Bom(p->x, p->y, &sprite->data[0]);
 		    *enemycount += (p->score *
-				   ((infg->stg / 128) + *infg_level + 1));
+				   ((infg->stg / 128) + infg_level + 1));
 		    p->task = DELETE_CHARA;
 		    p->f = FALSE;
 
-		    property->infg_level = *infg_level;
-		    property->jiki = *jiki;
-		    property->lg = *lg;
-		    property->infg = *infg;
-		    
-		    *q = *p;
 		    *w_property = *property;
 		    return 0;
 		}
@@ -375,12 +334,8 @@
 	}
     }
 
-    property->infg_level = *infg_level;
-    property->jiki = *jiki;
-    property->lg = *lg;
-    property->infg = *infg;
+    property->collision_type = NO;
     
-    *q = *p;
     *w_property = *property;
     return 0;
 }
--- a/ppe/task_object.h	Sun Jan 23 19:01:34 2011 +0900
+++ b/ppe/task_object.h	Tue Jan 25 17:43:30 2011 +0900
@@ -101,9 +101,11 @@
 
 
 typedef struct CollisionProperty {
+  int collision_type;
   int infg_level;
   int enemycount;
 
+  CHARACTER p;
   player jiki;
   stge lg;
   stge infg;
--- a/property.h	Sun Jan 23 19:01:34 2011 +0900
+++ b/property.h	Tue Jan 25 17:43:30 2011 +0900
@@ -1,26 +1,23 @@
 #ifndef INCLUDE_PROPERTY
 #define INCLUDE_PROPERTY
 
-#include "Character.h"
-#include "bom.h"
-#include "count2.h"
-#include "sgoex.h"
-
 typedef struct CollisionProperty {
+  int collision_type;
   int infg_level;
   int enemycount;
-
+  
+  CHARACTER p;
   player jiki;
   stge lg;
   stge infg;
-
+  
   tama1 tama_lv1[20];
   tama2 tama_lv2[20];
   tama1 tlv3;
   laser laser_lv1[20];
   laser laser_lv2;
   laser laser_lv3[128];
-
+  
 } CollisionProperty, *CollisionPropertyPtr;
 
 
--- a/spe/task_object.h	Sun Jan 23 19:01:34 2011 +0900
+++ b/spe/task_object.h	Tue Jan 25 17:43:30 2011 +0900
@@ -104,6 +104,7 @@
   int infg_level;
   int enemycount;
 
+  CHARACTER p;
   player jiki;
   stge lg;
   stge infg;
--- a/state_task.cc	Sun Jan 23 19:01:34 2011 +0900
+++ b/state_task.cc	Tue Jan 25 17:43:30 2011 +0900
@@ -84,7 +84,7 @@
     CHARACTER *p = (CHARACTER*)chara;
 
     int num = GetStateNum(p->task);
-    p->state = state_list[num];
+    p->state = state_list[num].state;
 }
 
 
@@ -95,7 +95,7 @@
     printf("x = %f, y = %f, vx = %f, vy = %f\n",p->x, p->y, p->vx, p->vy);
 
     int num = GetStateNum(p->task);
-    p->state = state_list[num];
+    p->state = state_list[num].state;
 }
 
 
@@ -107,7 +107,7 @@
     CHARACTER *p = (CHARACTER*)chara;
 
     int num = GetStateNum(p->task);
-    p->state = state_list[num];
+    p->state = state_list[num].state;
 }
 
 
@@ -134,7 +134,7 @@
 	    case Enemy: {
 		int task_num = GetStateNum(obj_data->task);
 		Putenemy(obj_data->charano, obj_data->x, obj_data->y,
-			 obj_data->vx, obj_data->vy, state_list[task_num]);
+			 obj_data->vx, obj_data->vy, state_list[task_num].state);
 		break;
 	    }
 	    case Def:
@@ -154,7 +154,7 @@
 	}
     }
     int num = GetStateNum(p->task);
-    p->state = state_list[num];
+    p->state = state_list[num].state;
     
     free(new_obj);
 }
@@ -596,17 +596,19 @@
 CHARACTER*
 delete_chara(CHARACTER *p)
 {
-  if (p->tama == FALSE) {
-    printf("F%d: DELETE  [NAME]%s_%d  [VIT]%lf  [COORD]x= %f  y= %f  vx= %f  vy= %f\n",
-	   filpcount, dtable[p->charano].name, p->chara_id, p->vit,
-	   p->x, p->y, p->vx, p->vy);
-  }
+    if (p->tama == FALSE) {
+	printf("F%d: DELETE  [NAME]%s_%d  [COORD]x= %f  y= %f  vx= %f  vy= %f\n",
+	       filpcount, dtable[p->charano].name, p->chara_id,
+	       p->x, p->y, p->vx, p->vy);
+	printf("               [TAMA]lv1 = %d, lv2 = %d [LASER]lv1 = %d\n",
+	       tama_lv1_end, tama_lv2_end, laser_lv1_end);
+    }
 
-  CHARACTER *parent = p;
-  p->f = FALSE;
-  p->state = noaction;
-  p->collision = noaction;
-  return parent;
+    CHARACTER *parent = p;
+    p->f = FALSE;
+    p->state = noaction;
+    p->collision = noaction;
+    return parent;
 }
 
 
@@ -776,7 +778,7 @@
     p->task = STATE25;
 
     int num = GetStateNum(p->task);
-    p->state = state_list[num];
+    p->state = state_list[num].state;
     return p;
 }
 
@@ -913,7 +915,7 @@
     p->task = STATE411;
     
     int num = GetStateNum(p->task);
-    p->state = state_list[num];
+    p->state = state_list[num].state;
     return p;
 }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tdandy_log	Tue Jan 25 17:43:30 2011 +0900
@@ -0,0 +1,203 @@
+Start Trace mode.
+Use Keyboard
+F64: CREATE  [NAME]enemy_greenclab_0  [COORD]x= 120.000000  y= -128.000000  vx= 0.000000  vy= 4.000000
+F85: DELETE  [NAME]enemy_greenclab_0  [COORD]x= 120.000000  y= -44.000000  vx= 0.000000  vy= 4.000000
+               [TAMA]lv1 = 1, lv2 = -1 [LASER]lv1 = -1
+F96: CREATE  [NAME]enemy_greenclab_1  [COORD]x= 56.000000  y= -128.000000  vx= 0.000000  vy= 8.000000
+F96: CREATE  [NAME]enemy_greenclab_2  [COORD]x= 184.000000  y= -128.000000  vx= 0.000000  vy= 8.000000
+F109: DELETE  [NAME]enemy_greenclab_1  [COORD]x= 56.000000  y= -24.000000  vx= 0.000000  vy= 8.000000
+               [TAMA]lv1 = 1, lv2 = -1 [LASER]lv1 = -1
+F109: DELETE  [NAME]enemy_greenclab_2  [COORD]x= 184.000000  y= -24.000000  vx= 0.000000  vy= 8.000000
+               [TAMA]lv1 = 1, lv2 = -1 [LASER]lv1 = -1
+F128: CREATE  [NAME]enemy_greenclab_3  [COORD]x= 120.000000  y= -128.000000  vx= 0.000000  vy= 4.000000
+F156: DELETE  [NAME]enemy_greenclab_3  [COORD]x= 120.000000  y= -16.000000  vx= 0.000000  vy= 4.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F160: CREATE  [NAME]enemy_greenclab_4  [COORD]x= 224.000000  y= -128.000000  vx= 1.000000  vy= 1.000000
+F160: CREATE  [NAME]enemy_greenclab_5  [COORD]x= 184.000000  y= -128.000000  vx= 1.000000  vy= 1.000000
+F192: CREATE  [NAME]enemy_greenclab_6  [COORD]x= 120.000000  y= -128.000000  vx= 1.000000  vy= 2.000000
+F203: DELETE  [NAME]enemy_greenclab_5  [COORD]x= 227.000000  y= -85.000000  vx= 1.000000  vy= 1.000000
+               [TAMA]lv1 = -1, lv2 = -1 [LASER]lv1 = -1
+F223: DELETE  [NAME]enemy_greenclab_4  [COORD]x= 287.000000  y= -65.000000  vx= 1.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F223: DELETE  [NAME]enemy_greenclab_6  [COORD]x= 151.000000  y= -66.000000  vx= 1.000000  vy= 2.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F224: CREATE  [NAME]enemy_greenclab_7  [COORD]x= 56.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F224: CREATE  [NAME]enemy_greenclab_8  [COORD]x= 184.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F247: DELETE  [NAME]enemy_greenclab_8  [COORD]x= 184.000000  y= -105.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F256: CREATE  [NAME]enemy_plane_0  [COORD]x= 120.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F360: DELETE  [NAME]enemy_plane_0  [COORD]x= 120.000000  y= -24.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F368: DELETE  [NAME]enemy_greenclab_7  [COORD]x= 56.000000  y= 16.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F384: CREATE  [NAME]enemy_greenclab_9  [COORD]x= 1032.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F416: CREATE  [NAME]enemy_greenclab_10  [COORD]x= 1032.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F448: CREATE  [NAME]enemy_greenclab_11  [COORD]x= 1032.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F480: CREATE  [NAME]enemy_plane_1  [COORD]x= 1032.000000  y= -128.000000  vx= -1.000000  vy= 1.000000
+F512: CREATE  [NAME]enemy_plane_2  [COORD]x= 1032.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F544: CREATE  [NAME]enemy_plane_3  [COORD]x= 1032.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F576: CREATE  [NAME]enemy_greenclab_12  [COORD]x= 1032.000000  y= -32.000000  vx= 0.000000  vy= 1.000000
+F576: CREATE  [NAME]enemy_greenclab_13  [COORD]x= 1152.000000  y= -128.000000  vx= -2.000000  vy= 1.000000
+F576: CREATE  [NAME]enemy_greenclab_14  [COORD]x= 800.000000  y= -88.000000  vx= -1.000000  vy= 1.000000
+F629: DELETE  [NAME]enemy_greenclab_14  [COORD]x= 747.000000  y= -35.000000  vx= -1.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F643: DELETE  [NAME]enemy_plane_1  [COORD]x= 869.000000  y= 35.000000  vx= -1.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F701: DELETE  [NAME]enemy_greenclab_13  [COORD]x= 902.000000  y= -3.000000  vx= -2.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F722: DELETE  [NAME]enemy_greenclab_9  [COORD]x= 1032.000000  y= 210.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F723: DELETE  [NAME]enemy_plane_2  [COORD]x= 1032.000000  y= 83.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F725: DELETE  [NAME]enemy_greenclab_10  [COORD]x= 1032.000000  y= 181.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F725: DELETE  [NAME]enemy_greenclab_11  [COORD]x= 1032.000000  y= 149.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F735: DELETE  [NAME]enemy_greenclab_12  [COORD]x= 1032.000000  y= 127.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F742: DELETE  [NAME]enemy_plane_3  [COORD]x= 1032.000000  y= 70.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F768: CREATE  [NAME]enemy_greenclab_15  [COORD]x= 256.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F768: CREATE  [NAME]enemy_greenclab_16  [COORD]x= 896.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F800: CREATE  [NAME]enemy_plane_4  [COORD]x= 512.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F800: CREATE  [NAME]enemy_plane_5  [COORD]x= 1152.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F832: CREATE  [NAME]enemy_greenclab_17  [COORD]x= 384.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F832: CREATE  [NAME]enemy_greenclab_18  [COORD]x= 1024.000000  y= -128.000000  vx= 0.000000  vy= 2.000000
+F832: CREATE  [NAME]enemy_greenclab_19  [COORD]x= 512.000000  y= -128.000000  vx= 0.000000  vy= 3.000000
+F832: CREATE  [NAME]enemy_greenclab_20  [COORD]x= 1024.000000  y= -128.000000  vx= 0.000000  vy= 2.000000
+F855: DELETE  [NAME]enemy_greenclab_16  [COORD]x= 896.000000  y= -41.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F864: CREATE  [NAME]enemy_plane_6  [COORD]x= 512.000000  y= -128.000000  vx= 0.000000  vy= 3.000000
+F864: CREATE  [NAME]enemy_plane_7  [COORD]x= 128.000000  y= -128.000000  vx= 0.000000  vy= 2.000000
+F864: CREATE  [NAME]enemy_plane_8  [COORD]x= 768.000000  y= -128.000000  vx= 0.000000  vy= 4.000000
+F864: CREATE  [NAME]enemy_plane_9  [COORD]x= 128.000000  y= -128.000000  vx= 0.000000  vy= 3.000000
+F873: DELETE  [NAME]enemy_plane_8  [COORD]x= 768.000000  y= -103.250000  vx= 0.000000  vy= 1.750000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F896: CREATE  [NAME]enemy_greenclab_21  [COORD]x= 256.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F896: CREATE  [NAME]enemy_greenclab_22  [COORD]x= 896.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F913: DELETE  [NAME]enemy_greenclab_18  [COORD]x= 1024.000000  y= 34.000000  vx= 0.000000  vy= 2.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F913: DELETE  [NAME]enemy_greenclab_20  [COORD]x= 1024.000000  y= 34.000000  vx= 0.000000  vy= 2.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F918: DELETE  [NAME]enemy_greenclab_22  [COORD]x= 896.000000  y= -106.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F928: CREATE  [NAME]enemy_plane_10  [COORD]x= 256.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F928: CREATE  [NAME]enemy_plane_11  [COORD]x= 896.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F945: DELETE  [NAME]enemy_plane_11  [COORD]x= 896.000000  y= -111.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F954: DELETE  [NAME]enemy_plane_5  [COORD]x= 1152.000000  y= 26.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F960: CREATE  [NAME]enemy_greenclab_23  [COORD]x= 256.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F960: CREATE  [NAME]enemy_greenclab_24  [COORD]x= 896.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F1026: DELETE  [NAME]enemy_greenclab_24  [COORD]x= 896.000000  y= -62.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F1056: CREATE  [NAME]enemy_greenclab_25  [COORD]x= 256.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1056: CREATE  [NAME]enemy_greenclab_26  [COORD]x= 896.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1088: CREATE  [NAME]enemy_plane_12  [COORD]x= 256.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1088: CREATE  [NAME]enemy_plane_13  [COORD]x= 896.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1102: DELETE  [NAME]enemy_greenclab_19  [COORD]x= 680.000000  y= 472.000000  vx= 4.000000  vy= -2.000000
+               [TAMA]lv1 = 1, lv2 = -1 [LASER]lv1 = -1
+F1120: CREATE  [NAME]enemy_greenclab_27  [COORD]x= 256.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1120: CREATE  [NAME]enemy_greenclab_28  [COORD]x= 896.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1152: CREATE  [NAME]enemy_plane_14  [COORD]x= 256.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1152: CREATE  [NAME]enemy_plane_15  [COORD]x= 896.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1184: CREATE  [NAME]enemy_greenclab_29  [COORD]x= 256.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1184: CREATE  [NAME]enemy_greenclab_30  [COORD]x= 896.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1195: DELETE  [NAME]enemy_plane_4  [COORD]x= 512.000000  y= 267.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 1, lv2 = -1 [LASER]lv1 = -1
+F1216: CREATE  [NAME]enemy_plane_16  [COORD]x= 256.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1216: CREATE  [NAME]enemy_plane_17  [COORD]x= 896.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1241: DELETE  [NAME]enemy_greenclab_17  [COORD]x= 384.000000  y= 281.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 1, lv2 = -1 [LASER]lv1 = -1
+F1248: CREATE  [NAME]enemy_greenclab_31  [COORD]x= 256.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1248: CREATE  [NAME]enemy_greenclab_32  [COORD]x= 896.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1284: DELETE  [NAME]enemy_greenclab_15  [COORD]x= 256.000000  y= 388.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F1284: DELETE  [NAME]enemy_plane_10  [COORD]x= 256.000000  y= 228.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F1286: DELETE  [NAME]enemy_greenclab_21  [COORD]x= 256.000000  y= 262.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F1287: DELETE  [NAME]enemy_greenclab_23  [COORD]x= 256.000000  y= 199.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F1472: CREATE  [NAME]gunbattery_0  [COORD]x= 963.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F1600: CREATE  [NAME]gunbattery_1  [COORD]x= 205.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F1686: DELETE  [NAME]gunbattery_0  [COORD]x= 963.000000  y= 86.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F1728: CREATE  [NAME]gunbattery_2  [COORD]x= 280.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F1908: DELETE  [NAME]gunbattery_2  [COORD]x= 280.000000  y= 52.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F1920: CREATE  [NAME]enemy_greenclab_33  [COORD]x= 256.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1920: CREATE  [NAME]enemy_greenclab_34  [COORD]x= 896.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1930: DELETE  [NAME]gunbattery_1  [COORD]x= 205.000000  y= 202.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F1952: CREATE  [NAME]enemy_greenclab_35  [COORD]x= 256.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1952: CREATE  [NAME]enemy_greenclab_36  [COORD]x= 896.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1984: CREATE  [NAME]enemy_greenclab_37  [COORD]x= 256.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F1984: CREATE  [NAME]enemy_greenclab_38  [COORD]x= 896.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F2016: CREATE  [NAME]enemy_greenclab_39  [COORD]x= 256.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F2016: CREATE  [NAME]enemy_greenclab_40  [COORD]x= 896.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F2048: CREATE  [NAME]enemy_greenclab_41  [COORD]x= 256.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F2048: CREATE  [NAME]enemy_greenclab_42  [COORD]x= 896.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F2080: CREATE  [NAME]gunbattery_3  [COORD]x= 256.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F2080: CREATE  [NAME]gunbattery_4  [COORD]x= 896.000000  y= 1088.000000  vx= 0.000000  vy= -1.000000
+F2112: CREATE  [NAME]purplecore_0  [COORD]x= 213.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F2240: CREATE  [NAME]purplecore_1  [COORD]x= 371.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F2260: DELETE  [NAME]purplecore_0  [COORD]x= 213.000000  y= 20.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 1, lv2 = -1 [LASER]lv1 = -1
+F2368: CREATE  [NAME]purplecore_2  [COORD]x= 909.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F2496: CREATE  [NAME]purplecore_3  [COORD]x= 163.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F2513: DELETE  [NAME]purplecore_2  [COORD]x= 909.000000  y= 17.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 1, lv2 = -1 [LASER]lv1 = -1
+F2560: CREATE  [NAME]spacefish_0  [COORD]x= 1058.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F2592: CREATE  [NAME]spacefish_1  [COORD]x= 256.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F2592: CREATE  [NAME]spacefish_2  [COORD]x= 896.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F2615: DELETE  [NAME]spacefish_0  [COORD]x= 1058.000000  y= -73.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 1, lv2 = -1 [LASER]lv1 = -1
+F2651: DELETE  [NAME]spacefish_2  [COORD]x= 896.000000  y= -69.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 1, lv2 = -1 [LASER]lv1 = -1
+F2656: CREATE  [NAME]spacefish_3  [COORD]x= 256.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F2656: CREATE  [NAME]spacefish_4  [COORD]x= 896.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F2688: CREATE  [NAME]spacefish_5  [COORD]x= 289.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F2712: DELETE  [NAME]spacefish_4  [COORD]x= 896.000000  y= -72.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 1, lv2 = -1 [LASER]lv1 = -1
+F2720: CREATE  [NAME]spacefish_6  [COORD]x= 256.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F2720: CREATE  [NAME]spacefish_7  [COORD]x= 896.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F2816: CREATE  [NAME]spacefish_8  [COORD]x= 950.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F2823: DELETE  [NAME]purplecore_1  [COORD]x= 371.000000  y= 455.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F2856: DELETE  [NAME]spacefish_5  [COORD]x= 289.000000  y= 40.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F2864: DELETE  [NAME]spacefish_1  [COORD]x= 256.000000  y= 144.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F2866: DELETE  [NAME]spacefish_3  [COORD]x= 256.000000  y= 82.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 3, lv2 = -1 [LASER]lv1 = -1
+F2868: DELETE  [NAME]spacefish_6  [COORD]x= 256.000000  y= 20.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F2944: CREATE  [NAME]spacefish_9  [COORD]x= 921.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F2965: DELETE  [NAME]purplecore_3  [COORD]x= 163.000000  y= 341.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 3, lv2 = -1 [LASER]lv1 = -1
+F3200: CREATE  [NAME]purplecore_4  [COORD]x= 256.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F3200: CREATE  [NAME]purplecore_5  [COORD]x= 896.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F3207: DELETE  [NAME]spacefish_7  [COORD]x= 896.000000  y= 359.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 1, lv2 = -1 [LASER]lv1 = -1
+F3220: DELETE  [NAME]spacefish_9  [COORD]x= 921.000000  y= 148.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F3227: DELETE  [NAME]spacefish_8  [COORD]x= 950.000000  y= 283.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F3256: DELETE  [NAME]purplecore_5  [COORD]x= 896.000000  y= -72.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F3328: CREATE  [NAME]purplecore_6  [COORD]x= 256.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F3328: CREATE  [NAME]purplecore_7  [COORD]x= 896.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F3456: CREATE  [NAME]purplecore_8  [COORD]x= 256.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F3456: CREATE  [NAME]purplecore_9  [COORD]x= 896.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F3465: DELETE  [NAME]purplecore_6  [COORD]x= 256.000000  y= 9.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F3511: DELETE  [NAME]purplecore_8  [COORD]x= 256.000000  y= -73.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 2, lv2 = -1 [LASER]lv1 = -1
+F3584: CREATE  [NAME]purplecore_10  [COORD]x= 256.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F3584: CREATE  [NAME]purplecore_11  [COORD]x= 896.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+F3964: DELETE  [NAME]purplecore_10  [COORD]x= 256.000000  y= 252.000000  vx= 0.000000  vy= 1.000000
+               [TAMA]lv1 = 1, lv2 = -1 [LASER]lv1 = -1
+F4160: CREATE  [NAME]boss1_organ_0  [COORD]x= 520.000000  y= -128.000000  vx= 0.000000  vy= 1.000000
+0.000000 FPS
+game end