制作していくに連れ、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