;------------------------------------------------------
;	HSP demo ver5.1 ( sample script )
;------------------------------------------------------

; 実行ファイル作成時のみ定義してください
;#define RELEASE


	title "HSP2 demonstration script"

#ifdef RELEASE
	chdir "sample\\demo\\"
#endif

	cls 4:color 255,255,255
	pos 520,450:mes "Loading..."

	sndload "effec.wav",1
	sndload "bgm8.mid",2
	sndload "gx3_.mid",3
	sndload "ou3.mid",4

;------------------------------------------------------

	lgkaz=30
	dim lga,lgkaz
	dim lgx,lgkaz
	dim lgy,lgkaz

;------------------------------------------------------

#ifdef RELEASE
	snd 2		; 音楽を再生
#endif

*mainmenu
	;	メインメニュー
	;
	x=dispx-640/2:y=dispy-480/2
	screen 0,640,480,0,x,y
	color 240,245,255:boxf
	;cls 0
	buffer 3
	picload "hsp2ttlx.jpg"
	gsel 0

	;	オブジェクト配置
	;
	objmode 1+16,1
	font "ＭＳ ゴシック",16,1+16
	x=114:y=240:color 192,192,255
	pos x+1,y+1:mes "ＨＳＰの世界へようこそ。メニューのボタンを押してください。"
	color 0,0,160
	pos x,y:mes "ＨＳＰの世界へようこそ。メニューのボタンを押してください。"
	font "ＭＳ ゴシック",16,1
	x=294:y=280:pos x,y
	objsize 80,24,30
	button "readme",*see_readme
	button "demo",*demomain
	button "manual",*see_man
	button "sample",*see_sample
	;button "biginer",*see_bigin
	;button "home",*see_home
	button "quit",*owari
	x=390:y=282:pos x,y
	mes "はじめにお読みください"
	mes "HSPデモンストレーション"
	mes "HSP総合マニュアルを開く"
	mes "サンプルフォルダを開く"
	;mes "初心者のためのHSP入門を見る"
	;mes "ONION softwareホーページへ"
	mes "終了"

	;	白からフェードイン
	;
	color 255,255,255
	repeat 16
	redraw 0:boxf 0,0,640,200
	pos 0,0:gmode 3,640,200,cnt*16:gcopy 3
	redraw 1,0,0,640,200:wait 5
	loop

	;	ロゴをフェードイン
	;
	buffer 3
	picload "hsp2ttl.jpg"
	gsel 0
	a=-8
	repeat : if a>15 : break
	redraw 0
	repeat 8
	x=a+cnt*16:pos x,0
	gmode 3,32,200,8-cnt*32:gcopy 3,x,0
	x=30-a+cnt*16:pos x,0
	gmode 3,32,200,cnt*32:gcopy 3,x,0
	loop
	redraw 1,0,0,640,200:wait 5
	a+:loop

	stop

*see_sample
	snd 1
	exec exedir+"\\sample",16,"explore"
	stop

*see_readme
	snd 1
	a="・HSP2 demonstration"
	gosub *mkwall
	objmode 1
	redraw 0
	mes {"
このプログラムは、HotSoupProcessor Ver2の機能と使い方の
紹介をするためのものです。メインメニューから見たい項目
を選んでボタンを押してください。
このプログラムはすべてHSPで書かれています。初めてHSPを
知った方は、「HSPデモンストレーション」を選んで、HSPの
機能をご覧ください。
"}
	;
	font "ＭＳ ゴシック",16,1
	pos 330,360:objsize 64,24,28
	;button "hsphtml",*see_hsp2
	button "menu",*mainmenu
	pos 400,362
	;mes "HSP2の案内を読む"
	mes "メインメニューに戻る"
	redraw 1
	stop

*see_hsp2
	snd 1
	exec "hsp2.htm",16
	stop


*see_man
	snd 1
	exec exedir+"\\index.htm",16
	stop
*see_home
	snd 1
	exec "http://www.onionsoft.net/",16
	stop
*see_bigin
	snd 1
	exec "biginer/index.htm",16
	stop

*demomain
	;	HSPデモ本編
	;
	sndoff
	snd 1
	gosub *logodemo				; opening

	snd 3
	a="・HSPとは?":gosub *mkwall
	objmode 1
	text 50
	mes "ＨＳＰは、Windows上で手軽に使えるインタプリタ言語です。
	mes "テキストによるスクリプトを書くだけで、誰にでも簡単に
	mes "画像表示、ランチャーメニューなどのシステムが作れます。
	mes "多彩な命令セットを使いこなすことでCG集、音楽集、デモンス
	mes "トレーション、そしてゲームアプリケーションまで作成するこ
	mes "とができます。
	pos 530
	button "次へ",*demo2
	stop
*demo2
	gosub *pldemo
	a="・HSPの特長":gosub *mkwall
	objmode 1
	text 50
	mes "・簡単に覚えられて強力な命令セット
	mes "・エディタ付属ですぐに使い始めることができます
	mes "・高速な動作をする中間言語処理インタプリタ
	mes "・作ったプログラムやデータを一括で実行ファイルにできます
	mes "・Windows標準のスクリーンセーバーが作成可能です
	mes "・作ったプログラムは自由に再配布が可能、
	mes "  ライセンス料も不要です
	mes "・拡張プラグイン・モジュールにより数多くの機能を追加可能です
	pos 480,310:button "次へ",*demo3
	stop
*demo3


*inpdemo
	;	input object demo
	;
	x=dispx-640/2:y=dispy-480/2
	screen 0,640,480,, x,y,640,480
	cls 4
	objmode 1,1
	font "ＭＳ ゴシック",20,3
	x=16:y=20:color 192,255,128
	pos x,y:mes "・HSP script test"
	font "ＭＳ ゴシック",14,1
	x=40:y=50:color 0,192,0:pos x,y
	mes "HSPでは、ボタンや入力ボックスなどのオブジェクトを"
	mes "自由に配置して使うことができます。"
	mes "下のサンプルを操作してみてください。"
	sysfont:color 0,192,192
	pos 40,130:mes "・けいさん"
	pos 40,200:mes "・グラフ"
	pos 40,270:mes "・メッセージ"
	;
	objsize 48,24:color 192,192,192
	cal1=1:cal2=1
	caltype=0:calmark="+\n-\n*\n/"
	pos 60,160:input cal1
	pos 160,160:input cal2
	objsize 40,24
	pos 114,159:combox caltype,150,calmark
	;
	objsize 64,24
	grph=10:x=280
	pos 60,230:input grph
	pos 138,230:button "GO",*idgrph
	pos 138+64,230:button "RND",*idrnd
	;
	pos 60,300:ids="ここにメッセージを入れてください。"
	mesbox ids,320,100,1
	button "GO",*idmes
	;
	objsize 120,24
	pos 480,400:button "テスト終了",*idover
*idmain
	color 0,0,0:boxf 210,162,320,180
	color 192,192,192
	cal1b=cal1:cal2b=cal2:caltb=caltype
	if caltb=0 : ans=cal1+cal2
	if caltb=1 : ans=cal1-cal2
	if caltb=2 : ans=cal1*cal2
	if caltb=3 : if cal2!0 : ans=cal1/cal2 : else : ans=0
	pos 210,162:mes "= "+ans

*idloop
	if cal1!cal1b : goto *idmain
	if cal2!cal2b : goto *idmain
	if caltb!caltype : goto *idmain
	wait 5:goto *idloop
	stop
*idrnd
	int a:rnd a,20:a=a+1*5:objprm 3,a
	goto *idloop
*idgrph
	if x>580 : x=580:pos 280,100:gcopy 0,300,100,320,150
	a=250-grph:if a>250 : a=250
	if a<100 : a=100
	color 255,0,0:boxf x,a,x+18,250
	x+=20
	goto idloop
*idmes
	dialog ids
	goto *idloop

*idover
	;	VisualNovel Demo
	;
	snd 4
	x=dispx-640/2:y=dispy-400/2
	screen 0,640,400,1, x,y,640,400
	cls 4:redraw 2
	picload "yj_pnn.mag",1
	color 0,0,0:boxf 0,0,640,400
	redraw 1

	buffer 3,128,128,1
	picload "yj_pnn.mag"

	gsel 0:gmode 1
	mx=-32:repeat 60
		repeat 32
		a=cnt*20:x=cnt+mx:if x>20 : x=-1
		if x>0 : pos a,0:gcopy 3,a,0,x,400
		loop
	await 48
	mx+:loop

	palette 16,255,255,255
	pf=0:pp=-8:a=16:gosub *palgo2
	font "ＭＳ 明朝",18,1:objsize 64,24,22
	pos 32,280:text 50:palcolor 16
	mes "「こんなふうに、文字を重ねてビジュアルノベルみたいな
	mes "  画面も作れます。文字を出す速さも指定できるんですよ」
	wait 600
	pp=8:a=16:gosub *palgo2
	pos 0,0:gcopy 3,0,0,640,400
	pos 540,340:button "次へ",*demo3x
	stop

*demo3x
	a="・HSPの応用範囲":gosub *mkwall
	text 50
	mes "ＨＳＰはあなたのアイデア次第で色々な場面で使用できます。
	mes " "
	mes "・プログラムランチャー、メニューとして
	mes "・ＣＧ集、音楽集などのメディアブラウザとして
	mes "・ビジュアルノベルなど様々なジャンルのゲーム作成に
	mes "・画面レイアウトの試作、画像データの変換に
	mes "・文化祭、学園祭などの展示、店頭デモなどに
	pos 480,260:button "次へ",*demo4
	stop
*demo4
	x=dispx-640/2:y=dispy-480/2
	screen 0,640,480,0,x,y
	cls 4
	buffer 3
	picload "oniinfo.jpg"
	;
	gsel 0:gmode 0,640,1:a=0
	repeat 120
	a=cnt*2
	pos 0,239-a:gcopy 3,0,239-a
	pos 0,240+a:gcopy 3,0,240+a
	await 20
	loop
	repeat 120
	a=cnt*2
	pos 0,240-a:gcopy 3,0,240-a
	pos 0,241+a:gcopy 3,0,241+a
	await 20
	loop
	wait 400
*demo5
	a="・インフォメーション":gosub *mkwall
	objmode 1
	text 50
	mes "HSPはインターネット上のホームページでサポートを
	mes "行なっています。
	mes "(ONION software HOMEPAGE)
	mes "     http://www.onionsoft.net/hsp/
	mes " "
	mes "ＨＳＰについての最新情報、サンプルスクリプト、
	mes "FAQ、などのコーナーがあります。ＨＳＰについての
	mes "ご意見、BUGの情報、要望などいつでもお待ちして
	mes "います。
	pos 500,290:button "次へ",*demo6
	stop
*demo6
	;	new feature
	;
	x=dispx-640/2:y=dispy-480/2
	screen 0,640,480,0,x,y
	picload "hspnew.jpg",1
	objmode 1
	font "ＭＳ ゴシック",18,1+16
	pos 32,100:color 0,0,64
	text 50
	mes "Hot Soup Processor ver2.61は、
	mes "システム面や機能面で多くの
	mes "拡張を行なっています。 
	pos 32,180
	mes "コンソールモードに標準対応、
	mes "拡大回転を含む画像処理機能や
	mes "ODBCサポートなどを追加。
	mes "スクリプト実行の安定化と
	mes "手軽で使い勝手の良い
	mes "開発環境を提供します。
	pos 32,310
	mes "その他にも拡張マクロ機能や、
	mes "実行ファイル自動作成などの
	mes "オプションが追加されています。
	wait 500
*demo7
	x=dispx-640/2:y=dispy-480/2
	screen 0,640,480,1, x,y,640,480
	cls 4
	redraw 2
	picload "onibtn.mag",1,460,360
	font "Arial",16
	x=200:y=180
	wait 100
	pos x+2,y+2:color 0,0,192:gosub *edmes
	pos x,y:color 255,255,255:gosub *edmes
	sysfont
	pf=-256:pp=16:a=16:gosub *palgo
	wait 600
	sndoff
	pp=16:a=16:gosub *palgo
	snd 2
	screen 0
	goto *mainmenu

*edmes
	mes "HSP DEMO script"
	mes "copyright 2004 onion software"
	mes "   script & design by onitama"
	mes "   Music by CHOBIN,onitama,kamitama"
	mes "   CG picture by Y-jinn"
	return

*palgo
	;	画面のフェードイン・アウト
	;
	pf+=pp:palfade pf:redraw 1:await 10
	a-:if a : goto *palgo
	return

*palgo2
	;	画面のフェードイン・アウト(16color)
	;
	pf+=pp:palfade pf,0,15:redraw 1:await 10
	a-:if a : goto *palgo2
	return

*mkwall
	;	BGの壁紙作成
	;
	x=dispx-640/2:y=dispy-480/2
	screen 0,640,480,, x,y,640,480
	buffer 3,128,128
	picload "wallbg.jpg",1
	gsel 0:cls:redraw 2
	gmode 0,100,100
	repeat 5:y=cnt*100:repeat 7:x=cnt*100
	pos x,y:gcopy 3
	loop:loop
	font "ＭＳ ゴシック",32
	x=20:y=64:pos x,y:color 0,0,0:mes a
	font "ＭＳ ゴシック",18,1:objsize 64,24,22
	x+=20:y+=60:pos x,y
	redraw 1
	return

*pldemo
	;	picload demo
	;
	x=dispx-640/2:y=dispy-480/2
	screen 0,640,480,1, x,y,640,480
	cls 4
	redraw 2
	picload "onibtn.mag",1,460,360
	font "ＭＳ ゴシック",20,1
	color 255,255,255:pos 170,40
	mes "HSPでは色々なタイプのデータを
	mes "手軽に扱うことができます。"
	pos 180,140:color 0,255,255
	mes "・BMP  16,256色/フルカラー画像ファイル
	mes "・JPG  フルカラー画像ファイル
	mes "・MAG  16,256色画像ファイル
	mes "・WAV  PCM音声ファイル
	mes "・MID  標準MIDIファイル
	mes "・AVI  標準動画ファイル
	mes "・CDaudio  オーディオCDトラック
	pos 48,360:color 192,192,192
	mes "これらを自由に組み合わせたスクリプトで"
	mes "あなたのオリジナルソフトが作れます。"

	font "Arial",18
	x=0:y=0:a=0
	repeat 5
		rnd x,50:lgx.cnt=x+33
		rnd y,50:lgy.cnt=y+41
		rnd a,4:lga.cnt=a
	loop
	pf=-256:lgcnt=0
*plwt
	redraw 2
	color 0,0,128:boxf 32,40,32+100,40+100
	gosub *plsub
	c=10:a="JPEG"
	dup x,lgx.0: dup y,lgy.0:gosub *putstr
	c=6:a="MAG"
	dup x,lgx.1: dup y,lgy.1:gosub *putstr
	c=5:a="BMP"
	dup x,lgx.2: dup y,lgy.2:gosub *putstr
	c=1:a="WAV"
	dup x,lgx.3: dup y,lgy.3:gosub *putstr
	c=3:a="MID"
	dup x,lgx.4: dup y,lgy.4:gosub *putstr

	if lgcnt<8 : pf+=32 : palfade pf:redraw
	if lgcnt>492: pf-=32 : palfade pf:redraw
	lgcnt+

	redraw 1, 32,40,100,100
	await 20
	if lgcnt<500 : goto *plwt
	return

*plsub
	repeat 5
		dup lx,lgx.cnt: dup ly,lgy.cnt: dup la,lga.cnt
		if la&1 : lx+ : else : lx-
		if la&2 : ly+ : else : ly-
		if lx=32 : la=la^1
		if lx=85 : la=la^1
		if ly=40 : la=la^2
		if ly=120 : la=la^2
	loop
	return

*putstr
	palcolor 0:pos x+2,y+2:mes a
	palcolor c:pos x,y:mes a
	return

*logodemo
	;	Flying LOGO demo
	;
	x=dispx-640/2:y=dispy-400/2
	screen 0,640,400+400+50,1, x,y,640,400
	cls 4
	picload "onibtn.mag",1,0,800

	buffer 3,128,128,1
	picload "hsplogo8.mag"

	gosub *logo_ini
*wtlogo
	gosub *logo_put
	await 30:if lgcnt<200 : goto *wtlogo
	return

*logo_ini
	;	飛ぶロゴ初期化
	;
	x=0:y=0:a=0
	repeat lgkaz
		rnd x,100:x=x*4+60:lgx.cnt=x
		rnd y,100:y=y*4-50:lgy.cnt=y
		rnd a,4:lga.cnt=a+1
	loop
	lgcnt=0
	gsel 0
	pos 0,0:gcopy 0,0,400,640,400
	mx=136-80:my=50-40:xx=284:yy=320
	pf=-256
	return

*logo_put
	;	飛ぶロゴ・メイン
	;
	gsel 0
	color 0,0,0
	redraw 2

	if my=100 : goto *logo_nx
	gmode 0,136,50
	pos xx,yy+400:gzoom mx,my ,0,0,800
	boxf xx,yy+my+400,xx+mx,yy+my+402
	pos xx,yy:gcopy 0,xx,yy+400,mx,my+2
	mx+=2:my+:xx-:yy-=2

*logo_nx
	gmode 1,80,50
	repeat lgkaz
		dup lx,lgx.cnt: dup ly,lgy.cnt: dup la,lga.cnt
		pos lx,ly:gcopy 0,lx,ly+400
		ly+=la:if ly>330 : ly=-50
	loop
	gmode 2,80,50
	repeat lgkaz
		pos lgx.cnt,lgy.cnt : gcopy 3,0,lgcnt+cnt\10*50
	loop

	if lgcnt<32 : pf+=8 : palfade pf
	if lgcnt>168: pf-=8 : palfade pf
	lgcnt+

	redraw 1
	return


*owari
	;	おしまい
	;
	sndoff
	end
