home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ring.yamanashi.ac.jp/pub/pc/freem/action/
/
action.zip
/
TQAP.zip
/
Usr
/
Editor.tonyu
< prev
next >
Wrap
Text File
|
2007-06-09
|
25KB
|
1,030 lines
extends SpriteChar;
run=1;
SelectMode=0;
Stage;
StageNow;
NextStage;
Sx;
Sy;
Pat;
Door;
Scroll=0;
cx=0;
cy=0;
help_page=1;
FileName=$Location.stagefile;
p=-1;
x= 0;
y= 0;
tile=new Array();
tile.add($pat_block+0 );
tile.add($pat_block+1 );
tile.add($pat_block+2 );
tile.add($pat_block+13);
tile.add($pat_block+14);
tile.add($pat_block+5 );
tile.add($pat_block+6 );
tile.add($pat_block+8 );
tile.add($pat_block+11);
tile.add($pat_block+12);
tile.add($pat_enemy+6 );
tile.add($pat_enemy+7 );
tile.add($pat_enemy+3 );
tile.add($pat_enemy+4 );
tile.add($pat_enemy+9 );
tile.add($pat_enemy+12);
tile.add($pat_enemy+15);
tile.add($pat_enemy+18);
tile.add($pat_enemy+21);
tile.add($pat_enemy+0 );
tile.add($pat_door+0 );
tile.add($pat_door+2 );
tile.add($pat_key+0 );
tile.add($pat_lever+0 );
tile.add($pat_lever+3 );
tile.add($pat_lever+6 );
tile.add($pat_lever+9 );
Sx=1;
Sy=1;
Pat=0;
Init();
$map.scrollTo(sx*32,sy*32);
if (StageNow==null) StageNow=loadmap(1);
if (StageNow!=null) StageNow=loadmap(StageNow);
while(getkey(39)>=2){
update();
}
while(1){
if (SelectMode==0) EditMode();
if (SelectMode==1) DoorTo_Set();
}
//âZü[âu---------------------------------------------------------
function savemap(_stage,display){
var file,stage;
var _x,_y,blockzero,block,output,addzero;
var header,footer;
var i,disp,text;
header=new Array();
footer=new Array();
stage=_stage;
if (_stage==null || _stage==0) stage=StageNow;
if (_stage==-1) {
stage=select_stage(1);
wait(1);
}
if (stage!=null && stage!=-1){
file=new FileReader(FileName);
while(1){
text=file.readLn();
if (text=="Stage"+ThreeDigit(stage)) break;
header.add(text);
}
while(1){
text=file.readLn();
if (text=="") break;
}
while(1){
text=file.readLn();
if (text==null) break;
footer.add(text);
}
file.close();
blockzero=$pat_block+0;
file=new FileWriter(FileName);
for(i=0;i<header.size();i++){
file.writeLn(header.get(i));
}
if (display==null) {
disp=appear(new Effect(x,y,"nowsaving"));
}
wait(1);
//â}âbâvÅæé½ì₧é▌
file.writeLn("Stage"+ThreeDigit(stage));
for (_y=1;_y<25;_y++){
for (_x=1;_x<31;_x++){
block=$map.get(_x,_y)-blockzero;
output=output+TwoDigit(block);
}
file.writeLn(output);
output="";
}
output="";
addzero="";
output="Scroll:"+Scroll;
file.writeLn(output);
//âIâuâWâFâNâgé╠Åæé½ì₧é▌
for (e in $chars){
if (e is Freeze) {
if (e.p==$pat_enemy+6 ) output="TR1";
if (e.p==$pat_enemy+7 ) output="TR2";
if (e.p==$pat_enemy+3 ) output="RTR";
if (e.p==$pat_enemy+4 ) output="RTL";
if (e.p==$pat_enemy+9 ) output="RF1";
if (e.p==$pat_enemy+12) output="HOP";
if (e.p==$pat_enemy+15) output="GST";
if (e.p==$pat_enemy+18) output="WLF";
if (e.p==$pat_enemy+21) output="BBL";
if (e.p==$pat_door+0 ) output="DOR";
if (e.p==$pat_door+2 ) output="END";
if (e.p==$pat_key+0 ) output="KEY";
if (e.p==$pat_lever+0 ) output="LV1";
if (e.p==$pat_lever+3 ) output="LV2";
if (e.p==$pat_lever+6 ) output="LV3";
if (e.p==$pat_lever+9 ) output="LV4";
_x=(e.x-16)/32;
if (_x<10) addzero="0";
output=output+" "+addzero+_x+" ";
addzero="";
_y=(e.y-16)/32;
if (_y<10) addzero="0";
output=output+addzero+_y;
//öαé╠ö≥é╤ɵé¬É▌ÆΦé│éΩé─éóéΩé╬ïLÿ^
if (e.next_stage!=null){
if (e.next_stage<100) addzero="0" ;
if (e.next_stage<10 ) addzero="00";
output=output+" ST:"+addzero+e.next_stage+" ";
addzero="";
if (e.next_x<10) addzero="0" ;
output=output+addzero+e.next_x+" ";
addzero="";
if (e.next_y<10) addzero="0" ;
output=output+addzero+e.next_y+" ";
addzero="";
}
file.writeLn(output);
addzero="";
}
}
file.writeLn("");
for(i=0;i<footer.size();i++){
file.writeLn(footer.get(i));
}
file.close();
if (display==null) disp.die();
StageNow=stage;
return stage;
}
}
//âìü[âh---------------------------------------------------------
function loadmap(_stage){
var file,stage;
var _x,_y,blockline,block,blockzero;
var e_name,e_x,e_y,e_setpat;
var e,skip;
e_setpat=null;
if (_stage==null) stage=select_stage();
if (_stage!=null) stage=_stage;
if ( stage==-1) return -1;
if (SelectMode==1){
for (e in $chars){
if (e is Freeze) {
e.visible=0;
e.setVisible(0);
}
}
}
if (SelectMode==0){
for (e in $chars){
if (e is Freeze && e.visible==0){
e.visible=1;
e.setVisible(1);
skip=1;
}
else if (e is Freeze && e.visible==1) e.die();
}
}
if (Stage!=null){
file=new FileReader(FileName);
while(1){
blockline=file.readLn();
if (blockline=="Stage"+ThreeDigit(stage)) break;
}
if (file.error()==0){
//â}âbâvô╟é▌ì₧é▌
blockzero=$pat_block+0;
for (_y=1;_y<25;_y++){
blockline=file.readLn();
for (_x=1;_x<31;_x++){
block=blockzero+valueOf(blockline.substring((_x-1)*2,_x*2));
$map.set(_x,_y,block);
}
}
//âXâNâìü[âïâfü[â^
blockline=file.readLn();
Scroll=valueOf(blockline.substring(7,8));
//ôGé╠ô╟é▌ì₧é▌
if (skip!=1){
while(1){
blockline=file.readLn();
if (blockline=="") break;
e_name= blockline.substring(0,3) ;
e_x =valueOf(blockline.substring(4,6));
e_y =valueOf(blockline.substring(7,9));
if (e_name=="TR1") e_setpat=$pat_enemy+6 ;
if (e_name=="TR2") e_setpat=$pat_enemy+7;
if (e_name=="RTR") e_setpat=$pat_enemy+3;
if (e_name=="RTL") e_setpat=$pat_enemy+4;
if (e_name=="RF1") e_setpat=$pat_enemy+9;
if (e_name=="HOP") e_setpat=$pat_enemy+12;
if (e_name=="GST") e_setpat=$pat_enemy+15;
if (e_name=="WLF") e_setpat=$pat_enemy+18;
if (e_name=="BBL") e_setpat=$pat_enemy+21;
if (e_name=="DOR") e_setpat=$pat_door+0;
if (e_name=="END") e_setpat=$pat_door+2;
if (e_name=="KEY") e_setpat=$pat_key+0;
if (e_name=="LV1") e_setpat=$pat_lever+0;
if (e_name=="LV2") e_setpat=$pat_lever+3;
if (e_name=="LV3") e_setpat=$pat_lever+6;
if (e_name=="LV4") e_setpat=$pat_lever+9;
if (e_setpat!=null) {
e=appear(new Freeze(e_x*32+16,e_y*32+16,e_setpat));
e.visible=1;
}
//ö≥é╤ɵô╟é▌Åoé╡
if (e_name=="DOR") {
e.next_stage=valueOf(blockline.substring(13,16));
e.next_x =valueOf(blockline.substring(17,19));
e.next_y =valueOf(blockline.substring(20,22));
e.visible =1;
}
}
}
if (skip==1) skip=0;
file.close();
}
}
return stage;
}
//âeâXâgâvâîâC--------------------------------------------------------
function testplay(){
var e,e_p,new_obj,addzero;
var _x,_y,_x1,_y1,_x2,_y2;
var file;
var SetOKorNOT;
var esc;
run=0;
e_p=null;
savemap(StageNow);
if (selectmode==0){
file=new FileReader(FileName);
while(1){
text=file.readLn();
if (text=="Stage"+ThreeDigit(StageNow)) break;
}
if (file.error()==0){
//â}âbâvô╟é▌ì₧é▌
blockzero=$pat_block+0;
for (_y=1;_y<25;_y++){
blockline=file.readLn();
for (_x=1;_x<31;_x++){
block=blockzero+valueOf(blockline.substring((_x-1)*2,_x*2));
if (block==$pat_block+13) {
$map.set(_x,_y,$pat_block+3);
}
else if (block==$pat_block+14) {
$map.set(_x,_y,$pat_block+4);
}
else {
$map.set(_x,_y,block);
}
}
}
}
while(1){
_x1=trunc($mouseX/32+sx)*32;
_y1=trunc($mouseY/32+sy)*32;
_x2=_x1+32;
_y2=_y1+32;
drawRect(_x1,_y1,_x2,_y2,$clRed);
if (getkey(39)<=1) Sx--;
if (getkey(37)<=1) Sx++;
if (getkey(40)<=1) Sy--;
if (getkey(38)<=1) Sy++;
if (Sx<1 ) Sx=1 ;
if (Sx>16) Sx=16;
if (Sy<1 ) Sy=1 ;
if (Sy>13) Sy=13;
SetOKorNOT=isblock($map.get(_x1/32,_y1/32));
if (getkey(1)==1) {
if (SetOKorNOT==1) $mplayer.play($se_cursor00_a);
if (SetOKorNOT==0) break;
}
if (getkey(81)==1){
wait(1);
return;
}
esc=0;
if ($mouseX>32*10 && $mouseY<32*2) esc=320;
$map.scrollTo(sx*32,sy*32);
fillRect(350+sx*32,10+sy*32+esc,470+sx*32,60+sy*32+esc,color(100,0,0),1);
drawText(360+sx*32,13+sy*32+esc ,"âeâXâgâvâîâC",$clWhite,8);
drawText(360+sx*32,13+sy*32+12+esc,"ì╢âNâèâbâNüFê╩ÆuîêÆΦ",$clWhite,8);
drawText(360+sx*32,13+sy*32+24+esc,"ü¬ü½ü⌐ü¿üFëµû╩ê┌ô«",$clWhite,8);
drawText(360+sx*32,13+sy*32+36+esc,"QüFâGâfâBâbâgé╔û▀éΘ",$clWhite,8);
update();
}
for (e in $chars){
if (e is Freeze) e.die();
}
e=appear(new Mychar(_x1+16,_y1+16));
$Location.stage=StageNow;
$Location.set_x=_x1/32;
$Location.set_y=_y1/32;
$Location.nokori=-100;
e.scroll=Scroll;
e.pause=0;
while(1){
blockline=file.readLn();
if (blockline=="") break;
e_name= blockline.substring(0,3) ;
ex =valueOf(blockline.substring(4,6));
ey =valueOf(blockline.substring(7,9));
//ôGé≡âZâbâg
if (e_name=="TR1") e_p=$pat_enemy+6;
if (e_name=="TR2") e_p=$pat_enemy+7;
if (e_name=="RF1") e_p=$pat_enemy+9;
if (e_name=="HOP") e_p=$pat_enemy+12;
if (e_name=="GST") e_p=$pat_enemy+15;
if (e_name=="WLF") e_p=$pat_enemy+18;
if (e_name=="BBL") e_p=$pat_enemy+21;
if (e_p!=null) appear(new Enemy(ex*32+16,ey*32+16,e_p));
if (e_name=="RTR") {
e=appear(new Enemy(ex*32+16,ey*32+16,$pat_enemy+8));
e.rotate=1;
}
if (e_name=="RTL") {
e=appear(new Enemy(ex*32+16,ey*32+16,$pat_enemy+8));
e.rotate=0;
}
//öαé≡âZâbâg
if (e_name=="DOR") {
e=appear(new Door(ex*32+16,ey*32+16,$pat_door+0));
e.next_stage=valueOf(blockline.substring(13,16));
e.next_x =valueOf(blockline.substring(17,19));
e.next_y =valueOf(blockline.substring(20,22));
}
if (e_name=="END") appear(new Door(ex*32+16,ey*32+16,$pat_door+2));
//âJâMé≡âZâbâg
if (e_name=="KEY") appear(new Key(ex*32+16,ey*32+16,$pat_key+0));
if (e_name=="LV1") appear(new Lever(ex*32+16,ey*32+16,$pat_lever+0));
if (e_name=="LV2") appear(new Lever(ex*32+16,ey*32+16,$pat_lever+3));
if (e_name=="LV3") appear(new Lever(ex*32+16,ey*32+16,$pat_lever+6));
if (e_name=="LV4") appear(new Lever(ex*32+16,ey*32+16,$pat_lever+9));
e_p=null;
}
run=1;
this.die();
}
}
//âGâfâBâbâg--------------------------------------------------------------
function EditMode(){
var e,_x,_y,now_x,now_y;
var now_tile;
var x1,y1,x2,y2;
var i,flag;
var esc;
_x1=trunc($mouseX/32+sx)*32;
_y1=trunc($mouseY/32+sy)*32;
_x2=_x1+32;
_y2=_y1+32;
drawRect(_x1,_y1,_x2,_y2,$clBlue);
if (getkey(39)<=1) Sx--;
if (getkey(37)<=1) Sx++;
if (getkey(40)<=1) Sy--;
if (getkey(38)<=1) Sy++;
if (getkey(49 )==1) Pat--;
if (getkey(50 )==1) Pat++;
if (getkey(67 )==1) Init();
if (getkey(51 )==1) Scroll--;
if (getkey(52 )==1) Scroll++;
if (getkey(68 )==1) Pat=19;
//if (getkey(49 )==1) loadstage();
if (Sx<1 ) Sx=1 ;
if (Sx>16) Sx=16;
if (Sy<1 ) Sy=1 ;
if (Sy>13) Sy=13;
if (Pat>26) Pat=0;
if (Pat<0) Pat=26;
if (Scroll>3) Scroll=0;
if (Scroll<0) Scroll=3;
//â}âEâXâJü[â\âïò`ëµ
_x=trunc($mouseX/32+sx)*32+16;
_y=trunc($mouseY/32+sy)*32+16;
now_x=trunc($mouseX/32+sx);
now_y=trunc($mouseY/32+sy);
//ëEâNâèâbâN
if (getkey(2)==1) {
if (getkey(16)>=1){
for (e in $chars){
if (e.x==_x && e.y==_y) {
for (i=0;i<26;i++){
if (e.p==tile.get(i)) Pat=i;
}
}
}
}
else{
now_tile=$map.get(now_x,now_y);
for (i=0;i<26;i++){
if (now_tile==tile.get(i)) Pat=i;
}
for (e in $chars){
if (e is Freeze && e.p==$pat_door+0 && e.x==_x && e.y==_y) {
Door=e;
SelectMode=1;
}
}
}
}
//ì╢âNâèâbâN
if (getkey(1)>=1) {
if (pat< 10) $map.set($mouseX/32+sx,$mouseY/32+sy,tile.get(Pat));
if (pat>=10) {
e=appear(new Freeze(($mouseX+sx*32),($mouseY+sy*32),tile.get(Pat)));
if (e.p==$pat_lever+9 && Scroll!=0) e.die();
}
//2é┬ê╚Åπé╠âîâoü[é¬éáé┴é╜éτÅ┴ïÄé╖éΘ
c1=0;
c2=0;
c3=0;
c4=0;
for (e in $chars){
if (e is Freeze && e.p==$pat_lever+0) c1++;
if (e is Freeze && e.p==$pat_lever+3) c2++;
if (e is Freeze && e.p==$pat_lever+6) c3++;
if (e is Freeze && e.p==$pat_lever+9) c4++;
if (c1==2 || c2==2 || c3==2 || c4==2){
e.die();
if (getkey(1)==1) $mplayer.play($se_cursor00_a);
}
}
}
if (getkey(83)==1) savemap();
if (getkey(76)==1) {
flag=loadmap();
if (flag!=-1) StageNow=flag;
}
if (getkey(84)==1) testplay();
if (getkey(81)==1) return_title();
if (getkey(65)==1) savemap(-1);
if (getkey(73)==1) init_save();
if (getkey(72)==1) {
appear(new Editor_Help());
for(e in $chars){
if (e is Editor_Help) break;
}
wait(1);
while(e.run==1){
update();
}
}
if (Scroll!=0){
for(e in $chars){
if (e is Freeze && e.p==$pat_lever+9) {
e.die();
if (getkey(1)==1) $mplayer.play($se_cursor00_a);
}
}
}
$map.scrollTo(sx*32,sy*32);
while ($mouseX<0 || $mouseX>$screenWidth || $mouseY<0 || $mouseY>$screenHeight){
fillRect(350+sx*32,10+sy*32,460+sx*32,50+sy*32,$clWhite,2);
drawSprite(375+sx*32,30+sy*32,tile.get(Pat),0,1);
drawText(400+sx*32,15+sy*32,"Stage: "+StageNow,$clBlack,8);
if (scroll==0) drawText(400+sx*32,25+sy*32,"Scroll: X-Y",$clBlack,8);
if (scroll==1) drawText(400+sx*32,25+sy*32,"Scroll: X",$clBlack,8);
if (scroll==2) drawText(400+sx*32,25+sy*32,"Scroll: Y",$clBlack,8);
if (scroll==3) drawText(400+sx*32,25+sy*32,"Scroll: None",$clBlack,8);
drawText(400+sx*32,35+sy*32,"X: "+now_x+" Y: "+now_y,$clBlack,8);
fillRect(15+sx*32,360+sy*32,220+sx*32,370+sy*32,$clBlue,2);
drawText(20+sx*32,360+sy*32,"â}âEâXâJü[â\âïé≡ëµû╩ôαé╔Æuéóé─é¡é╛é│éó",$clWhite,8);
draw_next();
update();
}
if ($mouseX>32*10 && $mouseY<32*2) esc=320;
else esc=0;
//ëEÅπâXâeü[â^âXò\Ī
fillRect (350+sx*32,10+sy*32+esc,460+sx*32,50+sy*32+esc,$clWhite,2);
drawSprite(375+sx*32,30+sy*32+esc,tile.get(Pat),0,1);
drawText (400+sx*32,15+sy*32+esc,"Stage: "+StageNow,$clBlack,8);
if (scroll==0) drawText(400+sx*32,25+sy*32+esc,"Scroll: X-Y",$clBlack,8);
if (scroll==1) drawText(400+sx*32,25+sy*32+esc,"Scroll: X",$clBlack,8);
if (scroll==2) drawText(400+sx*32,25+sy*32+esc,"Scroll: Y",$clBlack,8);
if (scroll==3) drawText(400+sx*32,25+sy*32+esc,"Scroll: None",$clBlack,8);
drawText(400+sx*32,35+sy*32+esc,"X: "+now_x+" Y: "+now_y,$clBlack,8);
//HELPé╠ò╢ÄÜò\Ī
fillRect(15+sx*32,360+sy*32,120+sx*32,370+sy*32,$clWhite,2);
drawText(20+sx*32,360+sy*32,"égâLü[üFâwâïâvò\Ī",$clBlack,8);
//öαé╠ö≥é╤ɵò\Ī
draw_next();
update();
}
//öαé╠ö≥é╤ɵÉ▌ÆΦ------------------------------------------------------
function DoorTo_Set(){
var _x1,_y1,_x2,_y2;
var _x ,_y ;
var next_stage;
var i,esc;
for (i=0;i<50;i++){
_x=$viewX+130;
_y=$viewY+150;
fillRect(_x,_y,_x+230,_y+80,$clBlack,0);
drawText(_x+30,_y+30,"öαé╠ö≥é╤ɵé≡âZâbâgé╡é▄é╖",$clWhite,12,-1);
update();
}
savemap(StageNow,0);
next_stage=loadmap();
if (next_stage==-1) {
SelectMode=0;
wait(1);
return;
}
while(1){
_x1=trunc($mouseX/32+sx)*32;
_y1=trunc($mouseY/32+sy)*32;
_x2=_x1+32;
_y2=_y1+32;
drawRect(_x1,_y1,_x2,_y2,color(0,100,0));
if (getkey(39)<=1) Sx--;
if (getkey(37)<=1) Sx++;
if (getkey(40)<=1) Sy--;
if (getkey(38)<=1) Sy++;
if (Sx<1 ) Sx=1 ;
if (Sx>16) Sx=16;
if (Sy<1 ) Sy=1 ;
if (Sy>13) Sy=13;
$map.scrollTo(sx*32,sy*32);
esc=0;
if ($mouseX>32*10 && $mouseY<32*2) esc=320;
//drawRect(_x1,_y1,_x2,_y2,color(0,100,0));
fillRect(350+sx*32,10+sy*32+esc,470+sx*32,60+sy*32+esc,color(0,100,0),1);
drawText(360+sx*32,13+sy*32+esc ,"öαé╠ö≥é╤ɵÉ▌ÆΦ",$clWhite,8);
drawText(360+sx*32,13+sy*32+12+esc,"ì╢âNâèâbâNüFê╩ÆuîêÆΦ",$clWhite,8);
drawText(360+sx*32,13+sy*32+24+esc,"ü¬ü½ü⌐ü¿üFëµû╩ê┌ô«",$clWhite,8);
drawText(360+sx*32,13+sy*32+36+esc,"QüFâGâfâBâbâgé╔û▀éΘ",$clWhite,8);
fillRect(15+sx*32,360+sy*32,70+sx*32,370+sy*32,color(0,100,0),2);
drawText(20+sx*32,360+sy*32,"Stage : "+next_stage,$clWhite,8);
update();
if (getkey(1 )==1) break;
if (getkey(81)==1) {
SelectMode=0;
wait(1);
loadmap(StageNow);
return;
}
}
_x=trunc($mouseX/32+sx);
_y=trunc($mouseY/32+sy);
Door.next_stage=next_stage;
Door.next_x =_x;
Door.next_y =_y;
SelectMode=0;
wait(1);
loadmap(StageNow);
while(getkey(1)>=2){
update();
}
savemap(StageNow);
}
function init(){
var e;
var _x,_y;
for (_y=0;_y<27;_y++){
for (_x=0;_x<32;_x++){
$map.set(_x,_y,$pat_block+0);
}
}
for (_x=0;_x<32;_x++){
$map.set(_x,0,$pat_block+11);
}
for (_x=0;_x<32;_x++){
$map.set(_x,26,$pat_block+11);
}
for (_y=0;_y<27;_y++){
$map.set(0 ,_y,$pat_block+11);
}
for (_y=0;_y<27;_y++){
$map.set(31,_y,$pat_block+11);
}
for (_x=1;_x<31;_x++){
$map.set(_x,25,$pat_block+1);
}
for (e in $chars){
if (e is Enemy) e.die();
if (e is Freeze) e.die();
if (e is Door ) e.die();
if (e is Key ) e.die();
if (e is Lever) e.die();
if (e is Mychar) e.die();
if (e is Opening)e.die();
if (e is Effect) e.die();
}
Scroll=0;
wait(1);
}
//ÉöÄÜé≡3îàé╔
function ThreeDigit(number){
var char;
if (number< 100) char="0" +number;
if (number< 10 ) char="00"+number;
if (number>=100) char="" +number;
return char;
}
//ÉöÄÜé≡2îàé╔
function TwoDigit(number){
var char;
if (number< 10) char="0"+number;
if (number>=10) char="" +number;
return char;
}
function draw_next(){
var e;
for (e in $chars){
if (e is Freeze && e.next_stage!=null){
fillRect(e.x ,e.y-16,e.x+45,e.y-4,color(0,100,100),0);
drawText(e.x+3,e.y-15,"Stage"+e.next_stage,$clWhite,8,-1);
}
}
}
function return_title(){
for (e in $chars){
if (e is Freeze) e.die();
}
for (_y=1;_y<25;_y++){
for (_x=1;_x<31;_x++){
$map.set(_x,_y,$pat_block+0);
}
}
$projectManager.loadPage($page_index);
die();
}
function message(text){
var x1,y1,x2,y2;
x1=$viewX+10;
y1=$viewY+350;
x2=x1+200;
y2=y1+10;
fillRect(x1,y1,x2,y2,$clWhite,-1);
drawText(x1,y1,text,$clBlack,8,-2);
}
function select_stage(mode){
var i;
var stage_exsits;
var w_x1,w_y1,w_x2,w_y2;
var t_x1,t_y1;
var c_x1,c_y1,c_x2,c_y2;
//var cx,cy;
var _x,_y;
var col;
w_x1=$viewX+40;
w_y1=$viewY+40;
w_x2=w_x1+400;
w_y2=w_y1+300;
t_x1=w_x1+60;
t_y1=w_y1+70;
stage_exists=new Array();
stage_exists.add("");
//for (i=1;i<101;i++){
// stage_exists.add(fileExists(ThreeDigit(i)+".txt")==1);
//}
while(1){
fillRect(w_x1,w_y1,w_x2,w_y2,$clBlack,1);
drawText(t_x1,t_y1- 40,"Select Stage number" ,$clWhite,12,-1);
drawText(t_x1+200,t_y1+160,"X : Choose",$clWhite,12,-1);
drawText(t_x1+200,t_y1+180,"Q : Return",$clWhite,12,-1);
col=$clWhite;
for(_x=0;_x<10;_x++){
for(_y=0;_y<5;_y++){
//if (stage_exists.get(_x+_y*10+1)==1) col=$clWhite;
//if (stage_exists.get(_x+_y*10+1)==0 && (mode==null || mode==0)) col=$clBlue;
//if (stage_exists.get(_x+_y*10+1)==0 && (mode==1) ) col=$clYellow;
drawText(t_x1+_x*30,t_y1+_y*30,TwoDigit(_x+_y*10+1),col,12,-1);
}
}
c_x1=t_x1+cx*30;
c_y1=t_y1+cy*30;
c_x2=c_x1+15;
c_y2=c_y1+20;
if (getkey(39)==1) cx++;
if (getkey(37)==1) cx--;
if (getkey(40)==1) cy++;
if (getkey(38)==1) cy--;
//if (getkey(88)==1 && (mode==null||mode==0) && stage_exists.get(cx+cy*10+1)==1) break;
//if (getkey(88)==1 && mode==1) break;
if (getkey(88)==1) break;
if (getkey(81)==1) {
wait(1);
return -1;
}
if (cx<0) cx=9 ;
if (cx>9) cx=0;
if (cy<0) cy=4 ;
if (cy>4) cy=0;
fillRect(c_x1,c_y1,c_x2,c_y2,$clRed,0);
update();
}
val=cx+cy*10+1;
return val;
}
function isblock(tile){
var tile_bk1,tile_bk2;
var value;
tile_bk1=$pat_block+6;
tile_bk2=$pat_block+11;
value=(tile>=tile_bk1 && tile<=tile_bk2);
return value;
}
function init_save(){
var header,footer;
var i,disp,text;
header=new Array();
footer=new Array();
while(1){
_x1=trunc($mouseX/32+sx)*32;
_y1=trunc($mouseY/32+sy)*32;
_x2=_x1+32;
_y2=_y1+32;
now_x=trunc($mouseX/32+sx);
now_y=trunc($mouseY/32+sy);
drawRect(_x1,_y1,_x2,_y2,$clRed);
if (getkey(39)<=1) Sx--;
if (getkey(37)<=1) Sx++;
if (getkey(40)<=1) Sy--;
if (getkey(38)<=1) Sy++;
if (Sx<1 ) Sx=1 ;
if (Sx>16) Sx=16;
if (Sy<1 ) Sy=1 ;
if (Sy>13) Sy=13;
SetOKorNOT=isblock($map.get(_x1/32,_y1/32));
if (getkey(1)==1) {
if (SetOKorNOT==1) $mplayer.play($se_cursor00_a);
if (SetOKorNOT==0) break;
}
if (getkey(81)==1){
wait(1);
return;
}
esc=0;
if ($mouseX>32*10 && $mouseY<32*2) esc=320;
$map.scrollTo(sx*32,sy*32);
fillRect(350+sx*32,10+sy*32+esc,470+sx*32,60+sy*32+esc,color(100,0,100),1);
drawText(360+sx*32,13+sy*32+esc ,"âXâ^ü[âgê╩ÆuÉ▌ÆΦ",$clWhite,8);
drawText(360+sx*32,13+sy*32+12+esc,"ì╢âNâèâbâNüFê╩ÆuîêÆΦ",$clWhite,8);
drawText(360+sx*32,13+sy*32+24+esc,"ü¬ü½ü⌐ü¿üFëµû╩ê┌ô«",$clWhite,8);
drawText(360+sx*32,13+sy*32+36+esc,"QüFâGâfâBâbâgé╔û▀éΘ",$clWhite,8);
update();
}
disp=appear(new Effect(x,y,"nowsaving"));
wait(1);
file=new FileReader(FileName);
while(1){
text=file.readLn();
if (text=="*init") break;
header.add(text);
}
while(1){
text=file.readLn();
if (text=="") break;
}
while(1){
text=file.readLn();
if (text==null) break;
footer.add(text);
}
file.close();
file=new FileWriter(FileName);
file.writeLn("*init");
for(i=0;i<header.size();i++){
file.writeLn(header.get(i));
}
file.writeLn("Start :"+ThreeDigit(StageNow));
file.writeLn("X-pos :"+ThreeDigit(now_x));
file.writeLn("Y-pos :"+ThreeDigit(now_y));
file.writeLn("Remain :002");
file.writeLn("");
for(i=0;i<footer.size();i++){
file.writeLn(footer.get(i));
}
file.close();
disp.die();
}