view schedule3.c @ 35:c122e3d2302e

add all state task.
author koba <koba@cr.ie.u-ryukyu.ac.jp>
date Sun, 09 Jan 2011 14:28:44 +0900
parents 7aaaaf5dde40
children 150e832193fe
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*/
//int kyeenemyno = -1;
void schedule()
{
  CHARACTER *p;
  int i;
  if (stage == 0)
    {
	switch (filpcount) {
	case 1:
	    SoundStop();
	    SoundPlay(0);
	    break;

	case FRAME_RATE * 2:
	    Putenemy(1, 120, -128, 0, 4, chara_state0);
	    break;
	case FRAME_RATE * 3:
	  Putenemy(1, 56, -128, 0, 8, chara_state0);
	  Putenemy(1, 184, -128, 0, 8, chara_state0);
	    break;
	case FRAME_RATE * 4:
	    Putenemy(1, 120, -128, 0, 4, chara_state0);
	    break;
	case FRAME_RATE * 5:
	    Putenemy(1, 224, -128, 1, 1, chara_state0);
	    Putenemy(1, 184, -128, 1, 1, chara_state0);
	    break;
	case FRAME_RATE * 6:
	    Putenemy(1, 120, -128, 1, 2, chara_state0);
	    break;
	case FRAME_RATE * 7:
	    Putenemy(1, 56, -128, 0, 1, chara_state0);
	    Putenemy(1, 184, -128, 0, 1, chara_state0);
	    break;
	case FRAME_RATE * 8:
	    Putenemy(2, 120, -128, 0, 1, chara_state0);
	    break;

	case FRAME_RATE * 12:
	    Putenemy(1, 1280 - 128 - 120, -128, 0, 1, chara_state4);
	    break;
	case FRAME_RATE * 13:
	    Putenemy(1, 1280 - 128 - 120, -128, 0, 1, chara_state4);
	    break;
	case FRAME_RATE * 14:
	    Putenemy(1, 1280 - 128 - 120, -128, 0, 1, chara_state4);
	    break;
	case FRAME_RATE * 15:
	    Putenemy(2, 1280 - 128 - 120, -128, -1, 1, chara_state4);
	    break;
	case FRAME_RATE * 16:
	    Putenemy(2, 1280 - 128 - 120, -128, 0, 1, chara_state4);
	    break;
	case FRAME_RATE * 17:
	    Putenemy(2, 1280 - 128 - 120, -128, 0, 1, chara_state4);
	    break;
	case FRAME_RATE * 18:
	    Putenemy(1, 1280 - 128 - 120, -32, 0, 1, chara_state4);
	    Putenemy(1, 1280 - 128, -128, -2, 1, chara_state4);
	    Putenemy(1, 800, -88, -1, 1, chara_state4);
	    break;

	case FRAME_RATE * 24:
	    Putenemy(1, 256, -128, 0, 1, chara_state4);
	    Putenemy(1, 1280 - 256 - 128, -128, 0, 1, chara_state4);
	    break;
	case FRAME_RATE * 25:
	    Putenemy(2, 512, -128, 0, 1, chara_state4);
	    Putenemy(2, 1280 - 128, -128, 0, 1, chara_state4);
	    break;
	case FRAME_RATE * 26:
	    Putenemy(1, 384, -128, 0, 1, chara_state4);
	    Putenemy(1, 1280 - 256, -128, 0, 2, chara_state4);
	    Putenemy(1, 512, -128, 0, 3, chara_state4);
	    Putenemy(1, 1280 - 256, -128, 0, 2, chara_state4);
	    break;
	case FRAME_RATE * 27:
	    Putenemy(2, 512, -128, 0, 3, chara_state2);
	    Putenemy(2, 256 - 128, -128, 0, 2, chara_state2);
	    Putenemy(2, 768, -128, 0, 4, chara_state2);
	    Putenemy(2, 128, -128, 0, 3, chara_state2);
	    break;
	case FRAME_RATE * 28:
	    Putenemy(1, 256, -128, 0, 1, chara_state4);
	    Putenemy(1, 1280 - 256 - 128, -128, 0, 1, chara_state4);
	    break;
	case FRAME_RATE * 29:
	    Putenemy(2, 256, -128, 0, 1, chara_state4);
	    Putenemy(2, 1280 - 256 - 128, -128, 0, 1, chara_state4);
	    break;
	case FRAME_RATE * 30:
	    Putenemy(1, 256, -128, 0, 1, chara_state4);
	    Putenemy(1, 1280 - 256 - 128, -128, 0, 1, chara_state4);
	    break;

	case FRAME_RATE * 33:
	    Putenemy(1, 256, 1088, 0, -1, chara_state5);
	    Putenemy(1, 1280 - 256 - 128, 1088, 0, -1, chara_state5);//5/22/pm5:300
	    break;
	case FRAME_RATE * 34:
	    Putenemy(2, 256, 1088, 0, -1, chara_state5);
	    Putenemy(2, 1280 - 256 - 128, 1088, 0, -1, chara_state5);
	    break;
	case FRAME_RATE * 35:
	    Putenemy(1, 256, 1088, 0, -1, chara_state5);
	    Putenemy(1, 1280 - 256 - 128, 1088, 0, -1, chara_state5);
	    break;
	case FRAME_RATE * 36:
	    Putenemy(2, 256, 1088, 0, -1, chara_state5);
	    Putenemy(2, 1280 - 256 - 128, 1088, 0, -1, chara_state5);
	    break;
	case FRAME_RATE * 37:
	    Putenemy(1, 256, 1088, 0, -1, chara_state5);
	    Putenemy(1, 1280 - 256 - 128, 1088, 0, -1, chara_state5);
	    break;
	case FRAME_RATE * 38:
	    Putenemy(2, 256, 1088, 0, -1, chara_state5);
	    Putenemy(2, 1280 - 256 - 128, 1088, 0, -1, chara_state5);
	    break;
	case FRAME_RATE * 39:
	    Putenemy(1, 256, 1088, 0, -1, chara_state5);
	    Putenemy(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(1, 256, 1088, 0, -1, chara_state6);
	    Putenemy(1, 1280 - 256 - 128, 1088, 0, -1, chara_state6);
	    break;
	case FRAME_RATE * 61:
	    Putenemy(1, 256, 1088, 0, -1, chara_state6);
	    Putenemy(1, 1280 - 256 - 128, 1088, 0, -1, chara_state6);
	    break;
	case FRAME_RATE * 62:
	    Putenemy(1, 256, 1088, 0, -1, chara_state6);
	    Putenemy(1, 1280 - 256 - 128, 1088, 0, -1, chara_state6);
	    break;
	case FRAME_RATE * 63:
	    Putenemy(1, 256, 1088, 0, -1, chara_state6);
	    Putenemy(1, 1280 - 256 - 128, 1088, 0, -1, chara_state6);
	    break;
	case FRAME_RATE * 64:
	    Putenemy(1, 256, 1088, 0, -1, chara_state6);
	    Putenemy(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
	}			//case文

	//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;
	    }
	}
    }			//stage0.end
    
    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(2, 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(2, 512, -128, 0, 2, chara_state4);
	    Putenemy(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(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(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(18, 528, 0, 0, 0, chara_state24);
	    /*  Puttama(6,100,0); */

	    Putenemy(13, 688, 28, 0, 0, chara_state31);

	    Putenemy(14, 368, 28, 0, 0, chara_state32);

	    Putenemy(11, 656, 0, 0, 0, chara_state33);
	    Putenemy(12, 400, 0, 0, 0, chara_state34);

	    Putenemy(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(1, i * 128 + 128, 0, i, rand() % 4 + 1, chara_state7);
	    }
	    break;
	case FRAME_RATE * 10:
	    for (i = 0; i < 4; i++) {
		Putenemy(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(1, 400, -128, 0, 3, chara_state3);
	    Putenemy(1, 560, -128, 0, 2, chara_state3);
	    Putenemy(1, 400, -128, 0, 1, chara_state3);
	    break;
	case FRAME_RATE * 31:
	    Putenemy(1, 400, -128, 0, 3, chara_state3);
	    Putenemy(1, 400, -128, 0, 1, chara_state3);
	    break;
	case FRAME_RATE * 32:
	    Putenemy(1, 400, -128, 0, 3, chara_state3);
	    Putenemy(1, 560, -128, 0, 2, chara_state3);
	    Putenemy(1, 400, -128, 0, 1, chara_state3);
	    break;
	case FRAME_RATE * 36:
	    Putenemy(1, 400, -128, 0, 3, chara_state3);
	    Putenemy(1, 560, -128, 0, 2, chara_state3);
	    Putenemy(1, 400, -128, 0, 1, chara_state3);
	    break;
	case FRAME_RATE * 37:
	    Putenemy(1, 440, -128, 0, 3, chara_state3);
	    break;
	case FRAME_RATE * 38:
	    Putenemy(1, 600, -128, 0, 2, chara_state3);
	    Putenemy(1, 760, -128, 0, 1, chara_state3);
	    break;
	case FRAME_RATE * 39:
	    Putenemy(1, 480, -128, 0, 3, chara_state3);
	    Putenemy(1, 640, -128, 0, 2, chara_state3);
	    Putenemy(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(1, 400, -128, 0, 1, chara_state3);
	    Putenemy(1, 560, 1008, 0, 1, chara_state3);
	    Putenemy(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(2, 440, -128, 0, -2, chara_state3);
	    break;
	case FRAME_RATE * 66:
	    Putenemy(2, 600, -128, 0, -2, chara_state3);
	    Putenemy(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(2, 480, 1040, 0, -3, chara_state3);
	    Putenemy(1, 640, 1040, 0, -2, chara_state3);
	    Putenemy(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(filpcount);
	if (filpcount > 4000)
	    filpcount = 4000;
	}
}