The Cutting Room Floor now has a Patreon page. Thanks for all your support!

If you've blocked our ad, please consider unblocking it.
We promise it isn't annoying. No flash, no sound, ever.

Ads by Project Wonderful! Your ad here, right now: $0

Tetris Worlds (Game Boy Advance)

From The Cutting Room Floor
Jump to: navigation, search

Title Screen

Tetris Worlds

Developer: 3d6 Games
Publisher: THQ
Platform: Game Boy Advance
Released in JP: April 26, 2002
Released in US: September 5, 2001
Released in EU: December 7, 2001


DevTextIcon.png This game has hidden development-related text.
TextIcon.png This game has unused text.
RegionIcon.png This game has regional differences.


Tetris Worlds is a rather controversial entry in the Tetris franchise.

Regional Differences

Rules for Ultra Connect
Rules for Ultra Hotline
Rules for Ultra Square

These placeholder texts for Ultra mode games are only present in the Japanese version, which uses the same introduction texts for both Marathon and Ultra modes. The international versions have separate instructions for each mode.

Unused Text

Old version detected
This is a newer version
of Tetris Worlds and
cannot communicate with
the attached version.

Unused connection error message for version incompatibility.

This version is dated
08 25 2001 C
And should be reported as
VERSION 2.13
on the QA web site.
thanks

Build date and version numbers.

Development-Related Text

Similar to the Windows version, there are several Tetris Worlds Script (TWS)-like texts in the ROM. Unlike the PC version, however, they are mostly binary compiled (and as such only a small part of the script is in ASCII text) and still contain developer's comments (HBR is Henk B. Rogers).

tpf2data
<if pl.d0 > 0
	mix garbage
	garbage pl.d0
	set pl.d0 to 0
:minos 24:Ghost
set ghost to 1
lose
fldd
:images:Multi_24x24.pict
0pcev
sound "FX_FALL"
sound "FX_UNMVE"
sound "FX_RTA01"
sound "FX_UNMVE"
sound "FX_FALL"
sound "FX_FALL"
sound "FX_HRDDP"
*HBR: pf.d2 is the "lock" sound flag
*     pf.d2 = 1 means play lock sound
*     pf.d2 = 0 means don't play lock sound
set pf.d2 to 0
K* HBR: if pf.d2 = 0 don't play "land" sound
if pf.d2
 sound "FX_LND01"
*DBP: Added Henk's new T-spin recongnition and scoring system.
* HBR: if pf.d2 = 1 play "lock" sound
if pf.d2
 sound "FX_LCK01"
*HBR: piece.id : 1 is the "T" Tetramino
*     spin : check if the "T" was just spun 
*     shape : check for surrounding blocks
*     play voice if level < 6
*     else play sound effect
*     subtract the t-spin bonus (1 for a t-spin)
*     in the eliminate phase    (+2 for a single)
*     in the eliminate phase    (+6 for a double)
*     set pf.d4 : the t-spin flag
if piece.id = 1
	if spin
		shape "T-spin1" at piece.x, piece.y
		if result = 1
   if level < 6
    sound "VO_TSPIN"
   else
    sound "FX_RWD01"
   end
   set goal to goal -1 
			set pf.d4 to 1
		else
			shape "T-spin2" at piece.x, piece.y
			if result = 1
    if level < 6
     sound "VO_TSPIN"
    else
     sound "FX_RWD01"
    end
    set goal to goal -1 
				set pf.d4 to 1
			end
		end
	end
endctrl
mino
J color
:minos 24:jdrop
:minos 24:jlock
L color
:minos 24:ldrop
:minos 24:llock
S color
:minos 24:sdrop
:minos 24:slock
Z color
:minos 24:zdrop
:minos 24:zlock
O color
:minos 24:odrop
:minos 24:olock
T color
:minos 24:tdrop
:minos 24:tlock
I color
:minos 24:idrop
:minos 24:ilock
Garbage
:minos 24:garbage
xtetr
T Tetrimino
J Tetrimino
L Tetrimino
S Tetrimino
Z Tetrimino
I Tetrimino
O Tetrimino
xshap
T-spin1
T-spin2
xptrn
Line clear
kill mino
sound "FX_CLR01"
10xseqs
xsnds
FX_BMP01
:sounds 7/18:FX_BMP01.WAVs
FX_BMP02
:sounds 7/18:FX_BMP02.WAVs
FX_BMP03
:sounds 7/18:FX_BMP03.WAVs
FX_CAS01
:sounds 7/18:FX_CAS01.WAVs
FX_CLR01
:sounds 7/18:FX_CLR01.wavs
FX_FALL
:sounds 7/18:FX_FALL.WAVs
FX_FALL1
:sounds 7/18:FX_FALL1.wavs
FX_FALL2
:sounds 7/18:FX_FALL2.wavs
FX_FALL3
:sounds 7/18:FX_FALL3.WAVs
FX_FALL4
:sounds 7/18:FX_FALL4.WAVs
FX_FUS01
:sounds 7/18:FX_FUS01.wavs
FX_FUS02
:sounds 7/18:FX_FUS02.wavs
FX_FUS03
:sounds 7/18:FX_FUS03.WAVs
FX_GOLDF
:sounds 7/18:FX_GOLDF.WAVs
FX_HRDDP
:sounds 7/18:FX_HRDDP.WAVs
FX_HTLN0
:sounds 7/18:FX_HTLN0.WAVs
FX_HTLN1
:sounds 7/18:FX_HTLN1.WAVs
FX_HTLN2
:sounds 7/18:FX_HTLN2.WAVs
FX_HTLN3
:sounds 7/18:FX_HTLN3.wavs
FX_HTLN4
:sounds 7/18:FX_HTLN4.WAVs
FX_HTLN5
:sounds 7/18:FX_HTLN5.WAVs
FX_HTLN6
:sounds 7/18:FX_HTLN6.wavs
FX_HTLNE
:sounds 7/18:FX_HTLNE.wavs
FX_LCK01
:sounds 7/18:FX_LCK01.wavs
FX_LCK02
:sounds 7/18:FX_LCK02.wavs
FX_LCK03
:sounds 7/18:FX_LCK03.wavs
FX_LCK04
:sounds 7/18:FX_LCK04.wavs
FX_LCK05
:sounds 7/18:FX_LCK05.wavs
FX_LND01
:sounds 7/18:FX_LND01.wavs
FX_LND02
:sounds 7/18:FX_LND02.wavs
FX_LND03
:sounds 7/18:FX_LND03.WAVs
FX_LNE01
:sounds 7/18:FX_LNE01.WAVs
FX_LNE02
:sounds 7/18:FX_LNE02.WAVs
FX_LNE03
:sounds 7/18:FX_LNE03.WAVs
FX_LNE04
:sounds 7/18:FX_LNE04.WAVs
FX_LNE05
:sounds 7/18:FX_LNE05.wavs
FX_LNE06
:sounds 7/18:FX_LNE06.wavs
FX_LNE07
:sounds 7/18:FX_LNE07.wavs
FX_LNE08
:sounds 7/18:FX_LNE08.wavs
FX_LNE09
:sounds 7/18:FX_LNE09.wavs
FX_LNE10
:sounds 7/18:FX_LNE10.wavs
FX_LNE11
:sounds 7/18:FX_LNE11.wavs
FX_LNE12
:sounds 7/18:FX_LNE12.wavs
FX_LNE13
:sounds 7/18:FX_LNE13.wavs
FX_LNE14
:sounds 7/18:FX_LNE14.wavs
FX_LNE15
:sounds 7/18:FX_LNE15.wavs
FX_LOCK
:sounds 7/18:FX_LOCK.WAVs
FX_MASS1
:sounds 7/18:FX_MASS1.wavs
FX_MTRIS
:sounds 7/18:FX_MTRIS.wavs
FX_MTRIS01
:sounds 7/18:FX_MTRIS01.wavs
FX_MTRS1
:sounds 7/18:FX_MTRS1.WAVs
FX_MTRS2
:sounds 7/18:FX_MTRS2.WAVs
FX_MTRS3
:sounds 7/18:FX_MTRS3.WAVs
FX_MTRS4
:sounds 7/18:FX_MTRS4.WAVs
FX_MTRS5
:sounds 7/18:FX_MTRS5.WAVs
FX_MTRS6
:sounds 7/18:FX_MTRS6.WAVs
FX_MUT01
:sounds 7/18:FX_MUT01.WAVs
FX_RTA01
:sounds 7/18:FX_RTA01.wavs
FX_RTATL
:sounds 7/18:FX_RTATL.WAVs
FX_RTATR
:sounds 7/18:FX_RTATR.WAVs
FX_RWD01
:sounds 7/18:FX_RWD01.wavs
FX_RWD02
:sounds 7/18:FX_RWD02.wavs
FX_SFTDP
:sounds 7/18:FX_SFTDP.WAVs
FX_SLDEL
:sounds 7/18:FX_SLDEL.wavs
FX_SLVRF
:sounds 7/18:FX_SLVRF.WAVs
FX_UNMVE
:sounds 7/18:FX_UNMVE.WAVs
TWM_BGIN
:sounds 7/18:TWM_BGIN.WAVs
TWM_END
:sounds 7/18:TWM_END.WAVs
TWM_MIDL
:sounds 7/18:TWM_MIDL.WAVs
VO_01TIC
:sounds 7/18:VO_01TIC.WAVs
VO_02TIC
:sounds 7/18:VO_02TIC.WAVs
VO_03TIC
:sounds 7/18:VO_03TIC.WAVs
VO_04TIC
:sounds 7/18:VO_04TIC.WAVs
VO_05TIC
:sounds 7/18:VO_05TIC.WAVs
VO_06TIC
:sounds 7/18:VO_06TIC.WAVs
VO_07TIC
:sounds 7/18:VO_07TIC.WAVs
VO_08TIC
:sounds 7/18:VO_08TIC.WAVs
VO_09TIC
:sounds 7/18:VO_09TIC.WAVs
VO_10TIC
:sounds 7/18:VO_10TIC.WAVs
VO_15TIC
:sounds 7/18:VO_15TIC.WAVs
VO_20TIC
:sounds 7/18:VO_20TIC.wavs
VO_30TIC
:sounds 7/18:VO_30TIC.WAVs
VO_CAS01
:sounds 7/18:VO_CAS01.wavs
VO_CAS02
:sounds 7/18:VO_CAS02.wavs
VO_CAS03
:sounds 7/18:VO_CAS03.wavs
VO_CAS04
:sounds 7/18:VO_CAS04.wavs
VO_CAS05
:sounds 7/18:VO_CAS05.wavs
VO_CAS06
:sounds 7/18:VO_CAS06.wavs
VO_CAS07
:sounds 7/18:VO_CAS07.wavs
VO_CAS08
:sounds 7/18:VO_CAS08.wavs
VO_CAS09
:sounds 7/18:VO_CAS09.wavs
VO_CAS10
:sounds 7/18:VO_CAS10.wavs
VO_CAS11
:sounds 7/18:VO_CAS11.wavs
VO_CAS12
:sounds 7/18:VO_CAS12.wavs
VO_CAS13
:sounds 7/18:VO_CAS13.wavs
VO_CAS14
:sounds 7/18:VO_CAS14.wavs
VO_CAS15
:sounds 7/18:VO_CAS15.wavs
VO_EXLNT
:sounds 7/18:VO_EXLNT.wavs
VO_GREAT
:sounds 7/18:VO_GREAT.wavs
VO_HTLN1
:sounds 7/18:VO_HTLN1.WAVs
VO_HTLN2
:sounds 7/18:VO_HTLN2.WAVs
VO_HTLN3
:sounds 7/18:VO_HTLN3.WAVs
VO_HTLN4
:sounds 7/18:VO_HTLN4.WAVs
VO_HTLN5
:sounds 7/18:VO_HTLN5.WAVs
VO_HTLN6
:sounds 7/18:VO_HTLN6.WAVs
VO_HTLNE
:sounds 7/18:VO_HTLNE.wavs
VO_INT01
:sounds 7/18:VO_INT01.wavs
VO_INT02
:sounds 7/18:VO_INT02.wavs
VO_INT03
:sounds 7/18:VO_INT03.wavs
	VO_LINE01
:sounds 7/18:VO_LINE01.wavs
	VO_LINE02
:sounds 7/18:VO_LINE02.wavs
	VO_LINE03
:sounds 7/18:VO_LINE03.wavs
VO_TETRS
:sounds 7/18:VO_TETRS.wavs
VO_TIME
:sounds 7/18:VO_TIME.wavs
VO_TSPIN
:sounds 7/18:VO_TSPIN.wavxsong
xtrsh
xlvls
*HBR: pf.d3=1 the last line clear was a "tetris"
*     pf.d3=0 the last line clear was not
set pf.d3 to 0
*HBR: Goal has been reset to count down.
*     pf.d1 is the level target
*     goal is the number of points left till level clear
set pf.d1 to (5*level)
set goal to pf.d1
)if level >= 15
 sound "VO_EXLNT"
 win
endl
Level #1
Level #2
Level #3
Level #4
Level #5
Level #6
Level #7
Level #8
Level #9
	Level #10
	Level #11
	Level #12
	Level #13
	Level #14
	Level #15
xevnt
60 seconds
sound "TWM_MIDL"
30 seconds
sound "VO_30TIC"
20 seconds
sound "VO_20TIC"
100e
10 seconds
sound "VO_10TIC"
110e
	9 seconds
sound "VO_09TIC"
111e
	8 seconds
sound "VO_08TIC"
112e
	7 seconds
sound "VO_07TIC"
113e
	6 seconds
sound "VO_06TIC"
114e
	5 seconds
sound "VO_05TIC"
115e
	4 seconds
sound "VO_04TIC"
116e
	3 seconds
sound "VO_03TIC"
117e
	2 seconds
sound "VO_02TIC"
118e
1 second
sound "VO_01TIC"
119e
Time up
sound "VO_TIME"
120e
Go for a Tetris
sound "VO_INT01"
Level start
sound "TWM_BGIN"
Attack1
set pl.d0 to pl.d0 + 1
Attack2
set pl.d0 to pl.d0 + 2
Attack3
set pl.d0 to pl.d0 + 4
xanim
Death
xpgen
h*HBR: pf.d2 = 1 means play "lock" sound
set pf.d2 to 1
*HBR: pf.d4 = 0 means no t-spin
set pf.d4 to 0
$((.8-((level-1)*.007))^(level-1))/20
pfal
(.8-((level-1)*.007))^(level-1)$((.8-((level-1)*.007))^(level-1))/20
0.0001plok
ppat
ptr8
panm
pelm
6*DBP Deleted the Sending Attacks. There are no attacks in marathon mode
*HBR: ph.d0 is the number of lines cleared
*     play voice for beginner levels
*     play sound effect
*     subtract line points from goal
*     subtract t-spin bonus from goal
*     set pf.d3..the multiple tetris flag
*     send attack 
if ph.d0 = 1
 if level < 6
  sound "VO_LINE01"
 end
 sound "FX_LNE01"
	sound "FX_MTRS1"
 set goal to goal -1
 set pf.d3 to 0
 if pf.d4
  set goal to goal -1
 end
if ph.d0 = 2
 if level < 6
  sound "VO_LINE02"
 end
	sound "FX_LNE02"
	sound "FX_MTRS2"
	set goal to goal -3 
 set pf.d3 to 0
 if pf.d4
  set goal to goal -3
 end
	send "Attack1"
if ph.d0 = 3
 if level < 6
  sound "VO_LINE03"
 end
	sound "FX_LNE03"
	sound "FX_MTRS3"
	set goal to goal -5
 set pf.d3 to 0
	send "Attack2"
if ph.d0 = 4
 if level < 11
  sound "VO_TETRS"
 end
	sound "FX_LNE04"
	sound "FX_MTRS4"
 *HBR:  award -4 bonus for a multiple tetris
 *      and play the MTRIS sound effect
 *      "FX_MTRIS" has a 1 second blank
 *      so that it does not cover "VO_TETRS"
 *      "FX_MTRIS01" has no blank
 if pf.d3
  set goal to goal -4
  	sound "FX_MTRS5"
 end
 set pf.d3 to 1
 set goal to goal -8
	send "Attack3"
*HBR:  Sometimes the goal falls below 0 briefly
*      this makes sure it does not
if goal < 0
 set goal to 0
set ph.d0 to ph.d0 + 1
sound "FX_LNE01"psol
pgvt
sound "FX_LOCK"pcmp
i*HBR If the goal is less than or equal to 0
*    then go to the next level.
if goal <= 0
	next level
xxxx
tpf2data
:minos 24:Ghost
set ghost to 1
fldd
:images:Multi_24x24.pict
0pcev
sound "FX_FALL"
sound "FX_UNMVE"
sound "FX_RTA01"
sound "FX_LND01"
sound "FX_FALL"
sound "FX_FALL"
sound "FX_HRDDP"
*HBR: pf.d2 is the "lock" sound flag
*     pf.d2 = 1 means play lock sound
*     pf.d2 = 0 means don't play lock sound
set pf.d2 to 0
K* HBR: if pf.d2 = 0 don't play "land" sound
if pf.d2
 sound "FX_LND01"
*DBP: Added Henk's new T-spin recongnition and scoring system.
* HBR: if pf.d2 = 1 play "lock" sound
if pf.d2
 sound "FX_LCK01"
*HBR: piece.id : 1 is the "T" Tetramino
*     spin : check if the "T" was just spun 
*     shape : check for surrounding blocks
*     play voice if level < 6
*     else play sound effect
*     subtract the t-spin bonus (1 for a t-spin)
*     in the eliminate phase    (1 for a single)
*     in the eliminate phase    (3 for a double)
*     set pf.d4 : the t-spin flag
if piece.id = 1
	if spin
		shape "T-spin1" at piece.x, piece.y
		if result = 1
   if level < 6
    sound "VO_TSPIN"
   else
    sound "FX_RWD01"
   end
   set goal to goal -1 
			set pf.d4 to 1
		else
			shape "T-spin2" at piece.x, piece.y
			if result = 1
    if level < 6
     sound "VO_TSPIN"
    else
     sound "FX_RWD01"
    end
    set goal to goal -1 
				set pf.d4 to 1
			end
		end
	end
endctrl
mino
:minos 24:jdrop
:minos 24:jlock
:minos 24:tdrop
:minos 24:tlock
:minos 24:sdrop
:minos 24:slock
:minos 24:zdrop
:minos 24:zlock
:minos 24:ldrop
:minos 24:llock
:minos 24:odrop
:minos 24:olock
:minos 24:idrop
:minos 24:ilock
xtetr
xshap
tspin1
tspin2
xptrn
line clear
kill mino
sound "FX_CLR01"
10xseqs
xsnds
FX_BMP01
:sounds 7/18:FX_BMP01.WAVs
FX_BMP02
:sounds 7/18:FX_BMP02.WAVs
FX_BMP03
:sounds 7/18:FX_BMP03.WAVs
FX_CAS01
:sounds 7/18:FX_CAS01.WAVs
FX_CLR01
:sounds 7/18:FX_CLR01.wavs
FX_FALL
:sounds 7/18:FX_FALL.WAVs
FX_FALL1
:sounds 7/18:FX_FALL1.wavs
FX_FALL2
:sounds 7/18:FX_FALL2.wavs
FX_FALL3
:sounds 7/18:FX_FALL3.WAVs
FX_FALL4
:sounds 7/18:FX_FALL4.WAVs
FX_FUS01
:sounds 7/18:FX_FUS01.wavs
FX_FUS02
:sounds 7/18:FX_FUS02.wavs
FX_FUS03
:sounds 7/18:FX_FUS03.WAVs
FX_GOLDF
:sounds 7/18:FX_GOLDF.WAVs
FX_HRDDP
:sounds 7/18:FX_HRDDP.WAVs
FX_HTLN0
:sounds 7/18:FX_HTLN0.WAVs
FX_HTLN1
:sounds 7/18:FX_HTLN1.WAVs
FX_HTLN2
:sounds 7/18:FX_HTLN2.WAVs
FX_HTLN3
:sounds 7/18:FX_HTLN3.wavs
FX_HTLN4
:sounds 7/18:FX_HTLN4.WAVs
FX_HTLN5
:sounds 7/18:FX_HTLN5.WAVs
FX_HTLN6
:sounds 7/18:FX_HTLN6.wavs
FX_HTLNE
:sounds 7/18:FX_HTLNE.wavs
FX_LCK01
:sounds 7/18:FX_LCK01.wavs
FX_LCK02
:sounds 7/18:FX_LCK02.wavs
FX_LCK03
:sounds 7/18:FX_LCK03.wavs
FX_LCK04
:sounds 7/18:FX_LCK04.wavs
FX_LCK05
:sounds 7/18:FX_LCK05.wavs
FX_LND01
:sounds 7/18:FX_LND01.wavs
FX_LND02
:sounds 7/18:FX_LND02.wavs
FX_LND03
:sounds 7/18:FX_LND03.WAVs
FX_LNE01
:sounds 7/18:FX_LNE01.WAVs
FX_LNE02
:sounds 7/18:FX_LNE02.WAVs
FX_LNE03
:sounds 7/18:FX_LNE03.WAVs
FX_LNE04
:sounds 7/18:FX_LNE04.WAVs
FX_LNE05
:sounds 7/18:FX_LNE05.wavs
FX_LNE06
:sounds 7/18:FX_LNE06.wavs
FX_LNE07
:sounds 7/18:FX_LNE07.wavs
FX_LNE08
:sounds 7/18:FX_LNE08.wavs
FX_LNE09
:sounds 7/18:FX_LNE09.wavs
FX_LNE10
:sounds 7/18:FX_LNE10.wavs
FX_LNE11
:sounds 7/18:FX_LNE11.wavs
FX_LNE12
:sounds 7/18:FX_LNE12.wavs
FX_LNE13
:sounds 7/18:FX_LNE13.wavs
FX_LNE14
:sounds 7/18:FX_LNE14.wavs
FX_LNE15
:sounds 7/18:FX_LNE15.wavs
FX_LOCK
:sounds 7/18:FX_LOCK.WAVs
FX_MASS1
:sounds 7/18:FX_MASS1.wavs
FX_MTRIS
:sounds 7/18:FX_MTRIS.wavs
FX_MTRIS01
:sounds 7/18:FX_MTRIS01.wavs
FX_MTRS1
:sounds 7/18:FX_MTRS1.WAVs
FX_MTRS2
:sounds 7/18:FX_MTRS2.WAVs
FX_MTRS3
:sounds 7/18:FX_MTRS3.WAVs
FX_MTRS4
:sounds 7/18:FX_MTRS4.WAVs
FX_MTRS5
:sounds 7/18:FX_MTRS5.WAVs
FX_MTRS6
:sounds 7/18:FX_MTRS6.WAVs
FX_MUT01
:sounds 7/18:FX_MUT01.WAVs
FX_RTA01
:sounds 7/18:FX_RTA01.wavs
FX_RTATL
:sounds 7/18:FX_RTATL.WAVs
FX_RTATR
:sounds 7/18:FX_RTATR.WAVs
FX_RWD01
:sounds 7/18:FX_RWD01.wavs
FX_RWD02
:sounds 7/18:FX_RWD02.wavs
FX_SFTDP
:sounds 7/18:FX_SFTDP.WAVs
FX_SLDEL
:sounds 7/18:FX_SLDEL.wavs
FX_SLVRF
:sounds 7/18:FX_SLVRF.WAVs
FX_UNMVE
:sounds 7/18:FX_UNMVE.WAVs
TWM_BGIN
:sounds 7/18:TWM_BGIN.WAVs
TWM_END
:sounds 7/18:TWM_END.WAVs
TWM_MIDL
:sounds 7/18:TWM_MIDL.WAVs
VO_01TIC
:sounds 7/18:VO_01TIC.WAVs
VO_02TIC
:sounds 7/18:VO_02TIC.WAVs
VO_03TIC
:sounds 7/18:VO_03TIC.WAVs
VO_04TIC
:sounds 7/18:VO_04TIC.WAVs
VO_05TIC
:sounds 7/18:VO_05TIC.WAVs
VO_06TIC
:sounds 7/18:VO_06TIC.WAVs
VO_07TIC
:sounds 7/18:VO_07TIC.WAVs
VO_08TIC
:sounds 7/18:VO_08TIC.WAVs
VO_09TIC
:sounds 7/18:VO_09TIC.WAVs
VO_10TIC
:sounds 7/18:VO_10TIC.WAVs
VO_15TIC
:sounds 7/18:VO_15TIC.WAVs
VO_20TIC
:sounds 7/18:VO_20TIC.wavs
VO_30TIC
:sounds 7/18:VO_30TIC.WAVs
VO_CAS01
:sounds 7/18:VO_CAS01.wavs
VO_CAS02
:sounds 7/18:VO_CAS02.wavs
VO_CAS03
:sounds 7/18:VO_CAS03.wavs
VO_CAS04
:sounds 7/18:VO_CAS04.wavs
VO_CAS05
:sounds 7/18:VO_CAS05.wavs
VO_CAS06
:sounds 7/18:VO_CAS06.wavs
VO_CAS07
:sounds 7/18:VO_CAS07.wavs
VO_CAS08
:sounds 7/18:VO_CAS08.wavs
VO_CAS09
:sounds 7/18:VO_CAS09.wavs
VO_CAS10
:sounds 7/18:VO_CAS10.wavs
VO_CAS11
:sounds 7/18:VO_CAS11.wavs
VO_CAS12
:sounds 7/18:VO_CAS12.wavs
VO_CAS13
:sounds 7/18:VO_CAS13.wavs
VO_CAS14
:sounds 7/18:VO_CAS14.wavs
VO_CAS15
:sounds 7/18:VO_CAS15.wavs
VO_EXLNT
:sounds 7/18:VO_EXLNT.wavs
VO_GREAT
:sounds 7/18:VO_GREAT.wavs
VO_HTLN1
:sounds 7/18:VO_HTLN1.WAVs
VO_HTLN2
:sounds 7/18:VO_HTLN2.WAVs
VO_HTLN3
:sounds 7/18:VO_HTLN3.WAVs
VO_HTLN4
:sounds 7/18:VO_HTLN4.WAVs
VO_HTLN5
:sounds 7/18:VO_HTLN5.WAVs
VO_HTLN6
:sounds 7/18:VO_HTLN6.WAVs
VO_HTLNE
:sounds 7/18:VO_HTLNE.wavs
VO_INT01
:sounds 7/18:VO_INT01.wavs
VO_INT02
:sounds 7/18:VO_INT02.wavs
VO_INT03
:sounds 7/18:VO_INT03.wavs
	VO_LINE01
:sounds 7/18:VO_LINE01.wavs
	VO_LINE02
:sounds 7/18:VO_LINE02.wavs
	VO_LINE03
:sounds 7/18:VO_LINE03.wavs
VO_TETRS
:sounds 7/18:VO_TETRS.wavs
VO_TIME
:sounds 7/18:VO_TIME.wavs
VO_TSPIN
:sounds 7/18:VO_TSPIN.wavxsong
xtrsh
xlvls
*DBP: Inserted the new goal system
*HBR: Goal has been reset to count down.
*     pf.d1 is the level target
*     goal is the number of points left till level clear
set goal to (5*level)
)if level >= 15
 sound "VO_EXLNT"
 win
endxevnt
Cascade Intro
sound "VO_INT02"
60sec
sound "TWM_MIDL"
30sec
sound "VO_30TIC"
20sec
sound "VO_20TIC"
100e
10sec
sound "VO_10TIC"
110e
9sec
sound "VO_09TIC"
111e
8sec
sound "VO_08TIC"
112e
7sec
sound "VO_07TIC"
113e
6sec
sound "VO_06TIC"
114e
5sec
sound "VO_05TIC"
115e
4sec
sound "VO_04TIC"
116e
3sec
sound "VO_03TIC"
117e
2sec
sound "VO_02TIC"
118e
1sec
sound "VO_01TIC"
119e
Time Up
sound "VO_TIME"
120e
Game Start
sound "TWM_BGIN"
0xanim
Death
xpgen
h*HBR: pf.d2 = 1 means play "lock" sound
set pf.d2 to 1
*HBR: pf.d4 = 0 means no t-spin
set pf.d4 to 0
$((.8-((level-1)*.007))^(level-1))/20
pfal
(.8-((level-1)*.007))^(level-1)$((.8-((level-1)*.007))^(level-1))/20
0.0001plok
ppat
ptr8
panm
pelm
set ph.d0 to 0
*DBP: Changed the game form a scoring system to the new goal based system.
*JR: this script calculates the line bonus
*     subtract points from goal
if ph.d0 >= 1
	set goal to goal - (ph.d0+(ph.d0-1))
*JR- this script calculates the cascade bonus.  
if ph.d0>0
	if cascades>1
		set goal to goal - ((cascades-1)*2)
	end
if ph.d0>=4
  send "Attack3"
*DBP Added this calculation for precision in formulas
*HBR:  Sometimes the goal falls below 0 briefly
*      this makes sure it does not
if goal < 0
 set goal to 0
set ph.d0 to ph.d0 + 1
sound "FX_LNE01"psol
pgvt
sound "FX_LOCK"pcmp
\if cascades = 2
 sound "FX_MTRS1"
 if level < 6
  sound "VO_CAS01"
 end
if cascades = 3
 sound "FX_MTRS2"
 if level < 6
  sound "VO_CAS02"
 end
if cascades = 4
 sound "FX_MTRS3"
 if level < 6
  sound "VO_CAS03"
 end
if cascades = 5
 sound "FX_MTRS4"
 if level < 6
  sound "VO_CAS04"
 end
if cascades = 6
 sound "FX_MTRS5"
 if level < 6
  sound "VO_CAS05"
 end
if cascades = 7
 sound "FX_MTRS6"
 if level < 6
  sound "VO_CAS06"
 end
if cascades > 7
 sound "FX_MTRS6"
 if level < 6
  sound "VO_CAS07"
 end
if goal <= 0
	if level time < 120
		!rankup
	end
	next level
xxxx
tpf2data
:minos 24:Ghost
set ghost to 1
fldd
:images:Multi_24x24.pict
0pcev
sound "FX_FALL"
sound "FX_UNMVE"
sound "FX_RTA01"
sound "FX_LND01"
sound "FX_FALL"
sound"FX_FALL"
sound "FX_HRDDP"
*HBR: pf.d2 is the "lock" sound flag
*     pf.d2 = 1 means play lock sound
*     pf.d2 = 0 means don't play lock sound
set pf.d2 to 0
K* HBR: if pf.d2 = 0 don't play "land" sound
if pf.d2
 sound "FX_LND01"
* HBR: if pf.d2 = 1 play "lock" sound
if pf.d2
 sound "FX_LCK01"
*HBR: piece.id : 1 is the "T" Tetramino
*     spin : check if the "T" was just spun 
*     shape : check for surrounding blocks
*     play voice if level < 6
*     else play sound effect
*     subtract the t-spin bonus (1 for a t-spin)
*     in the eliminate phase    (1 for a single)
*     in the eliminate phase    (3 for a double)
*     set pf.d4 : the t-spin flag
if piece.id = 1
	if spin
		shape "T-spin1" at piece.x, piece.y
		if result = 1
   if level < 6
    sound "VO_TSPIN"
   else
    sound "FX_RWD01"
   end 
			set pf.d4 to 1
		else
			shape "T-spin2" at piece.x, piece.y
			if result = 1
    if level < 6
     sound "VO_TSPIN"
    else
     sound "FX_RWD01"
    end 
				set pf.d4 to 1
			end
		end
	end
endctrl
mino
:minos 24:jdrop
:minos 24:jlock
:minos 24:sdrop
:minos 24:slock
:minos 24:odrop
:minos 24:olock
:minos 24:ldrop
:minos 24:llock
:minos 24:tdrop
:minos 24:tlock
:minos 24:idrop
:minos 24:ilock
:minos 24:zdrop
:minos 24:zlock
Gold
:minos 24:fusionfall
:minos 24:fusionbase
Garbage
:minos 24:garbage
	Solo Blue
:minos 24:jlock
Solo Green
:minos 24:slock
Solo Yellow
:minos 24:olock
Solo Orange
:minos 24:llock
	Solo Cyan
:minos 24:tlock
Solo Purple
:minos 24:ilock
Solo Red
:minos 24:zlock
xtetr
xshap
tspin1
tspin2
xptrn
line clear
Fif mino.d0 = 0
	kill mino
	sound "FX_CLR01"
else
	set gravity to 1
sound"FX_SLVRF"
disease
%pattern "infection" at mino.x, mino.y
	infection
if mino.d1 = 1
	mutate mino
	sound "FX_FUS02"
 sound "FX_MTRS4"
	animate "infection"
	set goal to goal -1
else
	mutate mino
	level end
	kill mino
*set gravity to 1
set pf.d0 to 1
next level
	pf.d6 + 1xseqs
xsnds
FX_BMP01
:sounds 7/18:FX_BMP01.WAVs
FX_BMP02
:sounds 7/18:FX_BMP02.WAVs
FX_BMP03
:sounds 7/18:FX_BMP03.WAVs
FX_CAS01
:sounds 7/18:FX_CAS01.WAVs
FX_CLR01
:sounds 7/18:FX_CLR01.wavs
FX_FALL
:sounds 7/18:FX_FALL.WAVs
FX_FALL1
:sounds 7/18:FX_FALL1.wavs
FX_FALL2
:sounds 7/18:FX_FALL2.wavs
FX_FALL3
:sounds 7/18:FX_FALL3.WAVs
FX_FALL4
:sounds 7/18:FX_FALL4.WAVs
FX_FUS01
:sounds 7/18:FX_FUS01.wavs
FX_FUS02
:sounds 7/18:FX_FUS02.wavs
FX_FUS03
:sounds 7/18:FX_FUS03.WAVs
FX_GOLDF
:sounds 7/18:FX_GOLDF.WAVs
FX_HRDDP
:sounds 7/18:FX_HRDDP.WAVs
FX_HTLN0
:sounds 7/18:FX_HTLN0.WAVs
FX_HTLN1
:sounds 7/18:FX_HTLN1.WAVs
FX_HTLN2
:sounds 7/18:FX_HTLN2.WAVs
FX_HTLN3
:sounds 7/18:FX_HTLN3.wavs
FX_HTLN4
:sounds 7/18:FX_HTLN4.WAVs
FX_HTLN5
:sounds 7/18:FX_HTLN5.WAVs
FX_HTLN6
:sounds 7/18:FX_HTLN6.wavs
FX_HTLNE
:sounds 7/18:FX_HTLNE.wavs
FX_LCK01
:sounds 7/18:FX_LCK01.wavs
FX_LCK02
:sounds 7/18:FX_LCK02.wavs
FX_LCK03
:sounds 7/18:FX_LCK03.wavs
FX_LCK04
:sounds 7/18:FX_LCK04.wavs
FX_LCK05
:sounds 7/18:FX_LCK05.wavs
FX_LND01
:sounds 7/18:FX_LND01.wavs
FX_LND02
:sounds 7/18:FX_LND02.wavs
FX_LND03
:sounds 7/18:FX_LND03.WAVs
FX_LNE01
:sounds 7/18:FX_LNE01.WAVs
FX_LNE02
:sounds 7/18:FX_LNE02.WAVs
FX_LNE03
:sounds 7/18:FX_LNE03.WAVs
FX_LNE04
:sounds 7/18:FX_LNE04.WAVs
FX_LNE05
:sounds 7/18:FX_LNE05.wavs
FX_LNE06
:sounds 7/18:FX_LNE06.wavs
FX_LNE07
:sounds 7/18:FX_LNE07.wavs
FX_LNE08
:sounds 7/18:FX_LNE08.wavs
FX_LNE09
:sounds 7/18:FX_LNE09.wavs
FX_LNE10
:sounds 7/18:FX_LNE10.wavs
FX_LNE11
:sounds 7/18:FX_LNE11.wavs
FX_LNE12
:sounds 7/18:FX_LNE12.wavs
FX_LNE13
:sounds 7/18:FX_LNE13.wavs
FX_LNE14
:sounds 7/18:FX_LNE14.wavs
FX_LNE15
:sounds 7/18:FX_LNE15.wavs
FX_LOCK
:sounds 7/18:FX_LOCK.WAVs
FX_MASS1
:sounds 7/18:FX_MASS1.wavs
FX_MTRIS
:sounds 7/18:FX_MTRIS.wavs
FX_MTRIS01
:sounds 7/18:FX_MTRIS01.wavs
FX_MTRS1
:sounds 7/18:FX_MTRS1.WAVs
FX_MTRS2
:sounds 7/18:FX_MTRS2.WAVs
FX_MTRS3
:sounds 7/18:FX_MTRS3.WAVs
FX_MTRS4
:sounds 7/18:FX_MTRS4.WAVs
FX_MTRS5
:sounds 7/18:FX_MTRS5.WAVs
FX_MTRS6
:sounds 7/18:FX_MTRS6.WAVs
FX_MUT01
:sounds 7/18:FX_MUT01.WAVs
FX_RTA01
:sounds 7/18:FX_RTA01.wavs
FX_RTATL
:sounds 7/18:FX_RTATL.WAVs
FX_RTATR
:sounds 7/18:FX_RTATR.WAVs
FX_RWD01
:sounds 7/18:FX_RWD01.wavs
FX_RWD02
:sounds 7/18:FX_RWD02.wavs
FX_SFTDP
:sounds 7/18:FX_SFTDP.WAVs
FX_SLDEL
:sounds 7/18:FX_SLDEL.wavs
FX_SLVRF
:sounds 7/18:FX_SLVRF.WAVs
FX_UNMVE
:sounds 7/18:FX_UNMVE.WAVs
TWM_BGIN
:sounds 7/18:TWM_BGIN.WAVs
TWM_END
:sounds 7/18:TWM_END.WAVs
TWM_MIDL
:sounds 7/18:TWM_MIDL.WAVs
VO_01TIC
:sounds 7/18:VO_01TIC.WAVs
VO_02TIC
:sounds 7/18:VO_02TIC.WAVs
VO_03TIC
:sounds 7/18:VO_03TIC.WAVs
VO_04TIC
:sounds 7/18:VO_04TIC.WAVs
VO_05TIC
:sounds 7/18:VO_05TIC.WAVs
VO_06TIC
:sounds 7/18:VO_06TIC.WAVs
VO_07TIC
:sounds 7/18:VO_07TIC.WAVs
VO_08TIC
:sounds 7/18:VO_08TIC.WAVs
VO_09TIC
:sounds 7/18:VO_09TIC.WAVs
VO_10TIC
:sounds 7/18:VO_10TIC.WAVs
VO_15TIC
:sounds 7/18:VO_15TIC.WAVs
VO_20TIC
:sounds 7/18:VO_20TIC.wavs
VO_30TIC
:sounds 7/18:VO_30TIC.WAVs
VO_CAS01
:sounds 7/18:VO_CAS01.wavs
VO_CAS02
:sounds 7/18:VO_CAS02.wavs
VO_CAS03
:sounds 7/18:VO_CAS03.wavs
VO_CAS04
:sounds 7/18:VO_CAS04.wavs
VO_CAS05
:sounds 7/18:VO_CAS05.wavs
VO_CAS06
:sounds 7/18:VO_CAS06.wavs
VO_CAS07
:sounds 7/18:VO_CAS07.wavs
VO_CAS08
:sounds 7/18:VO_CAS08.wavs
VO_CAS09
:sounds 7/18:VO_CAS09.wavs
VO_CAS10
:sounds 7/18:VO_CAS10.wavs
VO_CAS11
:sounds 7/18:VO_CAS11.wavs
VO_CAS12
:sounds 7/18:VO_CAS12.wavs
VO_CAS13
:sounds 7/18:VO_CAS13.wavs
VO_CAS14
:sounds 7/18:VO_CAS14.wavs
VO_CAS15
:sounds 7/18:VO_CAS15.wavs
VO_EXLNT
:sounds 7/18:VO_EXLNT.wavs
VO_GREAT
:sounds 7/18:VO_GREAT.wavs
VO_HTLN1
:sounds 7/18:VO_HTLN1.WAVs
VO_HTLN2
:sounds 7/18:VO_HTLN2.WAVs
VO_HTLN3
:sounds 7/18:VO_HTLN3.WAVs
VO_HTLN4
:sounds 7/18:VO_HTLN4.WAVs
VO_HTLN5
:sounds 7/18:VO_HTLN5.WAVs
VO_HTLN6
:sounds 7/18:VO_HTLN6.WAVs
VO_HTLNE
:sounds 7/18:VO_HTLNE.wavs
VO_INT01
:sounds 7/18:VO_INT01.wavs
VO_INT02
:sounds 7/18:VO_INT02.wavs
VO_INT03
:sounds 7/18:VO_INT03.wavs
	VO_LINE01
:sounds 7/18:VO_LINE01.wavs
	VO_LINE02
:sounds 7/18:VO_LINE02.wavs
	VO_LINE03
:sounds 7/18:VO_LINE03.wavs
VO_TETRS
:sounds 7/18:VO_TETRS.wavs
VO_TIME
:sounds 7/18:VO_TIME.wavs
VO_TSPIN
:sounds 7/18:VO_TSPIN.wavxsong
xtrsh
left
right
	xlvls
mixed garbage (level)
if ((level/2) - (level\2)) = 0
	trash "left"
else
	trash "right"
*HBR: pf.d6 + 1 is the end level condition
*     in the "level end" pattern
set pf.d6 to level * 2
set goal to pf.d6
)if level >= 15
 sound "VO_EXLNT"
 win
endxevnt
30sec
sound "VO_30TIC"
20sec
sound "VO_20TIC"
100e
15sec
sound "VO_15TIC"
105e
10sec
sound "VO_10TIC"
110e
9sec
sound "VO_09TIC"
111e
8sec
sound "VO_08TIC"
112e
7sec
sound "VO_07TIC"
113e
6sec
sound "VO_06TIC"
114e
5sec
sound "VO_05TIC"
115e
4sec
sound "VO_04TIC"
116e
3sec
sound "VO_03TIC"
117e
2sec
sound "VO_02TIC"
118e
1sec
sound "VO_01TIC"
119e
Time Up
sound "VO_TIME"
120e
60sec
sound "TWM_MIDL"
Game Start
sound "TWM_BGIN"
Intro
sound "VO_INT01"
3xanim
death
	infection
xpgen
h*HBR: pf.d2 = 1 means play "lock" sound
set pf.d2 to 1
*HBR: pf.d4 = 0 means no t-spin
set pf.d4 to 0
$((.8-((level-1)*.007))^(level-1))/20
pfal
					
(.8-((level-1)*.007))^(level-1)$((.8-((level-1)*.007))^(level-1))/20
0.0001plok
ppat
set pf.d0 to 0
ptr8
kill mino
sound "FX_LOCK"
	pf.d0 = 1
panm
pelm
5set phase.d0 to 0
set phase.d0 to phase.d0 + cascades
exit
*HBR: ph.d0 is the number of lines cleared
*     play voice for beginner levels
*     play sound effect
if ph.d0 = 1
 sound "FX_LNE01"
if ph.d0 = 2
 sound "FX_LNE01"
 sound "FX_LNE01"
if ph.d0 = 3
 sound "FX_LNE01"
 sound "FX_LNE01"
 sound "FX_LNE01"
if ph.d0 = 4
 sound "FX_LNE01"
 sound "FX_LNE01"
 sound "FX_LNE01" 
 sound "FX_LNE01"
*HBR:  Sometimes the goal falls below 0 briefly
*      this makes sure it does not
if goal < 0
 set goal to 0
set phase.d0 to phase.d0 + 1
sound "FX_LNE01"
psol
pgvt
set gravity to 0
sound "FX_LOCK"pcmp
*HBR:  goal counts down to 0
*      under leveltime means next level (win)
*      over level time means lose (repeat level)
if goal <= 0
	next level
xxxx (repeat level)
if goal <= 0
	next level
xxxx
tpf2data
:minos 24:Ghost
set ghost to 1
fldd
:images:Multi_24x24.pict
pf.d9
pf.d8pcev
sound "FX_FALL"
sound "FX_UNMVE"
sound "FX_RTA01"
sound "FX_LND01"
sound "FX_FALL"
sound "FX_FALL"
sound "FX_HRDDP"
*HBR: pf.d2 is the "lock" sound flag
*     pf.d2 = 1 means play lock sound
*     pf.d2 = 0 means don't play lock sound
set pf.d2 to 0
K* HBR: if pf.d2 = 0 don't play "land" sound
if pf.d2
 sound "FX_LND01"
*DBP: Added Henk's new T-spin recongnition system.
* HBR: if pf.d2 = 1 play "lock" sound
if pf.d2
 sound "FX_LCK01"
*HBR: piece.id : 1 is the "T" Tetramino
*     spin : check if the "T" was just spun 
*     shape : check for surrounding blocks
*     play voice if level < 6
*     else play sound effect
*     set pf.d4 : the t-spin flag
if piece.id = 1
	if spin
		shape "T-spin1" at piece.x, piece.y
		if result = 1
   if level < 6
    sound "VO_TSPIN"
   else
    sound "FX_RWD01"
   end
			set pf.d4 to 1
		else
			shape "T-spin2" at piece.x, piece.y
			if result = 1
    if level < 6
     sound "VO_TSPIN"
    else
     sound "FX_RWD01"
    end
				set pf.d4 to 1
			end
		end
	end
endctrl
mino
:minos 24:tdrop
:minos 24:tlock
:minos 24:sdrop
:minos 24:slock
:minos 24:zdrop
:minos 24:zlock
:minos 24:ldrop
:minos 24:llock
:minos 24:odrop
:minos 24:olock
:minos 24:idrop
:minos 24:ilock
:minos 24:jdrop
:minos 24:jlock
garbage
:minos 24:garbage
special garbage
:minos 24:special garbage2
xtetr
xshap
tspin1
tspin2
xptrn
line clear
kill mino
sound "FX_CLR01"
Critical Mass Blue
kill mino
sound "FX_MASS1"
Critical Mass Cyan
kill mino
sound "FX_MASS1"
Critical Mass Green
kill mino
sound "FX_MASS1"
Critical Mass Red
kill mino
sound "FX_MASS1"
Critical Mass Maroon
kill mino
sound "FX_MASS1"
Critical Mass Yellow
kill mino
sound "FX_MASS1"
Critical Mass Purple
kill mino
sound "FX_MASS1"
24xseqs
xsnds
FX_BMP01
:sounds 7/18:FX_BMP01.WAVs
FX_BMP02
:sounds 7/18:FX_BMP02.WAVs
FX_BMP03
:sounds 7/18:FX_BMP03.WAVs
FX_CAS01
:sounds 7/18:FX_CAS01.WAVs
FX_CLR01
:sounds 7/18:FX_CLR01.wavs
FX_FALL
:sounds 7/18:FX_FALL.WAVs
FX_FALL1
:sounds 7/18:FX_FALL1.wavs
FX_FALL2
:sounds 7/18:FX_FALL2.wavs
FX_FALL3
:sounds 7/18:FX_FALL3.WAVs
FX_FALL4
:sounds 7/18:FX_FALL4.WAVs
FX_FUS01
:sounds 7/18:FX_FUS01.wavs
FX_FUS02
:sounds 7/18:FX_FUS02.wavs
FX_FUS03
:sounds 7/18:FX_FUS03.WAVs
FX_GOLDF
:sounds 7/18:FX_GOLDF.WAVs
FX_HRDDP
:sounds 7/18:FX_HRDDP.WAVs
FX_HTLN0
:sounds 7/18:FX_HTLN0.WAVs
FX_HTLN1
:sounds 7/18:FX_HTLN1.WAVs
FX_HTLN2
:sounds 7/18:FX_HTLN2.WAVs
FX_HTLN3
:sounds 7/18:FX_HTLN3.wavs
FX_HTLN4
:sounds 7/18:FX_HTLN4.WAVs
FX_HTLN5
:sounds 7/18:FX_HTLN5.WAVs
FX_HTLN6
:sounds 7/18:FX_HTLN6.wavs
FX_HTLNE
:sounds 7/18:FX_HTLNE.wavs
FX_LCK01
:sounds 7/18:FX_LCK01.wavs
FX_LCK02
:sounds 7/18:FX_LCK02.wavs
FX_LCK03
:sounds 7/18:FX_LCK03.wavs
FX_LCK04
:sounds 7/18:FX_LCK04.wavs
FX_LCK05
:sounds 7/18:FX_LCK05.wavs
FX_LND01
:sounds 7/18:FX_LND01.wavs
FX_LND02
:sounds 7/18:FX_LND02.wavs
FX_LND03
:sounds 7/18:FX_LND03.WAVs
FX_LNE01
:sounds 7/18:FX_LNE01.WAVs
FX_LNE02
:sounds 7/18:FX_LNE02.WAVs
FX_LNE03
:sounds 7/18:FX_LNE03.WAVs
FX_LNE04
:sounds 7/18:FX_LNE04.WAVs
FX_LNE05
:sounds 7/18:FX_LNE05.wavs
FX_LNE06
:sounds 7/18:FX_LNE06.wavs
FX_LNE07
:sounds 7/18:FX_LNE07.wavs
FX_LNE08
:sounds 7/18:FX_LNE08.wavs
FX_LNE09
:sounds 7/18:FX_LNE09.wavs
FX_LNE10
:sounds 7/18:FX_LNE10.wavs
FX_LNE11
:sounds 7/18:FX_LNE11.wavs
FX_LNE12
:sounds 7/18:FX_LNE12.wavs
FX_LNE13
:sounds 7/18:FX_LNE13.wavs
FX_LNE14
:sounds 7/18:FX_LNE14.wavs
FX_LNE15
:sounds 7/18:FX_LNE15.wavs
FX_LOCK
:sounds 7/18:FX_LOCK.WAVs
FX_MASS1
:sounds 7/18:FX_MASS1.wavs
FX_MTRIS
:sounds 7/18:FX_MTRIS.wavs
FX_MTRIS01
:sounds 7/18:FX_MTRIS01.wavs
FX_MTRS1
:sounds 7/18:FX_MTRS1.WAVs
FX_MTRS2
:sounds 7/18:FX_MTRS2.WAVs
FX_MTRS3
:sounds 7/18:FX_MTRS3.WAVs
FX_MTRS4
:sounds 7/18:FX_MTRS4.WAVs
FX_MTRS5
:sounds 7/18:FX_MTRS5.WAVs
FX_MTRS6
:sounds 7/18:FX_MTRS6.WAVs
FX_MUT01
:sounds 7/18:FX_MUT01.WAVs
FX_RTA01
:sounds 7/18:FX_RTA01.wavs
FX_RTATL
:sounds 7/18:FX_RTATL.WAVs
FX_RTATR
:sounds 7/18:FX_RTATR.WAVs
FX_RWD01
:sounds 7/18:FX_RWD01.wavs
FX_RWD02
:sounds 7/18:FX_RWD02.wavs
FX_SFTDP
:sounds 7/18:FX_SFTDP.WAVs
FX_SLDEL
:sounds 7/18:FX_SLDEL.wavs
FX_SLVRF
:sounds 7/18:FX_SLVRF.WAVs
FX_UNMVE
:sounds 7/18:FX_UNMVE.WAVs
TWM_BGIN
:sounds 7/18:TWM_BGIN.WAVs
TWM_END
:sounds 7/18:TWM_END.WAVs
TWM_MIDL
:sounds 7/18:TWM_MIDL.WAVs
VO_01TIC
:sounds 7/18:VO_01TIC.WAVs
VO_02TIC
:sounds 7/18:VO_02TIC.WAVs
VO_03TIC
:sounds 7/18:VO_03TIC.WAVs
VO_04TIC
:sounds 7/18:VO_04TIC.WAVs
VO_05TIC
:sounds 7/18:VO_05TIC.WAVs
VO_06TIC
:sounds 7/18:VO_06TIC.WAVs
VO_07TIC
:sounds 7/18:VO_07TIC.WAVs
VO_08TIC
:sounds 7/18:VO_08TIC.WAVs
VO_09TIC
:sounds 7/18:VO_09TIC.WAVs
VO_10TIC
:sounds 7/18:VO_10TIC.WAVs
VO_15TIC
:sounds 7/18:VO_15TIC.WAVs
VO_20TIC
:sounds 7/18:VO_20TIC.wavs
VO_30TIC
:sounds 7/18:VO_30TIC.WAVs
VO_CAS01
:sounds 7/18:VO_CAS01.wavs
VO_CAS02
:sounds 7/18:VO_CAS02.wavs
VO_CAS03
:sounds 7/18:VO_CAS03.wavs
VO_CAS04
:sounds 7/18:VO_CAS04.wavs
VO_CAS05
:sounds 7/18:VO_CAS05.wavs
VO_CAS06
:sounds 7/18:VO_CAS06.wavs
VO_CAS07
:sounds 7/18:VO_CAS07.wavs
VO_CAS08
:sounds 7/18:VO_CAS08.wavs
VO_CAS09
:sounds 7/18:VO_CAS09.wavs
VO_CAS10
:sounds 7/18:VO_CAS10.wavs
VO_CAS11
:sounds 7/18:VO_CAS11.wavs
VO_CAS12
:sounds 7/18:VO_CAS12.wavs
VO_CAS13
:sounds 7/18:VO_CAS13.wavs
VO_CAS14
:sounds 7/18:VO_CAS14.wavs
VO_CAS15
:sounds 7/18:VO_CAS15.wavs
VO_EXLNT
:sounds 7/18:VO_EXLNT.wavs
VO_GREAT
:sounds 7/18:VO_GREAT.wavs
VO_HTLN1
:sounds 7/18:VO_HTLN1.WAVs
VO_HTLN2
:sounds 7/18:VO_HTLN2.WAVs
VO_HTLN3
:sounds 7/18:VO_HTLN3.WAVs
VO_HTLN4
:sounds 7/18:VO_HTLN4.WAVs
VO_HTLN5
:sounds 7/18:VO_HTLN5.WAVs
VO_HTLN6
:sounds 7/18:VO_HTLN6.WAVs
VO_HTLNE
:sounds 7/18:VO_HTLNE.wavs
VO_INT01
:sounds 7/18:VO_INT01.wavs
VO_INT02
:sounds 7/18:VO_INT02.wavs
VO_INT03
:sounds 7/18:VO_INT03.wavs
	VO_LINE01
:sounds 7/18:VO_LINE01.wavs
	VO_LINE02
:sounds 7/18:VO_LINE02.wavs
	VO_LINE03
:sounds 7/18:VO_LINE03.wavs
VO_TETRS
:sounds 7/18:VO_TETRS.wavs
VO_TIME
:sounds 7/18:VO_TIME.wavs
VO_TSPIN
:sounds 7/18:VO_TSPIN.wavxsong
xtrsh
xlvls
set pf.d0 to 0
set pf.d8 to 0
set pf.d9 to 5
mixed garbage level
set pf.d9 to 0
set pf.d8 to 5
mixed garbage 1
set pf.d3 to 0
)if level >= 15
 sound "VO_EXLNT"
 win
endxevnt
Game Start
sound "TWM_BGIN"
Intro
sound "VO_INT02"
Time Up
sound "VO_TIME"
120e
sound "TWM_MIDL"
sound "VO_30TIC"
sound "VO_20TIC"
100e
sound "VO_10TIC"
110e
sound "VO_09TIC"
111e
sound "VO_08TIC"
112e
sound "VO_07TIC"
113e
sound "VO_06TIC"
114e
sound "VO_05TIC"
115e
sound "VO_04TIC"
116e
sound "VO_03TIC"
117e
sound "VO_02TIC"
118e
sound "VO_01TIC"
119xanim
death
xpgen
h*HBR: pf.d2 = 1 means play "lock" sound
set pf.d2 to 1
*HBR: pf.d4 = 0 means no t-spin
set pf.d4 to 0
$((.8-((level-1)*.007))^(level-1))/20
pfal
(.8-((level-1)*.007))^(level-1)$((.8-((level-1)*.007))^(level-1))/20
0.0001plok
ppat
ptr8
1kill mino
sound "FX_MTRS4"
set pf.d3 to pf.d3+1
pf.d3=1
panm
pelm
sound "FX_LNE01"psol
*If there are no special minos left, this script forces 
*the engine back to the iterate phase where all of the 
*remaining minos are killed. The pf.d3 variable makes 
*sure this only happens once.
if ph.d0 = 0
set pf.d3 to pf.d3 + 1
 if pf.d3 = 1
 touch
 end
next level
g*This part checks to see if there are any special minos 
*left on the playfield.
set ph.d0 to ph.d0+ 1pgvt
sound "FX_LOCK"pcmp
if cascades = 2
 sound "FX_MTRS1"
 if level < 6
  sound "VO_CAS01"
 end
if cascades = 3
 sound "FX_MTRS2"
 if level < 6
  sound "VO_CAS02"
 end
if cascades = 4
 sound "FX_MTRS3"
 if level < 6
  sound "VO_CAS03"
 end
if cascades = 5
 sound "FX_MTRS4"
 if level < 6
  sound "VO_CAS04"
 end
if cascades = 6
 sound "FX_MTRS5"
 if level < 6
  sound "VO_CAS05"
 end
if cascades = 7
 sound "FX_MTRS6"
 if level < 6
  sound "VO_CAS06"
 end
if cascades > 7
 sound "FX_MTRS6"
 if level < 6
  sound "VO_CAS07"
 end
xxxxx
tpf2data
:minos 24:Ghost
set ghost to 1
fldd
:images:hot_line24x24.pict
0pcev
sound "FX_FALL"
sound "FX_UNMVE"
sound "FX_RTA01"
sound "FX_LND01"
sound "FX_FALL"
sound "FX_FALL"
sound "FX_HRDDP"
*HBR: pf.d2 is the "lock" sound flag
*     pf.d2 = 1 means play lock sound
*     pf.d2 = 0 means don't play lock sound
set pf.d2 to 0
L* HBR: if pf.d2 = 0 don't play "land" sound
if pf.d2
 sound "FX_LND01"
*DBP: Added Henk's new T-spin recongnition system.
* HBR: if pf.d2 = 1 play "lock" sound
if pf.d2
 sound "FX_LCK01"
*HBR: piece.id : 1 is the "T" Tetramino
*     spin : check if the "T" was just spun 
*     shape : check for surrounding blocks
*     play voice if level < 6
*     else play sound effect
*     set pf.d4 : the t-spin flag
if piece.id = 1
	if spin
		shape "T-spin1" at piece.x, piece.y
		if result = 1
   if level < 6
    sound "VO_TSPIN"
   else
    sound "FX_RWD01"
   end 
			set pf.d4 to 1
		else
			shape "T-spin2" at piece.x, piece.y
			if result = 1
    if level < 6
     sound "VO_TSPIN"
    else
     sound "FX_RWD01"
    end
				set pf.d4 to 1
			end
		end
	end
endctrl
mino
:minos 24:jdrop
:minos 24:jlock
:minos 24:sdrop
:minos 24:slock
:minos 24:tdrop
:minos 24:tlock
:minos 24:zdrop
:minos 24:zlock
:minos 24:odrop
:minos 24:olock
:minos 24:idrop
:minos 24:ilock
:minos 24:ldrop
:minos 24:llock
	Solo Blue
:minos 24:jlock
Solo Green
:minos 24:slock
	Solo Cyan
:minos 24:tlock
Solo Red
:minos 24:zlock
Solo Yellow
:minos 24:olock
Solo Purple
:minos 24:ilock
Solo Orange
:minos 24:llock
xtetr
xshap
tspin1
tspin2
xptrn
line clear
/kill mino
sound "FX_CLR01"
set ph.d0 to mino.y
*DBP: Took out all reference to score to fit into the new goal based system.
if pf.d0 < 2
	if ph.d0 = 2
		set goal to goal - 6
		sound "FX_HTLN6"
*		sound "FX_MTRS6"
	else
		if ph.d0 = 3
		set goal to goal - 5
		sound "FX_HTLN5"
*		sound "FX_MTRS5"
		else
			if ph.d0 = 5
			set goal to goal - 4
			sound "FX_HTLN4"
*			sound "FX_MTRS4"
			else
				if ph.d0 = 8
				set goal to goal - 3
				sound "FX_HTLN3"
*				sound "FX_MTRS3"
				else
					if ph.d0 = 12
					set goal to goal - 2
					sound "FX_HTLN2"
*					sound "FX_MTRS2"
					else
						if ph.d0 = 17
						set goal to goal - 1
						sound "FX_HTLN1"
	*					sound "FX_MTRS1"
						end
					end
				end
			end
		end
	end
	if score >= goal
		set pf.d0 to 1
	end
10xseqs
xsnds
FX_BMP01
:sounds 7/18:FX_BMP01.WAVs
FX_BMP02
:sounds 7/18:FX_BMP02.WAVs
FX_BMP03
:sounds 7/18:FX_BMP03.WAVs
FX_CAS01
:sounds 7/18:FX_CAS01.WAVs
FX_CLR01
:sounds 7/18:FX_CLR01.wavs
FX_FALL
:sounds 7/18:FX_FALL.WAVs
FX_FALL1
:sounds 7/18:FX_FALL1.wavs
FX_FALL2
:sounds 7/18:FX_FALL2.wavs
FX_FALL3
:sounds 7/18:FX_FALL3.WAVs
FX_FALL4
:sounds 7/18:FX_FALL4.WAVs
FX_FUS01
:sounds 7/18:FX_FUS01.wavs
FX_FUS02
:sounds 7/18:FX_FUS02.wavs
FX_FUS03
:sounds 7/18:FX_FUS03.WAVs
FX_GOLDF
:sounds 7/18:FX_GOLDF.WAVs
FX_HRDDP
:sounds 7/18:FX_HRDDP.WAVs
FX_HTLN0
:sounds 7/18:FX_HTLN0.WAVs
FX_HTLN1
:sounds 7/18:FX_HTLN1.WAVs
FX_HTLN2
:sounds 7/18:FX_HTLN2.WAVs
FX_HTLN3
:sounds 7/18:FX_HTLN3.wavs
FX_HTLN4
:sounds 7/18:FX_HTLN4.WAVs
FX_HTLN5
:sounds 7/18:FX_HTLN5.WAVs
FX_HTLN6
:sounds 7/18:FX_HTLN6.wavs
FX_HTLNE
:sounds 7/18:FX_HTLNE.wavs
FX_LCK01
:sounds 7/18:FX_LCK01.wavs
FX_LCK02
:sounds 7/18:FX_LCK02.wavs
FX_LCK03
:sounds 7/18:FX_LCK03.wavs
FX_LCK04
:sounds 7/18:FX_LCK04.wavs
FX_LCK05
:sounds 7/18:FX_LCK05.wavs
FX_LND01
:sounds 7/18:FX_LND01.wavs
FX_LND02
:sounds 7/18:FX_LND02.wavs
FX_LND03
:sounds 7/18:FX_LND03.WAVs
FX_LNE01
:sounds 7/18:FX_LNE01.WAVs
FX_LNE02
:sounds 7/18:FX_LNE02.WAVs
FX_LNE03
:sounds 7/18:FX_LNE03.WAVs
FX_LNE04
:sounds 7/18:FX_LNE04.WAVs
FX_LNE05
:sounds 7/18:FX_LNE05.wavs
FX_LNE06
:sounds 7/18:FX_LNE06.wavs
FX_LNE07
:sounds 7/18:FX_LNE07.wavs
FX_LNE08
:sounds 7/18:FX_LNE08.wavs
FX_LNE09
:sounds 7/18:FX_LNE09.wavs
FX_LNE10
:sounds 7/18:FX_LNE10.wavs
FX_LNE11
:sounds 7/18:FX_LNE11.wavs
FX_LNE12
:sounds 7/18:FX_LNE12.wavs
FX_LNE13
:sounds 7/18:FX_LNE13.wavs
FX_LNE14
:sounds 7/18:FX_LNE14.wavs
FX_LNE15
:sounds 7/18:FX_LNE15.wavs
FX_LOCK
:sounds 7/18:FX_LOCK.WAVs
FX_MASS1
:sounds 7/18:FX_MASS1.wavs
FX_MTRIS
:sounds 7/18:FX_MTRIS.wavs
FX_MTRIS01
:sounds 7/18:FX_MTRIS01.wavs
FX_MTRS1
:sounds 7/18:FX_MTRS1.WAVs
FX_MTRS2
:sounds 7/18:FX_MTRS2.WAVs
FX_MTRS3
:sounds 7/18:FX_MTRS3.WAVs
FX_MTRS4
:sounds 7/18:FX_MTRS4.WAVs
FX_MTRS5
:sounds 7/18:FX_MTRS5.WAVs
FX_MTRS6
:sounds 7/18:FX_MTRS6.WAVs
FX_MUT01
:sounds 7/18:FX_MUT01.WAVs
FX_RTA01
:sounds 7/18:FX_RTA01.wavs
FX_RTATL
:sounds 7/18:FX_RTATL.WAVs
FX_RTATR
:sounds 7/18:FX_RTATR.WAVs
FX_RWD01
:sounds 7/18:FX_RWD01.wavs
FX_RWD02
:sounds 7/18:FX_RWD02.wavs
FX_SFTDP
:sounds 7/18:FX_SFTDP.WAVs
FX_SLDEL
:sounds 7/18:FX_SLDEL.wavs
FX_SLVRF
:sounds 7/18:FX_SLVRF.WAVs
FX_UNMVE
:sounds 7/18:FX_UNMVE.WAVs
TWM_BGIN
:sounds 7/18:TWM_BGIN.WAVs
TWM_END
:sounds 7/18:TWM_END.WAVs
TWM_MIDL
:sounds 7/18:TWM_MIDL.WAVs
VO_01TIC
:sounds 7/18:VO_01TIC.WAVs
VO_02TIC
:sounds 7/18:VO_02TIC.WAVs
VO_03TIC
:sounds 7/18:VO_03TIC.WAVs
VO_04TIC
:sounds 7/18:VO_04TIC.WAVs
VO_05TIC
:sounds 7/18:VO_05TIC.WAVs
VO_06TIC
:sounds 7/18:VO_06TIC.WAVs
VO_07TIC
:sounds 7/18:VO_07TIC.WAVs
VO_08TIC
:sounds 7/18:VO_08TIC.WAVs
VO_09TIC
:sounds 7/18:VO_09TIC.WAVs
VO_10TIC
:sounds 7/18:VO_10TIC.WAVs
VO_15TIC
:sounds 7/18:VO_15TIC.WAVs
VO_20TIC
:sounds 7/18:VO_20TIC.wavs
VO_30TIC
:sounds 7/18:VO_30TIC.WAVs
VO_CAS01
:sounds 7/18:VO_CAS01.wavs
VO_CAS02
:sounds 7/18:VO_CAS02.wavs
VO_CAS03
:sounds 7/18:VO_CAS03.wavs
VO_CAS04
:sounds 7/18:VO_CAS04.wavs
VO_CAS05
:sounds 7/18:VO_CAS05.wavs
VO_CAS06
:sounds 7/18:VO_CAS06.wavs
VO_CAS07
:sounds 7/18:VO_CAS07.wavs
VO_CAS08
:sounds 7/18:VO_CAS08.wavs
VO_CAS09
:sounds 7/18:VO_CAS09.wavs
VO_CAS10
:sounds 7/18:VO_CAS10.wavs
VO_CAS11
:sounds 7/18:VO_CAS11.wavs
VO_CAS12
:sounds 7/18:VO_CAS12.wavs
VO_CAS13
:sounds 7/18:VO_CAS13.wavs
VO_CAS14
:sounds 7/18:VO_CAS14.wavs
VO_CAS15
:sounds 7/18:VO_CAS15.wavs
VO_EXLNT
:sounds 7/18:VO_EXLNT.wavs
VO_GREAT
:sounds 7/18:VO_GREAT.wavs
VO_HTLN1
:sounds 7/18:VO_HTLN1.WAVs
VO_HTLN2
:sounds 7/18:VO_HTLN2.WAVs
VO_HTLN3
:sounds 7/18:VO_HTLN3.WAVs
VO_HTLN4
:sounds 7/18:VO_HTLN4.WAVs
VO_HTLN5
:sounds 7/18:VO_HTLN5.WAVs
VO_HTLN6
:sounds 7/18:VO_HTLN6.WAVs
VO_HTLNE
:sounds 7/18:VO_HTLNE.wavs
VO_INT01
:sounds 7/18:VO_INT01.wavs
VO_INT02
:sounds 7/18:VO_INT02.wavs
VO_INT03
:sounds 7/18:VO_INT03.wavs
	VO_LINE01
:sounds 7/18:VO_LINE01.wavs
	VO_LINE02
:sounds 7/18:VO_LINE02.wavs
	VO_LINE03
:sounds 7/18:VO_LINE03.wavs
VO_TETRS
:sounds 7/18:VO_TETRS.wavs
VO_TIME
:sounds 7/18:VO_TIME.wavs
VO_TSPIN
:sounds 7/18:VO_TSPIN.wavxsong
xtrsh
xlvls
*DBP: Implemented the new goal based system
*HBR: Goal has been reset to count down.
*     pf.d1 is the level target
*     goal is the number of points left till level clear
set pf.d1 to (5*level)
set goal to pf.d1
*if level >= 15
 sound "VO_EXLNT"
 win
xevnt
Hot Line Intro
sound "VO_INT03"
60sec
sound "TWM_MIDL"
30sec
sound "VO_30TIC"
20sec
sound "VO_20TIC"
100e
10sec
sound "VO_10TIC"
110e
9sec
sound "VO_09TIC"
111e
8sec
sound "VO_08TIC"
112e
7sec
sound "VO_07TIC"
113e
6sec
sound "VO_06TIC"
114e
5sec
sound "VO_05TIC"
115e
4sec
sound "VO_04TIC"
116e
3sec
sound "VO_03TIC"
117e
2sec
sound "VO_02TIC"
118e
1sec
sound "VO_01TIC"
119e
Time Up
sound "VO_TIME"
120e
Game Start
sound "TWM_BGIN"
0xanim
death
xpgen
xset pf.d0 to 0
*HBR: pf.d2 = 1 means play "lock" sound
set pf.d2 to 1
*HBR: pf.d4 = 0 means no t-spin
set pf.d4 to 0
$((.8-((level-1)*.007))^(level-1))/20
pfal
(.8-((level-1)*.007))^(level-1)$((.8-((level-1)*.007))^(level-1))/20
0.0001plok
ppat
ptr8
 if pf.d0 = 1
	set pf.d0 to 2
mutate mino
sound "FX_LOCK"
	pf.d0 = 1
panm
pelm
r*HBR:  Sometimes the goal falls below 0 briefly
*      this makes sure it does not
if goal < 0
 set goal to 0
sound "FX_LNE01"psol
pgvt
sound "FX_LOCK"pcmp
*HBR:  goal counts down to 0
*      under leveltime means next level (win)
*      over level time means lose (repeat level)
if goal <= 0
	next level
xxxxjX
tpf2data
:minos 24:Ghost
set ghost to 1
fldd
:images:Squaretris(24x24).pict
0pcev
sound "FX_FALL"
sound "FX_UNMVE"
sound "FX_RTA01"
sound "FX_LND01"
sound "FX_FALL"
sound "FX_FALL"
sound "FX_HRDDP"
*HBR: pf.d2 is the "lock" sound flag
*     pf.d2 = 1 means play lock sound
*     pf.d2 = 0 means don't play lock sound
set pf.d2 to 0
K* HBR: if pf.d2 = 0 don't play "land" sound
if pf.d2
 sound "FX_LND01"
* HBR: if pf.d2 = 1 play "lock" sound
if pf.d2
 sound "FX_LCK01"
*HBR: piece.id : 1 is the "T" Tetramino
*     spin : check if the "T" was just spun 
*     shape : check for surrounding blocks
*     play voice if level < 6
*     else play sound effect
*     subtract the t-spin bonus (1 for a t-spin)
*     in the eliminate phase    (1 for a single)
*     in the eliminate phase    (3 for a double)
*     set pf.d4 : the t-spin flag
if piece.id = 7
	if spin
		shape "T-spin 1" at piece.x, piece.y
		if result = 1
  * If you want t-spins to only work if facing up and down
  * script will be "if piece.dir = 0 | piece.dir = 2".
 	* jkm - selective destruction - begin
  	if piece.dir = 3
	  	pattern "t-spin top" at piece.x,piece.y-1
		  pattern "t-spin bottom" at piece.x,piece.y
	  else
		  pattern "t-spin top" at piece.x,piece.y
		  pattern "t-spin bottom" at piece.x,piece.y+1
	  end
	 * jkm - selective destruction - end
   if level < 6
    sound "VO_TSPIN"
   else
    sound "FX_RWD01"
   end
   set goal to goal -1 
			set pf.d4 to 1
		else
			shape "T-spin 2" at piece.x, piece.y
			if result = 1
  * If you want t-spins to only work if facing up and down
  * script will be "if piece.dir = 0 | piece.dir = 2".
 	* jkm - selective destruction - begin
  	if piece.dir = 3
	  	pattern "t-spin top" at piece.x,piece.y-1
		  pattern "t-spin bottom" at piece.x,piece.y
	  else
		  pattern "t-spin top" at piece.x,piece.y
		  pattern "t-spin bottom" at piece.x,piece.y+1
	  end
	 * jkm - selective destruction - end
    if level < 6
     sound "VO_TSPIN"
    else
     sound "FX_RWD01"
    end
    set goal to goal -1 
				set pf.d4 to 1
			end
		end
	end
ctrl
mino
J color
:minos 24:jdrop
:minos 24:jlock
L color
:minos 24:ldrop
:minos 24:llock
S color
:minos 24:sdrop
:minos 24:slock
Z color
:minos 24:zdrop
:minos 24:zlock
O color
:minos 24:odrop
:minos 24:olock
T color
:minos 24:tdrop
:minos 24:tlock
I color
:minos 24:idrop
:minos 24:ilock
Pure Square
:minos 24:Pure Square.pict
Combo Square
:minos 24:Combo Square.pict
Result J color
:minos 24:jdrop
:minos 24:jlock
Result L color
:minos 24:ldrop
:minos 24:llock
Result S color
:minos 24:sdrop
:minos 24:slock
Result Z color
:minos 24:zdrop
:minos 24:zlock
Result O color
:minos 24:odrop
:minos 24:olock
Result T color
:minos 24:tdrop
:minos 24:tlock
Result I color
:minos 24:idrop
:minos 24:ilock
Result Pure Square
:minos 24:Pure Square.pict
Result Combo Square
:minos 24:Combo Square.pict
garbage
:minos 24:garbage
:minos 24:garbage
xtetr
J Tetrimino
I Tetrimino
O Tetrimino
S Tetrimino
L Tetrimino
Z Tetrimino
T Tetrimino
xshap
Perfect Square
T-spin 1
T-spin 2
Spin S 1
Spin S 2
Spin Z 1
Spin Z 2
xptrn
t-spin top
 sound "FX_RWD02"
set pl.d4 to 0
set pl.d5 to mino.y
t-spin bottom
!sound "FX_RWD01"
set pl.d5 to 21
&if pl.d4 = -1
	set pl.d4 to mino.y
J Square
^*DBP - UPDATED the VISIBLE TAGS so that each piece can correctly form GOLD and SILVER squares.
* When a perfet square is created using 4 "J" Tetriminos, the "J" Teriminos will be replaced/transformed with/to the "Pure Square" mino set.
set mino to "Pure Square"
animate "Pure & Combo"
solidify
sound "FX_GOLDF"
I Square
^*DBP - UPDATED the VISIBLE TAGS so that each piece can correctly form GOLD and SILVER squares.
* When a perfet square is created using 4 "I" Tetriminos, the "I" Teriminos will be replaced/transformed with/to the "Pure Square" mino set.
set mino to "Pure Square"
animate "Pure & Combo"
solidify
sound "FX_GOLDF"
O Square
^*DBP - UPDATED the VISIBLE TAGS so that each piece can correctly form GOLD and SILVER squares.
* When a perfet square is created using 4 "O" Tetriminos, the "O" Teriminos will be replaced/transformed with/to the "Pure Square" mino set.
set mino to "Pure Square"
animate "Pure & Combo"
solidify
sound "FX_GOLDF"
T Square
^*DBP - UPDATED the VISIBLE TAGS so that each piece can correctly form GOLD and SILVER squares.
* When a perfet square is created using 4 "T" Tetriminos, the "T" Teriminos will be replaced/transformed with/to the "Pure Square" mino set.
set mino to "Pure Square"
animate "Pure & Combo"
solidify
sound "FX_GOLDF"
L Square
^*DBP - UPDATED the VISIBLE TAGS so that each piece can correctly form GOLD and SILVER squares.
* When a perfet square is created using 4 "L" Tetriminos, the "L" Teriminos will be replaced/transformed with/to the "Pure Square" mino set.
set mino to "Pure Square"
animate "Pure & Combo"
solidify
sound "FX_GOLDF"
Combo Square
1set mino to "Combo Square"
animate "Pure & Combo"
solidify
sound "FX_SLVRF"
Line clear
r* Adding the points from the mino.d9 to the bonus points
set pf.d0 to pf.d0 + mino.d9
kill mino
sound "FX_CLR01"
10xseqs
xsnds
FX_BMP01
:sounds 7/18:FX_BMP01.WAVs
FX_BMP02
:sounds 7/18:FX_BMP02.WAVs
FX_BMP03
:sounds 7/18:FX_BMP03.WAVs
FX_CAS01
:sounds 7/18:FX_CAS01.WAVs
FX_CLR01
:sounds 7/18:FX_CLR01.wavs
FX_FALL
:sounds 7/18:FX_FALL.WAVs
FX_FALL1
:sounds 7/18:FX_FALL1.wavs
FX_FALL2
:sounds 7/18:FX_FALL2.wavs
FX_FALL3
:sounds 7/18:FX_FALL3.WAVs
FX_FALL4
:sounds 7/18:FX_FALL4.WAVs
FX_FUS01
:sounds 7/18:FX_FUS01.wavs
FX_FUS02
:sounds 7/18:FX_FUS02.wavs
FX_FUS03
:sounds 7/18:FX_FUS03.WAVs
FX_GOLDF
:sounds 7/18:FX_GOLDF.WAVs
FX_HRDDP
:sounds 7/18:FX_HRDDP.WAVs
FX_HTLN0
:sounds 7/18:FX_HTLN0.WAVs
FX_HTLN1
:sounds 7/18:FX_HTLN1.WAVs
FX_HTLN2
:sounds 7/18:FX_HTLN2.WAVs
FX_HTLN3
:sounds 7/18:FX_HTLN3.wavs
FX_HTLN4
:sounds 7/18:FX_HTLN4.WAVs
FX_HTLN5
:sounds 7/18:FX_HTLN5.WAVs
FX_HTLN6
:sounds 7/18:FX_HTLN6.wavs
FX_HTLNE
:sounds 7/18:FX_HTLNE.wavs
FX_LCK01
:sounds 7/18:FX_LCK01.wavs
FX_LCK02
:sounds 7/18:FX_LCK02.wavs
FX_LCK03
:sounds 7/18:FX_LCK03.wavs
FX_LCK04
:sounds 7/18:FX_LCK04.wavs
FX_LCK05
:sounds 7/18:FX_LCK05.wavs
FX_LND01
:sounds 7/18:FX_LND01.wavs
FX_LND02
:sounds 7/18:FX_LND02.wavs
FX_LND03
:sounds 7/18:FX_LND03.WAVs
FX_LNE01
:sounds 7/18:FX_LNE01.WAVs
FX_LNE02
:sounds 7/18:FX_LNE02.WAVs
FX_LNE03
:sounds 7/18:FX_LNE03.WAVs
FX_LNE04
:sounds 7/18:FX_LNE04.WAVs
FX_LNE05
:sounds 7/18:FX_LNE05.wavs
FX_LNE06
:sounds 7/18:FX_LNE06.wavs
FX_LNE07
:sounds 7/18:FX_LNE07.wavs
FX_LNE08
:sounds 7/18:FX_LNE08.wavs
FX_LNE09
:sounds 7/18:FX_LNE09.wavs
FX_LNE10
:sounds 7/18:FX_LNE10.wavs
FX_LNE11
:sounds 7/18:FX_LNE11.wavs
FX_LNE12
:sounds 7/18:FX_LNE12.wavs
FX_LNE13
:sounds 7/18:FX_LNE13.wavs
FX_LNE14
:sounds 7/18:FX_LNE14.wavs
FX_LNE15
:sounds 7/18:FX_LNE15.wavs
FX_LOCK
:sounds 7/18:FX_LOCK.WAVs
FX_MASS1
:sounds 7/18:FX_MASS1.wavs
FX_MTRIS
:sounds 7/18:FX_MTRIS.wavs
FX_MTRIS01
:sounds 7/18:FX_MTRIS01.wavs
FX_MTRS1
:sounds 7/18:FX_MTRS1.WAVs
FX_MTRS2
:sounds 7/18:FX_MTRS2.WAVs
FX_MTRS3
:sounds 7/18:FX_MTRS3.WAVs
FX_MTRS4
:sounds 7/18:FX_MTRS4.WAVs
FX_MTRS5
:sounds 7/18:FX_MTRS5.WAVs
FX_MTRS6
:sounds 7/18:FX_MTRS6.WAVs
FX_MUT01
:sounds 7/18:FX_MUT01.WAVs
FX_RTA01
:sounds 7/18:FX_RTA01.wavs
FX_RTATL
:sounds 7/18:FX_RTATL.WAVs
FX_RTATR
:sounds 7/18:FX_RTATR.WAVs
FX_RWD01
:sounds 7/18:FX_RWD01.wavs
FX_RWD02
:sounds 7/18:FX_RWD02.wavs
FX_SFTDP
:sounds 7/18:FX_SFTDP.WAVs
FX_SLDEL
:sounds 7/18:FX_SLDEL.wavs
FX_SLVRF
:sounds 7/18:FX_SLVRF.WAVs
FX_UNMVE
:sounds 7/18:FX_UNMVE.WAVs
TWM_BGIN
:sounds 7/18:TWM_BGIN.WAVs
TWM_END
:sounds 7/18:TWM_END.WAVs
TWM_MIDL
:sounds 7/18:TWM_MIDL.WAVs
VO_01TIC
:sounds 7/18:VO_01TIC.WAVs
VO_02TIC
:sounds 7/18:VO_02TIC.WAVs
VO_03TIC
:sounds 7/18:VO_03TIC.WAVs
VO_04TIC
:sounds 7/18:VO_04TIC.WAVs
VO_05TIC
:sounds 7/18:VO_05TIC.WAVs
VO_06TIC
:sounds 7/18:VO_06TIC.WAVs
VO_07TIC
:sounds 7/18:VO_07TIC.WAVs
VO_08TIC
:sounds 7/18:VO_08TIC.WAVs
VO_09TIC
:sounds 7/18:VO_09TIC.WAVs
VO_10TIC
:sounds 7/18:VO_10TIC.WAVs
VO_15TIC
:sounds 7/18:VO_15TIC.WAVs
VO_20TIC
:sounds 7/18:VO_20TIC.wavs
VO_30TIC
:sounds 7/18:VO_30TIC.WAVs
VO_CAS01
:sounds 7/18:VO_CAS01.wavs
VO_CAS02
:sounds 7/18:VO_CAS02.wavs
VO_CAS03
:sounds 7/18:VO_CAS03.wavs
VO_CAS04
:sounds 7/18:VO_CAS04.wavs
VO_CAS05
:sounds 7/18:VO_CAS05.wavs
VO_CAS06
:sounds 7/18:VO_CAS06.wavs
VO_CAS07
:sounds 7/18:VO_CAS07.wavs
VO_CAS08
:sounds 7/18:VO_CAS08.wavs
VO_CAS09
:sounds 7/18:VO_CAS09.wavs
VO_CAS10
:sounds 7/18:VO_CAS10.wavs
VO_CAS11
:sounds 7/18:VO_CAS11.wavs
VO_CAS12
:sounds 7/18:VO_CAS12.wavs
VO_CAS13
:sounds 7/18:VO_CAS13.wavs
VO_CAS14
:sounds 7/18:VO_CAS14.wavs
VO_CAS15
:sounds 7/18:VO_CAS15.wavs
VO_EXLNT
:sounds 7/18:VO_EXLNT.wavs
VO_GREAT
:sounds 7/18:VO_GREAT.wavs
VO_HTLN1
:sounds 7/18:VO_HTLN1.WAVs
VO_HTLN2
:sounds 7/18:VO_HTLN2.WAVs
VO_HTLN3
:sounds 7/18:VO_HTLN3.WAVs
VO_HTLN4
:sounds 7/18:VO_HTLN4.WAVs
VO_HTLN5
:sounds 7/18:VO_HTLN5.WAVs
VO_HTLN6
:sounds 7/18:VO_HTLN6.WAVs
VO_HTLNE
:sounds 7/18:VO_HTLNE.wavs
VO_INT01
:sounds 7/18:VO_INT01.wavs
VO_INT02
:sounds 7/18:VO_INT02.wavs
VO_INT03
:sounds 7/18:VO_INT03.wavs
	VO_LINE01
:sounds 7/18:VO_LINE01.wavs
	VO_LINE02
:sounds 7/18:VO_LINE02.wavs
	VO_LINE03
:sounds 7/18:VO_LINE03.wavs
VO_TETRS
:sounds 7/18:VO_TETRS.wavs
VO_TIME
:sounds 7/18:VO_TIME.wavs
VO_TSPIN
:sounds 7/18:VO_TSPIN.wavxsong
xtrsh
xlvls
*HBR: pf.d3=1 the last line clear was a "tetris"
*     pf.d3=0 the last line clear was not
set pf.d3 to 0
*HBR: goal is set
*     game subtracts from the goal
*     if the goal <= 0 then level up
set goal to (10*level)
if level >= 15
	win
endl
Level #1
Level #2
Level #3
Level #4
Level #5
Level #6
Level #7
Level #8
Level #9
	Level #10
	Level #11
	Level #12
	Level #13
	Level #14
	Level #15
xevnt
60 seconds
sound "TWM_MIDL"
30 seconds
sound "VO_30TIC"
20 seconds
sound "VO_20TIC"
100e
10 seconds
sound "VO_10TIC"
110e
	9 seconds
sound "VO_09TIC"
111e
	8 seconds
sound "VO_08TIC"
112e
	7 seconds
sound "VO_07TIC"
113e
	6 seconds
sound "VO_06TIC"
114e
	5 seconds
sound "VO_05TIC"
115e
	4 seconds
sound "VO_04TIC"
116e
	3 seoncds
sound "VO_03TIC"
117e
	2 seconds
sound "VO_02TIC"
118e
1 second
sound "VO_01TIC"
119e
Time up
sound "VO_TIME"
120e
Intro
sound "VO_INT01"
Game Start
sound "TWM_BGIN"
Attack1
mix garbage
garbage 1
Attack2
mix garbage
garbage 2
Attack3
mix garbage
garbage 4
xanim
Death
Pure & Combo
xpgen
h*HBR: pf.d2 = 1 means play "lock" sound
set pf.d2 to 1
*HBR: pf.d4 = 0 means no t-spin
set pf.d4 to 0
$((.8-((level-1)*.007))^(level-1))/20
pfal
(.8-((level-1)*.007))^(level-1)$((.8-((level-1)*.007))^(level-1))/20
0.0001plok
ppat
* jkm - selective destruction - begin
* Clear the pl.d4 & pl.d5
set pl.d4 to -1
set pl.d5 to -1
* jkm - selective destruction - end
ptr8
X* ESP - This turns the gravity on.
if pl.d4 != -1
	set gravity to 1
set pl.d6 to 0
* jkm - selective destruction - begin
if mino.y > pl.d5
	exit
if mino.y < pl.d4
	exit
* jkm - selective destruction - end
* ESP - This will change all the original minos to the mutate minos assigned.
mutate mino
sound "FX_LOCK"
pl.d4 != -1
panm
pelm
*HBR: ph.d0 is the number of lines cleared
*     play voice for beginner levels
*     play sound effect
*     subtract the t-spin bonus (1 for a single)
*        					                  (3 for a double)
*     subtract points from goal
if ph.d0 = 1
 if level < 6
  sound "VO_LINE01"
 end
 if pf.d4
  set goal to goal - 1
 end
 sound "FX_LNE01"
	sound "FX_MTRS1"
 set goal to goal -1
if ph.d0 = 2
 if level < 6
  sound "VO_LINE02"
 end
 if pf.d4
  set goal to goal - 3
 end
 sound "FX_LNE01"
 sound "FX_LNE01"
	sound "FX_MTRS2"
	set goal to goal -3
	send "Attack1"
if ph.d0 = 3
 if level < 6
  sound "VO_LINE03"
 end
 sound "FX_LNE01"
 sound "FX_LNE01"
 sound "FX_LNE01"
	sound "FX_MTRS3"
	set goal to goal -5
	send "Attack2"
if ph.d0 >= 4
 if level < 11
  sound "VO_TETRS"
 end
 sound "FX_LNE01"
 sound "FX_LNE01"
 sound "FX_LNE01" 
 sound "FX_LNE01"
	sound "FX_MTRS4"
 set goal to goal -8
	send "Attack3"
*HBR:  Sometimes the goal falls below 0 briefly
*      this makes sure it does not
if goal < 0
 set goal to 0
set ph.d0 to ph.d0 + 1
_*ESP - Adding the Pure/Combo square bonus to the score.
set goal to goal - pf.d0
set pf.d0 to 0
sound "FX_LNE01"psol
pgvt
T* ESP - After the T-spin is triggered, this turns the gravity off.
set gravity to 0
sound "FX_LOCK"pcmp
*HBR:  goal counts down to 0
*      under leveltime means next level (win)
*      over level time means lose (repeat level)
if goal <= 0
	next level
xxxxcleared
*     play voice for beginner levels
*     play sound effect
*     subtract the t-spin bonus (1 for a single)
*        					                  (3 for a double)
*     subtract points from goal
*     send attack 
if ph.d0 = 1
 if level < 6
  sound "VO_LINE01"
 end
 if pf.d4
  set goal to goal - 1
 end
 sound "FX_LNE01"
 set goal to goal -1
if ph.d0 = 2
 if level < 6
  sound "VO_LINE02"
 end
 if pf.d4
  set goal to goal - 3
 end
	* sound "FX_LNE02"
 sound "FX_LNE01"
 sound "FX_LNE01"
	set goal to goal -3 
	send "Attack 1"
if ph.d0 = 3
 if level < 6
  sound "VO_LINE03"
 end
 sound "FX_LNE01"
 sound "FX_LNE01"
 sound "FX_LNE01"
	set goal to goal -5
	send "Attack 2"
if ph.d0 >= 4
 if level < 11
  sound "VO_TETRS"
 end
 sound "FX_LNE01"
 sound "FX_LNE01"
 sound "FX_LNE01" 
 sound "FX_LNE01"
 set goal to goal -8
 send "Attack 3"
*HBR:  Sometimes the goal falls below 0 briefly
*      this makes sure it does not
if goal < 0
 set goal to 0
set ph.d0 to ph.d0 + 1
*JR- add line total to score
*score ph.d0
*ESP - Adding the Pure/Combo square bonus to the score.
set goal to goal - pf.d0
set pf.d0 to 0
*JR- Deleted all of this because its unnecessary.  The line clear sound is handled in another place.  1 point bonus for Tetris is old; it has be replaced by standard Tetris bonus.
*if ph.d0 > 0 & ph.d0 < 4
*sound "FX_LNE01"
*end
* ESP - score a bonus point for a tetris
*score 1
sound "FX_LOCK"psol
o* ESP - If the mino sticks out above the 20 by 10 playfield then you lose the game.
*if mino.y < 2
*	lose
*endpgvt
T* ESP - After the T-spin is triggered, this turns the gravity off.
set gravity to 0
pcmp
*HBR:  goal counts down to 0
*      under leveltime means next level (win)
*      over level time means lose (repeat level)
if goal <= 0
	next level
xxxxe (repeat level)
if goal <= 0
	next level
xxxxxxel time means lose (repeat level)
if goal <= 0
	next level
xxxx
tpf2data
s*HBR: pf.d7=1 your 2:00 game time is up
*     pf.d7=0 you still have time
if level time >= 120
 set pf.d7 to 1
endd
:minos 24:Ghost
set ghost to 1
fldd
:images:Multi_24x24.pict
0pcev
sound "FX_FALL"
sound "FX_UNMVE"
sound "FX_RTA01"
sound "FX_LND01"
sound "FX_FALL"
sound "FX_FALL"
sound "FX_HRDDP"
*HBR: pf.d2 is the "lock" sound flag
*     pf.d2 = 1 means play lock sound
*     pf.d2 = 0 means don't play lock sound
set pf.d2 to 0
K* HBR: if pf.d2 = 0 don't play "land" sound
if pf.d2
 sound "FX_LND01"
x* HBR: if pf.d2 = 1 play "lock" sound
if pf.d2
 sound "FX_LCK01"
*HBR: piece.id : 1 is the "T" Tetramino
*     spin : check if the "T" was just spun 
*     shape : check for surrounding blocks
*     play voice if level < 6
*     else play sound effect
*     subtract the t-spin bonus (1 for a t-spin)
*     in the eliminate phase    (1 for a single)
*     in the eliminate phase    (3 for a double)
*     set pf.d4 : the t-spin flag
if piece.id = 1
	if spin
		shape "T-spin1" at piece.x, piece.y
		if result = 1
   if level < 6
    * sound "VO_TSPIN"
    sound "FX_RWD02"
   else
    sound "FX_RWD02"
   end
   set goal to goal -1 
			set pf.d4 to 1
		else
			shape "T-spin2" at piece.x, piece.y
			if result = 1
    if level < 6
     * sound "VO_TSPIN"
     sound "FX_RWD02"
    else
     sound "FX_RWD02"
    end
    set goal to goal -1 
				set pf.d4 to 1
			end
		end
	end
ctrl
mino
J color
:minos 24:jdrop
:minos 24:jlock
L color
:minos 24:ldrop
:minos 24:llock
S color
:minos 24:sdrop
:minos 24:slock
Z color
:minos 24:zdrop
:minos 24:zlock
O color
:minos 24:odrop
:minos 24:olock
T color
:minos 24:tdrop
:minos 24:tlock
I color
:minos 24:idrop
:minos 24:ilock
Garbage
:minos 24:garbage
xtetr
T Tetrimino
J Tetrimino
L Tetrimino
S Tetrimino
Z Tetrimino
I Tetrimino
O Tetrimino
xshap
T-spin1
T-spin2
xptrn
Line clear
	kill mino
sound "FX_CLR01"
10xseqs
xsnds
FX_BMP01
:sounds 7/18:FX_BMP01.WAVs
FX_BMP02
:sounds 7/18:FX_BMP02.WAVs
FX_BMP03
:sounds 7/18:FX_BMP03.WAVs
FX_CAS01
:sounds 7/18:FX_CAS01.WAVs
FX_CLR01
:sounds 7/18:FX_CLR01.wavs
FX_FALL
:sounds 7/18:FX_FALL.WAVs
FX_FALL1
:sounds 7/18:FX_FALL1.wavs
FX_FALL2
:sounds 7/18:FX_FALL2.wavs
FX_FALL3
:sounds 7/18:FX_FALL3.WAVs
FX_FALL4
:sounds 7/18:FX_FALL4.WAVs
FX_FUS01
:sounds 7/18:FX_FUS01.wavs
FX_FUS02
:sounds 7/18:FX_FUS02.wavs
FX_FUS03
:sounds 7/18:FX_FUS03.WAVs
FX_GOLDF
:sounds 7/18:FX_GOLDF.WAVs
FX_HRDDP
:sounds 7/18:FX_HRDDP.WAVs
FX_HTLN0
:sounds 7/18:FX_HTLN0.WAVs
FX_HTLN1
:sounds 7/18:FX_HTLN1.WAVs
FX_HTLN2
:sounds 7/18:FX_HTLN2.WAVs
FX_HTLN3
:sounds 7/18:FX_HTLN3.wavs
FX_HTLN4
:sounds 7/18:FX_HTLN4.WAVs
FX_HTLN5
:sounds 7/18:FX_HTLN5.WAVs
FX_HTLN6
:sounds 7/18:FX_HTLN6.wavs
FX_HTLNE
:sounds 7/18:FX_HTLNE.wavs
FX_LCK01
:sounds 7/18:FX_LCK01.wavs
FX_LCK02
:sounds 7/18:FX_LCK02.wavs
FX_LCK03
:sounds 7/18:FX_LCK03.wavs
FX_LCK04
:sounds 7/18:FX_LCK04.wavs
FX_LCK05
:sounds 7/18:FX_LCK05.wavs
FX_LND01
:sounds 7/18:FX_LND01.wavs
FX_LND02
:sounds 7/18:FX_LND02.wavs
FX_LND03
:sounds 7/18:FX_LND03.WAVs
FX_LNE01
:sounds 7/18:FX_LNE01.WAVs
FX_LNE02
:sounds 7/18:FX_LNE02.WAVs
FX_LNE03
:sounds 7/18:FX_LNE03.WAVs
FX_LNE04
:sounds 7/18:FX_LNE04.WAVs
FX_LNE05
:sounds 7/18:FX_LNE05.wavs
FX_LNE06
:sounds 7/18:FX_LNE06.wavs
FX_LNE07
:sounds 7/18:FX_LNE07.wavs
FX_LNE08
:sounds 7/18:FX_LNE08.wavs
FX_LNE09
:sounds 7/18:FX_LNE09.wavs
FX_LNE10
:sounds 7/18:FX_LNE10.wavs
FX_LNE11
:sounds 7/18:FX_LNE11.wavs
FX_LNE12
:sounds 7/18:FX_LNE12.wavs
FX_LNE13
:sounds 7/18:FX_LNE13.wavs
FX_LNE14
:sounds 7/18:FX_LNE14.wavs
FX_LNE15
:sounds 7/18:FX_LNE15.wavs
FX_LOCK
:sounds 7/18:FX_LOCK.WAVs
FX_MASS1
:sounds 7/18:FX_MASS1.wavs
FX_MTRIS
:sounds 7/18:FX_MTRIS.wavs
FX_MTRIS01
:sounds 7/18:FX_MTRIS01.wavs
FX_MTRS1
:sounds 7/18:FX_MTRS1.WAVs
FX_MTRS2
:sounds 7/18:FX_MTRS2.WAVs
FX_MTRS3
:sounds 7/18:FX_MTRS3.WAVs
FX_MTRS4
:sounds 7/18:FX_MTRS4.WAVs
FX_MTRS5
:sounds 7/18:FX_MTRS5.WAVs
FX_MTRS6
:sounds 7/18:FX_MTRS6.WAVs
FX_MUT01
:sounds 7/18:FX_MUT01.WAVs
FX_RTA01
:sounds 7/18:FX_RTA01.wavs
FX_RTATL
:sounds 7/18:FX_RTATL.WAVs
FX_RTATR
:sounds 7/18:FX_RTATR.WAVs
FX_RWD01
:sounds 7/18:FX_RWD01.wavs
FX_RWD02
:sounds 7/18:FX_RWD02.wavs
FX_SFTDP
:sounds 7/18:FX_SFTDP.WAVs
FX_SLDEL
:sounds 7/18:FX_SLDEL.wavs
FX_SLVRF
:sounds 7/18:FX_SLVRF.WAVs
FX_UNMVE
:sounds 7/18:FX_UNMVE.WAVs
TWM_BGIN
:sounds 7/18:TWM_BGIN.WAVs
TWM_END
:sounds 7/18:TWM_END.WAVs
TWM_MIDL
:sounds 7/18:TWM_MIDL.WAVs
VO_01TIC
:sounds 7/18:VO_01TIC.WAVs
VO_02TIC
:sounds 7/18:VO_02TIC.WAVs
VO_03TIC
:sounds 7/18:VO_03TIC.WAVs
VO_04TIC
:sounds 7/18:VO_04TIC.WAVs
VO_05TIC
:sounds 7/18:VO_05TIC.WAVs
VO_06TIC
:sounds 7/18:VO_06TIC.WAVs
VO_07TIC
:sounds 7/18:VO_07TIC.WAVs
VO_08TIC
:sounds 7/18:VO_08TIC.WAVs
VO_09TIC
:sounds 7/18:VO_09TIC.WAVs
VO_10TIC
:sounds 7/18:VO_10TIC.WAVs
VO_15TIC
:sounds 7/18:VO_15TIC.WAVs
VO_20TIC
:sounds 7/18:VO_20TIC.wavs
VO_30TIC
:sounds 7/18:VO_30TIC.WAVs
VO_CAS01
:sounds 7/18:VO_CAS01.wavs
VO_CAS02
:sounds 7/18:VO_CAS02.wavs
VO_CAS03
:sounds 7/18:VO_CAS03.wavs
VO_CAS04
:sounds 7/18:VO_CAS04.wavs
VO_CAS05
:sounds 7/18:VO_CAS05.wavs
VO_CAS06
:sounds 7/18:VO_CAS06.wavs
VO_CAS07
:sounds 7/18:VO_CAS07.wavs
VO_CAS08
:sounds 7/18:VO_CAS08.wavs
VO_CAS09
:sounds 7/18:VO_CAS09.wavs
VO_CAS10
:sounds 7/18:VO_CAS10.wavs
VO_CAS11
:sounds 7/18:VO_CAS11.wavs
VO_CAS12
:sounds 7/18:VO_CAS12.wavs
VO_CAS13
:sounds 7/18:VO_CAS13.wavs
VO_CAS14
:sounds 7/18:VO_CAS14.wavs
VO_CAS15
:sounds 7/18:VO_CAS15.wavs
VO_EXLNT
:sounds 7/18:VO_EXLNT.wavs
VO_GREAT
:sounds 7/18:VO_GREAT.wavs
VO_HTLN1
:sounds 7/18:VO_HTLN1.WAVs
VO_HTLN2
:sounds 7/18:VO_HTLN2.WAVs
VO_HTLN3
:sounds 7/18:VO_HTLN3.WAVs
VO_HTLN4
:sounds 7/18:VO_HTLN4.WAVs
VO_HTLN5
:sounds 7/18:VO_HTLN5.WAVs
VO_HTLN6
:sounds 7/18:VO_HTLN6.WAVs
VO_HTLNE
:sounds 7/18:VO_HTLNE.wavs
VO_INT01
:sounds 7/18:VO_INT01.wavs
VO_INT02
:sounds 7/18:VO_INT02.wavs
VO_INT03
:sounds 7/18:VO_INT03.wavs
	VO_LINE01
:sounds 7/18:VO_LINE01.wavs
	VO_LINE02
:sounds 7/18:VO_LINE02.wavs
	VO_LINE03
:sounds 7/18:VO_LINE03.wavs
VO_TETRS
:sounds 7/18:VO_TETRS.wavs
VO_TIME
:sounds 7/18:VO_TIME.wavs
VO_TSPIN
:sounds 7/18:VO_TSPIN.wavxsong
xtrsh
xlvls
9*HBR: pf.d3=1 the last line clear was a "tetris"
*     pf.d3=0 the last line clear was not
set pf.d3 to 0
*HBR: goal is set
*     game subtracts from the goal
*     if the goal <= 0 then level up
set goal to (5*level)
*HBR: pf.d7=1 your 2:00 game time is up
*     pf.d7=0 you still have time
set pf.d7 to 0
)if level >= 15
 sound "VO_EXLNT"
 win
endl
Level #1
Level #2
Level #3
Level #4
Level #5
Level #6
Level #7
Level #8
Level #9
	Level #10
	Level #11
	Level #12
	Level #13
	Level #14
	Level #15
xevnt
60 seconds
* sound "TWM_MIDL"
30 seconds
sound "VO_30TIC"
20 seconds
sound "VO_20TIC"
100e
10 seconds
sound "VO_10TIC"
110e
	9 seconds
sound "VO_09TIC"
111e
	8 seconds
sound "VO_08TIC"
112e
	7 seconds
sound "VO_07TIC"
113e
	6 seconds
sound "VO_06TIC"
114e
	5 seconds
sound "VO_05TIC"
115e
	4 seconds
sound "VO_04TIC"
116e
	3 seconds
sound "VO_03TIC"
117e
	2 seconds
sound "VO_02TIC"
118e
1 second
sound "VO_01TIC"
119e
Time up
sound "VO_TIME"
120e
Goal of game
#if level < 6 
 sound "VO_INT01"
Start game
sound "TWM_BGIN"
0xanim
Death
xpgen
h*HBR: pf.d2 = 1 means play "lock" sound
set pf.d2 to 1
*HBR: pf.d4 = 0 means no t-spin
set pf.d4 to 0
$((.8-((level-1)*.007))^(level-1))/20
pfal
if pf.d7
 lose
if pf.d7
 lose
(.8-((level-1)*.007))^(level-1)$((.8-((level-1)*.007))^(level-1))/20
0.0001plok
if pf.d7
 lose
if pf.d7
 lose
ppat
ptr8
panm
pelm
*HBR: ph.d0 is the number of lines cleared
*     play voice for beginner levels
*     play sound effect
*     subtract the t-spin bonus (1 for a single)
*        					                  (3 for a double)
*     subtract points from goal
*     set pf.d3..the multiple tetris flag
*     send attack 
if ph.d0 = 1
 if level < 6
  sound "VO_LINE01"
 end
 if pf.d4
  set goal to goal - 1
 end
 sound "FX_LNE01"
 set goal to goal -1
 sound"FX_MTRS1"
 set pf.d3 to 0
if ph.d0 = 2
 if level < 6
  sound "VO_LINE02"
 end
 if pf.d4
  set goal to goal - 3
 end
 sound "FX_LNE01"
 sound "FX_LNE01"
	set goal to goal -3
  sound"FX_MTRS2"
 set pf.d3 to 0
if ph.d0 = 3
 if level < 6
  sound "VO_LINE03"
 end
 sound "FX_LNE01"
 sound "FX_LNE01"
 sound "FX_LNE01"
	set goal to goal -5
  sound"FX_MTRS3"
 set pf.d3 to 0
if ph.d0 = 4
 send "Attack3"
 if level < 11
  sound "VO_TETRS"
 end
 sound "FX_LNE01"
 sound "FX_LNE01"
 sound "FX_LNE01" 
 sound "FX_LNE01"
	sound "FX_MTRS4"
 *HBR:  award -4 bonus for a multiple tetris
 *      and play the MTRIS sound effect
 *      "FX_MTRIS" has a 1 second blank
 *      so that it does not cover "VO_TETRS"
 *      "FX_MTRIS01" has no blank
 if pf.d3
  set goal to goal -4
  if level < 11
   sound "FX_MTRS5"
  else
   sound "FX_MTRS5"
  end
 else
  sound"FX_MTRS4"
 end
 set pf.d3 to 1
 set goal to goal -8
*HBR:  Sometimes the goal falls below 0 briefly
*      this makes sure it does not
if goal < 0
 set goal to 0
E* JR - add 1 to ph.d0 for each line cleared.
set ph.d0 to ph.d0 + 1
sound "FX_LNE01"
psol
pgvt
sound "FX_LOCK"pcmp
*HBR:  goal counts down to 0
*      under leveltime means next level (win)
*      over level time means lose (repeat level)
if goal <= 0
	next level
xxxx
tpf2data
s*HBR: pf.d7=1 your 2:00 game time is up
*     pf.d7=0 you still have time
if level time >= 120
 set pf.d7 to 1
endd
:minos 24:Ghost
set ghost to 1
fldd
:images:Multi_24x24.pict
0pcev
sound "FX_FALL"
sound "FX_UNMVE"
sound "FX_RTA01"
sound "FX_LND01"
sound "FX_FALL"
sound "FX_FALL"
sound "FX_HRDDP"
*HBR: pf.d2 is the "lock" sound flag
*     pf.d2 = 1 means play lock sound
*     pf.d2 = 0 means don't play lock sound
set pf.d2 to 0
K* HBR: if pf.d2 = 0 don't play "land" sound
if pf.d2
 sound "FX_LND01"
*DBP: Added Henk's new T-spin recongnition and scoring system.
* HBR: if pf.d2 = 1 play "lock" sound
if pf.d2
 sound "FX_LCK01"
*HBR: piece.id : 1 is the "T" Tetramino
*     spin : check if the "T" was just spun 
*     shape : check for surrounding blocks
*     play voice if level < 6
*     else play sound effect
*     subtract the t-spin bonus (1 for a t-spin)
*     in the eliminate phase    (1 for a single)
*     in the eliminate phase    (3 for a double)
*     set pf.d4 : the t-spin flag
if piece.id = 1
	if spin
		shape "T-spin1" at piece.x, piece.y
		if result = 1
   if level < 6
    sound "VO_TSPIN"
   else
    sound "FX_RWD01"
   end
   set goal to goal -1 
			set pf.d4 to 1
		else
			shape "T-spin2" at piece.x, piece.y
			if result = 1
    if level < 6
     sound "VO_TSPIN"
    else
     sound "FX_RWD01"
    end
    set goal to goal -1 
				set pf.d4 to 1
			end
		end
	end
endctrl
mino
:minos 24:jdrop
:minos 24:jlock
:minos 24:tdrop
:minos 24:tlock
:minos 24:sdrop
:minos 24:slock
:minos 24:zdrop
:minos 24:zlock
:minos 24:ldrop
:minos 24:llock
:minos 24:odrop
:minos 24:olock
:minos 24:idrop
:minos 24:ilock
xtetr
xshap
tspin1
tspin2
xptrn
line clear
kill mino
sound "FX_CLR01"
10xseqs
xsnds
FX_BMP01
:sounds 7/18:FX_BMP01.WAVs
FX_BMP02
:sounds 7/18:FX_BMP02.WAVs
FX_BMP03
:sounds 7/18:FX_BMP03.WAVs
FX_CAS01
:sounds 7/18:FX_CAS01.WAVs
FX_CLR01
:sounds 7/18:FX_CLR01.wavs
FX_FALL
:sounds 7/18:FX_FALL.WAVs
FX_FALL1
:sounds 7/18:FX_FALL1.wavs
FX_FALL2
:sounds 7/18:FX_FALL2.wavs
FX_FALL3
:sounds 7/18:FX_FALL3.WAVs
FX_FALL4
:sounds 7/18:FX_FALL4.WAVs
FX_FUS01
:sounds 7/18:FX_FUS01.wavs
FX_FUS02
:sounds 7/18:FX_FUS02.wavs
FX_FUS03
:sounds 7/18:FX_FUS03.WAVs
FX_GOLDF
:sounds 7/18:FX_GOLDF.WAVs
FX_HRDDP
:sounds 7/18:FX_HRDDP.WAVs
FX_HTLN0
:sounds 7/18:FX_HTLN0.WAVs
FX_HTLN1
:sounds 7/18:FX_HTLN1.WAVs
FX_HTLN2
:sounds 7/18:FX_HTLN2.WAVs
FX_HTLN3
:sounds 7/18:FX_HTLN3.wavs
FX_HTLN4
:sounds 7/18:FX_HTLN4.WAVs
FX_HTLN5
:sounds 7/18:FX_HTLN5.WAVs
FX_HTLN6
:sounds 7/18:FX_HTLN6.wavs
FX_HTLNE
:sounds 7/18:FX_HTLNE.wavs
FX_LCK01
:sounds 7/18:FX_LCK01.wavs
FX_LCK02
:sounds 7/18:FX_LCK02.wavs
FX_LCK03
:sounds 7/18:FX_LCK03.wavs
FX_LCK04
:sounds 7/18:FX_LCK04.wavs
FX_LCK05
:sounds 7/18:FX_LCK05.wavs
FX_LND01
:sounds 7/18:FX_LND01.wavs
FX_LND02
:sounds 7/18:FX_LND02.wavs
FX_LND03
:sounds 7/18:FX_LND03.WAVs
FX_LNE01
:sounds 7/18:FX_LNE01.WAVs
FX_LNE02
:sounds 7/18:FX_LNE02.WAVs
FX_LNE03
:sounds 7/18:FX_LNE03.WAVs
FX_LNE04
:sounds 7/18:FX_LNE04.WAVs
FX_LNE05
:sounds 7/18:FX_LNE05.wavs
FX_LNE06
:sounds 7/18:FX_LNE06.wavs
FX_LNE07
:sounds 7/18:FX_LNE07.wavs
FX_LNE08
:sounds 7/18:FX_LNE08.wavs
FX_LNE09
:sounds 7/18:FX_LNE09.wavs
FX_LNE10
:sounds 7/18:FX_LNE10.wavs
FX_LNE11
:sounds 7/18:FX_LNE11.wavs
FX_LNE12
:sounds 7/18:FX_LNE12.wavs
FX_LNE13
:sounds 7/18:FX_LNE13.wavs
FX_LNE14
:sounds 7/18:FX_LNE14.wavs
FX_LNE15
:sounds 7/18:FX_LNE15.wavs
FX_LOCK
:sounds 7/18:FX_LOCK.WAVs
FX_MASS1
:sounds 7/18:FX_MASS1.wavs
FX_MTRIS
:sounds 7/18:FX_MTRIS.wavs
FX_MTRIS01
:sounds 7/18:FX_MTRIS01.wavs
FX_MTRS1
:sounds 7/18:FX_MTRS1.WAVs
FX_MTRS2
:sounds 7/18:FX_MTRS2.WAVs
FX_MTRS3
:sounds 7/18:FX_MTRS3.WAVs
FX_MTRS4
:sounds 7/18:FX_MTRS4.WAVs
FX_MTRS5
:sounds 7/18:FX_MTRS5.WAVs
FX_MTRS6
:sounds 7/18:FX_MTRS6.WAVs
FX_MUT01
:sounds 7/18:FX_MUT01.WAVs
FX_RTA01
:sounds 7/18:FX_RTA01.wavs
FX_RTATL
:sounds 7/18:FX_RTATL.WAVs
FX_RTATR
:sounds 7/18:FX_RTATR.WAVs
FX_RWD01
:sounds 7/18:FX_RWD01.wavs
FX_RWD02
:sounds 7/18:FX_RWD02.wavs
FX_SFTDP
:sounds 7/18:FX_SFTDP.WAVs
FX_SLDEL
:sounds 7/18:FX_SLDEL.wavs
FX_SLVRF
:sounds 7/18:FX_SLVRF.WAVs
FX_UNMVE
:sounds 7/18:FX_UNMVE.WAVs
TWM_BGIN
:sounds 7/18:TWM_BGIN.WAVs
TWM_END
:sounds 7/18:TWM_END.WAVs
TWM_MIDL
:sounds 7/18:TWM_MIDL.WAVs
VO_01TIC
:sounds 7/18:VO_01TIC.WAVs
VO_02TIC
:sounds 7/18:VO_02TIC.WAVs
VO_03TIC
:sounds 7/18:VO_03TIC.WAVs
VO_04TIC
:sounds 7/18:VO_04TIC.WAVs
VO_05TIC
:sounds 7/18:VO_05TIC.WAVs
VO_06TIC
:sounds 7/18:VO_06TIC.WAVs
VO_07TIC
:sounds 7/18:VO_07TIC.WAVs
VO_08TIC
:sounds 7/18:VO_08TIC.WAVs
VO_09TIC
:sounds 7/18:VO_09TIC.WAVs
VO_10TIC
:sounds 7/18:VO_10TIC.WAVs
VO_15TIC
:sounds 7/18:VO_15TIC.WAVs
VO_20TIC
:sounds 7/18:VO_20TIC.wavs
VO_30TIC
:sounds 7/18:VO_30TIC.WAVs
VO_CAS01
:sounds 7/18:VO_CAS01.wavs
VO_CAS02
:sounds 7/18:VO_CAS02.wavs
VO_CAS03
:sounds 7/18:VO_CAS03.wavs
VO_CAS04
:sounds 7/18:VO_CAS04.wavs
VO_CAS05
:sounds 7/18:VO_CAS05.wavs
VO_CAS06
:sounds 7/18:VO_CAS06.wavs
VO_CAS07
:sounds 7/18:VO_CAS07.wavs
VO_CAS08
:sounds 7/18:VO_CAS08.wavs
VO_CAS09
:sounds 7/18:VO_CAS09.wavs
VO_CAS10
:sounds 7/18:VO_CAS10.wavs
VO_CAS11
:sounds 7/18:VO_CAS11.wavs
VO_CAS12
:sounds 7/18:VO_CAS12.wavs
VO_CAS13
:sounds 7/18:VO_CAS13.wavs
VO_CAS14
:sounds 7/18:VO_CAS14.wavs
VO_CAS15
:sounds 7/18:VO_CAS15.wavs
VO_EXLNT
:sounds 7/18:VO_EXLNT.wavs
VO_GREAT
:sounds 7/18:VO_GREAT.wavs
VO_HTLN1
:sounds 7/18:VO_HTLN1.WAVs
VO_HTLN2
:sounds 7/18:VO_HTLN2.WAVs
VO_HTLN3
:sounds 7/18:VO_HTLN3.WAVs
VO_HTLN4
:sounds 7/18:VO_HTLN4.WAVs
VO_HTLN5
:sounds 7/18:VO_HTLN5.WAVs
VO_HTLN6
:sounds 7/18:VO_HTLN6.WAVs
VO_HTLNE
:sounds 7/18:VO_HTLNE.wavs
VO_INT01
:sounds 7/18:VO_INT01.wavs
VO_INT02
:sounds 7/18:VO_INT02.wavs
VO_INT03
:sounds 7/18:VO_INT03.wavs
	VO_LINE01
:sounds 7/18:VO_LINE01.wavs
	VO_LINE02
:sounds 7/18:VO_LINE02.wavs
	VO_LINE03
:sounds 7/18:VO_LINE03.wavs
VO_TETRS
:sounds 7/18:VO_TETRS.wavs
VO_TIME
:sounds 7/18:VO_TIME.wavs
VO_TSPIN
:sounds 7/18:VO_TSPIN.wavxsong
xtrsh
xlvls
3*DBP: Implemented the new goal based system
*HBR: Goal has been reset to count down.
*     pf.d1 is the level target
*     goal is the number of points left till level clear
set pf.d1 to (5*level)
set goal to pf.d1
*HBR: pf.d7=1 your 2:00 game time is up
*     pf.d7=0 you still have time
set pf.d7 to 0
)if level >= 15
 sound "VO_EXLNT"
 win
endl
Level #1
Level #2
Level #3
Level #4
Level #5
Level #6
Level #7
Level #8
Level #9
	Level #10
	Level #11
	Level #12
	Level #13
	Level #14
	Level #15
xevnt
Cascade Intro
sound "VO_INT02"
60sec
sound "TWM_MIDL"
30sec
sound "VO_30TIC"
20sec
sound "VO_20TIC"
100e
15sec
sound "VO_15TIC"
105e
10sec
sound "VO_10TIC"
110e
9sec
sound "VO_09TIC"
111e
8sec
sound "VO_08TIC"
112e
7sec
sound "VO_07TIC"
113e
6sec
sound "VO_06TIC"
114e
5sec
sound "VO_05TIC"
115e
4sec
sound "VO_04TIC"
116e
3sec
sound "VO_03TIC"
117e
2sec
sound "VO_02TIC"
118e
1sec
sound "VO_01TIC"
119e
Time Up
sound "VO_TIME"
120e
Game Start
sound "TWM_BGIN"
0xanim
Death
xpgen
h*HBR: pf.d2 = 1 means play "lock" sound
set pf.d2 to 1
*HBR: pf.d4 = 0 means no t-spin
set pf.d4 to 0
$((.8-((level-1)*.007))^(level-1))/20
pfal
2*HBR: Check if game time is up
if pf.d7
 lose
2*HBR: Check if game time is up
if pf.d7
 lose
(.8-((level-1)*.007))^(level-1)$((.8-((level-1)*.007))^(level-1))/20
0.0001plok
2*HBR: Check if game time is up
if pf.d7
 lose
2*HBR: Check if game time is up
if pf.d7
 lose
ppat
ptr8
panm
pelm
set ph.d0 to 0
*DBP: Changed the game form a scoring system to the new goal based system.
*JR: this script calculates the line bonus
*     subtract points from goal
if ph.d0 >= 1
	set goal to goal - (ph.d0+(ph.d0-1))
if ph.d0 >= 4
 send "Attack3"
*JR- this script calculates the cascade bonus.  
if ph.d0>0
	if cascades>1
		set goal to goal - ((cascades-1)*2)
	end
*DBP Added this calculation for precision in formulas
*HBR:  Sometimes the goal falls below 0 briefly
*      this makes sure it does not
if goal < 0
 set goal to 0
set ph.d0 to ph.d0 + 1
sound "FX_LNE01"psol
pgvt
sound "FX_LOCK"pcmp
7if cascades = 2
 sound "FX_MTRS1"
 if level < 6
  sound "VO_CAS01"
 end
if cascades = 3
 sound "FX_MTRS2"
 if level < 6
  sound "VO_CAS02"
 end
if cascades = 4
 sound "FX_MTRS3"
 if level < 6
  sound "VO_CAS03"
 end
if cascades = 5
 sound "FX_MTRS4"
 if level < 6
  sound "VO_CAS04"
 end
if cascades = 6
 sound "FX_MTRS5"
 if level < 6
  sound "VO_CAS05"
 end
if cascades = 7
 sound "FX_MTRS6"
 if level < 6
  sound "VO_CAS06"
 end
if cascades > 7
 sound "FX_MTRS6"
 if level < 6
  sound "VO_CAS07"
 end
if goal <= 0
	next level
xxxx phase.d0 = 10
 sound "FX_LNE10"
	sound "FX_MTRS5"
if phase.d0 = 11
 sound "FX_LNE11"
	sound "FX_MTRS5"
if phase.d0 = 12
 sound "FX_LNE12"
	sound "FX_MTRS5"
if phase.d0 = 13
 sound "FX_LNE13"
	sound "FX_MTRS5"
if phase.d0 = 14
 sound "FX_LNE14"
	sound "FX_MTRS5"
if phase.d0 = 15
 sound "FX_LNE15"
	sound "FX_MTRS5"
*DBP Added this calculation for precision in formulas
*HBR:  Sometimes the goal falls below 0 briefly
*      this makes sure it does not
if goal < 0
 set goal to 0
set ph.d0 to ph.d0 + 1
sound "FX_LNE01"psol
pgvt
sound "FX_LOCK"pcmp
if goal <= 0
	next level
xxxx
tpf2data
s*HBR: pf.d7=1 your 2:00 game time is up
*     pf.d7=0 you still have time
if level time >= 120
 set pf.d7 to 1
endd
:minos 24:Ghost
set ghost to 1
fldd
:images:Multi_24x24.pict
0pcev
sound "FX_FALL"
sound "FX_UNMVE"
sound "FX_RTA01"
sound "FX_LND01"
sound "FX_FALL"
sound "FX_FALL"
sound "FX_HRDDP"
*HBR: pf.d2 is the "lock" sound flag
*     pf.d2 = 1 means play lock sound
*     pf.d2 = 0 means don't play lock sound
set pf.d2 to 0
K* HBR: if pf.d2 = 0 don't play "land" sound
if pf.d2
 sound "FX_LND01"
* HBR: if pf.d2 = 1 play "lock" sound
if pf.d2
 sound "FX_LCK01"
*HBR: piece.id : 1 is the "T" Tetramino
*     spin : check if the "T" was just spun 
*     shape : check for surrounding blocks
*     play voice if level < 6
*     else play sound effect
*     subtract the t-spin bonus (1 for a t-spin)
*     in the eliminate phase    (1 for a single)
*     in the eliminate phase    (3 for a double)
*     set pf.d4 : the t-spin flag
if piece.id = 1
	if spin
		shape "T-spin1" at piece.x, piece.y
		if result = 1
   if level < 6
    sound "VO_TSPIN"
   else
    sound "FX_RWD01"
   end 
			set pf.d4 to 1
		else
			shape "T-spin2" at piece.x, piece.y
			if result = 1
    if level < 6
     sound "VO_TSPIN"
    else
     sound "FX_RWD01"
    end 
				set pf.d4 to 1
			end
		end
	end
endctrl
mino
:minos 24:jdrop
:minos 24:jlock
:minos 24:sdrop
:minos 24:slock
:minos 24:odrop
:minos 24:olock
:minos 24:ldrop
:minos 24:llock
:minos 24:tdrop
:minos 24:tlock
:minos 24:idrop
:minos 24:ilock
:minos 24:zdrop
:minos 24:zlock
Gold
:minos 24:fusionfall
:minos 24:fusionbase
Garbage
:minos 24:garbage
	Solo Blue
:minos 24:jlock
Solo Green
:minos 24:slock
Solo Yellow
:minos 24:olock
Solo Orange
:minos 24:llock
	Solo Cyan
:minos 24:tlock
Solo Purple
:minos 24:ilock
Solo Red
:minos 24:zlock
xtetr
xshap
tspin1
tspin2
xptrn
line clear
Fif mino.d0 = 0
	kill mino
	sound "FX_CLR01"
else
	set gravity to 1
disease
%pattern "infection" at mino.x, mino.y
	infection
if mino.d1 = 1
	mutate mino
 sound "FX_FUS02"
 sound "FX_MTRS4"
	animate "infection"
 set goal to goal -1
else
	mutate mino
	level end
* kill mino
.* set gravity to 1
* set pf.d0 to 1
next level
	pf.d6 + 1xseqs
xsnds
FX_BMP01
:sounds 7/18:FX_BMP01.WAVs
FX_BMP02
:sounds 7/18:FX_BMP02.WAVs
FX_BMP03
:sounds 7/18:FX_BMP03.WAVs
FX_CAS01
:sounds 7/18:FX_CAS01.WAVs
FX_CLR01
:sounds 7/18:FX_CLR01.wavs
FX_FALL
:sounds 7/18:FX_FALL.WAVs
FX_FALL1
:sounds 7/18:FX_FALL1.wavs
FX_FALL2
:sounds 7/18:FX_FALL2.wavs
FX_FALL3
:sounds 7/18:FX_FALL3.WAVs
FX_FALL4
:sounds 7/18:FX_FALL4.WAVs
FX_FUS01
:sounds 7/18:FX_FUS01.wavs
FX_FUS02
:sounds 7/18:FX_FUS02.wavs
FX_FUS03
:sounds 7/18:FX_FUS03.WAVs
FX_GOLDF
:sounds 7/18:FX_GOLDF.WAVs
FX_HRDDP
:sounds 7/18:FX_HRDDP.WAVs
FX_HTLN0
:sounds 7/18:FX_HTLN0.WAVs
FX_HTLN1
:sounds 7/18:FX_HTLN1.WAVs
FX_HTLN2
:sounds 7/18:FX_HTLN2.WAVs
FX_HTLN3
:sounds 7/18:FX_HTLN3.wavs
FX_HTLN4
:sounds 7/18:FX_HTLN4.WAVs
FX_HTLN5
:sounds 7/18:FX_HTLN5.WAVs
FX_HTLN6
:sounds 7/18:FX_HTLN6.wavs
FX_HTLNE
:sounds 7/18:FX_HTLNE.wavs
FX_LCK01
:sounds 7/18:FX_LCK01.wavs
FX_LCK02
:sounds 7/18:FX_LCK02.wavs
FX_LCK03
:sounds 7/18:FX_LCK03.wavs
FX_LCK04
:sounds 7/18:FX_LCK04.wavs
FX_LCK05
:sounds 7/18:FX_LCK05.wavs
FX_LND01
:sounds 7/18:FX_LND01.wavs
FX_LND02
:sounds 7/18:FX_LND02.wavs
FX_LND03
:sounds 7/18:FX_LND03.WAVs
FX_LNE01
:sounds 7/18:FX_LNE01.WAVs
FX_LNE02
:sounds 7/18:FX_LNE02.WAVs
FX_LNE03
:sounds 7/18:FX_LNE03.WAVs
FX_LNE04
:sounds 7/18:FX_LNE04.WAVs
FX_LNE05
:sounds 7/18:FX_LNE05.wavs
FX_LNE06
:sounds 7/18:FX_LNE06.wavs
FX_LNE07
:sounds 7/18:FX_LNE07.wavs
FX_LNE08
:sounds 7/18:FX_LNE08.wavs
FX_LNE09
:sounds 7/18:FX_LNE09.wavs
FX_LNE10
:sounds 7/18:FX_LNE10.wavs
FX_LNE11
:sounds 7/18:FX_LNE11.wavs
FX_LNE12
:sounds 7/18:FX_LNE12.wavs
FX_LNE13
:sounds 7/18:FX_LNE13.wavs
FX_LNE14
:sounds 7/18:FX_LNE14.wavs
FX_LNE15
:sounds 7/18:FX_LNE15.wavs
FX_LOCK
:sounds 7/18:FX_LOCK.WAVs
FX_MASS1
:sounds 7/18:FX_MASS1.wavs
FX_MTRIS
:sounds 7/18:FX_MTRIS.wavs
FX_MTRIS01
:sounds 7/18:FX_MTRIS01.wavs
FX_MTRS1
:sounds 7/18:FX_MTRS1.WAVs
FX_MTRS2
:sounds 7/18:FX_MTRS2.WAVs
FX_MTRS3
:sounds 7/18:FX_MTRS3.WAVs
FX_MTRS4
:sounds 7/18:FX_MTRS4.WAVs
FX_MTRS5
:sounds 7/18:FX_MTRS5.WAVs
FX_MTRS6
:sounds 7/18:FX_MTRS6.WAVs
FX_MUT01
:sounds 7/18:FX_MUT01.WAVs
FX_RTA01
:sounds 7/18:FX_RTA01.wavs
FX_RTATL
:sounds 7/18:FX_RTATL.WAVs
FX_RTATR
:sounds 7/18:FX_RTATR.WAVs
FX_RWD01
:sounds 7/18:FX_RWD01.wavs
FX_RWD02
:sounds 7/18:FX_RWD02.wavs
FX_SFTDP
:sounds 7/18:FX_SFTDP.WAVs
FX_SLDEL
:sounds 7/18:FX_SLDEL.wavs
FX_SLVRF
:sounds 7/18:FX_SLVRF.WAVs
FX_UNMVE
:sounds 7/18:FX_UNMVE.WAVs
TWM_BGIN
:sounds 7/18:TWM_BGIN.WAVs
TWM_END
:sounds 7/18:TWM_END.WAVs
TWM_MIDL
:sounds 7/18:TWM_MIDL.WAVs
VO_01TIC
:sounds 7/18:VO_01TIC.WAVs
VO_02TIC
:sounds 7/18:VO_02TIC.WAVs
VO_03TIC
:sounds 7/18:VO_03TIC.WAVs
VO_04TIC
:sounds 7/18:VO_04TIC.WAVs
VO_05TIC
:sounds 7/18:VO_05TIC.WAVs
VO_06TIC
:sounds 7/18:VO_06TIC.WAVs
VO_07TIC
:sounds 7/18:VO_07TIC.WAVs
VO_08TIC
:sounds 7/18:VO_08TIC.WAVs
VO_09TIC
:sounds 7/18:VO_09TIC.WAVs
VO_10TIC
:sounds 7/18:VO_10TIC.WAVs
VO_15TIC
:sounds 7/18:VO_15TIC.WAVs
VO_20TIC
:sounds 7/18:VO_20TIC.wavs
VO_30TIC
:sounds 7/18:VO_30TIC.WAVs
VO_CAS01
:sounds 7/18:VO_CAS01.wavs
VO_CAS02
:sounds 7/18:VO_CAS02.wavs
VO_CAS03
:sounds 7/18:VO_CAS03.wavs
VO_CAS04
:sounds 7/18:VO_CAS04.wavs
VO_CAS05
:sounds 7/18:VO_CAS05.wavs
VO_CAS06
:sounds 7/18:VO_CAS06.wavs
VO_CAS07
:sounds 7/18:VO_CAS07.wavs
VO_CAS08
:sounds 7/18:VO_CAS08.wavs
VO_CAS09
:sounds 7/18:VO_CAS09.wavs
VO_CAS10
:sounds 7/18:VO_CAS10.wavs
VO_CAS11
:sounds 7/18:VO_CAS11.wavs
VO_CAS12
:sounds 7/18:VO_CAS12.wavs
VO_CAS13
:sounds 7/18:VO_CAS13.wavs
VO_CAS14
:sounds 7/18:VO_CAS14.wavs
VO_CAS15
:sounds 7/18:VO_CAS15.wavs
VO_EXLNT
:sounds 7/18:VO_EXLNT.wavs
VO_GREAT
:sounds 7/18:VO_GREAT.wavs
VO_HTLN1
:sounds 7/18:VO_HTLN1.WAVs
VO_HTLN2
:sounds 7/18:VO_HTLN2.WAVs
VO_HTLN3
:sounds 7/18:VO_HTLN3.WAVs
VO_HTLN4
:sounds 7/18:VO_HTLN4.WAVs
VO_HTLN5
:sounds 7/18:VO_HTLN5.WAVs
VO_HTLN6
:sounds 7/18:VO_HTLN6.WAVs
VO_HTLNE
:sounds 7/18:VO_HTLNE.wavs
VO_INT01
:sounds 7/18:VO_INT01.wavs
VO_INT02
:sounds 7/18:VO_INT02.wavs
VO_INT03
:sounds 7/18:VO_INT03.wavs
	VO_LINE01
:sounds 7/18:VO_LINE01.wavs
	VO_LINE02
:sounds 7/18:VO_LINE02.wavs
	VO_LINE03
:sounds 7/18:VO_LINE03.wavs
VO_TETRS
:sounds 7/18:VO_TETRS.wavs
VO_TIME
:sounds 7/18:VO_TIME.wavs
VO_TSPIN
:sounds 7/18:VO_TSPIN.wavxsong
xtrsh
left
right
	xlvls
0mixed garbage (level)
if ((level/2) - (level\2)) = 0
	trash "left"
else
	trash "right"
*HBR: pf.d6 + 1 is the end level condition
*     in the "level end" pattern
set pf.d6 to level * 2
set goal to pf.d6
*HBR: pf.d7=1 your 2:00 game time is up
*     pf.d7=0 you still have time
set pf.d7 to 0
)if level >= 15
 sound "VO_EXLNT"
 win
endl
Level #1
Level #2
Level #3
Level #4
Level #5
Level #6
Level #7
Level #8
Level #9
	Level #10
	Level #11
	Level #12
	Level #13
	Level #14
	Level #15
xevnt
30sec
sound "VO_30TIC"
20sec
sound "VO_20TIC"
100e
10sec
sound "VO_10TIC"
110e
9sec
sound "VO_09TIC"
111e
8sec
sound "VO_08TIC"
112e
7sec
sound "VO_07TIC"
113e
6sec
sound "VO_06TIC"
114e
5sec
sound "VO_05TIC"
115e
4sec
sound "VO_04TIC"
116e
3sec
sound "VO_03TIC"
117e
2sec
sound "VO_02TIC"
118e
1sec
sound "VO_01TIC"
119e
Time Up
sound "VO_TIME"
120e
60sec
sound "TWM_MIDL"
Game Start
sound "TWM_BGIN"
Intro
sound "VO_INT01"
3xanim
death
	infection
xpgen
h*HBR: pf.d2 = 1 means play "lock" sound
set pf.d2 to 1
*HBR: pf.d4 = 0 means no t-spin
set pf.d4 to 0
$((.8-((level-1)*.007))^(level-1))/20
pfal
2*HBR: Check if game time is up
if pf.d7
 lose
2*HBR: Check if game time is up
if pf.d7
 lose
(.8-((level-1)*.007))^(level-1)$((.8-((level-1)*.007))^(level-1))/20
0.0001plok
2*HBR: Check if game time is up
if pf.d7
 lose
2*HBR: Check if game time is up
if pf.d7
 lose
ppat
set pf.d0 to 0
ptr8
	kill mino
	pf.d0 = 1
mutate mino
sound "FX_LOCK"
	pf.d0 = 1panm
pelm
5set phase.d0 to 0
set phase.d0 to phase.d0 + cascades
exit
*HBR: ph.d0 is the number of lines cleared
*     play voice for beginner levels
*     play sound effect
if ph.d0 = 1
 sound "FX_LNE01"
if ph.d0 = 2
 sound "FX_LNE01"
 sound "FX_LNE01"
if ph.d0 = 3
 sound "FX_LNE01"
 sound "FX_LNE01"
 sound "FX_LNE01"
if ph.d0 = 4
 sound "FX_LNE01"
 sound "FX_LNE01"
 sound "FX_LNE01" 
 sound "FX_LNE01"
*HBR:  Sometimes the goal falls below 0 briefly
*      this makes sure it does not
if goal < 0
 set goal to 0
set phase.d0 to phase.d0 + 1
sound "FX_LNE01"
psol
pgvt
set gravity to 0
sound "FX_LOCK"pcmp
*HBR:  goal counts down to 0
*      under leveltime means next level (win)
*      over level time means lose (repeat level)
if goal <= 0
	next level
xxxx
tpf2data
s*HBR: pf.d7=1 your 2:00 game time is up
*     pf.d7=0 you still have time
if level time >= 120
 set pf.d7 to 1
endd
:minos 24:Ghost
set ghost to 1
fldd
:images:Multi_24x24.pict
pf.d9
pf.d8pcev
sound "FX_FALL"
sound "FX_UNMVE"
sound "FX_RTA01"
sound "FX_LND01"
sound "FX_FALL"
sound "FX_FALL"
sound "FX_HRDDP"
*HBR: pf.d2 is the "lock" sound flag
*     pf.d2 = 1 means play lock sound
*     pf.d2 = 0 means don't play lock sound
set pf.d2 to 0
K* HBR: if pf.d2 = 0 don't play "land" sound
if pf.d2
 sound "FX_LND01"
*DBP: Added Henk's new T-spin recongnition system.
* HBR: if pf.d2 = 1 play "lock" sound
if pf.d2
 sound "FX_LCK01"
*HBR: piece.id : 1 is the "T" Tetramino
*     spin : check if the "T" was just spun 
*     shape : check for surrounding blocks
*     play voice if level < 6
*     else play sound effect
*     set pf.d4 : the t-spin flag
if piece.id = 1
	if spin
		shape "T-spin1" at piece.x, piece.y
		if result = 1
   if level < 6
    sound "VO_TSPIN"
   else
    sound "FX_RWD01"
   end
			set pf.d4 to 1
		else
			shape "T-spin2" at piece.x, piece.y
			if result = 1
    if level < 6
     sound "VO_TSPIN"
    else
     sound "FX_RWD01"
    end
				set pf.d4 to 1
			end
		end
	end
endctrl
mino
:minos 24:tdrop
:minos 24:tlock
:minos 24:sdrop
:minos 24:slock
:minos 24:zdrop
:minos 24:zlock
:minos 24:odrop
:minos 24:olock
:minos 24:ldrop
:minos 24:llock
:minos 24:jdrop
:minos 24:jlock
:minos 24:idrop
:minos 24:ilock
special garbage
:minos 24:special garbage2
garbage
:minos 24:garbage
xtetr
xshap
tspin1
tspin2
xptrn
line clear
kill mino
sound "FX_CLR01"
Critical Mass Blue
kill mino
sound "FX_MASS1"
Critical Mass Cyan
kill mino
sound "FX_MASS1"
Critical Mass Green
kill mino
sound "FX_MASS1"
Critical Mass Red
kill mino
sound "FX_MASS1"
Critical Mass Maroon
kill mino
sound "FX_MASS1"
Critical Mass Yellow
kill mino
sound "FX_MASS1"
Critical Mass Purple
kill mino
sound "FX_MASS1"
24xseqs
xsnds
FX_BMP01
:sounds 7/18:FX_BMP01.WAVs
FX_BMP02
:sounds 7/18:FX_BMP02.WAVs
FX_BMP03
:sounds 7/18:FX_BMP03.WAVs
FX_CAS01
:sounds 7/18:FX_CAS01.WAVs
FX_CLR01
:sounds 7/18:FX_CLR01.wavs
FX_FALL
:sounds 7/18:FX_FALL.WAVs
FX_FALL1
:sounds 7/18:FX_FALL1.wavs
FX_FALL2
:sounds 7/18:FX_FALL2.wavs
FX_FALL3
:sounds 7/18:FX_FALL3.WAVs
FX_FALL4
:sounds 7/18:FX_FALL4.WAVs
FX_FUS01
:sounds 7/18:FX_FUS01.wavs
FX_FUS02
:sounds 7/18:FX_FUS02.wavs
FX_FUS03
:sounds 7/18:FX_FUS03.WAVs
FX_GOLDF
:sounds 7/18:FX_GOLDF.WAVs
FX_HRDDP
:sounds 7/18:FX_HRDDP.WAVs
FX_HTLN0
:sounds 7/18:FX_HTLN0.WAVs
FX_HTLN1
:sounds 7/18:FX_HTLN1.WAVs
FX_HTLN2
:sounds 7/18:FX_HTLN2.WAVs
FX_HTLN3
:sounds 7/18:FX_HTLN3.wavs
FX_HTLN4
:sounds 7/18:FX_HTLN4.WAVs
FX_HTLN5
:sounds 7/18:FX_HTLN5.WAVs
FX_HTLN6
:sounds 7/18:FX_HTLN6.wavs
FX_HTLNE
:sounds 7/18:FX_HTLNE.wavs
FX_LCK01
:sounds 7/18:FX_LCK01.wavs
FX_LCK02
:sounds 7/18:FX_LCK02.wavs
FX_LCK03
:sounds 7/18:FX_LCK03.wavs
FX_LCK04
:sounds 7/18:FX_LCK04.wavs
FX_LCK05
:sounds 7/18:FX_LCK05.wavs
FX_LND01
:sounds 7/18:FX_LND01.wavs
FX_LND02
:sounds 7/18:FX_LND02.wavs
FX_LND03
:sounds 7/18:FX_LND03.WAVs
FX_LNE01
:sounds 7/18:FX_LNE01.WAVs
FX_LNE02
:sounds 7/18:FX_LNE02.WAVs
FX_LNE03
:sounds 7/18:FX_LNE03.WAVs
FX_LNE04
:sounds 7/18:FX_LNE04.WAVs
FX_LNE05
:sounds 7/18:FX_LNE05.wavs
FX_LNE06
:sounds 7/18:FX_LNE06.wavs
FX_LNE07
:sounds 7/18:FX_LNE07.wavs
FX_LNE08
:sounds 7/18:FX_LNE08.wavs
FX_LNE09
:sounds 7/18:FX_LNE09.wavs
FX_LNE10
:sounds 7/18:FX_LNE10.wavs
FX_LNE11
:sounds 7/18:FX_LNE11.wavs
FX_LNE12
:sounds 7/18:FX_LNE12.wavs
FX_LNE13
:sounds 7/18:FX_LNE13.wavs
FX_LNE14
:sounds 7/18:FX_LNE14.wavs
FX_LNE15
:sounds 7/18:FX_LNE15.wavs
FX_LOCK
:sounds 7/18:FX_LOCK.WAVs
FX_MASS1
:sounds 7/18:FX_MASS1.wavs
FX_MTRIS
:sounds 7/18:FX_MTRIS.wavs
FX_MTRIS01
:sounds 7/18:FX_MTRIS01.wavs
FX_MTRS1
:sounds 7/18:FX_MTRS1.WAVs
FX_MTRS2
:sounds 7/18:FX_MTRS2.WAVs
FX_MTRS3
:sounds 7/18:FX_MTRS3.WAVs
FX_MTRS4
:sounds 7/18:FX_MTRS4.WAVs
FX_MTRS5
:sounds 7/18:FX_MTRS5.WAVs
FX_MTRS6
:sounds 7/18:FX_MTRS6.WAVs
FX_MUT01
:sounds 7/18:FX_MUT01.WAVs
FX_RTA01
:sounds 7/18:FX_RTA01.wavs
FX_RTATL
:sounds 7/18:FX_RTATL.WAVs
FX_RTATR
:sounds 7/18:FX_RTATR.WAVs
FX_RWD01
:sounds 7/18:FX_RWD01.wavs
FX_RWD02
:sounds 7/18:FX_RWD02.wavs
FX_SFTDP
:sounds 7/18:FX_SFTDP.WAVs
FX_SLDEL
:sounds 7/18:FX_SLDEL.wavs
FX_SLVRF
:sounds 7/18:FX_SLVRF.WAVs
FX_UNMVE
:sounds 7/18:FX_UNMVE.WAVs
TWM_BGIN
:sounds 7/18:TWM_BGIN.WAVs
TWM_END
:sounds 7/18:TWM_END.WAVs
TWM_MIDL
:sounds 7/18:TWM_MIDL.WAVs
VO_01TIC
:sounds 7/18:VO_01TIC.WAVs
VO_02TIC
:sounds 7/18:VO_02TIC.WAVs
VO_03TIC
:sounds 7/18:VO_03TIC.WAVs
VO_04TIC
:sounds 7/18:VO_04TIC.WAVs
VO_05TIC
:sounds 7/18:VO_05TIC.WAVs
VO_06TIC
:sounds 7/18:VO_06TIC.WAVs
VO_07TIC
:sounds 7/18:VO_07TIC.WAVs
VO_08TIC
:sounds 7/18:VO_08TIC.WAVs
VO_09TIC
:sounds 7/18:VO_09TIC.WAVs
VO_10TIC
:sounds 7/18:VO_10TIC.WAVs
VO_15TIC
:sounds 7/18:VO_15TIC.WAVs
VO_20TIC
:sounds 7/18:VO_20TIC.wavs
VO_30TIC
:sounds 7/18:VO_30TIC.WAVs
VO_CAS01
:sounds 7/18:VO_CAS01.wavs
VO_CAS02
:sounds 7/18:VO_CAS02.wavs
VO_CAS03
:sounds 7/18:VO_CAS03.wavs
VO_CAS04
:sounds 7/18:VO_CAS04.wavs
VO_CAS05
:sounds 7/18:VO_CAS05.wavs
VO_CAS06
:sounds 7/18:VO_CAS06.wavs
VO_CAS07
:sounds 7/18:VO_CAS07.wavs
VO_CAS08
:sounds 7/18:VO_CAS08.wavs
VO_CAS09
:sounds 7/18:VO_CAS09.wavs
VO_CAS10
:sounds 7/18:VO_CAS10.wavs
VO_CAS11
:sounds 7/18:VO_CAS11.wavs
VO_CAS12
:sounds 7/18:VO_CAS12.wavs
VO_CAS13
:sounds 7/18:VO_CAS13.wavs
VO_CAS14
:sounds 7/18:VO_CAS14.wavs
VO_CAS15
:sounds 7/18:VO_CAS15.wavs
VO_EXLNT
:sounds 7/18:VO_EXLNT.wavs
VO_GREAT
:sounds 7/18:VO_GREAT.wavs
VO_HTLN1
:sounds 7/18:VO_HTLN1.WAVs
VO_HTLN2
:sounds 7/18:VO_HTLN2.WAVs
VO_HTLN3
:sounds 7/18:VO_HTLN3.WAVs
VO_HTLN4
:sounds 7/18:VO_HTLN4.WAVs
VO_HTLN5
:sounds 7/18:VO_HTLN5.WAVs
VO_HTLN6
:sounds 7/18:VO_HTLN6.WAVs
VO_HTLNE
:sounds 7/18:VO_HTLNE.wavs
VO_INT01
:sounds 7/18:VO_INT01.wavs
VO_INT02
:sounds 7/18:VO_INT02.wavs
VO_INT03
:sounds 7/18:VO_INT03.wavs
	VO_LINE01
:sounds 7/18:VO_LINE01.wavs
	VO_LINE02
:sounds 7/18:VO_LINE02.wavs
	VO_LINE03
:sounds 7/18:VO_LINE03.wavs
VO_TETRS
:sounds 7/18:VO_TETRS.wavs
VO_TIME
:sounds 7/18:VO_TIME.wavs
VO_TSPIN
:sounds 7/18:VO_TSPIN.wavxsong
xtrsh
xlvls
set pf.d0 to 0
set pf.d8 to 0
set pf.d9 to 5
mixed garbage level
set pf.d9 to 0
set pf.d8 to 5
mixed garbage 1
*HBR: pf.d7=1 your 2:00 game time is up
*     pf.d7=0 you still have time
set pf.d7 to 0
)if level >= 15
 sound "VO_EXLNT"
 win
endl
Level #1
Level #2
Level #3
Level #4
Level #5
Level #6
Level #7
Level #8
Level #9
	Level #10
	Level #11
	Level #12
	Level #13
	Level #14
	Level #15
xevnt
Game Start
sound "TWM_BGIN"
Game Intro
sound "VO_INT02"
Time Up
sound "VO_TIME"
120e
sound "TWM_MIDL"
sound "VO_30TIC"
sound "VO_20TIC"
100e
sound "VO_10TIC"
110e
sound "VO_09TIC"
111e
sound "VO_08TIC"
112e
sound "VO_07TIC"
113e
sound "VO_06TIC"
114e
sound "VO_05TIC"
115e
sound "VO_04TIC"
116e
sound "VO_03TIC"
117e
sound "VO_02TIC"
118e
sound "VO_01TIC"
119xanim
death
xpgen
h*HBR: pf.d2 = 1 means play "lock" sound
set pf.d2 to 1
*HBR: pf.d4 = 0 means no t-spin
set pf.d4 to 0
$((.8-((level-1)*.007))^(level-1))/20
pfal
if pf.d7
 lose
if pf.d7
 lose
(.8-((level-1)*.007))^(level-1)$((.8-((level-1)*.007))^(level-1))/20
0.0001plok
if pf.d7
 lose
if pf.d7
 lose
ppat
ptr8
panm
pelm
sound "FX_LNE01"psol
.If ph.d7 = 0
	sound "FX_MTRS4"
	next level
set ph.d7 to ph.d7+ 1pgvt
sound "FX_LOCK"pcmp
if cascades = 2
 sound "FX_MTRS1"
 if level < 6
  sound "VO_CAS01"
 end
if cascades = 3
 sound "FX_MTRS2"
 if level < 6
  sound "VO_CAS02"
 end
if cascades = 4
 sound "FX_MTRS3"
 if level < 6
  sound "VO_CAS03"
 end
if cascades = 5
 sound "FX_MTRS4"
 if level < 6
  sound "VO_CAS04"
 end
if cascades = 6
 sound "FX_MTRS5"
 if level < 6
  sound "VO_CAS05"
 end
if cascades = 7
 sound "FX_MTRS6"
 if level < 6
  sound "VO_CAS06"
 end
if cascades > 7
 sound "FX_MTRS6"
 if level < 6
  sound "VO_CAS07"
 end
xxxx
tpf2data
s*HBR: pf.d7=1 your 2:00 game time is up
*     pf.d7=0 you still have time
if level time >= 120
 set pf.d7 to 1
endd
:minos 24:Ghost
set ghost to 1
fldd
:images:hot_line24x24.pict
0pcev
sound "FX_FALL"
sound "FX_UNMVE"
sound "FX_RTA01"
sound "FX_LND01"
sound "FX_FALL"
sound "FX_FALL"
sound "FX_HRDDP"
*HBR: pf.d2 is the "lock" sound flag
*     pf.d2 = 1 means play lock sound
*     pf.d2 = 0 means don't play lock sound
set pf.d2 to 0
L* HBR: if pf.d2 = 0 don't play "land" sound
if pf.d2
 sound "FX_LND01"
*DBP: Added Henk's new T-spin recongnition system.
* HBR: if pf.d2 = 1 play "lock" sound
if pf.d2
 sound "FX_LCK01"
*HBR: piece.id : 1 is the "T" Tetramino
*     spin : check if the "T" was just spun 
*     shape : check for surrounding blocks
*     play voice if level < 6
*     else play sound effect
*     set pf.d4 : the t-spin flag
if piece.id = 1
	if spin
		shape "T-spin1" at piece.x, piece.y
		if result = 1
   if level < 6
    sound "VO_TSPIN"
   else
    sound "FX_RWD01"
   end 
			set pf.d4 to 1
		else
			shape "T-spin2" at piece.x, piece.y
			if result = 1
    if level < 6
     sound "VO_TSPIN"
    else
     sound "FX_RWD01"
    end
				set pf.d4 to 1
			end
		end
	end
endctrl
mino
:minos 24:jdrop
:minos 24:jlock
:minos 24:sdrop
:minos 24:slock
:minos 24:tdrop
:minos 24:tlock
:minos 24:zdrop
:minos 24:zlock
:minos 24:odrop
:minos 24:olock
:minos 24:idrop
:minos 24:ilock
:minos 24:ldrop
:minos 24:llock
xtetr
xshap
tspin1
tspin2
xptrn
line clear
/kill mino
sound "FX_CLR01"
set ph.d0 to mino.y
*DBP: Took out all reference to score to fit into the new goal based system.
if pf.d0 < 2
	if ph.d0 = 2
		set goal to goal - 6
		sound "FX_HTLN6"
	*	sound "FX_MTRS6"
	else
		if ph.d0 = 3
		set goal to goal - 5
		sound "FX_HTLN5"
	*	sound "FX_MTRS5"
		else
			if ph.d0 = 5
			set goal to goal - 4
			sound "FX_HTLN4"
*			sound "FX_MTRS4"
			else
				if ph.d0 = 8
				set goal to goal - 3
				sound "FX_HTLN3"
	*			sound "FX_MTRS3"
				else
					if ph.d0 = 12
					set goal to goal - 2
					sound "FX_HTLN2"
	*				sound "FX_MTRS2"
					else
						if ph.d0 = 17
						set goal to goal - 1
						sound "FX_HTLN1"
		*				sound "FX_MTRS1"
						end
					end
				end
			end
		end
	end
	if score >= goal
		set pf.d0 to 1
	end
10xseqs
xsnds
FX_BMP01
:sounds 7/18:FX_BMP01.WAVs
FX_BMP02
:sounds 7/18:FX_BMP02.WAVs
FX_BMP03
:sounds 7/18:FX_BMP03.WAVs
FX_CAS01
:sounds 7/18:FX_CAS01.WAVs
FX_CLR01
:sounds 7/18:FX_CLR01.wavs
FX_FALL
:sounds 7/18:FX_FALL.WAVs
FX_FALL1
:sounds 7/18:FX_FALL1.wavs
FX_FALL2
:sounds 7/18:FX_FALL2.wavs
FX_FALL3
:sounds 7/18:FX_FALL3.WAVs
FX_FALL4
:sounds 7/18:FX_FALL4.WAVs
FX_FUS01
:sounds 7/18:FX_FUS01.wavs
FX_FUS02
:sounds 7/18:FX_FUS02.wavs
FX_FUS03
:sounds 7/18:FX_FUS03.WAVs
FX_GOLDF
:sounds 7/18:FX_GOLDF.WAVs
FX_HRDDP
:sounds 7/18:FX_HRDDP.WAVs
FX_HTLN0
:sounds 7/18:FX_HTLN0.WAVs
FX_HTLN1
:sounds 7/18:FX_HTLN1.WAVs
FX_HTLN2
:sounds 7/18:FX_HTLN2.WAVs
FX_HTLN3
:sounds 7/18:FX_HTLN3.wavs
FX_HTLN4
:sounds 7/18:FX_HTLN4.WAVs
FX_HTLN5
:sounds 7/18:FX_HTLN5.WAVs
FX_HTLN6
:sounds 7/18:FX_HTLN6.wavs
FX_HTLNE
:sounds 7/18:FX_HTLNE.wavs
FX_LCK01
:sounds 7/18:FX_LCK01.wavs
FX_LCK02
:sounds 7/18:FX_LCK02.wavs
FX_LCK03
:sounds 7/18:FX_LCK03.wavs
FX_LCK04
:sounds 7/18:FX_LCK04.wavs
FX_LCK05
:sounds 7/18:FX_LCK05.wavs
FX_LND01
:sounds 7/18:FX_LND01.wavs
FX_LND02
:sounds 7/18:FX_LND02.wavs
FX_LND03
:sounds 7/18:FX_LND03.WAVs
FX_LNE01
:sounds 7/18:FX_LNE01.WAVs
FX_LNE02
:sounds 7/18:FX_LNE02.WAVs
FX_LNE03
:sounds 7/18:FX_LNE03.WAVs
FX_LNE04
:sounds 7/18:FX_LNE04.WAVs
FX_LNE05
:sounds 7/18:FX_LNE05.wavs
FX_LNE06
:sounds 7/18:FX_LNE06.wavs
FX_LNE07
:sounds 7/18:FX_LNE07.wavs
FX_LNE08
:sounds 7/18:FX_LNE08.wavs
FX_LNE09
:sounds 7/18:FX_LNE09.wavs
FX_LNE10
:sounds 7/18:FX_LNE10.wavs
FX_LNE11
:sounds 7/18:FX_LNE11.wavs
FX_LNE12
:sounds 7/18:FX_LNE12.wavs
FX_LNE13
:sounds 7/18:FX_LNE13.wavs
FX_LNE14
:sounds 7/18:FX_LNE14.wavs
FX_LNE15
:sounds 7/18:FX_LNE15.wavs
FX_LOCK
:sounds 7/18:FX_LOCK.WAVs
FX_MASS1
:sounds 7/18:FX_MASS1.wavs
FX_MTRIS
:sounds 7/18:FX_MTRIS.wavs
FX_MTRIS01
:sounds 7/18:FX_MTRIS01.wavs
FX_MTRS1
:sounds 7/18:FX_MTRS1.WAVs
FX_MTRS2
:sounds 7/18:FX_MTRS2.WAVs
FX_MTRS3
:sounds 7/18:FX_MTRS3.WAVs
FX_MTRS4
:sounds 7/18:FX_MTRS4.WAVs
FX_MTRS5
:sounds 7/18:FX_MTRS5.WAVs
FX_MTRS6
:sounds 7/18:FX_MTRS6.WAVs
FX_MUT01
:sounds 7/18:FX_MUT01.WAVs
FX_RTA01
:sounds 7/18:FX_RTA01.wavs
FX_RTATL
:sounds 7/18:FX_RTATL.WAVs
FX_RTATR
:sounds 7/18:FX_RTATR.WAVs
FX_RWD01
:sounds 7/18:FX_RWD01.wavs
FX_RWD02
:sounds 7/18:FX_RWD02.wavs
FX_SFTDP
:sounds 7/18:FX_SFTDP.WAVs
FX_SLDEL
:sounds 7/18:FX_SLDEL.wavs
FX_SLVRF
:sounds 7/18:FX_SLVRF.WAVs
FX_UNMVE
:sounds 7/18:FX_UNMVE.WAVs
TWM_BGIN
:sounds 7/18:TWM_BGIN.WAVs
TWM_END
:sounds 7/18:TWM_END.WAVs
TWM_MIDL
:sounds 7/18:TWM_MIDL.WAVs
VO_01TIC
:sounds 7/18:VO_01TIC.WAVs
VO_02TIC
:sounds 7/18:VO_02TIC.WAVs
VO_03TIC
:sounds 7/18:VO_03TIC.WAVs
VO_04TIC
:sounds 7/18:VO_04TIC.WAVs
VO_05TIC
:sounds 7/18:VO_05TIC.WAVs
VO_06TIC
:sounds 7/18:VO_06TIC.WAVs
VO_07TIC
:sounds 7/18:VO_07TIC.WAVs
VO_08TIC
:sounds 7/18:VO_08TIC.WAVs
VO_09TIC
:sounds 7/18:VO_09TIC.WAVs
VO_10TIC
:sounds 7/18:VO_10TIC.WAVs
VO_15TIC
:sounds 7/18:VO_15TIC.WAVs
VO_20TIC
:sounds 7/18:VO_20TIC.wavs
VO_30TIC
:sounds 7/18:VO_30TIC.WAVs
VO_CAS01
:sounds 7/18:VO_CAS01.wavs
VO_CAS02
:sounds 7/18:VO_CAS02.wavs
VO_CAS03
:sounds 7/18:VO_CAS03.wavs
VO_CAS04
:sounds 7/18:VO_CAS04.wavs
VO_CAS05
:sounds 7/18:VO_CAS05.wavs
VO_CAS06
:sounds 7/18:VO_CAS06.wavs
VO_CAS07
:sounds 7/18:VO_CAS07.wavs
VO_CAS08
:sounds 7/18:VO_CAS08.wavs
VO_CAS09
:sounds 7/18:VO_CAS09.wavs
VO_CAS10
:sounds 7/18:VO_CAS10.wavs
VO_CAS11
:sounds 7/18:VO_CAS11.wavs
VO_CAS12
:sounds 7/18:VO_CAS12.wavs
VO_CAS13
:sounds 7/18:VO_CAS13.wavs
VO_CAS14
:sounds 7/18:VO_CAS14.wavs
VO_CAS15
:sounds 7/18:VO_CAS15.wavs
VO_EXLNT
:sounds 7/18:VO_EXLNT.wavs
VO_GREAT
:sounds 7/18:VO_GREAT.wavs
VO_HTLN1
:sounds 7/18:VO_HTLN1.WAVs
VO_HTLN2
:sounds 7/18:VO_HTLN2.WAVs
VO_HTLN3
:sounds 7/18:VO_HTLN3.WAVs
VO_HTLN4
:sounds 7/18:VO_HTLN4.WAVs
VO_HTLN5
:sounds 7/18:VO_HTLN5.WAVs
VO_HTLN6
:sounds 7/18:VO_HTLN6.WAVs
VO_HTLNE
:sounds 7/18:VO_HTLNE.wavs
VO_INT01
:sounds 7/18:VO_INT01.wavs
VO_INT02
:sounds 7/18:VO_INT02.wavs
VO_INT03
:sounds 7/18:VO_INT03.wavs
	VO_LINE01
:sounds 7/18:VO_LINE01.wavs
	VO_LINE02
:sounds 7/18:VO_LINE02.wavs
	VO_LINE03
:sounds 7/18:VO_LINE03.wavs
VO_TETRS
:sounds 7/18:VO_TETRS.wavs
VO_TIME
:sounds 7/18:VO_TIME.wavs
VO_TSPIN
:sounds 7/18:VO_TSPIN.wavxsong
xtrsh
xlvls
4*DBP: Implemented the new goal based system
*HBR: Goal has been reset to count down.
*     pf.d1 is the level target
*     goal is the number of points left till level clear
set pf.d1 to (5*level)
set goal to pf.d1
*HBR: pf.d7=1 your 2:00 game time is up
*     pf.d7=0 you still have time
set pf.d7 to 0
)if level >= 15
 sound "VO_EXLNT"
 win
endl
Level #1
Level #2
Level #3
Level #4
Level #5
Level #6
Level #7
Level #8
Level #9
	Level #10
	Level #11
	Level #12
	Level #13
	Level #14
	Level #15
xevnt
Hot Line Intro
sound "VO_INT03"
60sec
sound "TWM_MIDL"
30sec
sound "VO_30TIC"
20sec
sound "VO_20TIC"
100e
15sec
sound "VO_15TIC"
105e
10sec
sound "VO_10TIC"
110e
9sec
sound "VO_09TIC"
111e
8sec
sound "VO_08TIC"
112e
7sec
sound "VO_07TIC"
113e
6sec
sound "VO_06TIC"
114e
5sec
sound "VO_05TIC"
115e
4sec
sound "VO_04TIC"
116e
3sec
sound "VO_03TIC"
117e
2sec
sound "VO_02TIC"
118e
1sec
sound "VO_01TIC"
119e
Time Up
sound "VO_TIME"
120e
Game Start
sound "TWM_BGIN"
0xanim
death
xpgen
xset pf.d0 to 0
*HBR: pf.d2 = 1 means play "lock" sound
set pf.d2 to 1
*HBR: pf.d4 = 0 means no t-spin
set pf.d4 to 0
$((.8-((level-1)*.007))^(level-1))/20
pfal
if pf.d7
 lose
if pf.d7
 lose
(.8-((level-1)*.007))^(level-1)$((.8-((level-1)*.007))^(level-1))/20
0.0001plok
if pf.d7
 lose
if pf.d7
 lose
ppat
ptr8
 if pf.d0 = 1
	set pf.d0 to 2
mutate mino
sound "FX_LOCK"
	pf.d0 = 1
panm
pelm
r*HBR:  Sometimes the goal falls below 0 briefly
*      this makes sure it does not
if goal < 0
 set goal to 0
sound "FX_LNE01"psol
pgvt
sound "FX_LOCK"pcmp
*HBR:  goal counts down to 0
*      under leveltime means next level (win)
*      over level time means lose (repeat level)
if goal <= 0
	next level
xxxx
tpf2data
*HBR: pf.d7=1 your 2:00 game time is up
*     pf.d7=0 you still have time
if level time >= 120
 set pf.d7 to 1
*** Old scripting from HBR ***
* Time Events: Level Second
* if level time >= 3 & player.d0 = 115
* 	sound "VO_INT01"
*  set player.d0 to 60
* end
* if level time >= 60 & player.d0 = 60
* 	sound "TWM_MIDL"
*  set player.d0 to 30
* end
* if level time >= 90 & player.d0 = 30
* 	sound "VO_30TIC"
*  set player.d0 to 20
* end
* if level time >= 100 & player.d0 = 20
* 	sound "VO_20TIC"
*  set player.d0 to 10
* end
* if level time >= 110 & player.d0 = 10
* 	sound "VO_10TIC"
*   set player.d0 to 9
* end
* if level time >= 111 & player.d0 = 9
* 	sound "VO_09TIC"
*  set player.d0 to 8
* end
* if level time >= 112 & player.d0 = 8
* 	sound "VO_08TIC"
*   set player.d0 to 7
* end
* if level time >= 113 & player.d0 = 7
* 	sound "VO_07TIC"
*  set player.d0 to 6
* end
* if level time >= 114 & player.d0 = 6
* 	sound "VO_06TIC"
*  set player.d0 to 5
* end
* if level time >= 115 & player.d0 = 5
* 	sound "VO_05TIC"
*  set player.d0 to 4
* end
* if level time >= 116 & player.d0 = 4
* 	sound "VO_04TIC"
*  set player.d0 to 3
* end
* if level time >= 117 & player.d0 = 3
* 	sound "VO_03TIC"
*  set player.d0 to 2
* end
* if level time >= 118 & player.d0 = 2
* 	sound "VO_02TIC"
*  set player.d0 to 1
* end
* if level time >= 119 & player.d0 = 1
* 	sound "VO_01TIC"
*  set player.d0 to 0
* end
* if level time >= 120
* sound "VO_TIME"
* lose
* endd
:minos 24:Ghost
set ghost to 1
fldd
:images:Squaretris(24x24).pict
0pcev
sound "FX_FALL"
sound "FX_UNMVE"
sound "FX_RTA01"
sound "FX_LND01"
sound "FX_FALL"
sound "FX_FALL"
sound "FX_HRDDP"
*HBR: pf.d2 is the "lock" sound flag
*     pf.d2 = 1 means play lock sound
*     pf.d2 = 0 means don't play lock sound
set pf.d2 to 0
L* HBR: if pf.d2 = 0 don't play "land" sound
if pf.d2
 sound "FX_LND01"
* HBR: if pf.d2 = 1 play "lock" sound
if pf.d2
 sound "FX_LCK01"
*HBR: piece.id : 1 is the "T" Tetramino
*     spin : check if the "T" was just spun 
*     shape : check for surrounding blocks
*     play voice if level < 6
*     else play sound effect
*     subtract the t-spin bonus (1 for a t-spin)
*     in the eliminate phase    (1 for a single)
*     in the eliminate phase    (3 for a double)
*     set pf.d4 : the t-spin flag
if piece.id = 7
	if spin
		shape "T-spin 1" at piece.x, piece.y
		if result = 1
  * If you want t-spins to only work if facing up and down
  * script will be "if piece.dir = 0 | piece.dir = 2".
 	* jkm - selective destruction - begin
  	if piece.dir = 3
	  	pattern "t-spin top" at piece.x,piece.y-1
		  pattern "t-spin bottom" at piece.x,piece.y
	  else
		  pattern "t-spin top" at piece.x,piece.y
		  pattern "t-spin bottom" at piece.x,piece.y+1
	  end
	 * jkm - selective destruction - end
   if level < 6
    sound "VO_TSPIN"
   else
    sound "FX_RWD01"
   end
   set goal to goal -1 
			set pf.d4 to 1
		else
			shape "T-spin 2" at piece.x, piece.y
			if result = 1
  * If you want t-spins to only work if facing up and down
  * script will be "if piece.dir = 0 | piece.dir = 2".
 	* jkm - selective destruction - begin
  	if piece.dir = 3
	  	pattern "t-spin top" at piece.x,piece.y-1
		  pattern "t-spin bottom" at piece.x,piece.y
	  else
		  pattern "t-spin top" at piece.x,piece.y
		  pattern "t-spin bottom" at piece.x,piece.y+1
	  end
	 * jkm - selective destruction - end
    if level < 6
     sound "VO_TSPIN"
    else
     sound "FX_RWD01"
    end
    set goal to goal -1 
				set pf.d4 to 1
			end
		end
	end
ctrl
mino
J color
:minos 24:jdrop
:minos 24:jlock
L color
:minos 24:ldrop
:minos 24:llock
S color
:minos 24:sdrop
:minos 24:slock
Z color
:minos 24:zdrop
:minos 24:zlock
O color
:minos 24:odrop
:minos 24:olock
T color
:minos 24:tdrop
:minos 24:tlock
I color
:minos 24:idrop
:minos 24:ilock
Pure Square
:minos 24:Pure Square.pict
Combo Square
:minos 24:Combo Square.pict
Result J color
:minos 24:jdrop
:minos 24:jlock
Result L color
:minos 24:ldrop
:minos 24:llock
Result S color
:minos 24:sdrop
:minos 24:slock
Result Z color
:minos 24:zdrop
:minos 24:zlock
Result O color
:minos 24:odrop
:minos 24:olock
Result T color
:minos 24:tdrop
:minos 24:tlock
Result I color
:minos 24:idrop
:minos 24:ilock
Result Pure Square
:minos 24:Pure Square.pict
Result Combo Square
:minos 24:Combo Square.pict
xtetr
J Tetrimino
I Tetrimino
O Tetrimino
S Tetrimino
L Tetrimino
Z Tetrimino
T Tetrimino
xshap
Perfect Square
T-spin 1
T-spin 2
Spin S 1
Spin S 2
Spin Z 1
Spin Z 2
xptrn
t-spin top
 sound "FX_RWD02"
set pl.d4 to 0
set pl.d5 to mino.y
t-spin bottom
!sound "FX_RWD01"
set pl.d5 to 21
&if pl.d4 = -1
	set pl.d4 to mino.y
J Square
* When a perfet square is created using 4 "J" Tetriminos, the "J" Teriminos will be replaced/transformed with/to the "Pure Square" mino set.
set mino to "Pure Square"
animate "Pure & Combo"
solidify
sound "FX_GOLDF"
I Square
* When a perfet square is created using 4 "I" Tetriminos, the "I" Teriminos will be replaced/transformed with/to the "Pure Square" mino set.
set mino to "Pure Square"
animate "Pure & Combo"
solidify
sound "FX_GOLDF"
O Square
* When a perfet square is created using 4 "O" Tetriminos, the "O" Tetriminos will be replaced/transformed with/to the "Pure Square" mino set.
set mino to "Pure Square"
animate "Pure & Combo"
solidify
sound "FX_GOLDF"
T Square
* When a perfet square is created using 4 "T" Tetriminos, the "T" Teriminos will be replaced/transformed with/to the "Pure Square" mino set.
set mino to "Pure Square"
animate "Pure & Combo"
solidify
sound "FX_GOLDF"
L Square
* When a perfet square is created using 4 "L" Tetriminos, the "L" Teriminos will be replaced/transformed with/to the "Pure Square" mino set.
set mino to "Pure Square"
animate "Pure & Combo"
solidify
sound "FX_GOLDF"
Combo Square
2set mino to "Combo Square"
animate "Pure & Combo"
solidify
sound "FX_SLVRF"
Line clear
r*Adding the points from the mino.d9 to the bonus points
set pf.d0 to pf.d0 + mino.d9
kill mino
sound "FX_CLR01"
10xseqs
xsnds
FX_BMP01
:sounds 7/18:FX_BMP01.WAVs
FX_BMP02
:sounds 7/18:FX_BMP02.WAVs
FX_BMP03
:sounds 7/18:FX_BMP03.WAVs
FX_CAS01
:sounds 7/18:FX_CAS01.WAVs
FX_CLR01
:sounds 7/18:FX_CLR01.wavs
FX_FALL
:sounds 7/18:FX_FALL.WAVs
FX_FALL1
:sounds 7/18:FX_FALL1.wavs
FX_FALL2
:sounds 7/18:FX_FALL2.wavs
FX_FALL3
:sounds 7/18:FX_FALL3.WAVs
FX_FALL4
:sounds 7/18:FX_FALL4.WAVs
FX_FUS01
:sounds 7/18:FX_FUS01.wavs
FX_FUS02
:sounds 7/18:FX_FUS02.wavs
FX_FUS03
:sounds 7/18:FX_FUS03.WAVs
FX_GOLDF
:sounds 7/18:FX_GOLDF.WAVs
FX_HRDDP
:sounds 7/18:FX_HRDDP.WAVs
FX_HTLN0
:sounds 7/18:FX_HTLN0.WAVs
FX_HTLN1
:sounds 7/18:FX_HTLN1.WAVs
FX_HTLN2
:sounds 7/18:FX_HTLN2.WAVs
FX_HTLN3
:sounds 7/18:FX_HTLN3.wavs
FX_HTLN4
:sounds 7/18:FX_HTLN4.WAVs
FX_HTLN5
:sounds 7/18:FX_HTLN5.WAVs
FX_HTLN6
:sounds 7/18:FX_HTLN6.wavs
FX_HTLNE
:sounds 7/18:FX_HTLNE.wavs
FX_LCK01
:sounds 7/18:FX_LCK01.wavs
FX_LCK02
:sounds 7/18:FX_LCK02.wavs
FX_LCK03
:sounds 7/18:FX_LCK03.wavs
FX_LCK04
:sounds 7/18:FX_LCK04.wavs
FX_LCK05
:sounds 7/18:FX_LCK05.wavs
FX_LND01
:sounds 7/18:FX_LND01.wavs
FX_LND02
:sounds 7/18:FX_LND02.wavs
FX_LND03
:sounds 7/18:FX_LND03.WAVs
FX_LNE01
:sounds 7/18:FX_LNE01.WAVs
FX_LNE02
:sounds 7/18:FX_LNE02.WAVs
FX_LNE03
:sounds 7/18:FX_LNE03.WAVs
FX_LNE04
:sounds 7/18:FX_LNE04.WAVs
FX_LNE05
:sounds 7/18:FX_LNE05.wavs
FX_LNE06
:sounds 7/18:FX_LNE06.wavs
FX_LNE07
:sounds 7/18:FX_LNE07.wavs
FX_LNE08
:sounds 7/18:FX_LNE08.wavs
FX_LNE09
:sounds 7/18:FX_LNE09.wavs
FX_LNE10
:sounds 7/18:FX_LNE10.wavs
FX_LNE11
:sounds 7/18:FX_LNE11.wavs
FX_LNE12
:sounds 7/18:FX_LNE12.wavs
FX_LNE13
:sounds 7/18:FX_LNE13.wavs
FX_LNE14
:sounds 7/18:FX_LNE14.wavs
FX_LNE15
:sounds 7/18:FX_LNE15.wavs
FX_LOCK
:sounds 7/18:FX_LOCK.WAVs
FX_MASS1
:sounds 7/18:FX_MASS1.wavs
FX_MTRIS
:sounds 7/18:FX_MTRIS.wavs
FX_MTRIS01
:sounds 7/18:FX_MTRIS01.wavs
FX_MTRS1
:sounds 7/18:FX_MTRS1.WAVs
FX_MTRS2
:sounds 7/18:FX_MTRS2.WAVs
FX_MTRS3
:sounds 7/18:FX_MTRS3.WAVs
FX_MTRS4
:sounds 7/18:FX_MTRS4.WAVs
FX_MTRS5
:sounds 7/18:FX_MTRS5.WAVs
FX_MTRS6
:sounds 7/18:FX_MTRS6.WAVs
FX_MUT01
:sounds 7/18:FX_MUT01.WAVs
FX_RTA01
:sounds 7/18:FX_RTA01.wavs
FX_RTATL
:sounds 7/18:FX_RTATL.WAVs
FX_RTATR
:sounds 7/18:FX_RTATR.WAVs
FX_RWD01
:sounds 7/18:FX_RWD01.wavs
FX_RWD02
:sounds 7/18:FX_RWD02.wavs
FX_SFTDP
:sounds 7/18:FX_SFTDP.WAVs
FX_SLDEL
:sounds 7/18:FX_SLDEL.wavs
FX_SLVRF
:sounds 7/18:FX_SLVRF.WAVs
FX_UNMVE
:sounds 7/18:FX_UNMVE.WAVs
TWM_BGIN
:sounds 7/18:TWM_BGIN.WAVs
TWM_END
:sounds 7/18:TWM_END.WAVs
TWM_MIDL
:sounds 7/18:TWM_MIDL.WAVs
VO_01TIC
:sounds 7/18:VO_01TIC.WAVs
VO_02TIC
:sounds 7/18:VO_02TIC.WAVs
VO_03TIC
:sounds 7/18:VO_03TIC.WAVs
VO_04TIC
:sounds 7/18:VO_04TIC.WAVs
VO_05TIC
:sounds 7/18:VO_05TIC.WAVs
VO_06TIC
:sounds 7/18:VO_06TIC.WAVs
VO_07TIC
:sounds 7/18:VO_07TIC.WAVs
VO_08TIC
:sounds 7/18:VO_08TIC.WAVs
VO_09TIC
:sounds 7/18:VO_09TIC.WAVs
VO_10TIC
:sounds 7/18:VO_10TIC.WAVs
VO_15TIC
:sounds 7/18:VO_15TIC.WAVs
VO_20TIC
:sounds 7/18:VO_20TIC.wavs
VO_30TIC
:sounds 7/18:VO_30TIC.WAVs
VO_CAS01
:sounds 7/18:VO_CAS01.wavs
VO_CAS02
:sounds 7/18:VO_CAS02.wavs
VO_CAS03
:sounds 7/18:VO_CAS03.wavs
VO_CAS04
:sounds 7/18:VO_CAS04.wavs
VO_CAS05
:sounds 7/18:VO_CAS05.wavs
VO_CAS06
:sounds 7/18:VO_CAS06.wavs
VO_CAS07
:sounds 7/18:VO_CAS07.wavs
VO_CAS08
:sounds 7/18:VO_CAS08.wavs
VO_CAS09
:sounds 7/18:VO_CAS09.wavs
VO_CAS10
:sounds 7/18:VO_CAS10.wavs
VO_CAS11
:sounds 7/18:VO_CAS11.wavs
VO_CAS12
:sounds 7/18:VO_CAS12.wavs
VO_CAS13
:sounds 7/18:VO_CAS13.wavs
VO_CAS14
:sounds 7/18:VO_CAS14.wavs
VO_CAS15
:sounds 7/18:VO_CAS15.wavs
VO_EXLNT
:sounds 7/18:VO_EXLNT.wavs
VO_GREAT
:sounds 7/18:VO_GREAT.wavs
VO_HTLN1
:sounds 7/18:VO_HTLN1.WAVs
VO_HTLN2
:sounds 7/18:VO_HTLN2.WAVs
VO_HTLN3
:sounds 7/18:VO_HTLN3.WAVs
VO_HTLN4
:sounds 7/18:VO_HTLN4.WAVs
VO_HTLN5
:sounds 7/18:VO_HTLN5.WAVs
VO_HTLN6
:sounds 7/18:VO_HTLN6.WAVs
VO_HTLNE
:sounds 7/18:VO_HTLNE.wavs
VO_INT01
:sounds 7/18:VO_INT01.wavs
VO_INT02
:sounds 7/18:VO_INT02.wavs
VO_INT03
:sounds 7/18:VO_INT03.wavs
	VO_LINE01
:sounds 7/18:VO_LINE01.wavs
	VO_LINE02
:sounds 7/18:VO_LINE02.wavs
	VO_LINE03
:sounds 7/18:VO_LINE03.wavs
VO_TETRS
:sounds 7/18:VO_TETRS.wavs
VO_TIME
:sounds 7/18:VO_TIME.wavs
VO_TSPIN
:sounds 7/18:VO_TSPIN.wavxsong
xtrsh
xlvls
8*HBR: pf.d3=1 the last line clear was a "tetris"
*     pf.d3=0 the last line clear was not
set pf.d3 to 0
*HBR: goal is set
*     game subtracts from the goal
*     if the goal <= 0 then level up
set goal to (10*level)
*HBR: pf.d7=1 your 2:00 game time is up
*     pf.d7=0 you still have time
set pf.d7 to 0
if level >= 15
	win
endl
Level #1
Level #2
Level #3
Level #4
Level #5
Level #6
Level #7
Level #8
Level #9
	Level #10
	Level #11
	Level #12
	Level #13
	Level #14
	Level #15
xevnt
60 seconds
sound "TWM_MIDL"
30 seconds
sound "VO_30TIC"
20 seconds
sound "VO_20TIC"
100e
10 seconds
sound "VO_10TIC"
110e
	9 seconds
sound "VO_09TIC"
111e
	8 seconds
sound "VO_08TIC"
112e
	7 seconds
sound "VO_07TIC"
113e
	6 seconds
sound "VO_06TIC"
114e
	5 seconds
sound "VO_05TIC"
115e
	4 seconds
sound "VO_04TIC"
116e
	3 seoncds
sound "VO_03TIC"
117e
	2 seconds
sound "VO_02TIC"
118e
1 second
sound "VO_01TIC"
119e
Time up
sound "count"
120e
Game Start
sound "TWM_BGIN"
Intro
sound "VO_INT01"
3xanim
Death
Pure & Combo
xpgen
h*HBR: pf.d2 = 1 means play "lock" sound
set pf.d2 to 1
*HBR: pf.d4 = 0 means no t-spin
set pf.d4 to 0
$((.8-((level-1)*.007))^(level-1))/20
pfal
if pf.d7
 lose
if pf.d7
 lose
(.8-((level-1)*.007))^(level-1)$((.8-((level-1)*.007))^(level-1))/20
0.0001plok
if pf.d7
 lose
if pf.d7
 lose
ppat
* jkm - selective destruction - begin
* clear the pl.d4 & pl.d5
set pl.d4 to -1
set pl.d5 to -1
* jkm - selective destruction - end
ptr8
X* ESP - This turns the gravity on.
if pl.d4 != -1
	set gravity to 1
set pl.d6 to 0
* jkm - selective destruction - begin
if mino.y > pl.d5
	exit
if mino.y < pl.d4
	exit
* jkm - selective destruction - end
* ESP - This will change all the original minos to the mutate minos assigned.
mutate mino
sound "FX_LOCK"
pl.d4 != -1
panm
pelm
*HBR: ph.d0 is the number of lines cleared
*     play voice for beginner levels
*     play sound effect
*     subtract the t-spin bonus (1 for a single)
*        					                  (3 for a double)
*     subtract points from goal
*     send attack 
if ph.d0 = 1
 if level < 6
  sound "VO_LINE01"
 end
 if pf.d4
  set goal to goal - 1
 end
 sound "FX_LNE01"
	sound "FX_MTRS1"
 set goal to goal -1
if ph.d0 = 2
 if level < 6
  sound "VO_LINE02"
 end
 if pf.d4
  set goal to goal - 3
 end
 sound "FX_LNE01"
 sound "FX_LNE01"
	sound "FX_MTRS2"
	set goal to goal -3 
if ph.d0 = 3
 if level < 6
  sound "VO_LINE03"
 end
 sound "FX_LNE01"
 sound "FX_LNE01"
 sound "FX_LNE01"
	sound "FX_MTRS3"
	set goal to goal -5
if ph.d0 >= 4
 send "Attack3"
 if level < 11
  sound "VO_TETRS"
 end
 sound "FX_LNE01"
 sound "FX_LNE01"
 sound "FX_LNE01" 
 sound "FX_LNE01"
	sound "FX_MTRS4"
 set goal to goal -8
*HBR:  Sometimes the goal falls below 0 briefly
*      this makes sure it does not
if goal < 0
 set goal to 0
L*JR- add 1 point to ph.d0 to count each line clear
set ph.d0 to ph.d0 + 1
_*ESP - Adding the Pure/Combo square bonus to the score.
set goal to goal - pf.d0
set pf.d0 to 0
sound "FX_LNE01"psol
pgvt
T* ESP - After the T-spin is triggered, this turns the gravity off.
set gravity to 0
sound "FX_LOCK"pcmp
*HBR:  goal counts down to 0
*      under leveltime means next level (win)
*      over level time means lose (repeat level)
if goal <= 0
	next level