the cutting room mirror

Shin Seiki Evangelion: Koutetsu no Girlfriend Special Edition (PlayStation 2)

This article has a talk page!
view on tcrf.net

This page contains no introduction.
What makes this game notable or what is it about? Are you a bad enough dude to save this article?

Unused Images#

Aside from all the unused images on this page, two uncensored shower scenes are also on the disc. The uncensored files p_c008aa.bmp and p_cb10a.bmp can be found inside BIND.AFS. The game uses another set of these images which are censored. The green background on the images are normal.

(Source: Punk7890)

Miscellaneous#

Engine Tests#

Images likely used for testing the game engine.

Unused Scripts#

debugmemo.txt#


<<EVAFOR95.iniに追加できるデバックモード>>

CMAINAUTODEBUGFLAG=1      cmain.cppに追加,自動デバッグモード
ADVDEBUGKEYFLAG=1          adv1.cppに追加、デバックショートカットキー
BSCRP02DEBUGSCRIPTWRITE=1  bscrp02.cppに追加,スクリプト1行をディスクへ

WHEREISCHECKOFF=1          whereis.cppに追加、チェックをはずす。データ取り込み時に有効。普段はオフに。


<<デバッグキー>>

  'R' リスタート
  'P' ポーズ
  'Z' タイマーカット
  'S' or 'X' 強制終了
  'T' "newc.cpp"    // new メモリーカウンターダンプ
  'U' "bscrp04.cpp"  ParaDebugDump();

readme.txt#

----
paradebug
変数のデバッグダンプ

paradebug.chashtest
キャッシュテスト

メモリチェック
memcheck.point
memcheck.dump
----

Programming Design  by  Ritsuro Hashimoto
install program,system program,scenario program
(c)1997 ritsuro hashimoto

----

"EVANGELIONforWIN95.ini"のおまけ

//[EVANGELIONforWIN95]
//1997/05/14
//  CMAINAUTODEBUGFLAG=1      cmain.cppに追加,自動デバッグモード
//  ADVDEBUGKEYFLAG=1          adv1.cppに追加、デバックショートカットキー
//  BSCRP02DEBUGSCRIPTWRITE=1  bscrp02.cppに追加,スクリプト1行をディスクへ
//
//1997/05/17
//  WHEREISCHECKOFF=1          whereis.cppに追加、チェックをはずす。データ取り込み時に有効。普段はオフに。

----

CGディレクトリ

%dircg=<ディレクトリ>

    セルデータ等のBMPの入ったディレクトリを指定する。
    デフォルトはカレントディレクトリ。
    【例】%dircg=c:\evadata\エヴァ・リフトオフ\


イベントディレクトリ

%direvent=<ディレクトリ>

フェイスディレクトリ

%dirface=<ディレクトリ>

テキストディレクトリ

%dirtext=<ディレクトリ>

    【例】%dirtext=c:\エヴァンゲリオン\eva3\

WAVEディレクトリ

%dirwave=<ディレクトリ>

MIDIディレクトリ

%dirmidi=<ディレクトリ>

システム絵ディレクトリ

%dirgrp=<ディレクトリ>

----
インストールディレクトリ(レジストリ情報参照)指定

%dircg=whereis_bmp\
%direvent=whereis_bmp\
%dirface=whereis_face\
%dirwave=whereis_wave\
%dirmidi=whereis_midi\
%dirgrp=whereis_grp\


----

%test.RectClear= x1, y1, x2, y2 

----

ラベル

 *ラベル名

   または

 ○ラベル名

   という風に頭に全角のアスタリスクか、丸を付ける。

ジャンプ

 goto <ラベル名>

サブルーチン呼び出し
 call <ラベル名>

サブルーチンから戻り
 return

----
マシンスペック
MachineLebel

MachineLebel = NORMAL は普通
MachineLebel = HIPOWER は強力

if MachineLebel=HIPOWER then
if MachineLebel=NORMAL then

if MachineLebel=HIPOWER then
  %face=4,独り言
  独り言「強力」20
  %faceclose=独り言

if MachineLebel=NORMAL then
  %face=4,独り言
  独り言「普通」20
  %faceclose=独り言


----

タイマー

  %timer=<10ミリ秒(百分の一秒)>

  【例】
    %timer=200

タイマー拡張

 絶対時間の開始
  %timer.start

 絶対時間待ち (同時に相対時間の計測点)
  %timer.wait=<10ミリ秒(百分の一秒)>

 相対時間待ち (同時に相対時間の計測点)
  %timer.delta=<10ミリ秒(百分の一秒)>

 相対時間の計測点のみ
  %timer.adjast

 絶対時間ループ処理カット(動画、スクロールの時間制限を設定する)
                        (%film.SpeedPlayLoop=/%selSpeed.Scroll./%selSpeed.Bure.)
  %timer.loopcut.wait=<10ミリ秒(百分の一秒)>

 絶対時間ループ処理カットの停止
  %timer.loopcut.wait.off

 絶対時間をデバックウインドウに出力
  %timer.print


  %timer.start
  %timer.wait=100
  %timer.delta=100

----

《ウェーブオーディオ》

再生
 %sound.play=<ウェーブファイル名>

繰り返し再生
  %sound.playrepeat=<ウェーブファイル名>

終了  
 %sound.stop

終了待ち
 %sound.wait

例
 %sound.play=c:\windows\media\chimes
 %sound.wait
 %sound.stop

----

《MIDIオーディオ》

再生
 %midi.play=<MIDIファイル名>
 %midi.play=<MIDIファイル番号>        //再生

再生ループ(2000/9)
 %midi.playrepeat=<MIDIファイル番号>  //ループ再生(ループ再生は番号指定のみ)


終了  
 %midi.stop

曲番号
;0=General MIDI Reset.
%midi.play=0
;1=ASUKA STRIKES!  2'20"
%midi.play=1
;2=DECISIVE BATTLE 2'19"60
%midi.play=2
;3=THE BEAST  1'35"25
%midi.play=3
;4=MAKING TIME,WAITNG FOR DEATH intro 1'00"71
%midi.play=4
;5=BAREFOOT IN THE PARK  2'38"10
%midi.play=5
;6=A Moment When Tension Breaks  4'8"49
%midi.play=6
;7=She said,"Don't make others suffer for your pesonal hatred. 1'48"74
%midi.play=7
;8=When I Find Peace of Mind   3'30"54
%midi.play=8
;10=作.藤原 寂しい曲
%midi.play=10


------------------------------繰り返し



;5=BAREFOOT IN THE PARK  2'38"10
%midi.playrepeat=5,16000
;6=A Moment When Tension Breaks  4'8"49
%midi.playrepeat=6,24900
----

《フィルムシステム》

フィルムサイズは必ず4の倍数にすること。
4の倍数にしなくても動くことは多いが、
たいてい、ハングアップしてしまう。
高速化のための手段である。


 %film.new
 %film.delete
 %film.start
 %film.shot=<BMPのファイル名>
 %film.save=<フィルムのファイル名(.zdf)>
 %film.load=<フィルムのファイル名(.zdf)>

サイズ指定のスタート
  %film.start=<始点X,始点Y,サイズX,サイズY>

   <サイズX,サイズY>は偶数にすること。

フィルムのバックの絵の表示を可能にする
  %film.BGEnable

フィルムの非表示
  %film.OFF

フィルムの表示
  %film.ON

再生(遅いけれどメモリー節約バージョン)
 %film.play

再生(高速バージョン)
 %film.SpeedPlayDataMaking
 %film.SpeedPlayDataDelete
 %film.SpeedPlay

再生(高速バージョン/間欠表示機能(マルチフィルム用))
 %film.SpeedPlayEx=<再生コマ数の指定>

 その設定
 %film.SpeedPlExSet=<機能番号>,<始まり>,<終わり>,<長さ>

     通常ループ表示
    %film.SpeedPlExSet=1,<>,<>,<>
     間欠表示
    %film.SpeedPlExSet=2,<始まり>,<終わり>,<長さ>
     通常表示(ループしない)
    %film.SpeedPlExSet=3,<>,<>,<>
     時間差表示
    %film.SpeedPlExSet=4,<始まり>,<>,<>

 終わったら削除
 %film.SpeedPlExDelete

  マルチフィルムの非表示設定(0で表示、1で非表示)(最大8個)
  %film.SpeedPlExDisable=<フィルム1>,<フィルム2>,<フィルム3>,...

コマ再生
 %film.SpeedPlay=<再生コマ数の指定>
 %film.SpeedDraw=<表示するフィルムのコマ番号>

繰り返し再生
 %film.SpeedPlayLoop=<ループの繰り返し回数>

途中を繰り返し再生
  %film.SpeedPlayRepart=<コマ番号>,<再生コマ数>,<繰り返し数>

途中を繰り返し再生+ぶれ
  %film.SpeedPlayBureRepart=<コマ番号>,<再生コマ数>,<繰り返し数>

再生しながら済みのコマをメモリ上から削除していくかを設定
  %film.SpeedPlaySetDrawAndDel=<1:削除する,0:削除しない>

止めるコマを指定する(#103アスカふすまの向こうウロウロ)
  %film.SpeedThreadInterval=<止めるコマの番号1>,<止めるコマの番号2>,<止めコマ数>

TU
 %film.tu=<BMPのファイル名>

TU
 %film.tu2=<BMPのファイル名>,<最後の表示座標X>,<最後の表示座標Y>,
  <最後の表示サイズX>,<最後の表示サイズY>,<ステップ数>


ファイル "PEN1","PEN2","PEN3","PEN4","PEN5","PEN6"を
フィルムデータにして "ww.zdf" に書き込む。
 %film.dfs01

"ww.zdf"を再生する。
 %film.dfs11

TUテスト "w.bmp" を "ww.bmp" に変換。
 %film.dfs12

TUテスト "w.bmp" を 順次表示。
 %film.dfs13

TUテスト "w.bmp" を 順次表示。
 %film.dfs14 = endX, endY, endsizeX, endsizeY, stepCount

フィルムの現在のコマをアニメーションセルへ
 %film.CopyToSel


<再生の例>

%selSpeed.Timer=1
%film.new
%film.load=c279
%film.play
%film.delete
%userwait
#終了

<高速再生の例>

%selSpeed.Timer=1
%film.new
%film.load=c279
%film.SpeedPlayDataMaking
%userwait
%film.SpeedPlay
%userwait
%film.SpeedPlayDataDelete
%film.delete
#終了

<セルのフィルム化の例>

%film.new
%film.start
%selToFilm=C279_BG,デジタルa_0,デジタルb_0,デジタルc_0,デジタルd_87
%selToFilm=C279_BG,デジタルa_0,デジタルb_1,デジタルc_1,デジタルd_32
%selToFilm=C279_BG,デジタルa_0,デジタルb_2,デジタルc_2,デジタルd_56
%selToFilm=C279_BG,デジタルa_0,デジタルb_3,デジタルc_3,デジタルd_10
%selToFilm=C279_BG,デジタルa_0,デジタルb_4,デジタルc_4,デジタルd_87
%selToFilm=C279_BG,デジタルa_1,デジタルb_5,デジタルc_5,デジタルd_32
%selToFilm=C279_BG,デジタルa_1,デジタルb_6,デジタルc_6,デジタルd_56
%selToFilm=C279_BG,デジタルa_1,デジタルb_7,デジタルc_7,デジタルd_10
%selToFilm=C279_BG,デジタルa_1,デジタルb_8,デジタルc_8,デジタルd_87
%selToFilm=C279_BG,デジタルa_1,デジタルb_9,デジタルc_9,デジタルd_56
%film.save=c279
%film.delete
%userwait
#終了

☆☆☆☆☆☆☆

[廃止]スピードフィルムを高速アニメーションセルへコピー
[廃止]
[廃止]  %film.SpeedNowCopyToSel
[廃止]  %film.SpeedNowCopyToSel=<フィルムのコマ番号>
[廃止]
[廃止]スピードフィルムを高速アニメーションセルへコピーして、
[廃止]ぶれやスクロールをするための処理です。
[廃止]たとえば、フィルムの最後にぶれを加えたいときにこれを使います。

<高速再生の後、画面ぶれの例>

%selSpeed.Timer=6
%film.new
%film.load=c046
%film.SpeedPlayDataMaking
%film.SpeedPlay

%selSpeed.Bure.Set=740,400,0,2
%selSpeed.Bure.Mode=1
%selSpeed.Bure.Count=60
%selSpeed.Bure

%selSpeed.DeleteAll

%film.SpeedPlayDataDelete
%film.delete


☆☆☆☆☆☆☆

『時間割り込みによる動画の表示』

ただし、システムへの過負荷を押さえるため16枚まで。

  割り込み処理へのフィルムのセット
   %film.SpeedThreadPictuer
  フィルム再生開始
    %film.SpeedThreadPicON
  フィルム再生停止
    %film.SpeedThreadPicOFF

  フィルム再生開始(繰り返し)
    %film.SpeedThreadPicRepartON

  フィルム再生開始(繰り返し&画面動(ぶれ))
    %film.SpeedThreadPicRepBureON

  時間割り込み回数
   イベント時間間隔は10ミリ秒で、それの何分の一かを設定。デフォルトは10。
    %film.SpeedThreadTimer=<イベント時間間隔>

例
%film.new
%film.load=c040
%film.SpeedPlayDataMaking
%film.SpeedThreadPictuer
%film.SpeedThreadPicON
;再生中
%userwait
%film.SpeedThreadPicOFF
%film.SpeedPlayDataDelete
%film.delete
#終了

例2(繰り返し)
%film.new
%film.load=c040
%film.SpeedPlayDataMaking
%film.SpeedThreadPictuer
%film.SpeedThreadPicRepartON
;ここの間、再生中
%userwait
%film.SpeedThreadPicOFF
%film.SpeedPlayDataDelete
%film.delete
#終了

☆☆☆☆☆☆☆

『マルチフィルムの表示』

 複数のフィルムを同時再生します。
 小さなフィルムを複数表示することでトータルの表示面積を小さくし、
 表示スピードを向上させるのに効果的です。

このコマンドを利用します。
 %film.addload=<フィルムのファイル名(.zdf)>

例
 SpeedPlayを使う表示は、フィルムの再生コマ数は先頭のフィルムの最大コマ数に合わせます。

%selSpeed.Timer=1
%film.new
%film.load=c040_1
%film.addload=c040_2
%film.addload=c040_3
%film.SpeedPlayDataMaking

%userwait

%film.SpeedPlay

%userwait

%film.SpeedPlayDataDelete
%film.delete


☆☆☆☆☆☆☆

『時間割り込みによる動画の表示』と『マルチフィルムの表示』の組み合わせ

 小さなフィルムを複数表示することでの表示スピードの向上と、
 時間割り込みを組み合わせることによって、スムーズな割り込み動画再生を行う。
 ただし、システムへの過負荷を押さえるため
 フィルム枚数16枚のフィルム本数3組まで。

例
%film.new
%film.load=c040_1
%film.addload=c040_2
%film.addload=c040_3
%film.SpeedPlayDataMaking
%film.SpeedThreadPictuer
%film.SpeedThreadPicON
;ここの間、再生中
%userwait
%film.SpeedThreadPicOFF
%film.SpeedPlayDataDelete
%film.delete
#終了


☆☆☆☆☆☆☆

『時間割り込みによる繰り返し動画をコマの指定で止める』
 ループによる動画再生を次のシーンへスムーズにつなぎたい場合、
 指定のコマ数で止める必要が出てくる。そのときは次のルーチンを使って解決する。

%film.SpeedThreadKomaCutter=3
%film.SpeedThreadKomaCutWait

----

スプライト

スプライトの生成
%sprite.new

スプライトタイマー
%sprite.Timer=6

スプライトパターンロード(コピーパターン)
%sprite.loadCOPY=c185_bg

スプライトパターンロード(マスクパターン)
%sprite.loadAND=c185_b1m

スプライトパターンロード(ORパターン)
%sprite.loadPAINT=c185_b1

スプライトのDDB生成
%sprite.CreateDDB

スプライトのDDB生成(と同時にDIBを削除しメモり使用量を抑える)
%sprite.CreateDDBAndDIBdelete

スプライトの表示
%sprite.draw00


スプライトの移動パラメータ設定(追加していく)
%sprite.draw01.setCell=<スタート位置X>,<スタート位置Y>,<ステップX(10倍の数値)>,<ステップY(10倍の数値)>,<リピート回数>

スプライトの移動パラメータ設定(番号指定)
%sprite.draw01.setCellRec=<番号>,<スタート位置X>,<スタート位置Y>,<ステップX(10倍の数値)>,<ステップY(10倍の数値)>,<リピート回数>

スプライトの移動パラメータ設定(間欠表示)
%sprite.draw01.setCell2=
  <スタート位置X>,<スタート位置Y>,<ステップX(10倍の数値)>,<ステップY(10倍の数値)>,
   ,<表示間隔のスタートカウント>,<表示間隔>,<リピート回数>

スプライトの移動パラメータ設定(間欠表示の番号指定)
%sprite.draw01.setCell2Rec=
  <番号>,<スタート位置X>,<スタート位置Y>,<ステップX(10倍の数値)>,<ステップY(10倍の数値)>,
   ,<表示間隔のスタートカウント>,<表示間隔>,<リピート回数>

スプライトの移動パラメータ設定(間欠表示その2)
 %sprite.draw01.setCell3=
  <スタート位置X>,<スタート位置Y>,<ステップX(10倍の数値)>,<ステップY(10倍の数値)>,
      ,<表示間隔のスタートカウント>,<表示開始>,<非表示開始>,<表示間隔>,<count>

スプライトの移動パラメータ設定(間欠表示その2の番号指定)
 %sprite.draw01.setCell3Rec=
  <番号>,<スタート位置X>,<スタート位置Y>,<ステップX(10倍の数値)>,<ステップY(10倍の数値)>,
      ,<表示間隔のスタートカウント>,<表示開始>,<非表示開始>,<表示間隔>,<count>

スプライトの移動パラメータ設定(繰り返し)
%sprite.draw01.setCell4=<スタート位置X>,<スタート位置Y>,<ステップX(10倍の数値)>,<ステップY(10倍の数値)>,<リピート回数>

スムースにスクロール(追加していく)
%sprite.draw01.setCell5=<startX>,<startY>,<移動量X>,<移動量X>

スムースにスクロール(番号指定)
%sprite.draw01.setCell5Rec=<number>,<startX>,<startY>,<移動量X>,<移動量X>

スプライトのループ回数
%sprite.draw01.loopcount=40

スプライトの表示(ループ)
%sprite.draw01.loop

スプライトの表示(継続ループ)
%sprite.draw01.ContinueLoop

スプライトの現在の表示
%sprite.draw01.DrawNow

スプライトのセルの表示
%sprite.draw01.setCellON=<番号>

スプライトのセルの非表示
%sprite.draw01.setCellOFF=<番号>

現在位置をコピー
%sprite.draw01.copyPosition=<コピー元の番号>,<コピー先の番号>

ステップを徐々にダウンする
%sprite.draw01.setStepDownON=<番号>,<ステップX(10倍の数値)>,<ステップY(10倍の数値)>

ステップを徐々にダウンをやめる
%sprite.draw01.setStepDownOFF=<番号>


スプライトのDDB消去
%sprite.DeleteDDB

スプライトの消去
%sprite.delete

スプライトの表示停止
%sprite.DISABLE

スプライトの表示停止解除
%sprite.ENABLE


----

一枚絵表示(高速かつ強力)

  %s=<bmp>

画面保持(スクリーンを一枚絵表示へ取り込みます)
  %HoldScreen

アニメーションセル

  %sel=<BG><,A01><,B01><,C01><,D01><,E01>

  BGとA~Eセルまでを重ねて表示する。
  B~Eセルまでは省略可能。

  BG.BMPはフルカラー
  A~E.BMPは256色カラー

  【例1】
    %sel=BG,A01,b01,c01,d01,e01
    %sel=BG,A01,b01,c01,d02,e01
    %sel=BG,A01,b01,c01,d03,e01
    %sel=BG,A01,b01,c01,d04,e01
    %sel=BG,A01,b01,c01,d05,e01
    %sel=BG,A01,b01,c01,d06,e01
    %sel=BG,A01,b01,c01,d07,e01
    %sel=BG,A01,b01,c01,d08,e01
    %sel=BG,A01,b01,c01,d09,e01
    %sel=BG,A01,b02,c01(1),d10(1),e01
    %sel=BG,A01,b03,c01(2),d11(2),e01
    %sel=BG,A01,b04,c01(3),d11(3),e01
    %sel=BG,A01,b05,c01(4),d11(4),e01
    %sel=BG,A01,b06,c01(5),d11(5),e01

  カッコの中の数字を指定することにより上へスライドさせられる。

  【例2】

    %sel=c007a_bg,c007a_a1(-8,8),c007a_b1(-24,8),c007a_c1(-58,34),c007a_d1(0,16)

  カッコの中の数字を2個指定することによりX方向,Y方向へスライドさせられる。

アニメーションデータエリア削除(メモリ不足を解消するためのものです)
 %selDelete

フルカラーデータの透明色の指定 / 透明色を座標で指定できる。(デフォルトは左下を指定している)

  %ColorTruePoint=<X座標>,<Y座標>

フルカラーデータの透明色の指定 / 透明色を指定

  %ColorTrueRGB=<赤>,<緑>,<青>

フルカラーデータの透明色の指定の解除

  %ColorTrueOFF

フルカラーデータのドットの色を調べる

 %GetColor=<セルの番号>,<X座標>,<Y座標>

リゾルブのON

  %rizolubON

  コマンド%sel=BG,A01,A02の二番目からの絵をリゾルブさせる。
  (%selToFilm=も同様です)

  例)

    %rizolubON
    %riz=10,40,50,100,3,18
    %sel=c210_bg,c210_a1,c210_a2,c210_b01,c210_c1,c210_d1,c210_d2
    %rizolubOFF


リゾルブの割合

  %riz=<割合>,...

  割合が0から100までの値:混合%  (影、水面の表現)
  割合が0から-100までの値:加算% (湯気や靄の表現)


リゾルブのOFF

  %rizolubOFF

アニメーションセルを高速アニメーションセルへ取り込む

  %selCreate=<BG><,A01><,B01><,C01><,D01><,E01>


アニメーションセルを高速アニメーションセルへ取り込む

  %selToFilm=<BG><,A01><,B01><,C01><,D01><,E01>


[削除] アニメーションセルの保存
[削除]  %selSave=<ファイル名>
[削除]  直前の%sel=によって重ね合わせられたセルをファイルに書き込む

アニメーションセル+背景の保存

  %selFullSave=<ファイル名>
  直前の%sel=によって重ね合わせられたセルと背景のフルカラーデータをファイルに書き込む

アニメーションセル(256色BMPのみ高速版)

  %sel2=<A01>

高速アニメーションセル

  取り込み
  %selSpeed.Create=<ファイル名>

  アニメーションセル(%sel)からの取り込み
  %selSpeed.CreateSel

  全てクリア
  %selSpeed.DeleteAll

 連続表示
  %selSpeed.Draw

 一枚の絵を表示
  %selSpeed.Draw=<セル番号>

 ループ表示
  %selSpeed.Loop=<カウンタ>

 連続表示のタイマーセット 
  %selSpeed.Timer=<1/100秒>
 
  スクロール設定
  %selSpeed.Scroll.Set=<画面サイズX>,<画面サイズY>, <ステップX>,<ステップY>, <スタートX>,<スタートY>
  スクロール絵番号
  %selSpeed.Scroll.Number=<取り込み絵の番号>
  スクロール
  %selSpeed.Scroll=<スクロール回数>
  全スクロール
  %selSpeed.Scroll
 スクロール表示のタイマーセット 
  %selSpeed.Scroll.Timer=<1/100秒>
  スムーススクロールの設定(だんだん詰まってゆく/90ステップ(sin))
  %selSpeed.Scroll.SetE100mode=<画面サイズX>,<画面サイズY>, <移動数X>,<移動数Y>, <スタートX>,<スタートY>,<ステップ倍率>

  ぶれ設定
  %selSpeed.Bure.Set=<画面サイズX>,<画面サイズY>, <ステップX>,<ステップY>
  ぶれの絵番号
  %selSpeed.Bure.Number=<取り込み絵の番号>
  ぶれモード
  %selSpeed.Bure.Mode=<0=減衰タイプ,1=連続タイプ>
  ぶれ回数
  %selSpeed.Bure.Count=<ぶれ回数>
 ぶれのタイマーセット 
  %selSpeed.Bure.Timer=<1/100秒>
  ぶれ
  %selSpeed.Bure

例) 注意:Set,Mode,Countの順番を守って下さい。
%selSpeed.Bure.Set=740,400,0,20
%selSpeed.Bure.Mode=1
%selSpeed.Bure.Count=100


☆☆☆☆☆☆☆

『複数のクリエイトの使用例』

  %selSpeed.Create=C004
  %selSpeed.Create=C005
  %selSpeed.Create=C006
  %timer.delta=277
  %selSpeed.Scroll.Number=0
  %selSpeed.Scroll.Set=740,400,100,0,0,0
  %sound.play=004
  %selSpeed.Scroll
  %timer.delta=50
  %sound.wait
  %selSpeed.Scroll.Number=1
  %selSpeed.Scroll.Set=740,400,-100,0,329,0
  %sound.play=005
  %selSpeed.Scroll
  %timer.delta=50
  %sound.wait
  %selSpeed.Scroll.Number=2
  %selSpeed.Scroll.Set=740,400,0,100,0,0
  %sound.play=006
  %selSpeed.Scroll
  %timer.delta=50
  %sound.wait
  %selSpeed.DeleteAll


☆☆☆☆☆☆☆

『ぶれとタイマーの効果的な使用例』

%selSpeed.Create=c158
%selSpeed.Bure.Set=740,400,0,2
%selSpeed.Bure.Mode=1
%selSpeed.Bure.Count=80
%selSpeed.Bure.Timer=6
%sound.play=158
%timer.start
%timer.loopcut.wait=271                 2.71secでぶれを抜ける
%selSpeed.Bure
%face=4,マナ
マナ「知らない人の家に行くの、」1
%timer.loopcut.wait=610                 6.10secでぶれを抜ける
%selSpeed.Bure
マナ「恐いな」1
%timer.loopcut.wait=775                 7.75secでぶれでこのシーンの終わり
%selSpeed.Bure
%faceclose=4
%timer.loopcut.wait.off
%selSpeed.DeleteAll

☆☆☆☆☆☆☆

『時間割り込みによる絵のスクロール』

システムへの過負荷を押さえるため %film.SpeedThreadPictuer との同時使用は避ける。

  割り込み処理へのスクロールのセット
   %selSpeed.ThreadScrollSet
  スクロール開始
   %selSpeed.ThreadScrollON
  スクロール停止
   %selSpeed.ThreadScrollOFF

  時間割り込み回数
   イベント時間間隔は10ミリ秒で、それの何分の一かを設定。デフォルトは4。
   %selSpeed.ThreadScrollTimer=<イベント時間間隔>

例
 たとえば、このような処理は

  %selSpeed.Timer=8
  %selSpeed.Create=C006
  %selSpeed.Scroll.Number=0
  %selSpeed.Scroll.Set=740,400,0,40,0,0
  %selSpeed.Scroll
  %selSpeed.DeleteAll
 
 このようにする

 %selSpeed.Create=C006
 %selSpeed.Scroll.Number=0
 %selSpeed.Scroll.Set=740,400,0,40,0,0
 %selSpeed.ThreadScrollSet
 %selSpeed.ThreadScrollON
 ;スクロール中
 %selSpeed.ThreadScrollOFF
 %selSpeed.DeleteAll

☆☆☆☆☆☆☆

『時間割り込みによる絵のぶれ』

システムへの過負荷を押さえるため %film.SpeedThreadPictuer との同時使用は避ける。


  割り込み処理へのぶれのセット
   %selSpeed.ThreadBureSet
  ぶれ開始
   %selSpeed.ThreadBureON
  ぶれ停止
   %selSpeed.ThreadBureOFF

  時間割り込み回数
   イベント時間間隔は10ミリ秒で、それの何分の一かを設定。デフォルトは4。
   %selSpeed.ThreadBureTimer=<イベント時間間隔>

  (%selSpeed.Bure.Modeは 1=連続タイプ のみ対応)

例
 たとえば、このような処理は

  %selSpeed.Create=c186
 %selSpeed.Bure.Number=0
 %selSpeed.Bure.Set=740,400,0,2
 %selSpeed.Bure
 %selSpeed.DeleteAll
 
 このようにする

  %selSpeed.Create=c186
 %selSpeed.Bure.Number=0
 %selSpeed.Bure.Set=740,400,0,2
 %selSpeed.ThreadBureSet
 %selSpeed.ThreadBureON
 ;画面動(ぶれ)中
 %selSpeed.ThreadBureOFF
 %selSpeed.DeleteAll

----
  
{削除}スクロールセル
{削除}
{削除}  %selScroll=<ファイル名>, <画面サイズX>,<画面サイズY>, <ステップX>,<ステップY>, <スタートX>,<スタートY>
{削除}  %selScrollNext=<スクロール回数>
{削除}
{削除} 【例】
{削除}    %selScroll=C_023,740,400,0,20,0,0
{削除}    %selScrollNext=26

黒い画面(塗りつぶし)
 %black

黒い画面(こちらを推奨)
  %qblack
白い画面
  %qwhite

絵の上下4ドットを黒く塗りつぶす
  %y8black



フェイスウインドウ

%face=<ウインドウ番号>,<フェイス名>,<ファイル名>

フェイスウインドウ(無線交信)

%face2=<ウインドウ番号>,<フェイス名>,<ファイル名>

%face=0,シンジ,シンジ
%face=1,アスカ
%face=2,ケンスケ
%face=3,レイ
%face=4,レイ      // 4 はテキストのみのウインドウ
%facecloseAll

%faceclose=<ウインドウ番号>
%facecloseAll

フェイスの顔交換
%faceX=<ウインドウ番号>,<ファイル名>

%faceTextCurrent=<フェイス名>
%faceTextPrint=<テキスト文字列>

%faceFormation=< 1=通常, 2=1対1, 3=ひとり, 4=一同, 5=メイン画面と1対1 >

%event=<ファイル名>
%eventclose
    
%userwait   //クリック待ち


コマンド(選択付き)
%cmnd.clear
%cmnd.look.1=霧島さんを見る
%cmnd.talk.1=ミサトさん
%cmnd.move.1=一丁目一番,  西  
%cmnd.move.2=一丁目四番,  東  
%cmnd.system=システム
%cmnd.wait

コマンド(選択肢無し/混合も可能)
%cmnd.clear
%cmnd.look=霧島さんを見る
%cmnd.talk=ミサトさん
%cmnd.move=一丁目一番
%cmnd.system=システム
%cmnd.wait

コマンド(選択肢無し/関数呼び出し・returnで戻ってくる/混合も可能)
%cmnd.clear
%cmnd.look.call=霧島さんを見る
%cmnd.talk.call=ミサトさん
%cmnd.move.call=一丁目一番
%cmnd.system.call=システム
%cmnd.wait

コマンド(選択肢付き/関数呼び出し・returnで戻ってくる/混合も可能)
%cmnd.clear
%cmnd.look.call.1=霧島さんを見る
%cmnd.look.call.2=鏡を見る
%cmnd.talk.call.1=ミサトさん
%cmnd.talk.call.2=加持さん
%cmnd.talk.call.3=アスカ
%cmnd.move.call=一丁目一番
%cmnd.system.call=システム
%cmnd.wait

コマンドの生成と削除(メモリーを節約したい場合)
%cmnd.new
%cmnd.delete

第二ボタンが「考える」に変わる。
%cmnd.new2

選択(選択付き)

%select.clear
%select.set=あの字へ,あああ
%select.set=いの字へ,いいい
%select.set=うの字へ,ううう
%select.set=えの字へ,えええ
%select.set=おの字へ,おおお
%select.wait

選択(選択肢無し/混合も可能)

%select.clear
%select.set=あああ
%select.set=いいい
%select.set=ううう
%select.set=えええ
%select.set=おおお
%select.wait








選択結果は次のコマンドに反映される。

@1 1ばんです
@2 2ばんです
@3 3ばんです
@4 4ばんです

wwwww.txt#

Contains fragments of source code.

        mylist<MyString> ar;
        ar.append( new MyString(6) );
        ar.append( new MyString(6) );

        MyString ss( s.String + 6 + 11 );
        mstrchk().GetArrey( ss, ar );
            
        if( midiOn )
        {
            MIDIAUDIO->Stop();
        }
        midiOn=TRUE;

        int rec=atoi( ar[0]->String );

        if(rec!=0)
        {
            MIDIAUDIO->Play( rec );
        }
        else
        {
            MIDIAUDIO->Play( ar[0]->String );
        }

        if( ar[1]->Val() > 0 )
        {
            MIDIAUDIO->SetLoopNow( ar[1]->Val() );
        }
//      InvalidateRect(hWnd, NULL, TRUE);ちかちかする
#include "pr.h"
static int cnt=0;
PR pr;




%s=c141
%uw
#ava011.txt

%uw
%uw
%uw
%uw

#ava022.txt


*ああああああ


%selSpeed.Create=C067
%selSpeed.Scroll.Number=0
%selSpeed.Scroll.Set=740,400,-8,0,232,0
;;%selSpeed.Scroll.Timer=8

%selSpeed.ThreadScrollSet
%selSpeed.ThreadScrollTimer=8

%selSpeed.Scroll=1

%sound.play=067
%timer.start

%timer.wait=60


%timer.wait=75
%face=0,加持,kaji1b
加持「$a23b001 彼女から貰ったペンダントだね。」1

%selSpeed.ThreadScrollON

%timer.wait=147

%selSpeed.ThreadScrollOFF
%selSpeed.DeleteAll
%s=c067_2

%faceclose=0

%uw
goto ああああああ


//  if( libopenCreate( "e:\\disk3\\data" ) )
//  if( libopenCreate( "data" ) )
//  {
//      coError().ErrorLoad( "data.txt,data.dat" );
//  }

//INIファイルからの読み込み

//  {
//      MyString lpszFilename( "adv.ini" );
//      MyString lpReturnedString(128);
//
//      GetPrivateProfileString(
//          "files",                    // points to section name 
//          "library01",                // points to key name 
//          "",                         // points to default string 
//          lpReturnedString.String,    // points to destination buffer 
//          128,                        // size of destination buffer 
//          lpszFilename.String );      // points to initialization filename 
//
//      if( lpReturnedString.Length() != 0 )
//      {
//          if( libopenCreate( lpReturnedString.String ) )
//          {   
//              coError().ErrorLoad( lpReturnedString.String );
//          }
//      }
//
//      //flag_debug_bmp_filedraw;  //bmpld01.cpp,bmpld03.cppで使用
//
//      if( GetPrivateProfileInt( "debug", "flag_debug_bmp_filedraw", 0, lpszFilename.String ) != 0 )
//      {
//          flag_debug_bmp_filedraw = TRUE;
//      }
//      else
//      {
//          flag_debug_bmp_filedraw = FALSE;
//      }
//  }
//  if( libopenCreate( "d:\\disk3\\data" ) )



%s=C051

%faceFormation=4
%face=0,ミサト,misato2
%face=1,アスカ,asuka8b
%face=2,リツコ,ritsuko1
%face=3,レイ,rei2b
%face=5,一同
一同「$a22b087 こいわずらい?」1
%uw
%uw
%uw
%uw
%uw
%uw
%uw
%uw
%uw
%uw
%uw
%uw
%facecloseAll


    DWORD  dwExitCode;
    do
    {
        GetExitCodeThread( hThread, &dwExitCode );

    } while( dwExitCode == STILL_ACTIVE );


%sprite.new
%sprite.loadCOPY=moon
%sprite.loadPAINT=staff_cast
%sprite.loadPAINT=staff_art
%sprite.loadPAINT=staff_prod
%sprite.loadPAINT=staff_prod2
%sprite.loadPAINT=staff_cg
%sprite.loadPAINT=staff_sound
%sprite.loadPAINT=staff_prip
%sprite.loadPAINT=staff_anno
%sprite.loadPAINT=staff_takeda
%sprite.loadPAINT=staff_hashi
%sprite.loadPAINT=staff_copy

%sprite.CreateDDB



*スタッフロール再生

%sprite.draw01.setCell=0,0,0,-10,9999

%sprite.draw01.setCell=90,400,0,-30,9999
%sprite.draw01.setCell=145,2200,0,-30,9999
%sprite.draw01.setCell=170,2760,0,-30,9999
%sprite.draw01.setCell=170,4562,0,-30,9999
%sprite.draw01.setCell=170,5250,0,-30,9999
%sprite.draw01.setCell=170,6120,0,-30,9999
%sprite.draw01.setCell=170,7430,0,-30,9999
%sprite.draw01.setCell=170,8200,0,-30,9999
%sprite.draw01.setCell=170,8600,0,-30,9999
%sprite.draw01.setCell=170,9000,0,-30,9999
%sprite.draw01.setCell=120,9400,0,-30,9999

%sprite.Timer=8

%sprite.draw01.loopcount=500
%sprite.draw01.loop

%sprite.draw01.setCellRec=0,0,0,0,0,9999

%sprite.draw01.loopcount=2586
%sprite.draw01.ContinueLoop

%sprite.DeleteDDB
%sprite.delete

%userwait

#終了


;memcheck.point
;*下駄箱・選択
;memcheck.dump
;%uw
;%face=2,ケンスケ,kensuke6
;;%faceclose=2
;goto 下駄箱・選択
;%uw
;%test.cowindowopen
;%uw
;%uw
;%test.cowindowclose
;%uw
;%uw
;%uw







_CrtMemState s1, s2, s3;

_RPT1( _CRT_WARN, "\n\n%s:\n**************************************************************************\n", "" );

 void *p1, *p2;
 
//_CrtMemDumpAllObjectsSince( NULL );

_CrtMemCheckpoint( &s1 );
 p1 = malloc( 34 );
 p2 = malloc( 34 );
_CrtMemCheckpoint( &s2 );
  if ( _CrtMemDifference( &s3, &s1, &s2 ) )
      _CrtMemDumpStatistics( &s3 );
_RPT1( _CRT_WARN, "\n\n%s:\n*******************************************************************malloc\n", "" );
  if ( _CrtMemDifference( &s3, &s1, &s2 ) )
      _CrtMemDumpStatistics( &s3 );

  free(p1);
s1=s2;
_CrtMemCheckpoint( &s2 );
  _RPT1( _CRT_WARN, "\n\n%s:\n****************************************************************free1\n", "" );
  if ( _CrtMemDifference( &s3, &s1, &s2 ) )
      _CrtMemDumpStatistics( &s3 );
  free(p2);
s1=s2;
_CrtMemCheckpoint( &s2 );
  _RPT1( _CRT_WARN, "\n\n%s:\n****************************************************************free2\n", "" );
  if ( _CrtMemDifference( &s3, &s1, &s2 ) )
      _CrtMemDumpStatistics( &s3 );



----

    if( ext->CompCaps2( "BMP" ) != 0
    &&  ext->CompCaps2( "BP2" ) != 0 ) return FALSE;

    // CLOSE_N  BMP,CLOSE_O  BMP,CLOSE_T  BMP

    if( name->CompCaps2( "CLOSE_" )==0 )  return TRUE;

    // DEVIC_N  BMP,DEVIC_O  BMP,DEVIC_T  BMP

    if( name->CompCaps2( "DEVIC_" )==0 )  return TRUE;

    // DISCA_N  BMP,DISCA_O  BMP,DISCA_T  BMP

    if( name->CompCaps2( "DISCA_" )==0 )  return TRUE;

    if( name->CompCaps2( "FRAME800" )==0 )return TRUE;

    // LED      BMP
    // LED0_N   BMP - LED3_T   BMP

    if( name->CompCaps2( "LED" )==0 )   return TRUE;

    // LOAD0_N  BMP - LOAD3_T  BMP

    if( name->CompCaps2( "LOAD" )==0 ) return TRUE;

    // LOOK_N   BMP - LOOK_T   BMP

    if( name->CompCaps2( "LOOK_" )==0 ) return TRUE;

    // MOVE_N   BMP - MOVE_T   BMP

    if( name->CompCaps2( "MOVE_" )==0 ) return TRUE;

    // REC0_N   BMP - REC3_T   BMP

    if( name->CompCaps2( "REC" )==0 ) return TRUE;

    // S1024_N  BMP - SYSTM_T  BMP

    if( name->CompCaps2( "S" )==0 )     return TRUE;

    // TALK_N   BMP - TALK_T   BMP

    if( name->CompCaps2( "TALK_" )==0 ) return TRUE;

    // TEXTBAC2 BMP - TEXTBACK BMP
    // TEXT_N   BMP - TEXT_T   BMP

    if( name->CompCaps2( "TEXT" )==0 )  return TRUE;

    // THINK_N  BMP - THINK_T  BMP

    if( name->CompCaps2( "THINK" )==0 ) return TRUE;

    // VOID0_N  BMP - VOID3_T  BMP

    if( name->CompCaps2( "VOID" )==0 )  return TRUE;

    // WAK21    BMP - WAKU8    BMP

    if( name->CompCaps2( "WAK" )==0 )  return TRUE;



//  //Aoba1.BMP - Aoba2.BMP
//  if( name->CompCaps2( "Aoba" )==0 )  return DIR_FACE;
//  //ASUKA1a.BMP - asuka16.BMP, asuka_b3.BMP
//  if( name->CompCaps2( "ASUKA" )==0 )  return DIR_FACE;
//  //Fishman.BMP
//  if( name->CompCaps2( "Fishman" )==0 )  return DIR_FACE;
//  //fuyuduk1.BMP - fuyuduk2.BMP
//  if( name->CompCaps2( "fuyuduk" )==0 )  return DIR_FACE;
//  //gendo.BMP
//  if( name->CompCaps2( "gendo" )==0 )  return DIR_FACE;
//  //Hikari1.BMP - Hikari5.BMP
//  if( name->CompCaps2( "Hikari" )==0 )  return DIR_FACE;
//  //Hyuga1.BMP - Hyuga2.BMP
//  if( name->CompCaps2( "Hyuga" )==0 )  return DIR_FACE;
//  //Kaji1a.BMP - Kaji3b.BMP
//  if( name->CompCaps2( "Kaji" )==0 )  return DIR_FACE;
//  //Kensuke1.BMP - Kensuke7.BMP
//  if( name->CompCaps2( "Kensuke" )==0 )  return DIR_FACE;
//  //Kuro1.BMP - Kuro2.BMP
//  if( name->CompCaps2( "Kuro" )==0 )  return DIR_FACE;
//  //MANA1A.BMP - MANA9.BMP
//  if( name->CompCaps2( "MANA" )==0 )  return DIR_FACE;
//  //maya1.BMP - maya2.BMP
//  if( name->CompCaps2( "maya" )==0 )  return DIR_FACE;
//  //Misato1a.BMP - Misato10.BMP
//  if( name->CompCaps2( "Misato" )==0 )  return DIR_FACE;
//  //musashi.BMP
//  if( name->CompCaps2( "musashi" )==0 )  return DIR_FACE;
//  //Penpen1.BMP - Penpen3.BMP
//  if( name->CompCaps2( "Penpen" )==0 )  return DIR_FACE;
//  //Rei1a.BMP - Rei2b.BMP
//  if( name->CompCaps2( "Rei" )==0 )  return DIR_FACE;
//  //ritsuko1.BMP - ritsuko4b.BMP
//  if( name->CompCaps2( "ritsuko" )==0 )  return DIR_FACE;
//  //sinji1a.BMP - sinji17d.BMP, sinji_z3.BMP
//  if( name->CompCaps2( "sinji" )==0 )  return DIR_FACE;
//  //Teacher.BMP
//  if( name->CompCaps2( "Teacher" )==0 )  return DIR_FACE;
//  //Tetudou.BMP
//  if( name->CompCaps2( "Tetudou" )==0 )  return DIR_FACE;
//  //Toji1.BMP - Toji6.BMP
//  if( name->CompCaps2( "Toji" )==0 )  return DIR_FACE;
//  //Tokunaga.BMP
//  if( name->CompCaps2( "Tokunaga" )==0 )  return DIR_FACE;
//  // Un1.BMP - Un2.BMP
//  if( name->CompCaps2( "un" )==0 )  return DIR_FACE;
//
//  return -1;

;;  %film.new
;;  %film.load=c007a
;;  %film.OFF
;;  %film.SpeedPlayDataMaking
;;  %film.SpeedThreadPictuer
;;  %timer.delta=90
;;  %sound.play=007x
;;  %timer.start
;;  %film.ON
;;  %sel=c007a_bg
;;  %film.BGEnable
;;  %film.SpeedThreadPicON
;;  %uw
;;
;;  %film.SpeedThreadPicOFF
;;  %film.SpeedPlayDataDelete
;;  %film.delete

*じゃんけーん

%film.new
%film.load=c046
%film.OFF
%film.SpeedPlayDataMaking
%film.load=c046_2
%film.SpeedPlayDataMaking
%film.load=c047_1
%film.SpeedPlayDataMaking
%film.load=c047_2
%film.SpeedPlayDataMaking


○同・アスカのプラグの中
%timer.wait=7600
%sel=C045
%face=4,アスカ
アスカ「ジャン!・ケン!」1

%timer.wait=7790
%faceclose=4
%face=1,シンジ,sinji8b
シンジ(無線)「ポーン!」1
%timer.wait=7890
%faceclose=1




%film.SpeedNowCopyToSel=7
%selSpeed.Bure.Set=740,400,0,6
%selSpeed.Bure.Mode=0
%selSpeed.Bure.Timer=4
%selSpeed.Bure.Count=30

%selSpeed.Timer=8


○同・制御室
;模擬体の手のグーがガラス面に衝突。
;SE鈍い衝突音
;SE高圧ガラスがピシッ!

%sel=c046_bg
%film.BGEnable
%film.ON
%film.SpeedPlay=8
%sound.play=046-048
%timer.start
%selSpeed.Bure
%sel=c047_bg
%film.SpeedPlay=7
%film.SpeedDraw=14

;  SEピーピーアラーム

%timer.wait=430
%face=1,リツコ,リツコ
リツコ「アラーム、止めて!」1
%timer.wait=540
%face=0,マヤ,マヤ
マヤ「はい」1
%timer.wait=700
%facecloseAll
%face=2,ミサト,ミサト
ミサト「あのバカが・・・」1

;  SE船が軋むような音


;------------------

//      int f1=0;
//      int f2=0;
//      if( nowCount == ( maxCount / 2 ) )
//      {
//          if( locate10x.x < ( start.x + ( delta.x/2 ) ) *10 )
//          {
//              f1 = locate10x.x - ( ( start.x + ( delta.x/2 ) ) * 10 );
//              locate10x.x = ( start.x + ( delta.x/2 ) ) * 10 + f1;
//          }
//          if( locate10x.y < ( start.y + ( delta.y/2 ) ) *10 )
//          {
//              f2 = locate10x.y - ( ( start.y + ( delta.y/2 ) ) * 10 );
//              locate10x.y = ( start.y + ( delta.y/2 ) ) * 10 + f2;
//          }
//      }



;------------------

%sprite.draw01.loopcount=8
%sprite.draw01.loop

%sprite.draw01.setCellRec=7,220,80,-300,100,180
%sprite.draw01.setCellRec=8,220,80,-300,100,180

%sprite.draw01.loopcount=7
%sprite.draw01.CoutinueLoop

;%sprite.draw01.copyPosition=1,3
;%sprite.draw01.copyPosition=2,4
;%sprite.draw01.setCell2Rec=3,-40,60,180,20,0,2,180
;%sprite.draw01.setCell2Rec=4,-40,60,180,20,0,2,180
;%sprite.draw01.setCell2Rec=5,-40,60,180,20,1,2,180
;%sprite.draw01.setCell2Rec=6,-40,60,180,20,1,2,180

%sprite.draw01.setCell2Rec=1,-200,38,180,20,0,1,180
%sprite.draw01.setCell2Rec=2,-200,38,180,20,0,1,180

%sprite.draw01.setCellRec=7,220,80,-300,100,180
%sprite.draw01.setCellRec=8,220,80,-300,100,180
%sprite.draw01.loopcount=6
%sprite.draw01.CoutinueLoop


%sprite.draw01.setCell2Rec=1,-200,38,140,40,0,1,180
%sprite.draw01.setCell2Rec=2,-200,38,140,40,0,1,180

%sprite.draw01.setCellRec=7,220,80,-300,100,180
%sprite.draw01.setCellRec=8,220,80,-300,100,180
%sprite.draw01.loopcount=5
%sprite.draw01.CoutinueLoop


%sprite.draw01.setCellON=5
%sprite.draw01.setCellON=6

%sprite.draw01.copyPosition=1,3
%sprite.draw01.copyPosition=2,4
%sprite.draw01.setCell2Rec=1,-40,60,40,40,0,2,180
%sprite.draw01.setCell2Rec=2,-40,60,40,40,0,2,180
%sprite.draw01.setCell2Rec=3,-40,60,40,40,1,2,180
%sprite.draw01.setCell2Rec=4,-40,60,40,40,1,2,180

%sprite.draw01.setCellRec=7,220,80,-300,100,180
%sprite.draw01.setCellRec=8,220,80,-300,100,180
%sprite.draw01.loopcount=10
%sprite.draw01.CoutinueLoop


%sprite.DeleteDDB

%sprite.delete

;------------------

;%sprite.draw01.setCellRec=9,220,80,-160,100,180
;%sprite.draw01.setCellRec=10,220,80,-160,100,180
;%sprite.draw01.loopcount=4
;%sprite.draw01.CoutinueLoop
;%sprite.draw01.setCellRec=9,220,80,-200,100,180
;%sprite.draw01.setCellRec=10,220,80,-200,100,180
;%sprite.draw01.loopcount=4
;%sprite.draw01.CoutinueLoop

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
/////////////////////////////////////////////////////////
//  command sprite.
//
//  %sprite.new
//  %sprite.Timer=6
//
//  %sprite.loadCOPY=c185_bg
//  %sprite.loadAND=c185_b1m
//  %sprite.loadPAINT=c185_b1
//  %sprite.CreateDDB
//
//  %sprite.draw01.loopcount=40
//  %sprite.draw01.setCell=0,0,0,0,0
//  %sprite.draw01.setCell=-300,0,160,15,40
//  %sprite.draw01.setCell=-300,0,160,15,40
//  %sprite.draw01.loop
//
//  %sprite.DeleteDDB
//
//  %sprite.delete
// %sprite.draw01.setCell=<startX>,<startY>,<stepX*10>,<stepY*10>,<count>,<表示間隔のスタートカウント>,<表示間隔>
//
/////////////////////////////////////////////////////////

class SpriteTABLE
{
public:
    POINT start;
    POINT step;
    int   maxCount;
    int   nowCount;
    POINT locate;
    POINT locate10x;
    BOOL  flagEnd;

    int   LogicSw;

    int   ShowStart;
    int   ShowKankaku;
    int   ShowKanNow;

    SpriteTABLE()
    {
        start.x=0;
        start.y=0;
        step.x=0;
        step.y=0;
        maxCount=0;
        nowCount=0;
        locate.x=0;
        locate.y=0;
        locate10x.x=0;
        locate10x.y=0;
        flagEnd = FALSE;

        ShowStart=0;
        ShowKankaku=0;
        ShowKanNow=0;

        LogicSw = 1;
    };
    ~SpriteTABLE()
    {
    };
    void set( int sx, int sy, int stepX, int stepY, int cnt )
    {
        start.x = sx;
        start.y = sy;
        step.x = stepX;
        step.y = stepY;
        maxCount = cnt;
        LogicSw = 1;
    }
    void set2( int sx, int sy, int stepX, int stepY, int ShwStart, int ShwKankaku, int cnt )
    {
        start.x = sx;
        start.y = sy;
        step.x = stepX;
        step.y = stepY;
        maxCount = cnt;

        ShowStart   = ShwStart;
        ShowKankaku = ShwKankaku;
        ShowKanNow  = ShowStart;

        LogicSw = 2;
    }
    void loopStart()
    {
        locate = start;

        locate10x.x = start.x * 10;
        locate10x.y = start.y * 10;

        if( LogicSw == 2 )
        {
            ShowKanNow  = ShowStart;
        }

        nowCount = 0;

        flagEnd = FALSE;
    }
    BOOL ShowOnOff()
    {
        if( LogicSw == 2 )
        {
            if( ShowKanNow == 0 )
                return TRUE;
            else 
                return FALSE;
        }
        return TRUE;
    }
    BOOL next()
    {
        if( flagEnd )
            return FALSE;
        nowCount++;
        if(nowCount>maxCount)
        {
            flagEnd = TRUE;
            return FALSE;
        }

        locate10x.x += step.x;
        locate10x.y += step.y;

        locate.x = locate10x.x / 10;
        locate.y = locate10x.y / 10;

        if( LogicSw == 2 )
        {
            ShowKanNow++;
            if( ShowKanNow >= ShowKankaku )
            {
                ShowKanNow = 0;
            }
        }
        return TRUE;
    }
};


mylist<SpriteTABLE> sprtbl;
int  sprLoopCount=0;

int bscrp05::MyCommandSprite( MyString& s )
{
    if( s.Comp2("new",8) == 0 )
    {
        if( flagSpriteOn )
        {
            return 2;
        }
        SpriteX = new anime04( work65 );
        SpriteX->CgDirectory( (Anime02->GetCgDirectory())->String );
        SpriteX->SetPictuerLocation( Anime02->GetPictuerLocation() );
        SpriteX->CreateBUTAI( 740, 400 );
        flagSpriteOn = TRUE;
        sprLoopCount=0;
    }
    else if( s.Comp2("delete",8) == 0 )
    {
        if( flagSpriteOn == FALSE ) return 2;

        delete SpriteX;

        sprtbl.DeleteAll;

        flagSpriteOn = FALSE;
    }
    else if( s.Comp2("Timer=",8) == 0 )
    {
        int n=atoi( s.String+8+6 );
        if (n<0) n=0;
        else if (n>100) n=100;
        SpriteLoopTimer = n;
    }
    else if( s.Comp2("loadCOPY=",8) == 0 )
    {               //123456789
        if( flagSpriteOn == FALSE ) return 2;

        SpriteX->LoadAdd( s.String+8+9, SRCCOPY );
    }
    else if( s.Comp2("loadAND=",8) == 0 )
    {               //12345678
        if( flagSpriteOn == FALSE ) return 2;

        SpriteX->LoadAdd( s.String+8+8, SRCAND );
    }
    else if( s.Comp2("loadPAINT=",8) == 0 )
    {               //1234567890
        if( flagSpriteOn == FALSE ) return 2;

        SpriteX->LoadAdd( s.String+8+10, SRCPAINT );
    }
    else if( s.Comp2("CreateDDB",8) == 0 )
    {
        if( flagSpriteOn == FALSE ) return 2;

        HDC DC = GetDC( hWndMain );
        SpriteX->CreateDDB( DC );
        ReleaseDC( hWndMain, DC );
    }
    else if( s.Comp2("DeleteDDB",8) == 0 )
    {
        if( flagSpriteOn == FALSE ) return 2;

        SpriteX->DeleteDDB();
    }
    else if( s.Comp2("draw01.",8) == 0 )
    {               //1234567
        if( s.Comp2("setCell=",8+7) == 0 )
        {          //12345678
            // %sprite.draw01.setCell=<startX>,<startY>,<stepX*10>,<stepY*10>,<count>
    
            sprtbl.append( new SpriteTABLE );

            int n[5];
            MyString ss( s.String + 8+7+8 );
            mstrchk().GetArrey3( ss, n, 5 );

            sprtbl.Obj()->set( n[0],n[1],n[2],n[3],n[4] );
        }
        else if( s.Comp2("setCell2=",8+7) == 0 )
        {               //123456789
            // %sprite.draw01.setCell=<startX>,<startY>,<stepX*10>,<stepY*10>,<表示間隔のスタートカウント>,<表示間隔>,<count>

            sprtbl.append( new SpriteTABLE );

            int n[7];
            MyString ss( s.String + 8+7+9 );
            mstrchk().GetArrey3( ss, n, 7 );

            sprtbl.Obj()->set2( n[0],n[1],n[2],n[3],n[4],n[5],n[6] );
        }
        else if( s.Comp2("loopcount=",8+7) == 0 )
        {               //1234567890
            sprLoopCount = atoi( s.String+8+7+10 );
        }
        else if( s.Comp2("loop",8+7) == 0 )
        {
            HDC DC = GetDC( hWndMain );

            if( sprtbl.top() == 0 ) return 0;
            do
            {
                sprtbl.Obj()->loopStart();

            } while( sprtbl.next() != 0 );

            MyTimerSet( TIMERNUMBER, 0 );

            int j;
            for(int i=0;i<sprLoopCount;i++)
            {
                if( sprtbl.top() == 0 ) return 0;
                j=0;
                do
                {
//                  SpriteX->BookLocate( sprtbl.Obj()->locate, j );
                    SpriteX->BookLocateAndONOFF(
                        sprtbl.Obj()->locate,
                        sprtbl.Obj()->ShowOnOff(), j );

                    sprtbl.Obj()->next();
                    j++;

                } while( sprtbl.next() != 0 );

                while( MyTimer( TIMERNUMBER ) ){}
                MyTimerSet( TIMERNUMBER, SpriteLoopTimer );
        
                SpriteX->Build();
                SpriteX->Paint(DC);
            }
            ReleaseDC( hWndMain, DC );
        }
    }

    return 0;
}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
void anime04::Build00()
{
    if( Pictuer.top() == 0 )
        return;
    HDC DC = GetDC( hWndMain );

    do
    {
        if( Pictuer.Obj()->flagON )
        {

            if( Pictuer.Obj()->RasterOperation == SRCCOPY )
            {
                Pictuer.Obj()->Bmp->GetImage( work65,
                    Pictuer.Obj()->LocatePoint.x,
                    Pictuer.Obj()->LocatePoint.y,
                    BUTAI->Size().x,
                    BUTAI->Size().y
                    );
                BUTAI->PutImage( work65 );
            }
            else if( Pictuer.Obj()->RasterOperation == SRCPAINT )
            {
                Pictuer.Obj()->Bmp->GetImage( work65 );
                BUTAI->PutImageIntoTrue( work65,
                    Pictuer.Obj()->LocatePoint.x,
                    Pictuer.Obj()->LocatePoint.y,
                    Pictuer.Obj()->Bmp->Size().x,
                    Pictuer.Obj()->Bmp->Size().y
                    );
            }
        }

    } while( Pictuer.next() != 0 );

//  BUTAI->Draw( DC, PictuerLocation );

    ReleaseDC( hWndMain, DC );
}


//Pictuer.Obj()->Bmp->speedDraw( DC, Pictuer.Obj()->LocatePoint );
//BitBlt( Pictuer.Obj()->Bmp->speedDrawDeviceContext(), 0, 0, 100, 100, BUTAI->speedDrawDeviceContext(), 100, 50, SRCCOPY );
            



//  do
//  {
//      if( Pictuer.Obj()->flagON )
//      {
//          Pictuer.Obj()->Bmp->speedDraw( BUTAI->speedDrawDeviceContext(), Pictuer.Obj()->LocatePoint );
//          BUTAI->Draw( DC, PictuerLocation );
//          Pictuer.Obj()->Bmp->speedDrawStretchBlt( BUTAI->speedDrawDeviceContext(), Pictuer.Obj()->LocatePoint );
//          BUTAI->Draw( DC, PictuerLocation );


Pictuer[0];
Pictuer.Obj()->Bmp->speedDrawRasterOperation( Pictuer.Obj()->RasterOperation );
Pictuer.Obj()->Bmp->speedDraw( DC, Pictuer.Obj()->LocatePoint );
/*
Pictuer[1];
HBITMAP maskH=Pictuer.Obj()->Bmp->speedDrawhDIBitmap();
Pictuer[2];
Pictuer.Obj()->Bmp->speedDrawRasterOperation( Pictuer.Obj()->RasterOperation );
Pictuer.Obj()->Bmp->speedDrawMaskBlt( DC, maskH, Pictuer.Obj()->LocatePoint );
*/

Pictuer[1];
Pictuer.Obj()->Bmp->speedDrawRasterOperation( Pictuer.Obj()->RasterOperation );
Pictuer.Obj()->Bmp->speedDraw( DC, Pictuer.Obj()->LocatePoint );

Pictuer[2];
Pictuer.Obj()->Bmp->speedDrawRasterOperation( Pictuer.Obj()->RasterOperation );
Pictuer.Obj()->Bmp->speedDraw( DC, Pictuer.Obj()->LocatePoint );

//  Pictuer.Obj()->Bmp->speedDraw( DC, Pictuer.Obj()->LocatePoint );
//  Pictuer.Obj()->Bmp->speedDraw( DC, Pictuer.Obj()->LocatePoint );
//      }
//  } while( Pictuer.next() != 0 );

    {
        BmpLoad03 *bmp1;
        BmpLoad03 *bmp2;
        BmpLoad03 *bmp3;

        bmp1 = new BmpLoad03();
        bmp2 = new BmpLoad03();
        bmp3 = new BmpLoad03();

        bmp1->Load("c:\\エヴァ絵コンテ\\c185_bg");
        bmp2->Load("c:\\エヴァ絵コンテ\\c185_b1");
        bmp3->Load("c:\\エヴァ絵コンテ\\c185_b2");

        HDC DC = GetDC( hWndMain );

        bmp1->Draw( DC,0,0);
        bmp2->Draw( DC,0,0);
        bmp3->Draw( DC,0,0);
        bmp1->Draw( DC,0,0);
        bmp2->Draw( DC,0,0);
        bmp3->Draw( DC,0,0);
        bmp1->Draw( DC,0,0);
        bmp2->Draw( DC,0,0);
        bmp3->Draw( DC,0,0);
        bmp1->Draw( DC,0,0);
        bmp2->Draw( DC,0,0);
        bmp3->Draw( DC,0,0);
        bmp1->Draw( DC,0,0);
        bmp2->Draw( DC,0,0);
        bmp3->Draw( DC,0,0);
        bmp1->Draw( DC,0,0);
        bmp2->Draw( DC,0,0);
        bmp3->Draw( DC,0,0);
        bmp1->Draw( DC,0,0);
        bmp2->Draw( DC,0,0);
        bmp3->Draw( DC,0,0);
        bmp1->Draw( DC,0,0);
        bmp2->Draw( DC,0,0);
        bmp3->Draw( DC,0,0);

        ReleaseDC( hWndMain, DC );
        delete bmp1;
        delete bmp2;
        delete bmp3;
        return 0;
    }
/////////////
PR pr;
pr.prs( "datlen",(int)datlen );
pr.prs( "datlen",(int)datlen );
pr.prs( "datlen",(int)datlen );
pr.prs( "WidthX",(int)WidthX );
pr.prs( "lpBitMapInfo->bmiHeader.biWidth=", lpBitMapInfo->bmiHeader.biWidth );
pr.prs( "lpBitMapInfo->bmiHeader.biHeight=", lpBitMapInfo->bmiHeader.biHeight );


    int Load2( char *fl, POINT size, char huge *work65 )
    {
        BmpLoad01   bmpwork;

        if( bmpwork.Load( MyString( flDirectory.String, fl ).String ) )
            return 1;

        bmp->Create( size );

        bmpwork.GetPalette( work65 );
        bmp->PutPalette( work65 );

        bmpwork.GetImage( work65 );
        bmp->FillImage( work65, bmpwork.Size() );

        return 0;
    }

;(w.wav)
;%dirtx=c:\msdev\projects\adv1\
;%dirtx=c:\エヴァンゲリオン\eva3\
;#ava01.txt
;%faceTextCurrent=シンジ
;%faceTextPrint=ああああああああああああ

/////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////
 
 
 
/* Obtain the system directory name. */ 
 
GetSystemDirectory((LPSTR)szDirName, sizeof(szDirName)); 
 
/* Place the terminating null character in the szFile. */ 
 
szFile[0] = '\0'; 
 
/* Load the filter string from the .RC file. */ 
 
//cbString = LoadString(hInst, IDS_FILTERSTRING, 
//    szFilter, sizeof(szFilter)); 

strcpy( szFilter, "*.*");
/* Add a terminating null character to the string. */ 
 
chReplace = szFilter[cbString - 1]; 
 
for (i = 0; szFilter[i] != '\0'; i++) { 
    if (szFilter[i] == chReplace) 
        szFilter[i] = '\0'; 
} 
 
/* Initialize the required OPENFILENAME members. */ 
 
ofn.lStructSize = sizeof(OPENFILENAME); 
ofn.hwndOwner = hWnd; 
ofn.hInstance = hInst; 
ofn.lpstrFilter = szFilter; 
ofn.nFilterIndex = 1; 
ofn.lpstrFile = szFile; 
ofn.nMaxFile = sizeof(szFile); 
ofn.lpstrFileTitle = szFileTitle; 
ofn.nMaxFileTitle = sizeof(szFileTitle); 
ofn.lpstrInitialDir = szDirName; 
ofn.Flags = OFN_SHOWHELP | OFN_PATHMUSTEXIST | 
    OFN_FILEMUSTEXIST | OFN_ENABLEHOOK | 
    OFN_ENABLETEMPLATE; 
ofn.lpfnHook = FileOpenHookProc; 
ofn.lpTemplateName = "FILEOPEN"; 
 
OPENFILENAME ofn;       /* common dialog box structure    */ 
char szDirName[256];    /* directory string               */ 
char szFile[256];       /* filename string                */ 
char szFileTitle[256];  /* file title string              */ 
char szFilter[256];     /* filter string                  */ 
char chReplace;         /* string separator for szFilter  */ 
int i, cbString;        /* integer count variables        */ 
DWORD cBufLen;          /* dword count                    */ 
DWORD cTmp;             /* dword count                    */ 
HANDLE hf;              /* original file handle           */ 
HANDLE hfBackup;        /* backup file handle             */ 
char szBuffer[256];     /* character buffer               */ 
char szChar[256];       /* character buffer               */ 
char* pszBackupFile;    /* pointer to backup filename     */ 
BOOL fBackup;           /* TRUE if user checked "backup"  */ 
UINT FAR PASCAL FileOpenHookProc(HWND hdlg, UINT msg, WPARAM wParam, 
    LPARAM lParam); 
/////////////////////////////////////////////////////////
UINT FAR PASCAL FileOpenHookProc(HWND hdlg, UINT msg, WPARAM wParam, 
    LPARAM lParam) 
{ 
    switch (msg) { 
 
        /* WM_INITDIALOG is received after commdlg 
        /* is processed. 
         */ 
 
        case WM_INITDIALOG: 
 
 
            return TRUE; 
 
        case WM_COMMAND: 
 
            /* Use IsDlgButtonChecked to set lCustData. */ 
 
            if (wParam == IDOK) 
 
                /* Set the "backup file" flag. */ 
 
                fBackup = (DWORD) IsDlgButtonChecked(hdlg, ID_CUSTCHX); 
 
            return FALSE; /* Allow standard processing. */ 
            break; 
 
        default: 
            return FALSE; 
 
    } /* end switch */ 
 
    return FALSE; 
} 
/////////////////////////////////////////////////////////


PR pr("w2.txt");
HANDLE cmm = LoadLibrary( "COMDLG32.DLL" );
pr.pr("cmm=");
pr.pr((int)cmm);
FARPROC ffp=GetProcAddress(cmm, "GetOpenFileName");

 
int r= (*ffp)();
//int r= (*ffp)(GetProcAddress*)((OPENFILENAME*)&ofn);
//int r= (*ffp)();
pr.pr(" r=");
pr.pr((int)r);
pr.pr(" CommDlgExtendedError=");
pr.pr((int)CommDlgExtendedError());

FreeLibrary(cmm);

#include "saver.h"
#include "mystream.h"
int anime02::CheckSeenScript( MyString& seenScript )
{
    if( seenScript.RevSearchNotBlank() == 0 )
        return 1;

    for(int i=0;i<TABLEMAX;i++)
        flSel[i]->Fill('\0');

    mstrchk ar;

    ar.GetArrey2( seenScript, flSel, flCmd );

    for(i=0;i<5;i++)
    {
        outText << "#" << flSel[i]->String << ":" << flCmd[i]->String << "#";
    }
    outText << LF;
int r=MessageBox(hWndMain,"?","aaaaaaaaaa",MB_ICONQUESTION|MB_YESNO);

//  ar.GetArrey( seenScript, flSel );

    return 0;
}

*リフトオフ
%sel=BG,a01,b01,c01,d01,e01
%sel=BG,a01,b01,c01,d02,e01
%sel=BG,a01,b01,c01,d03,e01
%sel=BG,a01,b01,c01,d04,e01
%sel=BG,a01,b01,c01,d05,e01
%sel=BG,a01,b01,c01,d06,e01
%sel=BG,a01,b01,c01,d07,e01
%sel=BG,a01,b01,c01,d08,e01
%sel=BG,a01,b01,c01,d09,e01
%sel=BG,a01,b02,c01,d10,e02
%sel=BG,a01,b03,c01,d11,e02
%sel=BG,a01,b04,c01,d11,e02
%sel=BG,a01,b05,c01,d11,e02
%sel=BG,a01,b06,c01,d11,e02

%timer=20

飛べ、リフトオフ

/////////////////////////////////////////////////////////
//  load.
/////////////////////////////////////////////////////////

//int BmpLoad01::Load( char *szFile )
//{
//  Diskio      fi;
//  int     ret;
//
//  ret=UnplessLoad( szFile );
//  if ( ret == 0 )
//  {
//      return 0;
//  }
//  else
//  {
//      if(ret!=2)
//          return ret;
//  }
//
//  if ( fi.Open( szFile, ".BMP" ) != 0 )
//  {
//      coError().ErrorLoadBmp( szFile );
//      return 2;       //  file not found.
//  }
//
//  long FileSize;
//  if ( ( FileSize = fi.Size() ) == -1 )
//      return 3;       //  file error.
//
//  if( FileSize > NowBufferSize )                  // now alloc buffer size.
//  {
//      if ( lpBuffer ) delete[] lpBuffer;
//      lpBuffer = NULL;
//      try
//      {
//          lpBuffer = new char huge [FileSize];
//      }
//      catch(...)
//      {
//          MessageBox(NULL,"(.bmp)memory empty!!(BmpLoad01::Load)",NULL,MB_ICONSTOP|MB_OK);
//          return 4;       //  empty memory.
//      }
//      NowBufferSize = FileSize;                   // now alloc buffer size.
//  }
//
//  fi.Read( lpBuffer, FileSize );
//
//  char huge   *hp = lpBuffer;
//  lpBitMapFileHeader = (LPBITMAPFILEHEADER) hp;
//  lpBitMapInfo = (LPBITMAPINFO) ( hp + sizeof( BITMAPFILEHEADER ) );
//  lpDIBBits = ( hp + lpBitMapFileHeader->bfOffBits );
//
//  return 0;
//}
//
//int BmpLoad01::UnplessLoad( char *szFile )
//{
//  Diskio  fi;
//  plesload    plsLoad;
//
//  if(fi.Open( szFile, ".BPP" ))
//      return 2;
//
//  if ( plsLoad.BufferUnplesHeaderLoad( fi ) )
//      return 10;
//
//  if ( plsLoad.Header.AllLength > NowBufferSize )         // now alloc buffer size.
//  {
//      if ( lpBuffer ) delete[] lpBuffer;
//      lpBuffer = NULL;
//      try
//      {
//          lpBuffer = new char huge [ plsLoad.Header.AllLength ];
//      }
//      catch(...)
//      {
//          return 4;       //  empty memory.
//      }
//      NowBufferSize = plsLoad.Header.AllLength;       // now alloc buffer size.
//  }
//
//  plsLoad.BufferUnplesload( fi, lpBuffer );
//
//  char huge   *hp = lpBuffer;
//  lpBitMapFileHeader = (LPBITMAPFILEHEADER) hp;
//  lpBitMapInfo = (LPBITMAPINFO) ( hp + sizeof( BITMAPFILEHEADER ) );
//  lpDIBBits = ( hp + lpBitMapFileHeader->bfOffBits );
//
//  return 0;
//}
;(c:\evadata\エヴァ・リフトオフ\BG.BMP)
;%sel=c:\evadata\エヴァ・リフトオフ\BG.BMP,c:\evadata\エヴァ・リフトオフ\a01.BMP,c:\evadata\エヴァ・リフトオフ\b01.BMP,c:\evadata\エヴァ・リフトオフ\c01.BMP,c:\evadata\エヴァ・リフトオフ\d01.BMP,c:\evadata\エヴァ・リフトオフ\e01.BMP
;%timer=10
;%sel=c:\evadata\エヴァ・リフトオフ\BG.BMP,c:\evadata\エヴァ・リフトオフ\b01.BMP,c:\evadata\エヴァ・リフトオフ\c01.BMP,c:\evadata\エヴァ・リフトオフ\d01.BMP,c:\evadata\エヴァ・リフトオフ\e01.BMP

//int  xs=100,ys=24;
//outText.Init(  work65,   240, 376, 620, 476  );
//outScrp.Init(  work65,    16,  420, 160, 476, 10 );
//outWho.Init(   work65, 584, 320+ys, 636, 476, 12 );
//outCheck.Init( work65, 490+xs,   0+ys, 628+xs,  60+ys+100, 12 );
//outWhere.Init( work65, 490,  62+ys, 628,  90+ys, 12 );
//outProc.Init(  work65, 490+xs,  94+ys, 628+xs, 142+ys, 12 );
//outScrp.Init(  work65, 490, 144+ys, 628, 240, 10 );


/////////////////////////////////////////////////////////
//  event timer.
/////////////////////////////////////////////////////////

void CALLBACK HashiTimeProc(UINT uID, UINT uMsg, DWORD dwUser, DWORD dw1, DWORD dw2); 

void MyTimerSet()
{

    MMRESULT mmr;

    mmr = timeSetEvent( 160,            // Event delay, in milliseconds.
                        160,            // Resolution of the timer event,
                        HashiTimeProc,
                        (DWORD)0,           // User-supplied callback data.
                        TIME_PERIODIC );    //Event occurs every uDelay milliseconds.
}  

void MyTimerKill()
{
    MMRESULT mmr;
    mmr = timeKillEvent(uTimerID);
}


  
LPTIMECALLBACK CALLBACK HashiTimeProc(UINT uID, UINT uMsg, DWORD dwUser, DWORD dw1, DWORD dw2)
{
}
//uID
//Identifier of the timer event. This identifier was returned by the timeSetEvent function when the timer event was set up.

//uMsg Reserved; do not use.

//dwUser  User instance data supplied to the dwUser parameter of timeSetEvent.

//dw1 and dw2 Reserved; do not use.

 
 
/////////////////////////////////////////////////////////
//  test.
/////////////////////////////////////////////////////////

int anime02::Test()
{
    if( Anime01 != NULL )
    {
        Anime01->Stop();
        delete Anime01;
        Anime01=NULL;
    }
    Anime01 = new anime01( work65 );
    Anime01->Init();
    if( Anime01->Load(
        "c:\\evadata\\エヴァ・リフトオフ\\a01.BMP",
        "c:\\evadata\\エヴァ・リフトオフ\\b01.BMP",
        "c:\\evadata\\エヴァ・リフトオフ\\c01.BMP",
        "c:\\evadata\\エヴァ・リフトオフ\\d01.BMP",
        "c:\\evadata\\エヴァ・リフトオフ\\e01.BMP"
        ) !=0 )
    {
        coError().ErrorLoadBmp( "エヴァの絵が見つからない" );
        return 1;
    }

    if( Anime01->LoadBG( "c:\\evadata\\エヴァ・リフトオフ\\bg.BMP" ) )
    {
        coError().ErrorLoadBmp( "エヴァのbg絵が見つからない" );
        return 1;
    }
    return 0;
}

int anime02::GetArrey( MyString& s )
{
    int count = 0;
    int pnt=0,nxt=0;

    if( flSel.top() == 0 )
        return 0;

    do
    {
        flSel.Obj()->Fill('\0');

    } while(flSel.next());

    if( flSel.top() == 0 )
        return 0;

    for(;;)
    {
        nxt = s.Search( ',', pnt );
        if( nxt < 0 )
        {
            flSel.Obj()->Fill('\0');
            flSel.Obj()->CopyFrom( s, pnt, s.SearchBlank( pnt )-pnt );
            count++;
            break;
        }
        flSel.Obj()->Fill('\0');
        flSel.Obj()->CopyFrom( s, pnt, nxt-pnt );
        count++;
        pnt = nxt + 1;
        if( flSel.next() == 0 )
            break;
    }
    return count;
}

//PR pr("www.txt");
//pr.pr( flSel[0]->String );pr.pr("#");
//pr.pr( flSel[1]->String );
//  if( Anime01->LoadBG( "c:\\evadata\\エヴァ・リフトオフ\\bg.BMP" ) )

//  if( CheckSeenScript( seenScript ) )
//      return 1;

//  flSel[0]->CopyFrom("c:\\evadata\\エヴァ・リフトオフ\\bg.BMP",255);
//  flSel[1]->CopyFrom("c:\\evadata\\エヴァ・リフトオフ\\a01.BMP",255);
//  flSel[2]->CopyFrom("c:\\evadata\\エヴァ・リフトオフ\\b01.BMP",255);
//  flSel[3]->CopyFrom("c:\\evadata\\エヴァ・リフトオフ\\c01.BMP",255);
//  flSel[4]->CopyFrom("c:\\evadata\\エヴァ・リフトオフ\\d01.BMP",255);
//  flSel[5]->CopyFrom("c:\\evadata\\エヴァ・リフトオフ\\e01.BMP",255);

    if( Anime01 != NULL )
    {
        Anime01->Stop();
        delete Anime01;
        Anime01=NULL;
    }
    Anime01 = new anime01( work65 );
    Anime01->Init();

//  if( Anime01->Load(
//      flSel[1]->String,
//      flSel[2]->String,
//      flSel[3]->String,
//      flSel[4]->String,
//      flSel[5]->String ) !=0 )
    if( Anime01->Load(
    "c:\\evadata\\エヴァ・リフトオフ\\a01.BMP",
    "c:\\evadata\\エヴァ・リフトオフ\\b01.BMP"
        ) !=0 )
    {
        coError().ErrorLoadBmp( "エヴァの絵" );
        return 1;
    }

//  if( Anime01->LoadBG( flSel[0]->String ) )
    if( Anime01->LoadBG( "c:\\evadata\\エヴァ・リフトオフ\\bg.BMP" ) )
    {
        coError().ErrorLoadBmp( flSel[0]->String );
        return 1;
    }

    return 0;
}

    DeleteObject((HGDIOBJ )BackBrush);
    return (HGDIOBJ)BackBrush;
    LOGBRUSH lgb;

    lgb.lbStyle = BS_SOLID;
    lgb.lbColor = RGB(255, 0, 0);
    lgb.lbStyle = NULL;

    BackBrush = CreateBrushIndirect(&lgb);