ごめんなさいおにたまさんオブジェクトとして活用できなくて

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