home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 1997 December
/
VPR9712A.ISO
/
Ffilly
/
sksk20
/
sk_open.tfy
< prev
next >
Wrap
Text File
|
1996-06-23
|
15KB
|
534 lines
//
// Toffy 雛形
//
#info INAM "さくさくアルバム君オープニング"
#info ISBJ "さくさくアルバム君オープニング"
#info IART "Yuji Kagami,JBB02737@niftyserve.or.jp"
#info ICMS "(有)ゆんファクトリー"
#info ICOP "Yuji Kagami,JBB02737@niftyserve.or.jp"
#info IENG "Yuji Kagami,JBB02737@niftyserve.or.jp"
#info MDFY "NO"
#info TRNS "NO"
#info JINT "NO"
#info INST "MIDI"
#info VIDO "640x480; 256"
#info GRPC "Yuji Kagami,JBB02737@niftyserve.or.jp"
#info PROD "Yuji Kagami,JBB02737@niftyserve.or.jp"
#info CONT "Yuji Kagami,JBB02737@niftyserve.or.jp"
int base_win;
int base_pico;
int base_pic;
int base_cast;
int but_pic[];
int but_cast[];
int xoff[];
int yoff[];
int maje_pic;
str alininame;
int covernum;
int mountnum;
int bgmnum;
str midiname;
str sdir;
str sdrive;
str cdir;
str cdrive;
//int deby;
#include "sk_help.tfy"
main()
{
int i;
int pic;
str s;
// Debug( 1 );
// deby = 0;
xoff[0] = 152; yoff[0] = 180; // ini name
xoff[1] = 264; yoff[1] = 259; // cover l
xoff[2] = 324; yoff[2] = 259; // cover r
xoff[3] = 264; yoff[3] = 340; // mount l
xoff[4] = 324; yoff[4] = 340; // mount r
xoff[5] = 264; yoff[5] = 419; // bgm l
xoff[6] = 324; yoff[6] = 419; // bgm r
xoff[7] = 589; yoff[7] = 341; // start
xoff[8] = 588; yoff[8] = 438; // end
xoff[9] = 450; yoff[9] = 240; // cover
xoff[10] = 450; yoff[10] = 320; // mount
xoff[11] = 450; yoff[11] = 400; // bgm
covernum = 0;
mountnum = 0;
bgmnum = 0;
s = GetIniStr( "Directory", "sakusaku", ".", "inst.ini" );
sdrive = SubStr( s, 0, 1 );
sdir = SubStr( s, 2, StrLen( s ) - 2 );
if( sdir == "\" ) {
sdir = "";
}
// s = GetCWD( 1 );
// cdrive = SubStr( s, 0, 1 );
// cdir = SubStr( s, 2, StrLen( s ) - 2 );
// if( cdir == "\" ) {
// cdir = "";
// }
cdrive = sdrive;
cdir = sdir + "\album";
ChDrive( sdrive );
ChDir( sdir );
base_pico = LoadPic( "al_ottl.bmp" );
base_pic = CreatePic( base_pico );
but_pic[0] = CreatePic( base_pico, 336, 27 );
SetPaintColor( 0xffffff );
SetLineSize( 1 );
DrawRect( but_pic[0], 0, 0, 336, 35 );
but_pic[1] = LoadPic( "al_left.bmp" );
but_pic[2] = LoadPic( "al_right.bmp" );
but_pic[3] = CreatePic( but_pic[1] );
MovePic( but_pic[1], 0, 0, PicWidth( but_pic[1] ), PicHeight( but_pic[1] ), but_pic[3] );
but_pic[4] = CreatePic( but_pic[2] );
MovePic( but_pic[2], 0, 0, PicWidth( but_pic[2] ), PicHeight( but_pic[2] ), but_pic[4] );
but_pic[5] = CreatePic( but_pic[1] );
MovePic( but_pic[1], 0, 0, PicWidth( but_pic[1] ), PicHeight( but_pic[1] ), but_pic[5] );
but_pic[6] = CreatePic( but_pic[2] );
MovePic( but_pic[2], 0, 0, PicWidth( but_pic[2] ), PicHeight( but_pic[2] ), but_pic[6] );
but_pic[7] = CreatePic( but_pic[2] );
MovePic( but_pic[2], 0, 0, PicWidth( but_pic[2] ), PicHeight( but_pic[2] ), but_pic[7] );
but_pic[8] = LoadPic( "al_end.bmp" );
maje_pic = CreatePic( but_pic[0] );
but_pic[9] = CreatePic( but_pic[0], 90, 68 );
but_pic[10] = CreatePic( but_pic[0], 90, 68 );
but_pic[11] = CreatePic( but_pic[0], 90, 68 );
base_cast = PutCast( base_pico, base_pic );
for( i = 0; i <= 11; i = i + 1 ) {
but_cast[i] = PutCast( but_pic[i], base_pic, xoff[i], yoff[i], 0xff00ff );
}
alininame = GetIniStr( "Edit", "LastAlbum", "", "sksk.ini" );
inichange();
base_win = OpenWin( base_pic );
bgm();
proc();
helpflag = 0;
helpcast = 0;
mousex = 0;
mousey = 0;
rproc1();
rproc3();
}
proc()
{
int cast2;
int i;
mes( LBDOWN ) {
cast2 = HitCast( base_pic, MesP2, MesP3 );
for( i = 0; i < 9; i = i + 1 ) {
if( cast2 == but_cast[i] ) {
proc2( i );
del_me;
}
}
}
}
proc2( int i )
{
int j, k;
int len;
str s, s2;
int cast2;
int hitflag;
int pic;
if( i == 0 ) {
ChDrive( cdrive );
ChDir( cdir );
s = StrInput( "ini", "INIファイル(*.ini)|*.ini||", 1, 0, "al001.ini", 1 );
if( s != "" ) {
alininame = s;
s = GetCWD( 1 );
cdrive = SubStr( s, 0, 1 );
cdir = SubStr( s, 2, StrLen( s ) - 2 );
if( cdir == "\" ) {
cdir = "";
}
ChDrive( sdrive );
ChDir( sdir );
WriteIniStr( "Edit", "LastAlbum", alininame, "sksk.ini" );
k = 0;
len = StrLen( alininame );
for( i = 0; i < len; i = i + 1 ) {
j = CharCode( SubStr( alininame, i, 1 ) );
if( j == 0x5c || j == 0x3a ) {
k = 1;
break;
}
}
if( k == 0 ) {
// ディレクトリ、ドライブの指定無し
alininame = ".\" + alininame;
}
// if( len > 40 ) {
//
// }
inichange();
} else {
ChDrive( sdrive );
ChDir( sdir );
}
proc();
} else {
MoveCast( but_cast[i], but_pic[i], xoff[i] + 3, yoff[i] + 3 );
hitflag = 1;
mes( MOUSEMOVE ) {
cast2 = HitCast( base_pic, MesP2, MesP3 );
if( cast2 != but_cast[i] && hitflag == 1 ) {
MoveCast( but_cast[i], but_pic[i], xoff[i], yoff[i] );
hitflag = 0;
} else if( cast2 == but_cast[i] && hitflag == 0 ) {
MoveCast( but_cast[i], but_pic[i], xoff[i] + 3, yoff[i] + 3 );
hitflag = 1;
}
}
mes( LBUP ) {
del_us;
if( hitflag == 1 ) {
MoveCast( but_cast[i], but_pic[i], xoff[i], yoff[i] );
proc3( i );
} else {
proc();
}
del_me;
}
}
}
proc3( int i )
{
int j;
str s;
int pic;
if( i == 1 ) {
if( covernum <= 0 ) {
for( covernum = 0; ; ) {
s = GetIniStr( "Cover", StrPrint( "Pic%ld", covernum + 1 ), "0", "sksk.ini" );
if( s == "0" ) {
break;
}
covernum = covernum + 1;
}
} else {
covernum = covernum - 1;
}
pic = LoadPic( GetIniStr( "Cover", StrPrint( "Pic%ld", covernum ), "0", "sksk.ini" ) );
SetFont( 20, "MS ゴシック", 128, 10, 0, 0, 1000, 0, 0, 0, 0, 0, 1, 1 );
BackMode( 1 );
TextColor( 0, 0, 0 );
TextWrite( StrPrint( "表紙%ld", covernum ), pic, 60 + 18 + 1, 24 + 1 );
TextColor( 200, 100, 0 );
TextWrite( StrPrint( "表紙%ld", covernum ), pic, 60 + 18 + 0, 24 + 0 );
MovePic( pic, 60, 0, 90, 68, but_pic[9], 0, 0 );
MoveCast( but_cast[9], but_pic[9] );
DelPic( pic );
} else if( i == 2 ) {
s = GetIniStr( "Cover", StrPrint( "Pic%ld", covernum + 1 ), "0", "sksk.ini" );
if( s == "0" ) {
covernum = 0;
} else {
covernum = covernum + 1;
}
pic = LoadPic( GetIniStr( "Cover", StrPrint( "Pic%ld", covernum ), "0", "sksk.ini" ) );
SetFont( 20, "MS ゴシック", 128, 10, 0, 0, 1000, 0, 0, 0, 0, 0, 1, 1 );
BackMode( 1 );
TextColor( 0, 0, 0 );
TextWrite( StrPrint( "表紙%ld", covernum ), pic, 60 + 18 + 1, 24 + 1 );
TextColor( 200, 100, 0 );
TextWrite( StrPrint( "表紙%ld", covernum ), pic, 60 + 18 + 0, 24 + 0 );
MovePic( pic, 60, 0, 90, 68, but_pic[9], 0, 0 );
MoveCast( but_cast[9], but_pic[9] );
DelPic( pic );
} else if( i == 3 ) {
if( mountnum <= 0 ) {
for( mountnum = 0; ; ) {
s = GetIniStr( "Mount", StrPrint( "Pic%ld", mountnum + 1 ), "0", "sksk.ini" );
if( s == "0" ) {
break;
}
mountnum = mountnum + 1;
}
} else {
mountnum = mountnum - 1;
}
pic = LoadPic( GetIniStr( "Mount", StrPrint( "Pic%ld", mountnum ), "0", "sksk.ini" ) );
SetFont( 20, "MS ゴシック", 128, 10, 0, 0, 1000, 0, 0, 0, 0, 0, 1, 1 );
BackMode( 1 );
TextColor( 0, 0, 0 );
TextWrite( StrPrint( "台紙%ld", mountnum ), pic, 60 + 18 + 1, 24 + 1 );
TextColor( 200, 100, 0 );
TextWrite( StrPrint( "台紙%ld", mountnum ), pic, 60 + 18 + 0, 24 + 0 );
MovePic( pic, 60, 0, 90, 68, but_pic[10], 0, 0 );
MoveCast( but_cast[10], but_pic[10] );
DelPic( pic );
} else if( i == 4 ) {
s = GetIniStr( "Mount", StrPrint( "Pic%ld", mountnum + 1 ), "0", "sksk.ini" );
if( s == "0" ) {
mountnum = 0;
} else {
mountnum = mountnum + 1;
}
pic = LoadPic( GetIniStr( "Mount", StrPrint( "Pic%ld", mountnum ), "0", "sksk.ini" ) );
SetFont( 20, "MS ゴシック", 128, 10, 0, 0, 1000, 0, 0, 0, 0, 0, 1, 1 );
BackMode( 1 );
TextColor( 0, 0, 0 );
TextWrite( StrPrint( "台紙%ld", mountnum ), pic, 60 + 18 + 1, 24 + 1 );
TextColor( 200, 100, 0 );
TextWrite( StrPrint( "台紙%ld", mountnum ), pic, 60 + 18 + 0, 24 + 0 );
MovePic( pic, 60, 0, 90, 68, but_pic[10], 0, 0 );
MoveCast( but_cast[10], but_pic[10] );
DelPic( pic );
} else if( i == 5 ) {
if( bgmnum <= 0 ) {
for( bgmnum = 0; ; ) {
s = GetIniStr( "BGM", StrPrint( "BGM%ld", bgmnum + 1 ), "0", "sksk.ini" );
if( s == "0" ) {
break;
}
bgmnum = bgmnum + 1;
}
} else {
bgmnum = bgmnum - 1;
}
midiname = GetIniStr( "BGM", StrPrint( "BGM%ld", bgmnum ), "0", "sksk.ini" );
PostMes( USER, 1 );
pic = LoadPic( "al_lay1.bmp" );
SetFont( 20, "MS ゴシック", 128, 10, 0, 0, 1000, 0, 0, 0, 0, 0, 1, 1 );
BackMode( 1 );
TextColor( 0, 0, 0 );
TextWrite( StrPrint( "BGM%ld", bgmnum ), pic, 23 + 1, 24 + 1 );
TextColor( 200, 100, 0 );
TextWrite( StrPrint( "BGM%ld", bgmnum ), pic, 23 + 0, 24 + 0 );
MovePic( pic, 0, 0, 90, 68, but_pic[11], 0, 0 );
MoveCast( but_cast[11], but_pic[11] );
DelPic( pic );
} else if( i == 6 ) {
s = GetIniStr( "BGM", StrPrint( "BGM%ld", bgmnum + 1 ), "0", "sksk.ini" );
if( s == "0" ) {
bgmnum = 0;
} else {
bgmnum = bgmnum + 1;
}
midiname = GetIniStr( "BGM", StrPrint( "BGM%ld", bgmnum ), "0", "sksk.ini" );
PostMes( USER, 1 );
pic = LoadPic( "al_lay1.bmp" );
SetFont( 20, "MS ゴシック", 128, 10, 0, 0, 1000, 0, 0, 0, 0, 0, 1, 1 );
BackMode( 1 );
TextColor( 0, 0, 0 );
TextWrite( StrPrint( "BGM%ld", bgmnum ), pic, 23 + 1, 24 + 1 );
TextColor( 200, 100, 0 );
TextWrite( StrPrint( "BGM%ld", bgmnum ), pic, 23 + 0, 24 + 0 );
MovePic( pic, 0, 0, 90, 68, but_pic[11], 0, 0 );
MoveCast( but_cast[11], but_pic[11] );
DelPic( pic );
} else if( i == 7 ) {
// start
if( alininame == "" ) {
helpflag = 50;
PostMes( RBDOWN, 100, mousex, mousey );
} else {
if( covernum >= 0 ) {
WriteIniStr( "Basic", "Cover", GetIniStr( "Cover", StrPrint( "Pic%ld", covernum ), "0", "sksk.ini" ), alininame );
}
if( mountnum >= 0 ) {
WriteIniStr( "Basic", "Mount", GetIniStr( "Mount", StrPrint( "Pic%ld", mountnum ), "0", "sksk.ini" ), alininame );
WriteIniStr( "Basic", "Mountm", GetIniStr( "Mount", StrPrint( "Picm%ld", mountnum ), "0", "sksk.ini" ), alininame );
}
WriteIniStr( "Basic", "BGM", GetIniStr( "BGM", StrPrint( "BGM%ld", bgmnum ), "0", "sksk.ini" ), alininame );
Shell( GetIniStr( "Directory", "system", "c:\filly\bin", "inst.ini" ) + "\filly.exe", GetIniStr( "Directory", "sakusaku", ".", "inst.ini" ) + "\sksk.fil", ".\" );
ExitTitle();
}
} else if( i == 8 ) {
// end
ExitTitle();
}
proc();
}
inichange()
{
str s, s2;
int pic;
SetPaintColor( 0xff00ff );
DrawRect( maje_pic, 0, 0, 336, 35 );
SetFont( 16, "MS ゴシック", 128, 8, 0, 0, 1000, 0, 0, 0, 0, 0, 1, 1 );
BackMode( 1 );
TextColor( 0, 0, 0 );
TextWrite( alininame, maje_pic, 1, 1 );
TextColor( 200, 100, 0 );
TextWrite( alininame, maje_pic, 0, 0 );
SetPaintColor( 0xffffff );
DrawRect( but_pic[0], 0, 0, 336, 35 );
MovePic( maje_pic, 0, 0, PicWidth( maje_pic ), PicHeight( maje_pic ), but_pic[0], 2, 4, 0, 0xff00ff );
MoveCast( but_cast[0], but_pic[0] );
s = GetIniStr( "Basic", "Cover", "", alininame );
//TextWrite( s, base_pic, 0, deby ); deby = deby + 20;
if( s != "" ) {
pic = LoadPic( s );
for( covernum = 0; ; ) {
s2 = GetIniStr( "Cover", StrPrint( "Pic%ld", covernum ), "0", "sksk.ini" );
if( s2 == s ) {
break;
} else if( s2 == "0" ) {
covernum = -1;
break;
}
covernum = covernum + 1;
}
} else {
s = GetIniStr( "Cover", StrPrint( "Pic%ld", covernum ), "albmttl1.bmp", "sksk.ini" );
pic = LoadPic( s );
}
SetFont( 20, "MS ゴシック", 128, 10, 0, 0, 1000, 0, 0, 0, 0, 0, 1, 1 );
BackMode( 1 );
TextColor( 0, 0, 0 );
TextWrite( StrPrint( "表紙%ld", covernum ), pic, 60 + 18 + 1, 24 + 1 );
TextColor( 200, 100, 0 );
TextWrite( StrPrint( "表紙%ld", covernum ), pic, 60 + 18 + 0, 24 + 0 );
MovePic( pic, 60, 0, 90, 68, but_pic[9], 0, 0 );
MoveCast( but_cast[9], but_pic[9] );
DelPic( pic );
s = GetIniStr( "Basic", "Mount", "", alininame );
//TextWrite( s, base_pic, 0, deby ); deby = deby + 20;
if( s != "" ) {
pic = LoadPic( s );
for( mountnum = 0; ; ) {
s2 = GetIniStr( "Mount", StrPrint( "Pic%ld", mountnum ), "0", "sksk.ini" );
if( s2 == s ) {
break;
} else if( s2 == "0" ) {
mountnum = -1;
break;
}
mountnum = mountnum + 1;
}
} else {
s = GetIniStr( "Mount", StrPrint( "Pic%ld", mountnum ), "albm_bk1.bmp", "sksk.ini" );
pic = LoadPic( s );
}
SetFont( 20, "MS ゴシック", 128, 10, 0, 0, 1000, 0, 0, 0, 0, 0, 1, 1 );
BackMode( 1 );
TextColor( 0, 0, 0 );
TextWrite( StrPrint( "台紙%ld", mountnum ), pic, 60 + 18 + 1, 24 + 1 );
TextColor( 200, 100, 0 );
TextWrite( StrPrint( "台紙%ld", mountnum ), pic, 60 + 18 + 0, 24 + 0 );
MovePic( pic, 60, 0, 90, 68, but_pic[10], 0, 0 );
MoveCast( but_cast[10], but_pic[10] );
DelPic( pic );
s = GetIniStr( "Basic", "BGM", "", alininame );
//TextWrite( s, base_pic, 0, deby ); deby = deby + 20;
if( s != "" ) {
midiname = s;
PostMes( USER, 1 );
} else {
midiname = GetIniStr( "BGM", StrPrint( "BGM%ld", bgmnum ), "0", "sksk.ini" );
PostMes( USER, 1 );
}
for( bgmnum = 0; ; bgmnum = bgmnum + 1 ) {
s = GetIniStr( "BGM", StrPrint( "BGM%ld", bgmnum ), "", "sksk.ini" );
if( s == midiname ) {
break;
}
if( s == "" ) {
break;
}
}
pic = LoadPic( "al_lay1.bmp" );
SetFont( 20, "MS ゴシック", 128, 10, 0, 0, 1000, 0, 0, 0, 0, 0, 1, 1 );
BackMode( 1 );
TextColor( 0, 0, 0 );
TextWrite( StrPrint( "BGM%ld", bgmnum ), pic, 23 + 1, 24 + 1 );
TextColor( 200, 100, 0 );
TextWrite( StrPrint( "BGM%ld", bgmnum ), pic, 23 + 0, 24 + 0 );
MovePic( pic, 0, 0, 90, 68, but_pic[11], 0, 0 );
MoveCast( but_cast[11], but_pic[11] );
DelPic( pic );
}
bgm()
{
mes( MIDI_END ) {
PlayMIDI( midiname );
}
PlayMIDI( midiname );
mes( USER ) {
if( MesP1 == 1 ) {
del_us;
bgm();
del_me;
}
}
}
rproc1()
{
int i;
int cast2;
mes( RBDOWN ) {
if( helpflag == 50 ) {
del_us;
helpcast = but_cast[7];
helpflag = 0;
rproc2( 50, MesP2, MesP3 );
del_me;
} else {
cast2 = HitCast( base_pic, MesP2, MesP3 );
// if( cast2 != helpcast || helpflag == 0 ) {
if( cast2 == helpcast && MesP1 == 100 ) {
} else {
if( helpflag == 1 ) {
PostMes( USER, 20 );
}
helpcast = cast2;
for( i = 0; i <= 8; i = i + 1 ) {
if( cast2 == but_cast[i] ) {
del_us;
rproc2( i, MesP2, MesP3 );
del_me;
}
}
}
}
}
mes( MOUSEMOVE ) {
// del_us;
mousex = MesP2;
mousey = MesP3;
// rproc1();
// del_me;
}
}