制作していくに連れ、layerobjをオブジェクトとして見ることができなくなっていき、今ではスクリプト中の処理を任されるフラグ回収機となってしまった。
制作していくに連れ、layerobjをオブジェクトとして見ることができなくなっていき、今ではスクリプト中の処理を任されるフラグ回収機となってしまった。
//ゲーム内時間とステータス *lay layl = lparam switch layl //レイヤー設置直後の処理 case objlayer_cmdinit swbreak //int値を渡された case objlayer_cmdprmi layint = iparam switch layint //メインループ>>ROM & SSD unit convert case 0 gosub *hlay_u swbreak //メインループ>>ゲーム内時間 case 1 gosub *hlay_gt swbreak //loadの処理 case 2 gosub *hlay_saveload swbreak swend swbreak //文字列を渡された case objlayer_cmdprms //layerobjに渡す文字列 laystr = refstr : split laystr, ",", laystr /*** Mainウィンドウログ表示内容 ***/ if laystr(0) == "log" { notesel logmoni : noteadd "\n", 1, 0 time = "" + gettime(1) + "/" + gettime(3) + " " + gettime(4) + ":" + gettime(5) + ":" + gettime(6) /*オートセーブ事後報告*/ if laystr(1) == "asc" { noteadd time + " : AutoSave Successed! " + fname(saveID), 1, 0 } /*ゲーム速度設定変更報告*/ if laystr(1) == "auto_chk" { noteadd time + "\n" + logstr, 1, 0 } /*ロードの事後報告*/ if laystr(1) == "load" { noteadd time + " : Load Successed! " + fname(saveID), 1, 0 } /*セーブの事後報告*/ if laystr(1) == "save" { noteadd time + " : Save Successed! " + fname(saveID), 1, 0 } /*日付変更線*/ if laystr(1) == "dd" { noteadd "------------------------------------------------------------------------------------", 1, 0 noteadd time + " : Game times " + gt(2, 0) + "/" + gt(3, 0) + " になりました.", 1, 0 } /*あけおめ*/ if laystr(1) == "yy" { noteadd time + " : Happy New Year!!", 1, 0 } noteunsel gsel ID_TAB_LOG : objprm id_logmoni, logmoni : gsel ID_WIN_MAIN } /***** 各ウィンドウからMainウィンドウに戻る際のメインループ自走設定 *****/ if laystr(0) == "re" { switch laystr(1) case "amaz" if setting(8, 0) == 1 { sdim remain_code gsel ID_WIN_AMAZ, -1 : gsel ID_WIN_MAIN, 1 : setting(5, 0) = 1 } sdim remain_code gsel ID_WIN_AMAZ, -1 : gsel ID_WIN_MAIN, 1 swbreak case "save" if setting(9, 0) == 1 { sdim remain_code gsel ID_WIN_SAVE, -1 : gsel ID_WIN_MAIN, 1 : setting(5, 0) = 1 } sdim remain_code gsel ID_WIN_SAVE, -1 : gsel ID_WIN_MAIN, 1 swbreak case "set" if setting(10, 0) == 1 { sdim remain_code gsel ID_WIN_SETI, -1 : gsel ID_WIN_MAIN, 1 : setting(5, 0) = 1 } sdim remain_code gsel ID_WIN_SETI, -1 : gsel ID_WIN_MAIN, 1 swbreak swend } swbreak //redraw命令が実行されたとき(利用しない) case objlayer_cmddraw swbreak swend return //ゲーム内時間繰り上がり *hlay_gt sdim hmoni, 64 : sdim mesmoni, 128 //時間 if int(gt(5, 0)) == 59 { gt(5, 0) = "00" gt(4, 0) = strf("%02d", int(gt(4, 0)) + 1) } //日数 if int(gt(4, 0)) == 24 { gt(4, 0) = "00" gt(3, 0) = strf("%2d", int(gt(3, 0)) + 1) setting(6, 0) = 1 } //月 if int(gt(3, 0)) > 31 { gt(3, 0) = " 1" gt(2, 0) = strf("%2d", int(gt(2, 0)) + 1) } //四半期 switch int(gt(2, 0)) case 4 case 5 case 6 gt(1, 0) = "1st" swbreak case 7 case 8 case 9 gt(1, 0) = "2nd" swbreak case 10 case 11 case 12 gt(1, 0) = "3rd" swbreak case 1 case 2 case 3 gt(1, 0) = "4th" swbreak swend //年 if int(gt(2, 0)) > 12 { gt(2, 0) = " 1" gt(0, 0) = strf("%3d", int(gt(0, 0)) + 1) setting(7, 0) = 1 } /***** 時間代入処理 *****/ //ゲーム速度が早いときは分を表示させない if setting(3, 0) == 1 { nn = 5 : gt(4, 1) = ""} : else : nn = 6 //代入 repeat nn hmoni += "" + gt(cnt, 0) + gt(cnt, 1) loop sendmsg hStatic_h, $C, , hmoni //表示文字列更新 (WM_SETTEXT) /***** ゲーム内ログ表示フラグ *****/ //日付変更線 if setting(6, 0) == 1 { gsel ID_WIN_MAIN : objprm layid0, "log,dd" setting(6, 0) = 0 } //あけおめ if setting(7, 0) == 1 { gsel ID_WIN_MAIN : objprm layid0, "log,yy" setting(7, 0) = 0 } //======================================ステータス repeat 5, 2 st(cnt, 2) = strf("%.1f", st(cnt, 0)) loop repeat 7 mesmoni += st(cnt, 2) + "\n" loop sendmsg hStatic_m, $C, , mesmoni //表示文字列更新 (WM_SETTEXT) return //ROM,SSD単位変換 *hlay_u sdim mesmoni_u, 16 /***ROM***/ if int(st(2, 0)) > 1023 { st(2, 0) = "1" u(0) = str(int(u(0)) + 1) st(2, 1) = u(int(u(0))) } /***SSD***/ if int(st(3, 0)) > 1023 { st(3, 0) = "1" u(1) = str(int(u(1)) + 1) st(3, 1) = u(int(u(1))) } mesmoni_u += " " + st(2, 1) + "\n" + " " + st(3, 1) sendmsg hStatic_u, $C, , mesmoni_u //表示文字列更新 (WM_SETTEXT) return //セーブデータのロード・各変数とオブジェクトの更新 *hlay_saveload /*** Mainウィンドウ各変数読み込み ***/ gsel ID_TAB_MOTI, 0 : objprm id_motimono, motimono gsel ID_TAB_LOG, 0 : objprm id_logmoni, logmoni /*** Settingウィンドウ各項目読み込み ***/ gsel ID_WIN_SETI, -1 objprm id_savebut, setting(0, 0) objprm id_chkosoi, setting(1, 0) objprm id_chkfutu, setting(2, 0) objprm id_chkhaya, setting(3, 0) objprm id_chkreamaz, setting(8, 0) objprm id_chkresave, setting(9, 0) objprm id_chkresett, setting(10, 0) /*** Amazoonリストビュー読み込み ***/ gsel ID_WIN_AMAZ, -1 /*** CPU ***/ gsel ID_OMTAB_CPU : mydelitem id_LVCPU myinitem id_LVCPU, bfcpu, rec_cnum, col_num /*** GPU ***/ gsel ID_OMTAB_GPU : mydelitem id_LVGPU myinitem id_LVGPU, bfgpu, rec_gnum, col_num /*** ROM ***/ gsel ID_OMTAB_ROM : mydelitem id_LVROM myinitem id_LVROM, bfrom, rec_rnum, col_num gsel ID_OMTAB_CPU, 1 /*** 各ウィンドウの非表示切り替え ***/ gsel ID_WIN_SAVE, -1 gsel ID_WIN_INFO, -1 gsel ID_WIN_MAIN objprm layid0, 1 objprm layid0, 0 objprm layid0, "log,load" return