#include "COMMON.H"
#include "KAZU.H"
#include "SPMGR.H"
#include "TASKMGR.H"
#include "SPCONT.H"
#include "SOUND.H"
#include "ZIRI.H"
#define ZIRI_TIM_POS 0+4
#define ZIRI_TIM_NUM 17
#define TIM_POS_ZIRI_EVENT_FONT 0
#define TIM_POS_ZIRI_EVENT_YORNO 1
#define TIM_POS_ZIRI_GAME_BG_A00 0+4
#define TIM_POS_ZIRI_GAME_BG_A01 1+4
#define TIM_POS_ZIRI_GAME_BG_B00 2+4
#define TIM_POS_ZIRI_GAME_BG_B01 3+4
#define TIM_POS_ZIRI_GAME_C02 4+4
#define TIM_POS_ZIRI_GAME_C03 5+4
#define TIM_POS_ZIRI_GAME_C06 6+4
#define TIM_POS_ZIRI_GAME_PARTS 7+4
#define TIM_POS_ZIRI_EVENT_BAKU00 8+4
#define TIM_POS_ZIRI_EVENT_BAKU01 9+4
#define TIM_POS_ZIRI_EVENT_BG_D00 10+4
#define TIM_POS_ZIRI_EVENT_BG_D01 11+4
#define TIM_POS_ZIRI_EVENT_C00 12+4
#define TIM_POS_ZIRI_EVENT_C01 13+4
#define TIM_POS_ZIRI_EVENT_C04 14+4
#define TIM_POS_ZIRI_EVENT_C05 15+4
#define TIM_POS_ZIRI_GAME_NEEDLE 16+4
enum{
ZIRI_CHAR_GAME_SELECT_LEVEL_BG_00,
ZIRI_CHAR_GAME_SELECT_LEVEL_BG_01,
ZIRI_CHAR_GAME_GAME_BG_00,
ZIRI_CHAR_GAME_GAME_BG_01,
ZIRI_CHAR_GAME_CLOCKMAN_00,
ZIRI_CHAR_GAME_CLOCKMAN_01,
ZIRI_CHAR_GAME_CLOCKMAN_02,
ZIRI_CHAR_GAME_CLOCKMAN_03,
ZIRI_CHAR_GAME_CLOCKMAN_04,
ZIRI_CHAR_GAME_CLOCKMAN_05,
ZIRI_CHAR_GAME_CLOCKMAN_06,
ZIRI_CHAR_GAME_CLOCKMAN_07,
ZIRI_CHAR_GAME_CLOCKMAN_08,
ZIRI_CHAR_GAME_ARROW_LEFT,
ZIRI_CHAR_GAME_ARROW_UP,
ZIRI_CHAR_GAME_ARROW_RIGHT,
ZIRI_CHAR_GAME_CLOCKMAN_SMALL_00,
ZIRI_CHAR_GAME_CLOCKMAN_SMALL_01,
ZIRI_CHAR_GAME_CLOCKMAN_APPEAR_00,
ZIRI_CHAR_GAME_CLOCKMAN_APPEAR_01,
ZIRI_CHAR_GAME_CLOCKMAN_APPEAR_02,
ZIRI_CHAR_GAME_CLOCKMAN_APPEAR_03,
ZIRI_CHAR_GAME_CLOCKMAN_09,
ZIRI_CHAR_GAME_CLOCKMAN_10,
ZIRI_CHAR_GAME_CLOCKMAN_11,
ZIRI_CHAR_GAME_CLOCKMAN_12,
ZIRI_CHAR_GAME_CLOCKMAN_13,
ZIRI_CHAR_GAME_CLOCKMAN_BREAK_00,
ZIRI_CHAR_GAME_CLOCKMAN_APPEAR_04,
ZIRI_CHAR_GAME_CLOCKMAN_APPEAR_04_FOOT_00,
ZIRI_CHAR_GAME_CLOCKMAN_APPEAR_04_FOOT_01,
ZIRI_CHAR_GAME_LIGHT_GREEN,
ZIRI_CHAR_GAME_LIGHT_YELLOW,
ZIRI_CHAR_GAME_LIGHT_RED,
ZIRI_CHAR_GAME_CLOCK_NUM_00,
ZIRI_CHAR_GAME_CLOCK_NUM_01,
ZIRI_CHAR_GAME_CLOCK_NUM_02,
ZIRI_CHAR_GAME_CLOCK_NUM_03,
ZIRI_CHAR_GAME_CLOCK_NUM_04,
ZIRI_CHAR_GAME_CLOCK_NUM_05,
ZIRI_CHAR_GAME_CLOCK_NUM_06,
ZIRI_CHAR_GAME_CLOCK_NUM_07,
ZIRI_CHAR_GAME_CLOCK_NUM_08,
ZIRI_CHAR_GAME_CLOCK_NUM_09,
ZIRI_CHAR_GAME_CLOCK_NUM_CORON,
ZIRI_CHAR_GAME_PLATE_CONGRATULATIONS,
ZIRI_CHAR_GAME_FUSE,
ZIRI_CHAR_GAME_LONG_HAND_00,
ZIRI_CHAR_GAME_LONG_HAND_05,
ZIRI_CHAR_GAME_LONG_HAND_10,
ZIRI_CHAR_GAME_LONG_HAND_15,
ZIRI_CHAR_GAME_LONG_HAND_20,
ZIRI_CHAR_GAME_LONG_HAND_25,
ZIRI_CHAR_GAME_LONG_HAND_30,
ZIRI_CHAR_GAME_LONG_HAND_35,
ZIRI_CHAR_GAME_LONG_HAND_40,
ZIRI_CHAR_GAME_LONG_HAND_45,
ZIRI_CHAR_GAME_LONG_HAND_50,
ZIRI_CHAR_GAME_LONG_HAND_55,
ZIRI_CHAR_GAME_SHORT_HAND_00_24,
ZIRI_CHAR_GAME_SHORT_HAND_01_24,
ZIRI_CHAR_GAME_SHORT_HAND_02_24,
ZIRI_CHAR_GAME_SHORT_HAND_03_24,
ZIRI_CHAR_GAME_SHORT_HAND_04_24,
ZIRI_CHAR_GAME_SHORT_HAND_05_24,
ZIRI_CHAR_GAME_SHORT_HAND_06_24,
ZIRI_CHAR_GAME_SHORT_HAND_07_24,
ZIRI_CHAR_GAME_SHORT_HAND_08_24,
ZIRI_CHAR_GAME_SHORT_HAND_09_24,
ZIRI_CHAR_GAME_SHORT_HAND_10_24,
ZIRI_CHAR_GAME_SHORT_HAND_11_24,
ZIRI_CHAR_GAME_SHORT_HAND_12_24,
ZIRI_CHAR_GAME_SHORT_HAND_13_24,
ZIRI_CHAR_GAME_SHORT_HAND_14_24,
ZIRI_CHAR_GAME_SHORT_HAND_15_24,
ZIRI_CHAR_GAME_SHORT_HAND_16_24,
ZIRI_CHAR_GAME_SHORT_HAND_17_24,
ZIRI_CHAR_GAME_SHORT_HAND_18_24,
ZIRI_CHAR_GAME_SHORT_HAND_19_24,
ZIRI_CHAR_GAME_SHORT_HAND_20_24,
ZIRI_CHAR_GAME_SHORT_HAND_21_24,
ZIRI_CHAR_GAME_SHORT_HAND_22_24,
ZIRI_CHAR_GAME_SHORT_HAND_23_24,
ZIRI_CHAR_GAME_DANTYOU_00,
ZIRI_CHAR_GAME_DANTYOU_01,
ZIRI_CHAR_GAME_DANIN_FUUSENN_BLUE_00,
ZIRI_CHAR_GAME_DANIN_FUUSENN_BLUE_01,
ZIRI_CHAR_GAME_DANIN_FUUSENN_ORANGE_00,
ZIRI_CHAR_GAME_DANIN_FUUSENN_ORANGE_01,
ZIRI_CHAR_GAME_DANIN_HATA_TATE_00,
ZIRI_CHAR_GAME_DANIN_HATA_TATE_01,
ZIRI_CHAR_GAME_DANIN_HATA_YOKO_01,
ZIRI_CHAR_GAME_DANIN_HATA_YOKO_02,
ZIRI_CHAR_GAME_SELECT_LEVEL_CURSOR,
ZIRI_CHAR_GAME_SELECT_LEVEL_PLATE_LIGHT,
ZIRI_CHAR_GAME_SELECT_LEVEL_PLATE_DARK,
ZIRI_CHAR_GAME_SELECT_LEVEL_NUM_1,
ZIRI_CHAR_GAME_SELECT_LEVEL_NUM_2,
ZIRI_CHAR_GAME_SELECT_LEVEL_NUM_3,
ZIRI_CHAR_GAME_SELECT_LEVEL_NUM_4,
ZIRI_CHAR_GAME_SELECT_LEVEL_NUM_5,
ZIRI_CHAR_GAME_CURSOR_FINGER,
ZIRI_CHAR_GAME_CLOCKMAN_14,
ZIRI_CHAR_GAME_CLOCKMAN_15,
ZIRI_CHAR_GAME_CLOCKMAN_16,
ZIRI_CHAR_GAME_CLOCKMAN_BREAK_01,
ZIRI_CHAR_GAME_CLOCKMAN_BREAK_02,
ZIRI_CHAR_GAME_CLOCKMAN_BREAK_03,
ZIRI_CHAR_EVENT_BAKU_00,
ZIRI_CHAR_EVENT_BAKU_01,
ZIRI_CHAR_EVENT_BG_FLUSH_00,
ZIRI_CHAR_EVENT_BG_FLUSH_01,
ZIRI_CHAR_EVENT_BG_FLUSH_02,
ZIRI_CHAR_EVENT_BG_FLUSH_03,
ZIRI_CHAR_EVENT_CLOCMAN_BREAK_00,
ZIRI_CHAR_EVENT_PLATE_YATA,
ZIRI_CHAR_EVENT_CLOCKMAN_LEFT_ARM_02,
ZIRI_CHAR_EVENT_CLOCKMAN_LEFT_ARM_03,
ZIRI_CHAR_EVENT_CLOCKMAN_RIGHT_ARM_02,
ZIRI_CHAR_EVENT_CLOCKMAN_RIGHT_ARM_03,
ZIRI_CHAR_EVENT_CLOCMAN_BREAK_01,
ZIRI_CHAR_EVENT_JUMP_CLOCMAN_00,
ZIRI_CHAR_EVENT_JUMP_CLOCMAN_01,
ZIRI_CHAR_EVENT_JUMP_CLOCMAN_02,
ZIRI_CHAR_EVENT_STAR_EFFECT_00,
ZIRI_CHAR_EVENT_STAR_EFFECT_01,
ZIRI_CHAR_EVENT_STAR_EFFECT_02,
ZIRI_CHAR_EVENT_STAR_EFFECT_03,
ZIRI_CHAR_EVENT_STAR_00,
ZIRI_CHAR_EVENT_STAR_01,
ZIRI_CHAR_EVENT_STAR_02,
ZIRI_CHAR_EVENT_STAR_03,
ZIRI_CHAR_EVENT_STAR_04,
ZIRI_CHAR_EVENT_STAR_05,
ZIRI_CHAR_EVENT_EFFECT_00,
ZIRI_CHAR_EVENT_EFFECT_01,
ZIRI_CHAR_EVENT_CLOCKMAM_BODY_00,
ZIRI_CHAR_EVENT_CLOCKMAM_LEFT_ARM_00,
ZIRI_CHAR_EVENT_CLOCKMAM_RIGHT_ARM_00,
ZIRI_CHAR_EVENT_CLOCKMAM_LEFT_ARM_01,
ZIRI_CHAR_EVENT_CLOCKMAM_RIGHT_ARM_01,
ZIRI_CHAR_EVENT_CLOCKMAM_FADCE,
ZIRI_CHAR_EVENT_CLOCKMAM_RIGHT_ARM_04,
ZIRI_CHAR_EVENT_CLOCKMAM_RIGHT_ARM_05,
ZIRI_CHAR_EVENT_CLOCK_PARTS,
ZIRI_CHAR_EVENT_DOOR_00,
ZIRI_CHAR_EVENT_DOOR_01,
ZIRI_CHAR_EVENT_DOOR_02,
ZIRI_CHAR_EVENT_DOOR_03,
ZIRI_CHAR_EVENT_DOOR_04,
ZIRI_CHAR_EVENT_DOOR_05,
ZIRI_CHAR_EVENT_DOOR_06,
ZIRI_CHAR_EVENT_DOOR_07,
ZIRI_CHAR_EVENT_DOOR_08,
ZIRI_CHAR_EVENT_CLOKMAM_BODY_01,
ZIRI_CHAR_EVENT_CLOKMAM_BODY_02,
ZIRI_CHAR_EVENT_SELECT_CONTINUE_PLATE,
ZIRI_CHAR_EVENT_SELECT_CONTINUE_YES_DARK,
ZIRI_CHAR_EVENT_SELECT_CONTINUE_NO_DARK,
ZIRI_CHAR_EVENT_SELECT_CONTINUE_YES_LIGHT,
ZIRI_CHAR_EVENT_SELECT_CONTINUE_NO_LIGHT,
ZIRI_CHAR_EVENT_SELECT_CONTINUE_BUPE_00,
ZIRI_CHAR_EVENT_SELECT_CONTINUE_BUPE_01,
ZIRI_CHAR_EVENT_SELECT_CONTINUE_RETRY_H,
ZIRI_CHAR_EVENT_SELECT_CONTINUE_END_H,
ZIRI_CHAR_EVENT_SELECT_CONTINUE_CONTINUE_H,
ZIRI_CHAR_EVENT_SELECT_CONTINUE_CURSOR,
ZIRI_CHAR_EVENT_SELECT_CONTINUE_ERABU,
ZIRI_CHAR_EVENT_SELECT_CONTINUE_KETEI,
ZIRI_CHAR_EVENT_SELECT_CONTINUE_MENU,
ZIRI_CHAR_GAME_NEEDLE_SHORT_00,
ZIRI_CHAR_GAME_NEEDLE_SHORT_01,
ZIRI_CHAR_GAME_NEEDLE_SHORT_02,
ZIRI_CHAR_GAME_NEEDLE_SHORT_03,
ZIRI_CHAR_GAME_NEEDLE_SHORT_04,
ZIRI_CHAR_GAME_NEEDLE_SHORT_05,
ZIRI_CHAR_GAME_NEEDLE_SHORT_06,
ZIRI_CHAR_GAME_NEEDLE_SHORT_07,
ZIRI_CHAR_GAME_NEEDLE_SHORT_08,
ZIRI_CHAR_GAME_NEEDLE_SHORT_09,
ZIRI_CHAR_GAME_NEEDLE_SHORT_10,
ZIRI_CHAR_GAME_NEEDLE_SHORT_11,
ZIRI_CHAR_GAME_NEEDLE_SHORT_12,
ZIRI_CHAR_GAME_NEEDLE_SHORT_13,
ZIRI_CHAR_GAME_NEEDLE_SHORT_14,
ZIRI_CHAR_GAME_NEEDLE_SHORT_15,
ZIRI_CHAR_GAME_NEEDLE_SHORT_16,
ZIRI_CHAR_GAME_NEEDLE_SHORT_17,
ZIRI_CHAR_GAME_NEEDLE_SHORT_18,
ZIRI_CHAR_GAME_NEEDLE_SHORT_19,
ZIRI_CHAR_GAME_NEEDLE_SHORT_20,
ZIRI_CHAR_GAME_NEEDLE_SHORT_21,
ZIRI_CHAR_GAME_NEEDLE_SHORT_22,
ZIRI_CHAR_GAME_NEEDLE_SHORT_23,
ZIRI_CHAR_GAME_NEEDLE_SHORT_24,
ZIRI_CHAR_GAME_NEEDLE_SHORT_25,
ZIRI_CHAR_GAME_NEEDLE_SHORT_26,
ZIRI_CHAR_GAME_NEEDLE_SHORT_27,
ZIRI_CHAR_GAME_NEEDLE_SHORT_28,
ZIRI_CHAR_GAME_NEEDLE_SHORT_29,
ZIRI_CHAR_GAME_NEEDLE_SHORT_30,
ZIRI_CHAR_GAME_NEEDLE_SHORT_31,
ZIRI_CHAR_GAME_NEEDLE_SHORT_32,
ZIRI_CHAR_GAME_NEEDLE_SHORT_33,
ZIRI_CHAR_GAME_NEEDLE_SHORT_34,
ZIRI_CHAR_GAME_NEEDLE_SHORT_35,
ZIRI_CHAR_GAME_NEEDLE_SHORT_36,
ZIRI_CHAR_GAME_NEEDLE_SHORT_37,
ZIRI_CHAR_GAME_NEEDLE_SHORT_38,
ZIRI_CHAR_GAME_NEEDLE_SHORT_39,
ZIRI_CHAR_GAME_NEEDLE_SHORT_40,
ZIRI_CHAR_GAME_NEEDLE_SHORT_41,
ZIRI_CHAR_GAME_NEEDLE_SHORT_42,
ZIRI_CHAR_GAME_NEEDLE_SHORT_43,
ZIRI_CHAR_GAME_NEEDLE_SHORT_44,
ZIRI_CHAR_GAME_NEEDLE_SHORT_45,
ZIRI_CHAR_GAME_NEEDLE_SHORT_46,
ZIRI_CHAR_GAME_NEEDLE_SHORT_47,
ZIRI_CHAR_GAME_NEEDLE_LONG_00,
ZIRI_CHAR_GAME_NEEDLE_LONG_01,
ZIRI_CHAR_GAME_NEEDLE_LONG_02,
ZIRI_CHAR_GAME_NEEDLE_LONG_03,
ZIRI_CHAR_GAME_NEEDLE_LONG_04,
ZIRI_CHAR_GAME_NEEDLE_LONG_05,
ZIRI_CHAR_GAME_NEEDLE_LONG_06,
ZIRI_CHAR_GAME_NEEDLE_LONG_07,
ZIRI_CHAR_GAME_NEEDLE_LONG_08,
ZIRI_CHAR_GAME_NEEDLE_LONG_09,
ZIRI_CHAR_GAME_NEEDLE_LONG_10,
ZIRI_CHAR_GAME_NEEDLE_LONG_11,
};
extern u_long pad;
extern u_long NewPad;
extern u_long OldPad;
extern u_long JstPad;
extern u_long WorkPad;
extern u_long font_image[];
extern u_long YorN_image[];
extern u_long name_image[];
extern u_long MMENU_image[];
extern u_long font_clut[];
extern u_long YorN_clut[];
extern u_long name_clut[];
extern u_long MMENU_clut[];
extern u_long BG_A00_image[];
extern u_long BG_A00_clut[];
extern u_long BG_A01_image[];
extern u_long BG_A01_clut[];
extern u_long BG_B00_image[];
extern u_long BG_B00_clut[];
extern u_long BG_B01_image[];
extern u_long BG_B01_clut[];
extern u_long C02_image[];
extern u_long C02_clut[];
extern u_long C03_image[];
extern u_long C03_clut[];
extern u_long C06_image[];
extern u_long C06_clut[];
extern u_long PARTS_image[];
extern u_long PARTS_clut[];
extern u_long BAKU00_image[];
extern u_long BAKU00_clut[];
extern u_long BAKU01_image[];
extern u_long BAKU01_clut[];
extern u_long BG_C00_image[];
extern u_long BG_C00_clut[];
extern u_long BG_C01_image[];
extern u_long BG_C01_clut[];
extern u_long BG_D00_image[];
extern u_long BG_D00_clut[];
extern u_long BG_D01_image[];
extern u_long BG_D01_clut[];
extern u_long C00_image[];
extern u_long C00_clut[];
extern u_long C01_image[];
extern u_long C01_clut[];
extern u_long C04_image[];
extern u_long C04_clut[];
extern u_long C05_image[];
extern u_long C05_clut[];
extern u_long help_00_image[];
extern u_long help_00_clut[];
extern u_long ZNEEDLE_image[];
extern u_long ZNEEDLE_clut[];
extern int active;
extern GsOT Wot[2];
static GsBOXF Box;
static GsBOXF BoxDataBlack[] = {0x00000000, 0, 0,320,240,0x00,0x00,0x00};
static GsBOXF BoxDataWhite[] = {0x00000000, 0, 0,320,240,0xFF,0xFF,0xFF};
static ZIRI_GAME ZGameMgr;
static TIMD ZiriTextureFile[] = {
{ "RCUBE3", "\\TIM\\ZIRID.B;1"},
};
static GsIMAGE ZiriTextureImage[]=
{
{ TIM_COLOR_16, 384,0, 64,256, font_image, 16,480, 16,6, font_clut },
{ TIM_COLOR_16, 448,0, 64,256, YorN_image, 0,480, 16,16, YorN_clut },
{ TIM_COLOR_16, 512,0, 64,256, help_00_image, 0,496, 16,2, help_00_clut },
{ TIM_COLOR_16, 320,0, 64,256, MMENU_image, 16,489, 16,7, MMENU_clut },
{ TIM_COLOR_256, 768,256, 128,256, BG_A00_image, 0,508, 256,1, BG_A00_clut },
{ TIM_COLOR_256, 640,256, 32,256, BG_A01_image, 0,507, 256,1, BG_A01_clut },
{ TIM_COLOR_256, 896,0, 128,256, BG_B00_image, 0,510, 256,1, BG_B00_clut },
{ TIM_COLOR_256, 672,256, 32,256, BG_B01_image, 0,509, 256,1, BG_B01_clut },
{ TIM_COLOR_16, 576,0, 64,256, C02_image, 96,482, 16,2, C02_clut },
{ TIM_COLOR_16, 512,256, 64,256, C03_image, 96,485, 16,1, C03_clut },
{ TIM_COLOR_16, 640,0, 64,256, C06_image, 96,484, 16,1, C06_clut },
{ TIM_COLOR_16, 704,0, 64,256, PARTS_image, 128,480, 16,12, PARTS_clut },
{ TIM_COLOR_16, 704,256, 64,256, BAKU00_image, 96,487, 16,1, BAKU00_clut },
{ TIM_COLOR_16, 576,256, 13,256, BAKU01_image, 96,486, 16,1, BAKU01_clut },
{ TIM_COLOR_16, 768,0, 64,256, BG_D00_image, 96,480, 16,2, BG_D00_clut },
{ TIM_COLOR_16, 589,256, 16,256, BG_D01_image, 96,488, 16,2, BG_D01_clut },
{ TIM_COLOR_16, 384,256, 64,256, C00_image, 112,485, 16,7, C00_clut },
{ TIM_COLOR_16, 832,0, 64,256, C01_image, 96,490, 16,2, C01_clut },
{ TIM_COLOR_16, 448,256, 64,256, C04_image, 112,480, 16,3, C04_clut },
{ TIM_COLOR_16, 320,256, 64,256, C05_image, 112,483, 16,2, C05_clut },
{ TIM_COLOR_16, 896,256, 64,256, ZNEEDLE_image, 144,480, 16,1, ZNEEDLE_clut },
};
static ENTRY_SPRITE_DATA ZiriSpriteData[] =
{
{ TIM_POS_ZIRI_GAME_BG_A00, 0, 0, 240, 256, 0 },
{ TIM_POS_ZIRI_GAME_BG_A01, 0, 0, 240, 64, 0 },
{ TIM_POS_ZIRI_GAME_BG_B00, 0, 0, 240, 256, 0 },
{ TIM_POS_ZIRI_GAME_BG_B01, 0, 0, 240, 64, 0 },
{ TIM_POS_ZIRI_GAME_C02, 0, 0, 68, 74, 0 },
{ TIM_POS_ZIRI_GAME_C02, 74, 0, 68, 74, 0 },
{ TIM_POS_ZIRI_GAME_C02, 148, 0, 68, 74, 0 },
{ TIM_POS_ZIRI_GAME_C02, 0, 68, 68, 74, 0 },
{ TIM_POS_ZIRI_GAME_C02, 74, 68, 68, 74, 0 },
{ TIM_POS_ZIRI_GAME_C02, 148, 68, 68, 74, 0 },
{ TIM_POS_ZIRI_GAME_C02, 0, 136, 68, 74, 0 },
{ TIM_POS_ZIRI_GAME_C02, 74, 136, 68, 74, 0 },
{ TIM_POS_ZIRI_GAME_C02, 148, 136, 68, 74, 0 },
{ TIM_POS_ZIRI_GAME_C02, 0, 204, 36, 44, 1 },
{ TIM_POS_ZIRI_GAME_C02, 44, 204, 36, 44, 1 },
{ TIM_POS_ZIRI_GAME_C02, 88, 204, 36, 44, 1 },
{ TIM_POS_ZIRI_GAME_C02, 132, 204, 28, 24, 1 },
{ TIM_POS_ZIRI_GAME_C02, 156, 204, 28, 24, 1 },
{ TIM_POS_ZIRI_GAME_C03, 132, 123, 116, 115, 0 },
{ TIM_POS_ZIRI_GAME_C03, 0, 0, 123, 131, 0 },
{ TIM_POS_ZIRI_GAME_C03, 0, 123, 123, 131, 0 },
{ TIM_POS_ZIRI_GAME_C03, 132, 0, 116, 115, 0 },
{ TIM_POS_ZIRI_GAME_C06, 0, 0, 68, 74, 0 },
{ TIM_POS_ZIRI_GAME_C06, 74, 0, 68, 74, 0 },
{ TIM_POS_ZIRI_GAME_C06, 148, 0, 68, 74, 0 },
{ TIM_POS_ZIRI_GAME_C06, 0, 68, 68, 74, 0 },
{ TIM_POS_ZIRI_GAME_C06, 74, 68, 68, 74, 0 },
{ TIM_POS_ZIRI_GAME_C06, 148, 68, 70, 74, 0 },
{ TIM_POS_ZIRI_GAME_PARTS, 0, 0, 94, 72, 0 },
{ TIM_POS_ZIRI_GAME_PARTS, 0, 94, 34, 72, 0 },
{ TIM_POS_ZIRI_GAME_PARTS, 72, 0, 29, 88, 0 },
{ TIM_POS_ZIRI_GAME_PARTS, 160, 0, 12, 12, 1 },
{ TIM_POS_ZIRI_GAME_PARTS, 172, 0, 12, 12, 1 },
{ TIM_POS_ZIRI_GAME_PARTS, 184, 0, 12, 12, 1 },
{ TIM_POS_ZIRI_GAME_PARTS, 72, 29, 17, 12, 2 },
{ TIM_POS_ZIRI_GAME_PARTS, 84, 29, 17, 12, 2 },
{ TIM_POS_ZIRI_GAME_PARTS, 96, 29, 17, 12, 2 },
{ TIM_POS_ZIRI_GAME_PARTS, 108, 29, 17, 12, 2 },
{ TIM_POS_ZIRI_GAME_PARTS, 120, 29, 17, 12, 2 },
{ TIM_POS_ZIRI_GAME_PARTS, 132, 29, 17, 12, 2 },
{ TIM_POS_ZIRI_GAME_PARTS, 144, 29, 17, 12, 2 },
{ TIM_POS_ZIRI_GAME_PARTS, 156, 29, 17, 12, 2 },
{ TIM_POS_ZIRI_GAME_PARTS, 168, 29, 17, 12, 2 },
{ TIM_POS_ZIRI_GAME_PARTS, 180, 29, 17, 12, 2 },
{ TIM_POS_ZIRI_GAME_PARTS, 192, 29, 17, 12, 2 },
{ TIM_POS_ZIRI_GAME_PARTS, 72, 46, 24, 66, 3 },
{ TIM_POS_ZIRI_GAME_PARTS, 160, 12, 16, 20, 4 },
{ TIM_POS_ZIRI_GAME_PARTS, 0, 128, 12, 12, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 12, 128, 12, 12, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 24, 128, 12, 12, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 36, 128, 12, 12, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 48, 128, 12, 12, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 60, 128, 12, 12, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 72, 128, 12, 12, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 84, 128, 12, 12, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 96, 128, 12, 12, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 108, 128, 12, 12, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 120, 128, 12, 12, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 132, 128, 12, 12, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 0, 140, 6, 6, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 6, 140, 6, 6, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 12, 140, 6, 6, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 18, 140, 6, 6, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 24, 140, 6, 6, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 30, 140, 6, 6, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 36, 140, 6, 6, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 42, 140, 6, 6, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 48, 140, 6, 6, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 54, 140, 6, 6, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 60, 140, 6, 6, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 66, 140, 6, 6, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 72, 140, 6, 6, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 78, 140, 6, 6, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 84, 140, 6, 6, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 90, 140, 6, 6, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 96, 140, 6, 6, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 102, 140, 6, 6, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 108, 140, 6, 6, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 114, 140, 6, 6, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 120, 140, 6, 6, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 126, 140, 6, 6, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 132, 140, 6, 6, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 138, 140, 6, 6, 5 },
{ TIM_POS_ZIRI_GAME_PARTS, 0, 147, 42, 48, 6 },
{ TIM_POS_ZIRI_GAME_PARTS, 48, 147, 42, 48, 6 },
{ TIM_POS_ZIRI_GAME_PARTS, 0, 189, 33, 40, 6 },
{ TIM_POS_ZIRI_GAME_PARTS, 40, 189, 33, 40, 6 },
{ TIM_POS_ZIRI_GAME_PARTS, 0, 189, 33, 40, 7 },
{ TIM_POS_ZIRI_GAME_PARTS, 40, 189, 33, 40, 7 },
{ TIM_POS_ZIRI_GAME_PARTS, 80, 189, 33, 40, 6 },
{ TIM_POS_ZIRI_GAME_PARTS, 120, 189, 33, 40, 6 },
{ TIM_POS_ZIRI_GAME_PARTS, 160, 189, 33, 40, 8 },
{ TIM_POS_ZIRI_GAME_PARTS, 200, 189, 33, 40, 8 },
{ TIM_POS_ZIRI_GAME_PARTS, 96, 147, 14, 20, 9 },
{ TIM_POS_ZIRI_GAME_PARTS, 96, 161, 9, 18, 9 },
{ TIM_POS_ZIRI_GAME_PARTS, 96, 161, 9, 18, 10 },
{ TIM_POS_ZIRI_GAME_PARTS, 96, 170, 10, 8, 11 },
{ TIM_POS_ZIRI_GAME_PARTS, 104, 170, 10, 8, 11 },
{ TIM_POS_ZIRI_GAME_PARTS, 112, 170, 10, 8, 11 },
{ TIM_POS_ZIRI_GAME_PARTS, 120, 170, 10, 8, 11 },
{ TIM_POS_ZIRI_GAME_PARTS, 128, 170, 10, 8, 11 },
{ TIM_POS_ZIRI_EVENT_FONT, 24, 200, 24, 26, 2 },
{ TIM_POS_ZIRI_GAME_C02, 0, 68, 14, 74, 0 },
{ TIM_POS_ZIRI_GAME_C02, 0, 68, 30, 74, 0 },
{ TIM_POS_ZIRI_GAME_C02, 0, 68, 50, 74, 0 },
{ TIM_POS_ZIRI_GAME_C06, 148, 68, 14, 74, 0 },
{ TIM_POS_ZIRI_GAME_C06, 148, 68, 30, 74, 0 },
{ TIM_POS_ZIRI_GAME_C06, 148, 68, 50, 74, 0 },
{ TIM_POS_ZIRI_EVENT_BAKU00, 0, 0, 200, 256, 0 },
{ TIM_POS_ZIRI_EVENT_BAKU01, 0, 0, 200, 50, 0 },
{ TIM_POS_ZIRI_EVENT_BG_D00, 0, 0, 240, 256, 0 },
{ TIM_POS_ZIRI_EVENT_BG_D00, 0, 0, 240, 256, 1 },
{ TIM_POS_ZIRI_EVENT_BG_D01, 0, 0, 240, 64, 0 },
{ TIM_POS_ZIRI_EVENT_BG_D01, 0, 0, 240, 64, 1 },
{ TIM_POS_ZIRI_EVENT_C00, 0, 0, 149, 153, 0 },
{ TIM_POS_ZIRI_EVENT_C00, 154, 0, 86, 100, 0 },
{ TIM_POS_ZIRI_EVENT_C00, 154, 86, 63, 38, 1 },
{ TIM_POS_ZIRI_EVENT_C00, 192, 86, 63, 38, 2 },
{ TIM_POS_ZIRI_EVENT_C00, 0, 149, 91, 50, 3 },
{ TIM_POS_ZIRI_EVENT_C00, 50, 149, 91, 50, 4 },
{ TIM_POS_ZIRI_EVENT_C01, 0, 0, 126, 144, 0 },
{ TIM_POS_ZIRI_EVENT_C01, 0, 126, 72, 102, 0 },
{ TIM_POS_ZIRI_EVENT_C01, 140, 128, 72, 102, 0 },
{ TIM_POS_ZIRI_EVENT_C01, 0, 198, 52, 74, 0 },
{ TIM_POS_ZIRI_EVENT_C01, 144, 0, 36, 52, 1 },
{ TIM_POS_ZIRI_EVENT_C01, 198, 0, 36, 52, 1 },
{ TIM_POS_ZIRI_EVENT_C01, 144, 36, 46, 74, 1 },
{ TIM_POS_ZIRI_EVENT_C01, 144, 82, 46, 74, 1 },
{ TIM_POS_ZIRI_EVENT_C01, 218, 36, 14, 16, 1 },
{ TIM_POS_ZIRI_EVENT_C01, 218, 50, 14, 16, 1 },
{ TIM_POS_ZIRI_EVENT_C01, 218, 64, 14, 16, 1 },
{ TIM_POS_ZIRI_EVENT_C01, 218, 78, 14, 16, 1 },
{ TIM_POS_ZIRI_EVENT_C01, 218, 92, 14, 16, 1 },
{ TIM_POS_ZIRI_EVENT_C01, 218, 106, 14, 16, 1 },
{ TIM_POS_ZIRI_EVENT_C01, 102, 126, 20, 38, 1 },
{ TIM_POS_ZIRI_EVENT_C01, 102, 147, 20, 38, 1 },
{ TIM_POS_ZIRI_EVENT_C04, 0, 0, 194, 122, 0 },
{ TIM_POS_ZIRI_EVENT_C04, 122, 0, 55, 50, 0 },
{ TIM_POS_ZIRI_EVENT_C04, 172, 0, 55, 50, 0 },
{ TIM_POS_ZIRI_EVENT_C04, 122, 55, 63, 38, 0 },
{ TIM_POS_ZIRI_EVENT_C04, 160, 55, 63, 38, 0 },
{ TIM_POS_ZIRI_EVENT_C04, 198, 55, 38, 56, 0 },
{ TIM_POS_ZIRI_EVENT_C04, 122, 118, 89, 64, 1 },
{ TIM_POS_ZIRI_EVENT_C04, 186, 118, 91, 50, 1 },
{ TIM_POS_ZIRI_EVENT_C04, 222, 0, 16, 16, 1 },
{ TIM_POS_ZIRI_EVENT_C04, 0, 209, 40, 40, 2 },
{ TIM_POS_ZIRI_EVENT_C04, 40, 209, 40, 20, 2 },
{ TIM_POS_ZIRI_EVENT_C04, 60, 209, 40, 20, 2 },
{ TIM_POS_ZIRI_EVENT_C04, 80, 209, 40, 20, 2 },
{ TIM_POS_ZIRI_EVENT_C04, 100, 209, 40, 20, 2 },
{ TIM_POS_ZIRI_EVENT_C04, 120, 209, 40, 20, 2 },
{ TIM_POS_ZIRI_EVENT_C04, 140, 209, 40, 20, 2 },
{ TIM_POS_ZIRI_EVENT_C04, 160, 209, 40, 20, 2 },
{ TIM_POS_ZIRI_EVENT_C04, 180, 209, 40, 20, 2 },
{ TIM_POS_ZIRI_EVENT_C05, 0, 0, 194, 122, 0 },
{ TIM_POS_ZIRI_EVENT_C05, 122, 0, 194, 122, 1 },
{ TIM_POS_ZIRI_EVENT_YORNO, 0, 0, 115, 186, 0 },
{ TIM_POS_ZIRI_EVENT_YORNO, 0, 115, 40, 38, 1 },
{ TIM_POS_ZIRI_EVENT_YORNO, 38, 115, 40, 44, 1 },
{ TIM_POS_ZIRI_EVENT_YORNO, 82, 115, 40, 44, 2 },
{ TIM_POS_ZIRI_EVENT_YORNO, 126, 115, 40, 44, 2 },
{ TIM_POS_ZIRI_EVENT_YORNO, 186, 0, 69, 58, 3 },
{ TIM_POS_ZIRI_EVENT_YORNO, 186, 69, 69, 58, 3 },
{ TIM_POS_ZIRI_EVENT_YORNO, 0, 155, 14, 148, 4 },
{ TIM_POS_ZIRI_EVENT_YORNO, 0, 170, 14, 148, 4 },
{ TIM_POS_ZIRI_EVENT_YORNO, 20, 20, 14, 148, 4 },
{ TIM_POS_ZIRI_EVENT_FONT, 24, 200, 24, 26, 2 },
{ TIM_POS_ZIRI_EVENT_FONT, 0, 232, 15, 52, 4 },
{ TIM_POS_ZIRI_EVENT_FONT, 52, 232, 15, 52, 4 },
{ TIM_POS_ZIRI_EVENT_FONT, 104, 232, 15, 52, 4 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*0, 22*0, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*1, 22*0, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*2, 22*0, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*3, 22*0, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*4, 22*0, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*5, 22*0, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*6, 22*0, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*7, 22*0, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*8, 22*0, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*9, 22*0, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*10, 22*0, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*0, 22*1, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*1, 22*1, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*2, 22*1, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*3, 22*1, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*4, 22*1, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*5, 22*1, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*6, 22*1, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*7, 22*1, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*8, 22*1, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*9, 22*1, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*10, 22*1, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*0, 22*2, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*1, 22*2, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*2, 22*2, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*3, 22*2, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*4, 22*2, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*5, 22*2, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*6, 22*2, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*7, 22*2, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*8, 22*2, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*9, 22*2, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*10, 22*2, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*0, 22*3, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*1, 22*3, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*2, 22*3, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*3, 22*3, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*4, 22*3, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*5, 22*3, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*6, 22*3, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*7, 22*3, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*8, 22*3, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*9, 22*3, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*10, 22*3, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*0, 22*4, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*1, 22*4, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*2, 22*4, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 22*3, 22*4, 22, 22, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 0, 120, 30, 30, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 30, 120, 30, 30, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 60, 120, 30, 30, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 90, 120, 30, 30, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 120, 120, 30, 30, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 150, 120, 30, 30, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 0, 150, 30, 30, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 30, 150, 30, 30, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 60, 150, 30, 30, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 90, 150, 30, 30, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 120, 150, 30, 30, 0 },
{ TIM_POS_ZIRI_GAME_NEEDLE, 150, 150, 30, 30, 0 },
{ ENTRY_SPRITE_DATA_END,0,0,0,0,0 },
};
static int ClockNumSpriteTable[]=
{
ZIRI_CHAR_GAME_CLOCK_NUM_00,
ZIRI_CHAR_GAME_CLOCK_NUM_01,
ZIRI_CHAR_GAME_CLOCK_NUM_02,
ZIRI_CHAR_GAME_CLOCK_NUM_03,
ZIRI_CHAR_GAME_CLOCK_NUM_04,
ZIRI_CHAR_GAME_CLOCK_NUM_05,
ZIRI_CHAR_GAME_CLOCK_NUM_06,
ZIRI_CHAR_GAME_CLOCK_NUM_07,
ZIRI_CHAR_GAME_CLOCK_NUM_08,
ZIRI_CHAR_GAME_CLOCK_NUM_09,
};
static POS2D ClockManPosTable[]={
{ 0, 102 },
{ 41, 28 },
{ 85, 102 },
{ 165, 102 },
{ 204, 28 },
{ 246, 102 },
};
static int ClockManAnmBaseTable[]=
{
CLOCKMAN_ANM_BASE_00,
CLOCKMAN_ANM_BASE_01,
CLOCKMAN_ANM_BASE_02,
CLOCKMAN_ANM_BASE_03,
CLOCKMAN_ANM_BASE_04,
CLOCKMAN_ANM_BASE_05,
CLOCKMAN_ANM_BASE_06,
CLOCKMAN_ANM_BASE_07,
};
static ZIRI_SPRITE_DATA ClockManSpriteTable[]=
{
{ ZIRI_CHAR_GAME_CLOCKMAN_00, 0, 0 },
{ ZIRI_CHAR_GAME_CLOCKMAN_01, 0, 0 },
{ ZIRI_CHAR_GAME_CLOCKMAN_02, 0, 0 },
{ ZIRI_CHAR_GAME_CLOCKMAN_03, 0, 0 },
{ ZIRI_CHAR_GAME_CLOCKMAN_04, 0, 0 },
{ ZIRI_CHAR_GAME_CLOCKMAN_05, 0, 0 },
{ ZIRI_CHAR_GAME_CLOCKMAN_06, 0, 0 },
{ ZIRI_CHAR_GAME_CLOCKMAN_07, 0, 0 },
{ ZIRI_CHAR_GAME_CLOCKMAN_08, 0, 0 },
{ ZIRI_CHAR_GAME_CLOCKMAN_09, 0, 0 },
{ ZIRI_CHAR_GAME_CLOCKMAN_10, 0, 0 },
{ ZIRI_CHAR_GAME_CLOCKMAN_11, 0, 0 },
{ ZIRI_CHAR_GAME_CLOCKMAN_12, 0, 0 },
{ ZIRI_CHAR_GAME_CLOCKMAN_13, 0, 0 },
{ ZIRI_CHAR_GAME_CLOCKMAN_14, 0, 54-2 },
{ ZIRI_CHAR_GAME_CLOCKMAN_14, 0, 54-2 },
{ ZIRI_CHAR_GAME_CLOCKMAN_BREAK_01, 0, 54-2 },
{ ZIRI_CHAR_GAME_CLOCKMAN_BREAK_01, 0, 54-2 },
{ ZIRI_CHAR_GAME_CLOCKMAN_16, 0, 18-2 },
{ ZIRI_CHAR_GAME_CLOCKMAN_15, 0, 38-2 },
{ ZIRI_CHAR_GAME_CLOCKMAN_15, 0, 38-2 },
{ ZIRI_CHAR_GAME_CLOCKMAN_16, 0, 18-2 },
{ ZIRI_CHAR_GAME_CLOCKMAN_BREAK_03, 0, 18-2 },
{ ZIRI_CHAR_GAME_CLOCKMAN_BREAK_02, 0, 38-2 },
};
static ZIRI_SPRITE_DATA ClockHandOffsetTable[]=
{
{ 0, 0, 0 },
{ 0, 0, 0 },
{ 0, 0, 0 },
{ 0, 0, 0 },
{ 0, 0, 2 },
{ 0, 0, 2 },
{ 0, 0, 2 },
{ 0, 0, 2 },
{ 0, 0, 2 },
{ 0, 0, 2 },
{ 0, 0, 0 },
{ 0, 0, 0 },
{ 0, 0, 0 },
{ 0, 0, 0 },
{ 0, 0, 0 },
{ 0, 0, 0 },
{ 0, 0, 0 },
{ 0, 0, 0 },
{ 0, 0, 0 },
{ 0, 0, 0 },
{ 0, 0, 0 },
{ 0, 0, 0 },
{ 0, 0, 0 },
{ 0, 0, 0 },
};
static int ClockManPosDataTable[][MAX_CLOCKMAN_NUM]=
{
CLOCK_POS_00, CLOCK_POS_03, CLOCK_POS_04, CLOCK_POS_05, CLOCK_POS_01, CLOCK_POS_02,
CLOCK_POS_05, CLOCK_POS_02, CLOCK_POS_00, CLOCK_POS_01, CLOCK_POS_04, CLOCK_POS_03,
CLOCK_POS_01, CLOCK_POS_00, CLOCK_POS_03, CLOCK_POS_04, CLOCK_POS_05, CLOCK_POS_02,
CLOCK_POS_04, CLOCK_POS_01, CLOCK_POS_02, CLOCK_POS_00, CLOCK_POS_03, CLOCK_POS_05,
CLOCK_POS_00, CLOCK_POS_03, CLOCK_POS_04, CLOCK_POS_02, CLOCK_POS_01, CLOCK_POS_05,
CLOCK_POS_03, CLOCK_POS_00, CLOCK_POS_04, CLOCK_POS_05, CLOCK_POS_02, CLOCK_POS_01,
CLOCK_POS_02, CLOCK_POS_05, CLOCK_POS_00, CLOCK_POS_01, CLOCK_POS_04, CLOCK_POS_03,
CLOCK_POS_00, CLOCK_POS_03, CLOCK_POS_05, CLOCK_POS_02, CLOCK_POS_04, CLOCK_POS_01,
CLOCK_POS_04, CLOCK_POS_02, CLOCK_POS_01, CLOCK_POS_03, CLOCK_POS_00, CLOCK_POS_05,
CLOCK_POS_01, CLOCK_POS_05, CLOCK_POS_00, CLOCK_POS_03, CLOCK_POS_04, CLOCK_POS_02,
};
static int FirstQuestionData[][FIRST_QUESTION_INDEX_NUM][MAX_CLOCKMAN_NUM]=
{
{
{ CLOCK_00_00, CLOCK_01_00, CLOCK_02_00, CLOCK_03_00, CLOCK_04_00, CLOCK_05_00 },
{ CLOCK_06_00, CLOCK_07_00, CLOCK_08_00, CLOCK_09_00, CLOCK_10_00, CLOCK_11_00 },
{ CLOCK_02_00, CLOCK_03_00, CLOCK_04_00, CLOCK_05_00, CLOCK_06_00, CLOCK_07_00 },
{ CLOCK_03_00, CLOCK_04_00, CLOCK_05_00, CLOCK_06_00, CLOCK_07_00, CLOCK_08_00 },
{ CLOCK_04_00, CLOCK_05_00, CLOCK_06_00, CLOCK_07_00, CLOCK_08_00, CLOCK_09_00 },
},
{
{ CLOCK_04_00, CLOCK_04_30, CLOCK_02_00, CLOCK_02_30, CLOCK_10_00, CLOCK_10_30 },
{ CLOCK_01_00, CLOCK_01_30, CLOCK_05_00, CLOCK_05_30, CLOCK_11_00, CLOCK_11_30 },
{ CLOCK_07_00, CLOCK_07_30, CLOCK_01_00, CLOCK_01_30, CLOCK_09_00, CLOCK_09_30 },
{ CLOCK_03_00, CLOCK_03_30, CLOCK_06_00, CLOCK_06_30, CLOCK_00_00, CLOCK_00_30 },
{ CLOCK_01_00, CLOCK_01_30, CLOCK_08_00, CLOCK_08_30, CLOCK_00_00, CLOCK_00_30 },
},
{
{ CLOCK_00_15, CLOCK_00_45, CLOCK_02_15, CLOCK_02_45, CLOCK_08_15, CLOCK_08_45 },
{ CLOCK_11_15, CLOCK_11_45, CLOCK_04_15, CLOCK_04_45, CLOCK_07_15, CLOCK_07_45 },
{ CLOCK_06_15, CLOCK_06_45, CLOCK_01_15, CLOCK_01_45, CLOCK_05_15, CLOCK_05_45 },
{ CLOCK_09_15, CLOCK_09_45, CLOCK_10_15, CLOCK_10_45, CLOCK_03_15, CLOCK_03_45 },
{ CLOCK_05_15, CLOCK_05_45, CLOCK_00_15, CLOCK_00_45, CLOCK_11_15, CLOCK_11_45 },
},
{
{ CLOCK_10_15, CLOCK_10_45, CLOCK_01_00, CLOCK_01_30, CLOCK_02_15, CLOCK_02_45 },
{ CLOCK_00_15, CLOCK_00_45, CLOCK_05_00, CLOCK_05_30, CLOCK_08_15, CLOCK_08_45 },
{ CLOCK_03_00, CLOCK_03_30, CLOCK_07_00, CLOCK_07_30, CLOCK_04_15, CLOCK_04_45 },
{ CLOCK_09_00, CLOCK_09_30, CLOCK_11_00, CLOCK_11_30, CLOCK_06_15, CLOCK_06_45 },
{ CLOCK_07_00, CLOCK_07_30, CLOCK_04_15, CLOCK_04_45, CLOCK_11_00, CLOCK_11_30 },
},
{
{ CLOCK_00_25, CLOCK_00_35, CLOCK_07_20, CLOCK_07_40, CLOCK_05_05, CLOCK_05_55 },
{ CLOCK_03_20, CLOCK_03_40, CLOCK_08_25, CLOCK_08_35, CLOCK_05_05, CLOCK_05_55 },
{ CLOCK_06_10, CLOCK_06_50, CLOCK_01_05, CLOCK_01_55, CLOCK_10_10, CLOCK_10_50 },
{ CLOCK_09_05, CLOCK_09_55, CLOCK_06_10, CLOCK_06_50, CLOCK_11_20, CLOCK_11_40 },
{ CLOCK_03_20, CLOCK_03_40, CLOCK_07_20, CLOCK_07_40, CLOCK_10_10, CLOCK_10_50 },
},
};
static QUESTION_DATA QuestionData[MAX_GAME_LEVEL]=
{
{
CLOCK_00_00,CLOCK_01_00,CLOCK_02_00,CLOCK_03_00,CLOCK_04_00,CLOCK_05_00,
CLOCK_06_00,CLOCK_07_00,CLOCK_08_00,CLOCK_09_00,CLOCK_10_00,CLOCK_11_00,
CLOCK_00_00,CLOCK_01_00,CLOCK_02_00,CLOCK_03_00,CLOCK_04_00,CLOCK_05_00,
CLOCK_06_00,CLOCK_07_00,CLOCK_08_00,CLOCK_09_00,CLOCK_10_00,CLOCK_11_00
},
{
CLOCK_00_00,CLOCK_01_00,CLOCK_02_00,CLOCK_03_00,CLOCK_04_00,CLOCK_05_00,
CLOCK_06_00,CLOCK_07_00,CLOCK_08_00,CLOCK_09_00,CLOCK_10_00,CLOCK_11_00,
CLOCK_00_30,CLOCK_01_30,CLOCK_02_30,CLOCK_03_30,CLOCK_04_30,CLOCK_05_30,
CLOCK_06_30,CLOCK_07_30,CLOCK_08_30,CLOCK_09_30,CLOCK_10_30,CLOCK_11_30
},
{
CLOCK_00_15,CLOCK_00_45,CLOCK_01_15,CLOCK_01_45,CLOCK_02_15,CLOCK_02_45,
CLOCK_03_15,CLOCK_03_45,CLOCK_04_15,CLOCK_04_45,CLOCK_05_15,CLOCK_05_45,
CLOCK_06_15,CLOCK_06_45,CLOCK_07_15,CLOCK_07_45,CLOCK_08_15,CLOCK_08_45,
CLOCK_09_15,CLOCK_09_45,CLOCK_10_15,CLOCK_10_45,CLOCK_11_15,CLOCK_11_45
},
{
CLOCK_00_15,CLOCK_00_45,CLOCK_01_00,CLOCK_01_30,CLOCK_02_15,CLOCK_02_45,
CLOCK_03_00,CLOCK_03_30,CLOCK_04_15,CLOCK_04_45,CLOCK_05_00,CLOCK_05_30,
CLOCK_06_15,CLOCK_06_45,CLOCK_07_00,CLOCK_07_30,CLOCK_08_15,CLOCK_08_45,
CLOCK_09_00,CLOCK_09_30,CLOCK_10_15,CLOCK_10_45,CLOCK_11_00,CLOCK_11_30
},
{
CLOCK_00_25,CLOCK_00_35,CLOCK_01_05,CLOCK_01_55,CLOCK_02_10,CLOCK_02_50,
CLOCK_03_20,CLOCK_03_40,CLOCK_04_25,CLOCK_04_35,CLOCK_05_05,CLOCK_05_55,
CLOCK_06_10,CLOCK_06_50,CLOCK_07_20,CLOCK_07_40,CLOCK_08_25,CLOCK_08_35,
CLOCK_09_05,CLOCK_09_55,CLOCK_10_10,CLOCK_10_50,CLOCK_11_20,CLOCK_11_40
},
};
static XA_DATA ClockXaTable[]=
{
{ XA_FILE_ZIRI09, 6 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI09, 7 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI09, 8 },
{ XA_FILE_ZIRI09, 9 },
{ XA_FILE_ZIRI09, 10 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI09, 11 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI04, 0 },
{ XA_FILE_ZIRI04, 1 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI04, 2 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI04, 3 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI04, 4 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI04, 5 },
{ XA_FILE_ZIRI04, 6 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI04, 7 },
{ XA_FILE_ZIRI04, 8 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI04, 9 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI04, 10 },
{ XA_FILE_ZIRI04, 11 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI05, 0 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI05, 1 },
{ XA_FILE_ZIRI05, 2 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI05, 3 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI05, 4 },
{ XA_FILE_ZIRI05, 5 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI05, 6 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI05, 7 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI05, 8 },
{ XA_FILE_ZIRI05, 9 },
{ XA_FILE_ZIRI05, 10 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI05, 11 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI06, 0 },
{ XA_FILE_ZIRI06, 1 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI06, 2 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI06, 3 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI06, 4 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI06, 5 },
{ XA_FILE_ZIRI06, 6 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI06, 7 },
{ XA_FILE_ZIRI06, 8 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI06, 9 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI06, 10 },
{ XA_FILE_ZIRI06, 11 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI07, 0 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI07, 1 },
{ XA_FILE_ZIRI07, 2 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI07, 3 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI07, 4 },
{ XA_FILE_ZIRI07, 5 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI07, 6 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI07, 7 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI07, 8 },
{ XA_FILE_ZIRI07, 9 },
{ XA_FILE_ZIRI07, 10 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI07, 11 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI08, 0 },
{ XA_FILE_ZIRI08, 1 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI08, 2 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI08, 3 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI08, 4 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI08, 5 },
{ XA_FILE_ZIRI08, 6 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI08, 7 },
{ XA_FILE_ZIRI08, 8 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI08, 9 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI08, 10 },
{ XA_FILE_ZIRI08, 11 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI09, 0 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI09, 1 },
{ XA_FILE_ZIRI09, 2 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI09, 3 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_ZIRI09, 4 },
{ XA_FILE_ZIRI09, 5 },
{ XA_FILE_NONE, -1 },
{ XA_FILE_NONE, -1 },
};
#define INIT_PLAY_DEMO_SCRIPT_BASE 0
#define INIT_PLAY_DEMO_SCRIPT_NUM 5
#define CLEAR_DEMO_SCRIPT_BASE 5
#define CLEAR_DEMO_SCRIPT_NUM 2
#define ALL_CLEAR_DEMO_SCRIPT_BASE 7
#define ALL_CLEAR_DEMO_SCRIPT_NUM 3
#define FALSE_DEMO_SCRIPT_BASE 10
#define FALSE_DEMO_SCRIPT_NUM 1
#define SELECT_LEVEL_SCRIPT_BASE 11
#define SELECT_LEVEL_SCRIPT_NUM 1
static SCRIP_DATA ZiriScript[]=
{
{
0,
NamePlateTokei,
XA_FILE_ZIRI00,
0,
"初消音時06よいしょっと。待120終"
},
{
0,
NamePlateTokei,
XA_FILE_ZIRI00,
1,
"初消音時06あのね、ぼく、とけいマン。待120終"
},
{
0,
NamePlateTokei,
XA_FILE_ZIRI00,
2,
"初消音時06「ジリジリパニック」へ ようこそ。待120終"
},
{
0,
NamePlateTokei,
XA_FILE_ZIRI00,
3,
"初消音時06あ、もう ゲームの じかん。待120終"
},
{
0,
NamePlateTokei,
XA_FILE_ZIRI00,
4,
"初消音時06がんばって!待120終"
},
{
0,
NamePlateTokei,
XA_FILE_ZIRI01,
0,
"初消音時06うわあ、すばらしい!待100終"
},
{
0,
NamePlateTokei,
XA_FILE_ZIRI01,
1,
"初消音時06つぎも がんばれ。待240終"
},
{
0,
NamePlateTokei,
XA_FILE_ZIRI01,
2,
"初消音時06うわ、ブラボー。待120終"
},
{
0,
NamePlateTokei,
XA_FILE_ZIRI01,
3,
"初消音時06とっておきの おいわいだよ。待120終"
},
{
0,
NamePlateTokei,
XA_FILE_ZIRI01,
4,
"初消音時06おめでとう。待120終"
},
{
0,
NamePlateTokei,
XA_FILE_ZIRI01,
5,
"初消音時06ひょえぇぇぇぇぇー。待120終"
},
{
0,
NamePlateDan,
XA_FILE_BAND00,
4,
"初音時06ひかっている すうじを えらんでくれ。待300終"
},
};
int Ziri(GAMEMGR* ip_GameMgr)
{
TASK Task;
switch( ip_GameMgr->SubMode )
{
case INIT:
ip_GameMgr->SubMode = MAIN;
InitSprite();
InitTaskMgr();
srand(ip_GameMgr->Timer);
SfileRead2(ZIRI_SOUNDFILE);
HelpInit();
GameMgr.WaitFlag = ON;
if((file_read(ZiriTextureFile[0].fn,LoadAddress)) == -1)
{
return FALSE;
}
TexInit( ZIRI_TIM_NUM, &ZiriTextureImage[ZIRI_TIM_POS] );
TimImgData = ZiriTextureImage;
EntrySprite( ZiriSpriteData );
ZGameMgr.Timer = 0;
ZGameMgr.Level = ip_GameMgr->Level[GAME_ZIRI];
ZGameMgr.PlayLevel = 0;
ZGameMgr.TimeUpFlag = 0;
ZGameMgr.ContinueFlag = 0;
ZGameMgr.ClearEndFlag = 0;
ZGameMgr.EventEndFlag = 0;
ZGameMgr.ClearFlag = 0;
ZGameMgr.AllClearFlag = 0;
ZGameMgr.ExitFlag = 0;
#ifdef __DEBUG_ZIRI__
if( NewPad & PADL1 )
{
Task.func = DebugSpriteTask;
Task.priority = TASK_NO_DEBUG;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_DEBUG;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "DebugSpriteTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
}else
if(NewPad & PADL2){
Task.func = AllClearEventTask;
Task.priority = TASK_NO_DEBUG;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_DEBUG;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "AllClearEventTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
}else
if(NewPad & PADR1){
Task.func = FalseEventTask;
Task.priority = TASK_NO_DEBUG;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_DEBUG;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "FalseEventTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
}else
if(NewPad & PADR2){
Task.func = ClearEventTask;
Task.priority = TASK_NO_DEBUG;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_DEBUG;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "ClearEventTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
}else
{
if(ZGameMgr.Level==0)
{
Task.func = GameControllTask;
Task.priority = TASK_NO_GAME_CONTROLL;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_CONTROLL;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "GameControllTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
}else
{
Task.func = SelectLevelTask;
Task.priority = TASK_NO_GAME_SELECT_LEVEL;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_SELECT_LEVEL;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "SelectLevelTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
}
}
#else
if(ZGameMgr.Level==0)
{
Task.func = GameControllTask;
Task.priority = TASK_NO_GAME_CONTROLL;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_CONTROLL;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "GameControllTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
}else
{
Task.func = SelectLevelTask;
Task.priority = TASK_NO_GAME_SELECT_LEVEL;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_SELECT_LEVEL;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "SelectLevelTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
}
#endif
break;
case MAIN:
FntPrint("");
ExecuteTask();
TransSprite();
SpraitControl();
if(ZGameMgr.ExitFlag) ip_GameMgr->SubMode = EXIT;
break;
case EXIT:
ReleaseSprite();
ip_GameMgr->Level[GAME_ZIRI] = ZGameMgr.Level;
SpraitCharClr();
SpraitControl();
GameMgr.WaitFlag = ON;
ssStopAll();
ssCloseVab();
ip_GameMgr->MainMode = MAIN_MODE_TOP_MENU;
ip_GameMgr->SubMode = INIT;
break;
default:
}
return TRUE;
}
static int ClockManAppearTask(TASK* ip_task)
{
static ZIRI_SPRITE_DATA AppearSpriteTable[]={
{ ZIRI_CHAR_GAME_CLOCKMAN_APPEAR_00, 92, 160 },
{ ZIRI_CHAR_GAME_CLOCKMAN_APPEAR_00, 97, 69, },
{ ZIRI_CHAR_GAME_CLOCKMAN_APPEAR_01, 100, 130 },
{ ZIRI_CHAR_GAME_CLOCKMAN_APPEAR_02, 100, 106 },
{ ZIRI_CHAR_GAME_CLOCKMAN_APPEAR_03, 112, 65 },
};
static ZIRI_SPRITE_DATA OutClockManSpriteTable[]={
{ ZIRI_CHAR_GAME_CLOCKMAN_APPEAR_04, 0, 0 },
{ ZIRI_CHAR_GAME_CLOCKMAN_APPEAR_04_FOOT_00, 0, 93 },
{ ZIRI_CHAR_GAME_CLOCKMAN_APPEAR_04_FOOT_01, -10, 86 },
};
static int AppearClockManAnmIndexTable[]={
0,
0,
2,
3,
-1,
};
static int AppearClockManDanceAnmIndexTable[]={
1,4,
1,4,
};
SPRITE_DATA SpData;
TASK Task;
switch( ip_task->mode )
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
ip_task->user[APPEAR_TASK_USER_MODE] = APPEAR_CLOCKMAN_MODE_00;
ip_task->user[APPEAR_TASK_USER_TIMER] = 0;
ip_task->user[APPEAR_TASK_USER_INDEX] = 0;
ip_task->user[APPEAR_TASK_USER_ANMWT] = 0;
ip_task->user[APPEAR_TASK_USER_CLOCKMAN_X] = (320-72)/2;
ip_task->user[APPEAR_TASK_USER_CLOCKMAN_Y] = 69;
ip_task->user[APPEAR_TASK_FADE_FLAG] = 0;
ip_task->user[APPEAR_TASK_DANCE_INDEX] = 0;
GameMgr.FadeFlag = FadeIn;
ZGameMgr.Script.Flag=1;
Task.func = ScriptTask;
Task.priority = TASK_NO_GAME_SCRIPT;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_SCRIPT;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "ScriptTask";
Task.mode = TASK_MODE_INIT;
Task.user[0] = SCRIPT_LINE_2;
Task.user[1] = INIT_PLAY_DEMO_SCRIPT_BASE;
Task.user[2] = INIT_PLAY_DEMO_SCRIPT_NUM;
CreateTask(&Task);
break;
case TASK_MODE_MAIN:
switch(ip_task->user[APPEAR_TASK_USER_MODE])
{
case APPEAR_CLOCKMAN_MODE_00:
SpData.No = AppearSpriteTable[ AppearClockManAnmIndexTable[ip_task->user[APPEAR_TASK_USER_INDEX]] ].No;
SpData.PosX = AppearSpriteTable[ AppearClockManAnmIndexTable[ip_task->user[APPEAR_TASK_USER_INDEX]] ].Ofx;
SpData.PosY = AppearSpriteTable[ AppearClockManAnmIndexTable[ip_task->user[APPEAR_TASK_USER_INDEX]] ].Ofy;
SpData.PosZ = PRIORITY_APPEAR_CLOCKMAN;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
if(++ip_task->user[APPEAR_TASK_USER_ANMWT] > APPEAR_CLOCKMAN_ANM_WAIT_TIME)
{
ip_task->user[APPEAR_TASK_USER_ANMWT] = 0;
if( AppearClockManAnmIndexTable[ ++ip_task->user[APPEAR_TASK_USER_INDEX] ] == -1)
{
ip_task->user[APPEAR_TASK_USER_INDEX] = 0;
ip_task->user[APPEAR_TASK_USER_MODE] = APPEAR_CLOCKMAN_MODE_01;
}
}
break;
case APPEAR_CLOCKMAN_MODE_01:
SpData.No = AppearSpriteTable[ AppearClockManDanceAnmIndexTable[ip_task->user[APPEAR_TASK_DANCE_INDEX]] ].No;
SpData.PosX = AppearSpriteTable[ AppearClockManDanceAnmIndexTable[ip_task->user[APPEAR_TASK_DANCE_INDEX]] ].Ofx;
SpData.PosY = AppearSpriteTable[ AppearClockManDanceAnmIndexTable[ip_task->user[APPEAR_TASK_DANCE_INDEX]] ].Ofy;
SpData.PosZ = PRIORITY_APPEAR_CLOCKMAN;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
if(++ip_task->user[APPEAR_TASK_USER_ANMWT] > APPEAR_CLOCKMAN_ANM_WAIT_TIME)
{
ip_task->user[APPEAR_TASK_USER_ANMWT] = 0;
ip_task->user[APPEAR_TASK_DANCE_INDEX] ^=1;
}
if(!ZGameMgr.Script.Flag){
ip_task->user[APPEAR_TASK_USER_INDEX] = 0;
ip_task->user[APPEAR_TASK_USER_MODE] = APPEAR_CLOCKMAN_MODE_02;
dsPlayXa(XA_FILE_ZIRI11,0);
}
break;
case APPEAR_CLOCKMAN_MODE_02:
SpData.No = OutClockManSpriteTable[0].No;
SpData.PosX = ip_task->user[APPEAR_TASK_USER_CLOCKMAN_X];
SpData.PosY = ip_task->user[APPEAR_TASK_USER_CLOCKMAN_Y];
SpData.PosZ = PRIORITY_APPEAR_CLOCKMAN;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = OutClockManSpriteTable[1 + ip_task->user[APPEAR_TASK_USER_INDEX]].No;
SpData.PosX = ip_task->user[APPEAR_TASK_USER_CLOCKMAN_X] + OutClockManSpriteTable[1 + ip_task->user[APPEAR_TASK_USER_INDEX] ].Ofx;
SpData.PosY = ip_task->user[APPEAR_TASK_USER_CLOCKMAN_Y] + OutClockManSpriteTable[1 + ip_task->user[APPEAR_TASK_USER_INDEX] ].Ofy;
SpData.PosZ = PRIORITY_APPEAR_CLOCKMAN;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
ip_task->user[APPEAR_TASK_USER_CLOCKMAN_X] -= 4;
if(ip_task->user[APPEAR_TASK_USER_CLOCKMAN_X] < -100 ){
if(!ip_task->user[APPEAR_TASK_FADE_FLAG]){
ip_task->user[APPEAR_TASK_FADE_FLAG] = 1;
Task.func = EventFadeOutTask;
Task.priority = TASK_NO_GAME_FADE;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_FADE;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "EventFadeOutTask";
Task.mode = TASK_MODE_INIT;
Task.user[0] = ip_task->id;
CreateTask(&Task);
}
}
if( ++ip_task->user[APPEAR_TASK_USER_ANMWT] > APPEAR_CLOCKMAN_ANM_WAIT_TIME){
ip_task->user[APPEAR_TASK_USER_ANMWT] = 0;
ip_task->user[APPEAR_TASK_USER_INDEX] ^= 1;
}
break;
default:
}
break;
case TASK_MODE_EXIT:
MetuseijiFlag=OFF;
Task.func = PlayerTask;
Task.priority = TASK_NO_GAME_PLAYER;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_PLAYER;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "PlayerTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
Task.func = ClockManTask;
Task.priority = TASK_NO_GAME_CLOCKMAN;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_CLOCKMAN;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "ClockManTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
Task.func = QuestionTask;
Task.priority = TASK_NO_GAME_QUESTION;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_QUESTION;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "QuestionTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
Task.func = PauseTask;
Task.priority = TASK_NO_GAME_PAUSE;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_PAUSE;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "PauseTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
Task.func = TimerTask;
Task.priority = TASK_NO_GAME_TIMER;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_TIMER;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "TimerTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
ExitTask(ip_task->id);
break;
default:
}
return TRUE;
}
static int GameControllTask(TASK* ip_task)
{
TASK Task;
int i;
switch( ip_task->mode )
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
ZGameMgr.TimeUpFlag = 0;
ZGameMgr.ClearEndFlag = 0;
ZGameMgr.EventEndFlag = 0;
ZGameMgr.ClearFlag = 0;
ZGameMgr.ClearEndFlag = 0;
ZGameMgr.AllClearFlag = 0;
ZGameMgr.ExitFlag = 0;
GaidoInit();
if(ZGameMgr.ContinueFlag==0)
{
ZGameMgr.ContinueFlag = 1;
Task.func = GameBgTask;
Task.priority = TASK_NO_GAME_BG;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_BG;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "GameBgTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
Task.func = ClockManAppearTask;
Task.priority = TASK_NO_GAME_APPEAR;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_APPEAR;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "ClockManAppearTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
}else
{
Task.func = GameBgTask;
Task.priority = TASK_NO_GAME_BG;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_BG;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "GameBgTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
Task.func = PlayerTask;
Task.priority = TASK_NO_GAME_PLAYER;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_PLAYER;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "PlayerTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
Task.func = ClockManTask;
Task.priority = TASK_NO_GAME_CLOCKMAN;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_CLOCKMAN;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "ClockManTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
Task.func = QuestionTask;
Task.priority = TASK_NO_GAME_QUESTION;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_QUESTION;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "QuestionTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
Task.func = PauseTask;
Task.priority = TASK_NO_GAME_PAUSE;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_PAUSE;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "PauseTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
Task.func = TimerTask;
Task.priority = TASK_NO_GAME_TIMER;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_TIMER;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "TimerTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
}
break;
case TASK_MODE_MAIN:
#ifdef __DEBUG_ZIRI__
FntPrint("A/Q=[%d/%d]\n", ZGameMgr.Player.CorrectAnswerNum,ZGameMgr.Question.Index);
FntPrint("PLAY_LEVEL=[%d]\n", ZGameMgr.PlayLevel);
#endif
if( ZGameMgr.ClearEndFlag || ZGameMgr.TimeUpFlag ) ip_task->mode = TASK_MODE_EXIT;
break;
case TASK_MODE_EXIT:
RemoveTask(TASK_NO_GAME_PLAYER);
RemoveTask(TASK_NO_GAME_CLOCKMAN);
RemoveTask(TASK_NO_GAME_QUESTION);
RemoveTask(TASK_NO_GAME_PAUSE);
RemoveTask(TASK_NO_GAME_TIMER);
RemoveTask(TASK_NO_GAME_CONGRATULATIONS);
ssStopBgm(ZIRI_BGM_00);
SpraitCharClr();
if(ZGameMgr.PlayLevel > ZGameMgr.Level)
{
ZGameMgr.Level = ZGameMgr.PlayLevel;
}
if(ZGameMgr.AllClearFlag)
{
RemoveTask(TASK_NO_GAME_BG);
Task.func = AllClearEventTask;
Task.priority = TASK_NO_EVENT_ALL_CLEAR;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_EVENT_ALL_CLEAR;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "AllClearEventTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
}else
if(ZGameMgr.ClearFlag)
{
RemoveTask(TASK_NO_GAME_BG);
Task.func = ClearEventTask;
Task.priority = TASK_NO_EVENT_CLEAR;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_EVENT_CLEAR;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "ClearEventTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
}else
{
Task.func = FalseEventTask;
Task.priority = TASK_NO_EVENT_FALSE;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_EVENT_FALSE;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "FalseEventTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
}
ExitTask(ip_task->id);
break;
default:
}
return TRUE;
}
#define L_OFFSET_Y -14
static int SelectLevelTask(TASK* ip_task)
{
static int LevelNumTable[]={
ZIRI_CHAR_GAME_SELECT_LEVEL_NUM_1,
ZIRI_CHAR_GAME_SELECT_LEVEL_NUM_2,
ZIRI_CHAR_GAME_SELECT_LEVEL_NUM_3,
ZIRI_CHAR_GAME_SELECT_LEVEL_NUM_4,
ZIRI_CHAR_GAME_SELECT_LEVEL_NUM_5,
};
static ZIRI_SPRITE_DATA GakudaninSpriteTable[]=
{
{ ZIRI_CHAR_GAME_DANTYOU_00, 0, -6 },
{ ZIRI_CHAR_GAME_DANTYOU_01, 0, -6 },
{ ZIRI_CHAR_GAME_DANIN_FUUSENN_BLUE_00, 0, 0 },
{ ZIRI_CHAR_GAME_DANIN_FUUSENN_BLUE_01, 0, 0 },
{ ZIRI_CHAR_GAME_DANIN_HATA_TATE_00, 0, 0 },
{ ZIRI_CHAR_GAME_DANIN_HATA_TATE_01, 0, 0 },
{ ZIRI_CHAR_GAME_DANIN_HATA_YOKO_01, 0, 0 },
{ ZIRI_CHAR_GAME_DANIN_HATA_YOKO_02, 0, 0 },
{ ZIRI_CHAR_GAME_DANIN_FUUSENN_ORANGE_00, 0, 0 },
{ ZIRI_CHAR_GAME_DANIN_FUUSENN_ORANGE_01, 0, 0 },
};
SPRITE_DATA SpData;
TASK Task;
int i,j;
switch(ip_task->mode)
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
ZGameMgr.PlayLevel = 0;
ZGameMgr.ContinueFlag = 0;
ZGameMgr.SelectLevel.Mode = ZIRI_GAME_SELECT_LEVEL_MODE_00;
ZGameMgr.SelectLevel.Timer = 0;
ZGameMgr.SelectLevel.BlockNo = 0;
ZGameMgr.SelectLevel.BlockWt = 0;
ZGameMgr.SelectLevel.KeteiWt = 0;
ZGameMgr.SelectLevel.KeteiFlushIndex = 0;
ZGameMgr.SelectLevel.KeteiFlushWt = 0;
ZGameMgr.SelectLevel.AnmIndex = 0;
ZGameMgr.SelectLevel.AnmNo = GakudaninSpriteTable[0].No;
ZGameMgr.SelectLevel.AnmWt = 0;
ZGameMgr.SelectLevel.AnmBase = 0;
ZGameMgr.SelectLevel.PosX = ZIRI_GAME_SELECT_LEVEL_GAKUDANIN_INIT_X;
ZGameMgr.SelectLevel.PosY = ZIRI_GAME_SELECT_LEVEL_GAKUDANIN_INIT_Y;
ZGameMgr.SelectLevel.WaitFlag = 0;
GameMgr.FadeFlag = FadeIn;
dsPlayXa(XA_FILE_ZIRI10,5);
break;
case TASK_MODE_MAIN:
switch(ZGameMgr.SelectLevel.Mode)
{
case ZIRI_GAME_SELECT_LEVEL_MODE_00:
for(i=0;i<ZGameMgr.Level+1;i++){
for(j=0;j<5;j++){
if(j>i) continue;
SpData.No = ZIRI_CHAR_GAME_SELECT_LEVEL_PLATE_LIGHT;
SpData.PosX = 101 + 25*i - 2;
SpData.PosY = 40 + 95 - 10*j + 3 + L_OFFSET_Y;
SpData.PosZ = PRIORITY_BG-2;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
}
ZGameMgr.SelectLevel.PosX -= ZIRI_GAME_SELECT_LEVEL_GAKUDANIN_SPEED_X;
if(ZGameMgr.SelectLevel.PosX <= ZIRI_GAME_SELECT_LEVEL_GAKUDANIN_STOP_X)
{
ZGameMgr.SelectLevel.PosX = ZIRI_GAME_SELECT_LEVEL_GAKUDANIN_STOP_X;
if(dSoundStatus == DslStatStandby){
ZGameMgr.SelectLevel.Mode = ZIRI_GAME_SELECT_LEVEL_MODE_01;
ZGameMgr.Script.Flag=1;
Task.func = ScriptTask;
Task.priority = TASK_NO_GAME_SCRIPT;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_SCRIPT;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "ScriptTask";
Task.mode = TASK_MODE_INIT;
Task.user[0] = SCRIPT_LINE_1;
Task.user[1] = SELECT_LEVEL_SCRIPT_BASE;
Task.user[2] = SELECT_LEVEL_SCRIPT_NUM;
CreateTask(&Task);
SpraitCharSet(&GaidoLevelSpControl00[0], NULL);
}
}
break;
case ZIRI_GAME_SELECT_LEVEL_MODE_01:
SsinScriptFlag = ZGameMgr.Script.Flag;
if(!ZGameMgr.Script.Flag){
if(JstPad & PADLright)
{
ssPlaySe(BUTONSE_LEVER);
if(++ZGameMgr.PlayLevel>ZGameMgr.Level){
ZGameMgr.PlayLevel=0;
}
}else
if(JstPad & PADLleft){
ssPlaySe(BUTONSE_LEVER);
if(--ZGameMgr.PlayLevel<0){
ZGameMgr.PlayLevel=ZGameMgr.Level;
}
}else{
}
if(JstPad & PADRright)
{
ZGameMgr.SelectLevel.Mode = ZIRI_GAME_SELECT_LEVEL_MODE_02;
ssPlaySe(BUTONSE_MARU);
}
}
if( ++ZGameMgr.SelectLevel.BlockWt > ZIRI_GAME_SELECT_LEVEL_FLUSH_ANM_TIME)
{
ZGameMgr.SelectLevel.BlockWt=0;
if(++ZGameMgr.SelectLevel.BlockNo > ZIRI_GAME_MAX_LEVEL_NUM)
{
ZGameMgr.SelectLevel.BlockNo=0;
}
}
for(i=0;i<ZGameMgr.Level+1;i++){
for(j=0;j<5;j++){
if(j>i) continue;
if(ZGameMgr.SelectLevel.BlockNo <= j) continue;
SpData.No = ZIRI_CHAR_GAME_SELECT_LEVEL_PLATE_LIGHT;
SpData.PosX = 101 + 25*i - 2;
SpData.PosY = 40 + 95 - 10*j + 3 + L_OFFSET_Y;
SpData.PosZ = PRIORITY_BG-3;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
}
break;
case ZIRI_GAME_SELECT_LEVEL_MODE_02:
if(!ZGameMgr.SelectLevel.WaitFlag){
if(++ZGameMgr.SelectLevel.KeteiWt > ZIRI_GAME_SELECT_LEVEL_KETEI_WAIT_TIME)
{
ZGameMgr.SelectLevel.WaitFlag=1;
Task.func = EventFadeOutTask;
Task.priority = TASK_NO_GAME_FADE;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_FADE;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "EventFadeOutTask";
Task.mode = TASK_MODE_INIT;
Task.user[0] = ip_task->id;
CreateTask(&Task);
}
}
if( ++ZGameMgr.SelectLevel.KeteiFlushWt > ZIRI_GAME_SELECT_LEVEL_KETEI_FLUSH_TIME ){
ZGameMgr.SelectLevel.KeteiFlushWt = 0;
ZGameMgr.SelectLevel.KeteiFlushIndex^=1;
}
if(ZGameMgr.SelectLevel.KeteiFlushIndex){
for(i=0;i<5;i++){
if(ZGameMgr.PlayLevel>=i){
SpData.No = ZIRI_CHAR_GAME_SELECT_LEVEL_PLATE_LIGHT;
SpData.PosX = 101 + 25*ZGameMgr.PlayLevel - 2;
SpData.PosY = 40 + 95 - 10*i + 3 + L_OFFSET_Y;
SpData.PosZ = PRIORITY_BG-2;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
}
}
break;
default:
}
if(++ZGameMgr.SelectLevel.AnmWt > ZIRI_GAME_SELECT_LEVEL_GAKUDANIN_ANM_WAIT_TIME){
ZGameMgr.SelectLevel.AnmWt = 0;
ZGameMgr.SelectLevel.AnmIndex ^=1;
}
for(i=0;i<5;i++)
{
ZGameMgr.SelectLevel.AnmBase = i*2;
ZGameMgr.SelectLevel.AnmNo = GakudaninSpriteTable[ZGameMgr.SelectLevel.AnmBase + ZGameMgr.SelectLevel.AnmIndex].No;
SpData.No = ZGameMgr.SelectLevel.AnmNo;
SpData.PosX = ZGameMgr.SelectLevel.PosX + i*40 + GakudaninSpriteTable[ZGameMgr.SelectLevel.AnmBase + ZGameMgr.SelectLevel.AnmIndex].Ofx;
SpData.PosY = ZGameMgr.SelectLevel.PosY + GakudaninSpriteTable[ZGameMgr.SelectLevel.AnmBase + ZGameMgr.SelectLevel.AnmIndex].Ofy + L_OFFSET_Y;
SpData.PosZ = PRIORITY_BG - 4;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
SpData.No = ZIRI_CHAR_GAME_SELECT_LEVEL_CURSOR;
SpData.PosX = 100 + 25 * ZGameMgr.PlayLevel - 2;
SpData.PosY = 40 + 80 - 10 * ZGameMgr.PlayLevel + 3 + L_OFFSET_Y;
SpData.PosZ = PRIORITY_BG - 3;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
for(i=0;i<5;i++){
SpData.No = LevelNumTable[i];
SpData.PosX = 106 + 25*i -2 ;
SpData.PosY = 27 + 95 - 10*i + 3 + L_OFFSET_Y;
SpData.PosZ = PRIORITY_BG-4;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
for(i=0;i<5;i++){
for(j=0;j<5;j++){
if(j>i) continue;
SpData.No = ZIRI_CHAR_GAME_SELECT_LEVEL_PLATE_DARK;
SpData.PosX = 101 + 25*i - 2;
SpData.PosY = 40 + 95 - 10*j + 3 + L_OFFSET_Y;
SpData.PosZ = PRIORITY_BG-1;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
}
SpData.No = ZIRI_CHAR_GAME_SELECT_LEVEL_BG_00;
SpData.PosX = 0;
SpData.PosY = 0;
SpData.PosZ = PRIORITY_BG;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = ZIRI_CHAR_GAME_SELECT_LEVEL_BG_01;
SpData.PosX = 256;
SpData.PosY = 0;
SpData.PosZ = PRIORITY_BG;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
break;
case TASK_MODE_EXIT:
MetuseijiFlag=OFF;
Task.func = GameControllTask;
Task.priority = TASK_NO_GAME_CONTROLL;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_CONTROLL;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "GameControllTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
ExitTask(ip_task->id);
break;
default:
}
return TRUE;
}
static int PlayerTask(TASK* ip_task)
{
static dscale=0;
SPRITE_DATA SpData;
int dir,index,nextindex;
TASK Task;
switch(ip_task->mode)
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
ZGameMgr.Player.AnmBase = 0;
ZGameMgr.Player.CursorPos = CLOCK_POS_03;
ZGameMgr.Player.CorrectAnswerNum = 0;
ZGameMgr.Player.WaitTimer = 0;
ZGameMgr.Player.Character.Status = PLAYER_WAIT;
ZGameMgr.Player.Character.Anm.Data.no = ZIRI_CHAR_GAME_CURSOR_FINGER;
ZGameMgr.Player.Character.Anm.Data.wt = 0;
ZGameMgr.Player.Character.Anm.Index = 0;
ZGameMgr.Player.Character.Pos.x = ClockManPosTable[ZGameMgr.Player.CursorPos].x;
ZGameMgr.Player.Character.Pos.y = ClockManPosTable[ZGameMgr.Player.CursorPos].y;
ZGameMgr.Player.Character.Pos.z = PRIORITY_PLAYER_CURSOR;
ZGameMgr.Player.Character.OPos.x = 40;
ZGameMgr.Player.Character.OPos.y = 16;
ZGameMgr.Player.Character.OPos.z = 0;
ZGameMgr.Player.Character.Spd.dx = 0;
ZGameMgr.Player.Character.Spd.dy = 0;
ZGameMgr.Player.Character.Spd.sx = 0;
ZGameMgr.Player.Character.Spd.sy = 0;
ssPlayBgm(ZIRI_BGM_00);
dscale = SCALE10;
GameMgr.FadeFlag = FadeIn;
break;
case TASK_MODE_MAIN:
switch(ZGameMgr.Player.Character.Status)
{
case PLAYER_WAIT:
ZGameMgr.Player.Character.Status = PLAYER_SELECT;
break;
case PLAYER_SELECT:
if(CheckKeyDir(&dir)){
ssPlaySe(BUTONSE_LEVER);
switch(ZGameMgr.Player.CursorPos)
{
case CLOCK_POS_00:
if(dir==DIR_UP){
ZGameMgr.Player.CursorPos = CLOCK_POS_01;
}else if(dir==DIR_RIGHT){
ZGameMgr.Player.CursorPos = CLOCK_POS_02;
}else if(dir==DIR_LEFT){
ZGameMgr.Player.CursorPos = CLOCK_POS_04;
}else{
}
break;
case CLOCK_POS_01:
if(dir==DIR_DOWN){
ZGameMgr.Player.CursorPos = CLOCK_POS_02;
}else if(dir==DIR_RIGHT){
ZGameMgr.Player.CursorPos = CLOCK_POS_04;
}else if(dir==DIR_LEFT){
ZGameMgr.Player.CursorPos = CLOCK_POS_05;
}else{
}
break;
case CLOCK_POS_02:
if(dir==DIR_UP){
ZGameMgr.Player.CursorPos = CLOCK_POS_01;
}else if(dir==DIR_LEFT){
ZGameMgr.Player.CursorPos = CLOCK_POS_00;
}else if(dir==DIR_RIGHT){
ZGameMgr.Player.CursorPos = CLOCK_POS_03;
}else{
}
break;
case CLOCK_POS_03:
if(dir==DIR_UP){
ZGameMgr.Player.CursorPos = CLOCK_POS_04;
}else if(dir==DIR_LEFT){
ZGameMgr.Player.CursorPos = CLOCK_POS_02;
}else if(dir==DIR_RIGHT){
ZGameMgr.Player.CursorPos = CLOCK_POS_05;
}else{
}
break;
case CLOCK_POS_04:
if(dir==DIR_DOWN){
ZGameMgr.Player.CursorPos = CLOCK_POS_03;
}else if(dir==DIR_LEFT){
ZGameMgr.Player.CursorPos = CLOCK_POS_01;
}else if(dir==DIR_RIGHT){
ZGameMgr.Player.CursorPos = CLOCK_POS_00;
}else{
}
break;
case CLOCK_POS_05:
if(dir==DIR_UP){
ZGameMgr.Player.CursorPos = CLOCK_POS_04;
}else if(dir==DIR_LEFT){
ZGameMgr.Player.CursorPos = CLOCK_POS_03;
}else if(dir==DIR_RIGHT){
ZGameMgr.Player.CursorPos = CLOCK_POS_01;
}else{
}
break;
default:
}
ZGameMgr.Player.Character.Pos.x = ClockManPosTable[ZGameMgr.Player.CursorPos].x;
ZGameMgr.Player.Character.Pos.y = ClockManPosTable[ZGameMgr.Player.CursorPos].y;
}
if(JstPad & PADRright){
ssPlaySe(BUTONSE_MARU);
switch( CheckAnswer(ZGameMgr.Player.CursorPos, &(ZGameMgr.Question.SelectIndex) ) )
{
case ANSWER_OK:
GameMgr.WaitFlag = ON;
ssPlaySe(ZIRI_SE_00);
ZGameMgr.Player.Character.Status = PLAYER_DECISION;
dscale = SCALE20;
ZGameMgr.Player.WaitTimer = PLAYER_DECISION_WAIT_TIME;
ZGameMgr.Question.GetDataFlag[ZGameMgr.Question.SelectIndex] = 0;
ZGameMgr.Question.ExistFlag[ZGameMgr.Question.SelectIndex] = 0;
if(++ZGameMgr.Player.CorrectAnswerNum >= MAX_CORRECT_ANSWER_NUM)
{
ZGameMgr.Player.CorrectAnswerNum = MAX_CORRECT_ANSWER_NUM;
ZGameMgr.ClearFlag = 1;
if(ZGameMgr.PlayLevel==ZIRI_GAME_MAX_LEVEL_NUM-1){
ZGameMgr.AllClearFlag = 1;
}
if(++ZGameMgr.PlayLevel > ZIRI_GAME_MAX_LEVEL_NUM-1){
ZGameMgr.PlayLevel = ZIRI_GAME_MAX_LEVEL_NUM-1;
}
}
ZGameMgr.ClockMan[ZGameMgr.Question.SelectIndex].Character.Status = CLOCKMAN_DISAPPEAR;
ZGameMgr.ClockMan[ZGameMgr.Question.SelectIndex].Time = -1;
ZGameMgr.ClockMan[ZGameMgr.Question.SelectIndex].RevivalWait = 1;
ZGameMgr.ClockMan[ZGameMgr.Question.SelectIndex].AnmBase = CLOCKMAN_ANM_BASE_09;
ZGameMgr.ClockMan[ZGameMgr.Question.SelectIndex].Character.Anm.Index = 0;
ZGameMgr.ClockMan[ZGameMgr.Question.SelectIndex].Character.Anm.Data.wt = 0;
ZGameMgr.ClockMan[ZGameMgr.Question.SelectIndex].Character.Anm.Data.no = ClockManSpriteTable[ ZGameMgr.ClockMan[ZGameMgr.Question.SelectIndex].AnmBase + ZGameMgr.ClockMan[ZGameMgr.Question.SelectIndex].Character.Anm.Index ].No;
ZGameMgr.ClockMan[ZGameMgr.Question.SelectIndex].Character.OPos.x = ClockManSpriteTable[ ZGameMgr.ClockMan[ZGameMgr.Question.SelectIndex].AnmBase ].Ofx;
ZGameMgr.ClockMan[ZGameMgr.Question.SelectIndex].Character.OPos.y = ClockManSpriteTable[ ZGameMgr.ClockMan[ZGameMgr.Question.SelectIndex].AnmBase ].Ofy;
ZGameMgr.ClockMan[ZGameMgr.Question.SelectIndex].AnmCount = 0;
break;
case ANSWER_NG:
GameMgr.WaitFlag = ON;
ssPlaySe(ZIRI_SE_01);
ZGameMgr.Player.Character.Status = PLAYER_DECISION;
dscale = SCALE05;
ZGameMgr.Player.WaitTimer = PLAYER_DECISION_WAIT_TIME;
ZGameMgr.Question.GetDataFlag[ZGameMgr.Question.SelectIndex] = 0;
ZGameMgr.Question.ExistFlag[ZGameMgr.Question.SelectIndex] = 1;
ZGameMgr.ClockMan[ZGameMgr.Question.SelectIndex].Character.Status = CLOCKMAN_BREAK;
ZGameMgr.ClockMan[ZGameMgr.Question.SelectIndex].Time = -1;
ZGameMgr.ClockMan[ZGameMgr.Question.SelectIndex].RevivalWait = 1;
ZGameMgr.ClockMan[ZGameMgr.Question.SelectIndex].AnmBase = CLOCKMAN_ANM_BASE_11;
ZGameMgr.ClockMan[ZGameMgr.Question.SelectIndex].Character.Anm.Index = 0;
ZGameMgr.ClockMan[ZGameMgr.Question.SelectIndex].Character.Anm.Data.wt = 0;
ZGameMgr.ClockMan[ZGameMgr.Question.SelectIndex].Character.Anm.Data.no = ClockManSpriteTable[ ZGameMgr.ClockMan[ZGameMgr.Question.SelectIndex].AnmBase + ZGameMgr.ClockMan[ZGameMgr.Question.SelectIndex].Character.Anm.Index ].No;
ZGameMgr.ClockMan[ZGameMgr.Question.SelectIndex].Character.OPos.x = ClockManSpriteTable[ ZGameMgr.ClockMan[ZGameMgr.Question.SelectIndex].AnmBase ].Ofx;
ZGameMgr.ClockMan[ZGameMgr.Question.SelectIndex].Character.OPos.y = ClockManSpriteTable[ ZGameMgr.ClockMan[ZGameMgr.Question.SelectIndex].AnmBase ].Ofy;
ZGameMgr.ClockMan[ZGameMgr.Question.SelectIndex].AnmCount = 0;
break;
case ANSWER_NONE:
default:
break;
}
}
break;
case PLAYER_DECISION:
if(--ZGameMgr.Player.WaitTimer < 0)
{
GameMgr.WaitFlag = OFF;
ZGameMgr.Player.Character.Status = PLAYER_SELECT;
dscale = SCALE10;
if( GetQuestionIndex(&nextindex) ){
ZGameMgr.Question.Index = nextindex;
dsPlayXa( ClockXaTable[ ZGameMgr.Question.Time[ ZGameMgr.Question.Index ] ].FileNo,
ClockXaTable[ ZGameMgr.Question.Time[ ZGameMgr.Question.Index ] ].ChannelNo);
}
}
break;
default:
}
SpData.No = ZGameMgr.Player.Character.Anm.Data.no;
SpData.PosX = ZGameMgr.Player.Character.Pos.x + ZGameMgr.Player.Character.OPos.x;
SpData.PosY = ZGameMgr.Player.Character.Pos.y + ZGameMgr.Player.Character.OPos.y;
SpData.PosZ = ZGameMgr.Player.Character.Pos.z + ZGameMgr.Player.Character.OPos.z;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
break;
case TASK_MODE_EXIT:
ExitTask(ip_task->id);
break;
default:
}
return TRUE;
}
static int ClockManTask(TASK* ip_task)
{
TASK Task;
SPRITE_DATA SpData;
int i,j,rval,rval2,pchk;
switch(ip_task->mode)
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
rval = rand()%10;
rval2 = rand()%5;
for(i=0;i<MAX_CLOCKMAN_NUM;i++)
{
ZGameMgr.ClockMan[i].AnmBase = ClockManAnmBaseTable[rand() % MAX_CLOCKMAN_TYPE];
ZGameMgr.ClockMan[i].Pos = ClockManPosDataTable[rval][i];
ZGameMgr.ClockMan[i].Time = GetQuestionFirst(ZGameMgr.PlayLevel,rval2,i);
ZGameMgr.ClockMan[i].RevivalWait = 0;
ZGameMgr.ClockMan[i].AnmCount = 0;
ZGameMgr.ClockMan[i].Character.Status = CLOCKMAN_SELECT;
ZGameMgr.ClockMan[i].Character.Anm.Data.no = ClockManSpriteTable[ ZGameMgr.ClockMan[i].AnmBase ].No;
ZGameMgr.ClockMan[i].Character.Anm.Data.wt = 0;
ZGameMgr.ClockMan[i].Character.Anm.Index = 0;
ZGameMgr.ClockMan[i].Character.Pos.x = ClockManPosTable[ ZGameMgr.ClockMan[i].Pos ].x;
ZGameMgr.ClockMan[i].Character.Pos.y = ClockManPosTable[ ZGameMgr.ClockMan[i].Pos ].y;
ZGameMgr.ClockMan[i].Character.Pos.z = PRIORITY_CLOCK;
ZGameMgr.ClockMan[i].HandOfx = ClockHandOffsetTable[ ZGameMgr.ClockMan[i].AnmBase ].Ofx;
ZGameMgr.ClockMan[i].HandOfy = ClockHandOffsetTable[ ZGameMgr.ClockMan[i].AnmBase ].Ofy;
ZGameMgr.ClockMan[i].Character.OPos.z = 0;
ZGameMgr.ClockMan[i].Character.Spd.dx = 0;
ZGameMgr.ClockMan[i].Character.Spd.dy = 0;
ZGameMgr.ClockMan[i].Character.Spd.sx = 0;
ZGameMgr.ClockMan[i].Character.Spd.sy = 0;
}
break;
case TASK_MODE_MAIN:
for(i=0;i<MAX_CLOCKMAN_NUM;i++)
{
switch(ZGameMgr.ClockMan[i].Character.Status)
{
case CLOCKMAN_SELECT:
break;
case CLOCKMAN_REVIVAL_WAIT:
if(ZGameMgr.ClockMan[i].RevivalWait==0)
{
ZGameMgr.ClockMan[i].Character.Status = CLOCKMAN_APPEAR;
ZGameMgr.ClockMan[i].AnmCount = 0;
ZGameMgr.ClockMan[i].AnmBase = CLOCKMAN_ANM_BASE_10;
ZGameMgr.ClockMan[i].Character.Anm.Data.wt = 0;
ZGameMgr.ClockMan[i].Character.Anm.Index = 0;
ZGameMgr.ClockMan[i].Character.Anm.Data.no = ClockManSpriteTable[ ZGameMgr.ClockMan[i].AnmBase + ZGameMgr.ClockMan[i].Character.Anm.Index ].No;
ZGameMgr.ClockMan[i].Character.OPos.x = ClockManSpriteTable[ ZGameMgr.ClockMan[i].AnmBase ].Ofx;
ZGameMgr.ClockMan[i].Character.OPos.y = ClockManSpriteTable[ ZGameMgr.ClockMan[i].AnmBase ].Ofy;
}
break;
case CLOCKMAN_APPEAR:
if(++ZGameMgr.ClockMan[i].AnmCount >= 2*CLOCKMAN_ANM_WAIT_TIME)
{
ZGameMgr.ClockMan[i].Character.Status = CLOCKMAN_SELECT;
ZGameMgr.ClockMan[i].Time = GetQuestion(ZGameMgr.PlayLevel);
ZGameMgr.Question.Time[i] = ZGameMgr.ClockMan[i].Time;
ZGameMgr.Question.GetDataFlag[i] = 1;
ZGameMgr.ClockMan[i].AnmBase = ClockManAnmBaseTable[rand() % MAX_CLOCKMAN_TYPE];
ZGameMgr.ClockMan[i].HandOfx = ClockHandOffsetTable[ ZGameMgr.ClockMan[i].AnmBase ].Ofx;
ZGameMgr.ClockMan[i].HandOfy = ClockHandOffsetTable[ ZGameMgr.ClockMan[i].AnmBase ].Ofy;
ZGameMgr.ClockMan[i].Character.OPos.x = ClockManSpriteTable[ ZGameMgr.ClockMan[i].AnmBase ].Ofx;
ZGameMgr.ClockMan[i].Character.OPos.y = ClockManSpriteTable[ ZGameMgr.ClockMan[i].AnmBase ].Ofy;
}
break;
case CLOCKMAN_DISAPPEAR:
if(++ZGameMgr.ClockMan[i].AnmCount >= 2*CLOCKMAN_ANM_WAIT_TIME)
{
for(j=0;j<MAX_CLOCKMAN_NUM;j++){
if(j==i) continue;
if(ZGameMgr.ClockMan[j].Character.Status==CLOCKMAN_REVIVAL_WAIT){
ZGameMgr.ClockMan[j].RevivalWait=0;
}
}
ZGameMgr.ClockMan[i].AnmBase = CLOCKMAN_ANM_BASE_07;
ZGameMgr.ClockMan[i].Character.Anm.Index = 0;
ZGameMgr.ClockMan[i].Character.Anm.Data.wt = 0;
ZGameMgr.ClockMan[i].Character.Anm.Data.no = ClockManSpriteTable[ ZGameMgr.ClockMan[i].AnmBase + ZGameMgr.ClockMan[i].Character.Anm.Index ].No;
ZGameMgr.ClockMan[i].Character.OPos.x = ClockManSpriteTable[ ZGameMgr.ClockMan[i].AnmBase ].Ofx;
ZGameMgr.ClockMan[i].Character.OPos.y = ClockManSpriteTable[ ZGameMgr.ClockMan[i].AnmBase ].Ofy;
ZGameMgr.ClockMan[i].Character.Status = CLOCKMAN_END;
if(ZGameMgr.ClearFlag){
ip_task->mode = TASK_MODE_EXIT;
}
}
break;
case CLOCKMAN_BREAK:
if(++ZGameMgr.ClockMan[i].AnmCount >= 2*CLOCKMAN_ANM_WAIT_TIME)
{
for(j=0;j<MAX_CLOCKMAN_NUM;j++){
if(j==i) continue;
if(ZGameMgr.ClockMan[j].Character.Status==CLOCKMAN_REVIVAL_WAIT){
ZGameMgr.ClockMan[j].RevivalWait=0;
}
}
ZGameMgr.ClockMan[i].AnmBase = CLOCKMAN_ANM_BASE_08;
ZGameMgr.ClockMan[i].Character.Anm.Index = 0;
ZGameMgr.ClockMan[i].Character.Anm.Data.wt = 0;
ZGameMgr.ClockMan[i].Character.Anm.Data.no = ClockManSpriteTable[ ZGameMgr.ClockMan[i].AnmBase + ZGameMgr.ClockMan[i].Character.Anm.Index ].No;
ZGameMgr.ClockMan[i].Character.OPos.x = ClockManSpriteTable[ ZGameMgr.ClockMan[i].AnmBase ].Ofx;
ZGameMgr.ClockMan[i].Character.OPos.y = ClockManSpriteTable[ ZGameMgr.ClockMan[i].AnmBase ].Ofy;
ZGameMgr.ClockMan[i].Character.Status = CLOCKMAN_REVIVAL_WAIT;
}
break;
case CLOCKMAN_END:
break;
default:
}
if(++ZGameMgr.ClockMan[i].Character.Anm.Data.wt > CLOCKMAN_ANM_WAIT_TIME)
{
ZGameMgr.ClockMan[i].Character.Anm.Data.wt = 0;
ZGameMgr.ClockMan[i].Character.Anm.Index ^= 1;
ZGameMgr.ClockMan[i].Character.Anm.Data.no = ClockManSpriteTable[ ZGameMgr.ClockMan[i].AnmBase + ZGameMgr.ClockMan[i].Character.Anm.Index ].No;
ZGameMgr.ClockMan[i].Character.OPos.x = ClockManSpriteTable[ ZGameMgr.ClockMan[i].AnmBase + ZGameMgr.ClockMan[i].Character.Anm.Index ].Ofx;
ZGameMgr.ClockMan[i].Character.OPos.y = ClockManSpriteTable[ ZGameMgr.ClockMan[i].AnmBase + ZGameMgr.ClockMan[i].Character.Anm.Index ].Ofy;
}
SpData.No = ZGameMgr.ClockMan[i].Character.Anm.Data.no;
SpData.PosX = ZGameMgr.ClockMan[i].Character.Pos.x + ZGameMgr.ClockMan[i].Character.OPos.x;
SpData.PosY = ZGameMgr.ClockMan[i].Character.Pos.y + ZGameMgr.ClockMan[i].Character.OPos.y;
SpData.PosZ = ZGameMgr.ClockMan[i].Character.Pos.z + ZGameMgr.ClockMan[i].Character.OPos.z;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
if(ZGameMgr.ClockMan[i].Character.Status==CLOCKMAN_SELECT)
{
if(ZGameMgr.ClockMan[i].Time != -1){
DrawClock(ZGameMgr.ClockMan[i].Time,
ZGameMgr.ClockMan[i].Character.Pos.x + ZGameMgr.ClockMan[i].Character.OPos.x + ZGameMgr.ClockMan[i].HandOfx,
ZGameMgr.ClockMan[i].Character.Pos.y + ZGameMgr.ClockMan[i].Character.OPos.y + ZGameMgr.ClockMan[i].HandOfy,
ZGameMgr.ClockMan[i].Character.Pos.z + ZGameMgr.ClockMan[i].Character.OPos.z-1 );
}
}
}
break;
case TASK_MODE_EXIT:
RemoveTask(TASK_NO_GAME_PLAYER);
RemoveTask(TASK_NO_GAME_QUESTION);
RemoveTask(TASK_NO_GAME_PAUSE);
RemoveTask(TASK_NO_GAME_TIMER);
Task.func = CongratulationsTask;
Task.priority = TASK_NO_GAME_CONGRATULATIONS;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_CONGRATULATIONS;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "CongratulationsTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
ExitTask(ip_task->id);
break;
default:
}
return TRUE;
}
static int QuestionTask(TASK* ip_task)
{
int i;
switch(ip_task->mode)
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
ZGameMgr.Question.Index = 0;
ZGameMgr.Question.SelectIndex = 0;
for(i=0;i<MAX_CLOCKMAN_NUM;i++){
ZGameMgr.Question.GetDataFlag[i] = 1;
ZGameMgr.Question.ExistFlag[i] = 1;
ZGameMgr.Question.Time[i] = ZGameMgr.ClockMan[i].Time;
}
dsPlayXa( ClockXaTable[ ZGameMgr.Question.Time[ ZGameMgr.Question.Index ] ].FileNo,
ClockXaTable[ ZGameMgr.Question.Time[ ZGameMgr.Question.Index ] ].ChannelNo);
break;
case TASK_MODE_MAIN:
DrawClockTime( ZGameMgr.Question.Time[ ZGameMgr.Question.Index ] );
break;
case TASK_MODE_EXIT:
ExitTask(ip_task->id);
break;
default:
}
return TRUE;
}
static int GameBgTask(TASK* ip_task)
{
SPRITE_DATA SpData;
switch(ip_task->mode)
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
break;
case TASK_MODE_MAIN:
SpData.No = ZIRI_CHAR_GAME_GAME_BG_00;
SpData.PosX = 0;
SpData.PosY = 0;
SpData.PosZ = PRIORITY_BG;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = ZIRI_CHAR_GAME_GAME_BG_01;
SpData.PosX = 256;
SpData.PosY = 0;
SpData.PosZ = PRIORITY_BG-1;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
break;
case TASK_MODE_EXIT:
ExitTask(ip_task->id);
break;
default:
}
return TRUE;
}
static int PauseTask(TASK* ip_task)
{
TASK Task;
int ret;
switch( ip_task->mode )
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
ip_task->user[0] = 0;
GameMgr.WaitFlag = OFF;
break;
case TASK_MODE_MAIN:
if( !ip_task->user[0] )
{
ret = MainMenuCheck10();
if(ret==ON)
{
ip_task->user[0] = 1;
SleepTask(TASK_NO_GAME_PLAYER);
SleepTask(TASK_NO_GAME_CLOCKMAN);
SleepTask(TASK_NO_GAME_QUESTION);
SleepTask(TASK_NO_GAME_TIMER);
}else{
}
}else
{
ret = MainMenuCheck10();
if(ret==OFF)
{
ip_task->user[0] = 0;
WakeupTask(TASK_NO_GAME_PLAYER);
WakeupTask(TASK_NO_GAME_CLOCKMAN);
WakeupTask(TASK_NO_GAME_QUESTION);
WakeupTask(TASK_NO_GAME_TIMER);
}else
if(ret==MEIN_MENU_OWARI)
{
Task.func = PauseMenuFadeOutTask;
Task.priority = TASK_NO_GAME_FADE;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_FADE;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "PauseMenuFadeOutTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
ip_task->mode = TASK_MODE_EXIT;
}else{
}
}
break;
case TASK_MODE_EXIT:
GameMgr.WaitFlag = ON;
ExitTask(ip_task->id);
break;
default:
}
return TRUE;
}
static int TimerTask(TASK* ip_task)
{
static int TimerLightSpriteTable[]={
ZIRI_CHAR_GAME_LIGHT_GREEN,
ZIRI_CHAR_GAME_LIGHT_GREEN,
ZIRI_CHAR_GAME_LIGHT_GREEN,
ZIRI_CHAR_GAME_LIGHT_YELLOW,
ZIRI_CHAR_GAME_LIGHT_YELLOW,
ZIRI_CHAR_GAME_LIGHT_RED,
ZIRI_CHAR_GAME_LIGHT_RED,
};
SPRITE_DATA SpData;
int i;
switch( ip_task->mode )
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
ZGameMgr.TimerLight.Timer = 0;
ZGameMgr.TimerLight.Count = 0;
break;
case TASK_MODE_MAIN:
if(++ZGameMgr.TimerLight.Timer > TIMER_LIGHT_WAIT_TIME){
ZGameMgr.TimerLight.Timer = 0;
if(++ZGameMgr.TimerLight.Count>MAX_TIMER_LIGHT_NUM){
ZGameMgr.TimerLight.Count = MAX_TIMER_LIGHT_NUM;
GameMgr.WaitFlag = ON;
ZGameMgr.TimeUpFlag = 1;
RemoveTask(TASK_NO_GAME_PAUSE);
}
}
for(i=0;i<ZGameMgr.TimerLight.Count;i++)
{
SpData.No = TimerLightSpriteTable[i];
SpData.PosX = 115 + i*13;
SpData.PosY = 16;
SpData.PosZ = PRIORITY_TIMER_LIGHT;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
break;
case TASK_MODE_EXIT:
ExitTask(ip_task->id);
break;
default:
}
return TRUE;
}
static int ScriptTask(TASK* ip_task)
{
switch( ip_task->mode )
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
ZGameMgr.Script.Flag = 1;
ZGameMgr.Script.Index = 0;
ZGameMgr.Script.Line = ip_task->user[0];
ZGameMgr.Script.Base = ip_task->user[1];
ZGameMgr.Script.Num = ip_task->user[2];
ip_task->user[0] = 0;
ip_task->user[1] = GET_DA_STATUS_WAIT_TIME*3;
break;
case TASK_MODE_MAIN:
switch(ip_task->user[0])
{
case 0:
if(MetuseijiFlag==OFF)
{
switch(ZGameMgr.Script.Line)
{
case SCRIPT_LINE_1:
MenuMessageSet10(&ZiriScript[ZGameMgr.Script.Base + ZGameMgr.Script.Index]);
break;
case SCRIPT_LINE_2:
MenuMessageSet20(&ZiriScript[ZGameMgr.Script.Base + ZGameMgr.Script.Index]);
break;
case SCRIPT_LINE_3:
MenuMessageSet30(&ZiriScript[ZGameMgr.Script.Base + ZGameMgr.Script.Index]);
break;
default:
}
if(++ZGameMgr.Script.Index >= ZGameMgr.Script.Num){
ip_task->user[0] = 1;
}
}
break;
case 1:
if(--ip_task->user[1]<=0){
if(dSoundStatus == DslStatStandby){
ip_task->mode = TASK_MODE_EXIT;
}
}
break;
default:
}
break;
case TASK_MODE_EXIT:
ZGameMgr.Script.Flag = 0;
ExitTask(ip_task->id);
break;
default:
}
return TRUE;
}
static int EventFadeOutTask(TASK* ip_task)
{
TASK* pTask;
switch( ip_task->mode )
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
GameMgr.FadeFlag = FadeOut;
break;
case TASK_MODE_MAIN:
if(GameMgr.FadeFlag==FadeOutOk){
ip_task->mode = TASK_MODE_EXIT;
}
break;
case TASK_MODE_EXIT:
pTask = SearchTask(ip_task->user[0]);
if(pTask!=NULL){
pTask->mode = TASK_MODE_EXIT;
}
ExitTask(ip_task->id);
break;
default:
}
return TRUE;
}
static int PauseMenuFadeOutTask(TASK* ip_task)
{
switch( ip_task->mode )
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
GameMgr.FadeFlag = FadeOut;
break;
case TASK_MODE_MAIN:
if(GameMgr.FadeFlag==FadeOutOk){
ip_task->mode = TASK_MODE_EXIT;
}
break;
case TASK_MODE_EXIT:
ZGameMgr.ExitFlag = 1;
ExitTask(ip_task->id);
break;
default:
}
return TRUE;
}
static int CongratulationsTask(TASK* ip_task)
{
SPRITE_DATA SpData;
switch( ip_task->mode )
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
ip_task->user[0] = 0;
dsStopXa();
ssPlaySe(ZIRI_SE_02);
break;
case TASK_MODE_MAIN:
if( ++ip_task->user[0] > CONGRATULATIONS_WAIT_TIME ){
ZGameMgr.ClearEndFlag = 1;
}
SpData.No = ZIRI_CHAR_GAME_PLATE_CONGRATULATIONS;
SpData.PosX = 129;
SpData.PosY = 81;
SpData.PosZ = PRIORITY_CONGRATULATIONS;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
break;
case TASK_MODE_EXIT:
ExitTask(ip_task->id);
break;
default:
}
return TRUE;
}
static int ClearEventTask(TASK* ip_task)
{
TASK Task;
switch( ip_task->mode )
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
ZGameMgr.Event.Timer = 0;
ZGameMgr.Event.EndFlag = 0;
ZGameMgr.Event.Clear.BgAnmWaitTimer = 0;
ZGameMgr.Event.Clear.BgAnmIndex = 0;
ZGameMgr.Event.Clear.ClockManAnmNo = 0;
ZGameMgr.Event.Clear.ClockManAnmWaitTimer = 0;
ZGameMgr.Event.Clear.ClockManAnmIndex = 0;
ZGameMgr.SelectContinue.Val = 0;
ZGameMgr.SelectContinue.Type = SELECT_RETRY_H;
ZGameMgr.SelectContinue.No = 0;
ZGameMgr.SelectContinue.Wt = 0;
ZGameMgr.SelectContinue.FadeFlag = 0;
Task.func = ScriptTask;
Task.priority = TASK_NO_GAME_SCRIPT;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_SCRIPT;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "ScriptTask";
Task.mode = TASK_MODE_INIT;
Task.user[0] = SCRIPT_LINE_2;
Task.user[1] = CLEAR_DEMO_SCRIPT_BASE;
Task.user[2] = CLEAR_DEMO_SCRIPT_NUM;
CreateTask(&Task);
#ifdef __DEBUG_ZIRI__
GameMgr.FadeFlag = FadeIn;
#endif
break;
case TASK_MODE_MAIN:
if(++ZGameMgr.Event.Timer > ZIRI_GAME_CLEAR_EVENT_END_TIME){
ZGameMgr.Event.EndFlag = 1;
}
ClearEventClockMan();
ClearEventBg();
if(ZGameMgr.Event.EndFlag)
{
if(SelectContinue(!ZGameMgr.SelectContinue.FadeFlag))
{
if(!ZGameMgr.SelectContinue.FadeFlag)
{
if((ZGameMgr.SelectContinue.Val==0) && (ZGameMgr.SelectContinue.Type==SELECT_RETRY_H))
{
ZGameMgr.SelectContinue.FadeFlag = 1;
Task.func = EventFadeOutTask;
Task.priority = TASK_NO_GAME_FADE;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_FADE;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "EventFadeOutTask";
Task.mode = TASK_MODE_INIT;
Task.user[0] = ip_task->id;
CreateTask(&Task);
}else
if( (ZGameMgr.SelectContinue.Val==1) && (ZGameMgr.SelectContinue.Type==SELECT_RETRY_H))
{
ZGameMgr.SelectContinue.Type =SELECT_END_H;
ZGameMgr.SelectContinue.Val = 0;
}else
if((ZGameMgr.SelectContinue.Type==SELECT_END_H) && (ZGameMgr.SelectContinue.Val==0))
{
ZGameMgr.SelectContinue.FadeFlag = 1;
Task.func = EventFadeOutTask;
Task.priority = TASK_NO_GAME_FADE;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_FADE;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "EventFadeOutTask";
Task.mode = TASK_MODE_INIT;
Task.user[0] = ip_task->id;
CreateTask(&Task);
}else
if((ZGameMgr.SelectContinue.Type==SELECT_END_H) && (ZGameMgr.SelectContinue.Val==1))
{
ZGameMgr.SelectContinue.Type = SELECT_RETRY_H;
ZGameMgr.SelectContinue.Val = 0;
}else
{
}
}
}else{
}
}
break;
case TASK_MODE_EXIT:
if((ZGameMgr.SelectContinue.Val==0) && (ZGameMgr.SelectContinue.Type==SELECT_RETRY_H))
{
Task.func = SelectLevelTask;
Task.priority = TASK_NO_GAME_SELECT_LEVEL;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_SELECT_LEVEL;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "SelectLevelTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
}else
{
ZGameMgr.ExitFlag=1;
}
ExitTask(ip_task->id);
break;
default:
}
return TRUE;
}
static int AllClearEventTask(TASK* ip_task)
{
TASK Task;
switch( ip_task->mode )
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
ZGameMgr.Event.Timer = 0;
ZGameMgr.Event.EndFlag = 0;
ZGameMgr.Event.AllClear.Mode = 0;
ZGameMgr.Event.AllClear.Timer = 0;
ZGameMgr.Event.AllClear.BgAnmWaitTimer = 0;
ZGameMgr.Event.AllClear.BgAnmIndex = 0;
ZGameMgr.Event.AllClear.ClockManMode = 0;
ZGameMgr.Event.AllClear.ClockManAnmWaitTimer = 0;
ZGameMgr.Event.AllClear.ClockManBodyAnmIndex = 0;
ZGameMgr.Event.AllClear.ClockManArmAnmIndex = 0;
ZGameMgr.Event.AllClear.ClockManClockMaskFlag = 0;
ZGameMgr.Event.AllClear.SmallClockManMode = 0;
ZGameMgr.Event.AllClear.SmallClockManAnmWaitTimer = 0;
ZGameMgr.Event.AllClear.SmallClockManAnmIndex = 0;
ZGameMgr.Event.AllClear.StarTimer = 0;
ZGameMgr.Event.AllClear.StarMode = 0;
ZGameMgr.SelectContinue.Val = 0;
ZGameMgr.SelectContinue.Type = SELECT_RETRY_H;
ZGameMgr.SelectContinue.No = 0;
ZGameMgr.SelectContinue.Wt = 0;
ZGameMgr.SelectContinue.FadeFlag = 0;
Task.func = ScriptTask;
Task.priority = TASK_NO_GAME_SCRIPT;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_SCRIPT;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "ScriptTask";
Task.mode = TASK_MODE_INIT;
Task.user[0] = SCRIPT_LINE_2;
Task.user[1] = ALL_CLEAR_DEMO_SCRIPT_BASE;
Task.user[2] = ALL_CLEAR_DEMO_SCRIPT_NUM;
CreateTask(&Task);
#ifdef __DEBUG_ZIRI__
GameMgr.FadeFlag = FadeIn;
#endif
break;
case TASK_MODE_MAIN:
if(++ZGameMgr.Event.Timer > ZIRI_GAME_ALL_CLEAR_EVENT_END_TIME){
ZGameMgr.Event.EndFlag = 1;
}
AllClearEventClockMan();
AllClearEventSmallClockMan();
AllClearEventStar();
AllClearEventBg();
if(ZGameMgr.Event.EndFlag)
{
if(SelectContinue(!ZGameMgr.SelectContinue.FadeFlag))
{
if(!ZGameMgr.SelectContinue.FadeFlag)
{
if((ZGameMgr.SelectContinue.Val==0) && (ZGameMgr.SelectContinue.Type==SELECT_RETRY_H))
{
ZGameMgr.SelectContinue.FadeFlag = 1;
Task.func = EventFadeOutTask;
Task.priority = TASK_NO_GAME_FADE;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_FADE;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "EventFadeOutTask";
Task.mode = TASK_MODE_INIT;
Task.user[0] = ip_task->id;
CreateTask(&Task);
}else
if( (ZGameMgr.SelectContinue.Val==1) && (ZGameMgr.SelectContinue.Type==SELECT_RETRY_H))
{
ZGameMgr.SelectContinue.Type =SELECT_END_H;
ZGameMgr.SelectContinue.Val = 0;
}else
if((ZGameMgr.SelectContinue.Type==SELECT_END_H) && (ZGameMgr.SelectContinue.Val==0))
{
ZGameMgr.SelectContinue.FadeFlag = 1;
Task.func = EventFadeOutTask;
Task.priority = TASK_NO_GAME_FADE;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_FADE;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "EventFadeOutTask";
Task.mode = TASK_MODE_INIT;
Task.user[0] = ip_task->id;
CreateTask(&Task);
}else
if((ZGameMgr.SelectContinue.Type==SELECT_END_H) && (ZGameMgr.SelectContinue.Val==1))
{
ZGameMgr.SelectContinue.Type = SELECT_RETRY_H;
ZGameMgr.SelectContinue.Val = 0;
}else
{
}
}
}else{
}
}
break;
case TASK_MODE_EXIT:
if((ZGameMgr.SelectContinue.Val==0) && (ZGameMgr.SelectContinue.Type==SELECT_RETRY_H))
{
Task.func = SelectLevelTask;
Task.priority = TASK_NO_GAME_SELECT_LEVEL;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_SELECT_LEVEL;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "SelectLevelTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
}else
{
ZGameMgr.ExitFlag=1;
}
ExitTask(ip_task->id);
break;
default:
}
return TRUE;
}
static int FalseEventTask(TASK* ip_task)
{
TASK Task;
switch( ip_task->mode )
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
ZGameMgr.Event.Timer = 0;
ZGameMgr.Event.EndFlag = 0;
ZGameMgr.Event.False.Mode = FALSE_EVENT_MODE_BAKU;
ZGameMgr.Event.False.Timer = 0;
ZGameMgr.Event.False.ClockManAnmWaitTimer = 0;
ZGameMgr.Event.False.ClockManAnmIndex = 0;
ZGameMgr.Event.False.ClockManAngle = 0;
ZGameMgr.Event.False.ClockManPosX = 0;
ZGameMgr.Event.False.ClockManPosY = 0;
ZGameMgr.Event.False.ClockManWorkPosX = 0;
ZGameMgr.SelectContinue.Val = 0;
ZGameMgr.SelectContinue.Type = SELECT_RETRY_H;
ZGameMgr.SelectContinue.No = 0;
ZGameMgr.SelectContinue.Wt = 0;
ZGameMgr.SelectContinue.FadeFlag = 0;
dsPlayXa(XA_FILE_ZIRI01,5);
ssPlaySe(ZIRI_SE_03);
#ifdef __DEBUG_ZIRI__
GameMgr.FadeFlag = FadeIn;
#endif
break;
case TASK_MODE_MAIN:
if(++ZGameMgr.Event.Timer > ZIRI_GAME_FALSE_EVENT_END_TIME){
ZGameMgr.Event.EndFlag = 1;
}
FalseEventClockMan();
if(ZGameMgr.Event.EndFlag)
{
if(SelectContinue(!ZGameMgr.SelectContinue.FadeFlag))
{
if(!ZGameMgr.SelectContinue.FadeFlag){
if((ZGameMgr.SelectContinue.Val==0) && (ZGameMgr.SelectContinue.Type==SELECT_RETRY_H))
{
ZGameMgr.SelectContinue.FadeFlag = 1;
Task.func = EventFadeOutTask;
Task.priority = TASK_NO_GAME_FADE;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_FADE;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "EventFadeOutTask";
Task.mode = TASK_MODE_INIT;
Task.user[0] = ip_task->id;
CreateTask(&Task);
}else
if( (ZGameMgr.SelectContinue.Val==1) && (ZGameMgr.SelectContinue.Type==SELECT_RETRY_H))
{
ZGameMgr.SelectContinue.Type =SELECT_END_H;
ZGameMgr.SelectContinue.Val = 0;
}else
if((ZGameMgr.SelectContinue.Type==SELECT_END_H) && (ZGameMgr.SelectContinue.Val==0))
{
ZGameMgr.SelectContinue.FadeFlag = 1;
Task.func = EventFadeOutTask;
Task.priority = TASK_NO_GAME_FADE;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_FADE;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "EventFadeOutTask";
Task.mode = TASK_MODE_INIT;
Task.user[0] = ip_task->id;
CreateTask(&Task);
}else
if((ZGameMgr.SelectContinue.Type==SELECT_END_H) && (ZGameMgr.SelectContinue.Val==1))
{
ZGameMgr.SelectContinue.Type = SELECT_RETRY_H;
ZGameMgr.SelectContinue.Val = 0;
}else
{
}
}
}else{
}
}
break;
case TASK_MODE_EXIT:
RemoveTask(TASK_NO_GAME_BG);
if((ZGameMgr.SelectContinue.Type==SELECT_END_H) && (ZGameMgr.SelectContinue.Val==0))
{
ZGameMgr.ExitFlag=1;
}else
{
Task.func = SelectLevelTask;
Task.priority = TASK_NO_GAME_SELECT_LEVEL;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_SELECT_LEVEL;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "SelectLevelTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
}
ExitTask(ip_task->id);
break;
default:
}
return TRUE;
}
typedef struct {
int tyousin;
int tansin;
}CLOCK_ANGLE;
static void DrawClock(int i_time,int i_x,int i_y,int i_z)
{
SPRITE_DATA SpData;
static CLOCK_ANGLE ClockAngleTable[]=
{
{ ZIRI_CHAR_GAME_NEEDLE_LONG_00, ZIRI_CHAR_GAME_NEEDLE_SHORT_00 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_01, ZIRI_CHAR_GAME_NEEDLE_SHORT_00 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_02, ZIRI_CHAR_GAME_NEEDLE_SHORT_00 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_03, ZIRI_CHAR_GAME_NEEDLE_SHORT_01 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_04, ZIRI_CHAR_GAME_NEEDLE_SHORT_01 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_05, ZIRI_CHAR_GAME_NEEDLE_SHORT_01 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_06, ZIRI_CHAR_GAME_NEEDLE_SHORT_02 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_07, ZIRI_CHAR_GAME_NEEDLE_SHORT_02 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_08, ZIRI_CHAR_GAME_NEEDLE_SHORT_02 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_09, ZIRI_CHAR_GAME_NEEDLE_SHORT_03 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_10, ZIRI_CHAR_GAME_NEEDLE_SHORT_03 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_11, ZIRI_CHAR_GAME_NEEDLE_SHORT_03 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_00, ZIRI_CHAR_GAME_NEEDLE_SHORT_04 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_01, ZIRI_CHAR_GAME_NEEDLE_SHORT_04 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_02, ZIRI_CHAR_GAME_NEEDLE_SHORT_04 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_03, ZIRI_CHAR_GAME_NEEDLE_SHORT_05 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_04, ZIRI_CHAR_GAME_NEEDLE_SHORT_05 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_05, ZIRI_CHAR_GAME_NEEDLE_SHORT_05 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_06, ZIRI_CHAR_GAME_NEEDLE_SHORT_06 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_07, ZIRI_CHAR_GAME_NEEDLE_SHORT_06 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_08, ZIRI_CHAR_GAME_NEEDLE_SHORT_06 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_09, ZIRI_CHAR_GAME_NEEDLE_SHORT_07 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_10, ZIRI_CHAR_GAME_NEEDLE_SHORT_07 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_11, ZIRI_CHAR_GAME_NEEDLE_SHORT_07 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_00, ZIRI_CHAR_GAME_NEEDLE_SHORT_08 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_01, ZIRI_CHAR_GAME_NEEDLE_SHORT_08 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_02, ZIRI_CHAR_GAME_NEEDLE_SHORT_08 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_03, ZIRI_CHAR_GAME_NEEDLE_SHORT_09 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_04, ZIRI_CHAR_GAME_NEEDLE_SHORT_09 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_05, ZIRI_CHAR_GAME_NEEDLE_SHORT_09 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_06, ZIRI_CHAR_GAME_NEEDLE_SHORT_10 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_07, ZIRI_CHAR_GAME_NEEDLE_SHORT_10 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_08, ZIRI_CHAR_GAME_NEEDLE_SHORT_10 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_09, ZIRI_CHAR_GAME_NEEDLE_SHORT_11 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_10, ZIRI_CHAR_GAME_NEEDLE_SHORT_11 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_11, ZIRI_CHAR_GAME_NEEDLE_SHORT_11 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_00, ZIRI_CHAR_GAME_NEEDLE_SHORT_12 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_01, ZIRI_CHAR_GAME_NEEDLE_SHORT_12 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_02, ZIRI_CHAR_GAME_NEEDLE_SHORT_12 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_03, ZIRI_CHAR_GAME_NEEDLE_SHORT_13 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_04, ZIRI_CHAR_GAME_NEEDLE_SHORT_13 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_05, ZIRI_CHAR_GAME_NEEDLE_SHORT_13 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_06, ZIRI_CHAR_GAME_NEEDLE_SHORT_14 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_07, ZIRI_CHAR_GAME_NEEDLE_SHORT_14 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_08, ZIRI_CHAR_GAME_NEEDLE_SHORT_14 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_09, ZIRI_CHAR_GAME_NEEDLE_SHORT_15 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_10, ZIRI_CHAR_GAME_NEEDLE_SHORT_15 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_11, ZIRI_CHAR_GAME_NEEDLE_SHORT_15 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_00, ZIRI_CHAR_GAME_NEEDLE_SHORT_16 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_01, ZIRI_CHAR_GAME_NEEDLE_SHORT_16 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_02, ZIRI_CHAR_GAME_NEEDLE_SHORT_16 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_03, ZIRI_CHAR_GAME_NEEDLE_SHORT_17 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_04, ZIRI_CHAR_GAME_NEEDLE_SHORT_17 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_05, ZIRI_CHAR_GAME_NEEDLE_SHORT_17 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_06, ZIRI_CHAR_GAME_NEEDLE_SHORT_18 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_07, ZIRI_CHAR_GAME_NEEDLE_SHORT_18 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_08, ZIRI_CHAR_GAME_NEEDLE_SHORT_18 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_09, ZIRI_CHAR_GAME_NEEDLE_SHORT_19 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_10, ZIRI_CHAR_GAME_NEEDLE_SHORT_19 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_11, ZIRI_CHAR_GAME_NEEDLE_SHORT_19 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_00, ZIRI_CHAR_GAME_NEEDLE_SHORT_20 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_01, ZIRI_CHAR_GAME_NEEDLE_SHORT_20 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_02, ZIRI_CHAR_GAME_NEEDLE_SHORT_20 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_03, ZIRI_CHAR_GAME_NEEDLE_SHORT_21 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_04, ZIRI_CHAR_GAME_NEEDLE_SHORT_21 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_05, ZIRI_CHAR_GAME_NEEDLE_SHORT_21 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_06, ZIRI_CHAR_GAME_NEEDLE_SHORT_22 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_07, ZIRI_CHAR_GAME_NEEDLE_SHORT_22 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_08, ZIRI_CHAR_GAME_NEEDLE_SHORT_22 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_09, ZIRI_CHAR_GAME_NEEDLE_SHORT_23 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_10, ZIRI_CHAR_GAME_NEEDLE_SHORT_23 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_11, ZIRI_CHAR_GAME_NEEDLE_SHORT_23 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_00, ZIRI_CHAR_GAME_NEEDLE_SHORT_24 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_01, ZIRI_CHAR_GAME_NEEDLE_SHORT_24 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_02, ZIRI_CHAR_GAME_NEEDLE_SHORT_24 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_03, ZIRI_CHAR_GAME_NEEDLE_SHORT_25 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_04, ZIRI_CHAR_GAME_NEEDLE_SHORT_25 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_05, ZIRI_CHAR_GAME_NEEDLE_SHORT_25 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_06, ZIRI_CHAR_GAME_NEEDLE_SHORT_26 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_07, ZIRI_CHAR_GAME_NEEDLE_SHORT_26 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_08, ZIRI_CHAR_GAME_NEEDLE_SHORT_26 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_09, ZIRI_CHAR_GAME_NEEDLE_SHORT_27 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_10, ZIRI_CHAR_GAME_NEEDLE_SHORT_27 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_11, ZIRI_CHAR_GAME_NEEDLE_SHORT_27 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_00, ZIRI_CHAR_GAME_NEEDLE_SHORT_28 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_01, ZIRI_CHAR_GAME_NEEDLE_SHORT_28 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_02, ZIRI_CHAR_GAME_NEEDLE_SHORT_28 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_03, ZIRI_CHAR_GAME_NEEDLE_SHORT_29 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_04, ZIRI_CHAR_GAME_NEEDLE_SHORT_29 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_05, ZIRI_CHAR_GAME_NEEDLE_SHORT_29 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_06, ZIRI_CHAR_GAME_NEEDLE_SHORT_30 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_07, ZIRI_CHAR_GAME_NEEDLE_SHORT_30 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_08, ZIRI_CHAR_GAME_NEEDLE_SHORT_30 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_09, ZIRI_CHAR_GAME_NEEDLE_SHORT_31 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_10, ZIRI_CHAR_GAME_NEEDLE_SHORT_31 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_11, ZIRI_CHAR_GAME_NEEDLE_SHORT_31 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_00, ZIRI_CHAR_GAME_NEEDLE_SHORT_32 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_01, ZIRI_CHAR_GAME_NEEDLE_SHORT_32 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_02, ZIRI_CHAR_GAME_NEEDLE_SHORT_32 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_03, ZIRI_CHAR_GAME_NEEDLE_SHORT_33 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_04, ZIRI_CHAR_GAME_NEEDLE_SHORT_33 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_05, ZIRI_CHAR_GAME_NEEDLE_SHORT_33 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_06, ZIRI_CHAR_GAME_NEEDLE_SHORT_34 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_07, ZIRI_CHAR_GAME_NEEDLE_SHORT_34 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_08, ZIRI_CHAR_GAME_NEEDLE_SHORT_34 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_09, ZIRI_CHAR_GAME_NEEDLE_SHORT_35 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_10, ZIRI_CHAR_GAME_NEEDLE_SHORT_35 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_11, ZIRI_CHAR_GAME_NEEDLE_SHORT_35 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_00, ZIRI_CHAR_GAME_NEEDLE_SHORT_36 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_01, ZIRI_CHAR_GAME_NEEDLE_SHORT_36 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_02, ZIRI_CHAR_GAME_NEEDLE_SHORT_36 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_03, ZIRI_CHAR_GAME_NEEDLE_SHORT_37 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_04, ZIRI_CHAR_GAME_NEEDLE_SHORT_37 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_05, ZIRI_CHAR_GAME_NEEDLE_SHORT_37 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_06, ZIRI_CHAR_GAME_NEEDLE_SHORT_38 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_07, ZIRI_CHAR_GAME_NEEDLE_SHORT_38 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_08, ZIRI_CHAR_GAME_NEEDLE_SHORT_38 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_09, ZIRI_CHAR_GAME_NEEDLE_SHORT_39 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_10, ZIRI_CHAR_GAME_NEEDLE_SHORT_39 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_11, ZIRI_CHAR_GAME_NEEDLE_SHORT_39 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_00, ZIRI_CHAR_GAME_NEEDLE_SHORT_40 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_01, ZIRI_CHAR_GAME_NEEDLE_SHORT_40 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_02, ZIRI_CHAR_GAME_NEEDLE_SHORT_40 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_03, ZIRI_CHAR_GAME_NEEDLE_SHORT_41 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_04, ZIRI_CHAR_GAME_NEEDLE_SHORT_41 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_05, ZIRI_CHAR_GAME_NEEDLE_SHORT_41 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_06, ZIRI_CHAR_GAME_NEEDLE_SHORT_42 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_07, ZIRI_CHAR_GAME_NEEDLE_SHORT_42 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_08, ZIRI_CHAR_GAME_NEEDLE_SHORT_42 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_09, ZIRI_CHAR_GAME_NEEDLE_SHORT_43 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_10, ZIRI_CHAR_GAME_NEEDLE_SHORT_43 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_11, ZIRI_CHAR_GAME_NEEDLE_SHORT_43 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_00, ZIRI_CHAR_GAME_NEEDLE_SHORT_44 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_01, ZIRI_CHAR_GAME_NEEDLE_SHORT_44 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_02, ZIRI_CHAR_GAME_NEEDLE_SHORT_44 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_03, ZIRI_CHAR_GAME_NEEDLE_SHORT_45 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_04, ZIRI_CHAR_GAME_NEEDLE_SHORT_45 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_05, ZIRI_CHAR_GAME_NEEDLE_SHORT_45 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_06, ZIRI_CHAR_GAME_NEEDLE_SHORT_46 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_07, ZIRI_CHAR_GAME_NEEDLE_SHORT_46 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_08, ZIRI_CHAR_GAME_NEEDLE_SHORT_46 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_09, ZIRI_CHAR_GAME_NEEDLE_SHORT_47 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_10, ZIRI_CHAR_GAME_NEEDLE_SHORT_47 },
{ ZIRI_CHAR_GAME_NEEDLE_LONG_11, ZIRI_CHAR_GAME_NEEDLE_SHORT_47 },
};
SpData.No = ClockAngleTable[i_time].tansin;
SpData.PosX = i_x+25;
SpData.PosY = i_y+27;
SpData.PosZ = i_z-2;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = ClockAngleTable[i_time].tyousin;
SpData.PosX = i_x+21;
SpData.PosY = i_y+23;
SpData.PosZ = i_z-1;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
static void DrawClockHand(int i_time,int i_x, int i_y, int i_z)
{
static ZIRI_SPRITE_DATA LongHandSpriteTable[]=
{
{ ZIRI_CHAR_GAME_LONG_HAND_00, 30, 24 },
{ ZIRI_CHAR_GAME_LONG_HAND_05, 36, 24 },
{ ZIRI_CHAR_GAME_LONG_HAND_10, 37, 24 },
{ ZIRI_CHAR_GAME_LONG_HAND_15, 37, 30 },
{ ZIRI_CHAR_GAME_LONG_HAND_20, 37, 36 },
{ ZIRI_CHAR_GAME_LONG_HAND_25, 36, 36 },
{ ZIRI_CHAR_GAME_LONG_HAND_30, 30, 37 },
{ ZIRI_CHAR_GAME_LONG_HAND_35, 24, 36 },
{ ZIRI_CHAR_GAME_LONG_HAND_40, 23, 36 },
{ ZIRI_CHAR_GAME_LONG_HAND_45, 23, 30 },
{ ZIRI_CHAR_GAME_LONG_HAND_50, 23, 24 },
{ ZIRI_CHAR_GAME_LONG_HAND_55, 24, 24 },
};
static ZIRI_SPRITE_DATA ShortHandSpriteTable[]={
{ ZIRI_CHAR_GAME_SHORT_HAND_00_24, 33, 29 },
{ ZIRI_CHAR_GAME_SHORT_HAND_01_24, 35, 29 },
{ ZIRI_CHAR_GAME_SHORT_HAND_02_24, 36, 30 },
{ ZIRI_CHAR_GAME_SHORT_HAND_03_24, 37, 30 },
{ ZIRI_CHAR_GAME_SHORT_HAND_04_24, 37, 31 },
{ ZIRI_CHAR_GAME_SHORT_HAND_05_24, 38, 31 },
{ ZIRI_CHAR_GAME_SHORT_HAND_06_24, 38, 33 },
{ ZIRI_CHAR_GAME_SHORT_HAND_07_24, 38, 34 },
{ ZIRI_CHAR_GAME_SHORT_HAND_08_24, 37, 35 },
{ ZIRI_CHAR_GAME_SHORT_HAND_09_24, 37, 36 },
{ ZIRI_CHAR_GAME_SHORT_HAND_10_24, 36, 37 },
{ ZIRI_CHAR_GAME_SHORT_HAND_11_24, 35, 38 },
{ ZIRI_CHAR_GAME_SHORT_HAND_12_24, 33, 38 },
{ ZIRI_CHAR_GAME_SHORT_HAND_13_24, 30, 38 },
{ ZIRI_CHAR_GAME_SHORT_HAND_14_24, 30, 37 },
{ ZIRI_CHAR_GAME_SHORT_HAND_15_24, 29, 36 },
{ ZIRI_CHAR_GAME_SHORT_HAND_16_24, 29, 35 },
{ ZIRI_CHAR_GAME_SHORT_HAND_17_24, 28, 34 },
{ ZIRI_CHAR_GAME_SHORT_HAND_18_24, 28, 33 },
{ ZIRI_CHAR_GAME_SHORT_HAND_19_24, 28, 31 },
{ ZIRI_CHAR_GAME_SHORT_HAND_20_24, 29, 31 },
{ ZIRI_CHAR_GAME_SHORT_HAND_21_24, 29, 30 },
{ ZIRI_CHAR_GAME_SHORT_HAND_22_24, 30, 30 },
{ ZIRI_CHAR_GAME_SHORT_HAND_23_24, 30, 29 },
};
static CLOCK_HAND ClockHandTable[]=
{
{ 0, 0 },
{ 0, 1 },
{ 0, 2 },
{ 0, 3 },
{ 0, 4 },
{ 0, 5 },
{ 1, 6 },
{ 1, 7 },
{ 1, 8 },
{ 1, 9 },
{ 1, 10 },
{ 1, 11 },
{ 2, 0 },
{ 2, 1 },
{ 2, 2 },
{ 2, 3 },
{ 2, 4 },
{ 2, 5 },
{ 3, 6 },
{ 3, 7 },
{ 3, 8 },
{ 3, 9 },
{ 3, 10 },
{ 3, 11 },
{ 4, 0 },
{ 4, 1 },
{ 4, 2 },
{ 4, 3 },
{ 4, 4 },
{ 4, 5 },
{ 5, 6 },
{ 5, 7 },
{ 5, 8 },
{ 5, 9 },
{ 5, 10 },
{ 5, 11 },
{ 6, 0 },
{ 6, 1 },
{ 6, 2 },
{ 6, 3 },
{ 6, 4 },
{ 6, 5 },
{ 7, 6 },
{ 7, 7 },
{ 7, 8 },
{ 7, 9 },
{ 7, 10 },
{ 7, 11 },
{ 8, 0 },
{ 8, 1 },
{ 8, 2 },
{ 8, 3 },
{ 8, 4 },
{ 8, 5 },
{ 9, 6 },
{ 9, 7 },
{ 9, 8 },
{ 9, 9 },
{ 9, 10 },
{ 9, 11 },
{ 10, 0 },
{ 10, 1 },
{ 10, 2 },
{ 10, 3 },
{ 10, 4 },
{ 10, 5 },
{ 11, 6 },
{ 11, 7 },
{ 11, 8 },
{ 11, 9 },
{ 11, 10 },
{ 11, 11 },
{ 12, 0 },
{ 12, 1 },
{ 12, 2 },
{ 12, 3 },
{ 12, 4 },
{ 12, 5 },
{ 13, 6 },
{ 13, 7 },
{ 13, 8 },
{ 13, 9 },
{ 13, 10 },
{ 13, 11 },
{ 14, 0 },
{ 14, 1 },
{ 14, 2 },
{ 14, 3 },
{ 14, 4 },
{ 14, 5 },
{ 15, 6 },
{ 15, 7 },
{ 15, 8 },
{ 15, 9 },
{ 15, 10 },
{ 15, 11 },
{ 16, 0 },
{ 16, 1 },
{ 16, 2 },
{ 16, 3 },
{ 16, 4 },
{ 16, 5 },
{ 17, 6 },
{ 17, 7 },
{ 17, 8 },
{ 17, 9 },
{ 17, 10 },
{ 17, 11 },
{ 18, 0 },
{ 18, 1 },
{ 18, 2 },
{ 18, 3 },
{ 18, 4 },
{ 18, 5 },
{ 19, 6 },
{ 19, 7 },
{ 19, 8 },
{ 19, 9 },
{ 19, 10 },
{ 19, 11 },
{ 20, 0 },
{ 20, 1 },
{ 20, 2 },
{ 20, 3 },
{ 20, 4 },
{ 20, 5 },
{ 21, 6 },
{ 21, 7 },
{ 21, 8 },
{ 21, 9 },
{ 21, 10 },
{ 21, 11 },
{ 22, 0 },
{ 22, 1 },
{ 22, 2 },
{ 22, 3 },
{ 22, 4 },
{ 22, 5 },
{ 23, 6 },
{ 23, 7 },
{ 23, 8 },
{ 23, 9 },
{ 23, 10 },
{ 23, 11 },
};
int LongNo,ShortNo;
SPRITE_DATA SpData;
LongNo = ShortNo = 0;
SpData.No = LongHandSpriteTable[ClockHandTable[i_time].LongNo].No;
SpData.PosX = i_x + LongHandSpriteTable[ClockHandTable[i_time].LongNo].Ofx;
SpData.PosY = i_y + LongHandSpriteTable[ClockHandTable[i_time].LongNo].Ofy;
SpData.PosZ = i_z - 1;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = ShortHandSpriteTable[ClockHandTable[i_time].ShortNo].No;
SpData.PosX = i_x + ShortHandSpriteTable[ClockHandTable[i_time].ShortNo].Ofx;
SpData.PosY = i_y + ShortHandSpriteTable[ClockHandTable[i_time].ShortNo].Ofy;
SpData.PosZ = i_z;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
static void DrawClockTime(int i_time)
{
static HOUR_DATA ClockTimeTable[]=
{
{ 12, 0 },
{ 12, 5 },
{ 12, 10 },
{ 12, 15 },
{ 12, 20 },
{ 12, 25 },
{ 12, 30 },
{ 12, 35 },
{ 12, 40 },
{ 12, 45 },
{ 12, 50 },
{ 12, 55 },
{ 1, 0 },
{ 1, 5 },
{ 1, 10 },
{ 1, 15 },
{ 1, 20 },
{ 1, 25 },
{ 1, 30 },
{ 1, 35 },
{ 1, 40 },
{ 1, 45 },
{ 1, 50 },
{ 1, 55 },
{ 2, 0 },
{ 2, 5 },
{ 2, 10 },
{ 2, 15 },
{ 2, 20 },
{ 2, 25 },
{ 2, 30 },
{ 2, 35 },
{ 2, 40 },
{ 2, 45 },
{ 2, 50 },
{ 2, 55 },
{ 3, 0 },
{ 3, 5 },
{ 3, 10 },
{ 3, 15 },
{ 3, 20 },
{ 3, 25 },
{ 3, 30 },
{ 3, 35 },
{ 3, 40 },
{ 3, 45 },
{ 3, 50 },
{ 3, 55 },
{ 4, 0 },
{ 4, 5 },
{ 4, 10 },
{ 4, 15 },
{ 4, 20 },
{ 4, 25 },
{ 4, 30 },
{ 4, 35 },
{ 4, 40 },
{ 4, 45 },
{ 4, 50 },
{ 4, 55 },
{ 5, 0 },
{ 5, 5 },
{ 5, 10 },
{ 5, 15 },
{ 5, 20 },
{ 5, 25 },
{ 5, 30 },
{ 5, 35 },
{ 5, 40 },
{ 5, 45 },
{ 5, 50 },
{ 5, 55 },
{ 6, 0 },
{ 6, 5 },
{ 6, 10 },
{ 6, 15 },
{ 6, 20 },
{ 6, 25 },
{ 6, 30 },
{ 6, 35 },
{ 6, 40 },
{ 6, 45 },
{ 6, 50 },
{ 6, 55 },
{ 7, 0 },
{ 7, 5 },
{ 7, 10 },
{ 7, 15 },
{ 7, 20 },
{ 7, 25 },
{ 7, 30 },
{ 7, 35 },
{ 7, 40 },
{ 7, 45 },
{ 7, 50 },
{ 7, 55 },
{ 8, 0 },
{ 8, 5 },
{ 8, 10 },
{ 8, 15 },
{ 8, 20 },
{ 8, 25 },
{ 8, 30 },
{ 8, 35 },
{ 8, 40 },
{ 8, 45 },
{ 8, 50 },
{ 8, 55 },
{ 9, 0 },
{ 9, 5 },
{ 9, 10 },
{ 9, 15 },
{ 9, 20 },
{ 9, 25 },
{ 9, 30 },
{ 9, 35 },
{ 9, 40 },
{ 9, 45 },
{ 9, 50 },
{ 9, 55 },
{ 10, 0 },
{ 10, 5 },
{ 10, 10 },
{ 10, 15 },
{ 10, 20 },
{ 10, 25 },
{ 10, 30 },
{ 10, 35 },
{ 10, 40 },
{ 10, 45 },
{ 10, 50 },
{ 10, 55 },
{ 11, 0 },
{ 11, 5 },
{ 11, 10 },
{ 11, 15 },
{ 11, 20 },
{ 11, 25 },
{ 11, 30 },
{ 11, 35 },
{ 11, 40 },
{ 11, 45 },
{ 11, 50 },
{ 11, 55 },
};
static POS2D NumPosTable[]={
{134,85},
{146,85},
{166,85},
{178,85},
};
int result[4];
int i;
SPRITE_DATA SpData;
result[0] = ClockTimeTable[i_time].Hour / 10;
result[1] = ClockTimeTable[i_time].Hour - (result[0]*10);
result[2] = ClockTimeTable[i_time].Min / 10;
result[3] = ClockTimeTable[i_time].Min - (result[2]*10);
for(i=0;i<4;i++){
if( (result[i] == 0) && (i==0) ) continue;
SpData.No = ClockNumSpriteTable[result[i]];
SpData.PosX = NumPosTable[i].x;
SpData.PosY = NumPosTable[i].y;
SpData.PosZ = PRIORITY_CLOCK_NUM;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
SpData.No = ZIRI_CHAR_GAME_CLOCK_NUM_CORON;
SpData.PosX = 156;
SpData.PosY = 85;
SpData.PosZ = PRIORITY_CLOCK_NUM;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
static int GetQuestionFirst(int i_level,int i_line,int i_index)
{
return FirstQuestionData[i_level][i_line][i_index];
}
static int GetQuestion(int i_level)
{
return QuestionData[i_level].Data[ rand() % MAX_SELECT_QUESTION_NUM ];
}
static int CheckKeyDir(int *ip_dir)
{
if(JstPad & PADLup){
*ip_dir=DIR_UP;
return TRUE;
}else
if(JstPad & PADLdown){
*ip_dir=DIR_DOWN;
return TRUE;
}
else
if(JstPad & PADLleft){
*ip_dir=DIR_LEFT;
return TRUE;
}
else
if(JstPad & PADLright){
*ip_dir=DIR_RIGHT;
return TRUE;
}else{
*ip_dir=DIR_NOTHING;
return FALSE;
}
}
static int CheckAnswer(int i_pos,int* ip_index)
{
int i;
for(i=0;i<MAX_CLOCKMAN_NUM;i++)
{
if( ZGameMgr.Player.CursorPos == ZGameMgr.ClockMan[i].Pos )
{
if(ZGameMgr.ClockMan[i].Character.Status==CLOCKMAN_SELECT)
{
*ip_index = i;
if( ZGameMgr.ClockMan[i].Time == ZGameMgr.Question.Time[ ZGameMgr.Question.Index ] )
{
return ANSWER_OK;
}else{
return ANSWER_NG;
}
}
}
}
*ip_index = -1;
return ANSWER_NONE;
}
static int GetQuestionIndex(int *ip_index)
{
int tindex[MAX_CLOCKMAN_NUM],i,count;
count = 0;
for(i=0;i<MAX_CLOCKMAN_NUM;i++)
{
if( (ZGameMgr.Question.ExistFlag[i] != 0) && (ZGameMgr.Question.GetDataFlag[i] != 0) )
{
tindex[count] = i;
++count;
}
}
if(count==0)
{
*ip_index = -1;
return FALSE;
}else
{
*ip_index = tindex[rand() % count];
return TRUE;
}
}
static void ClearEventClockMan(void)
{
static ZIRI_SPRITE_DATA ClearClockManSpriteTable[]=
{
{ ZIRI_CHAR_EVENT_CLOCKMAM_LEFT_ARM_00, 58, 64 },
{ ZIRI_CHAR_EVENT_CLOCKMAM_RIGHT_ARM_00, 212, 67 },
{ ZIRI_CHAR_EVENT_CLOCKMAM_LEFT_ARM_01, 78, 48 },
{ ZIRI_CHAR_EVENT_CLOCKMAM_RIGHT_ARM_01, 202, 48 },
};
SPRITE_DATA SpData;
if(!ZGameMgr.Event.EndFlag){
if(++ZGameMgr.Event.Clear.ClockManAnmWaitTimer >= EVENT_ANM_WAIT_TIME){
ZGameMgr.Event.Clear.ClockManAnmWaitTimer = 0;
ZGameMgr.Event.Clear.ClockManAnmIndex ^= 1;
}
}
SpData.No = ClearClockManSpriteTable[ZGameMgr.Event.Clear.ClockManAnmIndex*2].No;
SpData.PosX = ClearClockManSpriteTable[ZGameMgr.Event.Clear.ClockManAnmIndex*2].Ofx;
SpData.PosY = ClearClockManSpriteTable[ZGameMgr.Event.Clear.ClockManAnmIndex*2].Ofy;
SpData.PosZ = PRIORITY_EVENT_CLOCKMAN;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = ClearClockManSpriteTable[ZGameMgr.Event.Clear.ClockManAnmIndex*2+1].No;;
SpData.PosX = ClearClockManSpriteTable[ZGameMgr.Event.Clear.ClockManAnmIndex*2+1].Ofx;
SpData.PosY = ClearClockManSpriteTable[ZGameMgr.Event.Clear.ClockManAnmIndex*2+1].Ofy;
SpData.PosZ = PRIORITY_EVENT_CLOCKMAN;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = ZIRI_CHAR_EVENT_CLOCKMAM_FADCE;
SpData.PosX = 132;
SpData.PosY = 41;
SpData.PosZ = PRIORITY_EVENT_CLOCKMAN;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = ZIRI_CHAR_EVENT_CLOCKMAM_BODY_00;
SpData.PosX = 98;
SpData.PosY = 27;
SpData.PosZ = PRIORITY_EVENT_CLOCKMAN;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = ZIRI_CHAR_EVENT_PLATE_YATA;
SpData.PosX = 109;
SpData.PosY = 90;
SpData.PosZ = PRIORITY_EVENT_CLOCKMAN-1;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
static void ClearEventBg(void)
{
static int ClearBgSpriteTable[]=
{
ZIRI_CHAR_EVENT_BG_FLUSH_00,ZIRI_CHAR_EVENT_BG_FLUSH_02,
ZIRI_CHAR_EVENT_BG_FLUSH_01,ZIRI_CHAR_EVENT_BG_FLUSH_03,
};
SPRITE_DATA SpData;
if(!ZGameMgr.Event.EndFlag){
if(++ZGameMgr.Event.Clear.BgAnmWaitTimer >= EVENT_ANM_WAIT_TIME){
ZGameMgr.Event.Clear.BgAnmWaitTimer = 0;
ZGameMgr.Event.Clear.BgAnmIndex ^= 1;
}
}
SpData.No = ClearBgSpriteTable[ZGameMgr.Event.Clear.BgAnmIndex*2];
SpData.PosX = 0;
SpData.PosY = 0;
SpData.PosZ = PRIORITY_BG;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = ClearBgSpriteTable[ZGameMgr.Event.Clear.BgAnmIndex*2 + 1];
SpData.PosX = 256;
SpData.PosY = 0;
SpData.PosZ = PRIORITY_BG;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
static void FalseEventClockMan(void)
{
static ZIRI_SPRITE_DATA FalseEventClockManSpriteTable[]={
{ ZIRI_CHAR_EVENT_CLOCMAN_BREAK_00, 83, 45 },
{ ZIRI_CHAR_EVENT_CLOCMAN_BREAK_01, 88, 57 },
};
SPRITE_DATA SpData;
switch(ZGameMgr.Event.False.Mode)
{
case FALSE_EVENT_MODE_BAKU:
if(++ZGameMgr.Event.False.Timer >= FALSE_EVENT_MODE_BAKU_TIME){
ZGameMgr.Event.False.Timer = 0;
ZGameMgr.Event.False.Mode = FALSE_EVENT_MODE_CLOCKMAN_STOP;
ZGameMgr.Event.False.ClockManPosX = FalseEventClockManSpriteTable[0].Ofx;
ZGameMgr.Event.False.ClockManPosY = FalseEventClockManSpriteTable[0].Ofy;
}
SpData.No = ZIRI_CHAR_EVENT_BAKU_00;
SpData.PosX = 6;
SpData.PosY = 18;
SpData.PosZ = PRIORITY_EVENT_CLOCKMAN-1;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = ZIRI_CHAR_EVENT_BAKU_01;
SpData.PosX = 256+6;
SpData.PosY = 18;
SpData.PosZ = PRIORITY_EVENT_CLOCKMAN-1;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
break;
case FALSE_EVENT_MODE_CLOCKMAN_STOP:
if(++ZGameMgr.Event.False.Timer >= FALSE_EVENT_MODE_CLOCKMAN_STOP_TIME){
ZGameMgr.Event.False.Timer = 0;
ZGameMgr.Event.False.Mode = FALSE_EVENT_MODE_CLOCKMAN_DOWN;
dsPlayXa(XA_FILE_ZIRI11,1);
}
if(++ZGameMgr.Event.False.ClockManAnmWaitTimer >= EVENT_ANM_WAIT_TIME){
ZGameMgr.Event.False.ClockManAnmWaitTimer = 0;
ZGameMgr.Event.False.ClockManAnmIndex ^= 1;
}
ZGameMgr.Event.False.ClockManPosX = FalseEventClockManSpriteTable[ZGameMgr.Event.False.ClockManAnmIndex].Ofx;
ZGameMgr.Event.False.ClockManPosY = FalseEventClockManSpriteTable[ZGameMgr.Event.False.ClockManAnmIndex].Ofy;
SpData.No = FalseEventClockManSpriteTable[ZGameMgr.Event.False.ClockManAnmIndex].No;
SpData.PosX = ZGameMgr.Event.False.ClockManPosX;
SpData.PosY = ZGameMgr.Event.False.ClockManPosY;
SpData.PosZ = PRIORITY_EVENT_CLOCKMAN-1;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
break;
case FALSE_EVENT_MODE_CLOCKMAN_DOWN:
ZGameMgr.Event.False.ClockManAngle += 4;
if(ZGameMgr.Event.False.ClockManAngle >= 360){
ZGameMgr.Event.False.ClockManAngle = 0;
}
ZGameMgr.Event.False.ClockManWorkPosX = (double)(FalseEventClockManSpriteTable[ZGameMgr.Event.False.ClockManAnmIndex].Ofx + 60 * sin( DEG2RAD(ZGameMgr.Event.False.ClockManAngle) ));
ZGameMgr.Event.False.ClockManPosX = (int)ZGameMgr.Event.False.ClockManWorkPosX;
ZGameMgr.Event.False.ClockManPosY+=1;
if(ZGameMgr.Event.False.ClockManPosY>400){
ZGameMgr.Event.False.ClockManPosY = 400;
}
SpData.No = FalseEventClockManSpriteTable[ZGameMgr.Event.False.ClockManAnmIndex].No;
SpData.PosX = ZGameMgr.Event.False.ClockManPosX;
SpData.PosY = ZGameMgr.Event.False.ClockManPosY;
SpData.PosZ = PRIORITY_EVENT_CLOCKMAN-1;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
break;
default:
}
}
static void AllClearEventClockMan(void)
{
static ZIRI_SPRITE_DATA ClockManBodySpriteTable[]=
{
{ ZIRI_CHAR_EVENT_CLOCKMAM_BODY_00, 98, 27 },
{ ZIRI_CHAR_EVENT_CLOKMAM_BODY_01, 98, 27 },
{ ZIRI_CHAR_EVENT_CLOKMAM_BODY_02, 98, 27 },
};
static ZIRI_SPRITE_DATA ClockManArmSpriteTable[]=
{
{ ZIRI_CHAR_EVENT_CLOCKMAM_LEFT_ARM_00, 58, 64 },
{ ZIRI_CHAR_EVENT_CLOCKMAM_RIGHT_ARM_04, 212, 33 },
{ ZIRI_CHAR_EVENT_CLOCKMAM_LEFT_ARM_01, 78, 48 },
{ ZIRI_CHAR_EVENT_CLOCKMAM_RIGHT_ARM_05, 202, 17 },
{ ZIRI_CHAR_EVENT_CLOCKMAN_LEFT_ARM_02, 78, 48 },
{ ZIRI_CHAR_EVENT_CLOCKMAN_RIGHT_ARM_02, 202, 17 },
{ ZIRI_CHAR_EVENT_CLOCKMAN_LEFT_ARM_03, 78, 48 },
{ ZIRI_CHAR_EVENT_CLOCKMAN_RIGHT_ARM_03, 202, 17 },
};
SPRITE_DATA SpData;
int i;
switch(ZGameMgr.Event.AllClear.ClockManMode)
{
case CLOCKMAN_MODE_00:
if(++ZGameMgr.Event.AllClear.ClockManAnmWaitTimer > ALL_CLEAR_CLOCKMAN_MODE_00_TIME){
ZGameMgr.Event.AllClear.ClockManAnmWaitTimer = 0;
ZGameMgr.Event.AllClear.ClockManMode = CLOCKMAN_MODE_01;
ZGameMgr.Event.AllClear.ClockManArmAnmIndex = 2;
}
break;
case CLOCKMAN_MODE_01:
if(++ZGameMgr.Event.AllClear.ClockManAnmWaitTimer > ALL_CLEAR_CLOCKMAN_MODE_01_TIME){
ZGameMgr.Event.AllClear.ClockManAnmWaitTimer = 0;
ZGameMgr.Event.AllClear.ClockManMode = CLOCKMAN_MODE_02;
ZGameMgr.Event.AllClear.ClockManClockMaskFlag = 1;
}
break;
case CLOCKMAN_MODE_02:
if(++ZGameMgr.Event.AllClear.ClockManAnmWaitTimer > ALL_CLEAR_CLOCKMAN_MODE_02_TIME){
ZGameMgr.Event.AllClear.ClockManAnmWaitTimer = 0;
ZGameMgr.Event.AllClear.ClockManMode = CLOCKMAN_MODE_03;
ZGameMgr.Event.AllClear.ClockManClockMaskFlag = 0;
ZGameMgr.Event.AllClear.ClockManBodyAnmIndex = 1;
ZGameMgr.Event.AllClear.ClockManArmAnmIndex = 4;
}
break;
case CLOCKMAN_MODE_03:
if(++ZGameMgr.Event.AllClear.ClockManAnmWaitTimer > ALL_CLEAR_CLOCKMAN_MODE_03_TIME){
ZGameMgr.Event.AllClear.ClockManAnmWaitTimer = 0;
ZGameMgr.Event.AllClear.ClockManMode = CLOCKMAN_MODE_04;
ZGameMgr.Event.AllClear.ClockManBodyAnmIndex = 2;
ZGameMgr.Event.AllClear.ClockManArmAnmIndex = 6;
}
break;
case CLOCKMAN_MODE_04:
break;
default:
}
if(ZGameMgr.Event.AllClear.ClockManClockMaskFlag){
SpData.No = ZIRI_CHAR_EVENT_CLOCK_PARTS;
SpData.PosX = 218;
SpData.PosY = 31;
SpData.PosZ = PRIORITY_EVENT_CLOCKMAN-1;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
SpData.No = ClockManBodySpriteTable[ZGameMgr.Event.AllClear.ClockManBodyAnmIndex].No;
SpData.PosX = ClockManBodySpriteTable[ZGameMgr.Event.AllClear.ClockManBodyAnmIndex].Ofx;
SpData.PosY = ClockManBodySpriteTable[ZGameMgr.Event.AllClear.ClockManBodyAnmIndex].Ofy;
SpData.PosZ = PRIORITY_EVENT_CLOCKMAN;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = ClockManArmSpriteTable[ZGameMgr.Event.AllClear.ClockManArmAnmIndex].No;
SpData.PosX = ClockManArmSpriteTable[ZGameMgr.Event.AllClear.ClockManArmAnmIndex].Ofx;
SpData.PosY = ClockManArmSpriteTable[ZGameMgr.Event.AllClear.ClockManArmAnmIndex].Ofy;
SpData.PosZ = PRIORITY_EVENT_CLOCKMAN;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = ClockManArmSpriteTable[ZGameMgr.Event.AllClear.ClockManArmAnmIndex+1].No;
SpData.PosX = ClockManArmSpriteTable[ZGameMgr.Event.AllClear.ClockManArmAnmIndex+1].Ofx;
SpData.PosY = ClockManArmSpriteTable[ZGameMgr.Event.AllClear.ClockManArmAnmIndex+1].Ofy;
SpData.PosZ = PRIORITY_EVENT_CLOCKMAN;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
static void AllClearEventSmallClockMan(void)
{
static ZIRI_SPRITE_DATA DoorOpenClockManBodySpriteTable[]=
{
{ ZIRI_CHAR_EVENT_DOOR_00, 139, 112 },
};
static ZIRI_SPRITE_DATA DoorOpenClockManSpriteTable[]=
{
{ ZIRI_CHAR_EVENT_DOOR_01, 135, 112 },
{ ZIRI_CHAR_EVENT_DOOR_02, 159, 112 },
{ ZIRI_CHAR_EVENT_DOOR_03, 120, 112 },
{ ZIRI_CHAR_EVENT_DOOR_04, 178, 112 },
{ ZIRI_CHAR_EVENT_DOOR_05, 120, 112 },
{ ZIRI_CHAR_EVENT_DOOR_06, 178, 112 },
{ ZIRI_CHAR_EVENT_DOOR_07, 120, 112 },
{ ZIRI_CHAR_EVENT_DOOR_08, 178, 112 },
{ ZIRI_CHAR_EVENT_DOOR_07, 120, 112 },
{ ZIRI_CHAR_EVENT_DOOR_08, 178, 112 },
};
static ZIRI_SPRITE_DATA JumpClockManSpriteTable[]=
{
{ ZIRI_CHAR_EVENT_JUMP_CLOCMAN_02, 121, 105 },
{ ZIRI_CHAR_EVENT_JUMP_CLOCMAN_00, 108, 95 },
{ ZIRI_CHAR_EVENT_JUMP_CLOCMAN_01, 108, 86 },
{ ZIRI_CHAR_EVENT_JUMP_CLOCMAN_00, 108, 95 },
};
SPRITE_DATA SpData;
if(ZGameMgr.Event.Timer >= SMALL_CLOCKMAN_JUMP_START_TIME)
{
switch(ZGameMgr.Event.AllClear.SmallClockManMode)
{
case SMALL_CLOCKMAN_MODE_00:
SpData.No = DoorOpenClockManBodySpriteTable[0].No;
SpData.PosX = DoorOpenClockManBodySpriteTable[0].Ofx;
SpData.PosY = DoorOpenClockManBodySpriteTable[0].Ofy;
SpData.PosZ = PRIORITY_EVENT_SMALL_CLOCKMAN;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = DoorOpenClockManSpriteTable[ZGameMgr.Event.AllClear.SmallClockManAnmIndex].No;
SpData.PosX = DoorOpenClockManSpriteTable[ZGameMgr.Event.AllClear.SmallClockManAnmIndex].Ofx;
SpData.PosY = DoorOpenClockManSpriteTable[ZGameMgr.Event.AllClear.SmallClockManAnmIndex].Ofy;
SpData.PosZ = PRIORITY_EVENT_SMALL_CLOCKMAN-1;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = DoorOpenClockManSpriteTable[ZGameMgr.Event.AllClear.SmallClockManAnmIndex + 1].No;;
SpData.PosX = DoorOpenClockManSpriteTable[ZGameMgr.Event.AllClear.SmallClockManAnmIndex + 1].Ofx;
SpData.PosY = DoorOpenClockManSpriteTable[ZGameMgr.Event.AllClear.SmallClockManAnmIndex + 1].Ofy;
SpData.PosZ = PRIORITY_EVENT_SMALL_CLOCKMAN-1;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
if(++ZGameMgr.Event.AllClear.SmallClockManAnmWaitTimer >= EVENT_ANM_WAIT_TIME)
{
ZGameMgr.Event.AllClear.SmallClockManAnmWaitTimer = 0;
ZGameMgr.Event.AllClear.SmallClockManAnmIndex += 2;
if(ZGameMgr.Event.AllClear.SmallClockManAnmIndex >= 8)
{
ZGameMgr.Event.AllClear.SmallClockManAnmIndex = 0;
ZGameMgr.Event.AllClear.SmallClockManMode = SMALL_CLOCKMAN_MODE_01;
}
}
break;
case SMALL_CLOCKMAN_MODE_01:
SpData.No = JumpClockManSpriteTable[ZGameMgr.Event.AllClear.SmallClockManAnmIndex].No;
SpData.PosX = JumpClockManSpriteTable[ZGameMgr.Event.AllClear.SmallClockManAnmIndex].Ofx;
SpData.PosY = JumpClockManSpriteTable[ZGameMgr.Event.AllClear.SmallClockManAnmIndex].Ofy;
SpData.PosZ = PRIORITY_EVENT_SMALL_CLOCKMAN;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
if(++ZGameMgr.Event.AllClear.SmallClockManAnmWaitTimer >= EVENT_ANM_WAIT_TIME){
ZGameMgr.Event.AllClear.SmallClockManAnmWaitTimer = 0;
if(++ZGameMgr.Event.AllClear.SmallClockManAnmIndex >= 3){
ZGameMgr.Event.AllClear.SmallClockManAnmIndex = 3;
}
}
break;
default:
}
}
}
static void AllClearEventStar(void)
{
static ZIRI_SPRITE_DATA StarSpriteTable[]=
{
{ ZIRI_CHAR_EVENT_STAR_EFFECT_00, 65, 51 },
{ ZIRI_CHAR_EVENT_STAR_EFFECT_01, 199, 55 },
{ ZIRI_CHAR_EVENT_STAR_EFFECT_02, 44, 46 },
{ ZIRI_CHAR_EVENT_STAR_EFFECT_03, 206, 46 },
{ ZIRI_CHAR_EVENT_STAR_00, 50, 66 },
{ ZIRI_CHAR_EVENT_STAR_00, 63, 99 },
{ ZIRI_CHAR_EVENT_STAR_00, 104, 97 },
{ ZIRI_CHAR_EVENT_STAR_00, 153, 72 },
{ ZIRI_CHAR_EVENT_STAR_00, 189, 45 },
{ ZIRI_CHAR_EVENT_STAR_00, 85, 169 },
{ ZIRI_CHAR_EVENT_STAR_00, 200, 90 },
{ ZIRI_CHAR_EVENT_STAR_00, 232, 112 },
{ ZIRI_CHAR_EVENT_STAR_00, 238, 173 },
{ ZIRI_CHAR_EVENT_STAR_01, 78, 47 },
{ ZIRI_CHAR_EVENT_STAR_01, 123, 178 },
{ ZIRI_CHAR_EVENT_STAR_01, 228, 153 },
{ ZIRI_CHAR_EVENT_STAR_02, 147, 45 },
{ ZIRI_CHAR_EVENT_STAR_02, 64, 99 },
{ ZIRI_CHAR_EVENT_STAR_02, 44, 148 },
{ ZIRI_CHAR_EVENT_STAR_02, 171, 178 },
{ ZIRI_CHAR_EVENT_STAR_02, 258, 88 },
{ ZIRI_CHAR_EVENT_STAR_03, 115, 64 },
{ ZIRI_CHAR_EVENT_STAR_04, 240, 55 },
{ ZIRI_CHAR_EVENT_STAR_04, 39, 120 },
{ ZIRI_CHAR_EVENT_STAR_05, 80, 78 },
{ ZIRI_CHAR_EVENT_EFFECT_00, 75, 134 },
{ ZIRI_CHAR_EVENT_EFFECT_01, 210, 131 },
};
SPRITE_DATA SpData;
int i;
if( ZGameMgr.Event.Timer >= STAR_DRAW_START_TIME){
if(++ZGameMgr.Event.AllClear.StarTimer >= EVENT_ANM_WAIT_TIME)
{
ZGameMgr.Event.AllClear.StarTimer = 0;
if(++ZGameMgr.Event.AllClear.StarMode > STAR_MODE_02){
ZGameMgr.Event.AllClear.StarMode = STAR_MODE_02;
}
}
switch(ZGameMgr.Event.AllClear.StarMode)
{
case STAR_MODE_00:
for(i=0;i<2;i++){
SpData.No = StarSpriteTable[i].No;
SpData.PosX = StarSpriteTable[i].Ofx;
SpData.PosY = StarSpriteTable[i].Ofy;
SpData.PosZ = PRIORITY_EVENT_STAR;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
break;
case STAR_MODE_01:
for(i=0;i<2;i++){
SpData.No = StarSpriteTable[2+i].No;
SpData.PosX = StarSpriteTable[2+i].Ofx;
SpData.PosY = StarSpriteTable[2+i].Ofy;
SpData.PosZ = PRIORITY_EVENT_STAR;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
break;
case STAR_MODE_02:
for(i=0;i<23;i++){
SpData.No = StarSpriteTable[4+i].No;
SpData.PosX = StarSpriteTable[4+i].Ofx;
SpData.PosY = StarSpriteTable[4+i].Ofy;
SpData.PosZ = PRIORITY_EVENT_STAR;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
break;
default:
}
}
}
static void AllClearEventBg(void)
{
static int AllClearBgSpriteTable[]=
{
ZIRI_CHAR_EVENT_BG_FLUSH_00,ZIRI_CHAR_EVENT_BG_FLUSH_02,
ZIRI_CHAR_EVENT_BG_FLUSH_01,ZIRI_CHAR_EVENT_BG_FLUSH_03,
};
SPRITE_DATA SpData;
if(!ZGameMgr.Event.EndFlag){
if(++ZGameMgr.Event.AllClear.BgAnmWaitTimer > EVENT_BG_ANM_WAIT_TIME){
ZGameMgr.Event.AllClear.BgAnmWaitTimer = 0;
ZGameMgr.Event.AllClear.BgAnmIndex ^= 1;
}
}
SpData.No = AllClearBgSpriteTable[ZGameMgr.Event.AllClear.BgAnmIndex*2];
SpData.PosX = 0;
SpData.PosY = 0;
SpData.PosZ = PRIORITY_BG;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = AllClearBgSpriteTable[ZGameMgr.Event.AllClear.BgAnmIndex*2 + 1];
SpData.PosX = 256;
SpData.PosY = 0;
SpData.PosZ = PRIORITY_BG;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
static int SelectContinue(int i_flag)
{
static int BupeAnmTable[] ={
ZIRI_CHAR_EVENT_SELECT_CONTINUE_BUPE_00,
ZIRI_CHAR_EVENT_SELECT_CONTINUE_BUPE_01,
};
static int MaruBatuTable[]={
ZIRI_CHAR_EVENT_SELECT_CONTINUE_YES_LIGHT, ZIRI_CHAR_EVENT_SELECT_CONTINUE_NO_DARK,
ZIRI_CHAR_EVENT_SELECT_CONTINUE_YES_DARK, ZIRI_CHAR_EVENT_SELECT_CONTINUE_NO_LIGHT,
};
SPRITE_DATA SpData;
int o_ret;
if(i_flag){
o_ret=FALSE;
if(JstPad & PADRright){
o_ret=TRUE;
ssPlaySe(BUTONSE_MARU);
}
if(JstPad & PADLright || JstPad & PADLleft){
ZGameMgr.SelectContinue.Val^=1;
ssPlaySe(BUTONSE_LEVER);
}
}
SpData.No = MaruBatuTable[ZGameMgr.SelectContinue.Val*2];
SpData.PosX = 68+72;
SpData.PosY = 73+57;
SpData.PosZ = PRIORITY_EVENT_MENU-2;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = MaruBatuTable[ZGameMgr.SelectContinue.Val*2+1];
SpData.PosX = 68+126;
SpData.PosY = 73+57;
SpData.PosZ = PRIORITY_EVENT_MENU-2;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
switch(ZGameMgr.SelectContinue.Type)
{
case SELECT_RETRY_H:
SpData.No = ZIRI_CHAR_EVENT_SELECT_CONTINUE_RETRY_H;
SpData.PosX = 68+20;
SpData.PosY = 73+20;
SpData.PosZ = PRIORITY_EVENT_MENU-2;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
break;
case SELECT_END_H:
SpData.No = ZIRI_CHAR_EVENT_SELECT_CONTINUE_END_H;
SpData.PosX = 68+20;
SpData.PosY = 73+20;
SpData.PosZ = PRIORITY_EVENT_MENU-2;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
break;
case SELECT_CONTINUE_H:
SpData.No = ZIRI_CHAR_EVENT_SELECT_CONTINUE_CONTINUE_H;
SpData.PosX = 68+20;
SpData.PosY = 73+20;
SpData.PosZ = PRIORITY_EVENT_MENU-2;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
break;
default:
}
if(++ZGameMgr.SelectContinue.Wt>SELECT_LEVEL_PUPE_ANM_TIME){
ZGameMgr.SelectContinue.No^=1;
ZGameMgr.SelectContinue.Wt=0;
}
SpData.No = BupeAnmTable[ZGameMgr.SelectContinue.No];
SpData.PosX = 68+12;
SpData.PosY = 73+34;
SpData.PosZ = PRIORITY_EVENT_MENU-10;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = ZIRI_CHAR_EVENT_SELECT_CONTINUE_PLATE;
SpData.PosX = 68;
SpData.PosY = 73;
SpData.PosZ = PRIORITY_EVENT_MENU;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = ZIRI_CHAR_EVENT_SELECT_CONTINUE_ERABU;
SpData.PosX = (320-130)/2;
SpData.PosY = 206;
SpData.PosZ = PRIORITY_EVENT_MENU-1;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = ZIRI_CHAR_EVENT_SELECT_CONTINUE_KETEI;
SpData.PosX = (320-130)/2+78;
SpData.PosY = 206;
SpData.PosZ = PRIORITY_EVENT_MENU-1;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
return o_ret;
}
#ifdef __DEBUG_ZIRI__
static int DebugSpriteTask(TASK* ip_task)
{
static int SpIndex;
static int SpEntryNum;
static int Counter;
static int FlushFlag;
SPRITE_DATA SpData;
switch(ip_task->mode)
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
GameMgr.FadeFlag = FadeIn;
SpIndex = 0;
SpEntryNum = GetEntrySpriteNum();
Counter = 0;
FlushFlag = 0;
break;
case TASK_MODE_MAIN:
if( JstPad & PADLdown ){
SpIndex++;
if(SpIndex > SpEntryNum-1) SpIndex = 0;
}else
if( JstPad & PADLup ){
SpIndex--;
if( SpIndex < 0 ) SpIndex = SpEntryNum-1;
}else{
}
if(JstPad & PADRright)
{
FlushFlag^=1;
}
if(FlushFlag) GsSortBoxFill(&BoxDataBlack, &Wot[active], 4);
else GsSortBoxFill(&BoxDataWhite, &Wot[active], 4);
SpData.No = SpIndex;
SpData.PosX = (320 - ZiriSpriteData[SpIndex].Width) / 2;
SpData.PosY = (240 - ZiriSpriteData[SpIndex].Height) / 2;
SpData.PosZ = 10;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
FntPrint("SNO=%d/%d\n", SpIndex,SpEntryNum-1 );
FntPrint("OfX=%d\n", ZiriSpriteData[SpIndex].OffSetX );
FntPrint("OfY=%d\n", ZiriSpriteData[SpIndex].OffSetY );
FntPrint("W__=%d\n", ZiriSpriteData[SpIndex].Width );
FntPrint("H__=%d\n", ZiriSpriteData[SpIndex].Height );
FntPrint("PNO=%d\n", ZiriSpriteData[SpIndex].PaletteNo );
FntPrint("CNT=%d\n", ++Counter );
break;
case TASK_MODE_EXIT:
break;
default:
break;
}
}
#endif