//ヒルタルヒ word search ここで定義、ワーク化しているものは、 main10.c など多くのソースで使用されている。 音楽関係の enum も存在する。 //ヒルヒルヒルヒルヒルヒルヒルヒルヒルヒルヒルヒルヒルヒルヒルヒルヒルヒルヒルヒルヒルヒルヒルヒルヒルヒルヒルヒルヒルヒルヒルヒルタルヒ evsworks.c.h オチゲー等総合ワーク #define SPRITE_ANTI D_CBUTTONS // スプライトアンチエイリアス #define R_ROLL (A_BUTTON|Z_TRIG) // カプセル Rロール #define L_ROLL B_BUTTON // .. Lロール #define SELECT A_BUTTON // 選択 selection #define CANSEL B_BUTTON // キャンセル rejection #define LEVER_UP U_JPAD // 上 #define LEVER_DOWN D_JPAD // 下 #define LEVER_LEFT L_JPAD // 左 #define LEVER_RIGHT R_JPAD // 右 #define LEVER_MINUS L_JPAD // - (左) #define LEVER_PLUS R_JPAD // + (右) enum { // 曲番号 SEQ_Fever, // ”フィーバー” SEQ_Chill, // ”チル” SEQ_Dizzy, // ”ディジー” SEQ_Opening, // ”オープニング” SEQ_Menu, // ”メニュー” SEQ_VSEnd, // ”VSゲーム終了” SEQ_Win, // ”勝利” SEQ_Lose, // ”敗北” SEQ_Gingle, // ”ジングル” SEQ_Clear, // ”コーヒーブレイク” SEQ_Clear2, // ”コーヒーブレイク2” SEQ_MAX, }; enum { // SE番号 SE_gFreeFall, // ”自由落下音” SE_gVrsErase, // ”ウイルス有り列消去” SE_gVrsErsAl, // ”ウイルス全消去” SE_gSpeedUp, // ”カプセル落下スピードアップ” SE_gCombo, // ”連鎖” SE_gPause, // ”ポーズ” SE_gCapErase, // ”カプセルのみの列消去” SE_mDecide, // ”(メニュー)決定” SE_mLeftRight, // ”(メニュー)左右移動” SE_mUpDown, // ”(めにゅー)上下移動” SE_gLeftRight, // ”カプセル左右” SE_gTouchDown, // ”カプセル着地” SE_gCapRoll, // ”カプセル回転” SE_xNoRequest, // ”リクエスト無しサイン” }; #define LEVEL_MAX 20 // ゲームレベル #define PLAYER_MAX 4 // プレイヤー数 #define MFx 12 // ゲームフィールドMAX x,y #define MFy 21 // #define FALL_CNT 14 // 落下カウンタ #define PIXEL_MAX 6 // ブロックピクセル #define ERASE_CNT1 10 // イレースカウンタ1 #define ERASE_CNT2 10 // ..  2 #define NEXTCAP_X 160 // #define NEXTCAP_Y 20 // #define NEXT_S_WAIT 0 // #define PAUSE_NOREQ 77 // 非ポーズ要請 #define CMB_THROUGH 7 // "コンボ"補間数 #define SCORE_MAX 6 // スコアインデクス #define MAGA_MAX 256 // マガジン(ネクストカプセルのワーク)max #define ID_MAX 7 // .id max #define LEVLIMIT 23 // 内部レベル上限 #define STD_MFieldX 8 // Mフィールド標準 Xサイズ #define STD_MFieldY 17 // Yサイズ( 見えない列含む ) #define MFITEM_SMALL 8 // Mフィールドアイテムサイズ S #define MFITEM_BIG 10 // .. L #define ACCEL_DIV 10 // スピードレベルアップタイミング( デフォルト ) #define DELETE_LINE 4 // #define PINPOINT_CHG 120 // ピンポイント攻撃時カウントリミット #define JOYrTIMEvm 13500 // DrMゲーム時コントローラ読みとりタイミング( vsMEN ) #define JOYrTIMEvc 10500 // .. ( vsCPU ) enum { // プログラムステータス evs_prgstat PRG_OPEN, //-オープンフェード PRG_READY, // レディ PRG_GAME, // ゲーム PRG_CLEAR, // ゲームクリアー PRG_OVER, // ゲームオーバー PRG_PAUSE, //-ポーズ PRG_PAUSE_NF, // フォントナシポーズ PRG_1P_WIN, // 1P勝利 PRG_2P_WIN, // 2P勝利 PRG_3P_WIN, // 3P勝利 PRG_4P_WIN, //-4P勝利 PRG_DRAW, // ドロー PRG_EXITVS, // 対戦モード終了 PRG_JUDGEWAIT, // 判定ウエイト PRG_CLOSE, // クローズフェード }; enum { // ゲームステータス pw->gs GST_NO_USE, //-非使用 GST_1ST, // ファ-ストフレーム GST_INIT, // イニシャライズ中 GST_MFIELD, // mフィールド表示 GST_GAME, // ゲーム進行中 GST_PAUSE, //-ポーズ GST_OVER, // ゲームオーバー GST_CLEAR, // クリアー GST_EN_OVER, // 敵ゲームオーバー GST_EN_CLEAR, // 敵クリアー }; enum { // mフィールドステータス pw->mt MF_INIT, // mフィールドイニシャライズ中 MF_NORMAL, // 通常処理中 MF_ERASE, // 消去決定及び消去中 MF_FALL, // 落下決定及び落下中 MF_BOUNCE, // カーソルカプセルバウンド中 }; enum { // ゲームスピード pw->sp SPEED_LOW, SPEED_MID, SPEED_HIGH, SPEED_MAX, }; enum { // ブロックステータス pw->blk[][].st MB_CAPS_U, //-カプセル上向き MB_CAPS_D, // .. 下 .. MB_CAPS_L, // .. 左 .. MB_CAPS_R, // .. 右 .. MB_CAPS_BALL, // .. 玉 MB_VIRUS_A, //-ウイルスA MB_VIRUS_B, // ウイルスB MB_VIRUS_C, // ウイルスC MB_ERASE_CAPS, // カプセル消滅中 MB_ERASE_VIRUS, //-ウイルス .. MB_NOTHING, // 何もない }; enum { // コントロールカプセルステータス pw->cap(nex).st ONES_NONE, //-表示無し ONES_FLYI, // 投げパターン初期 ONES_FLYN, // 投げられ中 ONES_INIT, // 新規表示 = ONES_ooAB ONES_ooAB, // パターン A ONES_8_AB, //- .. B ONES_ooBA, // .. C ONES_8_BA, // .. D ONES_STOP, // その場で停止 ONES_BLOK, // 硬化 }; enum { // カラー (属性) pw->blk[][].co, pw->cap(nex).co COL_RED, // 順序固定 COL_YELLOW, // .. COL_BLUE, // .. COL_NOTHING, }; enum { // マトリクスブロック落下フラグ pw->blk[][].ff FALL_OFF, FALL_ON, }; enum { // 当たり判定 use "SHIF(x)" MBLK_UL, //(U L),( U ),(U R),(URR) MBLK_U, //( L ),( C ),( R ),(R R) MBLK_UR, //(D L),( D ),(D R),(DRR) MBLK_URR, MBLK_L, MBLK_C, MBLK_R, MBLK_RR, MBLK_DL, MBLK_D, MBLK_DR, MBLK_DRR, }; // pw->pu[x] enum { PU_CPUFLG, PU_CPULEV, PU_DEMOno, }; // pw->pu[PU_CPULEV] enum { PMD_CPU0, PMD_CPU1, PMD_CPU2, }; // pw->pu[PU_CPUFLG] #define DEMO_PLAYER 2 enum { // ゲーム設定 evs_gamesel GSL_1PLAY, GSL_2PLAY, GSL_4PLAY, GSL_VSCPU, GSL_1DEMO, GSL_2DEMO, GSL_4DEMO, GSL_MAX, }; enum { // テーブル内 0,1,2番の意味pw->vsp.ac(.fo) BOMB_FORMT, BOMB_COUNT, BOMB_TABLE, }; #define BOMBING_MIN 2 #define BOMBING_MAX 4 #define JOYKEP 3600 #define STARTJ 255 #define ENDOFJ 254 typedef struct { u8 st,co; } VIBLOCKm; typedef struct { u8 count; u8 joykey; } KEYSEQ; typedef struct { // カプセルワーク u8 st; // 状態 :(上記enum)ONES_**** u8 wc; // 非表示ウエイトカウント( 1>=強制 ) u8 mx,my; // mフィールドx,y(8x15) u8 ca; // カラーa番号 :(上記enum)COL_*** u8 cb; // ..b .. u8 sp; // fall_speed[インデクス], カウンタ上限 u8 cn; // .. カウンタ( next時は cap_magagine[インデクス] ) u16 bc; // ブロック化カウンタ u8 fc; // フライングカウンタ u8 bd; // ブロック化カウンタ } CONCAP; typedef struct { // mフィールド 1ブロックワーク u8 st; // ブロックの種類 :(上記enum)MB_*****_** u8 co; // カラー番号 :(上記enum)COL_*** u8 ff; // 落下中ステータス u8 rf; // 病原菌作成予約フラグbyウルピー u16 wk[4]; // 操作ワーク float fc; // 浮動小数点カウンタ } BLKCAP; typedef struct { // 前回データ取得ワーク( 処理切替等でのプレイヤー設定記憶エリア ) u8 mt[2]; // .mt u8 vp; // .vir.vm u8 vm; // .vir.vm u8 mp; // .mp u8 cs; // .cap.st u8 vs; // .vs short rx; // .rx } PREVWK; typedef struct { // 対戦ワーク u16 hi,sc; // ハイスコア, スコア u8 wi,lo; // 勝利数, 勝利者フラグ u8 mcb,mec; // (max)コンボカウンタ, 連続消し数 u8 ncb,nec; // (now)コンボカウンタ, 連続消し数 u8 si,ei; // 消去開始時カプセル&ウイルス数, 消去カプセル&ウイルス数 u8 sv,ev; // 消去開始時ウイルス数, 消去ウイルス数 u8 up; // 非使用 u8 an; // 攻撃相手( ピンポイント時 ) int pc; // 攻撃用カウンタ( ピンポイント時 ) u8 ac[18]; // 攻撃カプセル集計 u8 fo[10]; // 被爆カプセルセット } VSPLAY; typedef struct { // 1プレイヤ総合ワーク int aa; //( データ保護ワーク、未使用 ) u8 pn; // プレイヤー no. 0-3 u8 gs; // ゲームステータス u8 mt; // マトリクスステータス MB_*** u8 pe; // ピクセル数 u16 wx,wy; // ワールド左上座標(カプセル用) u16 nx,ny; // ネクスト x,y座標(wx,wy+α) u8 sx,sy; // ゲームフィールドサイズx,y( default 8x16 ) u8 lv; // 設定レベル(0-29) u8 sp; // 設定スピード :(上記enum)SPEED_*** u8 mp; // Mフィールド作成プログラム :(上記enum)MFP_*** u8 vs; // ウイルス残数 u8 id; // 設定値検索インデクス ... ex.1P時と2P対戦時の1Pとは、使用するデータが違う時に使用するインデクス u8 dg; // デバッググリッド on/off u8 pu[3]; // 0:TRUE==コンピュータ, 1:LEVEL( 0,1,2 ), 2:デモ no. u8 ef; // 消去,落下用カウンタ CONCAP cap; // 現在操作するカプセルワーク CONCAP nex; // ネクストカプセルワーク BLKCAP blk[MFy][MFx]; // ブロックワーク PREVWK prv; // 前回データ取得ワーク VSPLAY* ene[4]; // 敵対戦ワークポインタ VSPLAY vsp; // 対戦用ワーク int zz; //( データ保護ワーク, 未使用 ) } PWORK; u8 evs_fram1st; // 1stフレーム y/n u8 evs_seqence = TRUE; // シーケンス on/off u8 evs_seqnumb = SEQ_Fever; // シーケンス番号 u16 evs_seffect; // SE no. u8 evs_selmenu; // セレクトメニュー u8 evs_selmen2; // セレクトメニュー2P u8 evs_playmax; // プレイヤー数max( コントローラ数 ) u8 evs_playcnt = 1; // プレイヤー PWORK evs_playwrk[PLAYER_MAX]; // ゲーム総合処理 u8 evs_prgstat; // ゲームステータス u8 evs_taskbar = FALSE; // タスクバー u8 evs_bground; // 背景 u8 evs_pauplay; // ポーズ優先プレイヤ short evs_fadecol = 0; // カラーフェーダー u8 evs_dsjudge; // 判定描画 u8 evs_gamesel; // タイトルでのゲームセレクト 0-3 == 1P,2P,4P,vsCPU u8 evs_capinsh = FALSE; // u8 evs_keyrept[2] ={ 12,6 }; // キーリピート u8 evs_attak4p = TRUE; // TRUE=ピンポイント int evs_maincnt; // メインカウンタ int evs_grphcnt; // グラフィックカウンタ u8 evs_mainx10; // main10処理中フラグ u8 evs_graph10; // graphic10許可フラグ u8 evs_aceldiv; // 落下速度レベルアップ( 何個毎にスピードアップするか ) u8 evs_nextprg; // ゲーム終了時帰り先 u8 flying_cnt[] = { 40, 20, 20, }; // カプセル投げられてからカーソルになるまでのかうんた u8 bonus_wait[][3] = { // カーソルカプセル y=1~3時, 余力ウエイト { 2, 2, 2, },{ 1, 1, 1, },{ 1, 0, 1, }, }; u8 touch_down_wait[] = { 1, 2, 2, 2 }; // カプセル下にブロックが有る時の追加ウエイト( != 0 ) u8 game_speed[] = { 0, 10, 15, 55, }; // スピード初期インデクス by fall_speed[] u8 fall_speed[] = { // 落下スピードデータ 39,37,35,33,31,29,27,25,23,21,19,18,17,16,15, 14,13,12,11,10, 9, 9, 8, 8, 7, 7, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, }; u8 next_wait[] = { 0,30,30,30,30,30,30, };// 次カプセルへのウエイト u8 score_1p[][SCORE_MAX] = { // スコア計算 表示時はx100する { 1, 2, 4, 8,16,32, }, { 2, 4, 8,16,32,64, }, { 3, 6,12,24,48,96, }, }; u8 gamesel_index[] = { 0,1,3, 1, 0,1,3 }; // ゲームセレクトによるPWORK.id char speed_str[][5] = { // スピードレベルフォントパタン "LOW", "MED", " HI", "HI", }; u8 cap_magagine[MAGA_MAX]; // カプセルマガジン // 下記キーシーケンス関連 #ifdef PAD_SEQ_KEEP VIBLOCKm viskeep[ID_MAX][MFy][MFx]; // Mフィールド u8 magkeep[3][MAGA_MAX]; // マガジン KEYSEQ joykeep[ID_MAX][JOYKEP]; // コントローラ u8 levkeep[ID_MAX+1][2]; // level,speed #endif // コントローラワーク u8 joygmf[MAXCONTROLLERS]; // 下記使用フラグ u16 joygam[MAXCONTROLLERS]; // ゲーム用コントローラフラグ