Skip to content

Instantly share code, notes, and snippets.

@kuyuri-iroha
Last active August 20, 2018 02:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kuyuri-iroha/7e9f965d8bb5e8125c06bc0ce588aef8 to your computer and use it in GitHub Desktop.
Save kuyuri-iroha/7e9f965d8bb5e8125c06bc0ce588aef8 to your computer and use it in GitHub Desktop.
https://www.youtube.com/watch?v=ahCOEWezUOk 大学の課題で発表した作品のソースコードです。実行にはHMM.DLLのダウンロードとファイルディレクトリの設定が必要です。
#include "d3m.hsp"
#include "hmm.as"
#include "gdi32.as"
//__________________________________
//定数
#define global TITLE_STR "Phantomizer"
#define global SONG_FILE "Phantomizer.wav"
#const global SC_SIZE_X 1280
#const global SC_SIZE_Y 720
#const global SC_CENTER_X 1.0*SC_SIZE_X / 2.0
#const global SC_CENTER_Y 1.0*SC_SIZE_Y / 2.0
#const global BUF_INTRO_TITLE_SIZE_X 651.0 * 1.6 / 1.5
#const global BUF_INTRO_TITLE_SIZE_Y 115.0 * 1.6 / 1.5
#const global CAMERA_DEF_X 0.0
#const global CAMERA_DEF_Y -500.0
#const global CAMERA_DEF_Z 0.0
#const global CAMERA_AT_DEF_X 0.0
#const global CAMERA_AT_DEF_Y 0.0
#const global CAMERA_AT_DEF_Z 0.0
#const global BUF_SCREEN 0
#const global BUF_SONG 1
#const global BUF_INTRO 2
#const global BUF_INTRO_0 3
#const global BUF_INTRO_TITLE 4
#const global BUF_FIRST 5
#const global BUF_SECOND 6
#const global BUF_SECOND_0 7
#const global BUF_SECOND_1 67
#const global BUF_THIRD 8
#const global BUF_THIRD_0 9
#const global BUF_FOURTH 10
#const global BUF_FIFTH 11
#const global BUF_SIXTH 12
#const global BUF_SIXTH_0 13
#const global BUF_SEVENTH 14
#const global BUF_EIGHTH 15
#const global BUF_EIGHTH_0 16
#const global BUF_INFO 17
#const global BUF_FLASHBACK_B 30
#const global BUF_FLASHBACK_E 66
//__________________________________
//変数
frame = 0
offsetTime = 0
time = 0
camX = CAMERA_DEF_X
camY = CAMERA_DEF_Y
camZ = CAMERA_DEF_Z
camAtX = CAMERA_AT_DEF_X
camAtY = CAMERA_AT_DEF_Y
camAtZ = CAMERA_AT_DEF_Z
ddim cubeVertices, 3, 8 //(0, x), (1, y), (3, z)
//
// 4 ________ 5
// /_______/|
// 0 | 1 | |
// | 7 | | 6
// |______|/
// 3 2
//
cubeVertices(0, 0) = -1.0
cubeVertices(1, 0) = -1.0
cubeVertices(2, 0) = 1.0
cubeVertices(0, 1) = 1.0
cubeVertices(1, 1) = -1.0
cubeVertices(2, 1) = 1.0
cubeVertices(0, 2) = 1.0
cubeVertices(1, 2) = -1.0
cubeVertices(2, 2) = -1.0
cubeVertices(0, 3) = -1.0
cubeVertices(1, 3) = -1.0
cubeVertices(2, 3) = -1.0
cubeVertices(0, 4) = -1.0
cubeVertices(1, 4) = 1.0
cubeVertices(2, 4) = 1.0
cubeVertices(0, 5) = 1.0
cubeVertices(1, 5) = 1.0
cubeVertices(2, 5) = 1.0
cubeVertices(0, 6) = 1.0
cubeVertices(1, 6) = 1.0
cubeVertices(2, 6) = -1.0
cubeVertices(0, 7) = -1.0
cubeVertices(1, 7) = 1.0
cubeVertices(2, 7) = -1.0
//INTRO
introFrame = 0
introNodes = 0
introTickNodeWidth = 120.0 / 1.5
introTickNodeX = 360.0 / 1.5
introTickNodeY = 443.0 / 1.5
introSnareNodeWidth = 50.0 / 1.5
introSnareNodeLX = 360.0 / 1.5
introSnareNodeLY = 443.0 / 1.5
introSnareNodeRX = 1320.0 / 1.5
introSnareNodeRY = 443.0 / 1.5
introTileSize = 80
introTileSizeH = introTileSize / 2
introTileDivNumX = SC_SIZE_X / introTileSize
introTileDivNumY = SC_SIZE_Y / introTileSize
//FIRST
firstCubeScale = 255.0
ddim firstCube, 3, 8
firstCubeScaleFreq = 31.8
//SECOND
ddim secondCubeX, 4
ddim secondCubeY, 4
ddim secondCubeZ, 4
ddim secondCubeS, 4
tempCircleRadius = 250.0
tempCircleHeight = 256.0
tempCircleDist = tempCircleRadius - tempCircleHeight / 2.0
tempCircleCRadius = 80.0
tempCircleC2Radius = 30.0
secondDrew = 0
//THIRD
ddim thirdTunnelRectVert, 2, 4
dimtype thirdTunnelRects, vartype("struct"), 0
//FOURTH
//FIFTH
fifthPWaveOffsetX = -150.0
fifthPWaveOffsetY = -1000.0
ddim fifthPWaveDelays, 20
repeat 20
fifthPWaveDelays(cnt) = rnd(abs(fifthPWaveOffsetY) * 2.0 / 20.0)
loop
//SIXTH
sixthSphereSize = 150.0
sixthSatelSize = 30.0
//SEVENTH
seventhRoadWidth = 1000.0
seventhRoadLength = 20000.0
seventhStructBSize = 200.0
seventhStructB2Size = 150.0
seventhStructCSize = 100.0
seventhStructTSize = 200.0
seventhStructT2Size = 150.0
ddim seventhStructAxis, 3
seventhStructAxis(0) = 1.0
seventhStructAxis(1) = 0.0
seventhStructAxis(2) = 0.0
ddim seventhStructAxis2, 3
seventhStructAxis2(0) = 0.0
seventhStructAxis2(1) = 1.0
seventhStructAxis2(2) = 0.0
//EIGHTH
ddim eighthCube, 3, 8
ddim eighthCubeAxises, 3, 3
eighthFlashbackCnt = 0
eighthFlashbackBlack = 0
//__________________________________
//モジュール
//フォントファイルの読み込み
#ifdef __GDI32__
#module
#deffunc loadFont str dir
if dir == "" : return
exist dir : if strsize == -1 : return
ft = dir : pft = varptr(ft)
AddFontResourceA pft : ft = ""
return
#deffunc deleteFont onexit
if pft : RemoveFontResourceA pft
return
#global
#endif
//INTROのぴょんぴょんする線
#module IntroLine x, y, wi, alpha, black, lifeTime, lines, fall
#modinit double _x, double _y, double _wi, int _alpha, int _black, int _fall
x = _x : y = _y : wi = _wi : alpha = _alpha : black = _black : fall = _fall
return
//for master
#modfunc fallen
if(fall == 0) {
y += 50
}
if lifeTime \ 1 == 0 : newmod lines, IntroLine@, x, y, wi, alpha / 2
foreach lines
attenuation(lines(cnt))
loop
lifeTime++
return
//for sub
#modfunc attenuation
alpha -= 10
if alpha <= 1 : alpha = 0
return
//for sub
#modfunc drawInstances
if(black == 0) {
color alpha, alpha, alpha
} else {
color 255 - alpha, 255 - alpha, 255 - alpha
}
if alpha != 0 : line x - wi, y, x + wi, y
return
//for master
#modfunc draw
if(fall == 0) {
foreach lines
drawInstances(lines(cnt))
loop
}
color alpha, alpha, alpha
if y <= SC_SIZE_Y + 50 : line x - wi, y, x + wi, y
return
#modfunc local introSetY double _y
y = _y
return
#global
//THIRDのRectunnel
#module ThirdTunnelRect y, scale, rota, spawnFrame
#modinit int _frame, double _scale, double _rota
spawnFrame = _frame
scale = _scale
rota = _rota
return
#modfunc thirdTunnelRectUpdate
setease 0.0, 6000.0, ease_quad_inout
y = geteasef(frame@ - spawnFrame, 100)
setease 0.0, 2 * M_PI, ease_quartic_in | ease_loop
rota = geteasef(frame@ - spawnFrame, 50)
setease 400.0, 0.0, ease_quartic_in
scale = geteasef(frame@ - spawnFrame - 50, 25)
return
#modfunc thirdTunnelRectDraw
repeat 4
thirdTunnelRectVert(0, cnt \ 4) = scale * cubeVertices@(0, cnt \ 4)
thirdTunnelRectVert(1, cnt \ 4) = scale * cubeVertices@(2, cnt \ 4)
loop
repeat 4
d3rotate thirdTunnelRectVert(0, cnt \ 4), thirdTunnelRectVert(1, cnt \ 4), thirdTunnelRectVert(0, cnt \ 4), thirdTunnelRectVert(1, cnt \ 4), rota
loop
d3initlineto
d3lineto thirdTunnelRectVert(0, 0), y, thirdTunnelRectVert(1, 0)
d3lineto thirdTunnelRectVert(0, 1), y, thirdTunnelRectVert(1, 1)
d3lineto thirdTunnelRectVert(0, 2), y, thirdTunnelRectVert(1, 2)
d3lineto thirdTunnelRectVert(0, 3), y, thirdTunnelRectVert(1, 3)
d3lineto thirdTunnelRectVert(0, 0), y, thirdTunnelRectVert(1, 0)
return
#global
//__________________________________
//Main
gosub *INITIALIZE
wait 200
gosub *FIRST_STEP
onexit gosub *FINALIZE
*MAIN
redraw 0
; title "" + d3getfps()
d3setcam camX, camY, camZ, camAtX, camAtY, camAtZ,
pos 0, 0
if(frame < 27) {
} else : if(frame < 1036) {
gosub *INTRO
} else : if(frame < 1625) {
gosub *FIRST
} else : if(frame < 2161) {
gosub *SECOND
} else : if(frame < 2427) {
gosub *THIRD
} else : if(frame < 2692) {
gosub *FOURTH
} else : if(frame < 2962) {
gosub *FIFTH
} else : if(frame < 3223) {
gosub *SIXTH
} else : if(frame < 3760) {
gosub *SEVENTH
} else {
gosub *EIGHTH
}
redraw 1
frame++
time = d3timer() - offsetTime
if(frame \ 20 == 0) {
tempCorrectedFrame = time / 20
if(frame <= tempCorrectedFrame - 5 || tempCorrectedFrame + 5 <= frame) {
frame = tempCorrectedFrame
}
}
await 20
goto *MAIN
//_________________________________
//Sub
*INITIALIZE
hmminit 1
DSLOADFNAME SONG_FILE, BUF_SONG, 0
title TITLE_STR
; screen BUF_SCREEN, SC_SIZE_X, SC_SIZE_Y, 2|4, 0, 0
chgdisp 1, SC_SIZE_X, SC_SIZE_Y
bgscr BUF_SCREEN, SC_SIZE_X, SC_SIZE_Y, 2, 0, 0
mouse -1
buffer BUF_INTRO, SC_SIZE_X, SC_SIZE_Y
buffer BUF_INTRO_0, SC_SIZE_X, SC_SIZE_Y
buffer BUF_INTRO_TITLE, BUF_INTRO_TITLE_SIZE_X, BUF_INTRO_TITLE_SIZE_Y
loadFont "EBGaramond-Regular.ttf"
font "EB Garamond", 192.0 / 1.5, 16
buffer BUF_FIRST, SC_SIZE_X, SC_SIZE_Y
buffer BUF_SECOND, SC_SIZE_X, SC_SIZE_Y
buffer BUF_SECOND_0, SC_SIZE_X, SC_SIZE_Y
buffer BUF_SECOND_1, SC_SIZE_X, SC_SIZE_Y
buffer BUF_THIRD, SC_SIZE_X, SC_SIZE_Y
buffer BUF_THIRD_0, SC_SIZE_X, SC_SIZE_Y
buffer BUF_FOURTH, SC_SIZE_X, SC_SIZE_Y
buffer BUF_FIFTH, SC_SIZE_X, SC_SIZE_Y
buffer BUF_SIXTH, SC_SIZE_X, SC_SIZE_Y
buffer BUF_SIXTH_0, SC_SIZE_X, SC_SIZE_Y
buffer BUF_SEVENTH, SC_SIZE_X, SC_SIZE_Y
buffer BUF_EIGHTH, SC_SIZE_X, SC_SIZE_Y
buffer BUF_EIGHTH_0, SC_SIZE_X, SC_SIZE_Y
pos 0, 0
buffer BUF_INFO, 1280, 720
picload "image/info.png", 1
repeat 36
buffer BUF_FLASHBACK_B + cnt, 1280, 720
picload "image/flashback/flashback" + cnt + ".png", 1
loop
gsel BUF_SCREEN, 1
color 255, 255, 255
boxf
return
*FIRST_STEP
DSPLAY BUF_SONG
offsetTime = d3timer()
pos 0, 0
gsel BUF_SECOND_1
color 0, 0, 0
boxf
return
*FINALIZE
chgdisp
end
return
//_________________________________
//Scenes
*INTRO
gsel BUF_INTRO
pos 0, 0
color 255, 255, 255
boxf
gsel BUF_INTRO_0
color 0, 0, 0
boxf
//Tick
if(frame == 27) {
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 44) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 60) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 77) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 94) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 111) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 127) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 144) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 161) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 177) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 194) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 210) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 227) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 244) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 261) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 276) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 294) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 311) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 327) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 344) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 361) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 377) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 394) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 411) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 427) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 444) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 461) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 477) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 494) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 511) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 528) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
} else : if(frame == 544) {
delmod introNodes(0)
newmod introNodes, IntroLine, introTickNodeX, introTickNodeY, introTickNodeWidth, 255
}
//Snare
if(frame == 561) {
delmod introNodes(0)
newmod introNodes, IntroLine, introSnareNodeRX, introSnareNodeRY, introSnareNodeWidth, 255, 1
} else : if(frame == 586) {
delmod introNodes(0)
newmod introNodes, IntroLine, introSnareNodeRX, introSnareNodeRY, introSnareNodeWidth, 255, 1
} else : if(frame == 594) {
delmod introNodes(1)
newmod introNodes, IntroLine, introSnareNodeLX, introSnareNodeLY, introSnareNodeWidth, 255, 1
} else : if(frame == 561) {
delmod introNodes(0)
newmod introNodes, IntroLine, introSnareNodeRX, introSnareNodeRY, introSnareNodeWidth, 255, 1
} else : if(frame == 611) {
delmod introNodes(0)
newmod introNodes, IntroLine, introSnareNodeRX, introSnareNodeLY, introSnareNodeWidth, 255, 1
} else : if(frame == 644) {
delmod introNodes(0)
newmod introNodes, IntroLine, introSnareNodeRX, introSnareNodeRY, introSnareNodeWidth, 255, 1
} else : if(frame == 661) {
delmod introNodes(1)
newmod introNodes, IntroLine, introSnareNodeLX, introSnareNodeLY, introSnareNodeWidth, 255, 1
} else : if(frame == 694) {
delmod introNodes(0)
newmod introNodes, IntroLine, introSnareNodeRX, introSnareNodeRY, introSnareNodeWidth, 255, 1
} else : if(frame == 719) {
delmod introNodes(1)
newmod introNodes, IntroLine, introSnareNodeLX, introSnareNodeLY, introSnareNodeWidth, 255, 1
} else : if(frame == 727) {
delmod introNodes(0)
newmod introNodes, IntroLine, introSnareNodeRX, introSnareNodeRY, introSnareNodeWidth, 255, 1
} else : if(frame == 744) {
delmod introNodes(0)
newmod introNodes, IntroLine, introSnareNodeRX, introSnareNodeRY, introSnareNodeWidth, 255, 1
} else : if(frame == 777) {
delmod introNodes(0)
newmod introNodes, IntroLine, introSnareNodeRX, introSnareNodeRY, introSnareNodeWidth, 255, 1
} else : if(frame == 802) {
delmod introNodes(0)
newmod introNodes, IntroLine, introSnareNodeRX, introSnareNodeRY, introSnareNodeWidth, 255, 1
} else : if(frame == 819) {
newmod introNodes, IntroLine, introSnareNodeLX - 20, introSnareNodeRY, introSnareNodeWidth, 255, 1
} else : if(frame == 821) {
newmod introNodes, IntroLine, introSnareNodeLX + 450, introSnareNodeRY + 100, introSnareNodeWidth, 255, 1
} else : if(frame == 823) {
newmod introNodes, IntroLine, introSnareNodeLX + 930, introSnareNodeRY + 200, introSnareNodeWidth, 255, 1
} else : if(frame == 852) {
newmod introNodes, IntroLine, introSnareNodeLX, introSnareNodeLY, introSnareNodeWidth, 255, 1
} else : if(frame == 861) {
newmod introNodes, IntroLine, introSnareNodeRX, introSnareNodeRY, introSnareNodeWidth, 255, 1
} else : if(frame == 877) {
newmod introNodes, IntroLine, introSnareNodeLX, introSnareNodeLY, introSnareNodeWidth, 255, 1
} else : if(frame == 911) {
newmod introNodes, IntroLine, introSnareNodeRX, introSnareNodeRY, introSnareNodeWidth, 255, 1
} else : if(frame == 927) {
newmod introNodes, IntroLine, introSnareNodeLX, introSnareNodeLY, introSnareNodeWidth, 255, 1
} else : if(frame == 961) {
newmod introNodes, IntroLine, introSnareNodeRX, introSnareNodeRY, introSnareNodeWidth, 255, 1
} else : if(frame == 986) {
newmod introNodes, IntroLine, introSnareNodeLX, introSnareNodeLY, introSnareNodeWidth, 255, 1
} else : if(frame == 994) {
newmod introNodes, IntroLine, introSnareNodeRX, introSnareNodeRY, introSnareNodeWidth, 255, 1
} else : if(frame == 986) {
newmod introNodes, IntroLine, introSnareNodeLX, introSnareNodeLY, introSnareNodeWidth, 255, 1
} else : if(frame == 994) {
newmod introNodes, IntroLine, introSnareNodeRX, introSnareNodeRY, introSnareNodeWidth, 255, 1
} else : if(frame == 995) {
foreach introNodes
delmod introNodes(cnt)
loop
newmod introNodes, IntroLine, SC_CENTER_X, SC_SIZE_Y, introTickNodeWidth, 255, 0, 1
}
if(995 <= frame) {
//introLastNode
setease SC_SIZE_Y, SC_CENTER_Y, ease_cubic_out
tempIntroFinalPosY = getease(frame - 1011, 16)
introSetY@IntroLine introNodes(0), tempIntroFinalPosY
}
foreach introNodes
fallen(introNodes(cnt))
draw(introNodes(cnt))
loop
gsel BUF_INTRO
gmode 6, SC_SIZE_X, SC_SIZE_Y, 255
gcopy BUF_INTRO_0
//Title
if(294 <= frame && frame < 561) {
gsel BUF_INTRO_TITLE
pos 0, 0
color 255, 255, 255
boxf 0, 0, BUF_INTRO_TITLE_SIZE_X, BUF_INTRO_TITLE_SIZE_Y
setease 0.0, 20.0 / 1.5, ease_quartic_out
tempIntroShadowPos = getease(frame - 294, 50)
setease 1.0, 0.0, ease_quartic_out
tempIntroAlpha = geteasef(double(frame) - 433.0, 15.0)
pos tempIntroShadowPos, double(tempIntroShadowPos) * 0.8 -40
color 255.0 - 35.0 * tempIntroAlpha, 255.0 - 35.0 * tempIntroAlpha, 255.0 - 35.0 * tempIntroAlpha
mes "Phantomizer"
color 255.0 - 255.0 * tempIntroAlpha, 255.0 - 255.0 * tempIntroAlpha, 255.0 - 255.0 * tempIntroAlpha
pos 0, -40
mes "Phantmizer"
gsel BUF_INTRO
setease 0.0, 200.0, ease_quartic_out
tempIntroTDivNum = 2
repeat tempIntroTDivNum
tempIntroDivTPos = geteasef(double(frame) - 430.0, 5.0)
if(cnt \ 2 == 0) {
tempIntroDivTX = tempIntroDivTPos
} else {
tempIntroDivTX = -tempIntroDivTPos
}
color 255, 255, 255
gmode 4, BUF_INTRO_TITLE_SIZE_X, BUF_INTRO_TITLE_SIZE_Y / tempIntroTDivNum, 255
pos 322 + tempIntroDivTX, 110 + BUF_INTRO_TITLE_SIZE_Y / tempIntroTDivNum * cnt
gcopy BUF_INTRO_TITLE, 0, BUF_INTRO_TITLE_SIZE_Y / tempIntroTDivNum * cnt
loop
}
introFrame++
gsel BUF_SCREEN
gmode 0, SC_SIZE_X, SC_SIZE_Y
gcopy BUF_INTRO
return
*FIRST
gsel BUF_FIRST
pos 0, 0
if(frame < 1095) {
color 255, 255, 255
} else {
color 0, 0, 0
}
boxf
if(1036 <= frame && frame <= 1040) {
foreach introNodes
delmod introNodes(cnt)
loop
}
if(frame < 1095) {
setease 55.0, 450.0, ease_linear
tempFirstLineSize = getease(frame - 1036, 1094 - 1036)
setease 0.0, -M_PI / 2.0, ease_linear
tempFirstLineRota = geteasef(frame - 1036, 1094 - 1036)
d3rotate tempFirstLineX, tempFirstLineY, tempFirstLineSize, 0.0, tempFirstLineRota
color 0, 0, 0
d3line -tempFirstLineX, 0.0, -tempFirstLineY, tempFirstLineX, 0.0, tempFirstLineY
} else : if(frame < 2000) {
setease -500.0, -2000.0, ease_quartic_out
camY = geteasef(frame - 1095, 50)
setease 0.0, 700.0, ease_quartic_out
camZ = geteasef(frame - 1095, 50)
//Cube
if(0 <= 1.0 * frame - 1127.0 - tempFirstCubeScaleCnt * firstCubeScaleFreq - firstCubeScaleFreq) {
tempFirstCubeScaleCnt++
}
if(tempFirstCubeScaleCnt \ 2 == 0) {
setease 255.0, 270.0, ease_quartic_out
} else {
setease 270.0, 255.0, ease_quartic_in
}
firstCubeScale = geteasef(1.0 * frame - 1127.0 - tempFirstCubeScaleCnt * firstCubeScaleFreq, firstCubeScaleFreq)
repeat 3 * 8
firstCube(cnt / 8, cnt \ 8) = firstCubeScale * cubeVertices(cnt / 8, cnt \ 8)
loop
repeat 8
d3vrotate firstCube(0, cnt), firstCube(1, cnt), firstCube(2, cnt), firstCube(0, cnt), firstCube(1, cnt), firstCube(2, cnt), 0.0, 0.0, 1.0, M_PI / 4.0
loop
if(tempFirstCubeRota <= -M_PI / 2.0) {
tempFirstCubeRotaCnt++
}
setease 0.0, -M_PI / 2.0, ease_linear
tempFirstCubeRota = geteasef(frame - 1100 - tempFirstCubeRotaCnt * 100, 100)
repeat 8
d3vrotate firstCube(0, cnt), firstCube(1, cnt), firstCube(2, cnt), firstCube(0, cnt), firstCube(1, cnt), firstCube(2, cnt), 0.0, 0.0, 1.0, tempFirstCubeRota
loop
color 255, 255, 255
d3initlineto
d3lineto firstCube(0, 0), firstCube(1, 0), firstCube(2, 0)
d3lineto firstCube(0, 1), firstCube(1, 1), firstCube(2, 1)
d3lineto firstCube(0, 2), firstCube(1, 2), firstCube(2, 2)
d3lineto firstCube(0, 3), firstCube(1, 3), firstCube(2, 3)
d3lineto firstCube(0, 0), firstCube(1, 0), firstCube(2, 0)
d3lineto firstCube(0, 4), firstCube(1, 4), firstCube(2, 4)
d3lineto firstCube(0, 5), firstCube(1, 5), firstCube(2, 5)
d3lineto firstCube(0, 6), firstCube(1, 6), firstCube(2, 6)
d3lineto firstCube(0, 7), firstCube(1, 7), firstCube(2, 7)
d3lineto firstCube(0, 4), firstCube(1, 4), firstCube(2, 4)
d3initlineto
d3lineto firstCube(0, 1), firstCube(1, 1), firstCube(2, 1)
d3lineto firstCube(0, 5), firstCube(1, 5), firstCube(2, 5)
d3initlineto
d3lineto firstCube(0, 2), firstCube(1, 2), firstCube(2, 2)
d3lineto firstCube(0, 6), firstCube(1, 6), firstCube(2, 6)
d3initlineto
d3lineto firstCube(0, 3), firstCube(1, 3), firstCube(2, 3)
d3lineto firstCube(0, 7), firstCube(1, 7), firstCube(2, 7)
}
gsel BUF_SCREEN
gmode 0, SC_SIZE_X, SC_SIZE_Y
gcopy BUF_FIRST
return
*SECOND
gsel BUF_SECOND_0
color 0, 0, 0
boxf
if(frame < 2093) {
//Cube
if(0 <= 1.0 * frame - 1127.0 - tempFirstCubeScaleCnt * firstCubeScaleFreq - firstCubeScaleFreq) {
tempFirstCubeScaleCnt++
}
if(tempFirstCubeScaleCnt \ 2 == 0 && frame < 2027) {
setease 255.0, 270.0, ease_quartic_out
} else {
setease 270.0, 255.0, ease_quartic_in
}
firstCubeScale = geteasef(1.0 * frame - 1127.0 - tempFirstCubeScaleCnt * firstCubeScaleFreq, firstCubeScaleFreq)
repeat 3 * 8
firstCube(cnt / 8, cnt \ 8) = firstCubeScale * cubeVertices(cnt / 8, cnt \ 8)
loop
repeat 8
d3vrotate firstCube(0, cnt), firstCube(1, cnt), firstCube(2, cnt), firstCube(0, cnt), firstCube(1, cnt), firstCube(2, cnt), 0.0, 0.0, 1.0, M_PI / 4.0
loop
if(tempFirstCubeRota <= -M_PI / 2.0) {
tempFirstCubeRotaCnt++
}
setease 0.0, -M_PI / 2.0, ease_linear
tempFirstCubeRota = geteasef(frame - 1100 - tempFirstCubeRotaCnt * 100, 100)
repeat 8
d3vrotate firstCube(0, cnt), firstCube(1, cnt), firstCube(2, cnt), firstCube(0, cnt), firstCube(1, cnt), firstCube(2, cnt), 0.0, 0.0, 1.0, tempFirstCubeRota
loop
color 255, 255, 255
d3initlineto
d3lineto firstCube(0, 0), firstCube(1, 0), firstCube(2, 0)
d3lineto firstCube(0, 1), firstCube(1, 1), firstCube(2, 1)
d3lineto firstCube(0, 2), firstCube(1, 2), firstCube(2, 2)
d3lineto firstCube(0, 3), firstCube(1, 3), firstCube(2, 3)
d3lineto firstCube(0, 0), firstCube(1, 0), firstCube(2, 0)
d3lineto firstCube(0, 4), firstCube(1, 4), firstCube(2, 4)
d3lineto firstCube(0, 5), firstCube(1, 5), firstCube(2, 5)
d3lineto firstCube(0, 6), firstCube(1, 6), firstCube(2, 6)
d3lineto firstCube(0, 7), firstCube(1, 7), firstCube(2, 7)
d3lineto firstCube(0, 4), firstCube(1, 4), firstCube(2, 4)
d3initlineto
d3lineto firstCube(0, 1), firstCube(1, 1), firstCube(2, 1)
d3lineto firstCube(0, 5), firstCube(1, 5), firstCube(2, 5)
d3initlineto
d3lineto firstCube(0, 2), firstCube(1, 2), firstCube(2, 2)
d3lineto firstCube(0, 6), firstCube(1, 6), firstCube(2, 6)
d3initlineto
d3lineto firstCube(0, 3), firstCube(1, 3), firstCube(2, 3)
d3lineto firstCube(0, 7), firstCube(1, 7), firstCube(2, 7)
}
if(2027 <= frame && frame < 2093) {
if((2027 - frame) \ 6 == 0) {
camX = double(camX) * -0.5
if(camX == 0) {
camX = (frame - 2093) * -20
}
camAtX = camX
}
setease -2000.0, -500.0, ease_quad_in
camY = geteasef(frame - 2027, 2093 - 2027)
setease 700.0, 0.0, ease_quad_in
camZ = geteasef(frame - 2027, 2093 - 2027)
if(frame \ 5 == 0) {
color 0, 0, 0
boxf
}
} else : if(2093 <= frame) {
//Eye
gsel BUF_SECOND_1
color 0, 0, 0
boxf
color 255, 255, 255
circle SC_CENTER_X - 300.0, SC_CENTER_Y - 300.0, SC_CENTER_X + 300.0, SC_CENTER_Y + 300.0
setease 1000.0, 250.0, ease_quartic_out
tempCircleRadius = geteasef(frame - 2093, 30)
setease 0.0, 256.0, ease_quartic_out
tempCircleHeight = geteasef(frame - 2093, 30)
setease tempCircleRadius, tempCircleRadius - tempCircleHeight / 2.0, ease_quartic_in
tempCircleDist = geteasef(frame - 2093, 30)
setease 0.0, 9.5, ease_quartic_out
tempSecondBias = geteasef(frame - 2093, 30)
setease 0.0, tempCircleHeight / 2.0, ease_cubic_out
tempSecondEyeHeight = geteasef(frame - 2093, 120)
color 0, 0, 0
//Eyelid
repeat 500
tempCircleY = sin(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleRadius - tempCircleDist
if(0.0 <= tempCircleY) {
line cos(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleRadius + SC_CENTER_X, tempCircleY + SC_CENTER_Y
} else {
pos cos(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleRadius + SC_CENTER_X, tempCircleY + SC_CENTER_Y
}
loop
//Eyelid
repeat 500
tempCircleY = sin(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleRadius + tempCircleDist
if(tempCircleY <= 0.0) {
line cos(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleRadius + SC_CENTER_X, tempCircleY + SC_CENTER_Y
} else {
pos cos(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleRadius + SC_CENTER_X, tempCircleY + SC_CENTER_Y
}
loop
//Eye
pos cos(0.0) * tempCircleCRadius + SC_CENTER_X, sin(0.0) * tempCircleCRadius + SC_CENTER_Y
repeat 500
tempCircleY = sin(2.0 * M_PI / 100.0 * (cnt + 1)) * tempSecondEyeHeight
tempCircleCY = sin(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleCRadius
if(tempCircleCY < 0) {
if(tempCircleY - tempSecondBias <= tempCircleCY) {
line cos(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleCRadius + SC_CENTER_X, tempCircleCY + SC_CENTER_Y
} else {
pos cos(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleCRadius + SC_CENTER_X, tempCircleCY + SC_CENTER_Y
}
} else {
if(tempCircleCY <= tempCircleY + tempSecondBias) {
line cos(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleCRadius + SC_CENTER_X, tempCircleCY + SC_CENTER_Y
} else {
pos cos(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleCRadius + SC_CENTER_X, tempCircleCY + SC_CENTER_Y
}
}
loop
pos cos(0.0) * tempCircleC2Radius + SC_CENTER_X, sin(0.0) * tempCircleC2Radius + SC_CENTER_Y
repeat 500
tempCircleY = sin(2.0 * M_PI / 100.0 * (cnt + 1)) * tempSecondEyeHeight
tempCircleCY = sin(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleC2Radius
if(tempCircleCY < 0) {
if(tempCircleY - tempSecondBias <= tempCircleCY) {
line cos(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleC2Radius + SC_CENTER_X, tempCircleCY + SC_CENTER_Y
} else {
pos cos(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleC2Radius + SC_CENTER_X, tempCircleCY + SC_CENTER_Y
}
} else {
if(tempCircleCY <= tempCircleY + tempSecondBias) {
line cos(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleC2Radius + SC_CENTER_X, tempCircleCY + SC_CENTER_Y
} else {
pos cos(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleC2Radius + SC_CENTER_X, tempCircleCY + SC_CENTER_Y
}
}
loop
gsel BUF_SECOND_0
pos 160, 90
gzoom 960, 540, BUF_SECOND_1, 0, 0, SC_SIZE_X, SC_SIZE_Y, 1
}
gsel BUF_SECOND
if(2027 <= frame && frame < 2093) {
if(frame \ 6 <= 2) {
color 0, 0, 0
} else {
color 255, 255, 255
}
} else {
color 0, 0, 0
}
boxf
if(2027 <= frame && frame < 2093) {
if(frame \ 6 <= 2) {
gmode 0, SC_SIZE_X, SC_SIZE_Y
} else {
gmode 6, SC_SIZE_X, SC_SIZE_Y
}
} else {
gmode 0, SC_SIZE_X, SC_SIZE_Y
}
gcopy BUF_SECOND_0
gsel BUF_SCREEN
gmode 0, SC_SIZE_X, SC_SIZE_Y
gcopy BUF_SECOND
return
*THIRD
gsel BUF_THIRD
if(frame < 2250) {
color 0, 0, 0
boxf
//Down the Eye
setease 0.0, SC_SIZE_Y, ease_quartic_in
tempThirdDownDivNum = 200
repeat tempThirdDownDivNum + 50
tempThirdDownEase = geteasef(frame - 2161 - abs(cnt - 5 - tempThirdDownDivNum / 2) / 5, 10)
gmode 2, SC_SIZE_X / tempThirdDownDivNum, SC_SIZE_Y, 255
pos SC_SIZE_X / tempThirdDownDivNum * cnt, tempThirdDownEase
gcopy BUF_SECOND, SC_SIZE_X / tempThirdDownDivNum * cnt, 0
loop
//Down the black
gsel BUF_THIRD_0
color 250, 250, 250
boxf
gsel BUF_THIRD
setease -SC_SIZE_Y, 0.0, ease_quartic_in
repeat tempThirdDownDivNum + 50
tempThirdDownEase = geteasef(frame - 2171 - abs(cnt - 5 - tempThirdDownDivNum / 2) / 5, 10)
gmode 2, SC_SIZE_X / tempThirdDownDivNum, SC_SIZE_Y, 255
pos SC_SIZE_X / tempThirdDownDivNum * cnt, tempThirdDownEase
gcopy BUF_THIRD_0, SC_SIZE_X / tempThirdDownDivNum * cnt, 0
loop
} else : if(frame < 2400) {
color 250, 250, 250
boxf
camX = 0.0
camY = -500.0
camZ = 0.0
camAtX = 0.0
if(length(thirdTunnelRects) < 70) {
newmod thirdTunnelRects, ThirdTunnelRect, frame, 0.0, 0.0
}
}
foreach thirdTunnelRects
thirdTunnelRectUpdate(thirdTunnelRects(cnt))
color 15, 15, 15
thirdTunnelRectDraw(thirdTunnelRects(cnt))
loop
gsel BUF_SCREEN
gmode 0, SC_SIZE_X, SC_SIZE_Y
gcopy BUF_THIRD
return
*FOURTH
gsel BUF_FOURTH
color 15, 15, 15
boxf
if(frame < 2482) {
//Down the THIRD
setease 0.0, SC_SIZE_Y, ease_quartic_inout
tempFourthDownDivNum = 200
repeat tempFourthDownDivNum + 50
tempFourthDownEase = geteasef(frame - 2427 - abs(cnt - 5 - tempFourthDownDivNum / 2) / 5, 10)
gmode 2, SC_SIZE_X / tempFourthDownDivNum, SC_SIZE_Y, 255
pos SC_SIZE_X / tempFourthDownDivNum * cnt, tempFourthDownEase
gcopy BUF_THIRD, SC_SIZE_X / tempFourthDownDivNum * cnt, 0
loop
} else : if(frame < 2682){
setease CAMERA_DEF_X, -500, ease_quartic_out
camX = geteasef(frame - 2532, 100)
setease CAMERA_DEF_Z, -200, ease_quartic_out
camZ = geteasef(frame - 2532, 100)
setease CAMERA_DEF_Y, -250, ease_quartic_out
camY = geteasef(frame - 2532, 100)
//Impact circles
setease 0.0, SC_CENTER_Y / 2.0, ease_quartic_inout | ease_loop
for tempFourthI, 0, 10, 1
tempFourthCircleSize = geteasef(frame - 2482 - tempFourthI, 50)
color 250, 250, 250
d3initlineto
repeat 101
d3lineto cos(2.0 * M_PI / 100.0 * cnt) * tempFourthCircleSize, 0.0, sin(2.0 * M_PI / 100.0 * cnt) * tempFourthCircleSize
loop
next
}
gsel BUF_SCREEN
gmode 0, SC_SIZE_X, SC_SIZE_Y
gcopy BUF_FOURTH
return
*FIFTH
gsel BUF_FIFTH
color 250, 250, 250
boxf
if(frame < 2960) {
//Points Wave
; setease 100.0, 100.0, ease_quartic_in
camX = 100.0 ;geteasef(frame - 2732, 50)
setease CAMERA_DEF_Z, 100, ease_quartic_out
camZ = geteasef(frame - 2817, 50)
setease 0.0, -170.0, ease_quartic_out
camY = geteasef(frame - 2817, 50)
d3setcam camX, camY, camZ, camAtX, 0, 0
for tempFifthI, 0, 200, 1
repeat 20
tempFifthPWaveY = fifthPWaveOffsetY + (-fifthPWaveOffsetY / 100) * tempFifthI - (((double(frame) - 2732.0 - fifthPWaveDelays(cnt)) * 3.0) \ abs(fifthPWaveOffsetY) * 2.0 / 20.0 * 2.0)
tempFifthPWaveZ = sin(M_PI / (400.0 / 20.0) * tempFifthPWaveY)
setease 170.0, 0.0, ease_quartic_in
tempFifthPWaveCol = geteasef(tempFifthPWaveZ + 1.0, 2.0)
color tempFifthPWaveCol, tempFifthPWaveCol, tempFifthPWaveCol
d3circle fifthPWaveOffsetX + (-fifthPWaveOffsetX / 10) * cnt, tempFifthPWaveY, tempFifthPWaveZ * 20.0, 0.5, 1
loop
next
}
if(frame < 2732) {
camX = CAMERA_DEF_X
camY = CAMERA_DEF_Y
camZ = CAMERA_DEF_Z
camAtX = CAMERA_AT_DEF_X
d3setcam camX, camY, camZ, camAtX, 0, 0
//Slide the FOURTH
setease 0.0, -SC_SIZE_X, ease_quartic_out
tempFifthSlideDivNum = 50
repeat tempFifthSlideDivNum + 50
tempFifthSlideEase = geteasef(double(frame) - 2692.0 - (double(cnt) / 5.0), 20)
gmode 0, SC_SIZE_X, SC_SIZE_Y / tempFifthSlideDivNum, 255
pos tempFifthSlideEase, SC_SIZE_Y / tempFifthSlideDivNum * cnt
gcopy BUF_FOURTH, 0, SC_SIZE_Y / tempFifthSlideDivNum * cnt
loop
}
gsel BUF_SCREEN
gmode 0, SC_SIZE_X, SC_SIZE_Y
gcopy BUF_FIFTH
return
*SIXTH
gsel BUF_SIXTH
color 15, 15, 15
boxf
camX = CAMERA_DEF_X
camY = CAMERA_DEF_Y
camZ = CAMERA_DEF_Z
camAtX = CAMERA_AT_DEF_X
if(frame < 3002) {
//Points Wave
gsel BUF_FIFTH
color 250, 250, 250
boxf
; setease 100.0, 100.0, ease_quartic_in
camX = 100.0 ;geteasef(frame - 2732, 50)
setease CAMERA_DEF_Z, 100, ease_quartic_in
camZ = geteasef(frame - 2732, 50)
setease 0.0, -170.0, ease_quartic_in
camY = geteasef(frame - 2732, 50)
d3setcam camX, camY, camZ, camAtX, 0, 0
for tempFifthI, 0, 200, 1
repeat 20
tempFifthPWaveY = fifthPWaveOffsetY + (-fifthPWaveOffsetY / 100) * tempFifthI - (((double(frame) - 2732.0 - fifthPWaveDelays(cnt)) * 3.0) \ abs(fifthPWaveOffsetY) * 2.0 / 20.0 * 2.0)
tempFifthPWaveZ = sin(M_PI / (400.0 / 20.0) * tempFifthPWaveY)
setease 170.0, 0.0, ease_quartic_in
tempFifthPWaveCol = geteasef(tempFifthPWaveZ + 1.0, 2.0)
color tempFifthPWaveCol, tempFifthPWaveCol, tempFifthPWaveCol
d3circle fifthPWaveOffsetX + (-fifthPWaveOffsetX / 10) * cnt, tempFifthPWaveY, tempFifthPWaveZ * 20.0, 0.5, 1
loop
next
gsel BUF_SIXTH
camX = CAMERA_DEF_X
camY = CAMERA_DEF_Y
camZ = CAMERA_DEF_Z
camAtX = CAMERA_AT_DEF_X
d3setcam camX, camY, camZ, camAtX, 0, 0
//Slide the FIFTH
setease 0.0, SC_SIZE_X, ease_quartic_out
tempSixthSlideDivNum = 50
repeat tempSixthSlideDivNum + 50
tempSixthSlideEase = geteasef(double(frame) - 2962.0 - (double(cnt) / 5.0), 20)
gmode 0, SC_SIZE_X, SC_SIZE_Y / tempSixthSlideDivNum, 255
pos tempSixthSlideEase, SC_SIZE_Y / tempSixthSlideDivNum * cnt
gcopy BUF_FIFTH, 0, SC_SIZE_Y / tempSixthSlideDivNum * cnt
loop
} else : if(frame < 3223) {
//Planet
setease -500.0, 0.0, ease_quartic_out
tempSixthSphereZ = geteasef(frame - 3002, 50)
if(frame < 3072) {
setease CAMERA_DEF_Y, -300.0, ease_quartic_out
camY = geteasef(frame - 3062, 10)
} else : if(frame < 3223) {
setease -400.0, -1000.0, ease_quartic_out
camY = geteasef(frame - 3072, 100)
}
d3setcam camX, camY, camZ, camAtX, 0, 0
color 250, 250, 250
d3circle 0.0, 0.0, tempSixthSphereZ, sixthSphereSize, 1
//Satellite orbit
gsel BUF_SIXTH_0
color 0, 0, 0
boxf
setease 0.0, 250.0, ease_quartic_out
tempSixthSatelCol = geteasef(frame - 3072, 200)
ddim tempSixthSatel, 3
ddim tempSixthSatelAxises, 3, 3
ddim tempSixthSatelTaile, 4, 3, 100
repeat 4
//Satellite
tempSixthSatel(0) = 0.0
tempSixthSatel(1) = 0.0
tempSixthSatel(2) = 0.0
tempSixthSatelAxises(0, 0) = 1.0
tempSixthSatelAxises(0, 1) = 0.0
tempSixthSatelAxises(0, 2) = 0.0
tempSixthSatelAxises(1, 0) = 0.0
tempSixthSatelAxises(1, 1) = 1.0
tempSixthSatelAxises(1, 2) = 0.0
tempSixthSatelAxises(2, 0) = 0.0
tempSixthSatelAxises(2, 1) = 0.0
tempSixthSatelAxises(2, 2) = 1.0
setease 0.0, 6.0 * M_PI, ease_linear
tempSixthOrbitRota = geteasef(frame - 3072, 300)
if(cnt == 0) {
tempSixthSatel(0) = 300.0
d3vrotate tempSixthSatel(0), tempSixthSatel(1), tempSixthSatel(2), tempSixthSatel(0), tempSixthSatel(1), tempSixthSatel(2), 0.0, 0.0, 1.0, tempSixthOrbitRota
d3vrotate tempSixthSatelAxises(0, 0), tempSixthSatelAxises(0, 1), tempSixthSatelAxises(0, 2), tempSixthSatelAxises(0, 0), tempSixthSatelAxises(0, 1), tempSixthSatelAxises(0, 2), tempSixthSatelAxises(2, 0), tempSixthSatelAxises(2, 1), tempSixthSatelAxises(2, 2), tempSixthOrbitRota * 3.0
} else : if(cnt == 1) {
tempSixthSatel(0) = -300.0
d3vrotate tempSixthSatel(0), tempSixthSatel(1), tempSixthSatel(2), tempSixthSatel(0), tempSixthSatel(1), tempSixthSatel(2), 0.0, 0.0, 1.0, tempSixthOrbitRota
d3vrotate tempSixthSatelAxises(0, 0), tempSixthSatelAxises(0, 1), tempSixthSatelAxises(0, 2), tempSixthSatelAxises(0, 0), tempSixthSatelAxises(0, 1), tempSixthSatelAxises(0, 2), tempSixthSatelAxises(2, 0), tempSixthSatelAxises(2, 1), tempSixthSatelAxises(2, 2), tempSixthOrbitRota * 3.0
} else : if(cnt == 2) {
tempSixthSatel(2) = 300.0
d3vrotate tempSixthSatel(0), tempSixthSatel(1), tempSixthSatel(2), tempSixthSatel(0), tempSixthSatel(1), tempSixthSatel(2 ), 1.0, 0.0, 0.0, tempSixthOrbitRota
d3vrotate tempSixthSatelAxises(2, 0), tempSixthSatelAxises(2, 1), tempSixthSatelAxises(2, 2), tempSixthSatelAxises(2, 0), tempSixthSatelAxises(2, 1), tempSixthSatelAxises(2, 2), tempSixthSatelAxises(0, 0), tempSixthSatelAxises(0, 1), tempSixthSatelAxises(0, 2), tempSixthOrbitRota * 3.0
} else : if(cnt == 3) {
tempSixthSatel(2) = -300.0
d3vrotate tempSixthSatel(0), tempSixthSatel(1), tempSixthSatel(2), tempSixthSatel(0), tempSixthSatel(1), tempSixthSatel(2 ), -1.0, 0.0, 0.0, tempSixthOrbitRota
d3vrotate tempSixthSatelAxises(2, 0), tempSixthSatelAxises(2, 1), tempSixthSatelAxises(2, 2), tempSixthSatelAxises(2, 0), tempSixthSatelAxises(2, 1), tempSixthSatelAxises(2, 2), tempSixthSatelAxises(0, 0), tempSixthSatelAxises(0, 1), tempSixthSatelAxises(0, 2), tempSixthOrbitRota * 3.0
}
d3setlocal tempSixthSatel(0), tempSixthSatel(1), tempSixthSatel(2), tempSixthSatelAxises(0, 0), tempSixthSatelAxises(0, 1), tempSixthSatelAxises(0, 2), tempSixthSatelAxises(1, 0), tempSixthSatelAxises(1, 1), tempSixthSatelAxises(1, 2), tempSixthSatelAxises(2, 0), tempSixthSatelAxises(2, 1), tempSixthSatelAxises(2, 2)
color tempSixthSatelCol, tempSixthSatelCol, tempSixthSatelCol
d3box sixthSatelSize, sixthSatelSize, sixthSatelSize, -sixthSatelSize, -sixthSatelSize, -sixthSatelSize
d3setlocal
loop
gsel BUF_SIXTH
gmode 2, SC_SIZE_X, SC_SIZE_Y
pos 0, 0
gcopy BUF_SIXTH_0
}
gsel BUF_SCREEN
gmode 0, SC_SIZE_X, SC_SIZE_Y
gcopy BUF_SIXTH
return
*SEVENTH
gsel BUF_SEVENTH
color 15, 15, 15
boxf
camX = CAMERA_DEF_X
camY = CAMERA_DEF_Y - 500.0
camZ = CAMERA_DEF_Z
camAtX = CAMERA_AT_DEF_X
camAtY = CAMERA_AT_DEF_Y
camAtZ = CAMERA_AT_DEF_Z
//Camera
setease CAMERA_DEF_Y - 500.0, 20000.0, ease_linear
camY = geteasef(frame - 3293, 467)
setease CAMERA_AT_DEF_Y, 20000.0 + CAMERA_DEF_Y + 500.0, ease_linear
camAtY = geteasef(frame - 3293, 467)
//Road
setease 100000.0, -500.0, ease_quartic_out
tempSeventhRoadZ = geteasef(frame - 3223, 70)
d3initlineto
repeat 100
color 250, 250, 250
d3ribbonto -seventhRoadWidth, -100.0 + cnt * (seventhRoadLength / 100), tempSeventhRoadZ, seventhRoadWidth, -100.0 + cnt * (seventhRoadLength / 100), tempSeventhRoadZ
loop
//Structres
repeat 10
//Bottom
seventhStructAxis(0) = 1.0
seventhStructAxis(1) = 0.0
seventhStructAxis(2) = 0.0
seventhStructAxis2(0) = 0.0
seventhStructAxis2(1) = 1.0
seventhStructAxis2(2) = 0.0
setease 0.0, 20.0 * M_PI, ease_cubic_out
tempSeventhStructRota = geteasef(frame - 3248 - cnt * 10, 70)
d3vrotate seventhStructAxis(0), seventhStructAxis(1), seventhStructAxis(2), seventhStructAxis(0), seventhStructAxis(1), seventhStructAxis(2), 0.0, 0.0, 1.0, tempSeventhStructRota
d3vrotate seventhStructAxis2(0), seventhStructAxis2(1), seventhStructAxis2(2), seventhStructAxis2(0), seventhStructAxis2(1), seventhStructAxis2(2), 0.0, 0.0, 1.0, tempSeventhStructRota
setease 100000.0, -500.0 , ease_quartic_out
tempSeventhStructZ = geteasef(frame - 3248 - cnt * 10, 70)
d3setlocal -seventhRoadWidth - seventhStructBSize - 150.0, -100.0 + cnt * (seventhRoadLength / 10), tempSeventhStructZ, seventhStructAxis(0), seventhStructAxis(1), seventhStructAxis(2), seventhStructAxis2(0), seventhStructAxis2(1), seventhStructAxis2(2), 0.0, 0.0, 1.0
d3box seventhStructBSize, seventhStructBSize, seventhStructBSize * 2.0, -seventhStructBSize, -seventhStructBSize, 0.0
d3setlocal
d3setlocal seventhRoadWidth + seventhStructBSize + 150.0, -100.0 + cnt * (seventhRoadLength / 10), tempSeventhStructZ, seventhStructAxis(0), seventhStructAxis(1), seventhStructAxis(2), seventhStructAxis2(0), seventhStructAxis2(1), seventhStructAxis2(2), 0.0, 0.0, 1.0
d3box seventhStructBSize, seventhStructBSize, seventhStructBSize * 2.0, -seventhStructBSize, -seventhStructBSize, 0.0
d3setlocal
//Bottom2
seventhStructAxis(0) = 1.0
seventhStructAxis(1) = 0.0
seventhStructAxis(2) = 0.0
seventhStructAxis2(0) = 0.0
seventhStructAxis2(1) = 1.0
seventhStructAxis2(2) = 0.0
setease 0.0, 20.0 * M_PI, ease_cubic_out
tempSeventhStructRota = geteasef(frame - 3248 - cnt * 10 - 10, 70)
d3vrotate seventhStructAxis(0), seventhStructAxis(1), seventhStructAxis(2), seventhStructAxis(0), seventhStructAxis(1), seventhStructAxis(2), 0.0, 0.0, 1.0, tempSeventhStructRota
d3vrotate seventhStructAxis2(0), seventhStructAxis2(1), seventhStructAxis2(2), seventhStructAxis2(0), seventhStructAxis2(1), seventhStructAxis2(2), 0.0, 0.0, 1.0, tempSeventhStructRota
setease 100000.0, -500.0 , ease_quartic_out
tempSeventhStructZ = geteasef(frame - 3248 - cnt * 10 - 10, 70)
d3setlocal -seventhRoadWidth - seventhStructBSize - 150.0, -100.0 + cnt * (seventhRoadLength / 10), tempSeventhStructZ + seventhStructBSize * 2.0, seventhStructAxis(0), seventhStructAxis(1), seventhStructAxis(2), seventhStructAxis2(0), seventhStructAxis2(1), seventhStructAxis2(2), 0.0, 0.0, 1.0
d3box seventhStructB2Size, seventhStructB2Size, seventhStructB2Size * 2.0, -seventhStructB2Size, -seventhStructB2Size, 0.0
d3setlocal
d3setlocal seventhRoadWidth + seventhStructBSize + 150.0, -100.0 + cnt * (seventhRoadLength / 10), tempSeventhStructZ + seventhStructBSize * 2.0, seventhStructAxis(0), seventhStructAxis(1), seventhStructAxis(2), seventhStructAxis2(0), seventhStructAxis2(1), seventhStructAxis2(2), 0.0, 0.0, 1.0
d3box seventhStructB2Size, seventhStructB2Size, seventhStructB2Size * 2.0, -seventhStructB2Size, -seventhStructB2Size, 0.0
d3setlocal
//Center
seventhStructAxis(0) = 1.0
seventhStructAxis(1) = 0.0
seventhStructAxis(2) = 0.0
seventhStructAxis2(0) = 0.0
seventhStructAxis2(1) = 1.0
seventhStructAxis2(2) = 0.0
setease 0.0, 20.0 * M_PI, ease_cubic_out
tempSeventhStructRota = geteasef(frame - 3248 - cnt * 10 - 20, 70)
d3vrotate seventhStructAxis(0), seventhStructAxis(1), seventhStructAxis(2), seventhStructAxis(0), seventhStructAxis(1), seventhStructAxis(2), 0.0, 0.0, 1.0, tempSeventhStructRota
d3vrotate seventhStructAxis2(0), seventhStructAxis2(1), seventhStructAxis2(2), seventhStructAxis2(0), seventhStructAxis2(1), seventhStructAxis2(2), 0.0, 0.0, 1.0, tempSeventhStructRota
setease 100000.0, -500.0 , ease_quartic_out
tempSeventhStructZ = geteasef(frame - 3248 - cnt * 10 - 20, 70)
d3setlocal -seventhRoadWidth - seventhStructBSize - 150.0, -100.0 + cnt * (seventhRoadLength / 10), tempSeventhStructZ + seventhStructBSize * 2.0 + seventhStructB2Size * 2.0, seventhStructAxis(0), seventhStructAxis(1), seventhStructAxis(2), seventhStructAxis2(0), seventhStructAxis2(1), seventhStructAxis2(2), 0.0, 0.0, 1.0
d3box seventhStructCSize, seventhStructCSize, seventhStructCSize * 2.0, -seventhStructCSize, -seventhStructCSize, 0.0
d3setlocal
d3setlocal seventhRoadWidth + seventhStructBSize + 150.0, -100.0 + cnt * (seventhRoadLength / 10), tempSeventhStructZ + seventhStructBSize * 2.0 + seventhStructB2Size * 2.0, seventhStructAxis(0), seventhStructAxis(1), seventhStructAxis(2), seventhStructAxis2(0), seventhStructAxis2(1), seventhStructAxis2(2), 0.0, 0.0, 1.0
d3box seventhStructCSize, seventhStructCSize, seventhStructCSize * 2.0, -seventhStructCSize, -seventhStructCSize, 0.0
d3setlocal
//Top2
seventhStructAxis(0) = 1.0
seventhStructAxis(1) = 0.0
seventhStructAxis(2) = 0.0
seventhStructAxis2(0) = 0.0
seventhStructAxis2(1) = 1.0
seventhStructAxis2(2) = 0.0
setease 0.0, 20.0 * M_PI, ease_cubic_out
tempSeventhStructRota = geteasef(frame - 3248 - cnt * 10 - 30, 70)
d3vrotate seventhStructAxis(0), seventhStructAxis(1), seventhStructAxis(2), seventhStructAxis(0), seventhStructAxis(1), seventhStructAxis(2), 0.0, 0.0, 1.0, tempSeventhStructRota
d3vrotate seventhStructAxis2(0), seventhStructAxis2(1), seventhStructAxis2(2), seventhStructAxis2(0), seventhStructAxis2(1), seventhStructAxis2(2), 0.0, 0.0, 1.0, tempSeventhStructRota
setease 100000.0, -500.0 , ease_quartic_out
tempSeventhStructZ = geteasef(frame - 3248 - cnt * 10 - 30, 70)
d3setlocal -seventhRoadWidth - seventhStructBSize - 150.0, -100.0 + cnt * (seventhRoadLength / 10), tempSeventhStructZ + seventhStructBSize * 2.0 + seventhStructB2Size * 2.0 + seventhStructCSize * 2.0, seventhStructAxis(0), seventhStructAxis(1), seventhStructAxis(2), seventhStructAxis2(0), seventhStructAxis2(1), seventhStructAxis2(2), 0.0, 0.0, 1.0
d3box seventhStructT2Size, seventhStructT2Size, seventhStructT2Size * 2.0, -seventhStructT2Size, -seventhStructT2Size, 0.0
d3setlocal
d3setlocal seventhRoadWidth + seventhStructBSize + 150.0, -100.0 + cnt * (seventhRoadLength / 10), tempSeventhStructZ + seventhStructBSize * 2.0 + seventhStructB2Size * 2.0 + seventhStructCSize * 2.0, seventhStructAxis(0), seventhStructAxis(1), seventhStructAxis(2), seventhStructAxis2(0), seventhStructAxis2(1), seventhStructAxis2(2), 0.0, 0.0, 1.0
d3box seventhStructT2Size, seventhStructT2Size, seventhStructT2Size * 2.0, -seventhStructT2Size, -seventhStructT2Size, 0.0
d3setlocal
//Top
seventhStructI = 1.0
for seventhI, 1, 11, 1
seventhStructAxis(0) = 1.0
seventhStructAxis(1) = 0.0
seventhStructAxis(2) = 0.0
seventhStructAxis2(0) = 0.0
seventhStructAxis2(1) = 1.0
seventhStructAxis2(2) = 0.0
setease 0.0, 20.0 * M_PI, ease_cubic_out
tempSeventhStructRota = geteasef(frame - 3248 - cnt * 10 - 40 - (seventhI - 1) * 5, 70)
d3vrotate seventhStructAxis(0), seventhStructAxis(1), seventhStructAxis(2), seventhStructAxis(0), seventhStructAxis(1), seventhStructAxis(2), 0.0, 0.0, 1.0, tempSeventhStructRota
d3vrotate seventhStructAxis2(0), seventhStructAxis2(1), seventhStructAxis2(2), seventhStructAxis2(0), seventhStructAxis2(1), seventhStructAxis2(2), 0.0, 0.0, 1.0, tempSeventhStructRota
setease 100000.0, -500.0 , ease_quartic_out
tempSeventhStructZ = geteasef(frame - 3248 - cnt * 10 - 40 - (seventhI - 1) * 5, 70)
d3setlocal -seventhRoadWidth - seventhStructBSize - 150.0, -100.0 + cnt * (seventhRoadLength / 10), (seventhStructI - 1.0) * (seventhStructTSize / 2.0) + tempSeventhStructZ + seventhStructBSize * 2.0 + seventhStructB2Size * 2.0 + seventhStructCSize * 2.0 + seventhStructT2Size * 2.0, seventhStructAxis(0), seventhStructAxis(1), seventhStructAxis(2), seventhStructAxis2(0), seventhStructAxis2(1), seventhStructAxis2(2), 0.0, 0.0, 1.0
d3box seventhStructTSize / seventhStructI, seventhStructTSize / seventhStructI, (seventhStructTSize * 2.0) / seventhStructI, -seventhStructTSize / seventhStructI, -seventhStructTSize / seventhStructI, 0.0
d3setlocal
d3setlocal seventhRoadWidth + seventhStructBSize + 150.0, -100.0 + cnt * (seventhRoadLength / 10), (seventhStructI - 1.0) * (seventhStructTSize / 2.0) + tempSeventhStructZ + seventhStructBSize * 2.0 + seventhStructB2Size * 2.0 + seventhStructCSize * 2.0 + seventhStructT2Size * 2.0, seventhStructAxis(0), seventhStructAxis(1), seventhStructAxis(2), seventhStructAxis2(0), seventhStructAxis2(1), seventhStructAxis2(2), 0.0, 0.0, 1.0
d3box seventhStructTSize / seventhStructI, seventhStructTSize / seventhStructI, (seventhStructTSize * 2.0) / seventhStructI, -seventhStructTSize / seventhStructI, -seventhStructTSize / seventhStructI, 0.0
d3setlocal
seventhStructI += 0.2
next
loop
gsel BUF_SCREEN
gmode 0, SC_SIZE_X, SC_SIZE_Y
gcopy BUF_SEVENTH
return
*EIGHTH
gsel BUF_EIGHTH
color 15, 15, 15
boxf
camX = CAMERA_DEF_X
camY = CAMERA_DEF_Y
camZ = CAMERA_DEF_Z
camAtX = CAMERA_AT_DEF_X
camAtY = CAMERA_AT_DEF_Y
camAtZ = CAMERA_AT_DEF_Z
if(frame < 4292) {
//Cube
eighthCubeAxises(0, 0) = 1.0
eighthCubeAxises(0, 1) = 0.0
eighthCubeAxises(0, 2) = 0.0
eighthCubeAxises(1, 0) = 0.0
eighthCubeAxises(1, 1) = 1.0
eighthCubeAxises(1, 2) = 0.0
eighthCubeAxises(2, 0) = 0.0
eighthCubeAxises(2, 1) = 0.0
eighthCubeAxises(2, 2) = 1.0
repeat 3 * 8
eighthCube(cnt / 8, cnt \ 8) = 30.0 * cubeVertices(cnt / 8, cnt \ 8)
loop
setease 500.0, 0.0, ease_quartic_out
tempEighthCubeX = geteasef(frame - 3760, 80)
setease 0.0, -400.0, ease_cubic_out
tempEighthCubeY = geteasef(frame - 3760, 980)
setease -500.0, 0.0, ease_quartic_out
tempEighthCubeZ = geteasef(frame - 3760, 80)
setease 0.0, 8.0 * M_PI, ease_linear
tempEighthCubeRota = geteasef(frame - 3760, 980)
d3vrotate eighthCubeAxises(0, 0), eighthCubeAxises(0, 1), eighthCubeAxises(0, 2), eighthCubeAxises(0, 0), eighthCubeAxises(0, 1), eighthCubeAxises(0, 2), eighthCubeAxises(2, 0), eighthCubeAxises(2, 1), eighthCubeAxises(2, 2), tempEighthCubeRota
d3vrotate eighthCubeAxises(1, 0), eighthCubeAxises(1, 1), eighthCubeAxises(1, 2), eighthCubeAxises(1, 0), eighthCubeAxises(1, 1), eighthCubeAxises(1, 2), eighthCubeAxises(2, 0), eighthCubeAxises(2, 1), eighthCubeAxises(2, 2), tempEighthCubeRota
d3vrotate eighthCubeAxises(1, 0), eighthCubeAxises(1, 1), eighthCubeAxises(1, 2), eighthCubeAxises(1, 0), eighthCubeAxises(1, 1), eighthCubeAxises(1, 2), eighthCubeAxises(0, 0), eighthCubeAxises(0, 1), eighthCubeAxises(0, 2), tempEighthCubeRota
d3vrotate eighthCubeAxises(2, 0), eighthCubeAxises(2, 1), eighthCubeAxises(2, 2), eighthCubeAxises(2, 0), eighthCubeAxises(2, 1), eighthCubeAxises(2, 2), eighthCubeAxises(0, 0), eighthCubeAxises(0, 1), eighthCubeAxises(0, 2), tempEighthCubeRota
d3setlocal tempEighthCubeX, tempEighthCubeY, tempEighthCubeZ, eighthCubeAxises(0, 0), eighthCubeAxises(0, 1), eighthCubeAxises(0, 2), eighthCubeAxises(1, 0), eighthCubeAxises(1, 1), eighthCubeAxises(1, 2), eighthCubeAxises(2, 0), eighthCubeAxises(2, 1), eighthCubeAxises(2, 2)
color 250, 250, 250
d3initlineto
d3lineto eighthCube(0, 0), eighthCube(1, 0), eighthCube(2, 0)
d3lineto eighthCube(0, 1), eighthCube(1, 1), eighthCube(2, 1)
d3lineto eighthCube(0, 2), eighthCube(1, 2), eighthCube(2, 2)
d3lineto eighthCube(0, 3), eighthCube(1, 3), eighthCube(2, 3)
d3lineto eighthCube(0, 0), eighthCube(1, 0), eighthCube(2, 0)
d3lineto eighthCube(0, 4), eighthCube(1, 4), eighthCube(2, 4)
d3lineto eighthCube(0, 5), eighthCube(1, 5), eighthCube(2, 5)
d3lineto eighthCube(0, 6), eighthCube(1, 6), eighthCube(2, 6)
d3lineto eighthCube(0, 7), eighthCube(1, 7), eighthCube(2, 7)
d3lineto eighthCube(0, 4), eighthCube(1, 4), eighthCube(2, 4)
d3initlineto
d3lineto eighthCube(0, 1), eighthCube(1, 1), eighthCube(2, 1)
d3lineto eighthCube(0, 5), eighthCube(1, 5), eighthCube(2, 5)
d3initlineto
d3lineto eighthCube(0, 2), eighthCube(1, 2), eighthCube(2, 2)
d3lineto eighthCube(0, 6), eighthCube(1, 6), eighthCube(2, 6)
d3initlineto
d3lineto eighthCube(0, 3), eighthCube(1, 3), eighthCube(2, 3)
d3lineto eighthCube(0, 7), eighthCube(1, 7), eighthCube(2, 7)
} else {
pos 0, 0
gsel BUF_EIGHTH_0
setease 15, 250, ease_quad_in
tempEighthEyeLineCol = geteasef(frame - 4360, 4489 - 4360)
color tempEighthEyeLineCol, tempEighthEyeLineCol, tempEighthEyeLineCol
boxf
//Eye
color 250, 250, 250
circle SC_CENTER_X - 300.0, SC_CENTER_Y - 300.0, SC_CENTER_X + 300.0, SC_CENTER_Y + 300.0
setease 1000.0, 250.0, ease_quartic_out
tempCircleRadius = geteasef(frame - 2093, 30)
setease 0.0, 256.0, ease_quartic_out
tempCircleHeight = geteasef(frame - 2093, 30)
setease tempCircleRadius, tempCircleRadius - tempCircleHeight / 2.0, ease_quartic_in
tempCircleDist = geteasef(frame - 2093, 30)
color tempEighthEyeLineCol, tempEighthEyeLineCol, tempEighthEyeLineCol
repeat 500
tempCircleY = sin(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleRadius - tempCircleDist
if(0 <= tempCircleY) {
line cos(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleRadius + SC_CENTER_X, tempCircleY + SC_CENTER_Y
} else {
pos cos(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleRadius + SC_CENTER_X, tempCircleY + SC_CENTER_Y
}
loop
repeat 500
tempCircleY = sin(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleRadius + tempCircleDist
if(tempCircleY <= 0) {
line cos(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleRadius + SC_CENTER_X, tempCircleY + SC_CENTER_Y
} else {
pos cos(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleRadius + SC_CENTER_X, tempCircleY + SC_CENTER_Y
}
loop
pos cos(0.0) * tempCircleCRadius + SC_CENTER_X, sin(0.0) * tempCircleCRadius + SC_CENTER_Y
repeat 500
tempCircleY = sin(2.0 * M_PI / 100.0 * (cnt + 1)) * (tempCircleHeight / 2.0)
tempCircleCY = sin(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleCRadius
if(tempCircleCY < 0) {
if(tempCircleY - 9.5 <= tempCircleCY) {
line cos(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleCRadius + SC_CENTER_X, tempCircleCY + SC_CENTER_Y
} else {
pos cos(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleCRadius + SC_CENTER_X, tempCircleCY + SC_CENTER_Y
}
} else {
if(tempCircleCY <= tempCircleY + 9.5) {
line cos(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleCRadius + SC_CENTER_X, tempCircleCY + SC_CENTER_Y
} else {
pos cos(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleCRadius + SC_CENTER_X, tempCircleCY + SC_CENTER_Y
}
}
loop
pos cos(0.0) * tempCircleC2Radius + SC_CENTER_X, sin(0.0) * tempCircleC2Radius + SC_CENTER_Y
repeat 500
tempCircleY = sin(2.0 * M_PI / 100.0 * (cnt + 1)) * (tempCircleHeight / 2.0)
tempCircleCY = sin(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleC2Radius
if(tempCircleCY < 0) {
if(tempCircleY - 9.5 <= tempCircleCY) {
line cos(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleC2Radius + SC_CENTER_X, tempCircleCY + SC_CENTER_Y
} else {
pos cos(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleC2Radius + SC_CENTER_X, tempCircleCY + SC_CENTER_Y
}
} else {
if(tempCircleCY <= tempCircleY + 9.5) {
line cos(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleC2Radius + SC_CENTER_X, tempCircleCY + SC_CENTER_Y
} else {
pos cos(2.0 * M_PI / 100.0 * (cnt + 1)) * tempCircleC2Radius + SC_CENTER_X, tempCircleCY + SC_CENTER_Y
}
}
loop
//White out
gsel BUF_EIGHTH
color tempEighthEyeLineCol, tempEighthEyeLineCol, tempEighthEyeLineCol
boxf
setease -2.0, 2.0, ease_cubic_inout | ease_loop
tempEighthSwingX = geteasef(frame - 4292, 40)
setease SC_CENTER_X, 320, ease_cubic_in
tempEighthSizeX = geteasef(frame - 4292, 4544 - 4292)
setease SC_CENTER_Y, 180, ease_cubic_in
tempEighthSizeY = geteasef(frame - 4292, 4544 - 4292)
pos double((SC_SIZE_X - tempEighthSizeX) / 2) + tempEighthSwingX, double((SC_SIZE_Y - tempEighthSizeY) / 2)
gzoom tempEighthSizeX, tempEighthSizeY, BUF_EIGHTH_0, 0, 0, SC_SIZE_X, SC_SIZE_Y, 1
//Info
if(4544 <= frame) {
gsel BUF_EIGHTH
gmode 0, SC_SIZE_X, SC_SIZE_Y
pos 0, 0
gcopy BUF_INFO
}
}
//Flashback
gsel BUF_EIGHTH
if((3811 <= frame && frame < 3861) || (3948 <= frame && frame < 3996) || (4086 <= frame && frame < 4128) || (4215 <= frame && frame < 4292)) {
if(frame \ 4 <= 1) {
if(eighthFlashbackBlack != 0) {
eighthFlashbackCnt++
eighthFlashbackBlack = 0
}
} else {
if(eighthFlashbackBlack != 1) {
eighthFlashbackCnt++
eighthFlashbackBlack = 1
}
}
gmode 0, SC_SIZE_X, SC_SIZE_Y
pos 0, 0
gcopy (eighthFlashbackCnt \ (BUF_FLASHBACK_E - BUF_FLASHBACK_B)) + BUF_FLASHBACK_B
}
gsel BUF_SCREEN
gmode 0, SC_SIZE_X, SC_SIZE_Y
gcopy BUF_EIGHTH
return
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment