String place[42] ,pName[42]
String charimg[4]
int placeKind[42]
int i , p ,nowPlace , PNAME , PCELL , BOARD , CHAR, slct[10]

midiLoad(sound/midi00.mid)
midiplay()

charimg[0] = img/char0010.png ;
charimg[1] = img/char0011.png ;
charimg[2] = img/char0012.png ;
charimg[3] = img/char0013.png ;


//場所ファイルと場所名の一覧をファイルより得る
load(temp/backlist.txt,place,pName,placeKind)

SetCellNumber(5) //0-4番までの5枚のセルを使用

PCELL = 0 //背景セルを0番セルとする
CHAR = 1 //キャラ表示セルを1番セルとする
PNAME = 3 //場所ラベルセルを3番セルとする
BOARD = 4 //テキスト用裏板を4番セルとする

//場所表示板の設定
SetCellCanvas(PNAME,180,50,0xddffdd) //180x50の板を作る
SetCellPosition(PNAME,20,20) //板の座標位置
SetCellTextParam(PNAME,"Default",BOLD,20,0x000055) //板に書くテキストのフォントと色を指定する
SetCellTransColor(PNAME,0,0,192) //板の透明度
SetShiftHide(PNAME) //この板はSHIFTキーを押されたときに隠される

//テキスト裏板の設定
SetCellCanvas(BOARD,600,200,0x7777dd) //600x200の板を作る
SetCellPosition(BOARD,100,380) //板の座標位置
SetCellTransColor(BOARD,0,0,128) //板の透明度
SetShiftHide(BOARD) //この板はSHIFTキーを押されたときに隠される
SetTextArea(120,400,560,160)


//移動選択の設定
setSelectArea(600,100,180,300,1,10)
setSelectColor(0x80FFFFFF,0x80AAAAAA,0x80FFAAAA,0x111111)

nowPlace = 02

LOOP:
GoSub(SHOWPCELL)
Goto(LOOP)

SHOWPCELL:
SetCellImage(PCELL,place[nowPlace])
SetCellText(PNAME,pName[nowPlace])
Random(i,4)
SetCellImage(CHAR,charimg[i])
SetCellPosition(CHAR,_RIGHT,_LOWER)
SetCellTransColor(CHAR,0,0,0) //板の透明度
viewDisplay(11X11,_fadein)
あなたは今「+pName[nowPlace]+」にいます。
WaitText(どこに移動しますか？,10)

//公園前の場合
if (nowPlace == 02) {
  slct[0] = 01
  slct[1] = 29
  slct[2] = 22
  slct[3] = 40
  slct[4] = 24
  slct[5] = 23
  slct[6] = 27
  Select(p,pName[slct[0]],pName[slct[1]],pName[slct[2]],pName[slct[3]],pName[slct[4]],pName[slct[5]],pName[slct[6]])
  nowPlace = slct[p]
  return();
}

//御霊神社前の場合
if (nowPlace == 29) {
  slct[0] = 02
  slct[1] = 30
  slct[2] = 22
  slct[3] = 40
  slct[4] = 24
  slct[5] = 23
  slct[6] = 27
  Select(p,pName[slct[0]],pName[slct[1]],pName[slct[2]],pName[slct[3]],pName[slct[4]],pName[slct[5]],pName[slct[6]])
  nowPlace = slct[p]
  return();
}

//コンビ二前の場合
if (nowPlace == 22) {
  slct[0] = 02
  slct[1] = 29
  slct[2] = 40
  slct[3] = 24
  slct[4] = 23
  slct[5] = 27
  Select(p,pName[slct[0]],pName[slct[1]],pName[slct[2]],pName[slct[3]],pName[slct[4]],pName[slct[5]])
  nowPlace = slct[p]
  return();
}

//高架下の場合
if (nowPlace == 40) {
  slct[0] = 02
  slct[1] = 29
  slct[2] = 22
  slct[3] = 24
  slct[4] = 23
  slct[5] = 27
  Select(p,pName[slct[0]],pName[slct[1]],pName[slct[2]],pName[slct[3]],pName[slct[4]],pName[slct[5]])
  nowPlace = slct[p]
  return();
}

//道路の場合
if (nowPlace == 24) {
  slct[0] = 02
  slct[1] = 29
  slct[2] = 22
  slct[3] = 40
  slct[4] = 23
  slct[5] = 27
  Select(p,pName[slct[0]],pName[slct[1]],pName[slct[2]],pName[slct[3]],pName[slct[4]],pName[slct[5]])
  nowPlace = slct[p]
  return();
}

//バス停の場合
if (nowPlace == 23) {
  slct[0] = 02
  slct[1] = 29
  slct[2] = 22
  slct[3] = 40
  slct[4] = 24
  slct[5] = 27
  Select(p,pName[slct[0]],pName[slct[1]],pName[slct[2]],pName[slct[3]],pName[slct[4]],pName[slct[5]])
  nowPlace = slct[p]
  return();
}

//校門の場合
if (nowPlace == 27) {
  slct[0] = 02
  slct[1] = 29
  slct[2] = 22
  slct[3] = 40
  slct[4] = 24
  slct[5] = 23
  Select(p,pName[slct[0]],pName[slct[1]],pName[slct[2]],pName[slct[3]],pName[slct[4]],pName[slct[5]])
  nowPlace = slct[p]
  return();
}

//公園ゲートの場合
if (nowPlace == 01) {
  slct[0] = 02
  slct[1] = 03
  slct[2] = 06
  slct[3] = 07
  slct[4] = 16
  slct[5] = 08
  slct[6] = 10
  slct[7] = 12
  slct[8] = 13
  Select(p,pName[slct[0]],pName[slct[1]],pName[slct[2]],pName[slct[3]],pName[slct[4]],pName[slct[5]],pName[slct[6]],pName[slct[7]],pName[slct[8]])
  nowPlace = slct[p]
  return();
}

//バスケットコートの場合
if (nowPlace == 03) {
  slct[0] = 01
  slct[1] = 06
  slct[2] = 07
  slct[3] = 16
  slct[4] = 08
  slct[5] = 10
  slct[6] = 12
  slct[7] = 13
  Select(p,pName[slct[0]],pName[slct[1]],pName[slct[2]],pName[slct[3]],pName[slct[4]],pName[slct[5]],pName[slct[6]],pName[slct[7]])
  nowPlace = slct[p]
  return();
}

//クラブハウス前の場合
if (nowPlace == 06) {
  slct[0] = 01
  slct[1] = 03
  slct[2] = 07
  slct[3] = 16
  slct[4] = 08
  slct[5] = 10
  slct[6] = 12
  slct[7] = 13
  Select(p,pName[slct[0]],pName[slct[1]],pName[slct[2]],pName[slct[3]],pName[slct[4]],pName[slct[5]],pName[slct[6]],pName[slct[7]])
  nowPlace = slct[p]
  return();
}

//野球場の場合
if (nowPlace == 07) {
  slct[0] = 01
  slct[1] = 03
  slct[2] = 06
  slct[3] = 16
  slct[4] = 08
  slct[5] = 10
  slct[6] = 12
  slct[7] = 13
  Select(p,pName[slct[0]],pName[slct[1]],pName[slct[2]],pName[slct[3]],pName[slct[4]],pName[slct[5]],pName[slct[6]],pName[slct[7]])
  nowPlace = slct[p]
  return();
}

//野球場裏の場合
if (nowPlace == 16) {
  slct[0] = 01
  slct[1] = 03
  slct[2] = 06
  slct[3] = 07
  slct[4] = 08
  slct[5] = 10
  slct[6] = 12
  slct[7] = 13
  Select(p,pName[slct[0]],pName[slct[1]],pName[slct[2]],pName[slct[3]],pName[slct[4]],pName[slct[5]],pName[slct[6]],pName[slct[7]])
  nowPlace = slct[p]
  return();
}

//時計塔前の場合
if (nowPlace == 08) {
  slct[0] = 01
  slct[1] = 03
  slct[2] = 06
  slct[3] = 07
  slct[4] = 16
  slct[5] = 10
  slct[6] = 12
  slct[7] = 13
  Select(p,pName[slct[0]],pName[slct[1]],pName[slct[2]],pName[slct[3]],pName[slct[4]],pName[slct[5]],pName[slct[6]],pName[slct[7]])
  nowPlace = slct[p]
  return();
}

//グラウンドの場合
if (nowPlace == 10) {
  slct[0] = 01
  slct[1] = 03
  slct[2] = 06
  slct[3] = 07
  slct[4] = 16
  slct[5] = 08
  slct[6] = 12
  slct[7] = 13
  Select(p,pName[slct[0]],pName[slct[1]],pName[slct[2]],pName[slct[3]],pName[slct[4]],pName[slct[5]],pName[slct[6]],pName[slct[7]])
  nowPlace = slct[p]
  return();
}

//広場の場合
if (nowPlace == 12) {
  slct[0] = 01
  slct[1] = 03
  slct[2] = 06
  slct[3] = 07
  slct[4] = 16
  slct[5] = 08
  slct[6] = 10
  slct[7] = 13
  Select(p,pName[slct[0]],pName[slct[1]],pName[slct[2]],pName[slct[3]],pName[slct[4]],pName[slct[5]],pName[slct[6]],pName[slct[7]])
  nowPlace = slct[p]
  return();
}

//遊歩道の場合
if (nowPlace == 13) {
  slct[0] = 01
  slct[1] = 05
  slct[2] = 04
  slct[3] = 11
  slct[4] = 14
  slct[5] = 15
  slct[6] = 09
  slct[7] = 12
  Select(p,pName[slct[0]],pName[slct[1]],pName[slct[2]],pName[slct[3]],pName[slct[4]],pName[slct[5]],pName[slct[6]],pName[slct[7]])
  nowPlace = slct[p]
  return();
}


//芝生の場合
if (nowPlace == 05) {
  slct[0] = 01
  slct[1] = 13
  slct[2] = 04
  slct[3] = 11
  slct[4] = 14
  slct[5] = 15
  slct[6] = 09
  slct[7] = 12
  Select(p,pName[slct[0]],pName[slct[1]],pName[slct[2]],pName[slct[3]],pName[slct[4]],pName[slct[5]],pName[slct[6]],pName[slct[7]])
  nowPlace = slct[p]
  return();
}

//ベンチの場合
if (nowPlace == 04) {
  slct[0] = 01
  slct[1] = 13
  slct[2] = 05
  slct[3] = 11
  slct[4] = 14
  slct[5] = 15
  slct[6] = 09
  slct[7] = 12
  Select(p,pName[slct[0]],pName[slct[1]],pName[slct[2]],pName[slct[3]],pName[slct[4]],pName[slct[5]],pName[slct[6]],pName[slct[7]])
  nowPlace = slct[p]
  return();
}

//木陰の場合
if (nowPlace == 11) {
  slct[0] = 01
  slct[1] = 13
  slct[2] = 05
  slct[3] = 04
  slct[4] = 14
  slct[5] = 15
  slct[6] = 09
  slct[7] = 12
  Select(p,pName[slct[0]],pName[slct[1]],pName[slct[2]],pName[slct[3]],pName[slct[4]],pName[slct[5]],pName[slct[6]],pName[slct[7]])
  nowPlace = slct[p]
  return();
}


//ステージの場合
if (nowPlace == 14) {
  slct[0] = 01
  slct[1] = 13
  slct[2] = 05
  slct[3] = 04
  slct[4] = 11
  slct[5] = 15
  slct[6] = 09
  slct[7] = 12
  Select(p,pName[slct[0]],pName[slct[1]],pName[slct[2]],pName[slct[3]],pName[slct[4]],pName[slct[5]],pName[slct[6]],pName[slct[7]])
  nowPlace = slct[p]
  return();
}

//ステージ前の場合
if (nowPlace == 15) {
  slct[0] = 01
  slct[1] = 13
  slct[2] = 05
  slct[3] = 04
  slct[4] = 11
  slct[5] = 14
  slct[6] = 09
  slct[7] = 12
  Select(p,pName[slct[0]],pName[slct[1]],pName[slct[2]],pName[slct[3]],pName[slct[4]],pName[slct[5]],pName[slct[6]],pName[slct[7]])
  nowPlace = slct[p]
  return();
}

//花壇の場合
if (nowPlace == 09) {
  slct[0] = 01
  slct[1] = 13
  slct[2] = 05
  slct[3] = 04
  slct[4] = 11
  slct[5] = 14
  slct[6] = 15
  slct[7] = 12
  Select(p,pName[slct[0]],pName[slct[1]],pName[slct[2]],pName[slct[3]],pName[slct[4]],pName[slct[5]],pName[slct[6]],pName[slct[7]])
  nowPlace = slct[p]
  return();
}

//神社鳥居の場合
if (nowPlace == 30) {
  slct[0] = 29
  slct[1] = 31
  slct[2] = 32
  slct[3] = 33
  slct[4] = 34
  slct[5] = 39
  Select(p,pName[slct[0]],pName[slct[1]],pName[slct[2]],pName[slct[3]],pName[slct[4]],pName[slct[5]])
  nowPlace = slct[p]
  return();
}

//神社境内の場合
if (nowPlace == 31) {
  slct[0] = 30
  slct[1] = 32
  slct[2] = 33
  slct[3] = 34
  slct[4] = 39
  Select(p,pName[slct[0]],pName[slct[1]],pName[slct[2]],pName[slct[3]],pName[slct[4]])
  nowPlace = slct[p]
  return();
}

//ご神木の場合
if (nowPlace == 32) {
  slct[0] = 30
  slct[1] = 31
  slct[2] = 33
  slct[3] = 34
  slct[4] = 39
  Select(p,pName[slct[0]],pName[slct[1]],pName[slct[2]],pName[slct[3]],pName[slct[4]])
  nowPlace = slct[p]
  return();
}

//狛犬の場合
if (nowPlace == 33) {
  slct[0] = 30
  slct[1] = 31
  slct[2] = 32
  slct[3] = 34
  slct[4] = 39
  Select(p,pName[slct[0]],pName[slct[1]],pName[slct[2]],pName[slct[3]],pName[slct[4]])
  nowPlace = slct[p]
  return();
}

//裏山の場合
if (nowPlace == 34) {
  slct[0] = 30
  slct[1] = 31
  slct[2] = 32
  slct[3] = 33
  slct[4] = 39
  slct[5] = 35
  Select(p,pName[slct[0]],pName[slct[1]],pName[slct[2]],pName[slct[3]],pName[slct[4]],pName[slct[5]])
  nowPlace = slct[p]
  return();
}

//境内の場合
if (nowPlace == 39) {
  slct[0] = 30
  slct[1] = 31
  slct[2] = 32
  slct[3] = 34
  slct[4] = 33
  Select(p,pName[slct[0]],pName[slct[1]],pName[slct[2]],pName[slct[3]],pName[slct[4]])
  nowPlace = slct[p]
  return();
}

//境内の場合
if (nowPlace == 35) {
  slct[0] = 34
  slct[1] = 36
  Select(p,pName[slct[0]],pName[slct[1]])
  nowPlace = slct[p]
  return();
}

//祠の場合
if (nowPlace == 36) {
  slct[0] = 35
  slct[1] = 37
  Select(p,pName[slct[0]],pName[slct[1]])
  nowPlace = slct[p]
  return();
}

//祠内の場合
if (nowPlace == 37) {
  slct[0] = 36
  Select(p,pName[slct[0]])
  nowPlace = slct[p]
  return();
}


