This is a sub-page of Kinniku Banzuke Vol.2: Aratanaru Genkai he no Chousen!.
0x4E8600#
BLOOD_O, //2 O型
BLOOD_AB, //3 AB型
};
利き手、利き足:
enum {
RIGHT_HANDED = 0, //0 右利き
LEFT_HANDED, //1 左利き
};
競技:lt_sys.hで競技#を定義
enum {
GM_PANCH = 0, //0 パンチアウト
GM_9FOOPS, //1 9フープス
GM_BEACH, //2 ビーチフラッグス
GM_GALLON, //3 ガロンスロー
GM_BACK50, //4 バック転50m走
GM_SPRAY, //5 スプレイヒッター
GM_G_MAKER, //6 ゲームメーカー
GM_DEADMAN, //7 デッドマンズドロップ
GM_L_SHOOT, //8 ロングシュート
};
0x4F0E00#
)<<1)
+ ( (*(pt2 + 0) & 0x8 )>>3 ) + ( (*(pt2 + 1) & 0x10)>>2 )
+ ( (*(pt2 + 6) & 0x2 )<<2 ) + ( (*(pt2 + 5) & 0x1 )<<5 );
temp[ 5 ] = (( *(pt2 + 5) & 0x7e )>>1);
temp[ 6 ] = (( *(pt2 + 6) & 0x7c )>>1) + ( *(pt2 + 6)&0x1 );
temp[ 7 ] = (( *(pt2 + 7) & 0x78 )>>1) + ( *(pt2 + 7)&0x3 );
temp[ 8 ] = (( *(pt2 + 8) & 0x8 )<<1) + ( *(pt2 + 8)&0x7 ) +
( (*(pt2 + 3)&0x20 ) >> 2 ) + ( (*(pt2 + 9) & 0x40)>>1);
temp[ 9 ] =( *(pt2 + 9) & 0x3f );
#endif
// さあここから
*(pt2 + 0) = rand(
0x502600#
------------------------------------*/
/* io : フェードスピード / 0(イン)/1(アウト)/2(アウト出力オフなし)4ビットずつ使用 */
/* top : 対象物登録パーツ番号(先頭) */
/* cnt : パーツ数(topから連続で) */
/*------------------------------------------------------------------*/
/* ret : 0:処理中 1:終了 */
/*------------------------------------------------------------------*/
u_char Fade( u_char io, u_char top, u_char cnt )
{
sys_w;
CLASS0_W *spr;
Uchar i, sp;
0x50AA00#
xf0+i+1;
}
/* リプレイデータ(データなし) */
SWK.rp[0] = SWK.rp[1] = SWK.rp[2] = SWK.rp[3] = 0;
for( i=0; i<64; i++ ) SWK.g_flg[i] = 0;
for( i=0; i<10; i++ ) SWK.sv_res[i] = 0;
#if 0
{
u_char *dat, *p = (u_char *)&s->OptDat;
for( i=1; i<29; i++ ) {
dat = &p[128*i];
memset( dat, i, 128 );
}
}
#endif
}
/*------------------------------------------------------------------*/
/* 共用並列処理用タスク */
/*------------------------------------------------------------------*/
/* */
/*------------------------------------------------------------------*/
/*----------------------------*/
/* BG アニメーション */
/*----------------------------*/
#define BG_MOVE_X (2)
#define BG_MOVE_Y (2)
#define BG_ANIME (3)
static u_short bg_spd;
static int m_BGAction0( void )
{
sp_w;
sys_w;
CLASS0_W *spr;
SPD_W *spd;
u_char *wk;
short *wk2;
u_char i, n;
n = ( sp->inter_mode == INT_VSYNC ) ? 1 : 2 ;
for( i=0; i<n; i++ )
{
spr = &s->classw0[BG_2]; /* 縦移動BG */
spr->yposi -= BG_MOVE_Y;
if( spr->yposi < -768 )
spr->yposi = 0;
spr = &s->classw0[BG_3]; /* 横移動BG */
spr->xposi -= BG_MOVE_X;
if( spr->xposi < -768 )
spr->xposi = 0;
wk = (u_char *)&m_spw[EFF0];
wk[0] ++;
if( wk[0] > BG_ANIME )
{
wk[0] = 0;
wk[1] ++;
if( wk[1] >= 6 )
wk[1] = 0;
/* アニメーションBG */
spd = (SPD_W *)GetSpdN( bg_spd+wk[1] );
s->classw0[EF
0x50EC00#
;
u_char i, nn, *area;
if( no == 0xff ) {
no = 0;
nn = 8;
} else {
nn = no+1;
}
for(; no<nn; no++ )
{
area = (tbl == 0) ? &SWK.Nedit[no][1] : &SWK.Medit[no][1];
if( (tbl == 0)?SWK.Nedit[no][0]:SWK.Medit[no][0] )
{
for( i=0; i<NAME_LENG; i++ )
{
if( type ) { /* 設定 */
c_name[14+no][i] = area[i];
} else { /* 取得 */
area[i] = c_name[14+no][i];
}
}
}
else
{
if( type ) { /* 設定 */
memcpy( c_name[14+no], ed_name, 8 );
c_name[14+no][5] = 0xf0 + 1 + no;
} else {
for( i=0; i<NAME_LENG; i++ )
area[i] = c_name[14+no][i];
}
}
}
}
/*==============================================================================*/
/* エディットキャラ名を予約エリアへ転送 */
/*==============================================================================*/
static Uchar EDNAM1[7] = { 0x3d,0x4d,0x5d,0x6d,0x7d,0x4e,0x5e }; /* エディット1名前専用 */
//static Uchar EDNAM2[7] = { 0x6e,0x7e,0x3f,0x4f
0x51BE00#
リトライ要求があるまで何もしないでウェイト */
/*--------------------------------------------------------------------------*/
return( MesType );
};
/*------------------------------------------------------------------------------*/
/* 使用ブロック数算出 */
/*------------------------------------------------------------------------------*/
/* パラメータ */
/* fcnt : 検索ファイル数 */
/* dinfo : カードディレクトリ情報 */
/*-----------------------------------------
0x53A400#
5 ) ) ||
( NowMoj == 2 && ( curpos == 0xd4 || curpos == 0xe4 ) ) )
{
m_SprClr(CUR1 );
m_SprClr(UNDER);
op_step++;
mvcnt = 0;
/* 保存エリアに入力名セット */
for( i=0; i<8; i++ )
svNAME[i] = spd[i].u | (spd[i].v >> 4);
/* AF_RMC-M_01 */
/* ??? */
/*------------------------------*/
taOK = maOK = hiOK = kgOK = 0;
for( i=0; i<8; i++ ) {
if( svNAME[i] == exTA[i] ) {
taOK |= 1<<i;
}
if( svNAME[i] == exMA[i] ) {
maOK |= 1<<i;
}
if( svNAME[i] == exHI[i] ) {
hiOK |= 1<<i;
}
if( svNAME[i] == exKG[i] ) {
kgOK |= 1<<i;
}
}
if( taOK == 0xff ) {
SWK.TBS |= 0x0400;
SD_call( SD_GATE );
} else
if( maOK == 0xff ) {
SWK.TBS |= 0x0800;
SD_call( SD_GATE );
} else
if( hiOK == 0xff ) {
SWK.TBS |= 0x1000;
SD_call( SD_GATE );
} else
if( kgOK == 0xff ) {
SWK.TBS |= 0x2000;
SD_call( SD_GATE );
}
else
0x542A00#
},
{ 6, 6, 7, 6, 5, 4, 4, 3, 3 },
{ 5, 5, 6, 5, 4, 3, 3, 2, 2 },
{ 6, 6, 7, 6, 5, 4, 4, 3, 3 },
{ 5, 5, 6, 5, 4, 3, 3, 2, 2 },
{ 4, 4, 5, 4, 3, 2, 2, 1, 1 },
};
static u_char t_GM[9][9] = { /* ゲームメーカー : 体型 & 年齢 */
{ 5, 6, 6, 5, 4, 4, 3, 2, 2 },
{ 6, 7, 7, 6, 5, 4, 4, 3, 3 },
{ 3, 4, 4, 3, 3, 2, 2, 1, 1 },
{ 5, 6, 6, 5, 4, 4, 2, 2, 2 },
{ 6, 7, 7, 6, 5, 4, 4, 3, 3 },
{ 3, 3, 3, 2, 2, 2, 1, 1, 1 },
{ 5, 6, 6, 7, 6, 6, 4, 3, 2 },
{ 6, 7, 7, 8, 7, 6, 6, 4, 3 },
{ 2, 2, 2, 1, 1, 1, 1, 0, 0 },
};
static u_char t_DD[10] = /* デッドマン : 体型 & 年齢 */
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
static u_char t_LS[9][9] = { /* ロングシュート : 体型 & 年齢 */
{ 5, 6, 6, 5, 4, 4, 3, 2, 2 },
{ 6, 7, 7, 6, 5, 4, 4, 3, 3 },
{ 3, 4, 4, 3, 3, 2, 2, 1, 1 },
{ 5, 6, 6, 5, 4, 4, 2, 2, 2 },
{ 6, 7, 7, 6, 5, 4, 4, 3, 3 },
{ 3, 3, 3, 2, 2, 2, 1, 1, 1 },
{ 5, 6, 6, 7, 6, 6, 4, 3, 2 },
{ 6, 7, 7, 8, 7, 6, 6, 4, 3 },
{ 2, 2, 2, 1, 1, 1, 1, 0, 0 },
};
/* 2点間のランダム数値を取得するマクロ */
#define BETRND(a,b) ( a + ( rand() % (b-a+1) ) )
static u_char t_HT[3][2] = { /* 身長 : 体型(SML) */
{ 160, 169 },
{ 170, 179 },
{ 180, 189 },
};
static u_char t_WT[30][3][2] = { /*
0x54A200#
029,0xfff4,0x03},
{DAT,0x10,0x10,0xe0,0x60,0x0036,0xfff4,0x03},
{END,0x10,0x10,0x90,0x50,0x0043,0xfff4,0x03},
{DAT,0x10,0x10,0xb0,0x60,0x001c,0xfff4,0x03}, // モノラル
{DAT,0x10,0x10,0x80,0x60,0x0029,0xfff4,0x03},
{DAT,0x10,0x10,0xd0,0x60,0x0036,0xfff4,0x03},
{END,0x10,0x10,0xf0,0x60,0x0043,0xfff4,0x03},
};
SPD_W op_stup4s_spd[]={
{DAT,0x10,0x10,0xd0,0x80,0x0029,0x0008,0x03}, // みる COM競技
{END,0x10,0x10,0xf0,0x80,0x0036,0x0008,0x03},
{DAT,0x10,0x10,0xd0,0x80,0x0024,0x0008,0x03}, // みない
{DAT,0x10,0x10,0xa0,0x80,0x0031,0x0008,0x03},
{END,0x10,0x10,0xf0,0x70,0x003e,0x0008,0x03},
};
SPD_W op_stup5s_spd[]={
{DAT,0x10,0x10,0xe0,0x30,0x001d,0x001c,0x03}, // 振動ON コントローラ1
{DAT,0x10,0x10,0xf0,0x30,0x002b,0x001c,0x03},
{DAT,0x10,0x10,0xb0,0x90,0x0039,0x001c,0x03},
{END,0x10,0x10,0xc0,0x90,0x0045,0x001c,0x03},
{DAT,0x10,0x10,0xe0,0x30,0x0018,0x001c,0x03}, // 振動OFF
{DAT,0x10,0x10,0xf0,0x30,0x0026,0x001c,0x03},
{DAT,0x10,0x10,0xb0,0x90,0x0034,0x001c,0x03},
{DAT,0x10,0x10,0xd0,0x90,0x0040,0x001c,0x03},
{END,0x10,0x10,0xd0,0x90,0x004c,0x001c,0x03},
};
SPD_W op_stup6s_spd[]={
{DAT,0x10,0x10,0xe0,0x30,0x001d,0x0030,0x03}, // 振動ON コントローラ2
{DAT,0x10,0x10,0xf0,0x30,0x002b,0x0030,0x03},
{DAT,0x10,0x10,0xb0,0x90,0x0039,0x0030,0x03},
{END,0x10,0x10,0xc0,0x90,0x0045,0x0030,0x03},
{DAT,0x10,0x10,0xe0,0x30,0x0018,0x0030,0x03}, // 振動OFF
{DAT,0x10,0x10,0xf0,0x30,0x0026,0x0030,0x03},
{DAT,0x10,0x10,0xb0,0x90,0x0034,0x0030,0x03},
{DAT,0x10,0x10,0xd0,0x90,0x004
0x54FC00#
,0x70,0x003f,0xffd5,0x05},
{DAT,0x10,0x10,0x00,0x80,0x0033,0xffe6,0x05}, // 3段目
{DAT,0x10,0x10,0x00,0x80,0x0041,0xffe6,0x05},
{DAT,0x10,0x10,0x00,0x80,0x004a,0xffe6,0x05},
{DAT,0x10,0x10,0x00,0x80,0x0053,0xffe6,0x05},
{DAT,0x10,0x10,0x30,0x70,0x003f,0xffe6,0x05},
{DAT,0x10,0x10,0x00,0x80,0x0033,0xfff7,0x05}, // 4段目
{DAT,0x10,0x10,0x00,0x80,0x0041,0xfff7,0x05},
{DAT,0x10,0x10,0x00,0x80,0x004a,0xfff7,0x05},
{DAT,0x10,0x10,0x00,0x80,0x0053,0xfff7,0x05},
{DAT,0x10,0x10,0x30,0x70,0x003f,0xfff7,0x05},
{DAT,0x10,0x10,0x00,0x80,0x0033,0x0008,0x05}, // 5段目
{DAT,0x10,0x10,0x00,0x80,0x0041,0x0008,0x05},
{DAT,0x10,0x10,0x00,0x80,0x004a,0x0008,0x05},
{DAT,0x10,0x10,0x00,0x80,0x0053,0x0008,0x05},
{DAT,0x10,0x10,0x30,0x70,0x003f,0x0008,0x05},
{DAT,0x10,0x10,0x00,0x80,0x0033,0x0019,0x05}, // 6段目
{DAT,0x10,0x10,0x00,0x80,0x0041,0x0019,0x05},
{DAT,0x10,0x10,0x00,0x80,0x004a,0x0019,0x05},
{DAT,0x10,0x10,0x00,0x80,0x0053,0x0019,0x05},
{DAT,0x10,0x10,0x30,0x70,0x003f
0x555600#
8,0x08,0xb8,0xc0,0x0035,0xfff3,0x04},
{END,0x40,0x08,0x80,0xc8,0x004d,0xfff3,0x04},
};
SPD_W zan_poi_spd[]={ /* 残りポイント ポイント */
{DAT,0x10,0x10,0x00,0xf0,0x0035,0xffcd,0x32}, /* 二桁(十) */
{DAT,0x10,0x10,0x00,0xf0,0x003f,0xffcd,0x32}, /* 二桁(一) */
{END,0x10,0x10,0x00,0xf0,0x003a,0xffcd,0x32}, /* 一桁 */
};
SPD_W point_ya_spd[]={ /* 矢印 */
{DAT,0x10,0x10,0x80,0xa0,0xffd6,0xffc2,0x76}, /* 通常 +11 */
{END,0x10,0x10,0x80,0xb0,0x000a,0xffc2,0x76}, /* 2・3間 +15 */
};
SPD_
0x55A400#
,0x003a,0x2a},
{DAT,0x10,0x10,0x40,0x20,0xff92,0x003a,0x2a},
{DAT,0x10,0x10,0x80,0x20,0xffa0,0x003a,0x2a},
{DAT,0x10,0x10,0x50,0x40,0xffae,0x003a,0x2a},
{DAT,0x10,0x10,0x40,0x40,0xffd8,0x003a,0x2a},
{DAT,0x10,0x10,0x10,0x40,0xfff4,0x003a,0x2a},
{DAT,0x10,0x10,0x90,0x00,0x0002,0x003a,0x2a},
{DAT,0x10,0x10,0x80,0x20,0xff84,0x0048,0x2a},
{END,0x10,0x10,0x70,0x20,0xff92,0x0048,0x2a},
{DAT,0x10,0x10,0x00,0xa0,0xff76,0x002c,0x2a},
{DAT,0x10,0x10,0x60,0x30,0xff84,0x002c,0x2a},
{DAT,0x10,0x10,0x40,0x40,0xff92,0x002c,0x2a},
{DAT,0x10,0x10,0x50,0x40,0xffa0,0x002c,0x2a},
{DAT,0x10,0x10,0x40,0xa0,0xffbc,0x002c,0x2a},
{DAT,0x10,0x10,0x90,0x40,0xff84,0x003a,0x2a},
{DAT,0x10,0x10,0x80,0x70,0xffbc,0x003a,0x2a},
{DAT,0x10,0x10,0x20,0x50,0xffca,0x003a,0x2a},
{DAT,0x10,0x10,0x30,0x50,0xffe6,0x003a,0x2a},
{DAT,0x10,0x10,0x90,0x50,0xff76,0x0048,0x2a},
{DAT,0x10,0x10,0x80,0x40,0xffa0,0x0048,0x2a},
{END,0x10,0x00,0x00,0xf0,0xff66,0x003a,0x2a}, // 1/2 表示消去
{DAT,0x10,0x10,0x10,0x40,0xff92
0x55EA00#
x10,0x10,0x10,0x60,0xff84,0x0048,0x2a},
{END,0x10,0x10,0xc0,0x80,0xff92,0x0048,0x2a},
{DAT,0x10,0x10,0xe0,0x40,0xff92,0x002c,0x2a},
{DAT,0x10,0x10,0x10,0x20,0xffae,0x002c,0x2a},
{DAT,0x10,0x10,0x20,0x20,0xffbc,0x002c,0x2a},
{DAT,0x10,0x10,0x30,0x20,0xffe6,0x002c,0x2a},
{DAT,0x10,0x10,0x90,0x40,0xff76,0x003a,0x2a},
{DAT,0x10,0x10,0x40,0x20,0xff84,0x003a,0x2a},
{DAT,0x10,0x10,0x50,0x20,0xff92,0x003a,0x2a},
{DAT,0x10,0x10,0xe0,0x40,0xffca,0x003a,0x2a},
{DAT,0x10,0x10,0x80,0x40,0xffa0,0x0048,0x2a},
{END,0x10,0x00,0x00,0xf0,0xff66,0x003a,0x2a}, // 1/2 表示消去
{DAT,0x10,0x10,0x00,0x30,0xff76,0x002c,0x2a}, // 古田 2/2
{DAT,0x10,0x10,0xa0,0x00,0xff84,0x002c,0x2a},
{DAT,0x10,0x10,0x10,0x20,0xff92,0x002c,0x2a},
{DAT,0x10,0x10,0x00,0x50,0xffe6,0x002c,0x2a},
{DAT,0x10,0x10,0x00,0x00,0xfff4,0x002c,0x2a},
{DAT,0x10,0x10,0x60,0x20,0x0002,0x002c,0x2a},
{DAT,0x10,0x10,0x10,0x40,0xffbc,0x003a,0x2a},
{DAT,0x10,0x10,0x90,0x00,0xffd8,0x003a,0x2a},
{DAT,0x10,0x10,0x80,0x20,0xfff4,0x003a,0x2a},
{DAT,0x10,0x10,0x30,0x30,0x0002,0x003a,0x2a},
{DAT,0x10,0x10,0x10,0x00,0xff76,0x0048,0x2a},
{END,0x10,0x10,0x70,0x20,0xff84,0x0048,0x2a},
{DAT,0x10,0x10,0x90,0x40,0xffa0,0x002c,0x2a},
{DAT,0x10,0x10,0x60,0x20,0xffae,0x002c,0x2a},
{DAT,0x10,0x10,0x70,0x20,0xffbc,0x002c,0x2a},
{DAT,0x10,0x10,0x00,0x30,0xffca,0x002c,0x2a},
{DAT,0x10,0x10,0x20,0x00,0xffd8,0x002c,0x2a},
{DAT,0x10,0x10,0x90,0x40,0xff76,0x003a,0x2a},
{DAT,0x10,0x10,0x10,0x30,0xff84,0x003a,0x2a},
{DAT,0x10,0x10,0x20,0x30,
0x569200#
競技後セレクト */
static int task_gamesel( void ); /* 3: 競技セレクト */
static int task_gamernk( void ); /* 4: 競技ランキング */
static int task_playrnk( void ); /* 5: プレイヤー成績 */
static int task_rnk_sv ( void ); /* 6: ランキング セーブ */
static int ( *rnk_task[] )() = {
task_total , /* 0: 総合ランキング */
task_rnksel , /* 1: 競技後セレクト */
task_rnksel , /* 2: 競技後セレクト2 */
task_gamesel, /* 3: 競技セレクト */
task_gamernk, /* 4: 競技ランキング */
task_playrnk, /* 5: プレイヤー成績 */
task_rnk_sv , /* 6: セーブデータ選択 */
task_rnk_sv , /* 7: ダミー */
};
/*---- global ------------*/
extern char SD_status[];
extern short buru_tbl[]; /* BG(手前)「ぶるっ!」 */
extern short updn_tbl[]; /* BG(奥) 「ぶるっ!」 */
extern u_long m_spw[];
extern Uchar BGM_wtim; /* BGM鳴り出し待ちウェイトタイマー切り替え監視 */
extern u_char MR_JUN[]; /* マッスルランキング競技順テーブル */
extern M_WORK mw;
u_char r_sav[8]; /* カーソル位置の保存 */
u_char NowStsR; /* 状態ステータス */
u_char OldStsR; /* 状態ステータス */
u_char NewStsR; /* 状態ステータス */
u_char r_sv_rank; /* ランキング情報(順位)セーブ用 */
/* メモリーカード処理用 */
extern short ofsT[];
extern long sizT[];
extern MESS mess[];
static u_char tno, msg, next;
/*------------------------------------------------------------------*/
/* function */
/*-------------------------------------------------------
0x578C00#
0,0x40,0xe0,0x0031,0xff9c,0x1f},
};
/*--------------------------------------------*/
/* モードセレクト 奥 bg2.opd */
/*--------------------------------------------*/
SPD_W r_bg_d_spd[]={ // BG D
{DAT,0x40,0x40,0x00,0x00,0xff60,0xffd0,0x0f},
{DAT,0x40,0x40,0x00,0x40,0xff60,0x0010,0x0f},
{DAT,0x40,0x40,0x40,0x00,0xffa0,0xffd0,0x0f},
{DAT,0x40,0x40,0x40,0x40,0xffa0,0x0010,0x0f},
{DAT,0x40,0x40,0x80,0x00,0xffe0,0xffd0,0x0f},
{DAT,0x40,0x40,0x80,0x40,0xffe0,0x0010,0x0f},
{DAT,0x40,0x40,0xc0,0x00,0x0020,0xffd0,0x0f},
{DAT,0x40,0x40,0xc0,0x40,0x0020,0x0010,0x0f},
{DAT,0x40,0x40,0x00,0x80,0x0060,0xffd0,0x0f},
{END,0x40,0x40,0x00,0xc0,0x0060,0x0010,0x0f},
};
SPD_W r_bg_d_b1_spd[]={ // マッスル文字 縦
{DAT,0x28,0x40,0xd8,0x80,0xff70,0x0078,0x0e},
{DAT,0x28,0x40,0xd8,0xc0,0xff70,0x00b8,0x0e},
{DAT,0x28,0x38,0xb0,0x80,0xff70,0x00f8,0x0e},
{DAT,0x28,0x40,0x88,0x80,0xff70,0x0138,0x0e},
{DAT,0x28,0x40,0x88,0xc0,0xff70,0x0178,0x0e},
{DAT,0x28,0x48,0xb0,0xb8,0xff70,0x01b8,0x0e},
0x586A00#
------------------------------*/
/* セーブデータ */
/*--------------------------------------------*/
SPD_W rnk_sv_dt_spd[]={ // データパラメータ
{DAT,0x08,0x08,0x80,0x20,0xff91,0xfff4,0x2a}, // 0 ALL BATTLES
{DAT,0x08,0x08,0xd0,0x00,0xff99,0xfff4,0x2a},
{DAT,0x08,0x08,0xd0,0x00,0xffa1,0xfff4,0x2a},
{DAT,0x08,0x08,0x88,0x20,0xffad,0xfff4,0x2a},
{DAT,0x08,0x08,0x80,0x20,0xffb6,0xfff4,0x2a},
{DAT,0x08,0x08,0xa8,0x28,0xffbe,0xfff4,0x2a},
{DAT,0x08,0x08,0xa8,0x28,0xffc6,0xfff4,0x2a},
{DAT,0x08,0x08,0xd0,0x00,0xffce,0xfff4,0x2a},
{DAT,0x08,0x08,0xa0,0x20,0xffd6,0xfff4,0x2a},
{DAT,0x08,0x08,0xa0,0x28,0xffde,0xfff4,0x2a},
{DAT,0x10,0x10,0x90,0x00,0x0002,0xffe4,0x2a}, // 10 ○競技終了
{DAT,0x38,0x10,0x80,0x30,0x0010,0xffe4,0x2a},
{DAT,0x10,0x10,0x90,0x00,0x0052,0xffe4,0x2a}, // 12 ○位
{DAT,0x10,0x10,0xc8,0x30,0x0060,0xffe4,0x2a},
{DAT,0x28,0x10,0xd8,0x00,0x0002,0xfff0,0x2a}, // 14 よわい ふつう つよい
{DAT,0x10,0x10,0x80,0x00,0x003b,0xfff0,0x2a}, // 15 ポイント 千百十一
{DAT,0x10,0x10,0x80,0x00,0x0047,0xfff0,0x2a},
{DAT,0x10,0x10,0x80,0x00,0x0050,0xfff0,0x2a},
{DAT,0x10,0x10,0x80,0x00,0x0059,0xfff0,0x2a},
{DAT,0x08,0x10,0xd0,0x20,0x0045,0xfff0,0x2a}, // 19 コンマ
{END,0x10,0x10,0xb8,0x30,0x0062,0xfff0,0x2a}, // 20 P
};
SPD_W rnk_sv_nm_spd[]={ // 名前
{DAT,0x10,0x10,0x80,0x00,0xff8e,0xffe4,0x2a},
{DAT,0x10,0x10,0x80,0x00,0xff9c,0xffe4,0x2a},
{DAT,0x10,0x10,0x80,0x00,0xffaa,0xffe4,0x2a},
{DAT,0x10,0x10,0x80,0x00,0xffb8,0xffe4,0x2a},
{DAT,0x10,0x10,0x80
0x596400#
; i++ ) {
if( i== 0 ) {
srand( STIMER );
}
switch( n ) {
case 0: SWK.ri[i].PO = (rand() % 10);
SWK.ri[i].Point[n] = SWK.ri[i].PO * 10;
break;
case 1: SWK.ri[i].NH = (rand() % 10);
SWK.ri[i].Point[n] = SWK.ri[i].NH * 10;
break;
case 2: SWK.ri[i].BF = 0;
SWK.ri[i].Point[n] = 0;
break;
case 3: SWK.ri[i].GT = (rand() % 1000);
SWK.ri[i].Point[n] = SWK.ri[i].GT / 100;
break;
case 4: SWK.ri[i].BA = (rand() % 10000);
SWK.ri[i].Point[n] = SWK.ri[i].BA / 1000;
break;
case 5: SWK.ri[i].SH = (rand() % 10);
SWK.ri[i].Point[n] = SWK.ri[i].SH * 10;
break;
case 6: SWK.ri[i].GM = (rand() % 10);
SWK.ri[i].Point[n] = SWK.ri[i].GM * 10;
break;
case 8: SWK.ri[i].LS = (rand() % 10);
SWK.ri[i].Point[n] = SWK.ri[i].LS * 10;
break;
default:break;
}
}
switch( n ) {
case 2:
SWK.ri[1].BF = 3; SWK.ri[1].Point[
0x5A2600#
, CHARA_SELECT, CHARA_SELECT , CHARA_SELECT, CHARA_SELECT, CHARA_SELECT };
static u_char next_mode12 [] = { OPTION_SETUP , OPTION_INST , OPTION_PROF , OPTION_GALL };
static u_char next_mode13 [] = { END, END, END , END, END, END, END-1 };
static u_char next_mode18 [] = { EDIT_WORK , EDIT_WORK , EDIT_WORK };
static u_char next_mode_d1[] = { END , END , END , END , END , END , END , END , END , END , END , END , END , END };
static u_char next_mode_d2[] = { END-1, END-1, END
0x5AFC00#
0,0x002d,0x006a,0xff76,0xffb3,0xfff0,0x002d,0x006c,
};
static short no_posX2[] = { /* 二桁 一の位 */
0xff79,0xffb5,0xfff2,0x002f,0x006c,0xff78,0xffb5,0xfff2,0x002f,0x006d,
};
static u_char no_posUV[][2] = { /* 数値UV座標 */
{ 0x48, 0xb8 },
{ 0x70, 0xa0 },
{ 0x78, 0xa0 },
{ 0x38, 0xb0 },
{ 0x40, 0xb0 },
{ 0x48, 0xb0 },
{ 0x70, 0xa8 },
{ 0x78, 0xa8 },
{ 0x38, 0xb8 },
{ 0x40, 0xb8 },
};
static void set_card_no( u_char cno, u_char num )
{
sys_w;
SPD_W *spd;
u_char idx;
spd = s->classw0[cno].chara;
idx = num/10;
spd[0].u = no_posUV[idx][0]; /* 十の位 */
spd[0].v = no_posUV[idx][1];
spd[0].ysize = ( num < 10 ) ? 0x00 : 0x08;
idx = num%10;
spd[1].u = no_posUV[idx][0]; /* 一の位 */
spd[1].v = no_posUV[idx][1];
spd[1].offset_x = ( num < 10 ) ?
no_posX1[idx-1] : no_posX2[idx-1];
}
/*----------------------------*/
/* スプライトスケールコピー (c0←c1) */
/*----------------------------*/
static void set_spr_scale( u_char c0, u_char c1 )
{
sys_w;
0x5C2E00#
// ナインフープス
{DAT,0x10,0x10,0x90,0xb0,0xff72,0x0004,0x03},
{DAT,0x10,0x10,0xb0,0xd0,0xff7e,0x0004,0x03},
{DAT,0x10,0x10,0xc0,0xc0,0xff8a,0x0004,0x03},
{DAT,0x10,0x10,0x90,0xf0,0xff96,0x0004,0x03},
{DAT,0x10,0x10,0xe0,0xe0,0xffa2,0x0004,0x03},
{DAT,0x10,0x10,0xe0,0xb0,0xffae,0x0004,0x03},
{DAT,0x10,0x10,0x50,0x30,0xff65,0x000e,0x2b}, // 9HOOPS
{DAT,0x10,0x10,0x70,0x00,0xff6f,0x000e,0x2b},
{DAT,0x10,0x10,0x60,0x10,0xff78,0x000e,0x2b},
{DAT,0x10,0x10,0x60,0x10,0xff81,0x000e,0x2b},
{DAT,
0x5CCA00#
x0018,0x28},
{DAT,0x08,0x08,0xf0,0x78,0xfffc,0x0018,0x28},
{END,0x08,0x08,0xf8,0x78,0x0004,0x0018,0x28},
};
/* ↑バ ジョンを んで さい */
/* ↓ ー 選 下 */
SPD_W font03_1_spd[]={
{DAT,0x10,0x10,0xa0,0x70,0xff68,0xffc2,0x04}, // フォント(tp:06)
{DAT,0x10,0x10,0x60,0xb0,0xff84,0xffc2,0x04},
{DAT,0x10,0x10,0xc0,0xa0,0xff92,0xffc2,0x04},
{DAT,0x10,0x10,0x90,0x90,0xffa0,0xffc2,0x04},
{DAT,0x10,0x10,0x70,0x30,0xffae,0xffc2,0x04},
{DAT,0x10,0x10,0x90,0x30,0xffcc,0xffc2,0x04},
{DAT,0x10,0x10,0xd0,0x00,0xffda,0xffc2,0x04},
{DAT,0x10,0x10,0x00,0x20,0xfff8,0xffc2,0x04},
{END,0x10,0x10,0x10,0x00,0x0006,0xffc2,0x04},
};
SPD_W font03_2_spd[]={
{DAT,0x10,0x10,0x40,0x70,0xff76,0xffc2,0x04}, // フォント(tp:07)
{DAT,0x10,0x10,0x20,0x00,0xffbd,0xffc2,0x04},
{END,0x10,0x10,0x30,0x00,0xffe9,0xffc2,0x04},
};
/* ↑ でよろしいですか */
/* ↑ はい いいえ */
/* ↓以上 ? */
SPD_W font06_1_spd[]={
{DAT,0x10,0x10,0xd0,0x00,0xffd0,0xffc8,0x2a}, // フォント(tp:06)
{DAT,0x10,0x10,0x90,0x10,0xffde,0xffc8,0x2a},
{DAT,0x10,0x10,0x90,0x20,0xffec,0xffc8,0x2a},
{DAT,0x10,0x10,0x10,0x20,0xfffa,0xffc8,0x2a},
{DAT,0x10,0x10,0x10,0x00,0x0008,0xffc8,0x2a},
{DAT,0x10,0x10,0xd0,0x00,0x0016,0xffc8,0x2a},
{DAT,0x10,0x10,0x20,0x20,0x0024,0xffc8,0x2a},
{DAT,0x10,0x10,0x00,0x10,0x0032,0xffc8,0x2a},
{DAT,0x10,0x10,0x00,0x50,0xffd0,0xffe0,0x2a},
{DAT,0x10,0x10,0x10,0x00,0xffdf,0xffe0,0x2a},
{DAT,0x10,0x10,0x10,0x00,0x0002,0xffe0,0x2a},
{DAT,0x10,0x10,0x10,
0x5D4200#
d , /* 0x302f ガロンスロー */
(Ulong)game_04_spd , /* 0x3030 バック転50M走 */
(Ulong)game_05_spd , /* 0x3031 スプレーヒッター */
(Ulong)game_06_spd , /* 0x3032 ゲームメーカー */
(Ulong)game_07_spd , /* 0x3033 デットマンズドロップ */
(Ulong)game_08_spd , /* 0x3034 ロングシュート */
(Ulong)c_game_spd , /* 0x3035 カーソル選択時 */
(Ulong)h_game_spd , /* 0x3036 カーソル非選択時 */
/*--------------------*/
/* ゲームセレクト(イメージ) */
/*--------------------*/
(Ulong)gimg_00_spd , /* 0x3037 パンチアウト */
(Ulong)gimg_01_spd , /* 0x3038 ナインフープス */
(Ulong)gimg_02_spd , /* 0x3039 ビーチフラッグス */
(Ulong)gimg_03_spd , /* 0x303a ガロンスロー */
(Ulong)gimg_04_spd , /* 0x303b バック転50M走 */
(Ulong)gimg_05_spd , /* 0x303c スプレーヒッター */
(Ulong)gimg_06_spd , /* 0x303d ゲームメーカー */
(Ulong)gimg_07_spd , /* 0x303e デットマンズドロップ */
(Ulong)gimg_08_spd , /* 0x303f ロングシュート */
/*--------------------*/
/* バージョン選択(MS_V1) */
/*--------------------*/
(Ulong)t_versel1_spd, /* 0x3040 VERSION SELECT(TTL) */
(Ulong)t_versel2_spd, /* 0x3041 バージョンの選択 (TTL) */
(Ulong)ver_po0_spd , /* 0x3042 パンチアウト */
(Ulong)ver_po1_spd , /* 0x3043 Ⅰ */
(Ulong)ver_po2_spd , /* 0x3044 Ⅱ */
(Ulong)ver_po3_spd , /* 0x3045 Ⅲ */
(Ulong)c_verpo_spd , /* 0x3046 カーソル選択時 */
(Ulong)h_verpo_spd , /* 0x3047 カーソル非選
0x5FAA00#
,0x01},
{END,0x10,0x10,0x40,0x60,0x0045,0x0008-20,0x01},
};
/* カーソル OK */
SPD_W _wc_ok07_spd[]={
/* 構成数統一(カーソル移動用)のため2つ同内容 */
{DAT,0x48,0x18,0xb0,0xe8,0xffde,(0x001e)-20,0xfe},
{END,0x48,0x18,0xb0,0xe8,0xffde,(0x001e)-20,0xfe},
};
/* (確認) 未フォーマット */
SPD_W _warn081_spd[]={
{DAT,0x10,0x10,0xf0,0x10,0xffca,0xfff0-20,0x01},
{DAT,0x10,0x10,0x40,0x40,0xffda,0xfff0-20,0x01},
{DAT,0x10,0x10,0x80,0x60,0xffea,0xfff0-20,0x01},
{DAT,0x10,0x10,0x90,0x60,0xfffa,0xfff0-20,0x01},
{DAT,0x10,0x10,0x60,0x80,0x000a,0xfff0-20,0x01},
{DAT,0x10,0x10,0x00,0x70,0x002a,0xfff0-20,0x01},
{DAT,0x10,0x10,0xe0,0x60,0x004a,0xfff0-20,0x01},
{DAT,0x10,0x10,0x00,0x50,0x005a,0xfff0-20,0x01},
{DAT,0x10,0x10,0x20,0xb0,0xff94,0x0000-20,0x01},
{DAT,0x10,0x10,0xe0,0x90,0xffa4,0x0000-20,0x01},
{DAT,0x10,0x10,0x50,0x60,0xffc4,0x0000-20,0x01},
{DAT,0x10,0x10,0xd0,0xa0,0xffd4,0x0000-20,0x01},
{DAT,0x10,0x10,0x40,0x90,0xffe4,0x0000-20,0x01},
{DAT,0x10,0x10,0x00,0x20,0xfff4,0x0000-20,0x01},
{DAT,0x10,0x10,0x80,0x20,0x0004,0x0000-20,0x01},
{DAT,0x10,0x10,0x30,0x30,0x0014,0x0000-20,0x01},
{DAT,0x10,0x10,0x10,0x00,0x0024,0x0000-20,0x01},
{DAT,0x10,0x10,0x50,0x00,0x0034,0x0000-20,0x01},
{DAT,0x10,0x10,0x30,0x20,0x0044,0x0000-20,0x01},
{DAT,0x10,0x10,0x90,0x30,0x0054,0x0000-20,0x01},
{DAT,0x10,0x10,0x20,0xb0,0xffa8,0x0010-20,0x01},
{DAT,0x10,0x10,0xe0,0x90,0xffb8,0x0010-20,0x01},
{DAT,0x10,0x10,0x50,0x60,0xffd8,0x0010-20,0x01},
{DAT,0x10,0x10,0xd0,0xa0,0xffe8,0x0010-20,0x01},
{DA
0x602E00#
042,0xfff3,0x04}, // 秒
// スプレーヒッター
{END,0x10,0x10,0x10,0x30,0x0036,0xfff3,0x04}, // "枚"
// ゲームメーカー
{END,0x28,0x08,0x58,0x10,0x0033,0xfff8,0x04}, // "エリア"
// デットマンズドロップ
{END,0x30,0x10,0x80,0x90,0x0027,0xffe5,0x04}, // トーナメントアタリ
// ロングシュート
{END,0x10,0x10,0x10,0x30,0x0036,0xfff3,0x04}, // "枚"
// ナインフープス EX
{END,0x38,0x08,0x80,0xb8,0x0033,0xfff8,0x04}, // ステージ
// スプレーヒッター EX
{END,0x10,0x10,0xc0,0xb8,0x0043,0xfff3,0x04}, // 点
// ロングシュート EX
{DAT,0x10,0x08
0x606E00#
0xfff3,0x04},
{END,0x00,0x00,0x00,0x00,0x0000,0x0000,0x00}, // 表示なし
};
/*------------------------------------------------------------------*/
/* ポーズ画面関連 */
/*------------------------------------------------------------------*/
/* トップ画面 */
SPD_W Tpause_spd[]={ /* 1P(2P) PAUSE (タイトル) (MR/PR/EX共通) tB */
/* 1P PAUSE */
{DAT,0x10,0x10,0x00,0xb0,0xffba,0xffbe,0x01},
{DAT,0x18,0x10,0x28,0xb0,0xffce,0xffbe,0x01},
{DAT,0x20,0x10,0x60,0xa0,0xffe4,0xffbe,
0x612600#
,0xffd0,0x05},
{DAT,0x10,0x10,0xf0,0x00,0x008d,0xffd0,0x05},
{DAT,0x10,0x10,0xf0,0x00,0x009a,0xffd0,0x05},
{DAT,0x10,0x10,0xf0,0x00,0x005f,0xffe1,0x05}, /* 秒 */
{DAT,0x10,0x10,0xf0,0x00,0x006c,0xffe1,0x05},
{DAT,0x10,0x10,0xf0,0x00,0x008d,0xffe1,0x05},
{DAT,0x10,0x10,0xf0,0x00,0x009a,0xffe1,0x05},
{DAT,0x10,0x10,0xf0,0x00,0x005f,0xfff2,0x05}, /* 秒 */
{DAT,0x10,0x10,0xf0,0x00,0x006c,0xfff2,0x05},
{DAT,0x10,0x10,0xf0,0x00,0x008d,0xfff2,0x05},
{DAT,0x10,0x10,0xf0,0x00,0x009a,0xfff2,0x05
0x615C00#
, /* 0x66 データがありません */
(Ulong)c_replay_spd , /* 0x67 選択カーソル */
(Ulong)non_spd , /* 0x68 ダミー */
(Ulong)g_tour_spd , /* 0x69 トーナメント記録用 */
/*----------------------------------------------------------------*/
/* ポーズ画面関連 */
/*----------------------------------------------------------------*/
(Ulong)Tpause_spd , /* 0xce 1P/2P PAUSE(タイトル)tB */
(Ulong)cont1_spd , /* 0xcf ゲームを続ける tA */
(Ulong)cont2_spd , /* 0xd0 tB */
(Ulong)setup_spd , /* 0xd1 設定変更 tB */
(Ulong)exit_spd , /* 0xd2 ゲームをやめる tA */
(Ulong)retry_spd , /* 0xd4 やりなおす tA */
(Ulong)gmchg1_spd , /* 0xd5 競技変更 tA */
(Ulong)gmchg2_spd , /* 0xd5 競技変更 tB */
(Ulong)Tsetup_spd , /* 0xd7 設定変更(タイトル) tB */
(Ulong)buru1L_spd , /* 0xd8 振動(コントローラ1) tB */
(Ulong)buru1R_spd , /* 0xd9 ON/OFF tB */
(Ulong)buru2L_spd , /* 0xda 振動(コントローラ
0x619E00#
*)&em_no1[1] ) ){
TRANS_STEP++;
}
break;
case 3: /*優勝者が一人では無いとき*/
if ( num > 1 ){
set2d( G_CLS_W_WINNER, SPD_W_WINER, MODE16, 0,0, 14, 0, 10, 1 ); /*WINNERS表示*/
/*顔の表示*/
SetNO1_Face( num );
}
TRANS_STEP = 0;
return 1;
break;
}
return 0;
}
/***************************************************************************
NO.1の顔表示
in: int num 顔の枚数
*******************************************************************
0x640A00#
ASE_SUP+0x10) /*靴1 0x10*/
#define EBASE_SHOE2 (EBASE_SHOE1+0x10) /*靴2 0x10*/
/*髪の色、小物の色*/
/*髪の色#に応じた小物の色*/
typedef struct {
Schar item1[8]; /*小物1*/
Schar item2[8]; /*小物2*/
}HAIR_PTN;
/*服装による肌の色と服の色の組み合わせ*/
/*服装ごとにカラーバリエーションが12パターン用意されている*/
/*パターンを指定するようにする*/
typedef struct {
Schar wear1[12]; /*上着1*/
Schar wear2[12]; /*上着2*/
Schar under1[12]; /*下着1*/
Schar under2[12]; /*下着2*/
Schar under3[12]; /*下着3*/
Schar line[12]; /*ライン*/
Schar sup[12]; /*サポーター*/
}ED_PTN;
/*靴の色の組み合わせ*/
/*服のパターンをオフセットにして靴のパターンを引っ張れるようにする*/
typedef struct {
Schar shoe1[12]; /*靴1*/
Schar shoe2[12]; /*靴2*/
}SHOES_PTN;
/*一人分のカラーを連続転送するためのバッファ*/
/* -1が入っていたら転送しない */
typedef struct {
Schar skin; /*肌*/
Schar anti; /*アンチ*/
Schar hair; /*髪*/
Schar item1; /*小物1*/
Schar item2; /*小物2*/
Schar wear1; /*上着1*/
Schar wear2; /*上着2*/
Schar under1; /*下着1*/
Schar under2; /*下着2*/
Schar under3; /*下着3*/
Schar line; /*ライン*/
Schar sup; /*サポーター*/
Schar shoe1; /*靴1*/
Schar shoe2; /*靴2*/
}ED_TRN_BUF;
/*------------------------------------------------------------------*/
/* prototype */
/*------------------------------------------------------------------*/
/*----------------------------------
0x642A00#
-1, -1, -1, -1 }, /*サポーター*/
},
/*#3 タンクトップ+パワーパンツ*/
{
{ WCOL_BK, WCOL_WT, WCOL_R1, WCOL_R2, WCOL_OG, WCOL_YL, WCOL_G1, WCOL_G2, WCOL_B1, WCOL_B2, WCOL_PP, WCOL_PK }, /*上着1*/
{ WCOL_BK, WCOL_R2, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK }, /*上着2*/
{ WCOL_BK, WCOL_WT, WCOL_R1, WCOL_R2, WCOL_OG, WCOL_YL, WCOL_G1, WCOL_G2, WCOL_B1, WCOL_B2, WCOL_PP, WCOL_PK }, /*下着1*/
{ WCOL_BK, WCOL_R2, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK }, /*下着2*/
{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, /*下着3*/
{ WCOL_WT, WCOL_BK, WCOL_WT, WCOL_WT, WCOL_WT, WCOL_WT, WCOL_WT, WCOL_WT, WCOL_WT, WCOL_WT, WCOL_WT, WCOL_WT }, /*ライン*/
{ WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK }, /*サポーター*/
},
/*#4 タンクトップ+タイツ*/
{
{ WCOL_BK, WCOL_WT, WCOL_R1, WCOL_R2, WCOL_OG, WCOL_YL, WCOL_G1, WCOL_G2, WCOL_B1, WCOL_B2, WCOL_PP, WCOL_PK }, /*上着1*/
{ WCOL_BK, WCOL_R2, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK }, /*上着2*/
{ WCOL_BK, WCOL_WT, WCOL_R1, WCOL_R2, WCOL_OG, WCOL_YL, WCOL_G1, WCOL_G2, WCOL_B1, WCOL_B2, WCOL_PP, WCOL_PK }, /*下着1*/
{ WCOL_BK, WCOL_R2, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK, WCOL_BK }, /*下着2*/
{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, /*下着3*/
{ WCOL_WT, WCOL
0x647C00#
, side, EBASE_SUP, 490, 0 );
/*小物*/
if ( offset_k != -1 ){
if ( trn_buf.item2 != -1 )
GED_Col_Trans( wear1_pal_v[ trn_buf.item2 ][0], wear1_pal_v[ trn_buf.item2 ][1], 0x10, side, EBASE_ITEM2, 490, 0 );
GED_Col_Trans( wear1_pal_v[ trn_buf.item1 ][0], wear1_pal_v[ trn_buf.item1 ][1], 0x10, side, EBASE_ITEM1, 490, 0 );
}
/*靴*/
if ( trn_buf.shoe1 != -1 )
GED_Col_Trans( shoes_pal_v[ trn_buf.shoe1 ][0], shoes_pal_v[ trn_buf.shoe1 ][1], 0x10, side, EBASE_SHOE1, 490, 0 );
GED_Col_Trans( shoes_pal_v[ trn_buf.shoe2 ][0], shoes_pal_v[ trn_buf.shoe2 ][1], 0x10, side, EBASE_SHOE2, 490, 1 );
}
0x6B9200#
_init(); /* init Softwere Reset <p_init.c> */
/*----------------------*/
/* DEGUG FONT用 */
/*----------------------*/
#ifdef DEBUG
FntLoad(0x3c0,0x000);
SetDumpFnt(FntOpen(-0xb0,-0x50,0x180,0xf0,0,0x100));
#endif
/*----------------------*/
/* main loop */
/*----------------------*/
while(1) {
#ifdef DEBUG /* Vcount disp */
GsInitVcount();
FntPrint( "%3x / %3x : %3x / %3x :",vcnt0,vcnt0_max,vcnt1,vcnt1_max);
FntPrint( "%5x / %5x\n", packet_size, PACKETMAX );
#else
GsClearVcount();
#endif
#if 0
if ( INTER_MODE != INT_GAME || PAUSE_FLAG){ /*進行画面時 miya*/
joy_read(); /* read joypad <p_io.c> */
}
#else
joy_read();
#endif
ACTIVE_SIDE = GsGetActiveBuff(); /* アクティブなバッファを取得 */
if(ACTIVE_SIDE == 0) {
GPUADDRESS = (u_long *)&out_packet[0];
}else{
GPUADDRESS = (u_long *)&out_packet[1];
}
/* オーダーリングテーブルのクリア */
#if 1 // disp3d.cでlengthを変更しているので、万一を考えてここでなおしておく 1999.07.30 (矢)
SepOT[0].ot[ACTIVE_SIDE].length = OT_LENGTH;
#endif
GsClearOt(0, 0,&SepOT[0].ot[ACTIVE_SIDE]);
// GsClearOt(0,OT_SIZE-2,&SepOT[0].ot2[ACTIVE_SIDE]);
GsClearOt(0, 10,&ana_ot[ACTIVE_SIDE]); /*アナウンサー用*/
GsSetWorkBase (( PACKET* )GPUADDRESS );
step(); /* step work <p_2.c> */
GsSetRefViewUnit(sp->view_pt); /* 視点位置の設定 */
sp->wsmatrix = GsWSMATRIX; /* ワールドスリーンマトリクスの保存 */
class_set(
0x6E2E00#
反転*/
coord2->matrix.t[0]=-(long)opdr->tx;
coord2->matrix.t[1]=(long)opdr->ty;
coord2->matrix.t[2]=(long)opdr->tz;
}
}else{ /*頭のサイズを維持しつつ、モーションのトランスを調整*/
if ( !cls->hdir ){
coord2->matrix.t[0]=(long)((opdr->tx* (2*cls->scale.vx-cls->scale.vy)/cls->scale.vx )/* *1001/1000*/);
}else{
/*モーション反転*/
coord2->matrix.t[0]=-(long)((opdr->tx* (2*cls->scale.vx-cls->scale.vy)/cls->scale.vx )/* *1001/1000*/);
}
0x6E5A00#
be = OFF; /* 開いた手 */
cls->obj3D_w[PARTS_RHAND2].be = ON; /* 握った手 */
}
else if (cls->pose == 30)
{
cls->obj3D_w[PARTS_LHAND].be = OFF; /* 開いた手 */
cls->obj3D_w[PARTS_LHAND2].be = ON; /* 握った手 */
}
else if (cls->pose == 46)
{
cls->obj3D_w[PARTS_LHAND].be = ON; /* 開いた手 */
cls->obj3D_w[PARTS_LHAND2].be = OFF; /* 握った手 */
}
else if (cls->pose == 49)
{
cls->obj3D_w[PARTS_RHAND].be = ON; /* 開いた手 */
cls->obj3D_w[PARTS_RHAND2].be = OFF; /* 握った手 */
}
else if (cls->pose == 94)
{
cls->obj3D_w[PARTS_LHAND].be =
cls->obj3D_w[PARTS_RHAND].be = OFF; /* 開いた手 */
cls->obj3D_w[PARTS_RHAND2].be =
cls->obj3D_w[PARTS_LHAND2].be = ON; /* 握った手 */
}
}
break;
case CR_MAI:
if (cls->anime_no == 0) /*準備*/
{
if (cls->pose == 31)
{
cls->obj3D_w[PARTS_RHAND].be = ON; /* 開いた手 */
cls->obj3D_w[PARTS_RHAND2].be = OFF;
}
else if ((cls->pose == 0) || (cls->pose == 51))
{
cls->obj3D_w[PARTS_RHAND].be = OFF; /* 握った手 */
cls->obj3D_w[PARTS_RHAND2].be = ON;
}
}
break;
}
}
/*#############################################################################
; No.1モーション用手のモデル切換え
#############################################################################*/
static void changeNo1MotionHand(CLASS_W *cls)
{
if (cls->no1AnmType != 2) return; /*変更無し*/
/*バ
0x6E9600#
.t[1])>>1;
coord2->matrix.t[2]=(coord2->matrix.t[2]+cls->oldmatrix[obj_cnt].t[2])>>1;
}
cls->oldmatrix[obj_cnt] = coord2->matrix;
obj_cnt++;
{
MATRIX lw;
GsGetLwsUnit(coord2,&lw,&cls->ls); /* ローカル スクリーン ローカル ワールド マトリクスを計算 */
GsSetLightMatrix(&lw); /* 光源マトリクスをGTEにセット */
GsSetLsMatrix(&cls->ls); /* ローカル スクリーン マトリックスをGTEにセット */
}
}
/* オブジェクトを透視変換しオーダリングテーブルに登録する */
GsSortUnit(pGsUNIT,&ana_ot[sp->active_side],
0x6F4C00#
step = CD_READ_INIT;
LoadEf = KongoWaitPlay;
sp->ovrlay_step++;
}
break;
case 1:
KongoWaitPlay( 0 ); /*ローディング金剛君登場 毎フレーム呼ばれること*/
if( OverLay(OVERLAY_END) ){
sp->ovrlay_step++;
}
break;
case 2:
if ( child09() ){ /*とっても仮*/
Screen_Set2(384,240); /*画面の解像度を仮で戻しておく*/
SD_f_pause = 0; /*サウンドの処理関連*/
cd_read_step = CD_READ_INIT;
sp->ovrlay_step++;
}
break;
case 3:
if( OverLay( OVERLAY_MOVIE ) ) {
cd_read_step = CD_READ_INIT;
if( movie_num ) { /* 隠しが増えた */
sp->ovrlay_step++;
}else{ /* 変化なし */
sp->ovrlay_step=5;
}
}
break;
case 4: /*隠しキャラのムービー*/
Movie( movie_num );
if ( sp->ModSel.mode != 2 ) {
sp->ovrlay_step++;
}else{
CdReset(0);
step_set( SELECT_STEP );
sp->ovrlay_step = 0;
}
break;
case 5: /*エンディングムービー*/
/*ケインをユーザーが使っていて優勝したらケインムービー*/
for( good_ed=top_rank=0,i=0; i
0x6FA400#
8 DecDCTinSync
800D15C8 DecDCTout
800D1684 DecDCToutCallback
800D1624 DecDCToutSync
800D0FA8 DecDCTvlc2
800D12F8 DecDCTvlcBuild
800D0F78 DecDCTvlcSize2
801FA928 Dec_Buff
800C2610 DefaultSet
8001BF0C Default_Set
800A4E58 DelG2dPerfect06
800A0098 DelG2dRepPlate00
800A6E54 DelG2dSt06DispPartnerPlate
8009CB2C DelG2fRepPlate01
800988B0 DelG2fRepPlate02
80098AA4 DelG2fRepPlate03
8009ECF0 DelG2fRepPlate04
8009AE8C DelG2fRepPlate05
800A5EA0 DelG2fRepPlate06
80099E24 DelG2fRepPlate07
8009A854 DelG2fRepPlate08
8001E72C DelOpd
800C2D38 DelTTLAction
8003200C DeliverEvent
80013D14 Demo
8002291C DisableEvent
8003B3E8 DisablePAD
8002825C DpqColor3
80028234 DpqColorLight
8002486C DrawOTag
80026CE0 DrawOTag2
8002499C DrawOTagEnv
80024810 DrawPrim
80024278 DrawSync
80024180 DrawSyncCallback
800367A0 DsDataCallback
80036778 DsReadyCallback
8003678C DsStartCallback
80036764 DsSyncCallback
800403DC EF_S_00_p
800
0x6FCE00#
all_Set
800A3290 LBall_Set_Hangle
800A331C LBall_Set_Vangle
800A2AB4 LBall_Simulate
800A4868 LBall_Special_Set
800A3188 LBall_Spin
800A31EC LBall_Task
800A2C2C LBall_Tmp
800A2B68 LBall_Wind
800A47F8 LBall_Wind_Set
800AA570 LBoard_Eset
800AA2F8 LBoard_Mplay
800AA420 LBoard_Mset
800AA1E0 LBoard_System
800AA4B8 LBoard_Zone
800A9ECC LCom_Declare
800AA034 LCom_Direction
800A9564 LCom_Increment
800AA104 LCom_MeetX
800AA15C LCom_MeetY
800AA0A8 LCom_Power
0x6FEE00#
layer03GetNext
8009F940 Player03GetRecord
8009F998 Player03GetThrowN
8009FA0C Player03HumanN
8009F15C Player03Init
8009F9A8 Player03IsLast
8009E994 Player03Kick
8009E03C Player03Motion
8009ED58 Player03Operate
8009F08C Player03OperateInit
8009DCE0 Player03SetHand
8009DC00 Player03SetMot
8009DBB4 Player03SetPos
8009F6D4 Player03SetRecord
8009E7C0 Player03SetSE
8009DBE4 Player03SetVec
80027C80 PopMatrix
8001A1D0 Pose_Change
8009A434 Pose_Change02
8009DAD
0x701400#
etGeomScreen
80024070 SetGraphDebug
800240CC SetGraphQueue
8002B874 SetIR0
8002B860 SetIR123
800C1B64 SetIdxSpd
8003B094 SetInitPadFlag
80035C68 SetIntrMask
8002AFFC SetLightMatrix
800C348C SetLineBox
800272BC SetLineF2
800272DC SetLineF3
8002B8D4 SetMAC123
8001E0F8 SetMenuFade
800C10BC SetMsg
8001EC84 SetNO1_Each
8001F30C SetNO1_Face
8001EFC0 SetNO1_Fin
800C20BC SetPF4
80019BF0 SetPartsHand
80019BE8 SetPartsItem
800271BC SetPolyF3
800271FC SetPolyF4
8002721C SetPolyFT4
800271DC SetPolyG3
8002723C SetPolyG4
8002295C SetRCnt
8002B84C SetRGBfifo
8002B8C0 SetRii
8002819C SetRotMatrix
800C1AF0 SetSELAction
80015D4C SetSTP
8002B8AC SetSXSYfifo
8002B880 SetSZfifo3
8002B894 SetSZfifo4
8009143C SetSelMode
800C1BF0 SetSelSpd
8002715C SetSemiTrans
8002718C SetShadeTex
80018AE0 SetSpd
80018AEC SetSpd2
8002725C SetSprt8
800C2CF0 SetTTLAction
8002729C SetTile
8002727C SetTile1
800281CC Set
0x703A00#
8007E3B4 Stsector_offset
80039144 SysDeqIntRP
80039134 SysEnqIntRP
800B0000 TIM_TABLE
80140000 TIM_TABLE2
8009EA98 TVcam02AutoIsAuto
8009EA6C TVcam02AutoOn
8009EAB0 TVcam02AutoRestTime
8009E9C0 TVcam02AutoSet
8009E95C TVcam02AutoSetParent
8009EA8C TVcam02AutoTime
8009E934 TVcam02Get
8009E940 TVcam02GetAuto
8009E73C TVcam02Init
8009EC74 TVcam02SerialIsAuto
8009EC4C TVcam02SerialOn
8009ECD0 TVcam02SerialRestTimeAll
8009EC8C TVcam02SerialRestTimeOne
8009EAF4 TVcam02SerialSet
8009EBAC TVcam02SerialSetDirect
8009E8A8 TVcam02Set
8009E8DC TVcam02SetDirect
8009E904 TVcam02SetParent
8009ED50 TVcam02SetPosition
800A0E14 TVcam03AutoIsAuto
800A0DE8 TVcam03AutoOn
800A0E2C TVcam03AutoRestTime
800A0D3C TVcam03AutoSet
800A0CD8 TVcam03AutoSetParent
800A1130 TVcam03AutoStop
800A0E08 TVcam03AutoTime
800A0CB0 TVcam03Get
800A0CBC TVcam03GetAuto
800A0AB8 TVcam03Init
800A0FF0 TVcam03SerialIsAuto
800A0FC8 TVcam03SerialOn
800A104C TVcam03SerialRestTimeAll
800A1008 TVcam03SerialRestTimeOne
800A0E70 TVcam03SerialSet
800A0F28 TVcam03SerialSetDirect
800A1150 TVcam03SerialStop
800A0C24 TVcam03Set
800A0C58 TVcam03SetDirect
800A0C80 TVcam03SetParent
800A1170 TVcam03SetPosition
8009A264 TaruClsInit
8009A358 TaruClsSet
8009C1B8 TaruCopy
8009A140 TaruGetTexture
8009A534 TaruHitClr
8009A640 TaruHitDraw
8009A608 TaruHitMove
8009A55C TaruHitSet
8009A710 TaruLoad
8009C380 TaruMotion
800
0x706600#
ncSetGunPort
80039464 _padGetActSize
8004A820 _padGunExec
8004A818 _padInfoDir
8003A9E4 _padInitDirSeq
800387C4 _padInitSioMode
8004A81C _padIntExec
8003949C _padLoadActInfo
8004A830 _padModeMtap
800391F4 _padRecvAtLoadInfo
80039170 _padSendAtLoadInfo
80039154 _padSetAct
80039A10 _padSetActAlign
80039160 _padSetCmd
80039B5C _padSetMainMode
8003847C _padSetVsyncParam
8004A824 _padSioChan
80038BE8 _padSioRW
80038DF8 _padSioRW2
8004A828 _padSioState
80
0x708C00#
_pchild06_data_obj
800ACA03 _pchild06_data_objend
800ABED4 _pchild06_data_org
800ACA03 _pchild06_data_orgend
00000B2F _pchild06_data_size
800AD348 _pchild06_dtors_obj
800AD348 _pchild06_dtors_objend
800AD348 _pchild06_dtors_org
800AD348 _pchild06_dtors_orgend
00000000 _pchild06_dtors_size
80090000 _pchild06_obj
800AD348 _pchild06_objend
80090000 _pchild06_org
800AD348 _pchild06_orgend
80090004 _pchild06_rdata_obj
80090664 _pchild06_rdata_objend
80090004 _pchild06_rdata_org
80090664 _pchild06_rdata_orgend
00000660 _pchild06_rdata_size
800ACA08 _pchild06_sbss_obj
800ACA08 _pchild06_sbss_objend
800ACA08 _pchild06_sbss_org
800ACA08 _pchild06_sbss_orgend
00000000 _pchild06_sbss_size
800ACA08 _pchild06_sdata_obj
800ACA08 _pchild06_sdata_objend
800ACA08 _pchild06_sdata_org
800ACA08 _pchild06_sdata_orgend
00000000 _pchild06_sdata_size
0001D348 _pchild06_size
80090664 _pchild06_text_obj
800ABED4 _pchild06_text_objend
80090
0x70BC00#
_svm_damper
801FCAB8 _svm_envx_hist
801FCAB4 _svm_envx_ptr
801FCAF8 _svm_okof1
801FCAFA _svm_okof2
801FC3C0 _svm_okon1
801FC3C2 _svm_okon2
801FC3C8 _svm_onos1
801FC3CA _svm_onos2
801FC3C4 _svm_orev1
801FC3C6 _svm_orev2
801FCBE4 _svm_pg
801FCB00 _svm_rattr
801FC930 _svm_sreg_buf
801FC910 _svm_sreg_dirty
801FCBE0 _svm_stereo_mono
801FCBF0 _svm_tn
801FCC78 _svm_vab_count
801FCBF8 _svm_vab_not_send_size
801FCB18 _svm_vab_pg
801FCC80 _svm_vab_start
801FCBA0 _svm_vab_tn
801FCC38 _svm_vab_total
801FCC20 _svm_vab_used
801FCB58 _svm_vab_vh
801FCBE8 _svm_vg
801FCBEC _svm_vh
801FC3D0 _svm_voice
80010000 _text_obj
8004A8FC _text_objend
80010000 _text_org
8004A8FC _text_orgend
0003A8FC _text_size
8007E70C _waitTime
8017BD6C _warn011_spd
8017BEB0 _warn012_spd
8017BF58 _warn021_spd
8017BF64 _warn022_spd
8017BF7C _warn031_spd
8017BF88 _warn032_spd
8017BFA0 _warn041_spd
8017C0B4 _warn042_spd
8017C108
0x70EA00#
8009F24C ddp_tour_dare
8009EFD0 ddp_tour_init
8009F504 ddp_tour_manager
800A8A34 ddp_tournament
80091F3C ddp_v
8009280C ddp_vi
80093B68 ddp_vii
800956D0 ddp_viii
800A8C30 ddp_vs_name
800A2478 ddp_walk_se
800960D4 ddp_x
80096440 ddp_xi
800967D8 ddp_xii
80096838 ddp_xiii
80097014 ddp_xiv
800974AC ddp_xv
8009769C ddp_xvi
80097740 ddp_xvii
800A8A0C dead_line
800AA200 dead_man
8009C728 dead_man_init
8009C914 deadmansdrop
8004962C debug_cause
8001601C decode
80018EBC decrease_rgb_classw0
800190D8 decrease_size_classw0
800A5624 def_camera04
800A8C18 def_ddp_rand
800A8C1C def_ddp_round
8003EF94 def_demo_hand
800A8CE4 def_eye
801FB988 def_vol
8004ACA0 demo_box
8009F068 demo_copy04
8009B180 demo_copy05
8009A21C demo_copy07
8004AB25 demo_count
8004AB2A demo_step
80018858 disp2d
8001E39C disp2dName
8001E490 disp2dPoint
8001A50C disp3d
8001AC40 disp3d_ana
8001A9E0 disp4d
8001AA8C disp4d_BOT
8001AB1C disp5d
8001AB84 disp5d2
8009E3C4 disp_ball_kage
800A3370 disp_char_kage
8009F1E4 disp_char_navi
8001AAF8 disp_ground
8009F46C disp_shoot_kaku
8009EF88 disp_shoot_pow
8001AAD4 disp_wall
8003E250 dn_tack
800A5A98 down_p1_spd
800A5AC8 down_p2_spd
80040134 dummy2_spd
800A9848 ed_L11_spd
800A98A8 ed_L12_spd
800A9548 ed_Lya_spd
80099D70 ed_ModelInit
800A9C68 ed_R11_spd
800A9CB0 ed_R12_spd
800A9560 ed_Rya_spd
800A97AC ed_age_spd
800A9B60 ed
0x711A00#
05_p
800414FC loadb_PAT0007_p
80041510 loadb_PAT0008_p
80041524 loadb_PAT0009_p
80041538 loadb_PAT0010_p
8004154C loadb_PAT0011_p
80041560 loadb_PAT0012_p
80041574 loadb_PAT0013_p
80041588 loadb_PAT0014_p
8004159C loadb_PAT0015_p
800415B0 loadb_PAT0016_p
800415C4 loadb_pattern_table
80036E94 log
800370D4 log10
800B1478 lopt
800AEBF8 ls
800AD26C ls_bingo_pt
800AD278 ls_bingo_tbl
800AD290 ls_bmot_idx
800AD238 ls_explain
800AD244 ls_explain2
80042BB8 ls_fuki_spd
800AD248 ls_panel_pos
80042AE0 ls_rogo_spd
80042B10 ls_sousa_spd
800AD4D0 ls_sys
8003D314 lseek
80078370 lumi
800C2D70 m_BGMAutoSel
800C0148 m_ClrAction
80096B44 m_CurAct0
80096CC0 m_CurAct1
80096D20 m_CurAct2
800C1A58 m_FntMove
800C19F0 m_FntSet
800C018C m_GetAction
800C00A8 m_RunAction
800C010C m_SetAction
800C01AC m_SprClr
800C01E0 m_SprClrS
800C0724 m_SprMove
800C0888 m_SprMoveS
800C0964 m_SprMoveS2
800C05BC m_SprSet
800C069C m_SprSetS
800C0A44 m_SprStp
800C4BC8 m_spw
800C0080 m_work_init
800C0B24 m_yaji_sel
8017FC24 mae_nameA_spd
8017FF24 mae_nameB_spd
8017F744 mae_plt_spd
8017FA44 mae_point_spd
80180224 mae_ttl_spd
80012F5C main
800A5CB4 mark_p1_spd
800A5CC0 mark_p2_spd
8004A7D8 math_err_point
8004A7D4 math_errno
80170618 mcAction
80171B3C mcAutoCheck
801710F4 mcDataGet
80171124 mcDataSet
80170FEC mcExistChk
80170F74 mcFileExist
801700C0 mcFileSet
80170F1C
0x715C00#
00A1E8C speak04_main
800A2FF8 speak04_next
800A391C speak04_operate
800A37F4 speak04_replay
800A3774 speak04_replay_init
800A30A8 speak04_result
800A5AE0 speed_p1_spd
800A5B04 speed_p2_spd
80022B6C sprintf
801FB96C spu22
801FA880 spu22_w
801F9588 spuvol
801F95A8 spuvol22
8006CD08 spw
8001C024 sqr
80022B4C srand
80014C7C ssstep_set
80014C60 ssstep_up
80014C4C sstep_set
80014C30 sstep_up
80093644 stand_motion
8003632C startIntrDMA
8003620C startIntrVSync
8004AC3C start_angle
801FBA64 start_up_time
8004AC78 start_vp
8004AC88 start_vr
80013740 step
800950C8 step_down_motion
80014C14 step_set
80014BF4 step_up
801FBA58 str_adrs
801FB928 str_buf
801FB930 str_cnt
801F0BE8 str_dummy
801FA830 str_se_buf
801EE104 str_se_off22
801EE0BC str_se_off23
801EE0E0 str_se_on22
801EE098 str_se_on23
801FA890 str_se_size
8003D624 strcat
80022ADC strcmp
80022AEC strlen
80012F40 stup0
80012EC4 stup1
0x718C00#
0014670 Child
80014BF4 step_up
80014C14 step_set
80014C30 sstep_up
80014C4C sstep_set
80014C60 ssstep_up
80014C7C ssstep_set
80014C88 gstep_up
80014CA4 gstep_set
80014CB0 sp_gstep_set
80014CCC sp_step0_set
80014CD8 sp_step0_up
80014CF4 sp_step1_set
80014D00 sp_step1_up
80014D1C joy_init
80014DC4 joy_read
80014EA4 anacon_caribrate
80014ECC joy_check
800152EC ShockON
80015434 ShockPtnSet
8001548C GetShockPad
800154B0 AutoShock
800154F0 pad_run
800155B4 cd_file_load
80015764 cd_file_load_NB
80015918 First_Trans
800159A8 tim_trans
80015D4C SetSTP
80015DC8 OverLay
8001601C decode
80016248 CharTrans
80016A7C AnaTrans
80016CCC No1_Trans
80016DAC No1_Trans2
80016FC4 no1_Chara_Trans
80017120 PCdRead
800171D4 PCdReadSync
800174E4 P_cbcdready
80017704 GED_LoadPal
800177EC GED_LoadBody
8001798C GED_LoadHead
80017B14 GED_LoadBtex
80017D1C GED_LoadHtex
80017E54 GED_SetVram
80018404 GED_SetMod
0x71C400#
3BB7C MemCardAccept
8003BE8C MemCardOpen
8003C014 MemCardClose
8003C058 MemCardReadData
8003C24C MemCardWriteData
8003C440 MemCardReadFile
8003C698 MemCardWriteFile
8003C8F0 MemCardGetDirentry
8003CB50 MemCardCallback
8003CB64 MemCardSync
8003CC80 MemCardCreateFile
8003CE7C MemCardDeleteFile
8003D030 MemCardFormat
8003D0EC MemCardUnformat
8003D304 open
8003D314 lseek
8003D324 read
8003D334 write
8003D344 close
8003D354 nextfile
8003D364 erase
8003D374 firstfile
8003D614 firstfile2
8003D624 strcat
8003D634 _card_info
8003D644 _card_load
8003D654 _card_write
8003D664 _new_card
8003D674 _card_clear
8003D7F8 _card_format
8003DA04 _card_read
8003DA14 _card_status
8003DA24 UserFuncInit
8003DA34 UserFuncOpen
8003DAB0 UserFuncExecute
8003DB1C UserFuncComplete
8003DB34 funcEvSpIOE
8003DB48 funcEvSpError
8003DB5C funcEvSpTimeout
8003DB70 funcEvSpNewcard
8003DB84 funcEvSpIOEx
8003DB98 funcEvSpError
0x721E00#
00988B0 DelG2fRepPlate02
800988D8 Sh_Again
800988E8 KillG2d02
800988F0 t_rnk_s2_spd
80098924 G3dTrans02_Stage
80098944 rnk_sel_g1_spd
8009896C Sh_Motion_Batting
800989B0 rnk_sel_g2_spd
80098A1C rnk_sel_g3_spd
80098A24 SetG2dSave03
80098A38 Sh_Point_Calc
80098A3C SetG2dRew03
80098A3C SetG2dAna07
80098A68 G3dTrans02_Demo
80098A70 rnk_sel_g4_spd
80098A70 SetG2dFew03
80098AA4 DelG2fRepPlate03
80098AB0 SetG2dPerfect08
80098AD0 rnk_sel_g5_spd
80098ADC Kill
0x724A00#
C TVcam02AutoSetParent
8009E994 Player03Kick
8009E9A4 ddp_pose_set
8009E9C0 TVcam02AutoSet
8009EA6C TVcam02AutoOn
8009EA8C TVcam02AutoTime
8009EA94 Player03CalcAngle
8009EA98 TVcam02AutoIsAuto
8009EAB0 TVcam02AutoRestTime
8009EAF4 TVcam02SerialSet
8009EB68 ddp_falldown
8009EBAC TVcam02SerialSetDirect
8009EBE4 Player03CalcPower
8009EC4C TVcam02SerialOn
8009EC68 ddp_falldown2
8009EC70 SetG2dSave04
8009EC74 TVcam02SerialIsAuto
8009EC88 SetG2dRew04
8009EC8C TVcam02SerialRestTimeOne
8009ECBC SetG2dFew04
8009ECD0 TVcam02SerialRestTimeAll
8009ECF0 DelG2fRepPlate04
8009ECF4 ddp_snow_store
8009ED28 KillG2d04
8009ED50 TVcam02SetPosition
8009ED58 Player03Operate
8009ED64 ddp_snow_load
8009ED64 Sh_Draw_Ex_Base
8009ED64 G3dTrans04
8009ED98 ddp_effect
8009EE84 SetG2dPerfect00
8009EE84 G3dTrans04demo
8009EF08 Snow02Init
8009EF28 ddp_se
8009EF3C init_shoot_pow
8009EF68 SetG2dLane00
8009EF80 Snow02Move
8009EF88 disp_shoot_pow
8009EFD0 ddp_tour_init
8009EFF4 Sh_Draw_Ex_Count
8009EFF8 SetG2dClear00
8009F068 demo_copy04
8009F074 SetG2dMiss00
8009F08C Player03OperateInit
8009F094 SetG2dResult00
8009F09C init_shoot_kaku
8009F0B4 LObject_Gage4
8009F0D8 Snow02Draw
8009F124 Player03ClrParam
8009F15C Player03Init
8009F1E4 disp_char_navi
8009F22C camera04_plyr_slant
8009F24C ddp_tour_dare
8009F30C Sh_Draw_Bat
8009F3A0 ddp_auto_vs
8009F400 Player03GetNext
8009F46C disp_sho
0x727400#
0_spd
800A39A8 effect_Shadow_02
800A3A44 ver_po1_spd
800A3A4C beholder_2
800A3A50 ver_po2_spd
800A3A50 effect_Shadow_03
800A3A5C ver_po3_spd
800A3A68 ver_9h0_spd
800A3A80 return_packet
800A3AAC set_semi_rate
800A3ABC LBall_Hit_Zwall
800A3B04 ver_9h1_spd
800A3B10 ver_9h2_spd
800A3B1C ver_9h3_spd
800A3B38 beholder_3
800A3B40 c_verpo_spd
800A3B60 effect_Shadow1_03
800A3B88 h_verpo_spd
800A3BC4 gm_revision_head
800A3BD0 effect_Shadow_pos_03
800A3BD0 c_ver9h_spd
800A3C18 h_ver9h_spd
800A3C60 t_verset1_spd
800A3C64 gm_recover_head
800A3CF0 t_verset2_spd
800A3D20 gm_revision_leg
800A3D24 bf_GageInit
800A3D34 Sh_Camera_Rotate
800A3D50 ver_set0_spd
800A3DC0 gm_revision_foot
800A3DF8 ver_set1_spd
800A3E60 Sh_Camera_Zoom
800A3E60 GM_Kongo
800A3E94 ver_set2_spd
800A3EB0 effect_Smoke_03
800A3EBC effect_Backlight04
800A3EC4 ver_kind0_spd
800A3EE8 ver_kind1_spd
800A3F04 bf_GageSetup
800A3F24 ver_ya_spd
800A
0x72A400#
800A7C48 _pchild07_data_obj
800A7C90 ddp_paused
800A7C94 ddp_pause
800A7C98 ddp_sound
800A7C9C ddp_gauged
800A7CA0 ddp_ha_body
800A7CA8 ddp_ha_type
800A7CAC rec_scya_spd
800A7CC4 rec_plt_spd
800A7CD4 ddp_ha_tail
800A7CD4 Sh_Replay_Calculation
800A7CE8 ddp_boxf
800A7CF8 ddp_lose_pos
800A7D18 ddp_gallery
800A7D1C ddp_pica_cnt
800A7D48 em07_sd_xxx
800A7DE4 LTalk_Name
800A7ED0 LTalk_Number
800A7EFC LTalk_Test
800A7F04 LTalk_Furu_Opening
800A7F4C LTalk_Furu_Change
800A7F6C LTalk_Furu_Past
800A7F94 rec_nam_spd
800A7F98 po_ball_mot_set
800A8010 em_07_spd
800A8034 dd_explain
800A8040 Sh_Replay_Out
800A8064 LTalk_Furu_Before
800A80D0 LTalk_Furu_Declare
800A80F0 LTalk_Furu_After
800A80F4 Sh_Replay_Motion
800A81A4 LTalk_Furu_After2
800A8334 LTalk_Furu_Shoot
800A8378 LTalk_Furu_Success
800A83D4 So_Board_Vibration
800A841C LTalk_Furu_Miss
800A8534 rec_edit_spd
800A8544 LTalk_Furu_Replay
800A85A0 Sh_Display
0x72CA00#
4_spd
800AAB90 himo_final_joint
800AAB98 hj3
800AABEC ch_name5_spd
800AAC28 hj4
800AAC4C ch_name6_spd
800AACAC ch_name7_spd
800AAD0C ch_name8_spd
800AAD6C c_ch_sel_spd
800AAD84 prof_com0_spd
800AAE28 himo
800AAE3C gm_sound_stop
800AAE5C prof_com1_spd
800AAE64 GM_SD_call_name
800AAEA4 gm_jikkyou_clr
800AAEB8 GM_SD_call_Crank
800AAED4 ball4_spd
800AAF1C em_05_spd
800AAF68 sh_explain
800AAF80 Sh_Extra_Func
800AAFBC sh_ex_info
800AB040 GM_SD_call_Slope
800AB0B4 prof_com2_spd
800AB142 _pchild03_data_orgend
800AB142 _pchild03_data_objend
800AB148 _pchild03_sdata_orgend
800AB148 _pchild03_sdata_org
800AB148 _pchild03_sdata_objend
800AB148 _pchild03_sdata_obj
800AB148 _pchild03_sbss_orgend
800AB148 _pchild03_sbss_org
800AB148 _pchild03_sbss_objend
800AB148 _pchild03_sbss_obj
800AB148 _pchild03_bss_org
800AB148 _pchild03_bss_obj
800AB178 glw
800AB1F0 GM_SD_call_Downstep1
800AB20C hj_i3
800AB20E hj_i4
800AB213 _pchild02_data_orgend
800AB213 _pchild02_data_objend
800AB21C _pchild02_sdata_orgend
800AB21C _pchild02_sdata_org
800AB21C _pchild02_sdata_objend
800AB21C _pchild02_sdata_obj
800AB21C _pchild02_sbss_orgend
800AB21C _pchild02_sbss_org
800AB21C _pchild02_sbss_objend
800AB21C _pchild02_sbss_obj
800AB220 _pchild02_bss_org
800AB220 _pchild02_bss_obj
800AB240 prof_com3_spd
800AB2BC LSound_All_OFF
800AB2E4 LSound_Talk_Echeck
800AB350 LSub_Ball_NCheck
800AB370
0x72F600#
B14C0 _safety_bss_org
800B14C0 _safety_bss_obj
800B14D0 _safety_orgend
800B14D0 _safety_objend
800B14D0 _safety_bss_orgend
800B14D0 _safety_bss_objend
800B5000 HOMEHEAD_TABLE
800B8000 AWAYMODEL_TABLE
800BD000 AWAYHEAD_TABLE
800C0000 _m_comn_rdata_org
800C0000 _m_comn_rdata_obj
800C0000 _m_comn_org
800C0000 _m_comn_obj
800C0000 M_COMN_ADDRESS
800C0000 GROUND_TABLE
800C0080 m_work_init
800C0080 _m_comn_text_org
800C0080 _m_comn_text_obj
800C0080 _m_comn_r
0x731C00#
ame2_spd
8017DB84 _name3_spd
8017DBE4 _name4_spd
8017DC44 _nodat_spd
8017DCB0 _data0_spd
8017DD58 _data1_spd
8017DE00 _data2_spd
8017DEA8 _data3_spd
8017DF50 _data4_spd
8017DFF8 _rnum0_spd
8017E100 _rnum1_spd
8017E208 _rnum2_spd
8017E310 _rnum3_spd
8017E418 _rnum4_spd
8017E520 _mode_spd
8017E6C4 _game_spd
8017EB08 c_replay_spd
8017EBD4 Tpause_spd
8017EC64 cont1_spd
8017ECAC cont2_spd
8017ECB8 setup_spd
8017ECE8 exit_spd
8017ED3C retry_spd
8017ED78 gmchg1_spd
8017ED90 gmchg2_spd
8017EDA8 Tsetup_spd
8017EDD8 buru1L_spd
8017EDFC buru1R_spd
8017EE38 buru2L_spd
8017EE68 buru2R_spd
8017EEA4 voiceL_spd
8017EEBC voiceR_spd
8017EEF8 soundL_spd
8017EF10 soundR_spd
8017EF28 Tgmchg1_spd
8017EF40 Tgmchg2_spd
8017EF58 gm01_spd
8017EF64 gm02_spd
8017EF70 gm03_spd
8017EF7C gm04_spd
8017EF88 gm05_spd
8017EFA0 gm06_spd
8017EFAC gm07_spd
8017EFC4 gm08_spd
8017EFDC gm09_spd
8017EFE8 Tpname1_spd
0x734A00#
ts
801FB9C0 read_s
801FB9C4 cd_err
801FB9C6 save_22
801FB9C8 time_60
801FB9CC f_mono
801FB9D0 se_grp
801FB9E0 XA_fade
801FB9E8 XA_back
801FB9F0 sd_pause_ok
801FB9F2 SD_se_n
801FB9F4 SD_seqc
801FB9F8 VOL_spu
801FB9FC SD_seqn
801FBA00 XA_play
801FBA02 XA_size
801FBA04 SD_se_stream
801FBA08 cd_code
801FBA0C bgm_vol
801FBA0E pause_failed
801FBA10 sd_type
801FBA12 SD_bgm_n
801FBA14 SD_se_nb
801FBA16 org_da_entry
801FBA18 pos_sts
801FBA20 SD_seq_n
801FBA22 XA_count
801FBA24 SD_start
801FBA25 f_samecd
801FBA28 fpw
801FBA40 time_sec
801FBA44 sd_track
801FBA46 da_count
801FBA48 vab_size
801FBA4C da_entry
801FBA4E seq_time
801FBA50 size_lim
801FBA54 cd_retry
801FBA58 str_adrs
801FBA5C seq_port
801FBA5E SD_cdwait
801FBA60 SD_player
801FBA64 start_up_time
801FBA68 load
801FBA6C XA_ch
801FBA6E seq_pitch
801FBA70 XA_se
801FBA90 SD_f_pause
801FBA91 SD_ispause
801FBA98 SsFCALL
801FBB2C _snd_ev_flag
801FBB30 _snd_openflag
801FBB34 VBLANK_MINUS
801FBB38 _ss_score
801FBBB8 _SsMarkCallback
801FC3B8 _snd_seq_s_max
801FC3BA _snd_seq_t_max
801FC3C0 _svm_okon1
801FC3C2 _svm_okon2
801FC3C4 _svm_orev1
801FC3C6 _svm_orev2
801FC3C8 _svm_onos1
801FC3CA _svm_onos2
801FC3D0 _svm_voice
801FC910 _svm_sreg_dirty
801FC928 _autopan
801FC930 _svm_sreg_buf
801FCAB0 _autovol
801FCAB4 _svm_envx_ptr
801FCAB8 _svm_envx_hist
801FCAF8 _svm_okof1
0x750E00#
e
800A6E2C LTalk_Furu_After
800A6E34 ddp_man
800A6E40 t_setup2_spd
800A6E58 op_stup1_spd
800A6E7C op_stup2_spd
800A6E94 op_stup3_spd
800A6EAC op_stup4_spd
800A6EB4 ddp_renda
800A6EE0 LTalk_Furu_After2
800A6EE8 op_stup5_spd
800A6F3C op_stup6_spd
800A6F90 op_stup7_spd
800A6F90 gl_gageOn_Height
800A6FC0 op_stup1s_spd
800A7004 ddp_cpu
800A7008 gl_gageOn_Power
800A702C op_stup2s_spd
800A7068 op_stup3s_spd
800A7068 gl_gageOn_Walldist
800A7070 LTalk_Furu_
0x8C6200#
SULT_SUCCESS2) ||
(GmkRepDat[idx].anime_no0 == GM_RESULT_SUCCESS3))
{
s->classw[0].obj3D_w[PARTS_LHAND].be = s->classw[0].obj3D_w[PARTS_RHAND].be = OFF; /* 開いた手 */
s->classw[0].obj3D_w[PARTS_RHAND2].be = s->classw[0].obj3D_w[PARTS_LHAND2].be = ON; /* 握った手 */
}
else
{
s->classw[0].obj3D_w[PARTS_LHAND].be = s->classw[0].obj3D_w[PARTS_RHAND].be = ON; /* 開いた手 */
s->classw[0].obj3D_w[PARTS_RHAND2].be = s->classw[0].obj3D_w[PARTS_LHAND2].be = OFF; /* 握った手 */
}
}
#if 0
/*------------------------------------------------------------------*/
/* カメラ位置計算 */
/*------------------------------------------------------------------*/
static void setStandardPosition(void)
{
sp_w;
short rotY;
rotY = ratan2(-gm_work.main_cls->xposi, 2000);
sp->rview.vpx = -cameraDist * rsin(rotY+2048) >> 12;
sp->rview.vpz = -cameraDist * rcos(rotY+2048) >> 12;
sp->rview.vpy = -600;
sp->rview.vpx += gm_work.main_cls->xposi;
sp->rview.vpz += gm_work.main_cls->zposi;
sp->rview.vpy += gm_work.main_cls->yposi;
}
/*------------------------------------------------------------------*/
/* カメラ座標計算 */
/*------------------------------------------------------------------*/
static void SetVPPosition(short rotY, VECTOR *pVp)
{
sp_w;
MATRIX temp;
VECTOR targetVect;
/* カメラ位置計算 */
temp = GsIDMATRIX; /* 単位行列をもってくる */
RotMatrixY(rotY, &temp);
ApplyMatrixLV(&temp, pVp, &targetVe
0x8DFA00#
0000015(GsARGUNIT *);
extern u_long *GsU_00020008(GsARGUNIT *);
extern u_long *GsU_00020009(GsARGUNIT *);
extern u_long *GsU_0002000c(GsARGUNIT *);
extern u_long *GsU_0002000d(GsARGUNIT *);
extern u_long *GsU_00020010(GsARGUNIT *);
extern u_long *GsU_00020011(GsARGUNIT *);
extern u_long *GsU_00020014(GsARGUNIT *);
extern u_long *GsU_00020015(GsARGUNIT *);
extern u_long *GsU_0000000a(GsARGUNIT *);
extern u_long *GsU_0000000b(GsARGUNIT *);
extern u_long *GsU_0000000e(GsARGUNIT *);
extern u_long *GsU_0000000f(GsARGUNIT *);
extern u_long *GsU_00000012(GsARGUNIT *);
extern u_long *GsU_00000013(GsARGUNIT *);
extern u_long *GsU_00000016(GsARGUNIT *);
extern u_long *GsU_00000017(GsARGUNIT *);
extern u_long *GsU_00030008(GsARGUNIT *);
extern u_long *GsU_00030009(GsARGUNIT *);
extern u_long *GsU_0003000c(GsARGUNIT *);
extern u_long *GsU_0003000d(GsARGUNIT *);
extern u_long *GsU_00030010(GsARGUNIT *);
extern u_long *GsU_00030011(GsARGUNIT *);
extern u_long *GsU_00030014(GsARGUNIT *);
extern u_long *GsU_00030015(GsARGUNIT *);
extern u_long *GsU_00040048(GsARGUNIT *);
extern u_long *GsU_00040049(GsARGUNIT *);
extern u_long *GsU_0004004c(GsARGUNIT *);
extern u_long *GsU_0004004d(GsARGUNIT *);
extern u_long *GsU_00040050(GsARGUNIT *);
extern u_long *GsU_00040051(GsARGUNIT *);
extern u_long *GsU_00040054(GsARGUNIT *);
extern u_long *GsU_00040055(GsARGUNIT *);
extern u_long *GsU_00010008(GsARGUNIT *);
extern u_long *GsU_00010009(GsARGUNIT *);
extern u_long *G
0x8EC200#
----------------------------------*/
static void SetVPPosition(short rotY, VECTOR *pVp)
{
sp_w;
MATRIX temp;
VECTOR targetVect;
/* カメラ位置計算 */
temp = GsIDMATRIX; /* 単位行列をもってくる */
RotMatrixY(rotY, &temp);
ApplyMatrixLV(&temp, pVp, &targetVect);
sp->rview.vpx = targetVect.vx;
sp->rview.vpy = targetVect.vy;
sp->rview.vpz = targetVect.vz;
}
/*------------------------------------------------------------------*/
/* カメラ座標計算 */
/*------------------------------------------------------------------*/
static void SetVPPosition2(CLASS_W *cls, short idx)
{
sys_w;
sp_w;
cameraRotY = cls->rot.vy + cameraPosi[idx][CAM_ROT];
cameraRotX = cameraPosi[idx][CAM_HIGH];
cameraDist = cameraPosi[idx][CAM_DIST];
sp->rview.vpx = cameraDist * rsin(cameraRotY) >> 12;
sp->rview.vpz = cameraDist * rcos(cameraRotY) >> 12;
sp->rview.vpy = -400 + (cameraDist * rsin(cameraRotX) >> 12);
if (idx%2 == 0)
{
sp->rview.vrx = sp->rview.vrz = 0;
sp->rview.vry = -580;
}
else
{
sp->rview.vrx = cls->xposi;
sp->rview.vry = -400;
sp->rview.vrz = cls->zposi;
}
}
#endif
/*------------------------------------------------------------------*/
/* リプレイ用のキー入力判定 */
/*------------------------------------------------------------------*/
static int GmkRepKeyIn(void)
{
sp_w;
sys_w;
short addVal = 0; /* L,R押下時の上げ底 */
/******************************************
0x8F4E00#
512,240); /*画面の解像度を仮で戻しておく*/
#ifdef TEST /*デバッグフォントがつぶされるのでここで再設定*/
SetDispMask(0);
DrawSync(0);
FntLoad(0x3c0,0x000);
SetDumpFnt(FntOpen(-0xb0,-0x50,0x180,0xf0,0,0x100));
DrawSync(0);
SetDispMask(1);
#endif
ligit_init(); /*解像度を変更するとライトが初期化されるので再設定*/
disp3d( &s->classw[0], 0, 0, 0, -2000, 2048);
disp3d( &s->classw[1], 1,-300, 0, -1800, 2048);
disp4d( &s->classw1[ 0], 0, 0, 0, 0, 0 ); /*ボール*/
di
0xA6B200#
--------------------------------------------*/
#define DR_MAX 64 /* 使用するDR_MODEの最大数 */
void LObject_DR(Uchar flg,short otz)
{
static DR_MODE dr[DR_MAX][2]; /* DR_MODE */
SetDrawMode(&dr[ls->dr_idx][*ls->side],0,0,GetTPage(0,flg,0,(*ls->side)*240),0);
AddPrim(&SepOT[0].ot_work[*ls->side][otz],&dr[ls->dr_idx][*ls->side]);
ls->dr_idx++;
}
/*------------------------------------------------
ラインの描画
引数:始点XY座標(short x0,short y0)
終点XY座標(short x1,short y1)
OTZ(short z)
輝度(Uchar r,Uchar g,Uchar b)
戻値:なし
------------------------------------------------*/
void LObject_Line(short x0,short y0,short x1,short y1,short otz,Uchar r,Uchar g,Uchar b)
{
GsLINE line; /* 直線ハンドラ */
line.attribute = 0;
line.x0 = x0;
line.y0 = y0;
line.x1 = x1;
line.y1 = y1;
line.r = r;
line.g = g;
line.b = b;
GsSortLine(&line,&SepOT[0].ot[*ls->side],otz);
}
/*------------------------------------------------
グラデーションラインの描画
引数:輝度0(Uchar r0,Uchar g0,Uchar b0)
輝度1(Uchar r1,Uchar g1,Uchar b1)
始点XY座標(short x0,short y0)
終点XY座標(short x1,short y1)
戻値:なし
------------------------------------------------*/
void LObject_GLine(Uchar r0,Uchar g0,Uchar b0,Uchar r1,Uchar g1,Uchar b1,short x0,short y0,short x1,short y1)
{
GsGLINE line;
line.attribute = 0;
line.x0 = x0;
line.y0 = y0;
line.x1 = x1;
line.y1 = y1;
line.r0 = r0;
line.g0 = g0;
line.b0 = b0;
l
0xA6E600#
,&sxy[0],&sxy[1],&sxy[2],&sxy[3],&p,&flag);
/* エラー時は描画しない */
if(flag < 0) return;
/* XY座標の算出 */
for(i=0;i<4;i++)
{
if(ls->mode == MODE_EXTRA)
{
sx[i] = ((short)(sxy[i] & 0x0000FFFF)) + 192;
sy[i] = ((short)((sxy[i]>>16) & 0x0000FFFF)) + 28 - EXTRA_DEFY;
}
else
{
sx[i] = ((short)(sxy[i] & 0x0000FFFF)) + 192;
sy[i] = ((short)((sxy[i]>>16) & 0x0000FFFF)) + 28;
}
}
/* OTに登録 */
setXY4(&pt->ft4,sx[0],sy[0],sx[1],sy[1],sx[2],sy[2],sx
0xA71600#
ex_ft4,(-1*pt->ex_flg)<<4,(-1*pt->ex_flg)<<4,0); /* 障害物 */
for(i=4;i<8;i++)
{
pt->line[i].r = (-1*pt->ex_flg)<<4;
pt->line[i].g = (-1*pt->ex_flg)<<4;
pt->line[i].b = 0;
}
}
/* ベクトルのセット */
setVector(&v[0],-SIGHT_SIZE,-SIGHT_SIZE,0);
setVector(&v[1], SIGHT_SIZE,-SIGHT_SIZE,0);
setVector(&v[2],-SIGHT_SIZE, SIGHT_SIZE,0);
setVector(&v[3], SIGHT_SIZE, SIGHT_SIZE,0);
/* マトリックス用のベクトルをセット */
setVector(&ls->vec,pt->ex_v.vx,pt->ex_v.vy,pt->ex_v.vz);
0xA74600#
{96,192,32,24},
{48,176,48,48},
{48,223,48,32},
{96,192,32,24},
{96,176,32,16},
};
/* 前準備 */
if(replay->spark_cnt == 0) return;
if(ls->mode == MODE_EXTRA)
{
if(ls->event == EXTRA_REPLAY) frame = replay->frame;
else frame = replay->cnt;
}
else if(ls->mode == MODE_REPLAY)
{
frame = replay->frame;
}
else
{
if(ls->event == EVENT_REPLAY) frame = replay->frame;
else frame = replay->cnt;
}
/* アニ
0xA76E00#
ct_Wind(void)
{
ls->sprt->gs[24].u = (ls->ball->wind/10)<<4;;
ls->sprt->gs[26].u = (ls->ball->wind%10)<<4;
}
/*------------------------------------------------
エキストラモードの情報表示の更新
引数:なし
戻値:なし
------------------------------------------------*/
void LObject_Extra(void)
{
LSPRT *sprt = ls->sprt; /* スプライト情報へのポインタ */
LEXTRA *extra = ls->extra; /* エキストラモード情報へのポインタ */
/* エキストラモードのハイスコア更新のチェック */
LSub_Score_Check(
0xA7A200#
pt->v.vx = ball->ball_x;
pt->v.vy = ball->ball_y;
pt->v.vz = ball->ball_z;
pt->flg = 1;
}
/
/********** 関数プロトタイプ宣言 **********/
/*----- 初期化 -----*/
void LInit_Model(void); /* モデルデータの初期化 */
void LInit_Work(Uchar); /* ゲームワークの初期化 */
void LInit_Sprite(void); /* スプライトの初期化 */
void LInit_Ball(void); /* ボールの初期化 */
void LInit_Player(void); /* 選手の初期化 */
void LInit_Kage(void); /* 影の初期化 */
void LInit_Gage1(void); /* ゲージ・******************/
/*シュート後成功 */
/******************/
void shoot_success(CLASS_W *cls)
{
switch(gmmotp->mot_act){
case 1:
if(GM_Random(2)){
GM_Pose_Set(cls, GM_RESULT_SUCCESS1, 0, 0);
}
else{
GM_Pose_Set(cls, GM_RESULT_SUCCESS2, 0, 0);
}
gmmotp->mot_act++;
break;
case 2:
default:
if(End_Pose_Stop(cls)){
// gmmotp->mot_act = 0;
// gmmotp->mot_no = 0;
}
break;
}
}
/******************/
/*シュート後失敗 */
/******************/
void shoot_miss(CLASS_W *cls)
{
switch(gmmotp->mot_act){
case 1:
if(GM_Random(2)){
GM_Pose_Set(cls, GM_RESULT_MISS1, 0, 0);
}
else{
GM_Pose_Set(cls, GM_RESULT_MISS2, 0, 0);
}
gmmotp->mot_act++;
break;
case 2:
default:
if(End_Pose_Stop(cls)){
// gmmotp->mot_act = 0;
// gmmotp->mot_no = 0;
}
break;
}
}
/********************/
/*失敗時うなだれ */
/********************/
void rif_miss(CLASS_W *cls)
{
sp_w;
switch(gmmotp->mot_a
0xA7D600#
idou);
move_regulate( &gm_work.main_cls->yposi, gm_work.sub_cls->yposi, idou);
move_regulate( &gm_work.main_cls->zposi, gm_work.sub_cls->zposi, idou);
}
else{
gm_work.main_cls->xposi = -gm_work.sub_cls->xposi;
gm_work.main_cls->yposi = gm_work.sub_cls->yposi;
gm_work.main_cls->zposi = gm_work.sub_cls->zposi;
}
break;
#endif
}
}
/************************/
/*補正をかけながらの移動*/
/************************/
void move_regulate(short *moto, short saki,
0xA80400#
n Header */
#include "taka.h"
#include "game.h"
#include "lt_spd.h"
#include "lt_cd.h"
#include "g2d.h"
#include "sdcall2.h"
#include "mr_cmn2.h"
#include "mr_18.h"
///////////////////////////////////////////////////////////////////////////
//define
///////////////////////////////////////////////////////////////////////////
/*
クラスの内訳
0x00:フェード用
----
0x01:選手名1
0x02:選手名プレート1
0x03:ポイント
0x04:アナウンサー名
0x05:アナウンサープレート
0x06:紹介表示用職業
0x07:紹介表示用職業2
0x08:紹介表示用選手名
0x09:紹介表示用年齢・身長・体重
0x0a:紹介表示用”才”・”cm”・”kg”
0x0b:紹介表示用プレート
0x0c:演出文字A
0x0d:演出文字B
----
0x01:リプレー表示
0x02:リプレー用ボタン
0x03:リプレー用メニュー1
0x04:リプレー用メニュー2
0x05:リプレー用LRボタン
0x06:リプレー用戻しマーク
0x07:リプレー用送りマーク
0x08:リプレー用プレート
*/
#define G_CLS_NAME01 0x01
#define G_CLS_PLATE01 0x02
#define G_C
0xA83600#
d[0].u = num%6*0x28;
spd[0].v = num/6*0x18;
return ret;
}
/*==========================================================================
成功
==初期表示と演出
== in: short num 何番をゲットしたか(1~9)
== out: ==0: 処理中 ==1:終了
==========================================================================*/
int SetG2dGet08( short num )
{
int ret;
SPD_W* spd;
ret = _call_Em01( SPD_EM08_GET );
spd = GetSpd( SPD_EM08_GET );
spd[0].u = num%6*0x28;
spd[0].v = num/6*0x18;
return re
0xA86400#
ロ存しておく*/
cls->xposi = 300;
spd = (SPD_W*)cls->chara;
i=-1;
do{
i++;
keep_spd_x08[i] = spd[i].offset_x;
}while( spd[i].ccode != END );
SD_call(SD_SLIDEIN);
tag->tmp = tag->timer = 0;
tag->step++;
break;
case 1: /*画面右からホームポジションへ*/
cls->xposi -= 64;
if ( cls->xposi < 0 ){
cls->xposi = 0;
tag->step++;
}
break;
case 2: /*そのまま少し待つ*/
if ( ++tag->timer > 30*2 ){ /*2フレで2秒程度*/
SD_call(SD_SLIDEOUT);
tag->timer = 0;
tag->tmp = 1;
tag->step++;
}
break;
case 3: /*左にずりずりと*/
spd = (SPD_W*)cls->chara;
for ( i=0; i<tag->tmp; i++ ){
spd[i].offset_x -= 80;
if ( spd[i].offset_x < -300 ){
spd[i].offset_x = -300;
}
if ( spd[i].ccode == END ){
tag->tmp = i+1;
break;
}
}
if ( spd[i].ccode == END ){ /*パターンの最後まで手が回っている状態で*/
if ( spd[i].offset_x <= -300 ){ /*すっかり画面から消え去ったら*/
tag->
0xA88C00#
_x,offset_y palette */
{DAT,0x28,0x18,0x00,0x00,0xffc3,0x0010,0x4d},
{DAT,0x28,0x18,0x80,0xa0,0x0000,0x0010,0x4d},
{END,0x10,0x18,0xa8,0xe8,0x002c,0x0010,0x4d},
};
static SPD_W get_1_spd[]={
/* ccode,xsize,ysize,u,v,offset_x,offset_y palette */
{DAT,0x28,0x18,0x00,0x00,0xff94,0x0010,0x4e},
{DAT,0x28,0x18,0x80,0xa0,0xffbc,0x0010,0x4e},
{DAT,0x28,0x18,0x80,0xb8,0xffe8,0x0010,0x4e},
{DAT,0x20,0x18,0xb8,0xd0,0x000e,0x0010,0x4e},
{DAT,0x28,0x18,0x90,0xd0,0x002e,0x0010,0x4e},
{DAT,0x10,0x18,0xa8,0xe8,0x0051,0x0010,0x4e},
{END,0x10,0x18,0xa8,0xe8,0x0061,0x0010,0x4e},
};
static SPD_W miss_spd[]={
/* ccode,xsize,ysize,u,v,offset_x,offset_y palette */
{DAT,0x30,0x18,0xd0,0xb8,0xffb0,0x0010,0x4f},
{DAT,0x10,0x18,0x80,0xd0,0xffdc,0x0010,0x4f},
{DAT,0x28,0x18,0xd0,0xa0,0xffec,0x0010,0x4f},
{DAT,0x28,0x18,0xd0,0xa0,0x0010,0x0010,0x4f},
{DAT,0x10,0x18,0xa8,0xe8,0x0038,0x0010,0x4f},
{END,0x10,0x18,0xa8,0xe8,0x0048,0x0010,0x4f},
};
static SPD_W kiroku_1_spd[]={
/* ccode,xsize,ysi
0xA8B600#
1)){
sp->step1++;
gm_ball.link = ON;
break;
}
gm_move_chara(gm_work.main_cls); /*キャラの移動*/
break;
case 7: /*座標の修正*/
GMComkeyInput(com, 0); /*COMの動き*/
check_ball_move(gm_work.main_cls, gm_work.ball_cls1); /*ボールの移動と拾い判定*/
if( gm_regulate(gm_work.main_cls, gm_work.ball_cls1, gm_work.main_cls->xposi, -1900+hurdle_no*2400) ){
sp->step1++;
gm_high.f_thigh.r=128; /*test ゲージの色変え*/
gm_high.f_thig
0xA8DE00#
osi+rif_range[1][2]) )
{
/*リフティング音*/
selectLiftingSound(GMM_LEG_PLAIN, &sdNum);
GM_SD_call(sdNum);
gmmotp->mot_act = 1;
gmmotp->mot_no = GMM_LEG_USTEP;
gmmotp->turn_flg = OFF;
ball_posi_init(cls, cls1, gm_ball.high); /*ボールの移動初期化*/
return 1;
}
else if( (cls1->yposi>=cls->yposi+rif_range[2][0] && cls1->yposi<cls->yposi+rif_range[2][1]) )
{
/*リフティング音*/
selectLiftingSound(GMM_FOOT_PLAIN, &sdNum);
GM_SD_call(sd
0xA91200#
-------------------------------
カメラの管理
引数:なし
戻値:なし
------------------------------------------------*/
void LView_System(void)
{
LVIEW *view = ls->view; /* カメラ情報へのポインタ */
GsRVIEWUNIT *pt = ls->view->pt; /* HMD視点位置(リファレンス型)へのポインタ */
/* カメラの参照座標 */
LView_Parent();
/* カメラの設定 */
pt->vpx = ((((view->r * rcos(view->v))>>12) * rcos(view->h))>>12) + view->vrx + view->dx;
pt->vpy = ((view->r * rsin(view->v))>>12) + view->vry + view->dy;
pt->vpz = ((((view->r * rcos(view->v))>>12) * rsin(view->h))>>12) + view->vrz + view->dz;
pt->vrx = view->vrx + view->dx;
pt->vry = view->vry + view->dy;
pt->vrz = view->vrz + view->dz;
/* 視点位置の設定 */
GsSetRefViewUnit(pt);
}
/*------------------------------------------------
カメラの注視点の座標をセット
引数:カメラの注視点XYZ座標(short x,short y,short z)
戻値:なし
------------------------------------------------*/
void LView_Notice(short x,short y,short z)
{
LVIEW *view = ls->view; /* カメラ情報へのポインタ */
view->vrx = x;
view->vry = y;
view->vrz = z;
}
/*------------------------------------------------
カメラの視点要素をセット
引数:カメラの要素群
戻値:なし
------------------------------------------------*/
void LView_Set(short h,short v,short r,short dx,short dy,short dz)
{
LVIEW *view = ls->view; /* カメラ情報へのポインタ */
view->h = h; /* カメラの水平角度 */
view->v = v; /* カメラの垂直角度 */
vie
0xA94200#
1]->dx, cnt);
ret += LDemo_Culc(&view->dy, pt[0]->dy, pt[1]->dy, cnt);
ret += LDemo_Culc(&view->dz, pt[0]->dz, pt[1]->dz, cnt);
LView_Projection(*view->proj);
/* 終了判定 */
return(ret);
}
/*------------------------------------------------
カメラデモの計算
引数:変化させるカメラの要素へのポインタ(short *pt)
変化前の値(short A)
変化後の値(short B)
変化に掛かるフレーム数(short cnt)
戻値:終了判定(0:終了 1:継続)
------------------------------------------------*/
Uchar LDemo_Culc(short *pt,short A,short B,short cnt)
{
if((*pt) != B)
{
*pt += (B - A) / cnt;
if((A > B && (*pt) < B) || (A < B && (*pt) > B))
{
(*pt) = B;
return(0);
}
}
else
{
return(0);
}
return(1);
}
/*------------------------------------------------
リプレイの初期化
引数:なし
戻値:なし
------------------------------------------------*/
void LReplay_Init(void)
{
register int i; /* 作業カウンター */
LSAVE *save = ls->save; /* セーブ情報へのポインタ */
LREPLAY *replay = ls->replay; /* リプレイ情報へのポインタ */
bzero(replay->pt,LWORK_SIZE); /* リプレイワークをリプレイの最大記録数のサイズだけ0クリアする */
replay->frame = 0; /* フレーム(再生)の初期化 */
replay->cnt = 0; /* カウンター(記録)の初期化 */
replay->cont = 0; /* リプレイの再生方法の初期化(0:自動 1:手動) */
replay->manual = 0; /* リプレイの手動操作時のフラグの初期化(0:停止 1:等速再生 2:スロー再生 3:停止L1 4:停止R1 5:等速L1 6:等速R1 7:スローL1 8:スローR1) */
0xA96A00#
16; /* 水平視点 */
if(KEYLRIGHT(JOY1)) view->h += 16; /* 水平視点 */
if(KEYLUP(JOY1)) view->v -= 16; /* 垂直視点 */
if(KEYLDOWN(JOY1)) view->v += 16; /* 垂直視点 */
/* カメラの視点切り替え */
if(OLDKEYSELECT(JOY1))
{
if(ls->mode == MODE_EXTRA || ls->save->EX == 1) view->event = (++view->event)%4;
else view->event = (++view->event)%5;
LView_Event_Replay(0);
}
/* リプレイのプレートアニメ管理 */
LReplay_Anime();
/* 停止、等速再生、スロー再生切り替え */
if(OLDKEYRUP(JOY1) || OLDKEYSTART(JOY1)) replay->manual = cont_tbl[replay->manual][0];
else if(OLDKEYRLEFT(JOY1)) replay->manual = cont_tbl[replay->manual][1];
/* 巻き戻し、早送り切り替え */
if((!KEYL1(JOY1) && !KEYR1(JOY1)) || (KEYL1(JOY1) && KEYR1(JOY1))) LReplay_Speed(speed_tbl[replay->manual][0]);
else if(KEYL1(JOY1)) LReplay_Speed(speed_tbl[replay->manual][1]);
else if(KEYR1(JOY1)) LReplay_Speed(speed_tbl[replay->manual][2]);
}
}
/*------------------------------------------------
リプレイのプレートアニメ管理
引数:なし
戻値:なし
------------------------------------------------*/
void LReplay_Anime(void)
{
extern REP_CTRL rep_ctrl08; /* リプレー用プレート制御構造体 */
if((!KEYL1(JOY1) && !KEYR1(JOY1)) || (KEYL1(JOY1) && KEYR1(JOY1)))
{
if(rep_ctrl08.status & REP_CTRL_REW) SetG2dRew08();
if(rep_ctrl08.status & REP_CTRL_FEW) SetG2dFew08();
}
else if(KEYL1(JOY1))
{
if(!(rep_ctrl08.status & REP_CTRL_REW)) SetG2dRew08
0xA9AC00#
nFF */
break;
/* グー */
case G_G:
case G_P: (pt+PARTS_LHAND)->be = 0; /* 左手パーをOFF */
(pt+PARTS_LHAND2)->be = 1; /* 左手グーをON */
break;
}
/* 右手 */
switch(type)
{
/* パー */
case P_P:
case G_P: (pt+PARTS_RHAND)->be = 1; /* 右手パーをON */
(pt+PARTS_RHAND2)->be = 0; /* 右手グーをOFF */
break;
/* グー */
case G_G:
case P_G: (pt+PARTS_RHAND)->be = 0; /* 右手パーをOFF */
(pt+PARTS_RHAND2)->be = 1; /* 右手グーをON */
break;
}
}
/*------------------------------------------------
モーションの手の管理
引数:なし
戻値:なし
------------------------------------------------*/
void LMotion_TSystem(void)
{
CLASS_W *cls = ls->Phuman; /* 選手モデルへのポインタ */
Uchar *pt = ADDR_HAND; /* モーションの手の平テーブルへのポインタ */
if(cls->pose != 0) return;
LMotion_Hand(*(pt + cls->anime_no));
}
/*------------------------------------------------
モーションの足音
引数:なし
戻値:な
0xA9E600#
s->classw1[24].obj3D_w[0].ot_no = 250; /*客席(右)*/
s->classw1[25].obj3D_w[0].ot_no = 249; /*看板*/
s->classw1[26].obj3D_w[0].ot_no = 250; /*客席(後ろ)*/
s->classw1[27].obj3D_w[0].ot_no = 251; /*照明*/
/*コース*/
for(i=7; i<=20; i++){
s->classw1[i].obj3D_w[0].ot_no = 248; /*下から3番目*/
}
/*ゴール*/
s->classw1[5].obj3D_w[0].ot_no = 248; /*下から3番目*/
#else
/*背景*/
s->classw1[21].obj3D_w[0].ot_no = GROUND_OT; /*地面*/
s->classw1[22].obj3D_w[0].ot_no = 254; /*
0xAA1E00#
恚A */
ball->ball_y = ball->tmp_y; /* ボールのY座標の復帰 */
ball->ball_z = ball->tmp_z; /* ボールのZ座標の復帰 */
}
}
/*------------------------------------------------
ボールの当たり判定
引数:なし
戻値:なし
------------------------------------------------*/
void LBall_Hit(void)
{
/* ボールの座標保管 */
LBall_Tmp(0);
/* ボールとZ軸の壁の当たり判定 */
LBall_Hit_Zwall(MODE_MUSCLE);
/* ボールとX軸の壁の当たり判定 */
LBall_Hit_Xwall();
/* ボールと地面の当たり判
0xAA9400#
フバウンドフラグを立てる */
LHelp_Effect3_Set(); /* エフェクト3(着弾点)をセットする */
if(ls->mode != MODE_REPLAY)
{
LReplay_Srec(SD_18_POST); /* リプレイのSE記録 */
if(ls->step != 2)
{
SD_call(SD_18_POST); /* SE */
AutoShock(ls->Phuman,VIB_FRAME); /* 振動 */
}
}
}
ball->hit_x = 1; /* ボールのX座標当たりフラグ(0:未衝突 1:衝突済) */
}
/* リプレイのカメラ座標のセット */
if(ball->ball_x >= X_LIMIT || ball->ball_x <= -X_LIMIT) LReplay_Cpos();
}
/*------------------------------------------------
ボールの水平角度の反射(入射)
引数:角度変化のタイプ(1:入射 -1:反射)(Uchar type)
戻値:なし
------------------------------------------------*/
void LBall_Ref_Hangle(Schar type)
{
LBALL *ball = ls->ball; /* ボール情報へのポインタ */
/* ボールの入射角度を計算する(風のZ方向の最終速度は加味しない) */
#if 0
// ball->H_angle = ratan2(ball->dz + ball->W_ez , ball->dx + ball->C_ex + ball->W_ex);
ball->H_an
0xAACA00#
<塔gカメラ */
void beholder_2( void )
{
sp_w;
beholder.ddd += ( 4096 - 8 );
beholder.ddd %= 4096;
/* 視点更新 */
beholder.view.vpx = beholder.view.vrx + 500 * rsin( beholder.ddd ) / 4096;
beholder.view.vpz = beholder.view.vrz + 500 * rcos( beholder.ddd ) / 4096;
GsSetRefViewUnit( sp->view_pt );
}
/* 勝ち負けカメラ(対戦直後) */
void beholder_3( unsigned char id )
{
sp_w;
sys_w;
SVECTOR svc;
if( beholder.ddd == 0 )
{
/* 勝った? */
if( id == ddp_replay.winner )
{
/* 落ちた? */
if( dead_man[id].death_mask >= DDP_A_FALLDOWN0 && dead_man[id].death_mask <= DDP_A_FALLDOWN4 )
{
/* 参照点取得 */
get_joint( id, DDP_J_WAIST, &svc );
/* 参照点更新 */
beholder.view.vrx = svc.vx;
beholder.view.vry = svc.vy - 100;
beholder.view.vrz = svc.vz;
beholder.dpy = dice( 8 ) * 128 + 512;
beholder.dpz = dice( 4 ) * 128 - 128;
beholder.dpx = 2048;
beholder.ddd = 1;
}else
{
/* 参照点取得 */
get_joint( id, DDP_J_WAIST, &svc );
/* 参照点更新 */
beholder.view.vrx = svc.vx;
beholder.view.vry = svc.vy - 100;
beholder.view.vrz = svc.vz;
if( id == 0 )
{
beholder.dpy = -dice( 4 ) * 128;
}else
{
beholder.dpy = dice( 4 ) * 128 + 2048;
}
beholder.dpz = dice( 6 ) * 128 + 1664;
beholder.dpx = 2048;
beholder.ddd = 2;
}
}else
{
/* 参照点取得 */
get_joint( id, DDP_J_WAIST, &svc );
/* 参照点更新 */
switch( s->classw[id]
0xAB0A00#
EX_Replay(void); /* 実況EX(進藤):リプレイ */
void LTalk_Hatu_EX_Shoot(Uchar); /* 実況EX(初田):シュート前 */
void LTalk_Hatu_EX_Success(void); /* 実況EX(初田):成功 */
void LTalk_Hatu_EX_Miss(void); /* 実況EX(初田):失敗 */
void LTalk_Hatu_EX_Replay(void); /* 実況EX(初田):リプレイ */
void LTalk_Hatu_EX_GEnd(Uchar); /* 実況EX(初田):結果 */
#define FURU_OPENING 0 /* 競技前演出 */
#define FURU_CHANGE 2 /* アナウンサー交替 */
#define FURU_PAST 3 /* 前回の感想 */
#define FURU_BEFORE 13 /* 宣言前 */
#define FURU_DECLARE 17 /* 宣言時 */
#define FURU_AFTER 18 /* 宣言後 */
#define FURU_SHOOT 27 /* シュート時 */
#define FURU_SUCCESS 29 /* 成功 */
#define FURU_MISS 35 /* 失敗 */
#define FURU_REPLAY 44 /* リプレイ */
#define FURU_GEND 51 /* 結果 */
#define SHIN_REPLAY 58 /* リプレイ */
#define HATU_INTRO 64 /* 選手紹介 */
#define HATU_PAST 74 /* 前回の感想 */
#define HATU_BEFORE 90 /* 宣言前 */
#define HATU_DECLARE 92 /* 宣言時 */
#define HATU_AFTER 94 /* 宣言後 */
#define HATU_SUCCESS 111 /* 成功 */
#define HATU_MISS 118 /* 失敗 */
#define HATU_REPLAY 125 /* リプレイ */
#define HATU_GEND 133 /* 結果 */
#define FURU_EX_SHOOT 138 /* シュート前(エキストラモード) */
#define FURU_EX_SUCCESS 144 /* 成功(エキストラモード) */
#define FURU_EX_MISS 145 /* 失敗(エキストラモード) */
#define FURU_EX_REPLAY 147 /* リプレイ(エキストラモード) */
#define FURU_EX_GEND 151 /* 結果(エキストラモード) */
#define SHIN_E
0xAB4C00#
Talk_Call(FURU_REPLAY+4); /* 「わずかに外れてしまいました、ボールはむなしく宙を舞います」 */ /* 汎用 */
}
else if(declare->now_get >= 0)
{
/* 成功 */
if(declare->now_get == declare->select) LTalk_Call(FURU_REPLAY+5); /* 「見るものをひきつける!」 */ /* 宣言通り */
else LTalk_Call(FURU_REPLAY+6); /* 「さすが、確実に打ち抜いていきます」 */ /* 宣言とは違う */
}
}
/*------------------------------------------------
実況(古舘):競技終了
引数:実況タイプ(Uchar type)
戻値:なし
------------------------------------------------*/
void LTalk_Furu_GEnd(Uchar type)
{
LBOARD *board = ls->board; /* ボード情報へのポインタ */
switch(type)
{
/* 記録*枚 */
case 0: LTalk_Call(FURU_GEND); /* 「松井秀喜(ハイテンション)、記録(1~8)枚」 */
break;
/* コメント(パーフェクト未達成) */
case 1: if(board->rest == 1)
{
LTalk_Call(FURU_GEND+2); /* 「あと1枚、あと1枚が遠かった。残念です、これは悔いが残ります」 */ /* 残り1枚 */
}
else if(board->rest == 2)
0xABB600#
* LV3~4 */
LTalk_Call(HATU_EX_GEND+3); /* 「これで終わってしまったー!がっかりしている!これはくやしー!」 */
}
else if(extra->level >= 5 && extra->level <= 6)
{
/* LV5~6 */
LTalk_Call(HATU_EX_GEND+4); /* 「残念!もっと見たかったのですが、これで終わりです!」 */
}
break;
}
}
d LTalk_Hatu_Declare(void); /* 実況(初田):宣言時 */
void LTalk_Hatu_After(Uchar); /* 実況(初田):宣言後 */
void LTalk_Hatu_Success(void); /* 実況(初田):成功 */
0xAC2400#
o現フラグを立てる */
// g_FlgSet(13); /* ギャラリーモードフラグ(ロングシュートを4枚以上クリア) */
// g_FlgSet(21); /* ギャラリーモードフラグ(ロングシュートでビンゴ完成) */
// g_FlgSet(37); /* ギャラリーモードフラグ(ロングシュートを完全制覇) */
// g_FlgSet(43); /* ギャラリーモードフラグ(EXロングシュートを4レベル以上クリア) */
// g_FlgSet(48); /* ギャラリーモードフラグ(EXロングシュートを全レベルクリア) */
#endif
#if 0
sp->stage_no = 0;
set_kongou_mode(); /* 金剛くん出現フラグを立てる */
sp->stage_no = 8;
sp->stage_no = 0; set_konami_mode(); /* エキストラモードフラグ */
sp->stage_no = 1; set_konami_mode(); /* エキストラモードフラグ */
sp->stage_no = 3; set_konami_mode(); /* エキストラモードフラグ */
sp->stage_no = 5; set_konami_mode(); /* エキストラモードフラグ */
sp->stage_no = 8; set_konami_mode(); /* エキストラモードフラグ */
#endif
/***** (仮)ゲームモードの指定 *****/
#ifdef YOSSY_SPEED
// sp->ModSel.mode = MODE_MUSCLE; /* 00:マッスルランキング */
// sp->ModSel.m
0xAC5A00#
*view->proj;
(pt+1)->h = view->h;
(pt+1)->v = view->v;
(pt+1)->r = view->r;
(pt+1)->dx = view->dx;
(pt+1)->dy = view->dy;
(pt+1)->dz = view->dz;
}
if(KEYLLEFT(JOY1)) cnt -= 4;
if(KEYLRIGHT(JOY1)) cnt += 4;
limitRange(cnt,4,512);
if(OLDKEYRRIGHT(JOY1)) LDemo_Set(DM_OPEN_IDX);
if(KEYRUP(JOY1)) LDemo_Change(DM_OPEN_IDX,DM_OPEN_IDX+1,cnt);
FntPrint("DA(%d,%d,%d,%d,%d,%d,%d)\n", pt->proj,pt->h,pt->v,pt->r,pt->dx,pt->dy,pt->dz);
FntPrint("DB(%d,%d,%d,%d,%d,%d,%d)\n", (pt+1)->proj,(pt+1)->h,(pt+1)->v,(pt+1)->r,(pt+1)->dx,(pt+1)->dy,(pt+1)->dz);
FntPrint("CNT(%d)\n",cnt);
break;
#endif
/* メイン */
case 4: if(ls->flg == 0)
{
/* カメラデモ */
if(LDemo_Change(tbl[ls->sstep][0],tbl[ls->sstep][1],tbl[ls->sstep][2]) == 0)
{
ls->sstep++;
if(ls->sstep < OP_DEMO_NUM) LDemo_Set(tbl[ls->sstep][0]);
else ls->flg++;
}
}
else if(ls->flg == 1)
{
/* 古舘の実況の終了を待つ */
if(LSound_Talk_Echeck(16) == 1)
{
ls->flg = OP_NORMAL_END;
ls->step = 6;
}
}
/* スキップ */
if(OLDKEYRRIGHT(JOY1))
{
ls->flg = OP_SKIP_END;
ls->step = 5;
}
break;
/* フェードアウト */
case 5: if(MenuFadeOut(32,0) == 1) ls->step++;
break;
/* 終了 */
case 6: if(sd_type)
{
AnaDispSwitch(ls->Pfuru,OFF); /* 古館モデル・非表示 */
0xAC8E00#
w->dx;
pt->dy = view->dy;
pt->dz = view->dz;
}
if(OLDKEYRLEFT(JOY1))
{
(pt+1)->proj = *view->proj;
(pt+1)->h = view->h;
(pt+1)->v = view->v;
(pt+1)->r = view->r;
(pt+1)->dx = view->dx;
(pt+1)->dy = view->dy;
(pt+1)->dz = view->dz;
}
if(OLDKEYRRIGHT(JOY1)) LDemo_Set(DM_RES_IDX);
if(KEYRUP(JOY1)) LDemo_Change(DM_RES_IDX,DM_RES_IDX+1,64);
if(OLDKEYRDOWN(JOY1))
{
tmp = 0;
0xAD0200#
ン */
case 1: if(MenuFadeIn(32) == 1)
{
/* BGM */
if(board->rest == 1)
{
SD_call(O_ATO); /* 「あと1枚」コール */
}
else if(board->rest == 2)
{
SD_call(O_200); /* 「200万」コール */
}
else
{
if(ball->wind < 10) SD_call(O_SEN02); /* 風速:0.0m/s~0.9m/s */
else if(ball->wind < 30) SD_call(O_SEN10); /* 風速:1.0m/s~2.9m/s */
else if(ball->wind < 50) SD_call(O_SEN07); /* 風速:3.0m/s~4.9m/s */
else if(ball->wind < 100) SD_call(O_SEN04); /* 風速:5.0m/s~9.9m/s */
}
/* 実況 */
if(ls->ana == ANA_HATU)
{
LTalk_Hatu_Past();
LTalk_Hatu_Before();
}
else if(ls->ana == ANA_FURU)
{
LTalk_Furu_Past();
LTalk_Furu_Before();
}
ls->step++;
}
break;
/* パネル選択 */
case 2:
#if 1
LView_Declare(); /* パネル宣言のカメラワーク */
if(!ls->cpu) LCont_Declare(); /* パネル宣言の操作 */
if( (!ls->cpu && OLDKEYRRIGHT(JOY1)) || (ls->cpu && LCom_Declare()))
// if( OLDKEYRRIGHT(JOY1) )
{
/* SE */
SD_call(SD_DECIDE);
/* 実況 */
SD_call(SD_CTL_XAKILL2); /* 実況を全て止める */
if(ls->ana == ANA_HATU) LTalk_Hatu_Declare();
else if(ls->ana == ANA_FURU) LTalk_Furu_Declare();
/* カメラ */
LView_Parent_Set(VR_HUMAN);
tmp = Random(DM_DEC_NUM);
// tmp = (tmp++)%DM_DEC_NUM;
LDemo_Set(DM_DE
0xAD5C00#
i = 6144;
cls->rot.vy = -1024;
LMotion_Set(MKD_BAD1,MFLG_INIT);
}
else
{
LMotion_Walk();
ret = LDemo_Change(DM_IMP_IDX+8+(tmp<<1),DM_IMP_IDX+9+(tmp<<1),256);
}
break;
/***** パーフェクト達成 *****/
/* 通常 */
case 4: if(!type)
{
/* カメラ */
tmp = 0;
LDemo_Set(DM_PER_IDX);
/* 選手 */
cls->xposi = 0;
cls->zposi = -1024;
cls->rot.vy = 2048;
/* 特殊カメラ */
if(*ls->chara == NO_AKIYAMA)
{
LView_Parent_Set(VR_FREE);
LView_Notice(0,0,-1536);
}
/* 選手デモモーション */
LMotion_Dset(1);
}
else
{
/* カメラデモ */
if(LDemo_Change(DM_PER_IDX+(tmp<<1),DM_PER_IDX+(tmp<<1)+1,128) == 0)
{
tmp++;
if(tmp < 4)
{
LDemo_Set(DM_PER_IDX+(tmp<<1));
LMotion_Dset(1);
}
else return(0);
}
}
break;
/* 金剛くん専用 */
case 5: if
0xAE6E00#
/*「(選手名が)」「自爆!」*/
FD_F09, /*「(選手名が)」「優勝を決めました!」*/
FD_F12, /*「(選手名が)」「自爆!」*/
FD_F13, /*「(選手名が)」「自ら消えて行きました!」*/
FD_F10, /*「(選手名の)」「自爆により」*/
FD_F11, /*「(選手名が)」「優勝を決めました!」*/
};
short ddp_fu_replay[] = {
FK1_C01, /*「それではリプレイです」*/
FK1_C02, /*「リプレイを見てみましょう」*/
FK1_C04, /*「リプレイで振り返ってみましょう」*/
FK1
0xAECC00#
== 72 )
{
/* 右手 */
SD_call( SD_17_CLAP2 );
}
if( s->classw[id].pose == 98 )
{
/* 足をする */
SD_call( SD_17_SLIDE );
}
if( s->classw[id].pose == 31 || s->classw[id].pose == 37 || s->classw[id].pose == 42 || s->classw[id].pose == 70 || s->classw[id].pose == 104 )
{
SD_call( SD_17_KANE1 );
}
if( s->classw[id].pose == 26 || s->classw[id].pose == 85 )
{
SD_call( SD_17_KANE2 );
}
if( s->classw[id].pose == 14 || s->classw[id].pose == 34 || s->classw[id].pose == 40 || s->classw[id].pose == 54 )
{
SD_call( SD_17_KANE3 );
}
}
if( s->classw[id].work0 == DEMO_MOTION_OFFSET + 2 )
{
if( s->classw[id].pose == 16 )
{
/* 足をする */
SD_call( SD_17_SLIDE );
}
if( s->classw[id].pose == 12 )
{
/* 左足 */
SD_call( SD_17_FOOT1L + id * 2 );
}
}
break;
case 0x09: /* 古田 */
if( s->classw[id].work0 == DEMO_MOTION_OFFSET + 3 )
{
if(
0xAF3C00#
GsCOORDUNIT DWorld; /* 体全体用 */
GsCOORDUNIT DWorld_H; /* 頭専用 */
MATRIX ls;
/*1999.04.14 深野*/
OBJ3D_W obj3D_w [ OBJ3DMAX ];
MATRIX oldmatrix[OBJECTMAX];
Ushort anime_no; /* モーション番号 */
Uchar pose; /* モーション内のポーズフレーム */
Uchar player_no; /* キャラ# */
Uchar animeType; /* モーション種別(通常,DEMO)*/
Uchar no1AnmType; /* No.1モーションのタイプ*/
Uchar cpu; /* 0:PLAYER 1:CPU */
/*1999.07.07 nakayama*/
Uchar entry_no; /* キャラのエントリーした順番 */
short hangle; /* 頭の角度Y軸 */
short hangle_ud; /* 頭の角度X軸 */
/*99.05.26 nakayama*/
Uchar side; /*==0:player1側 ==1:player2側*/
Uchar hdir; /*反転情報 ==0:右利き ==1:左利き*/
Uchar merge_timer; /* */
/* Free Work */
Uchar mainstep; /* ステップワーク */
Uchar substep;
Uchar
0xAFCC00#
示*/
/*リプレー用ボタン*/
set2d( G_CLSR_BUTTON, SPD_REP_BUTT, MODE16, 0,0, 13, 0, 10, 1 );
/*リプレー用メニュー1*/
set2d( G_CLSR_MENU1, SPD_REP_MENU1, MODE16, 0,0, 13, 0, 10, 1 );
spd = GetSpd( SPD_REP_MENU1 );
spd[1].palette = 0x01;
for ( i=2; i<5; i++ ){
spd[i].palette = mode ? 0x01 : 0x03;
}
/*リプレー用メニュー2*/
set2d( G_CLSR_MENU2, SPD_REP_MENU2, MODE16, 0,0, 11, 0, 10, 1 );
spd = GetSpd( SPD_REP_MENU2 );
spd[0].palette = mode ? 0x01 : 0x03;
spd[1].palette = mode ? 0x01 : 0x03;
/*L、Rの文字*/
set2d( G_CLSR_LR, SPD_REP_LR, MODE16, 0,0, 13, 0, 10, 1 );
spd = GetSpd( SPD_REP_LR );
spd[0].palette = mode ? 0x01 : 0x03;
spd[1].palette = mode ? 0x01 : 0x03;
/*戻しマーク*/
set2d( G_CLSR_REW, SPD_REP_REW, MODE16, 0,0, 13, 0, 10, 1 );
/*送りマーク*/
set2d( G_CLSR_FEW, SPD_REP_FEW, MODE16, 0,0, 13, 0, 10, 1 );
if ( !mode ){ /*操作不能時*/
/*輝度を半分に*/
cls = &s->classw0[ G_CLSR_REW ];
cls->r = cls->g = cls->b = 0x40;
cls = &s->classw0[ G_
0xB09400#
ITEM_02 (0xa0) /* ビーチフラッグス ファイル数 2個 */
#define LOAD_ITEM_03 (0xa2) /* ガロンスロー ファイル数 2個 */
#define LOAD_ITEM_04 (0xa4) /* バック転50M走 ファイル数 2個 */
#define LOAD_ITEM_05 (0xa6) /* スプレーヒッター ファイル数 3個 */
#define LOAD_ITEM_06 (0xa9) /* ゲームメーカー ファイル数 2個 */
#define LOAD_ITEM_07 (0xab) /* デットマンズドロップ ファイル数 2個 */
#define LOAD_ITEM_08 (0xad) /* ロングシュート ファイル数 2個 */
#define LOAD_ITEM_09 (0xaf) /* エンディング ファイル数 2個 */
/*共用パレット(b.col系)*/
#define LOAD_COMN_PAL (0xb1)
/*ロード時タイトル&説明*/
#define LOAD_WAIT_00 (0xb2) /*ここから9競技分 */
/*ロード時金剛君*/
#define LOAD_WAIT_KONGO (0xbb) /*ここから2パターン */
/*コナミロゴ*/
#define LOAD_LOGO (0xbd) /*ロゴ*/
/*99.12.15 sugi */
#define LOAD_PO_DAT_TBL (0xbe) /* パンチアウトデータテーブル */
/*競技中の2D*/
#define LOAD_G2D_00 (0xbf) /*ここから10競技分 */
/*No.1用2Dデータ*/
#define LOAD_NO1_CSR (0xc8)
/*No.1用顔グラ*/
#def
0xB1AE00#
1 /*宣言 */
#define SPD_EM08_GET 0x1002 /*成功 */
#define SPD_EM08_MISS 0x1003 /*失敗 */
#define SPD_EM08_RESULT1 0x1004 /*結果表示1 */
#define SPD_EM08_RESULT2 0x1005 /*結果表示2 */
#define SPD_EM08_BINGO 0x1006 /*ビンゴ! */
#define SPD_EM08_RESULT3 0x1007 /*エキストラ用結果 */
#define SPD_EM08_START 0x1008 /*エキストラ用開始 */
#define SPD_EM08_GET2 0x1009 /*エキストラ用成功 */
#define SPD_EM08_CLEAR 0x100a /*エキストラ用クリア */
#define SPD_EM08
0xB2B400#
2; /* 反応速度 */
unsigned char brain2; /* 反応 */
unsigned short btn[8]; /* 連打のスケジュール */
unsigned short bbb; /* 連打のスケジュール用カウンタ */
unsigned char man; /* 0:man 1:machine */
unsigned char ctrl; /* コントローラ */
unsigned char death_mask; /* 勝ち負け決定時のモーション */
unsigned char motion[8]; /* モーション履歴 */
unsigned char mmm; /* モーション履歴用カウンタ */
SVECTOR svc; /* 演出用 */
} DEAD_MAN;
typedef struct {
unsigned char player; /* 0:1人用 1:多人数用 */
unsigned char dtbl[8]; /* 試合結果( 3位非対応トーナメント表用 ) */
unsigned char dtbl2[8]; /* 試合結果( 3位対応内部処理用 ) */
unsigned char tour[8]; /* 組み合わせ */
unsigned char tournament; /* X回戦 ( 0:1 1:2 2:3位決定 3:決勝 ) */
unsigned char mode; /* 試合形式 ( 0:8 1:4 2:2 )*/
unsigned char round; /* 試合回数 */
signed char dare[2]; /* 何番目のキャラ */
} DDP_TOUR;
typedef struct {
unsigned char dare;
unsign
0xB48C00#
4 バック転50m走*/
GM_SPRAY, /*5 スプレイヒッター*/
GM_G_MAKER, /*6 ゲームメーカー*/
GM_DEADMAN, /*7 デッドマンズドロップ*/
GM_L_SHOOT, /*8 ロングシュート*/
GM_STRUCK = 0, /*0 ストラックアウト*/
GM_KICK, /*1 キックターゲット*/
GM_MONSTER, /*2 モンスターボックス*/
GM_SHOTGUN, /*3 ショットガンタッチ*/
GM_TUGOFWAR, /*4 タッグオブウォー*/
GM_HUSTLER, /*5 ハスラー*/
GM_DARUMA, /*6 ダルマ*/
GM_BRAIN, /*7 ブレインパニック*/
};
/*===== キャラ# ===============*/
enum {
CR_MAT = 0, /*0x00 松井秀喜*/
CR_RAM, /*0x01 ラモス瑠偉*/
CR_OSA, /*0x02 大森晃*/
CR_DAI, /*0x03 松坂大輔*/
CR_AKI, /*0x04 秋山幸二*/
CR_KUD, /*0x05 工藤公康*/
CR_GON, /*0x06 中山雅史*/
CR_IKE, /*0x07 池谷直樹*/
CR_KNE, /*0x08 ケイン・コスギ*/
CR_FUR, /*0x09 古田敦也*/
CR_TAK, /*0x0a 武豊*/
CR_MAI, /*0x0b 舞の海*/
CR_HIG, /*0x0c 潮くん*/
CR_KON, /*0x0d 金剛くん*/
CR_ED1, /*0x0e エディット1*/
CR_ED2, /*0x0f エディット2*/
0xB4E600#
.player].pose + 1].pd != STOP )
{
Pose_Change( &s->classw[ddp_replay.player] );
ddp_demo_se( ddp_replay.player );
}
class_gs3d( &s->classw[ddp_replay.player] );
if( ddp_env.fnt == 1 )
{
if( SetG2dJudge07( &s->classw[ddp_replay.player], ( ddp_replay.player == ddp_replay.winner ) ? ( 0 ) : ( 1 ) ) != 0 )
{
ddp_env.fnt = 0;
}
if( sp->joyw[ddp_replay.honor].joytrg & PADRright )
{
ddp_sd_fade();
sp->gstepw = 4;
}
}else
{
0xB5B400#
選手情報の構造体へのポインタを渡す */
ls->ball = &ls->lball; /* ボール情報の構造体へのポインタを渡す */
ls->board = &ls->lboard; /* ボード情報の構造体へのポインタを渡す */
ls->declare = &ls->ldeclare; /* 宣言パネル情報の構造体へのポインタを渡す */
ls->motion = &ls->lmotion; /* モーション情報の構造体へのポインタを渡す */
ls->sprt = &ls->lsprt; /* スプライト情報の構造体へのポインタを渡す */
ls->kage = &ls->lkage; /* 影情報の構造体へのポインタを渡す */
ls->gage1 = &ls->lgage1; /* ゲージ1(左右の狙い)情報の構造体へのポインタを渡す */
ls->gage2 = &ls->lgage2; /* ゲージ2(風)情報の構造体へのポインタを渡す */
ls->gage3 = &ls->lgage3; /* ゲージ3(パワー&ミート)情報の構造体へのポインタを渡す */
ls->gage4 = &ls->lgage4; /* ゲージ4(予想着弾点)情報の構造体へのポインタを渡す */
ls->orbit = &ls->lorbit; /* 軌道情報の構造体へのポインタを渡す */
ls->effect1 = &ls->leffect1; /* エフェクト1(必殺シュート)情報の構造体へのポインタを渡す */
ls->effect2
0xB63E00#
メイン) */
case 11: if(ls->mode == MODE_EXTRA) g_RRset(*ls->chara,8,ls->extra->total);
else g_RRset(*ls->chara,8,9-ls->board->rest);
g_RSinit((Uchar *)save,sizeof(ls->lsave));
PAUSE_FLAG = RSAVE_STEP;
set_local_func(LObject_Replay); /* ポーズ中の描画 */
ls->pause = 1; /* ポーズフラグ(0:なし 1:あり) */
ls->step++;
break;
/* リプレイセーブ完了 */
case 12: clr_local_func();
ls->pause = 0; /* ポーズフラグ(0:なし 1:あり) */
ls->step++;
0xB69C00#
/* 100: sprite */
unsigned LgtMod : 1; /* LMD(light-mode) 0: with normal */
/* 1: with no normal */
unsigned MipMap : 1; /* MIP(mip-map) 0: no mip-map */
/* 1: mip-map */
unsigned PreSet : 1; /* PST(pre-set) 0: no preset */
/* 1: preset */
unsigned Tile : 1; /* TIL(tile) 0: with no tile texture */
/* 1: with tile texture */
unsigned Mime : 1; /* MIM(MIMe) 0: with no Built-in MIMe */
/* 1: with Built-in MIMe */
unsigned NoAssign: 5; /* No Assign (Not Used) */
} PRIM_FIELD;
#define PRIM_MSK 0x000007FF
#define GetPrimType( x ) (HWORD)( PRIM_MSK & x )
#define PRM_MIME 0x00000400 /* MIMe */
#define NO_BUILT 0x00000000 /* 0: with no Built-in MIMe */
#define BUILT 0x00000400 /* 1: with Built-in MIMe */
#define
0xB76600#
(マッスルランキング) */
case 1: while(1)
{
LReplay_Record(); /* リプレイの記録 */
LBall_Move(); /* ボールの移動 */
LBoard_System(); /* ボードの管理 */
LSub_Flag(1); /* 旗のはためき */
LMotion_System(); /* モーションの管理 */
ls->orbit->draw_flg = 1; /* 軌道の描画フラグのセット(0:スキップ 1:描画) */
LObject_Orbit(); /* 軌道の描画 */
LBall_Echeck(); /* ボールの停止判定 */
/* 終了判定 */
if(ls->ball->end
0xB83C00#
].func = Em08_func00;
spd = GetSpd( SPD_EM08_RESULT2 );
spd[2].u = num%6*0x28;
spd[2].v = num/6*0x18;
TRANS_STEP++;
}
if ( em08_act[0].func ){
if ( em08_act[0].func( (void*)&em08_act[0] ) ){
TRANS_STEP++;
}
}
if ( em08_act[1].func ){
em08_act[1].func( (void*)&em08_act[1] );
}
/*記録表示を左にスライド*/
if ( em08_act[0].step == 3 && !em08_act[1].func && em08_act[1].tmp != 0x81 ){
if ( em08_act[0].tmp > 4 ){ /*4文字くらい動きはじめたら*/
em08_act[1].tmp = 0x80;
}
}
if ( em08_act[1].tmp == 0x80 ){
s->classw0[ em08_act[1].cls ].xposi -= 80;
if ( s->classw0[ em08_act[1].cls ].xposi < -300 ){
/*表示OFF*/
s->classw0[ em08_act[1].cls ].kind = 0;
em08_act[1].tmp++;
TRANS_STEP++;
}
}
if ( TRANS_STEP == 3 ){
/*表示OFF*/
s->classw0[ em08_act[0].cls ].kind = 0;
TRANS_STEP = 0;
return 1;
}
return 0;
}
/*==========================================================================
ビンゴ!
==初期表示と演
0xB91E00#
NE 0x1001 /*チャレンジ前 */
#define SPD_EM00_FINAL 0x1002 /*ファイナルレーン前 */
#define SPD_EM00_CLEAR 0x1003 /*クリア */
#define SPD_EM00_MISS 0x1004 /*はずれ */
#define SPD_EM00_RESULT1 0x1005 /*結果表示1 */
#define SPD_EM00_RESULT2 0x1006 /*結果表示2 */
/*9フープス*/
#define SPD_EM01_PERFECT 0x1000 /*パーフェクト達成 */
#define SPD_EM01_SENGEN 0x1001 /*ターゲット宣言 */
#define SPD_EM01_GET 0x1002 /*命中 */
#define SPD_EM01_MISS 0x1003 /*はずれ
0xB98C00#
に画面消去抑制スイッチ追加。その他、不要なメンバ削除
1999/04/28 松岡 OBJ3D_W に pPrimTbl を追加、CLASS_W の hand,item を削除
1999/04/20 松岡 CLASS2_Wを廃止 CLASS_W SP_W SYS_W SYS0_W 中の未使用メンバを削除
1999/04/14 深野 OBJ3D_W を追加
HMD 3Dオブジェクト用
1999/04/08 松尾 sp_w に motion_no のメンバを追加
CLASS_W に反転再生判定用のメンバ revAnmFlag 追加
1999/03/30 松岡 sp_w に stage_no,mode_fg,mode_no,chara のメンバを追加
CLASS2_Wのワーク数を48へ変更
1999/03/23 松岡 OBJECTMAX 変更 CLASS2_W のメンバー変更
1999/03/01 松岡 地面表示専用として CLASS2_W を追加、各 CLASS_SUU を変更
1999/02/22 松尾 プレイヤー用のワーク(PLAY_W)を筋肉番付用に変更
※また変更する予定
1999.02.15 松岡 スクラッチパッドにカメラ情報追加
1999.02.05 松岡 CLASS_W,CLASS1_Wに画面分割用のメンバーを追加 scr_ot
1999.01.25 中山 CLASS0_Wに画面分割用のメンバーを追加 scr_ot
1999.01.18 中山 BG表示のための定義追加 BG_INF_MAX
1999.01.18 中山 BG表示のための構造体追加 MAP_INF BG_INF
1999.01.08 中
0xBB9C00#
*/
#define LOAD_ED_ANM (LOAD_ED_MD_A1+8) /*モーション 2個*/
/*エンディングデモプログラム*/
#define LOAD_END_MODEL (0x146) /*エンディングオブジェクトモデル miya991010*/
#define LOAD_END_TEX (0x147) /*エンディングオブジェクトテクスチャ miya991010*/
#define LOAD_END_MOTION (0x148) /*エンディングモーション miya991010*/
/* 99.12.17 Hosogai */
#define NO1_MOTION_NO (0x149) /* No1モーションデータテーブル */
/*空飛ぶ金剛くん用背景*/
#define LOAD_KON_SORA (0x14c) /*空飛ぶ金剛くん背景*/
/* ギャラリーモード用 */
#define LOAD_GALL_CSR1 (0x14d) /* ギャラリーモード用の絵 */
#define LOAD_GALL_CSR2 (0x14e) /* ギャラリーモード用の絵 */
/*CharTrans()内の謎のべた値*/
#define CHAR_TRANS_SPRAY_KONGO (14) /*"mod21a.bin"から"mod00a.bin"のINDEX差/3*/
#define CHAR_TRANS_SPRAY_MAT (16) /*"mod10a.bin"から"mod00a.bin"のINDEX差/3*/
#define CHAR_TRANS_SPRAY_DAI (15) /*"mod13a.bin"から"mod03a.bin"のINDEX差/3*/
#define CHAR_TRANS_SPRA
0xBC0A00#
大きさ */
#define MAX_SCR_HEIGHT 256
#define SLICE_IMG_SIZE (VRAMPIX(16,TRUE)*MAX_SCR_HEIGHT)
/* 16 の倍数でない大きさの動画を表示するためのマクロ */
#define mov_bound(val,n) \
((((val)-1)/(n)+1)*(n))
#define mov_bound16(val) \
(mov_bound((val),16))
/* strNext(),strNextVlc()がタイムアウトさせる繰り返しの数 */
#define MOVIE_WAIT 2000
/* ムービーワーク */
typedef struct {
/* デコード環境の実体 */
DECENV dec;
/* 最左端スライスを示すフラグ */
int isFirstSlice;
/* 終了フラグ:所定のフレームまで再生すると1になる */
int endOfMovie;
/* フレームナンバー */
int mov_now;
/* CD-ROMロケーション */
CdlLOC file;
/* 現在のロケーション */
CdlLOC cur_loc;
unsigned long tttt; /* 表示/描画切り替え */
DISPENV disp[2]; /* display buffer : 表示バッファ 上記ttttに対応して入れ替え */
/* 音フェードフラグ */
unsigned char fade;
} MOVIE_WORK;
extern int Movie( int id );
・
0xBD6400#
ター */
LEFFECT6 *pt = ls->effect6; /* エフェクト6ワークへのポインタ */
Uchar smoke_rgb[2] = {64,128};
short smoke_size[2] = {64,128};
for(i=0;i<2;i++)
{
/* プリミティブの初期化 */
LInit_Sub_FT4(&pt->ft4[i],1);
setRGB0(&pt->ft4[i],smoke_rgb[i],smoke_rgb[i],smoke_rgb[i]);
pt->ft4[i].tpage = GetTPage(0,1,512,256);
pt->ft4[i].clut = GetClut(SPRT_CX(0x92),SPRT_CY(0x92));
/* ベクトルの初期化 */
setVector(&pt->v[i][0],-1*smoke_size[i],-1*smoke_size[i],0);
setVector(&pt->v[i][1], smoke_size[i],-1*smoke_size[i],0);
setVector(&pt->v[i][2],-1*smoke_size[i], smoke_size[i],0);
setVector(&pt->v[i][3], smoke_size[i], smoke_size[i],0);
}
}
/*------------------------------------------------
エフェクト7(エキストラ着弾箇所)の初期化
引数:なし
戻値:なし
------------------------------------------------*/
void LInit_Effect7(void)
{
register int i; /* 作業カウンター */
LEFFECT7 *pt = ls->effect7; /* エフェクト7情報へのポインタ */
/* POLY_G3
0xBE4600#
{96,192,32,24},
{48,176,48,48},
{48,223,48,32},
{96,192,32,24},
{96,176,32,16},
};
/* 前準備 */
if(replay->spark_cnt == 0) return;
if(ls->mode == MODE_EXTRA)
{
if(ls->event == EXTRA_REPLAY) frame = replay->frame;
else frame = replay->cnt;
}
else if(ls->mode == MODE_REPLAY)
{
frame = replay->frame;
}
else
{
if(ls->event == EVENT_REPLAY) frame = replay->frame;
else frame = replay->cnt;
}
/* アニ
0xBF2A00#
name_pos_tbl[ entrybox[cls->entry_no] ]-spd->offset_x,IN_POS_Y-spd->offset_y,tp,0x69,10,1); /*選手名*/
}else{
/*名前の文字数を数える*/
for( tp=0,i=0; i<7; i++ ){
if ( s->edit_head[entrybox[cls->entry_no]-CR_ED1].name[i] != F_SPC )
tp++;
}
/*エディット選手の名前を表示させる*/
if ( tp ){
spd = GetSpd(SPD_IT_NAME);
set2d( G_CLS_IT_NAME, SPD_IT_NAME, MODE16, IN_M7_X,0, 10, 0x69, 10, 1 ); /*選手名*/
disp2dName( G_CLS_IT_NAME, 0, s->edit_head[entrybox[cls->entry_no]-CR_ED1].name ); /*名前を変える*/
}
}
/*年齢、身長、体重の表示*/
set2d( G_CLS_IT_PARA, SPD_IT_PARAM, MODE16, 0,0, 11, 0, 10, 1 ); /*パラメータ表示*/
{
short age,height,weight;
SPD_W* spd;
age = PD_AGE(entrybox[cls->entry_no]);
height = PD_HEIGHT(entrybox[cls->entry_no]);
weight = PD_WEIGHT(entrybox[cls->entry_no]);
/*年齢*/
spd = GetSpd( SPD_IT_PARAM );
if ( entrybox[cls->entry_no] != CR_KON ){ /*金剛くん以外*/
spd[0].u = age/10 * 0x10;
age %= 10;
spd[1].u = age * 0x10;
}else{ /*金剛くんは年齢不祥*/
spd[0].u = spd[1].u = 0xe0;
}
/*身長*/
spd[2].u = height/100 * 0x10;
height %= 100;
spd[3].u = height/10 * 0x10;
height %= 10;
spd[4].u = height * 0x10;
/*体重*/
if ( weight/100 ){ /*100kg以上ある時*/
spd[5].offset_y = 0x0059;
spd[5].u = weight/100 * 0x10;
}else{ /*100kgはないとき*/
spd[5].offset_y = -256;
}
weight %= 100;
spd[6].u = weight/10 * 0x10;
weight %= 10;
spd[7].u = weight
0xD95E00#
021,0x22}, // 上 5
{DAT,0x10,0x10,0xf0,0x00,0xff9f +1,0x004b,0x22}, // 下 6
{DAT,0x10,0x10,0xf0,0x00,0xffc7 +1,0x004b,0x22}, // 下 7
{DAT,0x10,0x10,0xf0,0x00,0x003f +1,0x004b,0x22}, // 下 8
{DAT,0x10,0x10,0xf0,0x00,0x0067 +1,0x004b,0x22}, // 下 9
{DAT,0x10,0x10,0xf0,0x00,0xff77 +1,0x0021,0x22}, // 上 左 隠し
{DAT,0x10,0x10,0xf0,0x00,0x008f +1,0x0021,0x22}, // 上 右 隠し
{DAT,0x10,0x10,0xf0,0x00,0xff77 +1,0x004b,0x22}, // 下 左 隠し
{DAT,0x10,0x10,0xf0,0x00,0x008f +1,0x004b,0x22}, //
0xD9EA00#
----*/
case 32:
m_SprClrS( L_TTL, 4+14+20 );
op_step = 0;
if( ! EDcur[0] ) {
EdtSts = 2; /* 名前設定へ */
} else {
EdtSts = 3; /* パラメータ設定へ */
}
break;
/*--------------------------*/
/* キャンセルで戻る */
/*--------------------------*/
case 42:
if( ! Fade( (8<<4)|2, LOGO, 19 ) )
break;
m_SprClrS( M_NEXT, 45 );
s->classw[0].kind = OFF;
sp->inter_mode = INT_VSYNC; /* 画面モード切り替え */
op_step++;
break;
case 43:
/* 待避データの復帰 */
setRECT( &rect, 0x180, 0x100, (0x80*2)/4, 0x80*2 ); /* face00,01 */
LoadImage( &rect, (u_long *)0x80148000 );
DrawSync( 0 );
setRECT( &rect, 0x240, 0x00, (0x80*4)/4, 0x80*2 ); /* bg00~07 */
LoadImage( &rect, (u_long *)0x80150000 );
DrawSync( 0 );
setRECT( &rect, 0x380, 0x100, (0x80*4)/4, 0x80*2 ); /* title01,02,04,05 */
LoadImage( &rect, (u_long *)0x80160000 );
DrawSync( 0 );
setRECT( &rect, 0x1c0, 0x100, (0x80*2)/4, 0x80 ); /* game00 */
LoadImage( &rect, (u_long *)0x800d4000 );
DrawSync( 0 );
setRECT( &rect, 0x3a0, 0x00, 0x80/4, 0x80 ); /* option05 */
LoadImage( &rect, (u_long *)0x800d8000 );
DrawSync( 0 );
setRECT( &rect, 0x000, 0x1fb, (0x80*8)/4, 0x01 ); /* pal */
LoadImage( &rect, (u_long *)0x800d3800 );
DrawSync( 0 );
/* BGのテクスチャページ復帰 */
spr = SETCLS0( BG_0 ); spr->tpage = 0x0a;
spr = SETCLS0( BG_1 ); spr->tpage = 0x09;
spr = SETCLS0( BG_2 ); spr->tpage = 0x0a;
spr->kind = ON;
spr = SETCLS0( BG_3 )
0xDA5E00#
al( CUR1 );
s->classw0[CUR1].yposi = mc_pos[0] * 0x10;
break;
case 22:
ret = 1;
for( i=0; i<8; i++ ) {
ret &= m_SprMove( CH_NAM+i, 2, OFF|(1<<7) );
set_spr_pos( CH_NAM+i+8, CH_NAM+i );
if( mvcnt <= i ) {
mvcnt ++;
break;
}
}
ret &= m_SprMove( CH_MSG, 5, OFF|(1<<7) );
if( ! ret )
break;
sno = MS_CH + 2 + pos_sav[EDIT_SELECT];
SetSelSpd( CH_MSG, sno, 1 );
for( i=0; i<8; i++ ) {
pDT = get_pEDbuf( 1^sl_flg, i );
name_decode( &pDT[1], CH_NA
0xDB2200#
erge_timer = 0;
cls[i]->xposi = p->xposi[i];
cls[i]->yposi = PLYR_YPOS;
if ((p->xposi[i] >= STEP_LINE) && ((p->anime[i]==bm_mot_fini1)||(p->anime[i]==bm_mot_fini2)||(p->anime[i]==bm_mot_fini3))){
cls[i]->yposi -= 30*4;
}
}
}
void ReplayRecSub(int no, short c)
{
// sys_w;
b50m_cls;
REPLAY_FRAME_DT *p = &replay_w04.rep_data[c];
int i;
for (i=0; i<2; i++){
p->anmp[i] = cls[i]->anime;
// p->anime[i] = cls[i]->anime_no;
p->anime[i] = bm_pwork[i].anime_no;
p->pose[i] = cls[i]->pose;
p->xposi[i] = cls[i]->xposi;
p->theta[i] = bm_rgauge[i].theta;
p->spd[i] = bm_rgauge[i].spd;
p->spd_max[i] = bm_rgauge[i].spd_max;
p->rk_step[i] = bm_rgauge[i].rk_step;
p->stack[i] = bm_rgauge[i].stack;
p->step[i] = bm_pwork[i].step;
p->sstep[i] = bm_pwork[i].sstep;
p->amari[i] = bm_pwork[i].amari;
p->rest[i] = bm_pwork[i].rest;
p->timer[i] = bm_pwork[i].timer;
}
#if 0
p->rand = bm_randw.counter;
#endif
}
void ReplayInitJoy()
{
memset(&replay_joy04, 0, sizeof(REPLAY_JOY_W));
ReplayInit();
}
int ReplayRecJoy(Ushort *key)
{
int ret = 0;
REPLAY_JOY_W *p = &replay_joy04;
// REPLAY_FRAME_DT *r;
#if 0
p->trg[0][p->count_max] = ((*key) & 0xf000)>>12;
IF_JOY2{
p->trg[1][p->count_max] = (*(key+1) & 0xf000)>>12;
}
#else
p->trg[0][p->count_max] = *key;
IF_JOY2{
p->trg[1][p->count_max] = *(key+1);
}
#endif
// r = &replay_w04.rep_data[p->count_max];
// b50m_replay_record(r);
p->count_max++;
if (p->count_max
0xDB8200#
========================================== */
/* ---------------------------------------------------------
共通 include
--------------------------------------------------------- */
#include "ps000.h"
#include "gbl_data.h"
#include "taka.h"
#include "game.h"
#include "g2d.h"
#include "camera.h"
#include "..\..\inc\mr_14.h"
#include "..\..\inc\mr_cmn2.h"
#include "..\..\inc\g2d.h"
/* ---------------------------------------------------------
ローカル include
--------------------------------------------------------- */
#include "b50m.h"
#include "prot04.h"
#include "replay.h"
/* ---------------------------------------------------------
define
--------------------------------------------------------- */
#define LEAD_P (bmjw.lead_p)
#define DELAY_P (bmjw.delay_p)
/* ---------------------------------------------------------
prototype
--------------------------------------------------------- */
static void length_set(void);
static void flg_set(void);
static void speak04_start(void);
static int speak04_opening(void);
static void speak04_middle_I(void);
static void speak04_middle_II(int,int);
static void speak04_others(void);
static void speak04_crush(int);
static void speak04_finish(int);
static void speak04_delay(void);
static void speak04_seesaw(void);
static void bmjw_stepset(int);
static void bmjw_stepinc(void);
static void vo_tbl_init(void);
static void ba_sd_call(int,int,int);
static void tbl_shuffle(int*,int);
static int sd_vo_tbl(int*);
static void sd_call_
0xDC1A00#
のみ強引に*/
check_ball_move(gm_work.sub_cls, gm_work.ball_cls1);
/* ボールを出した後は、ニュートラルにしておく */
End_Pose_Change(gm_work.main_cls, GM_NORMAL_STAND);
/*カメラを切り替えるタイミング調整*/
if (gmmotp->passAreaNum%2 == 0)
{
ret = (gm_work.ball_cls1->xposi < 0)?1:0;
}
else
{
ret = (gm_work.ball_cls1->xposi > 0)?1:0;
}
if (ret)
{
if (gmmotp->passAreaNum%2 == 0)
{
/*パケット節約*/
s->classw1[22].pclip = OFF;
s->classw1[24].pclip = ON;
}
else
{
/*パケット節約*/
s->classw1[22].pclip = ON;
s->classw1[24].pclip = OFF;
}
/*受け取りアシスト用ゲージ色変更*/
gm_high.f_thigh.r = gm_high.f_thigh.g = 128;
gm_high.f_thigh.b = 32;
gm_high.u_thigh.h = 0;
/*ゲージの高さ変更*/
setPassAssistGageHigh();
/*COM用の設定*/
com->work2 = gm_high.f_thigh.y + gm_high.f_thigh.h/2;
/*次で使う中心位置*/
com->work1 = gm_high.f_thigh.h/4+GM_Random(gm_high.f_thigh.h/2); /*次で使う*/
gm_work.ball_cls1->work6 = ON; /*胸トラップ*/
sp->step1++;
}
break;
case 3:
if (com->cpu)
{
/*****************************************/
/** COM用の利府 *******************/
/*****************************************/
if ((com->work2 - com->work1 <= gm_high.csl.y) &&
(gm_high.csl.y <= com->work2 + com->work1))
{
pad->joytrg |= P_RRIGHT;
}
}
if (check_ball
0xDC6200#
y+=char_turn;
}
cls->rot.vy = (cls->rot.vy<0) ? cls->rot.vy+4096 :
(cls->rot.vy>=4096) ? cls->rot.vy-4096 : cls->rot.vy;
buff = cls->rot.vy-muki;
if( abs(buff)<16 ) cls->rot.vy = muki;
cls->xposi = (char_speed * rsin(cls->rot.vy - 2048)>>12) + cls->xposi;
cls->zposi = (char_speed * rcos(cls->rot.vy - 2048)>>12) + cls->zposi;
/*ボールの移動*/
len = (len+2 <120)? len+2:
(len-2 >120)? len-2: 120;
cls1->xposi = (len * rsin(cls->rot.vy - 2048)>>12) + cls->xposi;
cls1->zposi = (len * rcos(cls->rot.vy - 2048)>>12) + cls->zposi;
// move_partner(0); /*パートナーの移動*/
if(cls->rot.vy == muki){
gm_ball.link = OFF;
return 1;
}
else{
gm_ball.link = ON;
return 0;
}
}
/****************************/
/*坂の処理 */
/****************************/
/*返り値 0:処理中 1:処理終了*/
/****************************/
int GM_Slope(void)
{
sp_w;
sys_w;
switch(sp->step1){
case 0: /*一回目のボール受け*/
GMComkeyInput(gm_work.sub_cls, 0); /*COMの動き*/
if ((s->classw[0].cpu) && (sp->joyw[0].joytrg == P_RRIGHT))
{
gm_work.sub_cls->work4 = gm_high.f_head.y + gm_high.f_head.h/2;
/*次で使う中心位置*/
/*一度高く上げる*/
sp->joyw[0].joytrg &= ~P_RRIGHT;
sp->joyw[0].joytrg |= P_RUP;
}
if(check_ball_move(gm_work.main_cls, gm_work.ball_cls1)){
sp->step1++;
gmmotp->turn_flg = OFF;
gmmotp->camCtrlFlg = 0x00;
set_course_ot(1);
gm_jikkyou_clr();
0xDCD400#
step;
Uchar status;
Uchar action;
Uchar trans_fg;
Uchar pri;
Uchar hit_pin_no; /* 直前に衝突したピン#を保存 */
Uchar hit_pos;
short timer;
short pin_no;
short work0;
short work1;
long base_speed;
long base_accel;
long direct_angle;
long angle;
long angle_step;
long rotate;
long rot_step;
long roll;
VECTOR sample_pos[6];
VECTOR pos;
VECTOR next_pos;
VECTOR speed;
VECTOR accel;
} PO_PIN_W;
typedef struct {
Uchar obj_kind; /* 障害物の種類 */
Uchar result; /* 障害物と球の関係 */
long x; /* 障害物のx座標 */
long z; /* 障害物のy座標 */
long width; /* 障害物の幅 */
long height; /* 障害物の高さ */
long depth; /* 障害物の奥行き */
} PO_EX_OBJ_W;
#define PO_PIN_WORK_ADR (PO_PIN_W *)0x8016c000L /* ピンのワークを置くアドレス */
#endif
的な倍率 */
#define MAGNIFICATION (MODEL_SCALE * GRID_SCALE)
#define LANE_NUM 9
#define MAX_PIN_NUM 10
#define REPLAY_SLOW_WAIT 2
#define REPLAY_BUFF
0xDD6C00#
ーブ表示点滅がONになっていたら*/
rep_ctrl00.mode ^= REP_CTRL_SAV;
rep_ctrl00.status ^= REP_CTRL_SAV;
spd = GetSpd( SPD_REP_MENU1 );
spd[1].palette = 0x01;
}
rep_ctrl00.status |= rep_ctrl00.mode;
if ( rep_ctrl00.status & REP_CTRL_ACT ){
/*戻しマーク始動*/
if ( rep_ctrl00.status & REP_CTRL_REW ){
if ( !(rep_ctrl00.timer%0x05) ){
frame_lighten_org( 0x64, 1, 3 );
}
}
/*送りマーク始動*/
if ( rep_ctrl00.status & REP_CTRL_FEW ){
if ( !(rep_ctrl00.timer%0x05) ){
frame_lighten_org( 0x64, 4, 6 );
}
}
}
/*セーブマーク点滅*/
if ( rep_ctrl00.status & REP_CTRL_SAV ){
if ( !(rep_ctrl00.timer%10) ){
spd = GetSpd( SPD_REP_MENU1 );
if ( spd[1].palette == 0x01 ){
spd[1].palette = 0x66;
}else{
spd[1].palette = 0x01;
}
}
}
rep_ctrl00.mode = 0;
rep_ctrl00.timer++;
return rep_ctrl00.status;
}
/***************************************************************************
リプレープレート・セーブ点滅 ON/OFF
0xDDE400#
gm_camera.vrx = cls->xposi;
gm_camera.vry = cls->yposi-550;
gm_camera.vrz = cls->zposi;
set_camera(&gm_camera);
Pose_Change(cls);
Pose_Change(cls_1);
return 0;
}
/******************************/
/*背景他OTの設定 */
/******************************/
void set_gm_ot(void)
{
sys_w;
int i;
#if 0
/*背景*/
s->classw1[21].obj3D_w[0].ot_no = GROUND_OT; /*地面*/
s->classw1[22].obj3D_w[0].ot_no = 250; /*客席(左)*/
s->classw1[23].obj3D_w[0].ot_no = 250; /*客席(正面)*/
s->classw1[24].obj3D_w[0].ot_no = 250; /*客席(右)*/
s->classw1[25].obj3D_w[0].ot_no = 249; /*看板*/
s->classw1[26].obj3D_w[0].ot_no = 250; /*客席(後ろ)*/
s->classw1[27].obj3D_w[0].ot_no = 251; /*照明*/
/*コース*/
for(i=7; i<=20; i++){
s->classw1[i].obj3D_w[0].ot_no = 248; /*下から3番目*/
}
/*ゴール*/
s->classw1[5].obj3D_w[0].ot_no = 248; /*下から3番目*/
#else
/*背景*/
s->classw1[21].obj3D_w[0].ot_no = GROUND_OT; /*地面*/
s->classw1[22].obj3D_w[0].ot_no = 254; /*
0xDE4A00#
lg = ON;
}
}
#if 0
/********************/
/*キャラの表示 */
/********************/
void dispset_char_kage(Uchar no)
{
ckage[no].disp_flg = ON;
}
/********************/
/*キャラの影非表示 */
/********************/
void clearset_char_kage(Uchar no)
{
ckage[no].disp_flg = OFF;
}
#endif
/******************/
/*キャラの影描画 */
/******************/
#define CHARAKAGE_SIZE (120)
void disp_char_kage(CLASS_W *cls)
{
sp_w;
sys_w;
register int i;
long p;
long flag;
Uchar Ot_no[2];
KAGE_PRIM *kp;
kp = (cls == &s->classw[0])? &ckage[0]: &ckage[1];
if(cls->pclip == ON) return; /*kind == 0*/
if(kp->disp_flg == OFF) return;
PushMatrix();
// GsSetRefViewUnit(&sp->rview);
if(kp->disp_flg == ON){
setVector(&sp->vec, (long)cls->obj3D_w[PARTS_BODY].pCoordSect[KOSHI].workm.t[0],
(long)cls->yposi,
(long)cls->obj3D_w[PARTS_BODY].pCoordSect[KOSHI].workm.t[2]);
}
setVector(&sp->rc,cls->rot.vx,cls->rot.vy,cls->rot.vz);
setVector(&sp->sc,cls->scale.vx,cls->scale.vy,cls->scale.vz);
RotMatrix(&sp->rc,&sp->lm); /* 回転 */
ScaleMatrix(&sp->lm,&sp->sc); /* 拡縮 */
TransMatrix(&sp->lm,&sp->vec); /* 移動 */
cls->DWorld.matrix = sp->lm;
cls->DWorld.flg = 0;
GsGetLwsUnit(&cls->DWorld,&sp->lm,&cls->ls); /* ローカル スクリーン ローカル ワールド マトリクスを計算 */
GsSetLightMatrix(&sp->lm); /* 光源マトリクスをGTEにセット */
GsSetLsMatrix(&cls->ls); /* ローカル スクリーン マトリックスをGTEにセット */
setVector(&kp->pos[0], -CHARAKAGE_SIZE
0xDEBC00#
フ情報取得) */
void g_RRset( Uchar, Uchar, Ushort ); /* セーブデータ見出し情報取得 */
int SetNO1_Each( char num, u_short spd_num );
Uchar set_palette_spd(Uchar cls_no, Uchar spd_no, Uchar col);
Uchar set_spd_classw0(Uchar cls_no,Ushort spd);
Uchar set_rgb_classw0(Uchar cls_no,Uchar l);
void set2d2(Uchar name,Ushort spd,Ulong attribute,short x,short y,Uchar tpage,
Uchar palette,short sx,short sy,short mx,short my,Uchar pri,short kind);
Uchar set_xy_classw0(Uchar cls_no,long x,long y);
int G3dTrans00_Mot( u_char load_no );
void g_FlgSet( u_short no );
void set_demo_hand( unsigned char mode, unsigned char offset );
void po_ana_speak(short situation);
void po_character_SE(void);
void po_ball_pin_SE(void);
short po_ball_move(void);
void po_pin_model_change(short mode);
void po_background_clip(short no);
/* ---------- カメラ ---------- */
void po_view_init(void);
void po_view_main(void);
void po_view_set(short mode);
void po_view_no_set(short camera_no);
/*----------------------
0xDFFE00#
_skip = 1;
switch (cls->step0) {
case 0:
ability_calc(&static_ability, &real_ability, &lucky);
difficulty = po_lane_diff_tbl[work->version][work->lane_no]; /* 選択したレーンの難易度 */
result = static_ability + real_ability;
theory_tbl = (Ulong *)po_data_tbl[DAT_THEORY];
if (sp->chara[0] <= CR_KON) { /* キャラ別セオリー */
pTheory = (PO_THEORY_DATA *)theory_tbl[sp->chara[0]];
} else {
if (work->player.hdir) { /* 汎用左利きセオリー */
pTheory = (PO
0xE05200#
======================================================================*/
static void SetG2dReplay04()
{
sys_w;
EM_ACT* tag = &em04_act[0];
/*文字は点滅を繰り返すのみ*/
if ( tag->tmp ){
if ( ++tag->timer > 10 ){
tag->tmp = 0;
tag->timer = 0;
/*表示OFF*/
s->classw0[G_CLSR_REPLAY].kind = 0;
}
}else{
if ( ++tag->timer > 10 ){
tag->tmp = 1;
tag->timer = 0;
/*表示ON*/
set2d( G_CLSR_REPLAY, SPD_REPLAY, MODE16, 0,0, 12, 0, 10, 1 );
}
}
}
/*==========================================================================
==リプレープレート初期化
== リプレーを再生する前に毎回呼んで欲しい
== 初期表示までは行う
==
== in: short mode 操作可能(REP_CTRL_ACT)か 操作不可能(REP_CTRL_NOP)
== short flag 一番最初の時だけは 0 を入れるそれ以外は 0 以外
==========================================================================*/
void InitG2dRepPlate04( short mode, short flag )
{
sys_w;
SPD_W* spd;
CLASS0_W* cls;
register int i;
RECT rect;
if ( !flag ){ /*一番最初のリプレー*/
rep_ctrl04.status = mode;
rep_ctrl04.timer = rep_ctrl04.mode = rep_ctrl04.silent = 0;
}else{ /*繰り返されるリプレー*/
rep_ctrl04.status &= REP_CTRL_SAV; /*セーブは状態が保存される*/
rep_ctrl04.status |= mode;
rep_ctrl04.timer = rep_ctrl04.mode = rep_ctrl04.silent = 0;
}
/*初期表示*/
/*リプレー用ボタン*/
set2d( G_CLSR_BUTTON, SPD_REP_BUTT, MODE16, 0,0, 13, 0, 10, 1 );
/*リプレー用メニュー1*/
set2d( G_CLSR_MENU1, SPD_REP_MENU1, MODE
0xE0AE00#
c short time_offset_tbl[] = {
50,300, /* Level 0 */
40,280, /* Level 1 */
30,260, /* Level 2 */
20,260, /* Level 3 */
10,240, /* Level 4 */
0,240, /* Level 5 */
-10,220, /* Level 6 */
-20,220, /* Level 7 */
-30,200, /* Level 8 */
-40,200, /* Level 9 */
};
#else
static short time_offset_tbl[] = {
300,300,300,300, /* (0)松井 */
300,300,300,300, /* (1)ラモス */
300,300,300,300, /* (2)おさる */
300,300,300,300, /* (3)松坂 */
300,300,300,300, /* (4)秋山 */
300,
0xE18A00#
_cls;
int ret = 0;
switch (bm_pwork[i].step){
case PLYR_DASH:
#if B50M_DASH
if ((mode == 0)&&(WATCH_TIMER <= 15)){
if (start_dash_chk(i,key)){
b50mw.dash[i] = 1;
}
}
#endif
if ((WATCH_TIMER > 15)|| cls[i]->cpu || (mode == 1)){
bm_pwork[i].step = PLYR_START; /* サービスタイム終了 */
}
case PLYR_START: /* スタート直後 */
rot_key_input(i,key);
if (player_move_start(i)){
pwstep_set(i,PLYR_NORMAL); /* -> Normal rotation */
}
rot_gauge_main(i);
if (b50mw.false[i]){
bm_pwork[i].flg |= 4;
pwstep_set(i,PLYR_FALSE); /* -> False Start */
}
break;
case PLYR_NORMAL: /* 通常回転 */
rot_key_input(i,key);
player_move(i);
if (chk_goal_in(i)){
if (mode == 0){
b50mw.goal_time[i] = WATCH_TIMER; /* b50m_main中ならタイムを記録 */
}
bm_pwork[i].flg |= 1; /* GoalフラグをON */
pwstep_set(i,PLYR_GOAL); /* → Goal in Step */
}else if (chk_crush(i)){
bm_pwork[i].flg |= 2; /* Crush flag ON */
pwstep_set(i,PLYR_CRUSH); /* -> Crush */
}
rot_gauge_main(i);
break;
case PLYR_GOAL: /* 3: */ /* ゴールイン */
player_move_goal(i,mode);
ret = 1;
rot_gauge_main(i);
break;
case PLYR_CRUSH: /* 4: */ /* 転倒 */
if (player_move_crush(i,mode)){
bm_pwork[i].timer = 30*2;
bm_pwork[i].step = PLYR_C2STAND; /* -> Crush Stand */
}
if (chk_goal_in(i)){
if (mode == 0){
0xE1C400#
static Ushort cpu_key_input(int i,int mode);
CPU思考ルーチン
IN: i - Player No.
mode - 0:CPU思考初期化, 1:CPUキー取り出し
OUT: キー情報
--------------------------------------------------------- */
static Ushort cpu_key_input(int i, int mode)
{
int j;
static Uchar chk[2] = {0,0};
static Ushort zure[2] = {512,512};
static Uchar flg[2] = {1,1};
static Uchar panic[2] = {0,0};
static Uchar status[2] = {0,0}; /* 0 : ミスなし */
/* 1 : ミスあり */
/* 2 : ボタン押さず */
Ushort correct_key[] = {
P_LLEFT,0,P_LUP,0,P_LRIGHT,0,P_LDOWN,0,P_LLEFT,0,P_LUP,
};
Ushort just_pos[] = {
2048,0,3072,0,4096,0,1024,0,
};
// Uchar false_rate[4] = {70,50,30,0};
Uchar false_rate[4] = {50,35,20,15};
Uchar false_rate2[4] = {60,50,40,0};
Uchar reverse_rate[4] = {10,7,5,0};
Ushort zure_rate[4] = {300,240,180,100};
Uchar false_num[4] = {2,2,1,1};
// Uchar false_num[4] = {5,4,2,1};
// sp_w;
// Uchar level = sp->cpu_level;
Uchar level;
0xE1FE00#
pwork[no].step){
case 0:
// cls->xposi = START_LINE + 4000;
cls->xposi = START_LINE + 5000;
// Pose_Set(cls,bm_mot_walk1+bm_pwork[no].tmp,no*20);
// bm_pwork[no].anime_no = bm_mot_walk1+bm_pwork[no].tmp;
Pose_Swap(no,bm_mot_walk1+bm_pwork[no].tmp,no*20);
p->step++;
break;
case 1:
if (Pose_Change2(cls,1) && (cls->xposi <= START_LINE+15*30)){
Pose_Set(cls,bm_mot_w2s,0);
bm_pwork[no].anime_no = bm_mot_w2s;
p->step++;
}
cls->xposi -= 15;
break;
0xE24200#
5,SD_14_DOWN2);
break;
case bm_mot_b2f2:
chk_se_and_call(i,25,SD_14_GOAL1);
break;
case bm_mot_fallh:
chk_se_and_call(i,25,SD_14_DOWN1);
break;
case bm_mot_fallk:
chk_se_and_call(i,38,SD_14_DOWN1);
break;
case bm_mot_risek:
chk_se_and_call(i,36,SD_14_DOWN3);
break;
case bm_mot_b2f3:
chk_se_and_call(i,25,foot[i]);
chk_se_and_call(i,43,foot[i]);
chk_se_and_call(i,68,foot[i]);
break;
case bm_mot_b2fk:
chk_se_and_call(i,22,SD_14_DOWN3);
break;
case bm_mot_walk1:
case bm_mot_walk2:
case bm_mot_walk3:
case bm_mot_walk4:
chk_se_and_call(i,3,SD_14_FOOT1);
// chk_se_and_call(i,15,SD_14_FOOT2);
chk_se_and_call(i,20,SD_14_FOOT2);
break;
case bm_mot_w2s:
chk_se_and_call(i,15,SD_14_FOOT2);
break;
case bm_mot_rot:
chk_se_and_call(i,21,SD_14_FOOT1);
chk_se_and_call(i,33,SD_14_FOOT2);
break;
default:
break;
}
}
}
static Uchar se_old_pose[2];
static int chk_se(int mode, int no, Uchar pose)
{
// static Uchar old_pose[2];
b50m_cls;
int ret = 0;
switch (mode){
case 0:
se_old_pose[no] = cls[no]->pose;
break;
case 1:
if (se_old_pose[no] > cls[no]->pose){
if (pose <= cls[no]->pose){
ret = 1;
}
}else if (cls[no]->pose >= pose && se_old_pose[no] <= pose){
ret = 1;
}
break;
}
return (ret);
}
static int chk_se_and_call(int no, Uchar pose, in
0xE29600#
set_mark();
}
if ((sp->step1 == SHOOT_STEP) && (sp->step2 > 3) && (sp->step2 <= 10)) {
set_power_gague();
if (sp->step2 > 7) set_t_gague_back();
}
}
}
if (work->game_mode == GM_KONAMI) {
set_extra_obj();
if (sp->step1 != FINAL_DEMO_STEP) ring_pal_anim(1);
else ring_pal_anim(0);
}
} else {
if (work->game_mode == GM_KONAMI) {
ring_pal_anim(0);
}
}
}
static void nh_character(void)
{
sys_w;
Ushort anime_no;
0xE2FA00#
&r, &m );
setVector( (VECTOR *)m.t, (short)dx, (short)dy, (short)dz );
CompMatrix( &GsWSMATRIX, &m, &m );
SetRotMatrix( &m );
SetTransMatrix( &m );
otz = RotAverage3( &v[0], &v[1], &v[2],
(long *)&pg3->x0, (long *)&pg3->x1, (long *)&pg3->x2, &p, &flag );
if ( otz < 0 ) otz = 0;
GsSortPoly(pg3, &SepOT[0].ot[ACTIVE_SIDE], otz>>(14-OT_LENGTH) );
PopMatrix();
counter++;
if (counter > 0x100) counter = 0;
}
static void set_just_mark(void)
{
sp_w;
sys_w;
static Uchar fade = 0x80;
static Schar diff = 0x08;
NH_GAME_W *work;
GsSPRITE *spr, just_mark;
if (fade == 0x80 && diff < 0) diff = 0x08;
if (fade == 0xa0 && diff > 0) diff = -0x08;
fade += diff;
spr = &just_mark;
work = &nh_game_w;
spr->attribute = MODE16;
spr->x = P_GAGUE_XPOS + (P_GAGUE_W >> 1);
spr->y = P_GAGUE_YPOS + P_GAGUE_H - (work->power - MIN_POWER) * P_GAGUE_H / (MAX_POWER - MIN_POWER);
spr->w = 0x40;
spr->h = 0x28;
spr->tpage = 0x18;
spr->u = /*0*/0x40;
spr->v = /*0x58*/0x00;
spr->cx = /*0x100*/PALETU(0x48);
spr->cy = /*0x1e9*/PALETV(0x48);
spr->r = spr->g = spr->b = fade;
spr->mx = spr->w >> 1;
spr->my = spr->h >> 1;
spr->scalex = ONE;
spr->scaley = ONE;
spr->rotate = 0;
GsSortSprite(spr, &SepOT[0].ot[ACTIVE_SIDE], 7);
}
static void set_ball_locus(void)
{
sp_w;
short i, x, y, w, h ,size;
long otz, p, flag, proj, dist1, dist2;
SVECTOR v, current;
POLY_FT4 *pft4, ball_locus;
NH_REPLAY_W *replay_w;
pft4 = &ball_locus;
replay_w = &nh_repl
0xE3A200#
*****************************/
void SetG2dAna01( Uchar num, Uchar flag )
{
sys_w;
/*表示OFFのとき*/
if ( flag == OFF ){
s->classw0[G_CLS_ANA_NAME].kind = 0;
s->classw0[G_CLS_ANA_PLT].kind = 0;
return;
}
set2d( G_CLS_ANA_NAME, SPD_ANA_FURU+num, MODE16, 0,0, 13, 0, 10, 1 ); /*アナウンサー名*/
set2d( G_CLS_ANA_PLT, SPD_ANA_PLATE, MODE16, 0,0, 12, 0, 10, 1 ); /*プレート表示*/
}
/***************************************************************************
選手の紹介表示
in: CLASS_W* cls 表示する人のクラス
Uchar flag 表示ON/OFF(ON==表示/OFF==非表示)
***************************************************************************/
void SetG2dIntro01( CLASS_W* cls, Uchar flag )
{
sys_w;
register int i;
INTRO_NAME
SPD_W* spd;
Uchar tp;
/*表示OFFのとき*/
if ( flag == OFF ){
for ( i=0; i<6; i++ ){
s->classw0[G_CLS_IT_JOB+i].kind = 0;
}
return;
}
/*1999.08.04 nakayama*/
spd = GetSpd( SPD_JOB_00+PD_JOB(entrybox[cls->entry_no]) );
set2d( G_CLS_IT_JOB, SPD_JOB_00+PD_JOB(entrybox[cls->entry_no]), MODE16, 0,0, 10, 0, 10, 1 ); /*職業表示*/
if ( PD_JOB(entrybox[cls->entry_no]) == JB_STAFF )
set2d( G_CLS_IT_JOB2, SPD_JOB_06b, MODE16, 0,0, 11, 0, 10, 1 ); /*職業表示*/
else
set2d( G_CLS_IT_JOB2, SPD_JOB_06b, MODE16, 0,0, 11, 0, 10, 0 ); /*職業表示*/
if ( entrybox[cls->entry_no] < CR_ED1 ){
/*デフォルトの選手名のパターンを表示させる*/
/*テクスチャページのセット*/
switch( entrybox[cls->entry_no] ){
case CR_K
0xE42C00#
anel;} /* ノーマルモードは抜いたパネル数 */
else{tmp=sh->ex.score;} /* エキストラモードは得点 */
g_RRset(sp->chara[0],5,tmp);
g_RSinit((u_char *)&sh->saved,sizeof(_SH_SAVE_DATA));
PAUSE_FLAG = RSAVE_STEP;
if(sh->gameover){SD_call(B_FIN_1);} /* ゲームオーバー時サウンド復活 */
sp_step0_up();
}
break;
case 10:
if(sp->ModSel.mode == 3){return 1;} /* リプレイロード時はゲームから抜ける */
if(sp->chara[0]==CR_AKI){s->classw[0].rot.vy=3072;} /* 秋山回転初期化 */
if((sp->chara[0]==CR_AKI) && (sh->success))
SH_BIT_OFF(sh->dispflg,SH_DISP_CROSS_GAUGE);
SH_BIT_OFF(sh->dispflg,SH_DISP_BATTING_ZONE);
DelG2fRepPlate05();
Sh_Replay_Calculation(sh->r.time-1);
if(!sh->gameover){Sh_Sound_All_Stop(0);}
else{SD_call(SD_CTL_XAKILL2);}
sh->r.time=0;
Sh_Replay_Out();
Sh_Declaration_Scan_Space();
sh->thflg=0;
sh->twflg=0;
SetG2dPoint05(&s->classw[0],OFF); /* ポイント消去 */
Sh_Gstep_Up(); /* ゲームステップインクリメント */
break;
}
return 0;
}
/
0xE46400#
>r.speed ==2)
{
sh->r.speed = 1;
if(sp->step2==1){sp->step2=0;}
}
else
{
sp->step2 = (sp->step2 != 0) ? 0 : 1 ;
}
}
/* リプレイデータセーブフラグ */
if((joy_t & TRG_SAVE) && (sp->ModSel.mode != 3)) /* SAVE */
{
sh->r.save=SH_rev(sh->r.save);
SetG2dSave05();
}
switch(sp->step2)
{
case 0:/* 再生 */
if(Sh_Play_View(sh->r.speed))
{
Sh_Play_View (sh->r.speed);
break;
}
if(Sh_Play_Normal(sh->r.speed) == 0){ret=1;}/* 最後まで再生 */
break;
case 1:/* 停止 */
Sh_Play_View(sh->r.speed);
break;
}
}
/*----------------------------------------------*/
/*リプレイ通常再生 */
/*----------------------------------------------*/
static u_char Sh_Play_Normal(int speed)
{
u_char ret = 0;
if( sh->r.pbcnt < sh->r.time-2 ) {
sh->r.pbcnt += speed;
ret = 1;
}
return ret;
}
/*----------------------------------------------*/
/*リプレイ逆転再生 */
/*----------------
0xE4EA00#
short x2, y2;
} POLY_G3;
typedef struct {
u_long tag;
u_char r0, g0, b0, code;
short x0, y0;
u_char r1, g1, b1, pad1;
short x1, y1;
u_char r2, g2, b2, pad2;
short x2, y2;
u_char r3, g3, b3, pad3;
short x3, y3;
} POLY_G4;
typedef struct {
u_long tag;
u_char r0, g0, b0, code;
short x0, y0;
u_char u0, v0; u_short clut;
u_char r1, g1, b1, p1;
short x1, y1;
u_char u1, v1; u_short tpage;
u_char r2, g2, b2, p2;
short x2, y2;
u_char u2, v2; u_short pad2;
} POLY_GT3;
typedef struct {
u_long tag;
u_char r0, g0, b0, code;
short x0, y0;
u_char u0, v0; u_short clut;
u_char r1, g1, b1, p1;
short x1, y1;
u_char u1, v1; u_short tpage;
u_char r2, g2, b2, p2;
short x2, y2;
u_char u2, v2; u_short pad2;
u_char r3, g3, b3, p3;
short x3, y3;
u_char u3, v3; u_short pad3;
} POLY_GT4;
typedef struct {
u_long tag;
u_char r0, g0, b0, code;
short x0, y0;
short x1, y1;
} LINE_F2;
typedef struct {
u_long tag;
u_char r0, g0, b0, code;
short x0, y0;
u_char r1, g1, b1, p1;
short x1, y1;
} LINE_G2;
typedef struct {
u_long tag;
u_char r0, g0, b0, code;
short x0, y0;
short x1, y1;
short x2, y2;
u_long pad;
} LINE_F3;
typedef struct {
u_long tag;
u_char r0, g0, b0, code;
short x0, y0;
u_char r1, g1, b1, p1;
short x1, y1;
u_char r2, g2, b2, p2;
short x2, y2;
u_long pad;
} LINE_G3;
typedef struct {
u_long tag;
u_char r0, g0, b0, code;
short x0, y0
0xE56400#
==================*/
/*==========================================================================
==リプレーの文字を表示する
== 毎フレーム通すことで点滅する。
== 点滅を前提としているので初期状態に依存しない
==========================================================================*/
static void SetG2dReplay05()
{
sys_w;
EM_ACT* tag = &em05_act[0];
/*文字は点滅を繰り返すのみ*/
if ( tag->tmp ){
if ( ++tag->timer > 10 ){
tag->tmp = 0;
tag->timer = 0;
/*表示OFF*/
s->classw0[G_CLSR_REPLAY].kind = 0;
}
}else{
if ( ++tag->timer > 10 ){
tag->tmp = 1;
tag->timer = 0;
/*表示ON*/
set2d( G_CLSR_REPLAY, SPD_REPLAY, MODE16, 0,0, 12, 0, 10, 1 );
}
}
}
/*==========================================================================
==リプレープレート初期化
== リプレーを再生する前に毎回呼んで欲しい
== 初期表示までは行う
==
== in: short mode 操作可能(REP_CTRL_ACT)か 操作不可能(REP_CTRL_NOP)
== short flag 一番最初の時だけは 0 を入れるそれ
0xE5DE00#
ze = 0x00;
spd[55+i*6].ysize = 0x00;
spd[56+i*6].ysize = 0x00;
spd[57+i*6].ysize = u_wk[0];
spd[57+i*6].offset_y = (i==0)? ((0xfffc)+0x08)-u_wk[0]:
(0x0040+0x08)-u_wk[0];
}
else if( u_wk[0] <= 0x10 ) {
spd[52+i*6].ysize = 0x08;
spd[53+i*6].ysize = u_wk[0]-0x08;
spd[54+i*6].ysize = 0x00;
spd[55+i*6].ysize = 0x00;
spd[56+i*6].ysize = u_wk[0]-0x08;
spd[56+i*6].offset_y = (i==0)? (0xfff4+0x08)-(u_wk[0]-0x08):
0xE60600#
---------------*/
/* return: ==0 動作中 / ==1 終了 */
/* 注意:TRANS_STEP_Sを使用しています */
/*------------------------------------------------------------------*/
extern u_char cd_read_step;
extern u_char cd_file_load_NB(Ushort no);
extern unsigned char demo_box[]; /* 2000/01/06 sato*/
int G3dTrans05( void )
{
sp_w;
int tmp; /* 12/26 satou */
switch( TRANS_STEP_S ){
case 0:
cd_read_step = CD_READ_INIT;
TRANS_STEP_S +=2;
break;
case 1: /* グラ
0xE62600#
-580, -160, 0x80, -0x400, 2000},
{ 0, -580, -160, 0x80, 0x500, 2000},
{ 0, -580, -160, -0x380, 0xe00, 8000},
{ 0, -580, -160, 0x20, 0x1700, /*2000*/3000},
};
#endif
static NH_VIEW_DATA cmn_perfect_view_dat[] = {
{ 0, -400, -160, -0x1e0, 0x100, 7000},
{ 0, -400, -160, 0x1c, 0x510, 3200},
};
static NH_VIEW_DATA aki_perfect_view_dat[] = {
{ 0, -660, -160, -0x08, 0x580, 7800},
{ 0, -540, -160, 0x28, 0x3
0xE65200#
NH_VIEW_W *view_w;
view_w = &nh_view_w;
view_w->step = view_w->substep = 0;
view_w->work = 0;
view_w->timer = 0;
view_w->camera_no = 0;
sp->camera_kind = mode;
}
void nh_view_no_set(short camera_no)
{
NH_VIEW_W *view_w;
view_w = &nh_view_w;
view_w->camera_no = camera_no;
}
#if 0 /* 今は使ってない */
static void nh_view_value_set(NH_VIEW_DATA data)
{
sp_w;
sp->rview.vrx = data.vrx;
sp->rview.vry = data.vry;
sp->rview.vrz = data.vrz;
sp->rview.vpx = data.vpx;
sp->rview.vpy = data.vpy;
sp->rview.vpz = data.vpz;
}
#endif
#if NH_VIEW_TEST
static short nh_view_projection_interpolate(short total_time)
{
sp_w;
NH_VIEW_W *view_w;
view_w = &nh_view_w;
sp->projection = view_w->prev_pro + (view_w->next_pro - view_w->prev_pro) * view_w->timer / total_time;
GsSetProjection(sp->projection);
return 0;
}
#endif
#if 0 /* 今は使ってない */
static short nh_view_interpolate(short total_time)
{
sp_w;
NH_VIEW_W *view_w;
view_w = &nh_view_w;
sp->rview.vrx = view_w->prev.vrx + (view_w->next.vrx - view_w->prev.vrx) * view_w->timer / total_time;
sp->rview.vry = view_w->prev.vry + (view_w->next.vry - view_w->prev.vry) * view_w->timer / total_time;
sp->rview.vrz = view_w->prev.vrz + (view_w->next.vrz - view_w->prev.vrz) * view_w->timer / total_time;
sp->rview.vpx = view_w->prev.vpx + (view_w->next.vpx - view_w->prev.vpx) * view_w->timer / total_time;
sp->rview.vpy = view_w->prev.vpy + (view_w->next.vpy - view_w->prev.vpy) * view_w->timer / tota
0xE67A00#
view_w->next = view_w->prev;
nh_view_rot_interpolate(1);
view_w->step++;
case 1:
if (++view_w->timer > 90) {
view_w->next = enter_view_dat[1];
view_w->timer = 0;
view_w->step++;
}
break;
case 2:
if (nh_view_rot_interpolate(220)) {
view_w->step++;
}
break;
case 3:
view_w->prev = enter_view_dat[2];
view_w->next = enter_view_dat[3];
view_w->step++;
case 4:
view_w->prev.vrx = view_w->next.vrx = cls->xposi;
view_w->prev.vrz = view_w->next.vrz = cls->zposi;
if (nh_view_rot_interpolate(60)) {
view_w->prev = view_w->next;
view_w->step++;
}
break;
default:
nh_view_rot_interpolate(1);
break;
}
}
#else /* cls->rot.vyを参照してカメラ座標を補間 */
static void nh_view_enter(void)
{
sys_w;
CLASS_W *cls;
NH_VIEW_W *view_w;
cls = &s->classw[0];
view_w = &nh_view_w;
switch (view_w->step) {
case 0:
view_w->prev = enter_view_dat[0];
if (cls->rot.vy > 0xb00) {
view_w->prev.vrx = -3704;
view_w->prev.vrz = -7084;
view_w->next = view_w->prev;
nh_view_rot_interpolate(1);
break;
} else {
view_w->next = enter_view_dat[1];
view_w->step++;
}
case 1:
view_w->prev.vrx = view_w->next.vrx = cls->xposi;
view_w->prev.vrz = view_w->next.vrz = cls->zposi;
view_w->timer = 0xb00 - cls->rot.vy;
if (nh_view_rot_interpolate(0x240)) {
view_w->prev = enter_view_dat[2];
view_w->next = enter_view_dat[3];
view_w->step++;
}
0xE69A00#
1464,4750, 0,-1080,3990,700, 0}, /* オープニング2 フレーム*/
//{ 3072,1184,3533, 0,-2669,-12481,600, 0}, /* オープニング1 グラウンド中央*/
{ 2629,1204,3818, 0,-17372,15746,1000, 0}, /* オープニング 電工看板*/
{ 1872,1104, 848, 2526,-2192,1226,1000, 0}, /* オープニング2 観客 */
{ 3072,1664,25450, 0,5250,12540,600, 0}, /* オープニング1 グラウンド中央*/
{ 3072,1104,3580, 0,-11790,4410,600, 0}, /* オープニング2 フレーム*/
//{ 2755, 1023,2527, 0,0,0,1000, 2}, /* 選手紹介 プレイヤーアップ*/
//{ 1728, 1023,2527, 0,0,0,1000, 2}, /* 選手紹介 プレイヤーアップ*/
//{ 435, 923,1177, 0,0,0,1000, 2}, /* 選手紹介 プレイヤーアップ*/
{ 2912, 1204,2560-256, 0,0,0,1000, 0}, /* 選手紹介右 プレイヤーアップ1*/
{ 3892, 984,2048, 0,0,0,1000, 0}, /* 選手紹介右 プレイヤーアップ2*/
{ 4600, 1256,2048, 0,0,0,1000, 0}, /* 選手紹介右 プレイヤーアップ3*/
{ 1184+2048,1204,2560-256, 0,0,0,1000, 0}, /* 選手紹介右 プレイヤーアップ1*/
{ 204+2048, 984,2048, 0,0,0,1000, 0}, /* 選手紹介右 プレイヤーアップ2*/
{ -504+2048,1256,2048, 0,0,0,1000, 0}, /* 選手紹介右 プレイヤーアップ3*/
#if 0
{ 2912-2048,1204,2560-256, 0,0,0,1000, 0}, /* 選手紹介右 プレイヤーアップ1*/
{ 3892-2048, 984,2048, 0,0,0,1000, 0}, /* 選手紹介右 プレイヤーアップ2*/
{ 4600-2048,1256,2048, 0,0,0,1000, 0}, /* 選手紹介右 プレイヤーアップ3*/
#endif
#if 0
{ 864, 1204,2048, 0,0,0,1000, 0}, /* 選手紹介左 プレイヤーアップ1*/
{ 1844
0xE6C400#
{
sp->projection+=100;
GsSetProjection(sp->projection);
GsSetRefViewUnit(&sp->rview);
}
/* 視点モードチェンジ */
if((joy_w & P_TR) && (joy_w & P_TR1)){vmode=0;}
if((joy_w & P_TL) && (joy_w & P_TL1)){vmode=1;}
if(joy_w & P_TL3){Sh_Setview_View(SV_BUFF1,vmode);} /* 視点始点 */
if(joy_w & P_TR3){Sh_Setview_View(SV_BUFF2,vmode);} /* 視点終点 */
#if 1
/* 視点移動発動 */
if(*sh->joy_w[0] & P_RUP)
{
Sh_View_Set(1,SV_BUFF1,SV_BUFF2,vmtime);
if((*sh->joy_w[0] & P_TR) && (*sh->joy_w[0] & P_TR1)){vmtime+=1;}
if((*sh->joy_w[0] & P_TL) && (*sh->joy_w[0] & P_TL1)){vmtime-=1;}
}
#endif
prin(vmtime);
/* 視点移動初期化*/
if(*sh->joy_t[0] & P_RDOWN)
{
sh->v.camflg=0;
}
viewmax=sizeof(sh_vdata)/8/2;
if(*sh->joy_t[0] & P_SELECT)
{
viewnum+=1;
if(viewnum>viewmax){viewnum=0;}
Sh_View_Set(0,viewnum,0,0);
}
prin(viewnum);
#if 0
if(*sh->joy_w[0] & P_RLEFT)
{
sh->v.dx=cls->xposi; /* dx */
sh->v.dy=-500; /* dy */
sh->v.dz=cls->zposi;
0xE71400#
{
/* 汎用プリミティブ初期化 */
SetPolyF4(&f4);
SetPolyFT4(&ft4);
SetPolyG3(&g3);
SetPolyG4(&g4);
farst=1;
}
Sh_Tosser_Fist(); /* トサーの拳設定 */
Sh_Ball_Parent(); /* ボールの親子付け管理 */
Sh_Draw_2d(); /* 2D管理 */
Sh_Draw_Besmear(); /* 画面下塗りつぶし */
if(SH_BIT(sh->dispflg,SH_DISP_LOCUS) && !SH_BIT(sh->dispflg,SH_DISP_JLOCUS)){Sh_Draw_Locus(sh->r.pbcnt);}
// Sh_Draw_Locus(sh->r.pbcnt);
if(SH_BIT(sh->dispflg,SH_DISP_JLOCUS)){Sh_Draw_Just_Locus();}
// Sh_Draw_Just_Locus();
if(SH_BIT(sh->dispflg,SH_DISP_JLOCUS))
{
if(sh->r.pbcnt>=(SH_JUST_FRAME+8))
{
// if((sh->r.pbcnt/2)==(sh->b.bathitcnt/2)){Sh_Draw_Center_Flush(1,0,15,100);}
// if((sh->r.pbcnt/2)==((SH_JUST_FRAME+8)/2)){Sh_Draw_Center_Flush(1,0,15,100);}
// Sh_Draw_Center_Flush(1,0,15,100);
Sh_Draw_Center_Flush(0,0,15,100);
}
}
if(SH_BIT(sh->dispflg,SH_DISP_HIT_SPOT)){Sh_Draw_Hit_Spot();} /* ボールがパネルに届いたときの位置 */
/* 金剛君パーフェクト時は影無し */
if(!((sp-
0xE83C00#
見事、やってくれます!」*/
FK3_G08, /*「すごいコントロールだ!」*/
FK3_G09, /*「魅せ方をよく知っている!」*/
FK3_G10, /*「まさにスナイパー」*/
FK3_G16, /*「狙った獲物は決して外すことがない!」*/
};
static Ushort furu_rep_get[] = {
FN_F00, /*「ボールはまるで生き物のようにリングを捕らえます」*/
FN_F06, /*「ネットがボールを迎え入れた」*/
FN_F04, /*「バウンドに救われたようです」*/
FK3_G00, /*「土壇場でゲット、さすが、盛り上げどころを知っています」*/
};
static Ushort furu_rep_miss[] = {
FN_F12, /*「残念ながらボールはリングを捕らえる事ができません」*/
FN_F23, /*「ミスの原因は何だったのか?」*/
FK3_G17, /*「わずかに外れてしまいました、ボールはむなしく宙を舞います」*/
FK3_G18, /*「狙った場所に、上手くボールが行きません」*/
FK3_G19, /*「ミスの原因は何だったのか?」*/
FK3_G20, /*「狙い通りにいきません」*/
FK3_G22, /*「これは狙いすぎたか?」*/
};
static Ushort furu_rep_double[] = {
F
0xE8BC00#
/*「もう決めていくしかありません」*/
HK2_A48, /*「失敗は許されません」*/
HK2_A49, /*「慎重に狙って欲しい場面です」*/
HN_B00, /*「ここから開き直って全てのリングにいれてほしい」*/
};
/*ノーミス*/
static Ushort hatu_target_shimo4[] = {
HK2_A50, /*「ここまでノーミス」*/
HK2_A51, /*「どこまでノーミスで行けるでしょうか」*/
HK2_A52, /*「まだ、ミスはありません」*/
HK2_A53, /*「ここまで、無駄球を一球も出していません」*/
HK2_A54, /*「ツキも味方に付けて快進撃はどこまで続くのでしょうか」*/
};
/* 固有 */
static Ushort hatu_target_shimo_unique1[] = {
HN_C08, /*「リングが縦に動く」*/
HN_C09, /*「リングが横に動く」*/
HN_C10, /*「手前のリングの陰に隠れていて」*/
};
static Ushort hatu_target_shimo_unique2[] = {
HN_C11, /*「難しいところです」*/
HN_C12, /*「難しいところ!」*/
HN_C13, /*「微妙なコントロールが要求されます」*/
};
/* パーフェクトへ向けてのシュート */
static Ushort hatu_target_shimo_last[] = {
HK2_C08, /*「これを決めて、パーフェクトを手にしたい」
0xE95400#
当たり判定初期化 */
if(sh->extra)
{
switch(sh_ex_info[i][1])
{
case 0:
size=SH_PANEL_SIZE1;
break;
case 1:
size=SH_PANEL_SIZE2;
break;
case 2:
size=SH_PANEL_SIZE3;
break;
}
}
else /* ノーマル */
{
if(i==9) /* 金剛パネル */
{
size=SH_PANEL_SIZE2;
}
else /* 通常パネル */
{
size=SH_PANEL_SIZE1;
}
}
setRECT(&sh->p[i].hitrange,s->classw1[i].xposi-size/2,s->classw1[i].yposi-size/2,size,size);
/* 回転初期化 */
setVector( &s->classw1[i].rot, 0,0,0 );
/* パネル初期位置 */
sh->p[i].x=s->classw1[i].xposi;
sh->p[i].y=s->classw1[i].yposi;
sh->p[i].z=s->classw1[i].zposi+SH_PANEL_VECZ;
s->classw1[i].kind=1; /* 表示ON */
/* フレームへ親子付けをする */
s->classw1[i].DWorld.super=&s->classw1[SH_OBJ_FRAME1].DWorld;
}
}
/*----------------------------------------------*/
/*モデル初期化 */
/*----------------------------------------------*/
int Sh_Model_Init(void)
{
sp_w;
sys_w;
0xE9A200#
->b.tra[sh->b.bdcnt].hang=384;}
/* 打って、なにも当たらなかったら */
if(!sh->b.phitcnt && !sh->b.fhitcnt && sh->b.bathitcnt)
{
sh->b.tra[sh->b.bdcnt].v=-10;
sh->b.tra[sh->b.bdcnt].hang=128;
}
// if(sh->b.tra[sh->b.bdcnt].v<512){
}
sh->b.tra[sh->b.bdcnt].x=sh->c.bvec.vx;
sh->b.tra[sh->b.bdcnt].y=sh->c.bvec.vy;
sh->b.tra[sh->b.bdcnt].z=sh->c.bvec.vz;
}
#if 0
/* 天井チェック */
if((sh->c.bvec.vy < -23000) && (sh->b.bdcnt<SH_TRANSITION_MAX))
{
sh->b.bdcnt+=1; /* バウンドカウント増加 */
sh->b.tra[sh->b.bdcnt].starttime=sh->b.time;
sh->b.tra[sh->b.bdcnt].wang=-sh->b.tra[sh->b.bdcnt-1].wang/2;
sh->b.tra[sh->b.bdcnt].hang=-512;
sh->b.tra[sh->b.bdcnt].v=sh->b.tra[sh->b.bdcnt-1].v/2;
sh->b.tra[sh->b.bdcnt].x=sh->c.bvec.vx;
sh->b.tra[sh->b.bdcnt].y=sh->c.bvec.vy;
sh->b.tra[sh->b.bdcnt].z=sh->c.bvec.vz;
}
#endif
/* 減衰 */
#if 0
if(abs(sh->b.tra[sh->b.bdcnt].v)>20 && sh->b.tra[sh->b.bdcnt].cnt>10 && sh->c.bvec.vz>SH_PANEL_VECZ)
{
sh->b.bdcnt+=1; /* バウンドカウント増加 */
sh->b.tra[sh->b.bdcnt].starttime=sh->b.time;
sh->b.tra[sh->b.bdcnt].wang=sh->b.tra[sh->b.bdcnt-1].wang;
sh->b.tra[sh->b.bdcnt].hang=sh->b.tra[sh->b.bdcnt-1].hang;
sh->b.tra[sh->b.bdcnt].v=sh->b.tra[sh->b.bdcnt-1].v-SH_sign(sh->b.tra[sh->b.bdcnt-1].v)*8;
sh->b.tra[sh->b.bdcnt].x=sh->c.bvec.vx;
sh->b.tra[sh->b.bdcnt].y=sh->c.bvec.vy;
sh->b.tra[sh->b.bdcnt].z=sh->c.bvec.vz;
}
#endif
#if 1
/* フェンスチェック */
if(sh->c.bvec.vz > (5000
0xEA4600#
止 */
// motcnt=0;
// Pose_Set(cls,DEMO_MOTION_OFFSET+2, 0);
// set_demo_hand(0,2);
Sh_Motion_Demo(&s->classw[0],1,2); /* 大喜びモーション初期化 */
// Sh_Motion_Demo(&s->classw[1],1,2);
mojiflg=0;
if(sp->ModSel.mode==0) /* マッスルランキングモード */
{
SetG2dPoint05(&s->classw[0],ON); /* ポイント表示 */
}
sp_step0_up();
break;
case 1:
// Sh_Camera_Rotate(SH_zerosign(sh->reverse)*-3,0,0);
if(MenuFadeIn(32) == 1)
{
Sh_Motion_Demo(&s->classw[0],0,2); /* 大喜び
0xEA5E00#
TKON1,0,0);
sh->timer[0]=0;
s->classw[0].yposi=0;
AutoShock(&s->classw[0],2);
SD_call(SD_GATE);
SD_call(SD_CTL_FADEOUTX);
sp_step0_up();
}
break;
case 7:
sh->timer[0]+=1;
Sh_Camera_Rotate(-3,0,3);
if(sh->timer[0]%2){sh->v.dy +=200;}
else{sh->v.dy -=200;}
if(sh->timer[0]==8)
{
sp_step0_up();
}
break;
case 8:
sh->compeltimer+=1;
Sh_Camera_Rotate(-3,0,0);
if(*sh->joy_t[0] & P_RRIGHT || sh->compeltimer>250)
{
Sh_Sound_All_Stop(1
0xEA8A00#
R_LR
#undef G_CLSR_REW
#undef G_CLSR_FEW
#undef G_CLSR_PLATE
///////////////////////////////////////////////////////////////////////////
//prototype
///////////////////////////////////////////////////////////////////////////
int G2dTrans01(); /*データ読み込み 及び テクスチャ転送*/
void SetG2dName01( CLASS_W* ,Uchar ); /*名前1表示*/
void SetG2dPoint01( CLASS_W* ,Uchar ); /*ポイント表示*/
void SetG2dAna01( Uchar, Uchar ); /*アナウンサー名表示*/
void SetG2dIntro01( CLASS_W*, Ucha/* エフェクト7(エキストラ着弾箇所)フラグ */
LView_Parent_Set(VR_WORLD);
tmp = Random(DM_ELV_NUM);
LDemo_Set(DM_ELV_IDX + (tmp<<1));
ls->step = 5;
}
else ls->step = 7; /* レベル未クリア */
}
}
}
else
{
if(declare->now_get == -1)
{
/* 悲しみ */
if(SetG2dMiss08() == 1) ls->step = 7;
}
else
{
/* 喜び */
if(SetG2dGet08(declare->now_get+1) == 1)
{
if(declare->bingo == declare->old_bingo || declare->bingo >= 7) ls->step = 7; /* 通常 or 7ビンゴ以上 */
else
{
if(ls->mode != MODE_EXTRA) LSub_Point(POINT_BINGO); /* ポイントの管理 */
#ifndef YOSSY_SPEED
if(ls->mode == MODE_MUSCLE && !ls->cpu) g_FlgSet(21); /* ギャラリーモードフラグ(ロングシュートでビンゴ完成) */
#endif
LView_Parent_Set(VR_WORLD);
tmp = Random(DM_BIN_NUM);
LDemo_Set(DM_BIN_IDX + (tmp<<1));
ls->step++;
0xEAAA00#
iウンサーフラグ(0:初田 1:古舘 2:進藤) */
static Uchar BGM[2] = {0,0}; /* BGMフラグ */
static Uchar ed_num;
extern REP_CTRL rep_ctrl08; /* リプレー用プレート制御構造体 */
LREPLAY *replay = ls->replay; /* リプレイ情報へのポインタ */
LSAVE *save = ls->save; /* セーブ情報へのポインタ */
switch(ls->step)
{
/* 初期化(自動リプレイ) */
case 0: InitG2dRepPlate08(REP_CTRL_NOP,0); /* リプレープレート・表示 */
/* アナウンサー */
tmp = Random(20);
if((ls->mode != MODE_EXTRA && tmp < 16) || (ls->mode == MODE_EXTRA && tmp < 19))
{
if(ls->ana == ANA_HATU) ana_flg = ANA_HATU;
else if(ls->ana == ANA_FURU) ana_flg = ANA_FURU;
}
else
{
ana_flg = ANA_SHIN;
}
/* 自動リプレイのセット */
LReplay_Set(0);
/* BGM */
if((ls->mode != MODE_EXTRA && ls->declare->now_get == -1) || (ls->mode == MODE_EXTRA && !ls->extra->now_score))
{
/* 失敗 */
save->BGM = B_REP5_1 + BGM[0];
SD_call(B_REP5_1 + BGM[0]);
BGM[0] = (++BGM[0])%2;
}
else if((ls->mode != MODE_EXTRA && ls->declare->now_get >= 0) || (ls->mode == MODE_EXTRA && ls->extra->now_score))
{
/* 成功 */
save->BGM = B_REP2_1 + BGM[1];
SD_call(B_REP2_1 + BGM[1]);
BGM[1] = (++BGM[1])%2;
}
ls->step++;
break;
/* フェードイン(自動リプレイ) */
case 1: if(MenuFadeIn(32) == 1) ls->step++;
break;
/* メイン(自動リプレイ) */
case 2: G2dReplayCtrl08(
0xEAE400#
disp3d(ls->Phuman,0,PLAYER_X,PLAYER_Y,PLAYER_Z,2048);
ls->Phuman->kind = 0;
ls->step = 0;
if(ls->mode == MODE_EXTRA)
{
if(ls->entry == 0)
{
g_MAEinit(0); /* ランキングの初期化 */
for(i=0;i<8;i++) g_ResSet(i+1,0,0); /* ランキングのセット */
ls->step = 0;
ls->event = EXTRA_OPENING;
}
else
{
ls->event = EXTRA_INTRO;
}
}
else
{
/* 宣言パネルの初期化 */
declare->select = 4; /* 宣言されているパネルの初期化(0-8) */
declare->now_get = -1; /* 今回抜いたパネルの初期化(-1:失敗 0-8:各パネル) */
declare->old_get = -2; /* 前回抜いたパネルの初期化(-2:初回 -1:失敗 0-8:各パネル) */
LBoard_System(); /* ボードの管理 */
ls->event = EVENT_INTRO;
}
}
return;
}
LView_Cont(); /* カメラの手動操作 */
LView_System(); /* カメラの管理 */
if(ls->mode == MODE_EXTRA) LObject_Draw_Extra(E
0xEB1E00#
)
{
sp_w;
//sys_w;
int i,tmp;
static int markw,markh,deadoralive,battingtime;
/* 1 2 3 4 5 6 7 8 9 K */
short hitofs[10][2]={{0,7},{3,3},{-3,3},{5,0},{-5,0},{7,-4},{3,-4},{-3,-4},{-7,-4},{0,0}};
static int markx,marky; /* CPU目標 */
sh->cpupad=0; /* パッド情報初期化 */
switch(sp->gstepw)
{
case SH_DECLARATION: /* 宣言部分 */
sh->timer[1]+=1;
if(!(sh->timer[1]%10)) /* 10フレームに一回だけ動作 */
{
i=Random(5);
0xEB5C00#
*/
LView_Parent_Set(VR_HUMAN);
LDemo_Set(DM_INTRO_IDX);
/* BGM */
SD_call(O_START3);
ls->sstep++;
break;
/* BGMウェイト(もし、2秒経過したら進む) */
case 1:
// if((SD_status[22] == 1) || ((++ls->cnt) >= (2*30)))
{
ls->cnt = 0;
ls->sstep++;
}
break;
/* フェードイン */
case 2: if(MenuFadeIn(32) == 1)
{
/* 実況 */
SD_call(SD_CTL_XAKILL2); /* 実況を全て止める */
LTalk_Hatu_Intro();
ls->sstep++;
}
break;
/* 最初の移動(160フレーム) */
case 3: LDemo_Change(DM_INTRO_IDX,DM_INTRO_IDX+1,160);
if(cls->rot.vy > 704)
{
cls->rot.vy -= 2;
if(cls->rot.vy == 704)
{
if(sd_type) SetG2dAna08(ANA_HATU,OFF); /* アナウンサープレート・非表示 */
SetG2dIntro08(cls,ON); /* 選手紹介・表示 */
// LMotion_Set(MKD_WALK1 + Random(4),MFLG_INIT);
// LMotion_Set(MKD_WALK2 + Random(3),MFLG_INIT);
LMotion_Set(MKD_WALK3 +
0xEB9A00#
emo_301_SE,
(Ulong)NULL,
(Ulong)demo_303_SE,
};
static Ulong aki_demo_SE[/* Motion No. */] = {
(Ulong)NULL,
(Ulong)demo_401_SE,
(Ulong)NULL,
(Ulong)NULL,
};
static Ulong kudo_demo_SE[/* Motion No. */] = {
(Ulong)NULL,
(Ulong)NULL,
(Ulong)NULL,
(Ulong)NULL,
};
static Ulong gon_demo_SE[/* Motion No. */] = {
(Ulong)demo_600_SE,
(Ulong)demo_601_SE,
(Ulong)NULL,
(Ulong)demo_603_SE,
};
static Ulong ike_demo_SE[/* Motion No. */] = {
(Ulong)demo_700_SE,
(Ulong)demo_701_SE,
(Ulong)NULL,
(Ulong)demo_703_SE,
};
static Ulong kane_demo_SE[/* Motion No. */] = {
(Ulong)NULL,
(Ulong)demo_801_SE,
(Ulong)demo_802_SE,
(Ulong)NULL,
};
static Ulong furu_demo_SE[/* Motion No. */] = {
(Ulong)NULL,
(Ulong)NULL,
(Ulong)NULL,
(Ulong)demo_903_SE,
};
static Ulong take_demo_SE[/* Motion No. */] = {
(Ulong)NULL,
(Ulong)demo_a01_SE,
(Ulong)NULL,
(Ulong)demo_a03_SE,
};
static Ulong mai_demo_SE[/* Motion No. */] = {
(Ulong)demo_b00_SE,
(Ulong)demo_b01_SE,
(Ulong)NULL,
(Ulong)demo_b03_SE,
};
static Ulong ushio_demo_SE[/* Motion No. */] = {
(Ulong)demo_c00_SE,
(Ulong)demo_c01_SE,
(Ulong)NULL,
(Ulong)NULL,
};
static Ulong kon_demo_SE[/* Motion No. */] = {
(Ulong)demo_d00_SE,
(Ulong)NULL,
(Ulong)demo_d02_SE,
(Ulong)demo_d03_SE,
};
static Ulong demo_SE[/* Character No. */] = {
(Ulong)matu_demo_SE,
(Ulong)ramos_demo_SE,
(Ulong)osaru_demo_SE,
(Ulong)dai_demo_SE,
(Ulong)aki_demo_SE,
(Ulong)kudo_demo_SE,
(Ulong)g
0xEBD600#
HK2_C00);
break;
case 3:
SD_call(HK2_C00+tmp);
SD_call(HS_N23+sh->sengenofs);
break;
}
}
else /* 金剛君 */
{
tmp=Random(2);
switch(tmp)
{
case 0:
SD_call(HK2_C03); /* 狙うのは */
SD_call(HS_N00); /* 金剛君だ */
break;
case 1:
SD_call(HS_C13);
break;
}
}
_END_
/* 環境音 */
if(sh->restpanel==1){SD_call(O_200+Random(2));}/* 残りパネル1 */
else if(sh->restpanel==2){SD_call(O_200);}/* 残りパネル2 */
else if(sh->sengenflg==2){SD_ca
0xEC2200#
*/
/* sw: 0:状況 1:記録 */
/*----------------------------------------------*/
void Sh_Speak_Gameover(int sw)
{
int st=0;
int ability=0;
sp_w;
if(PD_AB_SH(sp->chara[0])>=5){ability=1;} /* 得意 */
else{ability=0;} /* 不得意 */
_FURUTACHI_
if(!sw)
{
if(sh->restpanel==1) /* 残りパネル一枚 */
{
SD_call(FK4_E40+Random(4));
SD_call(FK4_E45);
SD_call(FK4_E46+Random(6));
}
else /* 残りパネル2・3枚 */
{
Sh_Speak_Player_Name(0); /* 選手名を呼ぶ */
SD_call(FK4_E25+Random(3));
SD_call(FK4_E28+Random(3));
SD_call(FK4_E34+Random(3));
}
}
if(sw==1)
{
SD_call(FS_I00); /*「(選手名)、記録(*枚!)」*/
Sh_Speak_Number(sh->clearpanel-1,SHSP_MAI_HIGH); /* 枚数 */
}
_HATUTA_
if(sw==0)
{
Sh_Speak_Player_Name(0); /* 選手名を呼ぶ */
/* 状況判断 */
if(!sw) /* 状況実況 */
{
if(sh->clearpanel<3)/* 枚数が少ないとき */
{
if(ability) /* 得意 */
{st=0;}
else /* 不得意 */
{st=1;}
}
else /*if(so->clearpanel<5)*/
{
if(ability) /* 得意 */
{st=3;}
else /* 不得意 */
{st=4;}
}
}
/* 実況 */
switch(st)
{
case 0: /* だめだめ&得意 */
SD_call(HK2_I09+Random(4));
break;
case 1: /* だめだめ&不得意 */
SD_call(HK2_I06+Random(3));
break;
case 2: /* そこそこ&得意 */
SD_call(HK2_I16+Random(5));
break;
case 3: /* そこそこ&不得意 */
SD_call(HK2_I13+Random(3));
break;
}
}
if(sw==1) /* 記録数実
0xEC4A00#
_w->frame == REPLAY_BUFF_SIZE) replay_w->frame = REPLAY_BUFF_SIZE - 1;
if ((work->success & 0x10) && replay_w->net_move == 0) {
replay_w->net_move = replay_w->frame;
}
replay_w->frame++;
#if NH_TEST
FntPrint("%d\n",replay_w->frame);
#endif
}
// set_mark();
return 0;
}
/* 2次関数でパワーを増加 */
static short get_power(short current, short total)
{
short power;
power = MAX_POWER - MIN_POWER;
power = current * current * power / total / total + MIN_POWER;
return power;
}
/* テーブルでも作ってそこから収束させた方がよさそう */
static void calc_best_power_init(void)
{
sp_w;
sys_w;
short diff;
CLASS_W *cls;
SVECTOR sv0, sv1;
MATRIX m;
NH_GAME_W *work;
NH_BALL_W *pBall;
NH_RING_W *pRing;
cls = &s->classw[0];
work = &nh_game_w;
pBall = &nh_ball_w;
pRing = &nh_ring_w[0];
/* ターゲットリングの検索 */
while (pRing->ring_no != work->target_no) pRing++;
/* ボールがリリースされる瞬間のワールド座標を計算 */
if (sp->chara[0] == CR_KON) {
setVector(&sv0, 0, -543, -253); /* MOT_K_SHOOTの24フレーム目の値 */
} else {
if (work->target_no > 5) setVector(&sv0, 0, -747, -218); /* MOT_SHOOT1の24フレーム目の値 */
else setVector(&sv0, 0, -771, -227); /* MOT_SHOOT2の24フレーム目の値 *//*JUMP SHOOT*/
}
RotMatrix(&cls->rot, &m);
ScaleMatrix(&m, &cls->scale);
ApplyMatrixSV(&m, &sv0, &sv1);
sv0.vx = (cls->xposi + sv1.vx) / MAGNIFICATION;
sv0.vy = (cls->yposi + sv1.vy) / MAGNIFICATION;
sv0.vz = (cls->zposi
0xEC9400#
--------------------*/
#define SH_rev(a) (a?0:1)
#define SH_sign(a) (a<0?-1:1)
#define SH_revsign(a) (a<0?1:-1)
#define SH_max(a,b) ((a>b)?a:b)
#define SH_zerosign(a) (a?1:-1)
#define SH_BIT(x,bit) (x & (1<<bit))
#define SH_BIT_ON(x,bit) (x=(x | (1<<bit) ))
#define SH_BIT_OFF(x,bit) (x=(x & (~(1<<bit)) ))
#if SH_DEBUG
#define prin(a) FntPrint(#a"=%d\n",a)
#else
#define prin(a) /* FntPrint("\n") */
#endif
#define SH_DEG_TO_RAD(d) (2.0 * PI * (d) / 360.0)
#define SH_DEG_TO_VEC(d) (ONE * (d) / 360)
#define SH_setCVector(v, _r, _g, _b) \
(v)->r = _r, (v)->g = _g, (v)->b = _b
/* 単独物体に値をセット */
#define SH_setClass1Vec(v, _x, _y, _z) \
(v)->xposi = _x, (v)->yposi = _y, (v)->zposi = _z
typedef signed char s_char;
#define SH_PADL3 (1<<9) /*アナログスティックボタン左*/
#define SH_PADR3 (1<<10) /*アナログスティックボタン右*/
#define P_TL3 (1<<9) /*アナログスティックボタン左*/
#define P_TR3 (1<<10) /*アナログスティックボタン右*/
#define SH_COMPEL_STEP_U
0xECD400#
rn void Sh_Debug_Draw_Declaration_Panel(void);
extern void Sh_Draw_Locus(int cnt);
extern void Sh_Draw_Just_Locus(void);
extern void Sh_Debug_Draw_Frame_Decision(RECT *rect,int sw);
//extern void Sh_Draw_Ef_Bsmoke(int cnt,VECTOR vec,CVECTOR col,int sw);
//extern void Sh_Draw_Ef_Psmoke(int cnt,VECTOR vec,CVECTOR col,int size);
extern void Sh_Draw_Ef_Smoke(int cnt,VECTOR vec,CVECTOR col,int type,int size,int pri);
extern void Sh_Draw_Ef_Foot_Smoke(int cnt,VECTOR *vec,CVECTOR *col);
extern void Sh_Draw_Ef_Foot_Smoke(int cnt,VECTOR *vec,CVECTOR *col);
extern void Sh_Panel_Hit_Ef(void);
extern void Sh_Draw_Ef_Spark(int cnt,VECTOR vec);
extern void Sh_Frame_Hit_Ef(void);
extern void Sh_Bat_Hit_Ef(void);
extern void Sh_Foot_Ef(CLASS_W *cls);
extern void Sh_Draw_Hit_Spot(void);
extern void Sh_Draw_Player_Shadow(CLASS_W *cls);
extern void Sh_Draw_Ball_Shadow(void);
extern void Sh_Backboard_Tex_Change(int num);
extern void Sh_Draw_Container_Ball(int num);
extern void Sh_Draw_Centralize(void);
extern
0xED3A00#
So_Speak_Bnumber(so->restballnum-1,3); /* 1:?球目と */
SD_call(SS_A14b); /*「なってしまいました」*/
break;
case 2:
SD_call(SS_A15a); /*「残るボードは後(1~16枚)、」*/
So_Speak_Piece(so->restpanel-1,0);
SD_call(SS_A15b); /*「変わらずです」*/
break;
case 3:
SD_call(SS_A16+Random(4));
break;
}
}
}
_OWARI_
}
/*----------------------------------------------*/
/*パーフェクト */
/*----------------------------------------------*/
void So_Speak_Perfect(void)
{
SD_call(B_JNG_PFCT);
SD_call(FS_L00+Random(4));
SD_call(FS_L04+Random(4));
SD_call(FS_L08+Random(4));
}
/*----------------------------------------------*/
/*ゲームオーバー */
/* sw: 0:状況 1:記録 */
/*----------------------------------------------*/
void So_Speak_Gameover(int sw)
{
int st=0;
int ability=0;
sp_w;
if(PD_AB_SH(sp->chara[0])>=5){ability=1;}else{ability=0;}
_FURUTACHI_
if(!sw)
{
So_Speak_Player_Name(0); /* 選手名を呼ぶ */
SD_call(FS_M01+Random(8));
}
else if(sw==1)
{
SD_call(FS_M00); /*「(選手名)、記録(*枚!)」*/
So_Speak_Piece(so->clearpanel-1,0); /* 枚数 */
}
_HATUTA_
if(!sw)
{
So_Speak_Player_Name(0); /* 選手名を呼ぶ */
/* 状況判断 */
switch(so->gmode)
{
case 0: /* ノーマルモード */
if(!sw) /* 状況実況 */
{
if(so->clearpanel<3)/* 枚数が少ないとき */
{
if(ability) /* 得意 */
{st=0;}
0xED9600#
//int change;
/* 古館に交代時 */
switch(so->gmode)
{
case 0:
asobidama=so->restballnum-so->restpanel;
if(so->clearpanel>=6 && !so->announcer)
{
so->recollection_speak=O_MID1;
return;
}
break;
case 1: /* 9モードの時はすぐ抜ける */
#if 0
if(so->restballnum==1){asobidama=0;}
else{asobidama=1;}
if(so->kmsno==5 && so->clearpanel>=4)
{
so->recollection_speak=O_MID1;
return;
}
#endif
so->recollection_speak=O_MID1;
return;
break;
case 2:
as
0xEDDC00#
/* POLY_G4プリミティブ */
short col[9]; /* 弾道矢印の輝度 */
short dx; /* 左右矢印の速度 */
short ddx; /* 左右矢印の加速度 */
short dy; /* 上下矢印の速度 */
short ddy; /* 上下矢印の加速度 */
short drate; /* 矢印の加速率 */
short dlimit; /* 矢印の速度制限 */
short cdx; /* カーブ矢印の速度 */
short cddx; /* カーブ矢印の加速度 */
short Llimit; /* カーブの左変化リミット */
short Rlimit; /* カーブの右変化リミット */
} LGAGE1;
/*----- ゲージ2(風)情報の構造体 -----*/
typedef struct {
POLY_FT4 ft4; /* POLY_FT4プリミティブ */
short theta; /* 風のなす角度 */
} LGAGE2;
/*----- ゲージ3(パワー&ミート)情報の構造体 -----*/
typedef struct {
GsSPRITE just[2]; /* GsSPRITEプリミティブ(JUSTゲージ 0:ミートポイント 1:パワーゲージ) */
GsSPRITE meet[4]; /* GsSPRITEプリミティブ(ミートポイント) */
GsSPRITE ball; /* GsSPRITEプリミティブ(サッカーボール) */
GsSPRITE sign[3]; /* GsSPRITEプリミティブ(0:MAX 1:MIN 2:POWER) */
POLY_G4 pow[4]; /* POLY_G4プリミティブ(ハ
0xEDFA00#
ョ量 */
short limit; /* 移動限界 */
short next; /* 移動フラグの変化 */
} LMOVE;
#if 0
/* リプレーデータの先頭にくっつく8バイトの内訳 */
typedef struct {
u_char num; /* 選手番号:これは通常の選手も必ず必要 */
u_char col_hs; /* 髪の色(0~3:10の位)/肌の色(0~3:1の位) */
u_char model; /* 髪型(0~4:10の位)/体型(0~8:1の位) */
u_char style; /* 服装(0~25) */
u_char wear; /* 服の色(0~7) */
u_char height; /* 身長 */
u_char hdir; /* 利き手(10の位)/利き足(1の位)*/
u_char shbb; /*打席(最上位1ビット)/靴の色(0~11:下位7ビット)*/
} REP_HEAD;
#endif
/*----- セーブ情報の構造体 -----*/
typedef struct {
REP_HEAD head; /* ヘッダ */
Uchar foot; /* 利き足(0:右利き 1:左利き) */
Uchar board_flg[9]; /* ボードの状態(0:表示 1:非表示) */
Uchar EX; /* エキストラ(0:マッスルランキング 1:エキストラモード) */
Uchar EX_LV; /* エキストラモードのレベル */
short H_dir; /* ボールの水平角度 */
short V_dir; /* ボールの垂直角度 */
short C_dir; /* ボールのカーブ角度 */
int Power; /* ボールを蹴るパワー */
int W_dirx; /* 風のX方向の成分 */
int W_dirz; /* 風のZ方向の成分 */
short px; /* 選手のX座標 */
short pz; /* 選手のZ座標 */
short pry; /* 選手のY回転角度 */
short ptheta; /* 選手とボールのなす角度 */
short BGM; /* BGM */
Uchar se_idx; /* SEのインデックス */
Uchar se_frame[32]; /* SEの格納フレーム */
Ushort se_no[32]; /* SEの格納命令 */
Uchar talk_
0xEE1E00#
me ); /*名前を変える*/
}
}
/*************************************************************************
プレーヤー2側
名前とプレートの表示設定
in: CLASS_W* cls 表示する人のクラス
Uchar flag 表示ON/OFF(ON==表示 / OFF==非表示)
*************************************************************************/
void SetG2dName0501( CLASS_W* cls, Uchar flag )
{
sys_w;
SPD_W* spd;
Uchar tp;
/*表示OFFのとき*/
if ( flag == OFF ){
s->classw0[G_CLS_NAME02].kind = 0; /*
0xEE4E00#
[ em05_act[0].cls ].kind = 0;
TRANS_STEP = 0;
return 1;
}
return 0;
}
/*==========================================================================
==エキストラ用演出文字
==初期表示と演出
== in: short type: ==0(シングルヒット)
==1(ツーベースヒット)
==2(スリーベースヒット)
==3(ホームラン)
==4(アウト)
==5(ボール)
==6(ゲームセット)
==7(ボール4)
== out: ==0: 処理中 ==1:終了
=================================
0xEE8200#
d = 0;
}
}
/***************************************************************************
ポイントセット関数
***************************************************************************/
void G2d_Set_Point05( Ushort getp, Ushort oldp, Ushort newp )
{
get_point = getp;
old_point = oldp;
new_point = newp;
}
/*==========================================================================
==スプレーヒッター用演出文字のパターン
==========================================================================*/
static SPD_W parfect_spd[]={
/* ccode,xsize,ysize,u,v,offset_x,offset_y palette */
{DAT,0x80,0x20,0x00,0x80,0xff40,0x0010,0x49},
{DAT,0x70,0x20,0x80,0x80,0xffc0,0x0010,0x49},
{DAT,0x60,0x20,0x00,0xa0,0x0030,0x0010,0x49},
{DAT,0x18,0x20,0x60,0xa0,0x008c,0x0010,0x49},
{END,0x18,0x20,0x60,0xa0,0x00a0,0x0010,0x49},
};
static SPD_W target_1_spd[]={
/* ccode,xsize,ysize,u,v,offset_x,offset_y palette */
{DAT,0x28,0x18,0x00,0x00,0xffc8,0x0010,0x4d},
{DAT,0x28,0x18,0xa8,0xa0,0xfffe,0x0010,0x4d},
{END,0x10,0x18,0x70,0xc0,0x0030,0x0010,0x4d},
};
static SPD_W target_2_spd[]={
/* ccode,xsize,ysize,u,v,offset_x,offset_y palette */
{DAT,0x28,0x18,0x00,0x00,0xffb5,0x0010,0x4d},
{DAT,0x10,0x10,0xf0,0x90,0xffda,0x0018,0x4d},
{DAT,0x28,0x18,0x00,0x00,0xffec,0x0010,0x4d},
{DAT,0x28,0x18,0xa8,0xa0,0x0018,0x0010,0x4d},
{END,0x10,0x18,0x70,0xc0,0x0044,0x0010,0x4d},
};
static SPD_W target_3_spd[]={
/* ccode,xsize,ysize,u,v,offset_x,offset_y palette */
{DAT,0x28,0x18,0x80,0xb8
0xEF3200#
ll->wind + Random(ball->wind) ) * rsin(cls1->rot.vy))>>12;
cls1->rot.vx += ball->wind<<1;
cls1->rot.vz += Random(ball->wind);
break;
}
}
/*------------------------------------------------
着弾エリアを算出する
引数:なし
戻値:なし
------------------------------------------------*/
void LSub_Area_Culc(void)
{
register int i; /* 作業カウンター */
LEXTRA *extra = ls->extra; /* エキストラモード情報へのポインタ */
short theta;
Uchar tmp[3];
static Uchar tbl[3][2] = {
{0,1},{0,2},{1,2},
};
static Uchar tbl2[4][2] = {
{3,0},{2,1},{1,2},{0,3},
};
/***** 1ヶ所 *****/
if(extra->cnt == 1)
{
extra->area[0] = 0;
return;
}
/***** 算出 *****/
for(i=0;i<3;i++)
{
/* ボールの当たった箇所Aとボールの当たった箇所Bのなす角度を算出する */
theta = ratan2(extra->v[tbl[i][0]].vy - extra->v[tbl[i][1]].vy,extra->v[tbl[i][0]].vx - extra->v[tbl[i][1]].vx);
if(theta >= 0 && theta <= 1024) tmp[i] = 0; /* 左上 */
else if(theta > 1024 && theta <= 2048) tmp[i] = 1; /* 右上 */
else if(theta < 0 && theta >= -1024) tmp[i] = 2; /* 左下 */
else tmp[i] = 3; /* 右下 */
}
/***** 2ヶ所 *****/
extra->area[0] = tbl2[tmp[0]][0];
extra->area[1] = tbl2[tmp[0]][1];
if(extra->cnt == 2) return;
/***** 3ヶ所 *****/
if(tmp[0] == 0)
{
/* 左上 */
if(tmp[1] == 1) extra->area[2] = 1; /* 右上 */
else if(tmp[1] == 2) extra->area[2] = 2;
else if(tmp[1] == 3)
{
extra->ar
0xEF8E00#
;
default:
TRANS_STEP_S = 0;
return( 1 );
}
return( 0 );
}
void demo_copy05( int mode )
{
memcpy( ( char * )ANIME_TABLE2, ( char * )( 0x80140000 + mode * 0x10000 ), 0x10000 );
}
0xEFBC00#
初期化
TVcamInit( 0 ); // 自前カメラの初期化
// 自前の2D部品を登録
bf_GageInit();
// 旗
disp4d( &s->classw1[CLS1_HATA], ITM_FLAG, HATA_POS_X, 0, HATA_POS_Z, 0 );
HataInit( HATA_POS_X );
// マット
disp4d( &s->classw1[CLS1_MAT0], ITM_MAT_0, 0, INIT_POS_Y, 0, 0 );
disp4d( &s->classw1[CLS1_MAT1], ITM_MAT_1, 0, INIT_POS_Y, 0, 0 );
s->classw1[CLS1_MAT0].obj3D_w[0].ot_no = 32; // 堅い部分は、確実に足の下に
s->classw1[CLS1_MAT1].obj3D_w[0].ot_no = 2; // ふかふか部分は、めり込んでも良し
// 木とか看板とか
disp4d( &s->classw1[CLS1_OBJECTS], ITM_OBJECTS, 0, INIT_POS_Y, 0, 0 );
s->classw1[CLS1_OBJECTS].obj3D_w[0].ot_no = 32;
// セット
disp5d( &s->classw1[CLS1_STUDIO_F], GND_STUDIO_F, 32 );
s->classw1[CLS1_STUDIO_F].yposi = INIT_POS_Y;
setScaleClass1( &s->classw1[CLS1_STUDIO_F], MODEL_SCALE );
disp5d( &s->classw1[CLS1_STUDIO_B], GND_STUDIO_B, 32 );
s->classw1[CLS1_STUDIO_B].yposi = INIT_POS_Y;
setScaleClass1( &s->classw1[CLS1_
0xF00E00#
Sh_Pitching_Result,
Sh_Furutachi_Entry,
Sh_Perfect,
Sh_Gameover,
Sh_Next_Player_Check,
Sh_Next_Player,
Sh_Ceremony,
Sh_Cpu_Skip,
Sh_Again,
Sh_Test,
};
/* パネル座標 */
short sh_pposi[][2]={ { 0,-1660}, /* 1番パネル */
{-210,-1240}, /* 2番パネル */
{ 210,-1240}, /* 3番パネル */
{-420, -820}, /* 4番パネル */
{ 420, -820}, /* 5番パネル */
{-630, -400}, /* 6番パネル */
{-210, -400}, /* 7番パネル */
0xF03E00#
読み込み */
case 4: LoadEf(0);
if(CharTrans(0,1))sp->step0+=1;
break;
case 5: /*99.07.27 nakayama アナウンサーロード*/
LoadEf( 0 );
if( AnaTrans() ){
sp_step0_up();
}
break;
case 6: /*99.09.24 satou デモモーションロード */
LoadEf( 0 );
if( G3dTrans05demo( 0 ) ){
sp_step0_up();
}
break;
/* スタートボタンが押されるのを待つ */
case 7:
if(LoadEf(1) == 2)sp->step0+=1;
break;
/* システムワークの初
0xF06400#
sh->joy_t[2] = &sp->joyw[1].joytrg; /* 2コン初期化 */
sh->joy_w[2] = &sp->joyw[1].joy_w;
sh->joy_t[3] = &sh->cpupad; /* CPUコントローラー */
sh->joy_w[3] = &sh->cpupad;
sh->joy_t[0] = &sp->joyw[0].joytrg; /* アクティブコントローラ初期化 */
sh->joy_w[0] = &sp->joyw[0].joy_w;
sh->joy_old[0]= &sp->joyw[0].joyold;
sh->actpad=1;
// s->classw[0].obj3D_w[6].be = ON; /* 左手グー */
set_local_func(Sh_Draw); /* メイン割り込み関数セット */
//sp->gstepw+=1;
Sh_Gstep_Up();
return 0;
}
/*----------------------------------------------*/
/* ゲーム部分セット */
/*----------------------------------------------*/
void Sh_Play_Set(void)
{
sp_w;
sys_w;
/* 初期値 */
#define SH_BATTER_VY 3072
#define SH_TOSSER_VY 432
short batter_x=-350;
short batter_z=SH_ALL_OFFSETZ;
short tosser_x=900;
short tosser_z=1000+SH_ALL_OFFSETZ;
short container_x=950;
short container_z=700+SH_ALL_OFFSETZ;
short container_roty=0;
short batter_vy;
short tosser_vy;
// s->c
0xF0D400#
Sh_View_Set(0,SV_BUFF1,0,0);
// Sh_View_Set(0,SV_BUFF2,0,0);
}
if(joy_w & P_LRIGHT){cls->xposi+=50;}
if(joy_w & P_LLEFT){cls->xposi-=50;}
if(joy_w & P_LUP){cls->zposi-=50;}
if(joy_w & P_LDOWN){cls->zposi+=50;}
if(joy_w & P_TL){cls->rot.vy-=100;}
if(joy_w & P_TL1){cls->rot.vy+=100;}
prin(cls->xposi);
prin(cls->zposi);
prin(cls->rot.vy);
prin(sw);
#if 0
/* 視点 */
if(joy_w & P_LRIGHT){sp->rview.vpx+=100;}
if(joy_w & P_LLEFT){sp->rview.vpx-=100;}
if(joy_w & P_LUP){sp->rview.vpy-=100;}
if(joy_w & P_LDOWN){sp->rview.vpy+=100;}
if(joy_w & P_TL){sp->rview.vpz-=100;}
if(joy_w & P_TL1){sp->rview.vpz+=100;}
/* 注視点 */
if(joy_w & P_RRIGHT){sp->rview.vrx+=100;}
if(joy_w & P_RLEFT){sp->rview.vrx-=100;}
if(joy_w & P_RUP){sp->rview.vry-=100;}
if(joy_w & P_RDOWN){sp->rview.vry+=100;}
if(joy_w & P_TR){sp->rview.vrz-=100;}
if(joy_w & P_TR1){sp->rview.vrz+=100;}
#endif
#if 0
Sh_Camera_Rotate(5,0,0);
Sh_Motion_Demo(&s->clas
0xF10A00#
汲フ座標(吹き飛び中) */
/*カウント60フレームで計算 */
/*----------------------------------------------*/
int Sh_Panel_Coordinate(int no,int frame,VECTOR *vec,SVECTOR *rot)
{
// sp_w;
//int worky,workz;
//int y0,z0;
//int worky0,workz0;
int v,g,gain;
int x,y,z;
int worky1,worky2;
/* 内部計算用 */
POLY_F4 f4;
SVECTOR apex[4];/* 座標値 */
//VECTOR vec;
//SVECTOR rot;
MATRIX m;
long flg,dmy;
#if 0
/* パネルの中心に近いほど力が強まる */
if(sh->p[i].wang>sh->p[no].hang)
{
gain=20-abs(sh->p[no].wang);
if(gain<0){gain=0;}
}
else
{
gain=20-abs(sh->p[no].hang);
if(gain<0){gain=0;}
}
// v=(so_chrdat[sp->chara[0]][0]/6)+gain; /* パネルの吹き飛ぶ力はスピードにより変化 */
#endif
v=-10;
g=5; /* 9.8÷2≒5 */
/* Y方向 */
worky1=v*rsin(sh->p[no].hang)*frame/ONE*400/(30*SH_CALC_FRAME);
worky2=(g*(frame*frame))*400/(30*SH_CALC_FRAME)/(30*SH_CALC_FRAME);
y=worky1+worky2;
/* z方向 */
z=v*rsin(sh->p[no].wang)*frame/ONE*400/(30*SH_CALC_FRAME);
/* x方向 */
x=v*rcos(sh->p[no].wang)*frame/ONE*400/(30*SH_CALC_FRAME);
vec->vx=sh->p[no].x+x;
vec->vy=sh->p[no].y+y;
vec->vz=sh->p[no].z+z/4;
rot->vx=-(sh->p[no].rotx*10*frame);
rot->vy=sh->p[no].roty*10*frame;
rot->vz=0;
rot->vx%=ONE;
rot->vy%=ONE;
// rot->vz%=ONE;
/* ※パネルのZ軸回転は無し */
/* パネルの地面着地用計算 */
setVector(&apex[0],-SH_PANEL_SIZE1/2,0,-SH_PANEL_SIZE1/2);
setVector(&apex[1], SH_PANEL_SIZE1/2,0,-SH_PANEL_SIZE1/2);
setVecto
0xF15A00#
everse,SV_BUFF1,60))
{
sh->timer[0]=0;
sh->v.camflg=0;
sp_step0_up();
}
}
}
break;
case 2:
if(*sh->joy_t[1] & P_RRIGHT)
{
sp->step0=5;
return 0;
}
if(sh->restpanel==2)
{
switch(sp->step1)
{
case 0:
if(Sh_View_Set(1,SV_BUFF1,SV_BUFF1,10))
{
sh->v.camflg=0;
sp->step1+=1;
}
break;
case 1:
if(Sh_View_Set(1,SV_BUFF1,SV_BUFF2,100))
{
sh->v.camflg=0;
Sh_Setview_View(SV_BUFF1,0);
sp_step0_up();
}
break;
}
}
else
{
switch(sp->step1)
{
case 0:
if(Sh_View_Set(1,SV_BUFF1,SV_BUFF1,20))
{
sh->v.camflg=0;
sp->step1+=1;
}
break;
case 1:
if(Sh_View_Set(1,SV_BUFF1,SV_BUFF2,60))
{
sh->v.camflg=0;
sp->step1+=1;
}
break;
case 2:
if(Sh_View_Set(1,SV_BUFF2,SV_BUFF2,10))
{
sh->v.camflg=0;
sp->step1+=1;
}
break;
case 3:
if(Sh_View_Set(1,SV_BUFF2,SV_BUFF3,60))
{
sh->v.camflg=0;
Sh_Setview_View(SV_BUFF1,0);
sp->step1=0;
// sp_step0_up();
sp->step0+=1;
}
break;
}
}
break;
case 3:
if(*sh->joy_t[1] & P_RRIGHT)
{
sp->step0=5;
return 0;
}
if(Sh_View_Set(1,SV_BUFF1,SV_BUFF1,10))
{
sh->v.camflg=0;
sp_step0_up();
}
#if 0
switch(sp->step1)
{
case 0:
if(Sh_View_Set(1,SV_BUFF1,SV_BUFF1,10))
{
0xF1E200#
tVector(&pt->v[2],-SPARK_SIZE, SPARK_SIZE,0);
setVector(&pt->v[3], SPARK_SIZE, SPARK_SIZE,0);
#if 0
static Uchar col = 0x84;
if(OLDKEYL1(JOY1)) col--;
if(OLDKEYR1(JOY1)) col++;
pt->ft4.clut = GetClut(SPRT_CX(col),SPRT_CY(col));
FntPrint("COL(0x%02x)\n",col);
#endif
}
/*------------------------------------------------
エフェクト6(煙)の初期化
引数:なし
戻値:なし
------------------------------------------------*/
void LInit_Effect6(void)
{
register int i; /* 作業用カウンター */
LEFFECT6 *pt = ls->effect6; /* エフェクト6ワークへのポインタ */
Uchar smoke_rgb[2] = {64,128};
short smoke_size[2] = {64,128};
for(i=0;i<2;i++)
{
/* プリミティブの初期化 */
LInit_Sub_FT4(&pt->ft4[i],1);
setRGB0(&pt->ft4[i],smoke_rgb[i],smoke_rgb[i],smoke_rgb[i]);
pt->ft4[i].tpage = GetTPage(0,1,512,256);
pt->ft4[i].clut = GetClut(SPRT_CX(0x92),SPRT_CY(0x92));
/* ベクトルの初期化 */
setVector(&pt->v[i][0],-1*smoke_size[i],-1*smoke_size[i],0);
setVector(&pt->v[i][1], smoke_size[i],-1*smoke_size[i],0);
setVector(&pt->v[i][2],-1*smoke_size[i], smoke_size[i],0);
setVector(&pt->v[i][3], smoke_size[i], smoke_size[i],0);
}
}
/*------------------------------------------------
エフェクト7(エキストラ着弾箇所)の初期化
引数:なし
戻値:なし
------------------------------------------------*/
void LInit_Effect7(void)
{
register int i; /* 作業カウンター */
LEFFECT7 *pt = ls->effect7; /* エフェクト7情報へのポインタ */
/* POLY_G3
0xF23600#
o;
short motstate[2]; /* モーション状態 */
char batting; /* バッティングをしたか? */
short dispballnum; /* 表示用残りボール数 */
short restballnum; /* 実際の残りボール数 */
char restpanel;/* 残りパネル枚数 */
char clearpanel;/* クリアーパネル枚数 */
char pitchingnum; /* 投球回数 */
char failurenum; /* 失敗回数 */
char gameover; /* ゲームオーバーフラグ */
char parfect; /* パーフェクトフラグ */
short pawaofsx,pawaofsy; /* パワプロゲージオフセット */
short emotno; /* モーションナンバー */
ch
0xF25C00#
int G3dTrans05demo( int mode );
extern void set_demo_hand( unsigned char mode, unsigned char offset );
extern void set_konami_mode( void ); /* コナミモードフラグON */
extern void set_kongou_mode( void ); /* 金剛君フラグON */extern char buff[]; /*p_1.c test デバッグフォント*/
extern char buff[]; /*p_1.c test デバッグフォント*/
extern void g_RankInfo( Uchar *, Ushort * ); /* ランキング情報取得 */
extern void g_PAinit( u_char );
extern void setAnaModel(void);
extern void View_Init( void );
extern volatile short XA_play;
/*----------------------------------------------*/
/* 変数エクスターン */
/*----------------------------------------------*/
/* sh_gbl.c */
extern short sh_vdata[][8];
/* disp3d.c */
extern int ana_posctl;
#endif
0,
SH_EX_MODEL_INIT,
SH_EX_FIRST_INIT,
SH_EX_OPENING,
SH_EX_PLAYER_INTRODUCTION,
SH_EX_PREPARATION,
SH_EX_TOSS,
SH_EX_BATTING,
SH_EX_REPLAY,
SH_EX_PITCHING_RESULT,
SH_EX_FURUTACHI_ENTRY,
SH_EX_PERFECT
0xF2CA00#
nt("riff %d\n", rif_range[2][2]);
#endif
ret = ( gm_func[sp->stepw_s] )();
switch(ret){
case 0:
break;
default:
AllWork_Clear( 0 ); // <others.c>
Classw_Clear( 1 );
return 1;
break;
}
#ifdef TEST
{
sys_w;
if( sp->joyw[0].joy_w & P_START && sp->joyw[0].joytrg & P_SELECT ) {
AllWork_Clear( 0 ); // <others.c>
Classw_Clear( 1 );
return 1; /* 競技終了 */
}
FntPrint("step0 %d step1 %d step2 %d step3 %d gms %d\n", sp->step0, sp->step1, sp->step2, sp->step3, sp->stepw_s);
FntPrint("proj %d\n", sp->projection);
if(sp->stepw_s == GM_REPLAY){
FntPrint("char xyz %d %d %d\n", s->classw[0].xposi, s->classw[0].yposi, s->classw[0].zposi);
FntPrint("ball xyz %d %d %d\n", s->classw1[0].xposi, s->classw1[0].yposi, s->classw1[0].zposi);
FntPrint("len %d\n", gm_get_xzlen(&s->classw[0], gm_work.ball_cls1, 0));
}
}
#endif
return 0;
}
/********************/
/* 初期化処理 */
/********************/
int GM_Init(void)
{
int i;
sp_w;
sys_w;
#if TEST_MEM_DAT
long mfp;
#endif
switch( sp->gstepw ) {
case 0: /* */
if ( LoadEf( 0 ) == 1 ){ /*nakayama VRAMへのデータ転送が可能になるまで待つ*/
GM_SdOffFlag = 0; /*通常 SD_call()指定*/
gstep_up();
#if TEST_MEM_DAT
if (sp->mode_fg == 3) { /* リプレイ再生 */
while (( mfp = PCinit()) != 0);
if ( mfp = PCopen( "savedat.dat", 0, 0 ) == -1 )
{
//オープンエラー
FntPrint("!!!!!!!!! Fail to SAVE
0xF32C00#
_HURDLE1) || (sp->step0 == GMS_HURDLE2)) &&
(sp->step1 == 4 || sp->step1 == 8) )
{
if(check_J_ball_posi(cls, cls1)){ /*ハードル用*/
ret = 1;
}
}
// else if( (sp->step0 == GMS_DSTAIRS1)&& (sp->step1 == 4) )
else if( (sp->step0 == GMS_DSTAIRS1)&& ((sp->step1 == 5)||(sp->step1 == 6)) )
{
ret = check_D_ball_posi(cls, cls1); /*下り階段 同じようなものがどんどん増えてゆく*/
}
else if( (sp->step0 == GMS_UPSTAIRS)&& (sp->step1 == 2) )
{
ret = check_U_ball_posi(cls, cls1); /*上り階段 同じようなものがどんどん増えてゆく*/
}
else if( (sp->step0 == GMS_DSTAIRS2)&& (sp->step1 == 3) )
{
ret = check_D_ball_posi(cls, cls1); /*下り階段 同じようなものがどんどん増えてゆく*/
}
else
{
if(check_ball_posi(cls, cls1)){ /*ボール拾い判定*/
ret = 1;
break;
}
// ret = check_ball_posi(cls, cls1); /*ボール拾い判定*/
}
if(ret)
{
if ((sp->step0 != GMS_TOSS) && (sp->step0 != GMS_PASS))
{
break;
}
}
0xF35E00#
if( (cls->zposi >= GM_START_SLOPE) && (cls->zposi < GM_END_SLOPE) ){
gmmotp->mot_no+=3; /*坂用リフモーション*/
}
// else if((GM_STEPDOWN - 50 <= cls->zposi) && (cls->zposi < GM_STEPDOWN)){
// gmmotp->mot_no = GMM_DOWN_STEP; /*台降り*/
// }
// else if( (cls->zposi >= GM_START_DSTEP1) && (cls->zposi < GM_END_DSTEP1) ){
// gmmotp->mot_no+=6; /*階段降り*/
// }
else{
Pose_Set2(cls, GM_UKE_WALK2, 0); /*歩き*/
}
}
if(gm
0xF38C00#
cls->hdir = (cls->hdir)? 0: 1;
}
break;
}
}
/**********/
/*坂リフ足*/
/**********/
void foot_slope(CLASS_W *cls)
{
switch(gmmotp->mot_act){
case 1:
GM_Pose_Set(cls, GM_FOOT_PLAIN, 3, 0);
/*ボールを足に寄せる*/
gm_revision_foot(cls, gm_work.ball_cls1);
gm_work.ball_cls1->work4 = OFF;
gmmotp->mot_act++;
break;
case 2: /*ボタン押し用あたりを見るステップ*/
default:
if(End_Pose_Change(cls, GM_SLOPE_STAND)){
gmmotp->mot_act= 0;
gmmotp->mot_no = 0;
cls->hdir = (cls->hdir)? 0: 1;
}
break;
}
}
/**************************/
/*階段上りモーション(頭) */
/**************************/
void head_upstep(CLASS_W *cls)
{
sp_w;
switch(gmmotp->mot_act){
case 1:
GM_Pose_Set(cls, GM_HEAD_PLAIN, 3, 0);
// gm_revision_head(cls, gm_work.ball_cls1, 0);
gm_revision_head(cls, gm_work.ball_cls1, 1);
gm_work.ball_cls1->work4 = ON;
gmmotp->mot_act++;
break;
case 2:
gm_recover_head(cls, g
0xF3BA00#
)
{
sp->rview.vrz += addZval[cls->pose-5];
}
}
if(End_Pose_Change(cls, GM_NORMAL_STAND)){
cls->merge_timer = 0; /*座標が大きく変わるためマージを止める*/
gmmotp->mot_act= 0;
gmmotp->mot_no = 0;
cls->hdir = (cls->hdir)? 0: 1;
}
break;
}
if(cls->anime_no == GM_JUMP){
cls->zposi += gm_jump_tbl[cls->pose];
}
}
/**********************************/
/*パス受けモーション(胸) */
/**********************************/
void receive_breast_motion(CLASS_W *cls)
{
switch(gmmotp->mot_act){
case 1:
GM_Pose_Set(cls, GM_UKE, 0, 0);
gm_work.ball_cls1->xposi = ( 90 * rsin(cls->rot.vy-2048)>>12) +
cls->obj3D_w[PARTS_BODY].pCoordSect[KOSHI].workm.t[0];
gm_work.ball_cls1->zposi = ( 90 * rcos(cls->rot.vy-2048)>>12) +
cls->obj3D_w[PARTS_BODY].pCoordSect[KOSHI].workm.t[2];
gm_work.ball_cls1->work4 = ON;
gmmotp->mot_act++;
break;
case 2:
if(End_Pose_Change(cls, GM_NORMAL_STAND)){
gmmotp->mot_act= 0;
gmmotp->mot_no = 0;
}
break;
default:
gmmotp->mot_act= 0;
gmmotp->mot_no = 0;
break;
}
}
/**********************************/
/*台に登る */
/**********************************/
void up_footstool_motion(CLASS_W *cls)
{
switch(gmmotp->mot_act){
case 1:
GM_Pose_Set(cls, GM_LEG_PLAIN, 3, 0);
gm_work.ball_cls1->work4 = OFF;
gmmotp->mot_act++;
break;
case 2:
// if(End_Pose_Change(cls, GM_STAND_UPSTEP)){ /*段上り*/
0xF45600#
0;
sp->step1++;
break;
case 1: /*リフティング中*/
SetG2dSt06PassDisp(ON);
SetG2dSt06RUPActive(ON);
SetG2dSt06RRIGHTActive(ON);
/*****************************************/
/** COM用の蹴り待ち *******************/
/*****************************************/
if (com->cpu)
{
switch(com->step0)
{
case 0:
if(pad->joytrg & P_RRIGHT)
{
/*COMキャンセル*/
pad->joytrg &= ~P_RRIGHT; /*をキャンセル*/
}
0xF4A600#
turn_flg = OFF;
return 0;
}
else{
gmmotp->turn_flg = ON;
}
// move_partner(0); /*パートナーの移動*/
gm_clear_dxdz();
if(cls->zposi <= GM_START_SLOPE) /*クランク*/
{
turn = turn*4/3;
}
/*2048を超える回転はない*/
cls->rot.vy = (cls->rot.vy+turn<muki)? cls->rot.vy+turn:
(cls->rot.vy-turn>muki)? cls->rot.vy-turn: muki;
cls->rot.vy = (cls->rot.vy<0) ? cls->rot.vy+4096 :
(cls->rot.vy>=4096) ? cls->rot.vy-4096 : cls->rot.vy;
len = (len+4 <110)?
0xF4EE00#
keyInput(gm_work.main_cls, 1); /*COMの動き*/
if ((s->classw[0].cpu) && (sp->joyw[0].joytrg == P_RRIGHT))
{
// gm_work.main_cls->work4 = gm_high.f_head.y + gm_high.f_head.h/2;
gm_work.main_cls->work4 = (gm_high.gauge[0][1].y0+gm_high.gauge[0][1].y2)/2;
/*次で使う中心位置*/
/*一度高く上げる*/
sp->joyw[0].joytrg &= ~P_RRIGHT;
sp->joyw[0].joytrg |= P_RUP;
}
check_ball_move(gm_work.main_cls, gm_work.ball_cls1); /*ボールの移動と拾い判定*
0xF60A00#
ret = -240;
}
else if(z>=-4290 && z<-4130){
// if( check_ball_x(re_x, 800, 1600) ) ret = -175;
if( check_ball_x(re_x, 800, 1600) ) ret = -180;
}
else if(z>=-4130 && z<-3970){
// if( check_ball_x(re_x, 800, 1600) ) ret = -117;
if( check_ball_x(re_x, 800, 1600) ) ret = -120;
}
else if(z>=-3970 && z<-3810){
// if( check_ball_x(re_x, 800, 1600) ) ret = -59;
if( check_ball_x(re_x, 800, 1600) ) ret = -60;
}
else if(z>=-3810 && z<-3800){
if( check_ball_x(re_x, 800, 1600) ) ret = 0;
}
else if(z>=-3800 && z<-3250){
if( check_ball_x(re_x, -3*z/11-236, 1450) ) ret = 0;
}
else if(z>=-3250 && z<1150){
if( check_ball_x(re_x, 650, 1450) ) ret = 0;
}
else if(z>=1150 && z<1550){
if( check_ball_x(re_x, 650, z*21/20+242) ) ret = 0;
}
else if(z>=1550 && z<GM_START_USTEP){
if( check_ball_x(re_x, z-900, 1870) ) ret = 0;
}
else if(z>=GM_START_USTEP && z<2500){
if( check_ball_x(re_x, 1450, 1870) ) ret = 0;
}
else if(z>=2500 && z<2650){
if( check_ball_x(re_x, 1450, 1870) ) ret = -143;
}
else if(z>=2650 && z<2800){
if( check_ball_x(re_x, 1450, 1870) ) ret = -214;
}
else if(z>=2800 && z<2950){
if( check_ball_x(re_x, 1450, 1870) ) ret = -285;
}
else if(z>=2950 && z<3100){
if( check_ball_x(re_x, 1450, 1870) ) ret = -356;
}
else if(z>=3100 && z<3250){
if( check_ball_x(re_x, 1450, 1870) ) ret = -428;
}
else if(z>=3250 && z<3400){
if( check_ball_x(re_x, 1450, 1870) ) ret = -499;
}
else if(z>=3400 && z<GM_END_USTEP){
if( check_
0xF67A00#
k;
case 0: g_ResSet( gm_status.player_no+1, 0, 0); break;
case 1: g_ResSet( gm_status.player_no+1, 10, 1); break;
case 2: g_ResSet( gm_status.player_no+1, 20, 2); break;
case 3: g_ResSet( gm_status.player_no+1, 40, 3); break;
case 4: g_ResSet( gm_status.player_no+1, 70, 4); break;
case 5: g_ResSet( gm_status.player_no+1, 110, 5); break;
case 6: g_ResSet( gm_status.player_no+1, 150, 6); break;
case 7: g_ResSet( gm_status.player_no+1, 190, 7); break;
case 8: g_ResSet( gm_status.player_no+1, 230, 8); break;
case 9: g_ResSet( gm_status.player_no+1, 280, 8); break;
case 10: g_ResSet( gm_status.player_no+1, 350, 9); break;
case 11: g_ResSet( gm_status.player_no+1, 230, 8); break;
default:
if(area%3==0) g_ResSet( gm_status.player_no+1, 230, 8);
else if(area%3==1) g_ResSet( gm_status.player_no+1, 280, 8);
else if(area%3==2) g_ResSet( gm_status.player_no+1, 350, 9);
break;
}
#endif
}
/**********************/
/*競技順表示 */
/**********************/
int GM_Order(void)
{
sp_w;
sys_w;
int i;
JOY_W *pad;
pad = &sp->joyw[0];
switch(sp->step0){
case 0: /*データのセット*/
if (MenuFadeOut(32, 0) ){
set_camera(&op_came_tbl[13]);
// AnaDispSwitch(&s->classw[3],OFF);
// SetG2dAna03( ANA_FURU, OFF );
// GM_SD_call(B_RESULT); /*test*/
g_MAEinit( 0 );
for(i=0; i<entry_num; i++){
g_ResSet( i+1, 0, 0 );
}
g_MAEjun( 1, 0 );
// sp->step0++;
sp_step0_up
0xF6D400#
switch(sp->step0){ /*まだ影が無い時や影に足が食われる*/
case GMS_SLOPE:
if(cls->zposi > GM_STEPUP){
Ot_no[0] = 6; Ot_no[1] = 32;
}
else if(cls->zposi > GM_END_SLOPE){
Ot_no[0] = 0; Ot_no[1]= kp->otz;
}
else{
Ot_no[0] = 6; Ot_no[1] = 32;
}
break;
case GMS_UPSTAIRS:
if(cls->zposi > GM_END_USTEP){
Ot_no[0] = 7; Ot_no[1] = 64;
}
else{
Ot_no[0] = 8; Ot_no[1] = 128;
}
break;
// case GMS_UPSTAIRS: Ot_no[0] = 9; Ot_no[1] = 253; break;
// case GMS_HURDLE1: Ot_no[0] = 8; Ot_no[1] = 128; break;
// case GMS_HURDLE2: Ot_no[0] = 8; Ot_no[1] = 128; break;
case GMS_DSTAIRS1: Ot_no[0] = 6; Ot_no[1] = 32; break;
case GMS_TOSS:
case GMS_PASS:
case GMS_CRANK:
case GMS_HURDLE1:
case GMS_HURDLE2:
case GMS_DSTAIRS2:
Ot_no[0] = 0; Ot_no[1]= kp->otz;
break;
default: Ot_no[0] = 6; Ot_no[1] = 32; break;
}
}
el
0xF72C00#
if(ball->wind >= 10 && ball->wind <= 30) wind_type += 1; /* 通常 */
else if(ball->wind > 30) wind_type += 2; /* 強風 */
}
/* 風のタイプ別攻略 */
LTalk_Call(HATU_AFTER + 4 + wind_type);
break;
/* シュート前 */
case 1: LTalk_Call(HATU_EX_SHOOT); /* 「コンセントレーションが高まってきました」 */
break;
/* シュート時 */
case 2: LTalk_Call(HATU_EX_SHOOT+1); /* 「さあ、どうだー!」 */
break;
}
}
/*------------------------------------------------
実況EX(初田):成功
引数:なし
戻値:なし
------------------------------------------------*/
void LTalk_Hatu_EX_Success(void)
{
/* 汎用 */
LTalk_Call(HATU_EX_SUCCESS); /* 「これはっ!いったーっ」 */
}
/*------------------------------------------------
実況EX(初田):失敗
引数:なし
戻値:なし
------------------------------------------------*/
void LTalk_Hatu_EX_Miss(void)
{
if(ls->declare->reason == 1)
{
/* フレーム */
LTalk_Call(HATU_EX_MISS+1); /* 「あーっと!
0xF7FA00#
OFF
## リプレー関係の表示そのものを消す
## クラスの表示スイッチをオフにするだけ
##########################################################################*/
void DelG2fRepPlate06()
{
sys_w;
register int i;
rep_ctrl06.silent = 1; /*沈黙せよ*/
for ( i=G_CLSR_REPLAY; i<=G_CLSR_PLATE; i++ ){
s->classw0[ i ].kind = 0;
}
}
/***************************************************************************
グラフィック全消去
***************************************************************************/
void KillG2d06(void)
{
int i;
sp_w;
sys_w;
TRANS_STEP_S=0;
TRANS_STEP=0;
for( i=1; i<=0x0c; i++ ){
s->classw0[i].kind = 0;
}
}
/*##########################################################################
##ゲームメーカー用演出文字のパターン
##########################################################################*/
static SPD_W parfect_spd[]={
/* ccode,xsize,ysize,u,v,offset_x,offset_y palette */
{DAT,0x80,0x20,0x00,0x80,0xff44,0x0013,0x49},
{DAT,0x70,0x20,0x80,0x80,0xffc4,0x0013,0x49},
{DAT,0x60,0x20,0x00,0xa0,0x0034,0x0013,0x49},
{DAT,0x18,0x20,0x60,0xa0,0x0092,0x0013,0x49},
{END,0x18,0x20,0x60,0xa0,0x00a8,0x0013,0x49},
};
static SPD_W ready_spd[]={
/* ccode,xsize,ysize,u,v,offset_x,offset_y palette */
{DAT,0x28,0x18,0x80,0xa0,0xffa7,0x0010,0x4d},
{DAT,0x20,0x18,0x80,0xb8,0xffca,0x0010,0x4d},
{DAT,0x28,0x18,0xa8,0xa0,0xffeb,0x0010,0x4d},
{DAT,0x28,0x18,0xd8,0xb8,0x0010,0x0010,0x4d},
{END,0x28,0x18,0x80,0xd0,0x0034,0x0010,0x4d},
};
static
0xF85E00#
優勝者の判定 */
LSub_Winner_Check();
/* 優勝人数1~3人ならば表彰式へ、そうでなければ終了 */
if(player->v_num >= 1 && player->v_num <= 3) ls->step++;
else ls->step = 8;
break;
/* 表彰式テクスチャーの読み込み */
case 1: if(No1_Trans() == 1)
{
if(player->v_num == 1)
{
motion->dtype = Random(3);
ls->step++;
}
else
{
while( !No1_Trans2(&player->v_box[0],player->v_num) ); /* 優勝シーン用顔グラ転送
0xF8A200#
if(pt->next_mx >= (pt->pw<<1)) pt->next_mx = (pt->pw<<1);
pt->next_mw = pt->next_mx;
limitRange(pt->next_mw,pt->lx,(pt->pw<<1));
}
/* 終了 */
if(ls->flg == 1)
{
/* JUST */
if((pt->mw >= (pt->gx - pt->gw)) && (pt->mw <= (pt->gx + pt->gw)))
{
pt->mw = pt->gx;
pt->just_cnt[1] = 1;
SD_call(SD_RESULT); /* SE */
}
else
{
SD_call(SD_18_GAGE4); /* SE */
}
/* SE */
SD_SeStop(SD_18_GAGE2);
SD_call(SD_18_GAGE3);
/* JUSTよりパワー弱く打つとスタミナが減らない(※COMはスタミナが減らない) */
if(ls->mode != MODE_EXTRA && !ls->cpu && pt->mw >= pt->gx - pt->gw) ls->stamina--;
/* パワーのずれ */
ball->Power = ((pt->mw - pt->gx) * 64) + BASIC_POWER;
LInit_Ball();
LBall_Simulate();
ls->flg = 0;
ls->step = 0;
if(ls->mode == MODE_EXTRA) ls->game = EXGM_MEET;
else ls->game = GAME_MEET;
}
break;
}
LHelp_Gage1_Color(6); /* 左右の狙いの色の初期化 */
if(ls->mode == MODE_EXTRA) LEX_Stage_Move(); /* エキストラモードの各ステージの仕掛け */
}
/*------------------------------------------------
ゲームイベント03:ミートポイント
引数:なし
戻値:なし
------------------------------------------------*/
static void LGame_Meet(void)
{
short tmp = 0; /* 作業ワーク */
CLASS_W *cls = ls->Phuman; /* 選手モデルへのポインタ */
LBALL *ball = ls->ball; /* ボール情報
0xF8EE00#
LGEnd_Produce(1); /* 演出 */
break;
/* メイン(実際には実況待ちの必要アリ) */
case 4: if(LGEnd_Produce(1) == 0 || OLDKEYRRIGHT(JOY1))
// case 4: if(OLDKEYRRIGHT(JOY1))
{
#ifdef DEMO_EDIT_PERFECT
ls->sstep++; /* カメラエディター */
#else
ls->sstep += 2; /* 通常進行 */
#endif
}
#if 0
if(KEYLUP(JOY1)) ls->Phuman->rot.vx += 16;
if(KEYLDOWN(JOY1)) ls->Phuman->rot.vx -= 16;
if(KEYLLEFT(JOY1)) ls->Phuman->rot.vz += 16;
if(KEYLRIGHT(JOY1))
0xF92400#
/*0c プレイヤー登場 */
GMS_NEXTPLAYER, /*0d 次のキャラに更新 */
GMS_KONGO , /*0e 金剛くん登場 */
}GM_PLAY_STATUS;
typedef struct{
CLASS_W *main_cls;
CLASS_W *sub_cls;
CLASS1_W *ball_cls1;
}GM_WORK;
typedef struct{ /*リフティングモーション管理用*/
Uchar status; /*競技中の行動状態*/
Uchar mot_no; /*アニメの番号*/
Uchar mot_act; /*行動状態*/
Uchar mot_stop; /*モーションを止めるフラグ*/
short turn_rot; /*ターンする角度*/
Uchar turn_flg; /*ターン キャラの歩きモーションを出す*/
Uchar move; /*移動してよいかのフラグ*/
/* 松尾追加 99.11.09 *******/
Uchar passAreaNum; /* パスエリアの番号 */
Uchar camCtrlFlg; /* 強制カメラ用制御 0:なし 0x1:Y制御 0x2:Z制御*/
Uchar gageType; /* パス受け用 */
Uchar dummy; /* 穴埋め */
}GM_MOTION;
/*ゲーム情報用の構造体*/
typedef struct{
Uchar player_no; /*何番目のキャラがプレイしているか(entryboxのインデックス)*/
Uchar skip_flg; /*スキップ
0xF93E00#
->ball; /* ボール情報へのポインタ */
LSAVE *save = ls->save; /* セーブ情報へのポインタ */
#if 0
・エディット選手
・ラモスや金剛くんなどキックモーションが違う選手には要注意
・実況
・カメラ
#endif
switch(type)
{
case 0: for(i=0;i<9;i++)
{
save->board_flg[i] = ls->board->flg[i]; /* ボードの状態(0:表示 1:非表示) */
}
save->H_dir = ball->H_dir; /* ボールの水平角度のセット */
save->V_dir = ball->V_dir; /* ボールの垂直角度のセット */
save->C
0xF9B400#
w[0].work1); /*キープ*/
sp->step1++;
break;
case 5:
objectReStore(indexNum[replayNum++]);
if (CheckTrg(0, P_RDOWN))
{
/* リプレイセーブ */
if (sp->mode_fg != 3)
SetG2dSave06();
}
if (CheckTrg(0, P_RRIGHT))
{
SD_call(SD_CTL_XAKILL2);
sp->step0 = GMS_REPOP;
sp->step1 = 5;
break;
}
if (GMK_REPDATA_NUM-70 < replayNum)
{
// SD_call(SD_CTL_FADEOUTX);
replayNum = 0;
sp->step1++;
}
#if 0
else if (replayNum == GMK_REPDATA_NUM-90)
{
SD_call(s->classw[3].work0);
if (gm_work.ball_cls1->work2 != 1)
SD_call(s->classw[3].work1);
}
#endif
break;
case 6:
/*最後はここ*/
if( MenuFadeOut(32, 0) )
{
SD_call(SD_CTL_XAKILL2);
InitG2dRepPlate06(REP_CTRL_ACT, 0); /* リプレイ用2D初期化 */
replayNum = 0;
sp->step0 = GMS_REPOP;
sp->step1 = 0;
}
break;
case 7:
/*パス失敗時のカメラ*/
sp->rview.vrx = gm_work.sub_cls->xposi;
sp->rview.vry = gm_work.sub_cls->yposi - 400;
0xFA0400#
dRew06(); G2DstateR = OFF;}
if (G2DstateF == OFF) G2DstateF = ON; //{ SetG2dFew06(); G2DstateF = ON; }
break;
case REP_RSLOW:
case REP_RPLAY:
case REP_RPLAY2:
case REP_REV:
if (G2DstateR == OFF) G2DstateR = ON; //{ SetG2dRew06(); G2DstateR = ON; }
if (G2DstateF == ON) G2DstateF = OFF; //{ SetG2dFew06(); G2DstateF = OFF;}
break;
}
/********************************************************
** ステップに応じたフレームカウンタの設定 **
********************************************************/
if ((curState+addVal)*lrFlag != REP_STOP)
{
limitRange(replayNum, 0, GmkRepCountS - 2);
}
/********************************************************
** リプレイタイムアウトフラグの判定 **
********************************************************/
if ((repTimeChkFlag == OFF) && ((sp->joyw[0].joy_w != 0) ||
(replayNum == GmkRepCountS - 3)))
{
repTimeChkFlag = ON;
}
/********************************************************
** 何か押さ
0xFA5200#
2))
{
case 0:
/*ダメダメ*/
SD_call(FGM_Q01);
break;
case 1:
/*ダメダメ*/
SD_call(FGM_Q03);
break;
}
}
jumpStep = 7;
}
tmp->time0 = 0;
sp->step1++;
}
break;
case 5:
if (++tmp->time0 >= 45)
{
sp->step1 = jumpStep;
tmp->time0 = 0;
}
break;
case 6:
/* 完全制覇表示用 */
if (SetG2dPerfect06() == 1) /* 表示が終った */
{
sp->step1 = 8;
}
break;
case 7:
/* 結果表示 */
if (SetG2dResult06(tmp->work0) == 1) /* 表示が終った */
{
sp->step1++;
}
break;
case 8:
if ((++tmp->time0 >= 150) || (CheckTrg(0, P_RRIGHT)))
{
SD_call(SD_CTL_FADEOUTX);
sp->step1++;
}
break;
case 9:
if (MenuFadeOut(32, 0))
{
g_ResSet( gm_status.player_no+1, GmkNewPoint, tmp->work0);
s->classw[0].obj3D_w[PARTS_RHAND].be =
s->classw[0].obj3D_w[PARTS_LHAND].be = ON; /* 開いた手 */
s->classw[0].obj3D_w[PARTS_LHAND2].be =
s->classw[0].obj3D_w[PARTS_RHAND2].be = OFF; /* 握った手 */
s->classw1[0].pclip =
s->classw[1].pclip = OFF; /*井原を戻す*/
GM_AllResetStart();
s->classw1[22].pclip = s->classw1[24].pclip = OFF; /*看板, 後ろ客席*/
sp->stepw_s = GM_RANK; /*(play)*/
sp->step0 = 0;
sp->step1 = 0;
}
break;
}
if (sp->step1 > 3)
{
character_SE_demo();
sp->rview.vpx = REP_VIEW_DIST_FIN * rsin(cameraRotY) >> 12;
sp->rview.vpz = REP_VIEW_DIST_FIN * rcos(cameraRotY)
0xFABA00#
рュん以外*/
spd[0].u = age/10 * 0x10;
age %= 10;
spd[1].u = age * 0x10;
}else{ /*金剛くんは年齢不祥*/
spd[0].u = spd[1].u = 0xe0;
}
/*身長*/
spd[2].u = height/100 * 0x10;
height %= 100;
spd[3].u = height/10 * 0x10;
height %= 10;
spd[4].u = height * 0x10;
/*体重*/
if ( weight/100 ){ /*100kg以上ある時*/
spd[5].offset_y = 0x0059;
spd[5].u = weight/100 * 0x10;
}else{ /*100kgはないとき*/
spd[5].offset_y = -256;
}
weight %= 100;
spd[6].u = weight/10 * 0x10;
weight %= 10;
spd[7].u = weight * 0x10;
}
set2d( G_CLS_IT_FORM, SPD_IT_PARAM2, MODE16, 0,0, 11, 0, 10, 1 ); /*パラメータ単位*/
set2d( G_CLS_IT_PLT, SPD_IT_PLATE, STP05P05|MODE16, 0,0, 12, 0, 10, 1 ); /*プレート表示*/
}
/***************************************************************************
演出文字表示&アクション!
***************************************************************************/
/***************************************************************************
パーフェクト達成
初期表示と演出
out: ==0: 処理中 ==1:終了
***************************************************************************/
int SetG2dPerfect06()
{
sp_w;
switch ( TRANS_STEP ){
case 0: /*パターン初期表示*/
set2d( G_CLS_EM_A, SPD_EM06_PERFECT, MODE16, 0,0, 12, 0, 10, 0 );
em06_act[0].step = 0;
em06_act[0].flag = 1; /*収束時フラッシュ有り*/
em06_act[0].cls = G_CLS_EM_A;
em06_act[0].func = Em06_func00;
TRANS_STEP++;
break;
case 1:
0xFB9600#
Random(4) );
GM_SD_call_name(entrybox[gm_status.player_no]);
}
GM_SD_call( FGM_H08+speak_no );
}
gm_status.jikkyou++;
}
break;
case 2:
if(cls->zposi>GM_END_DSTEP1){
if( gm_status.area_blue[gmmotp->passAreaNum]<8 )
GM_SD_call( FGM_H13+GM_Random(4) );
else
GM_SD_call( FGM_H17+GM_Random(4) );
gm_status.jikkyou++;
}
break;
}
}
/*ハードルの実況*/
void GM_SD_call_Hurdle(CLASS_W *cls)
{
Uchar no=0;
Uchar speak_no;
if(c
0xFC0200#
チ
記録表示にモーション追加
リプレイ時の実況を追加
1999/12/09 松尾 記録表示,BGM追加
1999/12/09 松尾 実況など追加
1999/11/27 松尾 作りはじめ!!
*===========================================================================*/
/*------------------------------------------------------------------*/
/* include */
/*------------------------------------------------------------------*/
#include "ps000.h"
#include "gbl_data.h" /* Global Data definition Header */
#include "taka.h"
#include "camera.h"
#include "game.h" /*nakayama*/
#include "g2d.h" /*nakayama*/
#include "sdcall.h"
#include "sd_ouen2.h"
#include "mr_cmn2.h"
#include "mr_16.h"
#include "gm06.h"
#include "m_mem.h"
extern GMreplay *GmkRepDat; /*リプレイデータ*/
extern GMrepsave *GmkRepSav; /*リプレイセーブデータ*/
extern short GmkRepCount;
extern short GmkRepCountS;
extern GM_WORK gm_work; /*cls切り替え用*/
extern GM_MOTION *gmmotp;
static short indexNum[GMK_REPDATA_NUM];
extern GM_STATUS gm_status;
extern Ushort GmkNewPoint;
#ifdef TEST
extern Uchar a_test;
#endif
/*------------------------------------------------------------------*/
/* define */
/*------------------------------------------------------------------*/
#define REP_VIEW_DIST (5000)
#define REP_VIEW_VR_Y (-500)
#define AUTO_REP_FRM_S (5)
#define AUTO_REP_FRM_E (65)
#define REP_STOP 0
#define REP_SLOW 1
#define REP_PLAY
0xFE0200#
mkRepDat[GmkRepCount].ballKeeper = ballKeeper;
/*キャラ情報キープ*/
GmkRepDat[GmkRepCount].xposi0 = s->classw[0].xposi;
GmkRepDat[GmkRepCount].yposi0 = s->classw[0].yposi;
GmkRepDat[GmkRepCount].zposi0 = s->classw[0].zposi;
GmkRepDat[GmkRepCount].rotY0 = s->classw[0].rot.vy;
GmkRepDat[GmkRepCount].anime_no0 = s->classw[0].anime_no;
GmkRepDat[GmkRepCount].pose0 = s->classw[0].pose;
GmkRepDat[GmkRepCount].hdir0 = s->classw[0].hdir;
GmkRepDat[GmkRepCount].xposi1 = s->classw[1].xposi;
GmkRepDat[GmkRepCount].yposi1 = s->classw[1].yposi;
GmkRepDat[GmkRepCount].zposi1 = s->classw[1].zposi;
GmkRepDat[GmkRepCount].rotY1 = s->classw[1].rot.vy;
GmkRepDat[GmkRepCount].anime_no1 = s->classw[1].anime_no;
GmkRepDat[GmkRepCount].pose1 = s->classw[1].pose;
GmkRepDat[GmkRepCount].hdir1 = s->classw[1].hdir;
GmkRepDat[GmkRepCount].xposib = s->classw1[0].xposi;
GmkRepDat[GmkRepCount].yposib = s->classw1[0].yposi;
GmkRepDat[GmkRepCount].zposib = s->classw1[0].zposi;
GmkRepCount = (++GmkRepCount)%GMK_REPDATA_NUM;
GmkRepCountS++;
limitRange(GmkRepCountS, 0, GMK_REPDATA_NUM - 1);
}
/*終了処理*/
int GM_End(void)
{
if(MenuFadeOut(32,1)){
AllWork_Clear( 0 ); // <others.c> //
Classw_Clear( 1 );
return 1; /* 処理が終了したら */
}
return 0;
}
/*キャラ座標の初期化*/
static void obj_pos_init(void)
{
// gm_set_cls(0);
/*プレイヤーキャラ初期位置*/
gm_work.main_cls->xposi = -1200;
gm_work.main_cls->yposi = 0;
gm_work.main_cls->zposi =
0xFEB400#
28, 32, 32}, /* 6:f_foot*/
{ 0, 185, 0, 23, 1, 255, 255, 255}, /* 7:csl*/
{ 0, 185, -10 - GMK_CUR_AJST, 23, 23, 255, 48, 32}, /* 8:toss まつお追加 */
{ 0, 185, 13 - GMK_CUR_AJST, 23, 11, 128, 32, 16}, /* 9:toss まつお追加 */
{ 0, 185, 24 - GMK_CUR_AJST, 23, 7, 96, 16, 16}, /* a:toss まつお追加 */
{ 0, 186, 80 - GMK_CUR_AJST, 21, 0, 255, 16, 16}, /* b:shoot pow*/
};
/*GsBOXFの設定*/
static void gm_set_GsBOXF(GsBOXF *gm, GsBOXF *gm_data)
{
gm->attribute = gm_data->attribute;
gm->x = gm_data->x;
gm->y = gm_data->y;
gm->w = gm_data->w;
gm->h = gm_data->h;
gm->r = gm_data->r;
gm->g = gm_data->g;
gm->b = gm_data->b;
}
/**********************************/
/*高さゲージの設定 */
/**********************************/
static void gm_init_hgauge(void)
{
gm_set_GsBOXF(&gm_high.back, &highgauge_tbl[0]);
gm_set_GsBOXF(&gm_high.u_head, &highgauge_tbl[1]);
gm_set_GsBOXF(&gm_high.f_head, &highgauge_tbl[2]);
gm_set_GsBOXF(&gm_high.u_t
0xFF4A00#
{
short len = gm_get_xzlen(cls, cls1, 0); /*キャラとボールの距離*/
if(gmmotp->move == OFF ){
gmmotp->turn_flg = OFF;
return 0;
}
if( gm_ball.bound == ON){
gmmotp->turn_flg = OFF;
gm_ball.link = OFF;
return 1;
}
cls->xposi = (cls->xposi+4 < x)? cls->xposi+4:
(cls->xposi-4 > x)? cls->xposi-4: x;
cls->zposi = (cls->zposi+4 < z)? cls->zposi+4:
(cls->zposi-4 > z)? cls->zposi-4: z;
len = (len+2 <100)? len+2:
(len-2 >100)? len-2: 100;
cls1->xposi = (len * rsin(cls->rot.vy - 2048)>>12) + cls->xposi;
cls1->zposi = (len * rcos(cls->rot.vy - 2048)>>12) + cls->zposi;
// move_partner(0); /*パートナーの移動*/
if(cls->xposi == x && cls->zposi == z){
gmmotp->turn_flg = OFF;
gm_ball.link = OFF;
return 1;
}
else{
gm_ball.link = ON;
gmmotp->turn_flg = ON;
return 0;
}
}
/****************************/
/*クランクの処理 */
/****************************/
/*返り値 0:処理中 1:処理終了*/
/****************************/
int GM_Crank(void)
{
sp_w;
switch(sp->step1){
case 0: /*一回目のボール受け*/
GMComkeyInput(gm_work.main_cls, 0); /*COMの動き*/
if(check_ball_move(gm_work.main_cls, gm_work.ball_cls1)){
gm_jikkyou_clr();
set_course_ot(0);
gm_ball.link = OFF;
// sp->step1++;
sp->step1=2;
}
break;
case 1: /*ターンする(進行方向)*/
check_ball_move(gm_work.main_cls, gm_work.ball_cls1); /*ボールの移動と拾い判定*/
if( gm_turn(gm_work.main_cls, gm_work.
0x1003C00#
ールの影初期化*/
/******************/
static void init_ball_kage(void)
{
SetPolyFT4(&bkp->ft4);
setRGB0(&bkp->ft4, 0x80, 0x80, 0x80);
SetSemiTrans(&bkp->ft4,1); /* (0:半透明オフ 1:半透明オン) */
SetShadeTex(&bkp->ft4,0); /* (0:輝度変化オン 1:輝度変化オフ) */
bkp->ft4.tpage = GetTPage(0,2,512,256);
bkp->ft4.clut = GetClut(0x140, 0x1f2); /*0x94 x320,y498*/
setUV4(&bkp->ft4,0,0,64,0,0,64,64,64);
bkp->disp_flg = ON;
}
#if 0
/******************/
/*ボールの影表示 */
/******************/
static void dispset_ball_kage(void)
{
bkp->disp_flg = ON;
}
/******************/
/*ボールの影非表示*/
/******************/
static void clearset_ball_kage(void)
{
bkp->disp_flg = OFF;
}
#endif
/******************/
/*ボールの影描画 */
/******************/
void disp_ball_kage(CLASS1_W *cls1)
{
sp_w;
register int i;
long p;
long flag;
short buff;
if(cls1->pclip == ON) return; /*ボールが消えているときは出さない*/
if(bkp->disp_flg == OFF) return;
PushMatrix(
0x1007600#
}
else{
setVector(&pos[0], 0, 0, -500);
setVector(&pos[1], 50, 15, -50);
setVector(&pos[2], 0, -15, -50);
}
otz = RotTransPers3(&pos[0], &pos[1], &pos[2], &sxy[0], &sxy[1], &sxy[2], &p, &flag);
otz >>= (14 - OT_LENGTH);
shoot_kaku[i].x0 = (short)(sxy[0]&0x0000ffff);
shoot_kaku[i].y0 = (short)((sxy[0]>>16)&0x0000ffff);
shoot_kaku[i].x1 = (short)(sxy[1]&0x0000ffff);
shoot_kaku[i].y1 = (short)((sxy[1]>>16)&0x0000ffff);
shoot_kaku[i].x2 = (short)(sxy[2]&0x0000ffff)
0x100AE00#
;
short tmp;
#if 0
camera_idou(came0->vrx, came1->vrx, &sp->rview.vrx, frame);
camera_idou(came0->vry, came1->vry, &sp->rview.vry, frame);
camera_idou(came0->vrz, came1->vrz, &sp->rview.vrz, frame);
camera_idou(came0->rot_y, came1->rot_y, &gm_camera.rot_y, frame);
camera_idou(came0->rot_xz, came1->rot_xz, &gm_camera.rot_xz, frame);
camera_idou(came0->length, came1->length, &gm_camera.length, frame);
#endif
tmp = (short)sp->rview.vrx;
camera_idou(came0->vrx, came1->vrx, &tmp, frame);
0x100DE00#
}
cls->zposi = (cls->zposi+8 <-9800)? cls->zposi+8: -9800;
break;
case 8: /*少し待って*/
/*足音*/
if ((cls->pose == 0) || (cls->pose == 19))
GM_SD_call(SD_16_FOOT2R);
else if (cls->pose == 13)
GM_SD_call(SD_16_FOOT2L);
if( End_Pose_Change(cls, GM_STAND) ){
cls->zposi = -9800; /*念のため*/
sp->step1++;
}
cls->zposi = (cls->zposi+6 <-9800)? cls->zposi+6: -9800;
break;
case 9: /*少し待って*/
/*デモモーションを入れるのか?*/
0x1010C00#
ntrybox2[gm_status.player_no]>>4) == 1 ){ /*comなら見ない*/
makecomdata();
if(gm_status.player_no+1==entry_num){
sp->stepw_s = GM_RANK;
sp->step0 = 0;
sp->step1 = 0;
}
}
else{
sp->step1++;
sp->step2 = 0;
}
}
}
else{
sp->stepw_s = GM_NO1; /*表彰式へ*/
sp->step0 = 0;
sp->step1 = 0;
}
break;
case 1:
if( GM_change_model(entrybox[gm_status.player_no]) )
{
sp->stepw_s = GM_PLAY;
sp->step0 = GMS_CHARA;
sp->step1 = 0;
copyCharData();
}
break;
}
return 0;
}
/*エントリーボックスの内容をCLASS_Wに入れる*/
static void set_entrybox_inf(void)
{
sys_w;
s->classw[0].entry_no = gm_status.player_no;
s->classw[0].cpu = (entrybox2[gm_status.player_no]&0xf0)>>4;
s->classw[0].player_no = entrybox2[gm_status.player_no]&0x0f;
}
/********************************/
/*モデルの読込み */
/********************************/
/*sp->step2を使っているの
0x1019A00#
370, -1622, -1650, 971, /* 競技前説かいだん */
/* 26 */ 386, -1650, 1370, 386, -1650, -7654, /* 競技前説かいだん */
/* 27 */ -4166, -409, 0, 360, -1080, 0, /* リプレイ中央 */
/* 28 */ -137, -1305, 2227, 420, -1880, 0, /* リプレイ1P勝ち */
/* 29 */ 857, -1305, -2227, 300, -1880, 0, /* リプレイ2P勝ち */
/* 30 */ 842, -1253, 2133, 80, -1940, 0, /* リプレイ1P勝ち */
/* 31 */ -122, -1253, -2133, 640, -1940, 0, /* リプレイ2P勝ち */
/* 32 */ -1840, -640, 0, 360, -640, 0, /* リプレイ前落下 */
/* 33 */ -934, -1299, -3745, 360, -640, -2000, /* リプレイ2P後 */
/* 34 */ -934, -1299, 3745, 360, -640, 2000, /* リプレイ1P後 */
/* 35 */ 4038, -428, 4038, 3000, -500, 3000, /* 勝ち1P */
/* 36 */ 4038, -428, -4038, 3000, -500, -3000, /* 勝ち2P */
/* 37 */ 4887, -151, 1113, 4000, -400, 2000, /* 選手紹介1P */
/* 38 */ 4887, -151, -1113, 4000, -400, -2000, /* 選手紹介2P */
/* 39 */ 5253, -151, 2060, 4000, -400, 2000, /* 選手紹介1P */
/* 40 */ 5253, -151, -2060, 4000, -400, -2000, /* 選手紹介2P */
/* 41 */ 3054, -462, 2857, 4000, -400, 2000, /* 選手紹介1P */
/* 42 */ 3054, -462, -2857, 4000, -400, -2000, /* 選手紹介2P */
/* 43 */ 5151, -275, 2544, 4000, -400, 2000, /* 選手紹介1P */
/* 44 */ 5151, -275, -2544, 4000, -400, -2000, /*
0x101FC00#
) beholder.dpz = 32;
if( sp->joyw[1].joytrg & PADRdown )
{
beholder.view.vpx = 0;
beholder.view.vpy = 0;
beholder.view.vpz = 0;
beholder.view.vrx = 0;
beholder.view.vry = 0;
beholder.view.vrz = 0;
beholder.dpx = 0;
beholder.dpy = 0;
beholder.dpz = DDP_CAMERA;
r = 0;
l = 0;
beh_i = 0;
beh_n = 0;
}
beholder.dpx %= 4096;
beholder.dpy %= 4096;
beholder.view.vpx += l * rsin( r + beholder.dpy ) / 4096;
beholder.view.vpz += l * rcos( r + beholder.dpy ) / 4096;
beholder.view.vrx = beholder.view.vpx + beholder.dpz * rsin( beholder.dpy ) / 4096 * rcos( beholder.dpx ) / 4096;
beholder.view.vry = beholder.view.vpy + beholder.dpz * rsin( beholder.dpx ) / 4096;
beholder.view.vrz = beholder.view.vpz + beholder.dpz * rcos( beholder.dpy ) / 4096 * rcos( beholder.dpx ) / 4096;
if( sp->joyw[0].joytrg & PADstart )
{
*( BEH_BUF + beh_n * 6 + 0 ) = beh
0x1028600#
clude "child07.h"
#include "snow.h"
/*--------------------------------------------------------------------------*/
/* DEFINE */
/*--------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/
/* MACRO */
/*----------------------------------------------------------------------
0x102CA00#
sp->chara[1] = entrybox[ddp_tour.tour[ddp_tour.dare[1]]];
s->classw[0].entry_no = ddp_tour.tour[ddp_tour.dare[0]];
s->classw[0].player_no = entrybox2[ddp_tour.tour[ddp_tour.dare[0]]] & 0x0f;
s->classw[0].cpu = entrybox2[ddp_tour.tour[ddp_tour.dare[0]]] & 0xf0;
s->classw[0].hdir = pl_data[sp->chara[0]][4] / 10;
ddp_hdir[0] = s->classw[0].hdir;
s->classw[1].entry_no = ddp_tour.tour[ddp_tour.dare[1]];
s->classw[1].player_no = entrybox2[ddp_tour.tour[ddp_tour.dare[1]]] & 0x0f;
s->classw[1].cpu = entrybox2[ddp_tour.tour[ddp_tour.dare[1]]] & 0xf0;
s->classw[1].hdir = pl_data[sp->chara[1]][4] / 10;
ddp_hdir[1] = s->classw[1].hdir;
dead_man_init();
/* COM見ない & 1PCPU & 2PCPU? */
if( ( OP_CP != 0 ) && ( ( s->classw[0].cpu & 0xf0 ) != 0 ) && ( ( s->classw[1].cpu & 0xf0 ) != 0 ) )
{
/* 最初の試合? */
if( ddp_tour.round == 1 )
{
sp->gstepw++;
}else
{
ddp_replay.winner = ddp_auto_vs();
ddp_tour_manager();
ddp_next( ( ( ddp_tour.tournament == 3 ) ? ( DDP_X ) : ( DDP_II ) ), 0 );
}
}else
{
sp->gstepw++;
}
break;
case 1:
/* キャラ読み込み */
if( CharTrans( -1, 0 ) != 0 )
{
disp3d( &s->classw[0], 0, 0, 0, 0, 0 );
s->classw[0].kind = 0;
sp->gstepw++;
}
break;
case 2:
/* キャラ読み込み */
if( CharTrans( -1, 1 ) != 0 )
{
disp3d( &s->classw[1], 1, 0, 0, 0, 0 );
s->classw[1].kind = 0;
ddp_next( ( sp->mode_
0x1033C00#
p = ( ddp_env.tmp + 1 + dice( 3 ) ) % 4;
ddp_pose_set( ddp_replay.winner, DDP_A_WINA + ddp_env.tmp, 0 );
}else
{
ddp_pose_set( ddp_replay.winner, DDP_A_STAND, 0 );
/* この立ちループだけ強制的にグー */
s->classw[ddp_replay.winner].obj3D_w[PARTS_RHAND2].be = 1;
s->classw[ddp_replay.winner].obj3D_w[PARTS_RHAND].be = 0;
s->classw[ddp_replay.winner].obj3D_w[PARTS_LHAND2].be = 1;
s->classw[ddp_replay.winner].obj3D_w[PARTS_LHAND].be = 0;
}
}
Pose_Change( &s->classw[0] );
Pose_Change( &s->classw[1] );
class_gs3d( &s->classw[0] );
class_gs3d( &s->classw[1] );
if( ddp_sound != 0 )
{
if( s->classw[ddp_replay.player].anime_no == DDP_A_WIND )
{
if( s->classw[ddp_replay.player].pose == 27 )
{
/* 足音 */
SD_call( SD_17_FOOT1R + ddp_replay.player * 2 );
}
if( s->classw[ddp_replay.player].pose == 29 )
{
/* 足音 */
SD_call( SD_17_FOOT1L + ddp_replay.player * 2 );
}
0x103D400#
Pose_Change( &s->classw[0] );
class_gs3d( &s->classw[0] );
class_gs3d( &s->classw[1] );
himo.draw( ddp_env.flg );
if( MenuFadeOut( 64, 0 ) != 0 )
{
set_beholder( 20 );
set_beholder_auto( 21, 82 );
/* 青の柱は */
SD_call( FD_C04 + dice( 2 ) );
/*選手名 */
ddp_sd_call2( 1, ( ( dice( 2 ) == 0 ) ? ( FU_FU_NA_N ) : ( FU_FU_NA_H ) ) );
s->classw[0].xposi = ddp_final_svc.vx;
s->classw[0].yposi = ddp_final_svc.vy;
s->classw[0].zposi = ddp_final_svc.vz;
s->classw[0].rot.vy = 2048;
ddp_pose_set( 0, DDP_A_UPSTAIR, 0 );
/* 選手紹介表示 */
SetG2dIntro07( &s->classw[1], ON );
sp->gstepw++;
}
break;
case 7:
class_gs3d( &s->classw[0] );
class_gs3d( &s->classw[1] );
himo.draw( ddp_env.flg );
if( MenuFadeIn( 64 ) != 0 )
{
sp->gstepw++;
}
break;
case 8:
if( ++ddp_env.cnt > 10 )
{
ddp_stairs( 0 );
}else
{
class_gs3d( &s->classw[0] );
}
ddp_stairs(
0x1041400#
se == 28 )
{
/* 足音 */
SD_call( SD_17_AFOOT1R + id );
}else
{
if( s->classw[id].pose == 40 )
{
/* 足音 */
SD_call( SD_17_FOOT1L + id * 3 );
}else
{
if( s->classw[id].pose == 40 )
{
/* 足音 */
SD_call( SD_17_FOOT1R + id );
}
}
}
}
}
}
}
}
}
#if DDP_HOSI
#define DDP_HOSI_MAX (100)
#define DDP_HOSI_AKARI (0x80)
TILE_1 ddp_hosi_tile1[2][DDP_HOSI_MAX];
SVECTOR ddp_hosi_vec[DDP_HOSI_MAX];
int ddp_pica_cnt = 0;
void HosiInit( void )
{
int i;
/* 初期化 */
for( i = 0; i < DDP_HOSI_MAX; i++ )
{
/* タイル初期化 */
SetTile1( &ddp_hosi_tile1[0][i] );
SetTile1( &ddp_hosi_tile1[1][i] );
ddp_hosi_tile1[0][i].r0 = ddp_hosi_tile1[1][i].r0 = DDP_HOSI_AKARI;
ddp_hosi_tile1[0][i].g0 = ddp_hosi_tile1[1][i].g0 = DDP_HOSI_AKARI;
ddp_hosi_tile1[0][i].b0 = ddp_hosi_tile1[1][i].b0 = DDP_HOSI_AKARI;
ddp_hosi_vec[i].vx = dice
0x104FA00#
dead_man[i].anim = DDP_A_FALLDOWN0 + dice( 2 );
}
}else
{
if( dead_man[1 ^ i].anim == DDP_A_FALLDOWN3 || dead_man[1 ^ i].anim == DDP_A_FALLDOWN4 )
{
dead_man[i].anim = ( dead_man[1 ^ i].anim == DDP_A_FALLDOWN3 ) ? ( DDP_A_FALLDOWN4 ) : ( DDP_A_FALLDOWN3 );
}else
{
dead_man[i].anim = DDP_A_FALLDOWN3 + dice( 2 );
}
}
break;
}
if( dead_man[i].g > DDP_S_ZONE * 4 + DDP_D_ZONE * 4 )
{
dead_man[i].g = DDP_S_ZONE * 4 + DDP_D_ZONE * 4;
}
if( dead_man[i].g < -DDP_S_ZONE * 4 - DDP_D_ZONE * 4 )
{
dead_man[i].g = -DDP_S_ZONE * 4 - DDP_D_ZONE * 4;
}
}else
{
if( dead_man[i].status == DDP_D )
{
sd = DDP_ANA_FUKKI;
dead_man[i].slip = 0;
dead_man[i].status = DDP_N;
}
}
}
/* 最後にモーション処理 */
for( i = 0; i < 2; i++ )
{
if( s->classw[i].anime_no == DDP_A_FAKE )
{
if( ( long )s->classw[i].anime[s->classw[i].pose + 1].pd == STOP )
{
dead_man[i].anim = DDP_A_FAKELOOP;
}
}
if( s->classw[i].anime_no != dead_man[i].anim )
{
ddp_pose_set( i, dead_man[i].anim, 0 );
}
if( dead_man[i].anim == DDP_A_FORESLIP || dead_man[i].anim == DDP_A_BACKSLIP )
{
if( ddp_eff_step[i] == 0 ) ddp_eff_step[i]++;
}
}
if( ddp_replay.game < 3 * 30 ) ddp_replay.game++;
if( dead_man[0].slip != 2 && dead_man[1].slip != 2 )
{
dead_man[0].mmm++;
dead_man[0].mmm %= 8;
dead_man[0].motion[dead_man[0].mmm] = s->classw
0x1053C00#
;
for( i = 0; i < entry_num; i++ )
{
if( ( entrybox2[i] & 0xf0 ) == 0 ) tmp++;
}
if( tmp > 1 )
{
/* 対戦 */
ddp_tour.player = 1;
}else
{
/* ひとりよう */
ddp_tour.player = 0;
}
/* 成績初期化 */
for( i = 0; i < entry_num; i++ )
{
ddp_tour.dtbl[i] = 0;
ddp_tour.dtbl2[i] = 0;
ddp_tour.tour[i] = i;
}
ddp_tour.tournament = 0;
ddp_tour.round = 0;
/* 組み合わせ抽選 */
for( i = 0; i < def_ddp_rand[ddp_tour.mode]; i++ )
{
r0 = dice( def_ddp_rand[ddp_tour.mode] );
r1 = dice( def_ddp_rand[ddp_tour.mode] );
tour = ddp_tour.tour[r0];
ddp_tour.tour[r0] = ddp_tour.tour[r1];
ddp_tour.tour[r1] = tour;
}
for( i = 0; i < 8; i++ )
{
sp->ESW[i] = ddp_tour.tour[i];
}
}
unsigned char def_ddp_round[] = {
8, 7, 4,
4, 3, 255,
1, 255, 255,
};
/* 対戦組み合わせ */
void ddp_tour_dare( void )
{
sp_w;
int i;
/* とりあえず初田に喋らせる */
ddp_announcer.dare = 1;
/* ランキング? */
if( sp->mode_fg == 0 )
{
/*
0x105AC00#
ネ */
SD_call( HD_E05 + dice( 2 ) );
}
}else
{
if( ddp_replay.critical == 4 )
{
if( dice( 2 ) == 0 )
{
/* 最後 */
SD_call( HD_E05 + dice( 2 ) );
/* 選手名 */
ddp_sd_call2( ddp_replay.winner, ( ( dice( 2 ) == 0 ) ? ( HA_FU_NA_H ) : ( HA_FA_NA_H ) ) );
}else
{
/* 選手名 */
ddp_sd_call2( ddp_replay.winner, ( ( dice( 2 ) == 0 ) ? ( HA_FU_NA_H ) : ( HA_FA_NA_H ) ) );
/* ロープを */
SD_call( HD_E05 + dice( 2 ) );
}
}else
{
/* 最後 */
SD_call( HD_E05 + dice( 2 ) );
/* 選手名 */
ddp_sd_call2( ddp_replay.winner, ( ( dice( 2 ) == 0 ) ? ( HA_FU_NA_H ) : ( HA_FA_NA_H ) ) );
}
}
}else
{
sd_tmp = dice( 5 );
if( sd_tmp > 1 )
{
/* 選手名 */
ddp_sd_call2( 1 ^ ddp_replay.winner, ( ( dice( 2 ) == 0 ) ? ( HA_FU_NA_N ) : ( HA_FA_NA_L ) ) );
0x1060A00#
---------------------------------------------------------------------*/
void ddp_man( unsigned char id );
void ddp_cpu( unsigned char id );
/*--------------------------------------------------------------------------*/
/* PUBLIC VALUE */
/*--------------------------------------------------------------------------*/
void ( *ddp_brain[] )( unsigned char ) = {
ddp_man,
ddp_cpu,
};
/*--------------------------------------------------------------------------*/
/* PRIVATE FUNCTION */
/*--------------------------------------------------------------------------*/
unsigned short ddp_renda( unsigned char id, int level );
/*--------------------------------------------------------------------------*/
/* PRIVATE VALUE */
/*--------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/
/* FUNCTION */
/*--------------------------------------------------------------------------*/
void ddp_man( unsigned char id )
{
sp_w;
dead_man[id].ko = dead_man[id].k;
dead_man[id].k = ( ( sp->joyw[dead_man[id].ctrl].joy_w & ( PADLup | PADLdown | PADLleft | PADLright ) ) >> 8 ) | ( ( sp->joyw[dead_man[id].ctrl].joy_w & ( PADRup | PADRdown | PADRleft | PADRright ) ) >> 4 );
dead_
0x1079C00#
no - DDP_A_FALLDOWN0] ) himo.clutch[id] = 1;
else himo.clutch[id] = 0;
break;
case DDP_A_DANGEL0:
case DDP_A_DANGEL1:
case DDP_A_DANGEL2:
case DDP_A_DANGEL3:
case DDP_A_DANGEL4:
himo.clutch[id] = 1;
break;
default:
himo.clutch[id] = 0;
break;
}
/* 金具外れたら20cmくらい増やす */
if( c > himo.clutch[id] )
{
himo.length[id] -= 80;
}
if( c < himo.clutch[id] )
{
himo.length[id] += 80;
}
}
/* 腰紐 */
void himoI( unsigned char id )
{
sp_w;
long otz[2];
otz[0] = ( himo.j[id][HIMO_JOINT_RHIP].z + himo.j[id][HIMO_JOINT_CHIP].z ) / 2;
otz[1] = ( himo.j[id][HIMO_JOINT_CHIP].z + himo.j[id][HIMO_JOINT_LHIP].z ) / 2;
himo.line.x0 = himo.j[id][HIMO_JOINT_RHIP].xy.s.x;
himo.line.y0 = himo.j[id][HIMO_JOINT_RHIP].xy.s.y;
himo.line.x1 = himo.j[id][HIMO_JOINT_CHIP].xy.s.x;
himo.line.y1 = himo.j[id][HIMO_JOINT_CHIP].xy.s.y;
ddpSortLine( &himo.line, &SepOT[0].ot[sp->active_side], otz[0] );
himo.line.x0 = himo.j[id][HIMO_JOINT_CHIP
0x107BA00#
] ) ) / 4096;
}
}
for( i = 1; i < HIMO_MAX; i++ )
{
himo.h[i].z = RotTransPers( &himo.h[i].vec, &himo.h[i].xy.l, &p, &flag );
}
for( i = 0; i < HIMO_MAX; i++ )
{
himo.line.x0 = himo.h[i + 0].xy.s.x;
himo.line.y0 = himo.h[i + 0].xy.s.y;
himo.line.x1 = himo.h[i + 1].xy.s.x;
himo.line.y1 = himo.h[i + 1].xy.s.y;
otz = ( himo.h[i + 0].z + himo.h[i + 1].z ) / 2;
ddpSortLine( &himo.line, &SepOT[0].ot[sp->active_side], otz );
}
}
/*
2 点間をを補完するルーチン
h で渡される配列の先頭・終端、つまり始点・終点は既に決定されていることが前提
2 点間の分割数 n は 2 の x 乗でなくてはならない
2 点間の中央を次々と計算するので、見た目の誤差が少ない( 必ず始点・終点に到達する、各点の誤差は分散される )
2 点間の距離が分割数より短くなると、誤差が大きくなるので意味がない
*/
#define a2b(A,B) \
(((A)-(B))/2+(B))
#if 0
/*
本物の補完関数 by tkm
*/
void hokan( int *h, int n )
{
int i, j;
int ni, nl;
double nd;
nd = ( log( n ) / log( 2 ) );
nl = ( int )nd;
for( i = 1; i < nl + 1; i++ )
{
ni = n >> ( i - 1 );
for( j = 0; j < ( 1 << ( i - 1 ) ); j++ )
{
*( h + ( n >> i ) + j * ni ) = a2b( *( h + j * ni ), *( h + ( j + 1 ) * ni ) );
}
}
}
#endif
void himo_hokan( void )
{
int i, j, ni;
/* PS の対数計算は遅いので計算済みの値を使う */
for( i = 1; i < himo.l + 1; i++ )
{
ni = HIMO_MAX >> ( i - 1 );
for( j = 0; j < ( 1 << ( i - 1 ) ); j++ )
{
himo.h[( HIMO_MAX >> i ) + j * ni].vec.vx = a2b( himo.h[j * ni].vec.vx
0x10AE200#
************/
void KillG2d07(void)
{
int i;
sp_w;
sys_w;
TRANS_STEP_S=0;
TRANS_STEP=0;
for( i=1; i<=0x0d; i++ ){
s->classw0[i].kind = 0;
}
}
/* 動くやつを空回し */
int SetG2dNull07( void )
{
sp_w;
if( TRANS_STEP == 0 ) return( 1 );
if( em07_act[0].func )
{
if( em07_act[0].func( ( void * )&em07_act[0] ) )
{
TRANS_STEP = 0;
return( 1 );
}
}
return( 0 );
}
/*************************************************************************
デッドマンズドロップ用演出文字のパターン
*************************************************************************/
static SPD_W pull_spd[]={
/* ccode,xsize,ysize,u,v,offset_x,offset_y palette */
{DAT,0x28,0x18,0x38,0x98,0xffaa,0xffd8,0x4d},
{DAT,0x28,0x18,0x00,0x80,0xffce,0xffd8,0x4d},
{DAT,0x20,0x18,0x60,0x98,0xfff4,0xffd8,0x4d},
{DAT,0x20,0x18,0x60,0x98,0x0014,0xffd8,0x4d},
{DAT,0x10,0x18,0x80,0xb8,0x0034,0xffd8,0x4d},
{END,0x10,0x18,0x80,0xb8,0x0044,0xffd8,0x4d},
};
static SPD_W batt_1_spd[]={
/* ccode,xsize,ysize,u,v,offset_x,offset_y palette */
{DAT,0x28,0x18,0x28,0x00,0xffc9,0xffd8,0x4d},
{DAT,0x28,0x18,0x00,0xc8,0xffed,0xffd8,0x4d},
{END,0x28,0x18,0x28,0xc8,0x0013,0xffd8,0x4d},
};
static SPD_W batt_2_spd[]={
/* ccode,xsize,ysize,u,v,offset_x,offset_y palette */
{DAT,0x28,0x18,0x50,0x00,0xffc7,0xffd8,0x4d},
{DAT,0x28,0x18,0x00,0xc8,0xffed,0xffd8,0x4d},
{END,0x28,0x18,0x28,0xc8,0x0013,0xffd8,0x4d},
};
static SPD_W batt_3_spd[]={
/* ccode,xsize,ysize,u,v,offset_x,offset_y pale
0x10B3A00#
AllWork_Clear( 0 ); // <others.c>
sp->clear_fg = 0;
sp->gstepw++;
break;
case 6: /* オブジェクトの登録 */
/*nakayama*/
/*アナウンサーのテクスチャをVRAMに転送する*/
tim_trans( (TIM_W *)A_TIM_TABLE[0],0 ); /*テクスチャ*/
tim_trans( (TIM_W *)A_TIM_TABLE[1],0 ); /*カラー*/
setAnaModel();
/* 解像度を変更するとライトが初期化されるので再設定 */
ddp_light_init();
/* nakayama */
View_Init(); // camera.c
sp->view_pt = &beholder.view;
/* 乱数初期化 */
srand( ( unsigned int )VSync( -1 ) );
/* 一発目初期化 */
ddp_init_1st();
/* 音は全滅させとく */
SD_call( SD_CTL_XAKILL2 );
SD_call( SD_CTL_BGMOFF );
SD_call( SD_CTL_ALLOFF );
#if DDP_DEBUG
{
RECT t, p;
/* デバッグフォント */
uso_fnt_init( USO_BUF2, 24 - 256, 16 - 120 );
uso_pcload( "..\\DDP\\EF_073.TIM", USO_BUF2, 0 );
uso_set_tim( ( unsigned long * )USO_BUF2, &t, &p );
#if DDP_HOSI
uso_pcload( "..\\DDP\\EARTH256.TIM", USO_BUF2, 0 );
uso_set_tim( ( unsigned long * )USO_BUF2, &t, &p );
uso_pcload( "..\\DDP\\STAR16.TIM", USO_BUF2, 0 );
uso_set_tim( ( unsigned long * )USO_BUF2, &t, &p );
#endif
}
#endif
switch( sp->mode_fg )
{
case 0: /* ランキング */
ddp_next( DDP_I, 0 );
break;
case 1: /* プラクティス */
ddp_next( DDP_II, 0 );
break;
case 2: /* エキストラ */
case 3: /* リプレイ */
ddp_next( DDP_XV, 0
0x10BC200#
( s->classw[ddp_replay.player].pose == 27 )
{
/* 足音 */
SD_call( SD_17_FOOT1R + ddp_replay.player * 2 );
}
if( s->classw[ddp_replay.player].pose == 29 )
{
/* 足音 */
SD_call( SD_17_FOOT1L + ddp_replay.player * 2 );
}
}else
{
if( s->classw[ddp_replay.player].anime_no == DDP_A_DANGEL0 )
{
if( s->classw[ddp_replay.player].pose == 8 )
{
/* 発泡スチロール音 */
SD_call( SD_17_MOVE1 + dice( 2 ) );
}
}
}
}
himo.draw( 0 );
put_himo( 0 );
ddp_effect( 0 );
if( SetG2dJudge07( &s->classw[ddp_replay.player], ( ddp_replay.player == ddp_replay.winner ) ? ( 0 ) : ( 1 ) ) != 0 )
{
sp->gstepw++;
}
break;
case 8: /* 決着 */
/* ポーズ許可 */
ddp_pause = 1;
beholder_3( ddp_replay.player );
if( ( long )s->classw[ddp_replay.winner].anime[s->classw[ddp_replay.winner].pose + 1].pd == STOP )
{
if( s->classw[ddp_replay.winner].anime_no == DDP_A_STAND )
{
ddp_env.tmp = ( ddp_env.tmp + 1 + dice( 3 ) ) % 4;
ddp_pose_set( ddp_replay.winner, DDP_A_WINA + ddp_env.tmp, 0 );
}else
{
ddp_pose_set( ddp_replay.winner, DDP_A_STAND, 0 );
/* この立ちループだけ強制的にグー */
s->classw[ddp_replay.winner].obj3D_w[PARTS_RHAND2].be = 1;
s->classw[ddp_replay.winner].obj3D_w[PARTS_RHAND].be = 0;
s->classw[ddp_replay.winner].obj3D_w[PARTS_LHAND2].be = 1;
s->classw[ddp_replay.winner].obj3D_w
0x10C1E00#
( ddp_env.cnt );
ddp_effect( 0 );
ddp_replay.ebuf[ddp_env.cnt] = ddp_snow_store();
/* リプレープレート制御 */
G2dReplayCtrl07();
/* スキップ? */
if( tmp == 1 )
{
SD_call( SD_CTL_XAKILL2 );
ddp_sd_fade();
/* リプレイ抜ける */
ddp_env.flg |= ( 1 << 7 );
ddp_env.pau = ddp_env.cnt;
sp->gstepw = 5;
}else
{
/* 通常の終了 */
if( tmp == 2 )
{
sp->gstepw++;
}
}
break;
case 4:
s->classw[0].merge_timer =
0x10CAC00#
&SepOT[0].ot[sp->active_side], 10 );
return( ret );
}
#endif
ern void ddp_replay_rec( void );
extern void ddp_replay_play( unsigned char cnt );
extern int ddp_falldown( void );
extern void ddp_falldown2( void );
extern unsigned long ddp_snow_store( void );
extern void ddp_snow_load( unsigned long snow );
extern void ddp_effect( unsigned char mode );
extern void ddp_set_bg( unsigned char mode );
extern void ddp_tour_dare( void );
extern short a2zero( short *a, short i, short n );
extern uns
0x10D1200#
[ル移動 */
};
/*----- リプレイロードイベント -----*/
static void LReload_Restore(void); /* 02:復元 */
static void LReload_Main(void); /* 03:リプレイ */
static mfunc LReload_System[] = { /* リプレイロードのイベント管理 */
LEvent_Dload, /* 00:データの読み込み */
LEvent_Dinit, /* 01:データの初期化 */
LReload_Restore, /* 02:復元 */
LReload_Main, /* 03:リプレイ */
};
/*----- 選手紹介イベント -----*/
static void LIntro_Normal(void); /* 00:通常 */
static void LIntro_Ramos(void); /* 01:ラモス瑠偉 */
static void LIntro_Gon(void); /* 02:中山雅史 */
static void LIntro_Kongou(void); /* 03:金剛くん */
static mfunc LIntro_System[] = { /* 選手紹介イベントの管理 */
LIntro_Normal, /* 00:通常 */
LIntro_Ramos, /* 01:ラモス瑠偉 */
LIntro_Gon, /* 02:中山雅史 */
LIntro_Kongou, /* 03:金剛くん */
};
/*----- 競技終了イベント -----*/
static Uchar LGEnd_Produce(Uchar); /* 競技終了イベントの演出 */
static void LGEnd_Perfect(void); /* 00:パーフェクト達成 */
static void LGEnd_Imperfect(void); /* 01:パーフェクト未達成 */
static mfunc LGEnd_System[] = { /* 競技終了イベントの管理 */
LGEnd_Perfect, /* 00:パーフェクト達成 */
LGEnd_Imperfect, /* 01:パーフェクト未達成 */
};
/*----- セット -----*/
static void LSet_Board(void); /* ボードのセット */
static void LSet_Gage1(void); /* ゲージ1(左右の狙い)のセット */
static void LSet_Gage3(void); /* ゲージ3(パワ
0x10D7600#
= GAME_DECLARE;
#else
LMotion_Set(MKD_STAND,MFLG_INIT);
ls->game = GAME_DIRECTION;
#endif
/* アナウンサー交替(初田→古舘)(残りパネル3枚になったら) */
if(ls->ana == ANA_HATU && ls->declare->old_get >= 0 && ls->board->rest == 3)
{
ls->ana = ANA_FURU;
ls->event = EVENT_CHANGE;
}
}
/*------------------------------------------------
イベント06:ゲームのメイン
引数:なし
戻値:なし
------------------------------------------------*/
static void LEvent_GMain(void)
{
if(ls->mo
0x10E5A00#
w
sll $3,$17,1
addu $3,$3,$17
sll $3,$3,3
addu $3,$3,$2
lbu $2,20($3)
#nop
beq $2,$0,$L50
lbu $2,21($3)
#nop
.set noreorder
.set nomacro
beq $2,$0,$L50
andi $5,$18,0x00ff
.set macro
.set reorder
.set noreorder
.set nomacro
beq $5,$0,$L50
move $4,$17
.set macro
.set reorder
.loc 1 411
LM137:
#.set volatile
sh $0,16($sp)
#.set novolatile
.loc 1 412
LM138:
sh $0,18($3)
sh $0,16($3)
.loc 1 413
LM139:
sb $0,21($3)
sb $0,20($3)
.loc 1 414
LM140:
sb $0,23($3)
.loc 1 415
LM141:
.set noreorder
.set nomacro
jal ActuClr
sb $0,22($3)
.set macro
.set reorder
$L50:
.loc 1 417
LM142:
$Le9:
.bend $Le9 45
#.set volatile
lhu $2,16($sp)
#.set novolatile
.loc 1 418
LM143:
lw $31,36($sp)
lw $18,32($sp)
lw $17,28($sp)
lw $16,24($sp)
.loc 1 417
LM144:
sll $2,$2,16
sra $2,$2,16
.loc 1 418
LM145:
.set noreorder
.set nomacro
j $31
addu $sp,$sp,40
.set macro
.set reorder
.loc 1 418
LM146:
.end Vibration
.align 2
.def ShockON; .val ShockON; .scl 2; .type 0x21; .endef
.globl ShockON
.loc 1 424
LM147:
.loc 1 424
LM148:
.ent ShockON
ShockON:
.frame $sp,48,$31 # vars= 8, regs= 6/0, args= 16, extra= 0
.mask 0x801f0000,-4
.fmask 0x00000000,0
$Lb10:
.begin $Lb10 1
.def result; .val -32; .scl 1; .type 0x3; .endef
.def i; .val 17; .scl 4; .type 0x4; .endef
subu $sp,$sp,48
sw $17,28($sp)
.loc 1 429
LM149:
move $17,$0
lui $2,%hi(sys0) # high
0x1113ED8#
Furu_After2
800A6EE8 op_stup5_spd
800A6F3C op_stup6_spd
800A6F90 op_stup7_spd
800A6F90 gl_gageOn_Height
800A6FC0 op_stup1s_spd
800A7004 ddp_cpu
800A7008 gl_gageOn_Power
800A702C op_stup2s_spd
800A7068 op_stup3s_spd
800A7068 gl_gageOn_Walldist
800A7070 LTalk_Furu_
0x113D600#
tse = AREA_STSE0; /*AREA_STSE*/
se1_err = 0;
ouen = 0;
SE_BGM_fade = 0;
}else{
if ( Q_vag[Pp] != 0 ){
SD_stream1 = Q_vag[Pp];
SD_intse = AREA_STSE0; /*AREA_STSE*/
se1_err = 0;
Q_vag[Pp] = 0;
Pp++;
if(Pp > 31)
Pp=0;
}
}
}
XA_count = 0;
for(i=0;i<24;i++) {
if(Q_vag[i] != 0 ) XA_count++;
}
if (SD_status[23] == 1) XA_count++;
if (SD_intse != 0) XA_count++;
}
/*------------------------------*/
/* ストリーム 開始 */
0x1143A00#
{
printf("check 2\n");
SD_intse = AREA_STSE0; /*最初から*/
}
} else {
if ( result = CdlDiskError ){
printf("check 1\n");
se1_err++;
if(se1_err > 20) {
se1_err = 0;
SD_intse = AREA_STSE_ERR; /*あきらめた*/
printf("give up[%d]\n",SD_stream1);
}else{
SD_intse = AREA_STSE0; /*最初から*/
}
}
}
#else
/*PCファイル オープン&シーク*/
if ( SD_stream1 <= (VOICE_TOP-COMN_TOP) ){ /*共有音声*/
while ( ( fp = PCopen("mr_cmn2.bin", 0, 0 ) ) == -1 );
}else if ( SD_stream1 >= 2200 ){ /*応援音声*/
while ( ( fp = PCopen("cheer2.bin", 0, 0 ) ) == -1 );
}else{ /*競技実況*/
while ( ( fp = PCopen(file_name[Kyougi_no], 0, 0 ) ) == -1 );
}
t_flag = PClseek( fp,(long)fp_se, 0 );
SD_intse++;
#endif
break;
/* CDread */
case AREA_STSE+1:
#if SD_CD
result = CdSync(1,sub_status);
if( result == CdlComplete) { /* Data Ready */
if( (sub_status[0] & 0x10) == 0x10) {
SD_intse = AREA_STSE_ERR;
break;
}
// if ( CdRead (fpe_se, (void *) str_se_buf, CdlModeSpeed) ){
if ( KCdRead( fp_se, fpe_se, (void*)str_se_buf ) ){
sec_cnt = 0;
read_end = read_end_p = 0;
SD_intse++;
}
}else {
if ( result == CdlDiskError ){
printf("check 3\n");
SD_intse = AREA_STSE0;
break;
}
}
#else
/*PCファイルリード&クローズ*/
PCread( fp, (char *)str_se_buf, fpe_se );
PCclose( fp );
SD
0x1153A00#
ead_step = CD_READ_INIT;
sp->ovrlay_step++;
}
break;
case 6: /* ムービー プログラム読み込み */
if( OverLay( OVERLAY_MOVIE ) ) {
cd_read_step = CD_READ_INIT;
sp->ovrlay_step = (sp->ModSel.mode==3)? 8:7;
}
break;
case 7:
Title();
break;
case 8:
Select();
break;
}
}
/*-----------------------------------*/
/* 進行関連 k.shimizu Aug.04th 1999 */
/*-----------------------------------*/
/*----------------------------------------------------------------------------
ランキング ステップ管理
----------------------------------------------------------------------------*/
void RnkStep( void )
{
sp_w;
switch( sp->ovrlay_step ) {
case 0: /* 初期化 */
if ( SD_f_pause ){
SD_f_pause = 0; /*サウンドの処理関連*/
SD_call( SD_CTL_XAKILL2 );
SD_call( SD_CTL_ALLOFF );
}
AllWork_Clear(0);
INTER_MODE = INT_VSYNC;
cd_read_step = CD_READ_INIT;
sp->ovrlay_step++;
break;
case 1: /* 予備 */
sp->ovrlay_step++;
break;
case 2: /* 2Dデータ ロード&転送 */
if( cd_file_load_NB( LOAD_DAT2D ) ) {
tim_trans((TIM_W *)TIM_TABLE[0],0);
tim_trans((TIM_W *)TIM_TABLE[1],0);
cd_read_step = CD_READ_INIT;
sp->ovrlay_step++;
}
break;
case 3: /* メモリーカード プログラム読み込み */
if( OverLay( OVERLAY_MEMCARD ) ) {
cd_read_step = CD_READ_INIT;
sp->ovrlay_step++;
}
break;
case 4: /* 進行共通 プログラム読み込み */
if( OverLay( OVERLAY_M_COMN ) ) {
cd_read_step = CD_READ_INIT;
sp->ovrlay_step++;
}
break;
case 5: /* ラン
0x1162200#
2d_02.obj: st02\g2d_02.c $(HDRS) st02\beach.h
$(CC) $(CFLAGS_CHILD02) st02\$&.c -o$<
..\obj\child02s.obj: st02\child02s.c $(HDRS) st02\beach.h
$(CC) $(CFLAGS_CHILD02) st02\$&.c -o$<
..\obj\hata2.obj: st02\hata2.c $(HDRS) st02\beach.h
$(CC) $(CFLAGS_CHILD02) st02\$&.c -o$<
..\obj\player2.obj: st02\player2.c $(HDRS) st02\beach.h
$(CC) $(CFLAGS_CHILD02) st02\$&.c -o$<
..\obj\cpu2.obj: st02\cpu2.c $(HDRS) st02\cpu.h st02\beach.h
$(CC) $(CFLAGS_CHILD02) st02\$&.c -o$<
..\obj\tvcam2.obj: st02\tvcam2.c $(HDRS) st02\tvcam.h st02\beach.h
$(CC) $(CFLAGS_CHILD02) st02\$&.c -o$<
..\obj\replay2.obj: st02\replay2.c $(HDRS) st02\replay.h st02\beach.h
$(CC) $(CFLAGS_CHILD02) st02\$&.c -o$<
..\obj\snow2.obj: st02\snow2.c $(HDRS) st02\snow.h st02\beach.h
$(CC) $(CFLAGS_CHILD02) st02\$&.c -o$<
..\obj\tkm_sp2.obj: st02\tkm_sp2.c $(HDRS) st02\beach.h
$(CC) $(CFLAGS_CHILD02) st02\$&.c -o$<
..\obj\effect2.obj: st02\effect2.c $(HDRS) st02\effect.h st02\beach.h
$(CC) $(CFLAGS_CHILD02) st02\$&.c -o$<
..\obj\gage2.obj: st02\gage2.c $(HDRS) st02\gage.h st02\beach.h
$(CC) $(CFLAGS_CHILD02) st02\$&.c -o$<
..\obj\ana2.obj: st02\ana2.c $(HDRS) st02\ana.h st02\beach.h
$(CC) $(CFLAGS_CHILD02) st02\$&.c -o$<
..\obj\d_font2.obj: st02\d_font2.c $(HDRS) st02\d_font.h st02\beach.h
$(CC) $(CFLAGS_CHILD02) st02\$&.c -o$<
# ガロンスロー
..\obj\child03.obj: st03\child03.c $(HDRS) st03\gallon.h
$(CC) $(CFLAGS_CHILD03) st03\$&.c -o$<
..\obj\g2d_03.obj: st03\g2d_03.c $(HDRS) s
0x116CC00#
3, 0xea, 0x10, 0x10, 0x04, 0x00},
};
*/
OPD_PATTERN_HEADER loadb_PAT0007_p[] = {
{0x0001, 0x0000, 0x10, 0x10, 0, 0, 0, 0},
{0x0000, 0x0000, 0x03, 0xc0, 0x10, 0x10, 0x04, 0x00},
};
OPD_PATTERN_HEADER loadb_PAT0008_p[] = {
{0x0001, 0x0000, 0x10, 0x10, 0, 0, 0, 0},
{0x0000, 0x0000, 0x03, 0xc2, 0x10, 0x10, 0x04, 0x00},
};
OPD_PATTERN_HEADER loadb_PAT0009_p[] = {
{0x0001, 0x0000, 0x10, 0x10, 0, 0, 0, 0},
{0x0000, 0x0000, 0x03, 0xc4, 0x10, 0x10, 0x04, 0x00},
};
OPD_PATTERN_HEADER loadb_PAT0010_p[] = {
{0x0001, 0x0000, 0x08, 0x10, 0, 0, 0, 0},
{0x0000, 0x0000, 0x03, 0xe0, 0x08, 0x10, 0x04, 0x00},
};
OPD_PATTERN_HEADER loadb_PAT0011_p[] = {
{0x0001, 0x0000, 0x10, 0x10, 0, 0, 0, 0},
{0x0000, 0x0000, 0x03, 0xe1, 0x10, 0x10, 0x04, 0x00},
};
OPD_PATTERN_HEADER loadb_PAT0012_p[] = {
{0x0001, 0x0000, 0x10, 0x10, 0, 0, 0, 0},
{0x0000, 0x0000, 0x03, 0xe3, 0x10, 0x10, 0x04, 0x00},
};
OPD_PATTERN_HEADER loadb_PAT0013_p[] = {
{0x0001, 0x0000, 0x10, 0x10, 0, 0, 0, 0},
{0x0000, 0x0000, 0x03, 0xe5, 0x10, 0x10
0x1176A00#
d+0x7ff)/0x800, (Ulong)MODEL_TABLE }, /* 0xab デットマンズドロップ */
{ 0x000c9800/0x800+CD_DATA03, (0x0000571c+0x7ff)/0x800, (Ulong)TIM_TABLE }, /* 0xac */
{ 0x000cf000/0x800+CD_DATA03, (0x00007ddd+0x7ff)/0x800, (Ulong)MODEL_TABLE }, /* 0xad ロングシュート */
{ 0x000d7000/0x800+CD_DATA03, (0x00005720+0x7ff)/0x800, (Ulong)TIM_TABLE2 }, /* 0xae */
{ 0x000dc800/0x800+CD_DATA03, (0x00007ddd+0x7ff)/0x800, (Ulong)MODEL_TABLE }, /* 0xaf エンディング */
{ 0x000e4800/0x800+CD_DATA03, (0x00005720+0x7ff)/0x800, (Ulong)TIM_TABLE2 }, /* 0xb0 */
/*2D関係 data04.bin*/
{ 0x00000000/0x800+CD_DATA04, (0x00002264+0x7ff)/0x800, (Ulong)TIM_TABLE }, /* 0xb1 共通パレット*/
{ 0x00002800/0x800+CD_DATA04, (0x00004b14+0x7ff)/0x800, (Ulong)TIM_TABLE }, /* 0xb2 説明画面0 */
{ 0x00007800/0x800+CD_DATA04, (0x00004f2c+0x7ff)/0x800, (Ulong)TIM_TABLE }, /* 0xb3 説明画面1 */
{ 0x0000c800/0x800+CD_DATA04, (0x00004854+0x7ff)/0x800, (Ulong)TIM_TABLE }, /* 0xb4 説明画面2 */
{ 0x00011800/0x800+CD_DATA04, (0x00004fd4+0x7ff)/0x800, (Ulong)TIM_TABLE }, /* 0xb5 説明画面3 */
{ 0x00016800/0x800+CD_DATA04, (0x00004480+0x7ff)/0x800, (Ulong)TIM_TABLE }, /* 0xb6 説明画面4 */
{ 0x0001b000/0x800+CD_DATA04, (0x00004efc+0x7ff)/0x800, (Ulong)TIM_TABLE }, /* 0xb7 説明画面5 */
{ 0x00020000/0x800+CD_DATA04, (0x00004458+0x7ff)/0x800, (Ulong)TIM_TABLE }, /* 0xb8 説明画面6 */
{ 0x00024800/0x800+CD_DATA04, (0x000047cc+0x7ff)/0x800, (Ulong)TIM_TABLE }, /* 0xb9 説明画面7 */
0x117C400#
00+CD_DATA07, (0x00004890+0x7ff)/0x800, (Ulong)TIM_TABLE2 }, /* 0x17e */
{ 0x0012b000/0x800+CD_DATA07, (0x00005a24+0x7ff)/0x800, (Ulong)TIM_TABLE2 }, /* 0x17f */
{ 0x00131000/0x800+CD_DATA07, (0x0000b94c+0x7ff)/0x800, (Ulong)TIM_TABLE2 }, /* 0x180 */
{ 0x0013d000/0x800+CD_DATA07, (0x0002d9c4+0x7ff)/0x800, (Ulong)TIM_TABLE2 }, /* 0x181 計53枚 */
};
#else
/*HDからデータを読むために*/
static Ulong hd_read_addr[] = {
(Ulong)TIM_TABLE2, /* 00 MODチップ対策 */
(Ulong)CHILD_ADDRESS, /* 01 child00 */
(Ulong)CHILD_ADDRESS, /* 02 child01 */
(Ulong)CHILD_ADDRESS, /* 03 child02 */
(Ulong)CHILD_ADDRESS, /* 04 child03 */
(Ulong)CHILD_ADDRESS, /* 05 child04 */
(Ulong)CHILD_ADDRESS, /* 06 child05 */
(Ulong)CHILD_ADDRESS, /* 07 child06 */
(Ulong)CHILD_ADDRESS, /* 08 child07 */
(Ulong)CHILD_ADDRESS, /* 09 child08 */
(Ulong)CHILD_ADDRESS, /* 0a エンディング */
(Ulong)TIM_TABLE, /* 0b サウンドプログラム */
/* 進行関連 */
(Ulong)M_COMN_ADDRE
0x1184B70#
eg, Gen24Reg, EXTERNAL
[Gen24NFC]
AddReg=All, GenericAddReg, Gen24NFCReg, EXTERNAL
[Gen24I]
AddReg=All, GenericAddReg, Gen24Reg, INTERNA */
"..\\bin\\char_EA.bin", /*115 テクスチャA */
"..\\bin\\char_EB.bin", /*116 テクスチャB */
"..\\bin\\char_EC.bin", /*117 テクスチャC */
"..\\bin\\atama_t0.bin", /*118 頭テクスチャ0 */
"..\\bin\\atama_t1.bin", /*119 頭テクスチャ1 */
"..\\bin\\atama_t2.bin", /*11a 頭テクスチャ2 */
"..\\bin\\atama_t3.bin", /*11b 頭テクスチャ3 */
"..\\bin\\atama_t4.bin", /*11c 頭テクスチャ4 */
"..\\bin\\atama_t5.bin", /*11d 頭テクスチャ5 */
"..\\bin\\atama_t6.bin", /*11e 頭テクスチャ6 */
"..\\bin\\atama_t7.bin", /*11f 頭テクスチャ7 */
"..\\bin\\atama_t8.bin", /*120 頭テクスチャ8 */
"..\\bin\\atama_t9.bin", /*121 頭テクスチャ9 */
"..\\bin\\atama_tA.bin", /*122 頭テクスチャA */
"..\\bin\\atama_tB.bin", /*123 頭テクスチャB */
/*頭モデル*/
"..\\bin\\ataE0a.bin", /*124 モデル1頭 */
"..\\bin\\ataE0b.bin", /*125 モデル1頭 */
"..\\bin\\ataE1a.bin", /*126 モデル2頭 */
"..\\bin\\ataE1b.bin
0x11E8E00#
**********************************************
else
***************************************************************************/
extern Ulong* inf_opd[];
short ginf_timer,ginf_step,ginf_timer2;
int SD_title_ready;
CVECTOR lumi;
u_char v_memory;
/***************************************************************************
***************************************************************************/
u_char sd_title_call[] = { /*各競技のタイトルコールの数*/
2, 1, /*po 9f*/
3, 3, /*bf gt*/
1, 1
0x11F2A00#
ン込み中*/
(Ulong)press_spd, /*03 入力待ち */
(Ulong)ber_spd, /*04 しましま */
(Ulong)light_spd, /*05 あかり */
(Ulong)waku_spd, /*06 枠 */
/*競技用*/
(Ulong)gm_rogo_spd, /*07 ロゴ */
(Ulong)gm_sousa_spd,/*08 金剛くん */
(Ulong)gm_fuki_spd, /*09 吹き出し */
};
/*デッドマンズドロップ用・パターン*/
Ulong inf_dd_opd[] = {
/*共通*/
(Ulong)back01_spd, /*00 背景 上 */
(Ulong)back02_spd, /*01 背景 下 */
(Ulong)load_spd, /*02 読み込み中*/
(Ulong)press_spd, /*03 入力待ち */
(Ulong)ber_spd, /*04 しましま */
(Ulong)light_spd, /*05 あかり */
(Ulong)waku_spd, /*06 枠 */
/*競技用*/
(Ulong)dd_rogo_spd, /*07 ロゴ */
(Ulong)dd_sousa_spd,/*08 金剛くん */
(Ulong)dd_fuki_spd, /*09 吹き出し */
};
/*ロングシュート用・パターン*/
Ulong inf_ls_opd[] = {
/*共通*/
(Ulong)back01_spd, /*00 背景 上 */
(Ulong)back02_spd, /*01 背景 下 */
(Ulong)load_spd, /*02 読み込み中*/
(Ulong)press_spd, /*03 入力待ち */
(Ulong)ber_spd, /*04 しましま */
(Ulong)light_spd, /*05 あかり */
(Ulong)waku_spd, /*06 枠 */
/*競技用*/
(Ulong)ls_rogo_spd, /*07 ロゴ */
(Ulong)ls_sousa_spd,/*08 金剛くん */
(Ulong)ls_fuki_spd, /*09 吹き出し */
(Ulong)ex_long_spd, /*0a エキストラ吹き出し */
};
/*とりまとめ*/
Ulong* inf_opd[] = {
inf_po_opd, /*0 パンチアウト*/
inf_9f_opd, /*1 9フープス*/
inf_bf_opd, /*2 ビーチフラッグス*/
inf_gt_opd, /*3 ガロンスロー*/
inf_b5_opd, /*4 バック転50m走*/
inf_sh_opd, /*5 スプレイヒッター*/
inf_gm_opd, /*6 ゲームメーカー*/
inf_dd_o
0x1281E00#
O
FURU\FK3_G23.VAG
FURU\FK3_G24.VAG
FURU\FK3_G25.VAG
FURU\FK3_G26.VAG
FURU\FK3_G27.VAG
#既に抜いた穴
FURU\FK3_G28.VAG
# 結果表示
#パーフェクト/完全制覇 達成
FURU\FK4_E00.VAG
FURU\FK4_E01.VAG
FURU\FK4_E02.VAG
FURU\FK4_E03.VAG
FURU\FK4_E04.VAG
#パーフェクト専用
FURU\FK4_E05.VAG
FURU\FK4_E06.VAG
FURU\FK4_E07.VAG
FURU\FK4_E08.VAG
FURU\FK4_E09.VAG
FURU\FK4_E10.VAG
0x1287400#
#「均整の取れた体格をしておりますが」
#しも
#パワー用
HATU\HK1_B10.VAG #「パワーだけではパーフェクトを達成できません」
HATU\HK1_B11.VAG #「パワーだけでは完全制覇は狙えません」
#スタミナ用
HATU\HK1_B35.VAG #「自慢のスタミナがこの競技にどう生かされるのでしょうか」
#汎用
HATU\HK1_B12.VAG #「見事勝利を勝ち取ることができるか!」
HATU\HK1_B13.VAG #「どちらかといえば得意な競技です」
HATU\HK1_B18.VAG #「自分の力を出し切ることができるでしょうか!」
HATU\HK1_B19.VAG #「すばらしい記録の誕生を祈りましょう」
HATU\HK1_B20.VAG #「やれるところまでがんばってほしいところです」
HATU\HK1_B21.VAG #「自分がどこまで通用するのか確かめたいそうです」
HATU\HK1_B26.VAG #「どのような技を披露してくれるのでしょうか」
HATU\HK1_B27.VAG #「完全制覇目指してがんばってほしいところです」
HATU\HK1_B28.VAG #「この難関をどこまで突き進んでくれるのか楽しみです」
HATU\HK1_B29.VAG #「己の能力を最大限に発揮して欲しいところです」
HATU\HK1_B33.VAG #「己の力を十二分に出し切
0x128B400#
HATU\HK2_G15.VAG #「これは残念」
HATU\HK2_G16.VAG #「これは痛い」
HATU\HK2_G17.VAG #「これはもったいない」
HATU\HK2_G18.VAG #「これは惜しい」
HATU\HK2_G19.VAG #「何事も思い通りには行きません」
HATU\HK2_G20.VAG #「何事も思い通りには行きません」
HATU\HK2_G21.VAG #「失敗してしまいましたが、チャンスはまだあります!」
HATU\HK2_G22.VAG #「失敗の経験を次へつなげて欲しい!」
HATU\HK2_G23.VAG #「同じ過ちを繰り返すわけにはいきません!」
HATU\HK2_G24.VAG #「しかしまだチャンスは残っている」
HATU\HK2_G25.VAG #「遊び球が無くなってしまったぞ」
#ターゲットを外した汎用
..\MR15\HATU\HS_G01.VAG #「ボールは的から大きく外れています」
..\MR15\HATU\HS_G02.VAG #「的のはるか外側をボールが通過して行きます」
..\MR15\HATU\HS_G03.VAG #「わずかに的の外をボールが通過しています」
..\MR15\HATU\HS_G04.VAG #「ボールはわずかに的の外です」
..\MR15\HATU\HS_G00.VAG #「大きく外れてしまいました」
..\MR15\HATU\HS_G06.VAG #「全くあさっての方向だ」
..\MR15\HATU\HS_G
0x1333600#
800+VOFS00, (0x00001e10+0x7ff)/0x800, FLG1 }, //FURU\FK4_C07.VAG
{ 0x002fd000/0x800+VOFS00, (0x00001ef0+0x7ff)/0x800, FLG1 }, //FURU\FK4_C08.VAG
{ 0x002ff000/0x800+VOFS00, (0x000036d0+0x7ff)/0x800, FLG1 }, //FURU\FK4_C09.VAG
{ 0x00302800/0x800+VOFS00, (0x00004140+0x7ff)/0x800, FLG1 }, //FURU\FK4_C10.VAG
{ 0x00307000/0x800+VOFS00, (0x000027d0+0x7ff)/0x800, FLG1 }, //FURU\FK4_C11.VAG
{ 0x00309800/0x800+VOFS00, (0x00001500+0x7ff)/0x800, FLG1 }, //FURU\FK4_C12.VAG
{ 0x0030b000/0x800+VOFS00, (0x00003
0x1334E00#
000/0x800+VOFS00, (0x00001f00+0x7ff)/0x800, FLG1 }, //FURU\FK1_C05.VAG
{ 0x0040f000/0x800+VOFS00, (0x00002300+0x7ff)/0x800, FLG1 }, //FURU\FK1_C06.VAG
{ 0x00411800/0x800+VOFS00, (0x000035a0+0x7ff)/0x800, FLG1 }, //FURU\FK1_C07.VAG
{ 0x00415000/0x800+VOFS00, (0x00004210+0x7ff)/0x800, FLG1 }, //FURU\FK1_C08.VAG
{ 0x00419800/0x800+VOFS00, (0x00003c10+0x7ff)/0x800, FLG1 }, //FURU\FK1_C09.VAG
{ 0x0041d800/0x800+VOFS00, (0x00001470+0x7ff)/0x800, FLG1 }, //FURU\FK1_D00.VAG
{ 0x0041f000/0x800+VOFS00, (0
0x1336400#
RU\FK4_E33.VAG
{ 0x00569800/0x800+VOFS00, (0x00004fb0+0x7ff)/0x800, FLG1 }, //FURU\FK4_E34.VAG
{ 0x0056e800/0x800+VOFS00, (0x00004980+0x7ff)/0x800, FLG1 }, //FURU\FK4_E35.VAG
{ 0x00573800/0x800+VOFS00, (0x00005400+0x7ff)/0x800, FLG1 }, //FURU\FK4_E36.VAG
{ 0x00579000/0x800+VOFS00, (0x00006710+0x7ff)/0x800, FLG1 }, //FURU\FK4_E37.VAG
{ 0x0057f800/0x800+VOFS00, (0x000070e0+0x7ff)/0x800, FLG1 }, //FURU\FK4_E38.VAG
{ 0x00587000/0x800+VOFS00, (0x00007b50+0x7ff)/0x800, FLG1 }, //FURU\FK4_E39.VAG
{ 0x0058f000/0x800+VOFS00, (0x00007370+0x7ff)/0x800, FLG1 }, //FURU\FK4_E40.VAG
{ 0x00596800/0x800+VOFS00, (0x00004e50+0x7ff)/0x800, FLG1 }, //FURU\FK4_E41.VAG
{ 0x0059b800/0x800+VOFS00, (0x00006e00+0x7ff)/0x800, FLG1 }, //FURU\FK4_E42.VAG
{ 0x005a2800/0x800+VOFS00, (0x000066b0+0x7ff)/0x800, FLG1 }, //FURU\FK4_E44.VAG
{ 0x005a9000/0x800+VOFS00, (0x00006a50+0x7ff)/0x800, FLG1 }, //FURU\FK4_E45.VAG
{ 0x005b0000/0x800+VOFS00, (0x00006320+0x7ff)/0x800, FLG1 }, //FURU\FK4_E46.VAG
{ 0x005b6800/0x800+VOFS
0x133A400#
{ 0x0077f800/0x800+VOFS00, (0x00002850+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_05H.VAG
{ 0x00782800/0x800+VOFS00, (0x00002ae0+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_05I.VAG
{ 0x00785800/0x800+VOFS00, (0x00002900+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_06F.VAG
{ 0x00788800/0x800+VOFS00, (0x00002560+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_06P.VAG
{ 0x0078b000/0x800+VOFS00, (0x000028e0+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_06R.VAG
{ 0x0078e000/0x800+VOFS00, (0x000034b0+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_06S.VAG
{ 0x00791800/0x800+VOFS00, (0x000027a0+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_06L.VAG
{ 0x00794000/0x800+VOFS00, (0x00003130+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_06W.VAG
{ 0x00797800/0x800+VOFS00, (0x00002900+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_06H2.VAG
{ 0x0079a800/0x800+VOFS00, (0x00002810+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_06B.VAG
{ 0x0079d800/0x800+VOFS00, (0x00002810+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_06A.VAG
{ 0x007a0800/0x800+VOFS00, (0x00002400+0x7ff)/0x800, FLG1 }, //F_NAME\FZ
0x133BA00#
01f70+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_10P.VAG
{ 0x0082e000/0x800+VOFS00, (0x00002830+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_10R.VAG
{ 0x00831000/0x800+VOFS00, (0x00003310+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_10S.VAG
{ 0x00834800/0x800+VOFS00, (0x00002460+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_10L.VAG
{ 0x00837000/0x800+VOFS00, (0x00002ef0+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_10R.VAG
{ 0x0083a000/0x800+VOFS00, (0x00002ff0+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_10H2.VAG
{ 0x0083d000/0x800+VOFS00, (0x00002840+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_10B.VAG
{ 0x00840000/0x800+VOFS00, (0x000027f0+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_10A.VAG
{ 0x00842800/0x800+VOFS00, (0x000021e0+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_10D.VAG
{ 0x00845000/0x800+VOFS00, (0x00001780+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_10T.VAG
{ 0x00846800/0x800+VOFS00, (0x00001780+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_10U.VAG
{ 0x00848000/0x800+VOFS00, (0x00001780+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_10V.VAG
{ 0x00849800/0x800+VOFS00, (0x000021b0+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_10K.VAG
{ 0x0084c000/0x800+VOFS00, (0x00002360+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_10H.VAG
{ 0x0084e800/0x800+VOFS00, (0x00002320+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_10I.VAG
{ 0x00851000/0x800+VOFS00, (0x000025b0+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_11F.VAG
{ 0x00853800/0x800+VOFS00, (0x00002690+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_11P.VAG
{ 0x00856000/0x800+VOFS00, (0x00002880+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_11R.VAG
{ 0x00859000/0x800+V
0x133DA00#
00, FLG1 }, //F_NAME\FZ_16F.VAG
{ 0x0092e800/0x800+VOFS00, (0x000014b0+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_16P.VAG
{ 0x00930000/0x800+VOFS00, (0x00001590+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_16R.VAG
{ 0x00931800/0x800+VOFS00, (0x00001b70+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_16S.VAG
{ 0x00933800/0x800+VOFS00, (0x00001970+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_16L.VAG
{ 0x00935800/0x800+VOFS00, (0x00001620+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_16W.VAG
{ 0x00937000/0x800+VOFS00, (0x000018d0+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_16H2.VAG
{ 0x00939000/0x800+VOFS00, (0x00001a00+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_16B.VAG
{ 0x0093b000/0x800+VOFS00, (0x00001300+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_16A.VAG
{ 0x0093c800/0x800+VOFS00, (0x00001090+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_16D.VAG
{ 0x0093e000/0x800+VOFS00, (0x00001780+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_16T.VAG
{ 0x0093f800/0x800+VOFS00, (0x00001780+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_16U.VAG
{ 0x00941000/0x800+VOFS00, (0x00001780+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_16V.VAG
{ 0x00942800/0x800+VOFS00, (0x00001b70+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_16K.VAG
{ 0x00944800/0x800+VOFS00, (0x00000aa0+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_16H.VAG
{ 0x00945800/0x800+VOFS00, (0x00001330+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_16I.VAG
{ 0x00947000/0x800+VOFS00, (0x00001820+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_17F.VAG
{ 0x00949000/0x800+VOFS00, (0x000018c0+0x7ff)/0x800, FLG1 }, //F_NAME\FZ_17P.VAG
{ 0x0094b000/0x800+VOFS00, (0x0000133
0x133F600#
b0+0x7ff)/0x800, FLG1 }, //S_NAME\SG_NAP.VAG
{ 0x009ee800/0x800+VOFS00, (0x00002c70+0x7ff)/0x800, FLG1 }, //S_NAME\SN_00O.VAG
{ 0x009f1800/0x800+VOFS00, (0x00002c70+0x7ff)/0x800, FLG1 }, //S_NAME\SN_00O.VAG
{ 0x009f4800/0x800+VOFS00, (0x00002c70+0x7ff)/0x800, FLG1 }, //S_NAME\SN_00O.VAG
{ 0x009f7800/0x800+VOFS00, (0x00002c70+0x7ff)/0x800, FLG1 }, //S_NAME\SN_00O.VAG
{ 0x009fa800/0x800+VOFS00, (0x00001d40+0x7ff)/0x800, FLG1 }, //S_NAME\SG_NAH.VAG
{ 0x009fc800/0x800+VOFS00, (0x00001b80
0x1340E00#
(0x000053d0+0x7ff)/0x800, FLG1 }, //HATU\HK1_B24.VAG
{ 0x00aec800/0x800+VOFS00, (0x000069f0+0x7ff)/0x800, FLG1 }, //HATU\HK1_B25.VAG
{ 0x00af3800/0x800+VOFS00, (0x00005120+0x7ff)/0x800, FLG1 }, //HATU\HK1_B30.VAG
{ 0x00af9000/0x800+VOFS00, (0x00008780+0x7ff)/0x800, FLG1 }, //HATU\HK1_B31.VAG
{ 0x00b01800/0x800+VOFS00, (0x00008350+0x7ff)/0x800, FLG1 }, //HATU\HK1_B32.VAG
{ 0x00b0a000/0x800+VOFS00, (0x000055e0+0x7ff)/0x800, FLG1 }, //..\MR18\HATU\HL_A00.VAG
{ 0x00b0f800
0x1342A00#
x000062d0+0x7ff)/0x800, FLG1 }, //HATU\HK2_A27.VAG
{ 0x00d03000/0x800+VOFS00, (0x00003740+0x7ff)/0x800, FLG1 }, //HATU\HK2_A28.VAG
{ 0x00d06800/0x800+VOFS00, (0x00004800+0x7ff)/0x800, FLG1 }, //HATU\HK2_A29.VAG
{ 0x00d0b000/0x800+VOFS00, (0x000059f0+0x7ff)/0x800, FLG1 }, //HATU\HK2_A30.VAG
{ 0x00d11000/0x800+VOFS00, (0x00003270+0x7ff)/0x800, FLG1 }, //HATU\HK2_A31.VAG
{ 0x00d14800/0x800+VOFS00, (0x000050a0+0x7ff)/0x800, FLG1 }, //HATU\HK2_A32.VAG
{ 0x00d1a000/0x800+VOFS00, (0x00004930+0x7ff)/0x800, FLG1 }, //HATU\HK2_A33.VAG
{ 0x00d1f000/0x800+VOFS00, (0x00003f20+0x7ff)/0x800, FLG1 }, //HATU\HK2_A34.VAG
{ 0x00d23000/0x800+VOFS00, (0x00008880+0x7ff)/0x800, FLG1 }, //HATU\HK2_A35.VAG
{ 0x00d2c000/0x800+VOFS00, (0x00008c70+0x7ff)/0x800, FLG1 }, //HATU\HK2_A36.VAG
{ 0x00d35000/0x800+VOFS00, (0x00005a50+0x7ff)/0x800, FLG1 }, //HATU\HK2_A37.VAG
{ 0x00d3b000/0x800+VOFS00, (0x00003ea0+0x7ff)/0x800, FLG1 }, //HATU\HK2_A38.VAG
{ 0x00d3f000/0x800+VOFS00, (0x00004060+0x7ff)/0x800, FLG1 }, //HATU\HK2_A39.VAG
{ 0x00d43800/0x800+VOFS00, (0x000052f0+0x7ff)/0x800, FLG1 }, //HATU\HK2_A40.VAG
{ 0x00d49000/0x800+VOFS00, (0x00007450+0x7ff)/0x800, FLG1 }, //HATU\HK2_A41.VAG
{ 0x00d50800/0x800+VOFS00, (0x00006550+0x7ff)/0x800, FLG1 }, //HATU\HK2_A42.VAG
{ 0x00d57000/0x800+VOFS00, (0x00003fc0+0x7ff)/0x800, FLG1 }, //HATU\HK2_A43.VAG
{ 0x00d5b000/0x800+VOFS00, (0x00004840+0x7ff)/0x800, FLG1 }, //HATU\HK2_A44.VAG
0x1344200#
{ 0x00e6c000/0x800+VOFS00, (0x00003370+0x7ff)/0x800, FLG1 }, //HATU\HK2_D04.VAG
{ 0x00e6f800/0x800+VOFS00, (0x000035c0+0x7ff)/0x800, FLG1 }, //HATU\HK2_D05.VAG
{ 0x00e73000/0x800+VOFS00, (0x00003b50+0x7ff)/0x800, FLG1 }, //HATU\HK2_D06.VAG
{ 0x00e77000/0x800+VOFS00, (0x00003880+0x7ff)/0x800, FLG1 }, //HATU\HK2_D07.VAG
{ 0x00e7b000/0x800+VOFS00, (0x00003490+0x7ff)/0x800, FLG1 }, //HATU\HK2_D08.VAG
{ 0x00e7e800/0x800+VOFS00, (0x000048c0+0x7ff)/0x800, FLG1 }, //HATU\HK2_D09.VAG
{ 0x00e83800/0x800+VOFS00, (0x00002170+0x7ff)/0x800, FLG1 }, //HATU\HK2_D10.VAG
{ 0x00e86000/0x800+VOFS00, (0x000017a0+0x7ff)/0x800, FLG1 }, //HATU\HK2_D11.VAG
{ 0x00e87800/0x800+VOFS00, (0x00002bb0+0x7ff)/0x800, FLG1 }, //HATU\HK2_D12.VAG
{ 0x00e8a800/0x800+VOFS00, (0x00003b90+0x7ff)/0x800, FLG1 }, //HATU\HK2_D13.VAG
{ 0x00e8e800/0x800+VOFS00, (0x00006060+0x7ff)/0x800, FLG1 }, //HATU\HK2_D14.VAG
{ 0x00e95000/0x800+VOFS00, (0x00005580+0x7ff)/0x800, FLG1 }, //HATU\HK2_D15.VAG
{ 0x00e9a800/0x800+VOFS00, (0x00004390+0x7ff)/0x800, FLG1 }, //HATU\HK2_D16.VAG
{ 0x00e9f000/0x800+VOFS00, (0x000019b0+0x7ff)/0x800, FLG1 }, //HATU\HK2_D17.VAG
{ 0x00ea1000/0x800+VOFS00, (0x00001cc0+0x7ff)/0x800, FLG1 }, //HATU\HK2_D18.VAG
{ 0x00ea3000/0x800+VOFS00, (0x00002cd0+0x7ff)/0x800, FLG1 }, //HATU\HK2_D19.VAG
{ 0x00ea6000/0x800+VOFS00, (0x00003130+0x7ff)/0x800, FLG1 }, //HATU\HK2_D20.VAG
{ 0x00ea9800/0x800+VOFS00, (0x00002620+0x7ff)/0x800,
0x1345C00#
x7ff)/0x800, FLG1 }, //HATU\HK2_F01.VAG
{ 0x00fcc000/0x800+VOFS00, (0x00002d30+0x7ff)/0x800, FLG1 }, //HATU\HK2_F02.VAG
{ 0x00fcf000/0x800+VOFS00, (0x00002be0+0x7ff)/0x800, FLG1 }, //HATU\HK2_F03.VAG
{ 0x00fd2000/0x800+VOFS00, (0x00005410+0x7ff)/0x800, FLG1 }, //HATU\HK2_F04.VAG
{ 0x00fd7800/0x800+VOFS00, (0x00003150+0x7ff)/0x800, FLG1 }, //HATU\HK2_F05.VAG
{ 0x00fdb000/0x800+VOFS00, (0x00005af0+0x7ff)/0x800, FLG1 }, //HATU\HK2_F06.VAG
{ 0x00fe1000/0x800+VOFS00, (0x00004780+0x7ff)/0x800, FLG1 }, //HATU\HK2_F07.VAG
{ 0x00fe5800/0x800+VOFS00, (0x00003ce0+0x7ff)/0x800, FLG1 }, //HATU\HK2_F08.VAG
{ 0x00fe9800/0x800+VOFS00, (0x000040b0+0x7ff)/0x800, FLG1 }, //HATU\HK2_F09.VAG
{ 0x00fee000/0x800+VOFS00, (0x00003ea0+0x7ff)/0x800, FLG1 }, //HATU\HK2_F10.VAG
{ 0x00ff2000/0x800+VOFS00, (0x00002c00+0x7ff)/0x800, FLG1 }, //HATU\HK2_F11.VAG
{ 0x00ff5000/0x800+VOFS00, (0x000026c0+0x7ff)/0x800, FLG1 }, //HATU\HK2_F12.VAG
{ 0x00ff7800/0x800+V
0x1347400#
0e800/0x800+VOFS00, (0x000060a0+0x7ff)/0x800, FLG1 }, //..\MR15\HATU\HS_G01.VAG
{ 0x01115000/0x800+VOFS00, (0x00006ee0+0x7ff)/0x800, FLG1 }, //..\MR15\HATU\HS_G02.VAG
{ 0x0111c000/0x800+VOFS00, (0x00007060+0x7ff)/0x800, FLG1 }, //..\MR15\HATU\HS_G03.VAG
{ 0x01123800/0x800+VOFS00, (0x00005060+0x7ff)/0x800, FLG1 }, //..\MR15\HATU\HS_G04.VAG
{ 0x01129000/0x800+VOFS00, (0x00004b90+0x7ff)/0x800, FLG1 }, //..\MR15\HATU\HS_G00.VAG
{ 0x0112e000/0x800+VOFS00, (0x00004ee0+0x7ff)/0x800, FLG1 }, //..\MR15\HATU\HS_G06.VAG
{ 0x01133000/0x800+VOFS00, (0x000049b0+0x7ff)/0x800, FLG1 }, //..\MR15\HATU\HS_G07.VAG
{ 0x01138000/0x800+VOFS00, (0x00005290+0x7ff)/0x800, FLG1 }, //..\MR15\HATU\HS_G08.VAG
{ 0x0113d800/0x800+VOFS00, (0x00003ed0+0x7ff)/0x800, FLG1 }, //..\MR15\HATU\HS_G09.VAG
{ 0x01141800/0x800+VOFS00, (0x00004370+0x7ff)/0x800, FLG1 }, //..\MR15\HATU\HS_G10.VAG
{ 0x01146000/0x800+VOFS00, (0x00002fe0+0x7ff)/0x800, FLG1 }, //..\MR15\HATU\HS_G11.VAG
{ 0x01149000/0x800+VOFS00, (0x
0x134BE00#
//H_NAME\HZ_03P.VAG
{ 0x013ac000/0x800+VOFS00, (0x00001660+0x7ff)/0x800, FLG1 }, //H_NAME\HZ_03R.VAG
{ 0x013ad800/0x800+VOFS00, (0x00001690+0x7ff)/0x800, FLG1 }, //H_NAME\HZ_03S.VAG
{ 0x013af000/0x800+VOFS00, (0x000014a0+0x7ff)/0x800, FLG1 }, //H_NAME\HZ_03L.VAG
{ 0x013b0800/0x800+VOFS00, (0x00000e40+0x7ff)/0x800, FLG1 }, //H_NAME\HZ_03W.VAG
{ 0x013b1800/0x800+VOFS00, (0x00001740+0x7ff)/0x800, FLG1 }, //H_NAME\HZ_03H.VAG
{ 0x013b3000/0x800+VOFS00, (0x00001550+0x7ff)
0x134DA00#
0x800+VOFS00, (0x00001c80+0x7ff)/0x800, FLG1 }, //H_NAME\HZ_08.VAG
{ 0x0146f000/0x800+VOFS00, (0x00001da0+0x7ff)/0x800, FLG1 }, //H_NAME\HZ_08D.VAG
{ 0x01471000/0x800+VOFS00, (0x00001860+0x7ff)/0x800, FLG1 }, //H_NAME\HZ_08T.VAG
{ 0x01473000/0x800+VOFS00, (0x00002820+0x7ff)/0x800, FLG1 }, //H_NAME\HZ_08U.VAG
{ 0x01476000/0x800+VOFS00, (0x00002bd0+0x7ff)/0x800, FLG1 }, //H_NAME\HZ_08V.VAG
{ 0x01479000/0x800+VOFS00, (0x00002d00+0x7ff)/0x800, FLG1 }, //H_NAME\HZ_08K.VAG
{ 0x0147c000/0x800+VOFS00, (0x00001ed0+0x7ff)/0x800, FLG1 }, //H_NAME\HZ_08R2.VAG
{ 0x0147e000/0x800+VOFS00, (0x00003da0+0x7ff)/0x800, FLG1 }, //H_NAME\HZ_09D.VAG
{ 0x01482000/0x800+VOFS00, (0x000042d0+0x7ff)/0x800, FLG1 }, //H_NAME\HZ_09P.VAG
{ 0x01486800/0x800+VOFS00, (0x00004490+0x7ff)/0x800, FLG1 }, //H_NAME\HZ_09R.VAG
{ 0x0148b000/0x800+VOFS00, (0x00003ee0+0x7ff)/0x800, FLG1 }, //H_NAME\HZ_09S.VAG
{ 0x0148f000/0x800+VOFS00, (0x00003b70+0x7ff)/0x800, FLG1 }, //H_NAME\HZ_09L.VAG
{ 0x01493000/0x800+VOFS00, (0x00003600+0x7ff)/0x800, FLG1 }, //H_NAME\HZ_09W.VAG
{ 0x01496800/0x800+VOFS00, (0x00004660+0x7ff)/0x800, FLG1 }, //H_NAME\HZ_09H.VAG
{ 0x0149b000/0x800+VOFS00, (0x00004f80+0x7ff)/0x800, FLG1 }, //H_NAME\HZ_09B.VAG
{ 0x014a0000/0x800+VOFS00, (0x000038a0+0x7ff)/0x800, FLG1 }, //H_NAME\HZ_09A.VAG
{ 0x014a4000/0x800+VOFS00, (0x00003ab0+0x7ff)/0x800, FLG1 }, //H_NAME\HZ_09D.VAG
{ 0x014a8000/0x800+VOFS00, (0x00004d80+0x7ff)/0x800, F
0x1399C00#
*/
#define SD_RNK015 SD_PL2+14 /* [チーム]、スタートで出遅れてしまったようです。 */
#define SD_RNK016 SD_PL2+15 /* [チーム]、初戦でつまづいてしまったようです。 */
#define SD_RNK017 SD_PL2+16 /* しかしまだ始まったばかり。ガンバって下さい。 */
#define SD_RNK018 SD_PL2+17 /* とはいっても勝負はこれからです。 */
/* ショゲてるワケにはいきませんね。 */
#define SD_RNK019 SD_PL2+18 /* [チーム]、まずまずのスタートです。 */
#define SD_RNK020 SD_PL2+19 /* [チーム]、苦戦を強いられましたが何とか引き分け。 */
#define SD_RNK021 SD_PL2+20 /* この先の試合に期待しましょう。 */
#define SD_RNK022 SD_PL2+21 /* 今期のレベルの高さがうかがえた一戦でした。 */
#define SD_RNK023 SD_PL2+22 /* [チーム]、やはり強い。 */
#define SD_RNK024 SD_PL2+23
0x139C400#
2+117 /* せめて最下位だけはなんとしても脱したい所でしょう。 */
#define SD_RNK119 SD_PL2+118 /* どうも今年はツキに見放されています。 */
#define SD_RNK120 SD_PL2+119 /* [チーム]、ここで早くも優勝が決定しましたっ! */
#define SD_RNK121 SD_PL2+120 /* サポーターも大喜びです。 */
#define SD_RNK122 SD_PL2+121 /* おめでとうございますっ! */
#define SD_RNK123 SD_PL2+122 /* [チーム]、さすがに強い。 */
#define SD_RNK124 SD_PL2+123 /* [チーム]、やはり期待を裏切りません。 */
#define SD_RNK125 SD_PL2+124 /* ついに優勝を勝ち取りました。 */
#define SD_RNK126 SD_PL2+125 /* 優勝です。 */
#define SD_RNK127 SD_PL2+126 /* [チーム]、ついにトップに上り詰めました。 */
#define SD_RNK128 SD_PL2+127 /* さすがとしか言いようがありません。
0x13A0400#
L5 SD_PL7+30 /*ED */
#define SD_PL4 SD_PL5+17 /*EX */
#define SD_PL3 SD_PL4+32 /*HC */
#define SD_PL6 SD_PL3+41 /*NUM */
#define SD_PL8 SD_PL6+30 /*TEAM */
#define SD_PL2 SD_PL8+40 /*RNK */
#define SD_PL0 SD_PL2+143 /*TEN */
#define SD_PL9 SD_PL0+6 /*WOW */
/*----------------------------------*/
/*----- #1-1 -----*/
#define SD_OP01 SD_PL /*こんにちは、ポリーです。 */
#define SD_OP02 SD_PL+1 /*こんばんは、ポリーです。 */
#define SD_OP03 SD_PL+2 /*真夏のような暑さの中行われました~ */
#define SD_OP04 SD_PL+3 /*とてもいい天候に恵まれました~ */
#define SD_OP05 SD_PL+4 /*ちょっと肌寒い中行われました~ */
#define SD_OP06 SD_PL+5 /*冷たい小雨が降る中行われました~
0x13A6200#
/* 両軍良く戦いました。 */
#define SD_EX09 SD_PL4+ 8 /* [チーム]、一時はヒヤッとさせられる場面も */
/* ありましたが、なんとかPK勝ちです。 */
#define SD_EX10 SD_PL4+ 9 /* [チーム]、PK戦までもつれこんでの勝利です。 */
#define SD_EX11 SD_PL4+10 /* つくづく土壇場に強いチームですね。 */
#define SD_EX12 SD_PL4+11 /* 極限の緊張感の中での勝利、さすがですね。 */
#define SD_EX13 SD_PL4+12 /* [チーム]、長丁場ではありましたが、 */
/* 最後はビシッとVゴールで勝利をモノにしました。 */
#define SD_EX14 SD_PL4+13 /* [チーム]、苦しそうに見せながらも結局最後は */
/* Vゴールを決めて勝利です。 */
#define SD_EX15 SD_PL4+14 /* さすがに役者ぞろい、魅せてくれます。 */
#define SD_EX16 SD_PL4+15 /* これでは相手チームも体力が続かないでしょう。 */
#define SD_EX17 SD_PL4+16 /* [チーム]、こんなことでいいんでしょうか? */
#define SD_EX18 SD_PL4+17 /* [チーム]、どうしたのでしょうか?大敗を喫しています。 */
#define SD_EX19 SD_PL4+18 /* 今後の試合に不安を感じずにいられません。 */
#define SD_EX20 SD_PL4+19 /* これでは先が思いやられます。
0x13A9600#
055f0+0x7ff)/0x800, FLG3 }, //JF_A09.vag
{0x0039c800/0x800+OFFS, (0x0000cde0+0x7ff)/0x800, FLG3 }, //JF_A10.vag
{0x003a9800/0x800+OFFS, (0x0000c9e0+0x7ff)/0x800, FLG3 }, //JF_A11.vag
{0x003b6800/0x800+OFFS, (0x000055f0+0x7ff)/0x800, FLG3 }, //JF_A12.vag
{0x003bc000/0x800+OFFS, (0x0001b810+0x7ff)/0x800, FLG3 }, //JF_E13.vag
{0x003d8000/0x800+OFFS, (0x0000d6b0+0x7ff)/0x800, FLG3 }, //JF_E14.vag
{0x003e5800/0x800+OFFS, (0x00006a00+0x7ff)/0x800, FLG3 }, //JF_E15.vag
{0x003ec800/0x800+OFFS, (0x0000
0x13B6600#
{0x012ee800/0x800+OFFS, (0x00006550+0x7ff)/0x800, FLG3 }, //KS_A10.vag
{0x012f5000/0x800+OFFS, (0x00006090+0x7ff)/0x800, FLG3 }, //KS_A11.vag
{0x012fb800/0x800+OFFS, (0x00018f50+0x7ff)/0x800, FLG3 }, //KS_A12.vag
{0x01314800/0x800+OFFS, (0x00006370+0x7ff)/0x800, FLG3 }, //KS_E13.vag
{0x0131b000/0x800+OFFS, (0x00006420+0x7ff)/0x800, FLG3 }, //KS_E14.vag
{0x01321800/0x800+OFFS, (0x000065a0+0x7ff)/0x800, FLG3 }, //KS_E15.vag
{0x01328000/0x800+OFFS, (0x0000e760+0x7ff)/0x800, FLG3 }, //KS_E16.vag
0x13BD200#
########################################################################*/
#define STANDHEAD_HIT 0x04
#define STANDHEAD_END 0x0b
#define STANDHEAD_AUTO_STEP 0x00
#define STANDHEAD_SET_STEP 0x01
#define STANDHEAD_MAIN_STEP 0x02
#define STANDHEAD_END_STEP 0x03
#define STANDHEAD_TURN_ANGLE 0x10
/* work0-work3予約 */
#define DIRECE_ANGLE work4
#define STANDHEAD_SPEED (0xa0-Random(PD_HEADACC))
#define STANDHEAD_HIGH (-0x1a0*PD_HIGH/180)
/*#############################################################################
ジャンプボレー
#############################################################################*/
#define JUMPVOLLEY_JUMP 0x01
#define JUMPVOLLEY_HIT 0x08
#define JUMPVOLLEY_DOWN 0x0f
#define JUMPVOLLEY_END 0x00
#define JUMPVOLLEY_WAIT_STEP 0x00
#define JUMPVOLLEY_MAIN_STEP 0x01
#define JUMPVOLLEY_DOWN_STEP 0x02
#define JUMPVOLLEY_SPEED 0xa8
/*#############################################################################
ハーフボレーシュート
#############################################################################*/
#define HALFVOLLEY_HIT 0x05
#define HALFVOLLEY_MAIN_STEP 0x00
#define HALFVOLLEY_DOWN_STEP 0x01
#define HALFVOLLEY_DOWN (0x0f)
#define HALFVOLLEY_END (0x19)
#define HALFVOLLEY_SPEED 0x8c
/*#############################################################################
ダイビングヘッドシュート
#############################################################################*/
#define DIVINGHEA
0x13C0600#
0x2c
#define PL_GOALKICK_STEP 0x2d
#define PL_TIMEUP_STEP 0x2e
#define PL_CORNERKICK_STEP 0x2f
#define PL_FREEKICK_STEP 0x30
#define PL_PENALTYKICK_STEP 0x31
#define PL_FOUL_STEP 0x32
#define PL_GOALIN_STEP 0x33
#define PL_GAMEPK_STEP 0x34
#define PL_WALL_STEP 0x35
#define PL_PKMATCH_STEP 0x36
#define PL_END_1_1_STEP 0x37
#define PL_END_1_RUN_STEP 0x38
#define PL_END_1_2_STEP 0x39
#define PL_END_1_2_2_STEP 0x3a
#define PL_END_1_3_STEP 0x3b
#define
0x13C6E00#
EINT_TIMER timer
#define FEINT_END 0x10
#define FEINT_LOOP 0x06
/*#############################################################################
ボールを奪われたプレイヤー
#############################################################################*/
#define AUTORUN_INIT_STEP 0x00
#define AUTORUN_MAIN_STEP 0x01
#define AUTORUN_STOP_STEP 0x02
#define AUTORUN_DASH_TIME 0x10
#define AUTORUN_RUN_TIME 0x0c
#define AUTORUN_WAIT_TIME 0x06
/*######################################
0x13C9600#
ヴェルディ */
#define SD_VK00 SD_NM5 /* 菊池新吉 */
#define SD_VK01 SD_NM5+ 1 /* 石川 */
#define SD_VK02 SD_NM5+ 2 /* アルジェウ */
#define SD_VK03 SD_NM5+ 3 /* 林 */
#define SD_VK04 SD_NM5+ 4 /* 柱谷 */
#define SD_VK05 SD_NM5+ 5 /* 中村 */
#define SD_VK06 SD_NM5+ 6 /* 前園 */
#define SD_VK07 SD_NM5+ 7 /* 北沢 */
#define SD_VK08 SD_NM5+ 8 /* 栗
0x13CB200#
/* 山口 */
#define SD_KS09 SD_NM12+ 9 /* 藤吉 */
#define SD_KS10 SD_NM12+10 /* クレーベル */
#define SD_KS11 SD_NM12+11 /* 野口 */
#define SD_KS12 SD_NM12+12 /* 本田 */
#define SD_KS13 SD_NM12+13 /* 松山 */
#define SD_KS14 SD_NM12+14 /* 永田 */
#define SD_KS15 SD_NM12+15 /* 櫛引 */
/* ガンバ */
#define SD_GO00 SD_NM13 /* 本並 */
#define SD_GO01 SD_NM13+ 1 /* 実好 */
#define SD_GO02 SD_NM13+ 2 /* 宮本 */
#define SD_GO03 SD_NM13+ 3 /* バブンスキー */
#define SD_GO04 SD_NM13+ 4 /* 木山 */
#define SD_GO05 SD_NM13+ 5 /* 平岡 */
#define SD_GO06 SD_NM13+ 6 /* エムボマ */
#define SD_GO07 SD_NM13+ 7 /* クルプニ */
#define SD_GO08 SD_NM13+ 8 /* 松波 */
#define SD_GO09 SD_NM13+ 9 /* 森岡 */
#define SD_GO10 SD_NM13+10 /* 森下 */
#define SD_GO11 SD_NM13+11 /* 斉藤 */
#define SD_GO12 SD_NM13+12 /* 島田 */
#define SD_GO13 SD_NM13+13 /* 木場 */
#define SD_GO14 SD_NM13+14 /* 小島 */
#define SD_GO15 SD_NM13+15 /* 岡中 */
/* セレッソ */
#define SD_CO00 SD_NM14 /* 武田じろう */
#define SD_CO01 SD_NM14+ 1 /* 木澤 */
0x13CD200#
SD_TM061 SD_TM0+43 /* ジェフ */
#define SD_TM062 SD_TM0+44 /* レイソル */
#define SD_TM063 SD_TM0+45 /* レッズ */
#define SD_TM064 SD_TM0+46 /* ヴェルディ */
#define SD_TM065 SD_TM0+47 /* マリノス */
#define SD_TM066 SD_TM0+48 /* フリューゲルス */
#define SD_TM067 SD_TM0+49 /* ベルマーレ */
#define SD_TM068 SD_TM0+50 /* エスパルス */
#define SD_TM069 SD_TM0+51 /* ジュビロ */
#define SD_TM070 SD_TM0+52 /* グランパス */
#define SD_TM071 SD_TM0+53 /* サンガ */
#define SD_TM072 SD_TM0+54 /* ガンバ */
#define SD_TM073 SD_TM0+55 /* セレッソ */
#define SD_TM074 SD_TM0+56 /* ヴィッセル */
#define SD_TM075 SD_TM0+57 /* サンフレッチェ */
#define SD_TM076 SD_TM0+58 /* アビスパ */
#define SD_TM077 SD_TM0+59 /* J イースト */
#define SD_TM078 SD_TM0+60 /* J ウエスト */
#define SD_TM079 SD_TM0+61 /* オリジナル1 */
#define SD_TM07A SD_TM0+62 /* オリジナル2 */
#define SD_TM100 SD_TM1 /* 鹿島アントラーズ */
#define SD_TM101 SD_TM1+1 /* ジェフユナイテッド市原 */
#define SD_TM102 SD_TM1+2 /* 柏レイソル */
#define SD_TM103 SD_TM1+3 /* 浦和レッドダイヤモンズ */
#define
0x13D2C00#
SD_JI15 SD_NM10+15 /* 尾崎 */
/* グランパス */
#define SD_NG00 SD_NM11 /* 伊藤 */
#define SD_NG01 SD_NM11+ 1 /* 本田 */
#define SD_NG02 SD_NM11+ 2 /* 小川 */
#define SD_NG03 SD_NM11+ 3 /* 大岩 */
#define SD_NG04 SD_NM11+ 4 /* 飯島 */
#define SD_NG05 SD_NM11+ 5 /* トーレス */
#define SD_NG06 SD_NM11+ 6 /* 西ケ谷 */
#define SD_NG07 SD_NM11+ 7 /* 古賀 */
#define SD_NG08 SD_NM11+ 8 /* リカルジーニョ */
#define SD_NG09 SD_NM11+ 9 /* 浅野 */
#define SD_NG10 SD_NM11+10 /* 望月 */
#define SD_NG11 SD_NM11+11 /* 平野 */
#define SD_NG12 SD_NM11+12 /* 岡山 */
#define SD_NG13 SD_NM11+13 /* ストイコビッチ */
#define SD_NG14 SD_NM11+14 /* 小倉 */
#define SD_NG15 SD_NM11+15 /* 森山 */
/*
0x13D4E00#
SD_TM026 SD_TM0+27 /* フリューゲルスを */
#define SD_TM027 SD_TM0+28 /* ベルマーレを */
#define SD_TM028 SD_TM0+29 /* エスパルスを */
#define SD_TM029 SD_TM0+30 /* ジュビロを */
#define SD_TM030 SD_TM0+31 /* グランパスを */
#define SD_TM031 SD_TM0+32 /* サンガを */
#define SD_TM032 SD_TM0+33 /* ガンバを */
#define SD_TM033 SD_TM0+34 /* セレッソを */
#define
0x13D8C00#
「ました。
A034, //ゲームに影響しそうな雨が降りしきっています。
A035, //この雨はプレーにどのような影響を与えるのでしょうか。
A036, //この最悪のコンディション、プレーに影響しそうです。
A037, //この雨の中、こんなに沢山のサポーターが応援に駆けつけてくれました。
};
//////////////////////////////////////////////////////////////
//A 試合開始前 スタジアム状況 夜
//////////////////////////////////////////////////////////////
enum {
//晴れ
A038 = (A037+1), //サポーター一人一人の声援が、鮮やかな満天の星空に共鳴しています。
A039, //夜になり、風が涼しくなってきました。
A040, //夜になってもサポーターのエネルギーは衰えることを知りません。
A040B, //dummy
//雨
A041, //夜になっても、雨が止まず非常に厳しいコンデションになってしまいました。
A033B, //応援するサポーターにとっては、辛い最悪のコンディションになってしまいました。
A035B, //この雨はプレーにどのような影響を与えるのでしょうか。
A036B, //この最悪のコンディション、プレーに影響しそうです。
A037B, //この雨の中、こ
0x13DAA00#
//////////
enum {
//オールスター
B008 = (B007+1), //いよいよ始まりました、夢の競演オールスターゲーム。
B009, //出場選手は、まさにワールドクラス、すごいゲームになりそうです。
B010, //Jリーガーの夢の競演、いよいよスタートしました。
B011, //ワールドクラスの芸術的なプレイに期待が高まります。
B012, //すごい、本当にすごい顔ぶれです。非常に結果が楽しみな一戦です。
//トーナメント・1回戦
B013, //さぁ、いよいよ始まりました(大会名)
B014, //負けたら終わりなので気合いを入れていきたい。
B014B, //負けたら終わりなので気合いを入れていきたい。
//トーナメント・2回戦
B014C, //負けたら終わりなので気合いを入れていきたい。
B016, //ここも勝って次にコマを進めたい。
B016B, //ここも勝って次にコマを進めたい。
//トーナメント・3回戦
B017, //準決勝へ勝ち残りたい両チーム。
B018, //勢いに乗って、準決勝に進出したいところです。
//トーナメント・準決勝
B019, //いよいよ準決勝、勝ち残ったチームはさすがにレベルが高い。
B020A, //準決勝を迎え、
B020B, //(大会名)いよいよ大詰めです。
//トーナメント・決勝
B021, //決勝戦、最強を決める最後の試合が、今始まりました。
B022, //両雄の対決、どちらが勝ってもおかしくありません。
B022B, //両雄の対決、どちらが勝ってもおかしくありません。
//Jリーグ・開幕戦
B023, //いよいよJリーグ開幕です。はたして、どのチームがチャンピオンになるのか、楽しみです。
B024, //さぁ、いよいよ待ちに待った開幕戦を迎えました。
B025, //熱い、熱い白熱したシーズンになりそうです。
B026, //どのような、ドラマティックな結末が待っているのでしょう
0x13DC600#
/蹴ったが誰もいない! パスミス
D085, //周りを良く見てほしい。 パスミス
D128, //いやー!厳しい! パスミス
D151, //フォローがほしい!
D152, //誰もいない!!
D153, //パスミス!
D154, //カットされましたぁ!
D155, //だめだぁ。
D156, //これはちょっと長すぎました。
D157, //うまくかみ合わない!!
D158, //なんということだぁ!
D159, //これはダメです。
};
//////////////////////////////////////////////////////////////////////////////////////
0x13DDE00#
オた。
C060A, //緊張あふれるゲームを
C060B, //(チーム名が)モノにしました。
};
//////////////////////////////////////////////////////////////
//C 試合終了 状況解説 後半終了直後実況の後に続けて 負けが確定した
//////////////////////////////////////////////////////////////
enum {
//後半終了後 共通
C062 = (C060B+1), //(チーム名)負けてしまいました。
C063, //(チーム名)残念ながら敗れました。
//後半終了後 2点差以内の負け
C064, //(チーム名)あと一歩及びませんでした。
C065,
0x13DF200#
vわず応援したくなった試合でした。
C112, //日増しにJリーグのレベルが上がっているのがわかる試合でした。
C113, //激しい戦いに驚いた試合でした。
C114, //歴史に残る一戦でした。
C115, //私たちの記憶に残る一戦でした。
C116, //熱い、熱い試合でした。
C117, //スペクタクルなサッカーが展開された試合でした。
C118, //まばたきする間もない素晴らしい内容でした。
};
//////////////////////////////////////////////////////////////
//C 試合終了 結果感想② 結果感想①実況の後に続けて
//////////////////////////////////////////////////////////////
enum {
//天気に応じて(ドームのときは無視)
C119 = (C118+1), //雨の中、サポーターの皆さんごくろうさまでした。
C120, //爽快な天気に恵まれ、サポーターの皆さんも気持ちよく応援できたのでは無いでしょうか。
};
//////////////////////////////////////////////////////////////
//C 試合終了 結果感想③ 結果感想②実況の後に続けて
//////////////////////////////////////////////////////////////
enum {
C121 = (C120+1), //皆さんは、どう思われましたでしょうか。
C122, //満足出来る内容だったのではないでしょうか。
C123, //この素晴らしい感動をあなたに、是非TVをごらんの皆さんも、スタジアムに足を運んで下さい。
C124, //新たな最強伝説、ここに生まれた気がします。
C125, //TVの前のあなたは、どのように思われたでしょう。
C126, //次節もこのような試合であることを願います。
};
//////////////////////////////////////////////////////////////
//C 試合終了 結果感想④ 結果感想③実況の後に続けて
//////////////////////////////////////////////////////
0x13E1A00#
/(選手名)全くのフリーでした。
E013, //(選手名)いい時間に得点を上げました。
E014, //(選手名)本当に良く決めました。
E015, //(選手名)あの距離から、見事の一言です。
E016, //(選手名)豪快なシュートでした。
E022, //(選手名)全くのフリーでした。
//決められたチーム
E018, //(チーム名)ディフェンダー気合いを入れていかないと。
E019, //(チーム名)相手に対してのマークが合っていないようです。
E020, //(チーム名)ディフェンダー、動きについていけなかったようです。
E021, //(チーム名)守りがあまいです。
E023, //(チーム名)完璧に振られてしまいました。
E024, //(チーム名)一瞬のスキをつかれました。
E025, //(チーム名)完全にやられました。
//決められたキーパー
E026, //(キーパー名)反応はしているんですが、今一歩届きません
E027, //(キーパー名)反応するも、相手が一枚上手でした。
};
//////////////////////////////////////////////////////////////
//D インプレー シュートミス
//////////////////////////////////////////////////////////////
enum {
//共通
D102 = (E027+1), //集中力を切らしてはいけません。 シュートミス
D141, //あぁ.......。 シュート大外し
D142, //あららら。 シュート大外し
D352, //(選手名)狙っていました。
//ゴールキックになる
D359, //外れました。
D360, //大きく外れました。
D364, //執念の一発でした。
D351, //これは惜しい!!
D358, //良いシュートが打てませんでした。
D361, //ちょっと無理だったか?
D369, //いいシュートでした。
D370, //バランスが崩れたか。
D377,
0x13E6400#
////////////////////////////////
enum {
//自分がリードしている
//1点リード
D001 = (D555+1), //実力はほぼ互角。
D002, //両チームいいゲームを展開しています。
D003, //(チーム名A)追加点を上げたいところでしょう。
D004, //(チーム名A)一点のリードを保っています。
//1点リードで相手無得点
D005, //(チーム名A)このまま押さえていきたい。
//3点以内リード
D006, //(チーム名A)絶好調です。
D007, //(チーム名A)今日は攻めています。
D008, //(チーム名A)いい感じでチームが動いています。
//3点以内リードで相手無得点
D009, //(チーム名A)ディフェンスラインがうまく機能しています。
D010, //(チーム名A)集中力が持続しています。
D011, //(チーム名A)攻守のバランスがうまく取れています。
//5点以内リード
D012, //(チーム名A)FW陣の活躍が素晴らしい!!
D014, //(チーム名A)一方的に試合を進めています。
D013, //(チーム名B)どうもピリッとしません。
//5点以内リードで相手無得点
D015, //(チーム名A)攻守ともに安定しています。
D016, //(チーム名A)これは強い
0x13E7E00#
/2人目のキッカーは、(選手名)
E108, //3人目のキッカーは、(選手名)
E109, //4人目のキッカーは、(選手名)
E110, //5人目のキッカーは、(選手名)
E111, //6人目のキッカーは、(選手名)
E112, //7人目のキッカーは、(選手名)
E113, //8人目のキッカーは、(選手名)
E114, //9人目のキッカーは、(選手名)
E115, //10人目のキッカーは、(選手名)
E116, //11人目のキッカーは、(選手名)
//その後続けて言う
//客観的に決めた
//客観的に外した
D442A, //外したぁ!
D443A,
0x13E9200#
では”?勝?敗?位と”に続く
//////////////////////////////////////////////////////////////
enum {
//モード共通
A045 = (A044+1), //サポーターの声援を一身に背負い、
A046, //熱い思いのサポーターに見守られながら、
//リーグ・共通
A047, //全く負け知らず、怒涛のフォワード陣を有する
A048, //破竹の勢いで勝っている
A049, //これまで順調な戦いぶりでコンディションがいい
A050, //相変わらず素晴らしい内容で勝ち進んでいる
A051, //いい感じで、頑張っている
A052, //調子は決して悪くはない
A053, //そこそこにチーム状態が良さそうな
A054, //勝ったり、負けたりでいまひとつ好調が続かない
A055, //今の状態から、何とか抜け出したい
A056, //最近チームの組織がうまくかみ合っていない
A057, //調整不足か、全くいいところがない
A058, //最近、どうも決定力不足を感じます
A059, //最近、なかなか得点出来ず苦しんでいる
//リーグ・ステージ序盤(1~6)
A060, //失点が多い最近、守備陣の奮起に期待したい
A061, //なかなか、いいスタートを切った
A062, //この調子で、白星を重ねて行きたい
A063, //スタートに失敗し、今後の建て直しに期待が高まる
A064, //今一つ調子に乗れないでいる
A065, //何とか勝率を5割に戻したい
//リーグ・ステージ終盤(13~17)
A066, //このまま優勝まで行ってしまいそうな
A067, //優勝候補であることには間違いない
A068, //優勝の可能性がある限り、頑張ってほしい
A069, //終盤、何とか実力を出し切って
0x13EAE00#
です。
//トーナメント・決勝
B021, //決勝戦、最強を決める最後の試合が、今始まりました。
B022, //両雄の対決、どちらが勝ってもおかしくありません。
B022B, //両雄の対決、どちらが勝ってもおかしくありません。
//Jリーグ・開幕戦
B023, //いよいよJリーグ開幕です。はたして、どのチームがチャンピオンになるのか、楽しみです。
B024, //さぁ、いよいよ待ちに待った開幕戦を迎えました。
B025, //熱い、熱い白熱したシーズンになりそうです。
B026, //どのような、ドラマティックな結末が待っているのでしょう
0x13EF600#
、か。
C122, //満足出来る内容だったのではないでしょうか。
C123, //この素晴らしい感動をあなたに、是非TVをごらんの皆さんも、スタジアムに足を運んで下さい。
C124, //新たな最強伝説、ここに生まれた気がします。
C125, //TVの前のあなたは、どのように思われたでしょう。
C126, //次節もこのような試合であることを願います。
};
//////////////////////////////////////////////////////////////
//C 試合終了 結果感想④ 結果感想③実況の後に続けて
//////////////////////////////////////////////////////
0x13F3600#
///////////////////////
//D インプレー
//////////////////////////////////////////////////////////////
enum {
//ルーズボール
D247A = (D092+1), //切り返す。
D249, //ボールをキープ。
D250, //中を見る。
D251, //さぁ、これは。
D252, //さぁ、ここから。
D253, //中へ折り返す。
D254, //胸で落として。
D255, //ここからの展開を早くしなければなりません。
D256, //右足でコントロール。
D257, //左足でコントロール。
D248, //(選手名)から
//ボールの奪い合い
D265, //早いプ
0x13F4A00#
ウぁ、スローインです。
D302, //(チーム名の)ボールです。
D303, //(チーム名の)スローインです。
D304, //(チーム名の)スローイン。
};
//////////////////////////////////////////////////////////////
//D インプレー ファール
//////////////////////////////////////////////////////////////
enum {
//オフサイド
D195 = (D304+1), //オフサイド。
D196, //これはオフサイドです。
D197, //旗が上がっていました。
D198, //これはオフサイドの旗が上がってます。
D140, //おや? オフサイド
//カード無しファール
D310, //(チーム名)ファールです。
D311, //(選手名)倒してしまいました。
D312, //おぉーと、痛いところでのファール!!
D313, //ここで、ファウルは厳しい!!
D325, //ホイッスルがありました。
D326, //おぉっと、ファール!
D317, //完全に後ろからです、これはあぶない!!
D318, //フェアプレーを徹底してほしいです。
D316, //これは、あぶない危険すぎる!!
//イエロー
D447, //これは、イエローカードだぁ!!
D448, //おぉーと、イエローカードが出されました。
D449, //んー?イエローが出されましたか?
D450, //今のは、レッドでもおかしくないでしょう。
D455, //またもイエローカード、
//レッド
D456, //これは、レッドカードだぁ!!
D457, //おぉーと、レッドカードが出されました。
D458, //んー?このレッドは当然です。
D459, //おぉーと、レッドカードだぁ、これは厳しい
//コメント
//カードが出なかったとき
D324, //ファールにはなりましたが、ここは止めるしかなかったでしょう。
D319, //ラフプレーは感心できません。
D320, //うま
0x13F6C00#
!
//-------------------------------------
//相手がリードしている
//1点ビハインド
D032, //(チーム名A)まだまだわかりません。
D033, //(チーム名A)一点のビハインド。
D034, //(チーム名B)一点のリードを保っています。
//1点ビハインドで自分無得点
D035, //(チーム名A)攻撃陣に奮起してほしい。
D036, //(チーム名A)これからです、期待しましょう。
//3点以内ビハインド
D037, //(チーム名A)集中力が切れかかっているようです。
D038, //(チーム名A)まだまだ諦めないでほしい。
D041, //(チーム名A)攻撃陣の動きに切れが見えません。
D039, //(チーム名A)二点のビハインド。
D040, //(チーム名A)三点のビハインド。
//3点以内ビハインドで自分無得点
D042, //(チーム名A)攻撃陣の動きが物足りなく感じます。
D043, //相手チームのディフェンダーの壁は厚い!!
D044, //(チーム名A)どうしたぁ!!
//5点以内ビハインド
D045, //大丈夫でしょうか、(チーム名A)
D047, //(チーム名A)どうもピリッとしません。
D046, //(チーム名B)一方的に試合を進めています。
//5点以内ビハ
0x13FA200#
#define CD_GRMODEL_I4 CD_GRMODEL_I3+GRMODELI3_SIZE /* GRDM_I4.BIN */
#define CD_GRMODEL_I5 CD_GRMODEL_I4+GRMODELI4_SIZE /* GRDM_I5.BIN */
#define CD_GRMODEL_J1 CD_GRMODEL_I5+GRMODELI5_SIZE /* GRDM_J1.BIN */
#define CD_GRMODEL_J2 CD_GRMODEL_J1+GRMODELJ1_SIZE /* GRDM_J2.BIN */
#define CD_GRMODEL_J3 CD_GRMODEL_J2+GRMODELJ2_SIZE /* GRDM_J3.BIN */
#define CD_GRMODEL_J4 CD_GRMODEL_J3+GRMODELJ3_SIZE /* GRDM_J4.BIN */
#define CD_GRMODEL_J5 CD_GRMODEL_J4+GRMODELJ4_SIZE /* GRDM_J5.BIN */
#define CD_GRMODEL_I1B CD_GRMODEL_J5+GRMODELJ5_SIZE /* GRDM_I1B.BIN */
#define CD_GRMODEL_I2B CD_GRMODEL_I1B+GRMODELI1B_SIZE/* GRDM_I2B.BIN */
#define CD_GRMODEL_I3B CD_GRMODEL_I2B+GRMODELI2B_SIZE/* GRDM_I3B.BIN */
#define CD_GRMODEL_I4B CD_GRMODEL_I3B+GRMODELI3B_SIZE/* GRDM_I4B.BIN */
#define CD_GRMODEL_I5B CD_GRMODEL_I4B+GRMODELI4B_SIZE/* GRDM_I5B.BIN */
/******************************************************************************
; グラウンドキャラ
******************************************************************************/
#define GRCHRE1DR_SIZE (138940-1)/BL+1
#define GRCHRE1DS_SIZE (138940-1)/BL+1
#define GRCHRE1NR_SIZE (146904-1)/BL+1
#define GRCHRE1NS_SIZE (146904-1)/BL+1
#define GRCHRE2DR_SIZE (139596-1)/BL+1
#define GRCHRE2DS_SIZE (139596-1)/BL+1
#define GRCHRE2NR_SIZE (147560-1)/BL+1
#define GRCHRE2NS_SIZE (147560-1)/BL+1
#define GRCHRE3DR_SIZE (142408-1)/BL+1
#define GRCHRE3DS_SIZE (142408-1)/BL+1
#define GRCHRE3NR_SIZE (150372-1)/BL+1
#define GRCHRE3NS_SIZE (150372-1)/BL+1
#define GRC
0x13FC200#
R CD_GRCHR_F5DS+GRCHRF5DS_SIZE /* GDC_F5NR.BIN */
#define CD_GRCHR_F5NS CD_GRCHR_F5NR+GRCHRF5NR_SIZE /* GDC_F5NS.BIN */
#define CD_GRCHR_G1DR CD_GRCHR_F5NS+GRCHRF5NS_SIZE /* GDC_G1DR.BIN */
#define CD_GRCHR_G1DS CD_GRCHR_G1DR+GRCHRG1DR_SIZE /* GDC_G1DS.BIN */
#define CD_GRCHR_G1NR CD_GRCHR_G1DS+GRCHRG1DS_SIZE /* GDC_G1NR.BIN */
#define CD_GRCHR_G1NS CD_GRCHR_G1NR+GRCHRG1NR_SIZE /* GDC_G1NS.BIN */
#define CD_GRCHR_G2DR CD_GRCHR_G1NS+GRCHRG1NS_SIZE /* GDC_G2DR.BIN */
#define CD_GRCHR_G2DS CD_GRCHR_G2DR+GRCHRG2DR_SIZE /* GDC_G2DS.BIN */
#define CD_GRCHR_G2NR CD_GRCHR_G2DS+GRCHRG2DS_SIZE /* GDC_G2NR.BIN */
#define CD_GRCHR_G2NS CD_GRCHR_G2NR+GRCHRG2NR_SIZE /* GDC_G2NS.BIN */
#define CD_GRCHR_G3DR CD_GRCHR_G2NS+GRCHRG2NS_SIZE /* GDC_G3DR.BIN */
#define CD_GRCHR_G3DS CD_GRCHR_G3DR+GRCHRG3DR_SIZE /* GDC_G3DS.BIN */
#define CD_GRCHR_G3NR CD_GRCHR_G3DS+GRCHRG3DS_SIZE /* GDC_G3NR.BIN */
#define CD_GRCHR_G3NS CD_GRCHR_G3NR+GRCHRG3NR_SIZE /* GDC_G3NS.BIN */
#define CD_GRCHR_G4DR CD_GRCHR_G3NS+GRCHRG3NS_SIZE /* GDC_G4DR.BIN */
#define CD_GRCHR_G4DS CD_GRCHR_G4DR+GRCHRG4DR_SIZE /* GDC_G4DS.BIN */
#define CD_GRCHR_G4NR CD_GRCHR_G4DS+GRCHRG4DS_SIZE /* GDC_G4NR.BIN */
#define CD_GRCHR_G4NS CD_GRCHR_G4NR+GRCHRG4NR_SIZE /* GDC_G4NS.BIN */
#define CD_GRCHR_G5DR CD_GRCHR_G4NS+GRCHRG4NS_SIZE /* GDC_G5DR.BIN */
#define CD_GRCHR_G5DS CD_GRCHR_G5DR+GRCHRG5DR_SIZE /* GDC_G5DS.BIN */
#define CD_GRCHR_G5NR CD_GRCHR_G5DS+GRCHRG5DS_SIZE /* GDC_G5NR.BIN */
#define CD_GRCHR_G5NS CD_GRCHR_G5NR+GRCHRG5NR_SIZE /* GDC_G5NS.
0x13FDA00#
L+1
#define MOD_23_SIZE (74653-1)/BL+1
#define MOD_24_SIZE (73125-1)/BL+1
#define MOD_25_SIZE (81293-1)/BL+1
#define MOD_26_SIZE (68725-1)/BL+1
#define MOD_27_SIZE (70253-1)/BL+1
#define MOD_28_SIZE (72445-1)/BL+1
#define MOD_29_SIZE (81709-1)/BL+1
#define MOD_30_SIZE (81401-1)/BL+1
#define MOD_31_SIZE (81589-1)/BL+1
#define MOD_32_SIZE (81049-1)/BL+1
#define MOD_33_SIZE (66537-1)/BL+1
#define MOD_34_SIZE (72109-1)/BL+1
#define MOD_35_SIZE (64165-1)/BL+1
#define MOD_36_SIZE (71541-1)/BL+1
#define MOD_37_SIZE (66749-1)/BL+1
#define MOD_38_SIZE (74997-1)/BL+1
#define MOD_39_SIZE (71781-1)/BL+1
#define MOD_40_SIZE (71293-1)/BL+1
#define MOD_41_SIZE (81689-1)/BL+1
#define MOD_42_SIZE (81449-1)/BL+1
#define MOD_43_SIZE (81485-1)/BL+1
#endif
#define CD_P1_01_MODEL 13600 /* MOD1_01.BIN */
#define CD_P1_02_MODEL CD_P1_01_MODEL+MOD_01_SIZE /* MOD1_02.BIN */
#define CD_P1_03_MODEL CD_P1_02_MODEL+MOD_02_SIZE /* MOD1_03.BIN */
#define CD_P1_04_MODEL CD_P1_03_MODEL+MOD_03_SIZE /* MOD1_04.BIN */
#define CD_P1_05_MODEL CD_P1_04_MODEL+MOD_04_SIZE /* MOD1_05.BIN */
#define CD_P1_06_MODEL CD_P1_05_MODEL+MOD_05_SIZE /* MOD1_06.BIN */
#define CD_P1_07_MODEL CD_P1_06_MODEL+MOD_06_SIZE /* MOD1_07.BIN */
#define CD_P1_08_MODEL CD_P1_07_MODEL+MOD_07_SIZE /* MOD1_08.BIN */
#define CD_P1_09_MODEL CD_P1_08_MODEL+MOD_08_SIZE /* MOD1_09.BIN */
#define CD_P1_10_MODEL CD_P1_09_MODEL+MOD_09_SIZE /* MOD1_10.BIN */
#define CD_P1_11_MODEL CD_P1_10_MODEL+MOD_10_SIZE /* MOD1_11.BIN
0x13FFA00#
CD_NAME_08 CD_NAME_07+JNAME07_SIZE // NAME_08.BIN */
#define CD_NAME_09 CD_NAME_08+JNAME08_SIZE // NAME_09.BIN */
#define CD_NAME_10 CD_NAME_09+JNAME09_SIZE // NAME_10.BIN */
#define CD_NAME_11 CD_NAME_10+JNAME10_SIZE // NAME_11.BIN */
#define CD_NAME_12 CD_NAME_11+JNAME11_SIZE // NAME_12.BIN */
#define CD_NAME_13 CD_NAME_12+JNAME12_SIZE // NAME_13.BIN */
#define CD_NAME_14 CD_NAME_13+JNAME13_SIZE // NAME_14.BIN */
#define CD_NAME_15 CD_NAME_14+JNAME14_SIZE // NAME_15.BIN */
#define CD_NAME_16 CD_NAME_15+JNAME15_SIZE // NAME_16.BIN */
#define CD_NAME_17 CD_NAME_16+JNAME16_SIZE // NAME_17.BIN */
#define CD_NAME_18 CD_NAME_17+JNAME17_SIZE // NAME_18.BIN */
#define CD_NAME_19 CD_NAME_18+JNAME18_SIZE // NAME_19.BIN */
#define CD_NAME_20 CD_NAME_19+JNAME19_SIZE // NAME_20.BIN */
#define CD_NAME_21 CD_NAME_20+JNAME20_SIZE // NAME_21.BIN */
#define CD_NAME_22 CD_NAME_21+JNAME21_SIZE // NAME_22.BIN */
#define CD_NAME_23 CD_NAME_22+JNAME22_SIZE // NAME_23.BIN */
#define CD_NAME_24 CD_NAME_23+JNAME23_SIZE // NAME_24.BIN */
//98.8.21 中山
#define CD_R_NAME 17100 //JNAME.BIN
#define R_NAME_SIZE (65060-1)/BL+1
//98.9.18 中山 看板テクスチャ用
#define CD_KANBAN 17200 //KANBAN.BIN
#define KANBAN_SIZE (14812-1)/BL+1
#define CD_JKANBAN 17220 //J_KANBAN.BIN
#define JKANBAN_SIZE (11956-1)/BL+1
#define CD_NKANBAN 17240 //N_KANBAN.BIN
#define NKANBAN_SIZE (15760-1)/BL+1
/******************************************************************************
;
; メイ
0x1401A00#
SIZE (38501-1)/BL+1
#define GRMODELJ5_SIZE (40293-1)/BL+1
#define CD_GRMODEL_E1 12800 /* GRDM_E1.BIN */
#define CD_GRMODEL_E2 CD_GRMODEL_E1+GRMODELE1_SIZE /* GRDM_E2.BIN */
#define CD_GRMODEL_E3 CD_GRMODEL_E2+GRMODELE2_SIZE /* GRDM_E3.BIN */
#define CD_GRMODEL_E4 CD_GRMODEL_E3+GRMODELE3_SIZE /* GRDM_E4.BIN */
#define CD_GRMODEL_E5 CD_GRMODEL_E4+GRMODELE4_SIZE /* GRDM_E5.BIN */
#define CD_GRMODEL_F1 CD_GRMODEL_E5+GRMODELE5_SIZE /* GRDM_F1.BIN */
#define CD_GRMODEL_F1N CD_GRMODEL_F1+GRMODELF1_SIZE /* GRDM_F1N.BIN */
#define CD_GRMODEL_F2 CD_GRMODEL_F1N+GRMODELF1N_SIZE /* GRDM_F2.BIN */
#define CD_GRMODEL_F2N CD_GRMODEL_F2+GRMODELF2_SIZE /* GRDM_F2N.BIN */
#define CD_GRMODEL_F3 CD_GRMODEL_F2N+GRMODELF2N_SIZE /* GRDM_F3.BIN */
#define CD_GRMODEL_F3N CD_GRMODEL_F3+GRMODELF3_SIZE /* GRDM_F3N.BIN */
#define CD_GRMODEL_F4 CD_GRMODEL_F3N+GRMODELF3N_SIZE /* GRDM_F4.BIN */
#define CD_GRMODEL_F4N CD_GRMODEL_F4+GRMODELF4_SIZE /* GRDM_F4N.BIN */
#define CD_GRMODEL_F5 CD_GRMODEL_F4N+GRMODELF4N_SIZE /* GRDM_F5.BIN */
#define CD_GRMODEL_F5N CD_GRMODEL_F5+GRMODELF5_SIZE /* GRDM_F5N.BIN */
#define CD_GRMODEL_G1 CD_GRMODEL_F5N+GRMODELF5N_SIZE /* GRDM_G1.BIN */
#define CD_GRMODEL_G2 CD_GRMODEL_G1+GRMODELG1_SIZE /* GRDM_G2.BIN */
#define CD_GRMODEL_G3 CD_GRMODEL_G2+GRMODELG2_SIZE /* GRDM_G3.BIN */
#define CD_GRMODEL_G4 CD_GRMODEL_G3+GRMODELG3_SIZE /* GRDM_G4.BIN */
#define CD_GRMODEL_G5 CD_GRMODEL_G4+GRMODELG4_SIZE /* GRDM_G5.BIN */
#define CD_GRMODEL_H1 CD_GRMODEL_G5+GRMODELG5_SIZE /*
0x1403A00#
DR+GRCHRE3DR_SIZE /* GDC_E3DS.BIN */
#define CD_GRCHR_E3NR CD_GRCHR_E3DS+GRCHRE3DS_SIZE /* GDC_E3NR.BIN */
#define CD_GRCHR_E3NS CD_GRCHR_E3NR+GRCHRE3NR_SIZE /* GDC_E3NS.BIN */
#define CD_GRCHR_E4DR CD_GRCHR_E3NS+GRCHRE3NS_SIZE /* GDC_E4DR.BIN */
#define CD_GRCHR_E4DS CD_GRCHR_E4DR+GRCHRE4DR_SIZE /* GDC_E4DS.BIN */
#define CD_GRCHR_E4NR CD_GRCHR_E4DS+GRCHRE4DS_SIZE /* GDC_E4NR.BIN */
#define CD_GRCHR_E4NS CD_GRCHR_E4NR+GRCHRE4NR_SIZE /* GDC_E4NS.BIN */
#define CD_GRCHR_E5DR CD_GRCHR_E4NS+GRCHRE4NS_SIZE /* GDC_E5DR.BIN */
#define CD_GRCHR_E5DS CD_GRCHR_E5DR+GRCHRE5DR_SIZE /* GDC_E5DS.BIN */
#define CD_GRCHR_E5NR CD_GRCHR_E5DS+GRCHRE5DS_SIZE /* GDC_E5NR.BIN */
#define CD_GRCHR_E5NS CD_GRCHR_E5NR+GRCHRE5NR_SIZE /* GDC_E5NS.BIN */
#define CD_GRCHR_F1DR CD_GRCHR_E5NS+GRCHRE5NS_SIZE /* GDC_F1DR.BIN */
#define CD_GRCHR_F1DS CD_GRCHR_F1DR+GRCHRF1DR_SIZE /* GDC_F1DS.BIN */
#define CD_GRCHR_F1NR CD_GRCHR_F1DS+GRCHRF1DS_SIZE /* GDC_F1NR.BIN */
#define CD_GRCHR_F1NS CD_GRCHR_F1NR+GRCHRF1NR_SIZE /* GDC_F1NS.BIN */
#define CD_GRCHR_F2DR CD_GRCHR_F1NS+GRCHRF1NS_SIZE /* GDC_F2DR.BIN */
#define CD_GRCHR_F2DS CD_GRCHR_F2DR+GRCHRF2DR_SIZE /* GDC_F2DS.BIN */
#define CD_GRCHR_F2NR CD_GRCHR_F2DS+GRCHRF2DS_SIZE /* GDC_F2NR.BIN */
#define CD_GRCHR_F2NS CD_GRCHR_F2NR+GRCHRF2NR_SIZE /* GDC_F2NS.BIN */
#define CD_GRCHR_F3DR CD_GRCHR_F2NS+GRCHRF2NS_SIZE /* GDC_F3DR.BIN */
#define CD_GRCHR_F3DS CD_GRCHR_F3DR+GRCHRF3DR_SIZE /* GDC_F3DS.BIN */
#define CD_GRCHR_F3NR CD_GRCHR_F3DS+GRCHRF3DS_SIZE /* GDC_F3NR.BIN */
#defi
0x1405E00#
EL+MOD_03_SIZE /* MOD1_04.BIN */
#define CD_P1_05_MODEL CD_P1_04_MODEL+MOD_04_SIZE /* MOD1_05.BIN */
#define CD_P1_06_MODEL CD_P1_05_MODEL+MOD_05_SIZE /* MOD1_06.BIN */
#define CD_P1_07_MODEL CD_P1_06_MODEL+MOD_06_SIZE /* MOD1_07.BIN */
#define CD_P1_08_MODEL CD_P1_07_MODEL+MOD_07_SIZE /* MOD1_08.BIN */
#define CD_P1_09_MODEL CD_P1_08_MODEL+MOD_08_SIZE /* MOD1_09.BIN */
#define CD_P1_10_MODEL CD_P1_09_MODEL+MOD_09_SIZE /* MOD1_10.BIN */
#define CD_P1_11_MODEL CD_P1_10_MODEL+MOD_10_SIZE /* MOD1_11.BIN
0x1407A00#
CD_NAME_08 CD_NAME_07+JNAME07_SIZE // NAME_08.BIN */
#define CD_NAME_09 CD_NAME_08+JNAME08_SIZE // NAME_09.BIN */
#define CD_NAME_10 CD_NAME_09+JNAME09_SIZE // NAME_10.BIN */
#define CD_NAME_11 CD_NAME_10+JNAME10_SIZE // NAME_11.BIN */
#define CD_NAME_12 CD_NAME_11+JNAME11_SIZE // NAME_12.BIN */
#define CD_NAME_13 CD_NAME_12+JNAME12_SIZE // NAME_13.BIN */
#define CD_NAME_14 CD_NAME_13+JNAME13_SIZE // NAME_14.BIN */
#define CD_NAME_15 CD_NAME_14+JNAME14_SIZE // NAME_15.BIN */
#define CD_NAME_16 CD_NAME_15+JNAME15_SIZE // NAME_16.BIN */
#define CD_NAME_17 CD_NAME_16+JNAME16_SIZE // NAME_17.BIN */
#define CD_NAME_18 CD_NAME_17+JNAME17_SIZE // NAME_18.BIN */
#define CD_NAME_19 CD_NAME_18+JNAME18_SIZE // NAME_19.BIN */
#define CD_NAME_20 CD_NAME_19+JNAME19_SIZE // NAME_20.BIN */
#define CD_NAME_21 CD_NAME_20+JNAME20_SIZE // NAME_21.BIN */
#define CD_NAME_22 CD_NAME_21+JNAME21_SIZE // NAME_22.BIN */
#define CD_NAME_23 CD_NAME_22+JNAME22_SIZE // NAME_23.BIN */
#define CD_NAME_24 CD_NAME_23+JNAME23_SIZE // NAME_24.BIN */
//98.8.21 中山
#define CD_R_NAME 17100 //JNAME.BIN
#define R_NAME_SIZE (65028-1)/BL+1
//98.9.18 中山 看板テクスチャ用
#define CD_KANBAN 17200 //KANBAN.BIN
#define KANBAN_SIZE (15468-1)/BL+1
#define CD_JKANBAN 17220 //J_KANBAN.BIN
#define JKANBAN_SIZE (11952-1)/BL+1
#define CD_NKANBAN 17240 //N_KANBAN.BIN
#define NKANBAN_SIZE (15012-1)/BL+1
/******************************************************************************
;
; メイ
0x1409400#
2.24*/
#define SD_AISATU13A SD_AI+24 /*ご覧下さい。何人かのサポーターが、この夕凪をかき回す様に、 */
#define SD_AISATU13B SD_AI+25 /*旗を振っています。熱い!こんばんは、ジョン・カビラです。 */
#define SD_AISATU13C SD_AI+26 /* 2.24*/
#define SD_AISATU14A SD_AI+27 /*こんばんは、ジョン・カビラです。雨がスタジアム全体を包んでいます。 */
#define SD_AISATU14B SD_AI+28 /*サポートするチームによって、これが歓喜の涙になるのか、それとも絶望の涙になるのか。 */
#define SD_AISATU14C SD_AI+29 /* 2.24*/
#define SD_AISATU15A SD_AI+30 /*サッカーファン
0x140B400#
---*/
/* 試合内容紹介/リーグ戦(選手入場シーン) */
/*----------------------------------------------------------------------------------------------*/
#define SD_SETU00 SD_ETC1 /* インターナショナルリーグ */
#define SD_SETU01 SD_ETC1+1 /* 1節 */
#define SD_SETU02 SD_ETC1+2 /* 2節 */
#define SD_SETU03 SD_ETC1+3 /* 3節 */
#define SD_SETU04 SD_ETC1+4 /* 4節 */
#define SD_SETU05 SD_ETC1+5 /* 5節 */
#define SD_SETU06 SD_ETC1+6 /* 6節 */
#define SD_SETU07 SD_ETC1+7 /* 7節 */
#define SD_SE
0x140D200#
*選手入場です。成長著しいこのチームがどの様なサッカーを見せてくれるか */
#define SD_KOFF223B SD_KOFF2+30 /*非常に楽しみです。 */
#define SD_KOFF224A SD_KOFF2+31 /*45年目の初挑戦、今ここに花開きます。 */
#define SD_KOFF224B SD_KOFF2+32 /*世界が舞台だ。走れ、青い稲妻! */
#define SD_KOFF225A SD_KOFF2+33 /*ドーハの涙はもう知らない。新しい青い鎧を身にまといし日本男児。 */
#define SD_KOFF225B SD_KOFF2+34 /*今度は歓喜の涙を流す時が来た。 */
/*----------------------------------------------------------------------------------------------*/
/* チームのユニフォーム紹介(インターナショナルカップ決勝戦専用) */
/*----------------------------------------------------------------------------------------------*/
#define SD_KOFF300 SD_KOFF2+35 /* 祖国の名誉と己のプライドを賭け、最後の戦いに挑みます。 */
#define SD_KOFF301 SD_KOFF2+36 /* 選ばれし者達の最高の舞台が幕をあけます。 */
#define SD_KOFF302 SD_KOFF2+37 /* 怒涛の様に渦巻く声援を受け、世界最高峰の男達がピッチに姿を現します。 */
#define SD_KOFF303 SD_KOFF2+38 /* 全てを勝ち抜いてきた強者共がピッチにその勇姿を見せています。 */
#define SD_KOFF304 SD_KOFF
0x1410400#
パス(ヒールパス) */
#define SD_PASS180 SD_PASS+35 /* ヒールパス。 */
#define SD_PASS181 SD_PASS+36 /* ノールックでバックパス。 */
#define SD_PASS182 SD_PASS+37 /* 変幻自在のパスワーク。 */
#define SD_PASS183 SD_PASS+38 /* 味方をも欺くノールックパス。 */
#define SD_PASS184 SD_PASS+39 /* 圧巻のトリックフェイク! */
/* パス(ヘッドパス) */
#define SD_PASS190 SD_PASS+40 /* ヘッドで落とす。 */
#define SD_PASS191 SD_PASS+41 /* ヘッドで落として。 */
#define SD_PASS192 SD_PASS+42 /* ヘッドで繋いで。 */
/* パス(パスを流した時)
0x1413400#
・閧ワした。 */
/* ゴール!の後に続くコメント(1点リード) */
#define SD_GOAL330 SD_GOAL+30 /* 「チーム名」1点リード! */
#define SD_GOAL331 SD_GOAL+31 /* 「チーム名」差をつけられました。 */
/* ゴール!の後に続くコメント(後半40分~ロスタイムの勝ち越し) */
#define SD_GOAL340 SD_GOAL+32 /* クゥ~~~!これが勝利を呼び込む一撃だ! */
#define SD_GOAL341 SD_GOAL+33 /* 土壇場になってもこの勝負強さ!一対何なのか。執念でゴールをもぎとりました! */
#define SD_GOAL342 SD_GOAL+34 /* 人間より高い意志の存在を感じるこのゴール、正に奇跡! */
/* ゴール!の後に続くコメント(後半40分~ロスタイムの勝ち越される)
0x1417A00#
*/
#define SD_INP702 SD_INP+35 /* これから、反撃だ! */
#define SD_INP703 SD_INP+36 /* カウンターアタックか!? */
/*----------------------------------------------------------------------------------------------*/
/* デイフェンス クリア */
/*----------------------------------------------------------------------------------------------*/
/* クリア(大きいクリア) */
#define SD_DEFEN100 SD_DEF /* 大きく前方にクリア。 */
#define SD_DEFEN101 SD_DEF+ 1 /* 大きくクリアしました。 */
/* 小さいクリア */
#define SD_DEFEN110 SD_DEF+ 2 /* これは危険なクリア。 */
#define SD_DEFEN111 SD_DEF+ 3 /* クリアが小さいぞ。 */
/* ヘディングでクリア */
#define SD_DEFEN120 SD_DEF+ 4 /* ヘディングでクリア。 */
#define SD_DEFEN121 SD_DEF+ 5 /* ナイス、ヘディング! */
#define SD_DEFEN122 SD_DEF+ 6 /* ナイスカバリング */
/*
0x1419600#
おっ、ショートコーナー! */
#define SD_SETP123 SD_SETP+11 /* ニアポストを狙った! */
#define SD_SETP124 SD_SETP+12 /* ファーポストのスペースを狙った! */
/* コーナーキック蹴った時のコメント(ゴールを狙う) */
#define SD_SETP130 SD_SETP+13 /* ゴールマウスに吸い込まれるのか! */
#define SD_SETP131 SD_SETP+14 /* おおっと、直
0x141CA00#
*/
/*----------------------------------------------------------------------------------------------*/
/* 時間経過(1分経過) */
#define SD_JIKAN100 SD_JIKAN /* 両チーム相手の出方をうかがっているようです。 */
#define SD_JIKAN101 SD_JIKAN+ 1 /* さあ、立ち上がりは慎重に攻めたいところ。 */
#define SD_JIKAN102 SD_JIKAN+ 2 /* 静かな滑り出しです。 */
/* 時間経過(5分経過) */
#define SD_JIKAN110 SD_JIKAN+ 3 /* 5分経過 */
#define SD_JIKAN111 SD_JIKAN+ 4 /* 5分経過、静かな立ち上がりです。 */
#define SD_JIKAN112 SD_JIKAN+ 5 /* 手元の時計は5分を過ぎました。 */
/* 時間経過(10分経過) */
#define SD_JIKAN120 SD_JIKAN+ 6 /* 10分経過。依然として大きな動きはありません。 */
#define SD_JIKAN121 SD_JIKAN+ 7 /* 10分過ぎて、序盤から激しいゲームです。 */
#define SD_JIKAN122 SD_JIKAN+ 8 /* そろそろ10分。 */
/* 時間経過(15分経過) */
#define SD_JIKAN130 SD_JIKAN+ 9 /* 15分経過 */
#define SD_JIKAN131 SD_J
0x1420400#
攻守のアンサンブルが巧くいっているようです。 */
#define SD_TTEN252 SD_TTEN+79 /* 素晴らしい試合運びです。 */
#define SD_TTEN253 SD_TTEN+80 /* このままいけば、栄光を勝ち取る事が出来る。 */
/* 上に続く実況者のコメント(接戦/同点) */
#define SD_TTEN260 SD_TTEN+81 /* そろそろ 危険な時間帯になりましたかぁ。 */
#define SD_TTEN261 SD_TTEN+82 /* 集中力持続しています。 */
#define SD_TTEN262 SD_TTEN+83 /* 勝利へのモチベーションを失わずに行って欲しいですね。 */
#define SD_TTEN263 SD_TTEN+84 /* そろそろ 危険な時間帯に入ります。 */
/* 上に続く実況者のコメント(無得点/追加点がなかなか入らない時) */
#define SD_TTEN270 SD_TTEN+85 /* いい形には成るんですが、得点に結びつける事が出来ません。 */
#define SD_TTEN271 SD_TTEN+86 /* 両チームとも疲れが目立
0x1427200#
出場権を得ました。 2.24 */
#define SD_END220B SD_END+32 /* 220A 「チーム名」 220B 2.24 */
#define SD_END221 SD_END+33 /*「チーム名」見事、ワールドカップ本戦への出場権を得ました。 */
#define SD_END222 SD_END+34 /*「チーム名」辛らくも勝ちましたが、なんとかワールドカップ本戦出場を決めました。 2.24 */
#define SD_END222A SD_END+34 /*「チーム名」辛らくも勝ちましたが、なんとかワールドカップ本戦出場を決めました。 2.24 */
#define SD_END222B SD_END+35 /* 222A 「チーム名」 222B 2.24 */
#define SD_END223 SD_END+36 /*「チーム名」予戦試合全てを消化する前に、予戦落ちが決定しました。 2.24 */
#define SD_END223A SD_END+36 /*「チーム名」予戦試合全てを消化する前に、予戦落ちが決定しました。 2.24 */
#define SD_END223B SD_END+37 /* 223A 「チーム名」 223B 2.24 */
#define SD_END224 SD_END+38 /*「チーム名」惜しくも本戦出場権を逃しました。
0x142AE00#
121 SD_KOFF+28 /*予選リーグ第1節です。 */
#define SD_KOFF122 SD_KOFF+29 /*予選リーグ第2節です。 */
#define SD_KOFF123 SD_KOFF+30 /*予選リーグ第3節です。 */
#define SD_KOFF124 SD_KOFF+31 /*予選リーグ第4節です。 */
#define SD_KOFF125 SD_KOFF+32 /*予選リーグ第5節です。
0x142E200#
-----*/
/* キックオフ */
/*----------------------------------------------------------------------------------------------*/
/* キックオフ直前/試合開始のセリフ(センターサークルをズームアップ) */
#define SD_KOFF10 SD_KOFF2+53 /* さぁ、キックオフです。 */
#define SD_KOFF11 SD_KOFF2+54 /* 試合開始の笛です。 */
#define SD_KOFF12 SD_KOFF2+55 /* キックオフの笛です。 */
#define SD_KOFF13 SD_KOFF2+56 /* 両チーム、ピッチに散りました。さあ、キックオフです。 */
#define SD_KOFF14 SD_KOFF2+57 /* さあ、試合開始です。 */
#define SD_KOFF15 SD_KOFF2+58 /* さあ、前半戦が始まります。 */
/*----------------------------------------------------------------------------------------------*/
/* キックオフ直前/試合開始のセリフ(インターナショナルカップ決勝時) */
/*----------------------------------------------------------------------------------------------*/
#define SD_KOFF500 SD_KOFF2+59 /* 栄光をつかむのはどちらのチームなのか?地響きのような声援を受け今、運命のキックオフ! */
#define SD_KOFF501 SD_KOFF2+60 /* 大会屈指の好カード、いよいよ幕が切って落とされます。 */
#define SD_KOFF502 SD_KOFF2+61 /* 頂点を決める戦いの火
0x1438200#
タッチラインへクリア */
#define SD_DEFEN140 SD_DEF+11 /* タッチラインへ逃れた。 */
#define SD_DEFEN141 SD_DEF+12 /* ボールを外に出した。 */
#define SD_DEFEN142 SD_DEF+13 /* 外へ蹴り出した。 */
#define SD_DEFEN143 SD_DEF+14 /* ボールを外へ蹴り出した */
/* スライディングでクリア */
#define SD_DEFEN150 SD_DEF+15 /* 果敢にスライディング! */
#define SD_DEFEN151 SD_DEF+16 /* 身を呈してのスライディング! */
#define SD_DEFEN152 SD_DEF+17 /* スライディング! */
/*----------------------------------------------------------------------------------------------*/
/* センタリング */
/*----------------------------------------------------------------------------------------------*/
#define SD_INP800 SD_INP2 /* クロスボール */
#define SD_INP801 SD_INP2+ 1 /* おっ、センタリング! */
#define SD_INP802 SD_INP2+ 2 /* ゴール前ひとりいる! */
#define SD_INP803 SD_INP2+ 3 /* ゴール前にふたりい
0x143BC00#
が決まる) */
#define SD_SETP250 SD_SETP2+33 /* ファンタスティック! */
#define SD_SETP251 SD_SETP2+34 /* 直接ねじこんだ! */
#define SD_SETP252 SD_SETP2+35 /* 芸術的なフリーキック! */
#define SD_SETP253 SD_SETP2+36 /* なんてアーティスティックな! */
#define SD_SETP254 SD_SETP2+37 /* ゴールマウスへ一直線! */
#define SD_SETP255 SD_SETP2+38 /* マーヴェラス! */
#define SD_SETP256 SD_SETP2+39 /* これは一言。アート! */
/* ペナルティーキックが与えられた瞬間(試合中) */
#define SD_SETP300 SD_SETP2+40 /* ペナルティキックが与えられました。 */
#defin
0x143EE00#
efine SD_TTEN143 SD_TTEN+26 /* 6対3 */
#define SD_TTEN144 SD_TTEN+27 /* 7対3 */
#define SD_TTEN150 SD_TTEN+28 /* 4対4 同点です。 */
#define SD_TTEN151 SD_TTEN+29 /* 5対4 */
#define SD_TTEN152 SD_TTEN+30 /* 6対4 */
#define SD_TTE
0x1445C00#
圧勝です。 */
#define SD_END113 SD_END+ 9 /*大量得点による一方的な試合展開でした。 */
/* 1点しか点差がない場合 */
#define SD_END120 SD_END+10 /*1点を守りきりました。 */
#define SD_END121 SD_END+11 /*接戦をものにしています。 */
#define SD_END122 SD_END+12 /*1点を死守しての勝利です。 */
/* 僅差でいい試合だった時(負け)
0x1449E00#
チャンス */
#define SD_KANSEI5 1310 /* 歓声 得点 */
#define SD_KANSEIS 1312 /* 通常歓声停止 */
#define SD_KANSEI6 1313 /* ゴール */
#define SD_KANSEI7 1314 /* ゴール */
#define SD_KANSEI8 1314 /* ブー */
#define SD_SHOOT3 1316 /*新シュート音 */
#define SD_PEE 1316
#define SD_SHOOT4 1317 /*新シュート音 */
#define SD_DON 1317
#define SD_SHOOT5 1318 /*