'---GPAGE リスト---
'GRP0:うえがめん じゆう
'GRP1:パララックスグラフィックス
'GRP2:パララックスグラフィックス
'GRP3:したがめん はいけい
'GRP4:
'GRP5:フォント、かお、ちきゅう
OPTION STRICT
LOAD"PRG1:ROUTINE1"
LOAD"PRG2:ROUTINE2"
EXEC 1
BGMSTOP
ACLS
?""
?"                         "
?"                         "
?"      PLANE 2 SOLID      "
?"                         "
?"                         "
?"      〜HOW TO PLAY〜      "
?"        MOVE            "
?"       ATTACK          "
?"        CAMERA          "
?"        PAUSE           "
?"      3D VOLUME       "
?"                         "
'?" ※さいしんバージョンと こうかいキー は    "
'?"  Miiverse や Twitterなどで  "
'?"  ごかくにん ください             "
?"                         "
?"   2015 SatoshiMcCloud   "
?"                         "
?""
?""
'?"  ゲーム きどうちゅう ちょっと まってね..."
?"  Now Loading ..."
'-------INIT-------
DIM Z%
DIM X%
DIM Y%
DIM R%
DIM K#
DIM L#
DIM ConvToCamPos%[800,512]
FOR Z%=0 TO 511
 K#= 256 / (256+Z%)
 FOR X%=0 TO 799
  ConvToCamPos%[X%,Z%]= (X%-400) * K# + 256
 NEXT
NEXT
DIM CosineTable%[512,361]
DIM SineTable%[512,361]
FOR R%=0 TO 90
 K# = COS( R% * PI() / 180.0 )
 FOR X%=0 TO 511
  L# = K# * (X%-256)
  CosineTable%[X%,    R%] =  L#
  CosineTable%[X%,360-R%] =  L#
  CosineTable%[X%,180-R%] = -L#
  CosineTable%[X%,180+R%] = -L#
    SineTable%[X%, 90-R%] =  L#
    SineTable%[X%, 90+R%] =  L#
    SineTable%[X%,270-R%] = -L#
    SineTable%[X%,270+R%] = -L#
 NEXT
NEXT
DIM FrameParity% = 0
DIM ParallaxLevel% = 0
DIM ParallaxOffset = 0
'--ガメン セッテイ--
'LOAD"GRP5:CHAR" 'PI: moved below to GRP3 (after HUD draw)
DIM ScreenSizeX%=320
DIM ScreenSizeY%=240
DIM ScreenOffsetX%=40
DIM ScreenOffsetY%=0
XSCREEN 400,240
'PI: keep default console (50x25, WIDTH 8). The game already uses the console
'directly (e.g. LOCATE 6,28 credits), so WIDTH must stay default. The Cons2Var
'HUD (25x15 grid) is mapped onto it x2 in C2MES. Console is topmost by default.
'したがめん
'DISPLAY 1 'PI:no dual screen
VISIBLE 1,1,1
GPAGE 3,3
GCLS RGB(64,64,64)
GFILL 80,64,239,223,RGB(0,0,0,0)
GFILL 40,0,279,63,RGB(0,40,20)
GLINE 32,72,32,224,RGB(255,255,255)
GLINE 28, 72,36, 72,RGB(255,255,255)
GLINE 28,224,36,224,RGB(255,255,255)

GLINE 36,112,36,160
GLINE 44,112,36,160
GLINE 36,112,44,112

GPUTCHR 48,112, "",2.0,2.0,RGB(255,255,255)
GPUTCHR 48,136, "3D",2.0,2.0,RGB(  0,255,  0)
GPUTCHR 48,160, "",2.0,2.0,RGB(255,255,255)
GPUTCHR 48,204,"OFF",1.0,1.0,RGB(255,255,255)

GCOLOR RGB(255,255,255)
GPUTCHR 80, 80,"   〜HOW TO PLAY〜"    ,1.0,2.0
GPUTCHR 80,112,"      MOVE",1.8,2.0
GPUTCHR 80,128,"     ATTACK"  ,1.8,2.0
GPUTCHR 80,144,"      CAMERA"   ,1.8,2.0
GPUTCHR 80,160,"      PAUSE"     ,1.8,2.0
GPUTCHR 80,176,"    3D VOLUME"  ,1.8,2.0


GPRIO 1

LOAD"GRP3:CHAR" 'PI: CHAR now on GRP3
SPPAGE 3
FOR X% = 0 TO 11
 SPDEF X%, 32*X%,144,32,32
NEXT
SPSET 0,0
SPOFS 0,80,240,0
SPSCALE 0,5,5

SPDEF 15,480,144,32,32,0,0,1
SPDEF 16,480,144,32,32,0,0,3
SPDEF 17,480,144,32,32,0,0,5
SPDEF 18,480,144,32,32,0,0,7

SPSET 1,15
SPANIM 1,"I",2,15,2,16,2,17,2,18,0
SPOFS 1,80,240,0
SPSCALE 1,5,5

SPDEF 19,496,0
SPSET 16,19

'BGPAGE 5
'BGSCREEN 0,20,3
'BGFILL 0,0,0,19,2,0
'BGOFS 0,-40,0
'うえがめん
'DISPLAY 0 'PI:no dual screen
BACKCOLOR RGB(60,60,60)
VISIBLE 1,1,1
SPCLIP ScreenOffsetX%,ScreenOffsetY%,ScreenOffsetX%+ScreenSizeX%,ScreenOffsetY%+ScreenSizeY%
GPAGE 0,0
GPRIO -1
'GCLS RGB(60,60,60)'フチのカラー
GPAGE 0,0
'NEXT
'SP
SPPAGE 1
SPDEF 160,(512-ScreenSizeX%)/2,(256-ScreenSizeY%)/2+256,ScreenSizeX%,ScreenSizeY%
SPSET 160,160
SPOFS 160,(400-ScreenSizeX%)/2,(240-ScreenSizeY%)/2,16
'BG
'BGPAGE 5
'BGSCREEN 0,20,15
'BGFILL 0,0,0,19,14,1024
'BGOFS 0,-40,0,0

'BGSCREEN 1,25,15
'BGOFS 1,0,0,-2
'BGCLR 1

'BGSCREEN 2,24,4
'BGOFS 2,-40,-240+64,-1
'BGFILL 2,0,0,23,3,0

'ANIM
FOR X%=0 TO 159
 SPDEF X%+200,X%*2+96,8,1,240
 SPSET X%,X%+200
 SPOFS X%,0,0,15
NEXT
Z%=(400-ScreenSizeX%)/2
WAIT 1
FOR X%=0 TO 159
 SPANIM X%,"XY",1,X%*2+Z%,0,1,X%*2+Z%+1,0,0
 SPANIM X%,"UV",1,X%*2+96,8,1,X%*2+97,8,0
NEXT
'BG
'BGANIM 0,"XY",1,-Z%,0,1,-Z%-1,0,0
DIM Cons2Var[15,25]
'PI: retained per-frame HUD (was BG layer 1). C2MES buffers into these; HudFlush
'blits atomically after the render so the HUD never blanks mid-frame (no flicker).
DIM HudRow$[30]     'HUD text per console row (rows the game draws its own text on are never touched)
DIM HudRowLit%[30]  'chars currently lit per row, for incremental clearing

'-----DEF FUNC-----
DEF ScreenFrip
 'DISPLAY 0 'PI:no dual screen
 SPPAGE 1+FrameParity%
 FrameParity% = 1-FrameParity%
 GPAGE 0,1+FrameParity%
 GCLS RGB(0,0,0)
 'BGLOAD 1,Cons2Var
 FOR X%=0 TO 24
 FOR Y%=0 TO 14
   Cons2Var[Y%,X%]=0
 NEXT
 NEXT
END
COMMON DEF GetDrawPage()
 RETURN 1+FrameParity%
END
COMMON DEF GetParallaxLevel()
 RETURN ParallaxLevel%
END
COMMON DEF DrawLine3D X1,Y1,Z1,X2,Y2,Z2
 IF( X1 < -380 ) THEN RETURN
 IF( Y1 < -380 ) THEN RETURN
 IF( Z1 < -255 ) THEN RETURN
 IF( X2 < -380 ) THEN RETURN
 IF( Y2 < -380 ) THEN RETURN
 IF( Z2 < -255 ) THEN RETURN
 IF( X1 >  380 ) THEN RETURN
 IF( Y1 >  380 ) THEN RETURN
 IF( Z1 >  255 ) THEN RETURN
 IF( X2 >  380 ) THEN RETURN
 IF( Y2 >  380 ) THEN RETURN
 IF( Z2 >  255 ) THEN RETURN
 DIM ZXR1%
 DIM ZYR1%
 DIM ZXR2%
 DIM ZYR2%
 DIM ZXL1%
 DIM ZYL1%
 DIM ZXL2%
 DIM ZYL2%
 Z1 = Z1+256
 Z2 = Z2+256
 X1 = X1+400
 X2 = X2+400
 Y1 = Y1+400
 Y2 = Y2+400
 'RIGHT
 ZXR1%=ConvToCamPos%[X1-ParallaxLevel%,Z1]+ParallaxLevel%
 ZYR1%=ConvToCamPos%[Y1,Z1]
 ZXR2%=ConvToCamPos%[X2-ParallaxLevel%,Z2]+ParallaxLevel%
 ZYR2%=ConvToCamPos%[Y2,Z2] 
 'LEFT
 ZXL1%=ConvToCamPos%[X1+ParallaxLevel%,Z1]-ParallaxLevel%
 ZYL1%=ConvToCamPos%[Y1,Z1]
 ZXL2%=ConvToCamPos%[X2+ParallaxLevel%,Z2]-ParallaxLevel%
 ZYL2%=ConvToCamPos%[Y2,Z2]
GCLIP 1,0,256,511,511
 GLINE ZXR1%-ParallaxOffset,ZYR1%+128,ZXR2%-ParallaxOffset,ZYR2%+128
GCLIP 1,0,  0,511,255
 GLINE ZXL1%+ParallaxOffset,ZYL1%-128,ZXL2%+ParallaxOffset,ZYL2%-128
GCLIP 1
END
COMMON DEF DrawP3D X1,Y1,Z1
 IF( X1 < -380 ) THEN RETURN
 IF( Y1 < -380 ) THEN RETURN
 IF( Z1 < -255 ) THEN RETURN
 IF( X1 >  380 ) THEN RETURN
 IF( Y1 >  380 ) THEN RETURN
 IF( Z1 >  255 ) THEN RETURN
 DIM ZXR1%
 DIM ZYR1%
 DIM ZXL1%
 DIM ZYL1%
 Z1 = Z1+256
 X1 = X1+400
 Y1 = Y1+400
' DISPLAY 0
' GPAGE 0,1+FrameParity%
 'RIGHT
 ZXR1%=ConvToCamPos%[X1-ParallaxLevel%,Z1]+ParallaxLevel%
 ZYR1%=ConvToCamPos%[Y1,Z1]
 'LEFT
 ZXL1%=ConvToCamPos%[X1+ParallaxLevel%,Z1]-ParallaxLevel%
 ZYL1%=ConvToCamPos%[Y1,Z1]
 
GCLIP 1,0,256,511,511
 GPSET ZXR1%-ParallaxOffset  ,ZYR1%+128
 GPSET ZXR1%-ParallaxOffset+1,ZYR1%+128
 GPSET ZXR1%-ParallaxOffset  ,ZYR1%+128+1
 GPSET ZXR1%-ParallaxOffset+1,ZYR1%+128+1
GCLIP 1,0,  0,511,255
 GPSET ZXL1%+ParallaxOffset  ,ZYL1%-128
 GPSET ZXL1%+ParallaxOffset+1,ZYL1%-128
 GPSET ZXL1%+ParallaxOffset  ,ZYL1%-128+1
 GPSET ZXL1%+ParallaxOffset+1,ZYL1%-128+1
GCLIP 1
END
'--------------MODEL---------------
DIM ModelNum%=0

DIM ModelVertexNum%[32]
DIM ModelVertexX%[32,32]
DIM ModelVertexY%[32,32]
DIM ModelVertexZ%[32,32]

DIM ModelEdgeNum%[32]
DIM ModelEdgeA%[32,32]
DIM ModelEdgeB%[32,32]
DIM ModelEdgeCL%[32,32]


DIM ModelFaceNum%[32]
DIM ModelFaceA%[  32, 42]
DIM ModelFaceB%[  32, 42]
DIM ModelFaceC%[  32, 42]
DIM ModelFaceCL%[ 32, 42]

'-----DEF-----
COMMON DEF DrawModel INDEX%,X%,Y%,Z%
 DrawModelSuper INDEX%,X%,Y%,Z%,0,0,0,1.0,5
END

COMMON DEF DrawModelNonSortZ INDEX%,X%,Y%,Z%
 DrawModelSuper INDEX%,X%,Y%,Z%,0,0,0,1.0,7
END

COMMON DEF DrawModelRotate INDEX%,X%,Y%,Z%,RZ%,RX%,RY%
 DrawModelSuper INDEX%,X%,Y%,Z%,RZ%,RX%,RY%,1.0,4
END
COMMON DEF DrawModelRotateZoom INDEX%,X%,Y%,Z%,RZ%,RX%,RY%,R#
 DrawModelSuper INDEX%,X%,Y%,Z%,RZ%,RX%,RY%,R#,0
END

COMMON DEF DrawModelRotateNonSortZ INDEX%,X%,Y%,Z%,RZ%,RX%,RY%
 DrawModelSuper INDEX%,X%,Y%,Z%,RZ%,RX%,RY%,1.0,6
END

DEF DrawModelSuper INDEX%,X%,Y%,Z%,RZ%,RX%,RY%,Rate#,SkipFrag%
'''''''''''''''''
'SKIP FLAG
' 1bit かいてん
' 2bit Zソート
' 3bit かくだい
'''''''''''''''''
 DIM N%
  '-----ざひょう へんかん-----
 DIM VNUM%=ModelVertexNum%[INDEX%]
 DIM VX%[ VNUM% ],VY%[ VNUM% ],VZ%[ VNUM% ]
 DIM TX%,TY%,TZ%
 FOR N%=0 TO VNUM%-1
  VX%[N%]=ModelVertexX%[INDEX%,N%]
  VY%[N%]=ModelVertexY%[INDEX%,N%]
  VZ%[N%]=ModelVertexZ%[INDEX%,N%]
 NEXT
 'かくだい
 IF( (SkipFrag% AND 4)==0 ) THEN
   FOR N%=0 TO VNUM%-1
    VX%[N%]=VX%[N%]*Rate#
    VY%[N%]=VY%[N%]*Rate#
    VZ%[N%]=VZ%[N%]*Rate#
  NEXT
 ENDIF
 'かいてん
 IF( (SkipFrag% AND 1)==0 ) THEN
  'かくど しゅうせい
  WHILE(RZ%<  0):RZ%=RZ%+360:WEND
  WHILE(RZ%>360):RZ%=RZ%-360:WEND
  WHILE(RX%<  0):RX%=RX%+360:WEND
  WHILE(RX%>360):RX%=RX%-360:WEND
  WHILE(RY%<  0):RY%=RY%+360:WEND
  WHILE(RY%>360):RY%=RY%-360:WEND
  'Z ROTATE
  IF( RZ% != 0 ) THEN
   FOR N%=0 TO VNUM%-1
    TX% = CosineTable%[VX%[N%]+256,RZ%]                  - SineTable%[VY%[N%]+256,RZ%]
    TY% =   SineTable%[VX%[N%]+256,RZ%]                 +CoSineTable%[VY%[N%]+256,RZ%]
    VX%[N%]=TX%
    VY%[N%]=TY%
   NEXT
  ENDIF
  'X ROTATE
  IF( RX% != 0 ) THEN
   FOR N%=0 TO VNUM%-1
    TZ% = CosineTable%[VZ%[N%]+256,RX%]                  + SineTable%[VY%[N%]+256,RX%]
    TY% =  -SineTable%[VZ%[N%]+256,RX%]                 +CoSineTable%[VY%[N%]+256,RX%]
    VZ%[N%]=TZ%
    VY%[N%]=TY%
   NEXT
  ENDIF
  'Y ROTATE
  IF( RY% != 0 ) THEN
   FOR N%=0 TO VNUM%-1
    TX% = CosineTable%[VX%[N%]+256,RY%]                 - SineTable%[VZ%[N%]+256,RY%]
    TZ% =   SineTable%[VX%[N%]+256,RY%]                 +CoSineTable%[VZ%[N%]+256,RY%]
    VX%[N%]=TX%
    VZ%[N%]=TZ%
   NEXT
  ENDIF
 ENDIF
 'いどう
 'DX,DY,DZ
 FOR N%=0 TO VNUM%-1
  VX%[N%]=VX%[N%]+X%
  VY%[N%]=VY%[N%]+Y%
  VZ%[N%]=VZ%[N%]+Z%
 NEXT
 
 
 'カメラからのきょり
 'スクリーンざひょうに へんかん
 DIM DVXR%[VNUM%],DVXL%[VNUM%]
 DIM DVYR%[VNUM%],DVYL%[VNUM%]
 DIM VF%[VNUM%]
 DIM Z1,X1,Y1
 FOR N%=0 TO VNUM%-1
  VF%[N%] = 1
  IF( VX%[N%] < -380 ) THEN VF%[N%] = 0
  IF( VY%[N%] < -380 ) THEN VF%[N%] = 0
  IF( VZ%[N%] < -255 ) THEN VF%[N%] = 0
  IF( VX%[N%] >  380 ) THEN VF%[N%] = 0
  IF( VY%[N%] >  380 ) THEN VF%[N%] = 0
  IF( VZ%[N%] >  255 ) THEN VF%[N%] = 0
  IF(VF%[N%]) THEN
   Z1 = VZ%[N%]+256
   X1 = VX%[N%]+400
   Y1 = VY%[N%]+400
   'RIGHT
   DVXR%[N%]=ConvToCamPos%[X1-ParallaxLevel%,Z1]+ParallaxLevel%-ParallaxOffset
   DVYR%[N%]=ConvToCamPos%[Y1,Z1]+128
   'LEFT
   DVXL%[N%]=ConvToCamPos%[X1+ParallaxLevel%,Z1]-ParallaxLevel%+ParallaxOffset
   DVYL%[N%]=ConvToCamPos%[Y1,Z1]-128
  ENDIF
 NEXT
 '-----めん Zソート-----
 DIM FNUM%=ModelFaceNum%[INDEX%]
 DIM VR%[VNUM%]
 DIM ZSORT%[FNUM%]
 DIM ZZ%[FNUM%]
 FOR N%=0 TO FNUM%-1
  ZSORT%[N%] = N%
 NEXT
 IF( (SkipFrag% AND 2)==0 ) THEN
  FOR N%=0 TO VNUM%-1
   VR%[N%] = POW(VX%[N%],2)+POW(VY%[N%],2)+POW(VZ%[N%]+512,2)
  NEXT
  FOR N%=0 TO FNUM%-1
  ZZ%[N%]=ZZ%[N%]+VR%[ModelFaceA%[INDEX%,N%]]
  ZZ%[N%]=ZZ%[N%]+VR%[ModelFaceB%[INDEX%,N%]]
  ZZ%[N%]=ZZ%[N%]+VR%[ModelFaceC%[INDEX%,N%]]
  'PI: stable tiebreak. A symmetric/banking plane has many faces at EQUAL depth; if
  'RSORT orders equal keys differently frame-to-frame (platform-dependent), they
  'z-fight -> flicker. Adding the face index breaks exact ties deterministically (ZZ
  'is a big squared-distance sum, so real depth gaps dwarf the +N%).
  ZZ%[N%]=ZZ%[N%]+N%
  NEXT
  IF(FNUM%) THEN RSORT 0,FNUM%,ZZ%,ZSORT%
 ENDIF
 '-----DRAW-----
 DIM V1%,V2%,V3%
 'めん
 FOR N%=0 TO FNUM%-1
  V1% = ModelFaceA%[INDEX%,ZSORT%[N%]]
  V2% = ModelFaceB%[INDEX%,ZSORT%[N%]]
  V3% = ModelFaceC%[INDEX%,ZSORT%[N%]]
  IF( VF%[V1%] && VF%[V2%] && VF%[V3%] )THEN
   GCOLOR ModelFaceCL%[INDEX%,ZSORT%[N%]]
   GCLIP 1,0,256,511,511
   GTRI DVXR%[V1%],DVYR%[V1%],DVXR%[V2%],DVYR%[V2%],DVXR%[V3%],DVYR%[V3%]
   GCLIP 1,0,  0,511,255
   GTRI DVXL%[V1%],DVYL%[V1%],DVXL%[V2%],DVYL%[V2%],DVXL%[V3%],DVYL%[V3%]
   GCLIP 1
  ENDIF
 NEXT
' IF((BUTTON(0) AND 512)==0) THEN RETURN
 RETURN
 'へん
 DIM ENUM% = ModelEdgeNum%[INDEX%]
 FOR N%=0 TO ENUM%-1
  V1% = ModelEdgeA%[INDEX%,N%]
  V2% = ModelEdgeB%[INDEX%,N%]
  IF( VF%[V1%] && VF%[V2%] )THEN
   GCOLOR RGB(127,127,127)'ModelEdgeCL%[INDEX%,N%]
   GCLIP 1,0,256,511,511
   GLINE DVXR%[V1%],DVYR%[V1%],DVXR%[V2%],DVYR%[V2%]
   GCLIP 1,0,  0,511,255
   GLINE DVXL%[V1%],DVYL%[V1%],DVXL%[V2%],DVYL%[V2%]
   GCLIP 1
  ENDIF
 NEXT
 'ちょうてん
 GCOLOR RGB(255,255,255)
 FOR N%=0 TO VNUM%-1
  GCLIP 1,0,256,511,511
  GPSET DVXR%[N%]  ,DVYR%[N%]
  GPSET DVXR%[N%]+1,DVYR%[N%]
  GPSET DVXR%[N%]  ,DVYR%[N%]+1
  GPSET DVXR%[N%]+1,DVYR%[N%]+1
  GPUTCHR DVXR%[N%]+1,DVYR%[N%]+1,STR$(N%)
  GCLIP 1,0,  0,511,255
  GPSET DVXL%[N%]  ,DVYL%[N%]
  GPSET DVXL%[N%]+1,DVYL%[N%]
  GPSET DVXL%[N%]  ,DVYL%[N%]+1
  GPSET DVXL%[N%]+1,DVYL%[N%]+1
  GPUTCHR DVXL%[N%]+1,DVYL%[N%]+1,STR$(N%)
  GCLIP 1
 NEXT
END

DEF ModelRead(DataLabel$)
 RESTORE DataLabel$
 'ちょうてん
 DIM VNUM%
 READ VNUM%
 ModelVertexNum%[ModelNum%] = VNUM%
 DIM X2%
 FOR X2%=0 TO VNUM%-1
  READ ModelVertexX%[ ModelNum%,X2% ]
  READ ModelVertexY%[ ModelNum%,X2% ]
  READ ModelVertexZ%[ ModelNum%,X2% ]
 NEXT
 'へん
 DIM ENUM%
 READ ENUM%
 ModelEdgeNum%[ModelNum%] = ENUM%
 FOR X2%=0 TO ENUM%-1
  READ ModelEdgeA%[ ModelNum%,X2% ]
  READ ModelEdgeB%[ ModelNum%,X2% ]
  READ ModelEdgeCL%[ModelNum%,X2% ]
 NEXT
 'めん
 DIM FNUM%
 READ FNUM%
 ModelFaceNum%[ModelNum%]=FNUM%
 
 DIM MFA%[FNUM%],MFB%[FNUM%],MFC%[FNUM%]
 DIM MFCL%[FNUM%],ZZ%[FNUM%]
 FOR X2%=0 TO FNUM%-1
  READ MFA%[X2%]
  READ MFB%[X2%]
  READ MFC%[X2%]
  READ MFCL%[X2%]
  INC ZZ%[X2%],ModelVertexZ%[ModelNum%,MFA%[X2%]]
  INC ZZ%[X2%],ModelVertexZ%[ModelNum%,MFB%[X2%]]
  INC ZZ%[X2%],ModelVertexZ%[ModelNum%,MFC%[X2%]]
 NEXT
 IF(FNUM%) THEN RSORT 0,FNUM%,ZZ%,MFA%,MFB%,MFC%,MFCL%
 FOR X2%=0 TO FNUM%-1
  ModelFaceA%[ ModelNum%,X2%]=MFA%[ X2%]
  ModelFaceB%[ ModelNum%,X2%]=MFB%[ X2%]
  ModelFaceC%[ ModelNum%,X2%]=MFC%[ X2%]
  ModelFaceCL%[ModelNum%,X2%]=MFCL%[X2%]
 NEXT
 
 INC ModelNum%
 RETURN ModelNum%-1
@PLANEDATA
 DATA 8'ちょうてん の かず
 DATA   0, 0, 8 '0ボディおしり
 DATA  40, 0, 0 '1さよく こうたん
 DATA  40, 0,10 '2さよく ぜんたん
 DATA   0, 0,20 '3ボディ ちゅうおう
 DATA   0, 0,50 '4ボディ せんたん
 DATA -40, 0, 0 '5うよく こうたん
 DATA -40, 0,10 '6うよく ぜんたん
 DATA   0,20,14 '7おへそ
 DATA 13'へん の かず
 DATA   2,4,       -1'RGB(255,255,255)
 DATA   6,4,       -1'RGB(255,255,255)
 DATA   7,4,       -1'RGB(255,255,255)
 DATA   3,4,       -1'RGB(255,255,255)
 DATA   0,1,-16711681'RGB(  0,255,255)
 DATA   1,2,-16711681'RGB(  0,255,255)
 DATA   2,3,-16711681'RGB(  0,255,255)
 DATA   0,5,-16711681'RGB(  0,255,255)
 DATA   5,6,-16711681'RGB(  0,255,255)
 DATA   6,3,-16711681'RGB(  0,255,255)
 DATA   0,7,-16711681'RGB(  0,255,255)
 DATA   0,3,-16711681'RGB(  0,255,255)
 DATA   7,3,-16711681'RGB(  0,255,255)
 DATA 8'めんのかず
 DATA  4,6,3,    -1
 DATA  4,2,3,    -1
 DATA  6,3,0,    -16711681'RGB(  0,255,255)
 DATA  6,5,0,    -16711681'RGB(  0,255,255)
 DATA  2,3,0,    -16711681'RGB(  0,255,255)
 DATA  2,1,0,    -16711681'RGB(  0,255,255)
 DATA  4,3,7,    -2105377
 DATA  0,3,7,    -16725816'RGB(  0,255,255)
@PLANEDATA2
'MONSTER
 DATA 12'ちょうてん の かず
 DATA   0, 0, 8 '0ボディおしり
 DATA  40, 0, 0 '1さよく こうたん
 DATA  40, 0,10 '2さよく ぜんたん
 DATA   0, 0,20 '3ボディ ちゅうおう
 DATA   0, 0,50 '4ボディ せんたん
 DATA -40, 0, 0 '5うよく こうたん
 DATA -40, 0,10 '6うよく ぜんたん
 DATA   0,20,14 '7おへそ
 DATA -20, 0,15
 DATA -20, 0, 5
 DATA  20, 0,15
 DATA  20, 0, 5
 DATA 13'へん の かず
 DATA   2,4,       -1'RGB(255,255,255)
 DATA   6,4,       -1'RGB(255,255,255)
 DATA   7,4,       -1'RGB(255,255,255)
 DATA   3,4,       -1'RGB(255,255,255)
 DATA   0,1,-16711681'RGB(  0,255,255)
 DATA   1,2,-16711681'RGB(  0,255,255)
 DATA   2,3,-16711681'RGB(  0,255,255)
 DATA   0,5,-16711681'RGB(  0,255,255)
 DATA   5,6,-16711681'RGB(  0,255,255)
 DATA   6,3,-16711681'RGB(  0,255,255)
 DATA   0,7,-16711681'RGB(  0,255,255)
 DATA   0,3,-16711681'RGB(  0,255,255)
 DATA   7,3,-16711681'RGB(  0,255,255)
 DATA 12'めんのかず
 DATA  4,6,3,    -3669816
 DATA  4,2,3,    -3669816
 
' DATA  6,3,0,    -16726016'RGB(  0,255,255)
' DATA  6,5,0,    -16726016'RGB(  0,255,255)

' DATA  2,3,0,    -16726016'RGB(  0,255,255)
' DATA  2,1,0,    -16726016'RGB(  0,255,255)
 DATA  8, 6, 5,    -16726016'RGB(  0,255,255)
 DATA  8, 9, 5,    -3669816 'RGB(  0,255,255)

 DATA  3, 8, 9,    -16726016'RGB(  0,255,255)
 DATA  3, 0, 9,    -3669816 'RGB(  0,255,255)

 DATA  3, 0,11,    -3669816 'RGB(  0,255,255)
 DATA  3,10,11,    -16726016'RGB(  0,255,255)

 DATA 10,11, 1,    -3669816 'RGB(  0,255,255)
 DATA 10, 2, 1,    -16726016'RGB(  0,255,255)

 DATA  4,3,7,    -10223516
 DATA  0,3,7,    -16751616'RGB(  0,255,255)
@PLANEDATA3
'DUMP
 DATA 12'ちょうてん の かず
 DATA   0, 0, 8 '0ボディおしり
 DATA  40, 0, 0 '1さよく こうたん
 DATA  40, 0,10 '2さよく ぜんたん
 DATA   0, 0,20 '3ボディ ちゅうおう
 DATA   0, 0,50 '4ボディ せんたん
 DATA -40, 0, 0 '5うよく こうたん
 DATA -40, 0,10 '6うよく ぜんたん
 DATA   0,20,14 '7おへそ
 DATA -20, 0,15
 DATA -20, 0, 5
 DATA  20, 0,15
 DATA  20, 0, 5
 DATA 13'へん の かず
 DATA   2,4,       -1'RGB(255,255,255)
 DATA   6,4,       -1'RGB(255,255,255)
 DATA   7,4,       -1'RGB(255,255,255)
 DATA   3,4,       -1'RGB(255,255,255)
 DATA   0,1,-16711681'RGB(  0,255,255)
 DATA   1,2,-16711681'RGB(  0,255,255)
 DATA   2,3,-16711681'RGB(  0,255,255)
 DATA   0,5,-16711681'RGB(  0,255,255)
 DATA   5,6,-16711681'RGB(  0,255,255)
 DATA   6,3,-16711681'RGB(  0,255,255)
 DATA   0,7,-16711681'RGB(  0,255,255)
 DATA   0,3,-16711681'RGB(  0,255,255)
 DATA   7,3,-16711681'RGB(  0,255,255)
 DATA 12'めんのかず
 DATA  4, 6, 3,    -14336
 DATA  4, 2, 3,    -14336

 DATA  4, 3, 7,    -8363008 'RGB(128,100,  0)
 
 DATA  8, 5, 6,    -8355712 'RGB(128,128,128)
 DATA  8, 5, 9,    -14336   'RGB(255,200,  0)
 
 DATA  8, 3, 9,    -14336   'RGB(255,200,  0)
 DATA  0, 3, 9,    -8355712 'RGB(128,128,128)

 DATA  0, 3,10,    -8355712 'RGB(128,128,128)
 DATA  0,11,10,    -14336   'RGB(255,200,  0)

 DATA  2,11,10,    -14336   'RGB(255,200,  0)
 DATA  2,11, 1,    -8355712 'RGB(128,128,128)
 
 DATA  0,3,7,    -12566464'RGB( 64, 64, 64)
@PLANEDATA4
'STRAWBERRY
 DATA 12'ちょうてん の かず
 DATA   0, 0, 8 '0ボディおしり
 DATA  40, 0, 0 '1さよく こうたん
 DATA  40, 0,10 '2さよく ぜんたん
 DATA   0, 0,20 '3ボディ ちゅうおう
 DATA   0, 0,50 '4ボディ せんたん
 DATA -40, 0, 0 '5うよく こうたん
 DATA -40, 0,10 '6うよく ぜんたん
 DATA   0,20,14 '7おへそ
 DATA -20, 0,15
 DATA -20, 0, 5
 DATA  20, 0,15
 DATA  20, 0, 5
 DATA 13'へん の かず
 DATA   2,4,       -1'RGB(255,255,255)
 DATA   6,4,       -1'RGB(255,255,255)
 DATA   7,4,       -1'RGB(255,255,255)
 DATA   3,4,       -1'RGB(255,255,255)
 DATA   0,1,-16711681'RGB(  0,255,255)
 DATA   1,2,-16711681'RGB(  0,255,255)
 DATA   2,3,-16711681'RGB(  0,255,255)
 DATA   0,5,-16711681'RGB(  0,255,255)
 DATA   5,6,-16711681'RGB(  0,255,255)
 DATA   6,3,-16711681'RGB(  0,255,255)
 DATA   0,7,-16711681'RGB(  0,255,255)
 DATA   0,3,-16711681'RGB(  0,255,255)
 DATA   7,3,-16711681'RGB(  0,255,255)
 DATA 12'めんのかず
 DATA  4, 6, 3,  -65535   'RGB(255,  0,  0)
 DATA  4, 2, 3,  -65535   'RGB(255,  0,  0)

 DATA  4, 3, 7,  -8454144 'RGB(128,  0,  0)
 
 DATA  5, 6, 9,  -16711936'RGB(  0,255,  0)
 DATA  8, 6, 9,  -65535   'RGB(255,  0,  0)
 
 DATA  8, 3, 9,  -65535   'RGB(255,  0,  0)
 DATA  0, 3, 9,  -16711936'RGB(  0,255,  0)

 DATA  0, 3,11,  -16711936'RGB(  0,255,  0)
 DATA 10, 3,11,  -65535   'RGB(255,  0,  0)

 DATA  2,11,10,  -65535   'RGB(255,  0,  0)
 DATA  2,11, 1,  -16711936'RGB(  0,255,  0)
 
 DATA  0,3,7,    -16744704'RGB(  0,128,  0)
@PLANEDATA5
'
 DATA 14'ちょうてん の かず
 DATA   0, 0, 0 '0ボディおしり
 DATA  40, 0, 0 '1さよく こうたん
 DATA  40, 0,10 '2さよく ぜんたん
 DATA   0, 0,10 '3ボディ ちゅうおう
 DATA   0, 0,50 '4ボディ せんたん
 DATA -40, 0, 0 '5うよく こうたん
 DATA -40, 0,10 '6うよく ぜんたん
 DATA   0,20,10 '7おへそ
 DATA -20, 0,10
 DATA -10, 0, 0
 DATA  20, 0,10
 DATA  10, 0, 0
 DATA -30, 0, 0
 DATA  30, 0, 0
 DATA 13'へん の かず
 DATA   2,4,       -1'RGB(255,255,255)
 DATA   6,4,       -1'RGB(255,255,255)
 DATA   7,4,       -1'RGB(255,255,255)
 DATA   3,4,       -1'RGB(255,255,255)
 DATA   0,1,-16711681'RGB(  0,255,255)
 DATA   1,2,-16711681'RGB(  0,255,255)
 DATA   2,3,-16711681'RGB(  0,255,255)
 DATA   0,5,-16711681'RGB(  0,255,255)
 DATA   5,6,-16711681'RGB(  0,255,255)
 DATA   6,3,-16711681'RGB(  0,255,255)
 DATA   0,7,-16711681'RGB(  0,255,255)
 DATA   0,3,-16711681'RGB(  0,255,255)
 DATA   7,3,-16711681'RGB(  0,255,255)
 DATA 13'14'めんのかず
 'まえ
 
 DATA  4, 6, 8,  &HFFD6D6FF'RGB(230,230,255)
 DATA  4, 8, 3,  &HFFE0E0FF'RGB(240,240,255)
 DATA  4, 3,10,  &HFFFFFFFF'RGB(255,255,255)
 DATA  4,10, 2,  &HFFE0E0FF'RGB(240,240,255)
 'なか
 DATA  8, 6,12,  &HFFE0E0FF'RGB(240,240,255)
 DATA  3, 8, 9,  &HFFFFFFFF'RGB(255,255,255)
 DATA 10, 3,11,  &HFFD6D6FF'RGB(230,230,255)
 DATA  2,10,13,  &HFFFFFFFF'RGB(255,255,255)

 'うしろ
 DATA 11,13,10,  &HFFE0E0FF'RGB(240,240,255)
 DATA  9,11, 3,  &HFFE0E0FF'RGB(240,240,255)
 DATA 12, 9, 8,  &HFFD6D6FF'RGB(230,230,255)
 
 'ボディ
 DATA  4, 3, 7,  &HFFD6D6FF'RGB(230,230,255)
 DATA  3, 7, 0,  &HFFFFFFFF'RGB(255,255,255)
 
@TITLEPLANE
 DATA 8'ちょうてん の かず
 DATA    0, 0, 24 '0ボディおしり
 DATA  120, 0,  0 '1さよく こうたん
 DATA  120, 0, 30 '2さよく ぜんたん
 DATA    0, 0, 60 '3ボディ ちゅうおう
 DATA    0, 0,150 '4ボディ せんたん
 DATA -120, 0,  0 '5うよく こうたん
 DATA -120, 0, 30 '6うよく ぜんたん
 DATA    0,80, 42 '7おへそ
 DATA 13'へん の かず
 DATA   2,4,       -1'RGB(255,255,255)
 DATA   6,4,       -1'RGB(255,255,255)
 DATA   7,4,       -1'RGB(255,255,255)
 DATA   3,4,       -1'RGB(255,255,255)
 DATA   0,1,-16711681'RGB(  0,255,255)
 DATA   1,2,-16711681'RGB(  0,255,255)
 DATA   2,3,-16711681'RGB(  0,255,255)
 DATA   0,5,-16711681'RGB(  0,255,255)
 DATA   5,6,-16711681'RGB(  0,255,255)
 DATA   6,3,-16711681'RGB(  0,255,255)
 DATA   0,7,-16711681'RGB(  0,255,255)
 DATA   0,3,-16711681'RGB(  0,255,255)
 DATA   7,3,-16711681'RGB(  0,255,255)
 DATA 8'めんのかず
 DATA  4,6,3,    -1
 DATA  4,2,3,    -1
 DATA  6,3,0,    -16711681'RGB(  0,255,255)
 DATA  6,5,0,    -16711681'RGB(  0,255,255)
 DATA  2,3,0,    -16711681'RGB(  0,255,255)
 DATA  2,1,0,    -16711681'RGB(  0,255,255)
 DATA  4,3,7,    -2105377
 DATA  0,3,7,    -16725816'RGB(  0,255,255)
@MISILEDATA
 DATA 17'ちょうてん の かず
 DATA     0,  0,-15 '0
 
 DATA    10, 10,  0 '1
 DATA   -10, 10,  0 '2
 DATA   -10,-10,  0 '3
 DATA    10,-10,  0 '4
 
 DATA    10, 10, 50 '5
 DATA   -10, 10, 50 '6
 DATA   -10,-10, 50 '7
 DATA    10,-10, 50 '8

 DATA    20, 20, 50 '9
 DATA   -20, 20, 50 '10
 DATA   -20,-20, 50 '11
 DATA    20,-20, 50 '12

 DATA    10, 10, 30 '13
 DATA   -10, 10, 30 '14
 DATA   -10,-10, 30 '15
 DATA    10,-10, 30 '16
 DATA 22'へん の かず
 DATA   1,2,       -1'RGB(255,255,255)
 DATA   2,3,       -1'RGB(255,255,255)
 DATA   3,4,       -1'RGB(255,255,255)
 DATA   4,1,       -1'RGB(255,255,255)

 DATA   1,5,       -1'RGB(255,255,255)
 DATA   2,6,       -1'RGB(255,255,255)
 DATA   3,7,       -1'RGB(255,255,255)
 DATA   4,8,       -1'RGB(255,255,255)

 DATA   6,5,       -1'RGB(255,255,255)
 DATA   7,6,       -1'RGB(255,255,255)
 DATA   8,7,       -1'RGB(255,255,255)
 DATA   5,8,       -1'RGB(255,255,255)

 DATA   9,11,       -1'RGB(255,255,255)
 DATA   10,12,       -1'RGB(255,255,255)

 DATA   13, 9,       -1'RGB(255,255,255)
 DATA   14,10,       -1'RGB(255,255,255)
 DATA   15,11,       -1'RGB(255,255,255)
 DATA   16,12,       -1'RGB(255,255,255)
 
 DATA   0,1,   -65535'RGB(255,255,255)
 DATA   0,2,   -65535'RGB(255,255,255)
 DATA   0,3,   -65535'RGB(255,255,255)
 DATA   0,4,   -65535'RGB(255,255,255)
 DATA 16'めんのかず
 DATA 0,1,2,    -65535
 DATA 0,2,3,    -65535
 DATA 0,3,4,    -65535
 DATA 0,4,1,    -65535

 DATA 5,4,1,    -1
 DATA 5,4,8,    -1

 DATA 8,3,4,    -1
 DATA 8,3,7,    -1

 DATA 7,2,3,    -1
 DATA 7,2,6,    -1

 DATA 6,1,2,    -1
 DATA 6,1,5,    -1

 DATA  9,5,13,    -1
 DATA 10,6,14,    -1
 DATA 11,7,15,    -1
 DATA 12,8,16,    -1

@YAKKODATA
 DATA 12'ちょうてん の かず
 DATA     0,  0,  0 '0
 DATA   -20,-20,  0 '1
 DATA     0,-40,  0 '2
 DATA    20,-20,  0 '3
 
 DATA   -40,-20,  0 '4
 DATA   -40, 20,  0 '5
 DATA    40,-20,  0 '6
 DATA    40, 20,  0 '7
 
 DATA   -20, 40,  0 '8
 DATA    20, 40,  0 '9

 DATA    20, 20,  0 '10
 DATA   -20, 20,  0 '11


 DATA 12'へん の かず
 DATA   0,1,       -1'RGB(255,255,255)
 DATA   1,2,       -1'RGB(255,255,255)
 DATA   2,3,       -1'RGB(255,255,255)
 DATA   3,0,       -1'RGB(255,255,255)
 DATA   4,1,   -65535'RGB(255,  0,  0)
 DATA   6,3,   -65535'RGB(255,  0,  0)
 DATA   4,5,   -65535'RGB(255,  0,  0)
 DATA   6,7,   -65535'RGB(255,  0,  0)
 DATA   5,7,   -65535'RGB(255,  0,  0)
 DATA   1,8,   -65535'RGB(255,  0,  0)
 DATA   3,9,   -65535'RGB(255,  0,  0)
 DATA   8,9,   -65535'RGB(255,  0,  0)
 DATA 10'めんのかず

 'ひだりそで
 DATA  7, 6, 3, -3669888
 DATA  7,10, 3, -3669888

 'みぎそで
 DATA  1, 4,11, -65535
 DATA  5, 4,11, -65535

 'はかま
 DATA  8, 9,10, -3669888
 DATA  8,11,10, -3669888

 'ボディ
 DATA 10,11, 3, -3669888
 DATA 11, 0, 1, -65535

 'あたま
 DATA  3, 0, 2, -8355712
 DATA  1, 0, 2, -8355712

 'あかい!
 'ひだりそで
 DATA  7, 6, 3, -45992
 DATA  7,10, 3, -45992

 'みぎそで
 DATA  1, 4,11, -45992
 DATA  5, 4,11, -45992

 'はかま
 DATA  8, 9,10, -45992
 DATA  8,11,10, -45992

 '
 DATA 10,11, 3, -4718548
 DATA 11, 0, 1, -4718548

 'あたま
 DATA  1, 0, 3, -12566464
 DATA  1, 2, 3, -45992


@ROBO_1
 DATA 21
 DATA     0,   0,   0  '0
 
 DATA   100, 100,-100
 DATA  -100, 100,-100
 DATA   100,-100,-100
 DATA  -100,-100,-100  '4

 DATA   100, 100, 100
 DATA  -100, 100, 100
 DATA   100,-100, 100
 DATA  -100,-100, 100  '8

 DATA    40, 50,-100
 DATA   -40, 50,-100
 DATA    40,100,-100
 DATA   -40,100,-100   '12
 
 DATA  100 ,  40, 0
 DATA  130 ,  20, 0
 DATA  130 , -30, 0
 DATA  100 , -20, 0    '16
 
 DATA -100 ,  40, 0
 DATA -130 ,  20, 0
 DATA -130 , -30, 0
 DATA -100 , -20, 0    '20


 DATA 24
 DATA   1, 3, -1
 DATA   3, 4, -1
 DATA   4, 2, -1
 DATA   1,11, -1
 DATA   2,12, -1
 
 DATA  11, 9, -65535
 DATA   9,10, -65535
 DATA  10,12, -65535
 
 DATA   1, 5, -1
 DATA   2, 6, -1
 DATA   3, 7, -1
 DATA   4, 8, -1

 DATA   5, 6, -1
 DATA   6, 8, -1
 DATA   8, 7, -1
 DATA   7, 5, -1
 
 DATA  13,14, -1
 DATA  14,15, -1
 DATA  15,16, -1
 DATA  16,13, -1

 DATA  17,18, -1
 DATA  18,19, -1
 DATA  19,20, -1
 DATA  20,17, -1
 
 DATA 24'めんのかず

 'しょうめん 7

 DATA   2, 4,12, -8355712'RGB(128,128,128)
 DATA   3, 4, 1, -8355712'
 DATA   4,12,10, -8355712'
 DATA   4,10, 9, -8355712'
 DATA   4, 9, 1, -8355712'
 DATA   3, 1, 9, -8355712'
 DATA   9,11, 1, -8355712'

 'てっぺん 2
 DATA  8, 7, 4, -1
 DATA  3, 4, 7, -1

 'うしろ 2
 DATA  8, 6, 7, -8388608
 DATA  5, 6, 7, -8388608'65535

 'そこ 4
 DATA  2, 6, 12,-32768'-65535
 DATA  5, 6, 1,-32768'-65535
 DATA  12, 1, 6,-32768'-65535

 DATA  11, 1, 5,-32768'-65535

 

 'そくめん 2
 DATA   8, 4, 6, -3618616'RGB(200,200,200)
 DATA   2, 4, 6, -3618616'RGB(200,200,200)

 'そくめん 3
 DATA   5, 7, 1, -3618616'RGB(200,200,200)
 DATA   7, 3, 1, -3618616'RGB(200,200,200)
 DATA   5, 3, 1, -3618616'RGB(200,200,200)
 


 'みみ 4
 DATA 13,14,15, -2039584
 DATA 13,16,15, -2039584
 DATA 17,18,19, -2039584
 DATA 17,20,19, -2039584
 
@ROBO_2
 DATA 10
 DATA  -80, -50 , -120
 DATA  -10, -50 , -120
 DATA  -10, -10 , -120
 DATA  -80, -10 , -120
 DATA   80, -50 , -120
 DATA   10, -50 , -120
 DATA   10, -10 , -120
 DATA   80, -10 , -120
 DATA   10, -30 , -120
 DATA  -10, -30 , -120
 DATA 9
 DATA   0, 1, -1
 DATA   1, 2, -1
 DATA   2, 3, -1
 DATA   3, 0, -1
 
 DATA   4, 5, -1
 DATA   5, 6, -1
 DATA   6, 7, -1
 DATA   7, 4, -1
 DATA   8, 9, -1
 DATA 5'めんのかず
 DATA    0,  1,  2, -3618616'RGB(200,200,200)
 DATA    0,  3,  2, -3618616'RGB(200,200,200)
 DATA    4,  5,  6, -3618616'RGB(200,200,200)
 DATA    4,  7,  6, -3618616'RGB(200,200,200)
 DATA    8,  9,  8, -3618616'RGB(200,200,200)
 
@ROBO_3
 DATA 5
 DATA   0, 10, -120
 DATA  70, 20, -120
 DATA  80, 48, -120
 DATA -80, 48, -120
 DATA -70, 20, -120
 DATA 5
 DATA  0,1,-4144960
 DATA  1,2,-4144960
 DATA  2,3,-4144960
 DATA  3,4,-4144960
 DATA  4,0,-4144960
 DATA 3'めんのかず
 DATA   0,2,1, -3618616'RGB(200,200,200)
 DATA   0,2,3, -3618616'RGB(200,200,200)
 DATA   0,4,3, -3618616'RGB(200,200,200)
 
@ROBO_4'くち
 DATA 4
 DATA  40, 50,-100
 DATA  40,100,-100
 DATA -40,100,-100
 DATA -40, 50,-100
 DATA 4
 DATA   0, 1, -1
 DATA   1, 2, -1
 DATA   2, 3, -1
 DATA   3, 0, -65535
 DATA 2'めんのかず
 DATA    0,  1,  2, -8355712'RGB(128,128,128)
 DATA    0,  3,  2, -8355712'RGB(128,128,128)

@STAND
 DATA 12
 DATA   15,  0,10
 DATA  -15,  0,10
 DATA  -35,  0,40
 DATA   35,  0,40
 DATA   15,-150,10
 DATA  -15,-150,10
 DATA  -15,-150,40
 DATA   15,-150,40
 
 DATA  15, -50,10
 DATA -15, -50,10

 DATA  15,-100,10
 DATA -15,-100,10
 
 DATA 20
 DATA  0, 1, -3618616
 DATA  1, 2, -3618616
 DATA  2, 3, -3618616
 DATA  3, 0, -3618616

 DATA  4, 5, -3618616
 DATA  5, 6, -3618616
 DATA  6, 7, -3618616
 DATA  7, 4, -3618616

 DATA  0, 4, -3618616
 DATA  1, 5, -3618616
 DATA  2, 6, -3618616
 DATA  3, 7, -3618616

 DATA  0, 5, -3618616
 DATA  1, 6, -3618616
 DATA  2, 7, -3618616
 DATA  3, 4, -3618616

 DATA  0, 7, -3618616
 DATA  1, 4, -3618616
 DATA  2, 5, -3618616
 DATA  3, 6, -3618616
 DATA 12'めんのかず
 'はしご
 DATA  0, 0, 1,-3618616

 DATA  0, 0, 9,-3618616
 DATA  1, 1, 8,-3618616

 DATA  8, 8, 9,-3618616

 DATA  8, 8,11,-3618616
 DATA  9, 9,10,-3618616

 DATA 10,10,11,-3618616

 DATA 10,10, 5,-3618616
 DATA 11,11, 4,-3618616
 
 DATA  5, 5, 4,-3618616
 'そくめん
 DATA 1,2,5,-3618616
 DATA 0,3,4,-3618616
 
@TORI
 DATA 12
 DATA   0, 5,-20
 DATA  20, 5,-10
 DATA  30, 0, 20
 DATA  10, 5, 10
 DATA   5, 5, 0
 DATA   0, 5, 7
 DATA  -5, 5, 0
 DATA -10, 5, 10
 DATA -30, 0, 20
 DATA -20, 5,-10
 DATA   0, -5,-5
 DATA   0, -5, 20
 DATA 14
 DATA   0,1,   -65535'RGB(255,255,255)
 DATA   1,2,   -65535'RGB(255,255,255)
 DATA   2,3,   -65535'RGB(255,255,255)
 DATA   3,4,   -65535'RGB(255,255,255)
 DATA   4,5,   -65535'RGB(255,255,255)
 DATA   5,6,   -65535'RGB(255,255,255)
 DATA   6,7,   -65535'RGB(255,255,255)
 DATA   7,8,   -65535'RGB(255,255,255)
 DATA   8,9,   -65535'RGB(255,255,255)
 DATA   9,0,   -65535'RGB(255,255,255)
 DATA   0,5,   -65535'RGB(255,255,255)
 DATA   0,10,   -65535'RGB(255,255,255)
 DATA   5,11,   -65535'RGB(255,255,255)
 DATA  10,11,   -65535'RGB(255,255,255)
 DATA 5'めんのかず

 DATA 0,1,3,  -65535
 DATA 2,1,3,  -65535

 DATA 0,9,7,  -65535
 DATA 8,9,7,  -65535

 DATA 0,10,11,  -65535

END
DIM PLANEMODEL%=ModelRead("@PLANEDATA")
DIM PLANEMODEL2%=ModelRead("@PLANEDATA2")

DIM MISILEMODEL%=ModelRead("@MISILEDATA")
DIM YAKKOMODEL%=ModelRead("@YAKKODATA")
DIM ROBOMODEL_1%=ModelRead("@ROBO_1")

DIM ROBOMODEL_2%=ModelRead("@ROBO_2")
DIM ROBOMODEL_3%=ModelRead("@ROBO_3")
DIM ROBOMODEL_4%=ModelRead("@ROBO_4")
DIM STANDMODEL%=ModelRead("@STAND")
DIM TORIMODEL%=ModelRead("@TORI")

DIM PLANEMODEL3%=ModelRead("@PLANEDATA3")
DIM PLANEMODEL4%=ModelRead("@PLANEDATA4")
DIM PLANEMODEL5%=ModelRead("@PLANEDATA5")

'----------MessageWindow---------
DIM BFONT%[65535]
DIM BFS$'="をぁぃぅぇぉゃゅょっ®あいうえおかきくけこさしすせそたちつてと"
BFS$="®®ABCDEFGHIJKLMNOPQRSTUVWXYZ"
FOR X%=0 TO LEN(BFS$)-1
 BFONT%[ ASC( MID$(BFS$,X%,1) )] =   X%
NEXT
BFS$="®®abcdefghijklmnopqrstuvwxyz"
FOR X%=0 TO LEN(BFS$)-1
 BFONT%[ ASC( MID$(BFS$,X%,1) )] = 32*1 +X%
NEXT
BFS$="®®'()®ヲァィゥェォャュョッーアイウエオカキクケコサシスセソ"
FOR X%=0 TO LEN(BFS$)-1
 BFONT%[ ASC( MID$(BFS$,X%,1) )] = 32*2 +X%
NEXT
BFS$="タチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン"
FOR X%=0 TO LEN(BFS$)-1
 BFONT%[ ASC( MID$(BFS$,X%,1) )] = 32*3 +X%
NEXT
BFS$="ガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポ®®®®®!?"
FOR X%=0 TO LEN(BFS$)-1
 BFONT%[ ASC( MID$(BFS$,X%,1) )] = 32*4 +X%
NEXT
BFS$="®®“”,.をぁぃぅぇぉゃゅょっ®あいうえおかきくけこさしすせそ"
FOR X%=0 TO LEN(BFS$)-1
 BFONT%[ ASC( MID$(BFS$,X%,1) )] = 32*5 +X%
NEXT
BFS$="たちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわん®®"
FOR X%=0 TO LEN(BFS$)-1
 BFONT%[ ASC( MID$(BFS$,X%,1) )] = 32*6 +X%
NEXT
BFS$="がぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽ"
FOR X%=0 TO LEN(BFS$)-1
 BFONT%[ ASC( MID$(BFS$,X%,1) )] = 32*7 +X%
NEXT
BFS$="0123456789"
FOR X%=0 TO LEN(BFS$)-1
 BFONT%[ ASC( MID$(BFS$,X%,1) )] = 32*8 +X%
NEXT


DIM MWTime%=0
DIM MWMode%=0
DIM MWStr$[3]
DIM MWIcon%=0
DIM MWDX%=0
DIM MWDY%=0
DIM MWDT%=0
COMMON DEF MessageWindow Icon%,S$
 MWIcon%=Icon%
 DIM N%=0
 DIM P%=0,L%=0
 DIM TMP$="",K$
 DIM E%=0
 MWStr$[0]=""
 MWStr$[1]=""
 MWStr$[2]="" 
 FOR N%=0 TO LEN(S$)-2
  K$ = MID$(S$,N%,2)
  IF( K$=="\n" ) THEN
   MWStr$[L%] = MID$(S$,P%,N%-P%)
   P% = N%+2
   INC L%
   IF( 2 <= L% ) THEN BREAK
  ENDIF
 NEXT
 MWStr$[L%] = MID$(S$,P%,LEN(S$)-P%)
 MWMode%=1
 MWTime%=0
 'DISPLAY 0 'PI:no dual screen
 GPAGE 0,0
 GFILL 40,176,103+8*40,175+16*4,0 'PI:incl face area
 'BGFILL 2,0,0,23,3,0
' TALKSTOP
 BEEP 1
END
DEF MessageErase
 'DISPLAY 0 'PI:no dual screen
 GPAGE 0,0
 GFILL 40,176,103+8*40,175+16*4,0 'PI:incl face area
 'BGFILL 2,0,0,23,3,0
 MWMode% = 0
END
COMMON DEF MessageCheck
 DIM X2%,Y2%,N2%,M2%,S2%,T2%,N%
 DIM C%
 'DISPLAY 0 'PI:no dual screen
 GPAGE 0,0
 INC MWTime%
 DIM NextMode% = MWMode%
 '---------------
 IF( MWMode% == 1 ) THEN
   IF( MWTime% <= 10) THEN
   'DISPLAY 0 'PI:no dual screen
   N2% = 512+3*32*4+16+3*4
   M2%=MWTime% MOD 4
   'PI: static/noise (was a mirrored CHAR noise tile on BG2; GCOPY can't do the per-pixel
   'flip). Fresh random COLOUR blocks in the 64x64 face area each frame, plus the 1px
   'green border (RGB 0,131,65) that the CHAR face/noise tiles carry.
   FOR Y2%=0 TO 15
    FOR X2%=0 TO 15
     GFILL 40+X2%*4,176+Y2%*4,43+X2%*4,179+Y2%*4,RGB(RND(230),RND(230),RND(230))
    NEXT
   NEXT
   GLINE 40,176,103,176,RGB(0,131,65):GLINE 40,239,103,239,RGB(0,131,65)
   GLINE 40,176,40,239,RGB(0,131,65):GLINE 103,176,103,239,RGB(0,131,65)
  ELSE
   NextMode% = 2
   MWTime% = 0
   'DISPLAY 0 'PI:no dual screen
   N2% = 512+(MWIcon% DIV 4)*32*4+16+(MWIcon% MOD 4)*4
   'PI: face was a 4x4 BG-tile block; draw it via GCOPY from CHAR(GRP3).
   'tile T -> CHAR px ((T MOD 32)*16,(T DIV 32)*16); 4 tiles = 64px face.
   GPAGE 0,0
   GFILL 40,176,103,239,0 'clear the open-static under the face first
   GCOPY 3,(N2% MOD 32)*16,(N2% DIV 32)*16,(N2% MOD 32)*16+63,(N2% DIV 32)*16+63,40,176,1
   FOR Y2%=0 TO 3
    FOR X2%=0 TO 3
     'BGPUT 2,X2%,Y2%,N2%+X2%+Y2%*32
    NEXT
   NEXT
   MWDX%=0:MWDY%=0:MWDT%=0
  ENDIF
 ENDIF
 '---------------
 IF( MWMode% == 2 ) THEN
'  IF( MWTime% AND 1)THEN
   FOR N%=MWDY% TO 2
    IF( MWDY% < 3 ) THEN
     IF( LEN(MWStr$[MWDY%]) <=0 ) THEN
      INC MWDY%
     ENDIF
    ENDIF
   NEXT
   IF( MWDY% < 3 ) THEN
    C% = ASC( MID$(MWStr$[MWDY%],MWDX%,1) )
'    DISPLAY 0
'    BGPUT 2,MWDX%+4,MWDY%,BFONT%[C%]
    'DISPLAY 0 'PI:no dual screen
    GPAGE 0,0
    GPUTCHR 104+MWDX%*8,176+MWDY%*16,C%,1,2,-1
    IF(C%)THEN BEEP 9
    INC MWDX%
    IF( LEN(MWStr$[MWDY%]) <= MWDX%) THEN
     MWDX%=0
     INC MWDY%
    ENDIF
   ELSE
    INC MWDT%
   ENDIF
'  IF( TALKCHK() == FALSE ) THEN
'  ENDIF
  IF(70<MWDT%)THEN
   GFILL 40,176,103+8*40,175+16*4,0 'PI:incl face area
   NextMode%=3
   MWTime% = 0
   BEEP 1
  ENDIF
 ENDIF 
 '---------------
 IF( MWMode% == 3 ) THEN
   'DISPLAY 0 'PI:no dual screen
   N2% = 512+3*32*4+16+3*4
   M2%=MWTime% MOD 4
   'PI: static/noise (was a mirrored CHAR noise tile on BG2; GCOPY can't do the per-pixel
   'flip). Fresh random COLOUR blocks in the 64x64 face area each frame, plus the 1px
   'green border (RGB 0,131,65) that the CHAR face/noise tiles carry.
   FOR Y2%=0 TO 15
    FOR X2%=0 TO 15
     GFILL 40+X2%*4,176+Y2%*4,43+X2%*4,179+Y2%*4,RGB(RND(230),RND(230),RND(230))
    NEXT
   NEXT
   GLINE 40,176,103,176,RGB(0,131,65):GLINE 40,239,103,239,RGB(0,131,65)
   GLINE 40,176,40,239,RGB(0,131,65):GLINE 103,176,103,239,RGB(0,131,65)
  IF( 10 < MWTime% ) THEN
   NextMode%=0
   GFILL 40,176,103+8*40,175+16*4,0 'PI: clear the static + box when the window closes
  ENDIF
 ENDIF
 MWMode% = NextMode%
END
'--------CONSOLE--------
COMMON DEF C2MES STRING$,PX%,PY%
 'PI: BG layer 1 (the Cons2Var HUD) is gone. Draw it on the CONSOLE layer, but
 'BUFFERED: write into HudRow$ now; HudFlush blits it once per frame after the
 'render (mirrors the old BGLOAD atomic blit -> no mid-frame blank/flicker).
 'Old grid was 25x15 (16px BG tiles); console stays default 50x30 (the game uses
 'its own LOCATE/PRINT elsewhere), so map grid->console x2 to keep positions.
 IF( 14 < PY% ) THEN RETURN
 IF( 24 < PX% ) THEN RETURN
 DIM R% = PY%*2
 DIM C% = PX%*2
 DIM T$ = LEFT$(STRING$,50-C%)
 'overlay T$ into HudRow$[R%] starting at column C% (leaves other columns intact,
 'so two C2MES calls on the same row - e.g. "L" and "R" - both land)
 DIM BASE$ = HudRow$[R%]
 WHILE( LEN(BASE$) < C% )
  BASE$ = BASE$ + " "
 WEND
 DIM TAIL$ = ""
 IF( LEN(BASE$) > C%+LEN(T$) ) THEN TAIL$ = MID$(BASE$,C%+LEN(T$),LEN(BASE$))
 HudRow$[R%] = LEFT$(BASE$,C%) + T$ + TAIL$
END
'PI: blit the buffered HUD to the console. Only touches HUD rows (never the rows
'the game PRINTs its own tables/credits on), so those persist. Transparent bg
'means printed spaces clear stale glyphs without painting black over the 3D view.
COMMON DEF HudFlush
 COLOR RGB(255,255,255),RGB(0,0,0,0)
 DIM R%,L%,K%
 FOR R%=0 TO 29
  L% = LEN(HudRow$[R%])
  IF( L% > 0 ) THEN
   LOCATE 0,R%
   PRINT HudRow$[R%];
   K% = HudRowLit%[R%]-L%
   WHILE( K% > 0 ):PRINT " ";:K%=K%-1:WEND
   HudRowLit%[R%] = L%
  ELSEIF( HudRowLit%[R%] > 0 ) THEN
   LOCATE 0,R%
   K% = HudRowLit%[R%]
   WHILE( K% > 0 ):PRINT " ";:K%=K%-1:WEND
   HudRowLit%[R%] = 0
  ENDIF
  HudRow$[R%] = ""
 NEXT
END
'----------KEY----------
DIM KeyState%
DIM KeyStateLog%
COMMON DEF GetKey()
 RETURN KeyState%
END
COMMON DEF GetKeyF()
 RETURN KeyState% AND (NOT KeyStateLog%)
END
'----------PAD----------
DIM PadStateX#,PadStateY#
DIM PadStateLogX#,PadStateLogY#
COMMON DEF GetPadX()
 RETURN PadStateX#
END
COMMON DEF GetPadY()
 RETURN PadStateY#
END
DIM PadState%
DIM PadStateLog%
COMMON DEF GetPadAsUDLR()
 RETURN PadState%
END
COMMON DEF GetPadFAsUDLR()
 RETURN PadState% AND (NOT PadStateLog%)
END
'----------MOUSE----------
'PI: mouse support (always on - it doesn't conflict with the gamepad). Moving the
'mouse feeds the circle-pad value analog-style (fast = large deflection, slow = small),
'so both slight and large movements work; left-click = A (16, attack/confirm),
'right-click = X (64, change camera). Pi API: MOUSEMOV OUT dx,dy,wheel,hwheel gives
'per-frame RELATIVE motion; MOUSEBTN() bit 1 = left, bit 2 = right.
DIM MouseDX#,MouseDY#,MouseDW#,MouseDH#
DIM MouseTiltX#,MouseTiltY#,StickPadY#,MenuPadY#
DIM MouseSens#=0.045 'pixels-per-frame -> stick deflection; ~22px = full tilt (tunable)
'-------MAIN-------
'DISPLAY 0 'PI:no dual screen
CLS
DIM StartFrame%
DIM SkipDrawFrag%=0
DIM ZR% 'PI: reusable loop index for HUD-row reset on sequence change

DIM NowSeq$="SEQ_CHECK"
DIM NextSeq$
CALL NowSeq$
WHILE 1
 StartFrame% = MAINCNT
 'KEY
 KeyStateLog% = KeyState%
 KeyState% = BUTTON(0)
 'PI: fold mouse buttons into the key state - left-click acts as A (attack/confirm),
 'right-click as X (camera). Held clicks behave like held buttons; GetKeyF edge-detects.
 IF( MOUSEBTN() AND 1 ) THEN KeyState% = KeyState% OR 16
 IF( MOUSEBTN() AND 2 ) THEN KeyState% = KeyState% OR 64
 'PAD
 PadStateLogX#=PadStateX#
 PadStateLogY#=PadStateY#
 PadStateLog%=PadState%
 STICK OUT PadStateX#,PadStateY#
 PadStateY#=-PadStateY# 'PI: STICK Y INVERTED
 'PI: fold relative mouse motion into the analog pad value (mouse right/down match
 'stick right/down after the Y invert above), then clamp to the stick's [-1,1] range.
 StickPadY# = PadStateY# 'stick-only Y, before the mouse is mixed in
 MOUSEMOV OUT MouseDX#,MouseDY#,MouseDW#,MouseDH#
 MouseTiltX# = MouseDX#*MouseSens#
 MouseTiltY# = MouseDY#*MouseSens#
 PadStateX# = MAX(-1.0, MIN(1.0, PadStateX# + MouseTiltX#))
 PadStateY# = MAX(-1.0, MIN(1.0, PadStateY# + MouseTiltY#)) 'flight uses this (GetPadY)
 'PI: digitized U/D/L/R for menu navigation. In menus the mouse feels vertically
 'inverted (moving the mouse UP should move the selection UP), so the vertical menu
 'bits read the stick with the mouse Y SUBTRACTED - flight (the analog PadStateY#
 'above) is left untouched. Horizontal is unchanged.
 MenuPadY# = MAX(-1.0, MIN(1.0, StickPadY# - MouseTiltY#))
 PadState%=0
 IF(MenuPadY#<-0.5) THEN PadState%=PadState% OR 2
 IF(MenuPadY#> 0.5) THEN PadState%=PadState% OR 1
 IF(PadStateX#<-0.5) THEN PadState%=PadState% OR 4
 IF(PadStateX#> 0.5) THEN PadState%=PadState% OR 8
 'しさ ちょうせい
 IF( GetKey() AND 1 ) THEN
  INC ParallaxLevel%
 ENDIF
 IF( GetKey() AND 2 ) THEN
  DEC ParallaxLevel%
 ENDIF
 IF(ParallaxLevel%>19) THEN ParallaxLevel%=19
 IF(ParallaxLevel% <0) THEN ParallaxLevel%=0
 'DISPLAY 0 'PI:no dual screen
 IF( ParallaxLevel%==0 ) THEN
  SPOFS 160,(400-ScreenSizeX%)/2,(240-ScreenSizeY%)/2,1
  'BGHIDE 0
  SPCOLOR 160,RGB(255,255,255) 'PI: full brightness (was 3D-off gray)
 ELSE 
  SPOFS 160,(400-ScreenSizeX%)/2,(240-ScreenSizeY%)/2,16
  'BGSHOW 0
  SPCOLOR 160,RGB(255,255,255)
 ENDIF
 'DISPLAY 1 'PI:no dual screen
 SPOFS 16,16,(20-ParallaxLevel%)*8+56,-1
 'SEQ
 NextSeq$ = CALL( NowSeq$+"_UPDATE$" )
 IF(SkipDrawFrag%) THEN
  SkipDrawFrag%=0
 ELSE
  'PI: no frame-start CLS - it blanked the console for the whole (slow) render.
  'The DRAW buffers HUD text into HudRow$; HudFlush blits it atomically below.
  CALL( NowSeq$+"_DRAW" )
  HudFlush
  ScreenFrip
 ENDIF
' MessageCheck
 'PI: original frame-skip - if a frame ran long (>2 ticks) skip the next DRAW+ScreenFrip
 'to hold timing. On slow/low-end CPUs this (with the un-VSYNCed buffer swap) can cause
 'the gameplay plane to flicker near objects; it's fine on faster machines. Left as-is.
 IF( (MAINCNT-StartFrame%) > 2 ) THEN
  SkipDrawFrag%=1
 ENDIF
 WHILE((MAINCNT-StartFrame%) < 2):WEND
 IF( NextSeq$ != NowSeq$ ) THEN
  IF( CHKCALL(NextSeq$)==FALSE) THEN END
  'DISPLAY 0 'PI:no dual screen
  COLOR RGB(255,255,255),RGB(0,0,0,0)
  CLS
  'PI: console was just cleared - forget lit HUD rows so the next screen redraws
  'fresh (its own PRINTs in the sequence enter function then persist).
  FOR ZR%=0 TO 29:HudRow$[ZR%]="":HudRowLit%[ZR%]=0:NEXT
  MessageErase
  'PI: erase the HP-bar HUD (drawn on GRP0, which - unlike the original's per-frame-
  'cleared Cons2Var - persists) on every screen change, so it doesn't linger on the
  'title/cutscenes after gameplay. SEQ_GAME_DRAW redraws it each frame during play.
  GPAGE 0,0:GFILL 44,14,360,34,RGB(0,0,0,0) 'wide enough for the max 18-HP gauge (288px)
  CALL NextSeq$
  NowSeq$ = NextSeq$
 ENDIF
WEND

