changeset 4:bb2fbe78c7cd

moving title scene.
author koba <koba@cr.ie.u-ryukyu.ac.jp>
date Tue, 07 Dec 2010 18:37:43 +0900
parents deb7e09824a4
children 93bdb789e60d
files sound/NEW.wav sound/bomber.wav sound/jikiout.wav sound/ring.wav sound/sample.wav sound/shota.wav sound/shotb.wav sound/shotc.wav src/Bom.cc src/Character.cc src/Character.h src/Character_state.cc src/Character_state.h src/LoadSprite.cc src/LoadSprite.h src/Makefile src/Makefile.cell src/Makefile.def src/Makefile.macosx src/S_Dandy.cc src/S_Dandy.h src/Ss.cc src/Ss.h src/b64_de.cc src/collision.cc src/collision.h src/count.cc src/count.h src/debug.cc src/debug.h src/error.h src/object.h src/profile.cc src/sankaku.h src/schedule.cc src/schedule.h src/sgoex.cc src/sgoex.h src/sound.cc src/syokika.cc src/syokika.h src/tama.cc src/texture.h src/tokuten.cc src/tokuten.h src/tree_controll.h xml/boss.xml xml/character.xml xml/effect.xml xml/font.xml
diffstat 50 files changed, 6114 insertions(+), 4777 deletions(-) [+]
line wrap: on
line diff
Binary file sound/NEW.wav has changed
Binary file sound/bomber.wav has changed
Binary file sound/jikiout.wav has changed
Binary file sound/ring.wav has changed
Binary file sound/sample.wav has changed
Binary file sound/shota.wav has changed
Binary file sound/shotb.wav has changed
Binary file sound/shotc.wav has changed
--- a/src/Bom.cc	Thu May 20 19:51:03 2010 +0900
+++ b/src/Bom.cc	Tue Dec 07 18:37:43 2010 +0900
@@ -1,16 +1,14 @@
 #include <stdlib.h>
 #include <SDL.h>
+
 #include "object.h"
 #include "bom.h"
-//#include "libps.h"
 #include "sgoex.h"
 #include"debug.h"
 
 int sb_x, sb_y;
 int sb_size = -1;
-int count;
 int se_voice[9];
-int vab[10];
 
 bomchar bchar[100];
 bomchar *bom_p;
--- a/src/Character.cc	Thu May 20 19:51:03 2010 +0900
+++ b/src/Character.cc	Tue Dec 07 18:37:43 2010 +0900
@@ -1,33 +1,37 @@
 #include <stdio.h>
 #include <stdlib.h>
-#include "syokika.h"
-#include "bool.h"
 #include <SDL.h>
-//#include "SDL_opengl.h"
+
+#include "SDL_opengl.h"
 #include "object.h"
 #include "Character.h"
 #include "Character_state.h"
-#include "count2.h"
-#include "tokuten.h"
+#include "collision.h"
+#include "count.h"
 #include "schedule.h"
 #include "sankaku.h"
 #include "sgoex.h"
-#include "collision.h"
 #include "debug.h"
+#include "syokika.h"
+#include "bool.h"
+#include "tokuten.h"
+#include "error.h"
 
-#include "error.h"
+#include "SceneGraph.h"
 
 #define CHARACTER_MAX_POOL_SIZE 2048
 
+const table enemystate[] = ENEMY_STATUS_TABLE;
+SpriteTable *active_chara_list;
+SpriteTable *free_chara_list;
 
-const table enemystate[] = ENEMY_STATUS_TABLE;
 int filpcount = 0;
 int stage = 0;
 BOOL tf = FALSE;
 static int pool_size;
 
-#if 0
-int init_chara_list(int num)
+int
+init_chara_list(int num)
 {
   if(active_chara_list == NULL)
     {
@@ -62,33 +66,33 @@
   __debug("task init start");
 
   int i;
-  CHARACTER * q[num];
+  SpriteTable *q[num];
   
   for(i = 0; i<num ; i++)
     {
-      q[i] = (CHARACTER*)malloc(sizeof(CHARACTER));
+      q[i] = (SpriteTable*)malloc(sizeof(SpriteTable));
       q[i]->f = FALSE;
-      q[i]->state = noaction;
-      q[i]->collision = noaction;
+//      q[i]->state = noaction;
+//      q[i]->collision = noaction;
     }
 
   for(i = 0; i<num-1 ; i++)
     {
-      q[i]->next = q[i+1];
+//      q[i]->next = q[i+1];
       //q[i]->next->prev = q[i];
     }
   
-  q[num-1]->next = NULL;
-  active_chara_list = (CHARACTER*)malloc(sizeof(CHARACTER));
+//  q[num-1]->next = NULL;
+  active_chara_list = (SpriteTable*)malloc(sizeof(SpriteTable));
   active_chara_list->f = FALSE;
-  active_chara_list->state = noaction;
-  active_chara_list->collision = noaction;
-  active_chara_list->next = q[0];
+//  active_chara_list->state = noaction;
+//  active_chara_list->collision = noaction;
+//  active_chara_list->next = q[0];
   //q[0]->prev = active_chara_list;
   //active_chara_list->prev = q[num-1];
   //q[num-1]->next = active_chara_list;
-  CHARACTER *p;
 
+/*
   for(p = active_chara_list->next; p != NULL ; p = p->next)
     {
       if(p != NULL)
@@ -96,10 +100,10 @@
 	    __debug("list_test");
 	}
     }
+*/
   return 1;
 
 }
-#endif
 
 void
 TFon()
@@ -115,124 +119,74 @@
 
 
 void
-Putenemy(int charano, float x, float y, float vx, float vy,
-	 move_func chara_state)
+Putenemy(Viewer *sgroot, SceneGraphPtr root, int charano, float x, float y,
+	 float vx, float vy, move_func move)
 {
-  SceneGraphPtr character;
-
-  character = sgroot->createSceneGraph(charano);
-  character->xyz[0] = x;
-  character->xyz[1] = y;
-  character->stack_xyz[0] = vx;
-  character->stack_xyz[1] = vy;
-  character->set_move_collision(chara_state, nocollision);
-
-  root->addChild(character);
+  SceneGraphPtr object;
+  char *name = sptable[charano].name;
 
-#if 0
-  CHARACTER *q;
+  sptable[charano].charano = enemystate[charano].charano;
+  sptable[charano].x = x;
+  sptable[charano].y  = y;
+  sptable[charano].vx = vx;
+  sptable[charano].vy = vy;
+  sptable[charano].tama = tf;
+  sptable[charano].vit = enemystate[charano].p;
+  sptable[charano].score = enemystate[charano].sc;
+  sptable[charano].s = 0;
+  sptable[charano].f = TRUE;
 
-  q->state = action;
-  q->collision = atari;
-  q->x = x;
-  q->y = y;
-  q->vx = vx;
-  q->vy = vy;
-  q->tama = tf;
-  q->vit = enemystate[charano].p;
-  q->score = enemystate[charano].sc;
-  q->charano = enemystate[charano].charano;
-  q->s = 0;
-  q->f = TRUE;
-  //q->state = ALIVE;
-  //q->group = ENEMY
-#endif
+  object = sgroot->createSceneGraph(name);
+  object->set_move_collision(move, atari);
+  object->stack_xyz[0] = charano;
+  object->xyz[0] = x;
+  object->xyz[1] = y;
+
+  root->addChild(object);
 }
 
-#if 0
-void 
-Putenemy(int charano, float x, float y, float vx, float vy,
-	 CHARACTER * (*action)(CHARACTER *chara))
+void
+Putenemy(Viewer *sgroot, SceneGraphPtr root, int charano, float x, float y,
+	 float vx, float vy, move_func move, collision_func collision)
 {
-  CHARACTER *q;
-  /*
-  if(!free_chara_list)
-    {
-      pool_size *= 2;
-      if(pool_size > CHARACTER_MAX_POOL_SIZE)
-	{
-	  printf("pool_size over\n");
-	  SDL_Quit();
-	  exit(1);
-	}
-      if (!extend_chara_list_pool(pool_size)) 
-	{
-	  printf("failed to memory allocate\n");
-	  SDL_Quit();
-	  exit(1);
-	}
-    }
-  */
-
-  for(q = active_chara_list->next; q != NULL ;q = q->next)
-    {
-      if(q->f == FALSE)
-	{
-	  break;
-	}
-    }
+  SceneGraphPtr object;
+  char *name = sptable[charano].name;
 
-  q->state = action;
-  q->collision = atari;
-  q->x = x;
-  q->y = y;
-  q->vx = vx;
-  q->vy = vy;
-  q->tama = tf;
-  q->vit = enemystate[charano].p;
-  q->score = enemystate[charano].sc;
-  q->charano = enemystate[charano].charano;
-  q->s = 0;
-  q->f = TRUE;
-  //q->state = ALIVE;
-  //q->group = ENEMY
-
-}
-
+  sptable[charano].charano = enemystate[charano].charano;
+  sptable[charano].x = x;
+  sptable[charano].y  = y;
+  sptable[charano].vx = vx;
+  sptable[charano].vy = vy;
+  sptable[charano].tama = tf;
+  sptable[charano].vit = enemystate[charano].p;
+  sptable[charano].score = enemystate[charano].sc;
+  sptable[charano].s = 0;
+  sptable[charano].f = TRUE;
 
-CHARACTER *
-delete_chara(CHARACTER *p)
-{
-  /*
-  CHARACTER * parent = p->prev;
-  p->state = noaction;
-  p->prev->next = p->next;
-  p->next->prev = p->prev;
-  
-  p->next = free_chara_list->next;
-  free_chara_list->next = p;
-  */
+  object = sgroot->createSceneGraph(name);
+  object->set_move_collision(move, collision);
+  object->stack_xyz[0] = charano;
+  object->xyz[0] = x;
+  object->xyz[1] = y;
 
-  CHARACTER *parent = p;
-  p->f = FALSE;
-  p->state = noaction;
-  p->collision = noaction;
-  return parent;
+  root->addChild(object);
 }
 
 void
 state_update()
 {
+/*
   CHARACTER *p;
   for(p = active_chara_list->next; p!= NULL  ;p = p->next)
     {
       p=(*p->state)(p);
     }
+*/
 }
 
-void
-collision_detect()
+void collision_detect()
 {
+/*
   CHARACTER *p;
   for(p = active_chara_list->next; p!=NULL;p = p->next)
     {
@@ -241,39 +195,37 @@
 	  p=(*p->collision)(p);
 	}
     }
+*/
 }
 
 void
 obj_draw()
 {
+/*
   CHARACTER *p;
   for(p = active_chara_list->next; p!=NULL;p = p->next)
     {
       if(p->f == TRUE)
       {
-	  PutSprite(1, p->x, p->y, p->charano);
+//	  PutSprite(1, p->x, p->y, p->charano);
       }
     }
+*/
 }
 
-void
-outofwindow()
+#if 0
+void 
+outofwindow(SceneGraphPtr node)
 {
-  CHARACTER *p;
-  for(p = active_chara_list->next; p!=NULL; p = p->next)
-    {
-      if((p->state != chara_state8) && (p->state != chara_state9))
+//    if((p->state != chara_state8) && (p->state != chara_state9))
+//    {
+	if ((node->xyz[1] > 964 + 32)
+	    || (node->xyz[0] > 1688 + 50)
+	    || (node->xyz[1] < 0 - 128)
+	    || (node->xyz[0] < 0 - 200))
 	{
-	  if ((p->y > 964 + 32)
-	      || (p->x > 1688 + 50)
-	      || (p->y < 0 - 128)
-	      || (p->x < 0 - 200))
-	    {
-	      p->f = FALSE;
-	      p->state = delete_chara;
-	      p->collision = noaction;
-	    }
+	    node->remove();
 	}
-    }
+//    }
 }
 #endif
--- a/src/Character.h	Thu May 20 19:51:03 2010 +0900
+++ b/src/Character.h	Tue Dec 07 18:37:43 2010 +0900
@@ -1,7 +1,10 @@
-#include "bool.h"
+#ifndef CHARACTER_H
+#define CHARACTER_H
 
-#ifndef CHARACTER_h
-#define CHARACTER_h 1
+#include "bool.h"
+#include "sgoex.h"
+#include "SceneGraph.h"
+#include "viewer.h"
 
 /*state id*/
 #define ALIVE 0
@@ -16,6 +19,12 @@
 
 //typedef void (*STATE)(CHARACTER *p);
 
+typedef struct enemy_status {
+  int charano;                 // sprite image number                                                                                                       
+  int sc;                     // score                                                                                                                      
+  int p;                      // hardness                                                                                                                   
+} table;
+
 typedef struct CHARACTER{
   float x; //position
   float y;
@@ -32,26 +41,25 @@
   BOOL f; //apiarance idenfifier
   float s;
   //int group;
-  
+
   struct CHARACTER * (*state)(struct CHARACTER *p);
   struct CHARACTER * (*collision)(struct CHARACTER *p);
   //STATE state;
   //STATE collision;
   struct CHARACTER *next;
   struct CHARACTER *prev;
-
 } CHARACTER;
 
 
-CHARACTER *active_chara_list;
-CHARACTER *free_chara_list;
-extern CHARACTER *kyeenemyno;
-extern CHARACTER *tekino0;
-extern CHARACTER *enemy_part1;
-extern CHARACTER *enemy_part2;
-extern CHARACTER *enemy_part3;
-extern CHARACTER *enemy_part4;
-extern CHARACTER *enemy_part5;
+extern SpriteTable *active_chara_list;
+extern SpriteTable *free_chara_list;
+extern SpriteTable *kyeenemyno;
+extern SpriteTable *tekino0;
+extern SpriteTable *enemy_part1;
+extern SpriteTable *enemy_part2;
+extern SpriteTable *enemy_part3;
+extern SpriteTable *enemy_part4;
+extern SpriteTable *enemy_part5;
 
 extern int filpcount;
 extern int stage;
@@ -62,12 +70,14 @@
 int extend_chara_list_pool(int num);
 void TFon();
 void TFoff();
-void Putenemy(int charano, float x, float y, float vx, float vy,
-	      CHARACTER * (*action)(CHARACTER *chara));
-CHARACTER * delete_chara(CHARACTER *p);
-void state_update();
-void collision_detect();
-void obj_draw();
+void Putenemy(Viewer *sgroot, SceneGraphPtr root, int charano, float x, float y,
+	      float vx, float vy, move_func move);
+void Putenemy(Viewer *sgroot, SceneGraphPtr root, int charano, float x, float y,
+	      float vx, float vy, move_func move, collision_func collision);
+void delete_chara(SceneGraphPtr node);
+//void state_update();
+//void collision_detect();
+//void obj_draw();
 void outofwindow();
 
 
--- a/src/Character_state.cc	Thu May 20 19:51:03 2010 +0900
+++ b/src/Character_state.cc	Tue Dec 07 18:37:43 2010 +0900
@@ -5,27 +5,28 @@
 #include "object.h"
 #include "Character.h"
 #include "Character_state.h"
-#include "count2.h"
+#include "count.h"
 #include "schedule.h"
 #include "bom.h"
 #include "sankaku.h"
 #include "sgoex.h"
 #include "collision.h"
 #include "debug.h"
+#include "tama.h"
 
-CHARACTER *kyeenemyno;
-CHARACTER *tekino0;
-CHARACTER *enemy_part1;
-CHARACTER *enemy_part2;
-CHARACTER *enemy_part3;
-CHARACTER *enemy_part4;
-CHARACTER *enemy_part5;
+SpriteTable *kyeenemyno;
+SpriteTable *tekino0;
+SpriteTable *enemy_part1;
+SpriteTable *enemy_part2;
+SpriteTable *enemy_part3;
+SpriteTable *enemy_part4;
+SpriteTable *enemy_part5;
 
 //int tekino0;
 int rinkx;
 int rinky;
 int rinkf1 = 0, rinkf2 = 0;
-CHARACTER *asteroiddt[200];
+void*asteroiddt[200];
 int asteroidi = 0;
 int enemyfaste = 0;
 int sf;
@@ -38,1123 +39,1202 @@
 void
 chara_state0(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  node->xyz[0] += node->stack_xyz[0];
-  node->xyz[1] += node->stack_xyz[1];
-  node->set_move_collision(chara_state0, nocollision);
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    node->xyz[0] += p->vx;
+    node->xyz[1] += p->vy;
 }
 
 void
 chara_state1(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  node->xyz[0] -= node->stack_xyz[0];
-  node->xyz[1] -= node->stack_xyz[1];
-  node->set_move_collision(chara_state1, nocollision);
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    node->xyz[0] -= p->vx;
+    node->xyz[1] -= p->vy;
 }
 
 void
 chara_state2(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  node->stack_xyz[1] -= 0.25;
-  node->xyz[1] += node->stack_xyz[1];
-  node->set_move_collision(chara_state2, nocollision);
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    p->vy -= 0.25;
+    node->xyz[1] += p->vy;
 }
 
 void
 chara_state3(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  node->xyz[0] += node->stack_xyz[0];
-  node->xyz[1] += node->stack_xyz[1];
-  /*
-  if((node->stack_xyz[2] == 60) ||
-     (node->stack_xyz[2] == 90) ||
-     (node->stack_xyz[2] == 30))
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    node->xyz[0] += p->vx;
+    node->xyz[1] += p->vy;
+    if((p->dt1 == 60) ||
+       (p->dt1 == 90) ||
+       (p->dt1 == 30))
     {
-      Puttama(0, node->xyz[0], node->xyz[1]);
+	Puttama(0, node->xyz[0], node->xyz[1]);
     }
-  */
-  node->stack_xyz[2]++;
-  node->set_move_collision(chara_state3, nocollision);
+    p->dt1++;
 }
 
 void
 chara_state4(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  node->xyz[1] += node->stack_xyz[1];
-  node->xyz[0] += node->stack_xyz[0];
-  if(node->xyz[1] < jiki.y && node->xyz[1] + 16 > jiki.y)
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    node->xyz[1] += p->vy;
+    node->xyz[0] += p->vx;
+    if(node->xyz[1] < jiki.y && node->xyz[1] + 16 > jiki.y)
     {
-      node->stack_xyz[1] = -2;
-      node->stack_xyz[0] = ((jiki.x > node->xyz[0]) ? 4 : -4);
-      node->set_move_collision(chara_state7, nocollision);
+	p->vy = -2;
+	p->vx = ((jiki.x > node->xyz[0]) ? 4 : -4);
+	node->set_move_collision(chara_state7);
     }
 }
 
 void
 chara_state5(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  node->xyz[1] += node->stack_xyz[1];
-  node->xyz[0] += node->stack_xyz[0];
-  /*
-  if(node->xyz[1] + 96 < jiki.y 
-     && node->xyz[1] + 128 > jiki.y)
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    node->xyz[1] += p->vy;
+    node->xyz[0] += p->vx;
+    if(node->xyz[1] + 96 < jiki.y 
+       && node->xyz[1] + 128 > jiki.y)
     {
-      node->stack_xyz[1] = -2;
-      node->stack_xyz[0] = ((jiki.x > node->xyz[0]) ? 4 : -4);
-      node->set_move_collision(chara_state0, nocollision);
+	p->vy = -2;
+	p->vx = ((jiki.x > node->xyz[0]) ? 4 : -4);
+	node->set_move_collision(chara_state0);
     }
-  */
 }
 
 void
 chara_state6(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  node->xyz[1] += node->stack_xyz[1];
-  node->xyz[0] += node->stack_xyz[0];
-  /*
-  if(node->xyz[1] + 96 < jiki.y
-     && node->xyz[1] + 128 > jiki.y)
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    node->xyz[1] += p->vy;
+    node->xyz[0] += p->vx;
+    if(node->xyz[1] + 96 < jiki.y
+       && node->xyz[1] + 128 > jiki.y)
     {
-      node->stack_xyz[1] = 2;
-      node->stack_xyz[0] = ((jiki.x > node->xyz[0]) ? 4 : -4);
-      node->set_move_collision(chara_state0, nocollision);
+	p->vy = 2;
+	p->vx = ((jiki.x > node->xyz[0]) ? 4 : -4);
+	node->set_move_collision(chara_state0);
     }
-  */
 }
 
 void
 chara_state7(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  node->xyz[0] += node->stack_xyz[0];
-  node->xyz[1] += node->stack_xyz[1];
-  /*
-    if((node->stack_xyz[2] == 60) || (node->stack_xyz[2] == 90)
-     || (node->stack_xyz[2] == 30))
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    node->xyz[0] += p->vx;
+    node->xyz[1] += p->vy;
+    if((p->dt1 == 60) || (p->dt1 == 90)
+       || (p->dt1 == 30))
     {
-      Puttama(1, node->xyz[0], node->xyz[1]);
+	Puttama(1, node->xyz[0], node->xyz[1]);
     }
-  */
-  node->stack_xyz[2]++;
-  node->set_move_collision(chara_state7, nocollision);
+    p->dt1++;
 }
 
+#if 0
 // state1 boss patern
 void
 chara_state8(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  if(node->xyz[1] < 520)
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    if(node->xyz[1] < 520)
     {
-      tekino0 = p;
-      kyeenemyno = p;
-      node->xyz[1] += node->stack_xyz[1];
-      count++;
-      DefSpriteEx(node->charano, 16*4, 32*4);
-      PutSpriteEx(node->charano, (node->xyz[0] * 4), (node->xyz[1] * 4), 0.2, 0.2, 1);
-      node->stack_xyz[2] = 512;
-      node->s = 0.125;
-      node->set_move_collision(chara_state8, nocollision);
+	tekino0 = p;
+	kyeenemyno = p;
+	node->xyz[1] += p->vy;
+	count++;
+	DefSpriteEx(p->charano, 16*4, 32*4);
+	PutSpriteEx(p->charano, (node->xyz[0] * 4), (node->xyz[1] * 4), 0.2, 0.2, 1);
+	p->dt1 = 512;
+	p->s = 0.125;
     }
-  node->set_move_collision(chara_state9, nocollision);
+
+    node->set_move_collision(chara_state9);
 }
 
-
 void
 chara_state9(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  if(node->s <= 2)
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    if(p->s <= 2)
     {
-      node->s += 0.05;
-      node->xyz[1] -= 12;
-      count++;
-      DefSpriteEx(54, 16*4, 32*4);
-      PutSpriteEx(54, (node->xyz[0] * 4), (node->xyz[1] * 4), node->s, node->s, 1);
-      node->set_move_collision(chara_state9, nocollision);
+	p->s += 0.05;
+	node->xyz[1] -= 12;
+	count++;
+	DefSpriteEx(54, 16*4, 32*4);
+	PutSpriteEx(54, (node->xyz[0] * 4), (node->xyz[1] * 4), p->s, p->s, 1);
     }
-  count++;
-  DefSpriteEx(54, 16, 32);
-  PutSpriteEx(54, node->xyz[0], node->xyz[1], node->s, node->s, 1);
-  rinkx = node->xyz[0];
-  rinky = node->xyz[1];
-  Putenemy(5, rinkx - 16, rinky - 16, 1, 0, chara_state10);
-  Putenemy(5, rinkx - 16, rinky - 16, -1, 0, chara_state10);
-  node->set_move_collision(chara_state11, nocollision);
-  node->stack_xyz[2] = 8192;
+
+    count++;
+    DefSpriteEx(54, 16, 32);
+    PutSpriteEx(54, node->xyz[0], node->xyz[1], p->s, p->s, 1);
+    rinkx = node->xyz[0];
+    rinky = node->xyz[1];
+    Putenemy(sgroot, root, 5, rinkx - 16, rinky - 16, 1, 0, chara_state10);
+    Putenemy(sgroot, root, 5, rinkx - 16, rinky - 16, -1, 0, chara_state10);
+
+    node->set_move_collision(chara_state11);
+    p->dt1 = 8192;
 }
 
 
 void
 chara_state10(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  if(node->stack_xyz[2] < 48)
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    if(p->dt1 < 48)
     {
-      node->xyz[0] += node->stack_xyz[0];
-      node->xyz[1] += node->stack_xyz[1];
-      node->stack_xyz[2]++;
-      node->set_move_collision(chara_state10, nocollision);
-      //PutSprite(count, node->xyz[0], node->xyz[1],
+	node->xyz[0] += p->vx;
+	node->xyz[1] += p->vy;
+	p->dt1++;
     }
-  rinkf1 = 1;
-  node->stack_xyz[2] = rinkx;
-  node->dt2 = rinky;
-  node->set_move_collision(chara_state13, nocollision);
+    rinkf1 = 1;
+    p->dt1 = rinkx;
+    p->dt2 = rinky;
+    node->set_move_collision(chara_state13);
 }
 
 
 void
 chara_state11(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  if(rinkf1 == 0)
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    if(rinkf1 == 0)
     {
-      count++;
-      DefSpriteEx(54, 16, 32);
-      PutSpriteEx(54, node->xyz[0], node->xyz[1], node->s, node->s, 1);
-      node->set_move_collision(chara_state11, nocollision);
+	count++;
+	DefSpriteEx(54, 16, 32);
+	PutSpriteEx(54, node->xyz[0], node->xyz[1], p->s, p->s, 1);
+	node->set_move_collision(chara_state11);
     }
-  node->stack_xyz[2] = 0;
-  node->dt2 = 0;
-  node->set_move_collision(chara_state12, nocollision);
+    p->dt1 = 0;
+    p->dt2 = 0;
+    node->set_move_collision(chara_state12);
 }
 
 void
 chara_state12(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  if(fastebos > 60*60)
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    if(fastebos > 60*60)
     {
-      if(node->xyz[1] > 240+32)
-	{
-	  node->set_move_collision(delete_chara, nocollision);
-	}
-      node->xyz[1] += 3;
-      rinky += 3;
-      count++;
-      DefSpriteEx(54, 16, 32);
-      PutSpriteEx(54, node->xyz[0], node->xyz[1], 2, 2, 1);
-      node->set_move_collision(chara_state12, nocollision);
-    }
-  if(node->stack_xyz[2] <= 60)
-    {
-      if(jiki.x + 15 - rinkx < -5)
+	if(node->xyz[1] > 240+32)
 	{
-	  node->stack_xyz[0] = -0.8;
+	    p->state = delete_chara;
 	}
-      else if(jiki.x + 15 - rinkx > 5)
+	node->xyz[1] += 3;
+	rinky += 3;
+	count++;
+	DefSpriteEx(54, 16, 32);
+	PutSpriteEx(54, node->xyz[0], node->xyz[1], 2, 2, 1);
+	node->set_move_collision(chara_state12);
+    }
+    if(p->dt1 <= 60)
+    {
+	if(jiki.x + 15 - rinkx < -5)
 	{
-	  node->stack_xyz[0] = +0.8;
+	    p->vx = -0.8;
 	}
-      else node->stack_xyz[0] = 0;
-      rinkx = node->xyz[0];
-      rinky = node->xyz[1];
+	else if(jiki.x + 15 - rinkx > 5)
+	{
+	    p->vx = +0.8;
+	}
+	else p->vx = 0;
+	rinkx = node->xyz[0];
+	rinky = node->xyz[1];
     }
-  if((node->stack_xyz[2] > 60) && (node->stack_xyz[2] <= 70))
+    if((p->dt1 > 60) && (p->dt1 <= 70))
     {
-      if(node->stack_xyz[2] % 2 == 1)
+	if(p->dt1 % 2 == 1)
 	{
-	  Puttama(0, rinkx - 16, rinky);
-	  Puttama(0, rinkx, rinky);
-	  Puttama(0, rinkx + 16, rinky);
+	    Puttama(0, rinkx - 16, rinky);
+	    Puttama(0, rinkx, rinky);
+	    Puttama(0, rinkx + 16, rinky);
 	}
     }
-  if((node->stack_xyz[2] > 180) && (node->stack_xyz[2] <= 240))
+    if((p->dt1 > 180) && (p->dt1 <= 240))
     {
-      if(node->stack_xyz[2] % 2 == 1)
+	if(p->dt1 % 2 == 1)
 	{
-	  rinkf2 = 1;
-	  Puttama(2, rinkx - 16, node->xyz[1] - 32);
-	  Puttama(3, rinkx + 32 - 16, node->xyz[1] - 32);
+	    rinkf2 = 1;
+	    Puttama(2, rinkx - 16, node->xyz[1] - 32);
+	    Puttama(3, rinkx + 32 - 16, node->xyz[1] - 32);
 	}
-      else
+	else
 	{
-	  rinkf2 = 2;
+	    rinkf2 = 2;
 	}
     }
-  if(node->stack_xyz[2] > 240)
+    if(p->dt1 > 240)
     {
-      rinkf2 = 2;
+	rinkf2 = 2;
     }
-  if((node->stack_xyz[2] > 240) && (node->stack_xyz[2] <= 400))
+    if((p->dt1 > 240) && (p->dt1 <= 400))
     {
-      count++;
-      PutSprite(count, rinkx - 16, rinky + 32,
-		58 + node->stack_xyz[2] % 4);
+	count++;
+	PutSprite(count, rinkx - 16, rinky + 32,
+		  58 + p->dt1 % 4);
     }
-  if((node->stack_xyz[2] > 300) && (node->stack_xyz[2] <= 400))
+    if((p->dt1 > 300) && (p->dt1 <= 400))
     {
-      rinkf2 = 3;
-      if(jiki.x + 15 - rinkx < -5)
+	rinkf2 = 3;
+	if(jiki.x + 15 - rinkx < -5)
 	{
-	  node->stack_xyz[0] = -1;
+	    p->vx = -1;
 	}
-      else if(jiki.x + 15 - rinkx > 5)
+	else if(jiki.x + 15 - rinkx > 5)
 	{
-	  node->stack_xyz[0] = +1;
+	    p->vx = +1;
 	}
-      else node->stack_xyz[0] = 0;
-      node->xyz[0] += node->stack_xyz[0];
-      rinkx = node->xyz[0];
-      rinky = node->xyz[1];
-      Puttama(4, rinkx - 8, rinky + 16);
+	else p->vx = 0;
+	node->xyz[0] += p->vx;
+	rinkx = node->xyz[0];
+	rinky = node->xyz[1];
+	Puttama(4, rinkx - 8, rinky + 16);
     }
-  if((node->stack_xyz[2] > 400) && (node->stack_xyz[2] <= 500))
+    if((p->dt1 > 400) && (p->dt1 <= 500))
     {
-      rinkf2 = 4;
-      if(jiki.x + 15 - rinkx > 5)
+	rinkf2 = 4;
+	if(jiki.x + 15 - rinkx > 5)
 	{
-	  node->stack_xyz[0] = -1;
+	    p->vx = -1;
 	}
-      else if(jiki.x + 15 - rinkx > 5)
+	else if(jiki.x + 15 - rinkx > 5)
 	{
-	  node->stack_xyz[0] = +1;
+	    p->vx = +1;
 	}
-      else node->stack_xyz[0] = 0;
-      node->xyz[0] += node->stack_xyz[0];
-      rinkx = node->xyz[0];
-      rinky = node->xyz[1];
+	else p->vx = 0;
+	node->xyz[0] += p->vx;
+	rinkx = node->xyz[0];
+	rinky = node->xyz[1];
     }
-  if(node->stack_xyz[2] > 500)
+    if(p->dt1 > 500)
     {
-      rinkf2 = 5;
-      if(jiki.x + 15 - rinkx < -5)
+	rinkf2 = 5;
+	if(jiki.x + 15 - rinkx < -5)
 	{
-	  node->stack_xyz[0] = -1;
+	    p->vx = -1;
 	}
-      else if(jiki.x + 15 - rinkx > 5)
+	else if(jiki.x + 15 - rinkx > 5)
 	{
-	  node->stack_xyz[0] = +1;
+	    p->vx = +1;
 	}
-      else node->stack_xyz[0] = 0;
-      node->xyz[0] += node->stack_xyz[0];
-      rinkx = node->xyz[0];
-      rinky = node->xyz[1];
+	else p->vx = 0;
+	node->xyz[0] += p->vx;
+	rinkx = node->xyz[0];
+	rinky = node->xyz[1];
     }
-  if(node->stack_xyz[2] > 600)
+    if(p->dt1 > 600)
     {
-      rinkf2 = 0;
-      node->stack_xyz[2] = 0;
+	rinkf2 = 0;
+	p->dt1 = 0;
     }
-  fastebos++;
-  node->stack_xyz[2]++;
-  count++;
-  DefSpriteEx(54, 16, 32);
-  PutSpriteEx(54, node->xyz[0], node->xyz[1], 2, 2, 1);
-  return p;
+    fastebos++;
+    p->dt1++;
+    count++;
+    DefSpriteEx(54, 16, 32);
+    PutSpriteEx(54, node->xyz[0], node->xyz[1], 2, 2, 1);
 }
 
 
-void chara_state13(SceneGraphPtr node, int screen_w, int screen_h, )
+void
+chara_state13(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  if(tekino0->f == FALSE){
-    Bom(node->xyz[0], node->xyz[1]);
-    node->f = FALSE;
-    node->set_move_collision(delete_chara;
-    node->collision = noaction;
-    return p;
-  }
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    if(tekino0->f == FALSE){
+	Bom(node->xyz[0], node->xyz[1]);
+	p->f = FALSE;
+	node->set_move_collision(noaction, delete_chara);
+    }
 
-  node->xyz[0] += rinkx - node->stack_xyz[2];
-  node->xyz[1] += rinky - node->dt2;
-  node->stack_xyz[2] = rinkx;
-  node->dt2 = rinky;
-  if(rinkf2 == 1)
+    node->xyz[0] += rinkx - p->dt1;
+    node->xyz[1] += rinky - p->dt2;
+    p->dt1 = rinkx;
+    p->dt2 = rinky;
+    if(rinkf2 == 1)
     {
-      if(node->xyz[0] > rinkx)
+	if(node->xyz[0] > rinkx)
 	{
-	  Puttama(2, node->xyz[0] + 32, node->xyz[1]);
+	    Puttama(2, node->xyz[0] + 32, node->xyz[1]);
 	}
-      if(node->xyz[0] < rinkx)
+	if(node->xyz[0] < rinkx)
 	{
-	  Puttama(3, node->xyz[0], node->xyz[1]);
+	    Puttama(3, node->xyz[0], node->xyz[1]);
 	}
     }
-  if(rinkf2 == 4)
+    if(rinkf2 == 4)
     {
-      count++;
-      PutSprite(count, node->xyz[0], node->xyz[1] + 56, 58+filpcount % 4);
+	count++;
+	PutSprite(count, node->xyz[0], node->xyz[1] + 56, 58+filpcount % 4);
     }
-  if(rinkf2 == 5)
+    if(rinkf2 == 5)
     {
-      if(node->xyz[0] > rinkx)
+	if(node->xyz[0] > rinkx)
 	{
-	  Puttama(5, node->xyz[0] + 8, node->xyz[1] + 24);
+	    Puttama(5, node->xyz[0] + 8, node->xyz[1] + 24);
 	}
-      if(node->xyz[0] < rinkx)
+	if(node->xyz[0] < rinkx)
 	{
-	  Puttama(5, node->xyz[0] + 8, node->xyz[1] + 24);
+	    Puttama(5, node->xyz[0] + 8, node->xyz[1] + 24);
 	}
     }
-  return p;
 }
 
-#if 0
-void chara_state20(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
+
+void
+chara_state20(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  node->xyz[0] += node->stack_xyz[0];
-  node->xyz[1] += node->stack_xyz[1];
-  node->stack_xyz[1] -= 0.5;
-  node->stack_xyz[1] += 0.4;
-  return p;
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    node->xyz[0] += p->vx;
+    node->xyz[1] += p->vy;
+    p->vy -= 0.5;
+    p->vy += 0.4;
 }
 
-void chara_state21(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
+void
+chara_state21(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  node->xyz[0] += node->stack_xyz[0];
-  node->xyz[1] += node->stack_xyz[1];
-  node->stack_xyz[0] += 0.5;
-  node->stack_xyz[1] += 0.4;
-  return p;
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    node->xyz[0] += p->vx;
+    node->xyz[1] += p->vy;
+    p->vx += 0.5;
+    p->vy += 0.4;
 }
 
 //¤³¤³¤Þ¤Çgetate boss
 
 
-void chara_state22(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
+void
+chara_state22(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  sf = rand() % 4;
-  if((sf == 0) || (sf == 1))
-    {
-      node->xyz[0] = -35;
-      node->xyz[1] = rand() % (120 - 35);
-      node->stack_xyz[0] = (rand() % 4 + 1);
-      node->stack_xyz[1] = rand() % 3 + 1;
-      node->set_move_collision(chara_state23;
-    }
-  if((sf == 2))
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    sf = rand() % 4;
+    if((sf == 0) || (sf == 1))
     {
-      node->xyz[0] = rand() % 290;
-      node->xyz[1] = -30;
-      node->stack_xyz[0] = rand() % 3 - 1;
-      node->stack_xyz[1] = (rand() % 4 + 1);
-      node->set_move_collision(chara_state23;
+	node->xyz[0] = -35;
+	node->xyz[1] = rand() % (120 - 35);
+	p->vx = (rand() % 4 + 1);
+	p->vy = rand() % 3 + 1;
+	node->set_move_collision(chara_state23);
     }
-  if(sf == 3)
+    if((sf == 2))
     {
-      node->xyz[0] = 320;
-      node->xyz[1] = rand() % (120 - 35);
-      node->stack_xyz[0] = (rand() % 4 + 1) * -1;
-      node->stack_xyz[1] = rand() % 3 -1;
-      node->set_move_collision(chara_state23;
+	node->xyz[0] = rand() % 290;
+	node->xyz[1] = -30;
+	p->vx = rand() % 3 - 1;
+	p->vy = (rand() % 4 + 1);
+	node->set_move_collision(chara_state23);
     }
-  return p;
+    if(sf == 3)
+    {
+	node->xyz[0] = 320;
+	node->xyz[1] = rand() % (120 - 35);
+	p->vx = (rand() % 4 + 1) * -1;
+	p->vy = rand() % 3 -1;
+	node->set_move_collision(chara_state23);
+    }
 }
 	  
-void chara_state23(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
+void
+chara_state23(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  p=asteroid(p);
-  return p;
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    p = asteroid(p);
 }
 
-void chara_state24(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
+void
+chara_state24(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  kyeenemyno = p;
-  tekino0 = 0;
-  enemy_part1 = node->next;
-  enemy_part2 = enemy_part1->next;
-  enemy_part3 = enemy_part2->next;
-  enemy_part4 = enemy_part3->next;
-  enemy_part5 = enemy_part4->next;
-  rinkx = 0;
-  rinky = 0;
-  rinkf1 = 0;
-  rinkf2 = 0;
-  node->set_move_collision(chara_state25;
-  return p;
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    kyeenemyno = p;
+    tekino0 = 0;
+    enemy_part1 = p->next;
+    enemy_part2 = enemy_part1->next;
+    enemy_part3 = enemy_part2->next;
+    enemy_part4 = enemy_part3->next;
+    enemy_part5 = enemy_part4->next;
+    rinkx = 0;
+    rinky = 0;
+    rinkf1 = 0;
+    rinkf2 = 0;
+    node->set_move_collision(chara_state25);
 }
 
-void chara_state25(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
+void
+chara_state25(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  if(node->stack_xyz[2] <= 360)
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    if(p->dt1 <= 360)
     {
-      node->xyz[0] = Mycos(node->stack_xyz[2]) * 30 / SANKAKU + 82 + 32;
-      node->xyz[1] = Mysin(node->stack_xyz[2]) * 30 / SANKAKU + 30;
+	node->xyz[0] = Mycos(p->dt1) * 30 / SANKAKU + 82 + 32;
+	node->xyz[1] = Mysin(p->dt1) * 30 / SANKAKU + 30;
     }
-  if(node->stack_xyz[2] > 360)
-    {
-      node->xyz[0] = Mycos(node->stack_xyz[2]) * 30 * -1 /SANKAKU + 142 + 32;
-      node->xyz[1] = Mysin(node->stack_xyz[2]) * 30 / SANKAKU + 30;
-    }
-  count++;
-  PutSprite(count, node->xyz[0] - 42, node->xyz[1], 64);
-  amari = rand() % 160;
-  if((amari == 1) && (enemy_part5->f == TRUE))
+    if(p->dt1 > 360)
     {
-      node->set_move_collision(chara_state26;
-      rinkf1 = 1;
+	node->xyz[0] = Mycos(p->dt1) * 30 * -1 /SANKAKU + 142 + 32;
+	node->xyz[1] = Mysin(p->dt1) * 30 / SANKAKU + 30;
     }
-  if((amari == 2) && (enemy_part1->f == TRUE))
+    count++;
+    PutSprite(count, node->xyz[0] - 42, node->xyz[1], 64);
+    amari = rand() % 160;
+    if((amari == 1) && (enemy_part5->f == TRUE))
     {
-      node->set_move_collision(chara_state27;
-      rinkf1 = 5;
-      rinkx = 0;
-      return p;
+	node->set_move_collision(chara_state26);
+	rinkf1 = 1;
     }
-  if((enemy_part5->f == TRUE) && (enemy_part1->f != TRUE))
+    if((amari == 2) && (enemy_part1->f == TRUE))
     {
-      node->set_move_collision(chara_state28;
+	node->set_move_collision(chara_state27);
+	rinkf1 = 5;
+	rinkx = 0;
     }
-  node->stack_xyz[2] += 3;
-  if(node->stack_xyz[2] == 720)
+    if((enemy_part5->f == TRUE) && (enemy_part1->f != TRUE))
     {
-      node->stack_xyz[2] = 0;
+	node->set_move_collision(chara_state28);
     }
-  return p;
+    p->dt1 += 3;
+    if(p->dt1 == 720)
+    {
+	p->dt1 = 0;
+    }
 }
 
-void chara_state26(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
+void
+chara_state26(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  if((node->dt2 > 50) && (node->dt2 < 100))
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    if((p->dt2 > 50) && (p->dt2 < 100))
     {
-      rinkf1 = 2;
+	rinkf1 = 2;
     }
-  if(node->dt2 > 100)
-    {
-      rinkf1 = 3;
-    }
-  if(node->dt2 == 400)
+    if(p->dt2 > 100)
     {
-      rinkf1 = 4;
+	rinkf1 = 3;
     }
-  count++;
-  PutSprite(count, node->xyz[0] - 42, node->xyz[1], 64);
-  if(node->dt2 == 401)
+    if(p->dt2 == 400)
     {
-      node->dt2 = 0;
-      rinkf1 = 0;
-      node->set_move_collision(chara_state25;
-      return p;
+	rinkf1 = 4;
     }
-  node->dt2++;
-  return p;
+    count++;
+    PutSprite(count, node->xyz[0] - 42, node->xyz[1], 64);
+    if(p->dt2 == 401)
+    {
+	p->dt2 = 0;
+	rinkf1 = 0;
+	node->set_move_collision(chara_state25);
+    }
+    p->dt2++;
 }
 
-void chara_state27(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h) //rocket punch
+void
+chara_state27(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h) //rocket punch
 {
-  if((node->dt2 > 50) && (node->dt2 < 60) && (node->xyz[0] > -24) && (node->xyz[1] > -24))
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    if((p->dt2 > 50) && (p->dt2 < 60) && (node->xyz[0] > -24) && (node->xyz[1] > -24))
     {
-      rinkf1 = 6;
-      rinkx -= 4;
-      node->xyz[0] -= 4;
-      node->xyz[1] -= 4;
+	rinkf1 = 6;
+	rinkx -= 4;
+	node->xyz[0] -= 4;
+	node->xyz[1] -= 4;
     }
-  if(node->dt2 == 80)
+    if(p->dt2 == 80)
     {
-      rinkf1 = 7;
+	rinkf1 = 7;
     }
-  if(node->dt2 == 81)
-    {
-      rinkf1 = 8;
-    }
-  if(node->dt2 == 124)
+    if(p->dt2 == 81)
     {
-      rinkf1 = 9;
+	rinkf1 = 8;
     }
-  if(node->dt2 == 400)
+    if(p->dt2 == 124)
     {
-      rinkf1 = 10;
+	rinkf1 = 9;
     }
-  if(node->dt2 == 444)
+    if(p->dt2 == 400)
     {
-      rinkf1 = 11;
+	rinkf1 = 10;
     }
-  if(node->dt2 == 500)
+    if(p->dt2 == 444)
     {
-      rinkf1 = 12;
+	rinkf1 = 11;
     }
-  if((node->dt2 > 80) && (node->dt2 < 200))
+    if(p->dt2 == 500)
     {
-      if((rinkx != 0) && (node->dt2 % 2 == 1))
+	rinkf1 = 12;
+    }
+    if((p->dt2 > 80) && (p->dt2 < 200))
+    {
+	if((rinkx != 0) && (p->dt2 % 2 == 1))
 	{
-	  rinkx++;
-	  node->xyz[0]++;
-	  node->xyz[1]++;
+	    rinkx++;
+	    node->xyz[0]++;
+	    node->xyz[1]++;
 	}
     }
-  count++;
-  PutSprite(count, node->xyz[0] - 32, node->xyz[1], 6);
-  if(rinkf1 == 12)
+    count++;
+    PutSprite(count, node->xyz[0] - 32, node->xyz[1], 6);
+    if(rinkf1 == 12)
     {
-      node->dt2 = 0;
-      rinkf1 = 0;
-      rinkx = 0;
-      node->set_move_collision(chara_state25;
-      return p;
+	p->dt2 = 0;
+	rinkf1 = 0;
+	rinkx = 0;
+	node->set_move_collision(chara_state25);
     }
-  node->dt2++;
-  return p;
+    p->dt2++;
 }
-void chara_state28(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
+void
+chara_state28(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  if (node->stack_xyz[2] <= 360)
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    if (p->dt1 <= 360)
     {
-      node->xyz[0] = Mycos(node->stack_xyz[2]) * 30 / SANKAKU + 82 + 32;
-      node->xyz[1] = Mysin(node->stack_xyz[2]) * 30 / SANKAKU + 30;
+	node->xyz[0] = Mycos(p->dt1) * 30 / SANKAKU + 82 + 32;
+	node->xyz[1] = Mysin(p->dt1) * 30 / SANKAKU + 30;
     }
-  if (node->stack_xyz[2] > 360)
+    if (p->dt1 > 360)
     {
-      node->xyz[0] = Mycos(node->stack_xyz[2]) * 30 * -1 / SANKAKU + 142 + 32;
-      node->xyz[1] = Mysin(node->stack_xyz[2]) * 30 / SANKAKU + 30;
+	node->xyz[0] = Mycos(p->dt1) * 30 * -1 / SANKAKU + 142 + 32;
+	node->xyz[1] = Mysin(p->dt1) * 30 / SANKAKU + 30;
     }
-  count++;
-  PutSprite(count, node->xyz[0] - 42, node->xyz[1], 64);
-  if (node->stack_xyz[2] % 30 == 3)
+    count++;
+    PutSprite(count, node->xyz[0] - 42, node->xyz[1], 64);
+    if (p->dt1 % 30 == 3)
     {
-      Putenemy(24, node->xyz[0] + 14,
-	       node->xyz[1] + 14,
-	       (rand() % 5 + 0.5) * (rand() % 2 ==
-				     1 ? -1 : 1),
-	       (rand() % 5 + 0.5) * (rand() % 2 ==
-				     1 ? -1 : 1), chara_state29);
+	Putenemy(sgroot, root, 24, node->xyz[0] + 14,
+		 node->xyz[1] + 14,
+		 (rand() % 5 + 0.5) * (rand() % 2 ==
+				       1 ? -1 : 1),
+		 (rand() % 5 + 0.5) * (rand() % 2 ==
+				       1 ? -1 : 1), chara_state29);
     }
-  node->stack_xyz[2] += 3;
-  return p;
+    p->dt1 += 3;
 }
 
 
-void chara_state29(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
+void
+chara_state29(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  node->xyz[0] += node->stack_xyz[0];
-  node->xyz[1] += node->stack_xyz[1];
-  if(node->stack_xyz[2] % 18 == 1)
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    node->xyz[0] += p->vx;
+    node->xyz[1] += p->vy;
+    if(p->dt1 % 18 == 1)
     {
-      Puttama(0, node->xyz[0], node->xyz[1]);
+	Puttama(0, node->xyz[0], node->xyz[1]);
     }
-  node->stack_xyz[2]++;
-  return p;
+    p->dt1++;
 }
 
 
-void chara_state30(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
+void
+chara_state30(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  node->xyz[0] = node->xyz[0] - 32;
-  node->xyz[1] = node->xyz[1];
-  return p;
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    node->xyz[0] = node->xyz[0] - 32;
+    node->xyz[1] = node->xyz[1];
 }
 
-void chara_state31(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h) //right hand
+void
+chara_state31(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h) //right hand
 {
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
   
-  if((enemy_part3->f == FALSE) || (kyeenemyno->f == FALSE))
+    if((enemy_part3->f == FALSE) || (kyeenemyno->f == FALSE))
     {
-      Bom(node->xyz[0], node->xyz[1]);
-      node->f = FALSE;
-      node->set_move_collision(delete_chara;
-      node->collision = noaction;
-      return p;
+	Bom(node->xyz[0], node->xyz[1]);
+	p->f = FALSE;
+	node->set_move_collision(noaction, delete_chara);
     }
 
-  if(rinkf1 == 0)
+    if(rinkf1 == 0)
     {
-      node->xyz[0] = kyeenemyno->x + 40;
-      node->xyz[1] = kyeenemyno->y + 28;
-      node->dt2 = 0;
+	node->xyz[0] = kyeenemyno->x + 40;
+	node->xyz[1] = kyeenemyno->y + 28;
+	p->dt2 = 0;
     }
-  if(rinkf1 == 5)
+    if(rinkf1 == 5)
     {
-      node->xyz[0] = kyeenemyno->x + 52;
-      node->xyz[1] = kyeenemyno->y;
-      count++;
-      PutSprite(count, node->xyz[0] - 4, node->xyz[1] - 20, 80 + node->dt2 % 4);
-      node->dt2++;
+	node->xyz[0] = kyeenemyno->x + 52;
+	node->xyz[1] = kyeenemyno->y;
+	count++;
+	PutSprite(count, node->xyz[0] - 4, node->xyz[1] - 20, 80 + p->dt2 % 4);
+	p->dt2++;
     }
-  if(rinkf1 == 6)
+    if(rinkf1 == 6)
     {
-      if(node->xyz[1] < 240 - 40)
+	if(node->xyz[1] < 240 - 40)
 	{
-	  node->xyz[1] += 6;
-	}
-      else 
-	{
-	  return p;
+	    node->xyz[1] += 6;
 	}
-      count++;
-      PutSprite(count, node->xyz[0] - 4, node->xyz[1] - 20, 90 + node->dt2 % 4);
-      node->dt2++;
+	count++;
+	PutSprite(count, node->xyz[0] - 4, node->xyz[1] - 20, 90 + p->dt2 % 4);
+	p->dt2++;
     }
-  if(rinkf1 == 7)
-    {
-      Putenemy(22, node->xyz[0] + 14, node->xyz[1] + 14, 0, 0, chara_state40);
-      return p;
-    }
-  if(rinkf1 == 11)
+    if(rinkf1 == 7)
     {
-      if(node->xyz[1] + 20 != node->xyz[1])
-	{
-	  node->xyz[1]--;
-	}
-      else 
+	Putenemy(sgroot, root, 22, node->xyz[0] + 14, node->xyz[1] + 14, 0, 0, chara_state40);
+    }
+    if(rinkf1 == 11)
+    {
+	if(node->xyz[1] + 20 != node->xyz[1])
 	{
-	  return p;
+	    node->xyz[1]--;
 	}
-      count++;
-      PutSprite(count, node->xyz[0] + 8, node->xyz[1] + 44, 58 + node->dt2 % 4);
-      node->dt2++;
+	count++;
+	PutSprite(count, node->xyz[0] + 8, node->xyz[1] + 44, 58 + p->dt2 % 4);
+	p->dt2++;
     }
-  return p;
 }
 
 
-void chara_state32(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h) //left hand
+void
+chara_state32(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h) //left hand
 {
-  if ((enemy_part4->f == FALSE)
-      || (kyeenemyno->f == FALSE))
-    {
-      Bom(node->xyz[0], node->xyz[1]);
-      node->f = FALSE;
-      node->set_move_collision(delete_chara;
-      node->collision = noaction;
-      return p;
-    }
-  node->xyz[0] = kyeenemyno->x - 40;
-  node->xyz[1] = kyeenemyno->y + 28;
-  if (rinkf1 == 5)
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    if ((enemy_part4->f == FALSE)
+	|| (kyeenemyno->f == FALSE))
     {
-      node->xyz[0] = kyeenemyno->x - 24 + 4;
-      node->xyz[1] = kyeenemyno->y + 28;
-      node->charano = enemystate[20].charano;
-    }
-  if (rinkf1 == 11)
-    {
-      node->charano = enemystate[14].charano;
+	Bom(node->xyz[0], node->xyz[1]);
+	p->f = FALSE;
+	node->set_move_collision(noaction, delete_chara);
     }
-  if (rinkf1 == 7)
+    node->xyz[0] = kyeenemyno->x - 40;
+    node->xyz[1] = kyeenemyno->y + 28;
+    if (rinkf1 == 5)
     {
-      Putenemy(23, node->xyz[0] + 14,
-	       node->xyz[1] + 14, 0, 0, chara_state41);
-      //      rinkf1=8;
-      return p;
+	node->xyz[0] = kyeenemyno->x - 24 + 4;
+	node->xyz[1] = kyeenemyno->y + 28;
+	p->charano = enemystate[20].charano;
     }
-  return p;
+    if (rinkf1 == 11)
+    {
+	p->charano = enemystate[14].charano;
+    }
+    if (rinkf1 == 7)
+    {
+	Putenemy(sgroot, root, 23, node->xyz[0] + 14,
+		 node->xyz[1] + 14, 0, 0, chara_state41);
+	//      rinkf1=8;
+    }
 }
 
 
-void chara_state33(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h) // right shoulder
+void
+chara_state33(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h) // right shoulder
 {
-  if (kyeenemyno->f == FALSE)
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    if (kyeenemyno->f == FALSE)
     {
-      Bom(node->xyz[0], node->xyz[1]);
-      node->f = FALSE;
-      node->set_move_collision(delete_chara;
-      node->collision = noaction;
-      return p;
+	Bom(node->xyz[0], node->xyz[1]);
+	p->f = FALSE;
+	node->set_move_collision(noaction, delete_chara);
     }
-  node->xyz[0] = kyeenemyno->x + 32;
-  node->xyz[1] = kyeenemyno->y;
-  if (rinkf1 == 5)
+    node->xyz[0] = kyeenemyno->x + 32;
+    node->xyz[1] = kyeenemyno->y;
+    if (rinkf1 == 5)
     {
-      node->xyz[0] = kyeenemyno->x + 32 - 4;
-      node->xyz[1] = kyeenemyno->y;
-      node->charano = enemystate[19].charano;
+	node->xyz[0] = kyeenemyno->x + 32 - 4;
+	node->xyz[1] = kyeenemyno->y;
+	p->charano = enemystate[19].charano;
     }
-  if (rinkf1 == 6)
+    if (rinkf1 == 6)
     {
-      node->charano = enemystate[11].charano;
+	p->charano = enemystate[11].charano;
     }
-  return p;
 }
 
 
-void chara_state34(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h) //left shoulder
+void
+chara_state34(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h) //left shoulder
 {
-  if (kyeenemyno->f == FALSE)
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    if (kyeenemyno->f == FALSE)
     {
-      Bom(node->xyz[0], node->xyz[1]);
-      node->f = FALSE;
-      node->set_move_collision(delete_chara;
-      node->collision = noaction;
-      return p;
+	Bom(node->xyz[0], node->xyz[1]);
+	p->f = FALSE;
+	node->set_move_collision(noaction, delete_chara);
     }
-  node->xyz[0] = kyeenemyno->x - 32;
-  node->xyz[1] = kyeenemyno->y;
-  if (rinkf1 == 5)
+    node->xyz[0] = kyeenemyno->x - 32;
+    node->xyz[1] = kyeenemyno->y;
+    if (rinkf1 == 5)
     {
-      node->charano = enemystate[21].charano;
+	p->charano = enemystate[21].charano;
     }
-  if (rinkf1 == 6)
+    if (rinkf1 == 6)
     {
-      node->charano = enemystate[12].charano;
+	p->charano = enemystate[12].charano;
     }
-  return p;
 }
 
-void chara_state35(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h) // bust
+void
+chara_state35(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h) // bust
 {
-  if (kyeenemyno->f == FALSE)
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    if (kyeenemyno->f == FALSE)
     {
-      Bom(node->xyz[0], node->xyz[1]);
-      node->f = FALSE;
-      node->set_move_collision(delete_chara;
-      node->collision = noaction;
-      return p;
+	Bom(node->xyz[0], node->xyz[1]);
+	p->f = FALSE;
+	node->set_move_collision(noaction, delete_chara);
     }
-  node->xyz[0] = kyeenemyno->x;
-  node->xyz[1] = kyeenemyno->y + 32;
-  if (rinkf1 == 1)
+    node->xyz[0] = kyeenemyno->x;
+    node->xyz[1] = kyeenemyno->y + 32;
+    if (rinkf1 == 1)
     {
-      node->charano = enemystate[16].charano;
+	p->charano = enemystate[16].charano;
     }
-  if (rinkf1 == 2)
+    if (rinkf1 == 2)
     {
-      count++;
-      PutSprite(count, node->xyz[0] - 10,
-		node->xyz[1] + 16,
-		58 + node->dt2 % 4);
-      count++;
-      PutSprite(count, node->xyz[0] + 10,
-		node->xyz[1] + 16,
-		58 + node->dt2 % 4);
-      node->dt2++;
+	count++;
+	PutSprite(count, node->xyz[0] - 10,
+		  node->xyz[1] + 16,
+		  58 + p->dt2 % 4);
+	count++;
+	PutSprite(count, node->xyz[0] + 10,
+		  node->xyz[1] + 16,
+		  58 + p->dt2 % 4);
+	p->dt2++;
     }
-  if (rinkf1 == 3)
+    if (rinkf1 == 3)
     {
-      count++;
-      PutSprite(count, node->xyz[0] - 10,
-		node->xyz[1] + 16,
-		58 + node->dt2 % 4);
-      count++;
-      PutSprite(count, node->xyz[0] + 10,
-		node->xyz[1] + 16,
-		58 + node->dt2 % 4);
-      if (node->dt2 % 20 == 1)
+	count++;
+	PutSprite(count, node->xyz[0] - 10,
+		  node->xyz[1] + 16,
+		  58 + p->dt2 % 4);
+	count++;
+	PutSprite(count, node->xyz[0] + 10,
+		  node->xyz[1] + 16,
+		  58 + p->dt2 % 4);
+	if (p->dt2 % 20 == 1)
 	{
-	  Puttama(7, node->xyz[0], node->xyz[1] + 16);
-	  Puttama(7, node->xyz[0] + 20,
-		  node->xyz[1] + 16);
+	    Puttama(7, node->xyz[0], node->xyz[1] + 16);
+	    Puttama(7, node->xyz[0] + 20,
+		    node->xyz[1] + 16);
 	}
-    node->dt2++;
-  }
-  if (rinkf1 == 4) {
-    node->charano = enemystate[15].charano;
-    node->dt2 = 0;
-  }
-  return p;
+	p->dt2++;
+    }
+    if (rinkf1 == 4) {
+	p->charano = enemystate[15].charano;
+	p->dt2 = 0;
+    }
 }
 
 
-void chara_state40(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h) //arm vulkan
+void
+chara_state40(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h) //arm vulkan
 {
-  if (enemy_part1->f == FALSE)
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    if (enemy_part1->f == FALSE)
     {
-      Bom(node->xyz[0], node->xyz[1]);
-      node->f = FALSE;
-      node->set_move_collision(delete_chara;
-      node->collision = noaction;
-      return p;
+	Bom(node->xyz[0], node->xyz[1]);
+	p->f = FALSE;
+	node->set_move_collision(noaction, delete_chara);
     }
-  if ((rinkf1 == 8) && (node->stack_xyz[2] % 3 == 1))
+    if ((rinkf1 == 8) && (p->dt1 % 3 == 1))
     {
-      if ((node->dt2 < 16))
+	if ((p->dt2 < 16))
 	{
-	  node->dt2++;
-	  DefSprite(76, "boss2_rightarm_b", 16, node->dt2, 480, boss);
+	    p->dt2++;
+	    DefSprite(76, "boss2_rightarm_b", 16, p->dt2, 480, boss);
 	}
-      else
+	else
 	{
-	  //                                  rinkf1=9;
-	  return p;
+	    //                                  rinkf1=9;
 	}
     }
-  if (rinkf1 == 9)
+    if (rinkf1 == 9)
     {
-      if (node->stack_xyz[2] % 15 == 1)
+	if (p->dt1 % 15 == 1)
 	{
-	  Puttama(8, node->xyz[0], node->xyz[1]);
+	    Puttama(8, node->xyz[0], node->xyz[1]);
 	}
     }
-  if (rinkf1 == 10)
+    if (rinkf1 == 10)
     {
-      if (node->dt2 != 0)
+	if (p->dt2 != 0)
 	{
-	  node->dt2--;
-	  DefSprite(76, "boss2_rightarm_b", 16, node->dt2, 480, boss);
+	    p->dt2--;
+	    DefSprite(76, "boss2_rightarm_b", 16, p->dt2, 480, boss);
 	}
-      else
+	else
 	{
-	  node->f = FALSE;
-	  node->set_move_collision(delete_chara;
-	  node->collision = noaction;
-	  //          rinkf1=11;
+	    p->f = FALSE;
+	    node->set_move_collision(noaction, delete_chara);
+	    //          rinkf1=11;
 	}
     }
-  node->stack_xyz[2]++;
-  return p;
+    p->dt1++;
 }
 
 
-void chara_state41(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h) //left arm up arm vulkan
+void
+chara_state41(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h) //left arm up arm vulkan
 {
-  if (enemy_part2->f == FALSE)
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    if (enemy_part2->f == FALSE)
     {
-      Bom(node->xyz[0], node->xyz[1]);
-      node->f = FALSE;
-      node->set_move_collision(delete_chara;
-      node->collision = noaction;
-      return p;
+	Bom(node->xyz[0], node->xyz[1]);
+	p->f = FALSE;
+	node->set_move_collision(noaction, delete_chara);
     }
-  node->xyz[0] = kyeenemyno->x - 20 - 7;
-  node->xyz[1] = kyeenemyno->y + 28 + 15;
-  if ((rinkf1 == 8) && (node->stack_xyz[2] % 3 == 1))
+    node->xyz[0] = kyeenemyno->x - 20 - 7;
+    node->xyz[1] = kyeenemyno->y + 28 + 15;
+    if ((rinkf1 == 8) && (p->dt1 % 3 == 1))
     {
-      if ((node->dt2 < 16))
+	if ((p->dt2 < 16))
 	{
-	  node->dt2++;
-	  DefSprite(77, "boss2_leftarmbattery", node->dt2, 16, 480, boss);	/*º¸ÏÓ¥¢¥Ã¥×¥¢¡¼¥àˤ */
+	    p->dt2++;
+	    DefSprite(77, "boss2_leftarmbattery", p->dt2, 16, 480, boss);	/*º¸ÏÓ¥¢¥Ã¥×¥¢¡¼¥àˤ */
 	}
-      else
+	else
 	{
-	  rinkf1 = 9;
-	  return p;
+	    rinkf1 = 9;
 	}
     }
-  if (rinkf1 == 9)
+    if (rinkf1 == 9)
     {
-      if (node->stack_xyz[2] % 15 == 1) 
+	if (p->dt1 % 15 == 1) 
 	{
-	  Puttama(9 + rand() % 2, node->xyz[0], node->xyz[1]);
+	    Puttama(9 + rand() % 2, node->xyz[0], node->xyz[1]);
 	}
     }
-  if (rinkf1 == 10)
+    if (rinkf1 == 10)
     {
-      if (node->dt2 != 0)
+	if (p->dt2 != 0)
 	{
-	  node->dt2--;
-	  DefSprite(77, "boss2_leftarmbattery", node->dt2, 16, 480, boss);
+	    p->dt2--;
+	    DefSprite(77, "boss2_leftarmbattery", p->dt2, 16, 480, boss);
 	}
-      else
+	else
 	{
-	  node->f = FALSE;
-	  node->set_move_collision(delete_chara;
-	  node->collision = noaction;
-	  return p;
-	  //          rinkf1=11;
+	    p->f = FALSE;
+
+	    node->set_move_collision(noaction, delete_chara);
+	    //          rinkf1=11;
 	}
     }
-  node->stack_xyz[2]++;
-  return p;
+    p->dt1++;
 }
 
 
-void chara_state400(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
+void
+chara_state400(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
+{
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    p->vy++;
+    node->xyz[1] += p->vy / 4;
+}
+
+
+void
+chara_state401(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  node->stack_xyz[1]++;
-  node->xyz[1] += node->stack_xyz[1] / 4;
-  node->set_move_collision(chara_state400;
-  return p;
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    p->vx++;
+    node->xyz[0] += p->vx / 8;
+    if (node->xyz[0] > (jiki.x - 32))
+    {
+	p->vy--;
+    }
+    node->xyz[1] += p->vy / 8;
+    if (p->dt1 % 50 == 37)
+    {
+	Puttama(1, node->xyz[0] + 8, node->xyz[1] + 24);
+    }
+    p->dt1++;
 }
 
 
-void chara_state401(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
+void
+chara_state402(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  node->stack_xyz[0]++;
-  node->xyz[0] += node->stack_xyz[0] / 8;
-  if (node->xyz[0] > (jiki.x - 32))
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    p->vx--;
+    node->xyz[0] += p->vx / 8;
+    if (node->xyz[0] < (jiki.x + 32))
     {
-      node->stack_xyz[1]--;
+	p->vy--;
     }
-  node->xyz[1] += node->stack_xyz[1] / 8;
-  if (node->stack_xyz[2] % 50 == 37)
+    node->xyz[1] += p->vy / 8;
+    if (p->dt1 % 50 == 37)
     {
-      Puttama(1, node->xyz[0] + 8, node->xyz[1] + 24);
+	Puttama(1, node->xyz[0] + 8, node->xyz[1] + 24);
     }
-  node->stack_xyz[2]++;
-  return p;
+    p->dt1++;
 }
 
 
-void chara_state402(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
+void
+chara_state410(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  node->stack_xyz[0]--;
-  node->xyz[0] += node->stack_xyz[0] / 8;
-  if (node->xyz[0] < (jiki.x + 32))
-    {
-      node->stack_xyz[1]--;
-    }
-  node->xyz[1] += node->stack_xyz[1] / 8;
-  if (node->stack_xyz[2] % 50 == 37)
-    {
-      Puttama(1, node->xyz[0] + 8, node->xyz[1] + 24);
-    }
-  node->stack_xyz[2]++;
-  return p;
-}
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
 
-
-void chara_state410(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
-{
-  kyeenemyno = p;
-  node->set_move_collision(chara_state411;
-  return p;
+    kyeenemyno = p;
+    node->set_move_collision(chara_state411);
 }
 
 
-void chara_state411(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
+void
+chara_state411(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  if (node->dt2 > 356)
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    if (p->dt2 > 356)
     {
-      node->stack_xyz[0] = -1;
-    }
-  if (node->dt2 < -398)
-    {
-      node->stack_xyz[0] = 1;
+	p->vx = -1;
     }
-  if ((node->stack_xyz[2]) % 62 == 0)
-    Putenemy(41,
-	     node->xyz[0],
-	     node->xyz[1],
-	     (int) -Mycos(node->stack_xyz[2] / 16) * 4 /
-	     SANKAKU,
-	     (int) -Mysin(node->stack_xyz[2] / 16) * 4 /
-	     SANKAKU, chara_state7);
-  if ((node->stack_xyz[2]) % 13 == 0)
-    Puttama(11, node->xyz[0] + 32,
-	    node->xyz[1] + 32);
+    if (p->dt2 < -398)
+    {
+	p->vx = 1;
+    }
+    if ((p->dt1) % 62 == 0)
+	Putenemy(sgroot, root, 41,
+		 node->xyz[0],
+		 node->xyz[1],
+		 (int) -Mycos(p->dt1 / 16) * 4 /
+		 SANKAKU,
+		 (int) -Mysin(p->dt1 / 16) * 4 /
+		 SANKAKU, chara_state7);
+    if ((p->dt1) % 13 == 0)
+	Puttama(11, node->xyz[0] + 32,
+		node->xyz[1] + 32);
   
-  node->dt2 += node->stack_xyz[0];
-  node->stack_xyz[2] += node->dt2 / 4;
+    p->dt2 += p->vx;
+    p->dt1 += p->dt2 / 4;
   
-  node->xyz[0] = jiki.x - 16 +
-    Mycos(node->stack_xyz[2] / 16) * 128 / SANKAKU;
-  node->xyz[1] = jiki.y - 16 +
-    Mysin(node->stack_xyz[2] / 16) * 128 / SANKAKU;
-  if (node->xyz[0] < 0)
+    node->xyz[0] = jiki.x - 16 +
+	Mycos(p->dt1 / 16) * 128 / SANKAKU;
+    node->xyz[1] = jiki.y - 16 +
+	Mysin(p->dt1 / 16) * 128 / SANKAKU;
+    if (node->xyz[0] < 0)
     {
-      node->xyz[0] = 0;
+	node->xyz[0] = 0;
     }
-  if (node->xyz[0] > 260)
+    if (node->xyz[0] > 260)
     {
-      node->xyz[0] = 260;
+	node->xyz[0] = 260;
     }
-  if (node->xyz[1] < 0)
+    if (node->xyz[1] < 0)
     {
-      node->xyz[1] = 0;
+	node->xyz[1] = 0;
     }
-  if (node->xyz[1] > 232)
+    if (node->xyz[1] > 232)
     {
-      node->xyz[1] = 232;
+	node->xyz[1] = 232;
     }
-  return p;
 }
 
 
-void chara_state500(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
+void
+chara_state500(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  node->s = 0;
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    p->s = 0;
   
-  kyeenemyno = p;
-  node->dt2++;
-  node->dt2 %= 512;
-  node->stack_xyz[2]++;
-  count++;
-  DefSpriteEx(100, 16, 16);
-  //		PutSprite(count, enemy[tekino].x + 16,
-  //  enemy[tekino].y + 16, 100);
-  PutSpriteEx(100, node->xyz[0] + 16, node->xyz[1] + 16, 2, 2, node->stack_xyz[2]);
+    kyeenemyno = p;
+    p->dt2++;
+    p->dt2 %= 512;
+    p->dt1++;
+    count++;
+    DefSpriteEx(100, 16, 16);
+    //		PutSprite(count, enemy[tekino].x + 16,
+    //  enemy[tekino].y + 16, 100);
+    PutSpriteEx(100, node->xyz[0] + 16, node->xyz[1] + 16, 2, 2, p->dt1);
   
-  if (node->stack_xyz[2] % (5 + node->dt2 / 8) == 1) {
-    if (rand() % 2 == 1)
-      Putenemy(24, node->xyz[0], node->xyz[1],
-	       (rand() % 5 + 0.5) * (rand() % 2 ==
-				     1 ? -1 : 1),
-	       (rand() % 5 + 0.5) * (rand() % 2 ==
-				     1 ? -1 : 1), chara_state501);
-    else
-      Putenemy(rand() % 2 + 1, node->xyz[0],
-	       node->xyz[1],
-	       (int) Mycos(node->stack_xyz[2] / 4) * 4 /
-	       SANKAKU,
-	       (int) -Mysin(node->stack_xyz[2] / 4) * 4 /
-	       SANKAKU, chara_state501);
-  }
-  if (node->stack_xyz[2] == 50) {
-    /*Putenemy(44,0,0,1,1,411); */
-  }
-  return p;
+    if (p->dt1 % (5 + p->dt2 / 8) == 1) {
+	if (rand() % 2 == 1)
+	    Putenemy(sgroot, root, 24, node->xyz[0], node->xyz[1],
+		     (rand() % 5 + 0.5) * (rand() % 2 ==
+					   1 ? -1 : 1),
+		     (rand() % 5 + 0.5) * (rand() % 2 ==
+					   1 ? -1 : 1), chara_state501);
+	else
+	    Putenemy(sgroot, root, rand() % 2 + 1, node->xyz[0],
+		     node->xyz[1],
+		     (int) Mycos(p->dt1 / 4) * 4 /
+		     SANKAKU,
+		     (int) -Mysin(p->dt1 / 4) * 4 /
+		     SANKAKU, chara_state501);
+    }
+    if (p->dt1 == 50) {
+	/*Putenemy(sgroot, root, 44,0,0,1,1,411); */
+    }
 }
 
 
-void chara_state501(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
+void
+chara_state501(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  node->xyz[0] += node->stack_xyz[0];
-  node->xyz[1] += node->stack_xyz[1];
-  if(node->stack_xyz[2] % 32 == 1)
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    node->xyz[0] += p->vx;
+    node->xyz[1] += p->vy;
+    if(p->dt1 % 32 == 1)
     {
-      Puttama(11, node->xyz[0], node->xyz[1]);
+	Puttama(11, node->xyz[0], node->xyz[1]);
     }
-  node->stack_xyz[2]++;
-  return p;
+    p->dt1++;
 }
 
 
-void chara_state600(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
+void
+chara_state600(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  kyeenemyno = p;
-  node->stack_xyz[2] += 30;
-  node->dt2++;
-  node->stack_xyz[2] %= 360;
-  node->xyz[0] += Mycos(node->stack_xyz[2]) * 4 / SANKAKU;
-  node->xyz[1] += Mysin(node->stack_xyz[2]) * 4 / SANKAKU;
-  Puttama(11, node->xyz[0] + 16, node->xyz[1] + 16);
-  Puttama(11, node->xyz[0] + 32, node->xyz[1] + 48);
-  Puttama(11, node->xyz[0] + 48, node->xyz[1] + 16);
-  if (node->dt2 > 240)
-    node->set_move_collision(chara_state601;
-  if (node->xyz[0] < 0)
-    node->xyz[0] = 0;
-  if (node->xyz[0] > 260)
-    node->xyz[0] = 260;
-  if (node->xyz[1] < 0)
-    node->xyz[1] = 0;
-  if (node->xyz[1] > 232)
-    node->xyz[1] = 232;
-  return p;
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    kyeenemyno = p;
+    p->dt1 += 30;
+    p->dt2++;
+    p->dt1 %= 360;
+    node->xyz[0] += Mycos(p->dt1) * 4 / SANKAKU;
+    node->xyz[1] += Mysin(p->dt1) * 4 / SANKAKU;
+    Puttama(11, node->xyz[0] + 16, node->xyz[1] + 16);
+    Puttama(11, node->xyz[0] + 32, node->xyz[1] + 48);
+    Puttama(11, node->xyz[0] + 48, node->xyz[1] + 16);
+    if (p->dt2 > 240)
+	node->set_move_collision(chara_state601);
+    if (node->xyz[0] < 0)
+	node->xyz[0] = 0;
+    if (node->xyz[0] > 260)
+	node->xyz[0] = 260;
+    if (node->xyz[1] < 0)
+	node->xyz[1] = 0;
+    if (node->xyz[1] > 232)
+	node->xyz[1] = 232;
 }
 
 
-void chara_state601(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
+void
+chara_state601(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  node->dt2++;
-  if (node->xyz[0] < jiki.x)
-    node->stack_xyz[0]++;
-  if (node->xyz[0] > jiki.x)
-    node->stack_xyz[0]--;
-  node->xyz[0] += node->stack_xyz[0];
-  Putenemy(6, node->xyz[0] + 16 + rand() % 32,
-	   node->xyz[1], 0, rand() % 4, chara_state400);
-  if (node->xyz[0] < 0)
-    node->xyz[0] = 0;
-  if (node->xyz[0] > 260)
-    node->xyz[0] = 260;
-  if (node->xyz[1] < 0)
-    node->xyz[1] = 0;
-  if (node->xyz[1] > 232)
-    node->xyz[1] = 232;
-  if (node->dt2 > 800) {
-    node->set_move_collision(chara_state602;
-  }
-  return p;
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    p->dt2++;
+    if (node->xyz[0] < jiki.x)
+	p->vx++;
+    if (node->xyz[0] > jiki.x)
+	p->vx--;
+    node->xyz[0] += p->vx;
+    Putenemy(sgroot, root, 6, node->xyz[0] + 16 + rand() % 32,
+	     node->xyz[1], 0, rand() % 4, chara_state400);
+    if (node->xyz[0] < 0)
+	node->xyz[0] = 0;
+    if (node->xyz[0] > 260)
+	node->xyz[0] = 260;
+    if (node->xyz[1] < 0)
+	node->xyz[1] = 0;
+    if (node->xyz[1] > 232)
+	node->xyz[1] = 232;
+    if (p->dt2 > 800) {
+	node->set_move_collision(chara_state602);
+    }
 }
 
 
-void chara_state602(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
+void
+chara_state602(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
-  node->dt2++;
-  Putenemy(24, node->xyz[0] + 14, node->xyz[1] + 14,
-	   (rand() % 5 + 0.5) * (rand() % 2 == 1 ? -1 : 1),
-	   (rand() % 5 + 0.5) * (rand() % 2 == 1 ? -1 : 1),
-	   chara_state29);
-  if (node->dt2 > 1024) {
-    node->set_move_collision(chara_state600;
-    node->dt2 = 0;
-  }
-  return p;
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
+
+    p->dt2++;
+    Putenemy(sgroot, root, 24, node->xyz[0] + 14, node->xyz[1] + 14,
+	     (rand() % 5 + 0.5) * (rand() % 2 == 1 ? -1 : 1),
+	     (rand() % 5 + 0.5) * (rand() % 2 == 1 ? -1 : 1),
+	     chara_state29);
+    if (p->dt2 > 1024) {
+	node->set_move_collision(chara_state600);
+	p->dt2 = 0;
+    }
 }
 
 
-void  asteroid(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
+void
+asteroid(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
 {
+    int charano = node->stack_xyz[0];
+    SpriteTable *p = &sptable[charano];
     int i;
 
     asteroiddt[asteroidi] = p;
     //            if(asteroidi==0)
     //            {
-    node->xyz[0] += node->stack_xyz[0];
-    node->xyz[1] += node->stack_xyz[1];
+    node->xyz[0] += p->vx;
+    node->xyz[1] += p->vy;
     //            }
     if (asteroidi > 0) {
 	for (i = 0; i < asteroidi; i++) {
@@ -1162,12 +1242,11 @@
 		&& (node->xyz[0] + 32 > asteroiddt[i]->x)
 		&& (asteroiddt[i]->y + 32 > node->xyz[1])
 		&& (asteroiddt[i]->y < node->xyz[1] + 32)) {
-		node->stack_xyz[0] *= -1;
-		node->stack_xyz[1] *= -1;
+		p->vx *= -1;
+		p->vy *= -1;
 	    }
 	}
     }
     asteroidi++;
-    return p;
 }
 #endif
--- a/src/Character_state.h	Thu May 20 19:51:03 2010 +0900
+++ b/src/Character_state.h	Tue Dec 07 18:37:43 2010 +0900
@@ -1,3 +1,5 @@
+#ifndef INCLUDE_CHARACTER_H
+#define INCLUDE_CHARACTER_H
 
 void noaction(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h);
 void chara_state0(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h);
@@ -14,8 +16,6 @@
 void chara_state11(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h);
 void chara_state12(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h);
 void chara_state13(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h);
-
-#if 0
 void chara_state20(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h);
 void chara_state21(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h);
 void chara_state22(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h);
@@ -45,8 +45,9 @@
 void chara_state601(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h);
 void chara_state602(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h);
 void asteroid(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h);
-#endif
 
 extern int enemyfaste;
 extern int fastebos;
 extern int asteroidi;
+
+#endif
--- a/src/LoadSprite.cc	Thu May 20 19:51:03 2010 +0900
+++ b/src/LoadSprite.cc	Tue Dec 07 18:37:43 2010 +0900
@@ -12,7 +12,7 @@
 #include "tree_controll.h"
 #include "LoadSprite.h"
 
-//#define bmp_file "./s-dandy.bmp"
+SDL_Surface *sprite;
 
 SDL_Surface *LoadSprite(SURFACE *surfaces)
 {
@@ -23,7 +23,7 @@
   image = IMG_Load(surfaces->image_name);
   
   if ( image == NULL ) {
-    fprintf(stderr, "Couldn't load %s: %s", image, SDL_GetError());
+      //fprintf(stderr, "Couldn't load %s: %s", image, SDL_GetError());
     printf("can't not load image_file\n");
     return NULL;
   }
--- a/src/LoadSprite.h	Thu May 20 19:51:03 2010 +0900
+++ b/src/LoadSprite.h	Tue Dec 07 18:37:43 2010 +0900
@@ -1,2 +1,2 @@
 SDL_Surface *LoadSprite(SURFACE *surfaces);
-SDL_Surface *sprite;
+extern SDL_Surface *sprite;
--- a/src/Makefile	Thu May 20 19:51:03 2010 +0900
+++ b/src/Makefile	Tue Dec 07 18:37:43 2010 +0900
@@ -1,9 +1,12 @@
+all:  
+	make -f Makefile.macosx $*
+fifo64:  
+	make -f Makefile.macosx ABIBIT=64 $*
+linux:  
+	make -f Makefile.linux $*
+cell:
+	make -f Makefile.cell $*
 
-all:  
-	make -f Makefile.macosx
-
-cell:
-	make -f Makefile.cell
 
 clean:
 	make -f Makefile.macosx clean
--- a/src/Makefile.cell	Thu May 20 19:51:03 2010 +0900
+++ b/src/Makefile.cell	Tue Dec 07 18:37:43 2010 +0900
@@ -6,12 +6,16 @@
 LIBS   += `sdl-config --libs` -lSDL_image -lGL `xml2-config --libs` 
 
 
-.SUFFIXES: .cc .o .xml
+.SUFFIXES: .proto .pb.o .pb.cc .cc .o .xml .xml.h .xml.cc
 
 .cc.o:
 	$(CC) $(CFLAGS) $(INCLUDE) -c $< -o $@
 
-ALL =  ball_bound boss1_action direction gaplant ieshoot node panel universe untitled vacuum dynamic viewer
+%.pb.cc: $(PROTODIR)/%.proto
+	$(PROTO) $(PROTOFLAGS) $<
+
+ALL = spe-main $(TARGET)
+
 all: $(ALL)
 
 speobject:
@@ -25,12 +29,8 @@
 
 
 spe-main:
-	ln -s ../Engine/spe-main .
-
+	ln -s $(CERIUM)/Engine/spe-main .
 
-BALL_BOUND_OBJ = ball_bound.o
-ball_bound : $(BALL_BOUND_OBJ) 
-	$(CC) -o $@ $?   $(LIBS)
 
 BOSS_OBJ = boss1_action.o
 boss1_action : $(BOSS_OBJ) 
@@ -76,6 +76,42 @@
 viewer : $(VIEWER_OBJ) 
 	$(CC) -o $@ $?    $(LIBS)
 
+SG_CHANGE_OBJ = SgRootChange.o
+SgRootChange : $(SG_CHANGE_OBJ) 
+	$(CC) -o $@ $?   $(LIBS)
+
+PROPERTY_TEST_OBJ = property_test.o
+property_test : $(PROPERTY_TEST_OBJ)
+	$(CC) -o $@ $?   $(LIBS)
+
+CREATE_TASK_OBJ = create_task.o
+create_task : $(CREATE_TASK_OBJ)
+	$(CC) -o $@ $?   $(LIBS)
+
+P_UNIVERSE_OBJ = property_universe.o
+property_universe : $(P_UNIVERSE_OBJ)
+	$(CC) -o $@ $?   $(LIBS)
+
+CHAIN_OLD = chain_old.o
+chain_old : $(CHAIN_OLD)
+	$(CC) -o $@ $? $(LIBS)
+
+P_CHAIN_OBJ = property_chain.o
+property_chain : $(P_CHAIN_OBJ)
+	$(CC) -o $@ $? $(LIBS)
+
+AQUARIUM_OBJ = aquarium.pb.o aquarium.o
+aquarium : $(AQUARIUM_OBJ)
+	$(CC) -o $@ $?    $(LIBS) $(PROTOLIBS)
+
+NETWORK_OBJ = network_game.pb.o network.o
+network : $(NETWORK_OBJ)
+	$(CC) -o $@ $?    $(LIBS) $(PROTOLIBS)
+
+INIT_AQUARIUM_OBJ = aquarium.pb.o init_aquarium.o
+init_aquarium : $(INIT_AQUARIUM_OBJ)
+	$(CC) -o $@ $? $(LIBS) $(PROTOLIBS)
+
 debug: $(TARGET)
 	sudo ppu-gdb ./$(TARGET) 
 
@@ -86,7 +122,6 @@
 clean:
 	rm -f $(TARGET) $(OBJS) $(TASK_OBJS) *.o
 	rm -f *~ \#* $(ALL)
-	rm -f $(BALL_BOUND_XML).cc $(BALL_BOUND_XML).h $(BALL_BOUND_OBJ)
 
 -include depend.inc
 
--- a/src/Makefile.def	Thu May 20 19:51:03 2010 +0900
+++ b/src/Makefile.def	Tue Dec 07 18:37:43 2010 +0900
@@ -1,11 +1,17 @@
-TARGET = s-dandy
+TARGET = s_dandy
 
-CERIUM = ../..
+CERIUM = ../../Cerium
 
-ABI = -m32
+ABIBIT = 32
+ABI =  -m$(ABIBIT)
 CC      = g++
-CFLAGS  = -g -Wall $(ABI)  # -O -DDEBUG
+CFLAGS  = -g -Wall $(ABI) # -O9    -O -DDEBUG
 
-INCLUDE = -I$(CERIUM)/include/TaskManager -I. -I$(CERIUM)/include/Cerium
+INCLUDE = -I$(CERIUM)/include/TaskManager -I$(CERIUM)/Renderer/Engine -I. -I$(CERIUM)/include/Cerium
 LIBS = -L$(CERIUM)/TaskManager -L$(CERIUM)/Renderer/Engine $(ABI)
-TOOL = $(CERIUM)/bin
\ No newline at end of file
+TOOL = $(CERIUM)/bin
+
+PROTO = protoc
+PROTODIR = ./protobuf
+PROTOFLAGS = -I=$(PROTODIR) --cpp_out=./
+PROTOLIBS = -lprotobuf
--- a/src/Makefile.macosx	Thu May 20 19:51:03 2010 +0900
+++ b/src/Makefile.macosx	Tue Dec 07 18:37:43 2010 +0900
@@ -1,38 +1,43 @@
 include ./Makefile.def
 
-#SRCS_TMP = $(wildcard *.cc)
-#SRCS_EXCLUDE =  # ½ü³°
-#SRCS = $(filter-out $(SRCS_EXCLUDE),$(SRCS_TMP))
-#OBJS = $(SRCS:.cc=.o)
-OBJS = schedule3 Character_state Character collision
+SRCS_TMP = $(wildcard *.cc)
+SRCS_EXCLUDE =  # 除外ã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã‚’書ã
+SRCS = $(filter-out $(SRCS_EXCLUDE),$(SRCS_TMP))
+OBJS = $(SRCS:.cc=.o)
 
-LIBS += -lCerium -lFifoManager 
+LIBS += -lCerium -lFifoManager
 
-CFLAGS += `sdl-config --cflags` `xml2-config --cflags` $(INCLUDE)  
-LIBS   += `sdl-config --libs` `xml2-config --libs` -lSDL_image -Wl,-framework,OpenGL 
+CFLAGS += `sdl-config --cflags` `xml2-config --cflags`
+LIBS   += `sdl-config --libs` `xml2-config --libs` -lSDL_image -lSDL_mixer -Wl,-framework,OpenGL
 
-.SUFFIXES: .cc .o  .xml .xml.h .xml.cc
+.SUFFIXES: .proto .pb.o .pb.cc .cc .o .xml .xml.h .xml.cc
 
 .cc.o:
-	$(CC) $(CFLAGS)  -c $< -o $@
+	$(CC) $(CFLAGS) $(INCLUDE) -c $< -o $@
 
+%.pb.cc: $(PROTODIR)/%.proto
+	$(PROTO) $(PROTOFLAGS) $<
+
+oFLAGS=-g -O2
+CFLAGt=-g -O2
 all: $(TARGET)
 
-$(TARGET) : $(OBJS)
-	$(CC) -o $@ $?   $(LIBS)  
+$(TARGET): $(OBJS)
+	   $(CC) -o $@ $(OBJS) $(LIBS)
 
 run: $(TARGET)
 	sudo ./$(TARGET) -width 576 -height 384 -bpp 32
 
 debug: $(TARGET)
-	sudo ppu-gdb ./$(TARGET) 
+	sudo ppu-gdb ./$(TARGET)
 
 depend:
 	$(RM) depend.inc
-	$(CC) -MM -MG $(INCLUDE) $(CFLAGS) $(SRCS) > depend.inc
+	$(CC) -MM -MG $(INCLUDE) $(CFLAGS) $(SRCS) $(TASK_SRCS) > depend.inc
 
 clean:
 	rm -f $(TARGET) $(OBJS) $(TASK_OBJS) *.o
 	rm -f *~ \#* $(TARGET)
+	rm -f *.pb.{cc,h}
 
--include depend.inc
+-include depend.inc
\ No newline at end of file
--- a/src/S_Dandy.cc	Thu May 20 19:51:03 2010 +0900
+++ b/src/S_Dandy.cc	Tue Dec 07 18:37:43 2010 +0900
@@ -1,26 +1,70 @@
-#include "Application.h"
-#include "S-Dandy.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include <math.h>
+#include <time.h>
+#include <SDL.h>
+#include <SDL_mixer.h>
 
+#include "SDL_opengl.h"
+#include "object.h"
+#include "tree_controll.h"
+#include "xml.h"
+#include "profile.h"
+#include "syokika.h"
+#include "sankaku.h"
+#include "sgoex.h"
+#include "sound.h"
+#include "bool.h"
+#include "Character.h"
+#include "Character_state.h"
+#include "bom.h"
+#include "count.h"
+#include "tokuten.h"
+#include "schedule.h"
+#include "tama.h"
+#include "debug.h"
+#include "trace.h"
+#include "LoadSprite.h"
+#include "collision.h"
+
+#include "Pad.h"
+#include "S_Dandy.h"
+
+int gamef = 0;
+int d;
+
+int rswait = 0;
+int cf = 0;
+int cc = 0;
+
+extern int init(TaskManager *manager, int argc, char *argv[]);
+extern void task_initialize();
+static void TMend(TaskManager *manager);
 
 const char *usr_help_str = "Usage: ./test_nogl [OPTION]\n";
 
-MainLoopPtr
-boss1_action::init_only_sg(SgChange *sgroot, int screen_w, int screen_h)
+/* runmode:                                                                     
+   0 - normal game                                                         
+   1 - capture mode                                                        
+   program will capture all pad traces on a play and               
+   dump it into a file                                             
+   2 - trace mode                                                          
+   program will run with a trace file which is generated           
+   by capture-mode */
+int runmode;
+
+
+#ifdef ENABLETRACEMODE
+#define SCMP_SIZ 8
+
+void print_usage()
 {
-  return sgroot;
+    dbg_printf
+	("usage: %s [-h|-help|--help][--capture filename][--trace filename]\n",PROGRAM_NAME);
 }
 
-extern Application *
-application() {
-  return new boss1_action();
-}
-
-
-void
-print_usage()
-{
-    dbg_printf("usage: %s [-h|-help|--help][--capture filename][--trace filename]\n",PROGRAM_NAME);
-}
 
 
 int
@@ -35,14 +79,12 @@
 	    if (++i >= argc) {
 		return 1;
 	    }
-	    pad_trace_file = argv[i];
 	    runmode = 1;
 	    return 0;
 	} else if (!strncmp(argv[i], "--trace", SCMP_SIZ)) {
 	    if (++i >= argc) {
 		return 1;
 	    }
-	    pad_trace_file = argv[i];
 	    runmode = 2;
 	    return 0;
 	} else if (!strncmp(argv[i], "--help", SCMP_SIZ) ||
@@ -53,13 +95,90 @@
     }
     return 1;
 }
+#endif                          //ENABLE_TRACEMODE 
+
 
 void
-gamesyokika(SDL_Joystick *joy)
+S_Dandy::app_loop(Viewer *viewer)
+{
+    Pad *pad = viewer->getController();
+    Timeprof timeprof_move = timeprof_new();
+
+    if(gamef) {
+	if((pad->l1.isPush() && pad->l1.isHold())
+	   && (pad->r1.isPush() && pad->r1.isHold())
+	   && (pad->l2.isPush() && pad->l2.isHold())
+	   && (pad->r2.isPush() && pad->r2.isHold())) {
+	    gamesyokika(pad);
+	}
+	
+//	glClear( GL_COLOR_BUFFER_BIT);
+	printf("frame = %d\n", filpcount);
+	schedule(viewer, root);
+	enemyfaste = count;
+
+	timeprof_begin(timeprof_move);
+//$B%3%j%8%g%s(B	collision_detect();
+//$B2hLL30(B	outofwindow();
+	timeprof_end(timeprof_move);
+//$B%`!<%V(B	state_update();
+	asteroidi = 0;
+	if (jiki.bf == TRUE) {
+	    Player(viewer, root, 0);
+	    count++;
+	    PutSprite(sgroot, root, jiki.x, jiki.y, jiki.ch);
+	}
+	Putbom();
+	tokuten(viewer, root);
+
+	count++;
+	//PutSprite(count, 0, 960 - 96, 10);
+	/*$B%$%s%U%l%2!<%8(B */
+	count++;
+	//PutSprite(count, 0, 0, 48);
+//$B%*%V%8%'%/%HIA2h(B	obj_draw();
+	pause(pad);
+
+//	glFlush();
+//	SDL_GL_SwapBuffers( );
+	filpcount++;
+	SDL_Delay(10);
+	count = 0;
+    } else {
+#if 0
+	stop_time = SDL_GetTicks();
+
+	char buf[128];
+	timeprof_sprint(buf, "move", timeprof_move);
+	dbg_printf("%s\n", buf);
+    
+//	SDL_GL_Leave2DMode();
+//	SDL_FreeSurface(sprite);
+	
+//	SDL_JoystickClose(joy);
+	
+	//_______________________________________________
+	// SDL_mixer$B$N8e;OKv(B
+	Mix_CloseAudio();
+	Mix_HaltMusic();
+	FreeSdlMixer() ;
+	//_______________________________________________
+	
+	// quit $B%$%Y%s%H$r(B push $B$7$F=*N;(B
+	SDL_Event event;
+	event.type = SDL_QUIT;
+
+	SDL_PushEvent(&event);
+#endif
+    }
+}
+
+void
+S_Dandy::gamesyokika(Pad *pad)
 {
     laser_lv3[0].r = 62;
     laser_lv3[0].r = 62;
-    for (i = 0; i < 3; i++) {
+    for (int i = 0; i < 3; i++) {
 	tlv3[i].y = -1;
     }
     filpcount = 0;
@@ -78,365 +197,221 @@
     pg.stg = 4096;
     infg.stg = 0;
     infg_level = 0;
-    //kyeenemyno = -1;
     fastebos = 0;
     jiki.ccount = 99;
     p_extend = 200000;
-    pad[0].up=0;
-    pad[0].down=0;
-    pad[0].right=0;
-    pad[0].left=0;
-    pad[0].st=0;
-    pad[0].se=0;
-    opening(joy);
+
+    pad->up.reset();
+    pad->down.reset();
+    pad->right.reset();
+    pad->left.reset();
+    pad->start.reset();
+    pad->select.reset();
+
+    opening(pad);
+}
+
+int
+S_Dandy::opening(Pad *pad)
+{
+    SoundStop();
+    SoundPlay(7);
+    
+    count = 1;
+
+    SceneGraphPtr s_dandy = PutSprite(sgroot, this->root, 224, 776, 119); //  put `super dandy'
+    s_dandy->set_move_collision(noaction, title_collision);
+
+    SceneGraphPtr start = PutSprite(sgroot, root, 700, 480, 53); //  put `push start' string on screen.
+    start->set_move_collision(noaction, subtitle_collision);
+    count++;
+
+    // $B%W%m%Q%F%#$N%5%$%:$rI=<($7$F$$$k(B
+    int size = sizeof(SpriteTable);
+    printf("sptable size = %d\n", size);
+
+    count++;
+
+    SceneGraphPtr super = PutSprite(sgroot, root, 800, 264, 190);
+    super->set_move_collision(noaction, subtitle_collision);
+    //    PutSprite(count, 200, 64, 190);
+    // $B3HBg5!G=$,<BAu$5$l$?$i(B PutSpriteEx(190, 800, 264, 2, 2, 5);
+    count++;
+
+    SceneGraphPtr dan = PutSprite(sgroot, root, 396, 432, 191);
+    dan->set_move_collision(noaction, subtitle_collision);
+    count++;
+
+    SceneGraphPtr dy = PutSprite(sgroot, root, 640, 640, 192);
+    dy->set_move_collision(noaction, subtitle_collision);
+    return 1;
 }
 
 
 void
-opening(SDL_Joystick *joy)
-{
-  //²»³ÚÎà¤Ï°ìöÄä»ß SoundStop();
-  //                 SoundPlay(7);
-  
-  while (1) {
-    if(use_keybord == 1) {
-      keybord();
-    } else {
-      Pad(joy);
-    }
-    
-    count = 1;
-    
-    PutSprite(count, 700, 480, 53); //  put `push start' string on screen.  
-    count++;
-    PutSprite(count, 224, 776, 119); //  put `super dandy'                   
-    count++;
-    //    PutSprite(count, 200, 64, 190);
-    //    PutSpriteEx(count, 8192, 8192, 0);
-    PutSpriteEx(190, 800, 264, 2, 2, 5);
-    count++;
-    PutSprite(count, 396, 432, 191);
-    //PutSpriteEx(count, 8192, 8192, 0);
-    count++;
-    PutSprite(count, 640, 640, 192);
-    //PutSpriteEx(count, 8192, 8192, 0);
-
-    if (pad[0].st > 1) {
-      jiki.bf = TRUE;
-	    
-      //CdPlay(1,&cdp[0],0);                                          
-      SoundStop();
-      SoundPlay(0);
-
-      gamef = 1;
-      pad[0].st = 1;
-      return;
-    }
-    if ((pad[0].se > 0) && (pad[0].st > 0)) {
-      gamef = 0;
-      break;
-    }
-
-
-    SDL_GL_SwapBuffers( );
-  }
-
-
-
-void
-pause(SDL_Joystick *joy)
+S_Dandy::pause(Pad *pad)
 {
     if (jiki.zanki != 0 && jiki.bf != FALSE) {
-	if (pad[0].se == 1) {
-	  //²»³ÚÎà¤Ï°ìöÄä»ß PauseSdlMixer(BGM);
-	  
-	  while (1) {
-	    if (use_keybord == 1) {
-	      keybord();
-	    } else {
-	      Pad(joy);
+	if (pad->select.isPush() && pad->select.isHold()) {
+	    Mix_Pause(BGM) ;
+	    while(1){
+		if(pad->start.isPush())
+		    continue;
+		pad->up.reset();
+		pad->down.reset();
+		pad->right.reset();
+		pad->left.reset();
+		pad->select.reset();
+		pad->start.reset();
+		Mix_Resume(BGM);
+		break;
 	    }
-
-	    if (pad[0].st == 0) {
-	      continue;
-	    }
-
-	    pad[0].up=0;
-	    pad[0].down=0;
-	    pad[0].right=0;
-	    pad[0].left=0;
-	    pad[0].se=0;
-	    pad[0].st=0;
-
-	    //²»³ÚÎà¤Ï°ìöÄä»ß ResumeSdlMixer(BGM);
-	    break;
-	  }
 	}
     }
-    
     if (jiki.zanki == 0) {
-      if ((jiki.ccount > 0) && (cf == 0)) {
-	cf = 1;
-	count++;
-	//cgcg(2);
-	PutSprite(2, 480, 480, 110);
+	//     RECT *recp;                                                      
+	if ((jiki.ccount > 0) && (cf == 0)) {
+	    cf = 1;
+	    count++;
+	    PutSprite(sgroot, root, 480, 480, 110);
+	    count++;
+	}
+	if ((jiki.ccount > 0) && (cf == 1)) {
+	    while (1) {
+		if (pad->start.isPush() && pad->start.isHold()) {
+		    cf = 0;
+		    jiki.ccount--;
+		    jiki.zanki = 3;
+		    enemycount++;
+		    cc = 0;
+		    for (int i = 0; i < 4; i++) {
+			clear_result[i] = 0;
+		    }
+		    goto f;
+		}
+		cc++;
+		if (29 - cc / 60 < 20) {
+		    cc = 0;
+		    cf = 3;
+		    break;
+		}
+		SDL_Delay(100);
+		PutSprite(sgroot, root, 640, 640, 29 - cc / 60);
+		//      	PutSpriteEx(1, 409 * ((cc % 60) + 1), 409 * ((cc % 60) + 1), 0);
+
+//		Pad(joy);
+		SDL_GL_SwapBuffers( );
+	    }
+	}
+	if (rswait > 60 * 6) {
+	    cf = 0;
+	    rswait = 0;
+	    gamesyokika(pad);
+	}
+	rswait++;
 	count++;
 	//cgcg(1);
-      }
-      
-      if ((jiki.ccount > 0) && (cf == 1)) {
-	while (1) {
-	  if (pad[0].st > 0) {
-	    cf = 0;
-	    jiki.ccount--;
-	    jiki.zanki = 3;
-	    enemycount++;
-	    cc = 0;
-	    for (i = 0; i < 4; i++) {
-	      clear_result[i] = 0;
-	    }
-	    goto f;
-	  }
-
-	  cc++;
-
-	  if (29 - cc / 60 < 20) {
-	    cc = 0;
-	    cf = 3;
-	    break;
-	  }
-
-	  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( );
-	}
-      }
-
-      if (rswait > 60 * 6) {
-	cf = 0;
-	rswait = 0;
-	gamesyokika(joy);
-      }
-
-      rswait++;
-      count++;
-      //cgcg(1);
-      PutSprite(1, 480, 480, 19);
-
-      return;
+	PutSprite(sgroot, root, 480, 480, 19);
+	return;
     }
-    
     if (jiki.bf == FALSE) {
     f:
-      if (rswait < 80) {
-	rswait++;
-	return;
-      } else {
-	rswait = 0;
-	jiki.x = 60;
-	jiki.y = 200;
-	jiki.bf = TRUE;
-	
-	pad[0].st = 0;
-	lg.stg = 4096;
-	pg.stg = 4096;
-	laser_lv3[0].r = 62;
-	tlv3[0].r = 0;
-	tlv3[0].y = -1;
-	return;
-	// sb_size = -1;                                                    
-      }
+	if (rswait < 80) {
+	    rswait++;
+	    return;
+	} else {
+	    rswait = 0;
+	    jiki.x = 60;
+	    jiki.y = 200;
+	    jiki.bf = TRUE;
+
+	    pad->start.reset();
+	    lg.stg = 4096;
+	    pg.stg = 4096;
+	    laser_lv3[0].r = 62;
+	    tlv3[0].r = 0;
+	    tlv3[0].y = -1;
+	    return;
+	    // sb_size = -1;                                                    
+	}
     }
 }
 
-
 MainLoopPtr
-boss1_action::init(Viewer *sgroot, int screen_w, int screen_h)
+S_Dandy::init(Viewer *sgroot, int w, int h)
 {
-  /*** ¥¢¥×¥ê¦¤Ç¤Î¥Ñ¥Ã¥É¤Î½é´ü²½ ***/
-  SceneGraphRoot *sgroot = (SceneGraphRoot *)sgroot;
-  Pad *pad = sgroot->getController();
+    Pad *pad = sgroot->getController();
+    this->sgroot = sgroot;
+    this->screen_w = w;
+    this->screen_h = h;
+    this->root = sgroot->createSceneGraph();
+    this->sgroot->setSceneData(root);
 
-  Timeprof timeprof_move;//²¿¤«¤Î¥«¥¦¥ó¥È
-  timeprof_move = timeprof_new();
-  dbg_init("/dev/stdout");//¥Ç¥Ð¥Ã¥°ÍÑ?
-  
-  /**
-   * timeprof ¤¬¤¢¤ë¤ó¤À¤±¤É¤Í
-   */
-  int frames = 0;
-  int start_time = 0, stop_time = 0;
-  
-#ifdef ENABLE_TRACEMODE
-  if (get_option(argc, argv)) {
-    print_usage();
-    return (1);
-  }
-  if (pad_trace_file) {
-    pad_file_open(pad_trace_file);
-  }
-  if(myrand_open_file("rand_trace")) {
-    perror("main");
-    retun 1;
-  }
-#endif
-  
-  syokika(argc, argv); //syokika¤ò½ñ¤­´¹¤¨¤ÆÂнè
-  __debug("syokika¤¬¸Æ¤Ó¤À¤µ¤ì¤Þ¤·¤¿\n");
-
-  /** Renderer/Engine¤ÎÊý¤Ç¼ÂÁõ¤µ¤ì¤Æ¤ë¤Î¤Ç½ü³°
+    dbg_init("/dev/stdout");
 
-      SDL_Joystick *joy=SDL_JoystickOpen(0);
-      if(!joy) {
-      fprintf(stderr,"failed to open joystick 0\n");
-      use_keybord = 1;
-      }
-      background = SDL_MapRGB(screen->format, 0x00, 0x00, 0x00);
-      SDL_FillRect(screen, NULL, background);
+#ifdef ENABLE_TRACEMODE
+    if (get_option(argc, argv)) {
+	print_usage();
+	return (1);
+    }
+    if(myrand_open_file("rand_trace")) {
+	perror("main");
+	retun 1;
+    }
+#endif    //ENABLE_TRACEMODE
 
-  **/
-  
-  SDL_GL_Enter2DMode();
-  
-  opening(joy);
-  __debug("opening¤¬¤è¤Ó¤À¤µ¤ì¤Þ¤·¤¿\n");
-  
+    if(syokika(this->sgroot)) {
+	printf("syokika done.\n");
+    }
 
-  /***** ¤È¤ê¤¢¤¨¤º²»´ØÏ¢¤Ï½ü³°
-      
-   // SDL_mixer ¤È¤«¤¤¤í¤¤¤í½é´ü²½
-   // ¤â¤· Init ¤Ë¼ºÇÔ¤·¤¿¤é
-   // °Ê¸å¤Î Mixer ´ØÏ¢¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤Æ¤â
-   // Ãæ¤Ç¤Ï²¿¤â¹Ô¤ï¤ì¤Ê¤¤¤È¤«¤¤¤¦¾®ºÙ¹©¤òÆþ¤ì¤Þ¤·¤¿¡£
-   InitSdlMixer();
-   
-   // ²»³Ú¥Õ¥¡¥¤¥ë¤ÎÆɤ߹þ¤ß
-   LoadSdlMixer();
-   
-   // ¥Ü¥ê¥å¡¼¥àÄ´À°
-   InitVolume();
-   
-   // ²»½Ð¤·¥Æ¥¹¥È
-   PlaySdlMixer(-1, BGM);
-   
-  ******/
-  
-  
-  if(!(init_chara_list(1024))){
-    __debug("failed to init_chara_list\n");
-  }
-  
-  __debug("finished init_chara_list\n");
-  
-  start_time = SDL_GetTicks();
- //Renderer¤ÎÊý¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤ò»È¤¦
- //¤¢¤ë¤¤¤Ïframe¤ò»²¾È¤«
+// $B2hLL$NEI$j$D$V$7(B
+//    background = SDL_MapRGB(screen->format, 0x00, 0x00, 0x00);
+//    SDL_FillRect(screen, NULL, background);
+//    SDL_GL_Enter2DMode();
+
+    if(opening(pad)) {
+	printf("opening done.\n");
+    }
+
+    if(Mix_OpenAudio(MIX_DEFAULT_FREQUENCY,MIX_DEFAULT_FORMAT,2,1024)<0) {
+	fprintf(stderr,"failed to initialize SDL_mixer.\n");
+	SDL_Quit();
+	exit(-1);
+    }
+    // $B2;3Z%U%!%$%k$NFI$_9~$_(B
+    LoadSdlMixer();
   
-  while (gamef) {
-    if ((pad[0].l1 != 0) && (pad[0].r1 != 0) &&
-	(pad[0].l2 != 0) && (pad[0].r2 != 0)) {
-      glFlush();
-      SDL_GL_SwapBuffers( );
-      gamesyokika(joy);
-    }
-    
-    if (pad[0].quit != 0) {
-      gamef = 0;
-    }
-    
-    //SDL_FillRect(screen, NULL, background);
-    glClear( GL_COLOR_BUFFER_BIT);		
-    
-    schedule();
-    enemyfaste = count;
-    
-    timeprof_begin(timeprof_move);
-    //Move(); //enemy move
-    collision_detect();
-    outofwindow();
-    timeprof_end(timeprof_move);
-    state_update();
-    asteroidi = 0;
-    //charpatern();
-    //bosguage();
-    
-    if (jiki.bf == TRUE) {
-      Player(0);
-      count++;
-      PutSprite(count, jiki.x, jiki.y, jiki.ch);
-    }
-    
-    Putbom();//Put_enemy½ñ¤­´¹¤¨¤Ç²ò·è
-    tokuten();//
+    InitVolume();
+  
+    // $B2;=P$7%F%9%H(B
+    PlaySdlMixer( -1, BGM);
+  
+/* $B%3%3$G:n$C$F$k$N$,(B SceneGraphTree $B$NA0?H(B
+   if(!(init_chara_list(1024))){
+   printf("failed to init_chara_list\n");
+   }
+   printf("finished init_chara_list\n");
+*/
     
-    count++;
-    //PutSprite(count, 0, 960 - 96, 10);
-    /*¥¤¥ó¥Õ¥ì¥²¡¼¥¸ */
-    count++;
-    //PutSprite(count, 0, 0, 48);
-    obj_draw();
-    pause(joy);
-    
-    if (use_keybord) {
-      keybord();
-    } else {
-      Pad(joy);
-    }
-    
-    glFlush();
-    SDL_GL_SwapBuffers( );
-    filpcount++;
-    SDL_Delay(10);
-    count = 0;
-    
-    
-    frames++;
-  }
-  
-  stop_time = SDL_GetTicks();
-  
-  {
-    char buf[128];
-    timeprof_sprint(buf, "move", timeprof_move);
-    dbg_printf("%s\n", buf);
-  }
-  
-  printf("%f FPS\n", ((float)frames)/(stop_time-start_time)*1000.0);
-  
-  SDL_GL_Leave2DMode();
-  SDL_FreeSurface(sprite);
-  
-  SDL_JoystickClose(joy);
-  
-  //_______________________________________________
-  // SDL_mixer¤Î¸å»ÏËö
-  Mix_CloseAudio();
-  Mix_HaltMusic();
-  FreeSdlMixer() ;
-  //_______________________________________________
-  
-  
-  SDL_Quit();
-  
-  return sgroot;
+    return sgroot;
 }
 
-
+extern Application *
+application() {
+    return new S_Dandy();
+}
 
 int
 TMmain(TaskManager *manager, int argc, char *argv[])
 {
-  task_initialize();
-  manager->set_TMend(TMend);
-  return init(manager, argc, argv);
+    task_initialize();
+    manager->set_TMend(TMend);
 
+    return init(manager, argc, argv);
 }
 
 void
 TMend(TaskManager *manager)
 {
-  printf("test_nogl end\n");
+    printf("game end\n");
 }
--- a/src/S_Dandy.h	Thu May 20 19:51:03 2010 +0900
+++ b/src/S_Dandy.h	Tue Dec 07 18:37:43 2010 +0900
@@ -1,86 +1,24 @@
-#ifndef S_DANDY_H
-#define S_DANDY_H
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <math.h>
-#include <time.h>
-#include <SDL.h>
-#include <SDL_mixer.h>
-
-#include "SDL_opengl.h"
-#include "object.h"
-#include "tree_controll.h"
-#include "xml.h"
-#include "profile.h"
-#include "syokika.h"
-#include "sankaku.h"
-#include "sgoex.h"
-#include "sound.h"
-#include "bool.h"
-#include "Character.h"
-#include "Character_state.h"
-#include "bom.h"
-#include "count2.h"
-#include "tokuten.h"
-#include "schedule.h"
-#include "tama.h"
-#include "debug.h"
-#include "trace.h"
-#include "LoadSprite.h"
-#include "error.h"
+#ifndef INCLUDE_S_DANDY_H
+#define INCLUDE_S_DANDY_H
 
 #include "SceneGraphRoot.h"
+#include "Application.h"
 #include "MainLoop.h"
 
-
-int gamef = 0;
-int use_keybord = 0;
-int cdp[20] = { 16, 16, 16, 17, 18, 0 };
-int d, i;
-
-int rswait = 0;
-int cf = 0;
-int cc = 0;
-
-
-static Uint32 background;
-static char *pad_trace_file;
-
-extern void schedule();
-extern void tokuten();
-extern void Pad();
-extern void keybord();
-extern void SDL_GL_Enter2DMode();
-extern void SDL_GL_Leave2DMode();
-
-static void gamesyokika();
-static void opening();
-static void pause();
-
-
-/**
- * runmode:
- * 0 - normal game                                                         
- * 1 - capture mode                                                        
- *     program will capture all pad traces on a play and               
- *     dump it into a file                                             
- * 2 - trace mode                                                          
- *     program will run with a trace file which is generated           
- *     by capture-mode
- */
-int runmode;
-
-#ifdef ENABLE_TRACEMODE
-#define SCMP_SIZ 8
-
 class S_Dandy : public Application {
+  Viewer *sgroot;
+  SceneGraphPtr root;
+  int screen_w, screen_h;
   
-  MainLoopPtr init(Viewer *viewer, int screen_w, int screen_h);
-  MainLoopPtr init_only_sg(SgChange *viewer, int screen_w, int screen_h);
+  /* override */
+  void app_loop(Viewer *viewer);
+  MainLoopPtr init(Viewer *viewer, int w, int h);
+  
+  int opening(Pad *pad);
+  void gamesyokika(Pad *pad);
+  void pause(Pad *pad);
 };
 
+extern int gamef;
 
 #endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Ss.cc	Tue Dec 07 18:37:43 2010 +0900
@@ -0,0 +1,125 @@
+/*
+ *    Ss is an omission which means Sound Synthesizer. But, this version, for PS2,
+ *    isn't implemented the realities. We think that the Sc module can be implemented 
+ *    with SDLaudio-library-for-PS2.
+ */
+
+//#include "libps.h"
+#include <SDL.h>
+
+int SsUtKeyOn(int vabId, int prog, int tone, int note, int fine, int voll,
+	      int vlor)
+{
+    return 0;
+}
+
+
+int SsUtKeyOff(int voice, int vabId, int prog, int tone, int note)
+{
+    return 0;
+}
+
+
+void SsSetSerialAttr(char s_num, char attr, char mode)
+{
+}
+
+
+void SsSetSerialVol(char a, int b, int c)
+{
+}
+
+
+int SsUtSetReverbType(int type)
+{
+    return type;
+}
+
+
+
+void SsSetMVol(int voll, int volr)
+{
+}
+
+
+
+
+
+void SsUtReverbOn(void)
+{
+}
+
+
+
+#if 0
+int VSync(int mode)
+{
+    return 59;
+}
+#endif
+
+
+
+int SsVabTransfer(unsigned char *vh_addr, unsigned char *vd_addr,
+		  int vabid, int i_flag)
+{
+    return vabid;
+}
+
+
+
+int SsSeqOpen(unsigned int *addr, int vad_id)
+{
+    return 1;
+}
+
+
+
+void SsSeqPlay(int seq_access_num, char play_mode, int count)
+{
+}
+
+
+
+void SsSeqStop(int seq_access_num)
+{
+}
+
+
+
+void SsSeqClose(int seq_access_num)
+{
+}
+
+/*
+int CdReadFile(char *file, u_int * addr, int nbyte)
+{
+    return 0;
+}
+
+
+int CdReadSync(int mode, u_char * result)
+{
+    return 0;
+}
+
+
+CdlFILE *CdSearchFile(CdlFILE * fp, char *name)
+{
+    return 0;
+}
+*/
+
+void SsSetTempo(int a, int b, int c)
+{
+}
+
+
+void GetPadBuf(volatile unsigned char **a, volatile unsigned char **b)
+{
+}
+
+
+void SsUtSetReverbDepth(int a, int b)
+{
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Ss.h	Tue Dec 07 18:37:43 2010 +0900
@@ -0,0 +1,17 @@
+#include <SDL.h>
+
+extern int SsUtKeyOn(int vabId, int prog, int tone, int note, int fine, int voll, int vlor);
+extern int SsUtKeyOff(int voice, int vabId, int prog, int tone, int note);
+extern void SsSetSerialAttr(char s_num, char attr, char mode);
+extern void SsSetSerialVol(char a, int b, int c);
+extern int SsUtSetReverbType(int type);
+extern void SsSetMVol(int voll, int volr);
+extern void SsUtReverbOn(void);
+extern int SsVabTransfer(unsigned char *vh_addr, unsigned char *vd_addr, int vabid, int i_flag);
+extern int SsSeqOpen(unsigned int *addr, int vad_id);
+extern void SsSeqPlay(int seq_access_num, char play_mode, int count);
+extern void SsSeqStop(int seq_access_num);
+extern void SsSeqClose(int seq_access_num);
+extern void SsSetTempo(int a, int b, int c);
+extern void GetPadBuf(volatile unsigned char **a, volatile unsigned char **b);
+extern void SsUtSetReverbDepth(int a, int b);
--- a/src/b64_de.cc	Thu May 20 19:51:03 2010 +0900
+++ b/src/b64_de.cc	Tue Dec 07 18:37:43 2010 +0900
@@ -14,7 +14,7 @@
 
 int decode(char *cont, FILE *outfile)
 {
-  unsigned int rw;
+  int rw;
   struct tagTT work;
   
   work.buf = 0;
@@ -22,7 +22,7 @@
   work.cont = cont;
   
   rw = GetNumB64( &work );
-  while ( rw != -1 ) 
+  while ( rw != -1 )
     {
       putc( rw, outfile );
       rw = GetNumB64( &work );
--- a/src/collision.cc	Thu May 20 19:51:03 2010 +0900
+++ b/src/collision.cc	Tue Dec 07 18:37:43 2010 +0900
@@ -9,320 +9,307 @@
 #include "collision.h"
 //#include "atari.h"
 #include "bom.h"
-#include "count2.h"
+#include "count.h"
 #include "sound.h"
 //#include "Enemy.h"
 //#include "libps.h"
 #include "sgoex.h"
 
+#include "SceneGraph.h"
+#include "S_Dandy.h"
+
 extern SpriteTable sptable[DEFOBJ];
 
 void
-nocollision(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h,
+nocollision(SceneGraphPtr node, int screen_w, int screen_h,
 	    SceneGraphPtr tree){}
 
-/*** Åö¤¿¤êȽÄê¤Ë»È¤¦¥Ñ¥é¥á¡¼¥¿¤äÊÑ¿ô¤ÎÄêµÁ ***/
-#if 0
-CHARACTER * atari(CHARACTER *p) 
-  
-  int i1, h, w, ex, ey, charno;
-  int n;
-  ex = p->x;
-  ey = node->xyz[1];
-  charno = p->charano;
-  w = sptable[charno].w;
-  h = sptable[charno].h;
-  //i2 = playerno;
-#endif
-    
-
-//#ifndef INVISIBLE_MODE
-
-/*** ¼«µ¡¤ä¤é¤ì¡¡¤¿¤À¤·ÌµÅ¨»þ´ÖÃæ¤Ç̵¤±¤ì¤Ð¤È¤¤¤¦¾ò·ïÉÕ¤­ ***/
 void
-player_collision(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h,
-		 SceneGraphPtr tree)
-{
-  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) {
-    //se_voice[0] = SsUtKeyOn(vab[JIKIOUT], 0, 0, 65, 0, 60, 60);
-    Bom(jiki.x + 16, jiki.y + 16);
-    jiki.bf = FALSE;
-    jiki.zanki--;
-    jiki.muteki = 120;
-    
-    infg.stg = 0;
-    infg_level--;
-    if (infg_level < 0) {
-      infg_level = 0;
-    }
-  }
-}
- 
-//#endif
- 
-//  if (p->tama == TRUE)
-//  goto jumping;
- 
-//    for (i1 = 0; i1 < tama_lv1_end + 1; i1++) {
- 
-/*** tama_lv1_end ¤Ë¤Ê¤ë¤Þ¤Ç ***/
-void
-collision_01(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h,
+delete_chara(SceneGraphPtr node, void *sgroot_, int w, int h,
 	     SceneGraphPtr tree)
 {
-  if ((tama_lv1[i1].x + 64 + 64 > ex)
-      && (ex + w > tama_lv1[i1].x + 16)
-      && (tama_lv1[i1].y + 128 > ey) && (tama_lv1[i1].y < ey + h)
-      && (tama_lv1[i1].r != -1)) {
-    tama_lv1[i1].r = -1;
-    p->vit -= TAMALV1P;
-    infg.stg++;
-    if (p->vit <= 0) {
-      infg.stg += 4;
-      Bom(node->xyz[0], node->xyz[1]);
-      enemycount += (p->score * ((infg.stg / 128) + infg_level + 1));
-      p->state = delete_chara;
-      p->collision = noaction;
-      p->f = FALSE;
-    }
-  }
+    node->remove();
 }
-  
+
 void
-collision_02(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h,
-	     SceneGraphPtr tree)
+title_collision(SceneGraphPtr node, void *sgroot_, int w, int h,
+		SceneGraphPtr tree)
 {
-  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)) {
-    tama_lv1[i1].l = -1;
-    p->vit -= TAMALV1P;
-    infg.stg++;
-    if (p->vit <= 0) {
-      infg.stg += 4;
-      Bom(node->xyz[0], node->xyz[1]);
-      enemycount += (p->score *	((infg.stg / 128) + infg_level + 1));
-      p->state = delete_chara;
-      p->collision = noaction;
-      p->f = FALSE;
+    SceneGraphRoot *sgroot = (SceneGraphRoot *)sgroot_;
+    Pad *pad = sgroot->getController();
+
+    if (pad->start.isPush() && pad->start.isHold()) {
+	jiki.bf = TRUE;
+
+	SoundStop();
+	SoundPlay(0);
+	
+	gamef = 1;
+
+//	node->remove();
     }
-  }
-}
-/*** tama_lv1_end ¤³¤³¤Þ¤Ç ***/
 
-// for (i1 = 0; i1 < tama_lv2_end + 1; i1++) {
+    if ((pad->start.isPush() && pad->start.isHold()) && 
+        (pad->select.isPush() && pad->select.isHold())) {
+
+	gamef = 0;
+    }
 
-/*** tama_lv2_end ¤Ë¤Ê¤ë¤Þ¤Ç ***/
-void
-collision_03(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h,
-	     SceneGraphPtr tree)
-{
-  if ((tama_lv2[i1].x + 128 + 64 > ex)
-      && (ex + w > tama_lv2[i1].x + 128)
-      && (tama_lv2[i1].y + 192 > ey) && (tama_lv2[i1].y < ey + h)
-      && (tama_lv2[i1].rr != -1)) {
-    tama_lv2[i1].rr = -1;
-    p->vit -= TAMALV2P;
-    infg.stg++;
-    if (p->vit <= 0) {
-      infg.stg += 4;
-      Bom(node->xyz[0], node->xyz[1]);
-      enemycount += (p->score * ((infg.stg / 128) + infg_level + 1));
-      p->state = delete_chara;
-      p->collision = noaction;
-      p->f = FALSE;
-    }
-  }
+/* ¥¿¥¤¥È¥ë¤Î move
+   if (pad[0].st > 1) {
+   jiki.bf = TRUE;
+
+	    //          CdPlay(1,&cdp[0],0);                                    
+	    SoundStop();
+	    SoundPlay(0);
+
+	    gamef = 1;
+	    pad[0].st = 1;
+	    return;
+	}
+	if ((pad[0].se > 0) && (pad[0].st > 0)) {
+	    gamef = 0;
+	    break;
+	}
+*/
 }
- 
+
 void
-collision_04(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h,
-	     SceneGraphPtr tree)
+subtitle_collision(SceneGraphPtr node, void *sgroot_, int w, int h,
+		SceneGraphPtr tree)
 {
-  if ((tama_lv2[i1].x + 64 + 64 > ex)
-      && (ex + w > tama_lv2[i1].x + 16)
-      && (tama_lv2[i1].y - 32 + 192 > ey)
-      && (tama_lv2[i1].y - 32 < ey + h)
-      && (tama_lv2[i1].sr != -1)) {
-    tama_lv2[i1].sr = -1;
-    p->vit -= TAMALV2P;
-    infg.stg++;
-    if (p->vit <= 0) {
-      infg.stg += 4;
-      Bom(node->xyz[0], node->xyz[1]);
-      enemycount += (p->score * ((infg.stg / 128) + infg_level + 1));
-      p->state = delete_chara;
-      p->collision = noaction;
-      p->f = FALSE;
+    if(gamef) {
+	node->remove();
     }
-  }
 }
 
 void
-collision_05(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h,
-	     SceneGraphPtr tree)
+atari(SceneGraphPtr node, void *sgroot_, int w, int h,
+      SceneGraphPtr tree)
 {
-  if ((tama_lv2[i1].x + 64 > ex) && (ex + w > tama_lv2[i1].x)
-      && (tama_lv2[i1].y - 32 + 192 > ey)
-      && (tama_lv2[i1].y - 32 < ey + h)
-      && (tama_lv2[i1].sl != -1)) {
-    tama_lv2[i1].sl = -1;
-    p->vit -= TAMALV2P;
-    infg.stg++;
-    if (p->vit <= 0) {
-      infg.stg += 4;
-      Bom(node->xyz[0], node->xyz[1]);
-      enemycount += (p->score * ((infg.stg / 128) + infg_level + 1));
-      p->state = delete_chara;
-      p->collision = noaction;
-      p->f = FALSE;
+    int i1, height, width, ex, ey, charno;
+    int n;
+
+    SpriteTable *p;
+
+    ex = node->xyz[0];
+    ey = node->xyz[1];
+    charno = node->stack_xyz[0];
+
+    p = &sptable[charno];
+    width = p->w;
+    height = p->h;
+    //i2 = playerno;
+
+
+    //¼«µ¡¤ä¤é¤ì
+#ifndef INVISIBLE_MODE
+    if ((ex < jiki.x + 128 / 2) && (ex + width > jiki.x + 128 / 2)
+	&& (ey < jiki.y + 128 / 2) && (ey + height > jiki.y + 128 / 2)
+	&& jiki.muteki == 0) {
+      //se_voice[0] = SsUtKeyOn(vab[JIKIOUT], 0, 0, 65, 0, 60, 60);
+	Bom(jiki.x + 16, jiki.y + 16);
+	jiki.bf = FALSE;
+	jiki.zanki--;
+	jiki.muteki = 120;
+
+	infg.stg = 0;
+	infg_level--;
+	if (infg_level < 0)
+	    infg_level = 0;
     }
-  }
-}
+#endif
+
+    if (p->tama == TRUE)
+	goto jumping;
+    for (i1 = 0; i1 < tama_lv1_end + 1; i1++) {
+
+	if ((tama_lv1[i1].x + 64 + 64 > ex)
+	    && (ex + width > tama_lv1[i1].x + 16)
+	    && (tama_lv1[i1].y + 128 > ey) && (tama_lv1[i1].y < ey + height)
+	    && (tama_lv1[i1].r != -1)) {
+	    tama_lv1[i1].r = -1;
+	    p->vit -= TAMALV1P;
+	    infg.stg++;
+	    if (p->vit <= 0) {
+		infg.stg += 4;
+		Bom(p->x, p->y);
+		enemycount += (p->score *
+			       ((infg.stg / 128) + infg_level + 1));
 
-void
-collision_06(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h,
-	     SceneGraphPtr tree)
-{
-  if ((tama_lv2[i1].x - 64 + 64 > ex)
-      && (ex + w > tama_lv2[i1].x - 64)
-      && (tama_lv2[i1].y + 192 > ey) && (tama_lv2[i1].y < ey + h)
-      && (tama_lv2[i1].ll != -1)) {
-    tama_lv2[i1].ll = -1;
-    p->vit -= TAMALV2P;
-    infg.stg++;
-    if (p->vit <= 0) {
-      infg.stg += 4;
-      Bom(node->xyz[0], node->xyz[1]);
-      enemycount += (p->score * ((infg.stg / 128) + infg_level + 1));
-      p->state = delete_chara;
-      p->collision = noaction;
-      p->f = FALSE;
+		node->set_move_collision(noaction, delete_chara);
+		p->f = FALSE;
+	    }
+	}
+	if ((tama_lv1[i1].x + 64 > ex) && (ex + width > tama_lv1[i1].x)
+	    && (tama_lv1[i1].y + 128 > ey) && (tama_lv1[i1].y < ey + height)
+	    && (tama_lv1[i1].l != -1)) {
+	    tama_lv1[i1].l = -1;
+	    p->vit -= TAMALV1P;
+	    infg.stg++;
+	    if (p->vit <= 0) {
+		infg.stg += 4;
+		Bom(p->x, p->y);
+		enemycount += (p->score *
+			       ((infg.stg / 128) + infg_level + 1));
+		node->set_move_collision(noaction, delete_chara);
+		p->f = FALSE;
+	    }
+	}
     }
-  }
-}
 
-/*** tama_lv2_end ¤³¤³¤Þ¤Ç ***/
+    for (i1 = 0; i1 < tama_lv2_end + 1; i1++) {
+	if ((tama_lv2[i1].x + 128 + 64 > ex)
+	    && (ex + width > tama_lv2[i1].x + 128)
+	    && (tama_lv2[i1].y + 192 > ey) && (tama_lv2[i1].y < ey + height)
+	    && (tama_lv2[i1].rr != -1)) {
+	    tama_lv2[i1].rr = -1;
+	    p->vit -= TAMALV2P;
+	    infg.stg++;
+	    if (p->vit <= 0) {
+		infg.stg += 4;
+		Bom(p->x, p->y);
+		enemycount += (p->score *
+			       ((infg.stg / 128) + infg_level + 1));
+		node->set_move_collision(noaction, delete_chara);
+		p->f = FALSE;
+	    }
+	}
 
-void
-collision_07(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h,
-	     SceneGraphPtr tree)
-{
-  if ((tlv3[0].r > 0) && (jiki.x < ex + w) && (jiki.x + 128 > ex)
-      && (jiki.y > ey + h)) {
-    p->vit -= TAMALV3P;
-    infg.stg++;
-    if (p->vit <= 0) {
-      infg.stg += 4;
-      Bom(node->xyz[0], node->xyz[1]);
-      enemycount += (p->score * ((infg.stg / 128) + infg_level + 1));
-      p->state = delete_chara;
-      p->collision = noaction;
-      p->f = FALSE;
+	if ((tama_lv2[i1].x + 64 + 64 > ex)
+	    && (ex + width > tama_lv2[i1].x + 16)
+	    && (tama_lv2[i1].y - 32 + 192 > ey)
+	    && (tama_lv2[i1].y - 32 < ey + height)
+	    && (tama_lv2[i1].sr != -1)) {
+	    tama_lv2[i1].sr = -1;
+	    p->vit -= TAMALV2P;
+	    infg.stg++;
+	    if (p->vit <= 0) {
+		infg.stg += 4;
+		Bom(p->x, p->y);
+		enemycount += (p->score *
+			       ((infg.stg / 128) + infg_level + 1));
+		node->set_move_collision(noaction, delete_chara);
+		p->f = FALSE;
+	    }
+	}
+	if ((tama_lv2[i1].x + 64 > ex) && (ex + width > tama_lv2[i1].x)
+	    && (tama_lv2[i1].y - 32 + 192 > ey)
+	    && (tama_lv2[i1].y - 32 < ey + height)
+	    && (tama_lv2[i1].sl != -1)) {
+	    tama_lv2[i1].sl = -1;
+	    p->vit -= TAMALV2P;
+	    infg.stg++;
+	    if (p->vit <= 0) {
+		infg.stg += 4;
+		Bom(p->x, p->y);
+		enemycount += (p->score *
+			       ((infg.stg / 128) + infg_level + 1));
+		node->set_move_collision(noaction, delete_chara);
+		p->f = FALSE;
+	    }
+	}
+	if ((tama_lv2[i1].x - 64 + 64 > ex)
+	    && (ex + width > tama_lv2[i1].x - 64)
+	    && (tama_lv2[i1].y + 192 > ey) && (tama_lv2[i1].y < ey + height)
+	    && (tama_lv2[i1].ll != -1)) {
+	    tama_lv2[i1].ll = -1;
+	    p->vit -= TAMALV2P;
+	    infg.stg++;
+	    if (p->vit <= 0) {
+		infg.stg += 4;
+		Bom(p->x, p->y);
+		enemycount += (p->score *
+			       ((infg.stg / 128) + infg_level + 1));
+		node->set_move_collision(noaction, delete_chara);
+		p->f = FALSE;
+	    }
+	}
     }
-  }
-}
-
-//  jumping:
-
-/*** Object¤Îtama¥Õ¥é¥°¤¬TRUE¤Î¾ì¹ç ***/
+    if ((tlv3[0].r > 0) && (jiki.x < ex + width) && (jiki.x + 128 > ex)
+	&& (jiki.y > ey + height)) {
+	p->vit -= TAMALV3P;
+	infg.stg++;
+	if (p->vit <= 0) {
+	    infg.stg += 4;
+	    Bom(p->x, p->y);
+	    enemycount += (p->score *
+			   ((infg.stg / 128) + infg_level + 1));
+	    node->set_move_collision(noaction, delete_chara);
+	    p->f = FALSE;
+	}
+    }
+  jumping:
+    if ((tlv3[0].r > 0) && (jiki.x < ex + width) && (jiki.x + 128 > ex)
+	&& (jiki.y + 128 > ey) && (jiki.y < ey + height)) {
+	p->vit -= TAMALV3P;
+	infg.stg++;
+	if (p->vit <= 0) {
+	    infg.stg += 4;
+	    Bom(p->x, p->y);
+	    enemycount += (p->score *
+			   ((infg.stg / 128) + infg_level + 1));
+	    node->set_move_collision(noaction, delete_chara);
+	    p->f = FALSE;
+	}
+    }
+    /*laser lv1 */
+    for (i1 = 0; i1 < laser_lv1_end + 1; i1++) {
+	n = laser_lv1[i1].r * 128 / 4096;
 
-void
-collision_08(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h,
-	     SceneGraphPtr tree)
-{
-    if ((tlv3[0].r > 0) && (jiki.x < ex + w) && (jiki.x + 128 > ex)
-	&& (jiki.y + 128 > ey) && (jiki.y < ey + h)) {
-      p->vit -= TAMALV3P;
-      infg.stg++;
-      if (p->vit <= 0) {
-	infg.stg += 4;
-	Bom(node->xyz[0], node->xyz[1]);
-	enemycount += (p->score *¡¡((infg.stg / 128) + infg_level + 1));
-	p->state = delete_chara;
-	p->collision = noaction;
-	p->f = FALSE;
-      }
+	if ((laser_lv1[i1].x + n > ex) && (ex + width > laser_lv1[i1].x)
+	    && (laser_lv1[i1].y + n > ey) && (laser_lv1[i1].y < ey + height)
+	    && (laser_lv1[i1].r != -1)) {
+	    laser_lv1[i1].r = -1;
+	    laser_lv1[i1].y = -1;
+	    p->vit -= LASERLV1P;
+	    infg.stg++;
+	    if (p->vit <= 0) {
+		infg.stg += 4;
+		Bom(p->x, p->y);
+		enemycount += (p->score *
+			       ((infg.stg / 128) + infg_level + 1));
+	    node->set_move_collision(noaction, delete_chara);
+	    p->f = FALSE;
+	    }
+	}
+    }
+    /*shield(laser lv2) */
+    if ((p->tama == TRUE) && (lg.stg > 0) &&
+	(laser_lv2[0].x + 128 > ex) && (ex + width > laser_lv2[0].x - 128)
+	&& (laser_lv2[0].y + 128 > ey) && (laser_lv2[0].y - 128 < ey + height)
+	&& (laser_lv2[0].r != 0)) {
+	p->vit -= LASERLV2P;
+	lg.stg -= 26;
+	infg.stg++;
+	if (p->vit <= 0) {
+	    infg.stg += 4;
+	    Bom(p->x, p->y);
+	    enemycount += (p->score *
+			   ((infg.stg / 128) + infg_level + 1));
+	    node->set_move_collision(noaction, delete_chara);
+	    p->f = FALSE;
+	}
+    }
+    /*bomber(laser lv3) */
+    if (laser_lv3[0].r < 62) {
+	for (i1 = 1; i1 < 128; i1++) {
+	    if ((laser_lv3[i1].x + 128 > ex) && (ex + width > laser_lv3[i1].x)
+		&& (laser_lv3[i1].y + 128 > ey)
+		&& (laser_lv3[i1].y < ey + height)
+		&& (laser_lv3[i1].r > 0)) {
+		tama_lv2[i1].rr = -1;
+		p->vit -= LASERLV3P;
+		infg.stg++;
+		if (p->vit <= 0) {
+		    infg.stg += 4;
+		    Bom(p->x, p->y);
+		    enemycount += (p->score *
+				   ((infg.stg / 128) + infg_level + 1));
+		    node->set_move_collision(noaction, delete_chara);
+		    p->f = FALSE;
+		}
+	    }
+	}
     }
 }
-
-/*laser lv1 */
-//  for (i1 = 0; i1 < laser_lv1_end + 1; i1++) {
-//    n = laser_lv1[i1].r * 128 / 4096;
-
-/*** laser_lv1_end ¤Ë¤Ê¤ë¤Þ¤Ç ***/
-
-void
-collision_09(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h,
-	     SceneGraphPtr tree)
-{   
-  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)) {
-    laser_lv1[i1].r = -1;
-    laser_lv1[i1].y = -1;
-    p->vit -= LASERLV1P;
-    infg.stg++;
-    if (p->vit <= 0) {
-      infg.stg += 4;
-      Bom(node->xyz[0], node->xyz[1]);
-      enemycount += (p->score * ((infg.stg / 128) + infg_level + 1));
-      p->state = delete_chara;
-      p->collision = noaction;
-      p->f = FALSE;
-    }
-  }
-}
-/*** laser_lv1_end¤³¤³¤Þ¤Ç ***/
- 
-/*shield(laser lv2) */
-void
-collision_10(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h,
-	     SceneGraphPtr tree)
-{
-  if ((p->tama == TRUE) && (lg.stg > 0) &&
-      (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)) {
-    p->vit -= LASERLV2P;
-    lg.stg -= 26;
-    infg.stg++;
-    if (p->vit <= 0) {
-      infg.stg += 4;
-      Bom(node->xyz[0], node->xyz[1]);
-      enemycount += (p->score * ((infg.stg / 128) + infg_level + 1));
-      p->state = delete_chara;
-      p->collision = noaction;
-      p->f = FALSE;
-    }
-  }
-}
-
-/*bomber(laser lv3) */
-void
-collision_11(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h,
-	     SceneGraphPtr tree)
-{
-  if (laser_lv3[0].r < 62) {
-    for (i1 = 1; i1 < 128; i1++) {
-      if ((laser_lv3[i1].x + 128 > ex) && (ex + w > laser_lv3[i1].x)
-	  && (laser_lv3[i1].y + 128 > ey)
-	  && (laser_lv3[i1].y < ey + h)
-	  && (laser_lv3[i1].r > 0)) {
-	tama_lv2[i1].rr = -1;
-	p->vit -= LASERLV3P;
-	infg.stg++;
-	if (p->vit <= 0) {
-	  infg.stg += 4;
-	  Bom(node->xyz[0], node->xyz[1]);
-	  enemycount += (p->score * ((infg.stg / 128) + infg_level + 1));
-	  p->state = delete_chara;
-	  p->collision = noaction;
-	  p->f = FALSE;
-	}
-      }
-    }
-  }
-}
--- a/src/collision.h	Thu May 20 19:51:03 2010 +0900
+++ b/src/collision.h	Tue Dec 07 18:37:43 2010 +0900
@@ -1,10 +1,28 @@
-#include "Character.h"
-#ifndef collision_h
-#define collision_h 1
+#ifndef INCLUDE_COLLISION_H
+#define INCLUDE_COLLISION_H
 
 void
 nocollision(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h,
-	    SceneGraphPtr tree){}
+	    SceneGraphPtr tree);
+
+void
+delete_chara(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h,
+	    SceneGraphPtr tree);
+
+void
+title_collision(SceneGraphPtr node, void *sgroot_, int w, int h,
+		SceneGraphPtr tree);
+
+void
+subtitle_collision(SceneGraphPtr node, void *sgroot_, int w, int h,
+		SceneGraphPtr tree);
+
+void
+atari(SceneGraphPtr node, void *sgroot_, int w, int h,
+      SceneGraphPtr tree);
+
+/*
+CHARACTER *atari(CHARACTER *p);
 
 void
 player_collision(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h,
@@ -53,5 +71,5 @@
 void
 collision_11(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h,
 	     SceneGraphPtr tree);
-
+*/
 #endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/count.cc	Tue Dec 07 18:37:43 2010 +0900
@@ -0,0 +1,418 @@
+#include <stdlib.h>
+#include "object.h"
+#include "count.h"
+#include "sound.h"
+#include "bom.h"
+#include "sankaku.h"
+//#include "libps.h"
+#include "sgoex.h"
+#include "debug.h"
+
+/*
+ *    debugging
+ */
+//extern SGO_PAD pad[2];
+
+player jiki = { 60, 200, 3, 0, FALSE, 120, 3, 3 };
+
+laser laser_lv1[20];
+laser laser_lv2[20];
+stge lg = { 4096 };
+stge pg = { 4096 };
+
+int infg_level = { 0 };
+
+stge infg = { 1 };
+
+tama1 tama_lv1[20];
+tama2 tama_lv2[20];
+tama1 tlv3[3];
+
+int py;
+int bomcount = { 0 };
+int charcount = { 0 };
+int bania;
+
+int pointkakudo(int playerno);
+
+int bf = { 0 };
+
+int tama_lv1_end = { -1 };
+int tama_lv2_end = { -1 };
+int laser_lv1_end = { -1 };
+int laser_lv2_end = { -1 };
+
+laser laser_lv3[64] = { {0, 0, 0, 0, 64, 0} };
+
+int se_key[6] = { -1, -1, -1, -1, -1, -1 };
+
+void
+Player(Viewer *sgroot, SceneGraphPtr root, int playerno)
+{
+#if 0
+    int i;
+    float wariai1, wariai2;
+    /*
+    if (jiki.zanki > 0) {
+      DefSprite(194, "remainder.bmp", 8 * (jiki.zanki - 1), 8, 480, effect);
+      count++;
+      PutSprite(sgroot, root, 128, 224, 194);
+    }
+    */
+    if (jiki.bf == FALSE) {
+	Bom(jiki.x, jiki.y);
+	return;
+    }
+    /*»þµ¡ÌµÅ¨»þ´Ö·×»» */
+    if (jiki.muteki > 0 && jiki.bf == TRUE) {
+	count++;
+	//	PutSprite(count, jiki.x + 16, jiki.y + 16, 193);
+	PutSprite(sgroot, root, jiki.x + 16, jiki.y + 16, 193);
+//	PutSpriteEx(193, jiki.x + 16, jiki.y + 16, 2, 2, 1);
+	count++;
+	//	PutSprite(count, jiki.x + 16, jiki.y + 16, 193);
+	PutSprite(sgroot, root, jiki.x + 16, jiki.y + 16, 193);
+//	PutSpriteEx(193, jiki.x + 16, jiki.y + 16, 2, 2, 1);
+
+	jiki.muteki--;
+    }
+    /*¥³¥ó¥È¥í¡¼¥é¾å¸ÂÃÍ-------------------------------- */
+    maxf(pad[0].right, 3);
+    maxf(pad[0].left, 3);
+    maxf(pad[0].up, 3);
+    maxf(pad[0].down, 3);
+
+
+    /*¼«µ¡¤ÎÆ°¤­---------------------------------------- */
+    jiki.x += pad[0].right - pad[0].left;
+    jiki.y += pad[0].down - pad[0].up;
+
+
+    /*¼«µ¡¤ÎÆ°¤­---------------------------------------- */
+    mini(jiki.x, 0);
+    maxf(jiki.x, 1688 - 128);
+    mini(jiki.y, 0);
+    maxf(jiki.y, 964 - 128);
+
+    if (pad[0].right > 0) {
+	if (charcount < 0)
+	    charcount = 0;
+	else
+	    charcount++;
+    }
+    if (pad[0].left > 0) {
+	if (charcount > 0)
+	    charcount = 0;
+	else
+	    charcount--;
+    }
+    if ((pad[0].left == 0) && (pad[0].right == 0))
+	charcount = 0;
+    jiki.ch =
+	3 * (charcount < 3) * (charcount > -3) + 2 * (charcount <
+						      -3) * (charcount >=
+							     -15) +
+	1 * (charcount < -15)
+	+ 4 * (charcount > 3) * (charcount <= 15) + 5 * (charcount > 15);
+
+
+    /*¶Ì¥ì¥Ù¥ë£±ÅÐÏ¿------------------------------------ */
+    if ((pad[0].k4 % 3 == 1) && (pad[0].k3 % 3 == 0)) {
+
+      PlaySdlMixer(0, SHOT_A);// output sound  
+      //se_voice[0] = SsUtKeyOn(vab[SHOT_A], 0, 0, 65, 0, 60, 60);
+	pad[0].k4 = 1;
+	tama_lv1_end++;
+	i = tama_lv1_end;
+
+	tama_lv1[i].x = jiki.x;
+	tama_lv1[i].y = jiki.y;
+	tama_lv1[i].r = 1;
+	tama_lv1[i].l = 1;
+
+	if (pg.stg <= MAXP)
+	    pg.stg += 1;
+    }
+    /*¶Ì¥ì¥Ù¥ë£²ÅÐÏ¿------------------------------------ */
+    if ((pad[0].k3 % 3 == 1) && (pad[0].k4 == 0) && (pg.stg > 64)) {
+
+      PlaySdlMixer(0, SHOT_B);// output sound                                                                               
+      //se_key[1] = SsUtKeyOn(vab[SHOT_B], 0, 0, 65, 0, 80, 80);
+	se_key[1] = SsUtKeyOn(vab[SHOT_B], 0, 0, 65, 0, 80, 80);
+	pad[0].k3 = 1;
+	tama_lv2_end++;
+	i = tama_lv2_end;
+
+	tama_lv2[i].x = jiki.x;
+	tama_lv2[i].y = jiki.y;
+	tama_lv2[i].rr = 1;
+	tama_lv2[i].sr = 1;
+	tama_lv2[i].sl = 1;
+	tama_lv2[i].ll = 1;
+
+	pg.stg -= 64;
+    }
+    /*¶Ì¥ì¥Ù¥ë£³ÅÐÏ¿------------------------------------- */
+    if ((pad[0].k3 % 5 > 0) && (pad[0].k4 % 5 > 0)) {
+	pad[0].k3 = 1;
+	pad[0].k4 = 1;
+	i = 0;
+	while (tlv3[i].y != -1) {
+	    i++;
+	}
+	if ((i < 1) && (pg.stg > 2000)) {
+	  PlaySdlMixer(0,SHOT_C); // re-za-                              
+          //se_voice[0] = SsUtKeyOn(vab[SHOT_C], 0, 0, 65, 0, 75, 75);  
+	    se_voice[0] = SsUtKeyOn(vab[SHOT_C], 0, 0, 65, 0, 75, 75);
+	    tlv3[i].x = jiki.x;
+	    tlv3[i].y = jiki.y;
+	    pg.stg -= 2000;
+	    tlv3[i].r = 90;
+	    jiki.muteki = 4;
+	}
+    }
+    /*²¡¤·¤Æ¤Ê¤¤¤È¤­¤Î¶Ì¥²¡¼¥¸²óÉü---------------------- */
+    if ((pad[0].k3 == 0) && (pad[0].k4 == 0))
+	if (pg.stg <= MAXP)
+	    pg.stg += 4;
+    /*¶Ì¥ì¥Ù¥ë£±É½¼¨------------------------------ */
+    for (i = 0; i < tama_lv1_end + 1; i++) {
+	tama_lv1[i].y -= 64;
+	if (tama_lv1[i].r == 1) {
+	    count++;
+	    PutSprite(count, tama_lv1[i].x + 64, tama_lv1[i].y, 6);
+	}
+	if (tama_lv1[i].l == 1) {
+	    count++;
+	    PutSprite(count, tama_lv1[i].x, tama_lv1[i].y, 7);
+	}
+	if (tama_lv1[i].y < 0) {
+	    if (tama_lv1_end == i) {
+		tama_lv1_end--;
+		break;
+	    }
+	    if (tama_lv1_end > i) {
+		tama_lv1[i] = tama_lv1[tama_lv1_end];
+		tama_lv1_end--;
+		i--;
+	    }
+	}
+    }
+    /*¶Ì¥ì¥Ù¥ë£²É½¼¨------------------------------ */
+    for (i = 0; i < tama_lv2_end + 1; i++) {
+	tama_lv2[i].y -= 64;
+	if (tama_lv2[i].rr == 1) {
+	    count++;
+	    PutSprite(count, tama_lv2[i].x + 128, tama_lv2[i].y-96, 8);
+	}
+	if (tama_lv2[i].sr == 1) {
+	    count++;
+	    PutSprite(count, tama_lv2[i].x + 64, tama_lv2[i].y - 192, 8);
+	}
+	if (tama_lv2[i].sl == 1) {
+	    count++;
+	    PutSprite(count, tama_lv2[i].x, tama_lv2[i].y - 192, 8);
+	}
+	if (tama_lv2[i].ll == 1) {
+	    count++;
+	    PutSprite(count, tama_lv2[i].x - 64, tama_lv2[i].y-92, 8);
+	}
+	if (tama_lv2[i].y < 0) {
+	    if (tama_lv2_end == i) {
+		tama_lv2_end--;
+		break;
+	    }
+	    if (tama_lv2_end > i) {
+		tama_lv2[i] = tama_lv2[tama_lv2_end];
+		tama_lv2_end--;
+		i--;
+	    }
+	}
+    }
+    /*¶Ì¥ì¥Ù¥ë£³É½¼¨----------------------------------- */
+    if (tlv3[0].r > 0) {
+	/*ÇÈưˤËÜÂÎ */
+	tlv3[0].x = jiki.x + 96;
+	tlv3[0].y = jiki.y;
+	count++;
+	//	PutSprite(count, tlv3[0].x, tlv3[0].y - 128, 9);
+	PutSpriteEx(9, tlv3[0].x, tlv3[0].y - 128, tlv3[0].r *2 /45, 3, 1);
+
+
+	/*´³¾ÄÉôʬ */
+	//DefSprite(39, 0, 16, 112 - ((tlv3[0].r % 8) / 2) * 16, 16, 16,
+	//  480);
+
+	/*ÇÈưˤ´³¾ÄÉôʬ */
+	count++;
+	//	PutSprite(sgroot, root, jiki.x + 16, jiki.y + 32, 39);
+	PutSpriteEx(39, jiki.x + 16, jiki.y + 32, 2, 2, 1);
+
+	/*½ªÎ»¥Õ¥é¥° */
+	tlv3[0].r--;
+	if (tlv3[0].r == 0)
+	    tlv3[0].y = -1;
+    }
+    /*  } */
+    /*¶Ì¥²¡¼¥¸¤ÎÃæ¿Èɽ¼¨------------------------- */
+    wariai2 = pg.stg;
+    wariai1 = wariai2 / 4096.0;
+    py = 64.0 * wariai1;
+
+    //DefSprite(11, "offensivepower_gauge.bmp", 8, py, 480, effect);
+    count++;
+    //PutSprite(sgroot, root, 0, 240 - 96 + 64 - py, 11);
+    /*¥ì¡¼¥¶¡¼¥²¡¼¥¸¤ÎÃæ¿Èɽ¼¨------------------------ */
+    wariai2 = lg.stg;
+    wariai1 = wariai2 / 4096.0;
+    py = 64.0 * wariai1;
+    //DefSprite(15, "diffensivepower_gauge.bmp", 9, py, 480, effect);
+
+    count++;
+    //PutSprite(sgroot, root, 18, 240 - 105, 15);
+    /*¥¤¥ó¥Õ¥ì¥²¡¼¥¸------------------------------------- */
+    if (infg.stg > 640) {
+	infg.stg = 0;
+	infg_level++;
+	if (infg_level > 11) {
+	    infg_level = 11;
+	    infg.stg = 640;
+	}
+    }
+    py = infg.stg / 8;
+    //DefSprite(49, "inflation_meter.bmp", 16, py, 320, effect);
+
+#define REGULATION_PUTSIZE_X 5
+    count++;
+    //PutSprite(sgroot, root, REGULATION_PUTSIZE_X + 4 - 7, 24 + 83 - py, 49);
+    count++;
+    //PutSprite(sgroot, root, REGULATION_PUTSIZE_X + 0, 40 + 80, 200 + infg_level);
+
+    /*¥Ð¡¼¥Ë¥¢¥¢¥Ë¥á¡¼¥·¥ç¥ó----------------------------- */
+    bania++;
+    bania %= 3;
+    //DefSprite(12, "burner.bmp", 16, 16, 480, effect);
+    count++;
+    //PutSprite(sgroot, root, jiki.x + 8, jiki.y + 32, 12);
+
+    /*¾È½à¥³¥ó¥È¥í¡¼¥ë----------------------------------- */
+    if (pad[0].r1 % 2 == 1) {
+	pad[0].r1 = 1;
+	jiki.point += 10;
+    }
+    if (pad[0].l1 % 2 == 1) {
+	pad[0].l1 = 1;
+	jiki.point -= 10;
+    }
+    jiki.point %= 360;
+    int siny = 50 * Mysin(jiki.point - 90) / SANKAKU;
+    int cosx = 30 + 50 * Mycos(jiki.point - 90) / SANKAKU;
+    count++;
+    DefSpriteEx(13, 4, 64);
+    //    PutSprite(sgroot, root, jiki.x + 16, jiki.y, 13);
+    PutSpriteEx(13, jiki.x + cosx, jiki.y + siny, 2, 2, jiki.point);
+    /*²¡¤·¤Æ¤Ê¤¤¤È¤­¥ì¡¼¥¶¡¼¥²¡¼¥¸²óÉü------------------- */
+
+    if ((pad[0].k1 == 0) && (pad[0].k0 == 0))
+	if (lg.stg <= MAXP)
+	    lg.stg += 4;
+    /*¥ì¡¼¥¶¡¼¥ì¥Ù¥ë£±ÅÐÏ¿------------------------------- */
+    if ((pad[0].k1 % 3 == 1) && (pad[0].k0 == 0) && (lg.stg > 16)) {
+      PlaySdlMixer(0, RING) ; // RING  
+
+      //se_key[3] = SsUtKeyOn(vab[LASER_A], 0, 0, 65, 0, 50, 50);
+	pad[0].k1 = 1;
+	laser_lv1_end++;
+	i = laser_lv1_end;
+
+	laser_lv1[i].sx = 32 * Mysin(jiki.point) / SANKAKU;
+	laser_lv1[i].sy = 32 * Mycos(jiki.point) / SANKAKU;
+	laser_lv1[i].x = jiki.x + 128;
+	laser_lv1[i].y = jiki.y + 128;
+	laser_lv1[i].r = 1000;
+	laser_lv1[i].s = 0.08;
+	lg.stg -= 16;
+    }
+    /*--------------------------------------------------*/
+    for (i = 0; i < laser_lv1_end + 1; i++) {
+	if (laser_lv1[i].r != -1) {
+	    laser_lv1[i].y -= laser_lv1[i].sy;
+	    laser_lv1[i].x += laser_lv1[i].sx;
+	    laser_lv1[i].r += 100;
+	    laser_lv1[i].s += 0.05;
+	    count++;
+	    DefSpriteEx(16, 16, 16);
+	    //	    PutSprite(sgroot, root, laser_lv1[i].x, laser_lv1[i].y, 16);
+	    PutSpriteEx(16, laser_lv1[i].x, laser_lv1[i].y, laser_lv1[i].s, laser_lv1[i].s, 1);
+	}
+	if (waku(laser_lv1[i].x, laser_lv1[i].y)) {
+	    if (laser_lv1_end == i) {
+		laser_lv1_end--;
+		break;
+	    }
+	    if (laser_lv1_end > i) {
+		laser_lv1[i] = laser_lv1[laser_lv1_end];
+		laser_lv1_end--;
+		i--;
+	    }
+	}
+    }
+    /*¥ì¡¼¥¶¡¼¥ì¥Ù¥ë£²ÅÐÏ¿------------------------------- */
+    if ((pad[0].k1 == 0) && (pad[0].k0 != 0) && (lg.stg > 200)) {
+      PlaySdlMixer(0, NEW) ;// SHIELD 
+
+	if (laser_lv2[0].r == 0) {
+	    laser_lv2[0].r = 1;
+	    lg.stg -= 100;
+	} else {
+	    laser_lv2[0].r %= 45;
+	    laser_lv2[0].r++;
+	    lg.stg -= 10;
+	}
+    } else {
+	laser_lv2[0].r = 0;
+    }
+    /*------------------------------------*/
+    if (laser_lv2[0].r != 0) {
+	laser_lv2[0].x = jiki.x + 128 + 256 * Mysin(jiki.point) / SANKAKU;
+	laser_lv2[0].y = jiki.y + 128  - 256 * Mycos(jiki.point) / SANKAKU;
+	count++;
+	//	PutSprite(sgroot, root, laser_lv2[0].x, laser_lv2[0].y, 17);
+	PutSpriteEx(17, laser_lv2[0].x, laser_lv2[0].y, 2, 2, laser_lv2[0].r * 8);
+    }
+
+/*¤³¤³¤ËÆüìʼ´ï¥Ü¥à¤Î´Ø¿ô¤ò¤è¤í¤·¤¯*/
+/*ȯ¼Í½àÈ÷ (laser_lv3[playerno][0] ¤Ï¡¢ÇúȯȯÀ¸¤Î¼ï¡£)*/
+    if ((pad[0].k1 > 0) && (pad[0].k0 > 0)
+	&& (lg.stg > 2400) && (laser_lv3[0].r > 61)) {
+      PlaySdlMixer(0, BOM) ;// BOM 
+      //se_voice[0] = SsUtKeyOn(vab[LASER_C], 0, 0, 65, 0, 70, 70);
+
+	laser_lv3[0].x = jiki.x + 256 * Mysin(jiki.point) / SANKAKU;
+	laser_lv3[0].y = jiki.y - 256 * Mycos(jiki.point) / SANKAKU;
+	laser_lv3[0].r = 0;
+	lg.stg -= 2400;
+	jiki.muteki = 60;
+    }
+    if (laser_lv3[0].r < 62) {	/*¥Ü¥à¥Õ¥é¥°·Ñ³¤« */
+	laser_lv3[0].r++;
+	if (laser_lv3[0].r % 2 == 0) {	/*ÇúÉ÷ȯÀ¸ */
+	    laser_lv3[1 + laser_lv3[0].r / 2].r = 8;
+	    laser_lv3[1 + laser_lv3[0].r / 2].x =
+		laser_lv3[0].x + rand() % 640 - 320;
+	    laser_lv3[1 + laser_lv3[0].r / 2].y =
+		laser_lv3[0].y + rand() % 640 - 320;
+	}
+    }
+    /*¥Ü¥à¥Î¥¢¥Ë¥á¡¼¥·¥ç¥ó */
+    for (i = 1; i < 32; i++) {
+	if (laser_lv3[i].r > 0) {
+	    laser_lv3[i].r--;
+	    count++;
+	    //	    PutSprite(sgroot, root, laser_lv3[i].x, laser_lv3[i].y,
+	    //		      47 - (laser_lv3[i].r));
+	    PutSpriteEx(47 - (laser_lv3[i].r), laser_lv3[i].x, laser_lv3[i].y, 4, 4, 1);
+	}
+    }
+#endif
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/count.h	Tue Dec 07 18:37:43 2010 +0900
@@ -0,0 +1,90 @@
+#ifndef _COUNT2_H_
+#define _COUNT2_H_
+
+#include "bool.h"
+#include "Pad.h"
+#include "viewer.h"
+#include "SceneGraph.h"
+
+#define MAXP 4096
+#define waku(x,y) ( ((y<0)||(y>964)||(x<0)||(x>1688)) ? 1 : 0)
+#define maxf(x,y)     x=( (x<y) ? x : y)
+#define mini(x,y)    x=( (x<y) ? y : x)
+#define TAMALV1P 14
+#define TAMALV2P 50
+#define TAMALV3P 24
+
+#define LASERLV1P 17
+#define LASERLV2P 154
+#define LASERLV3P 51
+
+typedef struct player {
+    int x;
+    int y;
+    int ch;
+    int point;
+    BOOL bf;
+    int muteki;
+    int zanki;
+    int ccount;
+} player;
+
+typedef struct tama {
+    int x;
+    int y;
+} tama;
+
+typedef struct tama1 {
+    int x;
+    int y;
+    int r;
+    int l;
+} tama1;
+
+typedef struct tama2 {
+    int x;
+    int y;
+    int rr;
+    int sr;
+    int sl;
+    int ll;
+} tama2;
+
+typedef struct stge {
+    int stg;
+} stge;
+
+typedef struct laser {
+    float x;
+    float y;
+    float sx;
+    float sy;
+    int r;
+    int enemyno;
+  float s;
+} laser;
+
+extern int pointkakudo(int playerno);
+extern void Player(Viewer *sgroot, SceneGraphPtr root, int playerno);
+extern laser laser_lv3[64];
+extern tama1 tlv3[3];
+
+extern player jiki;
+
+extern stge lg;
+extern stge pg;
+extern stge infg;
+extern int infg_level;
+
+extern tama1 tama_lv1[20];
+extern tama2 tama_lv2[20];
+
+extern laser laser_lv1[20];
+extern laser laser_lv2[20];
+
+extern int laser_lv1_end;
+
+extern int tama_lv1_end;
+extern int tama_lv2_end;
+
+#endif				// _COUNT2_H
--- a/src/debug.cc	Thu May 20 19:51:03 2010 +0900
+++ b/src/debug.cc	Tue Dec 07 18:37:43 2010 +0900
@@ -1,8 +1,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 #include <stdarg.h>
-#include "count2.h"
-#include "Enemy.h"
+#include "count.h"
 
 static FILE *dbg_fp;
 
--- a/src/debug.h	Thu May 20 19:51:03 2010 +0900
+++ b/src/debug.h	Tue Dec 07 18:37:43 2010 +0900
@@ -1,5 +1,5 @@
-#ifndef __debug_h
-#define __debug_h
+#ifndef INCLUDE_DEBUG_H
+#define INCLUDE_DEBUG_H
 
 #if 0
 extern code(*abort_ptr) ();
--- a/src/error.h	Thu May 20 19:51:03 2010 +0900
+++ b/src/error.h	Tue Dec 07 18:37:43 2010 +0900
@@ -1,8 +1,12 @@
-#ifdef _DEBUG_
-#  include <stdio.h>
-#  define __debug(...) do {			\
+#ifndef _DEBUG_
+#define _DEBUG_
+
+#include <stdio.h>
+
+#define __debug(...) do {			\
 	fprintf(stderr, __VA_ARGS__);		\
     } while (0)
 #else /* !_DEBUG_ */
 #  define __debug(...)
+
 #endif
--- a/src/object.h	Thu May 20 19:51:03 2010 +0900
+++ b/src/object.h	Tue Dec 07 18:37:43 2010 +0900
@@ -1,3 +1,6 @@
+#ifndef INCLUDE_OBJECT_H
+#define INCLUDE_OBJECT_H
+
 typedef float FVECTOR[4];
 typedef float FMATRIX[4][4];
 
@@ -34,7 +37,11 @@
 
 void init_object(OBJECT *obj);
 void free_object(OBJECT *obj);
+/*
 OBJECT *font;
 OBJECT *chara;
 OBJECT *effect;
 OBJECT *boss;
+*/
+
+#endif
--- a/src/profile.cc	Thu May 20 19:51:03 2010 +0900
+++ b/src/profile.cc	Tue Dec 07 18:37:43 2010 +0900
@@ -55,7 +55,7 @@
 
 Timeprof timeprof_new()
 {
-    Timeprof t = malloc(sizeof(struct time_profile));
+    Timeprof t = (Timeprof)malloc(sizeof(struct time_profile));
     memset(t, 0, sizeof(struct time_profile));
     return t;
 }
--- a/src/sankaku.h	Thu May 20 19:51:03 2010 +0900
+++ b/src/sankaku.h	Tue Dec 07 18:37:43 2010 +0900
@@ -1,11 +1,16 @@
+#ifndef INCLUDE_SANKAKU_H
+#define INCLUDE_SANKAKU_H
+
 #include <math.h>
 
 #define SANKAKU 100000
-int mysin[181];
-int mycos[181];
+extern int mysin[181];
+extern int mycos[181];
 
 static const double pi2 = M_PI * 2.0;
 
 extern void sankakuf();
 extern int Mycos(int c);
 extern int Mysin(int c);
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/schedule.cc	Tue Dec 07 18:37:43 2010 +0900
@@ -0,0 +1,727 @@
+#include <stdlib.h>
+#include <SDL.h>
+//#include "bool.h"
+#include "schedule.h"
+#include "Character.h"
+#include "Character_state.h"
+//#include "sound.h"
+//#include "bom.h"
+//#include "tokuten.h"
+//#include "count2.h"
+//#include "libps.h"
+//#include"debug.h"
+//#include "SDL_opengl.h"
+enum {
+    FRAME_RATE = 32,
+};
+
+
+/*enemy schedule*/
+void
+schedule(Viewer *sgroot, SceneGraphPtr root)
+{
+    if(stage == 0) {
+	switch (filpcount) {
+	case 1:
+	    //	    SoundStop();
+	    //	    SoundPlay(0);
+	    break;
+	case FRAME_RATE * 2:
+	    Putenemy(sgroot, root, 1, 120, -128, 0, 4, chara_state0);
+	    break;
+	case FRAME_RATE * 3:
+	    Putenemy(sgroot, root, 1, 56, -128, 0, 8, chara_state0);
+	    Putenemy(sgroot, root, 1, 184, -128, 0, 8, chara_state0);
+	    break;
+	case FRAME_RATE * 4:
+	    Putenemy(sgroot, root, 1, 120, -128, 0, 4, chara_state0);
+	    break;
+	case FRAME_RATE * 5:
+	    Putenemy(sgroot, root, 1, 224, -128, 1, 1, chara_state0);
+	    Putenemy(sgroot, root, 1, 184, -128, 1, 1, chara_state0);
+	    break;
+	case FRAME_RATE * 6:
+	    Putenemy(sgroot, root, 1, 120, -128, 1, 2, chara_state0);
+	    break;
+	case FRAME_RATE * 7:
+	    Putenemy(sgroot, root, 1, 56, -128, 0, 1, chara_state0);
+	    Putenemy(sgroot, root, 1, 184, -128, 0, 1, chara_state0);
+	    break;
+	case FRAME_RATE * 8:
+	    Putenemy(sgroot, root, 2, 120, -128, 0, 1, chara_state0);
+	    break;
+
+	case FRAME_RATE * 12:
+	    Putenemy(sgroot, root, 1, 1280 - 128 - 120, -128, 0, 1, chara_state4);
+	    break;
+	case FRAME_RATE * 13:
+	    Putenemy(sgroot, root, 1, 1280 - 128 - 120, -128, 0, 1, chara_state4);
+	    break;
+	case FRAME_RATE * 14:
+	    Putenemy(sgroot, root, 1, 1280 - 128 - 120, -128, 0, 1, chara_state4);
+	    break;
+	case FRAME_RATE * 15:
+	    Putenemy(sgroot, root, 2, 1280 - 128 - 120, -128, -1, 1, chara_state4);
+	    break;
+	case FRAME_RATE * 16:
+	    Putenemy(sgroot, root, 2, 1280 - 128 - 120, -128, 0, 1, chara_state4);
+	    break;
+	case FRAME_RATE * 17:
+	    Putenemy(sgroot, root, 2, 1280 - 128 - 120, -128, 0, 1, chara_state4);
+	    break;
+	case FRAME_RATE * 18:
+	    Putenemy(sgroot, root, 1, 1280 - 128 - 120, -32, 0, 1, chara_state4);
+	    Putenemy(sgroot, root, 1, 1280 - 128, -128, -2, 1, chara_state4);
+	    Putenemy(sgroot, root, 1, 800, -88, -1, 1, chara_state4);
+	    break;
+
+	case FRAME_RATE * 24:
+	    Putenemy(sgroot, root, 1, 256, -128, 0, 1, chara_state4);
+	    Putenemy(sgroot, root, 1, 1280 - 256 - 128, -128, 0, 1, chara_state4);
+	    break;
+	case FRAME_RATE * 25:
+	    Putenemy(sgroot, root, 2, 512, -128, 0, 1, chara_state4);
+	    Putenemy(sgroot, root, 2, 1280 - 128, -128, 0, 1, chara_state4);
+	    break;
+	case FRAME_RATE * 26:
+	    Putenemy(sgroot, root, 1, 384, -128, 0, 1, chara_state4);
+	    Putenemy(sgroot, root, 1, 1280 - 256, -128, 0, 2, chara_state4);
+	    Putenemy(sgroot, root, 1, 512, -128, 0, 3, chara_state4);
+	    Putenemy(sgroot, root, 1, 1280 - 256, -128, 0, 2, chara_state4);
+	    break;
+	case FRAME_RATE * 27:
+	    Putenemy(sgroot, root, 2, 512, -128, 0, 3, chara_state2);
+	    Putenemy(sgroot, root, 2, 256 - 128, -128, 0, 2, chara_state2);
+	    Putenemy(sgroot, root, 2, 768, -128, 0, 4, chara_state2);
+	    Putenemy(sgroot, root, 2, 128, -128, 0, 3, chara_state2);
+	    break;
+	case FRAME_RATE * 28:
+	    Putenemy(sgroot, root, 1, 256, -128, 0, 1, chara_state4);
+	    Putenemy(sgroot, root, 1, 1280 - 256 - 128, -128, 0, 1, chara_state4);
+	    break;
+	case FRAME_RATE * 29:
+	    Putenemy(sgroot, root, 2, 256, -128, 0, 1, chara_state4);
+	    Putenemy(sgroot, root, 2, 1280 - 256 - 128, -128, 0, 1, chara_state4);
+	    break;
+	case FRAME_RATE * 30:
+	    Putenemy(sgroot, root, 1, 256, -128, 0, 1, chara_state4);
+	    Putenemy(sgroot, root, 1, 1280 - 256 - 128, -128, 0, 1, chara_state4);
+	    break;
+#if 0
+	case FRAME_RATE * 33:
+	    Putenemy(sgroot, root, 1, 256, 1088, 0, -1, chara_state5);
+	    Putenemy(sgroot, root, 1, 1280 - 256 - 128, 1088, 0, -1, chara_state5);//5/22/pm5:300
+	    break;
+	case FRAME_RATE * 34:
+	    Putenemy(sgroot, root, 2, 256, 1088, 0, -1, chara_state5);
+	    Putenemy(sgroot, root, 2, 1280 - 256 - 128, 1088, 0, -1, chara_state5);
+	    break;
+	case FRAME_RATE * 35:
+	    Putenemy(sgroot, root, 1, 256, 1088, 0, -1, chara_state5);
+	    Putenemy(sgroot, root, 1, 1280 - 256 - 128, 1088, 0, -1, chara_state5);
+	    break;
+	case FRAME_RATE * 36:
+	    Putenemy(sgroot, root, 2, 256, 1088, 0, -1, chara_state5);
+	    Putenemy(sgroot, root, 2, 1280 - 256 - 128, 1088, 0, -1, chara_state5);
+	    break;
+	case FRAME_RATE * 37:
+	    Putenemy(sgroot, root, 1, 256, 1088, 0, -1, chara_state5);
+	    Putenemy(sgroot, root, 1, 1280 - 256 - 128, 1088, 0, -1, chara_state5);
+	    break;
+	case FRAME_RATE * 38:
+	    Putenemy(sgroot, root, 2, 256, 1088, 0, -1, chara_state5);
+	    Putenemy(sgroot, root, 2, 1280 - 256 - 128, 1088, 0, -1, chara_state5);
+	    break;
+	case FRAME_RATE * 39:
+	    Putenemy(sgroot, root, 1, 256, 1088, 0, -1, chara_state5);
+	    Putenemy(sgroot, root, 1, 1280 - 256 - 128, 1088, 0, -1, chara_state5);
+	    break;
+
+	case FRAME_RATE * 50:
+	    Putenemy(40, rand() % (1280 - 256) + 128, -128, 0, 1, chara_state3);
+	    break;
+	case FRAME_RATE * 46:
+	    Putenemy(40, rand() % (1280 - 256) + 128, -128, 0, 1, chara_state3);
+	    break;
+	case FRAME_RATE * 54:
+	    Putenemy(40, rand() % (1280 - 256) + 128, -128, 0, 1, chara_state3);
+	    break;
+
+	case FRAME_RATE * 60:
+	    Putenemy(sgroot, root, 1, 256, 1088, 0, -1, chara_state6);
+	    Putenemy(sgroot, root, 1, 1280 - 256 - 128, 1088, 0, -1, chara_state6);
+	    break;
+	case FRAME_RATE * 61:
+	    Putenemy(sgroot, root, 1, 256, 1088, 0, -1, chara_state6);
+	    Putenemy(sgroot, root, 1, 1280 - 256 - 128, 1088, 0, -1, chara_state6);
+	    break;
+	case FRAME_RATE * 62:
+	    Putenemy(sgroot, root, 1, 256, 1088, 0, -1, chara_state6);
+	    Putenemy(sgroot, root, 1, 1280 - 256 - 128, 1088, 0, -1, chara_state6);
+	    break;
+	case FRAME_RATE * 63:
+	    Putenemy(sgroot, root, 1, 256, 1088, 0, -1, chara_state6);
+	    Putenemy(sgroot, root, 1, 1280 - 256 - 128, 1088, 0, -1, chara_state6);
+	    break;
+	case FRAME_RATE * 64:
+	    Putenemy(sgroot, root, 1, 256, 1088, 0, -1, chara_state6);
+	    Putenemy(sgroot, root, 1, 1280 - 256 - 128, 1088, 0, -1, chara_state6);
+	    break;
+	case FRAME_RATE * 65:
+	    Putenemy(40, 256, 1088, 0, -1, chara_state6);
+	    Putenemy(40, 1280 - 256 - 128, 1088, 0, -1, chara_state6);
+	    break;
+
+	case FRAME_RATE * 80:
+	    Putenemy(42, rand() % (1280 - 256) + 128, -128, 0, 1, chara_state7);
+	    break;
+	case FRAME_RATE * 66:
+	    Putenemy(41, rand() % (1280 - 256) + 128, -128, 0, 1, chara_state7);
+	    break;
+	case FRAME_RATE * 84:
+	    Putenemy(42, rand() % (1280 - 256) + 128, -128, 0, 1, chara_state7);
+	    break;
+	case FRAME_RATE * 70:
+	    Putenemy(41, rand() % (1280 - 256) + 128, -128, 0, 1, chara_state7);
+	    break;
+	case FRAME_RATE * 88:
+	    Putenemy(42, rand() % (1280 - 256) + 128, -128, 0, 1, chara_state7);
+	    break;
+	case FRAME_RATE * 74:
+	    Putenemy(41, rand() % (1280 - 256) + 128, -128, 0, 1, chara_state7);
+	    break;
+	case FRAME_RATE * 92:
+	    Putenemy(42, rand() % (1280 - 256) + 128, -128, 0, 1, chara_state7);
+	    break;
+	case FRAME_RATE * 78:
+	    Putenemy(41, rand() % (1280 - 256) + 128, -128, 0, 1, chara_state7);
+	    break;
+
+	case FRAME_RATE * 100:
+	    Putenemy(41, 256, -128, 0, 1, chara_state7);
+	    Putenemy(41, 1280 - 256 - 128, -128, 0, 1, chara_state7);
+	    break;
+	case FRAME_RATE * 81:
+	    Putenemy(42, 256, -128, 0, 1, chara_state7);
+	    Putenemy(42, 1280 - 256 - 128, -128, 0, 1, chara_state7);
+	    break;
+	case FRAME_RATE * 104:
+	    Putenemy(41, 256, -128, 0, 1, chara_state7);
+	    Putenemy(41, 1280 - 256 - 128, -128, 0, 1, chara_state7);
+	    break;
+	case FRAME_RATE * 83:
+	    Putenemy(42, 256, -128, 0, 1, chara_state7);
+	    Putenemy(42, 1280 - 256 - 128, -128, 0, 1, chara_state7);
+	    break;
+	case FRAME_RATE * 108:
+	    Putenemy(41, 256, -128, 0, 1, chara_state7);
+	    Putenemy(41, 1280 - 256 - 128, -128, 0, 1, chara_state7);
+	    break;
+	case FRAME_RATE * 85:
+	    Putenemy(42, 256, -128, 0, 1, chara_state7);
+	    Putenemy(42, 1280 - 256 - 128, -128, 0, 1, chara_state7);
+	    break;
+	case FRAME_RATE * 112:
+	    Putenemy(41, 256, -128, 0, 1, chara_state7);
+	    Putenemy(41, 1280 - 256 - 128, -128, 0, 1, chara_state7);
+	    break;
+
+	case FRAME_RATE * 130:
+	    SoundStop();
+	    SoundPlay(4);
+	    for(p = active_chara_list;p!=NULL;p=p->next)
+	    {
+		p->f = FALSE;
+		p->state = delete_chara;
+		p->collision = noaction;
+	    }
+	    Putenemy(4, 520, -128, 0, 1, chara_state8);	// 1Ì̥ܥ¹¤òPutenemy
+#endif
+	}			//caseʸ
+	
+#if 0
+	//kyeenemyno¤Ïenemy¥ª¥Ö¥¸¥§¥¯¥È¤ÎID¡£
+	//¥Ü¥¹¤¬Åо줷¤Æ¤¤¤Ê¤¤¤È¤­¤Ïkyeenemyno¤Ë-1¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£
+	//move.c¤Ç¤Ïenemy¥ª¥Ö¥¸¥§¥¯¥È¤ÎID¤Ïtekino¤Ç°·¤¦¤¬¡¢
+	//¥Ü¥¹¤Îenemy¥ª¥Ö¥¸¥§¥¯¥È¤À¤±ÆÃÊ̤Ëkyeenemyno¤Ë¤âID¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£
+	//kyeenemyno¤Ï¥Ü¥¹¤Î½é´ü²½»þ¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£
+	if (filpcount > FRAME_RATE * 130) {
+	    if (kyeenemyno->f == FALSE) {
+		// ¥Ü¥¹¤¬»à¤Ì¤È¼Â¹Ô¤µ¤ì¤ë
+		//if (enemy[kyeenemyno].y < 240 + 32) {
+		// ¾ò·ï¤òËþ¤¿¤¹¤ÈSuperbom¤¬¸Æ¤Ð¤ì¤ë¤¬²¿¤Î¾ò·ï¤«¤Ï
+		// ʬ¤«¤é¤Ê¤¤¡£Superbom¤Ïoriginal¤Î¥²¡¼¥àÃæ¤Ç¤Ï°ì²ó¤â
+		// ¸Æ¤Ð¤ì¤Ê¤¤¡£ifʸ¤ò¤Ï¤º¤¹¤È°ì½Ö¤À¤±Â礭¤ÊÇúȯ¤¬
+		// µ¯¤³¤ë¤¬¥·¥ç¥Ü¥¤¡£
+		// Superbom(enemy[kyeenemyno].x, enemy[kyeenemyno].y);
+		//}
+		stage = 1;
+		filpcount = 0;
+		//kyeenemyno = -1;
+		clear_result[0] = infg_level;
+	    }
+	}
+#endif
+    }				//stage0.end
+
+#if 0
+    if (stage == 1) {
+	switch (filpcount) {
+	case 1:
+	    SoundStop();
+	    SoundPlay(1);
+	    //SsSetTempo(seq[1], 0, 140);
+	    break;
+
+	case FRAME_RATE * 3:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 4:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 5:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 6:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 7:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 8:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 9:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 10:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 11:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 12:
+	    Putenemy(sgroot, root, 1, 256, -128, -1, 2, chara_state7);
+	    break;
+	case FRAME_RATE * 13:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 14:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 15:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 16:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 20:
+	    Putenemy(sgroot, root, 2, 512, -128, 0, 2, chara_state4);
+	    Putenemy(sgroot, root, 2, 1024, -128, 0, 1, chara_state4);
+	    break;
+	case FRAME_RATE * 21:
+	    Putenemy(42, 0, 384, 0, 0, chara_state401);
+	    break;
+	case FRAME_RATE * 23:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 24:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 25:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 26:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 27:
+	    Putenemy(sgroot, root, 2, 800, 0, 1, 3, chara_state5);
+	    break;
+	case FRAME_RATE * 28:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 29:
+	    Putenemy(41, 256, 0, 0, 1, chara_state5);
+	    Putenemy(41, 1280 - 256 - 128, 0, 0, 1, chara_state5);
+	    Putenemy(9, 0, 0, 0, 3, chara_state22);
+	    break;
+	case FRAME_RATE * 30:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 31:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 32:
+	    Putenemy(42, 1280, 256, 0, -1, chara_state402);
+	    Putenemy(42, 1280, 384, 0, 0, chara_state402);
+	    Putenemy(42, 1280, 512, 0, -1, chara_state402);
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 33:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 34:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 35:
+	    Putenemy(sgroot, root, 2, 640, 0, 0, 3, chara_state5);
+	    break;
+	case FRAME_RATE * 36:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 43:
+	    for (i = 0; i < 7; i++) {
+		Putenemy(43, rand() % 2560, -i * 16, 0, rand() % 4, chara_state400);
+	    }
+	    break;
+	case FRAME_RATE * 44:
+	    for (i = 0; i < 9; i++) {
+		Putenemy(43, rand() % 2560, -i * 12, 0, rand() % 4, chara_state400);
+	    }
+	    break;
+	case FRAME_RATE * 45:
+	    for (i = 0; i < 5; i++) {
+		Putenemy(43, rand() % 640, 0, 0, rand() % 4, chara_state400);
+	    }
+	    break;
+	case FRAME_RATE * 48:
+	    Putenemy(41, 88, 0, 0, 2, chara_state3);
+	    Putenemy(41, 176, 0, 0, 3, chara_state3);
+	    break;
+	case FRAME_RATE * 50:
+	    Putenemy(41, 266, 0, 0, 3, chara_state4);
+	    break;
+	case FRAME_RATE * 51:
+	    Putenemy(41, 352, 0, 0, 3, chara_state5);
+	    break;
+	case FRAME_RATE * 52:
+	    Putenemy(40, 840, 0, 4, 0, chara_state6);
+	    Putenemy(40, 928, 0, 4, 0, chara_state7);
+	    Putenemy(9, 976, 0, 4, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 61:
+	    /*
+	      for (i = 0; i < 300; i++) {
+	      enemy[i].f = FALSE;
+	      }
+	    */
+	    for(p = active_chara_list->next;p!=NULL;p=p->next)
+	    {
+		p->state = delete_chara;
+		p->collision = noaction;
+		p->f = FALSE;
+	    }
+	    break;
+
+	case FRAME_RATE * 64:
+	    SoundStop();
+	    SoundPlay(5);
+	    Putenemy(sgroot, root8, 528, 0, 0, 0, chara_state24);
+	    /*  Puttama(6,100,0); */
+
+	    Putenemy(sgroot, root, 13, 688, 28, 0, 0, chara_state31);
+	    Putenemy(sgroot, root, 14, 368, 28, 0, 0, chara_state32);
+
+	    Putenemy(sgroot, root, 11, 656, 0, 0, 0, chara_state33);
+	    Putenemy(sgroot, root, 12, 400, 0, 0, 0, chara_state34);
+
+	    Putenemy(sgroot, root, 15, 528, 32, 0, 0, chara_state35);
+	    break;
+	}
+	//////////////////////
+	
+	if (filpcount > FRAME_RATE * 64) {
+	    if (kyeenemyno->f == FALSE) {
+		Superbom(kyeenemyno->x, kyeenemyno->y);
+		stage = 2;
+		filpcount = 0;
+		//kyeenemyno = -1;
+		clear_result[1] = infg_level;
+	    }
+	}
+    }
+    if (stage == 2) {
+	switch (filpcount) {
+	case 1:
+	    SoundStop();
+	    SoundPlay(2);
+	    break;
+
+	case FRAME_RATE * 2:
+	    for (i = 0; i < 5; i++) {
+		Putenemy(43, rand() % 2560, -i * 16, 0, rand() % 4, chara_state400);
+	    }
+	    break;
+
+	case FRAME_RATE * 3:
+	    for (i = 0; i < 7; i++) {
+		Putenemy(43, rand() % 2560, -i * 16, 0, rand() % 4, chara_state400);
+	    }
+	    break;
+	case FRAME_RATE * 4:
+	    for (i = 0; i < 9; i++) {
+		Putenemy(43, rand() % 2560, -i * 12, 0, rand() % 4, chara_state400);
+	    }
+	    break;
+	case FRAME_RATE * 5:
+	    for (i = 0; i < 5; i++) {
+		Putenemy(43, rand() % 2560, 0, 0, rand() % 4, chara_state400);
+	    }
+	    break;
+	case FRAME_RATE * 9:
+	    for (i = 0; i < 4; i++) {
+		Putenemy(sgroot, root, 1, i * 128 + 128, 0, i, rand() % 4 + 1, chara_state7);
+	    }
+	    break;
+	case FRAME_RATE * 10:
+	    for (i = 0; i < 4; i++) {
+		Putenemy(sgroot, root, 1, 1120 - i * 128, 0, 4 - i, rand() % 4 + 1, chara_state7);
+	    }
+	    break;
+	case FRAME_RATE * 11:
+	    for (i = 0; i < 4; i++) {
+		Putenemy(41, 4*i * 64*4 + 32*4, 0, 2, rand() % 2 + 1, chara_state6);
+	    }
+	    break;
+	case FRAME_RATE * 12:
+	    for (i = 0; i < 4; i++) {
+		Putenemy(41, 280*4 - i * 64*4, 0, -2, rand() % 2 + 1, chara_state6);
+	    }
+	    break;
+	case FRAME_RATE * 15:
+	    Putenemy(42, rand() % (320*4 - 64*4) + 32*4, -32*4, 0, 1, chara_state7);
+	    Putenemy(42, rand() % (320*4 - 64*4) + 32*4, -32*4, 0, 1, chara_state7);
+	    break;
+	case FRAME_RATE * 16:
+	    Putenemy(41, rand() % (320*4 - 64*4) + 32*4, -32*4, 0, 1, chara_state7);
+	    Putenemy(41, rand() % (320*4 - 64*4) + 32*4, -32*4, 0, 1, chara_state7);
+	    break;
+	case FRAME_RATE * 18:
+	    Putenemy(42, rand() % (320*4 - 64*4) + 32*4, -32*4, 0, 1, chara_state7);
+	    Putenemy(42, rand() % (320*4 - 64*4) + 32*4, -32*4, 0, 1, chara_state7);
+	    break;
+	case FRAME_RATE * 19:
+	    Putenemy(41, rand() % (320*4 - 64*4) + 32*4, -32*4, 0, 1, chara_state7);
+	    break;
+	case FRAME_RATE * 20:
+	    Putenemy(42, rand() % (320*4 - 64*4) + 32*4, -32*4, 0, 1, chara_state7);
+	    break;
+	case FRAME_RATE * 24:
+	    Putenemy(41, rand() % (320*4 - 64*4) + 32*4, -32*4, 0, 1, chara_state7);
+	    break;
+	case FRAME_RATE * 25:
+	    Putenemy(42, rand() % (320*4 - 64*4) + 32*4, -32*4, 0, 1, chara_state7);
+	    break;
+	case FRAME_RATE * 26:
+	    Putenemy(41, rand() % (320*4 - 64*4) + 32*4, -32*4, 0, 1, chara_state7);
+	    break;
+	case FRAME_RATE * 30:
+	    Putenemy(sgroot, root, 1, 400, -128, 0, 3, chara_state3);
+	    Putenemy(sgroot, root, 1, 560, -128, 0, 2, chara_state3);
+	    Putenemy(sgroot, root, 1, 400, -128, 0, 1, chara_state3);
+	    break;
+	case FRAME_RATE * 31:
+	    Putenemy(sgroot, root, 1, 400, -128, 0, 3, chara_state3);
+	    Putenemy(sgroot, root, 1, 400, -128, 0, 1, chara_state3);
+	    break;
+	case FRAME_RATE * 32:
+	    Putenemy(sgroot, root, 1, 400, -128, 0, 3, chara_state3);
+	    Putenemy(sgroot, root, 1, 560, -128, 0, 2, chara_state3);
+	    Putenemy(sgroot, root, 1, 400, -128, 0, 1, chara_state3);
+	    break;
+	case FRAME_RATE * 36:
+	    Putenemy(sgroot, root, 1, 400, -128, 0, 3, chara_state3);
+	    Putenemy(sgroot, root, 1, 560, -128, 0, 2, chara_state3);
+	    Putenemy(sgroot, root, 1, 400, -128, 0, 1, chara_state3);
+	    break;
+	case FRAME_RATE * 37:
+	    Putenemy(sgroot, root, 1, 440, -128, 0, 3, chara_state3);
+	    break;
+	case FRAME_RATE * 38:
+	    Putenemy(sgroot, root, 1, 600, -128, 0, 2, chara_state3);
+	    Putenemy(sgroot, root, 1, 760, -128, 0, 1, chara_state3);
+	    break;
+	case FRAME_RATE * 39:
+	    Putenemy(sgroot, root, 1, 480, -128, 0, 3, chara_state3);
+	    Putenemy(sgroot, root, 1, 640, -128, 0, 2, chara_state3);
+	    Putenemy(sgroot, root, 1, 800, -128, 0, 1, chara_state3);
+	    break;
+	case FRAME_RATE * 40:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 41:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 42:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 43:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 44:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 45:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 46:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 47:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 48:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 49:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 52:
+	    Putenemy(42, 0, 128, 0, 0, chara_state401);
+	    Putenemy(42, 0, 256, 0, 1, chara_state401);
+	    Putenemy(42, 0, 384, 0, 0, chara_state401);
+	    Putenemy(42, 0, 512, 0, -1, chara_state401);
+	    break;
+	case FRAME_RATE * 54:
+	    Putenemy(42, 1280, 128, 0, 0, chara_state402);
+	    Putenemy(42, 1280, 256, 0, 1, chara_state402);
+	    Putenemy(42, 1280, 384, 0, 0, chara_state402);
+	    Putenemy(42, 1280, 512, 0, -1, chara_state402);
+	    break;
+	case FRAME_RATE * 56:
+	    Putenemy(42, 0, 128, 0, 0, chara_state401);
+	    Putenemy(42, 0, 256, 0, 1, chara_state401);
+	    Putenemy(42, 0, 384, 0, 0, chara_state401);
+
+	    Putenemy(42, 1280, 256, 0, 1, chara_state402);
+	    Putenemy(42, 1280, 384, 0, 0, chara_state402);
+	    Putenemy(42, 1280, 512, 0, -1, chara_state402);
+	    break;
+	case FRAME_RATE * 59:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 61:
+	    Putenemy(sgroot, root, 1, 400, -128, 0, 1, chara_state3);
+	    Putenemy(sgroot, root, 1, 560, 1008, 0, 1, chara_state3);
+	    Putenemy(sgroot, root, 1, 720, 1040, 0, 1, chara_state3);
+	    break;
+	case FRAME_RATE * 62:
+	    for (i = 0; i < 9; i++) {
+		Putenemy(43, rand() % 2560, -i * 12, 0, rand() % 4, chara_state400);
+	    }
+	    break;
+	case FRAME_RATE * 63:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 65:
+	    Putenemy(sgroot, root, 2, 440, -128, 0, -2, chara_state3);
+	    break;
+	case FRAME_RATE * 66:
+	    Putenemy(sgroot, root, 2, 600, -128, 0, -2, chara_state3);
+	    Putenemy(sgroot, root, 1, 760, 1040, 0, -1, chara_state3);
+	    break;
+	case FRAME_RATE * 67:
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    Putenemy(9, 0, 0, 0, 0, chara_state22);
+	    break;
+	case FRAME_RATE * 69:
+	    Putenemy(sgroot, root, 2, 480, 1040, 0, -3, chara_state3);
+	    Putenemy(sgroot, root, 1, 640, 1040, 0, -2, chara_state3);
+	    Putenemy(sgroot, root, 2, 800, 1040, 0, -1, chara_state3);
+	    break;
+	case FRAME_RATE * 85:
+	    SoundStop();
+	    SoundPlay(4);
+	    Putenemy(44, 0, 0, 1, 1, chara_state410);
+	    break;
+	}
+	if (filpcount > FRAME_RATE * 85) {
+	    if (kyeenemyno->f == FALSE) {
+		Superbom(kyeenemyno->x, kyeenemyno->y);
+		stage = 3;
+		filpcount = 0;
+		//kyeenemyno = -1;
+		clear_result[2] = infg_level;
+	    }
+	}
+    }
+    
+    if (stage == 3) {
+	switch (filpcount) {
+	case 1:
+	    SoundStop();
+	    SoundPlay(3);
+	    break;
+	    //now
+	case FRAME_RATE * 10:
+	    Putenemy(30, 640, 200 - 64, 0, 0, chara_state500);
+	    break;
+	}
+	if (filpcount > FRAME_RATE * 10) {
+	    if (kyeenemyno->f == FALSE) {
+		Superbom(kyeenemyno->x, kyeenemyno->y);
+
+		stage = 4;
+		filpcount = 0;
+		//kyeenemyno = -1;
+	    }
+	}
+    }
+
+    if (stage == 4) {
+	switch (filpcount) {
+	case 4:
+	    Putenemy(49, 640, 200-64, 0, 0, chara_state600);
+	}
+	if (filpcount > 4) {
+	    if (kyeenemyno->f == FALSE) {
+		Superbom(kyeenemyno->x, kyeenemyno->y);
+
+		stage = 5;
+		filpcount = 0;
+		//kyeenemyno = -1;
+		clear_result[3] = infg_level;
+		SoundStop();
+		SoundPlay(6);
+	    }
+	}
+    }
+    if (stage == 5) {
+	/*
+	  for (i = 0; i < 300; i++) {
+	  if (enemy[i].f == TRUE) {
+	  //	goto noend;
+	  filpcount = 0;
+	  }
+	  }
+	*/
+      
+	  
+	Endingscore(sgroot, root, filpcount);
+	if (filpcount > 4000)
+	    filpcount = 4000;
+    noend:
+	;
+    }
+#endif   
+}
--- a/src/schedule.h	Thu May 20 19:51:03 2010 +0900
+++ b/src/schedule.h	Tue Dec 07 18:37:43 2010 +0900
@@ -1,8 +1,9 @@
 #ifndef _SCHEDULE_H_
 #define _SCHEDULE_H_
 
-//extern int kyeenemyno;
+#include "viewer.h"
+#include "SceneGraph.h"
 
-extern void schedule();
+extern void schedule(Viewer *sgroot, SceneGraphPtr root);
 
 #endif
--- a/src/sgoex.cc	Thu May 20 19:51:03 2010 +0900
+++ b/src/sgoex.cc	Tue Dec 07 18:37:43 2010 +0900
@@ -2,11 +2,9 @@
   ¥¹¥×¥é¥¤¥È´ÉÍý´Ø¿ô
 */
 
-//#include<libps.h>
 #include <stdio.h>
 #include <SDL.h>
 #include "SDL_image.h"
-//#include "libps2.h"
 #include "SDL_opengl.h"
 #include "texture.h"
 #include "object.h"
@@ -15,8 +13,6 @@
 #include "trace.h"
 #include "syokika.h"
 #include "LoadSprite.h"
-#include "Property.h"
-
 
 //extern void Back(GsOT * ot);
 extern void Draw_rectangle(void *obj);
@@ -76,11 +72,9 @@
 
 void Gdraw()
 {
-    SDL_UpdateRect(screen, 0,0,0,0);
+//    SDL_UpdateRect(screen, 0,0,0,0);
 }
 
-
-
 void DefSpriteEx(int number, short middlex, short middley)
 {
     sptable[number].mx = middlex;
@@ -90,6 +84,7 @@
 
 void SDL_GL_Enter2DMode()
 {
+#if 0
     //	SDL_Surface *sc = SDL_GetVideoSurface();
 
     /* Note, there may be other things you need to change,
@@ -118,6 +113,7 @@
 
     //	glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
     glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+#endif
 }
 
 
@@ -132,115 +128,38 @@
     glPopAttrib();
 }
 
-
-static int power_of_two(int input)
-{
-    int value = 1;
-
-    while ( value < input ) {
-	value <<= 1;
-    }
-    return value;
-}
-
 void
-DefSprite(int number, char *name, float w, float h, int color, OBJECT *obj)
+DefSprite(int number, char *name, float w, float h)
 {
-    PropertyPtr surfaces;
-    /*
-      sptable[number].page = page;
-      sptable[number].dx = x;
-      sptable[number].dy = y;
-    */
-    surfaces = search_node(obj, name);
-    if(surfaces == NULL)
-    {
-	fprintf(stderr, "can't get node\n");
-	printf("%s", name);
-	SDL_Quit();
-	exit(1);
-    }
+    char *obj_name = sptable[number].name;
+    strcpy(obj_name, name);
+
     sptable[number].w = w;
     sptable[number].h = h;
-    sptable[number].color = (color & 32);
     sptable[number].mx = w / 2;
     sptable[number].my = h / 2;
     sptable[number].tex_w = power_of_two(sptable[number].w);
     sptable[number].tex_h = power_of_two(sptable[number].h);
-    texMinX[number] = 0.0f;
-    texMinY[number] = 0.0f;
-    texMaxX[number] = (GLfloat)sptable[number].w / sptable[number].tex_w;
-    texMaxY[number] = (GLfloat)sptable[number].h / sptable[number].tex_h;  
-    printf("texMaxX = %f, w = %d, tex_w = %d\n",
-	   texMaxX[number], sptable[number].w, sptable[number].tex_w);
-    sptable[number].texture = surfaces->texture;
 }
 
-/*
-void DefSprite(int number, char *name, float w, float h, int color, OBJECT *obj)
+SceneGraphPtr
+PutSprite(Viewer *sgroot, SceneGraphPtr root, short x, short y, int number)
 {
-    SURFACE *surfaces;
-    /*
-      sptable[number].page = page;
-      sptable[number].dx = x;
-      sptable[number].dy = y;
-    */
-    surfaces = search_node(obj, name);
-    if(surfaces == NULL)
-    {
-	fprintf(stderr, "can't get node\n");
-	printf("%s", name);
-	SDL_Quit();
-	exit(1);
-    }
-    sptable[number].w = w;
-    sptable[number].h = h;
-    sptable[number].color = (color & 32);
-    sptable[number].mx = w / 2;
-    sptable[number].my = h / 2;
-    sptable[number].tex_w = power_of_two(sptable[number].w);
-    sptable[number].tex_h = power_of_two(sptable[number].h);
-    texMinX[number] = 0.0f;
-    texMinY[number] = 0.0f;
-    texMaxX[number] = (GLfloat)sptable[number].w / sptable[number].tex_w;
-    texMaxY[number] = (GLfloat)sptable[number].h / sptable[number].tex_h;  
-    printf("texMaxX = %f, w = %d, tex_w = %d\n",
-	   texMaxX[number], sptable[number].w, sptable[number].tex_w);
-    sptable[number].texture = surfaces->texture;
-}
-*/
+  char *name = sptable[number].name;
+  SceneGraphPtr object = sgroot->createSceneGraph(name);
 
-void
-PutSprite(int zorder, short x, short y, int number)
-{
-  SceneGraphPtr sprite;
-
-  sprite = sgroot->createSceneGraph(number);
-  sprite->xyz[0] = x;
-  sprite->xyz[1] = y;
-  sprite->set_move_collision(chara_state, nocollision);
+  sptable[number].charano = number;
+  sptable[number].x = x;
+  sptable[number].y = y;
   
-  root->addChild(sprite);
-
-#if 0
-    //static GLuint texture[250] = {0};
+  object->xyz[0] = x;
+  object->xyz[1] = y;
+  object->stack_xyz[0] = number;
 
-    /*
-      sp = &sprite[zorder];
-    
-      spview[zorder].extend = FALSE;
-      sp->w = sptable[number].w;
-      sp->h = sptable[number].h;
-      sp->u = sptable[number].dx;
-      sp->v = sptable[number].dy;
-      sp->x = x;
-      sp->y = y;
-      sp->cx = 0;
-      sp->cy = 480 + sptable[number].color;
-	
-      spview[zorder].no = number;*/	/* ɽ¼¨¤¹¤ë¥¹¥×¥é¥¤¥È¤ÎÈÖ¹æ¤Î³ÊǼ */
+  root->addChild(object);
 
-
+  return object;
+  /*
     //SDL_GL_Enter2DMode();
     glBindTexture(GL_TEXTURE_2D, (GLuint)sptable[number].texture);
     glEnable(GL_BLEND);
@@ -253,17 +172,11 @@
     glEnd();
     glDisable(GL_BLEND);
     //SDL_GL_Leave2DMode();
-#endif
+    */
 }
 
 void PutSpriteEx(int number, int x, int y, float scalex, float scaley, float angle)
 {
-
-  /** Object ¤Î³ÈÂ硦½Ì¾®¡¦²óž¤ò¤·¤¿¾å¤ÇÉÁ²è¤ò¹Ô¤¦¡£
-   *  ³ÈÂ硦½Ì¾®¡¦²óž¤¬Cerium¤Ë¼ÂÁõ¤µ¤ì¤ë¤Þ¤Ç¤Ï
-   *  ²¿¤â¤·¤Ê¤¤´Ø¿ô¤Ë¤·¤Æ¤ª¤­¤Þ¤¹¡£
-   **/
-
 #if 0
     SpriteTable *m = &sptable[number];
     x -= m->w;
@@ -292,6 +205,18 @@
 #endif
 }
 
+/*void PutSpriteEx(int zorder, short scalex, short scaley, long rotate)
+  {
+  sp = &sprite[zorder];
+
+  spview[zorder].extend = TRUE;
+
+  sp->mx = sptable[spview[zorder].no].mx;
+  sp->my = sptable[spview[zorder].no].my;
+  sp->scalex = scalex;
+  sp->scaley = scaley;
+  sp->rotate = rotate;
+  }*/
 
 void init_tim(u_long addr)
 {
@@ -317,12 +242,13 @@
     */
 }
 
-struct SGO_PAD pad[2];
+//struct SGO_PAD pad[2];
 
 #ifdef ENABLE_TRACEMODE
 extern int runmode;
 #endif				//ENABLE_TRACEMODE
 
+#if 0
 /* ¥³¥ó¥È¥í¡¼¥é¾õÂÖ¤ÎÆɤ߹þ¤ß */
 void Pad(SDL_Joystick *joy)
 {
@@ -532,7 +458,7 @@
 	pad[0].quit = 0;
     }
 }
-
+#endif
 
 /*!
   \brief PNG¥·¥¹¥Æ¥à¤Î½é´ü²½
--- a/src/sgoex.h	Thu May 20 19:51:03 2010 +0900
+++ b/src/sgoex.h	Tue Dec 07 18:37:43 2010 +0900
@@ -1,3 +1,8 @@
+#ifndef INCLUDE_SGOEX_H
+#define INCLUDE_SGOEX_H
+
+#include "SceneGraph.h"
+#include "Viewer.h"
 
 #define DEFOBJ    320		// sprite definition max num
 #define MAXOBJ    320		// sprite drawing max num
@@ -19,22 +24,7 @@
 #define PS2_L3 10
 #define PS2_R3 11
 
-/*PS3_PAD*/
 /*
-#define PS2_CROSS 14
-#define PS2_CIRCLE 13
-#define PS2_SQUARE 15
-#define PS2_TRIANGLE 12
-#define PS2_L1 10
-#define PS2_R1 11
-#define PS2_L2 8
-#define PS2_R2 9
-#define PS2_START 3
-#define PS2_SELECT 0
-#define PS2_L3 1
-#define PS2_R3 2
-*/
-
 typedef struct SGO_PAD {
     short up;
     short down;
@@ -56,6 +46,7 @@
     // å‹æ‰‹ã«ä»˜ã‘ãŸ
     short quit;
 } SGO_PAD;
+*/
 
 typedef struct SpriteView {
     int x;
@@ -68,17 +59,20 @@
 } SpriteView;
 
 typedef struct SpriteTable {
-  short dx;
-  short dy;
-  short w;
-  short h;
-  short mx;
-  short my;
-  int color;
-  int page;
-  int tex_w;
-  int tex_h;
-  int *texture;
+  int charano; //sprite_number
+  char name[30]; //chara_name
+  float x, y;
+  float vx, vy; //velocity
+  short dx, dy;
+  short w, h; //width height
+  short mx, my;
+  float vit; //vital
+  int score; //score
+  int dt1, dt2;
+  int tex_w, tex_h;
+  float s;
+  bool tama; //bullet identifier
+  bool f; //apiarance identifier
 } SpriteTable;
 
 //extern GsSPRITE sprite[MAXOBJ];
@@ -89,9 +83,8 @@
 void Gfinish(void);
 void Gdraw(void);
 void *init_png(char *png_file);
-void PutSprite(int zorder, short x, short y, int number);
-//void PutSprite();
-void DefSprite(int number, char *name, float w, float h, int color, OBJECT *obj);
+SceneGraphPtr PutSprite(Viewer *viewer, SceneGraphPtr root, short x, short y, int number);
+void DefSprite(int number, char *name, float w, float h);
 void DefSpriteEx(int number, short middlex, short middley);
 void sound_init(void);
 void view_init(int p);
@@ -121,10 +114,10 @@
 
 
 /* Joypad - Below member are implemented in sgoex_ps2.c */
-extern SGO_PAD pad[2];
+//extern SGO_PAD pad[2];
 //void Pad(void);
-void Pad();
-void keybord();
+//void Pad();
+//void keybord();
 //void Pad1(SGO_PAD * padls);
 //void Pad2(SGO_PAD * padls);
 
@@ -132,3 +125,5 @@
 
 /* dummies */
 // void init_tim( int tim_addr );
+
+#endif
--- a/src/sound.cc	Thu May 20 19:51:03 2010 +0900
+++ b/src/sound.cc	Tue Dec 07 18:37:43 2010 +0900
@@ -2,7 +2,7 @@
 #include <SDL.h>
 #include <SDL_mixer.h> //ÄɲÃ
 #include "sound.h"
-
+#include "Ss.h"
 #include "error.h"
 //#include "libps.h"
 
@@ -146,14 +146,14 @@
 	__debug("%s is not executed because no_useSDLMixer is set\n",
 		__FUNCTION__);
     } else {
-	chunk[BGM]=Mix_LoadWAV("./sound/sample.wav");
-	chunk[SHOT_A]=Mix_LoadWAV("./sound/shota.wav");
-	chunk[SHOT_B]=Mix_LoadWAV("./sound/shotb.wav");
-	chunk[SHOT_C]=Mix_LoadWAV("./sound/shotc.wav");
-	chunk[RING]=Mix_LoadWAV("./sound/ring.wav");
-	chunk[NEW]=Mix_LoadWAV("./sound/powerdown.wav");
-	chunk[JIKIOUT]=Mix_LoadWAV("./sound/jikiout.wav");
-	chunk[BOM]=Mix_LoadWAV("./sound/bomber.wav");
+	chunk[BGM]=Mix_LoadWAV("../sound/sample.wav");
+	chunk[SHOT_A]=Mix_LoadWAV("../sound/shota.wav");
+	chunk[SHOT_B]=Mix_LoadWAV("../sound/shotb.wav");
+	chunk[SHOT_C]=Mix_LoadWAV("../sound/shotc.wav");
+	chunk[RING]=Mix_LoadWAV("../sound/ring.wav");
+	chunk[NEW]=Mix_LoadWAV("../sound/powerdown.wav");
+	chunk[JIKIOUT]=Mix_LoadWAV("../sound/jikiout.wav");
+	chunk[BOM]=Mix_LoadWAV("../sound/bomber.wav");
 	
 	// Æɤ߹þ¤á¤Ê¤¤¥Õ¥¡¥¤¥ë¤¬¤¢¤ì¤Ð¥¨¥é¡¼¤Ç½ªÎ»
 	if(!chunk[BGM] || !chunk[SHOT_A] || !chunk[SHOT_B] || !chunk[SHOT_C]
--- a/src/syokika.cc	Thu May 20 19:51:03 2010 +0900
+++ b/src/syokika.cc	Tue Dec 07 18:37:43 2010 +0900
@@ -8,7 +8,7 @@
 #include "xml.h"
 #include "tree_controll.h"
 //#include "Enemy.h"
-#include "count2.h"
+#include "count.h"
 #include "sgoex.h"
 #include "sankaku.h"
 //#include "back.h"
@@ -22,12 +22,12 @@
 #define EFFECT_FILE "effect.xml"
 #define BOSS_FILE "boss.xml"
 
-//extern void init_sprite(TEXTURE * tex);
-//extern int LoadSprite();
-
 #define SEED_VALUE 1
 
-void syokika(int argc, char *argv[])
+//struct SDL_Surface *screen;
+
+int
+syokika(Viewer *sgroot)
 {
     int i, i2;
     /*
@@ -90,7 +90,7 @@
 
     sankakuf();
 
-#if 0
+/*
     font = read_xml_3d_file(FONT_FILE);
     boss = read_xml_3d_file(BOSS_FILE);
     chara = read_xml_3d_file(CHARACTER_FILE);
@@ -100,9 +100,12 @@
     all_object_load_texture(boss);
     all_object_load_texture(chara);
     all_object_load_texture(effect);
-#endif
+*/
 
-    
+    sgroot->createFromXMLfile("../xml/boss.xml");
+    sgroot->createFromXMLfile("../xml/character.xml");
+    sgroot->createFromXMLfile("../xml/effect.xml");
+    sgroot->createFromXMLfile("../xml/font.xml");
 
     /*
       for (i = 0; i < BOX_NUM; i++) {
@@ -123,140 +126,139 @@
      * 2$B0z?t(B:$B%-%c%i%/%?L>(B;
      * 3$B0z?t(B:$BI}(B
      * 4$B0z?t(B:$B9b$5(B
-     * 5$B0z?t(B:$B%+%i!<(B- 480$B$N$^$^$G$h$m$7(B
-     * 6$B0z?t(B:OBJECT$B9=B$BN$N%]%$%s%?$rEO$9(B
-     * $B2<=q$-D>$7(B
      **/
-    DefSprite(PLAYER_IDLE, "player_idle", 128, 128, 480, chara);
-    DefSprite(PLAYER_LEFTMOVE, "player_leftmove", 128, 128, 480, chara);
-    DefSprite(PLAYER_TURNTOLEFT, "player_turntoleft", 128, 128, 480, chara);
+    DefSprite(PLAYER_IDLE, "player_idle", 128, 128);
+    DefSprite(PLAYER_LEFTMOVE, "player_leftmove", 128, 128);
+    DefSprite(PLAYER_TURNTOLEFT, "player_turntoleft", 128, 128);
   
-    DefSprite(PLAYER_TURNTORIGHT, "player_turntoright", 128, 128, 480, chara);
-    //DefSprite(PLAYER_RIGHTMOVE, 1, 480, chara);
-    DefSprite(PLAYER_RIGHTMOVE, "player_rightmove", 128, 128, 480, chara);
-    DefSprite(BLUEBULLET_LEFT, "bulebullet_left", 45, 128, 480, effect);
-    DefSprite(BLUEBULLET_RIGHT, "blebullet_right", 38, 128, 480, effect);
-    DefSprite(REDBULLET, "redbullet", 128, 256, 480, effect);
-    DefSprite(LONGLASER, "longlaser", 64, 256, 480, effect);
-    DefSprite(GAUGE_PANEL, "gauge_panel", 128, 512, 480, effect);
-    DefSprite(OFFENSIVEPOWER_GAUGE, "offensivepower_gauge", 27, 220, 480, effect);
-    DefSprite(BURNER, "burner", 63, 122, 480, effect);
-    DefSprite(LOCKON_SIGHT, "lockon_sight", 64, 64, 480, effect);
-    //DefSprite(SPECIAL_LASERGAUGE, "special_lasergauge", 0, 0, 480, effect);
-    DefSprite(DIFFENSIVEPOWER_GAUGE, "diffensivepower_gauge", 20, 215, 480, effect);
-    DefSprite(GREENBULLET, "greenbullet", 128, 128, 480, effect);
-    DefSprite(BULEBARRIER, "bulebarrier", 128, 128, 480, effect);
-    //DefSprite(FONT_PLAYER_1, "font_player1", 128, 32, 480, font);
-    //DefSprite(FONT_GAMEOVER, "font_gameover", 256, 32, 480, font);
-    DefSprite(FONT_0, "font_0", 32, 32, 480, font);
-    DefSprite(FONT_1, "font_1", 32, 32, 480, font);
-    DefSprite(FONT_2, "font_2", 32, 32, 480, font);
-    DefSprite(FONT_3, "font_3", 32, 32, 480, font);
-    DefSprite(FONT_4, "font_4", 32, 32, 480, font);
-    DefSprite(FONT_5, "font_5", 32, 32, 480, font);
-    DefSprite(FONT_6, "font_6", 32, 32, 480, font);
-    DefSprite(FONT_7, "font_7", 32, 32, 480, font);
-    DefSprite(FONT_8, "font_8", 32, 32, 480, font);
-    DefSprite(FONT_9, "font_9", 32, 32, 480, font);
-    DefSprite(REDBOMB_ANIM_0, "redbomb_anim_0", 64, 64, 480, effect);
-    DefSprite(REDBOMB_ANIM_1, "redbomb_anim_1", 64, 64, 480, effect);
-    DefSprite(REDBOMB_ANIM_2, "redbomb_anim_2", 64, 64, 480, effect);
-    DefSprite(REDBOMB_ANIM_3, "redbomb_anim_3", 64, 64, 480, effect);
-    DefSprite(REDBOMB_ANIM_4, "redbomb_anim_4", 64, 64, 480, effect);
-    DefSprite(REDBOMB_ANIM_5, "redbomb_anim_5", 64, 64, 480, effect);
-    DefSprite(REDBOMB_ANIM_6, "redbomb_anim_6", 64, 64, 480, effect);
-    DefSprite(REDBOMB_ANIM_7, "redbomb_anim_7", 64, 64, 480, effect);
-    DefSprite(FONT_HIGE, "font_hige", 128, 32, 480, font);
-    DefSprite(GREENBOMB_ANIM_0, "greenbomb_anim_0", 64, 64, 480, effect);
-    DefSprite(GREENBOMB_ANIM_1, "greenbomb_anim_1", 64, 64, 480, effect);
-    DefSprite(GREENBOMB_ANIM_2, "greenbomb_anim_2", 64, 64, 480, effect);
-    //DefSprite(GREENBOMB_ANIM_3, "greenbomb_anim_3", 64, 64, 480, effect);
-    DefSprite(GREENBOMB_ANIM_4, "greenbomb_anim_4", 64, 64, 480, effect);
-    DefSprite(GREENBOMB_ANIM_5, "greenbomb_anim_5", 64, 64, 480, effect);
-    DefSprite(GREENBOMB_ANIM_6, "greenbomb_anim_6", 64, 64, 480, effect);
-    DefSprite(GREENBOMB_ANIM_7, "greenbomb_anim_7", 64, 64, 480, effect);
-    DefSprite(INFLATION_GAUGE, "inflation_gauge", 64, 512, 480, effect);
-    DefSprite(INFLATION_METER, "inflation_meter", 32, 512, 480, effect);
-    DefSprite(ENEMY_GREENCRAB, "enemy_greenclab", 128, 128, 480, chara);
-    DefSprite(ENEMY_PLANE, "enemy_plane", 128, 128, 480, chara);
-    DefSprite(ENEMY_REDBULLET, "enemy_redbullet", 32, 32, 480, effect);
-    DefSprite(FONT_PUSHSTART, "font_pushstart", 512, 32, 480, font);
-    DefSprite(BOSS1_ORGAN, "boss1_organ", 128, 256, 480, boss);
-    DefSprite(ENEMY_LASER, "enemy_laser", 64, 251, 480, effect);
-    DefSprite(ENEMY_BLUEBULLET, "enemy_bluebullet", 36, 28, 480, effect);
-    DefSprite(ENEMY_LIGHTNING, "enemy_lightning", 64, 252, 480, effect);
-    DefSprite(ENEMY_LASERSPLOSH_0, "enemy_lasersplosh_0", 126, 127, 480, effect);
-    DefSprite(ENEMY_LASERSPLOSH_1, "enemy_lasersplosh_1", 124, 119, 480, effect);
-    DefSprite(ENEMY_LASERSPLOSH_2, "enemy_lasersplosh_2", 126, 127, 480, effect);
-    DefSprite(ENEMY_LASERSPLOSH_3, "enemy_lasersplosh_3", 112, 102, 480, effect);
-    DefSprite(ASTEROID, "meteo", 128, 128, 480, chara); //inseki
-    DefSprite(ORBITMACHINE, "orbitmachine", 128, 64, 480, chara); //inseki no shita maruiyatsu 
-    DefSprite(BOSS2_BODY, "boss2_body", 512, 512, 480, boss);
-    DefSprite(BOSS2_RIGHTSHOULDER, "boss2_rightshoulder", 256, 256, 480, boss);
-    DefSprite(BOSS2_LEFTSHOULDER, "boss2_leftshoulder", 256, 256, 480, boss);
-    DefSprite(BOSS2_RIGHTARM, "boss2_rightarm", 128, 256, 480, boss);
-    DefSprite(BOSS2_LEFTARM, "boss2_leftarm", 128, 256, 480, boss);
-    DefSprite(BOSS2_BATTERY, "boss2_battery", 128, 128, 480, boss);
-    DefSprite(BOSS2_OPENBATTERY, "boss2_openbattery", 256, 128, 480, boss);
-    DefSprite(BOSS2_BROKENHATCH, "boss2_brokenhatch", 128, 64, 480, boss);
-    DefSprite(BOSS2_DUMMY, "boss2_dummy", 128, 64, 480, boss);
-    DefSprite(BOSS2_RIGHTSHOULDERUP, "boss2_r_shoulderup", 256, 128, 480, boss);
-    DefSprite(BOSS2_LEFTSHOULDERUP, "boss2_left_s_up", 256, 128, 480, boss);
-    DefSprite(BOSS2_LEFTSHOULDERGIRD, "boss2_left_s_gird", 256, 256, 480, boss);
-    DefSprite(BOSS2_RIGHTARMBATTERY, "boss2_rightarm_b", 64, 64, 480, boss);
-    DefSprite(BOSS2_LEFTARMBATTERY, "boss2_leftarmbattery", 64, 64, 480, boss);
-    DefSprite(BOSS2_RIGHTHAND, "boss2_righthand", 64, 64, 480, boss);
-    DefSprite(BOSS2_RIGHTPALM, "boss2_rightpalm", 64, 64, 480, boss);
-    DefSprite(BOSS2_LEFTHAND, "boss2_lefthand", 64, 64, 480, boss);
-    DefSprite(BOSS2_LEFTPALM, "boss2_leftpalm", 64, 64, 480, boss);
-    DefSprite(PLAYER_LASERSPLOSH_0, "player_lasersplosh_0", 115, 91, 480, effect);
-    DefSprite(PLAYER_LASERSPLOSH_1, "player_lasersplosh_1", 133, 121, 480, effect);
-    DefSprite(PLAYER_LASERSPLOSH_2, "player_lasersplosh_2", 135, 119, 480, effect);
-    DefSprite(PLAYER_LASERSPLOSH_3, "player_lasersplosh_3", 131, 120, 480, effect);
-    DefSprite(BOSS_POWERGAUGE, "boss_powergauge", 69, 762, 480, effect);
-    DefSprite(BLACKHOLE, "blackhole", 128, 128, 480, boss);
-    DefSprite(FONT_DOYOUCONTINUE, "font_doyoucontinue", 512, 32, 480, font);
-    DefSprite(FONT_ALLSTAGECLEAR, "font_allstageclear", 512, 32, 480, font);
-    DefSprite(FONT_REST, "font_rest", 128, 32, 480, font);
-    DefSprite(FONT_STAGE, "font_stage", 256, 32, 480, font);
-    DefSprite(FONT_LINEOFZERO_000000, "font_000000", 256, 32, 480, font);
-    DefSprite(FONT_LINEOFZERO_0000000, "font_0000000", 256, 32, 480, font);
-    DefSprite(FONT_THANKYOU, "font_thankyou", 512, 32, 480, font);
-    DefSprite(FONT_NYSOFT, "font_nysoft", 512, 32, 480, font);
-    DefSprite(FONT_1997YGGDRASIL, "font_1997yggdrasil", 512, 32, 480, font);
-    DefSprite(FONT_SUPERDANDY, "font_superdandy", 256, 64, 480, font);
-    DefSprite(FONT_1997YAS_K, "font_1997yas_k", 512, 32, 480, font);
-    DefSprite(GUNBATTERY, "gunbattery", 128, 128, 480, chara);
-    DefSprite(PURPLECORE, "purplecore", 128, 128, 480, chara);
-    DefSprite(SPACEFISH, "spacefish", 128, 128, 480, chara);
-    DefSprite(MISSILE, "missile", 64, 128, 480, chara);
-    DefSprite(BOSS3_BODY, "boss3_body", 256, 256, 480, boss);
-    DefSprite(BODD4_BODY, "boss_4", 256, 256, 480, boss);
-    DefSprite(TITLEFONT_SUPER, "titlefont_super", 256, 256, 480, font);
-    DefSprite(TITLEFONT_BATTLE, "titlefont_battle", 256, 256, 480, font);
-    DefSprite(TITLEFONT_EMPEROR, "titlefont_emperor", 256, 256, 480, font);
-    DefSprite(GREENBARRIER, "greenbarrier", 130, 133, 480, effect);
-    DefSprite(REMAINDER, "remainder", 126, 34, 480, effect);
-    DefSprite(EARTH, "earth", 256, 256, 480, chara);
-    DefSprite(BOSS_CORPSE, "boss_corpse", 64, 256, 480, boss);
+    DefSprite(PLAYER_TURNTORIGHT, "player_turntoright", 128, 128);
+    //DefSprite(PLAYER_RIGHTMOVE, 1);
+    DefSprite(PLAYER_RIGHTMOVE, "player_rightmove", 128, 128);
+    DefSprite(BLUEBULLET_LEFT, "bulebullet_left", 45, 128);
+    DefSprite(BLUEBULLET_RIGHT, "blebullet_right", 38, 128);
+    DefSprite(REDBULLET, "redbullet", 128, 256);
+    DefSprite(LONGLASER, "longlaser", 64, 256);
+    DefSprite(GAUGE_PANEL, "gauge_panel", 128, 512);
+    DefSprite(OFFENSIVEPOWER_GAUGE, "offensivepower_gauge", 27, 220);
+    DefSprite(BURNER, "burner", 63, 122);
+    DefSprite(LOCKON_SIGHT, "lockon_sight", 64, 64);
+    //DefSprite(SPECIAL_LASERGAUGE, "special_lasergauge", 0, 0);
+    DefSprite(DIFFENSIVEPOWER_GAUGE, "diffensivepower_gauge", 20, 215);
+    DefSprite(GREENBULLET, "greenbullet", 128, 128);
+    DefSprite(BULEBARRIER, "bulebarrier", 128, 128);
+    // $B%3%a%s%H%"%&%H$5$l$F$?$1$IBg>fIW$+$J!)(B
+    DefSprite(FONT_PLAYER_1, "font_player1", 128, 32);
+    DefSprite(FONT_GAMEOVER, "font_gameover", 256, 32);
+
+    DefSprite(FONT_0, "font_0", 32, 32);
+    DefSprite(FONT_1, "font_1", 32, 32);
+    DefSprite(FONT_2, "font_2", 32, 32);
+    DefSprite(FONT_3, "font_3", 32, 32);
+    DefSprite(FONT_4, "font_4", 32, 32);
+    DefSprite(FONT_5, "font_5", 32, 32);
+    DefSprite(FONT_6, "font_6", 32, 32);
+    DefSprite(FONT_7, "font_7", 32, 32);
+    DefSprite(FONT_8, "font_8", 32, 32);
+    DefSprite(FONT_9, "font_9", 32, 32);
+    DefSprite(REDBOMB_ANIM_0, "redbomb_anim_0", 64, 64);
+    DefSprite(REDBOMB_ANIM_1, "redbomb_anim_1", 64, 64);
+    DefSprite(REDBOMB_ANIM_2, "redbomb_anim_2", 64, 64);
+    DefSprite(REDBOMB_ANIM_3, "redbomb_anim_3", 64, 64);
+    DefSprite(REDBOMB_ANIM_4, "redbomb_anim_4", 64, 64);
+    DefSprite(REDBOMB_ANIM_5, "redbomb_anim_5", 64, 64);
+    DefSprite(REDBOMB_ANIM_6, "redbomb_anim_6", 64, 64);
+    DefSprite(REDBOMB_ANIM_7, "redbomb_anim_7", 64, 64);
+    DefSprite(FONT_HIGE, "font_hige", 128, 32);
+    DefSprite(GREENBOMB_ANIM_0, "greenbomb_anim_0", 64, 64);
+    DefSprite(GREENBOMB_ANIM_1, "greenbomb_anim_1", 64, 64);
+    DefSprite(GREENBOMB_ANIM_2, "greenbomb_anim_2", 64, 64);
+    //DefSprite(GREENBOMB_ANIM_3, "greenbomb_anim_3", 64, 64);
+    DefSprite(GREENBOMB_ANIM_4, "greenbomb_anim_4", 64, 64);
+    DefSprite(GREENBOMB_ANIM_5, "greenbomb_anim_5", 64, 64);
+    DefSprite(GREENBOMB_ANIM_6, "greenbomb_anim_6", 64, 64);
+    DefSprite(GREENBOMB_ANIM_7, "greenbomb_anim_7", 64, 64);
+    DefSprite(INFLATION_GAUGE, "inflation_gauge", 64, 512);
+    DefSprite(INFLATION_METER, "inflation_meter", 32, 512);
+    DefSprite(ENEMY_GREENCRAB, "enemy_greenclab", 128, 128);
+    DefSprite(ENEMY_PLANE, "enemy_plane", 128, 128);
+    DefSprite(ENEMY_REDBULLET, "enemy_redbullet", 32, 32);
+    DefSprite(FONT_PUSHSTART, "font_pushstart", 512, 32);
+    DefSprite(BOSS1_ORGAN, "boss1_organ", 128, 256);
+    DefSprite(ENEMY_LASER, "enemy_laser", 64, 251);
+    DefSprite(ENEMY_BLUEBULLET, "enemy_bluebullet", 36, 28);
+    DefSprite(ENEMY_LIGHTNING, "enemy_lightning", 64, 252);
+    DefSprite(ENEMY_LASERSPLOSH_0, "enemy_lasersplosh_0", 126, 127);
+    DefSprite(ENEMY_LASERSPLOSH_1, "enemy_lasersplosh_1", 124, 119);
+    DefSprite(ENEMY_LASERSPLOSH_2, "enemy_lasersplosh_2", 126, 127);
+    DefSprite(ENEMY_LASERSPLOSH_3, "enemy_lasersplosh_3", 112, 102);
+    DefSprite(ASTEROID, "meteo", 128, 128); //inseki
+    DefSprite(ORBITMACHINE, "orbitmachine", 128, 64); //inseki no shita maruiyatsu 
+    DefSprite(BOSS2_BODY, "boss2_body", 512, 512);
+    DefSprite(BOSS2_RIGHTSHOULDER, "boss2_rightshoulder", 256, 256);
+    DefSprite(BOSS2_LEFTSHOULDER, "boss2_leftshoulder", 256, 256);
+    DefSprite(BOSS2_RIGHTARM, "boss2_rightarm", 128, 256);
+    DefSprite(BOSS2_LEFTARM, "boss2_leftarm", 128, 256);
+    DefSprite(BOSS2_BATTERY, "boss2_battery", 128, 128);
+    DefSprite(BOSS2_OPENBATTERY, "boss2_openbattery", 256, 128);
+    DefSprite(BOSS2_BROKENHATCH, "boss2_brokenhatch", 128, 64);
+    DefSprite(BOSS2_DUMMY, "boss2_dummy", 128, 64);
+    DefSprite(BOSS2_RIGHTSHOULDERUP, "boss2_r_shoulderup", 256, 128);
+    DefSprite(BOSS2_LEFTSHOULDERUP, "boss2_left_s_up", 256, 128);
+    DefSprite(BOSS2_LEFTSHOULDERGIRD, "boss2_left_s_gird", 256, 256);
+    DefSprite(BOSS2_RIGHTARMBATTERY, "boss2_rightarm_b", 64, 64);
+    DefSprite(BOSS2_LEFTARMBATTERY, "boss2_leftarmbattery", 64, 64);
+    DefSprite(BOSS2_RIGHTHAND, "boss2_righthand", 64, 64);
+    DefSprite(BOSS2_RIGHTPALM, "boss2_rightpalm", 64, 64);
+    DefSprite(BOSS2_LEFTHAND, "boss2_lefthand", 64, 64);
+    DefSprite(BOSS2_LEFTPALM, "boss2_leftpalm", 64, 64);
+    DefSprite(PLAYER_LASERSPLOSH_0, "player_lasersplosh_0", 115, 91);
+    DefSprite(PLAYER_LASERSPLOSH_1, "player_lasersplosh_1", 133, 121);
+    DefSprite(PLAYER_LASERSPLOSH_2, "player_lasersplosh_2", 135, 119);
+    DefSprite(PLAYER_LASERSPLOSH_3, "player_lasersplosh_3", 131, 120);
+    DefSprite(BOSS_POWERGAUGE, "boss_powergauge", 69, 762);
+    DefSprite(BLACKHOLE, "blackhole", 128, 128);
+    DefSprite(FONT_DOYOUCONTINUE, "font_doyoucontinue", 512, 32);
+    DefSprite(FONT_ALLSTAGECLEAR, "font_allstageclear", 512, 32);
+    DefSprite(FONT_REST, "font_rest", 128, 32);
+    DefSprite(FONT_STAGE, "font_stage", 256, 32);
+    DefSprite(FONT_LINEOFZERO_000000, "font_000000", 256, 32);
+    DefSprite(FONT_LINEOFZERO_0000000, "font_0000000", 256, 32);
+    DefSprite(FONT_THANKYOU, "font_thankyou", 512, 32);
+    DefSprite(FONT_NYSOFT, "font_nysoft", 512, 32);
+    DefSprite(FONT_1997YGGDRASIL, "font_1997yggdrasil", 512, 32);
+    DefSprite(FONT_SUPERDANDY, "font_superdandy", 256, 64);
+    DefSprite(FONT_1997YAS_K, "font_1997yas_k", 512, 32);
+    DefSprite(GUNBATTERY, "gunbattery", 128, 128);
+    DefSprite(PURPLECORE, "purplecore", 128, 128);
+    DefSprite(SPACEFISH, "spacefish", 128, 128);
+    DefSprite(MISSILE, "missile", 64, 128);
+    DefSprite(BOSS3_BODY, "boss3_body", 256, 256);
+    DefSprite(BODD4_BODY, "boss_4", 256, 256);
+    DefSprite(TITLEFONT_SUPER, "titlefont_super", 256, 256);
+    DefSprite(TITLEFONT_BATTLE, "titlefont_battle", 256, 256);
+    DefSprite(TITLEFONT_EMPEROR, "titlefont_emperor", 256, 256);
+    DefSprite(GREENBARRIER, "greenbarrier", 130, 133);
+    DefSprite(REMAINDER, "remainder", 126, 34);
+    DefSprite(EARTH, "earth", 256, 256);
+    DefSprite(BOSS_CORPSE, "boss_corpse", 64, 256);
 
     /*
       for (i = 0; i < 12; i++) {
-      DefSprite(211 - i, 1, 0, 128 + i * 8, 16, 8, 480); 
+      DefSprite(211 - i, 1, 0, 128 + i * 8, 16, 8); 
       }
     */
     //rank
   
-    DefSprite(211, "rank_c_mins", 64, 32, 480, font);
-    DefSprite(210, "rank_c", 64, 32, 480, font);
-    DefSprite(209, "rank_c_pla", 64, 32, 480, font);
-    DefSprite(208, "rank_b_mins", 64, 32, 480, font);
-    DefSprite(207, "rank_b", 64, 32, 480, font);
-    DefSprite(206, "rank_b_pla", 64, 32, 480, font);
-    DefSprite(205, "rank_a_mins", 64, 32, 480, font);
-    DefSprite(204, "rank_a", 64, 32, 480, font);
-    DefSprite(203, "rank_a_pla", 64, 32, 480, font);
-    DefSprite(202, "rank_s", 64, 32, 480, font);
+    DefSprite(211, "rank_c_mins", 64, 32);
+    DefSprite(210, "rank_c", 64, 32);
+    DefSprite(209, "rank_c_pla", 64, 32);
+    DefSprite(208, "rank_b_mins", 64, 32);
+    DefSprite(207, "rank_b", 64, 32);
+    DefSprite(206, "rank_b_pla", 64, 32);
+    DefSprite(205, "rank_a_mins", 64, 32);
+    DefSprite(204, "rank_a", 64, 32);
+    DefSprite(203, "rank_a_pla", 64, 32);
+    DefSprite(202, "rank_s", 64, 32);
 	
     //SDL_Joystick *joy=SDL_JoystickOpen(0);
   
@@ -296,4 +298,6 @@
       SoundPlay(0);
       SoundStop();
     */
+
+    return 1;
 }
--- a/src/syokika.h	Thu May 20 19:51:03 2010 +0900
+++ b/src/syokika.h	Tue Dec 07 18:37:43 2010 +0900
@@ -1,4 +1,9 @@
-struct SDL_Surface *screen;
+#ifndef INCLUDE_SYOKIKA_H
+#define INCLUDE_SYOKIKA_H
+
+#include "Viewer.h"
+
+extern struct SDL_Surface *screen;
 
 typedef enum {
     PLAYER_LEFTMOVE = 1,
@@ -113,4 +118,6 @@
     BOSS_CORPSE = 196,
 } CharImageNumber;
 
-extern void syokika(int argc, char *argv[]);
+extern int syokika(Viewer *sgroot);
+
+#endif
--- a/src/tama.cc	Thu May 20 19:51:03 2010 +0900
+++ b/src/tama.cc	Tue Dec 07 18:37:43 2010 +0900
@@ -1,5 +1,6 @@
 #include <stdlib.h>
-#include "Enemy.h"
+#include "Character.h"
+#include "Character_state.h"
 #include "sankaku.h"
 #include"debug.h"
 #include <SDL_mixer.h>
@@ -7,83 +8,85 @@
 
 /*¤¿¤Þ¤¿¤Þ¤¿¤Þ*/
 /*tama.h*/
-void Puttama(int type, float x, float y)
+void
+Puttama(int type, float x, float y)
 {
+/*
   PlaySdlMixer(0, SHOT_B) ;// Enemys atack !!
     TFon();
     switch (type) {
     case 0:
-	Putenemy(3, x, y, 0, 2, 0);
+	Putenemy(3, x, y, 0, 2, chara_state0);
 	Putenemy(3, x, y, (float) Mysin(15) * 2 / SANKAKU,
-		 (float) Mycos(15) * 2 / SANKAKU, 0);
+		 (float) Mycos(15) * 2 / SANKAKU, chara_state0);
 	Putenemy(3, x, y, (float) Mysin(30) * 2 / SANKAKU,
-		 (float) Mycos(30) * 2 / SANKAKU, 0);
+		 (float) Mycos(30) * 2 / SANKAKU, chara_state0);
 	Putenemy(3, x, y, (float) Mysin(-15) * 2 / SANKAKU,
-		 (float) Mycos(-15) * 2 / SANKAKU, 0);
+		 (float) Mycos(-15) * 2 / SANKAKU, chara_state0);
 	Putenemy(3, x, y, (float) Mysin(-30) * 2 / SANKAKU,
-		 (float) Mycos(-30) * 2 / SANKAKU, 0);
+		 (float) Mycos(-30) * 2 / SANKAKU, chara_state0);
 	break;
     case 1:
 	Putenemy(3, x, y, (float) Mysin(rand() % 15) * 2 / SANKAKU,
-		 (float) Mycos(rand() % 15) * 2 / SANKAKU, 0);
+		 (float) Mycos(rand() % 15) * 2 / SANKAKU, chara_state0);
 	Putenemy(3, x, y, (float) Mysin(rand() % 15) * 2 / SANKAKU,
-		 (float) Mycos(rand() % 15) * 2 / SANKAKU, 0);
-//              Putenemy(3,x,y,(float) Mysin(rand()%15)*2/SANKAKU,(float)Mycos(rand()%15)*2/SANKAKU,0);
-//              Putenemy(3,x,y,(float) Mysin(rand()%15)*2/SANKAKU,(float)Mycos(rand()%15)*2/SANKAKU,0);
-//              Putenemy(3,x,y,(float) Mysin(rand()%15)*2/SANKAKU,(float)Mycos(rand()%15)*2/SANKAKU,0);
+		 (float) Mycos(rand() % 15) * 2 / SANKAKU, chara_state0);
+//              Putenemy(3,x,y,(float) Mysin(rand()%15)*2/SANKAKU,(float)Mycos(rand()%15)*2/SANKAKU,chara_state0);
+//              Putenemy(3,x,y,(float) Mysin(rand()%15)*2/SANKAKU,(float)Mycos(rand()%15)*2/SANKAKU,chara_state0);
+//              Putenemy(3,x,y,(float) Mysin(rand()%15)*2/SANKAKU,(float)Mycos(rand()%15)*2/SANKAKU,chara_state0);
 
 	Putenemy(3, x, y, (float) Mysin(rand() % 15 * -1) * 2 / SANKAKU,
-		 (float) Mycos(rand() % 15 * -1) * 2 / SANKAKU, 0);
+		 (float) Mycos(rand() % 15 * -1) * 2 / SANKAKU, chara_state0);
 	Putenemy(3, x, y, (float) Mysin(rand() % 15 * -1) * 2 / SANKAKU,
-		 (float) Mycos(rand() % 15 * -1) * 2 / SANKAKU, 0);
-//              Putenemy(3,x,y,(float) Mysin(rand()%15*-1)*2/SANKAKU,(float)Mycos(rand()%15*-1)*2/SANKAKU,0);
-//              Putenemy(3,x,y,(float) Mysin(rand()%15*-1)*2/SANKAKU,(float)Mycos(rand()%15*-1)*2/SANKAKU,0);
-//              Putenemy(3,x,y,(float) Mysin(rand()%15*-1)*2/SANKAKU,(float)Mycos(rand()%15*-1)*2/SANKAKU,0);
+		 (float) Mycos(rand() % 15 * -1) * 2 / SANKAKU, chara_state0);
+//              Putenemy(3,x,y,(float) Mysin(rand()%15*-1)*2/SANKAKU,(float)Mycos(rand()%15*-1)*2/SANKAKU,chara_state0);
+//              Putenemy(3,x,y,(float) Mysin(rand()%15*-1)*2/SANKAKU,(float)Mycos(rand()%15*-1)*2/SANKAKU,chara_state0);
+//              Putenemy(3,x,y,(float) Mysin(rand()%15*-1)*2/SANKAKU,(float)Mycos(rand()%15*-1)*2/SANKAKU,chara_state0);
 	break;
 
     case 2:
-	Putenemy(6, x, y, 10, -3, 20);
+	Putenemy(6, x, y, 10, -3, chara_state20);
 	break;
     case 3:
-	Putenemy(6, x, y, -10, -3, 21);
+	Putenemy(6, x, y, -10, -3, chara_state21);
 	break;
     case 4:
-	Putenemy(7, x, y, 0, 15, 0);
+	Putenemy(7, x, y, 0, 15, chara_state0);
 	break;
     case 5:
-	Putenemy(8, x, y, 0, 30, 0);
+	Putenemy(8, x, y, 0, 30, chara_state0);
 	break;
     case 6:			//ËÜÂÎ
-	Putenemy(10, x, y, 0, 0, 30);
+	Putenemy(10, x, y, 0, 0, chara_state30);
 	break;
     case 7:
-	Putenemy(6, x, y, 0, 4, 0);
+	Putenemy(6, x, y, 0, 4, chara_state0);
 	Putenemy(6, x, y, (float) Mysin(15) * 4 / SANKAKU,
-		 (float) Mycos(15) * 4 / SANKAKU, 0);
+		 (float) Mycos(15) * 4 / SANKAKU, chara_state0);
 	Putenemy(6, x, y, (float) Mysin(30) * 4 / SANKAKU,
-		 (float) Mycos(30) * 4 / SANKAKU, 0);
+		 (float) Mycos(30) * 4 / SANKAKU, chara_state0);
 	Putenemy(6, x, y, (float) Mysin(-15) * 4 / SANKAKU,
-		 (float) Mycos(-15) * 4 / SANKAKU, 0);
+		 (float) Mycos(-15) * 4 / SANKAKU, chara_state0);
 	Putenemy(6, x, y, (float) Mysin(-30) * 4 / SANKAKU,
-		 (float) Mycos(-30) * 4 / SANKAKU, 0);
+		 (float) Mycos(-30) * 4 / SANKAKU, chara_state0);
 	break;
     case 8:
-	Putenemy(3, x + 8, y + 8, -4, 0, 0);
-	Putenemy(3, x + 8, y + 8, 4, 0, 0);
-	Putenemy(3, x + 8, y, -4, Mysin(30) * -8 / SANKAKU, 0);
-	Putenemy(3, x + 8, y, 4, Mysin(30) * -8 / SANKAKU, 0);
+	Putenemy(3, x + 8, y + 8, -4, 0, chara_state0);
+	Putenemy(3, x + 8, y + 8, 4, 0, chara_state0);
+	Putenemy(3, x + 8, y, -4, Mysin(30) * -8 / SANKAKU, chara_state0);
+	Putenemy(3, x + 8, y, 4, Mysin(30) * -8 / SANKAKU, chara_state0);
 	break;
     case 9:
-	Putenemy(3, x + 8, y, -4, Mysin(30) * -8 / SANKAKU, 0);
-	Putenemy(3, x + 8, y, 4, Mysin(30) * -8 / SANKAKU, 0);
-	Putenemy(3, x + 8, y, -4, Mysin(30) * 8 / SANKAKU, 0);
-	Putenemy(3, x + 8, y, 4, Mysin(30) * 8 / SANKAKU, 0);
+	Putenemy(3, x + 8, y, -4, Mysin(30) * -8 / SANKAKU, chara_state0);
+	Putenemy(3, x + 8, y, 4, Mysin(30) * -8 / SANKAKU, chara_state0);
+	Putenemy(3, x + 8, y, -4, Mysin(30) * 8 / SANKAKU, chara_state0);
+	Putenemy(3, x + 8, y, 4, Mysin(30) * 8 / SANKAKU, chara_state0);
 	break;
     case 10:
-	Putenemy(3, x + 8, y, -4, 0, 0);
-	Putenemy(3, x + 8, y, 4, 0, 0);
-	Putenemy(3, x + 8, y, 0, 4, 0);
-	Putenemy(3, x + 8, y, 0, -4, 0);
+	Putenemy(3, x + 8, y, -4, 0, chara_state0);
+	Putenemy(3, x + 8, y, 4, 0, chara_state0);
+	Putenemy(3, x + 8, y, 0, 4, chara_state0);
+	Putenemy(3, x + 8, y, 0, -4, chara_state0);
 	break;
     case 11:
 	{
@@ -91,8 +94,9 @@
 	    a = rand() % 360;
 
 	    Putenemy(3, x + 8, y, (float) Mycos(a) / SANKAKU,
-		     (float) Mysin(a) / SANKAKU, 0);
+		     (float) Mysin(a) / SANKAKU, chara_state0);
 	}
     }
     TFoff();
+*/
 }
--- a/src/texture.h	Thu May 20 19:51:03 2010 +0900
+++ b/src/texture.h	Tue Dec 07 18:37:43 2010 +0900
@@ -3,4 +3,3 @@
 GLfloat texMaxY[250] = {0};
 GLfloat texMinX[250] = {0};
 GLfloat texMinY[250] = {0};
-
--- a/src/tokuten.cc	Thu May 20 19:51:03 2010 +0900
+++ b/src/tokuten.cc	Tue Dec 07 18:37:43 2010 +0900
@@ -5,7 +5,7 @@
 #include "bool.h"
 //#include "libps.h"
 #include "sgoex.h"
-#include "count2.h"
+#include "count.h"
 #include "SDL_opengl.h"
 int enemycount = 0;
 int higecount = 0;
@@ -23,7 +23,8 @@
 /*¥¨¥¯¥¹¥Æ¥ó¥É*/
 int p_extend = 200000;
 
-void tokuten()
+void
+tokuten(Viewer *sgroot, SceneGraphPtr root)
 {
     int i;
 
@@ -38,18 +39,18 @@
 
 		//score
 	count++;
-	PutSprite(count, 32*(i+32)-800, 20, 20 + ten1);
+	PutSprite(sgroot, root, 32*(i+32)-800, 20, 20 + ten1);
 	count++;
-	PutSprite(count, 728 + 32 * i, 20, 20 + ten3);
+	PutSprite(sgroot, root, 728 + 32 * i, 20, 20 + ten3);
 
 	ten2 -= ten1 * keta;
 	ten4 -= ten3 * keta;
 	keta /= 10;
     }
     count++;
-    PutSprite(count, 90, 20, 18); //1P
+    PutSprite(sgroot, root, 90, 20, 18); //1P
     count++;
-    PutSprite(count, 600, 20, 38);// HIGE
+    PutSprite(sgroot, root, 600, 20, 38);// HIGE
 
     if (enemycount >= p_extend) {
 	if (p_extend == 1000000) {
@@ -63,24 +64,24 @@
     }
 }
 
-void Endingscore(int fc)
+void Endingscore(Viewer *sgroot, SceneGraphPtr root, int fc)
 {
     int i, a, b;
     /*all stage clear */
     if (fc < 600) {
 	count++;
-	PutSprite(count, 600, 100, 111);
+	PutSprite(sgroot, root, 600, 100, 111);
     }
     /*rest */
     if (fc > 120 && fc < 600 && jiki.ccount > 2) {
 	a = jiki.zanki - 1;
 	if (a != 0) {
 	    count++;
-	    PutSprite(count, 600, 160, 112); //REST
+	    PutSprite(sgroot, root, 600, 160, 112); //REST
 	    count++;
-	    PutSprite(count, 800, 160, 20 + a); 
+	    PutSprite(sgroot, root, 800, 160, 20 + a); 
 	    count++;
-	    PutSprite(count, 832, 160, 115);//0000000
+	    PutSprite(sgroot, root, 832, 160, 115);//0000000
 	}
     }
     /*result stage */
@@ -88,27 +89,27 @@
 	if (fc > 200 + i * 60 && fc < 600 && jiki.ccount > 2) {
 	    a = clear_result[i];
 	    count++;
-	    PutSprite(count, 400, 212 + i * 48, 113);	/*stage */
-			//	    PutSprite(count, 64, 112 + i * 24, 113);	/*stage */
+	    PutSprite(sgroot, root, 400, 212 + i * 48, 113);	/*stage */
+			//	    PutSprite(sgroot, root, 64, 112 + i * 24, 113);	/*stage */
 			count++;
-			PutSprite(count, 300 + 40, 212 + i * 48, 21 + i);	/*1kara4 */
-			//	    PutSprite(count, 64 + 40, 112 + i * 24, 21 + i);	/*1kara4 */
+			PutSprite(sgroot, root, 300 + 40, 212 + i * 48, 21 + i);	/*1kara4 */
+			//	    PutSprite(sgroot, root, 64 + 40, 112 + i * 24, 21 + i);	/*1kara4 */
 
 	    count++;
-			PutSprite(count, 800, 220 + i * 48, 200 + a);
-			//	    PutSprite(count, 400, 120 + i * 24, 200 + a);
+			PutSprite(sgroot, root, 800, 220 + i * 48, 200 + a);
+			//	    PutSprite(sgroot, root, 400, 120 + i * 24, 200 + a);
 
 	    b = a * (i + 1);
 	    count++;
-			PutSprite(count, 800, 220 + i * 48, 20 + b / 10);
-			//	    PutSprite(count, 500, 120 + i * 24, 20 + b / 10);
+			PutSprite(sgroot, root, 800, 220 + i * 48, 20 + b / 10);
+			//	    PutSprite(sgroot, root, 500, 120 + i * 24, 20 + b / 10);
 	    count++;
-			PutSprite(count, 800, 220 + i * 48, 20 + b % 10);
-			//	    PutSprite(count, 600, 120 + i * 24, 20 + b % 10);
+			PutSprite(sgroot, root, 800, 220 + i * 48, 20 + b % 10);
+			//	    PutSprite(sgroot, root, 600, 120 + i * 24, 20 + b % 10);
 
 	    count++;
-			PutSprite(count, 832, 220 + i * 48, 114); // 000000
-			//	    PutSprite(count, 600, 120 + i * 24, 114);
+			PutSprite(sgroot, root, 832, 220 + i * 48, 114); // 000000
+			//	    PutSprite(sgroot, root, 600, 120 + i * 24, 114);
 	}
     }
     if (fc == 560 && jiki.ccount > 2) {
@@ -138,23 +139,23 @@
 
 	if (fc > 720 && fc < 840) {
 	    count++;
-	    PutSprite(count, 800, 400, 116);
+	    PutSprite(sgroot, root, 800, 400, 116);
 	}
 
 	if (fc > 960) {
 	    count++;
-	    PutSprite(count, 1000, 800, 117); //	    PutSprite(count, 128, 72, 117);
+	    PutSprite(sgroot, root, 1000, 800, 117); //	    PutSprite(sgroot, root, 128, 72, 117);
 	    count++;
-	    PutSprite(count, 1000, 840, 118); //	    PutSprite(count, 128, 88, 118);
+	    PutSprite(sgroot, root, 1000, 840, 118); //	    PutSprite(sgroot, root, 128, 88, 118);
 	    count++;
-	    PutSprite(count, 1000, 880, 120); // 	    PutSprite(count, 128, 104, 120);
+	    PutSprite(sgroot, root, 1000, 880, 120); // 	    PutSprite(sgroot, root, 128, 104, 120);
 	}
 
 	count++;
-	//	PutSprite(count, end_jiki_x / 4096, end_jiki_y / 4096, 3);
+	//	PutSprite(sgroot, root, end_jiki_x / 4096, end_jiki_y / 4096, 3);
 	PutSpriteEx(3, end_jiki_x, end_jiki_y, end_jiki_size, end_jiki_size, 1);
 	count++;
-	//	PutSprite(count, 160 - 30, 64, 195);
+	//	PutSprite(sgroot, root, 160 - 30, 64, 195);
 	PutSpriteEx(195, 180, 200, 2 - end_jiki_size, 2 - end_jiki_size, 1);
     }
 }
--- a/src/tokuten.h	Thu May 20 19:51:03 2010 +0900
+++ b/src/tokuten.h	Tue Dec 07 18:37:43 2010 +0900
@@ -1,13 +1,14 @@
 #ifndef _TOKUTEN_H_
 #define _TOKUTEN_H_
 
-extern int enemycount;
+#include "viewer.h"
+#include "SceneGraph.h"
 
-extern void tokuten();
-extern void Endingscore(int fc);
-
+extern int enemycount;
 extern int p_extend;
-
 extern int clear_result[4];
 
+extern void tokuten(Viewer *sgroot, SceneGraphPtr root);
+extern void Endingscore(Viewer *sgroot, SceneGraphPtr root, int fc);
+
 #endif				//_TOKUTEN_H_
--- a/src/tree_controll.h	Thu May 20 19:51:03 2010 +0900
+++ b/src/tree_controll.h	Tue Dec 07 18:37:43 2010 +0900
@@ -5,4 +5,4 @@
 SURFACE *next_node(SURFACE *surfaces);
 //void node_draw(OBJECT *top, char *name);
 void node_prameter_change(OBJECT *top, char *name, float x, float y, float z, float ax, float ay, float az);
-//void all_object_load_texture(OBJECT *top);
+void all_object_load_texture(OBJECT *top);
--- a/xml/boss.xml	Thu May 20 19:51:03 2010 +0900
+++ b/xml/boss.xml	Tue Dec 07 18:37:43 2010 +0900
@@ -2,31 +2,31 @@
 <OBJECT-3D>
 	<surface name="blackhole" size="6" prim="Triangle" parent="NULL">
 		<coordinate>
-			8.595253, 83.128859, 0.000000
-			-7.404744, 83.128862, 0.000000
-			-7.404748, 67.128861, 0.000000
-			-7.404748, 67.128861, 0.000000
-			8.595253, 67.128860, 0.000000
-			8.595253, 83.128859, 0.000000
+			8.595253 83.128859 0.000000
+			-7.404744 83.128862 0.000000
+			-7.404748 67.128861 0.000000
+			-7.404748 67.128861 0.000000
+			8.595253 67.128860 0.000000
+			8.595253 83.128859 0.000000
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			0.595254, 75.128860, 0.000000
+			0.595254 75.128860 0.000000
 		</model>
 		<texture>
-			1.000000, 1.000000
-			0.000000, 1.000000
-			0.000000, 0.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
 		</texture>
 		<image name="blackhole.bmp">
 			Qk04wAAAAAAAADYAAAAoAAAAgAAAAIAAAAABABgAAAAAAALAAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -897,31 +897,31 @@
 	</surface>
 	<surface name="boss2_body" size="6" prim="Triangle" parent="blackhole">
 		<coordinate>
-			69.538410, 63.161297, 0.000000
-			5.538425, 63.161312, 0.000000
-			5.538410, -0.838696, 0.000000
-			5.538410, -0.838696, 0.000000
-			69.538410, -0.838699, 0.000000
-			69.538410, 63.161297, 0.000000
+			69.538410 63.161297 0.000000
+			5.538425 63.161312 0.000000
+			5.538410 -0.838696 0.000000
+			5.538410 -0.838696 0.000000
+			69.538410 -0.838699 0.000000
+			69.538410 63.161297 0.000000
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			37.538410, 31.161304, 0.000000
+			37.538410 31.161304 0.000000
 		</model>
 		<texture>
-			1.000000, 1.000000
-			0.000000, 1.000000
-			0.000000, 0.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
 		</texture>
 		<image name="boss2_body.bmp">
 			Qk04AAwAAAAAADYAAAAoAAAAAAIAAAACAAABABgAAAAAAAIADADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -14727,31 +14727,31 @@
 	</surface>
 	<surface name="boss2_lefthand" size="6" prim="Triangle" parent="boss2_body">
 		<coordinate>
-			57.626900, -13.349754, 0.000000
-			49.626904, -13.349754, 0.000000
-			49.626900, -21.349754, 0.000000
-			49.626900, -21.349754, 0.000000
-			57.626900, -21.349754, 0.000000
-			57.626900, -13.349754, 0.000000
+			57.626900 -13.349754 0.000000
+			49.626904 -13.349754 0.000000
+			49.626900 -21.349754 0.000000
+			49.626900 -21.349754 0.000000
+			57.626900 -21.349754 0.000000
+			57.626900 -13.349754 0.000000
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			53.626900, -17.349754, 0.000000
+			53.626900 -17.349754 0.000000
 		</model>
 		<texture>
-			1.000000, 1.000000
-			0.000000, 1.000000
-			0.000000, 0.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
 		</texture>
 		<image name="boss2_lefthand.bmp">
 			Qk04MAAAAAAAADYAAAAoAAAAQAAAAEAAAAABABgAAAAAAAIwAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -14975,31 +14975,31 @@
 	</surface>
 	<surface name="boss2_rightshoulder" size="6" prim="Triangle" parent="boss2_lefthand">
 		<coordinate>
-			52.543550, -29.672161, 0.000000
-			20.543556, -29.672153, 0.000000
-			20.543547, -61.672157, 0.000000
-			20.543547, -61.672157, 0.000000
-			52.543550, -61.672161, 0.000000
-			52.543550, -29.672161, 0.000000
+			52.543550 -29.672161 0.000000
+			20.543556 -29.672153 0.000000
+			20.543547 -61.672157 0.000000
+			20.543547 -61.672157 0.000000
+			52.543550 -61.672161 0.000000
+			52.543550 -29.672161 0.000000
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			36.543549, -45.672157, 0.000000
+			36.543549 -45.672157 0.000000
 		</model>
 		<texture>
-			1.000000, 1.000000
-			0.000000, 1.000000
-			0.000000, 0.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
 		</texture>
 		<image name="boss2_rightshoulder.b">
 			Qk04AAMAAAAAADYAAAAoAAAAAAEAAAABAAABABgAAAAAAAIAAwDDDgAAww4AAAAAAAAAAAAAAAAA
@@ -18457,31 +18457,31 @@
 	</surface>
 	<surface name="boss2_left_s_gird" size="6" prim="Triangle" parent="boss2_lefthand">
 		<coordinate>
-			88.058945, -29.222595, 0.000000
-			56.058960, -29.222588, 0.000000
-			56.058945, -61.222591, 0.000000
-			56.058945, -61.222591, 0.000000
-			88.058945, -61.222591, 0.000000
-			88.058945, -29.222595, 0.000000
+			88.058945 -29.222595 0.000000
+			56.058960 -29.222588 0.000000
+			56.058945 -61.222591 0.000000
+			56.058945 -61.222591 0.000000
+			88.058945 -61.222591 0.000000
+			88.058945 -29.222595 0.000000
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			72.058945, -45.222591, 0.000000
+			72.058945 -45.222591 0.000000
 		</model>
 		<texture>
-			1.000000, 1.000000
-			0.000000, 1.000000
-			0.000000, 0.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
 		</texture>
 		<image name="boss2_leftsholdergird">
 			Qk04AAMAAAAAADYAAAAoAAAAAAEAAAABAAABABgAAAAAAAIAAwDDDgAAww4AAAAAAAAAAAAAAAAA
@@ -21939,31 +21939,31 @@
 	</surface>
 	<surface name="boss2_r_shoulderup" size="6" prim="Triangle" parent="boss2_left_s_gird">
 		<coordinate>
-			90.756302, -67.792803, 0.000000
-			58.756306, -67.792799, 0.000000
-			58.756298, -83.792801, 0.000000
-			58.756298, -83.792801, 0.000000
-			90.756302, -83.792803, 0.000000
-			90.756302, -67.792803, 0.000000
+			90.756302 -67.792803 0.000000
+			58.756306 -67.792799 0.000000
+			58.756298 -83.792801 0.000000
+			58.756298 -83.792801 0.000000
+			90.756302 -83.792803 0.000000
+			90.756302 -67.792803 0.000000
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			74.756302, -75.792801, 0.000000
+			74.756302 -75.792801 0.000000
 		</model>
 		<texture>
-			0.999771, 1.002503
-			0.000229, 1.002503
-			0.000229, -0.002503
-			0.000229, -0.002503
-			0.999771, -0.002503
-			0.999771, 1.002503
+			0.999771 1.002503
+			0.000229 1.002503
+			0.000229 -0.002503
+			0.000229 -0.002503
+			0.999771 -0.002503
+			0.999771 1.002503
 		</texture>
 		<image name="boss2_rightsoulderup.">
 			Qk04gAEAAAAAADYAAAAoAAAAAAEAAIAAAAABABgAAAAAAAKAAQDDDgAAww4AAAAAAAAAAAAAAAAA
@@ -23696,31 +23696,31 @@
 	</surface>
 	<surface name="boss2_leftarmbattery" size="6" prim="Triangle" parent="boss2_body">
 		<coordinate>
-			24.359322, -13.349751, 0.000000
-			16.359324, -13.349750, 0.000000
-			16.359322, -21.349750, 0.000000
-			16.359322, -21.349750, 0.000000
-			24.359322, -21.349751, 0.000000
-			24.359322, -13.349751, 0.000000
+			24.359322 -13.349751 0.000000
+			16.359324 -13.349750 0.000000
+			16.359322 -21.349750 0.000000
+			16.359322 -21.349750 0.000000
+			24.359322 -21.349751 0.000000
+			24.359322 -13.349751 0.000000
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			20.359322, -17.349751, 0.000000
+			20.359322 -17.349751 0.000000
 		</model>
 		<texture>
-			1.000000, 1.000000
-			0.000000, 1.000000
-			0.000000, 0.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
 		</texture>
 		<image name="boss2_leftarmbattery">
 			Qk04MAAAAAAAADYAAAAoAAAAQAAAAEAAAAABABgAAAAAAAIwAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -23944,31 +23944,31 @@
 	</surface>
 	<surface name="boss_corpse" size="6" prim="Triangle" parent="boss2_leftarmbattery">
 		<coordinate>
-			16.716768, -30.571281, 0.000000
-			8.716770, -30.571274, 0.000000
-			8.716766, -62.571278, 0.000000
-			8.716766, -62.571278, 0.000000
-			16.716768, -62.571281, 0.000000
-			16.716768, -30.571281, 0.000000
+			16.716768 -30.571281 0.000000
+			8.716770 -30.571274 0.000000
+			8.716766 -62.571278 0.000000
+			8.716766 -62.571278 0.000000
+			16.716768 -62.571281 0.000000
+			16.716768 -30.571281 0.000000
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			12.716766, -46.571278, 0.000000
+			12.716766 -46.571278 0.000000
 		</model>
 		<texture>
-			1.005023, 0.975803
-			-0.005023, 0.975803
-			-0.005023, 0.024197
-			-0.005023, 0.024197
-			1.005023, 0.024197
-			1.005023, 0.975803
+			1.005023 0.975803
+			-0.005023 0.975803
+			-0.005023 0.024197
+			-0.005023 0.024197
+			1.005023 0.024197
+			1.005023 0.975803
 		</texture>
 		<image name="boss_corpse.bmp">
 			Qk04wAAAAAAAADYAAAAoAAAAQAAAAAABAAABABgAAAAAAALAAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -24839,31 +24839,31 @@
 	</surface>
 	<surface name="boss1_organ" size="6" prim="Triangle" parent="blackhole">
 		<coordinate>
-			-10.136494, 63.551567, 0.000000
-			-26.136490, 63.551575, 0.000000
-			-26.136494, 31.551571, 0.000000
-			-26.136494, 31.551571, 0.000000
-			-10.136494, 31.551567, 0.000000
-			-10.136494, 63.551567, 0.000000
+			-10.136494 63.551567 0.000000
+			-26.136490 63.551575 0.000000
+			-26.136494 31.551571 0.000000
+			-26.136494 31.551571 0.000000
+			-10.136494 31.551567 0.000000
+			-10.136494 63.551567 0.000000
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-18.136494, 47.551571, 0.000000
+			-18.136494 47.551571 0.000000
 		</model>
 		<texture>
-			0.998298, 0.981678
-			0.001702, 0.981678
-			0.001702, 0.018322
-			0.001702, 0.018322
-			0.998298, 0.018322
-			0.998298, 0.981678
+			0.998298 0.981678
+			0.001702 0.981678
+			0.001702 0.018322
+			0.001702 0.018322
+			0.998298 0.018322
+			0.998298 0.981678
 		</texture>
 		<image name="boss1_organ.bmp">
 			Qk04gAEAAAAAADYAAAAoAAAAgAAAAAABAAABABgAAAAAAAKAAQDEDgAAxA4AAAAAAAAAAAAAAAAA
@@ -26596,31 +26596,31 @@
 	</surface>
 	<surface name="boss_4" size="6" prim="Triangle" parent="boss1_organ">
 		<coordinate>
-			-32.055252, 30.250692, 0.000000
-			-64.055252, 30.250697, 0.000000
-			-64.055252, -1.749307, 0.000000
-			-64.055252, -1.749307, 0.000000
-			-32.055252, -1.749310, 0.000000
-			-32.055252, 30.250692, 0.000000
+			-32.055252 30.250692 0.000000
+			-64.055252 30.250697 0.000000
+			-64.055252 -1.749307 0.000000
+			-64.055252 -1.749307 0.000000
+			-32.055252 -1.749310 0.000000
+			-32.055252 30.250692 0.000000
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-48.055252, 14.250693, 0.000000
+			-48.055252 14.250693 0.000000
 		</model>
 		<texture>
-			1.000000, 1.000000
-			0.000000, 1.000000
-			0.000000, 0.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
 		</texture>
 		<image name="boss_4.bmp">
 			Qk04AAMAAAAAADYAAAAoAAAAAAEAAAABAAABABgAAAAAAAIAAwDEDgAAxA4AAAAAAAAAAAAAAAAA
@@ -30078,31 +30078,31 @@
 	</surface>
 	<surface name="boss2_brokenhatch" size="6" prim="Triangle" parent="boss_4">
 		<coordinate>
-			-31.432419, -13.349755, 0.000000
-			-47.432419, -13.349754, 0.000000
-			-47.432419, -21.349754, 0.000000
-			-47.432419, -21.349754, 0.000000
-			-31.432419, -21.349755, 0.000000
-			-31.432419, -13.349755, 0.000000
+			-31.432419 -13.349755 0.000000
+			-47.432419 -13.349754 0.000000
+			-47.432419 -21.349754 0.000000
+			-47.432419 -21.349754 0.000000
+			-31.432419 -21.349755 0.000000
+			-31.432419 -13.349755 0.000000
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-39.432419, -17.349754, 0.000000
+			-39.432419 -17.349754 0.000000
 		</model>
 		<texture>
-			1.002917, 0.986224
-			-0.002917, 0.986224
-			-0.002917, 0.013776
-			-0.002917, 0.013776
-			1.002917, 0.013776
-			1.002917, 0.986224
+			1.002917 0.986224
+			-0.002917 0.986224
+			-0.002917 0.013776
+			-0.002917 0.013776
+			1.002917 0.013776
+			1.002917 0.986224
 		</texture>
 		<image name="boss2_brokenhatch.bmp">
 			Qk04YAAAAAAAADYAAAAoAAAAgAAAAEAAAAABABgAAAAAAAJgAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -30542,31 +30542,31 @@
 	</surface>
 	<surface name="boss2_righthand" size="6" prim="Triangle" parent="boss2_brokenhatch">
 		<coordinate>
-			-39.478469, -31.332234, 0.000000
-			-47.478468, -31.332232, 0.000000
-			-47.478470, -39.332233, 0.000000
-			-47.478470, -39.332233, 0.000000
-			-39.478469, -39.332234, 0.000000
-			-39.478469, -31.332234, 0.000000
+			-39.478469 -31.332234 0.000000
+			-47.478468 -31.332232 0.000000
+			-47.478470 -39.332233 0.000000
+			-47.478470 -39.332233 0.000000
+			-39.478469 -39.332234 0.000000
+			-39.478469 -31.332234 0.000000
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-43.478470, -35.332233, 0.000000
+			-43.478470 -35.332233 0.000000
 		</model>
 		<texture>
-			1.000000, 1.000000
-			0.000000, 1.000000
-			0.000000, 0.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
 		</texture>
 		<image name="boss2_righthand.bmp">
 			Qk04MAAAAAAAADYAAAAoAAAAQAAAAEAAAAABABgAAAAAAAIwAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -30790,31 +30790,31 @@
 	</surface>
 	<surface name="boss2_openbattery" size="6" prim="Triangle" parent="boss2_brokenhatch">
 		<coordinate>
-			-18.395111, -58.755508, 0.000000
-			-34.395111, -58.755508, 0.000000
-			-34.395111, -66.755508, 0.000000
-			-34.395111, -66.755508, 0.000000
-			-18.395111, -66.755508, 0.000000
-			-18.395111, -58.755508, 0.000000
+			-18.395111 -58.755508 0.000000
+			-34.395111 -58.755508 0.000000
+			-34.395111 -66.755508 0.000000
+			-34.395111 -66.755508 0.000000
+			-18.395111 -66.755508 0.000000
+			-18.395111 -58.755508 0.000000
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-26.395111, -62.755508, 0.000000
+			-26.395111 -62.755508 0.000000
 		</model>
 		<texture>
-			0.999773, 0.997958
-			0.000227, 0.997958
-			0.000227, 0.002042
-			0.000227, 0.002042
-			0.999773, 0.002042
-			0.999773, 0.997958
+			0.999773 0.997958
+			0.000227 0.997958
+			0.000227 0.002042
+			0.000227 0.002042
+			0.999773 0.002042
+			0.999773 0.997958
 		</texture>
 		<image name="boss2_openbattery.bmp">
 			Qk04YAAAAAAAADYAAAAoAAAAgAAAAEAAAAABABgAAAAAAAJgAADDDgAAww4AAAAAAAAAAAAAAEBA
@@ -31254,31 +31254,31 @@
 	</surface>
 	<surface name="boss2_battery" size="6" prim="Triangle" parent="boss_4">
 		<coordinate>
-			-56.158318, -13.349755, 0.000000
-			-72.158318, -13.349754, 0.000000
-			-72.158318, -21.349754, 0.000000
-			-72.158318, -21.349754, 0.000000
-			-56.158318, -21.349755, 0.000000
-			-56.158318, -13.349755, 0.000000
+			-56.158318 -13.349755 0.000000
+			-72.158318 -13.349754 0.000000
+			-72.158318 -21.349754 0.000000
+			-72.158318 -21.349754 0.000000
+			-56.158318 -21.349755 0.000000
+			-56.158318 -13.349755 0.000000
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-64.158318, -17.349754, 0.000000
+			-64.158318 -17.349754 0.000000
 		</model>
 		<texture>
-			1.003654, 1.007062
-			-0.003654, 1.007062
-			-0.003654, -0.007062
-			-0.003654, -0.007062
-			1.003654, -0.007062
-			1.003654, 1.007062
+			1.003654 1.007062
+			-0.003654 1.007062
+			-0.003654 -0.007062
+			-0.003654 -0.007062
+			1.003654 -0.007062
+			1.003654 1.007062
 		</texture>
 		<image name="boss2_battery.bmp">
 			Qk04YAAAAAAAADYAAAAoAAAAgAAAAEAAAAABABgAAAAAAAJgAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -31718,31 +31718,31 @@
 	</surface>
 	<surface name="boss2_rightarm_b" size="6" prim="Triangle" parent="boss2_battery">
 		<coordinate>
-			-51.616638, -31.332233, 0.000000
-			-59.616638, -31.332233, 0.000000
-			-59.616638, -39.332233, 0.000000
-			-59.616638, -39.332233, 0.000000
-			-51.616638, -39.332233, 0.000000
-			-51.616638, -31.332233, 0.000000
+			-51.616638 -31.332233 0.000000
+			-59.616638 -31.332233 0.000000
+			-59.616638 -39.332233 0.000000
+			-59.616638 -39.332233 0.000000
+			-51.616638 -39.332233 0.000000
+			-51.616638 -31.332233 0.000000
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-55.616638, -35.332233, 0.000000
+			-55.616638 -35.332233 0.000000
 		</model>
 		<texture>
-			1.000000, 1.000000
-			0.000000, 1.000000
-			0.000000, 0.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
 		</texture>
 		<image name="boss2_rightarm_b">
 			Qk04MAAAAAAAADYAAAAoAAAAQAAAAEAAAAABABgAAAAAAAIwAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -31966,31 +31966,31 @@
 	</surface>
 	<surface name="boss2_leftpalm" size="6" prim="Triangle" parent="boss2_battery">
 		<coordinate>
-			-72.296493, -31.781792, 0.000000
-			-80.296492, -31.781791, 0.000000
-			-80.296494, -39.781791, 0.000000
-			-80.296494, -39.781791, 0.000000
-			-72.296493, -39.781793, 0.000000
-			-72.296493, -31.781792, 0.000000
+			-72.296493 -31.781792 0.000000
+			-80.296492 -31.781791 0.000000
+			-80.296494 -39.781791 0.000000
+			-80.296494 -39.781791 0.000000
+			-72.296493 -39.781793 0.000000
+			-72.296493 -31.781792 0.000000
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-76.296494, -35.781792, 0.000000
+			-76.296494 -35.781792 0.000000
 		</model>
 		<texture>
-			1.000000, 1.000000
-			0.000000, 1.000000
-			0.000000, 0.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
 		</texture>
 		<image name="boss2_leftpalm.bmp">
 			Qk04MAAAAAAAADYAAAAoAAAAQAAAAEAAAAABABgAAAAAAAIwAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -32214,31 +32214,31 @@
 	</surface>
 	<surface name="boss2_left_s_up" size="6" prim="Triangle" parent="boss2_leftpalm">
 		<coordinate>
-			-39.167068, -55.205070, 0.000000
-			-71.167068, -55.205063, 0.000000
-			-71.167068, -71.205070, 0.000000
-			-71.167068, -71.205070, 0.000000
-			-39.167068, -71.205070, 0.000000
-			-39.167068, -55.205070, 0.000000
+			-39.167068 -55.205070 0.000000
+			-71.167068 -55.205063 0.000000
+			-71.167068 -71.205070 0.000000
+			-71.167068 -71.205070 0.000000
+			-39.167068 -71.205070 0.000000
+			-39.167068 -55.205070 0.000000
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-55.167068, -63.205067, 0.000000
+			-55.167068 -63.205067 0.000000
 		</model>
 		<texture>
-			1.000591, 1.009831
-			-0.000591, 1.009831
-			-0.000591, -0.009831
-			-0.000591, -0.009831
-			1.000591, -0.009831
-			1.000591, 1.009831
+			1.000591 1.009831
+			-0.000591 1.009831
+			-0.000591 -0.009831
+			-0.000591 -0.009831
+			1.000591 -0.009831
+			1.000591 1.009831
 		</texture>
 		<image name="boss2_leftsoulderup.b">
 			Qk04gAEAAAAAADYAAAAoAAAAAAEAAIAAAAABABgAAAAAAAKAAQDDDgAAww4AAAAAAAAAAAAAAAAA
@@ -33971,31 +33971,31 @@
 	</surface>
 	<surface name="boss2_leftshoulder" size="6" prim="Triangle" parent="boss2_leftpalm">
 		<coordinate>
-			-73.783340, -48.553757, 0.000000
-			-105.783340, -48.553749, 0.000000
-			-105.783340, -80.553753, 0.000000
-			-105.783340, -80.553753, 0.000000
-			-73.783340, -80.553753, 0.000000
-			-73.783340, -48.553757, 0.000000
+			-73.783340 -48.553757 0.000000
+			-105.783340 -48.553749 0.000000
+			-105.783340 -80.553753 0.000000
+			-105.783340 -80.553753 0.000000
+			-73.783340 -80.553753 0.000000
+			-73.783340 -48.553757 0.000000
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-89.783340, -64.553749, 0.000000
+			-89.783340 -64.553749 0.000000
 		</model>
 		<texture>
-			1.000000, 1.000000
-			0.000000, 1.000000
-			0.000000, 0.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
 		</texture>
 		<image name="boss2_leftshoulder.bm">
 			Qk04AAMAAAAAADYAAAAoAAAAAAEAAAABAAABABgAAAAAAAIAAwDDDgAAww4AAAAAAAAAAAAAAAAA
@@ -37453,31 +37453,31 @@
 	</surface>
 	<surface name="boss3_body" size="6" prim="Triangle" parent="boss1_organ">
 		<coordinate>
-			3.587097, 30.250693, 0.000000
-			-28.412910, 30.250700, 0.000000
-			-28.412910, -1.749308, 0.000000
-			-28.412910, -1.749308, 0.000000
-			3.587097, -1.749308, 0.000000
-			3.587097, 30.250693, 0.000000
+			3.587097 30.250693 0.000000
+			-28.412910 30.250700 0.000000
+			-28.412910 -1.749308 0.000000
+			-28.412910 -1.749308 0.000000
+			3.587097 -1.749308 0.000000
+			3.587097 30.250693 0.000000
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-12.412910, 14.250696, 0.000000
+			-12.412910 14.250696 0.000000
 		</model>
 		<texture>
-			1.000000, 1.000000
-			0.000000, 1.000000
-			0.000000, 0.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
 		</texture>
 		<image name="boss3_body.bmp">
 			Qk04AAMAAAAAADYAAAAoAAAAAAEAAAABAAABABgAAAAAAAIAAwDEDgAAxA4AAAAAAAAAAAAAAAAA
@@ -40935,31 +40935,31 @@
 	</surface>
 	<surface name="boss2_leftarm" size="6" prim="Triangle" parent="boss3_body">
 		<coordinate>
-			6.780350, -5.845379, 0.000000
-			-9.219647, -5.845373, 0.000000
-			-9.219651, -37.845375, 0.000000
-			-9.219651, -37.845375, 0.000000
-			6.780350, -37.845377, 0.000000
-			6.780350, -5.845379, 0.000000
+			6.780350 -5.845379 0.000000
+			-9.219647 -5.845373 0.000000
+			-9.219651 -37.845375 0.000000
+			-9.219651 -37.845375 0.000000
+			6.780350 -37.845377 0.000000
+			6.780350 -5.845379 0.000000
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-1.219650, -21.845375, 0.000000
+			-1.219650 -21.845375 0.000000
 		</model>
 		<texture>
-			0.993386, 0.974990
-			0.006614, 0.974990
-			0.006614, 0.025010
-			0.006614, 0.025010
-			0.993386, 0.025010
-			0.993386, 0.974990
+			0.993386 0.974990
+			0.006614 0.974990
+			0.006614 0.025010
+			0.006614 0.025010
+			0.993386 0.025010
+			0.993386 0.974990
 		</texture>
 		<image name="boss2_leftarm.bmp">
 			Qk04gAEAAAAAADYAAAAoAAAAgAAAAAABAAABABgAAAAAAAKAAQDDDgAAww4AAAAAAAAAAAAAAAAA
@@ -42692,31 +42692,31 @@
 	</surface>
 	<surface name="boss2_dummy" size="6" prim="Triangle" parent="boss3_body">
 		<coordinate>
-			-12.550812, -13.349755, 0.000000
-			-28.550808, -13.349753, 0.000000
-			-28.550813, -21.349753, 0.000000
-			-28.550813, -21.349753, 0.000000
-			-12.550812, -21.349755, 0.000000
-			-12.550812, -13.349755, 0.000000
+			-12.550812 -13.349755 0.000000
+			-28.550808 -13.349753 0.000000
+			-28.550813 -21.349753 0.000000
+			-28.550813 -21.349753 0.000000
+			-12.550812 -21.349755 0.000000
+			-12.550812 -13.349755 0.000000
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-20.550812, -17.349754, 0.000000
+			-20.550812 -17.349754 0.000000
 		</model>
 		<texture>
-			0.991994, 1.002459
-			0.008006, 1.002459
-			0.008006, -0.002459
-			0.008006, -0.002459
-			0.991994, -0.002459
-			0.991994, 1.002459
+			0.991994 1.002459
+			0.008006 1.002459
+			0.008006 -0.002459
+			0.008006 -0.002459
+			0.991994 -0.002459
+			0.991994 1.002459
 		</texture>
 		<image name="boss2_dummy.bmp">
 			Qk04YAAAAAAAADYAAAAoAAAAgAAAAEAAAAABABgAAAAAAAJgAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -43156,31 +43156,31 @@
 	</surface>
 	<surface name="boss2_rightpalm" size="6" prim="Triangle" parent="boss2_dummy">
 		<coordinate>
-			-21.945549, -30.882676, 0.000000
-			-29.945548, -30.882674, 0.000000
-			-29.945550, -38.882675, 0.000000
-			-29.945550, -38.882675, 0.000000
-			-21.945549, -38.882676, 0.000000
-			-21.945549, -30.882676, 0.000000
+			-21.945549 -30.882676 0.000000
+			-29.945548 -30.882674 0.000000
+			-29.945550 -38.882675 0.000000
+			-29.945550 -38.882675 0.000000
+			-21.945549 -38.882676 0.000000
+			-21.945549 -30.882676 0.000000
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-25.945549, -34.882675, 0.000000
+			-25.945549 -34.882675 0.000000
 		</model>
 		<texture>
-			1.000000, 1.000000
-			0.000000, 1.000000
-			0.000000, 0.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
 		</texture>
 		<image name="boss2_rightpalm.bmp">
 			Qk04MAAAAAAAADYAAAAoAAAAQAAAAEAAAAABABgAAAAAAAIwAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -43404,31 +43404,31 @@
 	</surface>
 	<surface name="boss2_rightarm" size="6" prim="Triangle" parent="boss2_dummy">
 		<coordinate>
-			4.982109, -47.205074, 0.000000
-			-11.017891, -47.205067, 0.000000
-			-11.017891, -79.205070, 0.000000
-			-11.017891, -79.205070, 0.000000
-			4.982109, -79.205070, 0.000000
-			4.982109, -47.205074, 0.000000
+			4.982109 -47.205074 0.000000
+			-11.017891 -47.205067 0.000000
+			-11.017891 -79.205070 0.000000
+			-11.017891 -79.205070 0.000000
+			4.982109 -79.205070 0.000000
+			4.982109 -47.205074 0.000000
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-3.017891, -63.205070, 0.000000
+			-3.017891 -63.205070 0.000000
 		</model>
 		<texture>
-			1.001172, 0.977004
-			-0.001172, 0.977004
-			-0.001172, 0.022996
-			-0.001172, 0.022996
-			1.001172, 0.022996
-			1.001172, 0.977004
+			1.001172 0.977004
+			-0.001172 0.977004
+			-0.001172 0.022996
+			-0.001172 0.022996
+			1.001172 0.022996
+			1.001172 0.977004
 		</texture>
 		<image name="boss2_rightarm.bmp">
 			Qk04gAEAAAAAADYAAAAoAAAAgAAAAAABAAABABgAAAAAAAKAAQDDDgAAww4AAAAAAAAAAAAAAAAA
--- a/xml/character.xml	Thu May 20 19:51:03 2010 +0900
+++ b/xml/character.xml	Tue Dec 07 18:37:43 2010 +0900
@@ -2,31 +2,31 @@
 <OBJECT-3D>
 	<surface name="player_idle" size="6" prim="Triangle" parent="NULL">
 		<coordinate>
-			-1.035807, 43.893311, 0.000000
-			-1.035810, 27.893313, 0.000000
-			14.964191, 27.893310, 0.000000
-			14.964191, 27.893310, 0.000000
-			14.964193, 43.893312, 0.000000
-			-1.035807, 43.893311, 0.000000
+			-1.035807 43.893311 0.000000
+			-1.035810 27.893313 0.000000
+			14.964191 27.893310 0.000000
+			14.964191 27.893310 0.000000
+			14.964193 43.893312 0.000000
+			-1.035807 43.893311 0.000000
 		</coordinate>
 		<normal>
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
 		</normal>
 		<model>
-			6.964191, 35.893311, 0.000000
+			6.964191 35.893311 0.000000
 		</model>
 		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="player_idle.bmp">
 			Qk04wAAAAAAAADYAAAAoAAAAgAAAAIAAAAABABgAAAAAAALAAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -897,31 +897,31 @@
 	</surface>
 	<surface name="player_rightmove" size="6" prim="Triangle" parent="player_idle">
 		<coordinate>
-			22.892752, 5.748067, 0.000000
-			22.892752, -10.251932, 0.000000
-			38.892752, -10.251932, 0.000000
-			38.892752, -10.251932, 0.000000
-			38.892752, 5.748068, 0.000000
-			22.892752, 5.748067, 0.000000
+			22.892752 5.748067 0.000000
+			22.892752 -10.251932 0.000000
+			38.892752 -10.251932 0.000000
+			38.892752 -10.251932 0.000000
+			38.892752 5.748068 0.000000
+			22.892752 5.748067 0.000000
 		</coordinate>
 		<normal>
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
 		</normal>
 		<model>
-			30.892752, -2.251932, 0.000000
+			30.892752 -2.251932 0.000000
 		</model>
 		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="player_rightmove.bmp">
 			Qk04wAAAAAAAADYAAAAoAAAAgAAAAIAAAAABABgAAAAAAALAAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -1792,31 +1792,31 @@
 	</surface>
 	<surface name="enemy_plane" size="6" prim="Triangle" parent="player_rightmove">
 		<coordinate>
-			14.619287, -18.047773, 0.000000
-			14.619287, -34.047773, 0.000000
-			30.619287, -34.047773, 0.000000
-			30.619287, -34.047773, 0.000000
-			30.619287, -18.047773, 0.000000
-			14.619287, -18.047773, 0.000000
+			14.619287 -18.047773 0.000000
+			14.619287 -34.047773 0.000000
+			30.619287 -34.047773 0.000000
+			30.619287 -34.047773 0.000000
+			30.619287 -18.047773 0.000000
+			14.619287 -18.047773 0.000000
 		</coordinate>
 		<normal>
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
 		</normal>
 		<model>
-			22.619287, -26.047773, 0.000000
+			22.619287 -26.047773 0.000000
 		</model>
 		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="enemy_plane.bmp">
 			Qk04wAAAAAAAADYAAAAoAAAAgAAAAIAAAAABABgAAAAAAALAAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -2687,31 +2687,31 @@
 	</surface>
 	<surface name="spacefish" size="6" prim="Triangle" parent="enemy_plane">
 		<coordinate>
-			27.739311, -43.382996, 0.000000
-			27.739311, -59.382996, 0.000000
-			43.739311, -59.382996, 0.000000
-			43.739311, -59.382996, 0.000000
-			43.739311, -43.382996, 0.000000
-			27.739311, -43.382996, 0.000000
+			27.739311 -43.382996 0.000000
+			27.739311 -59.382996 0.000000
+			43.739311 -59.382996 0.000000
+			43.739311 -59.382996 0.000000
+			43.739311 -43.382996 0.000000
+			27.739311 -43.382996 0.000000
 		</coordinate>
 		<normal>
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
 		</normal>
 		<model>
-			35.739311, -51.382996, 0.000000
+			35.739311 -51.382996 0.000000
 		</model>
 		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="spacefish.bmp">
 			Qk04wAAAAAAAADYAAAAoAAAAgAAAAIAAAAABABgAAAAAAALAAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -3582,31 +3582,31 @@
 	</surface>
 	<surface name="earth" size="6" prim="Triangle" parent="spacefish">
 		<coordinate>
-			50.955935, -71.123772, 0.000000
-			50.955929, -103.123766, 0.000000
-			82.955933, -103.123774, 0.000000
-			82.955933, -103.123774, 0.000000
-			82.955936, -71.123770, 0.000000
-			50.955935, -71.123772, 0.000000
+			50.955935 -71.123772 0.000000
+			50.955929 -103.123766 0.000000
+			82.955933 -103.123774 0.000000
+			82.955933 -103.123774 0.000000
+			82.955936 -71.123770 0.000000
+			50.955935 -71.123772 0.000000
 		</coordinate>
 		<normal>
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
 		</normal>
 		<model>
-			66.955933, -87.123772, 0.000000
+			66.955933 -87.123772 0.000000
 		</model>
 		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="earth.bmp">
 			Qk04AAMAAAAAADYAAAAoAAAAAAEAAAABAAABABgAAAAAAAIAAwASCwAAEgsAAAAAAAAAAAAAAAAA
@@ -7064,31 +7064,31 @@
 	</surface>
 	<surface name="purplecore" size="6" prim="Triangle" parent="enemy_plane">
 		<coordinate>
-			6.475819, -43.382988, 0.000000
-			6.475819, -59.382988, 0.000000
-			22.475819, -59.382988, 0.000000
-			22.475819, -59.382988, 0.000000
-			22.475819, -43.382988, 0.000000
-			6.475819, -43.382988, 0.000000
+			6.475819 -43.382988 0.000000
+			6.475819 -59.382988 0.000000
+			22.475819 -59.382988 0.000000
+			22.475819 -59.382988 0.000000
+			22.475819 -43.382988 0.000000
+			6.475819 -43.382988 0.000000
 		</coordinate>
 		<normal>
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
 		</normal>
 		<model>
-			14.475819, -51.382988, 0.000000
+			14.475819 -51.382988 0.000000
 		</model>
 		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="purplecore.bmp">
 			Qk04wAAAAAAAADYAAAAoAAAAgAAAAIAAAAABABgAAAAAAALAAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -7959,31 +7959,31 @@
 	</surface>
 	<surface name="meteo" size="6" prim="Triangle" parent="purplecore">
 		<coordinate>
-			13.714456, -75.052032, 0.000000
-			13.714453, -91.052030, 0.000000
-			29.714455, -91.052033, 0.000000
-			29.714455, -91.052033, 0.000000
-			29.714457, -75.052032, 0.000000
-			13.714456, -75.052032, 0.000000
+			13.714456 -75.052032 0.000000
+			13.714453 -91.052030 0.000000
+			29.714455 -91.052033 0.000000
+			29.714455 -91.052033 0.000000
+			29.714457 -75.052032 0.000000
+			13.714456 -75.052032 0.000000
 		</coordinate>
 		<normal>
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
 		</normal>
 		<model>
-			21.714455, -83.052032, 0.000000
+			21.714455 -83.052032 0.000000
 		</model>
 		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="meteo.bmp">
 			Qk04wAAAAAAAADYAAAAoAAAAgAAAAIAAAAABABgAAAAAAALAAADEDgAAxA4AAAAAAAAAAAAAAAAA
@@ -8854,31 +8854,31 @@
 	</surface>
 	<surface name="missile" size="6" prim="Triangle" parent="purplecore">
 		<coordinate>
-			-10.787680, -73.242371, 0.000000
-			-10.787680, -89.242371, 0.000000
-			-2.787680, -89.242371, 0.000000
-			-2.787680, -89.242371, 0.000000
-			-2.787680, -73.242371, 0.000000
-			-10.787680, -73.242371, 0.000000
+			-10.787680 -73.242371 0.000000
+			-10.787680 -89.242371 0.000000
+			-2.787680 -89.242371 0.000000
+			-2.787680 -89.242371 0.000000
+			-2.787680 -73.242371 0.000000
+			-10.787680 -73.242371 0.000000
 		</coordinate>
 		<normal>
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
 		</normal>
 		<model>
-			-6.787680, -81.242371, 0.000000
+			-6.787680 -81.242371 0.000000
 		</model>
 		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="missile.bmp">
 			Qk04YAAAAAAAADYAAAAoAAAAQAAAAIAAAAABABgAAAAAAAJgAADkDgAA5A4AAAAAAAAAAAAAAAAA
@@ -9318,31 +9318,31 @@
 	</surface>
 	<surface name="enemy_greenclab" size="6" prim="Triangle" parent="player_rightmove">
 		<coordinate>
-			50.812471, -18.952602, 0.000000
-			50.812468, -34.952600, 0.000000
-			66.812469, -34.952603, 0.000000
-			66.812469, -34.952603, 0.000000
-			66.812471, -18.952601, 0.000000
-			50.812471, -18.952602, 0.000000
+			50.812471 -18.952602 0.000000
+			50.812468 -34.952600 0.000000
+			66.812469 -34.952603 0.000000
+			66.812469 -34.952603 0.000000
+			66.812471 -18.952601 0.000000
+			50.812471 -18.952602 0.000000
 		</coordinate>
 		<normal>
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
 		</normal>
 		<model>
-			58.812469, -26.952602, 0.000000
+			58.812469 -26.952602 0.000000
 		</model>
 		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="enemy_greenclab.bmp">
 			Qk04wAAAAAAAADYAAAAoAAAAgAAAAIAAAAABABgAAAAAAALAAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -10213,31 +10213,31 @@
 	</surface>
 	<surface name="orbitmachine" size="6" prim="Triangle" parent="enemy_greenclab">
 		<coordinate>
-			71.551811, -46.478168, 0.000000
-			71.551809, -54.478169, 0.000000
-			79.551811, -54.478169, 0.000000
-			79.551811, -54.478169, 0.000000
-			79.551811, -46.478168, 0.000000
-			71.551811, -46.478168, 0.000000
+			71.551811 -46.478168 0.000000
+			71.551809 -54.478169 0.000000
+			79.551811 -54.478169 0.000000
+			79.551811 -54.478169 0.000000
+			79.551811 -46.478168 0.000000
+			71.551811 -46.478168 0.000000
 		</coordinate>
 		<normal>
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
 		</normal>
 		<model>
-			75.551811, -50.478168, 0.000000
+			75.551811 -50.478168 0.000000
 		</model>
 		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="orbitmachine.bmp">
 			Qk04MAAAAAAAADYAAAAoAAAAQAAAAEAAAAABABgAAAAAAAIwAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -10461,31 +10461,31 @@
 	</surface>
 	<surface name="gunbattery" size="6" prim="Triangle" parent="enemy_greenclab">
 		<coordinate>
-			48.097978, -49.264389, 0.000000
-			48.097975, -65.264386, 0.000000
-			64.097977, -65.264390, 0.000000
-			64.097977, -65.264390, 0.000000
-			64.097979, -49.264388, 0.000000
-			48.097978, -49.264389, 0.000000
+			48.097978 -49.264389 0.000000
+			48.097975 -65.264386 0.000000
+			64.097977 -65.264390 0.000000
+			64.097977 -65.264390 0.000000
+			64.097979 -49.264388 0.000000
+			48.097978 -49.264389 0.000000
 		</coordinate>
 		<normal>
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
 		</normal>
 		<model>
-			56.097977, -57.264389, 0.000000
+			56.097977 -57.264389 0.000000
 		</model>
 		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="gunbattery.bmp">
 			Qk04wAAAAAAAADYAAAAoAAAAgAAAAIAAAAABABgAAAAAAALAAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -11356,31 +11356,31 @@
 	</surface>
 	<surface name="player_leftmove" size="6" prim="Triangle" parent="player_idle">
 		<coordinate>
-			-28.381956, 17.948341, 0.000000
-			-28.381956, 1.948341, 0.000000
-			-12.381956, 1.948341, 0.000000
-			-12.381956, 1.948341, 0.000000
-			-12.381956, 17.948341, 0.000000
-			-28.381956, 17.948341, 0.000000
+			-28.381956 17.948341 0.000000
+			-28.381956 1.948341 0.000000
+			-12.381956 1.948341 0.000000
+			-12.381956 1.948341 0.000000
+			-12.381956 17.948341 0.000000
+			-28.381956 17.948341 0.000000
 		</coordinate>
 		<normal>
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
 		</normal>
 		<model>
-			-20.381956, 9.948341, 0.000000
+			-20.381956 9.948341 0.000000
 		</model>
 		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="player_leftmove.bmp">
 			Qk04wAAAAAAAADYAAAAoAAAAgAAAAIAAAAABABgAAAAAAALAAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -12251,31 +12251,31 @@
 	</surface>
 	<surface name="player_turntoright" size="6" prim="Triangle" parent="player_leftmove">
 		<coordinate>
-			-16.497769, -20.275295, 0.000000
-			-16.497772, -36.275292, 0.000000
-			-0.497770, -36.275296, 0.000000
-			-0.497770, -36.275296, 0.000000
-			-0.497768, -20.275294, 0.000000
-			-16.497769, -20.275295, 0.000000
+			-16.497769 -20.275295 0.000000
+			-16.497772 -36.275292 0.000000
+			-0.497770 -36.275296 0.000000
+			-0.497770 -36.275296 0.000000
+			-0.497768 -20.275294 0.000000
+			-16.497769 -20.275295 0.000000
 		</coordinate>
 		<normal>
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
 		</normal>
 		<model>
-			-8.497770, -28.275295, 0.000000
+			-8.497770 -28.275295 0.000000
 		</model>
 		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="player_turntoright.bm">
 			Qk04wAAAAAAAADYAAAAoAAAAgAAAAIAAAAABABgAAAAAAALAAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -13146,31 +13146,31 @@
 	</surface>
 	<surface name="player_turntoleft" size="6" prim="Triangle" parent="player_leftmove">
 		<coordinate>
-			-48.440493, -16.609734, 0.000000
-			-48.440496, -32.609731, 0.000000
-			-32.440495, -32.609735, 0.000000
-			-32.440495, -32.609735, 0.000000
-			-32.440493, -16.609733, 0.000000
-			-48.440493, -16.609734, 0.000000
+			-48.440493 -16.609734 0.000000
+			-48.440496 -32.609731 0.000000
+			-32.440495 -32.609735 0.000000
+			-32.440495 -32.609735 0.000000
+			-32.440493 -16.609733 0.000000
+			-48.440493 -16.609734 0.000000
 		</coordinate>
 		<normal>
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
-			0.000000, 0.000000, 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
+			0.000000 0.000000 1.000000
 		</normal>
 		<model>
-			-40.440495, -24.609734, 0.000000
+			-40.440495 -24.609734 0.000000
 		</model>
 		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="player_turntoleft.bmp">
 			Qk04wAAAAAAAADYAAAAoAAAAgAAAAIAAAAABABgAAAAAAALAAADDDgAAww4AAAAAAAAAAAAAAAAA
--- a/xml/effect.xml	Thu May 20 19:51:03 2010 +0900
+++ b/xml/effect.xml	Tue Dec 07 18:37:43 2010 +0900
@@ -2,31 +2,31 @@
 <OBJECT-3D>
 	<surface name="bulebarrier" size="6" prim="Triangle" parent="NULL">
 		<coordinate>
-			8.000000, 7.999999, 0.000000
-			-7.999997, 8.000002, 0.000000
-			-8.000002, -8.000000, 0.000000
-			-8.000002, -8.000000, 0.000000
-			8.000000, -8.000001, 0.000000
-			8.000000, 7.999999, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			0.000000, 0.000000, 0.000000
-		</model>
-		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			8.000000 7.999999 0.000000
+			-7.999997 8.000002 0.000000
+			-8.000002 -8.000000 0.000000
+			-8.000002 -8.000000 0.000000
+			8.000000 -8.000001 0.000000
+			8.000000 7.999999 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			0.000000 0.000000 0.000000
+		</model>
+		<texture>
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="bulebarrier.bmp.001">
 			Qk04wAAAAAAAADYAAAAoAAAAgAAAAIAAAAABABgAAAAAAALAAABbEAAAWxAAAAAAAAAAAAAAAAAA
@@ -897,31 +897,31 @@
 	</surface>
 	<surface name="bulebullet_left" size="6" prim="Triangle" parent="bulebarrier">
 		<coordinate>
-			-21.562885, -8.056257, 0.000000
-			-27.562885, -8.056257, 0.000000
-			-27.562885, -24.056257, 0.000000
-			-27.562885, -24.056257, 0.000000
-			-21.562885, -24.056257, 0.000000
-			-21.562885, -8.056257, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			-24.562885, -16.056257, 0.000000
-		</model>
-		<texture>
-			0.964126, 0.982399
-			0.080318, 0.982399
-			0.080318, 0.017601
-			0.080318, 0.017601
-			0.964126, 0.017601
-			0.964126, 0.982399
+			-21.562885 -8.056257 0.000000
+			-27.562885 -8.056257 0.000000
+			-27.562885 -24.056257 0.000000
+			-27.562885 -24.056257 0.000000
+			-21.562885 -24.056257 0.000000
+			-21.562885 -8.056257 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			-24.562885 -16.056257 0.000000
+		</model>
+		<texture>
+			0.964126 0.982399
+			0.080318 0.982399
+			0.080318 0.017601
+			0.080318 0.017601
+			0.964126 0.017601
+			0.964126 0.982399
 		</texture>
 		<image name="bulebullet_left.b">
 			Qk04RAAAAAAAADYAAAAoAAAALQAAAIAAAAABABgAAAAAAAJEAADEDgAAxA4AAAAAAAAAAAAAAAAA
@@ -1235,31 +1235,31 @@
 	</surface>
 	<surface name="enemy_lasersplosh_0" size="6" prim="Triangle" parent="bulebullet_left">
 		<coordinate>
-			-36.111885, -26.319262, 0.000000
-			-52.111881, -26.319258, 0.000000
-			-52.111885, -42.319260, 0.000000
-			-52.111885, -42.319260, 0.000000
-			-36.111885, -42.319260, 0.000000
-			-36.111885, -26.319262, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			-44.111885, -34.319260, 0.000000
-		</model>
-		<texture>
-			1.003968, 0.996063
-			-0.003968, 0.996063
-			-0.003968, 0.003937
-			-0.003968, 0.003937
-			1.003968, 0.003937
-			1.003968, 0.996063
+			-36.111885 -26.319262 0.000000
+			-52.111881 -26.319258 0.000000
+			-52.111885 -42.319260 0.000000
+			-52.111885 -42.319260 0.000000
+			-36.111885 -42.319260 0.000000
+			-36.111885 -26.319262 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			-44.111885 -34.319260 0.000000
+		</model>
+		<texture>
+			1.003968 0.996063
+			-0.003968 0.996063
+			-0.003968 0.003937
+			-0.003968 0.003937
+			1.003968 0.003937
+			1.003968 0.996063
 		</texture>
 		<image name="enemy_lasersplosh">
 			Qk28vAAAAAAAADYAAAAoAAAAfgAAAH8AAAABABgAAAAAAIa8AADDDgAAww4AAAAAAAAAAAAAAQMD
@@ -2114,31 +2114,31 @@
 	</surface>
 	<surface name="player_lasersplosh_0" size="6" prim="Triangle" parent="enemy_lasersplosh_0">
 		<coordinate>
-			-38.834694, -50.640775, 0.000000
-			-52.834692, -50.640772, 0.000000
-			-52.834696, -62.640773, 0.000000
-			-52.834696, -62.640773, 0.000000
-			-38.834694, -62.640775, 0.000000
-			-38.834694, -50.640775, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			-45.834694, -56.640774, 0.000000
-		</model>
-		<texture>
-			0.976712, 0.981441
-			0.023288, 0.981441
-			0.023287, 0.018559
-			0.023287, 0.018559
-			0.976712, 0.018559
-			0.976712, 0.981441
+			-38.834694 -50.640775 0.000000
+			-52.834692 -50.640772 0.000000
+			-52.834696 -62.640773 0.000000
+			-52.834696 -62.640773 0.000000
+			-38.834694 -62.640775 0.000000
+			-38.834694 -50.640775 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			-45.834694 -56.640774 0.000000
+		</model>
+		<texture>
+			0.976712 0.981441
+			0.023288 0.981441
+			0.023287 0.018559
+			0.023287 0.018559
+			0.976712 0.018559
+			0.976712 0.981441
 		</texture>
 		<image name="player_lasersplos.001">
 			Qk3sewAAAAAAADYAAAAoAAAAcwAAAFsAAAABABgAAAAAALZ7AADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -2702,31 +2702,31 @@
 	</surface>
 	<surface name="player_lasersplosh_3" size="6" prim="Triangle" parent="player_lasersplosh_0">
 		<coordinate>
-			-37.506138, -68.907411, 0.000000
-			-53.506135, -68.907408, 0.000000
-			-53.506140, -82.907409, 0.000000
-			-53.506140, -82.907409, 0.000000
-			-37.506138, -82.907411, 0.000000
-			-37.506138, -68.907411, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			-45.506138, -75.907410, 0.000000
-		</model>
-		<texture>
-			0.976993, 0.980342
-			0.023007, 0.980342
-			0.023007, 0.019658
-			0.023007, 0.019658
-			0.976993, 0.019658
-			0.976993, 0.980342
+			-37.506138 -68.907411 0.000000
+			-53.506135 -68.907408 0.000000
+			-53.506140 -82.907409 0.000000
+			-53.506140 -82.907409 0.000000
+			-37.506138 -82.907411 0.000000
+			-37.506138 -68.907411 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			-45.506138 -75.907410 0.000000
+		</model>
+		<texture>
+			0.976993 0.980342
+			0.023007 0.980342
+			0.023007 0.019658
+			0.023007 0.019658
+			0.976993 0.019658
+			0.976993 0.980342
 		</texture>
 		<image name="player_lasersplos.002">
 			Qk3YuQAAAAAAADYAAAAoAAAAgwAAAHgAAAABABgAAAAAAKK5AADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -3568,31 +3568,31 @@
 	</surface>
 	<surface name="player_lasersplosh_1" size="6" prim="Triangle" parent="player_lasersplosh_0">
 		<coordinate>
-			-61.095612, -49.815561, 0.000000
-			-77.095609, -49.815557, 0.000000
-			-77.095613, -65.815559, 0.000000
-			-77.095613, -65.815559, 0.000000
-			-61.095612, -65.815560, 0.000000
-			-61.095612, -49.815561, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			-69.095612, -57.815559, 0.000000
-		</model>
-		<texture>
-			0.978033, 0.984547
-			0.021967, 0.984547
-			0.021967, 0.036114
-			0.021967, 0.036114
-			0.978033, 0.036114
-			0.978033, 0.984547
+			-61.095612 -49.815561 0.000000
+			-77.095609 -49.815557 0.000000
+			-77.095613 -65.815559 0.000000
+			-77.095613 -65.815559 0.000000
+			-61.095612 -65.815560 0.000000
+			-61.095612 -49.815561 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			-69.095612 -57.815559 0.000000
+		</model>
+		<texture>
+			0.978033 0.984547
+			0.021967 0.984547
+			0.021967 0.036114
+			0.021967 0.036114
+			0.978033 0.036114
+			0.978033 0.984547
 		</texture>
 		<image name="player_lasersplos">
 			Qk1IvQAAAAAAADYAAAAoAAAAhQAAAHkAAAABABgAAAAAABK9AADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -4450,31 +4450,31 @@
 	</surface>
 	<surface name="laser_1" size="6" prim="Triangle" parent="enemy_lasersplosh_0">
 		<coordinate>
-			-59.920823, -26.084718, 0.000000
-			-75.920820, -26.084715, 0.000000
-			-75.920824, -42.084716, 0.000000
-			-75.920824, -42.084716, 0.000000
-			-59.920823, -42.084718, 0.000000
-			-59.920823, -26.084718, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			-67.920822, -34.084717, 0.000000
-		</model>
-		<texture>
-			1.000000, 1.000000
-			0.000000, 1.000000
-			0.000000, 0.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
+			-59.920823 -26.084718 0.000000
+			-75.920820 -26.084715 0.000000
+			-75.920824 -42.084716 0.000000
+			-75.920824 -42.084716 0.000000
+			-59.920823 -42.084718 0.000000
+			-59.920823 -26.084718 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			-67.920822 -34.084717 0.000000
+		</model>
+		<texture>
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
 		</texture>
 		<image name="laser_1.bmp.001">
 			Qk04wAAAAAAAADYAAAAoAAAAgAAAAIAAAAABABgAAAAAAALAAADEDgAAxA4AAAAAAAAAAAAAAAAA
@@ -5345,31 +5345,31 @@
 	</surface>
 	<surface name="redbullet" size="6" prim="Triangle" parent="laser_1">
 		<coordinate>
-			-82.241913, -23.018855, 0.000000
-			-98.241910, -23.018848, 0.000000
-			-98.241915, -55.018851, 0.000000
-			-98.241915, -55.018851, 0.000000
-			-82.241913, -55.018854, 0.000000
-			-82.241913, -23.018855, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			-90.241913, -39.018852, 0.000000
-		</model>
-		<texture>
-			0.986216, 0.989225
-			0.013784, 0.989225
-			0.013784, 0.010775
-			0.013784, 0.010775
-			0.986216, 0.010775
-			0.986216, 0.989225
+			-82.241913 -23.018855 0.000000
+			-98.241910 -23.018848 0.000000
+			-98.241915 -55.018851 0.000000
+			-98.241915 -55.018851 0.000000
+			-82.241913 -55.018854 0.000000
+			-82.241913 -23.018855 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			-90.241913 -39.018852 0.000000
+		</model>
+		<texture>
+			0.986216 0.989225
+			0.013784 0.989225
+			0.013784 0.010775
+			0.013784 0.010775
+			0.986216 0.010775
+			0.986216 0.989225
 		</texture>
 		<image name="redbullet.bmp.001">
 			Qk04gAEAAAAAADYAAAAoAAAAgAAAAAABAAABABgAAAAAAAKAAQADDwAAAw8AAAAAAAAAAAAAAAAA
@@ -7102,31 +7102,31 @@
 	</surface>
 	<surface name="redbomb_anim_1" size="6" prim="Triangle" parent="redbullet">
 		<coordinate>
-			-101.936447, -43.384205, 0.000000
-			-109.936446, -43.384204, 0.000000
-			-109.936448, -51.384204, 0.000000
-			-109.936448, -51.384204, 0.000000
-			-101.936447, -51.384205, 0.000000
-			-101.936447, -43.384205, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			-105.936447, -47.384205, 0.000000
-		</model>
-		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			-101.936447 -43.384205 0.000000
+			-109.936446 -43.384204 0.000000
+			-109.936448 -51.384204 0.000000
+			-109.936448 -51.384204 0.000000
+			-101.936447 -51.384205 0.000000
+			-101.936447 -43.384205 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			-105.936447 -47.384205 0.000000
+		</model>
+		<texture>
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="redbomb_anim_1.bm">
 			Qk04MAAAAAAAADYAAAAoAAAAQAAAAEAAAAABABgAAAAAAAIwAADkDgAA5A4AAAAAAAAAAAAAAAAA
@@ -7350,31 +7350,31 @@
 	</surface>
 	<surface name="redbomb_anim_5" size="6" prim="Triangle" parent="redbomb_anim_1">
 		<coordinate>
-			-113.214043, -54.051426, 0.000000
-			-121.214041, -54.051425, 0.000000
-			-121.214044, -62.051425, 0.000000
-			-121.214044, -62.051425, 0.000000
-			-113.214043, -62.051426, 0.000000
-			-113.214043, -54.051426, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			-117.214043, -58.051426, 0.000000
-		</model>
-		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			-113.214043 -54.051426 0.000000
+			-121.214041 -54.051425 0.000000
+			-121.214044 -62.051425 0.000000
+			-121.214044 -62.051425 0.000000
+			-113.214043 -62.051426 0.000000
+			-113.214043 -54.051426 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			-117.214043 -58.051426 0.000000
+		</model>
+		<texture>
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="redbomb_anim_5.bm">
 			Qk04MAAAAAAAADYAAAAoAAAAQAAAAEAAAAABABgAAAAAAAIwAADkDgAA5A4AAAAAAAAAAAAAAAAA
@@ -7598,31 +7598,31 @@
 	</surface>
 	<surface name="redbomb_anim_4" size="6" prim="Triangle" parent="redbomb_anim_1">
 		<coordinate>
-			-113.449250, -41.410817, 0.000000
-			-121.449248, -41.410815, 0.000000
-			-121.449250, -49.410816, 0.000000
-			-121.449250, -49.410816, 0.000000
-			-113.449250, -49.410817, 0.000000
-			-113.449250, -41.410817, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			-117.449249, -45.410816, 0.000000
-		</model>
-		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			-113.449250 -41.410817 0.000000
+			-121.449248 -41.410815 0.000000
+			-121.449250 -49.410816 0.000000
+			-121.449250 -49.410816 0.000000
+			-113.449250 -49.410817 0.000000
+			-113.449250 -41.410817 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			-117.449249 -45.410816 0.000000
+		</model>
+		<texture>
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="redbomb_anim_4.bm">
 			Qk04MAAAAAAAADYAAAAoAAAAQAAAAEAAAAABABgAAAAAAAIwAADkDgAA5A4AAAAAAAAAAAAAAAAA
@@ -7846,31 +7846,31 @@
 	</surface>
 	<surface name="redbomb_anim_0" size="6" prim="Triangle" parent="redbullet">
 		<coordinate>
-			-102.923462, -27.078305, 0.000000
-			-110.923460, -27.078303, 0.000000
-			-110.923463, -35.078304, 0.000000
-			-110.923463, -35.078304, 0.000000
-			-102.923462, -35.078305, 0.000000
-			-102.923462, -27.078305, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			-106.923462, -31.078304, 0.000000
-		</model>
-		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			-102.923462 -27.078305 0.000000
+			-110.923460 -27.078303 0.000000
+			-110.923463 -35.078304 0.000000
+			-110.923463 -35.078304 0.000000
+			-102.923462 -35.078305 0.000000
+			-102.923462 -27.078305 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			-106.923462 -31.078304 0.000000
+		</model>
+		<texture>
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="redbomb_anim_0.bm">
 			Qk04MAAAAAAAADYAAAAoAAAAQAAAAEAAAAABABgAAAAAAAIwAADkDgAA5A4AAAAAAAAAAAAAAAAA
@@ -8094,31 +8094,31 @@
 	</surface>
 	<surface name="redbomb_anim_3" size="6" prim="Triangle" parent="redbomb_anim_0">
 		<coordinate>
-			-113.214546, -30.085961, 0.000000
-			-121.214545, -30.085959, 0.000000
-			-121.214547, -38.085960, 0.000000
-			-121.214547, -38.085960, 0.000000
-			-113.214546, -38.085961, 0.000000
-			-113.214546, -30.085961, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			-117.214546, -34.085960, 0.000000
-		</model>
-		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			-113.214546 -30.085961 0.000000
+			-121.214545 -30.085959 0.000000
+			-121.214547 -38.085960 0.000000
+			-121.214547 -38.085960 0.000000
+			-113.214546 -38.085961 0.000000
+			-113.214546 -30.085961 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			-117.214546 -34.085960 0.000000
+		</model>
+		<texture>
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="redbomb_anim_3.bm">
 			Qk04MAAAAAAAADYAAAAoAAAAQAAAAEAAAAABABgAAAAAAAIwAAClDgAApQ4AAAAAAAAAAAAAAAAA
@@ -8342,31 +8342,31 @@
 	</surface>
 	<surface name="redbomb_anim_2" size="6" prim="Triangle" parent="redbomb_anim_0">
 		<coordinate>
-			-112.415200, -15.565545, 0.000000
-			-120.415198, -15.565543, 0.000000
-			-120.415200, -23.565544, 0.000000
-			-120.415200, -23.565544, 0.000000
-			-112.415200, -23.565545, 0.000000
-			-112.415200, -15.565545, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			-116.415199, -19.565544, 0.000000
-		</model>
-		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			-112.415200 -15.565545 0.000000
+			-120.415198 -15.565543 0.000000
+			-120.415200 -23.565544 0.000000
+			-120.415200 -23.565544 0.000000
+			-112.415200 -23.565545 0.000000
+			-112.415200 -15.565545 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			-116.415199 -19.565544 0.000000
+		</model>
+		<texture>
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="redbomb_anim_2.bm">
 			Qk04MAAAAAAAADYAAAAoAAAAQAAAAEAAAAABABgAAAAAAAIwAADkDgAA5A4AAAAAAAAAAAAAAAAA
@@ -8590,31 +8590,31 @@
 	</surface>
 	<surface name="redbomb_anim_7" size="6" prim="Triangle" parent="redbomb_anim_2">
 		<coordinate>
-			-123.129387, -17.398667, 0.000000
-			-131.129385, -17.398665, 0.000000
-			-131.129388, -25.398666, 0.000000
-			-131.129388, -25.398666, 0.000000
-			-123.129387, -25.398667, 0.000000
-			-123.129387, -17.398667, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			-127.129387, -21.398666, 0.000000
-		</model>
-		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			-123.129387 -17.398667 0.000000
+			-131.129385 -17.398665 0.000000
+			-131.129388 -25.398666 0.000000
+			-131.129388 -25.398666 0.000000
+			-123.129387 -25.398667 0.000000
+			-123.129387 -17.398667 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			-127.129387 -21.398666 0.000000
+		</model>
+		<texture>
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="redbomb_anim_7.bm">
 			Qk04MAAAAAAAADYAAAAoAAAAQAAAAEAAAAABABgAAAAAAAIwAADkDgAA5A4AAAAAAAAAAAAAAAAA
@@ -8838,31 +8838,31 @@
 	</surface>
 	<surface name="redbomb_anim_6" size="6" prim="Triangle" parent="redbomb_anim_2">
 		<coordinate>
-			-123.505554, -5.556916, 0.000000
-			-131.505553, -5.556914, 0.000000
-			-131.505555, -13.556915, 0.000000
-			-131.505555, -13.556915, 0.000000
-			-123.505554, -13.556916, 0.000000
-			-123.505554, -5.556916, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			-127.505554, -9.556915, 0.000000
-		</model>
-		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			-123.505554 -5.556916 0.000000
+			-131.505553 -5.556914 0.000000
+			-131.505555 -13.556915 0.000000
+			-131.505555 -13.556915 0.000000
+			-123.505554 -13.556916 0.000000
+			-123.505554 -5.556916 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			-127.505554 -9.556915 0.000000
+		</model>
+		<texture>
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="redbomb_anim_6.bm">
 			Qk04MAAAAAAAADYAAAAoAAAAQAAAAEAAAAABABgAAAAAAAIwAADkDgAA5A4AAAAAAAAAAAAAAAAA
@@ -9086,31 +9086,31 @@
 	</surface>
 	<surface name="enemy_lasersplosh_1" size="6" prim="Triangle" parent="bulebullet_left">
 		<coordinate>
-			-13.594818, -26.906664, 0.000000
-			-29.594816, -26.906660, 0.000000
-			-29.594820, -42.906662, 0.000000
-			-29.594820, -42.906662, 0.000000
-			-13.594818, -42.906664, 0.000000
-			-13.594818, -26.906664, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			-21.594820, -34.906662, 0.000000
-		</model>
-		<texture>
-			0.979839, 1.021008
-			0.020161, 1.021008
-			0.020161, -0.021008
-			0.020161, -0.021008
-			0.979839, -0.021008
-			0.979839, 1.021008
+			-13.594818 -26.906664 0.000000
+			-29.594816 -26.906660 0.000000
+			-29.594820 -42.906662 0.000000
+			-29.594820 -42.906662 0.000000
+			-13.594818 -42.906664 0.000000
+			-13.594818 -26.906664 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			-21.594820 -34.906662 0.000000
+		</model>
+		<texture>
+			0.979839 1.021008
+			0.020161 1.021008
+			0.020161 -0.021008
+			0.020161 -0.021008
+			0.979839 -0.021008
+			0.979839 1.021008
 		</texture>
 		<image name="enemy_lasersplosh.001">
 			Qk0krQAAAAAAADYAAAAoAAAAfAAAAHcAAAABABgAAAAAAO6sAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -9895,31 +9895,31 @@
 	</surface>
 	<surface name="player_lasersplosh_2" size="6" prim="Triangle" parent="enemy_lasersplosh_1">
 		<coordinate>
-			7.747326, -49.170846, 0.000000
-			-8.252671, -49.170843, 0.000000
-			-8.252675, -63.170845, 0.000000
-			-8.252675, -63.170845, 0.000000
-			7.747326, -63.170846, 0.000000
-			7.747326, -49.170846, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			-0.252673, -56.170845, 0.000000
-		</model>
-		<texture>
-			0.979095, 0.995641
-			0.020905, 0.995641
-			0.020905, 0.004359
-			0.020905, 0.004359
-			0.979095, 0.004359
-			0.979095, 0.995641
+			7.747326 -49.170846 0.000000
+			-8.252671 -49.170843 0.000000
+			-8.252675 -63.170845 0.000000
+			-8.252675 -63.170845 0.000000
+			7.747326 -63.170846 0.000000
+			7.747326 -49.170846 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			-0.252673 -56.170845 0.000000
+		</model>
+		<texture>
+			0.979095 0.995641
+			0.020905 0.995641
+			0.020905 0.004359
+			0.020905 0.004359
+			0.979095 0.004359
+			0.979095 0.995641
 		</texture>
 		<image name="player_lasersplos.003">
 			Qk3gvQAAAAAAADYAAAAoAAAAhwAAAHcAAAABABgAAAAAAKq9AADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -10779,31 +10779,31 @@
 	</surface>
 	<surface name="greenbullet" size="6" prim="Triangle" parent="player_lasersplosh_2">
 		<coordinate>
-			32.293804, -76.061174, 0.000000
-			16.293807, -76.061171, 0.000000
-			16.293802, -92.061172, 0.000000
-			16.293802, -92.061172, 0.000000
-			32.293804, -92.061173, 0.000000
-			32.293804, -76.061174, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			24.293804, -84.061172, 0.000000
-		</model>
-		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			32.293804 -76.061174 0.000000
+			16.293807 -76.061171 0.000000
+			16.293802 -92.061172 0.000000
+			16.293802 -92.061172 0.000000
+			32.293804 -92.061173 0.000000
+			32.293804 -76.061174 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			24.293804 -84.061172 0.000000
+		</model>
+		<texture>
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="greenbullet.bmp.001">
 			Qk04wAAAAAAAADYAAAAoAAAAgAAAAIAAAAABABgAAAAAAALAAABbEAAAWxAAAAAAAAAAAAAAAAAA
@@ -11674,31 +11674,31 @@
 	</surface>
 	<surface name="enemy_redbullet" size="6" prim="Triangle" parent="greenbullet">
 		<coordinate>
-			42.003044, -73.805832, 0.000000
-			38.003045, -73.805831, 0.000000
-			38.003044, -77.805832, 0.000000
-			38.003044, -77.805832, 0.000000
-			42.003044, -77.805832, 0.000000
-			42.003044, -73.805832, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			40.003044, -75.805832, 0.000000
-		</model>
-		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			42.003044 -73.805832 0.000000
+			38.003045 -73.805831 0.000000
+			38.003044 -77.805832 0.000000
+			38.003044 -77.805832 0.000000
+			42.003044 -77.805832 0.000000
+			42.003044 -73.805832 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			40.003044 -75.805832 0.000000
+		</model>
+		<texture>
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="enemy_redbullet.b">
 			Qk04DAAAAAAAADYAAAAoAAAAIAAAACAAAAABABgAAAAAAAIMAAClDgAApQ4AAAAAAAAAAAAAAAAA
@@ -11760,31 +11760,31 @@
 	</surface>
 	<surface name="tama_s_04" size="6" prim="Triangle" parent="enemy_redbullet">
 		<coordinate>
-			48.879910, -69.913864, 0.000000
-			44.879910, -69.913864, 0.000000
-			44.879909, -73.913864, 0.000000
-			44.879909, -73.913864, 0.000000
-			48.879910, -73.913864, 0.000000
-			48.879910, -69.913864, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			46.879910, -71.913864, 0.000000
-		</model>
-		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			48.879910 -69.913864 0.000000
+			44.879910 -69.913864 0.000000
+			44.879909 -73.913864 0.000000
+			44.879909 -73.913864 0.000000
+			48.879910 -73.913864 0.000000
+			48.879910 -69.913864 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			46.879910 -71.913864 0.000000
+		</model>
+		<texture>
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="tama_l_04.bmp.001">
 			Qk04DAAAAAAAADYAAAAoAAAAIAAAACAAAAABABgAAAAAAAIMAAClDgAApQ4AAAAAAAAAAAAAAAAA
@@ -11846,31 +11846,31 @@
 	</surface>
 	<surface name="tama_l_04" size="6" prim="Triangle" parent="enemy_redbullet">
 		<coordinate>
-			49.068134, -77.338463, 0.000000
-			45.068135, -77.338462, 0.000000
-			45.068134, -81.338463, 0.000000
-			45.068134, -81.338463, 0.000000
-			49.068134, -81.338463, 0.000000
-			49.068134, -77.338463, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			47.068134, -79.338463, 0.000000
-		</model>
-		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			49.068134 -77.338463 0.000000
+			45.068135 -77.338462 0.000000
+			45.068134 -81.338463 0.000000
+			45.068134 -81.338463 0.000000
+			49.068134 -81.338463 0.000000
+			49.068134 -77.338463 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			47.068134 -79.338463 0.000000
+		</model>
+		<texture>
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="tama_s_04.bmp.001">
 			Qk04AwAAAAAAADYAAAAoAAAAEAAAABAAAAABABgAAAAAAAIDAAClDgAApQ4AAAAAAAAAAAAAAAAA
@@ -11892,31 +11892,31 @@
 	</surface>
 	<surface name="tama_l_02" size="6" prim="Triangle" parent="tama_l_04">
 		<coordinate>
-			56.444199, -74.096016, 0.000000
-			52.444199, -74.096015, 0.000000
-			52.444198, -78.096016, 0.000000
-			52.444198, -78.096016, 0.000000
-			56.444199, -78.096016, 0.000000
-			56.444199, -74.096016, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			54.444199, -76.096016, 0.000000
-		</model>
-		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			56.444199 -74.096016 0.000000
+			52.444199 -74.096015 0.000000
+			52.444198 -78.096016 0.000000
+			52.444198 -78.096016 0.000000
+			56.444199 -78.096016 0.000000
+			56.444199 -74.096016 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			54.444199 -76.096016 0.000000
+		</model>
+		<texture>
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="tama_l_02.bmp.001">
 			Qk04DAAAAAAAADYAAAAoAAAAIAAAACAAAAABABgAAAAAAAIMAAClDgAApQ4AAAAAAAAAAAAAAAAA
@@ -11978,31 +11978,31 @@
 	</surface>
 	<surface name="tama_s_02" size="6" prim="Triangle" parent="tama_l_04">
 		<coordinate>
-			56.632713, -81.003700, 0.000000
-			52.632714, -81.003700, 0.000000
-			52.632713, -85.003700, 0.000000
-			52.632713, -85.003700, 0.000000
-			56.632713, -85.003700, 0.000000
-			56.632713, -81.003700, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			54.632713, -83.003700, 0.000000
-		</model>
-		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			56.632713 -81.003700 0.000000
+			52.632714 -81.003700 0.000000
+			52.632713 -85.003700 0.000000
+			52.632713 -85.003700 0.000000
+			56.632713 -85.003700 0.000000
+			56.632713 -81.003700 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			54.632713 -83.003700 0.000000
+		</model>
+		<texture>
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="tama_s_02.bmp.001">
 			Qk04AwAAAAAAADYAAAAoAAAAEAAAABAAAAABABgAAAAAAAIDAAClDgAApQ4AAAAAAAAAAAAAAAAA
@@ -12024,31 +12024,31 @@
 	</surface>
 	<surface name="tama_s_01" size="6" prim="Triangle" parent="greenbullet">
 		<coordinate>
-			41.360870, -92.093628, 0.000000
-			37.360871, -92.093627, 0.000000
-			37.360870, -96.093628, 0.000000
-			37.360870, -96.093628, 0.000000
-			41.360870, -96.093628, 0.000000
-			41.360870, -92.093628, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			39.360870, -94.093628, 0.000000
-		</model>
-		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			41.360870 -92.093628 0.000000
+			37.360871 -92.093627 0.000000
+			37.360870 -96.093628 0.000000
+			37.360870 -96.093628 0.000000
+			41.360870 -96.093628 0.000000
+			41.360870 -92.093628 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			39.360870 -94.093628 0.000000
+		</model>
+		<texture>
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="tama_s_01.bmp.001">
 			Qk04AwAAAAAAADYAAAAoAAAAEAAAABAAAAABABgAAAAAAAIDAAClDgAApQ4AAAAAAAAAAAAAAAAA
@@ -12070,31 +12070,31 @@
 	</surface>
 	<surface name="tama_s_03" size="6" prim="Triangle" parent="tama_s_01">
 		<coordinate>
-			48.785698, -88.804260, 0.000000
-			44.785699, -88.804260, 0.000000
-			44.785697, -92.804260, 0.000000
-			44.785697, -92.804260, 0.000000
-			48.785698, -92.804260, 0.000000
-			48.785698, -88.804260, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			46.785698, -90.804260, 0.000000
-		</model>
-		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			48.785698 -88.804260 0.000000
+			44.785699 -88.804260 0.000000
+			44.785697 -92.804260 0.000000
+			44.785697 -92.804260 0.000000
+			48.785698 -92.804260 0.000000
+			48.785698 -88.804260 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			46.785698 -90.804260 0.000000
+		</model>
+		<texture>
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="tama_l_03.bmp.001">
 			Qk04DAAAAAAAADYAAAAoAAAAIAAAACAAAAABABgAAAAAAAIMAAClDgAApQ4AAAAAAAAAAAAAAAAA
@@ -12156,31 +12156,31 @@
 	</surface>
 	<surface name="tama_l_03" size="6" prim="Triangle" parent="tama_s_01">
 		<coordinate>
-			48.785046, -95.805893, 0.000000
-			44.785046, -95.805892, 0.000000
-			44.785045, -99.805893, 0.000000
-			44.785045, -99.805893, 0.000000
-			48.785046, -99.805893, 0.000000
-			48.785046, -95.805893, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			46.785046, -97.805893, 0.000000
-		</model>
-		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			48.785046 -95.805893 0.000000
+			44.785046 -95.805892 0.000000
+			44.785045 -99.805893 0.000000
+			44.785045 -99.805893 0.000000
+			48.785046 -99.805893 0.000000
+			48.785046 -95.805893 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			46.785046 -97.805893 0.000000
+		</model>
+		<texture>
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="tama_s_03.bmp.001">
 			Qk04AwAAAAAAADYAAAAoAAAAEAAAABAAAAABABgAAAAAAAIDAAClDgAApQ4AAAAAAAAAAAAAAAAA
@@ -12202,31 +12202,31 @@
 	</surface>
 	<surface name="enemy_bluebullet" size="6" prim="Triangle" parent="tama_l_03">
 		<coordinate>
-			56.108463, -99.755516, 0.000000
-			52.108464, -99.755516, 0.000000
-			52.108463, -103.755516, 0.000000
-			52.108463, -103.755516, 0.000000
-			56.108463, -103.755516, 0.000000
-			56.108463, -99.755516, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			54.108463, -101.755516, 0.000000
-		</model>
-		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			56.108463 -99.755516 0.000000
+			52.108464 -99.755516 0.000000
+			52.108463 -103.755516 0.000000
+			52.108463 -103.755516 0.000000
+			56.108463 -103.755516 0.000000
+			56.108463 -99.755516 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			54.108463 -101.755516 0.000000
+		</model>
+		<texture>
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="enemy_bluebullet.">
 			Qk0IDAAAAAAAADYAAAAoAAAAJAAAABwAAAABABgAAAAAANILAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -12288,31 +12288,31 @@
 	</surface>
 	<surface name="greenbarrier" size="6" prim="Triangle" parent="player_lasersplosh_2">
 		<coordinate>
-			12.228561, -69.943994, 0.000000
-			-3.771436, -69.943991, 0.000000
-			-3.771441, -85.943992, 0.000000
-			-3.771441, -85.943992, 0.000000
-			12.228561, -85.943994, 0.000000
-			12.228561, -69.943994, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			4.228561, -77.943993, 0.000000
-		</model>
-		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			12.228561 -69.943994 0.000000
+			-3.771436 -69.943991 0.000000
+			-3.771441 -85.943992 0.000000
+			-3.771441 -85.943992 0.000000
+			12.228561 -85.943994 0.000000
+			12.228561 -69.943994 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			4.228561 -77.943993 0.000000
+		</model>
+		<texture>
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="greenbarrier.bmp.001">
 			Qk3gywAAAAAAADYAAAAoAAAAggAAAIUAAAABABgAAAAAAKrLAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -13235,31 +13235,31 @@
 	</surface>
 	<surface name="greenbomb_anim_1" size="6" prim="Triangle" parent="greenbarrier">
 		<coordinate>
-			12.065624, -91.173813, 0.000000
-			4.065626, -91.173812, 0.000000
-			4.065623, -99.173812, 0.000000
-			4.065623, -99.173812, 0.000000
-			12.065624, -99.173813, 0.000000
-			12.065624, -91.173813, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			8.065624, -95.173813, 0.000000
-		</model>
-		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			12.065624 -91.173813 0.000000
+			4.065626 -91.173812 0.000000
+			4.065623 -99.173812 0.000000
+			4.065623 -99.173812 0.000000
+			12.065624 -99.173813 0.000000
+			12.065624 -91.173813 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			8.065624 -95.173813 0.000000
+		</model>
+		<texture>
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="greenbomb_anim_1.">
 			Qk04MAAAAAAAADYAAAAoAAAAQAAAAEAAAAABABgAAAAAAAIwAADkDgAA5A4AAAAAAAAAAAAAAAAA
@@ -13483,31 +13483,31 @@
 	</surface>
 	<surface name="greenbomb_anim_5" size="6" prim="Triangle" parent="greenbomb_anim_1">
 		<coordinate>
-			21.268419, -101.363358, 0.000000
-			13.268421, -101.363357, 0.000000
-			13.268418, -109.363357, 0.000000
-			13.268418, -109.363357, 0.000000
-			21.268419, -109.363358, 0.000000
-			21.268419, -101.363358, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			17.268419, -105.363358, 0.000000
-		</model>
-		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			21.268419 -101.363358 0.000000
+			13.268421 -101.363357 0.000000
+			13.268418 -109.363357 0.000000
+			13.268418 -109.363357 0.000000
+			21.268419 -109.363358 0.000000
+			21.268419 -101.363358 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			17.268419 -105.363358 0.000000
+		</model>
+		<texture>
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="greenbomb_anim_5.">
 			Qk04MAAAAAAAADYAAAAoAAAAQAAAAEAAAAABABgAAAAAAAIwAADkDgAA5A4AAAAAAAAAAAAAAAAA
@@ -13731,31 +13731,31 @@
 	</surface>
 	<surface name="Plane.014" size="6" prim="Triangle" parent="greenbomb_anim_1">
 		<coordinate>
-			9.692167, -101.238060, 0.000000
-			1.692169, -101.238059, 0.000000
-			1.692166, -109.238060, 0.000000
-			1.692166, -109.238060, 0.000000
-			9.692167, -109.238060, 0.000000
-			9.692167, -101.238060, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			5.692167, -105.238060, 0.000000
-		</model>
-		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			9.692167 -101.238060 0.000000
+			1.692169 -101.238059 0.000000
+			1.692166 -109.238060 0.000000
+			1.692166 -109.238060 0.000000
+			9.692167 -109.238060 0.000000
+			9.692167 -101.238060 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			5.692167 -105.238060 0.000000
+		</model>
+		<texture>
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="greenbomb_anim_2.">
 			Qk04MAAAAAAAADYAAAAoAAAAQAAAAEAAAAABABgAAAAAAAIwAAClDgAApQ4AAAAAAAAAAAAAAAAA
@@ -13979,31 +13979,31 @@
 	</surface>
 	<surface name="greenbomb_anim_0" size="6" prim="Triangle" parent="greenbarrier">
 		<coordinate>
-			-1.060914, -90.852746, 0.000000
-			-9.060912, -90.852744, 0.000000
-			-9.060915, -98.852745, 0.000000
-			-9.060915, -98.852745, 0.000000
-			-1.060914, -98.852746, 0.000000
-			-1.060914, -90.852746, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			-5.060914, -94.852745, 0.000000
-		</model>
-		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			-1.060914 -90.852746 0.000000
+			-9.060912 -90.852744 0.000000
+			-9.060915 -98.852745 0.000000
+			-9.060915 -98.852745 0.000000
+			-1.060914 -98.852746 0.000000
+			-1.060914 -90.852746 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			-5.060914 -94.852745 0.000000
+		</model>
+		<texture>
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="greenbomb_anim_0.">
 			Qk04MAAAAAAAADYAAAAoAAAAQAAAAEAAAAABABgAAAAAAAIwAADkDgAA5A4AAAAAAAAAAAAAAAAA
@@ -14227,31 +14227,31 @@
 	</surface>
 	<surface name="greenbomb_anim_7" size="6" prim="Triangle" parent="greenbomb_anim_0">
 		<coordinate>
-			-0.785686, -100.666344, 0.000000
-			-8.785685, -100.666343, 0.000000
-			-8.785687, -108.666343, 0.000000
-			-8.785687, -108.666343, 0.000000
-			-0.785686, -108.666344, 0.000000
-			-0.785686, -100.666344, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			-4.785686, -104.666344, 0.000000
-		</model>
-		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			-0.785686 -100.666344 0.000000
+			-8.785685 -100.666343 0.000000
+			-8.785687 -108.666343 0.000000
+			-8.785687 -108.666343 0.000000
+			-0.785686 -108.666344 0.000000
+			-0.785686 -100.666344 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			-4.785686 -104.666344 0.000000
+		</model>
+		<texture>
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="greenbomb_anim_7.">
 			Qk04MAAAAAAAADYAAAAoAAAAQAAAAEAAAAABABgAAAAAAAIwAADkDgAA5A4AAAAAAAAAAAAAAAAA
@@ -14475,31 +14475,31 @@
 	</surface>
 	<surface name="lockon_sight" size="6" prim="Triangle" parent="greenbomb_anim_7">
 		<coordinate>
-			6.097625, -111.709343, 0.000000
-			-1.902375, -111.709342, 0.000000
-			-1.902375, -119.709342, 0.000000
-			-1.902375, -119.709342, 0.000000
-			6.097625, -119.709343, 0.000000
-			6.097625, -111.709343, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			2.097625, -115.709343, 0.000000
-		</model>
-		<texture>
-			1.000000, 1.000000
-			0.000000, 1.000000
-			0.000000, 0.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
+			6.097625 -111.709343 0.000000
+			-1.902375 -111.709342 0.000000
+			-1.902375 -119.709342 0.000000
+			-1.902375 -119.709342 0.000000
+			6.097625 -119.709343 0.000000
+			6.097625 -111.709343 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			2.097625 -115.709343 0.000000
+		</model>
+		<texture>
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
 		</texture>
 		<image name="lockon_sight.bmp.001">
 			Qk04MAAAAAAAADYAAAAoAAAAQAAAAEAAAAABABgAAAAAAAIwAAAiDwAAIg8AAAAAAAAAAAAAAAAA
@@ -14723,31 +14723,31 @@
 	</surface>
 	<surface name="greenbomb_anim_2" size="6" prim="Triangle" parent="greenbomb_anim_0">
 		<coordinate>
-			-11.751023, -101.167565, 0.000000
-			-19.751021, -101.167563, 0.000000
-			-19.751023, -109.167564, 0.000000
-			-19.751023, -109.167564, 0.000000
-			-11.751023, -109.167565, 0.000000
-			-11.751023, -101.167565, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			-15.751022, -105.167564, 0.000000
-		</model>
-		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			-11.751023 -101.167565 0.000000
+			-19.751021 -101.167563 0.000000
+			-19.751023 -109.167564 0.000000
+			-19.751023 -109.167564 0.000000
+			-11.751023 -109.167565 0.000000
+			-11.751023 -101.167565 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			-15.751022 -105.167564 0.000000
+		</model>
+		<texture>
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="greenbomb_anim_3.">
 			Qk04MAAAAAAAADYAAAAoAAAAQAAAAEAAAAABABgAAAAAAAIwAADkDgAA5A4AAAAAAAAAAAAAAAAA
@@ -14971,31 +14971,31 @@
 	</surface>
 	<surface name="greenbomb_anim_6" size="6" prim="Triangle" parent="greenbomb_anim_2">
 		<coordinate>
-			-6.917969, -110.761330, 0.000000
-			-14.917967, -110.761329, 0.000000
-			-14.917970, -118.761329, 0.000000
-			-14.917970, -118.761329, 0.000000
-			-6.917969, -118.761330, 0.000000
-			-6.917969, -110.761330, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			-10.917969, -114.761330, 0.000000
-		</model>
-		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			-6.917969 -110.761330 0.000000
+			-14.917967 -110.761329 0.000000
+			-14.917970 -118.761329 0.000000
+			-14.917970 -118.761329 0.000000
+			-6.917969 -118.761330 0.000000
+			-6.917969 -110.761330 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			-10.917969 -114.761330 0.000000
+		</model>
+		<texture>
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="greenbomb_anim_6.">
 			Qk04MAAAAAAAADYAAAAoAAAAQAAAAEAAAAABABgAAAAAAAIwAAAiDwAAIg8AAAAAAAAAAAAAAAAA
@@ -15219,31 +15219,31 @@
 	</surface>
 	<surface name="greenbomb_anim_4" size="6" prim="Triangle" parent="greenbomb_anim_2">
 		<coordinate>
-			-18.008240, -111.019768, 0.000000
-			-26.008238, -111.019767, 0.000000
-			-26.008241, -119.019767, 0.000000
-			-26.008241, -119.019767, 0.000000
-			-18.008240, -119.019768, 0.000000
-			-18.008240, -111.019768, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			-22.008240, -115.019768, 0.000000
-		</model>
-		<texture>
-			0.000000, 1.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
-			0.000000, 1.000000
+			-18.008240 -111.019768 0.000000
+			-26.008238 -111.019767 0.000000
+			-26.008241 -119.019767 0.000000
+			-26.008241 -119.019767 0.000000
+			-18.008240 -119.019768 0.000000
+			-18.008240 -111.019768 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			-22.008240 -115.019768 0.000000
+		</model>
+		<texture>
+			0.000000 1.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			0.000000 1.000000
 		</texture>
 		<image name="greenbomb_anim_4.">
 			Qk04MAAAAAAAADYAAAAoAAAAQAAAAEAAAAABABgAAAAAAAIwAAAiDwAAIg8AAAAAAAAAAAAAAAAA
@@ -15467,31 +15467,31 @@
 	</surface>
 	<surface name="enemy_lasersplosh_2" size="6" prim="Triangle" parent="enemy_lasersplosh_1">
 		<coordinate>
-			-12.302390, -47.504968, 0.000000
-			-28.302387, -47.504965, 0.000000
-			-28.302391, -63.504966, 0.000000
-			-28.302391, -63.504966, 0.000000
-			-12.302390, -63.504968, 0.000000
-			-12.302390, -47.504968, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			-20.302389, -55.504967, 0.000000
-		</model>
-		<texture>
-			0.978388, 1.014639
-			0.037485, 1.014639
-			0.037485, 0.070831
-			0.037485, 0.070831
-			0.978388, 0.070831
-			0.978388, 1.014639
+			-12.302390 -47.504968 0.000000
+			-28.302387 -47.504965 0.000000
+			-28.302391 -63.504966 0.000000
+			-28.302391 -63.504966 0.000000
+			-12.302390 -63.504968 0.000000
+			-12.302390 -47.504968 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			-20.302389 -55.504967 0.000000
+		</model>
+		<texture>
+			0.978388 1.014639
+			0.037485 1.014639
+			0.037485 0.070831
+			0.037485 0.070831
+			0.978388 0.070831
+			0.978388 1.014639
 		</texture>
 		<image name="enemy_lasersplosh.002">
 			Qk3krQAAAAAAADYAAAAoAAAAfgAAAHUAAAABABgAAAAAAK6tAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -16279,31 +16279,31 @@
 	</surface>
 	<surface name="enemy_lasersplosh_3" size="6" prim="Triangle" parent="enemy_lasersplosh_2">
 		<coordinate>
-			-7.052355, -71.570101, 0.000000
-			-21.052353, -71.570097, 0.000000
-			-21.052357, -85.570099, 0.000000
-			-21.052357, -85.570099, 0.000000
-			-7.052355, -85.570099, 0.000000
-			-7.052355, -71.570101, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			-14.052355, -78.570099, 0.000000
-		</model>
-		<texture>
-			0.981191, 0.989433
-			0.018809, 0.989433
-			0.018809, 0.010567
-			0.018809, 0.010567
-			0.981191, 0.010567
-			0.981191, 0.989433
+			-7.052355 -71.570101 0.000000
+			-21.052353 -71.570097 0.000000
+			-21.052357 -85.570099 0.000000
+			-21.052357 -85.570099 0.000000
+			-7.052355 -85.570099 0.000000
+			-7.052355 -71.570101 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			-14.052355 -78.570099 0.000000
+		</model>
+		<texture>
+			0.981191 0.989433
+			0.018809 0.989433
+			0.018809 0.010567
+			0.018809 0.010567
+			0.981191 0.010567
+			0.981191 0.989433
 		</texture>
 		<image name="enemy_lasersplosh.003">
 			Qk0YhgAAAAAAADYAAAAoAAAAcAAAAGYAAAABABgAAAAAAOKFAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -16913,31 +16913,31 @@
 	</surface>
 	<surface name="burner" size="6" prim="Triangle" parent="enemy_lasersplosh_2">
 		<coordinate>
-			-24.052811, -69.812715, 0.000000
-			-32.052809, -69.812712, 0.000000
-			-32.052812, -85.812713, 0.000000
-			-32.052812, -85.812713, 0.000000
-			-24.052811, -85.812715, 0.000000
-			-24.052811, -69.812715, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			-28.052811, -77.812714, 0.000000
-		</model>
-		<texture>
-			0.966664, 1.009859
-			0.065082, 1.009859
-			0.065082, 0.022928
-			0.065082, 0.022928
-			0.966664, 0.022928
-			0.966664, 1.009859
+			-24.052811 -69.812715 0.000000
+			-32.052809 -69.812712 0.000000
+			-32.052812 -85.812713 0.000000
+			-32.052812 -85.812713 0.000000
+			-24.052811 -85.812715 0.000000
+			-24.052811 -69.812715 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			-28.052811 -77.812714 0.000000
+		</model>
+		<texture>
+			0.966664 1.009859
+			0.065082 1.009859
+			0.065082 0.022928
+			0.065082 0.022928
+			0.966664 0.022928
+			0.966664 1.009859
 		</texture>
 		<image name="burner.bmp.001">
 			Qk24WwAAAAAAADYAAAAoAAAAPwAAAHoAAAABABgAAAAAAIJbAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -17356,31 +17356,31 @@
 	</surface>
 	<surface name="blebullet_right" size="6" prim="Triangle" parent="bulebarrier">
 		<coordinate>
-			6.508983, -8.906921, 0.000000
-			0.508985, -8.906918, 0.000000
-			0.508983, -24.906919, 0.000000
-			0.508983, -24.906919, 0.000000
-			6.508983, -24.906920, 0.000000
-			6.508983, -8.906921, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			3.508984, -16.906919, 0.000000
-		</model>
-		<texture>
-			0.069341, 0.989672
-			0.930660, 0.989672
-			0.930659, 0.010328
-			0.930659, 0.010328
-			0.069340, 0.010328
-			0.069341, 0.989672
+			6.508983 -8.906921 0.000000
+			0.508985 -8.906918 0.000000
+			0.508983 -24.906919 0.000000
+			0.508983 -24.906919 0.000000
+			6.508983 -24.906920 0.000000
+			6.508983 -8.906921 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			3.508984 -16.906919 0.000000
+		</model>
+		<texture>
+			0.069341 0.989672
+			0.930660 0.989672
+			0.930659 0.010328
+			0.930659 0.010328
+			0.069340 0.010328
+			0.069341 0.989672
 		</texture>
 		<image name="bulebullet_right.">
 			Qk04OgAAAAAAADYAAAAoAAAAJgAAAIAAAAABABgAAAAAAAI6AADEDgAAxA4AAAAAAAAAAAAAAAAA
@@ -17649,31 +17649,31 @@
 	</surface>
 	<surface name="enemy_laser" size="6" prim="Triangle" parent="blebullet_right">
 		<coordinate>
-			20.194694, -29.244884, 0.000000
-			12.194696, -29.244877, 0.000000
-			12.194694, -61.244880, 0.000000
-			12.194694, -61.244880, 0.000000
-			20.194694, -61.244883, 0.000000
-			20.194694, -29.244884, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			16.194695, -45.244881, 0.000000
-		</model>
-		<texture>
-			0.985170, 0.996293
-			0.014830, 0.996293
-			0.014830, 0.003708
-			0.014830, 0.003708
-			0.985170, 0.003707
-			0.985170, 0.996293
+			20.194694 -29.244884 0.000000
+			12.194696 -29.244877 0.000000
+			12.194694 -61.244880 0.000000
+			12.194694 -61.244880 0.000000
+			20.194694 -61.244883 0.000000
+			20.194694 -29.244884 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			16.194695 -45.244881 0.000000
+		</model>
+		<texture>
+			0.985170 0.996293
+			0.014830 0.996293
+			0.014830 0.003708
+			0.014830 0.003708
+			0.985170 0.003707
+			0.985170 0.996293
 		</texture>
 		<image name="enemy_laser.bmp.001">
 			Qk14vAAAAAAAADYAAAAoAAAAQAAAAPsAAAABABgAAAAAAEK8AADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -18527,31 +18527,31 @@
 	</surface>
 	<surface name="diffensivepower_gauge" size="6" prim="Triangle" parent="enemy_laser">
 		<coordinate>
-			27.252085, -47.918413, 0.000000
-			25.252085, -47.918409, 0.000000
-			25.252085, -73.918411, 0.000000
-			25.252085, -73.918411, 0.000000
-			27.252085, -73.918413, 0.000000
-			27.252085, -47.918413, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			26.252085, -60.918411, 0.000000
-		</model>
-		<texture>
-			0.062088, 0.985915
-			0.937912, 0.985916
-			0.937912, 0.014085
-			0.937912, 0.014085
-			0.062088, 0.014084
-			0.062088, 0.985915
+			27.252085 -47.918413 0.000000
+			25.252085 -47.918409 0.000000
+			25.252085 -73.918411 0.000000
+			25.252085 -73.918411 0.000000
+			27.252085 -73.918413 0.000000
+			27.252085 -47.918413 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			26.252085 -60.918411 0.000000
+		</model>
+		<texture>
+			0.062088 0.985915
+			0.937912 0.985916
+			0.937912 0.014085
+			0.937912 0.014085
+			0.062088 0.014084
+			0.062088 0.985915
 		</texture>
 		<image name="diffensivepower_g">
 			Qk2cMgAAAAAAADYAAAAoAAAAFAAAANcAAAABABgAAAAAAGYyAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -18786,31 +18786,31 @@
 	</surface>
 	<surface name="remainder" size="6" prim="Triangle" parent="diffensivepower_gauge">
 		<coordinate>
-			52.765197, -60.703137, 0.000000
-			36.765200, -60.703136, 0.000000
-			36.765196, -64.703136, 0.000000
-			36.765196, -64.703136, 0.000000
-			52.765197, -64.703136, 0.000000
-			52.765197, -60.703137, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			44.765198, -62.703136, 0.000000
-		</model>
-		<texture>
-			0.987585, 0.991539
-			0.012415, 0.991539
-			0.012415, 0.046108
-			0.012415, 0.046108
-			0.987585, 0.046108
-			0.987585, 0.991539
+			52.765197 -60.703137 0.000000
+			36.765200 -60.703136 0.000000
+			36.765196 -64.703136 0.000000
+			36.765196 -64.703136 0.000000
+			52.765197 -64.703136 0.000000
+			52.765197 -60.703137 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			44.765198 -62.703136 0.000000
+		</model>
+		<texture>
+			0.987585 0.991539
+			0.012415 0.991539
+			0.012415 0.046108
+			0.012415 0.046108
+			0.987585 0.046108
+			0.987585 0.991539
 		</texture>
 		<image name="remainder.bmp.001">
 			Qk2wMgAAAAAAADYAAAAoAAAAfgAAACIAAAABABgAAAAAAHoyAADDDgAAww4AAAAAAAAAAAAABAoK
@@ -19045,31 +19045,31 @@
 	</surface>
 	<surface name="boss_powergauge" size="6" prim="Triangle" parent="diffensivepower_gauge">
 		<coordinate>
-			72.543175, 11.189922, 0.000000
-			64.543176, 11.189941, 0.000000
-			64.543174, -84.810066, 0.000000
-			64.543174, -84.810066, 0.000000
-			72.543175, -84.810078, 0.000000
-			72.543175, 11.189922, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			68.543175, -36.810070, 0.000000
-		</model>
-		<texture>
-			0.974849, 0.997474
-			0.025151, 0.997474
-			0.025151, 0.002526
-			0.025151, 0.002526
-			0.974849, 0.002526
-			0.974849, 0.997474
+			72.543175 11.189922 0.000000
+			64.543176 11.189941 0.000000
+			64.543174 -84.810066 0.000000
+			64.543174 -84.810066 0.000000
+			72.543175 -84.810078 0.000000
+			72.543175 11.189922 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			68.543175 -36.810070 0.000000
+		</model>
+		<texture>
+			0.974849 0.997474
+			0.025151 0.997474
+			0.025151 0.002526
+			0.025151 0.002526
+			0.974849 0.002526
+			0.974849 0.997474
 		</texture>
 		<image name="boss_powergauge.b">
 			Qk1YawIAAAAAADYAAAAoAAAARQAAAPoCAAABABgAAAAAACJrAgDDDgAAww4AAAAAAAAAAAAAAAAA
@@ -21858,31 +21858,31 @@
 	</surface>
 	<surface name="offensivepower_gauge" size="6" prim="Triangle" parent="enemy_laser">
 		<coordinate>
-			29.002558, -16.043435, 0.000000
-			25.002558, -16.043428, 0.000000
-			25.002557, -44.043431, 0.000000
-			25.002557, -44.043431, 0.000000
-			29.002558, -44.043434, 0.000000
-			29.002558, -16.043435, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			27.002558, -30.043432, 0.000000
-		</model>
-		<texture>
-			0.950918, 0.987926
-			0.049083, 0.987926
-			0.049083, 0.012075
-			0.049083, 0.012075
-			0.950918, 0.012074
-			0.950918, 0.987926
+			29.002558 -16.043435 0.000000
+			25.002558 -16.043428 0.000000
+			25.002557 -44.043431 0.000000
+			25.002557 -44.043431 0.000000
+			29.002558 -44.043434 0.000000
+			29.002558 -16.043435 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			27.002558 -30.043432 0.000000
+		</model>
+		<texture>
+			0.950918 0.987926
+			0.049083 0.987926
+			0.049083 0.012075
+			0.049083 0.012075
+			0.950918 0.012074
+			0.950918 0.987926
 		</texture>
 		<image name="offensivepower_ga">
 			Qk1oSAAAAAAAADYAAAAoAAAAGwAAANwAAAABABgAAAAAADJIAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -22215,31 +22215,31 @@
 	</surface>
 	<surface name="longlaser" size="6" prim="Triangle" parent="blebullet_right">
 		<coordinate>
-			20.899326, 8.465643, 0.000000
-			12.899328, 8.465650, 0.000000
-			12.899325, -23.534353, 0.000000
-			12.899325, -23.534353, 0.000000
-			20.899326, -23.534356, 0.000000
-			20.899326, 8.465643, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			16.899326, -7.534354, 0.000000
-		</model>
-		<texture>
-			0.967365, 0.986709
-			0.032635, 0.986709
-			0.032635, 0.013291
-			0.032635, 0.013291
-			0.967365, 0.013291
-			0.967365, 0.986709
+			20.899326 8.465643 0.000000
+			12.899328 8.465650 0.000000
+			12.899325 -23.534353 0.000000
+			12.899325 -23.534353 0.000000
+			20.899326 -23.534356 0.000000
+			20.899326 8.465643 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			16.899326 -7.534354 0.000000
+		</model>
+		<texture>
+			0.967365 0.986709
+			0.032635 0.986709
+			0.032635 0.013291
+			0.032635 0.013291
+			0.967365 0.013291
+			0.967365 0.986709
 		</texture>
 		<image name="longlaser.bmp.001">
 			Qk04wAAAAAAAADYAAAAoAAAAQAAAAAABAAABABgAAAAAAALAAAAiDwAAIg8AAAAAAAAAAAAAAAAA
@@ -23110,31 +23110,31 @@
 	</surface>
 	<surface name="inflation_gauge" size="6" prim="Triangle" parent="longlaser">
 		<coordinate>
-			20.352339, 56.218773, 0.000000
-			12.352340, 56.218782, 0.000000
-			12.352338, 12.218779, 0.000000
-			12.352338, 12.218779, 0.000000
-			20.352339, 12.218775, 0.000000
-			20.352339, 56.218773, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			16.352339, 34.218777, 0.000000
-		</model>
-		<texture>
-			1.006669, 0.995290
-			-0.006669, 0.995290
-			-0.006669, 0.004710
-			-0.006669, 0.004710
-			1.006669, 0.004710
-			1.006669, 0.995290
+			20.352339 56.218773 0.000000
+			12.352340 56.218782 0.000000
+			12.352338 12.218779 0.000000
+			12.352338 12.218779 0.000000
+			20.352339 12.218775 0.000000
+			20.352339 56.218773 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			16.352339 34.218777 0.000000
+		</model>
+		<texture>
+			1.006669 0.995290
+			-0.006669 0.995290
+			-0.006669 0.004710
+			-0.006669 0.004710
+			1.006669 0.004710
+			1.006669 0.995290
 		</texture>
 		<image name="inflation_gauge.b">
 			Qk0E9wAAAAAAADYAAAAoAAAAPAAAAF8BAAABABgAAAAAAM72AADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -24251,31 +24251,31 @@
 	</surface>
 	<surface name="gauge_panel" size="6" prim="Triangle" parent="longlaser">
 		<coordinate>
-			41.050347, 50.941750, 0.000000
-			25.050350, 50.941765, 0.000000
-			25.050345, -13.058243, 0.000000
-			25.050345, -13.058243, 0.000000
-			41.050347, -13.058250, 0.000000
-			41.050347, 50.941750, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			33.050346, 18.941757, 0.000000
-		</model>
-		<texture>
-			0.982166, 0.997593
-			0.017834, 0.997593
-			0.017834, 0.002407
-			0.017834, 0.002407
-			0.982166, 0.002407
-			0.982166, 0.997593
+			41.050347 50.941750 0.000000
+			25.050350 50.941765 0.000000
+			25.050345 -13.058243 0.000000
+			25.050345 -13.058243 0.000000
+			41.050347 -13.058250 0.000000
+			41.050347 50.941750 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			33.050346 18.941757 0.000000
+		</model>
+		<texture>
+			0.982166 0.997593
+			0.017834 0.997593
+			0.017834 0.002407
+			0.017834 0.002407
+			0.982166 0.002407
+			0.982166 0.997593
 		</texture>
 		<image name="gauge_panel.bmp.001">
 			Qk04AAMAAAAAADYAAAAoAAAAgAAAAAACAAABABgAAAAAAAIAAwDEDgAAxA4AAAAAAAAAAAAAAAAA
@@ -27733,31 +27733,31 @@
 	</surface>
 	<surface name="enemy_lightning" size="6" prim="Triangle" parent="gauge_panel">
 		<coordinate>
-			55.290345, -1.144318, 0.000000
-			47.290347, -1.144310, 0.000000
-			47.290343, -33.144314, 0.000000
-			47.290343, -33.144314, 0.000000
-			55.290345, -33.144318, 0.000000
-			55.290345, -1.144318, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			51.290344, -17.144314, 0.000000
-		</model>
-		<texture>
-			0.983412, 1.005309
-			0.016588, 1.005309
-			0.016588, -0.005309
-			0.016588, -0.005309
-			0.983412, -0.005309
-			0.983412, 1.005309
+			55.290345 -1.144318 0.000000
+			47.290347 -1.144310 0.000000
+			47.290343 -33.144314 0.000000
+			47.290343 -33.144314 0.000000
+			55.290345 -33.144318 0.000000
+			55.290345 -1.144318 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			51.290344 -17.144314 0.000000
+		</model>
+		<texture>
+			0.983412 1.005309
+			0.016588 1.005309
+			0.016588 -0.005309
+			0.016588 -0.005309
+			0.983412 -0.005309
+			0.983412 1.005309
 		</texture>
 		<image name="enemy_lightning.b">
 			Qk04vQAAAAAAADYAAAAoAAAAQAAAAPwAAAABABgAAAAAAAK9AADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -28614,31 +28614,31 @@
 	</surface>
 	<surface name="inflation_meter" size="6" prim="Triangle" parent="gauge_panel">
 		<coordinate>
-			53.345490, 45.171373, 0.000000
-			49.345490, 45.171381, 0.000000
-			49.345489, 5.171379, 0.000000
-			49.345489, 5.171379, 0.000000
-			53.345490, 5.171375, 0.000000
-			53.345490, 45.171373, 0.000000
-		</coordinate>
-		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-		</normal>
-		<model>
-			51.345490, 25.171377, 0.000000
-		</model>
-		<texture>
-			0.964543, 0.994030
-			0.035458, 0.994030
-			0.035458, 0.005970
-			0.035458, 0.005970
-			0.964543, 0.005970
-			0.964543, 0.994030
+			53.345490 45.171373 0.000000
+			49.345490 45.171381 0.000000
+			49.345489 5.171379 0.000000
+			49.345489 5.171379 0.000000
+			53.345490 5.171375 0.000000
+			53.345490 45.171373 0.000000
+		</coordinate>
+		<normal>
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+		</normal>
+		<model>
+			51.345490 25.171377 0.000000
+		</model>
+		<texture>
+			0.964543 0.994030
+			0.035458 0.994030
+			0.035458 0.005970
+			0.035458 0.005970
+			0.964543 0.005970
+			0.964543 0.994030
 		</texture>
 		<image name="inflation_meter.b">
 			Qk2QaAAAAAAAADYAAAAoAAAAHAAAAD4BAAABABgAAAAAAFpoAADDDgAAww4AAAAAAAAAAAAAAAAA
--- a/xml/font.xml	Thu May 20 19:51:03 2010 +0900
+++ b/xml/font.xml	Tue Dec 07 18:37:43 2010 +0900
@@ -2,31 +2,31 @@
 <OBJECT-3D>
 	<surface name="font_0" size="6" prim="Triangle" parent="NULL">
 		<coordinate>
-			2.056778, 14.712451, 0.785928
-			-1.943222, 14.712452, 0.785928
-			-1.943223, 10.712452, 0.785928
-			-1.943223, 10.712452, 0.785928
-			2.056778, 10.712451, 0.785928
-			2.056778, 14.712451, 0.785928
+			2.056778 14.712451 0.785928
+			-1.943222 14.712452 0.785928
+			-1.943223 10.712452 0.785928
+			-1.943223 10.712452 0.785928
+			2.056778 10.712451 0.785928
+			2.056778 14.712451 0.785928
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			0.056778, 12.712452, 0.785928
+			0.056778 12.712452 0.785928
 		</model>
 		<texture>
-			1.000000, 1.000000
-			0.000000, 1.000000
-			0.000000, 0.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
 		</texture>
 		<image name="font_0.bmp">
 			Qk04DAAAAAAAADYAAAAoAAAAIAAAACAAAAABABgAAAAAAAIMAAAiDwAAIg8AAAAAAAAAAAAAAAAA
@@ -88,31 +88,31 @@
 	</surface>
 	<surface name="font_2" size="6" prim="Triangle" parent="font_0">
 		<coordinate>
-			6.396258, 8.699378, 0.785928
-			2.396259, 8.699379, 0.785928
-			2.396258, 4.699378, 0.785928
-			2.396258, 4.699378, 0.785928
-			6.396258, 4.699378, 0.785928
-			6.396258, 8.699378, 0.785928
+			6.396258 8.699378 0.785928
+			2.396259 8.699379 0.785928
+			2.396258 4.699378 0.785928
+			2.396258 4.699378 0.785928
+			6.396258 4.699378 0.785928
+			6.396258 8.699378 0.785928
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			4.396258, 6.699379, 0.785928
+			4.396258 6.699379 0.785928
 		</model>
 		<texture>
-			1.000000, 1.000000
-			0.000000, 1.000000
-			0.000000, 0.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
 		</texture>
 		<image name="font_2.bmp">
 			Qk04DAAAAAAAADYAAAAoAAAAIAAAACAAAAABABgAAAAAAAIMAAAiDwAAIg8AAAAAAAAAAAAAAAAA
@@ -174,31 +174,31 @@
 	</surface>
 	<surface name="font_5" size="6" prim="Triangle" parent="font_2">
 		<coordinate>
-			11.252754, 2.426549, 0.785928
-			7.252755, 2.426550, 0.785928
-			7.252754, -1.573450, 0.785928
-			7.252754, -1.573450, 0.785928
-			11.252754, -1.573450, 0.785928
-			11.252754, 2.426549, 0.785928
+			11.252754 2.426549 0.785928
+			7.252755 2.426550 0.785928
+			7.252754 -1.573450 0.785928
+			7.252754 -1.573450 0.785928
+			11.252754 -1.573450 0.785928
+			11.252754 2.426549 0.785928
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			9.252754, 0.426550, 0.785928
+			9.252754 0.426550 0.785928
 		</model>
 		<texture>
-			1.000000, 1.000000
-			0.000000, 1.000000
-			0.000000, 0.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
 		</texture>
 		<image name="font_5.bmp">
 			Qk04DAAAAAAAADYAAAAoAAAAIAAAACAAAAABABgAAAAAAAIMAAAiDwAAIg8AAAAAAAAAAAAAAAAA
@@ -260,31 +260,31 @@
 	</surface>
 	<surface name="font_9" size="6" prim="Triangle" parent="font_5">
 		<coordinate>
-			15.539113, -3.532536, 0.785928
-			11.539114, -3.532535, 0.785928
-			11.539113, -7.532536, 0.785928
-			11.539113, -7.532536, 0.785928
-			15.539113, -7.532536, 0.785928
-			15.539113, -3.532536, 0.785928
+			15.539113 -3.532536 0.785928
+			11.539114 -3.532535 0.785928
+			11.539113 -7.532536 0.785928
+			11.539113 -7.532536 0.785928
+			15.539113 -7.532536 0.785928
+			15.539113 -3.532536 0.785928
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			13.539113, -5.532536, 0.785928
+			13.539113 -5.532536 0.785928
 		</model>
 		<texture>
-			1.000000, 1.000000
-			0.000000, 1.000000
-			0.000000, 0.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
 		</texture>
 		<image name="font_9.bmp">
 			Qk04DAAAAAAAADYAAAAoAAAAIAAAACAAAAABABgAAAAAAAIMAACfDwAAnw8AAAAAAAAAAAAAAAAA
@@ -346,31 +346,31 @@
 	</surface>
 	<surface name="font_gameover" size="6" prim="Triangle" parent="font_9">
 		<coordinate>
-			46.300524, -11.557590, 0.410289
-			14.300529, -11.557590, 0.410289
-			14.300520, -15.557590, 0.410289
-			14.300520, -15.557590, 0.410289
-			46.300524, -15.557590, 0.410289
-			46.300524, -11.557590, 0.410289
+			46.300524 -11.557590 0.410289
+			14.300529 -11.557590 0.410289
+			14.300520 -15.557590 0.410289
+			14.300520 -15.557590 0.410289
+			46.300524 -15.557590 0.410289
+			46.300524 -11.557590 0.410289
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			30.300522, -13.557590, 0.410289
+			30.300522 -13.557590 0.410289
 		</model>
 		<texture>
-			1.006212, 0.987226
-			-0.006211, 0.987226
-			-0.006212, 0.012774
-			-0.006212, 0.012774
-			1.006212, 0.012774
-			1.006212, 0.987226
+			1.006212 0.987226
+			-0.006211 0.987226
+			-0.006212 0.012774
+			-0.006212 0.012774
+			1.006212 0.012774
+			1.006212 0.987226
 		</texture>
 		<image name="font_gameover.bmp">
 			Qk04YAAAAAAAADYAAAAoAAAAAAEAACAAAAABABgAAAAAAAJgAAAyDwAAMg8AAAAAAAAAAAAAAAAA
@@ -810,31 +810,31 @@
 	</surface>
 	<surface name="font_stage" size="6" prim="Triangle" parent="font_gameover">
 		<coordinate>
-			65.625568, -18.783899, 0.410289
-			33.625575, -18.783899, 0.410289
-			33.625568, -22.783899, 0.410289
-			33.625568, -22.783899, 0.410289
-			65.625568, -22.783899, 0.410289
-			65.625568, -18.783899, 0.410289
+			65.625568 -18.783899 0.410289
+			33.625575 -18.783899 0.410289
+			33.625568 -22.783899 0.410289
+			33.625568 -22.783899 0.410289
+			65.625568 -22.783899 0.410289
+			65.625568 -18.783899 0.410289
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			49.625568, -20.783899, 0.410289
+			49.625568 -20.783899 0.410289
 		</model>
 		<texture>
-			1.003652, 1.013101
-			-0.003652, 1.013101
-			-0.003652, -0.013101
-			-0.003652, -0.013101
-			1.003652, -0.013101
-			1.003652, 1.013101
+			1.003652 1.013101
+			-0.003652 1.013101
+			-0.003652 -0.013101
+			-0.003652 -0.013101
+			1.003652 -0.013101
+			1.003652 1.013101
 		</texture>
 		<image name="font_stage.bmp">
 			Qk04YAAAAAAAADYAAAAoAAAAAAEAACAAAAABABgAAAAAAAJgAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -1274,31 +1274,31 @@
 	</surface>
 	<surface name="font_superdandy" size="6" prim="Triangle" parent="font_stage">
 		<coordinate>
-			66.528612, -27.801050, 0.410289
-			34.528617, -27.801050, 0.410289
-			34.528608, -35.801050, 0.410289
-			34.528608, -35.801050, 0.410289
-			66.528612, -35.801050, 0.410289
-			66.528612, -27.801050, 0.410289
+			66.528612 -27.801050 0.410289
+			34.528617 -27.801050 0.410289
+			34.528608 -35.801050 0.410289
+			34.528608 -35.801050 0.410289
+			66.528612 -35.801050 0.410289
+			66.528612 -27.801050 0.410289
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			50.528610, -31.801050, 0.410289
+			50.528610 -31.801050 0.410289
 		</model>
 		<texture>
-			1.000563, 0.997627
-			-0.000563, 0.997627
-			-0.000563, 0.002373
-			-0.000563, 0.002373
-			1.000563, 0.002373
-			1.000563, 0.997627
+			1.000563 0.997627
+			-0.000563 0.997627
+			-0.000563 0.002373
+			-0.000563 0.002373
+			1.000563 0.002373
+			1.000563 0.997627
 		</texture>
 		<image name="font_superdandy.bmp">
 			Qk04wAAAAAAAADYAAAAoAAAAAAEAAEAAAAABABgAAAAAAALAAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -2169,31 +2169,31 @@
 	</surface>
 	<surface name="font_thankyou" size="6" prim="Triangle" parent="font_superdandy">
 		<coordinate>
-			105.465969, -41.179425, 0.410289
-			41.465981, -41.179424, 0.410289
-			41.465961, -45.179424, 0.410289
-			41.465961, -45.179424, 0.410289
-			105.465969, -45.179425, 0.410289
-			105.465969, -41.179425, 0.410289
+			105.465969 -41.179425 0.410289
+			41.465981 -41.179424 0.410289
+			41.465961 -45.179424 0.410289
+			41.465961 -45.179424 0.410289
+			105.465969 -45.179425 0.410289
+			105.465969 -41.179425 0.410289
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			73.465965, -43.179424, 0.410289
+			73.465965 -43.179424 0.410289
 		</model>
 		<texture>
-			0.988557, 0.992256
-			0.011444, 0.992256
-			0.011443, 0.007744
-			0.011443, 0.007744
-			0.988557, 0.007744
-			0.988557, 0.992256
+			0.988557 0.992256
+			0.011444 0.992256
+			0.011443 0.007744
+			0.011443 0.007744
+			0.988557 0.007744
+			0.988557 0.992256
 		</texture>
 		<image name="font_thankyou.bmp">
 			Qk04wAAAAAAAADYAAAAoAAAAAAIAACAAAAABABgAAAAAAALAAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -3064,31 +3064,31 @@
 	</surface>
 	<surface name="titlefont_emperor" size="6" prim="Triangle" parent="font_thankyou">
 		<coordinate>
-			89.971621, -62.705007, 0.410289
-			57.971625, -62.704998, 0.410289
-			57.971617, -94.705002, 0.410289
-			57.971617, -94.705002, 0.410289
-			89.971621, -94.705006, 0.410289
-			89.971621, -62.705007, 0.410289
+			89.971621 -62.705007 0.410289
+			57.971625 -62.704998 0.410289
+			57.971617 -94.705002 0.410289
+			57.971617 -94.705002 0.410289
+			89.971621 -94.705006 0.410289
+			89.971621 -62.705007 0.410289
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			73.971619, -78.705002, 0.410289
+			73.971619 -78.705002 0.410289
 		</model>
 		<texture>
-			1.000000, 1.000000
-			0.000000, 1.000000
-			0.000000, 0.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
 		</texture>
 		<image name="titlefont_emperor.bmp">
 			Qk04AAMAAAAAADYAAAAoAAAAAAEAAAABAAABABgAAAAAAAIAAwDEDgAAxA4AAAAAAAAAAAAAAAAA
@@ -6546,31 +6546,31 @@
 	</surface>
 	<surface name="rank_b_pla" size="6" prim="Triangle" parent="titlefont_emperor">
 		<coordinate>
-			87.183876, -104.418343, 0.410289
-			79.183877, -104.418342, 0.410289
-			79.183875, -108.418342, 0.410289
-			79.183875, -108.418342, 0.410289
-			87.183876, -108.418343, 0.410289
-			87.183876, -104.418343, 0.410289
+			87.183876 -104.418343 0.410289
+			79.183877 -104.418342 0.410289
+			79.183875 -108.418342 0.410289
+			79.183875 -108.418342 0.410289
+			87.183876 -108.418343 0.410289
+			87.183876 -104.418343 0.410289
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			83.183876, -106.418343, 0.410289
+			83.183876 -106.418343 0.410289
 		</model>
 		<texture>
-			1.003049, 1.017738
-			-0.003049, 1.017738
-			-0.003049, -0.017738
-			-0.003049, -0.017738
-			1.003049, -0.017738
-			1.003049, 1.017738
+			1.003049 1.017738
+			-0.003049 1.017738
+			-0.003049 -0.017738
+			-0.003049 -0.017738
+			1.003049 -0.017738
+			1.003049 1.017738
 		</texture>
 		<image name="rank_b_pla.bmp">
 			Qk04GAAAAAAAADYAAAAoAAAAQAAAACAAAAABABgAAAAAAAIYAACfDwAAnw8AAAAAAAAAAAAAAAAA
@@ -6686,31 +6686,31 @@
 	</surface>
 	<surface name="rank_b_mins" size="6" prim="Triangle" parent="titlefont_emperor">
 		<coordinate>
-			66.211846, -104.418335, 0.410289
-			58.211847, -104.418335, 0.410289
-			58.211845, -108.418335, 0.410289
-			58.211845, -108.418335, 0.410289
-			66.211846, -108.418335, 0.410289
-			66.211846, -104.418335, 0.410289
+			66.211846 -104.418335 0.410289
+			58.211847 -104.418335 0.410289
+			58.211845 -108.418335 0.410289
+			58.211845 -108.418335 0.410289
+			66.211846 -108.418335 0.410289
+			66.211846 -104.418335 0.410289
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			62.211845, -106.418335, 0.410289
+			62.211845 -106.418335 0.410289
 		</model>
 		<texture>
-			1.012805, 1.007603
-			-0.012804, 1.007603
-			-0.012805, -0.007603
-			-0.012805, -0.007603
-			1.012805, -0.007603
-			1.012805, 1.007603
+			1.012805 1.007603
+			-0.012804 1.007603
+			-0.012805 -0.007603
+			-0.012805 -0.007603
+			1.012805 -0.007603
+			1.012805 1.007603
 		</texture>
 		<image name="rank_b_mins.bmp">
 			Qk04GAAAAAAAADYAAAAoAAAAQAAAACAAAAABABgAAAAAAAIYAAAiDwAAIg8AAAAAAAAAAAAAAAAA
@@ -6826,31 +6826,31 @@
 	</surface>
 	<surface name="font_8" size="6" prim="Triangle" parent="font_5">
 		<coordinate>
-			6.966396, -3.637081, 0.785928
-			2.966397, -3.637080, 0.785928
-			2.966396, -7.637080, 0.785928
-			2.966396, -7.637080, 0.785928
-			6.966396, -7.637081, 0.785928
-			6.966396, -3.637081, 0.785928
+			6.966396 -3.637081 0.785928
+			2.966397 -3.637080 0.785928
+			2.966396 -7.637080 0.785928
+			2.966396 -7.637080 0.785928
+			6.966396 -7.637081 0.785928
+			6.966396 -3.637081 0.785928
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			4.966396, -5.637080, 0.785928
+			4.966396 -5.637080 0.785928
 		</model>
 		<texture>
-			1.000000, 1.000000
-			0.000000, 1.000000
-			0.000000, 0.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
 		</texture>
 		<image name="font_8.bmp">
 			Qk04DAAAAAAAADYAAAAoAAAAIAAAACAAAAABABgAAAAAAAIMAACfDwAAnw8AAAAAAAAAAAAAAAAA
@@ -6912,31 +6912,31 @@
 	</surface>
 	<surface name="font_1" size="6" prim="Triangle" parent="font_0">
 		<coordinate>
-			-2.176529, 8.699378, 0.785928
-			-6.176529, 8.699379, 0.785928
-			-6.176530, 4.699378, 0.785928
-			-6.176530, 4.699378, 0.785928
-			-2.176529, 4.699378, 0.785928
-			-2.176529, 8.699378, 0.785928
+			-2.176529 8.699378 0.785928
+			-6.176529 8.699379 0.785928
+			-6.176530 4.699378 0.785928
+			-6.176530 4.699378 0.785928
+			-2.176529 4.699378 0.785928
+			-2.176529 8.699378 0.785928
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-4.176530, 6.699379, 0.785928
+			-4.176530 6.699379 0.785928
 		</model>
 		<texture>
-			1.000000, 1.000000
-			0.000000, 1.000000
-			0.000000, 0.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
 		</texture>
 		<image name="font_1.bmp">
 			Qk04DAAAAAAAADYAAAAoAAAAIAAAACAAAAABABgAAAAAAAIMAAAiDwAAIg8AAAAAAAAAAAAAAAAA
@@ -6998,31 +6998,31 @@
 	</surface>
 	<surface name="font_4" size="6" prim="Triangle" parent="font_1">
 		<coordinate>
-			2.459067, 2.358871, 0.978458
-			-1.540933, 2.358871, 0.978458
-			-1.540934, -1.641129, 0.978458
-			-1.540934, -1.641129, 0.978458
-			2.459067, -1.641129, 0.978458
-			2.459067, 2.358871, 0.978458
+			2.459067 2.358871 0.978458
+			-1.540933 2.358871 0.978458
+			-1.540934 -1.641129 0.978458
+			-1.540934 -1.641129 0.978458
+			2.459067 -1.641129 0.978458
+			2.459067 2.358871 0.978458
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			0.459066, 0.358871, 0.978458
+			0.459066 0.358871 0.978458
 		</model>
 		<texture>
-			1.000000, 1.000000
-			0.000000, 1.000000
-			0.000000, 0.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
 		</texture>
 		<image name="font_4.bmp">
 			Qk04DAAAAAAAADYAAAAoAAAAIAAAACAAAAABABgAAAAAAAIMAAAiDwAAIg8AAAAAAAAAAAAAAAAA
@@ -7084,31 +7084,31 @@
 	</surface>
 	<surface name="font_3" size="6" prim="Triangle" parent="font_1">
 		<coordinate>
-			-6.358377, 2.426607, 0.785928
-			-10.358378, 2.426608, 0.785928
-			-10.358378, -1.573393, 0.785928
-			-10.358378, -1.573393, 0.785928
-			-6.358377, -1.573394, 0.785928
-			-6.358377, 2.426607, 0.785928
+			-6.358377 2.426607 0.785928
+			-10.358378 2.426608 0.785928
+			-10.358378 -1.573393 0.785928
+			-10.358378 -1.573393 0.785928
+			-6.358377 -1.573394 0.785928
+			-6.358377 2.426607 0.785928
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-8.358378, 0.426607, 0.785928
+			-8.358378 0.426607 0.785928
 		</model>
 		<texture>
-			1.000000, 1.000000
-			0.000000, 1.000000
-			0.000000, 0.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
 		</texture>
 		<image name="font_3.bmp">
 			Qk04DAAAAAAAADYAAAAoAAAAIAAAACAAAAABABgAAAAAAAIMAACfDwAAnw8AAAAAAAAAAAAAAAAA
@@ -7170,31 +7170,31 @@
 	</surface>
 	<surface name="font_7" size="6" prim="Triangle" parent="font_3">
 		<coordinate>
-			-2.072084, -3.637080, 0.785928
-			-6.072084, -3.637079, 0.785928
-			-6.072084, -7.637079, 0.785928
-			-6.072084, -7.637079, 0.785928
-			-2.072084, -7.637080, 0.785928
-			-2.072084, -3.637080, 0.785928
+			-2.072084 -3.637080 0.785928
+			-6.072084 -3.637079 0.785928
+			-6.072084 -7.637079 0.785928
+			-6.072084 -7.637079 0.785928
+			-2.072084 -7.637080 0.785928
+			-2.072084 -3.637080 0.785928
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-4.072084, -5.637079, 0.785928
+			-4.072084 -5.637079 0.785928
 		</model>
 		<texture>
-			1.000000, 1.000000
-			0.000000, 1.000000
-			0.000000, 0.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
 		</texture>
 		<image name="font_7.bmp">
 			Qk04DAAAAAAAADYAAAAoAAAAIAAAACAAAAABABgAAAAAAAIMAAAiDwAAIg8AAAAAAAAAAAAAAAAA
@@ -7256,31 +7256,31 @@
 	</surface>
 	<surface name="font_hige" size="6" prim="Triangle" parent="font_7">
 		<coordinate>
-			5.677660, -11.548438, 0.957146
-			-10.300280, -11.571357, 0.402392
-			-10.323204, -15.569894, 0.456267
-			-10.323204, -15.569894, 0.456267
-			5.654740, -15.546974, 1.011021
-			5.677660, -11.548438, 0.957146
+			5.677660 -11.548438 0.957146
+			-10.300280 -11.571357 0.402392
+			-10.323204 -15.569894 0.456267
+			-10.323204 -15.569894 0.456267
+			5.654740 -15.546974 1.011021
+			5.677660 -11.548438 0.957146
 		</coordinate>
 		<normal>
-			-0.034715, 0.013663, 0.999304
-			-0.034715, 0.013663, 0.999304
-			-0.034715, 0.013663, 0.999304
-			-0.034715, 0.013663, 0.999304
-			-0.034715, 0.013663, 0.999304
-			-0.034715, 0.013663, 0.999304
+			-0.034715 0.013663 0.999304
+			-0.034715 0.013663 0.999304
+			-0.034715 0.013663 0.999304
+			-0.034715 0.013663 0.999304
+			-0.034715 0.013663 0.999304
+			-0.034715 0.013663 0.999304
 		</normal>
 		<model>
-			-2.322771, -13.559166, 0.706707
+			-2.322771 -13.559166 0.706707
 		</model>
 		<texture>
-			1.002085, 1.004073
-			-0.002085, 1.004073
-			-0.002085, -0.004073
-			-0.002085, -0.004073
-			1.002085, -0.004073
-			1.002085, 1.004073
+			1.002085 1.004073
+			-0.002085 1.004073
+			-0.002085 -0.004073
+			-0.002085 -0.004073
+			1.002085 -0.004073
+			1.002085 1.004073
 		</texture>
 		<image name="font_hige.bmp">
 			Qk04MAAAAAAAADYAAAAoAAAAgAAAACAAAAABABgAAAAAAAIwAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -7504,31 +7504,31 @@
 	</surface>
 	<surface name="font_000000" size="6" prim="Triangle" parent="font_hige">
 		<coordinate>
-			31.852591, -18.962917, 0.410289
-			-0.147404, -18.962917, 0.410289
-			-0.147413, -22.962917, 0.410289
-			-0.147413, -22.962917, 0.410289
-			31.852591, -22.962917, 0.410289
-			31.852591, -18.962917, 0.410289
+			31.852591 -18.962917 0.410289
+			-0.147404 -18.962917 0.410289
+			-0.147413 -22.962917 0.410289
+			-0.147413 -22.962917 0.410289
+			31.852591 -22.962917 0.410289
+			31.852591 -18.962917 0.410289
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			15.852587, -20.962917, 0.410289
+			15.852587 -20.962917 0.410289
 		</model>
 		<texture>
-			0.996428, 1.036241
-			0.003572, 1.036241
-			0.003571, -0.036241
-			0.003571, -0.036241
-			0.996428, -0.036241
-			0.996428, 1.036241
+			0.996428 1.036241
+			0.003572 1.036241
+			0.003571 -0.036241
+			0.003571 -0.036241
+			0.996428 -0.036241
+			0.996428 1.036241
 		</texture>
 		<image name="font_000000.bmp">
 			Qk04YAAAAAAAADYAAAAoAAAAAAEAACAAAAABABgAAAAAAAJgAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -7968,31 +7968,31 @@
 	</surface>
 	<surface name="font_0000000" size="6" prim="Triangle" parent="font_000000">
 		<coordinate>
-			25.711535, -26.368504, 0.410289
-			-6.288459, -26.368503, 0.410289
-			-6.288465, -30.368504, 0.410289
-			-6.288465, -30.368504, 0.410289
-			25.711535, -30.368504, 0.410289
-			25.711535, -26.368504, 0.410289
+			25.711535 -26.368504 0.410289
+			-6.288459 -26.368503 0.410289
+			-6.288465 -30.368504 0.410289
+			-6.288465 -30.368504 0.410289
+			25.711535 -30.368504 0.410289
+			25.711535 -26.368504 0.410289
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			9.711535, -28.368504, 0.410289
+			9.711535 -28.368504 0.410289
 		</model>
 		<texture>
-			0.996113, 1.004549
-			0.003887, 1.004549
-			0.003886, -0.004549
-			0.003886, -0.004549
-			0.996113, -0.004549
-			0.996113, 1.004549
+			0.996113 1.004549
+			0.003887 1.004549
+			0.003886 -0.004549
+			0.003886 -0.004549
+			0.996113 -0.004549
+			0.996113 1.004549
 		</texture>
 		<image name="font_0000000.bmp">
 			Qk04YAAAAAAAADYAAAAoAAAAAAEAACAAAAABABgAAAAAAAJgAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -8430,33 +8430,33 @@
 			AAAAAAAAAAA=
 		</image>
 	</surface>
-	<surface name="font_player_1" size="6" prim="Triangle" parent="font_0000000">
+	<surface name="font_player1" size="6" prim="Triangle" parent="font_0000000">
 		<coordinate>
-			1.817307, -33.773770, 0.410289
-			-14.182692, -33.773769, 0.410289
-			-14.182695, -37.773769, 0.410289
-			-14.182695, -37.773769, 0.410289
-			1.817307, -37.773769, 0.410289
-			1.817307, -33.773770, 0.410289
+			1.817307 -33.773770 0.410289
+			-14.182692 -33.773769 0.410289
+			-14.182695 -37.773769 0.410289
+			-14.182695 -37.773769 0.410289
+			1.817307 -37.773769 0.410289
+			1.817307 -33.773770 0.410289
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-6.182694, -35.773769, 0.410289
+			-6.182694 -35.773769 0.410289
 		</model>
 		<texture>
-			0.994694, 1.024219
-			0.005306, 1.024219
-			0.005306, -0.024219
-			0.005306, -0.024219
-			0.994694, -0.024219
-			0.994694, 1.024219
+			0.994694 1.024219
+			0.005306 1.024219
+			0.005306 -0.024219
+			0.005306 -0.024219
+			0.994694 -0.024219
+			0.994694 1.024219
 		</texture>
 		<image name="font_player_1.bmp">
 			Qk04MAAAAAAAADYAAAAoAAAAgAAAACAAAAABABgAAAAAAAIwAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -8680,31 +8680,31 @@
 	</surface>
 	<surface name="font_pushstart" size="6" prim="Triangle" parent="font_player_1">
 		<coordinate>
-			40.266077, -41.179428, 0.410289
-			-23.733910, -41.179428, 0.410289
-			-23.733923, -45.179428, 0.410289
-			-23.733923, -45.179428, 0.410289
-			40.266077, -45.179428, 0.410289
-			40.266077, -41.179428, 0.410289
+			40.266077 -41.179428 0.410289
+			-23.733910 -41.179428 0.410289
+			-23.733923 -45.179428 0.410289
+			-23.733923 -45.179428 0.410289
+			40.266077 -45.179428 0.410289
+			40.266077 -41.179428 0.410289
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			8.266077, -43.179428, 0.410289
+			8.266077 -43.179428 0.410289
 		</model>
 		<texture>
-			0.988783, 1.001454
-			0.011218, 1.001454
-			0.011217, -0.001454
-			0.011217, -0.001454
-			0.988783, -0.001454
-			0.988783, 1.001454
+			0.988783 1.001454
+			0.011218 1.001454
+			0.011217 -0.001454
+			0.011217 -0.001454
+			0.988783 -0.001454
+			0.988783 1.001454
 		</texture>
 		<image name="font_pushstart.bmp">
 			Qk04wAAAAAAAADYAAAAoAAAAAAIAACAAAAABABgAAAAAAALAAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -9575,31 +9575,31 @@
 	</surface>
 	<surface name="titlefont_battle" size="6" prim="Triangle" parent="font_pushstart">
 		<coordinate>
-			19.414019, -62.255586, 0.410289
-			-12.585981, -62.255586, 0.410289
-			-12.585981, -94.255584, 0.410289
-			-12.585981, -94.255584, 0.410289
-			19.414019, -94.255584, 0.410289
-			19.414019, -62.255586, 0.410289
+			19.414019 -62.255586 0.410289
+			-12.585981 -62.255586 0.410289
+			-12.585981 -94.255584 0.410289
+			-12.585981 -94.255584 0.410289
+			19.414019 -94.255584 0.410289
+			19.414019 -62.255586 0.410289
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			3.414019, -78.255585, 0.410289
+			3.414019 -78.255585 0.410289
 		</model>
 		<texture>
-			1.000000, 1.000000
-			0.000000, 1.000000
-			0.000000, 0.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
 		</texture>
 		<image name="titlefont_battle.bmp">
 			Qk04AAMAAAAAADYAAAAoAAAAAAEAAAABAAABABgAAAAAAAIAAwC1DgAAtQ4AAAAAAAAAAAAAAAAA
@@ -13057,31 +13057,31 @@
 	</surface>
 	<surface name="rank_b" size="6" prim="Triangle" parent="titlefont_battle">
 		<coordinate>
-			16.403276, -104.792831, 0.410289
-			8.403276, -104.792831, 0.410289
-			8.403276, -108.792831, 0.410289
-			8.403276, -108.792831, 0.410289
-			16.403276, -108.792831, 0.410289
-			16.403276, -104.792831, 0.410289
+			16.403276 -104.792831 0.410289
+			8.403276 -104.792831 0.410289
+			8.403276 -108.792831 0.410289
+			8.403276 -108.792831 0.410289
+			16.403276 -108.792831 0.410289
+			16.403276 -104.792831 0.410289
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			12.403276, -106.792831, 0.410289
+			12.403276 -106.792831 0.410289
 		</model>
 		<texture>
-			1.018779, 1.004537
-			-0.018779, 1.004537
-			-0.018779, -0.004537
-			-0.018779, -0.004537
-			1.018779, -0.004537
-			1.018779, 1.004537
+			1.018779 1.004537
+			-0.018779 1.004537
+			-0.018779 -0.004537
+			-0.018779 -0.004537
+			1.018779 -0.004537
+			1.018779 1.004537
 		</texture>
 		<image name="rank_b.bmp">
 			Qk04GAAAAAAAADYAAAAoAAAAQAAAACAAAAABABgAAAAAAAIYAAAiDwAAIg8AAAAAAAAAAAAAAAAA
@@ -13197,31 +13197,31 @@
 	</surface>
 	<surface name="rank_sss" size="6" prim="Triangle" parent="rank_b">
 		<coordinate>
-			26.140293, -117.525843, 0.410289
-			18.140295, -117.525841, 0.410289
-			18.140292, -121.525842, 0.410289
-			18.140292, -121.525842, 0.410289
-			26.140293, -121.525842, 0.410289
-			26.140293, -117.525843, 0.410289
+			26.140293 -117.525843 0.410289
+			18.140295 -117.525841 0.410289
+			18.140292 -121.525842 0.410289
+			18.140292 -121.525842 0.410289
+			26.140293 -121.525842 0.410289
+			26.140293 -117.525843 0.410289
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			22.140293, -119.525841, 0.410289
+			22.140293 -119.525841 0.410289
 		</model>
 		<texture>
-			1.005288, 1.015555
-			-0.005288, 1.015555
-			-0.005288, -0.015555
-			-0.005288, -0.015555
-			1.005288, -0.015555
-			1.005288, 1.015555
+			1.005288 1.015555
+			-0.005288 1.015555
+			-0.005288 -0.015555
+			-0.005288 -0.015555
+			1.005288 -0.015555
+			1.005288 1.015555
 		</texture>
 		<image name="rank_sss.bmp">
 			Qk04GAAAAAAAADYAAAAoAAAAQAAAACAAAAABABgAAAAAAAIYAAAcEAAAHBAAAAAAAAAAAAAAAAAA
@@ -13337,31 +13337,31 @@
 	</surface>
 	<surface name="rank_a_pla" size="6" prim="Triangle" parent="titlefont_battle">
 		<coordinate>
-			-4.568754, -104.792832, 0.410289
-			-12.568753, -104.792831, 0.410289
-			-12.568755, -108.792831, 0.410289
-			-12.568755, -108.792831, 0.410289
-			-4.568754, -108.792831, 0.410289
-			-4.568754, -104.792832, 0.410289
+			-4.568754 -104.792832 0.410289
+			-12.568753 -104.792831 0.410289
+			-12.568755 -108.792831 0.410289
+			-12.568755 -108.792831 0.410289
+			-4.568754 -108.792831 0.410289
+			-4.568754 -104.792832 0.410289
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-8.568754, -106.792831, 0.410289
+			-8.568754 -106.792831 0.410289
 		</model>
 		<texture>
-			1.010424, 0.996218
-			-0.010424, 0.996218
-			-0.010424, 0.003782
-			-0.010424, 0.003782
-			1.010424, 0.003782
-			1.010424, 0.996218
+			1.010424 0.996218
+			-0.010424 0.996218
+			-0.010424 0.003782
+			-0.010424 0.003782
+			1.010424 0.003782
+			1.010424 0.996218
 		</texture>
 		<image name="rank_a_pla.bmp">
 			Qk04GAAAAAAAADYAAAAoAAAAQAAAACAAAAABABgAAAAAAAIYAACZEAAAmRAAAAAAAAAAAAAAAAAA
@@ -13477,31 +13477,31 @@
 	</surface>
 	<surface name="rank_ss" size="6" prim="Triangle" parent="rank_a_pla">
 		<coordinate>
-			6.291766, -117.900345, 0.410289
-			-1.708232, -117.900345, 0.410289
-			-1.708236, -121.900345, 0.410289
-			-1.708236, -121.900345, 0.410289
-			6.291766, -121.900345, 0.410289
-			6.291766, -117.900345, 0.410289
+			6.291766 -117.900345 0.410289
+			-1.708232 -117.900345 0.410289
+			-1.708236 -121.900345 0.410289
+			-1.708236 -121.900345 0.410289
+			6.291766 -121.900345 0.410289
+			6.291766 -117.900345 0.410289
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			2.291764, -119.900345, 0.410289
+			2.291764 -119.900345 0.410289
 		</model>
 		<texture>
-			1.006578, 1.009567
-			-0.006579, 1.009567
-			-0.006579, -0.009567
-			-0.006579, -0.009567
-			1.006578, -0.009567
-			1.006578, 1.009567
+			1.006578 1.009567
+			-0.006579 1.009567
+			-0.006579 -0.009567
+			-0.006579 -0.009567
+			1.006578 -0.009567
+			1.006578 1.009567
 		</texture>
 		<image name="rank_ss.bmp">
 			Qk04GAAAAAAAADYAAAAoAAAAQAAAACAAAAABABgAAAAAAAIYAAAiDwAAIg8AAAAAAAAAAAAAAAAA
@@ -13617,31 +13617,31 @@
 	</surface>
 	<surface name="rank_s" size="6" prim="Triangle" parent="rank_a_pla">
 		<coordinate>
-			-13.182263, -117.900345, 0.410289
-			-21.182262, -117.900341, 0.410289
-			-21.182264, -121.900341, 0.410289
-			-21.182264, -121.900341, 0.410289
-			-13.182263, -121.900345, 0.410289
-			-13.182263, -117.900345, 0.410289
+			-13.182263 -117.900345 0.410289
+			-21.182262 -117.900341 0.410289
+			-21.182264 -121.900341 0.410289
+			-21.182264 -121.900341 0.410289
+			-13.182263 -121.900345 0.410289
+			-13.182263 -117.900345 0.410289
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-17.182264, -119.900345, 0.410289
+			-17.182264 -119.900345 0.410289
 		</model>
 		<texture>
-			1.003029, 0.994713
-			-0.003029, 0.994713
-			-0.003029, 0.005287
-			-0.003029, 0.005287
-			1.003029, 0.005287
-			1.003029, 0.994713
+			1.003029 0.994713
+			-0.003029 0.994713
+			-0.003029 0.005287
+			-0.003029 0.005287
+			1.003029 0.005287
+			1.003029 0.994713
 		</texture>
 		<image name="rank_s.bmp">
 			Qk04GAAAAAAAADYAAAAoAAAAQAAAACAAAAABABgAAAAAAAIYAAAcEAAAHBAAAAAAAAAAAAAAAAAA
@@ -13757,31 +13757,31 @@
 	</surface>
 	<surface name="font_6" size="6" prim="Triangle" parent="font_3">
 		<coordinate>
-			-10.435715, -3.637080, 0.785928
-			-14.435713, -3.637079, 0.785928
-			-14.435717, -7.637079, 0.785928
-			-14.435717, -7.637079, 0.785928
-			-10.435715, -7.637079, 0.785928
-			-10.435715, -3.637080, 0.785928
+			-10.435715 -3.637080 0.785928
+			-14.435713 -3.637079 0.785928
+			-14.435717 -7.637079 0.785928
+			-14.435717 -7.637079 0.785928
+			-10.435715 -7.637079 0.785928
+			-10.435715 -3.637080 0.785928
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-12.435717, -5.637079, 0.785928
+			-12.435717 -5.637079 0.785928
 		</model>
 		<texture>
-			1.000000, 1.000000
-			0.000000, 1.000000
-			0.000000, 0.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
 		</texture>
 		<image name="font_6.bmp">
 			Qk04DAAAAAAAADYAAAAoAAAAIAAAACAAAAABABgAAAAAAAIMAAAiDwAAIg8AAAAAAAAAAAAAAAAA
@@ -13843,31 +13843,31 @@
 	</surface>
 	<surface name="font_rest" size="6" prim="Triangle" parent="font_6">
 		<coordinate>
-			-14.330431, -11.592185, 1.647677
-			-30.308372, -11.615104, 1.092923
-			-30.331297, -15.613641, 1.146798
-			-30.331297, -15.613641, 1.146798
-			-14.353352, -15.590721, 1.701552
-			-14.330431, -11.592185, 1.647677
+			-14.330431 -11.592185 1.647677
+			-30.308372 -11.615104 1.092923
+			-30.331297 -15.613641 1.146798
+			-30.331297 -15.613641 1.146798
+			-14.353352 -15.590721 1.701552
+			-14.330431 -11.592185 1.647677
 		</coordinate>
 		<normal>
-			-0.034715, 0.013663, 0.999304
-			-0.034715, 0.013663, 0.999304
-			-0.034715, 0.013663, 0.999304
-			-0.034715, 0.013663, 0.999304
-			-0.034715, 0.013663, 0.999304
-			-0.034715, 0.013663, 0.999304
+			-0.034715 0.013663 0.999304
+			-0.034715 0.013663 0.999304
+			-0.034715 0.013663 0.999304
+			-0.034715 0.013663 0.999304
+			-0.034715 0.013663 0.999304
+			-0.034715 0.013663 0.999304
 		</normal>
 		<model>
-			-22.330864, -13.602913, 1.397238
+			-22.330864 -13.602913 1.397238
 		</model>
 		<texture>
-			1.002552, 1.027330
-			-0.002552, 1.027331
-			-0.002552, 0.035170
-			-0.002552, 0.035170
-			1.002552, 0.035169
-			1.002552, 1.027330
+			1.002552 1.027330
+			-0.002552 1.027331
+			-0.002552 0.035170
+			-0.002552 0.035170
+			1.002552 0.035169
+			1.002552 1.027330
 		</texture>
 		<image name="font_rest.bmp">
 			Qk04MAAAAAAAADYAAAAoAAAAgAAAACAAAAABABgAAAAAAAIwAAAiDwAAIg8AAAAAAAAAAAAAAAAA
@@ -14091,31 +14091,31 @@
 	</surface>
 	<surface name="font_nysoft" size="6" prim="Triangle" parent="font_rest">
 		<coordinate>
-			-1.748287, -18.930382, 0.410289
-			-65.748276, -18.930382, 0.410289
-			-65.748295, -22.930382, 0.410289
-			-65.748295, -22.930382, 0.410289
-			-1.748287, -22.930382, 0.410289
-			-1.748287, -18.930382, 0.410289
+			-1.748287 -18.930382 0.410289
+			-65.748276 -18.930382 0.410289
+			-65.748295 -22.930382 0.410289
+			-65.748295 -22.930382 0.410289
+			-1.748287 -22.930382 0.410289
+			-1.748287 -18.930382 0.410289
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-33.748291, -20.930382, 0.410289
+			-33.748291 -20.930382 0.410289
 		</model>
 		<texture>
-			1.010534, 1.015861
-			-0.010533, 1.015861
-			-0.010534, -0.015861
-			-0.010534, -0.015861
-			1.010534, -0.015861
-			1.010534, 1.015861
+			1.010534 1.015861
+			-0.010533 1.015861
+			-0.010534 -0.015861
+			-0.010534 -0.015861
+			1.010534 -0.015861
+			1.010534 1.015861
 		</texture>
 		<image name="font_nysoft.bmp">
 			Qk04wAAAAAAAADYAAAAoAAAAAAIAACAAAAABABgAAAAAAALAAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -14986,31 +14986,31 @@
 	</surface>
 	<surface name="font_1997yas_k" size="6" prim="Triangle" parent="font_nysoft">
 		<coordinate>
-			-9.098606, -26.065899, 0.410289
-			-73.098593, -26.065899, 0.410289
-			-73.098606, -30.065899, 0.410289
-			-73.098606, -30.065899, 0.410289
-			-9.098606, -30.065899, 0.410289
-			-9.098606, -26.065899, 0.410289
+			-9.098606 -26.065899 0.410289
+			-73.098593 -26.065899 0.410289
+			-73.098606 -30.065899 0.410289
+			-73.098606 -30.065899 0.410289
+			-9.098606 -30.065899 0.410289
+			-9.098606 -26.065899 0.410289
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-41.098606, -28.065899, 0.410289
+			-41.098606 -28.065899 0.410289
 		</model>
 		<texture>
-			1.004165, 1.016545
-			-0.008071, 1.016545
-			-0.008072, -0.016544
-			-0.008072, -0.016544
-			1.004165, -0.016544
-			1.004165, 1.016545
+			1.004165 1.016545
+			-0.008071 1.016545
+			-0.008072 -0.016544
+			-0.008072 -0.016544
+			1.004165 -0.016544
+			1.004165 1.016545
 		</texture>
 		<image name="font_1997yas_k.bmp">
 			Qk04wAAAAAAAADYAAAAoAAAAAAIAACAAAAABABgAAAAAAALAAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -15881,31 +15881,31 @@
 	</surface>
 	<surface name="font_1997yggdrasil" size="6" prim="Triangle" parent="font_1997yas_k">
 		<coordinate>
-			-16.112499, -33.758370, 0.410289
-			-80.112486, -33.758369, 0.410289
-			-80.112499, -37.758369, 0.410289
-			-80.112499, -37.758369, 0.410289
-			-16.112499, -37.758370, 0.410289
-			-16.112499, -33.758370, 0.410289
+			-16.112499 -33.758370 0.410289
+			-80.112486 -33.758369 0.410289
+			-80.112499 -37.758369 0.410289
+			-80.112499 -37.758369 0.410289
+			-16.112499 -37.758370 0.410289
+			-16.112499 -33.758370 0.410289
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-48.112499, -35.758369, 0.410289
+			-48.112499 -35.758369 0.410289
 		</model>
 		<texture>
-			0.984880, 1.003860
-			0.015120, 1.003860
-			0.015119, -0.003860
-			0.015119, -0.003860
-			0.984880, -0.003860
-			0.984880, 1.003860
+			0.984880 1.003860
+			0.015120 1.003860
+			0.015119 -0.003860
+			0.015119 -0.003860
+			0.984880 -0.003860
+			0.984880 1.003860
 		</texture>
 		<image name="font_1997yggdrasil.bm">
 			Qk04wAAAAAAAADYAAAAoAAAAAAIAACAAAAABABgAAAAAAALAAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -16776,31 +16776,31 @@
 	</surface>
 	<surface name="font_allstageclear" size="6" prim="Triangle" parent="font_1997yggdrasil">
 		<coordinate>
-			-25.031960, -41.143849, 0.410289
-			-89.031948, -41.143848, 0.410289
-			-89.031967, -45.143848, 0.410289
-			-89.031967, -45.143848, 0.410289
-			-25.031960, -45.143849, 0.410289
-			-25.031960, -41.143849, 0.410289
+			-25.031960 -41.143849 0.410289
+			-89.031948 -41.143848 0.410289
+			-89.031967 -45.143848 0.410289
+			-89.031967 -45.143848 0.410289
+			-25.031960 -45.143849 0.410289
+			-25.031960 -41.143849 0.410289
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-57.031963, -43.143848, 0.410289
+			-57.031963 -43.143848 0.410289
 		</model>
 		<texture>
-			0.987160, 0.996578
-			0.012840, 0.996578
-			0.012839, 0.003422
-			0.012839, 0.003422
-			0.987160, 0.003422
-			0.987160, 0.996578
+			0.987160 0.996578
+			0.012840 0.996578
+			0.012839 0.003422
+			0.012839 0.003422
+			0.987160 0.003422
+			0.987160 0.996578
 		</texture>
 		<image name="font_allstageclear.bm">
 			Qk04wAAAAAAAADYAAAAoAAAAAAIAACAAAAABABgAAAAAAALAAAALDwAACw8AAAAAAAAAAAAAAAAA
@@ -17671,31 +17671,31 @@
 	</surface>
 	<surface name="font_doyoucontinue" size="6" prim="Triangle" parent="font_allstageclear">
 		<coordinate>
-			-37.399345, -49.848672, 0.410289
-			-101.399330, -49.848671, 0.410289
-			-101.399345, -53.848671, 0.410289
-			-101.399345, -53.848671, 0.410289
-			-37.399345, -53.848671, 0.410289
-			-37.399345, -49.848672, 0.410289
+			-37.399345 -49.848672 0.410289
+			-101.399330 -49.848671 0.410289
+			-101.399345 -53.848671 0.410289
+			-101.399345 -53.848671 0.410289
+			-37.399345 -53.848671 0.410289
+			-37.399345 -49.848672 0.410289
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-69.399345, -51.848671, 0.410289
+			-69.399345 -51.848671 0.410289
 		</model>
 		<texture>
-			0.986786, 0.995261
-			0.013214, 0.995261
-			0.013213, 0.004739
-			0.013213, 0.004739
-			0.986786, 0.004739
-			0.986786, 0.995261
+			0.986786 0.995261
+			0.013214 0.995261
+			0.013213 0.004739
+			0.013213 0.004739
+			0.986786 0.004739
+			0.986786 0.995261
 		</texture>
 		<image name="font_doyoucontinue.bm">
 			Qk04wAAAAAAAADYAAAAoAAAAAAIAACAAAAABABgAAAAAAALAAADDDgAAww4AAAAAAAAAAAAAAAAA
@@ -18566,31 +18566,31 @@
 	</surface>
 	<surface name="titlefont_super" size="6" prim="Triangle" parent="font_doyoucontinue">
 		<coordinate>
-			-48.158157, -62.217595, 0.410289
-			-80.158152, -62.217587, 0.410289
-			-80.158159, -94.217590, 0.410289
-			-80.158159, -94.217590, 0.410289
-			-48.158157, -94.217594, 0.410289
-			-48.158157, -62.217595, 0.410289
+			-48.158157 -62.217595 0.410289
+			-80.158152 -62.217587 0.410289
+			-80.158159 -94.217590 0.410289
+			-80.158159 -94.217590 0.410289
+			-48.158157 -94.217594 0.410289
+			-48.158157 -62.217595 0.410289
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-64.158157, -78.217590, 0.410289
+			-64.158157 -78.217590 0.410289
 		</model>
 		<texture>
-			1.000000, 1.000000
-			0.000000, 1.000000
-			0.000000, 0.000000
-			0.000000, 0.000000
-			1.000000, 0.000000
-			1.000000, 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
 		</texture>
 		<image name="titlefont_super.bmp">
 			Qk04AAMAAAAAADYAAAAoAAAAAAEAAAABAAABABgAAAAAAAIAAwDEDgAAxA4AAAAAAAAAAAAAAAAA
@@ -22048,31 +22048,31 @@
 	</surface>
 	<surface name="rank_a_mins" size="6" prim="Triangle" parent="titlefont_super">
 		<coordinate>
-			-52.504822, -105.541840, 0.410289
-			-60.504820, -105.541839, 0.410289
-			-60.504823, -109.541839, 0.410289
-			-60.504823, -109.541839, 0.410289
-			-52.504822, -109.541840, 0.410289
-			-52.504822, -105.541840, 0.410289
+			-52.504822 -105.541840 0.410289
+			-60.504820 -105.541839 0.410289
+			-60.504823 -109.541839 0.410289
+			-60.504823 -109.541839 0.410289
+			-52.504822 -109.541840 0.410289
+			-52.504822 -105.541840 0.410289
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-56.504822, -107.541840, 0.410289
+			-56.504822 -107.541840 0.410289
 		</model>
 		<texture>
-			1.006675, 0.996732
-			-0.006675, 0.996732
-			-0.006675, 0.003268
-			-0.006675, 0.003268
-			1.006675, 0.003268
-			1.006675, 0.996732
+			1.006675 0.996732
+			-0.006675 0.996732
+			-0.006675 0.003268
+			-0.006675 0.003268
+			1.006675 0.003268
+			1.006675 0.996732
 		</texture>
 		<image name="rank_a_mins.bmp">
 			Qk04GAAAAAAAADYAAAAoAAAAQAAAACAAAAABABgAAAAAAAIYAAAiDwAAIg8AAAAAAAAAAAAAAAAA
@@ -22188,31 +22188,31 @@
 	</surface>
 	<surface name="rank_c_pla" size="6" prim="Triangle" parent="rank_a_mins">
 		<coordinate>
-			-43.891308, -118.274857, 0.410289
-			-51.891306, -118.274857, 0.410289
-			-51.891308, -122.274857, 0.410289
-			-51.891308, -122.274857, 0.410289
-			-43.891308, -122.274857, 0.410289
-			-43.891308, -118.274857, 0.410289
+			-43.891308 -118.274857 0.410289
+			-51.891306 -118.274857 0.410289
+			-51.891308 -122.274857 0.410289
+			-51.891308 -122.274857 0.410289
+			-43.891308 -122.274857 0.410289
+			-43.891308 -118.274857 0.410289
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-47.891308, -120.274857, 0.410289
+			-47.891308 -120.274857 0.410289
 		</model>
 		<texture>
-			1.019749, 1.013210
-			-0.019749, 1.013210
-			-0.019749, -0.013210
-			-0.019749, -0.013210
-			1.019749, -0.013210
-			1.019749, 1.013210
+			1.019749 1.013210
+			-0.019749 1.013210
+			-0.019749 -0.013210
+			-0.019749 -0.013210
+			1.019749 -0.013210
+			1.019749 1.013210
 		</texture>
 		<image name="rank_c_pla.bmp">
 			Qk04GAAAAAAAADYAAAAoAAAAQAAAACAAAAABABgAAAAAAAIYAAAiDwAAIg8AAAAAAAAAAAAAAAAA
@@ -22328,31 +22328,31 @@
 	</surface>
 	<surface name="rank_a" size="6" prim="Triangle" parent="titlefont_super">
 		<coordinate>
-			-71.979897, -105.916245, 0.410289
-			-79.979897, -105.916245, 0.410289
-			-79.979897, -109.916245, 0.410289
-			-79.979897, -109.916245, 0.410289
-			-71.979897, -109.916245, 0.410289
-			-71.979897, -105.916245, 0.410289
+			-71.979897 -105.916245 0.410289
+			-79.979897 -105.916245 0.410289
+			-79.979897 -109.916245 0.410289
+			-79.979897 -109.916245 0.410289
+			-71.979897 -109.916245 0.410289
+			-71.979897 -105.916245 0.410289
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-75.979897, -107.916245, 0.410289
+			-75.979897 -107.916245 0.410289
 		</model>
 		<texture>
-			1.019419, 1.006483
-			-0.019419, 1.006483
-			-0.019419, -0.006483
-			-0.019419, -0.006483
-			1.019419, -0.006483
-			1.019419, 1.006483
+			1.019419 1.006483
+			-0.019419 1.006483
+			-0.019419 -0.006483
+			-0.019419 -0.006483
+			1.019419 -0.006483
+			1.019419 1.006483
 		</texture>
 		<image name="rank_a.bmp">
 			Qk04EAAAAAAAADYAAAAoAAAAQAAAACAAAAABABAAAAAAAAIQAACfDwAAnw8AAAAAAAAAAAAAAAAA
@@ -22432,31 +22432,31 @@
 	</surface>
 	<surface name="rank_c_mins" size="6" prim="Triangle" parent="rank_a">
 		<coordinate>
-			-63.365334, -118.649353, 0.410289
-			-71.365334, -118.649353, 0.410289
-			-71.365334, -122.649353, 0.410289
-			-71.365334, -122.649353, 0.410289
-			-63.365334, -122.649353, 0.410289
-			-63.365334, -118.649353, 0.410289
+			-63.365334 -118.649353 0.410289
+			-71.365334 -118.649353 0.410289
+			-71.365334 -122.649353 0.410289
+			-71.365334 -122.649353 0.410289
+			-63.365334 -122.649353 0.410289
+			-63.365334 -118.649353 0.410289
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-67.365334, -120.649353, 0.410289
+			-67.365334 -120.649353 0.410289
 		</model>
 		<texture>
-			1.009809, 1.017291
-			-0.009809, 1.017291
-			-0.009809, -0.017291
-			-0.009809, -0.017291
-			1.009809, -0.017291
-			1.009809, 1.017291
+			1.009809 1.017291
+			-0.009809 1.017291
+			-0.009809 -0.017291
+			-0.009809 -0.017291
+			1.009809 -0.017291
+			1.009809 1.017291
 		</texture>
 		<image name="rank_c_mins.bmp">
 			Qk04GAAAAAAAADYAAAAoAAAAQAAAACAAAAABABgAAAAAAAIYAAAiDwAAIg8AAAAAAAAAAAAAAAAA
@@ -22572,31 +22572,31 @@
 	</surface>
 	<surface name="rank_c" size="6" prim="Triangle" parent="rank_a">
 		<coordinate>
-			-80.217873, -118.649353, 0.410289
-			-88.217873, -118.649353, 0.410289
-			-88.217873, -122.649353, 0.410289
-			-88.217873, -122.649353, 0.410289
-			-80.217873, -122.649354, 0.410289
-			-80.217873, -118.649353, 0.410289
+			-80.217873 -118.649353 0.410289
+			-88.217873 -118.649353 0.410289
+			-88.217873 -122.649353 0.410289
+			-88.217873 -122.649353 0.410289
+			-80.217873 -122.649354 0.410289
+			-80.217873 -118.649353 0.410289
 		</coordinate>
 		<normal>
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
-			0.000000, -0.000000, 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
 		</normal>
 		<model>
-			-84.217873, -120.649353, 0.410289
+			-84.217873 -120.649353 0.410289
 		</model>
 		<texture>
-			1.020776, 1.006597
-			-0.020776, 1.006597
-			-0.020776, -0.006597
-			-0.020776, -0.006597
-			1.020776, -0.006597
-			1.020776, 1.006597
+			1.020776 1.006597
+			-0.020776 1.006597
+			-0.020776 -0.006597
+			-0.020776 -0.006597
+			1.020776 -0.006597
+			1.020776 1.006597
 		</texture>
 		<image name="rank_c.bmp">
 			Qk04GAAAAAAAADYAAAAoAAAAQAAAACAAAAABABgAAAAAAAIYAAAiDwAAIg8AAAAAAAAAAAAAAAAA