view src/schedule.cc @ 4:bb2fbe78c7cd

moving title scene.
author koba <koba@cr.ie.u-ryukyu.ac.jp>
date Tue, 07 Dec 2010 18:37:43 +0900
parents
children
line wrap: on
line source

#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   
}