#include "COMMON.H"
#include "KAZU.H"
#include "SPMGR.H"
#include "TASKMGR.H"
#include "AIR.H"
#include "SPCONT.H"
#include "SOUND.H"
#define AIR_GAME_TIM_POS 0+4
#define AIR_GAME_TIM_NUM 9
#define AIR_EVENT_TIM_POS 0+4
#define AIR_EVENT_TIM_NUM 24
#define TIM_POS_AIR_GAME_BG_
#define TIM_POS_AIR_GAME_BG_
#define TIM_POS_AIR_GAME_GUN_
#define TIM_POS_AIR_GAME_GUN_
#define TIM_POS_AIR_GAME_GUN_
#define TIM_POS_AIR_GAME_ITEM 5+4
#define TIM_POS_AIR_GAME_OPANEL 6+4
#define TIM_POS_AIR_GAME_QUESTION 7+4
#define TIM_POS_AIR_GAME_NEEDLE 8+4
#define TIM_POS_AIR_EVENT_FONT 0
#define TIM_POS_AIR_EVENT_YORNO 1
#define TIM_POS_AIR_EVENT_EBG_
#define TIM_POS_AIR_EVENT_EBG_
#define TIM_POS_AIR_EVENT_EBG_
#define TIM_POS_AIR_EVENT_EBG_
#define TIM_POS_AIR_EVENT_EBG_
#define TIM_POS_AIR_EVENT_EBG_
#define TIM_POS_AIR_EVENT_EBG_
#define TIM_POS_AIR_EVENT_EBG_
#define TIM_POS_AIR_EVENT_EBG_
#define TIM_POS_AIR_EVENT_EBG_
#define TIM_POS_AIR_EVENT_EBG_1
#define TIM_POS_AIR_EVENT_EBG_11 11+4
#define TIM_POS_AIR_EVENT_EBG_12 12+4
#define TIM_POS_AIR_EVENT_EBG_13 13+4
#define TIM_POS_AIR_EVENT_EBG_14 14+4
#define TIM_POS_AIR_EVENT_EBG_15 15+4
#define TIM_POS_AIR_EVENT_ECHARA1 16+4
#define TIM_POS_AIR_EVENT_ECHARA2 17+4
#define TIM_POS_AIR_EVENT_ECHARA3 18+4
#define TIM_POS_AIR_EVENT_ECHARA4 19+4
#define TIM_POS_AIR_EVENT_ECHARA5 20+4
#define TIM_POS_AIR_EVENT_ECHARA6 21+4
#define TIM_POS_AIR_EVENT_ECHARA7 22+4
#define TIM_POS_AIR_EVENT_ECHARA8 23+4
#define AIR_CHAR_GAME_BG_
#define AIR_CHAR_GAME_BG_
#define AIR_CHAR_GUNGUN_
#define AIR_CHAR_GUNGUN_
#define AIR_CHAR_GUNGUN_
#define AIR_CHAR_GUNGUN_
#define AIR_CHAR_GUNGUN_
#define AIR_CHAR_GUNGUN_
#define AIR_CHAR_GUNGUN_
#define AIR_CHAR_GUNGUN_
#define AIR_CHAR_GUNGUN_
#define AIR_CHAR_KUMA_
#define AIR_CHAR_KUMA_
#define AIR_CHAR_MOUNTAIN_
#define AIR_CHAR_MOUNTAIN_
#define AIR_CHAR_FUUSEN_
#define AIR_CHAR_FUUSEN_
#define AIR_CHAR_FUUSEN_
#define AIR_CHAR_HAND_PA 18
#define AIR_CHAR_HAND_GU 19
#define AIR_CHAR_ARM 20
#define AIR_CHAR_CLOUD_LARGE 21
#define AIR_CHAR_CLOUD_MIDDLE 22
#define AIR_CHAR_CLOUD_SMALL 23
#define AIR_CHAR_SMOKE_LARGE 24
#define AIR_CHAR_SMOKE_MIDDLE 25
#define AIR_CHAR_SMOKE_SMALL 26
#define AIR_CHAR_QUESTION_PLATE_LEFT 27
#define AIR_CHAR_QUESTION_PLATE_CENTER 28
#define AIR_CHAR_QUESTION_PLATE_RIGHT 29
#define AIR_CHAR_MARU 30
#define AIR_CHAR_BATSU 31
#define AIR_CHAR_FUKURO 32
#define AIR_CHAR_ONNPU 33
#define AIR_CHAR_ASE 34
#define AIR_CHAR_CROW_
#define AIR_CHAR_CROW_
#define AIR_CHAR_CROW_
#define AIR_CHAR_LEVEL_SELECT_PLATE 38
#define AIR_CHAR_LEVEL_SELECT_CURSOR 39
#define AIR_CHAR_LEVEL_SELECT_BLOCK 40
#define AIR_CHAR_LEVEL_SELECT_
#define AIR_CHAR_LEVEL_SELECT_
#define AIR_CHAR_LEVEL_SELECT_
#define AIR_CHAR_LEVEL_SELECT_
#define AIR_CHAR_LEVEL_SELECT_
#define AIR_CHAR_THUBDER_LARGE 46
#define AIR_CHAR_THUBDER_SMALL 47
#define AIR_CHAR_CRUSH_
#define AIR_CHAR_CRUSH_
#define AIR_CHAR_ITEM_GUITAR 50
#define AIR_CHAR_ITEM_DOLL 51
#define AIR_CHAR_ITEM_JEWELRY 52
#define AIR_CHAR_ITEM_TRUMPET 53
#define AIR_CHAR_ITEM_RIBBON 54
#define AIR_CHAR_ITEM_RING 55
#define AIR_CHAR_ITEM_CROWN 56
#define AIR_CHAR_ITEM_JAR 57
#define AIR_CHAR_ITEM_TRAIN 58
#define AIR_CHAR_ITEM_POSTCARD 59
#define AIR_CHAR_DUST_TSHIRT 60
#define AIR_CHAR_DUST_MIRROR 61
#define AIR_CHAR_DUST_KAN 62
#define AIR_CHAR_DUST_YAKAN 63
#define AIR_CHAR_DUST_APPLE 64
#define AIR_CHAR_DUST_SHOES 65
#define AIR_CHAR_HELP_PANEL 66
#define AIR_CHAR_QUESTION_TEXT_
#define AIR_CHAR_QUESTION_TEXT_
#define AIR_CHAR_QUESTION_TEXT_
#define AIR_CHAR_QUESTION_TEXT_
#define AIR_CHAR_QUESTION_TEXT_
#define AIR_CHAR_QUESTION_TEXT_
#define AIR_CHAR_PANEL_BLUE_BIG 73
#define AIR_CHAR_PANEL_PINK_BIG 74
#define AIR_CHAR_PANEL_BLUE_SMALL 75
#define AIR_CHAR_PANEL_PINK_SMALL 76
#define AIR_CHAR_WAKU_RED 77
#define AIR_CHAR_QA_NO_
#define AIR_CHAR_QA_NO_
#define AIR_CHAR_QA_NO_
#define AIR_CHAR_QA_NO_
#define AIR_CHAR_QA_NO_
#define AIR_CHAR_QA_NO_
#define AIR_CHAR_QA_NO_
#define AIR_CHAR_QA_NO_
#define AIR_CHAR_QA_NO_
#define AIR_CHAR_QA_NO_
#define AIR_CHAR_COUNTER_NO_
#define AIR_CHAR_COUNTER_NO_
#define AIR_CHAR_COUNTER_NO_
#define AIR_CHAR_COUNTER_NO_
#define AIR_CHAR_COUNTER_NO_
#define AIR_CHAR_COUNTER_NO_
#define AIR_CHAR_COUNTER_NO_
#define AIR_CHAR_COUNTER_NO_
#define AIR_CHAR_COUNTER_NO_
#define AIR_CHAR_COUNTER_NO_
#define AIR_CHAR_QNO_
#define AIR_CHAR_QNO_
#define AIR_CHAR_QNO_
#define AIR_CHAR_QNO_
#define AIR_CHAR_QNO_
#define AIR_CHAR_QNO_
#define AIR_CHAR_QNO_
#define AIR_CHAR_QNO_
#define AIR_CHAR_QNO_
#define AIR_CHAR_QNO_1
#define AIR_CHAR_QUESTION_NO_
#define AIR_CHAR_QUESTION_NO_
#define AIR_CHAR_QUESTION_NO_
#define AIR_CHAR_QUESTION_NO_
#define AIR_CHAR_QUESTION_NO_
#define AIR_CHAR_QUESTION_NO_
#define AIR_CHAR_QUESTION_NO_
#define AIR_CHAR_QUESTION_NO_
#define AIR_CHAR_QUESTION_NO_
#define AIR_CHAR_QUESTION_NO_
#define AIR_CHAR_ONAZI_STR 118
#define AIR_CHAR_CLOCK_PANEL 119
#define AIR_CHAR_CLOCK_TANSIN 120
#define AIR_CHAR_CLOCK_TYOUSIN 121
#define AIR_CHAR_BALL_ORANGE 122
#define AIR_CHAR_MIKAN 123
#define AIR_CHAR_BALL_RED 124
#define AIR_CHAR_APPLE 125
#define AIR_CHAR_ARM_WPIXEL_
#define AIR_CHAR_ARM_WPIXEL_
#define AIR_CHAR_ARM_WPIXEL_
#define AIR_CHAR_ARM_WPIXEL_
#define AIR_CHAR_ARM_WPIXEL_
#define AIR_CHAR_ARM_WPIXEL_
#define AIR_CHAR_ARM_WPIXEL_
#define AIR_CHAR_ARM_WPIXEL_
#define AIR_CHAR_ARM_WPIXEL_
#define AIR_CHAR_ARM_WPIXEL_1
#define AIR_CHAR_NEEDLE_SHORT_
#define AIR_CHAR_NEEDLE_SHORT_
#define AIR_CHAR_NEEDLE_SHORT_
#define AIR_CHAR_NEEDLE_SHORT_
#define AIR_CHAR_NEEDLE_SHORT_
#define AIR_CHAR_NEEDLE_SHORT_
#define AIR_CHAR_NEEDLE_SHORT_
#define AIR_CHAR_NEEDLE_SHORT_
#define AIR_CHAR_NEEDLE_SHORT_
#define AIR_CHAR_NEEDLE_SHORT_
#define AIR_CHAR_NEEDLE_SHORT_1
#define AIR_CHAR_NEEDLE_SHORT_11 147
#define AIR_CHAR_NEEDLE_SHORT_12 148
#define AIR_CHAR_NEEDLE_SHORT_13 149
#define AIR_CHAR_NEEDLE_SHORT_14 150
#define AIR_CHAR_NEEDLE_SHORT_15 151
#define AIR_CHAR_NEEDLE_SHORT_16 152
#define AIR_CHAR_NEEDLE_SHORT_17 153
#define AIR_CHAR_NEEDLE_SHORT_18 154
#define AIR_CHAR_NEEDLE_SHORT_19 155
#define AIR_CHAR_NEEDLE_SHORT_2
#define AIR_CHAR_NEEDLE_SHORT_21 157
#define AIR_CHAR_NEEDLE_SHORT_22 158
#define AIR_CHAR_NEEDLE_SHORT_23 159
#define AIR_CHAR_NEEDLE_SHORT_24 160
#define AIR_CHAR_NEEDLE_SHORT_25 161
#define AIR_CHAR_NEEDLE_SHORT_26 162
#define AIR_CHAR_NEEDLE_SHORT_27 163
#define AIR_CHAR_NEEDLE_SHORT_28 164
#define AIR_CHAR_NEEDLE_SHORT_29 165
#define AIR_CHAR_NEEDLE_SHORT_3
#define AIR_CHAR_NEEDLE_SHORT_31 167
#define AIR_CHAR_NEEDLE_SHORT_32 168
#define AIR_CHAR_NEEDLE_SHORT_33 169
#define AIR_CHAR_NEEDLE_SHORT_34 170
#define AIR_CHAR_NEEDLE_SHORT_35 171
#define AIR_CHAR_NEEDLE_SHORT_36 172
#define AIR_CHAR_NEEDLE_SHORT_37 173
#define AIR_CHAR_NEEDLE_SHORT_38 174
#define AIR_CHAR_NEEDLE_SHORT_39 175
#define AIR_CHAR_NEEDLE_SHORT_4
#define AIR_CHAR_NEEDLE_SHORT_41 177
#define AIR_CHAR_NEEDLE_SHORT_42 178
#define AIR_CHAR_NEEDLE_SHORT_43 179
#define AIR_CHAR_NEEDLE_SHORT_44 180
#define AIR_CHAR_NEEDLE_SHORT_45 181
#define AIR_CHAR_NEEDLE_SHORT_46 182
#define AIR_CHAR_NEEDLE_SHORT_47 183
#define AIR_CHAR_NEEDLE_LONG_
#define AIR_CHAR_NEEDLE_LONG_
#define AIR_CHAR_NEEDLE_LONG_
#define AIR_CHAR_NEEDLE_LONG_
#define AIR_CHAR_NEEDLE_LONG_
#define AIR_CHAR_NEEDLE_LONG_
#define AIR_CHAR_NEEDLE_LONG_
#define AIR_CHAR_NEEDLE_LONG_
#define AIR_CHAR_NEEDLE_LONG_
#define AIR_CHAR_NEEDLE_LONG_
#define AIR_CHAR_NEEDLE_LONG_1
#define AIR_CHAR_NEEDLE_LONG_11 195
#define AIR_CHAR_EVENT_BG_
#define AIR_CHAR_EVENT_BG_
#define AIR_CHAR_EVENT_BG_
#define AIR_CHAR_EVENT_BG_
#define AIR_CHAR_EVENT_BG_
#define AIR_CHAR_EVENT_BG_
#define AIR_CHAR_EVENT_BG_
#define AIR_CHAR_EVENT_BG_
#define AIR_CHAR_EVENT_BG_
#define AIR_CHAR_EVENT_BG_
#define AIR_CHAR_EVENT_BG_1
#define AIR_CHAR_EVENT_BG_11 11
#define AIR_CHAR_EVENT_BG_12 12
#define AIR_CHAR_EVENT_BG_13 13
#define AIR_CHAR_EVENT_BG_14 14
#define AIR_CHAR_EVENT_BG_15 15
#define AIR_CHAR_EVENT_GUNGUN_
#define AIR_CHAR_EVENT_USAGI_
#define AIR_CHAR_EVENT_USAGI_
#define AIR_CHAR_EVENT_NEZUMI_
#define AIR_CHAR_EVENT_NEZUMI_
#define AIR_CHAR_EVENT_GUNGUN_
#define AIR_CHAR_EVENT_GUNGUN_MOUSE_
#define AIR_CHAR_EVENT_GUNGUN_MOUSE_
#define AIR_CHAR_EVENT_GUNGUN_MOUSE_
#define AIR_CHAR_EVENT_GUNGUN_MOUSE_
#define AIR_CHAR_EVENT_KAYORINU_
#define AIR_CHAR_EVENT_KAYORINU_
#define AIR_CHAR_EVENT_GUNGUN_
#define AIR_CHAR_EVENT_RISU_
#define AIR_CHAR_EVENT_RISU_
#define AIR_CHAR_EVENT_GUNGUN_
#define AIR_CHAR_EVENT_GUNGUN_
#define AIR_CHAR_EVENT_GUNGUN_
#define AIR_CHAR_EVENT_FOX_
#define AIR_CHAR_EVENT_FOX_
#define AIR_CHAR_EVENT_BUTA_
#define AIR_CHAR_EVENT_BUTA_
#define AIR_CHAR_EVENT_SELECT_CONTINUE_PLATE 38
#define AIR_CHAR_EVENT_SELECT_CONTINUE_YES_DARK 39
#define AIR_CHAR_EVENT_SELECT_CONTINUE_NO_DARK 40
#define AIR_CHAR_EVENT_SELECT_CONTINUE_YES_LIGHT 41
#define AIR_CHAR_EVENT_SELECT_CONTINUE_NO_LIGHT 42
#define AIR_CHAR_EVENT_SELECT_CONTINUE_BUPE_
#define AIR_CHAR_EVENT_SELECT_CONTINUE_BUPE_
#define AIR_CHAR_EVENT_SELECT_CONTINUE_RETRY_H 45
#define AIR_CHAR_EVENT_SELECT_CONTINUE_END_H 46
#define AIR_CHAR_EVENT_SELECT_CONTINUE_CONTINUE_H 47
#define AIR_CHAR_EVENT_SELECT_CONTINUE_CURSOR 48
#define AIR_CHAR_EVENT_SELECT_CONTINUE_ERABU 49
#define AIR_CHAR_EVENT_SELECT_CONTINUE_KETEI 50
#define AIR_CHAR_EVENT_SELECT_CONTINUE_MENU 51
#define AIR_EFFECT_MARU 0
#define AIR_EFFECT_BATSU 2
#define AIR_EFFECT_FUKURO 4
#define AIR_EFFECT_ONNPU 6
#define AIR_EFFECT_ASE 8
#define AIR_EFFECT_ITEM_GUITAR 10
#define AIR_EFFECT_ITEM_DOLL 12
#define AIR_EFFECT_ITEM_JEWELRY 14
#define AIR_EFFECT_ITEM_TRUMPET 16
#define AIR_EFFECT_ITEM_RIBBON 18
#define AIR_EFFECT_ITEM_RING 20
#define AIR_EFFECT_ITEM_CROWN 22
#define AIR_EFFECT_ITEM_JAR 24
#define AIR_EFFECT_ITEM_TRAIN 26
#define AIR_EFFECT_ITEM_POSTCARD 28
#define AIR_EFFECT_DUST_TSHIRT 30
#define AIR_EFFECT_DUST_MIRROR 32
#define AIR_EFFECT_DUST_KAN 34
#define AIR_EFFECT_DUST_YAKAN 36
#define AIR_EFFECT_DUST_APPLE 38
#define AIR_EFFECT_DUST_SHOES 40
#define AIR_EFFECT_HELP_PANEL 42
#define AIR_EFFECT_CRUSH 44
#define AIR_EFFECT_SMOKE 51
extern u_long pad;
extern u_long NewPad;
extern u_long OldPad;
extern u_long JstPad;
extern u_long WorkPad;
extern u_long BG_00_image[];
extern u_long BG_00_clut[];
extern u_long BG_01_image[];
extern u_long BG_01_clut[];
extern u_long GUN_00_image[];
extern u_long GUN_00_clut[];
extern u_long GUN_01_image[];
extern u_long GUN_01_clut[];
extern u_long GUN_02_image[];
extern u_long GUN_02_clut[];
extern u_long ITEM_image[];
extern u_long ITEM_clut[];
extern u_long OPANEL_image[];
extern u_long OPANEL_clut[];
extern u_long QUESTION_image[];
extern u_long QUESTION_clut[];
extern u_long EBG_00_image[];
extern u_long EBG_00_clut[];
extern u_long EBG_01_image[];
extern u_long EBG_01_clut[];
extern u_long EBG_02_image[];
extern u_long EBG_02_clut[];
extern u_long EBG_03_image[];
extern u_long EBG_03_clut[];
extern u_long EBG_04_image[];
extern u_long EBG_04_clut[];
extern u_long EBG_05_image[];
extern u_long EBG_05_clut[];
extern u_long EBG_06_image[];
extern u_long EBG_06_clut[];
extern u_long EBG_07_image[];
extern u_long EBG_07_clut[];
extern u_long EBG_08_image[];
extern u_long EBG_08_clut[];
extern u_long EBG_09_image[];
extern u_long EBG_09_clut[];
extern u_long EBG_10_image[];
extern u_long EBG_10_clut[];
extern u_long EBG_11_image[];
extern u_long EBG_11_clut[];
extern u_long EBG_12_image[];
extern u_long EBG_12_clut[];
extern u_long EBG_13_image[];
extern u_long EBG_13_clut[];
extern u_long EBG_14_image[];
extern u_long EBG_14_clut[];
extern u_long EBG_15_image[];
extern u_long EBG_15_clut[];
extern u_long ECHARA1_image[];
extern u_long ECHARA1_clut[];
extern u_long ECHARA2_image[];
extern u_long ECHARA2_clut[];
extern u_long ECHARA3_image[];
extern u_long ECHARA3_clut[];
extern u_long ECHARA4_image[];
extern u_long ECHARA4_clut[];
extern u_long ECHARA5_image[];
extern u_long ECHARA5_clut[];
extern u_long ECHARA6_image[];
extern u_long ECHARA6_clut[];
extern u_long ECHARA7_image[];
extern u_long ECHARA7_clut[];
extern u_long ECHARA8_image[];
extern u_long ECHARA8_clut[];
extern u_long NEEDLE_image[];
extern u_long NEEDLE_clut[];
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 help_00_image[];
extern u_long help_00_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 TIMD AirGameTextureFile[] = {
{ "RCUBE3", "\\TIM\\AIRGD.B;1"},
};
static TIMD AirEventTextureFile[] = {
{ "RCUBE2", "\\TIM\\AIRED.B;1"},
};
static GsIMAGE AirGameTextureImage[]=
{
{ 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_16, 512, 256, 64, 256, BG_00_image, 0,500, 16,1, BG_00_clut },
{ TIM_COLOR_16, 768, 256, 16, 256, BG_01_image, 0,499, 16,1, BG_01_clut },
{ TIM_COLOR_16, 448, 256, 64, 256, GUN_00_image, 32,480, 16,16, GUN_00_clut },
{ TIM_COLOR_16, 320, 256, 64, 256, GUN_01_image, 64,480, 16,16, GUN_01_clut },
{ TIM_COLOR_16, 640, 256, 64, 256, GUN_02_image, 96,480, 16,16, GUN_02_clut },
{ TIM_COLOR_16, 576, 256, 64, 256, ITEM_image, 48,480, 16,16, ITEM_clut },
{ TIM_COLOR_256, 704, 256, 64, 128, OPANEL_image, 0,498, 256,1, OPANEL_clut },
{ TIM_COLOR_16, 384, 256, 64, 256, QUESTION_image, 80,480, 16,16, QUESTION_clut },
{ TIM_COLOR_16, 832, 256, 64, 256, NEEDLE_image, 128,480, 16,1, NEEDLE_clut },
};
static GsIMAGE AirEventTextureImage[]=
{
{ 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_16, 704,256, 64,256, EBG_00_image, 144,481, 16, 1, EBG_00_clut },
{ TIM_COLOR_16, 898,256, 16,256, EBG_01_image, 144,480, 16, 1, EBG_01_clut },
{ TIM_COLOR_16, 832,256, 64,256, EBG_02_image, 128,490, 16, 1, EBG_02_clut },
{ TIM_COLOR_16, 930,256, 16,256, EBG_03_image, 128,482, 16, 1, EBG_03_clut },
{ TIM_COLOR_16, 320,256, 64,256, EBG_04_image, 128,495, 16, 1, EBG_04_clut },
{ TIM_COLOR_16, 914,256, 16,256, EBG_05_image, 128,483, 16, 1, EBG_05_clut },
{ TIM_COLOR_16, 384,256, 64,256, EBG_06_image, 128,493, 16, 1, EBG_06_clut },
{ TIM_COLOR_16, 999, 0, 16,256, EBG_07_image, 128,484, 16, 1, EBG_07_clut },
{ TIM_COLOR_16, 448,256, 64,256, EBG_08_image, 128,491, 16, 1, EBG_08_clut },
{ TIM_COLOR_16, 864, 0, 16,256, EBG_09_image, 128,485, 16, 1, EBG_09_clut },
{ TIM_COLOR_16, 512,256, 64,256, EBG_10_image, 128,492, 16, 1, EBG_10_clut },
{ TIM_COLOR_16, 880, 0, 16,256, EBG_11_image, 128,486, 16, 1, EBG_11_clut },
{ TIM_COLOR_16, 640,256, 64,256, EBG_12_image, 128,489, 16, 1, EBG_12_clut },
{ TIM_COLOR_16, 744, 0, 16,256, EBG_13_image, 128,494, 16, 1, EBG_13_clut },
{ TIM_COLOR_16, 576,256, 64,256, EBG_14_image, 128,487, 16, 1, EBG_14_clut },
{ TIM_COLOR_16, 930, 0, 16,256, EBG_15_image, 128,488, 16, 1, EBG_15_clut },
{ TIM_COLOR_16, 576, 0, 59,256, ECHARA1_image, 32,480, 16,16, ECHARA1_clut },
{ TIM_COLOR_16, 768,256, 64,256, ECHARA2_image, 48,480, 16,16, ECHARA2_clut },
{ TIM_COLOR_16, 704, 0, 40,256, ECHARA3_image, 64,480, 16,16, ECHARA3_clut },
{ TIM_COLOR_16, 960, 0, 39,256, ECHARA4_image, 80,480, 16,16, ECHARA4_clut },
{ TIM_COLOR_16, 640, 0, 56,256, ECHARA5_image, 96,480, 16,16, ECHARA5_clut },
{ TIM_COLOR_16, 768, 0, 50,256, ECHARA6_image, 112,480, 16,16, ECHARA6_clut },
{ TIM_COLOR_16, 833, 0, 31,236, ECHARA7_image, 128,480, 16, 1, ECHARA7_clut },
{ TIM_COLOR_16, 896, 0, 34,216, ECHARA8_image, 128,481, 16, 1, ECHARA8_clut },
};
static ENTRY_SPRITE_DATA AirGameSpriteData[] =
{
{ TIM_POS_AIR_GAME_BG_00, 0, 0, 240, 256, 0 },
{ TIM_POS_AIR_GAME_BG_01, 256, 0, 240, 64, 0 },
{ TIM_POS_AIR_GAME_GUN_00, 0, 0, 44, 62, 0 },
{ TIM_POS_AIR_GAME_GUN_00, 62, 0, 44, 62, 0 },
{ TIM_POS_AIR_GAME_GUN_00, 124, 0, 44, 62, 0 },
{ TIM_POS_AIR_GAME_GUN_00, 0, 44, 44, 62, 0 },
{ TIM_POS_AIR_GAME_GUN_00, 62, 44, 44, 62, 0 },
{ TIM_POS_AIR_GAME_GUN_00, 124, 44, 44, 62, 0 },
{ TIM_POS_AIR_GAME_GUN_00, 0, 88, 44, 62, 0 },
{ TIM_POS_AIR_GAME_GUN_00, 62, 88, 44, 62, 0 },
{ TIM_POS_AIR_GAME_GUN_00, 124, 88, 44, 62, 0 },
{ TIM_POS_AIR_GAME_GUN_00, 0, 132, 41, 54, 1 },
{ TIM_POS_AIR_GAME_GUN_00, 54, 132, 41, 54, 1 },
{ TIM_POS_AIR_GAME_GUN_01, 0, 0, 57, 252, 0 },
{ TIM_POS_AIR_GAME_GUN_01, 0, 57, 57, 76, 0 },
{ TIM_POS_AIR_GAME_GUN_01, 76, 57, 41, 36, 1 },
{ TIM_POS_AIR_GAME_GUN_01, 112, 57, 41, 36, 1 },
{ TIM_POS_AIR_GAME_GUN_01, 148, 57, 41, 36, 1 },
{ TIM_POS_AIR_GAME_GUN_01, 76, 98, 26, 36, 2 },
{ TIM_POS_AIR_GAME_GUN_01, 112, 98, 27, 26, 2 },
{ TIM_POS_AIR_GAME_GUN_01, 138, 98, 26, 16, 3 },
{ TIM_POS_AIR_GAME_GUN_01, 184, 57, 34, 58, 4 },
{ TIM_POS_AIR_GAME_GUN_01, 184, 90, 30, 48, 4 },
{ TIM_POS_AIR_GAME_GUN_01, 184, 120, 22, 34, 4 },
{ TIM_POS_AIR_GAME_GUN_01, 112, 128, 18, 22, 5 },
{ TIM_POS_AIR_GAME_GUN_01, 134, 128, 18, 22, 5 },
{ TIM_POS_AIR_GAME_GUN_01, 156, 128, 18, 22, 5 },
{ TIM_POS_AIR_GAME_GUN_01, 0, 128, 68, 16, 6 },
{ TIM_POS_AIR_GAME_GUN_01, 16, 128, 68, 8, 6 },
{ TIM_POS_AIR_GAME_GUN_01, 24, 128, 68, 88, 6 },
{ TIM_POS_AIR_GAME_GUN_01, 112, 146, 26, 30, 7 },
{ TIM_POS_AIR_GAME_GUN_01, 142, 146, 26, 30, 7 },
{ TIM_POS_AIR_GAME_GUN_01, 0, 196, 40, 64, 8 },
{ TIM_POS_AIR_GAME_GUN_01, 64, 196, 32, 32, 8 },
{ TIM_POS_AIR_GAME_GUN_01, 96, 196, 32, 32, 8 },
{ TIM_POS_AIR_GAME_GUN_01, 128, 196, 46, 52, 9 },
{ TIM_POS_AIR_GAME_GUN_01, 176, 143, 46, 52, 9 },
{ TIM_POS_AIR_GAME_GUN_01, 180, 196, 46, 52, 9 },
{ TIM_POS_AIR_GAME_GUN_02, 0, 0, 97, 142, 0 },
{ TIM_POS_AIR_GAME_GUN_02, 96, 104, 14, 20, 4 },
{ TIM_POS_AIR_GAME_GUN_02, 96, 118, 9, 18, 4 },
{ TIM_POS_AIR_GAME_GUN_02, 96, 128, 10, 8, 3 },
{ TIM_POS_AIR_GAME_GUN_02, 104, 128, 10, 8, 3 },
{ TIM_POS_AIR_GAME_GUN_02, 112, 128, 10, 8, 3 },
{ TIM_POS_AIR_GAME_GUN_02, 120, 128, 10, 8, 3 },
{ TIM_POS_AIR_GAME_GUN_02, 128, 128, 10, 8, 3 },
{ TIM_POS_AIR_GAME_GUN_02, 0, 184, 42, 78, 5 },
{ TIM_POS_AIR_GAME_GUN_02, 78, 184, 42, 46, 5 },
{ TIM_POS_AIR_GAME_GUN_02, 124, 184, 59, 46, 5 },
{ TIM_POS_AIR_GAME_GUN_02, 170, 184, 59, 46, 5 },
{ TIM_POS_AIR_GAME_ITEM, 0, 0, 43, 64, 0 },
{ TIM_POS_AIR_GAME_ITEM, 64, 0, 43, 64, 1 },
{ TIM_POS_AIR_GAME_ITEM, 128, 0, 43, 64, 2 },
{ TIM_POS_AIR_GAME_ITEM, 192, 0, 43, 64, 3 },
{ TIM_POS_AIR_GAME_ITEM, 0, 43, 43, 64, 4 },
{ TIM_POS_AIR_GAME_ITEM, 64, 43, 43, 64, 5 },
{ TIM_POS_AIR_GAME_ITEM, 128, 43, 43, 64, 6 },
{ TIM_POS_AIR_GAME_ITEM, 192, 43, 43, 64, 7 },
{ TIM_POS_AIR_GAME_ITEM, 0, 86, 43, 64, 8 },
{ TIM_POS_AIR_GAME_ITEM, 64, 86, 43, 64, 9 },
{ TIM_POS_AIR_GAME_ITEM, 128, 86, 43, 64, 10 },
{ TIM_POS_AIR_GAME_ITEM, 192, 86, 43, 64, 11 },
{ TIM_POS_AIR_GAME_ITEM, 0, 129, 43, 64, 12 },
{ TIM_POS_AIR_GAME_ITEM, 64, 129, 43, 64, 13 },
{ TIM_POS_AIR_GAME_ITEM, 128, 129, 43, 64, 14 },
{ TIM_POS_AIR_GAME_ITEM, 192, 129, 43, 64, 15 },
{ TIM_POS_AIR_GAME_OPANEL, 0, 0, 109, 128, 0 },
{ TIM_POS_AIR_GAME_QUESTION, 0, 0, 25, 150, 0 },
{ TIM_POS_AIR_GAME_QUESTION, 0, 25, 26, 112, 0 },
{ TIM_POS_AIR_GAME_QUESTION, 0, 51, 11, 138, 0 },
{ TIM_POS_AIR_GAME_QUESTION, 0, 62, 10, 134, 0 },
{ TIM_POS_AIR_GAME_QUESTION, 0, 72, 31, 178, 0 },
{ TIM_POS_AIR_GAME_QUESTION, 56, 189, 25, 176, 0 },
{ TIM_POS_AIR_GAME_QUESTION, 0, 123, 23, 74, 1 },
{ TIM_POS_AIR_GAME_QUESTION, 74, 123, 23, 74, 1 },
{ TIM_POS_AIR_GAME_QUESTION, 148, 123, 20, 24, 1 },
{ TIM_POS_AIR_GAME_QUESTION, 172, 123, 20, 24, 1 },
{ TIM_POS_AIR_GAME_QUESTION, 178, 85, 18, 22, 0 },
{ TIM_POS_AIR_GAME_QUESTION, 0, 103, 10, 10, 0 },
{ TIM_POS_AIR_GAME_QUESTION, 10, 103, 10, 10, 0 },
{ TIM_POS_AIR_GAME_QUESTION, 20, 103, 10, 10, 0 },
{ TIM_POS_AIR_GAME_QUESTION, 30, 103, 10, 10, 0 },
{ TIM_POS_AIR_GAME_QUESTION, 40, 103, 10, 10, 0 },
{ TIM_POS_AIR_GAME_QUESTION, 50, 103, 10, 10, 0 },
{ TIM_POS_AIR_GAME_QUESTION, 60, 103, 10, 10, 0 },
{ TIM_POS_AIR_GAME_QUESTION, 70, 103, 10, 10, 0 },
{ TIM_POS_AIR_GAME_QUESTION, 80, 103, 10, 10, 0 },
{ TIM_POS_AIR_GAME_QUESTION, 90, 103, 10, 10, 0 },
{ TIM_POS_AIR_GAME_QUESTION, 0, 146, 14, 8, 2 },
{ TIM_POS_AIR_GAME_QUESTION, 8, 146, 14, 8, 2 },
{ TIM_POS_AIR_GAME_QUESTION, 16, 146, 14, 8, 2 },
{ TIM_POS_AIR_GAME_QUESTION, 24, 146, 14, 8, 2 },
{ TIM_POS_AIR_GAME_QUESTION, 32, 146, 14, 8, 2 },
{ TIM_POS_AIR_GAME_QUESTION, 40, 146, 14, 8, 2 },
{ TIM_POS_AIR_GAME_QUESTION, 48, 146, 14, 8, 2 },
{ TIM_POS_AIR_GAME_QUESTION, 56, 146, 14, 8, 2 },
{ TIM_POS_AIR_GAME_QUESTION, 64, 146, 14, 8, 2 },
{ TIM_POS_AIR_GAME_QUESTION, 72, 146, 14, 8, 2 },
{ TIM_POS_AIR_GAME_QUESTION, 0, 160, 12, 12, 3 },
{ TIM_POS_AIR_GAME_QUESTION, 12, 160, 12, 12, 3 },
{ TIM_POS_AIR_GAME_QUESTION, 24, 160, 12, 12, 3 },
{ TIM_POS_AIR_GAME_QUESTION, 36, 160, 12, 12, 3 },
{ TIM_POS_AIR_GAME_QUESTION, 48, 160, 12, 12, 3 },
{ TIM_POS_AIR_GAME_QUESTION, 60, 160, 12, 12, 3 },
{ TIM_POS_AIR_GAME_QUESTION, 72, 160, 12, 12, 3 },
{ TIM_POS_AIR_GAME_QUESTION, 84, 160, 12, 12, 3 },
{ TIM_POS_AIR_GAME_QUESTION, 96, 160, 12, 12, 3 },
{ TIM_POS_AIR_GAME_QUESTION, 108, 160, 12, 12, 3 },
{ TIM_POS_AIR_GAME_QUESTION, 0, 172, 16, 10, 4 },
{ TIM_POS_AIR_GAME_QUESTION, 10, 172, 16, 10, 4 },
{ TIM_POS_AIR_GAME_QUESTION, 20, 172, 16, 10, 4 },
{ TIM_POS_AIR_GAME_QUESTION, 30, 172, 16, 10, 4 },
{ TIM_POS_AIR_GAME_QUESTION, 40, 172, 16, 10, 4 },
{ TIM_POS_AIR_GAME_QUESTION, 50, 172, 16, 10, 4 },
{ TIM_POS_AIR_GAME_QUESTION, 60, 172, 16, 10, 4 },
{ TIM_POS_AIR_GAME_QUESTION, 70, 172, 16, 10, 4 },
{ TIM_POS_AIR_GAME_QUESTION, 80, 172, 16, 10, 4 },
{ TIM_POS_AIR_GAME_QUESTION, 90, 172, 16, 10, 4 },
{ TIM_POS_AIR_GAME_QUESTION, 0, 113, 10, 32, 0 },
{ TIM_POS_AIR_GAME_QUESTION, 0, 189, 34, 36, 7 },
{ TIM_POS_AIR_GAME_QUESTION, 0, 224, 26, 26, 7 },
{ TIM_POS_AIR_GAME_QUESTION, 26, 224, 28, 28, 7 },
{ TIM_POS_AIR_GAME_QUESTION, 36, 189, 8, 10, 5 },
{ TIM_POS_AIR_GAME_QUESTION, 36, 197, 8, 10, 5 },
{ TIM_POS_AIR_GAME_QUESTION, 46, 189, 8, 10, 6 },
{ TIM_POS_AIR_GAME_QUESTION, 46, 197, 8, 10, 6 },
{ TIM_POS_AIR_GAME_GUN_01, 138, 98, 26, 1, 3 },
{ TIM_POS_AIR_GAME_GUN_01, 138, 98, 26, 2, 3 },
{ TIM_POS_AIR_GAME_GUN_01, 138, 98, 26, 3, 3 },
{ TIM_POS_AIR_GAME_GUN_01, 138, 98, 26, 4, 3 },
{ TIM_POS_AIR_GAME_GUN_01, 138, 98, 26, 5, 3 },
{ TIM_POS_AIR_GAME_GUN_01, 138, 98, 26, 6, 3 },
{ TIM_POS_AIR_GAME_GUN_01, 138, 98, 26, 7, 3 },
{ TIM_POS_AIR_GAME_GUN_01, 138, 98, 26, 8, 3 },
{ TIM_POS_AIR_GAME_GUN_01, 138, 98, 26, 9, 3 },
{ TIM_POS_AIR_GAME_GUN_01, 138, 98, 26, 10, 3 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*0, 22*0, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*1, 22*0, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*2, 22*0, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*3, 22*0, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*4, 22*0, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*5, 22*0, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*6, 22*0, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*7, 22*0, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*8, 22*0, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*9, 22*0, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*10, 22*0, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*0, 22*1, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*1, 22*1, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*2, 22*1, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*3, 22*1, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*4, 22*1, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*5, 22*1, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*6, 22*1, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*7, 22*1, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*8, 22*1, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*9, 22*1, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*10, 22*1, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*0, 22*2, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*1, 22*2, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*2, 22*2, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*3, 22*2, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*4, 22*2, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*5, 22*2, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*6, 22*2, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*7, 22*2, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*8, 22*2, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*9, 22*2, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*10, 22*2, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*0, 22*3, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*1, 22*3, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*2, 22*3, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*3, 22*3, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*4, 22*3, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*5, 22*3, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*6, 22*3, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*7, 22*3, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*8, 22*3, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*9, 22*3, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*10, 22*3, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*0, 22*4, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*1, 22*4, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*2, 22*4, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 22*3, 22*4, 22, 22, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 0, 120, 30, 30, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 30, 120, 30, 30, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 60, 120, 30, 30, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 90, 120, 30, 30, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 120, 120, 30, 30, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 150, 120, 30, 30, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 0, 150, 30, 30, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 30, 150, 30, 30, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 60, 150, 30, 30, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 90, 150, 30, 30, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 120, 150, 30, 30, 0 },
{ TIM_POS_AIR_GAME_NEEDLE, 150, 150, 30, 30, 0 },
{ ENTRY_SPRITE_DATA_END,0,0,0,0,0 }
};
static ENTRY_SPRITE_DATA AirEventSpriteData[] =
{
{ TIM_POS_AIR_EVENT_EBG_00, 0, 0, 240, 256, 0 },
{ TIM_POS_AIR_EVENT_EBG_01, 0, 0, 240, 64, 0 },
{ TIM_POS_AIR_EVENT_EBG_02, 0, 0, 240, 256, 0 },
{ TIM_POS_AIR_EVENT_EBG_03, 0, 0, 240, 64, 0 },
{ TIM_POS_AIR_EVENT_EBG_04, 0, 0, 240, 256, 0 },
{ TIM_POS_AIR_EVENT_EBG_05, 0, 0, 240, 64, 0 },
{ TIM_POS_AIR_EVENT_EBG_06, 0, 0, 240, 256, 0 },
{ TIM_POS_AIR_EVENT_EBG_07, 0, 0, 240, 64, 0 },
{ TIM_POS_AIR_EVENT_EBG_08, 0, 0, 240, 256, 0 },
{ TIM_POS_AIR_EVENT_EBG_09, 0, 0, 240, 64, 0 },
{ TIM_POS_AIR_EVENT_EBG_10, 0, 0, 240, 256, 0 },
{ TIM_POS_AIR_EVENT_EBG_11, 0, 0, 240, 64, 0 },
{ TIM_POS_AIR_EVENT_EBG_12, 0, 0, 240, 256, 0 },
{ TIM_POS_AIR_EVENT_EBG_13, 0, 0, 240, 64, 0 },
{ TIM_POS_AIR_EVENT_EBG_14, 0, 0, 240, 256, 0 },
{ TIM_POS_AIR_EVENT_EBG_15, 0, 0, 240, 64, 0 },
{ TIM_POS_AIR_EVENT_ECHARA1, 0, 0, 153, 162, 0 },
{ TIM_POS_AIR_EVENT_ECHARA1, 162, 0, 89, 72, 1 },
{ TIM_POS_AIR_EVENT_ECHARA1, 162, 89, 89, 72, 1 },
{ TIM_POS_AIR_EVENT_ECHARA1, 0, 153, 85, 80, 2 },
{ TIM_POS_AIR_EVENT_ECHARA1, 80, 153, 85, 80, 2 },
{ TIM_POS_AIR_EVENT_ECHARA2, 0, 0, 153, 162, 0 },
{ TIM_POS_AIR_EVENT_ECHARA2, 162, 0, 26, 67, 0 },
{ TIM_POS_AIR_EVENT_ECHARA2, 162, 26, 26, 67, 0 },
{ TIM_POS_AIR_EVENT_ECHARA2, 162, 56, 39, 84, 0 },
{ TIM_POS_AIR_EVENT_ECHARA2, 162, 95, 39, 84, 0 },
{ TIM_POS_AIR_EVENT_ECHARA2, 0, 153, 93, 110, 1 },
{ TIM_POS_AIR_EVENT_ECHARA2, 110, 153, 93, 110, 1 },
{ TIM_POS_AIR_EVENT_ECHARA3, 0, 0, 165, 156, 0 },
{ TIM_POS_AIR_EVENT_ECHARA3, 0, 165, 78, 78, 1 },
{ TIM_POS_AIR_EVENT_ECHARA3, 80, 165, 78, 78, 1 },
{ TIM_POS_AIR_EVENT_ECHARA4, 0, 0, 173, 156, 0 },
{ TIM_POS_AIR_EVENT_ECHARA5, 0, 0, 162, 220, 0 },
{ TIM_POS_AIR_EVENT_ECHARA6, 0, 0, 188, 200, 0 },
{ TIM_POS_AIR_EVENT_ECHARA7, 0, 0, 118, 122, 0 },
{ TIM_POS_AIR_EVENT_ECHARA7, 0, 118, 118, 122, 0 },
{ TIM_POS_AIR_EVENT_ECHARA8, 0, 0, 108, 134, 0 },
{ TIM_POS_AIR_EVENT_ECHARA8, 0, 108, 108, 134, 0 },
{ TIM_POS_AIR_EVENT_YORNO, 0, 0, 115, 186, 0 },
{ TIM_POS_AIR_EVENT_YORNO, 0, 115, 40, 38, 1 },
{ TIM_POS_AIR_EVENT_YORNO, 38, 115, 40, 44, 1 },
{ TIM_POS_AIR_EVENT_YORNO, 82, 115, 40, 44, 2 },
{ TIM_POS_AIR_EVENT_YORNO, 126, 115, 40, 44, 2 },
{ TIM_POS_AIR_EVENT_YORNO, 186, 0, 69, 58, 3 },
{ TIM_POS_AIR_EVENT_YORNO, 186, 69, 69, 58, 3 },
{ TIM_POS_AIR_EVENT_YORNO, 0, 155, 14, 148, 4 },
{ TIM_POS_AIR_EVENT_YORNO, 0, 170, 14, 148, 4 },
{ TIM_POS_AIR_EVENT_YORNO, 20, 20, 14, 148, 4 },
{ TIM_POS_AIR_EVENT_FONT, 24, 200, 24, 26, 2 },
{ TIM_POS_AIR_EVENT_FONT, 0, 232, 15, 52, 4 },
{ TIM_POS_AIR_EVENT_FONT, 52, 232, 15, 52, 4 },
{ TIM_POS_AIR_EVENT_FONT, 104, 232, 15, 52, 4 },
{ ENTRY_SPRITE_DATA_END,0,0,0,0,0 }
};
static int TimerNoTable[]=
{
AIR_CHAR_COUNTER_NO_00,
AIR_CHAR_COUNTER_NO_01,
AIR_CHAR_COUNTER_NO_02,
AIR_CHAR_COUNTER_NO_03,
AIR_CHAR_COUNTER_NO_04,
AIR_CHAR_COUNTER_NO_05,
AIR_CHAR_COUNTER_NO_06,
AIR_CHAR_COUNTER_NO_07,
AIR_CHAR_COUNTER_NO_08,
AIR_CHAR_COUNTER_NO_09,
};
static int QuestionTextNoSmallTable[]=
{
AIR_CHAR_QA_NO_00,
AIR_CHAR_QA_NO_01,
AIR_CHAR_QA_NO_02,
AIR_CHAR_QA_NO_03,
AIR_CHAR_QA_NO_04,
AIR_CHAR_QA_NO_05,
AIR_CHAR_QA_NO_06,
AIR_CHAR_QA_NO_07,
AIR_CHAR_QA_NO_08,
AIR_CHAR_QA_NO_09,
};
static int QuestionTextNoLargeTable[]=
{
AIR_CHAR_QUESTION_NO_00,
AIR_CHAR_QUESTION_NO_01,
AIR_CHAR_QUESTION_NO_02,
AIR_CHAR_QUESTION_NO_03,
AIR_CHAR_QUESTION_NO_04,
AIR_CHAR_QUESTION_NO_05,
AIR_CHAR_QUESTION_NO_06,
AIR_CHAR_QUESTION_NO_07,
AIR_CHAR_QUESTION_NO_08,
AIR_CHAR_QUESTION_NO_09,
};
static AIR_GAME AGameMgr;
#define NORMAL_EFFECT_DRAW_TIME 1
#define CRUSH_SMOKE_TIME 16
#define GUNGUN_FEELING_MARK_TIME 90
#define SMOKE_TIME 8
static EFFECT_ENTRY_DATA EffectEntryTable[]=
{
{ AIR_CHAR_MARU ,GUNGUN_FEELING_MARK_TIME ,15, 13 },
{ ANM_STOP ,0 ,0, 0 },
{ AIR_CHAR_BATSU ,GUNGUN_FEELING_MARK_TIME ,15, 13 },
{ ANM_STOP ,0 ,0, 0 },
{ AIR_CHAR_FUKURO ,NORMAL_EFFECT_DRAW_TIME ,0, 0 },
{ ANM_STOP ,0 ,0, 0 },
{ AIR_CHAR_ONNPU ,GUNGUN_FEELING_MARK_TIME ,14, 14 },
{ ANM_STOP ,0 ,0, 0 },
{ AIR_CHAR_ASE ,GUNGUN_FEELING_MARK_TIME ,14, 14 },
{ ANM_STOP ,0 ,0, 0 },
{ AIR_CHAR_ITEM_GUITAR ,NORMAL_EFFECT_DRAW_TIME ,30, 18 },
{ ANM_STOP ,0 ,0, 0 },
{ AIR_CHAR_ITEM_DOLL ,NORMAL_EFFECT_DRAW_TIME ,12, 18 },
{ ANM_STOP ,0 ,0, 0 },
{ AIR_CHAR_ITEM_JEWELRY ,NORMAL_EFFECT_DRAW_TIME ,20, 18 },
{ ANM_STOP ,0 ,0, 0 },
{ AIR_CHAR_ITEM_TRUMPET ,NORMAL_EFFECT_DRAW_TIME ,26, 18 },
{ ANM_STOP ,0 ,0, 0 },
{ AIR_CHAR_ITEM_RIBBON ,NORMAL_EFFECT_DRAW_TIME ,18, 18 },
{ ANM_STOP ,0 ,0, 0 },
{ AIR_CHAR_ITEM_RING ,NORMAL_EFFECT_DRAW_TIME ,12, 18 },
{ ANM_STOP ,0 ,0, 0 },
{ AIR_CHAR_ITEM_CROWN ,NORMAL_EFFECT_DRAW_TIME ,20, 18 },
{ ANM_STOP ,0 ,0, 0 },
{ AIR_CHAR_ITEM_JAR ,NORMAL_EFFECT_DRAW_TIME ,14, 18 },
{ ANM_STOP ,0 ,0, 0 },
{ AIR_CHAR_ITEM_TRAIN ,NORMAL_EFFECT_DRAW_TIME ,26, 18 },
{ ANM_STOP ,0 ,0, 0 },
{ AIR_CHAR_ITEM_POSTCARD ,NORMAL_EFFECT_DRAW_TIME ,16, 18 },
{ ANM_STOP ,0 ,0, 0 },
{ AIR_CHAR_DUST_TSHIRT ,NORMAL_EFFECT_DRAW_TIME ,26, 16 },
{ ANM_STOP ,0 ,0, 0 },
{ AIR_CHAR_DUST_MIRROR ,NORMAL_EFFECT_DRAW_TIME ,18, 16 },
{ ANM_STOP ,0 ,0, 0 },
{ AIR_CHAR_DUST_KAN ,NORMAL_EFFECT_DRAW_TIME ,18, 16 },
{ ANM_STOP ,0 ,0, 0 },
{ AIR_CHAR_DUST_YAKAN ,NORMAL_EFFECT_DRAW_TIME ,24, 16 },
{ ANM_STOP ,0 ,0, 0 },
{ AIR_CHAR_DUST_APPLE ,NORMAL_EFFECT_DRAW_TIME ,10, 16 },
{ ANM_STOP ,0 ,0, 0 },
{ AIR_CHAR_DUST_SHOES ,NORMAL_EFFECT_DRAW_TIME ,16, 16 },
{ ANM_STOP ,0 ,0, 0 },
{ AIR_CHAR_HELP_PANEL ,NORMAL_EFFECT_DRAW_TIME ,128, 128 },
{ ANM_STOP ,0 ,0, 0 },
{ AIR_CHAR_CRUSH_00 ,CRUSH_SMOKE_TIME ,28, 22 },
{ AIR_CHAR_CRUSH_01 ,CRUSH_SMOKE_TIME ,28, 22 },
{ AIR_CHAR_CRUSH_00 ,CRUSH_SMOKE_TIME ,28, 22 },
{ AIR_CHAR_CRUSH_01 ,CRUSH_SMOKE_TIME ,28, 22 },
{ AIR_CHAR_CRUSH_00 ,CRUSH_SMOKE_TIME ,28, 22 },
{ AIR_CHAR_CRUSH_01 ,CRUSH_SMOKE_TIME ,28, 22 },
{ ANM_STOP ,0 ,0, 0 },
{ AIR_CHAR_SMOKE_SMALL ,SMOKE_TIME ,11, 6 },
{ AIR_CHAR_SMOKE_MIDDLE ,SMOKE_TIME ,10, 7-4 },
{ AIR_CHAR_SMOKE_LARGE ,SMOKE_TIME ,11, 9-7 },
{ ANM_STOP ,0 ,0, 0 },
};
static int CrowSpriteTable[]={
AIR_CHAR_CROW_00,
AIR_CHAR_CROW_00,
AIR_CHAR_CROW_01,
AIR_CHAR_CROW_02,
};
static int LinePosYTbl[]=
{
BASE_ALINE_01_Y,
BASE_ALINE_02_Y,
BASE_ALINE_03_Y
};
static int LineTbl[]=
{
BASE_ALINE_01,
BASE_ALINE_02,
BASE_ALINE_03
};
static CATCH_DATA GetItemTable[]=
{
{ AIR_EFFECT_ITEM_GUITAR, 22, 0 },
{ AIR_EFFECT_ITEM_DOLL, 10, -16 },
{ AIR_EFFECT_ITEM_JEWELRY, 18, 4 },
{ AIR_EFFECT_ITEM_TRUMPET, 4, -2 },
{ AIR_EFFECT_ITEM_RIBBON, 4, -5 },
{ AIR_EFFECT_ITEM_RING, 8, -14 },
{ AIR_EFFECT_ITEM_CROWN, 10, -4 },
{ AIR_EFFECT_ITEM_JAR, 12, -12 },
{ AIR_EFFECT_ITEM_TRAIN, 16, 0 },
{ AIR_EFFECT_ITEM_POSTCARD, 10, -12 },
};
static CATCH_DATA GetDustTable[]=
{
{ AIR_EFFECT_DUST_TSHIRT, 10, 0 },
{ AIR_EFFECT_DUST_MIRROR, 13, -14 },
{ AIR_EFFECT_DUST_KAN, 10, -8 },
{ AIR_EFFECT_DUST_YAKAN, 12, 2 },
{ AIR_EFFECT_DUST_APPLE, 8, -8 },
{ AIR_EFFECT_DUST_SHOES, 16, -8 },
};
static int EnemyDeathWaitTable[]={
ENEMY_DEATH_WAIT_TIMER_1,
ENEMY_DEATH_WAIT_TIMER_2,
ENEMY_DEATH_WAIT_TIMER_3,
};
static QUESTION_TEXT_00_DATA QuestionText00_Data[]=
{
{ QUESTION_TEXT_00, 1, 2, -1, 4, 5, 6, 0,0, 3, 1,0, 9, 0,0 },
{ QUESTION_TEXT_00, 2, 3, 4, 5, -1, 7, 0,0, 6, 1,0, 8, 0,0 },
{ QUESTION_TEXT_00, 3, -1, 5, 6, 7, 4, 1,0, 8, 0,0, 9, 0,0 },
{ QUESTION_TEXT_00, 4, 5, 6, -1, 8, 2, 0,0, 9, 0,0, 7, 1,0 },
{ QUESTION_TEXT_00, 5, 6, 7, -1, 9, 1, 0,0, 3, 0,0, 8, 1,0 },
{ QUESTION_TEXT_00, 6, 7, 8, 9, -1, 12, 0,0, 11, 0,0, 10,1,0 },
{ QUESTION_TEXT_00, 7, 8, 9, -1, 11, 12, 0,0, 10, 1,0, 13,0,0 },
{ QUESTION_TEXT_00, 9, 10, -1, 12, 13, 14, 0,0, 11, 1,0, 16,0,0 },
{ QUESTION_TEXT_00, 10, -1, 12, 13, 14, 11, 1,0, 15, 0,0, 17,0,0 },
{ QUESTION_TEXT_00, 11, 12, 13, -1, 15, 18, 0,0, 14, 1,0, 16,0,0 },
{ QUESTION_TEXT_00, -1, 13, 14, 15, 16, 19, 0,0, 11, 0,0, 12,1,0 },
{ QUESTION_TEXT_00, 13, 14, -1, 16, 17, 15, 1,0, 12, 0,0, 11,0,0 },
{ QUESTION_TEXT_00, 14, -1, 16, 17, 18, 12, 0,0, 15, 1,0, 19,0,0 },
{ QUESTION_TEXT_00, 15, 16, 17, -1, 19, 18, 1,0, 14, 0,0, 12,0,0 },
{ QUESTION_TEXT_00, -1, 4, 6, 8, 10, 8, 0,0, 7, 0,0, 2, 1,0 },
{ QUESTION_TEXT_00, 4, 6, 8, -1, 12, 10, 1,0, 14, 0,0, 16, 0,0 },
{ QUESTION_TEXT_00, 6, 8, -1, 12, 14, 16, 0,0, 10, 1,0, 18, 0,0 },
{ QUESTION_TEXT_00, 8, -1, 12, 14, 16, 18, 0,0, 15, 0,0, 10, 1,0 },
{ QUESTION_TEXT_00, 9, -1, 13, 15, 17, 11, 1,0, 10, 0,0, 19, 0,0 },
{ QUESTION_TEXT_00, 10, 12, 14, 16, -1, 18, 1,0, 11, 0,0, 13, 0,0 },
{ QUESTION_TEXT_00, 22, -1, 24, 25, 26, 21, 0,0, 23, 1,0, 29, 0,0 },
{ QUESTION_TEXT_00, -1, 28, 29, 30, 31, 27, 1,0, 25, 0,0, 29, 0,0 },
{ QUESTION_TEXT_00, 31, 32, 33, -1, 35, 38, 0,0, 30, 0,0, 34, 1,0 },
{ QUESTION_TEXT_00, 34, -1, 36, 37, 38, 33, 0,0, 39, 0,0, 35, 1,0 },
{ QUESTION_TEXT_00, 44, 45, -1, 47, 48, 41, 0,0, 46, 1,0, 49, 0,0 },
{ QUESTION_TEXT_00, 59, 60, 61, -1, 63, 65, 0,0, 67, 0,0, 62, 1,0 },
{ QUESTION_TEXT_00, 64, -1, 66, 67, 68, 65, 1,0, 69, 0,0, 63, 0,0 },
{ QUESTION_TEXT_00, 72, 73, 74, -1, 76, 71, 0,0, 75, 1,0, 79, 0,0 },
{ QUESTION_TEXT_00, 77, 78, -1, 80, 81, 79, 1,0, 76, 0,0, 72, 0,0 },
{ QUESTION_TEXT_00, 89, -1, 91, 92, 93, 90, 1,0, 98, 0,0, 94, 0,0 },
{ QUESTION_TEXT_00, 10, 20, 30, -1, 50, 60, 0,0, 40, 1,0, 80, 0,0 },
{ QUESTION_TEXT_00, 20, -1, 40, 50, 60, 30, 1,0, 70, 0,0, 80, 0,0 },
{ QUESTION_TEXT_00, 30, 40, 50, 60, -1, 10, 0,0, 20, 0,0, 70, 1,0 },
{ QUESTION_TEXT_00, -1, 50, 60, 70, 80, 30, 0,0, 40, 1,0, 90, 0,0 },
{ QUESTION_TEXT_00, 50, 60, 70, -1, 90, 20, 0,0, 80, 1,0, 30, 0,0 },
{ QUESTION_TEXT_00, 21, 23, 25, 27, -1, 29, 1,0, 22, 0,0, 24, 0,0 },
{ QUESTION_TEXT_00, 25, -1, 29, 31, 33, 27, 1,0, 23, 0,0, 26, 0,0 },
{ QUESTION_TEXT_00, 33, 35, 37, -1, 41, 39, 1,0, 32, 0,0, 36, 0,0 },
{ QUESTION_TEXT_00, 39, 41, -1, 45, 47, 49, 0,0, 43, 1,0, 42, 0,0 },
{ QUESTION_TEXT_00, 43, -1, 47, 49, 51, 46, 0,0, 41, 0,0, 45, 1,0 },
{ QUESTION_TEXT_00, 55, 57, 59, 61, -1, 66, 0,0, 63, 1,0, 69, 0,0 },
{ QUESTION_TEXT_00, 69, 71, 73, 75, -1, 77, 1,0, 78, 0,0, 79, 0,0 },
{ QUESTION_TEXT_00, 73, -1, 77, 79, 81, 71, 0,0, 75, 1,0, 76, 0,0 },
{ QUESTION_TEXT_00, 81, 83, 85, -1, 89, 87, 1,0, 86, 0,0, 82, 0,0 },
{ QUESTION_TEXT_00, 89, 91, -1, 95, 97, 99, 0,0, 93, 1,0, 94, 0,0 },
{ QUESTION_TEXT_00, 24, -1, 28, 30, 32, 26, 1,0, 22, 0,0, 27, 0,0 },
{ QUESTION_TEXT_00, 28, 30, -1, 34, 36, 33, 0,0, 32, 1,0, 35, 0,0 },
{ QUESTION_TEXT_00, 34, 36, 38, -1, 42, 46, 0,0, 40, 1,0, 48, 0,0 },
{ QUESTION_TEXT_00, -1, 40, 42, 44, 46, 38, 1,0, 36, 0,0, 34, 0,0 },
{ QUESTION_TEXT_00, -1, 44, 46, 48, 50, 40, 0,0, 41, 0,0, 42, 1,0 },
{ QUESTION_TEXT_00, 54, 56, 58, -1, 62, 66, 0,0, 60, 1,0, 64, 0,0 },
{ QUESTION_TEXT_00, -1, 68, 70, 72, 74, 66, 1,0, 62, 0,0, 64, 0,0 },
{ QUESTION_TEXT_00, 68, 70, 72, 74, -1, 76, 1,0, 78, 0,0, 75, 0,0 },
{ QUESTION_TEXT_00, 88, -1, 92, 94, 96, 90, 1,0, 98, 0,0, 95, 0,0 },
{ QUESTION_TEXT_00, 90, 92, 94, -1, 98, 95, 0,0, 96, 1,0, 97, 0,0 },
};
static QUESTION_TEXT_01_DATA QuestionText01_Data[]=
{
{ QUESTION_TEXT_01, 0, 1, 1,1,0, 2,0,0, 3,0,0 },
{ QUESTION_TEXT_01, 0, 2, 1,0,0, 2,1,0, 3,0,0 },
{ QUESTION_TEXT_01, 0, 3, 2,0,0, 3,1,0, 4,0,0 },
{ QUESTION_TEXT_01, 0, 4, 4,1,0, 5,0,0, 6,0,0 },
{ QUESTION_TEXT_01, 0, 5, 3,0,0, 4,0,0, 5,1,0 },
{ QUESTION_TEXT_01, 1, 0, 1,1,0, 2,0,0, 3,0,0 },
{ QUESTION_TEXT_01, 1, 1, 1,0,0, 2,1,0, 3,0,0 },
{ QUESTION_TEXT_01, 1, 2, 1,0,0, 2,0,0, 3,1,0 },
{ QUESTION_TEXT_01, 1, 3, 4,1,0, 5,0,0, 6,0,0 },
{ QUESTION_TEXT_01, 1, 4, 4,0,0, 5,1,0, 6,0,0 },
{ QUESTION_TEXT_01, 1, 5, 4,0,0, 5,0,0, 6,1,0 },
{ QUESTION_TEXT_01, 2, 0, 1,0,0, 2,1,0, 3,0,0 },
{ QUESTION_TEXT_01, 2, 1, 1,0,0, 2,0,0, 3,1,0 },
{ QUESTION_TEXT_01, 2, 2, 4,1,0, 5,0,0, 6,0,0 },
{ QUESTION_TEXT_01, 2, 3, 4,0,0, 5,1,0, 6,0,0 },
{ QUESTION_TEXT_01, 2, 4, 4,0,0, 5,0,0, 6,1,0 },
{ QUESTION_TEXT_01, 3, 0, 3,1,0, 4,0,0, 5,0,0 },
{ QUESTION_TEXT_01, 3, 1, 3,0,0, 4,1,0, 5,0,0 },
{ QUESTION_TEXT_01, 3, 2, 3,0,0, 4,0,0, 5,1,0 },
{ QUESTION_TEXT_01, 3, 3, 6,1,0, 7,0,0, 8,0,0 },
{ QUESTION_TEXT_01, 4, 0, 2,0,0, 3,0,0, 4,1,0 },
{ QUESTION_TEXT_01, 4, 1, 5,1,0, 6,0,0, 7,0,0 },
{ QUESTION_TEXT_01, 4, 2, 5,0,0, 6,1,0, 7,0,0 },
{ QUESTION_TEXT_01, 5, 0, 5,1,0, 6,0,0, 7,0,0 },
{ QUESTION_TEXT_01, 5, 1, 4,0,0, 5,0,0, 6,1,0 },
{ QUESTION_TEXT_01, 0, 6, 6,1,0, 7,0,0, 8,0,0 },
{ QUESTION_TEXT_01, 0, 7, 6,0,0, 7,1,0, 8,0,0 },
{ QUESTION_TEXT_01, 0, 8, 6,0,0, 7,0,0, 8,1,0 },
{ QUESTION_TEXT_01, 0, 9, 7,0,0, 8,0,0, 9,1,0 },
{ QUESTION_TEXT_01, 0, 10, 9,0,0, 10,1,0, 11,0,0 },
{ QUESTION_TEXT_01, 1, 6, 7,1,0, 8,0,0, 9,0,0 },
{ QUESTION_TEXT_01, 1, 7, 7,0,0, 8,1,0, 9,0,0 },
{ QUESTION_TEXT_01, 1, 8, 7,0,0, 8,0,0, 9,1,0 },
{ QUESTION_TEXT_01, 1, 9, 8,0,0, 9,0,0, 10,1,0 },
{ QUESTION_TEXT_01, 2, 5, 7,1,0, 8,0,0, 9,0,0 },
{ QUESTION_TEXT_01, 2, 6, 7,0,0, 8,1,0, 9,0,0 },
{ QUESTION_TEXT_01, 2, 7, 9,1,0, 10,0,0, 11,0,0 },
{ QUESTION_TEXT_01, 2, 8, 9,0,0, 10,1,0, 11,0,0 },
{ QUESTION_TEXT_01, 3, 4, 6,0,0, 7,1,0, 8,0,0 },
{ QUESTION_TEXT_01, 3, 5, 7,0,0, 8,1,0, 9,0,0 },
{ QUESTION_TEXT_01, 3, 6, 9,1,0, 10,0,0, 11,0,0 },
{ QUESTION_TEXT_01, 3, 7, 10,1,0, 11,0,0, 12,0,0 },
{ QUESTION_TEXT_01, 4, 3, 5,0,0, 6,0,0, 7,1,0 },
{ QUESTION_TEXT_01, 4, 4, 8,1,0, 9,0,0, 10,0,0 },
{ QUESTION_TEXT_01, 4, 5, 8,0,0, 9,1,0, 10,0,0 },
{ QUESTION_TEXT_01, 4, 6, 9,0,0, 10,1,0, 11,0,0 },
{ QUESTION_TEXT_01, 5, 2, 6,0,0, 7,1,0, 8,0,0 },
{ QUESTION_TEXT_01, 5, 3, 8,1,0, 9,0,0, 10,0,0 },
{ QUESTION_TEXT_01, 5, 4, 7,0,0, 8,0,0, 9,1,0 },
{ QUESTION_TEXT_01, 5, 5, 9,0,0, 10,1,0, 11,0,0 },
{ QUESTION_TEXT_01, 6, 0, 6,1,0, 7,0,0, 8,0,0 },
{ QUESTION_TEXT_01, 6, 1, 5,0,0, 6,0,0, 7,1,0 },
{ QUESTION_TEXT_01, 6, 2, 7,0,0, 8,1,0, 9,0,0 },
{ QUESTION_TEXT_01, 6, 3, 9,1,0, 10,0,0, 11,0,0 },
{ QUESTION_TEXT_01, 6, 4, 9,0,0, 10,1,0, 11,0,0 },
{ QUESTION_TEXT_01, 7, 0, 6,0,0, 7,1,0, 8,0,0 },
{ QUESTION_TEXT_01, 7, 1, 7,0,0, 8,1,0, 9,0,0 },
{ QUESTION_TEXT_01, 7, 2, 7,0,0, 8,0,0, 9,1,0 },
{ QUESTION_TEXT_01, 7, 3, 9,0,0, 10,1,0, 11,0,0 },
{ QUESTION_TEXT_01, 8, 0, 8,1,0, 9,0,0, 10,0,0 },
{ QUESTION_TEXT_01, 8, 1, 8,0,0, 9,1,0, 10,0,0 },
{ QUESTION_TEXT_01, 8, 2, 9,0,0, 10,1,0, 11,0,0 },
{ QUESTION_TEXT_01, 9, 0, 8,0,0, 9,1,0, 10,0,0 },
{ QUESTION_TEXT_01, 9, 1, 10,1,0, 11,0,0, 12,0,0 },
{ QUESTION_TEXT_01, 10, 0, 10,1,0, 11,0,0, 12,0,0 },
};
static QUESTION_TEXT_02_DATA QuestionText02_Data[]=
{
{ QUESTION_TEXT_02, 1, 0, 1,1,0, 2,0,0, 3,0,0 },
{ QUESTION_TEXT_02, 2, 0, 0,0,0, 1,0,0, 2,1,0 },
{ QUESTION_TEXT_02, 3, 0, 1,0,0, 2,0,0, 3,1,0 },
{ QUESTION_TEXT_02, 4, 0, 4,1,0, 5,0,0, 6,0,0 },
{ QUESTION_TEXT_02, 5, 0, 3,0,0, 4,0,0, 5,1,0 },
{ QUESTION_TEXT_02, 1, 1, 0,1,0, 2,0,0, 3,0,0 },
{ QUESTION_TEXT_02, 2, 1, 1,1,0, 2,0,0, 3,0,0 },
{ QUESTION_TEXT_02, 3, 1, 2,1,0, 3,0,0, 4,0,0 },
{ QUESTION_TEXT_02, 4, 1, 2,0,0, 3,1,0, 4,0,0 },
{ QUESTION_TEXT_02, 5, 1, 4,1,0, 5,0,0, 6,0,0 },
{ QUESTION_TEXT_02, 6, 1, 4,0,0, 5,1,0, 6,0,0 },
{ QUESTION_TEXT_02, 2, 2, 0,1,0, 1,0,0, 2,0,0 },
{ QUESTION_TEXT_02, 3, 2, 0,0,0, 1,1,0, 2,0,0 },
{ QUESTION_TEXT_02, 4, 2, 0,0,0, 1,0,0, 2,1,0 },
{ QUESTION_TEXT_02, 5, 2, 2,0,0, 3,1,0, 4,0,0 },
{ QUESTION_TEXT_02, 6, 2, 2,0,0, 3,0,0, 4,1,0 },
{ QUESTION_TEXT_02, 7, 2, 5,1,0, 6,0,0, 7,0,0 },
{ QUESTION_TEXT_02, 3, 3, 0,1,0, 1,0,0, 2,0,0 },
{ QUESTION_TEXT_02, 4, 3, 1,1,0, 2,0,0, 3,0,0 },
{ QUESTION_TEXT_02, 5, 3, 2,1,0, 3,0,0, 4,0,0 },
{ QUESTION_TEXT_02, 6, 3, 3,1,0, 4,0,0, 5,0,0 },
{ QUESTION_TEXT_02, 7, 3, 3,0,0, 4,1,0, 5,0,0 },
{ QUESTION_TEXT_02, 8, 3, 5,1,0, 6,0,0, 7,0,0 },
{ QUESTION_TEXT_02, 4, 4, 0,1,0, 1,0,0, 2,0,0 },
{ QUESTION_TEXT_02, 5, 4, 1,1,0, 2,0,0, 3,0,0 },
{ QUESTION_TEXT_02, 6, 4, 1,0,0, 2,1,0, 3,0,0 },
{ QUESTION_TEXT_02, 7, 4, 1,0,0, 2,0,0, 3,1,0 },
{ QUESTION_TEXT_02, 8, 4, 3,0,0, 4,1,0, 5,0,0 },
{ QUESTION_TEXT_02, 9, 4, 4,0,0, 5,1,0, 6,0,0 },
{ QUESTION_TEXT_02, 5, 5, 0,1,0, 1,0,0, 2,0,0 },
{ QUESTION_TEXT_02, 6, 5, 0,0,0, 1,1,0, 2,0,0 },
{ QUESTION_TEXT_02, 7, 5, 2,1,0, 3,0,0, 4,0,0 },
{ QUESTION_TEXT_02, 8, 5, 1,0,0, 2,0,0, 3,1,0 },
{ QUESTION_TEXT_02, 9, 5, 2,0,0, 3,0,0, 4,1,0 },
{ QUESTION_TEXT_02, 10, 5, 4,0,0, 5,1,0, 6,0,0 },
{ QUESTION_TEXT_02, 6, 0, 6,1,0, 7,0,0, 8,0,0 },
{ QUESTION_TEXT_02, 7, 0, 6,0,0, 7,1,0, 8,0,0 },
{ QUESTION_TEXT_02, 8, 0, 8,1,0, 9,0,0, 10,0,0 },
{ QUESTION_TEXT_02, 9, 0, 8,0,0, 9,1,0, 10,0,0 },
{ QUESTION_TEXT_02, 10, 0, 10,1,0, 11,0,0, 12,0,0 },
{ QUESTION_TEXT_02, 7, 1, 4,0,0, 5,0,0, 6,1,0 },
{ QUESTION_TEXT_02, 8, 1, 6,0,0, 7,1,0, 8,0,0 },
{ QUESTION_TEXT_02, 9, 1, 7,0,0, 8,1,0, 9,0,0 },
{ QUESTION_TEXT_02, 10, 1, 8,0,0, 9,1,0, 10,0,0 },
{ QUESTION_TEXT_02, 8, 2, 4,0,0, 5,0,0, 6,1,0 },
{ QUESTION_TEXT_02, 9, 2, 5,0,0, 6,0,0, 7,1,0 },
{ QUESTION_TEXT_02, 10, 2, 7,0,0, 8,1,0, 9,0,0 },
{ QUESTION_TEXT_02, 9, 3, 6,1,0, 7,0,0, 8,0,0 },
{ QUESTION_TEXT_02, 10, 3, 6,0,0, 7,1,0, 8,0,0 },
{ QUESTION_TEXT_02, 10, 4, 6,1,0, 7,0,0, 8,0,0 },
{ QUESTION_TEXT_02, 6, 6, 0,1,0, 1,0,0, 2,0,0 },
{ QUESTION_TEXT_02, 7, 6, 0,0,0, 1,1,0, 2,0,0 },
{ QUESTION_TEXT_02, 8, 6, 2,1,0, 3,0,0, 4,0,0 },
{ QUESTION_TEXT_02, 9, 6, 3,1,0, 4,0,0, 5,0,0 },
{ QUESTION_TEXT_02, 10, 6, 3,0,0, 4,1,0, 5,0,0 },
{ QUESTION_TEXT_02, 7, 7, 0,1,0, 1,0,0, 2,0,0 },
{ QUESTION_TEXT_02, 8, 7, 0,0,0, 1,1,0, 2,0,0 },
{ QUESTION_TEXT_02, 9, 7, 1,0,0, 2,1,0, 3,0,0 },
{ QUESTION_TEXT_02, 10, 7, 3,1,0, 4,0,0, 5,0,0 },
{ QUESTION_TEXT_02, 8, 8, 0,1,0, 1,0,0, 2,0,0 },
{ QUESTION_TEXT_02, 9, 8, 1,1,0, 2,0,0, 3,0,0 },
{ QUESTION_TEXT_02, 10, 8, 1,0,0, 2,1,0, 3,0,0 },
{ QUESTION_TEXT_02, 9, 9, 0,1,0, 1,0,0, 2,0,0 },
{ QUESTION_TEXT_02, 10, 9, 1,1,0, 2,0,0, 3,0,0 },
{ QUESTION_TEXT_02, 10, 10, 0,1,0, 1,0,0, 2,0,0 },
};
static QUESTION_TEXT_03_DATA QuestionText03_Data[]=
{
{ QUESTION_TEXT_03, 12, CLOCK_00_00,1,0, CLOCK_11_00,0,0, CLOCK_01_00,0,0 },
{ QUESTION_TEXT_03, 1, CLOCK_00_05,0,0, CLOCK_01_00,1,0, CLOCK_02_00,0,0 },
{ QUESTION_TEXT_03, 2, CLOCK_00_10,0,0, CLOCK_01_00,0,0, CLOCK_02_00,1,0 },
{ QUESTION_TEXT_03, 3, CLOCK_03_00,1,0, CLOCK_00_15,0,0, CLOCK_04_00,0,0 },
{ QUESTION_TEXT_03, 4, CLOCK_00_20,0,0, CLOCK_04_00,1,0, CLOCK_05_00,0,0 },
{ QUESTION_TEXT_03, 5, CLOCK_00_25,0,0, CLOCK_06_00,0,0, CLOCK_05_00,1,0 },
{ QUESTION_TEXT_03, 6, CLOCK_06_00,1,0, CLOCK_07_00,0,0, CLOCK_00_30,0,0 },
{ QUESTION_TEXT_03, 7, CLOCK_08_00,0,0, CLOCK_07_00,1,0, CLOCK_00_35,0,0 },
{ QUESTION_TEXT_03, 8, CLOCK_07_00,0,0, CLOCK_00_40,0,0, CLOCK_08_00,1,0 },
{ QUESTION_TEXT_03, 9, CLOCK_09_00,1,0, CLOCK_08_00,0,0, CLOCK_00_45,0,0 },
{ QUESTION_TEXT_03, 10, CLOCK_09_00,0,0, CLOCK_10_00,1,0, CLOCK_00_50,0,0 },
{ QUESTION_TEXT_03, 11, CLOCK_10_00,0,0, CLOCK_00_55,0,0, CLOCK_11_00,1,0 },
{ QUESTION_TEXT_03, 12, CLOCK_11_00,0,0, CLOCK_01_00,0,0, CLOCK_00_00,1,0 },
{ QUESTION_TEXT_03, 1, CLOCK_01_00,1,0, CLOCK_00_00,0,0, CLOCK_00_05,0,0 },
{ QUESTION_TEXT_03, 2, CLOCK_03_00,0,0, CLOCK_02_00,1,0, CLOCK_00_10,0,0 },
{ QUESTION_TEXT_03, 3, CLOCK_00_15,0,0, CLOCK_04_00,0,0, CLOCK_03_00,1,0 },
{ QUESTION_TEXT_03, 4, CLOCK_04_00,1,0, CLOCK_05_00,0,0, CLOCK_00_20,0,0 },
{ QUESTION_TEXT_03, 5, CLOCK_00_25,0,0, CLOCK_05_00,1,0, CLOCK_04_00,0,0 },
{ QUESTION_TEXT_03, 6, CLOCK_07_00,0,0, CLOCK_00_30,0,0, CLOCK_06_00,1,0 },
{ QUESTION_TEXT_03, 7, CLOCK_07_00,1,0, CLOCK_00_35,0,0, CLOCK_08_00,0,0 },
{ QUESTION_TEXT_03, 8, CLOCK_00_40,0,0, CLOCK_08_00,1,0, CLOCK_09_00,0,0 },
{ QUESTION_TEXT_03, 9, CLOCK_10_00,0,0, CLOCK_00_45,0,0, CLOCK_09_00,1,0 },
{ QUESTION_TEXT_03, 10, CLOCK_10_00,1,0, CLOCK_09_00,0,0, CLOCK_00_50,0,0 },
{ QUESTION_TEXT_03, 11, CLOCK_00_55,0,0, CLOCK_11_00,1,0, CLOCK_10_00,0,0 },
};
static QUESTION_TEXT_04_DATA QuestionText04_Data[]=
{
{ QUESTION_TEXT_04, 12, 30, CLOCK_00_30,1,0, CLOCK_01_30,0,0, CLOCK_06_00,0,0 },
{ QUESTION_TEXT_04, 1, 30, CLOCK_06_05,0,0, CLOCK_01_30,1,0, CLOCK_02_30,0,0 },
{ QUESTION_TEXT_04, 2, 30, CLOCK_01_30,0,0, CLOCK_06_10,0,0, CLOCK_02_30,1,0 },
{ QUESTION_TEXT_04, 3, 30, CLOCK_03_30,1,0, CLOCK_04_30,0,0, CLOCK_06_15,0,0 },
{ QUESTION_TEXT_04, 4, 30, CLOCK_06_20,0,0, CLOCK_04_30,1,0, CLOCK_05_30,0,0 },
{ QUESTION_TEXT_04, 5, 30, CLOCK_06_30,0,0, CLOCK_06_25,0,0, CLOCK_05_30,1,0 },
{ QUESTION_TEXT_04, 6, 30, CLOCK_06_30,1,0, CLOCK_07_30,0,0, CLOCK_05_30,0,0 },
{ QUESTION_TEXT_04, 7, 30, CLOCK_06_30,0,0, CLOCK_07_30,1,0, CLOCK_06_35,0,0 },
{ QUESTION_TEXT_04, 8, 30, CLOCK_07_30,0,0, CLOCK_06_40,0,0, CLOCK_08_30,1,0 },
{ QUESTION_TEXT_04, 9, 30, CLOCK_09_30,1,0, CLOCK_06_45,0,0, CLOCK_10_30,0,0 },
{ QUESTION_TEXT_04, 10, 30, CLOCK_06_50,0,0, CLOCK_10_30,1,0, CLOCK_11_30,0,0 },
{ QUESTION_TEXT_04, 11, 30, CLOCK_10_30,0,0, CLOCK_06_55,0,0, CLOCK_11_30,1,0 },
{ QUESTION_TEXT_04, 12, 30, CLOCK_06_00,0,0, CLOCK_01_30,0,0, CLOCK_00_30,1,0 },
{ QUESTION_TEXT_04, 1, 30, CLOCK_01_30,1,0, CLOCK_02_30,0,0, CLOCK_06_05,0,0 },
{ QUESTION_TEXT_04, 2, 30, CLOCK_06_10,0,0, CLOCK_02_30,1,0, CLOCK_03_30,0,0 },
{ QUESTION_TEXT_04, 3, 30, CLOCK_04_30,0,0, CLOCK_06_15,0,0, CLOCK_03_30,1,0 },
{ QUESTION_TEXT_04, 4, 30, CLOCK_04_30,1,0, CLOCK_05_30,0,0, CLOCK_06_20,0,0 },
{ QUESTION_TEXT_04, 5, 30, CLOCK_04_30,0,0, CLOCK_05_30,1,0, CLOCK_06_25,0,0 },
{ QUESTION_TEXT_04, 6, 30, CLOCK_07_30,0,0, CLOCK_05_30,0,0, CLOCK_06_30,1,0 },
{ QUESTION_TEXT_04, 7, 30, CLOCK_07_30,1,0, CLOCK_06_35,0,0, CLOCK_08_30,0,0 },
{ QUESTION_TEXT_04, 8, 30, CLOCK_06_40,0,0, CLOCK_08_30,1,0, CLOCK_09_30,0,0 },
{ QUESTION_TEXT_04, 9, 30, CLOCK_10_30,0,0, CLOCK_06_45,0,0, CLOCK_09_30,1,0 },
{ QUESTION_TEXT_04, 10, 30, CLOCK_10_30,1,0, CLOCK_11_30,0,0, CLOCK_06_50,0,0 },
{ QUESTION_TEXT_04, 11, 30, CLOCK_00_30,0,0, CLOCK_11_30,1,0, CLOCK_06_55,0,0 },
{ QUESTION_TEXT_04, 12, 15, CLOCK_00_15,1,0, CLOCK_03_00,0,0, CLOCK_11_15,0,0 },
{ QUESTION_TEXT_04, 1, 15, CLOCK_02_15,0,0, CLOCK_01_15,1,0, CLOCK_03_05,0,0 },
{ QUESTION_TEXT_04, 2, 15, CLOCK_01_15,0,0, CLOCK_03_10,0,0, CLOCK_02_15,1,0 },
{ QUESTION_TEXT_04, 3, 15, CLOCK_03_15,1,0, CLOCK_04_15,0,0, CLOCK_02_15,0,0 },
{ QUESTION_TEXT_04, 4, 15, CLOCK_03_20,0,0, CLOCK_04_15,1,0, CLOCK_03_15,0,0 },
{ QUESTION_TEXT_04, 5, 15, CLOCK_03_25,0,0, CLOCK_06_15,0,0, CLOCK_05_15,1,0 },
{ QUESTION_TEXT_04, 6, 15, CLOCK_06_15,1,0, CLOCK_07_15,0,0, CLOCK_03_30,0,0 },
{ QUESTION_TEXT_04, 7, 15, CLOCK_03_35,0,0, CLOCK_07_15,1,0, CLOCK_08_15,0,0 },
{ QUESTION_TEXT_04, 8, 15, CLOCK_09_15,0,0, CLOCK_03_40,0,0, CLOCK_08_15,1,0 },
{ QUESTION_TEXT_04, 9, 15, CLOCK_09_15,1,0, CLOCK_10_15,0,0, CLOCK_03_45,0,0 },
{ QUESTION_TEXT_04, 10, 15, CLOCK_03_50,0,0, CLOCK_10_15,1,0, CLOCK_09_15,0,0 },
{ QUESTION_TEXT_04, 11, 15, CLOCK_03_55,0,0, CLOCK_10_15,0,0, CLOCK_11_15,1,0 },
{ QUESTION_TEXT_04, 12, 45, CLOCK_09_00,0,0, CLOCK_01_45,0,0, CLOCK_00_45,1,0 },
{ QUESTION_TEXT_04, 1, 45, CLOCK_01_45,1,0, CLOCK_02_45,0,0, CLOCK_09_05,0,0 },
{ QUESTION_TEXT_04, 2, 45, CLOCK_03_45,0,0, CLOCK_02_45,1,0, CLOCK_09_10,0,0 },
{ QUESTION_TEXT_04, 3, 45, CLOCK_09_15,0,0, CLOCK_04_45,0,0, CLOCK_03_45,1,0 },
{ QUESTION_TEXT_04, 4, 45, CLOCK_04_45,1,0, CLOCK_05_45,0,0, CLOCK_09_20,0,0 },
{ QUESTION_TEXT_04, 5, 45, CLOCK_06_45,0,0, CLOCK_05_45,1,0, CLOCK_08_25,0,0 },
{ QUESTION_TEXT_04, 6, 45, CLOCK_08_30,0,0, CLOCK_07_45,0,0, CLOCK_06_45,1,0 },
{ QUESTION_TEXT_04, 7, 45, CLOCK_07_45,1,0, CLOCK_06_45,0,0, CLOCK_08_35,0,0 },
{ QUESTION_TEXT_04, 8, 45, CLOCK_09_45,0,0, CLOCK_08_45,1,0, CLOCK_08_40,0,0 },
{ QUESTION_TEXT_04, 9, 45, CLOCK_08_45,0,0, CLOCK_10_45,0,0, CLOCK_09_45,1,0 },
{ QUESTION_TEXT_04, 10, 45, CLOCK_10_45,1,0, CLOCK_09_45,0,0, CLOCK_08_50,0,0 },
{ QUESTION_TEXT_04, 11, 45, CLOCK_00_45,0,0, CLOCK_11_45,1,0, CLOCK_08_55,0,0 },
};
static QUESTION_TEXT_05_DATA QuestionText05_Data[]=
{
{ QUESTION_TEXT_05, 1, 1, 1,0,0, -1,1,0, 1,0,1 },
{ QUESTION_TEXT_05, 1, 2, 1,0,0, -1,0,0, 2,1,1 },
{ QUESTION_TEXT_05, 2, 2, 2,0,0, -1,1,0, 2,0,1 },
{ QUESTION_TEXT_05, 2, 3, 2,0,0, -1,0,0, 3,1,1 },
{ QUESTION_TEXT_05, 3, 3, 3,0,0, -1,1,0, 3,0,1 },
{ QUESTION_TEXT_05, 3, 4, 3,0,0, -1,0,0, 4,1,1 },
{ QUESTION_TEXT_05, 4, 4, 4,0,0, -1,1,0, 4,0,1 },
{ QUESTION_TEXT_05, 4, 5, 4,0,0, -1,0,0, 5,1,1 },
{ QUESTION_TEXT_05, 5, 5, 5,0,0, -1,1,0, 5,0,1 },
{ QUESTION_TEXT_05, 5, 6, 5,0,0, -1,0,0, 6,1,1 },
{ QUESTION_TEXT_05, 6, 6, 6,0,0, -1,1,0, 6,0,1 },
{ QUESTION_TEXT_05, 6, 7, 6,0,0, -1,0,0, 7,1,1 },
{ QUESTION_TEXT_05, 7, 7, 7,0,0, -1,1,0, 7,0,1 },
{ QUESTION_TEXT_05, 7, 8, 7,0,0, -1,0,0, 8,1,1 },
{ QUESTION_TEXT_05, 8, 8, 8,0,0, -1,1,0, 8,0,1 },
{ QUESTION_TEXT_05, 8, 9, 8,0,0, -1,0,0, 9,1,1 },
{ QUESTION_TEXT_05, 9, 9, 9,0,0, -1,1,0, 9,0,1 },
{ QUESTION_TEXT_05, 9, 10, 9,0,0, -1,0,0, 10,1,1 },
{ QUESTION_TEXT_05, 10, 10, 10,0,0, -1,1,0, 10,0,1 },
};
static QUESTION_TEXT_06_DATA QuestionText06_Data[]=
{
{ QUESTION_TEXT_06, 10, 11, 10,0,0, -1,0,0, 11,1,1 },
{ QUESTION_TEXT_06, 11, 11, 11,0,0, -1,1,0, 11,0,1 },
{ QUESTION_TEXT_06, 11, 12, 11,0,0, -1,0,0, 12,1,1 },
{ QUESTION_TEXT_06, 12, 12, 12,0,0, -1,1,0, 12,0,1 },
{ QUESTION_TEXT_06, 12, 13, 12,0,0, -1,0,0, 13,1,1 },
{ QUESTION_TEXT_06, 13, 13, 13,0,0, -1,1,0, 13,0,1 },
{ QUESTION_TEXT_06, 13, 14, 13,0,0, -1,0,0, 14,1,1 },
{ QUESTION_TEXT_06, 14, 14, 14,0,0, -1,1,0, 14,0,1 },
{ QUESTION_TEXT_06, 14, 15, 14,0,0, -1,0,0, 15,1,1 },
{ QUESTION_TEXT_06, 15, 15, 15,0,0, -1,1,0, 15,0,1 },
{ QUESTION_TEXT_06, 15, 16, 15,0,0, -1,0,0, 16,1,1 },
{ QUESTION_TEXT_06, 16, 16, 16,0,0, -1,1,0, 16,0,1 },
{ QUESTION_TEXT_06, 16, 17, 16,0,0, -1,0,0, 17,1,1 },
{ QUESTION_TEXT_06, 17, 17, 17,0,0, -1,1,0, 17,0,1 },
{ QUESTION_TEXT_06, 17, 18, 17,0,0, -1,0,0, 18,1,1 },
{ QUESTION_TEXT_06, 18, 18, 18,0,0, -1,1,0, 18,0,1 },
{ QUESTION_TEXT_06, 18, 19, 18,0,0, -1,0,0, 19,1,1 },
{ QUESTION_TEXT_06, 19, 19, 19,0,0, -1,1,0, 19,0,1 },
{ QUESTION_TEXT_06, 19, 20, 19,0,0, -1,0,0, 20,1,1 },
{ QUESTION_TEXT_06, 20, 20, 20,0,0, -1,1,0, 20,0,1 },
};
#define QUESTION_TEXT_
#define QUESTION_TEXT_
#define QUESTION_TEXT_
#define QUESTION_TEXT_
#define QUESTION_TEXT_
#define QUESTION_TEXT_
#define QUESTION_TEXT_
#ifdef __DEBUG_ALL_QUESTION_AIR__
#define MAX_QUESTION_CLEAR_NUM 10
#define MAX_QUESTION_NUM 300
#else
#define MAX_QUESTION_CLEAR_NUM 10
#define MAX_QUESTION_NUM 10
#endif
#ifdef __DEBUG_ALL_QUESTION_AIR__
static QUESTION_TOP_DATA QuestionTopData[1][1][MAX_QUESTION_NUM]=
{
{
{
{ QUESTION_TEXT_00, 0 },
{ QUESTION_TEXT_00, 1 },
{ QUESTION_TEXT_00, 2 },
{ QUESTION_TEXT_00, 3 },
{ QUESTION_TEXT_00, 4 },
{ QUESTION_TEXT_00, 5 },
{ QUESTION_TEXT_00, 6 },
{ QUESTION_TEXT_00, 7 },
{ QUESTION_TEXT_00, 8 },
{ QUESTION_TEXT_00, 9 },
{ QUESTION_TEXT_00, 10 },
{ QUESTION_TEXT_00, 11 },
{ QUESTION_TEXT_00, 12 },
{ QUESTION_TEXT_00, 13 },
{ QUESTION_TEXT_00, 14 },
{ QUESTION_TEXT_00, 15 },
{ QUESTION_TEXT_00, 16 },
{ QUESTION_TEXT_00, 17 },
{ QUESTION_TEXT_00, 18 },
{ QUESTION_TEXT_00, 19 },
{ QUESTION_TEXT_00, 20 },
{ QUESTION_TEXT_00, 21 },
{ QUESTION_TEXT_00, 22 },
{ QUESTION_TEXT_00, 23 },
{ QUESTION_TEXT_00, 24 },
{ QUESTION_TEXT_00, 25 },
{ QUESTION_TEXT_00, 26 },
{ QUESTION_TEXT_00, 27 },
{ QUESTION_TEXT_00, 28 },
{ QUESTION_TEXT_00, 29 },
{ QUESTION_TEXT_00, 30 },
{ QUESTION_TEXT_00, 31 },
{ QUESTION_TEXT_00, 32 },
{ QUESTION_TEXT_00, 33 },
{ QUESTION_TEXT_00, 34 },
{ QUESTION_TEXT_00, 35 },
{ QUESTION_TEXT_00, 36 },
{ QUESTION_TEXT_00, 37 },
{ QUESTION_TEXT_00, 38 },
{ QUESTION_TEXT_00, 39 },
{ QUESTION_TEXT_00, 40 },
{ QUESTION_TEXT_00, 41 },
{ QUESTION_TEXT_00, 42 },
{ QUESTION_TEXT_00, 43 },
{ QUESTION_TEXT_00, 44 },
{ QUESTION_TEXT_00, 45 },
{ QUESTION_TEXT_00, 46 },
{ QUESTION_TEXT_00, 47 },
{ QUESTION_TEXT_00, 48 },
{ QUESTION_TEXT_00, 49 },
{ QUESTION_TEXT_00, 50 },
{ QUESTION_TEXT_00, 51 },
{ QUESTION_TEXT_00, 52 },
{ QUESTION_TEXT_00, 53 },
{ QUESTION_TEXT_00, 54 },
{ QUESTION_TEXT_01, 0 },
{ QUESTION_TEXT_01, 1 },
{ QUESTION_TEXT_01, 2 },
{ QUESTION_TEXT_01, 3 },
{ QUESTION_TEXT_01, 4 },
{ QUESTION_TEXT_01, 5 },
{ QUESTION_TEXT_01, 6 },
{ QUESTION_TEXT_01, 7 },
{ QUESTION_TEXT_01, 8 },
{ QUESTION_TEXT_01, 9 },
{ QUESTION_TEXT_01, 10 },
{ QUESTION_TEXT_01, 11 },
{ QUESTION_TEXT_01, 12 },
{ QUESTION_TEXT_01, 13 },
{ QUESTION_TEXT_01, 14 },
{ QUESTION_TEXT_01, 15 },
{ QUESTION_TEXT_01, 16 },
{ QUESTION_TEXT_01, 17 },
{ QUESTION_TEXT_01, 18 },
{ QUESTION_TEXT_01, 19 },
{ QUESTION_TEXT_01, 20 },
{ QUESTION_TEXT_01, 21 },
{ QUESTION_TEXT_01, 22 },
{ QUESTION_TEXT_01, 23 },
{ QUESTION_TEXT_01, 24 },
{ QUESTION_TEXT_01, 25 },
{ QUESTION_TEXT_01, 26 },
{ QUESTION_TEXT_01, 27 },
{ QUESTION_TEXT_01, 28 },
{ QUESTION_TEXT_01, 29 },
{ QUESTION_TEXT_01, 30 },
{ QUESTION_TEXT_01, 31 },
{ QUESTION_TEXT_01, 32 },
{ QUESTION_TEXT_01, 33 },
{ QUESTION_TEXT_01, 34 },
{ QUESTION_TEXT_01, 35 },
{ QUESTION_TEXT_01, 36 },
{ QUESTION_TEXT_01, 37 },
{ QUESTION_TEXT_01, 38 },
{ QUESTION_TEXT_01, 39 },
{ QUESTION_TEXT_01, 40 },
{ QUESTION_TEXT_01, 41 },
{ QUESTION_TEXT_01, 42 },
{ QUESTION_TEXT_01, 43 },
{ QUESTION_TEXT_01, 44 },
{ QUESTION_TEXT_01, 45 },
{ QUESTION_TEXT_01, 46 },
{ QUESTION_TEXT_01, 47 },
{ QUESTION_TEXT_01, 48 },
{ QUESTION_TEXT_01, 49 },
{ QUESTION_TEXT_01, 50 },
{ QUESTION_TEXT_01, 51 },
{ QUESTION_TEXT_01, 52 },
{ QUESTION_TEXT_01, 53 },
{ QUESTION_TEXT_01, 54 },
{ QUESTION_TEXT_01, 55 },
{ QUESTION_TEXT_01, 56 },
{ QUESTION_TEXT_01, 57 },
{ QUESTION_TEXT_01, 58 },
{ QUESTION_TEXT_01, 59 },
{ QUESTION_TEXT_01, 60 },
{ QUESTION_TEXT_01, 61 },
{ QUESTION_TEXT_01, 62 },
{ QUESTION_TEXT_01, 63 },
{ QUESTION_TEXT_01, 64 },
{ QUESTION_TEXT_02, 0 },
{ QUESTION_TEXT_02, 1 },
{ QUESTION_TEXT_02, 2 },
{ QUESTION_TEXT_02, 3 },
{ QUESTION_TEXT_02, 4 },
{ QUESTION_TEXT_02, 5 },
{ QUESTION_TEXT_02, 6 },
{ QUESTION_TEXT_02, 7 },
{ QUESTION_TEXT_02, 8 },
{ QUESTION_TEXT_02, 9 },
{ QUESTION_TEXT_02, 10 },
{ QUESTION_TEXT_02, 11 },
{ QUESTION_TEXT_02, 12 },
{ QUESTION_TEXT_02, 13 },
{ QUESTION_TEXT_02, 14 },
{ QUESTION_TEXT_02, 15 },
{ QUESTION_TEXT_02, 16 },
{ QUESTION_TEXT_02, 17 },
{ QUESTION_TEXT_02, 18 },
{ QUESTION_TEXT_02, 19 },
{ QUESTION_TEXT_02, 20 },
{ QUESTION_TEXT_02, 21 },
{ QUESTION_TEXT_02, 22 },
{ QUESTION_TEXT_02, 23 },
{ QUESTION_TEXT_02, 24 },
{ QUESTION_TEXT_02, 25 },
{ QUESTION_TEXT_02, 26 },
{ QUESTION_TEXT_02, 27 },
{ QUESTION_TEXT_02, 28 },
{ QUESTION_TEXT_02, 29 },
{ QUESTION_TEXT_02, 30 },
{ QUESTION_TEXT_02, 31 },
{ QUESTION_TEXT_02, 32 },
{ QUESTION_TEXT_02, 33 },
{ QUESTION_TEXT_02, 34 },
{ QUESTION_TEXT_02, 35 },
{ QUESTION_TEXT_02, 36 },
{ QUESTION_TEXT_02, 37 },
{ QUESTION_TEXT_02, 38 },
{ QUESTION_TEXT_02, 39 },
{ QUESTION_TEXT_02, 40 },
{ QUESTION_TEXT_02, 41 },
{ QUESTION_TEXT_02, 42 },
{ QUESTION_TEXT_02, 43 },
{ QUESTION_TEXT_02, 44 },
{ QUESTION_TEXT_02, 45 },
{ QUESTION_TEXT_02, 46 },
{ QUESTION_TEXT_02, 47 },
{ QUESTION_TEXT_02, 48 },
{ QUESTION_TEXT_02, 49 },
{ QUESTION_TEXT_02, 50 },
{ QUESTION_TEXT_02, 51 },
{ QUESTION_TEXT_02, 52 },
{ QUESTION_TEXT_02, 53 },
{ QUESTION_TEXT_02, 54 },
{ QUESTION_TEXT_02, 55 },
{ QUESTION_TEXT_02, 56 },
{ QUESTION_TEXT_02, 57 },
{ QUESTION_TEXT_02, 58 },
{ QUESTION_TEXT_02, 59 },
{ QUESTION_TEXT_02, 60 },
{ QUESTION_TEXT_02, 61 },
{ QUESTION_TEXT_02, 62 },
{ QUESTION_TEXT_02, 63 },
{ QUESTION_TEXT_02, 64 },
{ QUESTION_TEXT_03, 0 },
{ QUESTION_TEXT_03, 1 },
{ QUESTION_TEXT_03, 2 },
{ QUESTION_TEXT_03, 3 },
{ QUESTION_TEXT_03, 4 },
{ QUESTION_TEXT_03, 5 },
{ QUESTION_TEXT_03, 6 },
{ QUESTION_TEXT_03, 7 },
{ QUESTION_TEXT_03, 8 },
{ QUESTION_TEXT_03, 9 },
{ QUESTION_TEXT_03, 10 },
{ QUESTION_TEXT_03, 11 },
{ QUESTION_TEXT_03, 12 },
{ QUESTION_TEXT_03, 13 },
{ QUESTION_TEXT_03, 14 },
{ QUESTION_TEXT_03, 15 },
{ QUESTION_TEXT_03, 16 },
{ QUESTION_TEXT_03, 17 },
{ QUESTION_TEXT_03, 18 },
{ QUESTION_TEXT_03, 19 },
{ QUESTION_TEXT_03, 20 },
{ QUESTION_TEXT_03, 21 },
{ QUESTION_TEXT_03, 22 },
{ QUESTION_TEXT_03, 23 },
{ QUESTION_TEXT_04, 0 },
{ QUESTION_TEXT_04, 1 },
{ QUESTION_TEXT_04, 2 },
{ QUESTION_TEXT_04, 3 },
{ QUESTION_TEXT_04, 4 },
{ QUESTION_TEXT_04, 5 },
{ QUESTION_TEXT_04, 6 },
{ QUESTION_TEXT_04, 7 },
{ QUESTION_TEXT_04, 8 },
{ QUESTION_TEXT_04, 9 },
{ QUESTION_TEXT_04, 10 },
{ QUESTION_TEXT_04, 11 },
{ QUESTION_TEXT_04, 12 },
{ QUESTION_TEXT_04, 13 },
{ QUESTION_TEXT_04, 14 },
{ QUESTION_TEXT_04, 15 },
{ QUESTION_TEXT_04, 16 },
{ QUESTION_TEXT_04, 17 },
{ QUESTION_TEXT_04, 18 },
{ QUESTION_TEXT_04, 19 },
{ QUESTION_TEXT_04, 20 },
{ QUESTION_TEXT_04, 21 },
{ QUESTION_TEXT_04, 22 },
{ QUESTION_TEXT_04, 23 },
{ QUESTION_TEXT_04, 24 },
{ QUESTION_TEXT_04, 25 },
{ QUESTION_TEXT_04, 26 },
{ QUESTION_TEXT_04, 27 },
{ QUESTION_TEXT_04, 28 },
{ QUESTION_TEXT_04, 29 },
{ QUESTION_TEXT_04, 30 },
{ QUESTION_TEXT_04, 31 },
{ QUESTION_TEXT_04, 32 },
{ QUESTION_TEXT_04, 33 },
{ QUESTION_TEXT_04, 34 },
{ QUESTION_TEXT_04, 35 },
{ QUESTION_TEXT_04, 36 },
{ QUESTION_TEXT_04, 37 },
{ QUESTION_TEXT_04, 38 },
{ QUESTION_TEXT_04, 39 },
{ QUESTION_TEXT_04, 40 },
{ QUESTION_TEXT_04, 41 },
{ QUESTION_TEXT_04, 42 },
{ QUESTION_TEXT_04, 43 },
{ QUESTION_TEXT_04, 44 },
{ QUESTION_TEXT_04, 45 },
{ QUESTION_TEXT_04, 46 },
{ QUESTION_TEXT_04, 47 },
{ QUESTION_TEXT_05, 0 },
{ QUESTION_TEXT_05, 1 },
{ QUESTION_TEXT_05, 2 },
{ QUESTION_TEXT_05, 3 },
{ QUESTION_TEXT_05, 4 },
{ QUESTION_TEXT_05, 5 },
{ QUESTION_TEXT_05, 6 },
{ QUESTION_TEXT_05, 7 },
{ QUESTION_TEXT_05, 8 },
{ QUESTION_TEXT_05, 9 },
{ QUESTION_TEXT_05, 10 },
{ QUESTION_TEXT_05, 11 },
{ QUESTION_TEXT_05, 12 },
{ QUESTION_TEXT_05, 13 },
{ QUESTION_TEXT_05, 14 },
{ QUESTION_TEXT_05, 15 },
{ QUESTION_TEXT_05, 16 },
{ QUESTION_TEXT_05, 17 },
{ QUESTION_TEXT_05, 18 },
{ QUESTION_TEXT_06, 0 },
{ QUESTION_TEXT_06, 1 },
{ QUESTION_TEXT_06, 2 },
{ QUESTION_TEXT_06, 3 },
{ QUESTION_TEXT_06, 4 },
{ QUESTION_TEXT_06, 5 },
{ QUESTION_TEXT_06, 6 },
{ QUESTION_TEXT_06, 7 },
{ QUESTION_TEXT_06, 8 },
{ QUESTION_TEXT_06, 9 },
{ QUESTION_TEXT_06, 10 },
{ QUESTION_TEXT_06, 11 },
{ QUESTION_TEXT_06, 12 },
{ QUESTION_TEXT_06, 13 },
{ QUESTION_TEXT_06, 14 },
{ QUESTION_TEXT_06, 15 },
{ QUESTION_TEXT_06, 16 },
{ QUESTION_TEXT_06, 17 },
{ QUESTION_TEXT_06, 18 },
{ QUESTION_TEXT_06, 19 },
{ QUESTION_TEXT_00, 0 },
{ QUESTION_TEXT_00, 0 },
{ QUESTION_TEXT_00, 0 },
{ QUESTION_TEXT_00, 0 },
},
},
};
#else
static QUESTION_TOP_DATA QuestionTopData[AIR_GAME_MAX_LEVEL_NUM][AIR_GAME_MAX_KIND_NUM][10]=
{
{
{
{ QUESTION_TEXT_00, 0 },
{ QUESTION_TEXT_01, 2 },
{ QUESTION_TEXT_00, 2 },
{ QUESTION_TEXT_05, 0 },
{ QUESTION_TEXT_01, 0 },
{ QUESTION_TEXT_03, 0 },
{ QUESTION_TEXT_00, 1 },
{ QUESTION_TEXT_01, 1 },
{ QUESTION_TEXT_03, 1 },
{ QUESTION_TEXT_05, 1 },
},
{
{ QUESTION_TEXT_00, 3 },
{ QUESTION_TEXT_05, 3 },
{ QUESTION_TEXT_00, 4 },
{ QUESTION_TEXT_01, 3 },
{ QUESTION_TEXT_05, 2 },
{ QUESTION_TEXT_03, 2 },
{ QUESTION_TEXT_01, 4 },
{ QUESTION_TEXT_03, 3 },
{ QUESTION_TEXT_00, 5 },
{ QUESTION_TEXT_01, 5 },
},
{
{ QUESTION_TEXT_00, 7 },
{ QUESTION_TEXT_03, 4 },
{ QUESTION_TEXT_00, 6 },
{ QUESTION_TEXT_05, 5 },
{ QUESTION_TEXT_01, 7 },
{ QUESTION_TEXT_00, 8 },
{ QUESTION_TEXT_01, 6 },
{ QUESTION_TEXT_05, 4 },
{ QUESTION_TEXT_01, 8 },
{ QUESTION_TEXT_03, 5 },
},
{
{ QUESTION_TEXT_00, 9 },
{ QUESTION_TEXT_05, 7 },
{ QUESTION_TEXT_00, 11 },
{ QUESTION_TEXT_01, 9 },
{ QUESTION_TEXT_03, 7 },
{ QUESTION_TEXT_01, 11 },
{ QUESTION_TEXT_03, 6 },
{ QUESTION_TEXT_00, 10 },
{ QUESTION_TEXT_05, 6 },
{ QUESTION_TEXT_01, 10 },
},
{
{ QUESTION_TEXT_00, 12 },
{ QUESTION_TEXT_03, 8 },
{ QUESTION_TEXT_01, 12 },
{ QUESTION_TEXT_00, 13 },
{ QUESTION_TEXT_05, 8 },
{ QUESTION_TEXT_00, 0 },
{ QUESTION_TEXT_01, 14 },
{ QUESTION_TEXT_03, 9 },
{ QUESTION_TEXT_05, 9 },
{ QUESTION_TEXT_01, 13 },
},
{
{ QUESTION_TEXT_00, 1 },
{ QUESTION_TEXT_03, 11 },
{ QUESTION_TEXT_05, 10 },
{ QUESTION_TEXT_01, 15 },
{ QUESTION_TEXT_00, 2 },
{ QUESTION_TEXT_01, 16 },
{ QUESTION_TEXT_00, 3 },
{ QUESTION_TEXT_01, 17 },
{ QUESTION_TEXT_03, 10 },
{ QUESTION_TEXT_05, 11 },
},
{
{ QUESTION_TEXT_00, 4 },
{ QUESTION_TEXT_01, 19 },
{ QUESTION_TEXT_00, 6 },
{ QUESTION_TEXT_01, 18 },
{ QUESTION_TEXT_05, 13 },
{ QUESTION_TEXT_01, 20 },
{ QUESTION_TEXT_03, 12 },
{ QUESTION_TEXT_00, 5 },
{ QUESTION_TEXT_03, 13 },
{ QUESTION_TEXT_05, 12 },
},
{
{ QUESTION_TEXT_00, 7 },
{ QUESTION_TEXT_05, 15 },
{ QUESTION_TEXT_00, 8 },
{ QUESTION_TEXT_01, 22 },
{ QUESTION_TEXT_00, 9 },
{ QUESTION_TEXT_01, 21 },
{ QUESTION_TEXT_03, 15 },
{ QUESTION_TEXT_01, 23 },
{ QUESTION_TEXT_03, 14 },
{ QUESTION_TEXT_05, 14 },
},
{
{ QUESTION_TEXT_00, 10 },
{ QUESTION_TEXT_03, 16 },
{ QUESTION_TEXT_00, 12 },
{ QUESTION_TEXT_01, 24 },
{ QUESTION_TEXT_00, 11 },
{ QUESTION_TEXT_05, 16 },
{ QUESTION_TEXT_01, 0 },
{ QUESTION_TEXT_03, 17 },
{ QUESTION_TEXT_05, 17 },
{ QUESTION_TEXT_01, 1 },
},
{
{ QUESTION_TEXT_00, 13 },
{ QUESTION_TEXT_01, 2 },
{ QUESTION_TEXT_00, 0 },
{ QUESTION_TEXT_05, 0 },
{ QUESTION_TEXT_00, 1 },
{ QUESTION_TEXT_05, 18 },
{ QUESTION_TEXT_01, 4 },
{ QUESTION_TEXT_03, 18 },
{ QUESTION_TEXT_01, 3 },
{ QUESTION_TEXT_03, 19 },
},
},
{
{
{ QUESTION_TEXT_00, 14 },
{ QUESTION_TEXT_01, 25 },
{ QUESTION_TEXT_04, 1 },
{ QUESTION_TEXT_02, 1 },
{ QUESTION_TEXT_00, 15 },
{ QUESTION_TEXT_01, 26 },
{ QUESTION_TEXT_02, 0 },
{ QUESTION_TEXT_01, 27 },
{ QUESTION_TEXT_04, 0 },
{ QUESTION_TEXT_00, 16 },
},
{
{ QUESTION_TEXT_00, 17 },
{ QUESTION_TEXT_02, 3 },
{ QUESTION_TEXT_00, 19 },
{ QUESTION_TEXT_01, 29 },
{ QUESTION_TEXT_04, 3 },
{ QUESTION_TEXT_01, 30 },
{ QUESTION_TEXT_04, 2 },
{ QUESTION_TEXT_02, 2 },
{ QUESTION_TEXT_00, 18 },
{ QUESTION_TEXT_01, 28 },
},
{
{ QUESTION_TEXT_00, 20 },
{ QUESTION_TEXT_04, 5 },
{ QUESTION_TEXT_01, 33 },
{ QUESTION_TEXT_00, 22 },
{ QUESTION_TEXT_01, 31 },
{ QUESTION_TEXT_02, 4 },
{ QUESTION_TEXT_01, 32 },
{ QUESTION_TEXT_04, 4 },
{ QUESTION_TEXT_00, 21 },
{ QUESTION_TEXT_02, 5 },
},
{
{ QUESTION_TEXT_00, 23 },
{ QUESTION_TEXT_02, 6 },
{ QUESTION_TEXT_04, 6 },
{ QUESTION_TEXT_00, 24 },
{ QUESTION_TEXT_01, 34 },
{ QUESTION_TEXT_02, 7 },
{ QUESTION_TEXT_01, 36 },
{ QUESTION_TEXT_00, 25 },
{ QUESTION_TEXT_01, 35 },
{ QUESTION_TEXT_04, 7 },
},
{
{ QUESTION_TEXT_00, 26 },
{ QUESTION_TEXT_01, 37 },
{ QUESTION_TEXT_04, 9 },
{ QUESTION_TEXT_00, 27 },
{ QUESTION_TEXT_01, 39 },
{ QUESTION_TEXT_00, 28 },
{ QUESTION_TEXT_02, 8 },
{ QUESTION_TEXT_04, 8 },
{ QUESTION_TEXT_02, 9 },
{ QUESTION_TEXT_01, 38 },
},
{
{ QUESTION_TEXT_00, 29 },
{ QUESTION_TEXT_02, 10 },
{ QUESTION_TEXT_00, 15 },
{ QUESTION_TEXT_01, 40 },
{ QUESTION_TEXT_00, 14 },
{ QUESTION_TEXT_04, 10 },
{ QUESTION_TEXT_01, 41 },
{ QUESTION_TEXT_04, 11 },
{ QUESTION_TEXT_01, 42 },
{ QUESTION_TEXT_02, 11 },
},
{
{ QUESTION_TEXT_01, 43 },
{ QUESTION_TEXT_02, 12 },
{ QUESTION_TEXT_01, 45 },
{ QUESTION_TEXT_00, 16 },
{ QUESTION_TEXT_04, 13 },
{ QUESTION_TEXT_00, 17 },
{ QUESTION_TEXT_04, 12 },
{ QUESTION_TEXT_00, 18 },
{ QUESTION_TEXT_01, 44 },
{ QUESTION_TEXT_02, 13 },
},
{
{ QUESTION_TEXT_00, 21 },
{ QUESTION_TEXT_04, 14 },
{ QUESTION_TEXT_00, 20 },
{ QUESTION_TEXT_01, 48 },
{ QUESTION_TEXT_02, 15 },
{ QUESTION_TEXT_01, 46 },
{ QUESTION_TEXT_00, 19 },
{ QUESTION_TEXT_01, 47 },
{ QUESTION_TEXT_02, 14 },
{ QUESTION_TEXT_04, 15 },
},
{
{ QUESTION_TEXT_00, 22 },
{ QUESTION_TEXT_01, 49 },
{ QUESTION_TEXT_00, 23 },
{ QUESTION_TEXT_02, 17 },
{ QUESTION_TEXT_01, 50 },
{ QUESTION_TEXT_04, 16 },
{ QUESTION_TEXT_00, 24 },
{ QUESTION_TEXT_01, 51 },
{ QUESTION_TEXT_02, 16 },
{ QUESTION_TEXT_04, 17 },
},
{
{ QUESTION_TEXT_00, 25 },
{ QUESTION_TEXT_02, 19 },
{ QUESTION_TEXT_04, 18 },
{ QUESTION_TEXT_00, 27 },
{ QUESTION_TEXT_01, 52 },
{ QUESTION_TEXT_00, 26 },
{ QUESTION_TEXT_01, 53 },
{ QUESTION_TEXT_02, 18 },
{ QUESTION_TEXT_01, 54 },
{ QUESTION_TEXT_04, 19 },
},
},
{
{
{ QUESTION_TEXT_00, 30 },
{ QUESTION_TEXT_02, 35 },
{ QUESTION_TEXT_04, 25 },
{ QUESTION_TEXT_00, 31 },
{ QUESTION_TEXT_02, 36 },
{ QUESTION_TEXT_06, 0 },
{ QUESTION_TEXT_00, 32 },
{ QUESTION_TEXT_02, 37 },
{ QUESTION_TEXT_04, 24 },
{ QUESTION_TEXT_06, 1 },
},
{
{ QUESTION_TEXT_00, 34 },
{ QUESTION_TEXT_02, 38 },
{ QUESTION_TEXT_00, 35 },
{ QUESTION_TEXT_06, 2 },
{ QUESTION_TEXT_02, 39 },
{ QUESTION_TEXT_04, 26 },
{ QUESTION_TEXT_02, 40 },
{ QUESTION_TEXT_00, 33 },
{ QUESTION_TEXT_04, 27 },
{ QUESTION_TEXT_06, 3 },
},
{
{ QUESTION_TEXT_00, 36 },
{ QUESTION_TEXT_02, 41 },
{ QUESTION_TEXT_06, 4 },
{ QUESTION_TEXT_00, 37 },
{ QUESTION_TEXT_02, 43 },
{ QUESTION_TEXT_06, 5 },
{ QUESTION_TEXT_02, 42 },
{ QUESTION_TEXT_04, 28 },
{ QUESTION_TEXT_00, 38 },
{ QUESTION_TEXT_04, 29 },
},
{
{ QUESTION_TEXT_00, 39 },
{ QUESTION_TEXT_04, 31 },
{ QUESTION_TEXT_00, 41 },
{ QUESTION_TEXT_02, 44 },
{ QUESTION_TEXT_06, 6 },
{ QUESTION_TEXT_00, 40 },
{ QUESTION_TEXT_02, 46 },
{ QUESTION_TEXT_04, 30 },
{ QUESTION_TEXT_02, 45 },
{ QUESTION_TEXT_06, 7 },
},
{
{ QUESTION_TEXT_00, 42 },
{ QUESTION_TEXT_02, 47 },
{ QUESTION_TEXT_06, 8 },
{ QUESTION_TEXT_02, 49 },
{ QUESTION_TEXT_00, 43 },
{ QUESTION_TEXT_02, 48 },
{ QUESTION_TEXT_04, 32 },
{ QUESTION_TEXT_00, 44 },
{ QUESTION_TEXT_06, 9 },
{ QUESTION_TEXT_04, 33 },
},
{
{ QUESTION_TEXT_00, 45 },
{ QUESTION_TEXT_06, 11 },
{ QUESTION_TEXT_04, 35 },
{ QUESTION_TEXT_00, 47 },
{ QUESTION_TEXT_02, 50 },
{ QUESTION_TEXT_00, 46 },
{ QUESTION_TEXT_02, 51 },
{ QUESTION_TEXT_04, 34 },
{ QUESTION_TEXT_06, 10 },
{ QUESTION_TEXT_02, 52 },
},
{
{ QUESTION_TEXT_00, 48 },
{ QUESTION_TEXT_06, 12 },
{ QUESTION_TEXT_00, 50 },
{ QUESTION_TEXT_02, 54 },
{ QUESTION_TEXT_00, 49 },
{ QUESTION_TEXT_02, 55 },
{ QUESTION_TEXT_04, 36 },
{ QUESTION_TEXT_02, 53 },
{ QUESTION_TEXT_04, 37 },
{ QUESTION_TEXT_06, 13 },
},
{
{ QUESTION_TEXT_00, 51 },
{ QUESTION_TEXT_06, 14 },
{ QUESTION_TEXT_00, 53 },
{ QUESTION_TEXT_02, 57 },
{ QUESTION_TEXT_00, 52 },
{ QUESTION_TEXT_04, 39 },
{ QUESTION_TEXT_02, 58 },
{ QUESTION_TEXT_06, 15 },
{ QUESTION_TEXT_02, 56 },
{ QUESTION_TEXT_04, 38 },
},
{
{ QUESTION_TEXT_00, 54 },
{ QUESTION_TEXT_06, 17 },
{ QUESTION_TEXT_00, 31 },
{ QUESTION_TEXT_02, 59 },
{ QUESTION_TEXT_00, 30 },
{ QUESTION_TEXT_02, 60 },
{ QUESTION_TEXT_02, 61 },
{ QUESTION_TEXT_04, 40 },
{ QUESTION_TEXT_06, 16 },
{ QUESTION_TEXT_04, 41 },
},
{
{ QUESTION_TEXT_00, 32 },
{ QUESTION_TEXT_06, 19 },
{ QUESTION_TEXT_02, 64 },
{ QUESTION_TEXT_00, 34 },
{ QUESTION_TEXT_06, 18 },
{ QUESTION_TEXT_02, 62 },
{ QUESTION_TEXT_02, 63 },
{ QUESTION_TEXT_04, 42 },
{ QUESTION_TEXT_00, 33 },
{ QUESTION_TEXT_04, 43 },
},
},
};
#endif
static XA_DATA QuestionText01_XA_Data[]=
{
{ XA_FILE_AIR04, 0 },
{ XA_FILE_AIR04, 1 },
{ XA_FILE_AIR04, 2 },
{ XA_FILE_AIR04, 3 },
{ XA_FILE_AIR04, 4 },
{ XA_FILE_AIR04, 5 },
{ XA_FILE_AIR04, 6 },
{ XA_FILE_AIR04, 7 },
{ XA_FILE_AIR04, 8 },
{ XA_FILE_AIR04, 9 },
{ XA_FILE_AIR04, 10 },
{ XA_FILE_AIR04, 11 },
{ XA_FILE_AIR04, 12 },
{ XA_FILE_AIR04, 13 },
{ XA_FILE_AIR04, 14 },
{ XA_FILE_AIR04, 15 },
{ XA_FILE_AIR05, 0 },
{ XA_FILE_AIR05, 1 },
{ XA_FILE_AIR05, 2 },
{ XA_FILE_AIR05, 3 },
{ XA_FILE_AIR05, 4 },
{ XA_FILE_AIR05, 5 },
{ XA_FILE_AIR05, 6 },
{ XA_FILE_AIR05, 7 },
{ XA_FILE_AIR05, 8 },
{ XA_FILE_AIR06, 0 },
{ XA_FILE_AIR06, 1 },
{ XA_FILE_AIR06, 2 },
{ XA_FILE_AIR06, 3 },
{ XA_FILE_AIR06, 4 },
{ XA_FILE_AIR06, 5 },
{ XA_FILE_AIR06, 6 },
{ XA_FILE_AIR06, 7 },
{ XA_FILE_AIR06, 8 },
{ XA_FILE_AIR06, 9 },
{ XA_FILE_AIR06, 10 },
{ XA_FILE_AIR06, 11 },
{ XA_FILE_AIR06, 12 },
{ XA_FILE_AIR06, 13 },
{ XA_FILE_AIR06, 14 },
{ XA_FILE_AIR06, 15 },
{ XA_FILE_AIR07, 0 },
{ XA_FILE_AIR07, 1 },
{ XA_FILE_AIR07, 2 },
{ XA_FILE_AIR07, 3 },
{ XA_FILE_AIR07, 4 },
{ XA_FILE_AIR07, 5 },
{ XA_FILE_AIR07, 6 },
{ XA_FILE_AIR07, 7 },
{ XA_FILE_AIR07, 8 },
{ XA_FILE_AIR07, 9 },
{ XA_FILE_AIR07, 10 },
{ XA_FILE_AIR07, 11 },
{ XA_FILE_AIR07, 12 },
{ XA_FILE_AIR07, 13 },
{ XA_FILE_AIR07, 14 },
{ XA_FILE_AIR07, 15 },
{ XA_FILE_AIR08, 0 },
{ XA_FILE_AIR08, 1 },
{ XA_FILE_AIR08, 2 },
{ XA_FILE_AIR08, 3 },
{ XA_FILE_AIR08, 4 },
{ XA_FILE_AIR08, 5 },
{ XA_FILE_AIR08, 6 },
{ XA_FILE_AIR08, 7 },
};
static XA_DATA QuestionText02_XA_Data[]=
{
{ XA_FILE_AIR09, 0 },
{ XA_FILE_AIR09, 1 },
{ XA_FILE_AIR09, 2 },
{ XA_FILE_AIR09, 3 },
{ XA_FILE_AIR09, 4 },
{ XA_FILE_AIR09, 5 },
{ XA_FILE_AIR09, 6 },
{ XA_FILE_AIR09, 7 },
{ XA_FILE_AIR09, 8 },
{ XA_FILE_AIR09, 9 },
{ XA_FILE_AIR09, 10 },
{ XA_FILE_AIR09, 11 },
{ XA_FILE_AIR09, 12 },
{ XA_FILE_AIR09, 13 },
{ XA_FILE_AIR09, 14 },
{ XA_FILE_AIR09, 15 },
{ XA_FILE_AIR10, 0 },
{ XA_FILE_AIR10, 1 },
{ XA_FILE_AIR10, 2 },
{ XA_FILE_AIR10, 3 },
{ XA_FILE_AIR10, 4 },
{ XA_FILE_AIR10, 5 },
{ XA_FILE_AIR10, 6 },
{ XA_FILE_AIR10, 7 },
{ XA_FILE_AIR10, 8 },
{ XA_FILE_AIR10, 9 },
{ XA_FILE_AIR10, 10 },
{ XA_FILE_AIR10, 11 },
{ XA_FILE_AIR10, 12 },
{ XA_FILE_AIR10, 13 },
{ XA_FILE_AIR10, 14 },
{ XA_FILE_AIR10, 15 },
{ XA_FILE_AIR11, 0 },
{ XA_FILE_AIR11, 1 },
{ XA_FILE_AIR11, 2 },
{ XA_FILE_AIR12, 0 },
{ XA_FILE_AIR12, 1 },
{ XA_FILE_AIR12, 2 },
{ XA_FILE_AIR12, 3 },
{ XA_FILE_AIR12, 4 },
{ XA_FILE_AIR12, 5 },
{ XA_FILE_AIR12, 6 },
{ XA_FILE_AIR12, 7 },
{ XA_FILE_AIR12, 8 },
{ XA_FILE_AIR12, 9 },
{ XA_FILE_AIR12, 10 },
{ XA_FILE_AIR12, 11 },
{ XA_FILE_AIR12, 12 },
{ XA_FILE_AIR12, 13 },
{ XA_FILE_AIR12, 14 },
{ XA_FILE_AIR12, 15 },
{ XA_FILE_AIR13, 0 },
{ XA_FILE_AIR13, 1 },
{ XA_FILE_AIR13, 2 },
{ XA_FILE_AIR13, 3 },
{ XA_FILE_AIR13, 4 },
{ XA_FILE_AIR13, 5 },
{ XA_FILE_AIR13, 6 },
{ XA_FILE_AIR13, 7 },
{ XA_FILE_AIR13, 8 },
{ XA_FILE_AIR13, 9 },
{ XA_FILE_AIR13, 10 },
{ XA_FILE_AIR13, 11 },
{ XA_FILE_AIR13, 12 },
{ XA_FILE_AIR13, 13 },
};
static XA_DATA QuestionText03_XA_Data[]=
{
{ XA_FILE_AIR14, 11 },
{ XA_FILE_AIR14, 0 },
{ XA_FILE_AIR14, 1 },
{ XA_FILE_AIR14, 2 },
{ XA_FILE_AIR14, 3 },
{ XA_FILE_AIR14, 4 },
{ XA_FILE_AIR14, 5 },
{ XA_FILE_AIR14, 6 },
{ XA_FILE_AIR14, 7 },
{ XA_FILE_AIR14, 8 },
{ XA_FILE_AIR14, 9 },
{ XA_FILE_AIR14, 10 },
{ XA_FILE_AIR14, 11 },
{ XA_FILE_AIR14, 0 },
{ XA_FILE_AIR14, 1 },
{ XA_FILE_AIR14, 2 },
{ XA_FILE_AIR14, 3 },
{ XA_FILE_AIR14, 4 },
{ XA_FILE_AIR14, 5 },
{ XA_FILE_AIR14, 6 },
{ XA_FILE_AIR14, 7 },
{ XA_FILE_AIR14, 8 },
{ XA_FILE_AIR14, 9 },
{ XA_FILE_AIR14, 10 },
};
static XA_DATA QuestionText04_XA_Data[]=
{
{ XA_FILE_AIR15, 11 },
{ XA_FILE_AIR15, 0 },
{ XA_FILE_AIR15, 1 },
{ XA_FILE_AIR15, 2 },
{ XA_FILE_AIR15, 3 },
{ XA_FILE_AIR15, 4 },
{ XA_FILE_AIR15, 5 },
{ XA_FILE_AIR15, 6 },
{ XA_FILE_AIR15, 7 },
{ XA_FILE_AIR15, 8 },
{ XA_FILE_AIR15, 9 },
{ XA_FILE_AIR15, 10 },
{ XA_FILE_AIR15, 11 },
{ XA_FILE_AIR15, 0 },
{ XA_FILE_AIR15, 1 },
{ XA_FILE_AIR15, 2 },
{ XA_FILE_AIR15, 3 },
{ XA_FILE_AIR15, 4 },
{ XA_FILE_AIR15, 5 },
{ XA_FILE_AIR15, 6 },
{ XA_FILE_AIR15, 7 },
{ XA_FILE_AIR15, 8 },
{ XA_FILE_AIR15, 9 },
{ XA_FILE_AIR15, 10 },
{ XA_FILE_AIR16, 11 },
{ XA_FILE_AIR16, 0 },
{ XA_FILE_AIR16, 1 },
{ XA_FILE_AIR16, 2 },
{ XA_FILE_AIR16, 3 },
{ XA_FILE_AIR16, 4 },
{ XA_FILE_AIR16, 5 },
{ XA_FILE_AIR16, 6 },
{ XA_FILE_AIR16, 7 },
{ XA_FILE_AIR16, 8 },
{ XA_FILE_AIR16, 9 },
{ XA_FILE_AIR16, 10 },
{ XA_FILE_AIR17, 11 },
{ XA_FILE_AIR17, 0 },
{ XA_FILE_AIR17, 1 },
{ XA_FILE_AIR17, 2 },
{ XA_FILE_AIR17, 3 },
{ XA_FILE_AIR17, 4 },
{ XA_FILE_AIR17, 5 },
{ XA_FILE_AIR17, 6 },
{ XA_FILE_AIR17, 7 },
{ XA_FILE_AIR17, 8 },
{ XA_FILE_AIR17, 9 },
{ XA_FILE_AIR17, 10 },
};
#define START_SCRIPT_BASE 0
#define START_SCRIPT_NUM 1
#define SELECT_LEVEL_SCRIPT_BASE 1
#define SELECT_LEVEL_SCRIPT_NUM 1
#define INIT_PLAY_DEMO_SCRIPT_BASE 2
#define INIT_PLAY_DEMO_SCRIPT_NUM 3
#define CLEAR_DEMO_SCRIPT_BASE 5
#define CLEAR_DEMO_SCRIPT_NUM 1
#define ALL_CLEAR_DEMO_1_SCRIPT_BASE 6
#define ALL_CLEAR_DEMO_1_SCRIPT_NUM 2
#define ALL_CLEAR_DEMO_2_SCRIPT_BASE 8
#define ALL_CLEAR_DEMO_2_SCRIPT_NUM 1
#define FALSE_DEMO_1_SCRIPT_BASE 9
#define FALSE_DEMO_1_SCRIPT_NUM 1
#define FALSE_DEMO_2_SCRIPT_BASE 10
#define FALSE_DEMO_2_SCRIPT_NUM 1
#define TIMEOVER_SCRIPT_BASE 11
#define TIMEOVER_SCRIPT_NUM 1
static SCRIP_DATA AirScript[]=
{
{
0,
NamePlateMinna,
XA_FILE_AIR03,
1,
"初音時06グングン ひこうき。待90終"
},
{
0,
NamePlateMinna,
XA_FILE_AIR00,
10,
"初音時06ひかっている ぶぶんを えらんでね。待240終"
},
{
0,
NamePlateMinna,
XA_FILE_AIR00,
0,
"初音時06いたずらカラスさんに 改みんなの たからものを 改とられちゃった。待120終"
},
{
0,
NamePlateMinna,
XA_FILE_AIR00,
1,
"初音時06どの カラスさんが たからものを 改もっているのかな。待120終"
},
{
0,
NamePlateMinna,
XA_FILE_AIR00,
2,
"初音時06うえに でてくる もんだいの 改こたえが かいてある ふくろを 改もった カラスさんが あやしいぞ!待520終"
},
{
0,
NamePlateMinna,
XA_FILE_AIR02,
7,
"初音時06つぎも がんばるぞ。待120終"
},
{
0,
NamePlateMinna,
XA_FILE_AIR02,
8,
"初音時06きみの おかげで たからものが 改もどったよ。待240終"
},
{
0,
NamePlateMinna,
XA_FILE_AIR02,
9,
"初音時06どうも ありがとう。待240終"
},
{
0,
NamePlateMinna,
XA_FILE_AIR02,
10,
"初音時06なんだか てれるね。待120終"
},
{
0,
NamePlateMinna,
XA_FILE_AIR02,
5,
"初音時06ざんねん にげられてしまった。待120終"
},
{
0,
NamePlateMinna,
XA_FILE_AIR02,
6,
"初音時06つぎはがんばろうよ。待120終"
},
{
0,
NamePlateMinna,
XA_FILE_AIR01,
5,
"初音時06タイムオーバーだ。待90終"
},
};
#ifdef __DEBUG_AIR__
static int DebugDrawClockTask(TASK* ip_task)
{
static int x,y,z,time;
static char* ClockStTable[]={
"CLOCK_00_00",
"CLOCK_00_05",
"CLOCK_00_10",
"CLOCK_00_15",
"CLOCK_00_20",
"CLOCK_00_25",
"CLOCK_00_30",
"CLOCK_00_35",
"CLOCK_00_40",
"CLOCK_00_45",
"CLOCK_00_50",
"CLOCK_00_55",
"CLOCK_01_00",
"CLOCK_01_05",
"CLOCK_01_10",
"CLOCK_01_15",
"CLOCK_01_20",
"CLOCK_01_25",
"CLOCK_01_30",
"CLOCK_01_35",
"CLOCK_01_40",
"CLOCK_01_45",
"CLOCK_01_50",
"CLOCK_01_55",
"CLOCK_02_00",
"CLOCK_02_05",
"CLOCK_02_10",
"CLOCK_02_15",
"CLOCK_02_20",
"CLOCK_02_25",
"CLOCK_02_30",
"CLOCK_02_35",
"CLOCK_02_40",
"CLOCK_02_45",
"CLOCK_02_50",
"CLOCK_02_55",
"CLOCK_03_00",
"CLOCK_03_05",
"CLOCK_03_10",
"CLOCK_03_15",
"CLOCK_03_20",
"CLOCK_03_25",
"CLOCK_03_30",
"CLOCK_03_35",
"CLOCK_03_40",
"CLOCK_03_45",
"CLOCK_03_50",
"CLOCK_03_55",
"CLOCK_04_00",
"CLOCK_04_05",
"CLOCK_04_10",
"CLOCK_04_15",
"CLOCK_04_20",
"CLOCK_04_25",
"CLOCK_04_30",
"CLOCK_04_35",
"CLOCK_04_40",
"CLOCK_04_45",
"CLOCK_04_50",
"CLOCK_04_55",
"CLOCK_05_00",
"CLOCK_05_05",
"CLOCK_05_10",
"CLOCK_05_15",
"CLOCK_05_20",
"CLOCK_05_25",
"CLOCK_05_30",
"CLOCK_05_35",
"CLOCK_05_40",
"CLOCK_05_45",
"CLOCK_05_50",
"CLOCK_05_55",
"CLOCK_06_00",
"CLOCK_06_05",
"CLOCK_06_10",
"CLOCK_06_15",
"CLOCK_06_20",
"CLOCK_06_25",
"CLOCK_06_30",
"CLOCK_06_35",
"CLOCK_06_40",
"CLOCK_06_45",
"CLOCK_06_50",
"CLOCK_06_55",
"CLOCK_07_00",
"CLOCK_07_05",
"CLOCK_07_10",
"CLOCK_07_15",
"CLOCK_07_20",
"CLOCK_07_25",
"CLOCK_07_30",
"CLOCK_07_35",
"CLOCK_07_40",
"CLOCK_07_45",
"CLOCK_07_50",
"CLOCK_07_55",
"CLOCK_08_00",
"CLOCK_08_05",
"CLOCK_08_10",
"CLOCK_08_15",
"CLOCK_08_20",
"CLOCK_08_25",
"CLOCK_08_30",
"CLOCK_08_35",
"CLOCK_08_40",
"CLOCK_08_45",
"CLOCK_08_50",
"CLOCK_08_55",
"CLOCK_09_00",
"CLOCK_09_05",
"CLOCK_09_10",
"CLOCK_09_15",
"CLOCK_09_20",
"CLOCK_09_25",
"CLOCK_09_30",
"CLOCK_09_35",
"CLOCK_09_40",
"CLOCK_09_45",
"CLOCK_09_50",
"CLOCK_09_55",
"CLOCK_10_00",
"CLOCK_10_05",
"CLOCK_10_10",
"CLOCK_10_15",
"CLOCK_10_20",
"CLOCK_10_25",
"CLOCK_10_30",
"CLOCK_10_35",
"CLOCK_10_40",
"CLOCK_10_45",
"CLOCK_10_50",
"CLOCK_10_55",
"CLOCK_11_00",
"CLOCK_11_05",
"CLOCK_11_10",
"CLOCK_11_15",
"CLOCK_11_20",
"CLOCK_11_25",
"CLOCK_11_30",
"CLOCK_11_35",
"CLOCK_11_40",
"CLOCK_11_45",
"CLOCK_11_50",
"CLOCK_11_55",
};
switch( ip_task->mode )
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
if((file_read(AirGameTextureFile[0].fn,LoadAddress)) == -1)
{
return FALSE;
}
TexInit( AIR_GAME_TIM_NUM, &AirGameTextureImage[AIR_GAME_TIM_POS] );
TimImgData = AirGameTextureImage;
EntrySprite( AirGameSpriteData );
time = 0;
x=100;
y=100;
z=100;
GameMgr.FadeFlag = FadeIn;
break;
case TASK_MODE_MAIN:
if(JstPad & PADLup){
if(--time<0) time=143;
}else
if(JstPad & PADLdown){
if(++time>=144) time=0;
}else{
}
FntPrint("[%s]-[%3d]",ClockStTable[time],time);
DrawClock(time,x,y,z);
break;
case TASK_MODE_EXIT:
break;
default:
}
}
#endif
int Air(GAMEMGR * ip_GameMgr)
{
SPRITE_DATA SpData;
TASK Task;
static int counter=0;
switch( ip_GameMgr->SubMode )
{
case INIT:
InitSprite();
InitTaskMgr();
srand(ip_GameMgr->Timer);
SfileRead2(AIR_SOUNDFILE);
HelpInit();
GameMgr.WaitFlag = ON;
AGameMgr.PlayLevel = 0;
AGameMgr.Level = ip_GameMgr->Level[GAME_AIRP];
AGameMgr.Timer = TIMER_NUM;
AGameMgr.TimerDiv = TIMER_NUM_DIV;
AGameMgr.SelectLevelFlag = 1;
AGameMgr.TimeUpSignal = 0;
AGameMgr.TimeUpFlag = 0;
AGameMgr.ClearFlag = 0;
AGameMgr.ClearTimer = 0;
AGameMgr.ClearEnd = 0;
AGameMgr.AllClearFlag = 0;
AGameMgr.ExitFlag = 0;
AGameMgr.Air.ContinueFlag = 0;
#ifdef __DEBUG_AIR__
if( NewPad & PADL1 && NewPad & PADR1)
{
Task.func = DebugDrawClockTask;
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 = "DebugDrawClockTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
}else
if( NewPad & PADL1 )
{
Task.func = DebugGameSpriteTask;
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 = "DebugGameSpriteTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
}else
if(NewPad & PADL2){
Task.func = DebugEventSpriteTask;
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 = "DebugEventSpriteTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
}else
if( (NewPad & PADR1) && (NewPad & PADR2) ){
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 = 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(NewPad & PADR2){
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
{
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 = 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);
#endif
ip_GameMgr->SubMode = MAIN;
break;
case MAIN:
FntPrint("");
#ifdef __DEBUG_AIR__
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("Script-Flag:[%d]",AGameMgr.Script.Flag);
#endif
ExecuteTask();
TransSprite();
SpraitControl();
if(AGameMgr.ExitFlag) ip_GameMgr->SubMode = EXIT;
break;
case EXIT:
ip_GameMgr->Level[GAME_AIRP] = AGameMgr.Level;
SpraitCharClr();
SpraitControl();
GameMgr.WaitFlag = ON;
ssStopAll();
ssCloseVab();
ip_GameMgr->MainMode = MAIN_MODE_TOP_MENU;
ip_GameMgr->SubMode = INIT;
break;
default:
break;
}
return TRUE;
}
static int GameControllTask(TASK* ip_task)
{
SPRITE_DATA SpData;
TASK Task;
ANSWER Answer;
int i;
switch( ip_task->mode )
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
if((file_read(AirGameTextureFile[0].fn,LoadAddress)) == -1)
{
return FALSE;
}
TexInit( AIR_GAME_TIM_NUM, &AirGameTextureImage[AIR_GAME_TIM_POS] );
TimImgData = AirGameTextureImage;
EntrySprite( AirGameSpriteData );
AGameMgr.TimeUpSignal = 0;
AGameMgr.TimeUpFlag = 0;
AGameMgr.ClearFlag = 0;
AGameMgr.ClearTimer = 0;
AGameMgr.ClearEnd = 0;
AGameMgr.AllClearFlag = 0;
#ifdef __DEBUG_ALL_QUESTION_AIR__
AGameMgr.Question.Num = 0;
#else
AGameMgr.Question.Num = rand() % AIR_GAME_MAX_KIND_NUM;
#endif
AGameMgr.Question.Index = 0;
AGameMgr.Question.ClearNum = 0;
AGameMgr.Question.TextFlag = 0;
ssPlayBgm(AIR_BGM_00);
GameMgr.FadeFlag = FadeIn;
Task.func = BgTask;
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 = "BgTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
Task.func = AirTask;
Task.priority = TASK_NO_GAME_AIR;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_AIR;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "AirTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
Task.func = QuizTask;
Task.priority = TASK_NO_GAME_QUIZ;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_QUIZ;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "QuizTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
Task.func = EnemyTask;
Task.priority = TASK_NO_GAME_ENEMY;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_ENEMY;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "EnemyTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
Task.func = CrowTask;
Task.priority = TASK_NO_GAME_CROW;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_CROW;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "CrowTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
Task.func = EffectTask;
Task.priority = TASK_NO_GAME_EFFECT;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_EFFECT;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "EffectTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
#ifndef __DEBUG_ALL_QUESTION_AIR__
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);
#endif
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 = 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);
SleepTask(TASK_NO_GAME_CROW);
SleepTask(TASK_NO_GAME_ENEMY);
SleepTask(TASK_NO_GAME_EFFECT);
SleepTask(TASK_NO_GAME_TIMER);
SleepTask(TASK_NO_GAME_PAUSE);
break;
case TASK_MODE_MAIN:
#ifdef __DEBUG_AIR__
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("LEVEL=%d/PLAY_LEVEL=%d\n",AGameMgr.Level,AGameMgr.PlayLevel);
FntPrint("QINDEX=%d\n",AGameMgr.Question.Index);
FntPrint("QNUM=%d\n",AGameMgr.Question.Num);
FntPrint("ANS=");
for(i=0;i<3;i++)
{
GetAnswerData( QuestionTopData[AGameMgr.PlayLevel][AGameMgr.Question.Num][AGameMgr.Question.Index].Kind,
QuestionTopData[AGameMgr.PlayLevel][AGameMgr.Question.Num][AGameMgr.Question.Index].No,
i,&Answer);
FntPrint("%d", Answer.Flag);
}
#endif
#ifdef __DEBUG_ALL_QUESTION_AIR__
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("\n");
FntPrint("LEVEL=%d/PLAY_LEVEL=%d\n",AGameMgr.Level,AGameMgr.PlayLevel);
FntPrint("QINDEX=%d\n",AGameMgr.Question.Index);
FntPrint("QNUM=%d\n",AGameMgr.Question.Num);
FntPrint("ANS=");
for(i=0;i<3;i++)
{
GetAnswerData( QuestionTopData[AGameMgr.PlayLevel][AGameMgr.Question.Num][AGameMgr.Question.Index].Kind,
QuestionTopData[AGameMgr.PlayLevel][AGameMgr.Question.Num][AGameMgr.Question.Index].No,
i,&Answer);
FntPrint("%d", Answer.Flag);
}
FntPrint("\n");
#endif
if( AGameMgr.ClearEnd || AGameMgr.TimeUpFlag ) ip_task->mode = TASK_MODE_EXIT;
break;
case TASK_MODE_EXIT:
RemoveTask(TASK_NO_GAME_BG);
RemoveTask(TASK_NO_GAME_AIR);
RemoveTask(TASK_NO_GAME_QUIZ);
RemoveTask(TASK_NO_GAME_CROW);
RemoveTask(TASK_NO_GAME_ENEMY);
RemoveTask(TASK_NO_GAME_EFFECT);
RemoveTask(TASK_NO_GAME_TIMER);
RemoveTask(TASK_NO_GAME_PAUSE);
ChangeTaskMode(TASK_NO_GAME_SCRIPT,TASK_MODE_EXIT);
ReleaseSprite();
ssStopBgm(AIR_BGM_00);
SpraitCharClr();
if(AGameMgr.AllClearFlag)
{
Task.func = AllClearEventTask;
Task.priority = TASK_NO_GAME_EVENT;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_EVENT;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "AllClearEventTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
}else
if(AGameMgr.ClearFlag)
{
Task.func = ClearEventTask;
Task.priority = TASK_NO_GAME_EVENT;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_EVENT;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "ClearEventTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
}else if(AGameMgr.TimeUpFlag)
{
Task.func = FalseEventTask;
Task.priority = TASK_NO_GAME_EVENT;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_EVENT;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "FalseEventTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
}else
{
}
ExitTask(ip_task->id);
break;
default:
}
return TRUE;
}
#define L_OFFSET_Y -14
static int SelectLevelTask(TASK* ip_task)
{
static int SelectNumTable[]={
AIR_CHAR_LEVEL_SELECT_01,
AIR_CHAR_LEVEL_SELECT_02,
AIR_CHAR_LEVEL_SELECT_03
};
SPRITE_DATA SpData;
TASK Task;
int i,j;
switch(ip_task->mode)
{
case TASK_MODE_INIT:
SpraitCharSet(&GaidoLevelSpControl00[0], NULL);
ip_task->mode = TASK_MODE_MAIN;
AGameMgr.PlayLevel = 0;
AGameMgr.Air.ContinueFlag = 0;
AGameMgr.SelectLevel.Mode = AIR_GAME_SELECT_LEVEL_MODE_01;
AGameMgr.SelectLevel.Timer = 0;
AGameMgr.SelectLevel.BlockNo = 0;
AGameMgr.SelectLevel.BlockWt = 0;
AGameMgr.SelectLevel.KeteiWt = 0;
AGameMgr.SelectLevel.KeteiFlushIndex = 0;
AGameMgr.SelectLevel.KeteiFlushWt = 0;
AGameMgr.SelectLevel.AnmIndex = 0;
AGameMgr.SelectLevel.AnmNo = 0;
AGameMgr.SelectLevel.AnmWt = 0;
AGameMgr.SelectLevel.AnmBase = 0;
AGameMgr.SelectLevel.PosX = 0;
AGameMgr.SelectLevel.PosY = 0;
AGameMgr.SelectLevel.WaitFlag = 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_1;
Task.user[1] = SELECT_LEVEL_SCRIPT_BASE;
Task.user[2] = SELECT_LEVEL_SCRIPT_NUM;
CreateTask(&Task);
break;
case TASK_MODE_MAIN:
SsinScriptFlag = AGameMgr.Script.Flag;
switch(AGameMgr.SelectLevel.Mode)
{
case AIR_GAME_SELECT_LEVEL_MODE_00:
break;
case AIR_GAME_SELECT_LEVEL_MODE_01:
if(!AGameMgr.Script.Flag){
if(JstPad & PADLright)
{
ssPlaySe(BUTONSE_LEVER);
if(++AGameMgr.PlayLevel>AGameMgr.Level){
AGameMgr.PlayLevel=0;
}
}else
if(JstPad & PADLleft){
ssPlaySe(BUTONSE_LEVER);
if(--AGameMgr.PlayLevel<0){
AGameMgr.PlayLevel=AGameMgr.Level;
}
}else{
}
if(JstPad & PADRright)
{
AGameMgr.SelectLevel.Mode = AIR_GAME_SELECT_LEVEL_MODE_02;
ssPlaySe(BUTONSE_MARU);
ChangeTaskMode(TASK_NO_GAME_SCRIPT,TASK_MODE_EXIT);
}
}
if( ++AGameMgr.SelectLevel.BlockWt > AIR_GAME_SELECT_LEVEL_FLUSH_ANM_TIME)
{
AGameMgr.SelectLevel.BlockWt=0;
if(++AGameMgr.SelectLevel.BlockNo > AIR_GAME_MAX_LEVEL_NUM)
{
AGameMgr.SelectLevel.BlockNo=0;
}
}
for(i=0;i<AGameMgr.Level+1;i++){
for(j=0;j<3;j++){
if(j>i) continue;
if(AGameMgr.SelectLevel.BlockNo <= j) continue;
SpData.No = AIR_CHAR_LEVEL_SELECT_BLOCK;
SpData.PosX = LEVEL_SELECT_BLOCK_POSX + LEVEL_SELECT_BLOCK_KKX * i;
SpData.PosY = LEVEL_SELECT_BLOCK_POSY - LEVEL_SELECT_BLOCK_KKY * j;
SpData.PosZ = PRIORITY_EFFECT-2;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
}
break;
case AIR_GAME_SELECT_LEVEL_MODE_02:
if(!AGameMgr.SelectLevel.WaitFlag){
if(++AGameMgr.SelectLevel.KeteiWt > AIR_GAME_SELECT_LEVEL_KETEI_WAIT_TIME)
{
ip_task->mode = TASK_MODE_EXIT;
}
}
if( ++AGameMgr.SelectLevel.KeteiFlushWt > AIR_GAME_SELECT_LEVEL_KETEI_FLUSH_TIME ){
AGameMgr.SelectLevel.KeteiFlushWt = 0;
AGameMgr.SelectLevel.KeteiFlushIndex^=1;
}
if(AGameMgr.SelectLevel.KeteiFlushIndex){
for(i=0;i<3;i++){
if(AGameMgr.PlayLevel>=i){
SpData.No = AIR_CHAR_LEVEL_SELECT_BLOCK;
SpData.PosX = LEVEL_SELECT_BLOCK_POSX + LEVEL_SELECT_BLOCK_KKX * AGameMgr.PlayLevel;
SpData.PosY = LEVEL_SELECT_BLOCK_POSY - LEVEL_SELECT_BLOCK_KKY * i;
SpData.PosZ = PRIORITY_EFFECT-2;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
}
}
break;
default:
}
SpData.No = AIR_CHAR_LEVEL_SELECT_CURSOR;
SpData.PosX = LEVEL_SELECT_BLOCK_POSX + AGameMgr.PlayLevel * LEVEL_SELECT_BLOCK_KKX - 1;
SpData.PosY = LEVEL_SELECT_NUM_POSY - 5 - LEVEL_SELECT_BLOCK_KKY * AGameMgr.PlayLevel;
SpData.PosZ = PRIORITY_EFFECT-2;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
for(i=0;i<AGameMgr.Level+1;i++){
SpData.No = SelectNumTable[i];
SpData.PosX = LEVEL_SELECT_NUM_POSX + LEVEL_SELECT_BLOCK_KKX * i;
SpData.PosY = LEVEL_SELECT_NUM_POSY - LEVEL_SELECT_BLOCK_KKY * i;
SpData.PosZ = PRIORITY_EFFECT-2;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
SpData.No = AIR_CHAR_LEVEL_SELECT_PLATE;
SpData.PosX = LEVEL_SELECT_PLATE_POSX;
SpData.PosY = LEVEL_SELECT_PLATE_POSY;
SpData.PosZ = PRIORITY_EFFECT;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
break;
case TASK_MODE_EXIT:
MetuseijiFlag=OFF;
Task.func = WishTask;
Task.priority = TASK_NO_GAME_WISH;
Task.attribute = ATTR_USER;
Task.status = TASK_NEW_ENTRY;
Task.id = TASK_NO_GAME_WISH;
Task.wait_time = 0;
Task.buf = NULL;
Task.name = "WishTask";
Task.mode = TASK_MODE_INIT;
CreateTask(&Task);
ExitTask(ip_task->id);
break;
default:
}
return TRUE;
}
static int WishTask(TASK* ip_task)
{
SPRITE_DATA SpData;
TASK Task;
switch( ip_task->mode )
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
ip_task->user[0] = GET_DA_STATUS_WAIT_TIME*4;
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_3;
Task.user[1] = INIT_PLAY_DEMO_SCRIPT_BASE;
Task.user[2] = INIT_PLAY_DEMO_SCRIPT_NUM;
CreateTask(&Task);
break;
case TASK_MODE_MAIN:
if(!AGameMgr.Script.Flag){
if( --ip_task->user[0]<=0){
if(dSoundStatus == DslStatStandby){
ip_task->mode = TASK_MODE_EXIT;
}
}
}
SpData.No = AIR_CHAR_HELP_PANEL;
SpData.PosX = (320-128)/2;
SpData.PosY = (240-128)/2+16;
SpData.PosZ = PRIORITY_EFFECT;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
break;
case TASK_MODE_EXIT:
MetuseijiFlag=OFF;
if(AGameMgr.SelectLevelFlag)
{
WakeupTask(TASK_NO_GAME_CROW);
WakeupTask(TASK_NO_GAME_ENEMY);
WakeupTask(TASK_NO_GAME_EFFECT);
WakeupTask(TASK_NO_GAME_TIMER);
WakeupTask(TASK_NO_GAME_PAUSE);
}
AGameMgr.Air.ControllFlag = 1;
AGameMgr.Question.TextFlag = 1;
GaidoInit();
ExitTask(ip_task->id);
break;
default:
}
}
static int TimerTask(TASK* ip_task)
{
SPRITE_DATA SpData;
TASK Task;
int i;
switch( ip_task->mode )
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
AGameMgr.Timer = TIMER_NUM;
AGameMgr.TimerDiv = TIMER_NUM_DIV;
ip_task->user[0] = 0;
ip_task->user[1] = 0;
break;
case TASK_MODE_MAIN:
switch(ip_task->user[0])
{
case 0:
if(--AGameMgr.TimerDiv < 0){
AGameMgr.TimerDiv=TIMER_NUM_DIV;
if(--AGameMgr.Timer<=0)
{
GameMgr.WaitFlag = ON;
AGameMgr.TimeUpSignal=1;
ip_task->user[0] = 1;
dsPlayXa(XA_FILE_AIR21,0);
ip_task->user[1] = GET_DA_STATUS_WAIT_TIME*3;
RemoveTask(TASK_NO_GAME_PAUSE);
}
}
break;
case 1:
if(--ip_task->user[1]<=0){
if(dSoundStatus == DslStatStandby){
ip_task->user[0] = 2;
ip_task->user[1] = GET_DA_STATUS_WAIT_TIME*3;
dsPlayXa(XA_FILE_AIR01,5);
}
}
break;
case 2:
if(--ip_task->user[1]<=0){
if(dSoundStatus == DslStatStandby){
ip_task->mode=TASK_MODE_EXIT;
}
}
break;
default:
}
DrawNo(AGameMgr.Timer,TIMER_STR_WIDE,TimerNoTable,TIMER_POS_X,TIMER_POS_Y,PRIORITY_QUIZ_TIME_COUNTER);
break;
case TASK_MODE_EXIT:
AGameMgr.TimeUpFlag = 1;
ExitTask(ip_task->id);
break;
default:
}
return TRUE;
}
static int PauseTask(TASK* ip_task)
{
SPRITE_DATA SpData;
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_TIMER );
SleepTask( TASK_NO_GAME_AIR );
SleepTask( TASK_NO_GAME_CROW );
SleepTask( TASK_NO_GAME_ENEMY );
SleepTask( TASK_NO_GAME_QUIZ );
SleepTask( TASK_NO_GAME_EFFECT );
}else{
}
}else
{
ret = MainMenuCheck10();
if(ret==OFF)
{
ip_task->user[0] = 0;
WakeupTask( TASK_NO_GAME_TIMER );
WakeupTask( TASK_NO_GAME_AIR );
WakeupTask( TASK_NO_GAME_CROW );
WakeupTask( TASK_NO_GAME_ENEMY );
WakeupTask( TASK_NO_GAME_QUIZ );
WakeupTask( TASK_NO_GAME_EFFECT );
}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 AirTask(TASK* ip_task)
{
static int WaitAnmTable[] = { AIR_CHAR_GUNGUN_00, AIR_CHAR_GUNGUN_01 };
static int TrueAnmTable[] = { AIR_CHAR_GUNGUN_02, AIR_CHAR_GUNGUN_03 };
static int FalseAnmTable[] = { AIR_CHAR_GUNGUN_08, AIR_CHAR_GUNGUN_08 };
static int DamageAnmTable[] = { AIR_CHAR_GUNGUN_04, AIR_CHAR_GUNGUN_05 };
static int ShotSeTable[] = { AIR_SE_00,AIR_SE_01,AIR_SE_02 };
static int TrueSoundTable[] = { AIR_SE_05,AIR_SE_06,AIR_SE_07 };
static int FalseSoundTable[]= { AIR_SE_10,AIR_SE_11,AIR_SE_12 };
SPRITE_DATA SpData;
TASK Task;
int i,eindex,qresult;
int randval;
int shotsound,truesound,falsesound;
switch( ip_task->mode )
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
AGameMgr.Air.Body.MoveCount = 0;
AGameMgr.Air.Body.Status = AIR_APPEAR;
AGameMgr.Air.Body.OPos.x = AIR_OFFSET_X;
AGameMgr.Air.Body.OPos.y = AIR_OFFSET_Y;
AGameMgr.Air.Body.OPos.z = AIR_OFFSET_Z;
AGameMgr.Air.Body.Pos.x = AIR_POS_INIT_X;
AGameMgr.Air.Body.Pos.y = AIR_POS_LINE_02_INIT_Y;
AGameMgr.Air.Body.Pos.z = PRIORITY_AIR;
AGameMgr.Air.Body.Anm.Data.no = AIR_CHAR_GUNGUN_00;
AGameMgr.Air.Body.Anm.Data.wt = 0;
AGameMgr.Air.Body.Anm.Index = 0;
AGameMgr.Air.Body.Spd.wx = 0;
AGameMgr.Air.Body.Spd.wy = 0;
AGameMgr.Air.Body.Spd.dx = 0;
AGameMgr.Air.Body.Spd.dy = 0;
AGameMgr.Air.Body.Spd.sx = 0;
AGameMgr.Air.Body.Spd.sy = AIR_MOVE_SPEED_Y;
AGameMgr.Air.Line = BASE_ALINE_02;
AGameMgr.Air.Time = 0;
AGameMgr.Air.ItemIndex = 0;
AGameMgr.Air.ItemNo = 0;
AGameMgr.Air.DustNo = 0;
AGameMgr.Air.ItemOPx = 0;
AGameMgr.Air.ItemOPy = 0;
AGameMgr.Air.DustOPx = 0;
AGameMgr.Air.DustOPy = 0;
if(AGameMgr.Air.ContinueFlag)
{
AGameMgr.Air.ControllFlag=1;
}else
{
AGameMgr.Air.ControllFlag=0;
}
AGameMgr.Air.Hand.MoveCount = 0;
AGameMgr.Air.Hand.Status = HAND_NONE;
AGameMgr.Air.Hand.OPos.x = AIR_HAND_OFFSET_X;
AGameMgr.Air.Hand.OPos.y = AIR_HAND_OFFSET_Y;
AGameMgr.Air.Hand.OPos.z = AIR_HAND_OFFSET_Z;
AGameMgr.Air.Hand.Pos.x = 0;
AGameMgr.Air.Hand.Pos.y = 0;
AGameMgr.Air.Hand.Pos.z = PRIORITY_AIR_HAND;
AGameMgr.Air.Hand.Anm.Data.no = AIR_CHAR_HAND_PA;
AGameMgr.Air.Hand.Anm.Data.wt = 0;
AGameMgr.Air.Hand.Anm.Index = 0;
AGameMgr.Air.Hand.Spd.wx = 0;
AGameMgr.Air.Hand.Spd.wy = 0;
AGameMgr.Air.Hand.Spd.dx = 0;
AGameMgr.Air.Hand.Spd.dy = 0;
AGameMgr.Air.Hand.Spd.sx = AIR_HAND_MOVE_SPEED_X;
AGameMgr.Air.Hand.Spd.sy = 0;
break;
case TASK_MODE_MAIN:
switch( AGameMgr.Air.Body.Status )
{
case AIR_APPEAR:
AGameMgr.Air.Body.Status = AIR_WAIT;
break;
case AIR_WAIT:
AGameMgr.Air.Body.MoveCount = 0;
if( CheckHitAirToEnemy() )
{
AGameMgr.Air.Body.Status = AIR_DAMAGE;
AGameMgr.Air.Time = AIR_DAMAGE_TIMER;
AGameMgr.Air.Body.Anm.Data.no = DamageAnmTable[0];
AGameMgr.Air.Body.Anm.Index = 0;
AGameMgr.Air.Body.Anm.Data.wt = AIR_DAMAGE_ANM_CHANGE_TIME;
AGameMgr.Enemy.Body.Status = ENEMY_MOVE_CRASH;
AGameMgr.Enemy.Flag = 0;
CreateEffect(AIR_EFFECT_CRUSH,AGameMgr.Air.Body.Pos.x + AIR_SMOKE_OFFSET_X, AGameMgr.Air.Body.Pos.y + AIR_SMOKE_OFFSET_Y,PRIORITY_EFFECT_2);
ssPlaySe(AIR_SE_04);
ssPlaySe(AIR_SE_17);
}else
{
if( --AGameMgr.Air.Body.Anm.Data.wt < 0 )
{
AGameMgr.Air.Body.Anm.Index ^= 1;
AGameMgr.Air.Body.Anm.Data.wt = AIR_DAMAGE_ANM_CHANGE_TIME;
}
AGameMgr.Air.Body.Anm.Data.no = WaitAnmTable[AGameMgr.Air.Body.Anm.Index];
if(!AGameMgr.ClearFlag)
{
if(AGameMgr.Air.ControllFlag)
{
if( JstPad & PADRright )
{
AGameMgr.Air.Body.Status = AIR_CATCH_GOING;
AGameMgr.Air.Hand.Anm.Data.no = AIR_CHAR_HAND_PA;
AGameMgr.Air.Hand.Status = HAND_CATCH_GOING;
AGameMgr.Air.Hand.Pos.x = AGameMgr.Air.Body.Pos.x + AIR_HAND_POS_OFFSET_X;
AGameMgr.Air.Hand.Pos.y = AGameMgr.Air.Body.Pos.y + AIR_HAND_POS_OFFSET_Y;
AGameMgr.Air.Hand.MoveCount = 0;
shotsound = rand() % 3;
ssPlaySe( ShotSeTable[shotsound] );
ssPlaySe(AIR_SE_15);
}else
if( JstPad & PADLup )
{
if(AGameMgr.Air.Line != BASE_ALINE_01)
{
AGameMgr.Air.Body.Status = AIR_MOVE_UP;
AGameMgr.Air.Body.Anm.Data.no = AIR_CHAR_GUNGUN_07;
ssPlaySe(AIR_SE_13);
}
}else
if( JstPad & PADLdown )
{
if(AGameMgr.Air.Line != BASE_ALINE_03)
{
AGameMgr.Air.Body.Status = AIR_MOVE_DOWN;
AGameMgr.Air.Body.Anm.Data.no = AIR_CHAR_GUNGUN_06;
ssPlaySe(AIR_SE_13);
}
}else
{
}
}
}
}
break;
case AIR_MOVE_UP:
if( ++AGameMgr.Air.Body.MoveCount < AIR_MOVE_COUNT_Y )
{
AGameMgr.Air.Body.Pos.y -= AGameMgr.Air.Body.Spd.sy;
}else
{
AGameMgr.Air.Body.Status = AIR_WAIT;
if(--AGameMgr.Air.Line < BASE_ALINE_01 ) AGameMgr.Air.Line = BASE_ALINE_01;
AGameMgr.Air.Body.Pos.y = LinePosYTbl[AGameMgr.Air.Line];
AGameMgr.Air.Body.Anm.Data.no = AIR_CHAR_GUNGUN_00;
}
break;
case AIR_MOVE_DOWN:
if( ++AGameMgr.Air.Body.MoveCount < AIR_MOVE_COUNT_Y )
{
AGameMgr.Air.Body.Pos.y += AGameMgr.Air.Body.Spd.sy;
}else
{
AGameMgr.Air.Body.Status = AIR_WAIT;
if(++AGameMgr.Air.Line > BASE_ALINE_03 ) AGameMgr.Air.Line = BASE_ALINE_03;
AGameMgr.Air.Body.Pos.y = LinePosYTbl[AGameMgr.Air.Line];
AGameMgr.Air.Body.Anm.Data.no = AIR_CHAR_GUNGUN_00;
}
break;
case AIR_CATCH_GOING:
if( --AGameMgr.Air.Body.Anm.Data.wt < 0 )
{
AGameMgr.Air.Body.Anm.Index ^= 1;
AGameMgr.Air.Body.Anm.Data.wt = AIR_DAMAGE_ANM_CHANGE_TIME;
}
AGameMgr.Air.Body.Anm.Data.no = WaitAnmTable[AGameMgr.Air.Body.Anm.Index];
if( CheckHitHandToPanel(&eindex,&qresult) )
{
ssPlaySe(AIR_SE_19);
if(qresult)
{
AGameMgr.Air.Body.Status = AIR_QUIZ_OK;
AGameMgr.Air.Hand.Status = HAND_CATCH_RETURN;
AGameMgr.Air.Hand.Anm.Data.no = AIR_CHAR_HAND_GU;
AGameMgr.Air.ItemNo = GetItemTable[AGameMgr.Air.ItemIndex].EffectNo;
AGameMgr.Air.ItemOPx = GetItemTable[AGameMgr.Air.ItemIndex].OPx;
AGameMgr.Air.ItemOPy = GetItemTable[AGameMgr.Air.ItemIndex].OPy;
if(++AGameMgr.Air.ItemIndex>MAX_ITEM_NUM-1) AGameMgr.Air.ItemIndex = MAX_ITEM_NUM-1;
CreateEffect(AIR_EFFECT_MARU, AGameMgr.Air.Body.Pos.x + RESULT_MARK_OFFSET_X, AGameMgr.Air.Body.Pos.y + RESULT_MARK_OFFSET_Y, PRIORITY_EFFECT_2);
CreateEffect(AIR_EFFECT_ONNPU, AGameMgr.Air.Body.Pos.x + FEELING_MARK_OFFSET_X, AGameMgr.Air.Body.Pos.y + FEELING_MARK_OFFSET_Y, PRIORITY_EFFECT_2);
AGameMgr.Enemy.Body.Status = ENEMY_DEATH_WAIT;
AGameMgr.Enemy.Body.Pos.x = EVEMY_BIRTH_POS_X;
AGameMgr.Enemy.Time = EnemyDeathWaitTable[AGameMgr.PlayLevel];
if(AGameMgr.Timer>0)
{
if(++AGameMgr.Question.ClearNum >= MAX_QUESTION_CLEAR_NUM)
{
GameMgr.WaitFlag = ON;
AGameMgr.Question.ClearNum = MAX_QUESTION_CLEAR_NUM;
#ifndef __DEBUG_ALL_QUESTION_AIR__
RemoveTask(TASK_NO_GAME_TIMER);
RemoveTask(TASK_NO_GAME_PAUSE);
AGameMgr.ClearFlag=1;
dsPlayXa(XA_FILE_AIR02,4);
#endif
}
}
for(i=0;i<MAX_CROW_NUM;i++)
{
AGameMgr.Crow[i].Flag = 0;
AGameMgr.Crow[i].Body.Status = CROW_SURPRISE;
AGameMgr.Crow[i].Panel.Anm.Data.wt = CROW_FUKURO_FLUSH_TIME;
AGameMgr.Crow[i].Time = CROW_SURPRISE_WAIT_TIME;
if(i==eindex){
AGameMgr.Crow[i].AnmBase = CROW_ANM_BASE_SUPRISE;
AGameMgr.Crow[i].CheckPanel = 1;
}else{
AGameMgr.Crow[i].AnmBase = CROW_ANM_BASE_FLY;
}
}
ssPlaySe(AIR_SE_16);
truesound = rand() % 3;
ssPlaySe(TrueSoundTable[truesound]);
ssPlaySe(AIR_SE_08);
}else
{
AGameMgr.Air.Body.Status = AIR_QUIZ_NG;
AGameMgr.Air.Hand.Status = HAND_CATCH_RETURN;
AGameMgr.Air.Hand.Anm.Data.no = AIR_CHAR_HAND_GU;
randval = rand() % MAX_DUST_NUM;
AGameMgr.Air.DustNo = GetDustTable[randval].EffectNo;
AGameMgr.Air.DustOPx = GetDustTable[randval].OPx;
AGameMgr.Air.DustOPy = GetDustTable[randval].OPy;
CreateEffect(AIR_EFFECT_BATSU, AGameMgr.Air.Body.Pos.x + RESULT_MARK_OFFSET_X, AGameMgr.Air.Body.Pos.y + RESULT_MARK_OFFSET_Y ,PRIORITY_EFFECT_2);
CreateEffect(AIR_EFFECT_ASE, AGameMgr.Air.Body.Pos.x + FEELING_MARK_OFFSET_X, AGameMgr.Air.Body.Pos.y + FEELING_MARK_OFFSET_Y ,PRIORITY_EFFECT_2);
AGameMgr.Enemy.Body.Status = ENEMY_DEATH_WAIT;
AGameMgr.Enemy.Body.Pos.x = EVEMY_BIRTH_POS_X;
AGameMgr.Enemy.Time = EnemyDeathWaitTable[AGameMgr.PlayLevel];
AGameMgr.Crow[eindex].Flag = 0;
AGameMgr.Crow[eindex].Body.Status = CROW_SURPRISE;
AGameMgr.Crow[eindex].Panel.Anm.Data.wt = CROW_FUKURO_FLUSH_TIME;
AGameMgr.Crow[eindex].Time = CROW_SURPRISE_WAIT_TIME;
AGameMgr.Crow[eindex].Body.Anm.Index = 0;
AGameMgr.Crow[eindex].Body.Anm.Data.wt = 0;
AGameMgr.Crow[eindex].AnmBase = CROW_ANM_BASE_SUPRISE;
AGameMgr.Crow[eindex].CheckPanel = 1;
falsesound = rand() % 3;
ssPlaySe(FalseSoundTable[falsesound]);
ssPlaySe(AIR_SE_08);
}
}
else if( CheckHitHandToEnemy() )
{
ssPlaySe(AIR_SE_14);
AGameMgr.Air.Body.Status = AIR_CATCH_RETURN;
AGameMgr.Air.Hand.Status = HAND_CATCH_RETURN;
}else if( JstPad & PADRright )
{
ssPlaySe(AIR_SE_14);
AGameMgr.Air.Body.Status = AIR_CATCH_RETURN;
AGameMgr.Air.Hand.Status = HAND_CATCH_RETURN;
}else
{
if( ++AGameMgr.Air.Hand.MoveCount < AIR_HAND_MOVE_COUNT_X ){
AGameMgr.Air.Hand.Pos.x += AGameMgr.Air.Hand.Spd.sx;
}else{
AGameMgr.Air.Body.Status = AIR_CATCH_RETURN;
AGameMgr.Air.Hand.Status = HAND_CATCH_RETURN;
}
}
break;
case AIR_CATCH_RETURN:
if( --AGameMgr.Air.Body.Anm.Data.wt < 0 )
{
AGameMgr.Air.Body.Anm.Index ^= 1;
AGameMgr.Air.Body.Anm.Data.wt = AIR_DAMAGE_ANM_CHANGE_TIME;
}
AGameMgr.Air.Body.Anm.Data.no = WaitAnmTable[AGameMgr.Air.Body.Anm.Index];
if( --AGameMgr.Air.Hand.MoveCount > 0 ){
AGameMgr.Air.Hand.Pos.x -= AGameMgr.Air.Hand.Spd.sx;
}else{
AGameMgr.Air.Hand.Pos.x = AGameMgr.Air.Body.Pos.x + AIR_HAND_POS_OFFSET_X;
AGameMgr.Air.Hand.MoveCount=0;
AGameMgr.Air.Body.Status = AIR_WAIT;
}
break;
case AIR_DAMAGE:
if( --AGameMgr.Air.Time < 0)
{
AGameMgr.Air.Body.Status = AIR_WAIT;
AGameMgr.Air.Body.Anm.Data.no = WaitAnmTable[0];
}else
{
if( --AGameMgr.Air.Body.Anm.Data.wt < 0)
{
AGameMgr.Air.Body.Anm.Index ^= 1;
AGameMgr.Air.Body.Anm.Data.wt = AIR_DAMAGE_ANM_CHANGE_TIME;
}
}
AGameMgr.Air.Body.Anm.Data.no = DamageAnmTable[AGameMgr.Air.Body.Anm.Index];
break;
case AIR_QUIZ_OK:
if( --AGameMgr.Air.Body.Anm.Data.wt < 0 )
{
AGameMgr.Air.Body.Anm.Index ^= 1;
AGameMgr.Air.Body.Anm.Data.wt = AIR_TRUE_ANM_CHANGE_TIME;
}
AGameMgr.Air.Body.Anm.Data.no = TrueAnmTable[AGameMgr.Air.Body.Anm.Index];
if( --AGameMgr.Air.Hand.MoveCount > 0 ){
AGameMgr.Air.Hand.Pos.x -= AGameMgr.Air.Hand.Spd.sx;
}else{
AGameMgr.Air.Hand.Pos.x = AGameMgr.Air.Body.Pos.x + AIR_HAND_POS_OFFSET_X;
AGameMgr.Air.Hand.MoveCount=0;
AGameMgr.Air.Body.Status = AIR_WAIT;
}
break;
case AIR_QUIZ_NG:
if( --AGameMgr.Air.Body.Anm.Data.wt < 0 )
{
AGameMgr.Air.Body.Anm.Index ^= 1;
AGameMgr.Air.Body.Anm.Data.wt = AIR_FALSE_ANM_CHANGE_TIME;
}
AGameMgr.Air.Body.Anm.Data.no = FalseAnmTable[AGameMgr.Air.Body.Anm.Index];
if( --AGameMgr.Air.Hand.MoveCount > 0 ){
AGameMgr.Air.Hand.Pos.x -= AGameMgr.Air.Hand.Spd.sx;
}else{
AGameMgr.Air.Hand.Pos.x = AGameMgr.Air.Body.Pos.x + AIR_HAND_POS_OFFSET_X;
AGameMgr.Air.Hand.MoveCount=0;
AGameMgr.Air.Body.Status = AIR_WAIT;
}
break;
case AIR_CLEAR:
if( --AGameMgr.Air.Body.Anm.Data.wt < 0 )
{
AGameMgr.Air.Body.Anm.Index ^= 1;
AGameMgr.Air.Body.Anm.Data.wt = AIR_TRUE_ANM_CHANGE_TIME;
}
AGameMgr.Air.Body.Anm.Data.no = WaitAnmTable[AGameMgr.Air.Body.Anm.Index];
AGameMgr.ClearTimer++;
if((AGameMgr.ClearTimer%15)==0)
{
CreateEffect(AIR_EFFECT_SMOKE,AGameMgr.Air.Body.Pos.x - 25, AGameMgr.Air.Body.Pos.y+8,PRIORITY_EFFECT_2);
}
AGameMgr.Air.Body.Pos.x += 2;
if(AGameMgr.Air.Body.Pos.x>400)
{
AGameMgr.ClearEnd = 1;
}
break;
case AIR_TIMEUP:
break;
default:
}
if( AGameMgr.Air.Body.Status==AIR_CATCH_GOING ||
AGameMgr.Air.Body.Status==AIR_CATCH_RETURN ||
AGameMgr.Air.Body.Status==AIR_QUIZ_OK ||
AGameMgr.Air.Body.Status==AIR_QUIZ_NG){
SpData.No = AGameMgr.Air.Hand.Anm.Data.no;
SpData.PosX = AGameMgr.Air.Hand.Pos.x - AGameMgr.Air.Hand.OPos.x;
SpData.PosY = AGameMgr.Air.Hand.Pos.y - AGameMgr.Air.Hand.OPos.y;
SpData.PosZ = PRIORITY_AIR_HAND;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
DrawArm( AGameMgr.Air.Hand.MoveCount*AIR_HAND_MOVE_SPEED_X+AIR_ARM_LENGTH_OFFSET_X, AGameMgr.Air.Body.Pos.x+AIR_ARM_OFFSET_X, AGameMgr.Air.Body.Pos.y+AIR_ARM_OFFSET_Y );
if( AGameMgr.Air.Body.Status==AIR_QUIZ_OK )
{
CreateEffect(AGameMgr.Air.ItemNo, AGameMgr. Air.Hand.Pos.x + AGameMgr.Air.ItemOPx, AGameMgr.Air.Hand.Pos.y+AGameMgr.Air.ItemOPy,PRIORITY_EFFECT);
}else if( AGameMgr.Air.Body.Status==AIR_QUIZ_NG )
{
CreateEffect(AGameMgr.Air.DustNo, AGameMgr.Air.Hand.Pos.x + AGameMgr.Air.DustOPx, AGameMgr.Air.Hand.Pos.y + AGameMgr.Air.DustOPy,PRIORITY_EFFECT);
}else
{
}
}
SpData.No = AGameMgr.Air.Body.Anm.Data.no;
SpData.PosX = AGameMgr.Air.Body.Pos.x - AGameMgr.Air.Body.OPos.x;
if(AGameMgr.Air.Body.Anm.Data.no==AIR_CHAR_GUNGUN_08) SpData.PosY = AGameMgr.Air.Body.Pos.y - AGameMgr.Air.Body.OPos.y + 2;
else SpData.PosY = AGameMgr.Air.Body.Pos.y - AGameMgr.Air.Body.OPos.y;
SpData.PosZ = AGameMgr.Air.Body.Pos.z;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
break;
case TASK_MODE_EXIT:
break;
default:
}
}
static int BgTask(TASK* ip_task)
{
int i,addx;
SPRITE_DATA SpData;
static int MountainPtnTbl[MOUNTAIN_NUM]={
0,1,0,1,0,1,0,1,0,1,
};
static int MountainSizeW[]={
MOUNTAIN_01_SIZE_W-1,
MOUNTAIN_00_SIZE_W,
};
switch( ip_task->mode )
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
ip_task->user[BG_TASK_COUNTER] = 0;
ip_task->user[BG_TASK_MOUNTASIN_BASE_X] = MOUNTASIN_INIT_X;
ip_task->user[BG_TASK_CLOUD_LARGE_POS_X] = COLUD_LARGE_INIT_X;
ip_task->user[BG_TASK_CLOUD_MIDDLE_POS_X] = COLUD_MIDDLE_INIT_X;
ip_task->user[BG_TASK_CLOUD_SMALL_POS_X] = COLUD_SMALL_INIT_X;
break;
case TASK_MODE_MAIN:
ip_task->user[BG_TASK_COUNTER]++;
addx = 0;
for(i=0;i<MOUNTAIN_NUM;i++)
{
addx += MountainSizeW[ MountainPtnTbl[i] ];
SpData.No = AIR_CHAR_MOUNTAIN_00 + MountainPtnTbl[i];
SpData.PosX = ip_task->user[BG_TASK_MOUNTASIN_BASE_X] + addx;
if( SpData.PosX > -320 && SpData.PosX < 340 ){
SpData.PosY = MOUNTAIN_POS_Y;
SpData.PosZ = PRIORITY_MOUNTAIN;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
}
if(ip_task->user[BG_TASK_MOUNTASIN_BASE_X] <= MOUNTASIN_INIT_X - 327 )
{
ip_task->user[BG_TASK_MOUNTASIN_BASE_X] = MOUNTASIN_INIT_X;
}
if( (ip_task->user[BG_TASK_COUNTER] % DIV_MOUNTAIN_SPD_X) == 0 ){
ip_task->user[BG_TASK_MOUNTASIN_BASE_X] -= MOUNTAIN_SPD_X;
}
SpData.No = AIR_CHAR_CLOUD_LARGE;
SpData.PosX = ip_task->user[BG_TASK_CLOUD_LARGE_POS_X];
SpData.PosY = CLOUD_LARGE_POS_Y;
SpData.PosZ = PRIORITY_CLOUD_LARGE;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
if( (ip_task->user[BG_TASK_COUNTER] % DIV_CLOUD_LARGE_SPD_X)==0 ){
ip_task->user[BG_TASK_CLOUD_LARGE_POS_X] -= CLOUD_LARGE_SPD_X;
}
if( ip_task->user[BG_TASK_CLOUD_LARGE_POS_X] < COLUD_LARGE_OUT_X){
ip_task->user[BG_TASK_CLOUD_LARGE_POS_X] = COLUD_LARGE_INIT_X;
}
SpData.No = AIR_CHAR_CLOUD_MIDDLE;
SpData.PosX = ip_task->user[BG_TASK_CLOUD_MIDDLE_POS_X];
SpData.PosY = CLOUD_MIDDLE_POS_Y;
SpData.PosZ = PRIORITY_CLOUD_MIDDLE;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
if( (ip_task->user[BG_TASK_COUNTER] % DIV_CLOUD_MIDDLE_SPD_X)==0 ){
ip_task->user[BG_TASK_CLOUD_MIDDLE_POS_X] -= CLOUD_MIDDLE_SPD_X;
}
if( ip_task->user[BG_TASK_CLOUD_MIDDLE_POS_X] < COLUD_MIDDLE_OUT_X){
ip_task->user[BG_TASK_CLOUD_MIDDLE_POS_X] = COLUD_MIDDLE_INIT_X;
}
SpData.No = AIR_CHAR_CLOUD_SMALL;
SpData.PosX = ip_task->user[BG_TASK_CLOUD_SMALL_POS_X];
SpData.PosY = CLOUD_SMALL_POS_Y;
SpData.PosZ = PRIORITY_CLOUD_SMALL;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
if( (ip_task->user[BG_TASK_COUNTER] % DIV_CLOUD_SMALL_SPD_X)==0 ){
ip_task->user[BG_TASK_CLOUD_SMALL_POS_X] -= CLOUD_SMALL_SPD_X;
}
if( ip_task->user[BG_TASK_CLOUD_SMALL_POS_X] < COLUD_SMALL_OUT_X){
ip_task->user[BG_TASK_CLOUD_SMALL_POS_X] = COLUD_SMALL_INIT_X;
}
SpData.No = AIR_CHAR_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 = AIR_CHAR_GAME_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:
break;
default:
}
return TRUE;
}
static int QuizTask( TASK* ip_task )
{
static int lnum=0;
static int qindex=0;
int i;
SPRITE_DATA SpData;
TASK Task;
switch( ip_task->mode )
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
break;
case TASK_MODE_MAIN:
if(AGameMgr.Question.TextFlag)
{
DrawQuestionText( QuestionTopData[AGameMgr.PlayLevel][AGameMgr.Question.Num][AGameMgr.Question.Index].Kind,
QuestionTopData[AGameMgr.PlayLevel][AGameMgr.Question.Num][AGameMgr.Question.Index].No );
}
DrawCorrectAnswerNo(AGameMgr.Question.ClearNum, 218, 29);
SpData.No = AIR_CHAR_QUESTION_PLATE_LEFT;
SpData.PosX = 16;
SpData.PosY = 0;
SpData.PosZ = PRIORITY_QUIZ_PANEL;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
for(i=0;i<23;i++)
{
SpData.No = AIR_CHAR_QUESTION_PLATE_CENTER;
SpData.PosX = 32 + i*8;
SpData.PosY = 0;
SpData.PosZ = PRIORITY_QUIZ_PANEL;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
SpData.No = AIR_CHAR_QUESTION_PLATE_RIGHT;
SpData.PosX = 216;
SpData.PosY = 0;
SpData.PosZ = PRIORITY_QUIZ_PANEL;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
break;
case TASK_MODE_EXIT:
break;
default:
}
return TRUE;
}
static int CrowTask(TASK* ip_task)
{
int i;
SPRITE_DATA SpData;
ANSWER Answer;
int Xaflag;
switch(ip_task->mode)
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
for(i=0;i<MAX_CROW_NUM;i++)
{
AGameMgr.Crow[i].Body.MoveCount = 0;
AGameMgr.Crow[i].Body.Status = CROW_BIRTH;
AGameMgr.Crow[i].Body.OPos.x = 26;
AGameMgr.Crow[i].Body.OPos.y = 23;
AGameMgr.Crow[i].Body.OPos.z = 0;
AGameMgr.Crow[i].Body.Pos.x = CROW_BIRTH_POS_X;
AGameMgr.Crow[i].Body.Pos.y = LinePosYTbl[i];
AGameMgr.Crow[i].Body.Pos.z = PRIORITY_CROW;
AGameMgr.Crow[i].Body.Anm.Data.no = AIR_CHAR_CROW_01;
AGameMgr.Crow[i].Body.Anm.Data.wt = 0;
AGameMgr.Crow[i].Body.Anm.Index = 0;
AGameMgr.Crow[i].Body.Spd.wx = 0;
AGameMgr.Crow[i].Body.Spd.wy = 0;
AGameMgr.Crow[i].Body.Spd.dx = 0;
AGameMgr.Crow[i].Body.Spd.dy = 0;
AGameMgr.Crow[i].Body.Spd.sx = CROW_SPEED_X;
AGameMgr.Crow[i].Body.Spd.sy = 0;
GetAnswerData( QuestionTopData[AGameMgr.PlayLevel][AGameMgr.Question.Num][AGameMgr.Question.Index].Kind,
QuestionTopData[AGameMgr.PlayLevel][AGameMgr.Question.Num][AGameMgr.Question.Index].No,
i,&Answer);
AGameMgr.Crow[i].Ans.QuestionData.Kind = Answer.QuestionData.Kind;
AGameMgr.Crow[i].Ans.QuestionData.No = Answer.QuestionData.No;
AGameMgr.Crow[i].Ans.Flag = Answer.Flag;
AGameMgr.Crow[i].Ans.QuestionData.Attr = Answer.QuestionData.Attr;
AGameMgr.Crow[i].AnmBase = CROW_ANM_BASE_FLY;
AGameMgr.Crow[i].Flag = 0;
AGameMgr.Crow[i].Line = LineTbl[i];
AGameMgr.Crow[i].Time = 0;
AGameMgr.Crow[i].Panel.MoveCount = 0;
AGameMgr.Crow[i].Panel.Status = CROW_BIRTH;
AGameMgr.Crow[i].Panel.OPos.x = 20;
AGameMgr.Crow[i].Panel.OPos.y = 34;
AGameMgr.Crow[i].Panel.OPos.z = 0;
AGameMgr.Crow[i].Panel.Pos.x = 0;
AGameMgr.Crow[i].Panel.Pos.y = LinePosYTbl[i];
AGameMgr.Crow[i].Panel.Pos.z = PRIORITY_CROW_PANEL;
AGameMgr.Crow[i].Panel.Anm.Data.no = AIR_CHAR_FUKURO;
AGameMgr.Crow[i].Panel.Anm.Data.wt = 0;
AGameMgr.Crow[i].Panel.Anm.Index = 1;
AGameMgr.Crow[i].Panel.Spd.wx = 0;
AGameMgr.Crow[i].Panel.Spd.wy = 0;
AGameMgr.Crow[i].Panel.Spd.dx = 0;
AGameMgr.Crow[i].Panel.Spd.dy = 0;
AGameMgr.Crow[i].Panel.Spd.sx = CROW_FUKURO_SPEED_X;
AGameMgr.Crow[i].Panel.Spd.sy = 0;
AGameMgr.Crow[i].CheckPanel = 0;
}
ssPlaySe(AIR_SE_18);
PlayQuestion( QuestionTopData[AGameMgr.PlayLevel][AGameMgr.Question.Num][AGameMgr.Question.Index].Kind,
QuestionTopData[AGameMgr.PlayLevel][AGameMgr.Question.Num][AGameMgr.Question.Index].No);
break;
case TASK_MODE_MAIN:
Xaflag = 0;
for(i=0;i<MAX_CROW_NUM;i++)
{
switch(AGameMgr.Crow[i].Body.Status)
{
case CROW_BIRTH:
AGameMgr.Crow[i].Body.Status=CROW_APPEAR;
AGameMgr.Crow[i].Flag = 1;
break;
case CROW_APPEAR:
AGameMgr.Crow[i].Body.Pos.x-=AGameMgr.Crow[i].Body.Spd.sx;
if(AGameMgr.Crow[i].Body.Pos.x < CROW_WAIT_POS_X)
{
AGameMgr.Crow[i].Body.Pos.x=CROW_WAIT_POS_X;
AGameMgr.Crow[i].Body.Status=CROW_WAIT;
}
break;
case CROW_WAIT:
break;
case CROW_SURPRISE:
if(--AGameMgr.Crow[i].Time < 0 )
{
if(AGameMgr.Crow[i].Ans.Flag)
{
AGameMgr.Crow[i].Body.Status = CROW_OK_RETURN;
AGameMgr.Crow[i].AnmBase = CROW_ANM_BASE_FLY;
}else
{
AGameMgr.Crow[i].Body.Status = CROW_RETURN;
AGameMgr.Crow[i].AnmBase = CROW_ANM_BASE_FLY;
}
AGameMgr.Crow[i].Panel.Anm.Index=1;
}
break;
case CROW_OK_RETURN:
case CROW_RETURN:
AGameMgr.Crow[i].Body.Pos.x+=AGameMgr.Crow[i].Body.Spd.sx;
if(AGameMgr.Crow[i].Body.Pos.x > CROW_BIRTH_POS_X)
{
AGameMgr.Crow[i].Body.Pos.x=CROW_BIRTH_POS_X;
AGameMgr.Crow[i].Body.Status=CROW_DEATH_WAIT;
if(AGameMgr.Crow[i].Ans.Flag==1)
{
if(AGameMgr.TimeUpSignal){
AGameMgr.Crow[i].Body.Status=CROW_TIMEUP;
}else{
ip_task->mode = TASK_MODE_INIT;
}
if(++AGameMgr.Question.Index>MAX_QUESTION_NUM-1)
{
if(AGameMgr.ClearFlag)
{
AGameMgr.Air.Body.Status = AIR_CLEAR;
if(++AGameMgr.PlayLevel>AIR_GAME_MAX_LEVEL_NUM-1){
AGameMgr.PlayLevel=AIR_GAME_MAX_LEVEL_NUM-1;
AGameMgr.AllClearFlag = 1;
}
if(AGameMgr.PlayLevel>AGameMgr.Level)
{
AGameMgr.Level=AGameMgr.PlayLevel;
}
RemoveTask(TASK_NO_GAME_ENEMY);
RemoveTask(TASK_NO_GAME_QUIZ );
ExitTask(ip_task->id);
}
AGameMgr.Question.Index = MAX_QUESTION_NUM-1;
}
}
AGameMgr.Crow[i].Flag=0;
}
break;
case CROW_DEATH_WAIT:
break;
case CROW_DEATH:
AGameMgr.Crow[i].Body.Status=CROW_BIRTH;
break;
case CROW_TIMEUP:
break;
default:
}
if(AGameMgr.Crow[i].Body.Status==CROW_APPEAR ||
AGameMgr.Crow[i].Body.Status==CROW_WAIT ||
AGameMgr.Crow[i].Body.Status==CROW_SURPRISE ||
AGameMgr.Crow[i].Body.Status==CROW_OK_RETURN ||
AGameMgr.Crow[i].Body.Status==CROW_RETURN ||
AGameMgr.Crow[i].Body.Status==CROW_TIMEUP )
{
if(AGameMgr.Crow[i].Body.Status==CROW_SURPRISE)
{
if(AGameMgr.Crow[i].Body.Anm.Data.no==AIR_CHAR_CROW_00)
{
if(--AGameMgr.Crow[i].Panel.Anm.Data.wt<0)
{
AGameMgr.Crow[i].Panel.Anm.Index^=1;
AGameMgr.Crow[i].Panel.Anm.Data.wt=CROW_FUKURO_FLUSH_TIME;
}
}
}
if(AGameMgr.Crow[i].Panel.Anm.Index)
{
if( !((AGameMgr.Crow[i].Body.Status==CROW_OK_RETURN || AGameMgr.Crow[i].Body.Status==CROW_RETURN) && AGameMgr.Crow[i].CheckPanel ) )
{
AGameMgr.Crow[i].Panel.Pos.x = AGameMgr.Crow[i].Body.Pos.x;
AGameMgr.Crow[i].Panel.Pos.x += CROW_FUKURO_OFFSET_X;
AGameMgr.Crow[i].Panel.Pos.y = AGameMgr.Crow[i].Body.Pos.y;
AGameMgr.Crow[i].Panel.Pos.y += CROW_FUKURO_OFFSET_Y;
SpData.No = AGameMgr.Crow[i].Panel.Anm.Data.no;
SpData.PosX = AGameMgr.Crow[i].Panel.Pos.x - AGameMgr.Crow[i].Panel.OPos.x;
SpData.PosY = AGameMgr.Crow[i].Panel.Pos.y - AGameMgr.Crow[i].Panel.OPos.y;
SpData.PosZ = AGameMgr.Crow[i].Panel.Pos.z;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
}
}
if(AGameMgr.Crow[i].Body.Status==CROW_APPEAR ||
AGameMgr.Crow[i].Body.Status==CROW_WAIT ||
AGameMgr.Crow[i].Body.Status==CROW_SURPRISE ||
AGameMgr.Crow[i].Body.Status==CROW_RETURN ||
AGameMgr.Crow[i].Body.Status==CROW_TIMEUP )
{
if( !AGameMgr.Crow[i].CheckPanel )
{
DrawSelectAnswer( &(AGameMgr.Crow[i].Ans.QuestionData),
AGameMgr.Crow[i].Body.Pos.x-52,
AGameMgr.Crow[i].Body.Pos.y+2,
PRIORITY_ANSWER_PANEL );
}
}
if(++AGameMgr.Crow[i].Body.Anm.Data.wt>CROW_ANM_WAIT_TIME){
AGameMgr.Crow[i].Body.Anm.Data.wt = 0;
AGameMgr.Crow[i].Body.Anm.Index ^=1;
}
AGameMgr.Crow[i].Body.Anm.Data.no = CrowSpriteTable[ AGameMgr.Crow[i].AnmBase + AGameMgr.Crow[i].Body.Anm.Index];
SpData.No = AGameMgr.Crow[i].Body.Anm.Data.no;
SpData.PosX = AGameMgr.Crow[i].Body.Pos.x - AGameMgr.Crow[i].Body.OPos.x;
SpData.PosY = AGameMgr.Crow[i].Body.Pos.y - AGameMgr.Crow[i].Body.OPos.y;
SpData.PosZ = AGameMgr.Crow[i].Body.Pos.z;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
break;
case TASK_MODE_EXIT:
break;
default:
}
return TRUE;
}
static int EnemyTask(TASK* ip_task)
{
static int EnemyType[]={
ENEMY_TYPE_FUUSEN,
ENEMY_TYPE_CLOUD,
ENEMY_TYPE_AIRR,
};
static ENEMY_ANM_DATA EnemyAnmData[MAX_ENEMY_NUM][4] =
{
{
{ AIR_CHAR_FUUSEN_00, 24, 18, 20, 0 },
{ AIR_CHAR_FUUSEN_01, 24, 18, 20, 0 },
{ AIR_CHAR_FUUSEN_02, 24, 18, 20, 0 },
{ ANM_REPEAT, 0, 0, 0, 0 },
},
{
{ AIR_CHAR_THUBDER_LARGE, 24, 39, 21, 0 },
{ AIR_CHAR_THUBDER_SMALL, 24, 23, 21, 0 },
{ ANM_REPEAT, 0, 0, 0, 0 },
{ 0,0,0,0,0},
},
{
{ AIR_CHAR_KUMA_00, 24, 27, 20, 0 },
{ AIR_CHAR_KUMA_01, 24, 27, 20, 0 },
{ ANM_REPEAT, 0, 0, 0, 0 },
{ 0,0,0,0,0},
},
};
static int EnemySpeedWaitTable[]={
ENEMY_SPD_X_WAIT_1,
ENEMY_SPD_X_WAIT_0,
ENEMY_SPD_X_WAIT_0,
};
static int EnemySpeedTable[]={
ENEMY_SPD_X_1,
ENEMY_SPD_X_1,
ENEMY_SPD_X_1,
};
SPRITE_DATA SpData;
int eno,lno,i;
switch( ip_task->mode )
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
AGameMgr.Enemy.Body.MoveCount = 0;
AGameMgr.Enemy.Body.Status = ENEMY_BIRTH;
AGameMgr.Enemy.Body.OPos.x = 0;
AGameMgr.Enemy.Body.OPos.y = 0;
AGameMgr.Enemy.Body.OPos.z = 0;
AGameMgr.Enemy.Body.Pos.x = 0;
AGameMgr.Enemy.Body.Pos.y = 0;
AGameMgr.Enemy.Body.Pos.z = 0;
AGameMgr.Enemy.Body.Anm.Data.no = 0;
AGameMgr.Enemy.Body.Anm.Data.wt = 0;
AGameMgr.Enemy.Body.Anm.Index = 0;
AGameMgr.Enemy.Body.Spd.wx = 0;
AGameMgr.Enemy.Body.Spd.wy = 0;
AGameMgr.Enemy.Body.Spd.dx = 0;
AGameMgr.Enemy.Body.Spd.dy = 0;
AGameMgr.Enemy.Body.Spd.sx = 0;
AGameMgr.Enemy.Body.Spd.sy = 0;
AGameMgr.Enemy.Line = 0;
AGameMgr.Enemy.Type = 0;
AGameMgr.Enemy.Time = 0;
AGameMgr.Enemy.Flag = 0;
AGameMgr.Enemy.SpeedWaitCounter = 0;
break;
case TASK_MODE_MAIN:
switch( AGameMgr.Enemy.Body.Status )
{
case ENEMY_BIRTH:
eno = rand() % MAX_ENEMY_NUM;
lno = rand() % MAX_LINE_NUM;
AGameMgr.Enemy.Flag = 1;
AGameMgr.Enemy.Line = lno;
AGameMgr.Enemy.Type = EnemyType[eno];
AGameMgr.Enemy.Time = 0;
AGameMgr.Enemy.SpeedWaitCounter = EnemySpeedWaitTable[AGameMgr.PlayLevel];
AGameMgr.Enemy.Body.MoveCount = 0;
AGameMgr.Enemy.Body.OPos.x = EnemyAnmData[AGameMgr.Enemy.Type][0].OPos.x;
AGameMgr.Enemy.Body.OPos.y = EnemyAnmData[AGameMgr.Enemy.Type][0].OPos.y;
AGameMgr.Enemy.Body.OPos.z = 0;
AGameMgr.Enemy.Body.Pos.x = EVEMY_BIRTH_POS_X;
AGameMgr.Enemy.Body.Pos.y = LinePosYTbl[AGameMgr.Enemy.Line];
AGameMgr.Enemy.Body.Pos.z = PRIORITY_ENEMY;
AGameMgr.Enemy.Body.Anm.Data.no = EnemyAnmData[AGameMgr.Enemy.Type][0].AnmData.no;
AGameMgr.Enemy.Body.Anm.Data.wt = EnemyAnmData[AGameMgr.Enemy.Type][0].AnmData.wt;
AGameMgr.Enemy.Body.Anm.Index = 0;
AGameMgr.Enemy.Body.Spd.wx = 0;
AGameMgr.Enemy.Body.Spd.wy = 0;
AGameMgr.Enemy.Body.Spd.dx = 0;
AGameMgr.Enemy.Body.Spd.dy = 0;
AGameMgr.Enemy.Body.Spd.sx = EnemySpeedTable[AGameMgr.PlayLevel];
AGameMgr.Enemy.Body.Spd.sy = 0;
AGameMgr.Enemy.Body.Status = ENEMY_MOVE_WAIT;
break;
case ENEMY_MOVE_WAIT:
for(i=0;i<3;i++)
{
if(AGameMgr.Crow[i].Ans.Flag==1)
{
if(AGameMgr.Crow[i].Body.Status==CROW_WAIT)
{
AGameMgr.Enemy.Body.Status = ENEMY_MOVE;
}
}
}
break;
case ENEMY_MOVE:
if( --AGameMgr.Enemy.Body.Anm.Data.wt < 0 )
{
if( EnemyAnmData[AGameMgr.Enemy.Type][AGameMgr.Enemy.Body.Anm.Index + 1].AnmData.no == ANM_REPEAT )
{
AGameMgr.Enemy.Body.Anm.Index = 0;
}else
{
AGameMgr.Enemy.Body.Anm.Index++;
}
AGameMgr.Enemy.Body.Anm.Data.wt = EnemyAnmData[AGameMgr.Enemy.Type][AGameMgr.Enemy.Body.Anm.Index].AnmData.wt;
AGameMgr.Enemy.Body.OPos.x = EnemyAnmData[AGameMgr.Enemy.Type][AGameMgr.Enemy.Body.Anm.Index].OPos.x;
AGameMgr.Enemy.Body.OPos.y = EnemyAnmData[AGameMgr.Enemy.Type][AGameMgr.Enemy.Body.Anm.Index].OPos.y;
}
AGameMgr.Enemy.Body.Anm.Data.no = EnemyAnmData[AGameMgr.Enemy.Type][AGameMgr.Enemy.Body.Anm.Index].AnmData.no;
if(--AGameMgr.Enemy.SpeedWaitCounter < 0)
{
AGameMgr.Enemy.SpeedWaitCounter = EnemySpeedWaitTable[AGameMgr.PlayLevel];
AGameMgr.Enemy.Body.Pos.x -= EnemySpeedTable[AGameMgr.PlayLevel];
}
if(AGameMgr.Enemy.Body.Pos.x < EVEMY_DEATH_POS_X )
{
AGameMgr.Enemy.Body.Status = ENEMY_DEATH_WAIT;
AGameMgr.Enemy.Body.Pos.x = EVEMY_BIRTH_POS_X;
AGameMgr.Enemy.Time = EnemyDeathWaitTable[AGameMgr.PlayLevel];
}
break;
case ENEMY_MOVE_CRASH:
AGameMgr.Enemy.Body.Pos.y += ENEMY_CRUSH_SPD_Y;
if( AGameMgr.Enemy.Body.Pos.y > ENEMY_OUT_Y ){
AGameMgr.Enemy.Body.Status = ENEMY_DEATH_WAIT;
AGameMgr.Enemy.Body.Pos.x = EVEMY_BIRTH_POS_X;
AGameMgr.Enemy.Time = EnemyDeathWaitTable[AGameMgr.PlayLevel];
}
break;
case ENEMY_DEATH_WAIT:
if( --AGameMgr.Enemy.Time < 0 ){
AGameMgr.Enemy.Body.Status = ENEMY_DEATH;
}
break;
case ENEMY_DEATH:
AGameMgr.Enemy.Body.Status = ENEMY_BIRTH;
case ENEMY_TIMEUP:
break;
default:
}
SpData.No = AGameMgr.Enemy.Body.Anm.Data.no;
SpData.PosX = AGameMgr.Enemy.Body.Pos.x - AGameMgr.Enemy.Body.OPos.x;
SpData.PosY = AGameMgr.Enemy.Body.Pos.y - AGameMgr.Enemy.Body.OPos.y;
SpData.PosZ = AGameMgr.Enemy.Body.Pos.z;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
break;
case TASK_MODE_EXIT:
break;
default:
}
return TRUE;
}
static int EffectTask(TASK* ip_task)
{
SPRITE_DATA SpData;
int i;
switch( ip_task->mode )
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
for(i=0;i<MAX_EFFECT_NUM;i++){
AGameMgr.Effect.Data[i].Flag = 0;
AGameMgr.Effect.Data[i].No = 0;
AGameMgr.Effect.Data[i].Index = 0;
AGameMgr.Effect.Data[i].Time = 0;
AGameMgr.Effect.Data[i].Px = 0;
AGameMgr.Effect.Data[i].Py = 0;
AGameMgr.Effect.Data[i].Pz = 0;
}
break;
case TASK_MODE_MAIN:
for(i=0;i<MAX_EFFECT_NUM;i++){
if( AGameMgr.Effect.Data[i].Flag )
{
if( --AGameMgr.Effect.Data[i].Time <= 0 )
{
if( EffectEntryTable[ AGameMgr.Effect.Data[i].No + 1 ].No == ANM_STOP )
{
AGameMgr.Effect.Data[i].Flag = 0;
}else if( EffectEntryTable[ AGameMgr.Effect.Data[i].No + 1 ].No == ANM_WAIT )
{
AGameMgr.Effect.Data[i].Time = EffectEntryTable[ AGameMgr.Effect.Data[i].No ].Time;
}else
{
AGameMgr.Effect.Data[i].No++;
AGameMgr.Effect.Data[i].Index = EffectEntryTable[AGameMgr.Effect.Data[i].No].No;
AGameMgr.Effect.Data[i].Time = EffectEntryTable[AGameMgr.Effect.Data[i].No].Time;
AGameMgr.Effect.Data[i].OPx = EffectEntryTable[AGameMgr.Effect.Data[i].No].OPx;
AGameMgr.Effect.Data[i].OPy = EffectEntryTable[AGameMgr.Effect.Data[i].No].OPy;
}
}else
{
}
SpData.No = AGameMgr.Effect.Data[i].Index;
SpData.PosX = AGameMgr.Effect.Data[i].Px - AGameMgr.Effect.Data[i].OPx;
SpData.PosY = AGameMgr.Effect.Data[i].Py - AGameMgr.Effect.Data[i].OPx;
SpData.PosZ = AGameMgr.Effect.Data[i].Pz;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
}
case TASK_MODE_EXIT:
break;
default:
}
return TRUE;
}
static int CreateEffect(int i_no,int i_x,int i_y,int i_z)
{
int i,index;
for(i=0;i<MAX_EFFECT_NUM;i++){
if( !AGameMgr.Effect.Data[i].Flag ){
index=i;
AGameMgr.Effect.Data[i].Flag = 1;
AGameMgr.Effect.Data[i].No = i_no;
AGameMgr.Effect.Data[i].Index = EffectEntryTable[i_no].No;
AGameMgr.Effect.Data[i].Time = EffectEntryTable[i_no].Time;
AGameMgr.Effect.Data[i].Px = i_x;
AGameMgr.Effect.Data[i].Py = i_y;
AGameMgr.Effect.Data[i].Pz = i_z;
AGameMgr.Effect.Data[i].OPx = EffectEntryTable[i_no].OPx;
AGameMgr.Effect.Data[i].OPy = EffectEntryTable[i_no].OPy;
return index;
}
}
return -1;
}
static int CheckHitAirToEnemy(void)
{
if(AGameMgr.Enemy.Flag){
if( AGameMgr.Air.Line == AGameMgr.Enemy.Line )
{
if( ABS(AGameMgr.Enemy.Body.Pos.x - AGameMgr.Air.Body.Pos.x) < ENEMY_HIT_DISTANCE )
{
AGameMgr.Enemy.Flag = 0;
return TRUE;
}
}
}
return FALSE;
}
static int CheckHitHandToEnemy(void)
{
if(AGameMgr.Enemy.Flag){
if( AGameMgr.Air.Line == AGameMgr.Enemy.Line )
{
if( ABS(AGameMgr.Enemy.Body.Pos.x - AGameMgr.Air.Hand.Pos.x) < HIT_DISTANCE_HAND_TO_ENEMY )
{
return TRUE;
}
}
}
return FALSE;
}
static int CheckHitHandToPanel(int* ip_index,int* ip_result)
{
int i;
for(i=0;i<MAX_ENEMY_NUM;i++)
{
if(AGameMgr.Crow[i].Flag)
{
if( AGameMgr.Air.Line == AGameMgr.Crow[i].Line )
{
if( ABS(AGameMgr.Crow[i].Panel.Pos.x - AGameMgr.Air.Hand.Pos.x) < HIT_DISTANCE_HAND_TO_PANEL )
{
*ip_result = AGameMgr.Crow[i].Ans.Flag;
*ip_index = i;
return TRUE;
}
}
}
}
*ip_index=-1;
return FALSE;
}
static void DrawNo(int i_num,int i_wsize,int *ip_numtbl,int i_x,int i_y,int i_z)
{
int i,bx,by;
int numarr[3];
SPRITE_DATA SpData;
if(i_num>999) i_num=999;
if(i_num<0) i_num=0;
numarr[0] = i_num/100;
numarr[1] = (i_num-numarr[0]*100)/10;
numarr[2] = (i_num-numarr[0]*100-numarr[1]*10)/1;
bx=i_x;
by=i_y;
for(i=0;i<3;i++){
if(numarr[i]==0){
if(i==0)
{
bx+=i_wsize;
}else if(i==1)
{
if(i_num<100)
{
bx+=i_wsize;
}else
{
SpData.No = ip_numtbl[0];
SpData.PosX = bx;
SpData.PosY = by;
SpData.PosZ = i_z-i;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
bx+=i_wsize;
}
}else if(i==2)
{
SpData.No = ip_numtbl[0];
SpData.PosX = bx;
SpData.PosY = by;
SpData.PosZ = i_z-i;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
}else{
SpData.No = ip_numtbl[numarr[i]];
SpData.PosX = bx;
SpData.PosY = by;
SpData.PosZ = i_z-i;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
bx+=i_wsize;
}
}
}
static void DrawArm(int i_length,int i_x,int i_y)
{
SPRITE_DATA SpData;
int lengtharr[2];
int i,bx,by;
static int ArmTbl[]={
0,
AIR_CHAR_ARM_WPIXEL_01,
AIR_CHAR_ARM_WPIXEL_02,
AIR_CHAR_ARM_WPIXEL_03,
AIR_CHAR_ARM_WPIXEL_04,
AIR_CHAR_ARM_WPIXEL_05,
AIR_CHAR_ARM_WPIXEL_06,
AIR_CHAR_ARM_WPIXEL_07,
AIR_CHAR_ARM_WPIXEL_08,
AIR_CHAR_ARM_WPIXEL_09,
AIR_CHAR_ARM_WPIXEL_10,
};
if(i_length<0) i_length=0;
lengtharr[0] = i_length/10;
lengtharr[1] = (i_length-lengtharr[0]*10);
bx=i_x;
by=i_y;
for(i=0;i<lengtharr[0];i++)
{
SpData.No = ArmTbl[10];
SpData.PosX = bx;
SpData.PosY = by;
SpData.PosZ = PRIORITY_AIR_ARM;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
bx+=10;
}
if( lengtharr[1] )
{
SpData.No = ArmTbl[ lengtharr[1] ];
SpData.PosX = bx;
SpData.PosY = by;
SpData.PosZ = PRIORITY_AIR_ARM;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
}
static void DrawCorrectAnswerNo(int i_num,int i_x,int i_y)
{
SPRITE_DATA SpData;
int i,j;
static int CorrectAnswerNoTable[]={
AIR_CHAR_QNO_01,
AIR_CHAR_QNO_02,
AIR_CHAR_QNO_03,
AIR_CHAR_QNO_04,
AIR_CHAR_QNO_05,
AIR_CHAR_QNO_06,
AIR_CHAR_QNO_07,
AIR_CHAR_QNO_08,
AIR_CHAR_QNO_09,
AIR_CHAR_QNO_10,
};
for(i=0;i<3;i++){
for(j=0;j<4;j++){
if( (i*4+j) < i_num )
{
SpData.No = CorrectAnswerNoTable[i*4 + j];
SpData.PosX = i_x + j*12;
SpData.PosY = i_y + i*12;
SpData.PosZ = 49;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
}
}
}
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[]=
{
{ AIR_CHAR_NEEDLE_LONG_00, AIR_CHAR_NEEDLE_SHORT_00 },
{ AIR_CHAR_NEEDLE_LONG_01, AIR_CHAR_NEEDLE_SHORT_00 },
{ AIR_CHAR_NEEDLE_LONG_02, AIR_CHAR_NEEDLE_SHORT_00 },
{ AIR_CHAR_NEEDLE_LONG_03, AIR_CHAR_NEEDLE_SHORT_01 },
{ AIR_CHAR_NEEDLE_LONG_04, AIR_CHAR_NEEDLE_SHORT_01 },
{ AIR_CHAR_NEEDLE_LONG_05, AIR_CHAR_NEEDLE_SHORT_01 },
{ AIR_CHAR_NEEDLE_LONG_06, AIR_CHAR_NEEDLE_SHORT_02 },
{ AIR_CHAR_NEEDLE_LONG_07, AIR_CHAR_NEEDLE_SHORT_02 },
{ AIR_CHAR_NEEDLE_LONG_08, AIR_CHAR_NEEDLE_SHORT_02 },
{ AIR_CHAR_NEEDLE_LONG_09, AIR_CHAR_NEEDLE_SHORT_03 },
{ AIR_CHAR_NEEDLE_LONG_10, AIR_CHAR_NEEDLE_SHORT_03 },
{ AIR_CHAR_NEEDLE_LONG_11, AIR_CHAR_NEEDLE_SHORT_03 },
{ AIR_CHAR_NEEDLE_LONG_00, AIR_CHAR_NEEDLE_SHORT_04 },
{ AIR_CHAR_NEEDLE_LONG_01, AIR_CHAR_NEEDLE_SHORT_04 },
{ AIR_CHAR_NEEDLE_LONG_02, AIR_CHAR_NEEDLE_SHORT_04 },
{ AIR_CHAR_NEEDLE_LONG_03, AIR_CHAR_NEEDLE_SHORT_05 },
{ AIR_CHAR_NEEDLE_LONG_04, AIR_CHAR_NEEDLE_SHORT_05 },
{ AIR_CHAR_NEEDLE_LONG_05, AIR_CHAR_NEEDLE_SHORT_05 },
{ AIR_CHAR_NEEDLE_LONG_06, AIR_CHAR_NEEDLE_SHORT_06 },
{ AIR_CHAR_NEEDLE_LONG_07, AIR_CHAR_NEEDLE_SHORT_06 },
{ AIR_CHAR_NEEDLE_LONG_08, AIR_CHAR_NEEDLE_SHORT_06 },
{ AIR_CHAR_NEEDLE_LONG_09, AIR_CHAR_NEEDLE_SHORT_07 },
{ AIR_CHAR_NEEDLE_LONG_10, AIR_CHAR_NEEDLE_SHORT_07 },
{ AIR_CHAR_NEEDLE_LONG_11, AIR_CHAR_NEEDLE_SHORT_07 },
{ AIR_CHAR_NEEDLE_LONG_00, AIR_CHAR_NEEDLE_SHORT_08 },
{ AIR_CHAR_NEEDLE_LONG_01, AIR_CHAR_NEEDLE_SHORT_08 },
{ AIR_CHAR_NEEDLE_LONG_02, AIR_CHAR_NEEDLE_SHORT_08 },
{ AIR_CHAR_NEEDLE_LONG_03, AIR_CHAR_NEEDLE_SHORT_09 },
{ AIR_CHAR_NEEDLE_LONG_04, AIR_CHAR_NEEDLE_SHORT_09 },
{ AIR_CHAR_NEEDLE_LONG_05, AIR_CHAR_NEEDLE_SHORT_09 },
{ AIR_CHAR_NEEDLE_LONG_06, AIR_CHAR_NEEDLE_SHORT_10 },
{ AIR_CHAR_NEEDLE_LONG_07, AIR_CHAR_NEEDLE_SHORT_10 },
{ AIR_CHAR_NEEDLE_LONG_08, AIR_CHAR_NEEDLE_SHORT_10 },
{ AIR_CHAR_NEEDLE_LONG_09, AIR_CHAR_NEEDLE_SHORT_11 },
{ AIR_CHAR_NEEDLE_LONG_10, AIR_CHAR_NEEDLE_SHORT_11 },
{ AIR_CHAR_NEEDLE_LONG_11, AIR_CHAR_NEEDLE_SHORT_11 },
{ AIR_CHAR_NEEDLE_LONG_00, AIR_CHAR_NEEDLE_SHORT_12 },
{ AIR_CHAR_NEEDLE_LONG_01, AIR_CHAR_NEEDLE_SHORT_12 },
{ AIR_CHAR_NEEDLE_LONG_02, AIR_CHAR_NEEDLE_SHORT_12 },
{ AIR_CHAR_NEEDLE_LONG_03, AIR_CHAR_NEEDLE_SHORT_13 },
{ AIR_CHAR_NEEDLE_LONG_04, AIR_CHAR_NEEDLE_SHORT_13 },
{ AIR_CHAR_NEEDLE_LONG_05, AIR_CHAR_NEEDLE_SHORT_13 },
{ AIR_CHAR_NEEDLE_LONG_06, AIR_CHAR_NEEDLE_SHORT_14 },
{ AIR_CHAR_NEEDLE_LONG_07, AIR_CHAR_NEEDLE_SHORT_14 },
{ AIR_CHAR_NEEDLE_LONG_08, AIR_CHAR_NEEDLE_SHORT_14 },
{ AIR_CHAR_NEEDLE_LONG_09, AIR_CHAR_NEEDLE_SHORT_15 },
{ AIR_CHAR_NEEDLE_LONG_10, AIR_CHAR_NEEDLE_SHORT_15 },
{ AIR_CHAR_NEEDLE_LONG_11, AIR_CHAR_NEEDLE_SHORT_15 },
{ AIR_CHAR_NEEDLE_LONG_00, AIR_CHAR_NEEDLE_SHORT_16 },
{ AIR_CHAR_NEEDLE_LONG_01, AIR_CHAR_NEEDLE_SHORT_16 },
{ AIR_CHAR_NEEDLE_LONG_02, AIR_CHAR_NEEDLE_SHORT_16 },
{ AIR_CHAR_NEEDLE_LONG_03, AIR_CHAR_NEEDLE_SHORT_17 },
{ AIR_CHAR_NEEDLE_LONG_04, AIR_CHAR_NEEDLE_SHORT_17 },
{ AIR_CHAR_NEEDLE_LONG_05, AIR_CHAR_NEEDLE_SHORT_17 },
{ AIR_CHAR_NEEDLE_LONG_06, AIR_CHAR_NEEDLE_SHORT_18 },
{ AIR_CHAR_NEEDLE_LONG_07, AIR_CHAR_NEEDLE_SHORT_18 },
{ AIR_CHAR_NEEDLE_LONG_08, AIR_CHAR_NEEDLE_SHORT_18 },
{ AIR_CHAR_NEEDLE_LONG_09, AIR_CHAR_NEEDLE_SHORT_19 },
{ AIR_CHAR_NEEDLE_LONG_10, AIR_CHAR_NEEDLE_SHORT_19 },
{ AIR_CHAR_NEEDLE_LONG_11, AIR_CHAR_NEEDLE_SHORT_19 },
{ AIR_CHAR_NEEDLE_LONG_00, AIR_CHAR_NEEDLE_SHORT_20 },
{ AIR_CHAR_NEEDLE_LONG_01, AIR_CHAR_NEEDLE_SHORT_20 },
{ AIR_CHAR_NEEDLE_LONG_02, AIR_CHAR_NEEDLE_SHORT_20 },
{ AIR_CHAR_NEEDLE_LONG_03, AIR_CHAR_NEEDLE_SHORT_21 },
{ AIR_CHAR_NEEDLE_LONG_04, AIR_CHAR_NEEDLE_SHORT_21 },
{ AIR_CHAR_NEEDLE_LONG_05, AIR_CHAR_NEEDLE_SHORT_21 },
{ AIR_CHAR_NEEDLE_LONG_06, AIR_CHAR_NEEDLE_SHORT_22 },
{ AIR_CHAR_NEEDLE_LONG_07, AIR_CHAR_NEEDLE_SHORT_22 },
{ AIR_CHAR_NEEDLE_LONG_08, AIR_CHAR_NEEDLE_SHORT_22 },
{ AIR_CHAR_NEEDLE_LONG_09, AIR_CHAR_NEEDLE_SHORT_23 },
{ AIR_CHAR_NEEDLE_LONG_10, AIR_CHAR_NEEDLE_SHORT_23 },
{ AIR_CHAR_NEEDLE_LONG_11, AIR_CHAR_NEEDLE_SHORT_23 },
{ AIR_CHAR_NEEDLE_LONG_00, AIR_CHAR_NEEDLE_SHORT_24 },
{ AIR_CHAR_NEEDLE_LONG_01, AIR_CHAR_NEEDLE_SHORT_24 },
{ AIR_CHAR_NEEDLE_LONG_02, AIR_CHAR_NEEDLE_SHORT_24 },
{ AIR_CHAR_NEEDLE_LONG_03, AIR_CHAR_NEEDLE_SHORT_25 },
{ AIR_CHAR_NEEDLE_LONG_04, AIR_CHAR_NEEDLE_SHORT_25 },
{ AIR_CHAR_NEEDLE_LONG_05, AIR_CHAR_NEEDLE_SHORT_25 },
{ AIR_CHAR_NEEDLE_LONG_06, AIR_CHAR_NEEDLE_SHORT_26 },
{ AIR_CHAR_NEEDLE_LONG_07, AIR_CHAR_NEEDLE_SHORT_26 },
{ AIR_CHAR_NEEDLE_LONG_08, AIR_CHAR_NEEDLE_SHORT_26 },
{ AIR_CHAR_NEEDLE_LONG_09, AIR_CHAR_NEEDLE_SHORT_27 },
{ AIR_CHAR_NEEDLE_LONG_10, AIR_CHAR_NEEDLE_SHORT_27 },
{ AIR_CHAR_NEEDLE_LONG_11, AIR_CHAR_NEEDLE_SHORT_27 },
{ AIR_CHAR_NEEDLE_LONG_00, AIR_CHAR_NEEDLE_SHORT_28 },
{ AIR_CHAR_NEEDLE_LONG_01, AIR_CHAR_NEEDLE_SHORT_28 },
{ AIR_CHAR_NEEDLE_LONG_02, AIR_CHAR_NEEDLE_SHORT_28 },
{ AIR_CHAR_NEEDLE_LONG_03, AIR_CHAR_NEEDLE_SHORT_29 },
{ AIR_CHAR_NEEDLE_LONG_04, AIR_CHAR_NEEDLE_SHORT_29 },
{ AIR_CHAR_NEEDLE_LONG_05, AIR_CHAR_NEEDLE_SHORT_29 },
{ AIR_CHAR_NEEDLE_LONG_06, AIR_CHAR_NEEDLE_SHORT_30 },
{ AIR_CHAR_NEEDLE_LONG_07, AIR_CHAR_NEEDLE_SHORT_30 },
{ AIR_CHAR_NEEDLE_LONG_08, AIR_CHAR_NEEDLE_SHORT_30 },
{ AIR_CHAR_NEEDLE_LONG_09, AIR_CHAR_NEEDLE_SHORT_31 },
{ AIR_CHAR_NEEDLE_LONG_10, AIR_CHAR_NEEDLE_SHORT_31 },
{ AIR_CHAR_NEEDLE_LONG_11, AIR_CHAR_NEEDLE_SHORT_31 },
{ AIR_CHAR_NEEDLE_LONG_00, AIR_CHAR_NEEDLE_SHORT_32 },
{ AIR_CHAR_NEEDLE_LONG_01, AIR_CHAR_NEEDLE_SHORT_32 },
{ AIR_CHAR_NEEDLE_LONG_02, AIR_CHAR_NEEDLE_SHORT_32 },
{ AIR_CHAR_NEEDLE_LONG_03, AIR_CHAR_NEEDLE_SHORT_33 },
{ AIR_CHAR_NEEDLE_LONG_04, AIR_CHAR_NEEDLE_SHORT_33 },
{ AIR_CHAR_NEEDLE_LONG_05, AIR_CHAR_NEEDLE_SHORT_33 },
{ AIR_CHAR_NEEDLE_LONG_06, AIR_CHAR_NEEDLE_SHORT_34 },
{ AIR_CHAR_NEEDLE_LONG_07, AIR_CHAR_NEEDLE_SHORT_34 },
{ AIR_CHAR_NEEDLE_LONG_08, AIR_CHAR_NEEDLE_SHORT_34 },
{ AIR_CHAR_NEEDLE_LONG_09, AIR_CHAR_NEEDLE_SHORT_35 },
{ AIR_CHAR_NEEDLE_LONG_10, AIR_CHAR_NEEDLE_SHORT_35 },
{ AIR_CHAR_NEEDLE_LONG_11, AIR_CHAR_NEEDLE_SHORT_35 },
{ AIR_CHAR_NEEDLE_LONG_00, AIR_CHAR_NEEDLE_SHORT_36 },
{ AIR_CHAR_NEEDLE_LONG_01, AIR_CHAR_NEEDLE_SHORT_36 },
{ AIR_CHAR_NEEDLE_LONG_02, AIR_CHAR_NEEDLE_SHORT_36 },
{ AIR_CHAR_NEEDLE_LONG_03, AIR_CHAR_NEEDLE_SHORT_37 },
{ AIR_CHAR_NEEDLE_LONG_04, AIR_CHAR_NEEDLE_SHORT_37 },
{ AIR_CHAR_NEEDLE_LONG_05, AIR_CHAR_NEEDLE_SHORT_37 },
{ AIR_CHAR_NEEDLE_LONG_06, AIR_CHAR_NEEDLE_SHORT_38 },
{ AIR_CHAR_NEEDLE_LONG_07, AIR_CHAR_NEEDLE_SHORT_38 },
{ AIR_CHAR_NEEDLE_LONG_08, AIR_CHAR_NEEDLE_SHORT_38 },
{ AIR_CHAR_NEEDLE_LONG_09, AIR_CHAR_NEEDLE_SHORT_39 },
{ AIR_CHAR_NEEDLE_LONG_10, AIR_CHAR_NEEDLE_SHORT_39 },
{ AIR_CHAR_NEEDLE_LONG_11, AIR_CHAR_NEEDLE_SHORT_39 },
{ AIR_CHAR_NEEDLE_LONG_00, AIR_CHAR_NEEDLE_SHORT_40 },
{ AIR_CHAR_NEEDLE_LONG_01, AIR_CHAR_NEEDLE_SHORT_40 },
{ AIR_CHAR_NEEDLE_LONG_02, AIR_CHAR_NEEDLE_SHORT_40 },
{ AIR_CHAR_NEEDLE_LONG_03, AIR_CHAR_NEEDLE_SHORT_41 },
{ AIR_CHAR_NEEDLE_LONG_04, AIR_CHAR_NEEDLE_SHORT_41 },
{ AIR_CHAR_NEEDLE_LONG_05, AIR_CHAR_NEEDLE_SHORT_41 },
{ AIR_CHAR_NEEDLE_LONG_06, AIR_CHAR_NEEDLE_SHORT_42 },
{ AIR_CHAR_NEEDLE_LONG_07, AIR_CHAR_NEEDLE_SHORT_42 },
{ AIR_CHAR_NEEDLE_LONG_08, AIR_CHAR_NEEDLE_SHORT_42 },
{ AIR_CHAR_NEEDLE_LONG_09, AIR_CHAR_NEEDLE_SHORT_43 },
{ AIR_CHAR_NEEDLE_LONG_10, AIR_CHAR_NEEDLE_SHORT_43 },
{ AIR_CHAR_NEEDLE_LONG_11, AIR_CHAR_NEEDLE_SHORT_43 },
{ AIR_CHAR_NEEDLE_LONG_00, AIR_CHAR_NEEDLE_SHORT_44 },
{ AIR_CHAR_NEEDLE_LONG_01, AIR_CHAR_NEEDLE_SHORT_44 },
{ AIR_CHAR_NEEDLE_LONG_02, AIR_CHAR_NEEDLE_SHORT_44 },
{ AIR_CHAR_NEEDLE_LONG_03, AIR_CHAR_NEEDLE_SHORT_45 },
{ AIR_CHAR_NEEDLE_LONG_04, AIR_CHAR_NEEDLE_SHORT_45 },
{ AIR_CHAR_NEEDLE_LONG_05, AIR_CHAR_NEEDLE_SHORT_45 },
{ AIR_CHAR_NEEDLE_LONG_06, AIR_CHAR_NEEDLE_SHORT_46 },
{ AIR_CHAR_NEEDLE_LONG_07, AIR_CHAR_NEEDLE_SHORT_46 },
{ AIR_CHAR_NEEDLE_LONG_08, AIR_CHAR_NEEDLE_SHORT_46 },
{ AIR_CHAR_NEEDLE_LONG_09, AIR_CHAR_NEEDLE_SHORT_47 },
{ AIR_CHAR_NEEDLE_LONG_10, AIR_CHAR_NEEDLE_SHORT_47 },
{ AIR_CHAR_NEEDLE_LONG_11, AIR_CHAR_NEEDLE_SHORT_47 },
};
SpData.No = AIR_CHAR_CLOCK_PANEL;
SpData.PosX = i_x - 17;
SpData.PosY = i_y - 16;
SpData.PosZ = i_z;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = ClockAngleTable[i_time].tansin;
SpData.PosX = i_x - 17 + 7;
SpData.PosY = i_y - 16 + 6;
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 - 17 + 3;
SpData.PosY = i_y - 16 + 2;
SpData.PosZ = i_z-1;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
static void DrawBall(int i_color ,int i_num,int i_x,int i_y,int i_z)
{
SPRITE_DATA SpData;
int i,j;
static int BallColorTable[]={
AIR_CHAR_BALL_RED,
AIR_CHAR_BALL_ORANGE
};
static int BallPanelTable[]={
AIR_CHAR_PANEL_BLUE_BIG,
AIR_CHAR_PANEL_PINK_BIG
};
for(i=0;i<2;i++){
for(j=0;j<5;j++){
if( (i*5+j) < i_num )
{
SpData.No = BallColorTable[i_color];
SpData.PosX = i_x - 37 + 22 + j*10;
SpData.PosY = i_y - 12 + 3 + i*10;
SpData.PosZ = i_z-1;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
}
}
DrawNo( i_num,
QUESTION_TEXT_WIDE_SMALL,
QuestionTextNoSmallTable,
i_x - 37 - 6,
i_y - 12 + 7,
i_z-1);
SpData.No = BallPanelTable[i_color];
SpData.PosX = i_x - 37;
SpData.PosY = i_y - 12;
SpData.PosZ = i_z;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
static void DrawFruits(int i_kind ,int i_num,int i_x,int i_y,int i_z)
{
SPRITE_DATA SpData;
int i,j;
static int FruitsTable[]={
AIR_CHAR_APPLE,
AIR_CHAR_MIKAN
};
static int FruitsPanelTable[]={
AIR_CHAR_PANEL_BLUE_BIG,
AIR_CHAR_PANEL_PINK_BIG
};
for(i=0;i<2;i++){
for(j=0;j<5;j++){
if( (i*5+j) < i_num )
{
SpData.No = FruitsTable[i_kind];
SpData.PosX = i_x - 37 + 24 + j*9;
SpData.PosY = i_y - 12 + 3 + i*9;
SpData.PosZ = i_z-1;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
}
}
DrawNo( i_num,
QUESTION_TEXT_WIDE_SMALL,
QuestionTextNoSmallTable,
i_x - 37 - 6,
i_y - 12 + 7,
i_z-1);
SpData.No = FruitsPanelTable[i_kind];
SpData.PosX = i_x - 37;
SpData.PosY = i_y - 12;
SpData.PosZ = i_z;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
static void DrawNoPanel(int i_color ,int i_num,int i_x,int i_y,int i_z)
{
SPRITE_DATA SpData;
static int NoPanelTable[]={
AIR_CHAR_PANEL_BLUE_SMALL,
AIR_CHAR_PANEL_PINK_SMALL,
};
DrawNo( i_num,
QUESTION_TEXT_WIDE_LARGE,
QuestionTextNoLargeTable,
i_x - 12 - 8,
i_y - 10 + 2,
i_z-1);
SpData.No = NoPanelTable[i_color];
SpData.PosX = i_x - 12;
SpData.PosY = i_y - 10;
SpData.PosZ = i_z;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
static void DrawNoLarge(int i_num,int i_x,int i_y,int i_z)
{
DrawNo( i_num,
QUESTION_TEXT_WIDE_LARGE,
QuestionTextNoLargeTable,
i_x - 10,
i_y - 8,
i_z);
}
static void DrawNoSmall(int i_num,int i_x,int i_y,int i_z)
{
DrawNo( i_num,
QUESTION_TEXT_WIDE_SMALL,
QuestionTextNoSmallTable,
i_x - 5,
i_y - 5,
i_z);
}
static void DrawSelectAnswer(QUESTION_DATA *ip_q,int i_x,int i_y,int i_z)
{
int i,chkindex;
SPRITE_DATA SpData;
switch(ip_q->Kind)
{
case QUESTION_TEXT_00:
if( ip_q->No < 10 ) DrawNoLarge(ip_q->No,i_x-5,i_y,i_z);
else DrawNoLarge(ip_q->No,i_x, i_y,i_z);
break;
case QUESTION_TEXT_01:
if( ip_q->No < 10 ) DrawNoLarge(ip_q->No,i_x-5, i_y,i_z);
else DrawNoLarge(ip_q->No,i_x, i_y,i_z);
break;
case QUESTION_TEXT_02:
if( ip_q->No < 10 ) DrawNoLarge(ip_q->No,i_x-5, i_y,i_z);
else DrawNoLarge(ip_q->No,i_x, i_y,i_z);
break;
case QUESTION_TEXT_03:
DrawClock(ip_q->No,i_x+8,i_y+1,i_z);
break;
case QUESTION_TEXT_04:
DrawClock(ip_q->No,i_x+8,i_y+1,i_z);
break;
case QUESTION_TEXT_05:
if(ip_q->No!=-1)
{
if(ip_q->Attr==0){
DrawFruits(FRUITS_APPLE,ip_q->No,i_x,i_y,i_z);
}else{
DrawFruits(FRUITS_MIKAN,ip_q->No,i_x,i_y,i_z);
}
}else
{
SpData.No = AIR_CHAR_ONAZI_STR;
SpData.PosX = i_x - 16 + 8;
SpData.PosY = i_y - 5 - 0;
SpData.PosZ = i_z;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
break;
case QUESTION_TEXT_06:
if(ip_q->No!=-1)
{
if(ip_q->Attr==0){
DrawNoPanel(PANEL_COLOR_BLUE,ip_q->No,i_x+9,i_y,i_z);
}else{
DrawNoPanel(PANEL_COLOR_PINK,ip_q->No,i_x+9,i_y,i_z);
}
}else
{
SpData.No = AIR_CHAR_ONAZI_STR;
SpData.PosX = i_x - 16 + 8;
SpData.PosY = i_y - 5 - 0;
SpData.PosZ = i_z;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
break;
default:
}
}
static void DrawQuestionText_00(int *ip_numtable,int i_x,int i_y,int i_z)
{
SPRITE_DATA SpData;
int i,wno;
for(i=0;i<5;i++)
{
if(ip_numtable[i]!=-1)
{
if(ip_numtable[i]<10) DrawNoSmall(ip_numtable[i], i_x+11+i*36 - 6 ,i_y+22,i_z-2);
else DrawNoSmall(ip_numtable[i], i_x+11+i*36 - 2 ,i_y+22,i_z-2);
}else{
wno=i;
}
}
SpData.No = AIR_CHAR_WAKU_RED;
SpData.PosX = i_x + 9 + wno * 36;
SpData.PosY = i_y + 13;
SpData.PosZ = i_z-1;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = AIR_CHAR_QUESTION_TEXT_04;
SpData.PosX = i_x;
SpData.PosY = i_y;
SpData.PosZ = i_z;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
static void DrawQuestionText_01(int *ip_numtable,int i_x,int i_y,int i_z)
{
SPRITE_DATA SpData;
int i;
for(i=0;i<2;i++)
{
DrawNoSmall(ip_numtable[i],i_x-8 + i*36 ,i_y+5,i_z-1);
}
SpData.No = AIR_CHAR_QUESTION_TEXT_01;
SpData.PosX = i_x;
SpData.PosY = i_y;
SpData.PosZ = i_z;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
static void DrawQuestionText_02(int *ip_numtable,int i_x,int i_y,int i_z)
{
SPRITE_DATA SpData;
int i;
for(i=0;i<2;i++)
{
DrawNoSmall(ip_numtable[i],i_x-8 + i*36 ,i_y+5,i_z-1);
}
SpData.No = AIR_CHAR_QUESTION_TEXT_02;
SpData.PosX = i_x;
SpData.PosY = i_y;
SpData.PosZ = i_z;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
static void DrawQuestionText_03(int i_num,int i_x,int i_y,int i_z)
{
SPRITE_DATA SpData;
DrawNoSmall(i_num,i_x-8 ,i_y+5,i_z-1);
SpData.No = AIR_CHAR_QUESTION_TEXT_00;
SpData.PosX = i_x;
SpData.PosY = i_y;
SpData.PosZ = i_z;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
static void DrawQuestionText_04(int *ip_numtable,int i_x,int i_y,int i_z)
{
SPRITE_DATA SpData;
int i;
for(i=0;i<2;i++)
{
DrawNoSmall(ip_numtable[i],i_x + i*34 ,i_y+5,i_z-1);
}
SpData.No = AIR_CHAR_QUESTION_TEXT_05;
SpData.PosX = i_x;
SpData.PosY = i_y;
SpData.PosZ = i_z;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
static void DrawQuestionText_05(int *ip_numtable,int i_x,int i_y,int i_z)
{
static int FruitsKindTable[]={
FRUITS_APPLE,
FRUITS_MIKAN,
};
SPRITE_DATA SpData;
int i;
for(i=0;i<2;i++)
{
DrawFruits(FruitsKindTable[i],ip_numtable[i],i_x+40+i * 90,i_y+26,i_z-1);
}
SpData.No = AIR_CHAR_QUESTION_TEXT_03;
SpData.PosX = i_x;
SpData.PosY = i_y;
SpData.PosZ = i_z;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
static void DrawQuestionText_06(int *ip_numtable,int i_x,int i_y,int i_z)
{
static int ColorTable[]={
PANEL_COLOR_BLUE,
PANEL_COLOR_PINK,
};
SPRITE_DATA SpData;
int i;
for(i=0;i<2;i++)
{
DrawNoPanel(ColorTable[i],ip_numtable[i],i_x + 70 + i * 40,i_y+26,i_z-1);
}
SpData.No = AIR_CHAR_QUESTION_TEXT_03;
SpData.PosX = i_x;
SpData.PosY = i_y;
SpData.PosZ = i_z;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
static void DrawQuestionText(int i_kind,int i_no)
{
switch(i_kind)
{
case QUESTION_TEXT_00:
if(i_no>QUESTION_TEXT_00_NUM-1) i_no=QUESTION_TEXT_00_NUM-1;
DrawQuestionText_00( QuestionText00_Data[i_no].ProblemVal.Data,
QUESTION_TEXT_00_POSX,
QUESTION_TEXT_00_POSY,
PRIORITY_QUIZ_TEXT);
break;
case QUESTION_TEXT_01:
if(i_no>QUESTION_TEXT_01_NUM-1) i_no=QUESTION_TEXT_01_NUM-1;
DrawQuestionText_01( QuestionText01_Data[i_no].ProblemVal.Data,
QUESTION_TEXT_01_POSX,
QUESTION_TEXT_01_POSY,
PRIORITY_QUIZ_TEXT);
break;
case QUESTION_TEXT_02:
if(i_no>QUESTION_TEXT_02_NUM-1) i_no=QUESTION_TEXT_02_NUM-1;
DrawQuestionText_02( QuestionText02_Data[i_no].ProblemVal.Data,
QUESTION_TEXT_02_POSX,
QUESTION_TEXT_02_POSY,
PRIORITY_QUIZ_TEXT);
break;
case QUESTION_TEXT_03:
if(i_no>QUESTION_TEXT_03_NUM-1) i_no=QUESTION_TEXT_03_NUM-1;
DrawQuestionText_03( QuestionText03_Data[i_no].ProblemVal.Data[0],
QUESTION_TEXT_03_POSX,
QUESTION_TEXT_03_POSY,
PRIORITY_QUIZ_TEXT);
break;
case QUESTION_TEXT_04:
if(i_no>QUESTION_TEXT_04_NUM-1) i_no=QUESTION_TEXT_04_NUM-1;
DrawQuestionText_04( QuestionText04_Data[i_no].ProblemVal.Data,
QUESTION_TEXT_04_POSX,
QUESTION_TEXT_04_POSY,
PRIORITY_QUIZ_TEXT);
break;
case QUESTION_TEXT_05:
if(i_no>QUESTION_TEXT_05_NUM-1) i_no=QUESTION_TEXT_05_NUM-1;
DrawQuestionText_05( QuestionText05_Data[i_no].ProblemVal.Data,
QUESTION_TEXT_05_POSX,
QUESTION_TEXT_05_POSY,
PRIORITY_QUIZ_TEXT);
break;
case QUESTION_TEXT_06:
if(i_no>QUESTION_TEXT_06_NUM-1) i_no=QUESTION_TEXT_06_NUM-1;
DrawQuestionText_06( QuestionText06_Data[i_no].ProblemVal.Data,
QUESTION_TEXT_06_POSX,
QUESTION_TEXT_06_POSY,
PRIORITY_QUIZ_TEXT);
break;
default:
}
}
static int GetAnswerData(int i_kind,int i_index, int i_num ,ANSWER * ip_ans)
{
switch(i_kind)
{
case QUESTION_TEXT_00:
if(i_index>QUESTION_TEXT_00_NUM-1) return FALSE;
ip_ans->QuestionData.Kind = QuestionText00_Data[i_index].Kind;
ip_ans->QuestionData.No = QuestionText00_Data[i_index].AnswerVal.Data[i_num].Val;
ip_ans->Flag = QuestionText00_Data[i_index].AnswerVal.Data[i_num].Flag;
ip_ans->QuestionData.Attr = QuestionText00_Data[i_index].AnswerVal.Data[i_num].Attr;
break;
case QUESTION_TEXT_01:
if(i_index>QUESTION_TEXT_01_NUM-1) return FALSE;
ip_ans->QuestionData.Kind = QuestionText01_Data[i_index].Kind;
ip_ans->QuestionData.No = QuestionText01_Data[i_index].AnswerVal.Data[i_num].Val;
ip_ans->Flag = QuestionText01_Data[i_index].AnswerVal.Data[i_num].Flag;
ip_ans->QuestionData.Attr = QuestionText01_Data[i_index].AnswerVal.Data[i_num].Attr;
break;
case QUESTION_TEXT_02:
if(i_index>QUESTION_TEXT_02_NUM-1) return FALSE;
ip_ans->QuestionData.Kind = QuestionText02_Data[i_index].Kind;
ip_ans->QuestionData.No = QuestionText02_Data[i_index].AnswerVal.Data[i_num].Val;
ip_ans->Flag = QuestionText02_Data[i_index].AnswerVal.Data[i_num].Flag;
ip_ans->QuestionData.Attr = QuestionText02_Data[i_index].AnswerVal.Data[i_num].Attr;
break;
case QUESTION_TEXT_03:
if(i_index>QUESTION_TEXT_03_NUM-1) return FALSE;
ip_ans->QuestionData.Kind = QuestionText03_Data[i_index].Kind;
ip_ans->QuestionData.No = QuestionText03_Data[i_index].AnswerVal.Data[i_num].Val;
ip_ans->Flag = QuestionText03_Data[i_index].AnswerVal.Data[i_num].Flag;
ip_ans->QuestionData.Attr = QuestionText03_Data[i_index].AnswerVal.Data[i_num].Attr;
break;
case QUESTION_TEXT_04:
if(i_index>QUESTION_TEXT_04_NUM-1) return FALSE;
ip_ans->QuestionData.Kind = QuestionText04_Data[i_index].Kind;
ip_ans->QuestionData.No = QuestionText04_Data[i_index].AnswerVal.Data[i_num].Val;
ip_ans->Flag = QuestionText04_Data[i_index].AnswerVal.Data[i_num].Flag;
ip_ans->QuestionData.Attr = QuestionText04_Data[i_index].AnswerVal.Data[i_num].Attr;
break;
case QUESTION_TEXT_05:
if(i_index>QUESTION_TEXT_05_NUM-1) return FALSE;
ip_ans->QuestionData.Kind = QuestionText05_Data[i_index].Kind;
ip_ans->QuestionData.No = QuestionText05_Data[i_index].AnswerVal.Data[i_num].Val;
ip_ans->Flag = QuestionText05_Data[i_index].AnswerVal.Data[i_num].Flag;
ip_ans->QuestionData.Attr = QuestionText05_Data[i_index].AnswerVal.Data[i_num].Attr;
break;
case QUESTION_TEXT_06:
if(i_index>QUESTION_TEXT_06_NUM-1) return FALSE;
ip_ans->QuestionData.Kind = QuestionText06_Data[i_index].Kind;
ip_ans->QuestionData.No = QuestionText06_Data[i_index].AnswerVal.Data[i_num].Val;
ip_ans->Flag = QuestionText06_Data[i_index].AnswerVal.Data[i_num].Flag;
ip_ans->QuestionData.Attr = QuestionText06_Data[i_index].AnswerVal.Data[i_num].Attr;
break;
default:
return FALSE;
}
return TRUE;
}
static void PlayQuestion(int i_kind,int i_index)
{
switch(i_kind)
{
case QUESTION_TEXT_00:
dsPlayXa(XA_FILE_AIR19,0);
break;
case QUESTION_TEXT_01:
dsPlayXa( QuestionText01_XA_Data[i_index].FileNo,
QuestionText01_XA_Data[i_index].ChannelNo);
break;
case QUESTION_TEXT_02:
dsPlayXa( QuestionText02_XA_Data[i_index].FileNo,
QuestionText02_XA_Data[i_index].ChannelNo);
break;
case QUESTION_TEXT_03:
dsPlayXa( QuestionText03_XA_Data[i_index].FileNo,
QuestionText03_XA_Data[i_index].ChannelNo);
break;
case QUESTION_TEXT_04:
dsPlayXa( QuestionText04_XA_Data[i_index].FileNo,
QuestionText04_XA_Data[i_index].ChannelNo);
break;
case QUESTION_TEXT_05:
dsPlayXa(XA_FILE_AIR18,0);
break;
case QUESTION_TEXT_06:
dsPlayXa(XA_FILE_AIR18,0);
break;
default:
}
}
static void EventGunGun(int i_type)
{
static EVENT_CHAR GunGun[]={
{ AIR_CHAR_EVENT_GUNGUN_04, 48, 54 + 16 + 16 },
{ AIR_CHAR_EVENT_GUNGUN_05, 58+3, 35 + 10 + 16 },
{ AIR_CHAR_EVENT_GUNGUN_00, 86+1, 63 + 16 + 16 },
{ AIR_CHAR_EVENT_GUNGUN_01, 86, 63 + 16 + 16 },
{ AIR_CHAR_EVENT_GUNGUN_02, 86, 58 + 18 + 16 },
{ AIR_CHAR_EVENT_GUNGUN_03, 86, 58 + 18 + 16 },
};
static EVENT_CHAR GunGunMouse[]={
{ AIR_CHAR_EVENT_GUNGUN_MOUSE_00, 130, 131+ 16 + 16 },
{ AIR_CHAR_EVENT_GUNGUN_MOUSE_01, 130, 131+ 16 + 16 },
{ AIR_CHAR_EVENT_GUNGUN_MOUSE_02, 116, 111+ 8 + 16 },
{ AIR_CHAR_EVENT_GUNGUN_MOUSE_03, 116, 111+ 9 + 16 },
};
static int TereAnmTable[]={2,3};
SPRITE_DATA SpData;
TASK Task;
switch(i_type)
{
case EVENT_CLEAR:
++AGameMgr.Event.GunTimer;
if(!AGameMgr.Event.WaitFlag){
if(AGameMgr.Event.GunTimer>EVENT_CLEAR_GUN_WAIT_TIME)
{
AGameMgr.Event.GunTimer = EVENT_CLEAR_GUN_WAIT_TIME;
AGameMgr.Event.GunNo = 1;
AGameMgr.Event.WaitFlag = 1;
}
}
SpData.No = GunGun[AGameMgr.Event.GunNo].No;
SpData.PosX = GunGun[AGameMgr.Event.GunNo].PosX;
SpData.PosY = GunGun[AGameMgr.Event.GunNo].PosY;
SpData.PosZ = PRIORITY_EVENT_CHAR;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
if(--AGameMgr.Event.GunXaWaitTimer<=0){
if(dSoundStatus == DslStatStandby){
AGameMgr.Event.GunXaFlag=0;
}
}
if(AGameMgr.Event.GunNo==1)
{
if(!AGameMgr.Event.GunXaFlag){
AGameMgr.Event.GunMouseWt = 0;
AGameMgr.Event.GunMouseNo = 1;
}else{
if(++AGameMgr.Event.GunMouseWt>EVENT_GUN_GUTS_MOUSE_PAT_TIME){
AGameMgr.Event.GunMouseWt = 0;
AGameMgr.Event.GunMouseNo ^=1;
}
}
SpData.No = GunGunMouse[AGameMgr.Event.GunMouseNo+2].No;
SpData.PosX = GunGunMouse[AGameMgr.Event.GunMouseNo+2].PosX;
SpData.PosY = GunGunMouse[AGameMgr.Event.GunMouseNo+2].PosY;
SpData.PosZ = PRIORITY_EVENT_CHAR-1;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
break;
case EVENT_FALSE:
++AGameMgr.Event.GunTimer;
if(!AGameMgr.Event.WaitFlag){
if(AGameMgr.Event.GunTimer > EVENT_FALSE_PAT_00_TIME){
if(!AGameMgr.Script.Flag){
AGameMgr.Event.GunNo = 1;
AGameMgr.Event.WaitFlag = 1;
AGameMgr.Event.GunXaFlag = 1;
AGameMgr.Event.GunXaWaitTimer = GET_DA_STATUS_WAIT_TIME*3;
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] = FALSE_DEMO_2_SCRIPT_BASE;
Task.user[2] = FALSE_DEMO_2_SCRIPT_NUM;
CreateTask(&Task);
}
}
}
SpData.No = GunGun[AGameMgr.Event.GunNo].No;
SpData.PosX = GunGun[AGameMgr.Event.GunNo].PosX;
SpData.PosY = GunGun[AGameMgr.Event.GunNo].PosY;
SpData.PosZ = PRIORITY_EVENT_CHAR;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
if(--AGameMgr.Event.GunXaWaitTimer<=0){
if(dSoundStatus == DslStatStandby){
AGameMgr.Event.GunXaFlag=0;
}
}
if(AGameMgr.Event.GunNo==1)
{
if(!AGameMgr.Event.GunXaFlag){
AGameMgr.Event.GunMouseWt = 0;
AGameMgr.Event.GunMouseNo = 1;
}else{
if(++AGameMgr.Event.GunMouseWt>EVENT_GUN_GUTS_MOUSE_PAT_TIME){
AGameMgr.Event.GunMouseWt = 0;
AGameMgr.Event.GunMouseNo ^=1;
}
}
SpData.No = GunGunMouse[AGameMgr.Event.GunMouseNo+2].No;
SpData.PosX = GunGunMouse[AGameMgr.Event.GunMouseNo+2].PosX;
SpData.PosY = GunGunMouse[AGameMgr.Event.GunMouseNo+2].PosY;
SpData.PosZ = PRIORITY_EVENT_CHAR-1;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
break;
case EVENT_ALLCLEAR:
switch(AGameMgr.Event.GunMode)
{
case EVENT_ALLCLEAR_GUN_MODE_GUTS:
++AGameMgr.Event.GunTimer;
if(!AGameMgr.Event.GunFlag)
{
if(AGameMgr.Event.GunTimer>EVENT_ALL_CLEAR_PAT_00_TIME)
{
AGameMgr.Event.GunNo = 1;
AGameMgr.Event.GunFlag = 1;
}
}
if(AGameMgr.Event.GunNo==1)
{
if(++AGameMgr.Event.GunMouseWt>EVENT_GUN_GUTS_MOUSE_PAT_TIME){
AGameMgr.Event.GunMouseWt = 0;
AGameMgr.Event.GunMouseNo ^=1;
}
SpData.No = GunGunMouse[AGameMgr.Event.GunMouseNo+2].No;
SpData.PosX = GunGunMouse[AGameMgr.Event.GunMouseNo+2].PosX;
SpData.PosY = GunGunMouse[AGameMgr.Event.GunMouseNo+2].PosY;
SpData.PosZ = PRIORITY_EVENT_CHAR-1;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
if(!AGameMgr.Script.Flag){
if(--AGameMgr.Event.GunXaWaitTimer<=0){
if(dSoundStatus == DslStatStandby){
AGameMgr.Event.GunXaFlag = 1;
AGameMgr.Event.GunXaWaitTimer = GET_DA_STATUS_WAIT_TIME*3;
AGameMgr.Event.GunMode = EVENT_ALLCLEAR_GUN_MODE_TERE;
AGameMgr.Event.GunNo = 2;
AGameMgr.Event.GunWt = EVENT_ALL_CLEAR_PAT_02_TIME;
AGameMgr.Event.GunMouseWt = 0;
AGameMgr.Event.GunMouseNo = 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_2_SCRIPT_BASE;
Task.user[2] = ALL_CLEAR_DEMO_2_SCRIPT_NUM;
CreateTask(&Task);
}
}
}
break;
case EVENT_ALLCLEAR_GUN_MODE_TERE:
if(AGameMgr.Event.WaitFlag){
if(--AGameMgr.Event.GunXaWaitTimer<=0){
if(dSoundStatus == DslStatStandby){
AGameMgr.Event.WaitFlag = 1;
AGameMgr.Event.GunMouseWt = 0;
AGameMgr.Event.GunMouseNo ^=1;
}
}
}
if(--AGameMgr.Event.GunWt<0)
{
AGameMgr.Event.GunWt = EVENT_ALL_CLEAR_PAT_02_TIME;
AGameMgr.Event.GunIndex ^= 1;
AGameMgr.Event.GunNo = TereAnmTable[AGameMgr.Event.GunIndex];
}
if(!AGameMgr.Event.WaitFlag){
if(++AGameMgr.Event.GunMouseWt>EVENT_GUN_TERE_MOUSE_PAT_TIME){
AGameMgr.Event.GunMouseWt = 0;
AGameMgr.Event.GunMouseNo ^=1;
}
}
if(AGameMgr.Event.GunMouseNo){
SpData.No = GunGunMouse[AGameMgr.Event.GunMouseNo].No;
SpData.PosX = GunGunMouse[AGameMgr.Event.GunMouseNo].PosX;
SpData.PosY = GunGunMouse[AGameMgr.Event.GunMouseNo].PosY;
SpData.PosZ = PRIORITY_EVENT_CHAR-1;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
break;
default:
}
SpData.No = GunGun[AGameMgr.Event.GunNo].No;
SpData.PosX = GunGun[AGameMgr.Event.GunNo].PosX;
SpData.PosY = GunGun[AGameMgr.Event.GunNo].PosY;
SpData.PosZ = PRIORITY_EVENT_CHAR;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
break;
default:
}
}
static void EventBg(int i_type)
{
static int ClearEventBgTable[]={
AIR_CHAR_EVENT_BG_12,AIR_CHAR_EVENT_BG_13,
AIR_CHAR_EVENT_BG_14,AIR_CHAR_EVENT_BG_15,
AIR_CHAR_EVENT_BG_10,AIR_CHAR_EVENT_BG_11,
};
static int FalseEventBgTable[]={
AIR_CHAR_EVENT_BG_04,AIR_CHAR_EVENT_BG_05,
AIR_CHAR_EVENT_BG_06,AIR_CHAR_EVENT_BG_07,
AIR_CHAR_EVENT_BG_08,AIR_CHAR_EVENT_BG_09,
};
static EVENT_CHAR SpectatorTable[]={
{ AIR_CHAR_EVENT_BUTA_00, 166, 2 + 20},
{ AIR_CHAR_EVENT_BUTA_01, 166, 2 + 20},
{ AIR_CHAR_EVENT_FOX_00, 22, 2 + 20},
{ AIR_CHAR_EVENT_FOX_01, 22, 2 + 20},
{ AIR_CHAR_EVENT_USAGI_00, 238, 60 + 36},
{ AIR_CHAR_EVENT_USAGI_01, 238, 60 + 36},
{ AIR_CHAR_EVENT_KAYORINU_00, 12, 67 + 20},
{ AIR_CHAR_EVENT_KAYORINU_01, 12, 67 + 20},
{ AIR_CHAR_EVENT_NEZUMI_00, 10, 133 + 20},
{ AIR_CHAR_EVENT_NEZUMI_01, 10, 133 + 20},
{ AIR_CHAR_EVENT_RISU_00, 238, 123 + 36},
{ AIR_CHAR_EVENT_RISU_01, 238, 123 + 36},
};
SPRITE_DATA SpData;
int i;
switch(i_type)
{
case EVENT_CLEAR:
if(++AGameMgr.Event.BgWt>EVENT_BG_ANM_WAIT_TIME)
{
AGameMgr.Event.BgWt = 0;
if(++AGameMgr.Event.BgNo>2)
{
AGameMgr.Event.BgNo=0;
}
}
SpData.No = ClearEventBgTable[AGameMgr.Event.BgNo*2];
SpData.PosX = 0;
SpData.PosY = 0;
SpData.PosZ = PRIORITY_EVENT_BG;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = ClearEventBgTable[AGameMgr.Event.BgNo*2+1];
SpData.PosX = 256;
SpData.PosY = 0;
SpData.PosZ = PRIORITY_EVENT_BG;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
break;
case EVENT_FALSE:
if(++AGameMgr.Event.BgTimer>EVENT_BG_FALSE_MODE_CHANGE_TIME)
{
AGameMgr.Event.BgTimer=EVENT_BG_FALSE_MODE_CHANGE_TIME;
AGameMgr.Event.BgMode=1;
}
if(AGameMgr.Event.BgMode==0)
{
SpData.No = AIR_CHAR_EVENT_BG_00;
SpData.PosX = 0;
SpData.PosY = 0;
SpData.PosZ = PRIORITY_EVENT_BG;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = AIR_CHAR_EVENT_BG_01;
SpData.PosX = 256;
SpData.PosY = 0;
SpData.PosZ = PRIORITY_EVENT_BG;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}else
{
if(++AGameMgr.Event.BgWt>EVENT_BG_ANM_WAIT_TIME)
{
AGameMgr.Event.BgWt = 0;
if(++AGameMgr.Event.BgNo>2)
{
AGameMgr.Event.BgNo=0;
}
}
SpData.No = FalseEventBgTable[AGameMgr.Event.BgNo*2];
SpData.PosX = 0;
SpData.PosY = 0;
SpData.PosZ = PRIORITY_EVENT_BG;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = FalseEventBgTable[AGameMgr.Event.BgNo*2+1];
SpData.PosX = 256;
SpData.PosY = 0;
SpData.PosZ = PRIORITY_EVENT_BG;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
break;
case EVENT_ALLCLEAR:
if(++AGameMgr.Event.BgWt>EVENT_BG_FALSE_ANM_WAIT_TIME)
{
AGameMgr.Event.BgWt = 0;
AGameMgr.Event.SpectatorNo ^= 1;
}
for(i=0;i<6;i++){
SpData.No = SpectatorTable[i*2+AGameMgr.Event.SpectatorNo].No;
SpData.PosX = SpectatorTable[i*2+AGameMgr.Event.SpectatorNo].PosX;
SpData.PosY = SpectatorTable[i*2+AGameMgr.Event.SpectatorNo].PosY;
SpData.PosZ = PRIORITY_EVENT_BG - i*10;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
for(i=0;i<6;i++){
SpData.No = SpectatorTable[i*2+AGameMgr.Event.SpectatorNo].No;
SpData.PosX = SpectatorTable[i*2+AGameMgr.Event.SpectatorNo].PosX;
SpData.PosY = SpectatorTable[i*2+AGameMgr.Event.SpectatorNo].PosY;
SpData.PosZ = PRIORITY_EVENT_BG - i*10;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
}
SpData.No = AIR_CHAR_EVENT_BG_02;
SpData.PosX = 0;
SpData.PosY = 0;
SpData.PosZ = PRIORITY_EVENT_BG;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = AIR_CHAR_EVENT_BG_03;
SpData.PosX = 256;
SpData.PosY = 0;
SpData.PosZ = PRIORITY_EVENT_BG;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
break;
default:
}
}
static int ScriptTask(TASK* ip_task)
{
switch( ip_task->mode )
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
AGameMgr.Script.Flag = 1;
AGameMgr.Script.Index = 0;
AGameMgr.Script.Line = ip_task->user[0];
AGameMgr.Script.Base = ip_task->user[1];
AGameMgr.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(AGameMgr.Script.Line)
{
case SCRIPT_LINE_1:
MenuMessageSet10(&AirScript[AGameMgr.Script.Base + AGameMgr.Script.Index]);
break;
case SCRIPT_LINE_2:
MenuMessageSet20(&AirScript[AGameMgr.Script.Base + AGameMgr.Script.Index]);
break;
case SCRIPT_LINE_3:
MenuMessageSet30(&AirScript[AGameMgr.Script.Base + AGameMgr.Script.Index]);
break;
default:
}
if(++AGameMgr.Script.Index >= AGameMgr.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:
AGameMgr.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:
AGameMgr.ExitFlag = 1;
ExitTask(ip_task->id);
break;
default:
}
return TRUE;
}
static int AllClearEventTask(TASK* ip_task)
{
SPRITE_DATA SpData;
TASK Task;
switch(ip_task->mode)
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
if((file_read(AirEventTextureFile[0].fn,LoadAddress)) == -1)
{
return FALSE;
}
TexInit( AIR_EVENT_TIM_NUM, &AirEventTextureImage[AIR_EVENT_TIM_POS] );
TimImgData = AirEventTextureImage;
EntrySprite( AirEventSpriteData );
AGameMgr.Event.BgNo = 0;
AGameMgr.Event.BgWt = 0;
AGameMgr.Event.BgTimer = 0;
AGameMgr.Event.BgMode = 0;
AGameMgr.Event.GunMouseNo = 0;
AGameMgr.Event.GunMouseWt = 0;
AGameMgr.Event.GunMouseIndex= 0;
AGameMgr.Event.GunNo = 0;
AGameMgr.Event.GunWt = 0;
AGameMgr.Event.GunTimer = 0;
AGameMgr.Event.GunMode = EVENT_ALLCLEAR_GUN_MODE_GUTS;
AGameMgr.Event.SpectatorNo = 0;
AGameMgr.Event.GunFlag = 0;
AGameMgr.Event.GunIndex = 0;
AGameMgr.Event.GunXaFlag = 0;
AGameMgr.Event.GunXaWaitTimer = 0;
AGameMgr.Event.Timer = 0;
AGameMgr.Event.EndFlag = 0;
AGameMgr.Event.WaitFlag = 0;
AGameMgr.SelectContinue.Val = 0;
AGameMgr.SelectContinue.Type = SELECT_RETRY_H;
AGameMgr.SelectContinue.No = 0;
AGameMgr.SelectContinue.Wt = 0;
AGameMgr.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_1_SCRIPT_BASE;
Task.user[2] = ALL_CLEAR_DEMO_1_SCRIPT_NUM;
CreateTask(&Task);
AGameMgr.Event.GunXaFlag = 1;
AGameMgr.Event.GunXaWaitTimer = GET_DA_STATUS_WAIT_TIME*3;
#ifdef __DEBUG_AIR__
GameMgr.FadeFlag = FadeIn;
#endif
break;
case TASK_MODE_MAIN:
++AGameMgr.Event.Timer;
if(AGameMgr.Event.Timer>ALL_CLEAR_EVENT_TIME){
AGameMgr.Event.EndFlag=1;
}
EventGunGun(EVENT_ALLCLEAR);
EventBg(EVENT_ALLCLEAR);
if(AGameMgr.Event.EndFlag)
{
if(SelectContinue(!AGameMgr.SelectContinue.FadeFlag))
{
if(!AGameMgr.SelectContinue.FadeFlag)
{
if((AGameMgr.SelectContinue.Val==0) && (AGameMgr.SelectContinue.Type==SELECT_RETRY_H))
{
AGameMgr.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( (AGameMgr.SelectContinue.Val==1) && (AGameMgr.SelectContinue.Type==SELECT_RETRY_H))
{
AGameMgr.SelectContinue.Type =SELECT_END_H;
AGameMgr.SelectContinue.Val = 0;
}else
if((AGameMgr.SelectContinue.Type==SELECT_END_H) && (AGameMgr.SelectContinue.Val==0))
{
AGameMgr.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((AGameMgr.SelectContinue.Type==SELECT_END_H) && (AGameMgr.SelectContinue.Val==1))
{
AGameMgr.SelectContinue.Type = SELECT_RETRY_H;
AGameMgr.SelectContinue.Val = 0;
}else
{
}
}else
{
}
}
}
break;
case TASK_MODE_EXIT:
ReleaseSprite();
if((AGameMgr.SelectContinue.Val==0) && (AGameMgr.SelectContinue.Type==SELECT_RETRY_H))
{
AGameMgr.Air.ContinueFlag = 0;
AGameMgr.Air.ControllFlag = 0;
AGameMgr.SelectLevelFlag = 1;
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
{
AGameMgr.Air.ControllFlag = 0;
AGameMgr.ExitFlag = 1;
}
ExitTask(ip_task->id);
break;
}
}
static int ClearEventTask(TASK* ip_task)
{
SPRITE_DATA SpData;
TASK Task;
switch(ip_task->mode)
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
if((file_read(AirEventTextureFile[0].fn,LoadAddress)) == -1)
{
return FALSE;
}
TexInit( AIR_EVENT_TIM_NUM, &AirEventTextureImage[AIR_EVENT_TIM_POS] );
TimImgData = AirEventTextureImage;
EntrySprite( AirEventSpriteData );
AGameMgr.Event.BgNo = 0;
AGameMgr.Event.BgWt = 0;
AGameMgr.Event.BgTimer = 0;
AGameMgr.Event.BgMode = 0;
AGameMgr.Event.GunMouseNo = 0;
AGameMgr.Event.GunMouseWt = 0;
AGameMgr.Event.GunMouseIndex= 0;
AGameMgr.Event.GunNo = 0;
AGameMgr.Event.GunWt = 0;
AGameMgr.Event.GunTimer = 0;
AGameMgr.Event.GunMode = 0;
AGameMgr.Event.GunFlag = 0;
AGameMgr.Event.GunIndex = 0;
AGameMgr.Event.GunXaFlag = 0;
AGameMgr.Event.GunXaWaitTimer = 0;
AGameMgr.Event.SpectatorNo = 0;
AGameMgr.Event.Timer = 0;
AGameMgr.Event.EndFlag = 0;
AGameMgr.Event.WaitFlag = 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);
AGameMgr.Event.GunXaFlag = 1;
AGameMgr.Event.GunXaWaitTimer = GET_DA_STATUS_WAIT_TIME*3;
AGameMgr.SelectContinue.Val = 0;
AGameMgr.SelectContinue.Type = SELECT_RETRY_H;
AGameMgr.SelectContinue.No = 0;
AGameMgr.SelectContinue.Wt = 0;
AGameMgr.SelectContinue.FadeFlag = 0;
#ifdef __DEBUG_AIR__
GameMgr.FadeFlag = FadeIn;
#endif
break;
case TASK_MODE_MAIN:
++AGameMgr.Event.Timer;
if(AGameMgr.Event.Timer>CLEAR_EVENT_TIME){
AGameMgr.Event.EndFlag=1;
}
EventGunGun(EVENT_CLEAR);
EventBg(EVENT_CLEAR);
if(AGameMgr.Event.EndFlag)
{
if(SelectContinue(!AGameMgr.SelectContinue.FadeFlag))
{
if(!AGameMgr.SelectContinue.FadeFlag)
{
if((AGameMgr.SelectContinue.Val==0) && (AGameMgr.SelectContinue.Type==SELECT_RETRY_H))
{
AGameMgr.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( (AGameMgr.SelectContinue.Val==1) && (AGameMgr.SelectContinue.Type==SELECT_RETRY_H))
{
AGameMgr.SelectContinue.Type =SELECT_END_H;
AGameMgr.SelectContinue.Val = 0;
}else
if((AGameMgr.SelectContinue.Type==SELECT_END_H) && (AGameMgr.SelectContinue.Val==0))
{
AGameMgr.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((AGameMgr.SelectContinue.Type==SELECT_END_H) && (AGameMgr.SelectContinue.Val==1))
{
AGameMgr.SelectContinue.Type = SELECT_RETRY_H;
AGameMgr.SelectContinue.Val = 0;
}else
{
}
}else
{
}
}
}
break;
case TASK_MODE_EXIT:
ReleaseSprite();
if((AGameMgr.SelectContinue.Val==0) && (AGameMgr.SelectContinue.Type==SELECT_RETRY_H))
{
AGameMgr.Air.ContinueFlag = 0;
AGameMgr.Air.ControllFlag = 0;
AGameMgr.SelectLevelFlag = 1;
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
{
AGameMgr.Air.ControllFlag = 0;
AGameMgr.ExitFlag = 1;
}
ExitTask(ip_task->id);
break;
}
}
static int FalseEventTask(TASK* ip_task)
{
SPRITE_DATA SpData;
TASK Task;
switch(ip_task->mode)
{
case TASK_MODE_INIT:
ip_task->mode = TASK_MODE_MAIN;
if((file_read(AirEventTextureFile[0].fn,LoadAddress)) == -1)
{
return FALSE;
}
TexInit( AIR_EVENT_TIM_NUM, &AirEventTextureImage[AIR_EVENT_TIM_POS] );
TimImgData = AirEventTextureImage;
EntrySprite( AirEventSpriteData );
AGameMgr.Event.BgNo = 0;
AGameMgr.Event.BgWt = 0;
AGameMgr.Event.BgTimer = 0;
AGameMgr.Event.BgMode = 0;
AGameMgr.Event.GunMouseNo = 0;
AGameMgr.Event.GunMouseWt = 0;
AGameMgr.Event.GunMouseIndex= 0;
AGameMgr.Event.GunNo = 5;
AGameMgr.Event.GunWt = 0;
AGameMgr.Event.GunTimer = 0;
AGameMgr.Event.GunMode = 0;
AGameMgr.Event.GunFlag = 0;
AGameMgr.Event.GunIndex = 0;
AGameMgr.Event.GunXaFlag = 0;
AGameMgr.Event.GunXaWaitTimer = 0;
AGameMgr.Event.SpectatorNo = 0;
AGameMgr.Event.Timer = 0;
AGameMgr.Event.EndFlag = 0;
AGameMgr.Event.WaitFlag = 0;
AGameMgr.SelectContinue.Val = 0;
AGameMgr.SelectContinue.Type = SELECT_RETRY_H;
AGameMgr.SelectContinue.No = 0;
AGameMgr.SelectContinue.Wt = 0;
AGameMgr.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] = FALSE_DEMO_1_SCRIPT_BASE;
Task.user[2] = FALSE_DEMO_1_SCRIPT_NUM;
CreateTask(&Task);
#ifdef __DEBUG_AIR__
GameMgr.FadeFlag = FadeIn;
#endif
break;
case TASK_MODE_MAIN:
++AGameMgr.Event.Timer;
if(AGameMgr.Event.Timer>FALSE_EVENT_TIME){
AGameMgr.Event.EndFlag=1;
}
EventGunGun(EVENT_FALSE);
EventBg(EVENT_FALSE);
if(AGameMgr.Event.EndFlag)
{
if(SelectContinue(!AGameMgr.SelectContinue.FadeFlag))
{
if(!AGameMgr.SelectContinue.FadeFlag)
{
if((AGameMgr.SelectContinue.Val==0) && (AGameMgr.SelectContinue.Type==SELECT_RETRY_H))
{
AGameMgr.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( (AGameMgr.SelectContinue.Val==1) && (AGameMgr.SelectContinue.Type==SELECT_RETRY_H))
{
AGameMgr.SelectContinue.Type =SELECT_END_H;
AGameMgr.SelectContinue.Val = 0;
}else
if((AGameMgr.SelectContinue.Type==SELECT_END_H) && (AGameMgr.SelectContinue.Val==0))
{
AGameMgr.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((AGameMgr.SelectContinue.Type==SELECT_END_H) && (AGameMgr.SelectContinue.Val==1))
{
AGameMgr.SelectContinue.Type = SELECT_RETRY_H;
AGameMgr.SelectContinue.Val = 0;
}else
{
}
}else
{
}
}
}
break;
case TASK_MODE_EXIT:
ReleaseSprite();
if((AGameMgr.SelectContinue.Val==0) && (AGameMgr.SelectContinue.Type==SELECT_RETRY_H))
{
AGameMgr.Air.ContinueFlag = 0;
AGameMgr.Air.ControllFlag = 0;
AGameMgr.SelectLevelFlag = 1;
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
{
AGameMgr.Air.ControllFlag = 0;
AGameMgr.ExitFlag = 1;
}
ExitTask(ip_task->id);
break;
}
}
static int SelectContinue(int i_flag)
{
static int BupeAnmTable[] ={
AIR_CHAR_EVENT_SELECT_CONTINUE_BUPE_00,
AIR_CHAR_EVENT_SELECT_CONTINUE_BUPE_01,
};
static int MaruBatuTable[]={
AIR_CHAR_EVENT_SELECT_CONTINUE_YES_LIGHT, AIR_CHAR_EVENT_SELECT_CONTINUE_NO_DARK,
AIR_CHAR_EVENT_SELECT_CONTINUE_YES_DARK, AIR_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){
AGameMgr.SelectContinue.Val^=1;
ssPlaySe(BUTONSE_LEVER);
}
}
SpData.No = MaruBatuTable[AGameMgr.SelectContinue.Val*2];
SpData.PosX = 68+72;
SpData.PosY = 73+57;
SpData.PosZ = PRIORITY_AIR_GAME_EVENT_MENU-2;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = MaruBatuTable[AGameMgr.SelectContinue.Val*2+1];
SpData.PosX = 68+126;
SpData.PosY = 73+57;
SpData.PosZ = PRIORITY_AIR_GAME_EVENT_MENU-2;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
switch(AGameMgr.SelectContinue.Type)
{
case SELECT_RETRY_H:
SpData.No = AIR_CHAR_EVENT_SELECT_CONTINUE_RETRY_H;
SpData.PosX = 68+20;
SpData.PosY = 73+20;
SpData.PosZ = PRIORITY_AIR_GAME_EVENT_MENU-2;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
break;
case SELECT_END_H:
SpData.No = AIR_CHAR_EVENT_SELECT_CONTINUE_END_H;
SpData.PosX = 68+20;
SpData.PosY = 73+20;
SpData.PosZ = PRIORITY_AIR_GAME_EVENT_MENU-2;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
break;
case SELECT_CONTINUE_H:
SpData.No = AIR_CHAR_EVENT_SELECT_CONTINUE_CONTINUE_H;
SpData.PosX = 68+20;
SpData.PosY = 73+20;
SpData.PosZ = PRIORITY_AIR_GAME_EVENT_MENU-2;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
break;
default:
}
if(++AGameMgr.SelectContinue.Wt > SELECT_LEVEL_PUPE_ANM_TIME){
AGameMgr.SelectContinue.No^=1;
AGameMgr.SelectContinue.Wt=0;
}
SpData.No = BupeAnmTable[AGameMgr.SelectContinue.No];
SpData.PosX = 68+12;
SpData.PosY = 73+34;
SpData.PosZ = PRIORITY_AIR_GAME_EVENT_MENU-10;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = AIR_CHAR_EVENT_SELECT_CONTINUE_PLATE;
SpData.PosX = 68;
SpData.PosY = 73;
SpData.PosZ = PRIORITY_AIR_GAME_EVENT_MENU;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = AIR_CHAR_EVENT_SELECT_CONTINUE_ERABU;
SpData.PosX = (320-130)/2;
SpData.PosY = 206;
SpData.PosZ = PRIORITY_AIR_GAME_EVENT_MENU;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
SpData.No = AIR_CHAR_EVENT_SELECT_CONTINUE_KETEI;
SpData.PosX = (320-130)/2+78;
SpData.PosY = 206;
SpData.PosZ = PRIORITY_AIR_GAME_EVENT_MENU;
SpData.ScaleX = SCALE10;
SpData.ScaleY = SCALE10;
SpData.Rotate = ROTATE000;
SpData.Reverse = NOREVERS;
DrawSprite( &SpData );
return o_ret;
}
#ifdef __DEBUG_AIR__
static int DebugGameSpriteTask(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;
if((file_read(AirGameTextureFile[0].fn,LoadAddress)) == -1)
{
return FALSE;
}
TexInit( AIR_GAME_TIM_NUM, &AirGameTextureImage[AIR_GAME_TIM_POS] );
TimImgData = AirGameTextureImage;
EntrySprite( AirGameSpriteData );
SpIndex = 0;
SpEntryNum = GetEntrySpriteNum();
Counter = 0;
GameMgr.FadeFlag = FadeIn;
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 - AirGameSpriteData[SpIndex].Width) / 2;
SpData.PosY = (240 - AirGameSpriteData[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", AirGameSpriteData[SpIndex].OffSetX );
FntPrint("OfY=%d\n", AirGameSpriteData[SpIndex].OffSetY );
FntPrint("W__=%d\n", AirGameSpriteData[SpIndex].Width );
FntPrint("H__=%d\n", AirGameSpriteData[SpIndex].Height );
FntPrint("PNO=%d\n", AirGameSpriteData[SpIndex].PaletteNo );
FntPrint("CNT=%d\n", ++Counter );
break;
case TASK_MODE_EXIT:
break;
default:
break;
}
}
static int DebugEventSpriteTask(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;
if((file_read(AirEventTextureFile[0].fn,LoadAddress)) == -1)
{
return FALSE;
}
TexInit( AIR_EVENT_TIM_NUM, &AirEventTextureImage[AIR_EVENT_TIM_POS] );
TimImgData = AirEventTextureImage;
EntrySprite( AirEventSpriteData );
SpIndex = 0;
SpEntryNum = GetEntrySpriteNum();
Counter = 0;
GameMgr.FadeFlag = FadeIn;
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 - AirEventSpriteData[SpIndex].Width) / 2;
SpData.PosY = (240 - AirEventSpriteData[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", AirEventSpriteData[SpIndex].OffSetX );
FntPrint("OfY=%d\n", AirEventSpriteData[SpIndex].OffSetY );
FntPrint("W__=%d\n", AirEventSpriteData[SpIndex].Width );
FntPrint("H__=%d\n", AirEventSpriteData[SpIndex].Height );
FntPrint("PNO=%d\n", AirEventSpriteData[SpIndex].PaletteNo );
FntPrint("CNT=%d\n", ++Counter );
break;
case TASK_MODE_EXIT:
break;
default:
break;
}
}
#endif