レベル設定・キャラクター選択プログラムについての説明 main60.c // プログラム本体 main60.c を作ったのは大倉さんなので、不明なところが多々有ります。 *ソース説明 ------------------------------------------------------------------------------------------------------------------------------------ 以下の物は現在どの処理を行っているかを示すための物です。(わかりやすくするため) #define CS_4P_SELECT_TEAM 0 // 4P チーム選択中 #define CS_4P_SELECT_MAN 1 // 4P キャラクター選択 #define CS_4P_SELECT_LEVEL 2 // 4P LEVEL設定 #define CS_STORY_SERECT_LEVEL 0 // ストーリー 難易度選択 #define CS_STORY_SERECT_STAGE 1 // ストーリー 難易度 & ステージ選択 各構造体は、ソースのコメントを見て下さい。 ------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------ static void disp_tex_4bt_sc( u8 *pat, u16 *pal, u16 sizex, u16 sizey, s16 x, s16 y, f32 scx, f32 scy, u8 flag ) 行番号 233 〜 251行 // 拡縮対応テクスチャ表示(大倉作) ------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------ static void reset_face_size( Face_Data *fd ) 行番号 254 〜 268行 キャラ選択の顔表示の座標・スケール値のデフォルト値の設定(コメント参照) ------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------ static void set_face_size( Player_Data *pd,Face_Data *fd,u32 cnt ) 行番号 270 〜 319行 キャラ選択の顔表示のスクロール処理(座標・スケール値)(コメント参照) ------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------ static void init_story_play( void ) 行番号 321 〜 355行 ストーリーモード用設定画面の初期化(渡辺作) 324 〜 337行 難易度選択かステージセレクトのどちらの画面にするか設定している。 evs_one_game_flg が真の場合、ステージセレクトのゲームから戻ってきたことになる。 338 〜 354行 各移動値や座標の設定。(コメント参照) ------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------ static void calc_story_play( void ) 行番号 357 〜 481行 STORY 用設定メイン(渡辺作) *ソースのコメントを見てもらったほうが早い。 361 〜 407行 通常の難易度設定の処理を行っている。 408 〜 479行 ステージセレクトの処理を行っている。 ------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------ static void disp_story_play( void ) 行番号 483 〜 620行 STORY 用設定描画メイン(渡辺作) *ソースのコメントを見てもらったほうが早い。 488 〜 503行 背景とタイトルとボタンの描画。 506 〜 516行 通常の難易度選択の土台とカーソルの描画。 436行で読み込んでいるパレットデータは、ほとんど共通(毎回読み込まない)。 519 〜 529行 ステージセレクトの土台とカーソルの描画。 533 〜 560行 選択した名前がステージクリアをしていた場合、矢印を描画する。 その際、矢印の胴体の一部だけ拡大縮小で伸び縮みしているように見せる。 +----- ====== ----> + + + | | | | | +--- 座標だけ変化させる。 | +---------- これを拡大縮小させる。 +---------------- これは、長さ、座標固定(スクロールには付いていく)。 563 〜 565行 顔描画。ここで違うパレットを読み込んでいる。つまり、ここまで描画したものは 全て同じパレット。 567 〜 575行 ステージ選択のステージ番号の描画。 578 〜 589行 ステージセレクトで操作していない側(難易度設定かステージ設定)に半透明の黒幕を上書きする。 ( ms.pd[1].flag が 0 の場合 ステージ設定側が暗くなり、1の場合、難易度設定側が暗くなる。) 594 〜 619行 矢印の描画。 ------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------ static void init_1p_play( void ) 行番号 623 〜 646行 1PLAY(レベルセレクト)用設定画面の初期化 633 〜 637行 選択した名前のデータを調べ、以前のレベルが21以上か調べ、 選択可能最大レベルを変更している。 641 〜 642行 前回のレベルを設定し、そのレベルが、選択可能最大レベルより上だった場合、選択可能最大レベルに設定する。 ------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------ static void calc_1p_play( void ) 行番号 648 〜 745行 1PLAY(レベルセレクト)用設定画面のメイン処理 658 〜 710行 レベル・スピードの設定を行っている。(コメント参照) 711 〜 739行 音楽の設定を行っている。(コメント参照) ------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------ static void disp_1p_play( void ) 行番号 747 〜 878行 1PLAY(レベルセレクト)用設定画面の描画処理 (コメント参照) ------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------ static void init_2p_play( u8 flag, u8 mode ) 行番号 880 〜 958行 2PLAY(VSCPU 2PLAY)用設定画面処理の初期化 (コメント参照) ------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------ static void calc_2p_play( void ) 行番号 959 〜 1353行 2PLAY(VSCPU 2PLAY)用設定画面処理メイン 972 〜 1077行 キャラクタ選択 1078 〜 1190行 レベル・スピード選択 1192 〜 1323行 音楽・背景・CPUレベル設定 (コメント参照) ------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------ static void disp_2p_play( void ) 行番号 1355 〜 1763行 2PLAY(VSCPU 2PLAY)用設定画面描画 (コメント参照) ------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------ static void init_4p_play( u8 flag ) 行番号 1355 〜 1763行 4PLAY用設定画面処理の初期化 (コメント参照) ------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------ static void calc_4p_play( void ) 行番号 1825 〜 2429行 4PLAY用設定画面処理メイン 1383 〜 2014行 チーム選択・設定。 2015 〜 2167行 キャラクタ選択。 2169 〜 2315行 レベル・スピード設定。 2316 〜 2423行 音楽・CPUレベル設定。 (コメント参照) ------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------ static void disp_4p_play( void ) 行番号 2430 〜 3092行 4PLAY用設定画面描画 (コメント参照) ------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------ void main60(NNSched* sched) 行番号 3094 〜 3353行 各設定プログラムをまとめるメイン 3102 〜 3123行 グラフィックデータ読込み・音楽の設定・キーの設定を行っている。 3125 〜 3143行 各ゲームモード別設定の初期化。 3145 〜 3150行 画面きり変わり処理。 3159 〜 3185行 メインループ部分。各ゲームモード別の処理を呼び出している。 3186 〜 3191行 メインゲームに処理が移る場合は、曲を停止する。 3200 〜 3349行 ゲーム用に各設定を行っている( コメント参照 ) ------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------ void graphic60(void) 行番号 3355 〜 3402行 各設定プログラムの描画を行うメイン ( コメント参照 ) ------------------------------------------------------------------------------------------------------------------------------------