diff --git a/.gitignore b/.gitignore
index fb21d30f..fd919169 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,4 @@
interiors
-data
*.hl
*.js
*.js.map
diff --git a/README.md b/README.md
index c03c7d3e..f7e3a363 100644
--- a/README.md
+++ b/README.md
@@ -5,6 +5,7 @@ A Haxe port of Marble Blast Gold, name subject to change.
Requires Haxe 4.2.2
You require the following Haxe libraries:
- heaps: 1.9.1 (not the git version)
+- hlsdl (You will have to update it manually by replacing the files after doing the below steps)
You also have to compile your own version of Hashlink with https://github.com/HaxeFoundation/hashlink/pull/444 applied
After all that has been setup, copy the data folder of MBG to the repo directory, compile to hashlink by doing `haxe compile.hxml` and then running the game by `hl marblegame.hl`
diff --git a/data/font/Arial14.fnt b/data/font/Arial14.fnt
new file mode 100644
index 00000000..df339d4d
--- /dev/null
+++ b/data/font/Arial14.fnt
@@ -0,0 +1,269 @@
+info face="Arial" size=14 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
+common lineHeight=14 base=11 scaleW=256 scaleH=256 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4
+page id=0 file="Arial14_0.png"
+chars count=203
+char id=32 x=221 y=36 width=1 height=1 xoffset=0 yoffset=0 xadvance=3 page=0 chnl=15
+char id=33 x=132 y=31 width=1 height=8 xoffset=0 yoffset=3 xadvance=2 page=0 chnl=15
+char id=34 x=130 y=40 width=3 height=4 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=35 x=219 y=20 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=36 x=122 y=12 width=5 height=9 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=37 x=231 y=11 width=9 height=8 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=38 x=81 y=22 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=39 x=146 y=39 width=1 height=4 xoffset=0 yoffset=3 xadvance=2 page=0 chnl=15
+char id=40 x=29 y=12 width=3 height=10 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=41 x=33 y=12 width=3 height=10 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=42 x=100 y=40 width=3 height=5 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=43 x=42 y=41 width=5 height=6 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=44 x=163 y=38 width=2 height=3 xoffset=0 yoffset=10 xadvance=3 page=0 chnl=15
+char id=45 x=200 y=36 width=3 height=2 xoffset=0 yoffset=8 xadvance=4 page=0 chnl=15
+char id=46 x=216 y=36 width=2 height=1 xoffset=0 yoffset=10 xadvance=3 page=0 chnl=15
+char id=47 x=112 y=31 width=3 height=8 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=48 x=225 y=20 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=49 x=128 y=31 width=3 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=50 x=231 y=20 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=51 x=237 y=20 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=52 x=243 y=20 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=53 x=0 y=33 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=54 x=6 y=33 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=55 x=12 y=32 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=56 x=24 y=32 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=57 x=189 y=20 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=58 x=254 y=29 width=1 height=6 xoffset=0 yoffset=5 xadvance=3 page=0 chnl=15
+char id=59 x=140 y=31 width=1 height=8 xoffset=0 yoffset=5 xadvance=3 page=0 chnl=15
+char id=60 x=18 y=41 width=5 height=6 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=61 x=114 y=40 width=5 height=4 xoffset=0 yoffset=6 xadvance=6 page=0 chnl=15
+char id=62 x=6 y=42 width=5 height=6 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=63 x=30 y=32 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=64 x=154 y=0 width=10 height=10 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=15
+char id=65 x=211 y=11 width=9 height=8 xoffset=-1 yoffset=3 xadvance=8 page=0 chnl=15
+char id=66 x=151 y=22 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=67 x=144 y=22 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=68 x=123 y=22 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=69 x=36 y=32 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=70 x=42 y=32 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=71 x=59 y=22 width=7 height=8 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=72 x=130 y=22 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=73 x=136 y=31 width=1 height=8 xoffset=0 yoffset=3 xadvance=2 page=0 chnl=15
+char id=74 x=107 y=31 width=4 height=8 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=75 x=43 y=23 width=7 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=76 x=48 y=32 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=77 x=35 y=23 width=7 height=8 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=78 x=88 y=22 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=79 x=27 y=23 width=7 height=8 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=80 x=54 y=32 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=81 x=54 y=12 width=7 height=9 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=82 x=74 y=22 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=83 x=95 y=22 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=84 x=66 y=31 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=85 x=102 y=22 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=86 x=241 y=11 width=9 height=8 xoffset=-1 yoffset=3 xadvance=8 page=0 chnl=15
+char id=87 x=188 y=11 width=11 height=8 xoffset=-1 yoffset=3 xadvance=10 page=0 chnl=15
+char id=88 x=109 y=22 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=89 x=18 y=23 width=8 height=8 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=90 x=116 y=22 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=91 x=48 y=12 width=2 height=10 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=92 x=120 y=31 width=3 height=8 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=93 x=45 y=12 width=2 height=10 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=94 x=77 y=40 width=5 height=5 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=95 x=189 y=36 width=6 height=2 xoffset=0 yoffset=11 xadvance=6 page=0 chnl=15
+char id=96 x=160 y=39 width=2 height=3 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=97 x=236 y=29 width=5 height=6 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=98 x=72 y=31 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=99 x=230 y=29 width=5 height=6 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=100 x=78 y=31 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=101 x=224 y=29 width=5 height=6 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=102 x=251 y=11 width=4 height=8 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=103 x=84 y=31 width=5 height=8 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=104 x=90 y=31 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=105 x=134 y=31 width=1 height=8 xoffset=0 yoffset=3 xadvance=2 page=0 chnl=15
+char id=106 x=51 y=12 width=2 height=10 xoffset=-1 yoffset=3 xadvance=2 page=0 chnl=15
+char id=107 x=102 y=31 width=4 height=8 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=108 x=138 y=31 width=1 height=8 xoffset=0 yoffset=3 xadvance=2 page=0 chnl=15
+char id=109 x=209 y=29 width=7 height=6 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=110 x=36 y=41 width=5 height=6 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=111 x=30 y=41 width=5 height=6 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=112 x=165 y=21 width=5 height=8 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=113 x=171 y=21 width=5 height=8 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=114 x=48 y=41 width=3 height=6 xoffset=0 yoffset=5 xadvance=4 page=0 chnl=15
+char id=115 x=24 y=41 width=5 height=6 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=116 x=116 y=31 width=3 height=8 xoffset=-1 yoffset=3 xadvance=3 page=0 chnl=15
+char id=117 x=12 y=41 width=5 height=6 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=118 x=217 y=29 width=6 height=6 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=119 x=169 y=30 width=10 height=6 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+char id=120 x=0 y=42 width=5 height=6 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=121 x=137 y=22 width=6 height=8 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=122 x=248 y=29 width=5 height=6 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=123 x=41 y=12 width=3 height=10 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=124 x=254 y=0 width=1 height=10 xoffset=0 yoffset=3 xadvance=2 page=0 chnl=15
+char id=125 x=24 y=12 width=4 height=10 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=126 x=120 y=40 width=5 height=4 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=160 x=219 y=36 width=1 height=1 xoffset=0 yoffset=0 xadvance=3 page=0 chnl=15
+char id=161 x=142 y=31 width=1 height=8 xoffset=0 yoffset=5 xadvance=2 page=0 chnl=15
+char id=162 x=0 y=0 width=5 height=12 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=163 x=177 y=20 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=165 x=183 y=20 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=167 x=0 y=13 width=5 height=10 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=168 x=196 y=36 width=3 height=2 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=169 x=9 y=23 width=8 height=8 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=170 x=104 y=40 width=3 height=5 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=171 x=83 y=40 width=5 height=5 xoffset=0 yoffset=6 xadvance=6 page=0 chnl=15
+char id=172 x=108 y=40 width=5 height=4 xoffset=0 yoffset=6 xadvance=6 page=0 chnl=15
+char id=174 x=0 y=24 width=8 height=8 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=176 x=134 y=40 width=3 height=4 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=177 x=151 y=31 width=5 height=7 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=180 x=152 y=39 width=3 height=3 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=181 x=195 y=20 width=5 height=8 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=182 x=219 y=0 width=6 height=10 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=183 x=204 y=36 width=2 height=2 xoffset=0 yoffset=7 xadvance=4 page=0 chnl=15
+char id=186 x=95 y=40 width=4 height=5 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=187 x=89 y=40 width=5 height=5 xoffset=0 yoffset=6 xadvance=6 page=0 chnl=15
+char id=191 x=201 y=20 width=5 height=8 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=192 x=36 y=0 width=9 height=11 xoffset=-1 yoffset=0 xadvance=8 page=0 chnl=15
+char id=193 x=26 y=0 width=9 height=11 xoffset=-1 yoffset=0 xadvance=8 page=0 chnl=15
+char id=194 x=16 y=0 width=9 height=11 xoffset=-1 yoffset=0 xadvance=8 page=0 chnl=15
+char id=195 x=6 y=0 width=9 height=11 xoffset=-1 yoffset=0 xadvance=8 page=0 chnl=15
+char id=196 x=165 y=0 width=9 height=10 xoffset=-1 yoffset=1 xadvance=8 page=0 chnl=15
+char id=197 x=175 y=0 width=9 height=10 xoffset=-1 yoffset=1 xadvance=8 page=0 chnl=15
+char id=198 x=176 y=11 width=11 height=8 xoffset=-1 yoffset=3 xadvance=11 page=0 chnl=15
+char id=199 x=78 y=0 width=6 height=11 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=200 x=138 y=0 width=5 height=11 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
+char id=201 x=126 y=0 width=5 height=11 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
+char id=202 x=120 y=0 width=5 height=11 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
+char id=203 x=12 y=12 width=5 height=10 xoffset=0 yoffset=1 xadvance=6 page=0 chnl=15
+char id=204 x=148 y=0 width=2 height=11 xoffset=-1 yoffset=0 xadvance=2 page=0 chnl=15
+char id=205 x=151 y=0 width=2 height=11 xoffset=0 yoffset=0 xadvance=2 page=0 chnl=15
+char id=206 x=132 y=0 width=5 height=11 xoffset=-2 yoffset=0 xadvance=2 page=0 chnl=15
+char id=207 x=37 y=12 width=3 height=10 xoffset=-1 yoffset=1 xadvance=2 page=0 chnl=15
+char id=209 x=92 y=0 width=6 height=11 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15
+char id=210 x=54 y=0 width=7 height=11 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
+char id=211 x=70 y=0 width=7 height=11 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
+char id=212 x=62 y=0 width=7 height=11 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
+char id=213 x=46 y=0 width=7 height=11 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
+char id=214 x=211 y=0 width=7 height=10 xoffset=0 yoffset=1 xadvance=8 page=0 chnl=15
+char id=216 x=203 y=0 width=7 height=10 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15
+char id=217 x=106 y=0 width=6 height=11 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15
+char id=218 x=99 y=0 width=6 height=11 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15
+char id=219 x=85 y=0 width=6 height=11 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15
+char id=220 x=226 y=0 width=6 height=10 xoffset=0 yoffset=1 xadvance=7 page=0 chnl=15
+char id=223 x=67 y=22 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=224 x=164 y=11 width=5 height=9 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=225 x=158 y=11 width=5 height=9 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=226 x=152 y=12 width=5 height=9 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=227 x=146 y=12 width=5 height=9 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=228 x=207 y=20 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=229 x=6 y=12 width=5 height=10 xoffset=0 yoffset=1 xadvance=6 page=0 chnl=15
+char id=230 x=190 y=29 width=9 height=6 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+char id=231 x=140 y=12 width=5 height=9 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=232 x=62 y=12 width=5 height=9 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=233 x=134 y=12 width=5 height=9 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=234 x=128 y=12 width=5 height=9 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=235 x=213 y=20 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=236 x=170 y=11 width=2 height=9 xoffset=-1 yoffset=2 xadvance=2 page=0 chnl=15
+char id=237 x=173 y=11 width=2 height=9 xoffset=0 yoffset=2 xadvance=2 page=0 chnl=15
+char id=238 x=74 y=12 width=5 height=9 xoffset=-1 yoffset=2 xadvance=2 page=0 chnl=15
+char id=239 x=124 y=31 width=3 height=8 xoffset=-1 yoffset=3 xadvance=2 page=0 chnl=15
+char id=241 x=80 y=12 width=5 height=9 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=242 x=86 y=12 width=5 height=9 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=243 x=92 y=12 width=5 height=9 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=244 x=98 y=12 width=5 height=9 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=245 x=104 y=12 width=5 height=9 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=246 x=249 y=20 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=247 x=242 y=29 width=5 height=6 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=248 x=144 y=31 width=6 height=7 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=15
+char id=249 x=110 y=12 width=5 height=9 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=250 x=68 y=12 width=5 height=9 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=251 x=116 y=12 width=5 height=9 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=252 x=18 y=32 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=255 x=233 y=0 width=6 height=10 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=338 x=200 y=11 width=10 height=8 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=15
+char id=339 x=180 y=29 width=9 height=6 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+char id=376 x=194 y=0 width=8 height=10 xoffset=0 yoffset=1 xadvance=8 page=0 chnl=15
+char id=402 x=240 y=0 width=6 height=10 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=916 x=221 y=11 width=9 height=8 xoffset=-1 yoffset=3 xadvance=8 page=0 chnl=15
+char id=937 x=51 y=23 width=7 height=8 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=960 x=200 y=29 width=8 height=6 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=8211 x=181 y=36 width=7 height=2 xoffset=-1 yoffset=8 xadvance=6 page=0 chnl=15
+char id=8212 x=168 y=38 width=12 height=2 xoffset=-1 yoffset=8 xadvance=11 page=0 chnl=15
+char id=8216 x=148 y=39 width=1 height=4 xoffset=0 yoffset=3 xadvance=2 page=0 chnl=15
+char id=8217 x=150 y=39 width=1 height=4 xoffset=0 yoffset=3 xadvance=2 page=0 chnl=15
+char id=8218 x=166 y=38 width=1 height=3 xoffset=0 yoffset=10 xadvance=2 page=0 chnl=15
+char id=8220 x=142 y=40 width=3 height=4 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=8221 x=138 y=40 width=3 height=4 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=8222 x=156 y=39 width=3 height=3 xoffset=0 yoffset=10 xadvance=4 page=0 chnl=15
+char id=8224 x=18 y=12 width=5 height=10 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=8226 x=126 y=40 width=3 height=4 xoffset=0 yoffset=5 xadvance=4 page=0 chnl=15
+char id=8230 x=207 y=36 width=8 height=1 xoffset=0 yoffset=10 xadvance=11 page=0 chnl=15
+char id=8482 x=52 y=41 width=9 height=5 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=15
+char id=8706 x=60 y=31 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=8719 x=185 y=0 width=8 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=8721 x=247 y=0 width=6 height=10 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=8730 x=113 y=0 width=6 height=11 xoffset=0 yoffset=1 xadvance=7 page=0 chnl=15
+char id=8734 x=62 y=40 width=7 height=5 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=8747 x=144 y=0 width=3 height=11 xoffset=0 yoffset=1 xadvance=3 page=0 chnl=15
+char id=8776 x=70 y=40 width=6 height=5 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=8800 x=158 y=21 width=6 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=8804 x=163 y=30 width=5 height=7 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=8805 x=157 y=31 width=5 height=7 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=9674 x=96 y=31 width=5 height=8 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+kernings count=61
+kerning first=32 second=65 amount=-1
+kerning first=916 second=32 amount=-1
+kerning first=121 second=46 amount=-1
+kerning first=121 second=44 amount=-1
+kerning first=119 second=46 amount=-1
+kerning first=32 second=916 amount=-1
+kerning first=119 second=44 amount=-1
+kerning first=118 second=46 amount=-1
+kerning first=118 second=44 amount=-1
+kerning first=114 second=46 amount=-1
+kerning first=49 second=49 amount=-1
+kerning first=65 second=32 amount=-1
+kerning first=65 second=84 amount=-1
+kerning first=65 second=86 amount=-1
+kerning first=114 second=44 amount=-1
+kerning first=65 second=89 amount=-1
+kerning first=89 second=118 amount=-1
+kerning first=89 second=117 amount=-1
+kerning first=89 second=113 amount=-1
+kerning first=65 second=8217 amount=-1
+kerning first=70 second=44 amount=-1
+kerning first=70 second=46 amount=-1
+kerning first=70 second=65 amount=-1
+kerning first=89 second=112 amount=-1
+kerning first=76 second=84 amount=-1
+kerning first=76 second=86 amount=-1
+kerning first=76 second=87 amount=-1
+kerning first=76 second=89 amount=-1
+kerning first=89 second=111 amount=-1
+kerning first=76 second=8217 amount=-1
+kerning first=89 second=101 amount=-1
+kerning first=80 second=44 amount=-2
+kerning first=80 second=46 amount=-2
+kerning first=80 second=65 amount=-1
+kerning first=89 second=97 amount=-1
+kerning first=89 second=65 amount=-1
+kerning first=89 second=58 amount=-1
+kerning first=89 second=46 amount=-2
+kerning first=89 second=45 amount=-1
+kerning first=84 second=44 amount=-1
+kerning first=84 second=45 amount=-1
+kerning first=84 second=46 amount=-1
+kerning first=84 second=58 amount=-1
+kerning first=89 second=44 amount=-2
+kerning first=84 second=65 amount=-1
+kerning first=87 second=46 amount=-1
+kerning first=84 second=97 amount=-1
+kerning first=84 second=99 amount=-1
+kerning first=84 second=101 amount=-1
+kerning first=87 second=44 amount=-1
+kerning first=84 second=111 amount=-1
+kerning first=86 second=111 amount=-1
+kerning first=84 second=115 amount=-1
+kerning first=86 second=101 amount=-1
+kerning first=84 second=119 amount=-1
+kerning first=84 second=121 amount=-1
+kerning first=86 second=44 amount=-1
+kerning first=86 second=45 amount=-1
+kerning first=86 second=46 amount=-1
+kerning first=86 second=97 amount=-1
+kerning first=86 second=65 amount=-1
diff --git a/data/font/Arial14_0.png b/data/font/Arial14_0.png
new file mode 100644
index 00000000..e15a740e
Binary files /dev/null and b/data/font/Arial14_0.png differ
diff --git a/data/font/ArialBold14px.fnt b/data/font/ArialBold14px.fnt
new file mode 100644
index 00000000..38ed1c1c
--- /dev/null
+++ b/data/font/ArialBold14px.fnt
@@ -0,0 +1,270 @@
+info face="Arial" size=14 bold=1 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
+common lineHeight=14 base=11 scaleW=256 scaleH=256 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4
+page id=0 file="ArialBold14px_0.png"
+chars count=203
+char id=32 x=254 y=2 width=1 height=1 xoffset=0 yoffset=0 xadvance=3 page=0 chnl=15
+char id=33 x=208 y=29 width=2 height=8 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=34 x=215 y=38 width=5 height=4 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=35 x=7 y=32 width=6 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=36 x=7 y=12 width=5 height=10 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=37 x=46 y=23 width=8 height=8 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=38 x=111 y=22 width=7 height=8 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=39 x=231 y=37 width=2 height=4 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=40 x=56 y=12 width=3 height=10 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=41 x=52 y=12 width=3 height=10 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=42 x=193 y=39 width=3 height=5 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=43 x=88 y=40 width=5 height=6 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=44 x=237 y=37 width=2 height=4 xoffset=0 yoffset=9 xadvance=3 page=0 chnl=15
+char id=45 x=46 y=48 width=3 height=2 xoffset=0 yoffset=8 xadvance=4 page=0 chnl=15
+char id=46 x=50 y=48 width=2 height=2 xoffset=0 yoffset=9 xadvance=3 page=0 chnl=15
+char id=47 x=204 y=29 width=3 height=8 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=48 x=89 y=31 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=49 x=190 y=30 width=4 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=50 x=95 y=31 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=51 x=101 y=31 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=52 x=239 y=20 width=6 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=53 x=107 y=31 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=54 x=113 y=31 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=55 x=119 y=31 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=56 x=125 y=31 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=57 x=161 y=30 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=58 x=252 y=29 width=2 height=6 xoffset=0 yoffset=5 xadvance=3 page=0 chnl=15
+char id=59 x=214 y=29 width=2 height=8 xoffset=0 yoffset=5 xadvance=3 page=0 chnl=15
+char id=60 x=229 y=29 width=5 height=7 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=61 x=209 y=38 width=5 height=4 xoffset=0 yoffset=6 xadvance=6 page=0 chnl=15
+char id=62 x=223 y=29 width=5 height=7 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=63 x=197 y=21 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=64 x=160 y=0 width=10 height=10 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=15
+char id=65 x=0 y=23 width=9 height=8 xoffset=-1 yoffset=3 xadvance=8 page=0 chnl=15
+char id=66 x=190 y=21 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=67 x=63 y=23 width=7 height=8 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=68 x=162 y=21 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=69 x=131 y=31 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=70 x=137 y=31 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=71 x=71 y=23 width=7 height=8 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=72 x=141 y=22 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=73 x=211 y=29 width=2 height=8 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=74 x=143 y=31 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=75 x=79 y=22 width=7 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=76 x=63 y=32 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=77 x=237 y=11 width=9 height=8 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=78 x=56 y=32 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=79 x=87 y=22 width=7 height=8 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=80 x=49 y=32 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=81 x=75 y=12 width=7 height=9 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=82 x=103 y=22 width=7 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=83 x=42 y=32 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=84 x=35 y=32 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=85 x=28 y=32 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=86 x=95 y=22 width=7 height=8 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=87 x=202 y=11 width=11 height=8 xoffset=-1 yoffset=3 xadvance=10 page=0 chnl=15
+char id=88 x=247 y=11 width=8 height=8 xoffset=-1 yoffset=3 xadvance=7 page=0 chnl=15
+char id=89 x=28 y=23 width=8 height=8 xoffset=-1 yoffset=3 xadvance=7 page=0 chnl=15
+char id=90 x=225 y=20 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=91 x=60 y=12 width=3 height=10 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=92 x=200 y=30 width=3 height=8 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=93 x=64 y=12 width=3 height=10 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=94 x=168 y=39 width=5 height=5 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=95 x=34 y=48 width=6 height=2 xoffset=0 yoffset=11 xadvance=6 page=0 chnl=15
+char id=96 x=0 y=48 width=3 height=3 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=97 x=112 y=40 width=5 height=6 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=98 x=134 y=22 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=99 x=94 y=40 width=5 height=6 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=100 x=155 y=21 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=101 x=53 y=41 width=6 height=6 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=102 x=149 y=31 width=5 height=8 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=15
+char id=103 x=176 y=21 width=6 height=8 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=104 x=183 y=21 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=105 x=220 y=29 width=2 height=8 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=106 x=68 y=12 width=3 height=10 xoffset=-1 yoffset=3 xadvance=3 page=0 chnl=15
+char id=107 x=204 y=20 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=108 x=253 y=20 width=2 height=8 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=109 x=241 y=29 width=10 height=6 xoffset=0 yoffset=5 xadvance=11 page=0 chnl=15
+char id=110 x=67 y=41 width=6 height=6 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=111 x=60 y=41 width=6 height=6 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=112 x=14 y=32 width=6 height=8 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=113 x=21 y=32 width=6 height=8 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=114 x=118 y=40 width=4 height=6 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=15
+char id=115 x=74 y=41 width=6 height=6 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=116 x=155 y=30 width=5 height=8 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=15
+char id=117 x=81 y=41 width=6 height=6 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=118 x=29 y=41 width=7 height=6 xoffset=-1 yoffset=5 xadvance=6 page=0 chnl=15
+char id=119 x=10 y=41 width=9 height=6 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+char id=120 x=45 y=41 width=7 height=6 xoffset=-1 yoffset=5 xadvance=6 page=0 chnl=15
+char id=121 x=119 y=22 width=7 height=8 xoffset=-1 yoffset=5 xadvance=6 page=0 chnl=15
+char id=122 x=100 y=40 width=5 height=6 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=123 x=42 y=12 width=4 height=10 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=15
+char id=124 x=72 y=12 width=2 height=10 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=125 x=37 y=12 width=4 height=10 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=126 x=240 y=37 width=5 height=3 xoffset=0 yoffset=6 xadvance=6 page=0 chnl=15
+char id=160 x=254 y=0 width=1 height=1 xoffset=0 yoffset=0 xadvance=3 page=0 chnl=15
+char id=161 x=217 y=29 width=2 height=8 xoffset=0 yoffset=5 xadvance=3 page=0 chnl=15
+char id=162 x=19 y=12 width=5 height=10 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=163 x=127 y=22 width=6 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=165 x=169 y=21 width=6 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=167 x=31 y=12 width=5 height=10 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=168 x=41 y=48 width=4 height=2 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=169 x=10 y=23 width=8 height=8 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=170 x=185 y=39 width=3 height=5 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=171 x=149 y=40 width=6 height=5 xoffset=-1 yoffset=6 xadvance=6 page=0 chnl=15
+char id=172 x=221 y=38 width=5 height=4 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=174 x=19 y=23 width=8 height=8 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=176 x=180 y=39 width=4 height=5 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=177 x=235 y=29 width=5 height=7 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=180 x=246 y=36 width=4 height=3 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=181 x=77 y=32 width=5 height=8 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=182 x=0 y=12 width=6 height=10 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=183 x=251 y=36 width=3 height=3 xoffset=0 yoffset=6 xadvance=4 page=0 chnl=15
+char id=186 x=189 y=39 width=3 height=5 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=187 x=142 y=40 width=6 height=5 xoffset=0 yoffset=6 xadvance=6 page=0 chnl=15
+char id=191 x=0 y=32 width=6 height=8 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=192 x=0 y=0 width=9 height=11 xoffset=-1 yoffset=0 xadvance=8 page=0 chnl=15
+char id=193 x=10 y=0 width=9 height=11 xoffset=-1 yoffset=0 xadvance=8 page=0 chnl=15
+char id=194 x=20 y=0 width=9 height=11 xoffset=-1 yoffset=0 xadvance=8 page=0 chnl=15
+char id=195 x=30 y=0 width=9 height=11 xoffset=-1 yoffset=0 xadvance=8 page=0 chnl=15
+char id=196 x=181 y=0 width=9 height=10 xoffset=-1 yoffset=1 xadvance=8 page=0 chnl=15
+char id=197 x=171 y=0 width=9 height=10 xoffset=-1 yoffset=1 xadvance=8 page=0 chnl=15
+char id=198 x=214 y=11 width=11 height=8 xoffset=-1 yoffset=3 xadvance=11 page=0 chnl=15
+char id=199 x=40 y=0 width=7 height=11 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=200 x=127 y=0 width=5 height=11 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
+char id=201 x=121 y=0 width=5 height=11 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
+char id=202 x=115 y=0 width=5 height=11 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
+char id=203 x=25 y=12 width=5 height=10 xoffset=0 yoffset=1 xadvance=6 page=0 chnl=15
+char id=204 x=137 y=0 width=3 height=11 xoffset=-1 yoffset=0 xadvance=3 page=0 chnl=15
+char id=205 x=145 y=0 width=3 height=11 xoffset=0 yoffset=0 xadvance=3 page=0 chnl=15
+char id=206 x=141 y=0 width=3 height=11 xoffset=0 yoffset=0 xadvance=3 page=0 chnl=15
+char id=207 x=47 y=12 width=4 height=10 xoffset=-1 yoffset=1 xadvance=3 page=0 chnl=15
+char id=209 x=101 y=0 width=6 height=11 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15
+char id=210 x=56 y=0 width=7 height=11 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
+char id=211 x=64 y=0 width=7 height=11 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
+char id=212 x=48 y=0 width=7 height=11 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
+char id=213 x=72 y=0 width=7 height=11 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
+char id=214 x=225 y=0 width=7 height=10 xoffset=0 yoffset=1 xadvance=8 page=0 chnl=15
+char id=216 x=149 y=0 width=10 height=10 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=15
+char id=217 x=94 y=0 width=6 height=11 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15
+char id=218 x=87 y=0 width=6 height=11 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15
+char id=219 x=108 y=0 width=6 height=11 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15
+char id=220 x=247 y=0 width=6 height=10 xoffset=0 yoffset=1 xadvance=7 page=0 chnl=15
+char id=223 x=232 y=20 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=224 x=172 y=11 width=5 height=9 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=225 x=178 y=11 width=5 height=9 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=226 x=184 y=11 width=5 height=9 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=227 x=166 y=11 width=5 height=9 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=228 x=83 y=31 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=229 x=13 y=12 width=5 height=10 xoffset=0 yoffset=1 xadvance=6 page=0 chnl=15
+char id=230 x=20 y=41 width=8 height=6 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=231 x=160 y=11 width=5 height=9 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=232 x=97 y=12 width=6 height=9 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15
+char id=233 x=104 y=12 width=6 height=9 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15
+char id=234 x=111 y=12 width=6 height=9 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15
+char id=235 x=148 y=22 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=236 x=194 y=11 width=3 height=9 xoffset=-1 yoffset=2 xadvance=3 page=0 chnl=15
+char id=237 x=198 y=11 width=3 height=9 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=15
+char id=238 x=190 y=11 width=3 height=9 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=15
+char id=239 x=195 y=30 width=4 height=8 xoffset=-1 yoffset=3 xadvance=3 page=0 chnl=15
+char id=241 x=118 y=12 width=6 height=9 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15
+char id=242 x=125 y=12 width=6 height=9 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15
+char id=243 x=83 y=12 width=6 height=9 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15
+char id=244 x=132 y=12 width=6 height=9 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15
+char id=245 x=139 y=12 width=6 height=9 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15
+char id=246 x=211 y=20 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=247 x=106 y=40 width=5 height=6 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=248 x=218 y=20 width=6 height=8 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=249 x=90 y=12 width=6 height=9 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15
+char id=250 x=146 y=12 width=6 height=9 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15
+char id=251 x=153 y=11 width=6 height=9 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15
+char id=252 x=246 y=20 width=6 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=255 x=217 y=0 width=7 height=10 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=15
+char id=338 x=226 y=11 width=10 height=8 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=15
+char id=339 x=0 y=41 width=9 height=6 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+char id=376 x=200 y=0 width=8 height=10 xoffset=-1 yoffset=1 xadvance=7 page=0 chnl=15
+char id=402 x=240 y=0 width=6 height=10 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=916 x=55 y=23 width=7 height=8 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=937 x=37 y=23 width=8 height=8 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=960 x=37 y=41 width=7 height=6 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=8211 x=27 y=48 width=6 height=2 xoffset=0 yoffset=8 xadvance=6 page=0 chnl=15
+char id=8212 x=4 y=48 width=11 height=2 xoffset=0 yoffset=8 xadvance=11 page=0 chnl=15
+char id=8216 x=197 y=39 width=2 height=5 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=8217 x=200 y=39 width=2 height=5 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15
+char id=8218 x=234 y=37 width=2 height=4 xoffset=0 yoffset=9 xadvance=3 page=0 chnl=15
+char id=8220 x=156 y=39 width=5 height=5 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=8221 x=174 y=39 width=5 height=5 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=8222 x=203 y=39 width=5 height=4 xoffset=0 yoffset=9 xadvance=6 page=0 chnl=15
+char id=8224 x=233 y=0 width=6 height=10 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=8226 x=227 y=37 width=3 height=4 xoffset=0 yoffset=6 xadvance=4 page=0 chnl=15
+char id=8230 x=16 y=48 width=10 height=2 xoffset=0 yoffset=9 xadvance=11 page=0 chnl=15
+char id=8482 x=123 y=40 width=10 height=5 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=15
+char id=8706 x=185 y=30 width=4 height=8 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=8719 x=191 y=0 width=8 height=10 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=8721 x=209 y=0 width=7 height=10 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=8730 x=80 y=0 width=6 height=11 xoffset=0 yoffset=1 xadvance=6 page=0 chnl=15
+char id=8734 x=134 y=40 width=7 height=5 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=8747 x=133 y=0 width=3 height=11 xoffset=0 yoffset=1 xadvance=3 page=0 chnl=15
+char id=8776 x=162 y=39 width=5 height=5 xoffset=0 yoffset=6 xadvance=6 page=0 chnl=15
+char id=8800 x=70 y=32 width=6 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=8804 x=167 y=30 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=8805 x=173 y=30 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=9674 x=179 y=30 width=5 height=8 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+kernings count=62
+kerning first=8217 second=32 amount=-1
+kerning first=121 second=46 amount=-1
+kerning first=121 second=44 amount=-1
+kerning first=118 second=46 amount=-1
+kerning first=118 second=44 amount=-1
+kerning first=114 second=46 amount=-1
+kerning first=114 second=44 amount=-1
+kerning first=89 second=118 amount=-1
+kerning first=49 second=49 amount=-1
+kerning first=89 second=117 amount=-1
+kerning first=65 second=84 amount=-1
+kerning first=65 second=86 amount=-1
+kerning first=65 second=87 amount=-1
+kerning first=65 second=89 amount=-1
+kerning first=89 second=113 amount=-1
+kerning first=89 second=112 amount=-1
+kerning first=89 second=111 amount=-1
+kerning first=65 second=8217 amount=-1
+kerning first=70 second=44 amount=-1
+kerning first=70 second=46 amount=-1
+kerning first=70 second=65 amount=-1
+kerning first=89 second=101 amount=-1
+kerning first=76 second=84 amount=-1
+kerning first=76 second=86 amount=-1
+kerning first=76 second=87 amount=-1
+kerning first=76 second=89 amount=-1
+kerning first=89 second=97 amount=-1
+kerning first=76 second=8217 amount=-1
+kerning first=89 second=65 amount=-1
+kerning first=80 second=44 amount=-2
+kerning first=80 second=46 amount=-2
+kerning first=80 second=65 amount=-1
+kerning first=89 second=58 amount=-1
+kerning first=89 second=46 amount=-1
+kerning first=89 second=45 amount=-1
+kerning first=84 second=44 amount=-1
+kerning first=84 second=45 amount=-1
+kerning first=84 second=46 amount=-1
+kerning first=84 second=58 amount=-1
+kerning first=89 second=44 amount=-1
+kerning first=84 second=65 amount=-1
+kerning first=87 second=65 amount=-1
+kerning first=84 second=97 amount=-1
+kerning first=84 second=99 amount=-1
+kerning first=84 second=101 amount=-1
+kerning first=87 second=46 amount=-1
+kerning first=84 second=111 amount=-1
+kerning first=84 second=114 amount=-1
+kerning first=84 second=115 amount=-1
+kerning first=84 second=117 amount=-1
+kerning first=84 second=119 amount=-1
+kerning first=84 second=121 amount=-1
+kerning first=86 second=44 amount=-1
+kerning first=86 second=45 amount=-1
+kerning first=86 second=46 amount=-1
+kerning first=86 second=58 amount=-1
+kerning first=87 second=44 amount=-1
+kerning first=86 second=65 amount=-1
+kerning first=86 second=97 amount=-1
+kerning first=86 second=101 amount=-1
+kerning first=86 second=114 amount=-1
+kerning first=86 second=111 amount=-1
diff --git a/data/font/ArialBold14px_0.png b/data/font/ArialBold14px_0.png
new file mode 100644
index 00000000..c229914e
Binary files /dev/null and b/data/font/ArialBold14px_0.png differ
diff --git a/data/font/DomCasual24px.fnt b/data/font/DomCasual24px.fnt
new file mode 100644
index 00000000..e0a8d85b
--- /dev/null
+++ b/data/font/DomCasual24px.fnt
@@ -0,0 +1,664 @@
+info face="DomCasualD" size=24 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
+common lineHeight=24 base=18 scaleW=256 scaleH=256 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4
+page id=0 file="DomCasual24px_0.png"
+chars count=182
+char id=32 x=22 y=55 width=1 height=1 xoffset=0 yoffset=0 xadvance=5 page=0 chnl=15
+char id=33 x=38 y=55 width=5 height=15 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=34 x=211 y=80 width=5 height=5 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=35 x=155 y=68 width=9 height=12 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=36 x=206 y=0 width=9 height=18 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15
+char id=37 x=84 y=37 width=12 height=15 xoffset=0 yoffset=4 xadvance=12 page=0 chnl=15
+char id=38 x=71 y=38 width=12 height=15 xoffset=0 yoffset=4 xadvance=12 page=0 chnl=15
+char id=39 x=217 y=80 width=3 height=5 xoffset=0 yoffset=5 xadvance=3 page=0 chnl=15
+char id=40 x=15 y=40 width=6 height=16 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=41 x=22 y=38 width=6 height=16 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=42 x=152 y=82 width=7 height=7 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=15
+char id=43 x=72 y=83 width=9 height=9 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=15
+char id=44 x=206 y=80 width=4 height=6 xoffset=0 yoffset=14 xadvance=4 page=0 chnl=15
+char id=45 x=252 y=78 width=3 height=3 xoffset=0 yoffset=12 xadvance=3 page=0 chnl=15
+char id=46 x=12 y=98 width=4 height=4 xoffset=0 yoffset=15 xadvance=4 page=0 chnl=15
+char id=47 x=51 y=20 width=6 height=17 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=48 x=132 y=53 width=9 height=14 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+char id=49 x=139 y=68 width=5 height=13 xoffset=2 yoffset=5 xadvance=10 page=0 chnl=15
+char id=50 x=23 y=73 width=9 height=13 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+char id=51 x=142 y=53 width=9 height=14 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+char id=52 x=181 y=37 width=9 height=15 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+char id=53 x=152 y=53 width=9 height=14 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+char id=54 x=102 y=53 width=9 height=14 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=55 x=162 y=53 width=9 height=14 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+char id=56 x=191 y=37 width=9 height=15 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=57 x=172 y=53 width=9 height=14 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+char id=58 x=67 y=83 width=4 height=10 xoffset=0 yoffset=9 xadvance=4 page=0 chnl=15
+char id=59 x=237 y=67 width=4 height=11 xoffset=0 yoffset=9 xadvance=4 page=0 chnl=15
+char id=60 x=219 y=68 width=9 height=11 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=15
+char id=61 x=186 y=80 width=9 height=6 xoffset=0 yoffset=9 xadvance=10 page=0 chnl=15
+char id=62 x=209 y=68 width=9 height=11 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=15
+char id=63 x=210 y=37 width=8 height=15 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=64 x=0 y=73 width=12 height=13 xoffset=0 yoffset=5 xadvance=13 page=0 chnl=15
+char id=65 x=119 y=37 width=10 height=15 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=66 x=81 y=54 width=10 height=14 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=15
+char id=67 x=142 y=20 width=10 height=16 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=68 x=164 y=20 width=9 height=16 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=69 x=92 y=53 width=9 height=14 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=15
+char id=70 x=201 y=37 width=8 height=15 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=71 x=108 y=37 width=10 height=15 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=72 x=174 y=20 width=9 height=16 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=73 x=36 y=38 width=4 height=16 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=74 x=29 y=38 width=6 height=16 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=75 x=153 y=20 width=10 height=16 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=76 x=219 y=36 width=8 height=15 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=15
+char id=77 x=119 y=20 width=11 height=16 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=15
+char id=78 x=194 y=20 width=9 height=16 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=79 x=97 y=37 width=10 height=15 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=15
+char id=80 x=243 y=19 width=8 height=16 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=81 x=107 y=20 width=11 height=16 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=15
+char id=82 x=130 y=37 width=10 height=15 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=83 x=141 y=37 width=9 height=15 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=15
+char id=84 x=151 y=37 width=9 height=15 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=15
+char id=85 x=161 y=37 width=9 height=15 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=86 x=204 y=20 width=9 height=16 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=87 x=57 y=38 width=13 height=15 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=88 x=184 y=20 width=9 height=16 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=15
+char id=89 x=214 y=19 width=9 height=16 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=90 x=171 y=37 width=9 height=15 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=15
+char id=91 x=72 y=20 width=6 height=17 xoffset=1 yoffset=4 xadvance=8 page=0 chnl=15
+char id=92 x=65 y=20 width=6 height=17 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=93 x=58 y=20 width=6 height=17 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=15
+char id=94 x=141 y=82 width=10 height=7 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+char id=95 x=33 y=98 width=10 height=3 xoffset=0 yoffset=18 xadvance=10 page=0 chnl=15
+char id=96 x=0 y=98 width=5 height=4 xoffset=1 yoffset=5 xadvance=10 page=0 chnl=15
+char id=97 x=229 y=67 width=7 height=11 xoffset=0 yoffset=8 xadvance=7 page=0 chnl=15
+char id=98 x=0 y=57 width=7 height=15 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=99 x=46 y=85 width=6 height=10 xoffset=0 yoffset=9 xadvance=6 page=0 chnl=15
+char id=100 x=236 y=36 width=7 height=15 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=101 x=39 y=85 width=6 height=10 xoffset=0 yoffset=8 xadvance=7 page=0 chnl=15
+char id=102 x=8 y=40 width=6 height=16 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=103 x=24 y=55 width=6 height=15 xoffset=0 yoffset=8 xadvance=7 page=0 chnl=15
+char id=104 x=0 y=40 width=7 height=16 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=105 x=245 y=52 width=3 height=14 xoffset=0 yoffset=4 xadvance=4 page=0 chnl=15
+char id=106 x=17 y=20 width=4 height=18 xoffset=0 yoffset=4 xadvance=4 page=0 chnl=15
+char id=107 x=228 y=36 width=7 height=15 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=108 x=252 y=36 width=3 height=15 xoffset=0 yoffset=4 xadvance=4 page=0 chnl=15
+char id=109 x=12 y=87 width=10 height=10 xoffset=0 yoffset=9 xadvance=11 page=0 chnl=15
+char id=110 x=23 y=87 width=7 height=10 xoffset=0 yoffset=9 xadvance=7 page=0 chnl=15
+char id=111 x=121 y=82 width=6 height=9 xoffset=0 yoffset=9 xadvance=7 page=0 chnl=15
+char id=112 x=244 y=36 width=7 height=15 xoffset=0 yoffset=8 xadvance=7 page=0 chnl=15
+char id=113 x=238 y=52 width=6 height=14 xoffset=0 yoffset=9 xadvance=7 page=0 chnl=15
+char id=114 x=128 y=82 width=5 height=9 xoffset=0 yoffset=9 xadvance=5 page=0 chnl=15
+char id=115 x=53 y=83 width=6 height=10 xoffset=0 yoffset=9 xadvance=6 page=0 chnl=15
+char id=116 x=172 y=68 width=5 height=12 xoffset=0 yoffset=6 xadvance=4 page=0 chnl=15
+char id=117 x=107 y=82 width=6 height=9 xoffset=0 yoffset=9 xadvance=7 page=0 chnl=15
+char id=118 x=60 y=83 width=6 height=10 xoffset=0 yoffset=8 xadvance=6 page=0 chnl=15
+char id=119 x=189 y=68 width=9 height=11 xoffset=0 yoffset=8 xadvance=9 page=0 chnl=15
+char id=120 x=165 y=68 width=6 height=12 xoffset=0 yoffset=8 xadvance=7 page=0 chnl=15
+char id=121 x=31 y=55 width=6 height=15 xoffset=0 yoffset=8 xadvance=7 page=0 chnl=15
+char id=122 x=100 y=82 width=6 height=9 xoffset=0 yoffset=9 xadvance=6 page=0 chnl=15
+char id=123 x=42 y=20 width=8 height=17 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=15
+char id=124 x=252 y=19 width=3 height=16 xoffset=3 yoffset=5 xadvance=10 page=0 chnl=15
+char id=125 x=33 y=20 width=8 height=17 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=15
+char id=126 x=234 y=79 width=11 height=4 xoffset=1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=161 x=44 y=54 width=4 height=15 xoffset=0 yoffset=9 xadvance=5 page=0 chnl=15
+char id=162 x=198 y=53 width=7 height=14 xoffset=1 yoffset=4 xadvance=10 page=0 chnl=15
+char id=163 x=112 y=53 width=9 height=14 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=165 x=122 y=53 width=9 height=14 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+char id=167 x=224 y=19 width=9 height=16 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=168 x=6 y=98 width=5 height=4 xoffset=2 yoffset=5 xadvance=10 page=0 chnl=15
+char id=169 x=49 y=54 width=15 height=14 xoffset=0 yoffset=4 xadvance=15 page=0 chnl=15
+char id=170 x=114 y=82 width=6 height=9 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=171 x=91 y=83 width=8 height=9 xoffset=0 yoffset=9 xadvance=8 page=0 chnl=15
+char id=172 x=196 y=80 width=9 height=6 xoffset=0 yoffset=12 xadvance=10 page=0 chnl=15
+char id=174 x=65 y=54 width=15 height=14 xoffset=0 yoffset=4 xadvance=15 page=0 chnl=15
+char id=177 x=199 y=68 width=9 height=11 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=15
+char id=180 x=246 y=78 width=5 height=4 xoffset=3 yoffset=5 xadvance=10 page=0 chnl=15
+char id=181 x=13 y=73 width=9 height=13 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=15
+char id=182 x=95 y=20 width=11 height=16 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=15
+char id=183 x=17 y=98 width=4 height=4 xoffset=0 yoffset=12 xadvance=4 page=0 chnl=15
+char id=186 x=134 y=82 width=6 height=8 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=187 x=82 y=83 width=8 height=9 xoffset=0 yoffset=9 xadvance=8 page=0 chnl=15
+char id=191 x=234 y=19 width=8 height=16 xoffset=0 yoffset=8 xadvance=9 page=0 chnl=15
+char id=192 x=77 y=0 width=10 height=19 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
+char id=193 x=99 y=0 width=10 height=19 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
+char id=194 x=110 y=0 width=10 height=19 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
+char id=195 x=11 y=0 width=10 height=19 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
+char id=196 x=55 y=0 width=10 height=19 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
+char id=197 x=66 y=0 width=10 height=19 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
+char id=198 x=41 y=38 width=15 height=15 xoffset=0 yoffset=4 xadvance=16 page=0 chnl=15
+char id=199 x=0 y=0 width=10 height=20 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=200 x=226 y=0 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
+char id=201 x=236 y=0 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
+char id=202 x=246 y=0 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
+char id=203 x=0 y=21 width=9 height=18 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
+char id=204 x=195 y=0 width=5 height=19 xoffset=-1 yoffset=0 xadvance=5 page=0 chnl=15
+char id=205 x=189 y=0 width=5 height=19 xoffset=0 yoffset=0 xadvance=5 page=0 chnl=15
+char id=206 x=182 y=0 width=6 height=19 xoffset=-1 yoffset=0 xadvance=5 page=0 chnl=15
+char id=207 x=201 y=0 width=4 height=19 xoffset=0 yoffset=0 xadvance=5 page=0 chnl=15
+char id=209 x=152 y=0 width=9 height=19 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
+char id=210 x=44 y=0 width=10 height=19 xoffset=0 yoffset=0 xadvance=11 page=0 chnl=15
+char id=211 x=121 y=0 width=10 height=19 xoffset=0 yoffset=0 xadvance=11 page=0 chnl=15
+char id=212 x=88 y=0 width=10 height=19 xoffset=0 yoffset=0 xadvance=11 page=0 chnl=15
+char id=213 x=33 y=0 width=10 height=19 xoffset=0 yoffset=0 xadvance=11 page=0 chnl=15
+char id=214 x=22 y=0 width=10 height=19 xoffset=0 yoffset=0 xadvance=11 page=0 chnl=15
+char id=216 x=131 y=20 width=10 height=16 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=15
+char id=217 x=132 y=0 width=9 height=19 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
+char id=218 x=172 y=0 width=9 height=19 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
+char id=219 x=142 y=0 width=9 height=19 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
+char id=220 x=162 y=0 width=9 height=19 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
+char id=223 x=16 y=57 width=7 height=15 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=224 x=182 y=53 width=7 height=14 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=225 x=190 y=53 width=7 height=14 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=226 x=206 y=53 width=7 height=14 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=227 x=214 y=53 width=7 height=14 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=228 x=230 y=52 width=7 height=14 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=229 x=8 y=57 width=7 height=15 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=230 x=178 y=68 width=10 height=11 xoffset=0 yoffset=8 xadvance=11 page=0 chnl=15
+char id=231 x=98 y=68 width=6 height=13 xoffset=0 yoffset=9 xadvance=6 page=0 chnl=15
+char id=232 x=91 y=69 width=6 height=13 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=233 x=84 y=69 width=6 height=13 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=234 x=77 y=69 width=6 height=13 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=235 x=70 y=69 width=6 height=13 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=236 x=145 y=68 width=4 height=13 xoffset=-1 yoffset=5 xadvance=4 page=0 chnl=15
+char id=237 x=133 y=68 width=5 height=13 xoffset=0 yoffset=5 xadvance=4 page=0 chnl=15
+char id=238 x=126 y=68 width=6 height=13 xoffset=-1 yoffset=5 xadvance=4 page=0 chnl=15
+char id=239 x=150 y=68 width=4 height=13 xoffset=0 yoffset=5 xadvance=4 page=0 chnl=15
+char id=241 x=222 y=52 width=7 height=14 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=242 x=105 y=68 width=6 height=13 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=243 x=112 y=68 width=6 height=13 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=244 x=119 y=68 width=6 height=13 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=245 x=63 y=69 width=6 height=13 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=246 x=56 y=69 width=6 height=13 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=248 x=31 y=87 width=7 height=10 xoffset=0 yoffset=9 xadvance=7 page=0 chnl=15
+char id=249 x=49 y=69 width=6 height=13 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=250 x=41 y=71 width=7 height=13 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=251 x=33 y=71 width=7 height=13 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=252 x=249 y=52 width=6 height=13 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=255 x=10 y=21 width=6 height=18 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=338 x=79 y=20 width=15 height=16 xoffset=0 yoffset=3 xadvance=15 page=0 chnl=15
+char id=339 x=0 y=87 width=11 height=10 xoffset=0 yoffset=9 xadvance=12 page=0 chnl=15
+char id=402 x=22 y=20 width=10 height=17 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=8211 x=44 y=96 width=7 height=3 xoffset=1 yoffset=12 xadvance=10 page=0 chnl=15
+char id=8212 x=22 y=98 width=10 height=3 xoffset=0 yoffset=12 xadvance=10 page=0 chnl=15
+char id=8216 x=176 y=81 width=4 height=7 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=15
+char id=8217 x=181 y=80 width=4 height=7 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=15
+char id=8220 x=160 y=81 width=7 height=7 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=15
+char id=8221 x=168 y=81 width=7 height=7 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=15
+char id=8224 x=216 y=0 width=9 height=18 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=8230 x=221 y=80 width=12 height=4 xoffset=0 yoffset=15 xadvance=13 page=0 chnl=15
+char id=8482 x=242 y=67 width=12 height=10 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+kernings count=477
+kerning first=44 second=49 amount=-1
+kerning first=193 second=8217 amount=-1
+kerning first=193 second=171 amount=-1
+kerning first=45 second=65 amount=1
+kerning first=193 second=121 amount=-1
+kerning first=193 second=119 amount=-1
+kerning first=45 second=87 amount=1
+kerning first=193 second=118 amount=-1
+kerning first=45 second=196 amount=1
+kerning first=45 second=197 amount=-1
+kerning first=193 second=117 amount=-1
+kerning first=45 second=193 amount=-2
+kerning first=46 second=49 amount=-1
+kerning first=46 second=8221 amount=-1
+kerning first=46 second=8217 amount=-1
+kerning first=48 second=49 amount=-1
+kerning first=193 second=116 amount=-1
+kerning first=48 second=55 amount=-1
+kerning first=49 second=44 amount=-1
+kerning first=49 second=46 amount=-1
+kerning first=49 second=48 amount=-1
+kerning first=49 second=49 amount=-2
+kerning first=49 second=50 amount=-2
+kerning first=49 second=51 amount=-2
+kerning first=49 second=52 amount=-1
+kerning first=49 second=53 amount=-2
+kerning first=49 second=54 amount=-1
+kerning first=49 second=55 amount=-2
+kerning first=49 second=56 amount=-1
+kerning first=49 second=57 amount=-2
+kerning first=50 second=49 amount=-1
+kerning first=50 second=52 amount=-1
+kerning first=50 second=55 amount=-1
+kerning first=51 second=49 amount=-2
+kerning first=193 second=113 amount=-1
+kerning first=51 second=55 amount=-1
+kerning first=52 second=49 amount=-2
+kerning first=193 second=103 amount=-1
+kerning first=52 second=55 amount=-1
+kerning first=53 second=49 amount=-2
+kerning first=193 second=101 amount=-1
+kerning first=53 second=55 amount=-1
+kerning first=54 second=49 amount=-2
+kerning first=193 second=100 amount=-1
+kerning first=54 second=55 amount=-1
+kerning first=55 second=44 amount=-2
+kerning first=55 second=46 amount=-2
+kerning first=55 second=49 amount=-2
+kerning first=55 second=50 amount=-1
+kerning first=55 second=51 amount=-1
+kerning first=55 second=52 amount=-2
+kerning first=55 second=53 amount=-1
+kerning first=55 second=54 amount=-1
+kerning first=55 second=55 amount=-1
+kerning first=55 second=56 amount=-1
+kerning first=55 second=58 amount=-1
+kerning first=56 second=49 amount=-2
+kerning first=193 second=99 amount=-1
+kerning first=56 second=55 amount=-1
+kerning first=57 second=49 amount=-1
+kerning first=193 second=98 amount=-1
+kerning first=57 second=55 amount=-1
+kerning first=193 second=97 amount=-1
+kerning first=65 second=45 amount=1
+kerning first=193 second=89 amount=-1
+kerning first=193 second=87 amount=-1
+kerning first=193 second=86 amount=-1
+kerning first=193 second=85 amount=-1
+kerning first=193 second=84 amount=-1
+kerning first=65 second=84 amount=-1
+kerning first=193 second=81 amount=-1
+kerning first=193 second=79 amount=-1
+kerning first=193 second=71 amount=-1
+kerning first=65 second=89 amount=-1
+kerning first=193 second=67 amount=-1
+kerning first=193 second=44 amount=-1
+kerning first=194 second=89 amount=-1
+kerning first=194 second=87 amount=-1
+kerning first=194 second=86 amount=-1
+kerning first=194 second=85 amount=-1
+kerning first=194 second=84 amount=-1
+kerning first=194 second=81 amount=-1
+kerning first=194 second=79 amount=-1
+kerning first=194 second=71 amount=-1
+kerning first=194 second=67 amount=-1
+kerning first=194 second=44 amount=-1
+kerning first=8217 second=193 amount=-3
+kerning first=8217 second=198 amount=-2
+kerning first=8217 second=197 amount=-2
+kerning first=8217 second=196 amount=-1
+kerning first=8217 second=111 amount=-1
+kerning first=8217 second=100 amount=-1
+kerning first=8217 second=65 amount=-1
+kerning first=8217 second=46 amount=-1
+kerning first=8217 second=44 amount=-1
+kerning first=8216 second=193 amount=-3
+kerning first=8216 second=198 amount=-2
+kerning first=8216 second=197 amount=-2
+kerning first=8216 second=196 amount=-1
+kerning first=8216 second=65 amount=-1
+kerning first=8221 second=193 amount=-3
+kerning first=8221 second=198 amount=-2
+kerning first=8221 second=197 amount=-2
+kerning first=8221 second=196 amount=-1
+kerning first=66 second=197 amount=-2
+kerning first=8221 second=65 amount=-1
+kerning first=8220 second=193 amount=-3
+kerning first=8220 second=198 amount=-2
+kerning first=66 second=195 amount=-1
+kerning first=8220 second=197 amount=-2
+kerning first=66 second=194 amount=-1
+kerning first=66 second=193 amount=-2
+kerning first=8220 second=196 amount=-1
+kerning first=8220 second=65 amount=-1
+kerning first=195 second=89 amount=-1
+kerning first=195 second=87 amount=-1
+kerning first=195 second=86 amount=-1
+kerning first=195 second=85 amount=-1
+kerning first=195 second=84 amount=-1
+kerning first=195 second=81 amount=-1
+kerning first=67 second=197 amount=-2
+kerning first=195 second=79 amount=-1
+kerning first=195 second=71 amount=-1
+kerning first=67 second=193 amount=-2
+kerning first=195 second=67 amount=-1
+kerning first=68 second=65 amount=-1
+kerning first=195 second=44 amount=-1
+kerning first=192 second=89 amount=-2
+kerning first=192 second=87 amount=-2
+kerning first=192 second=86 amount=-2
+kerning first=68 second=88 amount=-1
+kerning first=192 second=85 amount=-2
+kerning first=68 second=196 amount=-1
+kerning first=68 second=197 amount=-2
+kerning first=68 second=192 amount=-2
+kerning first=68 second=195 amount=-2
+kerning first=68 second=194 amount=-2
+kerning first=68 second=193 amount=-3
+kerning first=70 second=44 amount=-2
+kerning first=192 second=84 amount=-2
+kerning first=70 second=46 amount=-1
+kerning first=70 second=65 amount=-1
+kerning first=70 second=74 amount=-1
+kerning first=192 second=81 amount=-2
+kerning first=192 second=79 amount=-2
+kerning first=192 second=71 amount=-2
+kerning first=192 second=67 amount=-2
+kerning first=192 second=46 amount=-1
+kerning first=192 second=44 amount=-2
+kerning first=187 second=193 amount=-2
+kerning first=187 second=197 amount=-2
+kerning first=70 second=196 amount=-1
+kerning first=70 second=197 amount=-2
+kerning first=187 second=89 amount=-1
+kerning first=70 second=225 amount=-2
+kerning first=70 second=228 amount=-1
+kerning first=70 second=229 amount=-2
+kerning first=70 second=233 amount=-2
+kerning first=70 second=243 amount=-2
+kerning first=70 second=246 amount=-1
+kerning first=187 second=86 amount=-1
+kerning first=187 second=84 amount=-1
+kerning first=70 second=192 amount=-2
+kerning first=70 second=195 amount=-2
+kerning first=246 second=121 amount=-1
+kerning first=70 second=194 amount=-2
+kerning first=70 second=193 amount=-3
+kerning first=246 second=120 amount=-1
+kerning first=246 second=119 amount=-1
+kerning first=246 second=118 amount=-1
+kerning first=246 second=116 amount=-1
+kerning first=244 second=116 amount=-1
+kerning first=242 second=121 amount=-2
+kerning first=71 second=197 amount=-2
+kerning first=242 second=119 amount=-2
+kerning first=71 second=192 amount=-1
+kerning first=71 second=195 amount=-1
+kerning first=71 second=194 amount=-1
+kerning first=71 second=193 amount=-3
+kerning first=242 second=118 amount=-2
+kerning first=243 second=121 amount=-1
+kerning first=74 second=197 amount=-2
+kerning first=243 second=119 amount=-1
+kerning first=243 second=118 amount=-1
+kerning first=234 second=121 amount=-1
+kerning first=75 second=71 amount=-1
+kerning first=75 second=79 amount=-1
+kerning first=234 second=119 amount=-1
+kerning first=234 second=118 amount=-1
+kerning first=233 second=121 amount=-1
+kerning first=233 second=119 amount=-1
+kerning first=233 second=118 amount=-1
+kerning first=229 second=121 amount=-2
+kerning first=75 second=121 amount=-1
+kerning first=75 second=214 amount=-1
+kerning first=75 second=228 amount=-1
+kerning first=75 second=229 amount=-1
+kerning first=75 second=243 amount=-2
+kerning first=75 second=246 amount=-1
+kerning first=75 second=252 amount=-1
+kerning first=229 second=119 amount=-2
+kerning first=75 second=338 amount=-1
+kerning first=75 second=211 amount=-1
+kerning first=76 second=45 amount=-1
+kerning first=229 second=118 amount=-2
+kerning first=228 second=121 amount=-1
+kerning first=228 second=119 amount=-1
+kerning first=228 second=118 amount=-1
+kerning first=224 second=121 amount=-2
+kerning first=76 second=84 amount=-1
+kerning first=224 second=119 amount=-2
+kerning first=76 second=86 amount=-1
+kerning first=224 second=118 amount=-2
+kerning first=76 second=89 amount=-1
+kerning first=225 second=121 amount=-1
+kerning first=225 second=119 amount=-1
+kerning first=225 second=118 amount=-1
+kerning first=76 second=197 amount=-1
+kerning first=220 second=65 amount=-1
+kerning first=220 second=44 amount=-1
+kerning first=197 second=8217 amount=-2
+kerning first=76 second=252 amount=-1
+kerning first=197 second=8221 amount=-2
+kerning first=197 second=171 amount=-2
+kerning first=76 second=8221 amount=-2
+kerning first=76 second=8217 amount=-2
+kerning first=76 second=193 amount=-2
+kerning first=197 second=121 amount=-1
+kerning first=197 second=119 amount=-1
+kerning first=197 second=118 amount=-1
+kerning first=197 second=117 amount=-1
+kerning first=197 second=116 amount=-1
+kerning first=197 second=113 amount=-1
+kerning first=197 second=111 amount=-1
+kerning first=197 second=103 amount=-1
+kerning first=197 second=101 amount=-1
+kerning first=197 second=100 amount=-1
+kerning first=197 second=99 amount=-1
+kerning first=197 second=98 amount=-1
+kerning first=197 second=97 amount=-1
+kerning first=197 second=89 amount=-2
+kerning first=78 second=197 amount=-2
+kerning first=197 second=87 amount=-2
+kerning first=197 second=86 amount=-2
+kerning first=78 second=225 amount=-2
+kerning first=78 second=228 amount=-1
+kerning first=78 second=229 amount=-1
+kerning first=78 second=233 amount=-2
+kerning first=78 second=243 amount=-2
+kerning first=78 second=246 amount=-1
+kerning first=78 second=252 amount=-1
+kerning first=197 second=85 amount=-2
+kerning first=197 second=84 amount=-2
+kerning first=197 second=81 amount=-2
+kerning first=78 second=193 amount=-2
+kerning first=197 second=79 amount=-2
+kerning first=197 second=71 amount=-2
+kerning first=197 second=67 amount=-2
+kerning first=197 second=46 amount=-1
+kerning first=197 second=45 amount=-1
+kerning first=197 second=44 amount=-1
+kerning first=196 second=89 amount=-1
+kerning first=196 second=84 amount=-1
+kerning first=79 second=197 amount=-2
+kerning first=79 second=198 amount=-1
+kerning first=79 second=193 amount=-3
+kerning first=80 second=44 amount=-2
+kerning first=196 second=45 amount=1
+kerning first=80 second=46 amount=-2
+kerning first=80 second=65 amount=-1
+kerning first=80 second=74 amount=-1
+kerning first=80 second=97 amount=-1
+kerning first=80 second=101 amount=-1
+kerning first=80 second=111 amount=-1
+kerning first=80 second=196 amount=-1
+kerning first=80 second=197 amount=-2
+kerning first=80 second=225 amount=-2
+kerning first=80 second=228 amount=-1
+kerning first=80 second=229 amount=-2
+kerning first=80 second=233 amount=-2
+kerning first=80 second=243 amount=-2
+kerning first=80 second=246 amount=-1
+kerning first=80 second=198 amount=-1
+kerning first=80 second=230 amount=-1
+kerning first=80 second=248 amount=-1
+kerning first=80 second=339 amount=-1
+kerning first=80 second=193 amount=-3
+kerning first=121 second=246 amount=-1
+kerning first=121 second=242 amount=-1
+kerning first=121 second=243 amount=-2
+kerning first=121 second=234 amount=-1
+kerning first=121 second=232 amount=-1
+kerning first=121 second=233 amount=-2
+kerning first=121 second=229 amount=-2
+kerning first=121 second=227 amount=-1
+kerning first=121 second=228 amount=-1
+kerning first=121 second=226 amount=-1
+kerning first=121 second=224 amount=-1
+kerning first=121 second=225 amount=-2
+kerning first=121 second=44 amount=-1
+kerning first=120 second=233 amount=-2
+kerning first=119 second=246 amount=-1
+kerning first=119 second=242 amount=-1
+kerning first=119 second=243 amount=-2
+kerning first=82 second=225 amount=-2
+kerning first=82 second=228 amount=-1
+kerning first=82 second=229 amount=-2
+kerning first=82 second=233 amount=-2
+kerning first=82 second=243 amount=-2
+kerning first=82 second=246 amount=-1
+kerning first=82 second=250 amount=-2
+kerning first=82 second=252 amount=-1
+kerning first=119 second=234 amount=-1
+kerning first=119 second=232 amount=-1
+kerning first=119 second=233 amount=-2
+kerning first=119 second=229 amount=-2
+kerning first=119 second=227 amount=-1
+kerning first=119 second=228 amount=-1
+kerning first=119 second=226 amount=-1
+kerning first=119 second=224 amount=-1
+kerning first=119 second=225 amount=-2
+kerning first=119 second=44 amount=-1
+kerning first=118 second=246 amount=-1
+kerning first=83 second=197 amount=-2
+kerning first=118 second=242 amount=-1
+kerning first=83 second=193 amount=-2
+kerning first=84 second=44 amount=-1
+kerning first=118 second=243 amount=-2
+kerning first=84 second=46 amount=-1
+kerning first=84 second=58 amount=-1
+kerning first=84 second=59 amount=-1
+kerning first=84 second=65 amount=-1
+kerning first=84 second=67 amount=-1
+kerning first=118 second=234 amount=-1
+kerning first=84 second=74 amount=-1
+kerning first=118 second=232 amount=-1
+kerning first=118 second=233 amount=-2
+kerning first=118 second=229 amount=-2
+kerning first=118 second=227 amount=-1
+kerning first=84 second=89 amount=1
+kerning first=84 second=97 amount=-1
+kerning first=84 second=99 amount=-1
+kerning first=84 second=101 amount=-1
+kerning first=84 second=103 amount=-1
+kerning first=118 second=228 amount=-1
+kerning first=118 second=226 amount=-1
+kerning first=84 second=111 amount=-1
+kerning first=84 second=114 amount=-1
+kerning first=84 second=115 amount=-1
+kerning first=84 second=117 amount=-1
+kerning first=84 second=118 amount=-1
+kerning first=84 second=119 amount=-1
+kerning first=84 second=121 amount=-1
+kerning first=84 second=196 amount=-1
+kerning first=84 second=197 amount=-2
+kerning first=118 second=224 amount=-1
+kerning first=84 second=198 amount=-1
+kerning first=118 second=225 amount=-2
+kerning first=84 second=230 amount=-1
+kerning first=84 second=248 amount=-1
+kerning first=84 second=171 amount=-1
+kerning first=84 second=192 amount=-2
+kerning first=84 second=195 amount=-2
+kerning first=118 second=44 amount=-1
+kerning first=116 second=246 amount=-1
+kerning first=116 second=243 amount=-2
+kerning first=84 second=194 amount=-2
+kerning first=84 second=193 amount=-3
+kerning first=116 second=233 amount=-2
+kerning first=116 second=229 amount=-1
+kerning first=116 second=228 amount=-1
+kerning first=116 second=225 amount=-2
+kerning first=114 second=246 amount=-1
+kerning first=114 second=244 amount=-1
+kerning first=114 second=242 amount=-1
+kerning first=114 second=243 amount=-2
+kerning first=114 second=234 amount=-1
+kerning first=114 second=232 amount=-1
+kerning first=114 second=233 amount=-2
+kerning first=85 second=197 amount=-2
+kerning first=114 second=229 amount=-1
+kerning first=85 second=195 amount=-1
+kerning first=85 second=194 amount=-1
+kerning first=85 second=193 amount=-2
+kerning first=86 second=44 amount=-1
+kerning first=114 second=228 amount=-1
+kerning first=86 second=46 amount=-1
+kerning first=86 second=58 amount=-1
+kerning first=86 second=59 amount=-1
+kerning first=86 second=65 amount=-1
+kerning first=86 second=67 amount=-1
+kerning first=114 second=226 amount=-1
+kerning first=114 second=224 amount=-1
+kerning first=114 second=225 amount=-2
+kerning first=86 second=84 amount=1
+kerning first=86 second=97 amount=-1
+kerning first=86 second=101 amount=-1
+kerning first=86 second=103 amount=-1
+kerning first=114 second=44 amount=-1
+kerning first=86 second=111 amount=-1
+kerning first=111 second=84 amount=-1
+kerning first=86 second=117 amount=-1
+kerning first=110 second=84 amount=-1
+kerning first=86 second=196 amount=-1
+kerning first=86 second=197 amount=-2
+kerning first=107 second=252 amount=-1
+kerning first=86 second=198 amount=-1
+kerning first=107 second=246 amount=-1
+kerning first=86 second=230 amount=-1
+kerning first=86 second=248 amount=-1
+kerning first=86 second=171 amount=-1
+kerning first=86 second=192 amount=-2
+kerning first=86 second=195 amount=-2
+kerning first=107 second=243 amount=-2
+kerning first=107 second=233 amount=-2
+kerning first=86 second=194 amount=-2
+kerning first=86 second=193 amount=-3
+kerning first=107 second=229 amount=-1
+kerning first=107 second=228 amount=-1
+kerning first=107 second=225 amount=-2
+kerning first=87 second=44 amount=-1
+kerning first=103 second=246 amount=-1
+kerning first=103 second=243 amount=-2
+kerning first=103 second=233 amount=-2
+kerning first=103 second=229 amount=-1
+kerning first=103 second=228 amount=-1
+kerning first=102 second=246 amount=-1
+kerning first=102 second=243 amount=-1
+kerning first=102 second=233 amount=-2
+kerning first=102 second=229 amount=-1
+kerning first=87 second=84 amount=1
+kerning first=102 second=228 amount=-1
+kerning first=102 second=225 amount=-1
+kerning first=102 second=116 amount=1
+kerning first=102 second=106 amount=1
+kerning first=102 second=102 amount=1
+kerning first=90 second=121 amount=-1
+kerning first=89 second=210 amount=-1
+kerning first=89 second=212 amount=-1
+kerning first=89 second=211 amount=-1
+kerning first=87 second=197 amount=-2
+kerning first=89 second=193 amount=-3
+kerning first=87 second=198 amount=-1
+kerning first=89 second=194 amount=-2
+kerning first=89 second=213 amount=-1
+kerning first=89 second=195 amount=-2
+kerning first=87 second=171 amount=-1
+kerning first=87 second=192 amount=-1
+kerning first=87 second=195 amount=-1
+kerning first=89 second=192 amount=-2
+kerning first=89 second=171 amount=-1
+kerning first=87 second=194 amount=-1
+kerning first=87 second=193 amount=-3
+kerning first=89 second=248 amount=-1
+kerning first=89 second=230 amount=-1
+kerning first=89 second=198 amount=-1
+kerning first=89 second=214 amount=-1
+kerning first=89 second=197 amount=-2
+kerning first=89 second=196 amount=-1
+kerning first=89 second=118 amount=-1
+kerning first=89 second=117 amount=-1
+kerning first=89 second=112 amount=-1
+kerning first=89 second=111 amount=-1
+kerning first=89 second=103 amount=-1
+kerning first=88 second=121 amount=-1
+kerning first=89 second=101 amount=-1
+kerning first=89 second=44 amount=-1
+kerning first=89 second=97 amount=-1
+kerning first=89 second=46 amount=-1
+kerning first=89 second=58 amount=-1
+kerning first=89 second=59 amount=-1
+kerning first=89 second=65 amount=-1
+kerning first=89 second=67 amount=-1
+kerning first=89 second=71 amount=-1
+kerning first=89 second=79 amount=-1
+kerning first=89 second=83 amount=-1
+kerning first=89 second=84 amount=1
diff --git a/data/font/DomCasual24px.fnt.bak b/data/font/DomCasual24px.fnt.bak
new file mode 100644
index 00000000..2f5667d5
--- /dev/null
+++ b/data/font/DomCasual24px.fnt.bak
@@ -0,0 +1,326 @@
+info face="Dom Casual" size=24 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
+common lineHeight=24 base=19 scaleW=256 scaleH=256 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4
+page id=0 file="DomCasual24px_0.png"
+chars count=203
+char id=32 x=253 y=35 width=1 height=1 xoffset=0 yoffset=0 xadvance=5 page=0 chnl=15
+char id=33 x=180 y=38 width=5 height=16 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=15
+char id=34 x=79 y=102 width=7 height=6 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=35 x=208 y=84 width=9 height=9 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=36 x=109 y=87 width=4 height=11 xoffset=1 yoffset=4 xadvance=5 page=0 chnl=15
+char id=37 x=229 y=68 width=9 height=12 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=15
+char id=38 x=244 y=53 width=10 height=14 xoffset=1 yoffset=5 xadvance=12 page=0 chnl=15
+char id=39 x=93 y=101 width=4 height=6 xoffset=0 yoffset=4 xadvance=4 page=0 chnl=15
+char id=40 x=57 y=0 width=4 height=21 xoffset=1 yoffset=3 xadvance=5 page=0 chnl=15
+char id=41 x=51 y=0 width=5 height=21 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=42 x=87 y=101 width=5 height=6 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=43 x=18 y=90 width=11 height=11 xoffset=1 yoffset=8 xadvance=13 page=0 chnl=15
+char id=44 x=48 y=102 width=4 height=7 xoffset=0 yoffset=16 xadvance=5 page=0 chnl=15
+char id=45 x=213 y=94 width=7 height=3 xoffset=0 yoffset=13 xadvance=7 page=0 chnl=15
+char id=46 x=170 y=96 width=4 height=4 xoffset=0 yoffset=16 xadvance=4 page=0 chnl=15
+char id=47 x=34 y=75 width=8 height=14 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=15
+char id=48 x=43 y=75 width=8 height=14 xoffset=1 yoffset=5 xadvance=10 page=0 chnl=15
+char id=49 x=123 y=72 width=5 height=14 xoffset=0 yoffset=6 xadvance=6 page=0 chnl=15
+char id=50 x=219 y=68 width=9 height=12 xoffset=0 yoffset=7 xadvance=9 page=0 chnl=15
+char id=51 x=52 y=75 width=8 height=14 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=15
+char id=52 x=31 y=59 width=9 height=15 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+char id=53 x=61 y=75 width=8 height=14 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=54 x=104 y=56 width=7 height=15 xoffset=1 yoffset=5 xadvance=9 page=0 chnl=15
+char id=55 x=189 y=71 width=9 height=13 xoffset=0 yoffset=7 xadvance=9 page=0 chnl=15
+char id=56 x=70 y=75 width=8 height=14 xoffset=1 yoffset=6 xadvance=9 page=0 chnl=15
+char id=57 x=144 y=56 width=7 height=15 xoffset=1 yoffset=5 xadvance=10 page=0 chnl=15
+char id=58 x=179 y=85 width=4 height=10 xoffset=0 yoffset=10 xadvance=5 page=0 chnl=15
+char id=59 x=0 y=90 width=4 height=12 xoffset=0 yoffset=10 xadvance=5 page=0 chnl=15
+char id=60 x=70 y=90 width=8 height=11 xoffset=0 yoffset=9 xadvance=9 page=0 chnl=15
+char id=61 x=109 y=99 width=9 height=5 xoffset=0 yoffset=11 xadvance=9 page=0 chnl=15
+char id=62 x=61 y=90 width=8 height=11 xoffset=0 yoffset=9 xadvance=9 page=0 chnl=15
+char id=63 x=21 y=59 width=9 height=15 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+char id=64 x=229 y=53 width=14 height=14 xoffset=0 yoffset=5 xadvance=15 page=0 chnl=15
+char id=65 x=0 y=42 width=9 height=16 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=66 x=61 y=59 width=9 height=15 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+char id=67 x=112 y=56 width=7 height=15 xoffset=1 yoffset=5 xadvance=9 page=0 chnl=15
+char id=68 x=37 y=42 width=8 height=16 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=15
+char id=69 x=161 y=38 width=6 height=16 xoffset=1 yoffset=4 xadvance=8 page=0 chnl=15
+char id=70 x=120 y=56 width=7 height=15 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=71 x=24 y=75 width=9 height=14 xoffset=1 yoffset=5 xadvance=10 page=0 chnl=15
+char id=72 x=243 y=20 width=9 height=16 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=15
+char id=73 x=191 y=38 width=3 height=16 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=15
+char id=74 x=167 y=55 width=6 height=15 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=75 x=10 y=42 width=8 height=16 xoffset=1 yoffset=4 xadvance=10 page=0 chnl=15
+char id=76 x=160 y=55 width=6 height=15 xoffset=1 yoffset=5 xadvance=8 page=0 chnl=15
+char id=77 x=0 y=59 width=10 height=15 xoffset=0 yoffset=5 xadvance=11 page=0 chnl=15
+char id=78 x=114 y=21 width=9 height=17 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=15
+char id=79 x=51 y=59 width=9 height=15 xoffset=1 yoffset=5 xadvance=11 page=0 chnl=15
+char id=80 x=55 y=42 width=8 height=16 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=15
+char id=81 x=103 y=21 width=10 height=17 xoffset=1 yoffset=5 xadvance=11 page=0 chnl=15
+char id=82 x=11 y=59 width=9 height=15 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+char id=83 x=71 y=59 width=8 height=15 xoffset=1 yoffset=5 xadvance=9 page=0 chnl=15
+char id=84 x=19 y=42 width=8 height=16 xoffset=1 yoffset=4 xadvance=9 page=0 chnl=15
+char id=85 x=223 y=20 width=9 height=16 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=15
+char id=86 x=134 y=21 width=9 height=17 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=87 x=228 y=37 width=13 height=15 xoffset=0 yoffset=5 xadvance=13 page=0 chnl=15
+char id=88 x=124 y=21 width=9 height=17 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=15
+char id=89 x=28 y=42 width=8 height=16 xoffset=1 yoffset=4 xadvance=10 page=0 chnl=15
+char id=90 x=41 y=59 width=9 height=15 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=91 x=75 y=21 width=5 height=19 xoffset=1 yoffset=3 xadvance=6 page=0 chnl=15
+char id=92 x=199 y=70 width=8 height=13 xoffset=0 yoffset=7 xadvance=8 page=0 chnl=15
+char id=93 x=81 y=21 width=5 height=19 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=94 x=119 y=98 width=7 height=5 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=95 x=227 y=91 width=14 height=2 xoffset=0 yoffset=20 xadvance=13 page=0 chnl=15
+char id=96 x=127 y=98 width=5 height=5 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=97 x=166 y=85 width=6 height=10 xoffset=0 yoffset=10 xadvance=7 page=0 chnl=15
+char id=98 x=104 y=39 width=7 height=16 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=99 x=79 y=90 width=7 height=11 xoffset=0 yoffset=9 xadvance=7 page=0 chnl=15
+char id=100 x=64 y=42 width=7 height=16 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=101 x=95 y=89 width=6 height=11 xoffset=1 yoffset=9 xadvance=7 page=0 chnl=15
+char id=102 x=80 y=41 width=7 height=16 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=103 x=201 y=54 width=5 height=15 xoffset=1 yoffset=9 xadvance=7 page=0 chnl=15
+char id=104 x=96 y=40 width=7 height=16 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=105 x=215 y=68 width=3 height=13 xoffset=0 yoffset=6 xadvance=4 page=0 chnl=15
+char id=106 x=87 y=21 width=4 height=19 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=15
+char id=107 x=128 y=56 width=7 height=15 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=108 x=253 y=20 width=2 height=14 xoffset=1 yoffset=5 xadvance=4 page=0 chnl=15
+char id=109 x=30 y=90 width=10 height=11 xoffset=0 yoffset=9 xadvance=10 page=0 chnl=15
+char id=110 x=159 y=86 width=6 height=10 xoffset=0 yoffset=10 xadvance=7 page=0 chnl=15
+char id=111 x=173 y=85 width=5 height=10 xoffset=1 yoffset=10 xadvance=7 page=0 chnl=15
+char id=112 x=88 y=41 width=7 height=16 xoffset=0 yoffset=8 xadvance=7 page=0 chnl=15
+char id=113 x=181 y=55 width=6 height=15 xoffset=1 yoffset=9 xadvance=7 page=0 chnl=15
+char id=114 x=225 y=81 width=5 height=9 xoffset=0 yoffset=10 xadvance=5 page=0 chnl=15
+char id=115 x=231 y=81 width=5 height=9 xoffset=1 yoffset=10 xadvance=6 page=0 chnl=15
+char id=116 x=208 y=70 width=6 height=13 xoffset=0 yoffset=6 xadvance=6 page=0 chnl=15
+char id=117 x=102 y=88 width=6 height=11 xoffset=1 yoffset=9 xadvance=7 page=0 chnl=15
+char id=118 x=87 y=89 width=7 height=11 xoffset=0 yoffset=9 xadvance=7 page=0 chnl=15
+char id=119 x=51 y=90 width=9 height=11 xoffset=0 yoffset=9 xadvance=10 page=0 chnl=15
+char id=120 x=239 y=68 width=6 height=12 xoffset=1 yoffset=9 xadvance=8 page=0 chnl=15
+char id=121 x=136 y=56 width=7 height=15 xoffset=0 yoffset=10 xadvance=7 page=0 chnl=15
+char id=122 x=218 y=82 width=6 height=9 xoffset=0 yoffset=10 xadvance=7 page=0 chnl=15
+char id=123 x=188 y=0 width=5 height=20 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=124 x=204 y=0 width=1 height=20 xoffset=1 yoffset=5 xadvance=4 page=0 chnl=15
+char id=125 x=182 y=0 width=5 height=20 xoffset=1 yoffset=2 xadvance=7 page=0 chnl=15
+char id=126 x=156 y=97 width=7 height=4 xoffset=0 yoffset=6 xadvance=7 page=0 chnl=15
+char id=160 x=212 y=68 width=1 height=1 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
+char id=161 x=186 y=38 width=4 height=16 xoffset=0 yoffset=8 xadvance=5 page=0 chnl=15
+char id=162 x=152 y=86 width=6 height=10 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=163 x=0 y=75 width=12 height=14 xoffset=0 yoffset=6 xadvance=12 page=0 chnl=15
+char id=165 x=46 y=42 width=8 height=16 xoffset=1 yoffset=4 xadvance=10 page=0 chnl=15
+char id=167 x=84 y=0 width=10 height=20 xoffset=0 yoffset=5 xadvance=11 page=0 chnl=15
+char id=168 x=221 y=92 width=5 height=3 xoffset=1 yoffset=6 xadvance=7 page=0 chnl=15
+char id=169 x=212 y=53 width=16 height=14 xoffset=0 yoffset=5 xadvance=17 page=0 chnl=15
+char id=170 x=53 y=102 width=4 height=7 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=15
+char id=171 x=196 y=85 width=11 height=9 xoffset=0 yoffset=9 xadvance=12 page=0 chnl=15
+char id=172 x=63 y=102 width=15 height=6 xoffset=0 yoffset=13 xadvance=17 page=0 chnl=15
+char id=174 x=195 y=38 width=16 height=15 xoffset=0 yoffset=5 xadvance=17 page=0 chnl=15
+char id=176 x=34 y=102 width=6 height=7 xoffset=1 yoffset=5 xadvance=7 page=0 chnl=15
+char id=177 x=41 y=90 width=9 height=11 xoffset=1 yoffset=8 xadvance=10 page=0 chnl=15
+char id=180 x=133 y=98 width=5 height=5 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=181 x=188 y=21 width=12 height=16 xoffset=1 yoffset=8 xadvance=14 page=0 chnl=15
+char id=182 x=20 y=22 width=9 height=19 xoffset=1 yoffset=5 xadvance=11 page=0 chnl=15
+char id=183 x=175 y=96 width=4 height=4 xoffset=0 yoffset=10 xadvance=4 page=0 chnl=15
+char id=186 x=15 y=102 width=4 height=8 xoffset=0 yoffset=4 xadvance=4 page=0 chnl=15
+char id=187 x=184 y=85 width=11 height=9 xoffset=0 yoffset=9 xadvance=11 page=0 chnl=15
+char id=191 x=233 y=20 width=9 height=16 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=15
+char id=192 x=165 y=0 width=9 height=20 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
+char id=193 x=95 y=0 width=9 height=20 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
+char id=194 x=105 y=0 width=9 height=20 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
+char id=195 x=115 y=0 width=9 height=20 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
+char id=196 x=235 y=0 width=9 height=19 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=15
+char id=197 x=145 y=0 width=9 height=20 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
+char id=198 x=172 y=21 width=15 height=16 xoffset=0 yoffset=4 xadvance=16 page=0 chnl=15
+char id=199 x=39 y=22 width=7 height=19 xoffset=1 yoffset=5 xadvance=9 page=0 chnl=15
+char id=200 x=175 y=0 width=6 height=20 xoffset=1 yoffset=0 xadvance=8 page=0 chnl=15
+char id=201 x=37 y=0 width=6 height=21 xoffset=1 yoffset=-1 xadvance=8 page=0 chnl=15
+char id=202 x=44 y=0 width=6 height=21 xoffset=1 yoffset=-1 xadvance=8 page=0 chnl=15
+char id=203 x=68 y=21 width=6 height=19 xoffset=1 yoffset=1 xadvance=8 page=0 chnl=15
+char id=204 x=199 y=0 width=4 height=20 xoffset=0 yoffset=0 xadvance=5 page=0 chnl=15
+char id=205 x=194 y=0 width=4 height=20 xoffset=0 yoffset=0 xadvance=5 page=0 chnl=15
+char id=206 x=30 y=0 width=6 height=21 xoffset=-1 yoffset=-1 xadvance=5 page=0 chnl=15
+char id=207 x=54 y=22 width=6 height=19 xoffset=-1 yoffset=1 xadvance=5 page=0 chnl=15
+char id=209 x=20 y=0 width=9 height=21 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
+char id=210 x=155 y=0 width=9 height=20 xoffset=1 yoffset=0 xadvance=11 page=0 chnl=15
+char id=211 x=135 y=0 width=9 height=20 xoffset=1 yoffset=0 xadvance=11 page=0 chnl=15
+char id=212 x=62 y=0 width=10 height=20 xoffset=0 yoffset=0 xadvance=11 page=0 chnl=15
+char id=213 x=0 y=22 width=9 height=19 xoffset=1 yoffset=1 xadvance=11 page=0 chnl=15
+char id=214 x=10 y=22 width=9 height=19 xoffset=1 yoffset=1 xadvance=11 page=0 chnl=15
+char id=216 x=144 y=21 width=9 height=17 xoffset=1 yoffset=4 xadvance=11 page=0 chnl=15
+char id=217 x=125 y=0 width=9 height=20 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=15
+char id=218 x=10 y=0 width=9 height=21 xoffset=0 yoffset=-1 xadvance=9 page=0 chnl=15
+char id=219 x=0 y=0 width=9 height=21 xoffset=0 yoffset=-1 xadvance=9 page=0 chnl=15
+char id=220 x=245 y=0 width=9 height=19 xoffset=0 yoffset=1 xadvance=9 page=0 chnl=15
+char id=223 x=212 y=20 width=10 height=16 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=15
+char id=224 x=112 y=39 width=6 height=16 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=225 x=119 y=39 width=6 height=16 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=226 x=152 y=56 width=7 height=15 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=227 x=80 y=58 width=7 height=15 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=228 x=79 y=75 width=7 height=14 xoffset=0 yoffset=6 xadvance=7 page=0 chnl=15
+char id=229 x=174 y=55 width=6 height=15 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=230 x=128 y=87 width=12 height=10 xoffset=0 yoffset=9 xadvance=12 page=0 chnl=15
+char id=231 x=87 y=74 width=7 height=14 xoffset=0 yoffset=9 xadvance=7 page=0 chnl=15
+char id=232 x=126 y=39 width=6 height=16 xoffset=1 yoffset=4 xadvance=7 page=0 chnl=15
+char id=233 x=133 y=39 width=6 height=16 xoffset=1 yoffset=4 xadvance=7 page=0 chnl=15
+char id=234 x=188 y=55 width=6 height=15 xoffset=1 yoffset=5 xadvance=7 page=0 chnl=15
+char id=235 x=116 y=72 width=6 height=14 xoffset=1 yoffset=6 xadvance=7 page=0 chnl=15
+char id=236 x=207 y=54 width=4 height=15 xoffset=0 yoffset=4 xadvance=4 page=0 chnl=15
+char id=237 x=195 y=54 width=5 height=15 xoffset=0 yoffset=4 xadvance=4 page=0 chnl=15
+char id=238 x=109 y=72 width=6 height=14 xoffset=-1 yoffset=5 xadvance=4 page=0 chnl=15
+char id=239 x=102 y=73 width=6 height=14 xoffset=-1 yoffset=5 xadvance=4 page=0 chnl=15
+char id=241 x=88 y=58 width=7 height=15 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=242 x=174 y=38 width=5 height=16 xoffset=1 yoffset=4 xadvance=7 page=0 chnl=15
+char id=243 x=168 y=38 width=5 height=16 xoffset=1 yoffset=4 xadvance=7 page=0 chnl=15
+char id=244 x=140 y=39 width=6 height=16 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=245 x=96 y=57 width=7 height=15 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=246 x=129 y=72 width=5 height=14 xoffset=1 yoffset=6 xadvance=7 page=0 chnl=15
+char id=247 x=114 y=87 width=13 height=10 xoffset=1 yoffset=8 xadvance=14 page=0 chnl=15
+char id=248 x=246 y=68 width=5 height=12 xoffset=1 yoffset=9 xadvance=7 page=0 chnl=15
+char id=249 x=154 y=38 width=6 height=16 xoffset=1 yoffset=4 xadvance=7 page=0 chnl=15
+char id=250 x=147 y=39 width=6 height=16 xoffset=1 yoffset=4 xadvance=7 page=0 chnl=15
+char id=251 x=72 y=41 width=7 height=16 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=252 x=95 y=74 width=6 height=14 xoffset=1 yoffset=6 xadvance=7 page=0 chnl=15
+char id=255 x=47 y=22 width=6 height=19 xoffset=1 yoffset=6 xadvance=7 page=0 chnl=15
+char id=338 x=242 y=37 width=13 height=15 xoffset=1 yoffset=5 xadvance=15 page=0 chnl=15
+char id=339 x=141 y=86 width=10 height=10 xoffset=1 yoffset=10 xadvance=11 page=0 chnl=15
+char id=376 x=30 y=22 width=8 height=19 xoffset=1 yoffset=1 xadvance=10 page=0 chnl=15
+char id=402 x=73 y=0 width=10 height=20 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15
+char id=916 x=212 y=37 width=15 height=15 xoffset=0 yoffset=4 xadvance=15 page=0 chnl=15
+char id=937 x=135 y=72 width=15 height=13 xoffset=1 yoffset=6 xadvance=16 page=0 chnl=15
+char id=960 x=5 y=90 width=12 height=11 xoffset=0 yoffset=8 xadvance=13 page=0 chnl=15
+char id=8211 x=201 y=95 width=11 height=3 xoffset=0 yoffset=13 xadvance=11 page=0 chnl=15
+char id=8212 x=180 y=96 width=20 height=3 xoffset=0 yoffset=13 xadvance=21 page=0 chnl=15
+char id=8216 x=252 y=68 width=3 height=6 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15
+char id=8217 x=103 y=100 width=2 height=6 xoffset=1 yoffset=3 xadvance=4 page=0 chnl=15
+char id=8218 x=106 y=100 width=2 height=6 xoffset=1 yoffset=17 xadvance=4 page=0 chnl=15
+char id=8220 x=41 y=102 width=6 height=7 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15
+char id=8221 x=58 y=102 width=4 height=7 xoffset=1 yoffset=2 xadvance=6 page=0 chnl=15
+char id=8222 x=98 y=101 width=4 height=6 xoffset=1 yoffset=17 xadvance=6 page=0 chnl=15
+char id=8224 x=223 y=0 width=11 height=19 xoffset=1 yoffset=5 xadvance=12 page=0 chnl=15
+char id=8226 x=164 y=97 width=5 height=4 xoffset=0 yoffset=10 xadvance=5 page=0 chnl=15
+char id=8230 x=139 y=98 width=16 height=4 xoffset=0 yoffset=16 xadvance=17 page=0 chnl=15
+char id=8482 x=0 y=103 width=14 height=8 xoffset=0 yoffset=5 xadvance=14 page=0 chnl=15
+char id=8706 x=201 y=21 width=10 height=16 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=15
+char id=8719 x=154 y=21 width=17 height=16 xoffset=0 yoffset=5 xadvance=18 page=0 chnl=15
+char id=8721 x=206 y=0 width=16 height=19 xoffset=0 yoffset=3 xadvance=16 page=0 chnl=15
+char id=8730 x=92 y=21 width=10 height=18 xoffset=1 yoffset=2 xadvance=11 page=0 chnl=15
+char id=8734 x=237 y=81 width=16 height=8 xoffset=0 yoffset=10 xadvance=17 page=0 chnl=15
+char id=8747 x=61 y=22 width=6 height=19 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15
+char id=8776 x=20 y=102 width=13 height=7 xoffset=0 yoffset=10 xadvance=14 page=0 chnl=15
+char id=8800 x=164 y=71 width=12 height=13 xoffset=0 yoffset=7 xadvance=13 page=0 chnl=15
+char id=8804 x=151 y=72 width=12 height=13 xoffset=0 yoffset=6 xadvance=12 page=0 chnl=15
+char id=8805 x=177 y=71 width=11 height=13 xoffset=0 yoffset=6 xadvance=12 page=0 chnl=15
+char id=9674 x=13 y=75 width=10 height=14 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+kernings count=118
+kerning first=65 second=84 amount=-2
+kerning first=65 second=86 amount=-1
+kerning first=65 second=87 amount=-1
+kerning first=65 second=89 amount=-1
+kerning first=121 second=101 amount=-1
+kerning first=65 second=119 amount=-1
+kerning first=65 second=8217 amount=-2
+kerning first=70 second=44 amount=-4
+kerning first=70 second=46 amount=-3
+kerning first=70 second=65 amount=-2
+kerning first=75 second=45 amount=-2
+kerning first=75 second=79 amount=-2
+kerning first=75 second=101 amount=-1
+kerning first=75 second=111 amount=-1
+kerning first=76 second=84 amount=-3
+kerning first=76 second=86 amount=-3
+kerning first=76 second=87 amount=-1
+kerning first=76 second=89 amount=-3
+kerning first=76 second=8217 amount=-4
+kerning first=79 second=86 amount=-1
+kerning first=121 second=97 amount=-1
+kerning first=80 second=44 amount=-5
+kerning first=80 second=46 amount=-4
+kerning first=80 second=65 amount=-2
+kerning first=82 second=84 amount=-1
+kerning first=82 second=121 amount=-1
+kerning first=84 second=44 amount=-2
+kerning first=84 second=45 amount=-2
+kerning first=84 second=46 amount=-2
+kerning first=84 second=58 amount=-3
+kerning first=84 second=59 amount=-3
+kerning first=84 second=65 amount=-2
+kerning first=84 second=79 amount=-1
+kerning first=84 second=97 amount=-3
+kerning first=84 second=99 amount=-2
+kerning first=84 second=101 amount=-2
+kerning first=84 second=105 amount=-2
+kerning first=84 second=111 amount=-2
+kerning first=84 second=114 amount=-2
+kerning first=84 second=115 amount=-2
+kerning first=84 second=117 amount=-2
+kerning first=84 second=119 amount=-2
+kerning first=84 second=121 amount=-2
+kerning first=86 second=44 amount=-3
+kerning first=86 second=45 amount=-2
+kerning first=86 second=46 amount=-3
+kerning first=86 second=58 amount=-1
+kerning first=86 second=59 amount=-2
+kerning first=86 second=65 amount=-2
+kerning first=86 second=67 amount=-1
+kerning first=86 second=79 amount=-1
+kerning first=86 second=97 amount=-2
+kerning first=86 second=99 amount=-2
+kerning first=86 second=101 amount=-2
+kerning first=86 second=105 amount=-1
+kerning first=86 second=111 amount=-2
+kerning first=86 second=114 amount=-1
+kerning first=86 second=117 amount=-1
+kerning first=86 second=121 amount=-1
+kerning first=87 second=44 amount=-3
+kerning first=87 second=45 amount=-1
+kerning first=87 second=46 amount=-3
+kerning first=87 second=58 amount=-2
+kerning first=87 second=59 amount=-1
+kerning first=87 second=65 amount=-2
+kerning first=87 second=79 amount=-1
+kerning first=87 second=97 amount=-2
+kerning first=87 second=99 amount=-1
+kerning first=87 second=101 amount=-2
+kerning first=87 second=105 amount=-1
+kerning first=87 second=111 amount=-2
+kerning first=87 second=114 amount=-1
+kerning first=87 second=117 amount=-1
+kerning first=87 second=121 amount=-1
+kerning first=89 second=44 amount=-3
+kerning first=89 second=45 amount=-3
+kerning first=89 second=46 amount=-3
+kerning first=89 second=58 amount=-2
+kerning first=89 second=59 amount=-3
+kerning first=89 second=65 amount=-2
+kerning first=89 second=97 amount=-3
+kerning first=89 second=101 amount=-3
+kerning first=89 second=105 amount=-2
+kerning first=89 second=111 amount=-3
+kerning first=89 second=112 amount=-3
+kerning first=89 second=113 amount=-3
+kerning first=89 second=117 amount=-3
+kerning first=89 second=118 amount=-2
+kerning first=121 second=46 amount=-2
+kerning first=101 second=119 amount=-1
+kerning first=101 second=120 amount=-1
+kerning first=102 second=44 amount=-3
+kerning first=102 second=46 amount=-2
+kerning first=102 second=97 amount=-1
+kerning first=102 second=101 amount=-1
+kerning first=121 second=44 amount=-2
+kerning first=102 second=103 amount=-1
+kerning first=102 second=111 amount=-1
+kerning first=111 second=118 amount=-1
+kerning first=111 second=120 amount=-1
+kerning first=114 second=44 amount=-2
+kerning first=114 second=46 amount=-2
+kerning first=120 second=111 amount=-1
+kerning first=114 second=100 amount=-1
+kerning first=114 second=101 amount=-1
+kerning first=120 second=101 amount=-1
+kerning first=120 second=97 amount=-1
+kerning first=119 second=111 amount=-1
+kerning first=114 second=8217 amount=-1
+kerning first=118 second=44 amount=-3
+kerning first=118 second=46 amount=-2
+kerning first=118 second=97 amount=-1
+kerning first=118 second=101 amount=-1
+kerning first=118 second=111 amount=-1
+kerning first=119 second=44 amount=-3
+kerning first=119 second=46 amount=-2
+kerning first=119 second=97 amount=-1
+kerning first=119 second=101 amount=-1
diff --git a/data/font/DomCasual24px.png b/data/font/DomCasual24px.png
new file mode 100644
index 00000000..ca6f41f7
Binary files /dev/null and b/data/font/DomCasual24px.png differ
diff --git a/data/font/DomCasual24px_0.png b/data/font/DomCasual24px_0.png
new file mode 100644
index 00000000..f258466f
Binary files /dev/null and b/data/font/DomCasual24px_0.png differ
diff --git a/data/font/DomCasual32px.fnt b/data/font/DomCasual32px.fnt
new file mode 100644
index 00000000..8114a7c0
--- /dev/null
+++ b/data/font/DomCasual32px.fnt
@@ -0,0 +1,750 @@
+info face="DomCasualD" size=32 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
+common lineHeight=32 base=24 scaleW=256 scaleH=256 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4
+page id=0 file="DomCasual32px_0.png"
+chars count=182
+char id=32 x=253 y=26 width=1 height=1 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15
+char id=33 x=27 y=98 width=6 height=20 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15
+char id=34 x=165 y=147 width=7 height=7 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=15
+char id=35 x=35 y=139 width=12 height=15 xoffset=0 yoffset=8 xadvance=13 page=0 chnl=15
+char id=36 x=79 y=27 width=11 height=24 xoffset=1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=37 x=39 y=74 width=16 height=20 xoffset=0 yoffset=5 xadvance=17 page=0 chnl=15
+char id=38 x=22 y=77 width=16 height=20 xoffset=0 yoffset=5 xadvance=16 page=0 chnl=15
+char id=39 x=173 y=146 width=4 height=7 xoffset=0 yoffset=6 xadvance=4 page=0 chnl=15
+char id=40 x=26 y=52 width=7 height=22 xoffset=1 yoffset=5 xadvance=10 page=0 chnl=15
+char id=41 x=244 y=26 width=8 height=22 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+char id=42 x=90 y=150 width=9 height=9 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+char id=43 x=14 y=157 width=12 height=12 xoffset=0 yoffset=9 xadvance=13 page=0 chnl=15
+char id=44 x=145 y=149 width=5 height=8 xoffset=0 yoffset=19 xadvance=6 page=0 chnl=15
+char id=45 x=246 y=144 width=4 height=4 xoffset=0 yoffset=16 xadvance=4 page=0 chnl=15
+char id=46 x=240 y=145 width=5 height=5 xoffset=0 yoffset=20 xadvance=6 page=0 chnl=15
+char id=47 x=162 y=26 width=8 height=23 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=48 x=81 y=95 width=13 height=19 xoffset=0 yoffset=6 xadvance=13 page=0 chnl=15
+char id=49 x=230 y=112 width=6 height=18 xoffset=3 yoffset=7 xadvance=13 page=0 chnl=15
+char id=50 x=0 y=139 width=12 height=17 xoffset=0 yoffset=7 xadvance=13 page=0 chnl=15
+char id=51 x=133 y=115 width=11 height=18 xoffset=1 yoffset=7 xadvance=13 page=0 chnl=15
+char id=52 x=95 y=95 width=13 height=19 xoffset=0 yoffset=7 xadvance=13 page=0 chnl=15
+char id=53 x=145 y=114 width=11 height=18 xoffset=1 yoffset=7 xadvance=13 page=0 chnl=15
+char id=54 x=123 y=95 width=13 height=19 xoffset=0 yoffset=5 xadvance=13 page=0 chnl=15
+char id=55 x=107 y=115 width=12 height=18 xoffset=0 yoffset=7 xadvance=13 page=0 chnl=15
+char id=56 x=112 y=74 width=12 height=20 xoffset=0 yoffset=5 xadvance=13 page=0 chnl=15
+char id=57 x=151 y=72 width=12 height=20 xoffset=0 yoffset=6 xadvance=13 page=0 chnl=15
+char id=58 x=8 y=157 width=5 height=13 xoffset=0 yoffset=12 xadvance=6 page=0 chnl=15
+char id=59 x=58 y=135 width=5 height=15 xoffset=0 yoffset=12 xadvance=6 page=0 chnl=15
+char id=60 x=79 y=135 width=13 height=14 xoffset=0 yoffset=8 xadvance=13 page=0 chnl=15
+char id=61 x=132 y=149 width=12 height=8 xoffset=0 yoffset=11 xadvance=13 page=0 chnl=15
+char id=62 x=93 y=134 width=13 height=14 xoffset=0 yoffset=8 xadvance=13 page=0 chnl=15
+char id=63 x=189 y=72 width=11 height=20 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=15
+char id=64 x=90 y=115 width=16 height=18 xoffset=0 yoffset=6 xadvance=17 page=0 chnl=15
+char id=65 x=99 y=52 width=13 height=21 xoffset=0 yoffset=5 xadvance=13 page=0 chnl=15
+char id=66 x=109 y=95 width=13 height=19 xoffset=0 yoffset=5 xadvance=14 page=0 chnl=15
+char id=67 x=113 y=51 width=13 height=21 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=68 x=127 y=50 width=13 height=21 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=69 x=150 y=93 width=12 height=19 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=15
+char id=70 x=177 y=72 width=11 height=20 xoffset=0 yoffset=4 xadvance=12 page=0 chnl=15
+char id=71 x=71 y=74 width=13 height=20 xoffset=0 yoffset=4 xadvance=14 page=0 chnl=15
+char id=72 x=141 y=50 width=12 height=21 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=73 x=232 y=49 width=5 height=21 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=74 x=203 y=49 width=9 height=21 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=75 x=85 y=52 width=13 height=21 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=76 x=201 y=71 width=10 height=20 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+char id=77 x=55 y=52 width=14 height=21 xoffset=1 yoffset=4 xadvance=16 page=0 chnl=15
+char id=78 x=216 y=26 width=13 height=22 xoffset=0 yoffset=4 xadvance=14 page=0 chnl=15
+char id=79 x=56 y=74 width=14 height=20 xoffset=0 yoffset=5 xadvance=14 page=0 chnl=15
+char id=80 x=180 y=50 width=11 height=21 xoffset=0 yoffset=4 xadvance=12 page=0 chnl=15
+char id=81 x=201 y=26 width=14 height=22 xoffset=0 yoffset=5 xadvance=14 page=0 chnl=15
+char id=82 x=85 y=74 width=13 height=20 xoffset=0 yoffset=5 xadvance=14 page=0 chnl=15
+char id=83 x=99 y=74 width=12 height=20 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=15
+char id=84 x=154 y=50 width=12 height=21 xoffset=0 yoffset=4 xadvance=12 page=0 chnl=15
+char id=85 x=138 y=72 width=12 height=20 xoffset=0 yoffset=5 xadvance=14 page=0 chnl=15
+char id=86 x=230 y=26 width=13 height=22 xoffset=0 yoffset=4 xadvance=12 page=0 chnl=15
+char id=87 x=238 y=49 width=17 height=20 xoffset=0 yoffset=5 xadvance=17 page=0 chnl=15
+char id=88 x=0 y=54 width=12 height=22 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=15
+char id=89 x=167 y=50 width=12 height=21 xoffset=0 yoffset=4 xadvance=12 page=0 chnl=15
+char id=90 x=125 y=73 width=12 height=20 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=15
+char id=91 x=152 y=26 width=9 height=23 xoffset=1 yoffset=5 xadvance=10 page=0 chnl=15
+char id=92 x=142 y=26 width=9 height=23 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=15
+char id=93 x=171 y=26 width=8 height=23 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+char id=94 x=76 y=150 width=13 height=9 xoffset=0 yoffset=6 xadvance=13 page=0 chnl=15
+char id=95 x=25 y=170 width=14 height=3 xoffset=0 yoffset=25 xadvance=13 page=0 chnl=15
+char id=96 x=227 y=145 width=6 height=5 xoffset=2 yoffset=6 xadvance=13 page=0 chnl=15
+char id=97 x=120 y=134 width=9 height=14 xoffset=0 yoffset=11 xadvance=9 page=0 chnl=15
+char id=98 x=212 y=71 width=9 height=20 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=99 x=237 y=131 width=8 height=13 xoffset=0 yoffset=12 xadvance=8 page=0 chnl=15
+char id=100 x=232 y=71 width=9 height=20 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+char id=101 x=217 y=131 width=9 height=13 xoffset=0 yoffset=11 xadvance=9 page=0 chnl=15
+char id=102 x=223 y=49 width=8 height=21 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15
+char id=103 x=40 y=115 width=9 height=19 xoffset=0 yoffset=11 xadvance=9 page=0 chnl=15
+char id=104 x=213 y=49 width=9 height=21 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15
+char id=105 x=243 y=111 width=4 height=18 xoffset=0 yoffset=6 xadvance=5 page=0 chnl=15
+char id=106 x=101 y=27 width=4 height=24 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=15
+char id=107 x=222 y=71 width=9 height=20 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=108 x=34 y=98 width=4 height=20 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=15
+char id=109 x=182 y=132 width=14 height=13 xoffset=0 yoffset=12 xadvance=15 page=0 chnl=15
+char id=110 x=197 y=132 width=9 height=13 xoffset=0 yoffset=12 xadvance=10 page=0 chnl=15
+char id=111 x=207 y=131 width=9 height=13 xoffset=0 yoffset=12 xadvance=9 page=0 chnl=15
+char id=112 x=0 y=98 width=9 height=20 xoffset=0 yoffset=10 xadvance=10 page=0 chnl=15
+char id=113 x=187 y=113 width=9 height=18 xoffset=0 yoffset=12 xadvance=9 page=0 chnl=15
+char id=114 x=0 y=157 width=7 height=13 xoffset=0 yoffset=12 xadvance=6 page=0 chnl=15
+char id=115 x=246 y=130 width=8 height=13 xoffset=0 yoffset=12 xadvance=8 page=0 chnl=15
+char id=116 x=248 y=111 width=6 height=17 xoffset=0 yoffset=8 xadvance=6 page=0 chnl=15
+char id=117 x=227 y=131 width=9 height=13 xoffset=0 yoffset=12 xadvance=9 page=0 chnl=15
+char id=118 x=140 y=134 width=8 height=14 xoffset=0 yoffset=11 xadvance=9 page=0 chnl=15
+char id=119 x=107 y=134 width=12 height=14 xoffset=0 yoffset=11 xadvance=12 page=0 chnl=15
+char id=120 x=48 y=135 width=9 height=15 xoffset=0 yoffset=11 xadvance=9 page=0 chnl=15
+char id=121 x=163 y=93 width=9 height=19 xoffset=0 yoffset=11 xadvance=9 page=0 chnl=15
+char id=122 x=49 y=151 width=8 height=12 xoffset=0 yoffset=12 xadvance=8 page=0 chnl=15
+char id=123 x=120 y=26 width=10 height=23 xoffset=0 yoffset=5 xadvance=11 page=0 chnl=15
+char id=124 x=180 y=26 width=4 height=23 xoffset=4 yoffset=6 xadvance=13 page=0 chnl=15
+char id=125 x=131 y=26 width=10 height=23 xoffset=0 yoffset=5 xadvance=11 page=0 chnl=15
+char id=126 x=196 y=146 width=14 height=5 xoffset=2 yoffset=4 xadvance=18 page=0 chnl=15
+char id=161 x=20 y=98 width=6 height=20 xoffset=0 yoffset=12 xadvance=7 page=0 chnl=15
+char id=162 x=183 y=93 width=9 height=19 xoffset=2 yoffset=5 xadvance=13 page=0 chnl=15
+char id=163 x=164 y=72 width=12 height=20 xoffset=0 yoffset=5 xadvance=13 page=0 chnl=15
+char id=165 x=137 y=94 width=12 height=19 xoffset=0 yoffset=6 xadvance=13 page=0 chnl=15
+char id=167 x=13 y=54 width=12 height=22 xoffset=0 yoffset=5 xadvance=13 page=0 chnl=15
+char id=168 x=211 y=145 width=8 height=5 xoffset=2 yoffset=6 xadvance=13 page=0 chnl=15
+char id=169 x=60 y=95 width=20 height=19 xoffset=0 yoffset=5 xadvance=20 page=0 chnl=15
+char id=170 x=58 y=151 width=8 height=11 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=171 x=27 y=155 width=10 height=12 xoffset=0 yoffset=12 xadvance=11 page=0 chnl=15
+char id=172 x=151 y=147 width=13 height=7 xoffset=0 yoffset=17 xadvance=13 page=0 chnl=15
+char id=174 x=39 y=95 width=20 height=19 xoffset=0 yoffset=5 xadvance=20 page=0 chnl=15
+char id=177 x=22 y=139 width=12 height=15 xoffset=0 yoffset=9 xadvance=13 page=0 chnl=15
+char id=180 x=220 y=145 width=6 height=5 xoffset=4 yoffset=6 xadvance=13 page=0 chnl=15
+char id=181 x=120 y=115 width=12 height=18 xoffset=0 yoffset=11 xadvance=13 page=0 chnl=15
+char id=182 x=185 y=26 width=15 height=22 xoffset=0 yoffset=5 xadvance=15 page=0 chnl=15
+char id=183 x=234 y=145 width=5 height=5 xoffset=0 yoffset=16 xadvance=6 page=0 chnl=15
+char id=186 x=67 y=150 width=8 height=10 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=187 x=38 y=155 width=10 height=12 xoffset=0 yoffset=12 xadvance=11 page=0 chnl=15
+char id=191 x=192 y=49 width=10 height=21 xoffset=0 yoffset=11 xadvance=11 page=0 chnl=15
+char id=192 x=42 y=0 width=13 height=26 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
+char id=193 x=98 y=0 width=13 height=26 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
+char id=194 x=14 y=0 width=13 height=26 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
+char id=195 x=28 y=0 width=13 height=26 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
+char id=196 x=84 y=0 width=13 height=26 xoffset=0 yoffset=0 xadvance=13 page=0 chnl=15
+char id=197 x=0 y=0 width=13 height=27 xoffset=0 yoffset=-1 xadvance=13 page=0 chnl=15
+char id=198 x=0 y=77 width=21 height=20 xoffset=0 yoffset=5 xadvance=21 page=0 chnl=15
+char id=199 x=70 y=0 width=13 height=26 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=200 x=40 y=27 width=12 height=24 xoffset=0 yoffset=0 xadvance=12 page=0 chnl=15
+char id=201 x=53 y=27 width=12 height=24 xoffset=0 yoffset=0 xadvance=12 page=0 chnl=15
+char id=202 x=27 y=27 width=12 height=24 xoffset=0 yoffset=0 xadvance=12 page=0 chnl=15
+char id=203 x=66 y=27 width=12 height=24 xoffset=0 yoffset=0 xadvance=12 page=0 chnl=15
+char id=204 x=7 y=28 width=6 height=25 xoffset=-1 yoffset=0 xadvance=6 page=0 chnl=15
+char id=205 x=248 y=0 width=7 height=25 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
+char id=206 x=239 y=0 width=8 height=25 xoffset=-1 yoffset=0 xadvance=6 page=0 chnl=15
+char id=207 x=0 y=28 width=6 height=25 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15
+char id=209 x=56 y=0 width=13 height=26 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15
+char id=210 x=172 y=0 width=14 height=25 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15
+char id=211 x=157 y=0 width=14 height=25 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15
+char id=212 x=142 y=0 width=14 height=25 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15
+char id=213 x=127 y=0 width=14 height=25 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15
+char id=214 x=112 y=0 width=14 height=25 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15
+char id=216 x=70 y=52 width=14 height=21 xoffset=0 yoffset=4 xadvance=14 page=0 chnl=15
+char id=217 x=226 y=0 width=12 height=25 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15
+char id=218 x=213 y=0 width=12 height=25 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15
+char id=219 x=200 y=0 width=12 height=25 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15
+char id=220 x=187 y=0 width=12 height=25 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15
+char id=223 x=242 y=70 width=9 height=20 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+char id=224 x=203 y=92 width=9 height=19 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=225 x=243 y=91 width=9 height=19 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=226 x=10 y=119 width=9 height=19 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=227 x=30 y=119 width=9 height=19 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=228 x=20 y=119 width=9 height=19 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=229 x=10 y=98 width=9 height=20 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15
+char id=230 x=64 y=135 width=14 height=14 xoffset=0 yoffset=11 xadvance=14 page=0 chnl=15
+char id=231 x=13 y=139 width=8 height=17 xoffset=0 yoffset=12 xadvance=8 page=0 chnl=15
+char id=232 x=157 y=113 width=9 height=18 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=233 x=197 y=113 width=9 height=18 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=234 x=177 y=113 width=9 height=18 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=235 x=167 y=113 width=9 height=18 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=236 x=237 y=112 width=5 height=18 xoffset=-1 yoffset=6 xadvance=5 page=0 chnl=15
+char id=237 x=216 y=112 width=6 height=18 xoffset=0 yoffset=6 xadvance=5 page=0 chnl=15
+char id=238 x=207 y=112 width=8 height=18 xoffset=-1 yoffset=6 xadvance=5 page=0 chnl=15
+char id=239 x=223 y=112 width=6 height=18 xoffset=0 yoffset=6 xadvance=5 page=0 chnl=15
+char id=241 x=0 y=119 width=9 height=19 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=15
+char id=242 x=193 y=93 width=9 height=19 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=243 x=233 y=92 width=9 height=19 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=244 x=223 y=92 width=9 height=19 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=245 x=213 y=92 width=9 height=19 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=246 x=173 y=93 width=9 height=19 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=248 x=130 y=134 width=9 height=14 xoffset=0 yoffset=12 xadvance=9 page=0 chnl=15
+char id=249 x=50 y=115 width=9 height=19 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=250 x=60 y=115 width=9 height=19 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=251 x=70 y=115 width=9 height=19 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=252 x=80 y=115 width=9 height=19 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=255 x=91 y=27 width=9 height=24 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
+char id=338 x=34 y=52 width=20 height=21 xoffset=0 yoffset=4 xadvance=20 page=0 chnl=15
+char id=339 x=166 y=132 width=15 height=13 xoffset=0 yoffset=12 xadvance=16 page=0 chnl=15
+char id=402 x=106 y=27 width=13 height=23 xoffset=0 yoffset=5 xadvance=13 page=0 chnl=15
+char id=8211 x=14 y=170 width=10 height=4 xoffset=1 yoffset=16 xadvance=13 page=0 chnl=15
+char id=8212 x=0 y=171 width=13 height=4 xoffset=0 yoffset=16 xadvance=13 page=0 chnl=15
+char id=8216 x=120 y=149 width=5 height=9 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15
+char id=8217 x=126 y=149 width=5 height=9 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15
+char id=8220 x=100 y=149 width=9 height=9 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+char id=8221 x=110 y=149 width=9 height=9 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15
+char id=8224 x=14 y=27 width=12 height=24 xoffset=0 yoffset=5 xadvance=13 page=0 chnl=15
+char id=8230 x=178 y=146 width=17 height=5 xoffset=0 yoffset=20 xadvance=18 page=0 chnl=15
+char id=8482 x=149 y=133 width=16 height=13 xoffset=0 yoffset=5 xadvance=17 page=0 chnl=15
+kernings count=563
+kerning first=44 second=49 amount=-2
+kerning first=44 second=8221 amount=-1
+kerning first=44 second=8217 amount=-1
+kerning first=45 second=65 amount=1
+kerning first=45 second=84 amount=-1
+kerning first=210 second=89 amount=-1
+kerning first=45 second=87 amount=1
+kerning first=212 second=89 amount=-1
+kerning first=45 second=196 amount=1
+kerning first=45 second=197 amount=-1
+kerning first=211 second=89 amount=-1
+kerning first=45 second=193 amount=-2
+kerning first=46 second=49 amount=-2
+kerning first=46 second=8221 amount=-1
+kerning first=46 second=8217 amount=-1
+kerning first=48 second=49 amount=-2
+kerning first=211 second=65 amount=-1
+kerning first=48 second=55 amount=-1
+kerning first=49 second=44 amount=-2
+kerning first=49 second=46 amount=-1
+kerning first=49 second=48 amount=-2
+kerning first=49 second=49 amount=-3
+kerning first=49 second=50 amount=-2
+kerning first=49 second=51 amount=-2
+kerning first=49 second=52 amount=-2
+kerning first=49 second=53 amount=-2
+kerning first=49 second=54 amount=-2
+kerning first=49 second=55 amount=-2
+kerning first=49 second=56 amount=-2
+kerning first=49 second=57 amount=-2
+kerning first=50 second=49 amount=-2
+kerning first=50 second=52 amount=-2
+kerning first=50 second=55 amount=-1
+kerning first=51 second=49 amount=-2
+kerning first=51 second=52 amount=-1
+kerning first=51 second=55 amount=-1
+kerning first=52 second=49 amount=-2
+kerning first=193 second=8217 amount=-1
+kerning first=52 second=55 amount=-1
+kerning first=53 second=49 amount=-2
+kerning first=193 second=171 amount=-1
+kerning first=53 second=55 amount=-1
+kerning first=54 second=49 amount=-2
+kerning first=193 second=121 amount=-1
+kerning first=54 second=55 amount=-2
+kerning first=55 second=44 amount=-2
+kerning first=55 second=46 amount=-2
+kerning first=55 second=49 amount=-2
+kerning first=55 second=50 amount=-1
+kerning first=55 second=51 amount=-1
+kerning first=55 second=52 amount=-2
+kerning first=55 second=53 amount=-2
+kerning first=55 second=54 amount=-2
+kerning first=55 second=55 amount=-1
+kerning first=55 second=56 amount=-1
+kerning first=55 second=58 amount=-2
+kerning first=56 second=49 amount=-2
+kerning first=193 second=119 amount=-1
+kerning first=56 second=55 amount=-1
+kerning first=57 second=49 amount=-2
+kerning first=193 second=118 amount=-1
+kerning first=57 second=55 amount=-1
+kerning first=193 second=117 amount=-1
+kerning first=65 second=45 amount=1
+kerning first=65 second=46 amount=1
+kerning first=193 second=116 amount=-1
+kerning first=193 second=113 amount=-1
+kerning first=193 second=111 amount=-1
+kerning first=193 second=103 amount=-1
+kerning first=65 second=84 amount=-1
+kerning first=193 second=101 amount=-1
+kerning first=65 second=86 amount=-1
+kerning first=193 second=100 amount=-1
+kerning first=65 second=89 amount=-1
+kerning first=193 second=99 amount=-1
+kerning first=193 second=98 amount=-1
+kerning first=193 second=97 amount=-1
+kerning first=193 second=89 amount=-2
+kerning first=193 second=87 amount=-1
+kerning first=193 second=86 amount=-1
+kerning first=193 second=85 amount=-1
+kerning first=193 second=84 amount=-2
+kerning first=193 second=81 amount=-1
+kerning first=193 second=79 amount=-1
+kerning first=193 second=71 amount=-1
+kerning first=193 second=67 amount=-1
+kerning first=193 second=44 amount=-1
+kerning first=194 second=89 amount=-2
+kerning first=194 second=87 amount=-1
+kerning first=194 second=86 amount=-2
+kerning first=194 second=85 amount=-1
+kerning first=194 second=84 amount=-2
+kerning first=65 second=8221 amount=-1
+kerning first=65 second=8217 amount=-1
+kerning first=194 second=81 amount=-1
+kerning first=194 second=79 amount=-1
+kerning first=194 second=71 amount=-1
+kerning first=194 second=67 amount=-1
+kerning first=194 second=46 amount=-1
+kerning first=194 second=44 amount=-1
+kerning first=8217 second=193 amount=-4
+kerning first=8217 second=198 amount=-2
+kerning first=8217 second=197 amount=-3
+kerning first=8217 second=196 amount=-1
+kerning first=66 second=197 amount=-2
+kerning first=8217 second=121 amount=-1
+kerning first=66 second=198 amount=-1
+kerning first=8217 second=119 amount=-1
+kerning first=66 second=195 amount=-2
+kerning first=8217 second=115 amount=-1
+kerning first=66 second=194 amount=-2
+kerning first=66 second=193 amount=-3
+kerning first=8217 second=111 amount=-1
+kerning first=8217 second=100 amount=-1
+kerning first=8217 second=65 amount=-1
+kerning first=8217 second=46 amount=-1
+kerning first=8217 second=44 amount=-1
+kerning first=8216 second=193 amount=-4
+kerning first=8216 second=198 amount=-2
+kerning first=8216 second=197 amount=-3
+kerning first=67 second=197 amount=-2
+kerning first=8216 second=196 amount=-1
+kerning first=8216 second=65 amount=-1
+kerning first=67 second=193 amount=-3
+kerning first=8221 second=193 amount=-4
+kerning first=68 second=65 amount=-1
+kerning first=8221 second=198 amount=-2
+kerning first=68 second=84 amount=-1
+kerning first=8221 second=197 amount=-3
+kerning first=8221 second=196 amount=-1
+kerning first=68 second=88 amount=-1
+kerning first=68 second=89 amount=-1
+kerning first=68 second=196 amount=-1
+kerning first=68 second=197 amount=-3
+kerning first=68 second=192 amount=-2
+kerning first=68 second=195 amount=-2
+kerning first=68 second=194 amount=-2
+kerning first=68 second=193 amount=-4
+kerning first=70 second=44 amount=-2
+kerning first=8221 second=65 amount=-1
+kerning first=70 second=46 amount=-2
+kerning first=70 second=65 amount=-1
+kerning first=70 second=74 amount=-1
+kerning first=8220 second=193 amount=-4
+kerning first=8220 second=198 amount=-2
+kerning first=8220 second=197 amount=-3
+kerning first=8220 second=196 amount=-1
+kerning first=8220 second=65 amount=-1
+kerning first=213 second=89 amount=-1
+kerning first=195 second=89 amount=-2
+kerning first=195 second=87 amount=-1
+kerning first=70 second=196 amount=-1
+kerning first=70 second=197 amount=-3
+kerning first=195 second=86 amount=-2
+kerning first=70 second=225 amount=-3
+kerning first=70 second=228 amount=-2
+kerning first=70 second=229 amount=-2
+kerning first=70 second=233 amount=-3
+kerning first=70 second=243 amount=-3
+kerning first=70 second=246 amount=-2
+kerning first=195 second=85 amount=-1
+kerning first=195 second=84 amount=-2
+kerning first=70 second=192 amount=-2
+kerning first=70 second=195 amount=-2
+kerning first=195 second=81 amount=-1
+kerning first=70 second=194 amount=-2
+kerning first=70 second=193 amount=-4
+kerning first=71 second=65 amount=-1
+kerning first=195 second=79 amount=-1
+kerning first=195 second=71 amount=-1
+kerning first=195 second=67 amount=-1
+kerning first=195 second=46 amount=-1
+kerning first=71 second=196 amount=-1
+kerning first=71 second=197 amount=-3
+kerning first=71 second=198 amount=-1
+kerning first=71 second=192 amount=-2
+kerning first=71 second=195 amount=-2
+kerning first=71 second=194 amount=-2
+kerning first=71 second=193 amount=-3
+kerning first=195 second=44 amount=-1
+kerning first=192 second=89 amount=-3
+kerning first=74 second=197 amount=-2
+kerning first=192 second=87 amount=-3
+kerning first=192 second=86 amount=-3
+kerning first=75 second=67 amount=-1
+kerning first=75 second=71 amount=-1
+kerning first=75 second=79 amount=-1
+kerning first=192 second=85 amount=-3
+kerning first=75 second=84 amount=1
+kerning first=192 second=84 amount=-3
+kerning first=192 second=81 amount=-3
+kerning first=192 second=79 amount=-3
+kerning first=192 second=71 amount=-3
+kerning first=75 second=121 amount=-1
+kerning first=75 second=214 amount=-1
+kerning first=75 second=228 amount=-1
+kerning first=75 second=229 amount=-2
+kerning first=75 second=243 amount=-2
+kerning first=75 second=246 amount=-2
+kerning first=75 second=252 amount=-1
+kerning first=192 second=67 amount=-3
+kerning first=75 second=338 amount=-1
+kerning first=75 second=211 amount=-1
+kerning first=76 second=45 amount=-1
+kerning first=192 second=46 amount=-2
+kerning first=192 second=44 amount=-2
+kerning first=187 second=193 amount=-3
+kerning first=76 second=79 amount=-1
+kerning first=187 second=198 amount=-1
+kerning first=76 second=84 amount=-1
+kerning first=187 second=197 amount=-2
+kerning first=76 second=86 amount=-1
+kerning first=76 second=87 amount=-1
+kerning first=76 second=89 amount=-2
+kerning first=187 second=89 amount=-1
+kerning first=187 second=86 amount=-1
+kerning first=187 second=84 amount=-2
+kerning first=76 second=197 amount=-2
+kerning first=246 second=121 amount=-2
+kerning first=76 second=214 amount=-1
+kerning first=246 second=120 amount=-2
+kerning first=76 second=252 amount=-1
+kerning first=76 second=198 amount=1
+kerning first=76 second=213 amount=-1
+kerning first=76 second=8221 amount=-2
+kerning first=76 second=8217 amount=-2
+kerning first=76 second=193 amount=-2
+kerning first=76 second=211 amount=-1
+kerning first=76 second=212 amount=-1
+kerning first=76 second=210 amount=-1
+kerning first=246 second=119 amount=-1
+kerning first=246 second=118 amount=-2
+kerning first=246 second=116 amount=-1
+kerning first=244 second=116 amount=-1
+kerning first=242 second=121 amount=-3
+kerning first=242 second=119 amount=-2
+kerning first=242 second=118 amount=-3
+kerning first=243 second=121 amount=-2
+kerning first=243 second=119 amount=-1
+kerning first=243 second=118 amount=-1
+kerning first=234 second=121 amount=-1
+kerning first=78 second=197 amount=-2
+kerning first=234 second=119 amount=-1
+kerning first=234 second=118 amount=-1
+kerning first=78 second=225 amount=-2
+kerning first=78 second=228 amount=-1
+kerning first=78 second=229 amount=-2
+kerning first=78 second=233 amount=-2
+kerning first=78 second=243 amount=-2
+kerning first=78 second=246 amount=-1
+kerning first=78 second=252 amount=-1
+kerning first=233 second=121 amount=-2
+kerning first=233 second=119 amount=-1
+kerning first=233 second=118 amount=-1
+kerning first=78 second=193 amount=-3
+kerning first=229 second=121 amount=-3
+kerning first=79 second=65 amount=-1
+kerning first=229 second=119 amount=-3
+kerning first=229 second=118 amount=-3
+kerning first=228 second=121 amount=-1
+kerning first=228 second=119 amount=-1
+kerning first=79 second=89 amount=-1
+kerning first=79 second=196 amount=-1
+kerning first=79 second=197 amount=-3
+kerning first=79 second=198 amount=-1
+kerning first=79 second=193 amount=-3
+kerning first=80 second=44 amount=-3
+kerning first=80 second=45 amount=-1
+kerning first=80 second=46 amount=-2
+kerning first=80 second=65 amount=-1
+kerning first=80 second=74 amount=-2
+kerning first=80 second=97 amount=-1
+kerning first=80 second=101 amount=-1
+kerning first=80 second=111 amount=-1
+kerning first=80 second=196 amount=-1
+kerning first=80 second=197 amount=-3
+kerning first=80 second=225 amount=-3
+kerning first=80 second=228 amount=-2
+kerning first=80 second=229 amount=-3
+kerning first=80 second=233 amount=-3
+kerning first=80 second=243 amount=-3
+kerning first=80 second=246 amount=-2
+kerning first=80 second=198 amount=-2
+kerning first=80 second=230 amount=-1
+kerning first=80 second=248 amount=-1
+kerning first=80 second=339 amount=-1
+kerning first=80 second=193 amount=-4
+kerning first=228 second=118 amount=-1
+kerning first=82 second=67 amount=-1
+kerning first=224 second=121 amount=-2
+kerning first=224 second=119 amount=-2
+kerning first=224 second=118 amount=-2
+kerning first=225 second=121 amount=-1
+kerning first=225 second=119 amount=-1
+kerning first=225 second=118 amount=-1
+kerning first=220 second=114 amount=-1
+kerning first=220 second=112 amount=-1
+kerning first=220 second=110 amount=-1
+kerning first=220 second=109 amount=-1
+kerning first=220 second=98 amount=-1
+kerning first=220 second=65 amount=-1
+kerning first=82 second=199 amount=-1
+kerning first=220 second=46 amount=-1
+kerning first=220 second=44 amount=-1
+kerning first=82 second=225 amount=-2
+kerning first=82 second=228 amount=-2
+kerning first=82 second=229 amount=-2
+kerning first=82 second=233 amount=-3
+kerning first=82 second=243 amount=-3
+kerning first=82 second=246 amount=-2
+kerning first=82 second=250 amount=-3
+kerning first=82 second=252 amount=-2
+kerning first=214 second=89 amount=-1
+kerning first=214 second=65 amount=-1
+kerning first=197 second=8217 amount=-2
+kerning first=197 second=8221 amount=-2
+kerning first=197 second=171 amount=-2
+kerning first=197 second=121 amount=-2
+kerning first=197 second=119 amount=-2
+kerning first=197 second=118 amount=-2
+kerning first=197 second=117 amount=-2
+kerning first=197 second=116 amount=-2
+kerning first=197 second=113 amount=-2
+kerning first=83 second=197 amount=-2
+kerning first=197 second=111 amount=-2
+kerning first=83 second=193 amount=-3
+kerning first=84 second=44 amount=-1
+kerning first=84 second=45 amount=-1
+kerning first=84 second=46 amount=-1
+kerning first=84 second=58 amount=-1
+kerning first=84 second=59 amount=-1
+kerning first=84 second=65 amount=-1
+kerning first=84 second=67 amount=-1
+kerning first=84 second=71 amount=-1
+kerning first=84 second=74 amount=-1
+kerning first=84 second=79 amount=-1
+kerning first=197 second=103 amount=-2
+kerning first=84 second=86 amount=1
+kerning first=197 second=101 amount=-2
+kerning first=84 second=89 amount=1
+kerning first=84 second=97 amount=-1
+kerning first=84 second=99 amount=-1
+kerning first=84 second=101 amount=-1
+kerning first=84 second=103 amount=-1
+kerning first=197 second=100 amount=-2
+kerning first=197 second=99 amount=-2
+kerning first=84 second=111 amount=-1
+kerning first=84 second=114 amount=-1
+kerning first=84 second=115 amount=-1
+kerning first=84 second=117 amount=-1
+kerning first=84 second=118 amount=-1
+kerning first=84 second=119 amount=-1
+kerning first=84 second=121 amount=-1
+kerning first=84 second=196 amount=-1
+kerning first=84 second=197 amount=-3
+kerning first=84 second=214 amount=-1
+kerning first=84 second=198 amount=-1
+kerning first=84 second=216 amount=-1
+kerning first=84 second=230 amount=-1
+kerning first=84 second=248 amount=-1
+kerning first=84 second=171 amount=-2
+kerning first=84 second=192 amount=-3
+kerning first=84 second=195 amount=-3
+kerning first=84 second=213 amount=-1
+kerning first=84 second=338 amount=-1
+kerning first=197 second=98 amount=-2
+kerning first=84 second=194 amount=-3
+kerning first=84 second=193 amount=-4
+kerning first=84 second=211 amount=-1
+kerning first=84 second=212 amount=-1
+kerning first=84 second=210 amount=-1
+kerning first=197 second=97 amount=-2
+kerning first=197 second=89 amount=-3
+kerning first=197 second=87 amount=-2
+kerning first=197 second=86 amount=-2
+kerning first=197 second=85 amount=-2
+kerning first=197 second=84 amount=-3
+kerning first=197 second=81 amount=-2
+kerning first=197 second=79 amount=-2
+kerning first=85 second=197 amount=-2
+kerning first=85 second=198 amount=-1
+kerning first=85 second=195 amount=-2
+kerning first=85 second=194 amount=-2
+kerning first=85 second=193 amount=-3
+kerning first=86 second=44 amount=-1
+kerning first=197 second=71 amount=-2
+kerning first=86 second=46 amount=-1
+kerning first=86 second=58 amount=-1
+kerning first=86 second=59 amount=-1
+kerning first=86 second=65 amount=-1
+kerning first=86 second=67 amount=-1
+kerning first=197 second=67 amount=-2
+kerning first=197 second=46 amount=-1
+kerning first=197 second=45 amount=-1
+kerning first=86 second=84 amount=1
+kerning first=86 second=97 amount=-1
+kerning first=86 second=101 amount=-1
+kerning first=86 second=103 amount=-1
+kerning first=197 second=44 amount=-2
+kerning first=86 second=111 amount=-1
+kerning first=86 second=114 amount=-1
+kerning first=86 second=117 amount=-1
+kerning first=86 second=121 amount=-1
+kerning first=86 second=196 amount=-1
+kerning first=86 second=197 amount=-3
+kerning first=196 second=8217 amount=-1
+kerning first=86 second=198 amount=-1
+kerning first=196 second=8221 amount=-1
+kerning first=86 second=230 amount=-1
+kerning first=86 second=248 amount=-1
+kerning first=86 second=171 amount=-1
+kerning first=86 second=192 amount=-2
+kerning first=86 second=195 amount=-2
+kerning first=196 second=89 amount=-1
+kerning first=196 second=86 amount=-1
+kerning first=86 second=194 amount=-2
+kerning first=86 second=193 amount=-4
+kerning first=196 second=84 amount=-1
+kerning first=196 second=46 amount=1
+kerning first=196 second=45 amount=1
+kerning first=87 second=44 amount=-1
+kerning first=121 second=246 amount=-2
+kerning first=87 second=46 amount=-1
+kerning first=121 second=242 amount=-1
+kerning first=87 second=59 amount=-1
+kerning first=87 second=65 amount=-1
+kerning first=121 second=243 amount=-2
+kerning first=121 second=234 amount=-1
+kerning first=121 second=232 amount=-1
+kerning first=121 second=233 amount=-2
+kerning first=87 second=84 amount=1
+kerning first=87 second=97 amount=-1
+kerning first=87 second=101 amount=-1
+kerning first=121 second=229 amount=-2
+kerning first=121 second=227 amount=-1
+kerning first=121 second=228 amount=-2
+kerning first=121 second=226 amount=-1
+kerning first=121 second=224 amount=-1
+kerning first=121 second=225 amount=-2
+kerning first=87 second=196 amount=-1
+kerning first=87 second=197 amount=-3
+kerning first=121 second=45 amount=1
+kerning first=87 second=198 amount=-1
+kerning first=121 second=44 amount=-1
+kerning first=87 second=230 amount=-1
+kerning first=120 second=233 amount=-2
+kerning first=87 second=171 amount=-1
+kerning first=87 second=192 amount=-2
+kerning first=87 second=195 amount=-2
+kerning first=119 second=246 amount=-2
+kerning first=119 second=242 amount=-1
+kerning first=87 second=194 amount=-2
+kerning first=87 second=193 amount=-3
+kerning first=119 second=243 amount=-2
+kerning first=119 second=234 amount=-1
+kerning first=119 second=232 amount=-1
+kerning first=119 second=233 amount=-2
+kerning first=88 second=67 amount=-1
+kerning first=119 second=229 amount=-2
+kerning first=119 second=227 amount=-1
+kerning first=119 second=228 amount=-2
+kerning first=119 second=226 amount=-1
+kerning first=119 second=224 amount=-1
+kerning first=119 second=225 amount=-2
+kerning first=88 second=121 amount=-1
+kerning first=119 second=45 amount=1
+kerning first=89 second=44 amount=-2
+kerning first=89 second=45 amount=-1
+kerning first=89 second=46 amount=-1
+kerning first=89 second=58 amount=-1
+kerning first=89 second=59 amount=-1
+kerning first=89 second=65 amount=-1
+kerning first=89 second=67 amount=-1
+kerning first=89 second=71 amount=-1
+kerning first=89 second=79 amount=-1
+kerning first=89 second=83 amount=-1
+kerning first=89 second=84 amount=1
+kerning first=89 second=97 amount=-1
+kerning first=89 second=101 amount=-1
+kerning first=89 second=103 amount=-1
+kerning first=119 second=44 amount=-1
+kerning first=89 second=111 amount=-1
+kerning first=89 second=112 amount=-1
+kerning first=89 second=117 amount=-1
+kerning first=89 second=118 amount=-1
+kerning first=89 second=196 amount=-1
+kerning first=89 second=197 amount=-3
+kerning first=89 second=214 amount=-1
+kerning first=89 second=198 amount=-2
+kerning first=89 second=216 amount=-1
+kerning first=89 second=230 amount=-1
+kerning first=89 second=248 amount=-1
+kerning first=89 second=171 amount=-2
+kerning first=89 second=192 amount=-2
+kerning first=89 second=195 amount=-2
+kerning first=89 second=213 amount=-1
+kerning first=118 second=246 amount=-2
+kerning first=89 second=194 amount=-2
+kerning first=89 second=193 amount=-4
+kerning first=89 second=211 amount=-1
+kerning first=89 second=212 amount=-1
+kerning first=89 second=210 amount=-1
+kerning first=90 second=118 amount=-1
+kerning first=90 second=121 amount=-1
+kerning first=118 second=242 amount=-1
+kerning first=118 second=243 amount=-2
+kerning first=118 second=234 amount=-1
+kerning first=118 second=232 amount=-1
+kerning first=118 second=233 amount=-2
+kerning first=118 second=229 amount=-2
+kerning first=118 second=227 amount=-1
+kerning first=118 second=228 amount=-2
+kerning first=118 second=226 amount=-1
+kerning first=118 second=224 amount=-1
+kerning first=118 second=225 amount=-2
+kerning first=118 second=45 amount=1
+kerning first=118 second=44 amount=-1
+kerning first=116 second=246 amount=-1
+kerning first=116 second=243 amount=-2
+kerning first=116 second=233 amount=-2
+kerning first=116 second=229 amount=-2
+kerning first=116 second=228 amount=-1
+kerning first=102 second=102 amount=1
+kerning first=102 second=105 amount=1
+kerning first=102 second=106 amount=1
+kerning first=116 second=225 amount=-2
+kerning first=114 second=246 amount=-1
+kerning first=114 second=244 amount=-1
+kerning first=102 second=116 amount=1
+kerning first=102 second=225 amount=-2
+kerning first=102 second=228 amount=-1
+kerning first=102 second=229 amount=-2
+kerning first=102 second=233 amount=-2
+kerning first=102 second=243 amount=-2
+kerning first=102 second=246 amount=-1
+kerning first=114 second=242 amount=-1
+kerning first=114 second=243 amount=-2
+kerning first=114 second=234 amount=-1
+kerning first=114 second=232 amount=-1
+kerning first=114 second=233 amount=-2
+kerning first=114 second=229 amount=-2
+kerning first=114 second=228 amount=-1
+kerning first=114 second=226 amount=-1
+kerning first=103 second=228 amount=-1
+kerning first=103 second=229 amount=-2
+kerning first=103 second=233 amount=-2
+kerning first=103 second=243 amount=-2
+kerning first=103 second=246 amount=-1
+kerning first=114 second=224 amount=-1
+kerning first=114 second=225 amount=-2
+kerning first=104 second=8217 amount=-1
+kerning first=114 second=116 amount=1
+kerning first=114 second=46 amount=-1
+kerning first=114 second=44 amount=-1
+kerning first=111 second=84 amount=-1
+kerning first=110 second=84 amount=-1
+kerning first=107 second=252 amount=-2
+kerning first=107 second=246 amount=-2
+kerning first=107 second=243 amount=-2
+kerning first=107 second=233 amount=-2
+kerning first=107 second=229 amount=-2
+kerning first=107 second=228 amount=-2
+kerning first=107 second=225 amount=-2
diff --git a/data/font/DomCasual32px_0.png b/data/font/DomCasual32px_0.png
new file mode 100644
index 00000000..35dc02bf
Binary files /dev/null and b/data/font/DomCasual32px_0.png differ
diff --git a/data/font/DomCasualD.ttf b/data/font/DomCasualD.ttf
new file mode 100644
index 00000000..53ed1860
Binary files /dev/null and b/data/font/DomCasualD.ttf differ
diff --git a/data/font/DomCasualRegular.otf b/data/font/DomCasualRegular.otf
new file mode 100644
index 00000000..5dcd3f7d
Binary files /dev/null and b/data/font/DomCasualRegular.otf differ
diff --git a/data/font/EXPON.TTF b/data/font/EXPON.TTF
new file mode 100644
index 00000000..370bc940
Binary files /dev/null and b/data/font/EXPON.TTF differ
diff --git a/data/font/Expo32.fnt b/data/font/Expo32.fnt
new file mode 100644
index 00000000..4365fd32
--- /dev/null
+++ b/data/font/Expo32.fnt
@@ -0,0 +1,280 @@
+info face="Expo" size=32 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
+common lineHeight=32 base=25 scaleW=512 scaleH=512 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4
+page id=0 file="Expo32_0.png"
+chars count=182
+char id=32 x=510 y=12 width=1 height=1 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15
+char id=33 x=465 y=61 width=7 height=17 xoffset=0 yoffset=8 xadvance=7 page=0 chnl=15
+char id=34 x=397 y=79 width=8 height=7 xoffset=0 yoffset=8 xadvance=9 page=0 chnl=15
+char id=35 x=240 y=44 width=18 height=17 xoffset=0 yoffset=8 xadvance=19 page=0 chnl=15
+char id=36 x=93 y=26 width=15 height=19 xoffset=0 yoffset=8 xadvance=16 page=0 chnl=15
+char id=37 x=465 y=43 width=16 height=17 xoffset=0 yoffset=8 xadvance=17 page=0 chnl=15
+char id=38 x=22 y=26 width=19 height=19 xoffset=0 yoffset=8 xadvance=19 page=0 chnl=15
+char id=39 x=418 y=79 width=4 height=7 xoffset=0 yoffset=8 xadvance=5 page=0 chnl=15
+char id=40 x=457 y=61 width=7 height=17 xoffset=0 yoffset=8 xadvance=7 page=0 chnl=15
+char id=41 x=473 y=61 width=6 height=17 xoffset=0 yoffset=8 xadvance=7 page=0 chnl=15
+char id=42 x=310 y=79 width=9 height=10 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=15
+char id=43 x=299 y=79 width=10 height=11 xoffset=0 yoffset=14 xadvance=11 page=0 chnl=15
+char id=44 x=443 y=79 width=5 height=6 xoffset=-1 yoffset=22 xadvance=5 page=0 chnl=15
+char id=45 x=31 y=99 width=8 height=4 xoffset=0 yoffset=17 xadvance=9 page=0 chnl=15
+char id=46 x=40 y=97 width=4 height=4 xoffset=0 yoffset=21 xadvance=5 page=0 chnl=15
+char id=47 x=239 y=63 width=13 height=17 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=15
+char id=48 x=309 y=61 width=13 height=17 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=15
+char id=49 x=61 y=46 width=9 height=18 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=15
+char id=50 x=295 y=61 width=13 height=17 xoffset=0 yoffset=8 xadvance=13 page=0 chnl=15
+char id=51 x=496 y=23 width=13 height=18 xoffset=0 yoffset=7 xadvance=14 page=0 chnl=15
+char id=52 x=132 y=64 width=15 height=17 xoffset=0 yoffset=8 xadvance=15 page=0 chnl=15
+char id=53 x=27 y=46 width=11 height=18 xoffset=0 yoffset=7 xadvance=12 page=0 chnl=15
+char id=54 x=499 y=42 width=12 height=17 xoffset=0 yoffset=8 xadvance=13 page=0 chnl=15
+char id=55 x=389 y=61 width=12 height=17 xoffset=0 yoffset=8 xadvance=13 page=0 chnl=15
+char id=56 x=209 y=63 width=14 height=17 xoffset=0 yoffset=8 xadvance=15 page=0 chnl=15
+char id=57 x=281 y=61 width=13 height=17 xoffset=0 yoffset=8 xadvance=13 page=0 chnl=15
+char id=58 x=507 y=0 width=4 height=11 xoffset=0 yoffset=14 xadvance=5 page=0 chnl=15
+char id=59 x=490 y=60 width=5 height=14 xoffset=-1 yoffset=14 xadvance=5 page=0 chnl=15
+char id=60 x=277 y=80 width=10 height=11 xoffset=0 yoffset=14 xadvance=11 page=0 chnl=15
+char id=61 x=433 y=79 width=9 height=6 xoffset=0 yoffset=16 xadvance=10 page=0 chnl=15
+char id=62 x=266 y=80 width=10 height=11 xoffset=0 yoffset=14 xadvance=11 page=0 chnl=15
+char id=63 x=402 y=61 width=11 height=17 xoffset=0 yoffset=8 xadvance=12 page=0 chnl=15
+char id=64 x=329 y=24 width=17 height=18 xoffset=0 yoffset=8 xadvance=18 page=0 chnl=15
+char id=65 x=310 y=24 width=18 height=18 xoffset=0 yoffset=7 xadvance=19 page=0 chnl=15
+char id=66 x=347 y=24 width=17 height=18 xoffset=0 yoffset=8 xadvance=18 page=0 chnl=15
+char id=67 x=335 y=43 width=18 height=17 xoffset=0 yoffset=8 xadvance=18 page=0 chnl=15
+char id=68 x=429 y=43 width=17 height=17 xoffset=0 yoffset=8 xadvance=18 page=0 chnl=15
+char id=69 x=400 y=24 width=16 height=18 xoffset=0 yoffset=7 xadvance=16 page=0 chnl=15
+char id=70 x=417 y=24 width=16 height=18 xoffset=0 yoffset=7 xadvance=16 page=0 chnl=15
+char id=71 x=365 y=24 width=17 height=18 xoffset=0 yoffset=7 xadvance=17 page=0 chnl=15
+char id=72 x=220 y=45 width=19 height=17 xoffset=0 yoffset=8 xadvance=20 page=0 chnl=15
+char id=73 x=81 y=46 width=9 height=18 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=15
+char id=74 x=50 y=46 width=10 height=18 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=15
+char id=75 x=411 y=43 width=17 height=17 xoffset=0 yoffset=8 xadvance=18 page=0 chnl=15
+char id=76 x=224 y=63 width=14 height=17 xoffset=0 yoffset=8 xadvance=15 page=0 chnl=15
+char id=77 x=134 y=46 width=24 height=17 xoffset=0 yoffset=8 xadvance=25 page=0 chnl=15
+char id=78 x=289 y=24 width=20 height=18 xoffset=0 yoffset=7 xadvance=21 page=0 chnl=15
+char id=79 x=482 y=42 width=16 height=17 xoffset=0 yoffset=8 xadvance=17 page=0 chnl=15
+char id=80 x=0 y=68 width=16 height=17 xoffset=0 yoffset=8 xadvance=18 page=0 chnl=15
+char id=81 x=200 y=45 width=19 height=17 xoffset=0 yoffset=8 xadvance=19 page=0 chnl=15
+char id=82 x=392 y=43 width=18 height=17 xoffset=0 yoffset=8 xadvance=18 page=0 chnl=15
+char id=83 x=447 y=43 width=17 height=17 xoffset=0 yoffset=8 xadvance=17 page=0 chnl=15
+char id=84 x=34 y=65 width=16 height=17 xoffset=0 yoffset=8 xadvance=17 page=0 chnl=15
+char id=85 x=180 y=45 width=19 height=17 xoffset=0 yoffset=8 xadvance=19 page=0 chnl=15
+char id=86 x=354 y=43 width=18 height=17 xoffset=0 yoffset=8 xadvance=19 page=0 chnl=15
+char id=87 x=108 y=46 width=25 height=17 xoffset=0 yoffset=8 xadvance=26 page=0 chnl=15
+char id=88 x=159 y=46 width=20 height=17 xoffset=0 yoffset=8 xadvance=21 page=0 chnl=15
+char id=89 x=373 y=43 width=18 height=17 xoffset=0 yoffset=8 xadvance=19 page=0 chnl=15
+char id=90 x=17 y=67 width=16 height=17 xoffset=0 yoffset=8 xadvance=17 page=0 chnl=15
+char id=91 x=500 y=0 width=6 height=21 xoffset=0 yoffset=6 xadvance=6 page=0 chnl=15
+char id=92 x=267 y=62 width=13 height=17 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=15
+char id=93 x=0 y=27 width=5 height=21 xoffset=0 yoffset=6 xadvance=5 page=0 chnl=15
+char id=94 x=472 y=79 width=10 height=5 xoffset=0 yoffset=8 xadvance=11 page=0 chnl=15
+char id=95 x=45 y=97 width=16 height=1 xoffset=0 yoffset=24 xadvance=17 page=0 chnl=15
+char id=96 x=412 y=79 width=5 height=7 xoffset=0 yoffset=8 xadvance=6 page=0 chnl=15
+char id=97 x=158 y=82 width=15 height=11 xoffset=0 yoffset=14 xadvance=15 page=0 chnl=15
+char id=98 x=194 y=63 width=14 height=17 xoffset=0 yoffset=8 xadvance=15 page=0 chnl=15
+char id=99 x=190 y=82 width=13 height=11 xoffset=0 yoffset=14 xadvance=13 page=0 chnl=15
+char id=100 x=42 y=26 width=16 height=19 xoffset=0 yoffset=7 xadvance=16 page=0 chnl=15
+char id=101 x=230 y=81 width=11 height=11 xoffset=0 yoffset=14 xadvance=12 page=0 chnl=15
+char id=102 x=438 y=61 width=10 height=17 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=15
+char id=103 x=323 y=61 width=13 height=17 xoffset=0 yoffset=14 xadvance=14 page=0 chnl=15
+char id=104 x=450 y=24 width=15 height=18 xoffset=0 yoffset=8 xadvance=16 page=0 chnl=15
+char id=105 x=91 y=46 width=8 height=18 xoffset=0 yoffset=8 xadvance=8 page=0 chnl=15
+char id=106 x=441 y=0 width=8 height=23 xoffset=0 yoffset=8 xadvance=8 page=0 chnl=15
+char id=107 x=481 y=23 width=14 height=18 xoffset=0 yoffset=8 xadvance=15 page=0 chnl=15
+char id=108 x=449 y=61 width=7 height=17 xoffset=0 yoffset=8 xadvance=8 page=0 chnl=15
+char id=109 x=46 y=83 width=22 height=12 xoffset=0 yoffset=13 xadvance=22 page=0 chnl=15
+char id=110 x=91 y=83 width=15 height=12 xoffset=0 yoffset=14 xadvance=15 page=0 chnl=15
+char id=111 x=242 y=81 width=11 height=11 xoffset=0 yoffset=14 xadvance=12 page=0 chnl=15
+char id=112 x=466 y=23 width=14 height=18 xoffset=0 yoffset=13 xadvance=15 page=0 chnl=15
+char id=113 x=179 y=64 width=14 height=17 xoffset=0 yoffset=14 xadvance=13 page=0 chnl=15
+char id=114 x=254 y=80 width=11 height=11 xoffset=0 yoffset=14 xadvance=12 page=0 chnl=15
+char id=115 x=288 y=79 width=10 height=11 xoffset=0 yoffset=14 xadvance=11 page=0 chnl=15
+char id=116 x=480 y=61 width=9 height=15 xoffset=0 yoffset=10 xadvance=9 page=0 chnl=15
+char id=117 x=141 y=82 width=16 height=11 xoffset=0 yoffset=14 xadvance=16 page=0 chnl=15
+char id=118 x=107 y=83 width=13 height=12 xoffset=0 yoffset=14 xadvance=14 page=0 chnl=15
+char id=119 x=121 y=82 width=19 height=11 xoffset=0 yoffset=14 xadvance=20 page=0 chnl=15
+char id=120 x=174 y=82 width=15 height=11 xoffset=0 yoffset=14 xadvance=16 page=0 chnl=15
+char id=121 x=253 y=62 width=13 height=17 xoffset=0 yoffset=14 xadvance=14 page=0 chnl=15
+char id=122 x=22 y=85 width=11 height=13 xoffset=0 yoffset=13 xadvance=12 page=0 chnl=15
+char id=123 x=218 y=25 width=6 height=19 xoffset=0 yoffset=8 xadvance=6 page=0 chnl=15
+char id=124 x=450 y=0 width=2 height=23 xoffset=0 yoffset=8 xadvance=3 page=0 chnl=15
+char id=125 x=225 y=25 width=6 height=19 xoffset=0 yoffset=8 xadvance=6 page=0 chnl=15
+char id=126 x=449 y=79 width=11 height=5 xoffset=0 yoffset=8 xadvance=12 page=0 chnl=15
+char id=161 x=100 y=46 width=7 height=18 xoffset=0 yoffset=13 xadvance=6 page=0 chnl=15
+char id=162 x=426 y=61 width=11 height=17 xoffset=0 yoffset=8 xadvance=12 page=0 chnl=15
+char id=163 x=164 y=64 width=14 height=17 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=15
+char id=165 x=316 y=43 width=18 height=17 xoffset=0 yoffset=8 xadvance=19 page=0 chnl=15
+char id=167 x=488 y=0 width=11 height=22 xoffset=0 yoffset=8 xadvance=12 page=0 chnl=15
+char id=168 x=461 y=79 width=10 height=5 xoffset=0 yoffset=8 xadvance=11 page=0 chnl=15
+char id=169 x=278 y=43 width=18 height=17 xoffset=0 yoffset=8 xadvance=19 page=0 chnl=15
+char id=170 x=342 y=79 width=8 height=9 xoffset=0 yoffset=8 xadvance=8 page=0 chnl=15
+char id=171 x=217 y=81 width=12 height=11 xoffset=0 yoffset=13 xadvance=13 page=0 chnl=15
+char id=172 x=358 y=79 width=18 height=7 xoffset=0 yoffset=18 xadvance=19 page=0 chnl=15
+char id=174 x=259 y=44 width=18 height=17 xoffset=0 yoffset=8 xadvance=19 page=0 chnl=15
+char id=177 x=34 y=83 width=11 height=13 xoffset=0 yoffset=12 xadvance=11 page=0 chnl=15
+char id=180 x=406 y=79 width=5 height=7 xoffset=0 yoffset=8 xadvance=7 page=0 chnl=15
+char id=181 x=141 y=26 width=14 height=19 xoffset=0 yoffset=12 xadvance=14 page=0 chnl=15
+char id=182 x=473 y=0 width=14 height=22 xoffset=0 yoffset=7 xadvance=15 page=0 chnl=15
+char id=183 x=483 y=77 width=4 height=5 xoffset=0 yoffset=18 xadvance=5 page=0 chnl=15
+char id=186 x=351 y=79 width=6 height=9 xoffset=0 yoffset=8 xadvance=7 page=0 chnl=15
+char id=187 x=204 y=81 width=12 height=11 xoffset=0 yoffset=13 xadvance=13 page=0 chnl=15
+char id=191 x=414 y=61 width=11 height=17 xoffset=0 yoffset=13 xadvance=10 page=0 chnl=15
+char id=192 x=60 y=0 width=18 height=25 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15
+char id=193 x=79 y=0 width=18 height=25 xoffset=0 yoffset=0 xadvance=20 page=0 chnl=15
+char id=194 x=207 y=0 width=18 height=24 xoffset=0 yoffset=1 xadvance=19 page=0 chnl=15
+char id=195 x=188 y=0 width=18 height=24 xoffset=0 yoffset=1 xadvance=19 page=0 chnl=15
+char id=196 x=277 y=0 width=19 height=23 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=15
+char id=197 x=168 y=0 width=19 height=24 xoffset=0 yoffset=1 xadvance=19 page=0 chnl=15
+char id=198 x=232 y=25 width=29 height=18 xoffset=0 yoffset=7 xadvance=29 page=0 chnl=15
+char id=199 x=226 y=0 width=18 height=24 xoffset=0 yoffset=8 xadvance=18 page=0 chnl=15
+char id=200 x=134 y=0 width=16 height=25 xoffset=0 yoffset=0 xadvance=16 page=0 chnl=15
+char id=201 x=151 y=0 width=16 height=25 xoffset=0 yoffset=0 xadvance=16 page=0 chnl=15
+char id=202 x=369 y=0 width=16 height=23 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=15
+char id=203 x=352 y=0 width=16 height=23 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=15
+char id=204 x=0 y=0 width=9 height=26 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
+char id=205 x=10 y=0 width=9 height=26 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
+char id=206 x=245 y=0 width=10 height=24 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15
+char id=207 x=430 y=0 width=10 height=23 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=209 x=256 y=0 width=20 height=23 xoffset=0 yoffset=2 xadvance=21 page=0 chnl=15
+char id=210 x=116 y=0 width=17 height=25 xoffset=0 yoffset=0 xadvance=18 page=0 chnl=15
+char id=211 x=98 y=0 width=17 height=25 xoffset=0 yoffset=0 xadvance=18 page=0 chnl=15
+char id=212 x=317 y=0 width=17 height=23 xoffset=0 yoffset=2 xadvance=18 page=0 chnl=15
+char id=213 x=386 y=0 width=16 height=23 xoffset=0 yoffset=2 xadvance=18 page=0 chnl=15
+char id=214 x=335 y=0 width=16 height=23 xoffset=0 yoffset=2 xadvance=18 page=0 chnl=15
+char id=216 x=383 y=24 width=16 height=18 xoffset=0 yoffset=7 xadvance=18 page=0 chnl=15
+char id=217 x=40 y=0 width=19 height=25 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15
+char id=218 x=20 y=0 width=19 height=25 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15
+char id=219 x=297 y=0 width=19 height=23 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=15
+char id=220 x=453 y=0 width=19 height=22 xoffset=0 yoffset=3 xadvance=19 page=0 chnl=15
+char id=223 x=297 y=43 width=18 height=17 xoffset=-1 yoffset=8 xadvance=18 page=0 chnl=15
+char id=224 x=125 y=26 width=15 height=19 xoffset=0 yoffset=6 xadvance=15 page=0 chnl=15
+char id=225 x=109 y=26 width=15 height=19 xoffset=0 yoffset=6 xadvance=15 page=0 chnl=15
+char id=226 x=68 y=65 width=15 height=17 xoffset=0 yoffset=8 xadvance=15 page=0 chnl=15
+char id=227 x=84 y=65 width=15 height=17 xoffset=0 yoffset=8 xadvance=15 page=0 chnl=15
+char id=228 x=100 y=65 width=15 height=17 xoffset=0 yoffset=8 xadvance=15 page=0 chnl=15
+char id=229 x=116 y=64 width=15 height=17 xoffset=0 yoffset=8 xadvance=15 page=0 chnl=15
+char id=230 x=69 y=83 width=21 height=12 xoffset=0 yoffset=13 xadvance=22 page=0 chnl=15
+char id=231 x=14 y=48 width=12 height=18 xoffset=0 yoffset=13 xadvance=13 page=0 chnl=15
+char id=232 x=182 y=25 width=11 height=19 xoffset=0 yoffset=6 xadvance=12 page=0 chnl=15
+char id=233 x=169 y=25 width=12 height=19 xoffset=0 yoffset=6 xadvance=13 page=0 chnl=15
+char id=234 x=350 y=61 width=12 height=17 xoffset=0 yoffset=8 xadvance=13 page=0 chnl=15
+char id=235 x=376 y=61 width=12 height=17 xoffset=0 yoffset=8 xadvance=12 page=0 chnl=15
+char id=236 x=14 y=27 width=7 height=20 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=15
+char id=237 x=6 y=27 width=7 height=20 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=15
+char id=238 x=39 y=46 width=10 height=18 xoffset=0 yoffset=8 xadvance=8 page=0 chnl=15
+char id=239 x=71 y=46 width=9 height=18 xoffset=0 yoffset=8 xadvance=8 page=0 chnl=15
+char id=241 x=434 y=24 width=15 height=18 xoffset=0 yoffset=8 xadvance=15 page=0 chnl=15
+char id=242 x=194 y=25 width=11 height=19 xoffset=0 yoffset=6 xadvance=12 page=0 chnl=15
+char id=243 x=156 y=26 width=12 height=19 xoffset=0 yoffset=6 xadvance=13 page=0 chnl=15
+char id=244 x=337 y=61 width=12 height=17 xoffset=0 yoffset=8 xadvance=13 page=0 chnl=15
+char id=245 x=0 y=49 width=13 height=18 xoffset=0 yoffset=7 xadvance=13 page=0 chnl=15
+char id=246 x=363 y=61 width=12 height=17 xoffset=0 yoffset=8 xadvance=13 page=0 chnl=15
+char id=248 x=496 y=60 width=12 height=13 xoffset=0 yoffset=13 xadvance=13 page=0 chnl=15
+char id=249 x=76 y=26 width=16 height=19 xoffset=0 yoffset=6 xadvance=16 page=0 chnl=15
+char id=250 x=59 y=26 width=16 height=19 xoffset=0 yoffset=6 xadvance=16 page=0 chnl=15
+char id=251 x=51 y=65 width=16 height=17 xoffset=0 yoffset=8 xadvance=16 page=0 chnl=15
+char id=252 x=148 y=64 width=15 height=17 xoffset=0 yoffset=8 xadvance=16 page=0 chnl=15
+char id=255 x=403 y=0 width=14 height=23 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=15
+char id=338 x=262 y=24 width=26 height=18 xoffset=0 yoffset=7 xadvance=28 page=0 chnl=15
+char id=339 x=0 y=86 width=21 height=13 xoffset=0 yoffset=12 xadvance=22 page=0 chnl=15
+char id=402 x=418 y=0 width=11 height=23 xoffset=0 yoffset=5 xadvance=11 page=0 chnl=15
+char id=8211 x=16 y=100 width=14 height=4 xoffset=0 yoffset=17 xadvance=15 page=0 chnl=15
+char id=8212 x=488 y=77 width=19 height=4 xoffset=0 yoffset=17 xadvance=20 page=0 chnl=15
+char id=8216 x=423 y=79 width=4 height=7 xoffset=0 yoffset=8 xadvance=5 page=0 chnl=15
+char id=8217 x=428 y=79 width=4 height=7 xoffset=0 yoffset=8 xadvance=5 page=0 chnl=15
+char id=8220 x=377 y=79 width=9 height=7 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=15
+char id=8221 x=387 y=79 width=9 height=7 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=15
+char id=8224 x=206 y=25 width=11 height=19 xoffset=0 yoffset=8 xadvance=11 page=0 chnl=15
+char id=8230 x=0 y=100 width=15 height=4 xoffset=0 yoffset=21 xadvance=16 page=0 chnl=15
+char id=8482 x=320 y=79 width=21 height=9 xoffset=0 yoffset=8 xadvance=21 page=0 chnl=15
+kernings count=93
+kerning first=39 second=115 amount=-2
+kerning first=39 second=116 amount=-1
+kerning first=65 second=34 amount=-2
+kerning first=65 second=39 amount=-2
+kerning first=65 second=84 amount=-2
+kerning first=65 second=86 amount=-2
+kerning first=65 second=87 amount=-3
+kerning first=65 second=89 amount=-2
+kerning first=65 second=118 amount=-2
+kerning first=65 second=119 amount=-1
+kerning first=65 second=121 amount=-1
+kerning first=65 second=186 amount=-2
+kerning first=70 second=44 amount=-3
+kerning first=70 second=46 amount=-2
+kerning first=70 second=65 amount=-2
+kerning first=76 second=39 amount=-1
+kerning first=76 second=84 amount=-1
+kerning first=76 second=86 amount=-2
+kerning first=76 second=87 amount=-1
+kerning first=76 second=89 amount=-1
+kerning first=80 second=44 amount=-3
+kerning first=80 second=46 amount=-3
+kerning first=80 second=65 amount=-2
+kerning first=84 second=44 amount=-2
+kerning first=84 second=45 amount=-2
+kerning first=84 second=46 amount=-3
+kerning first=84 second=65 amount=-2
+kerning first=170 second=65 amount=-1
+kerning first=84 second=97 amount=-2
+kerning first=84 second=99 amount=-1
+kerning first=84 second=101 amount=-1
+kerning first=121 second=46 amount=-3
+kerning first=84 second=111 amount=-1
+kerning first=84 second=114 amount=-1
+kerning first=84 second=115 amount=-1
+kerning first=121 second=44 amount=-2
+kerning first=119 second=46 amount=-2
+kerning first=86 second=44 amount=-2
+kerning first=86 second=45 amount=-3
+kerning first=86 second=46 amount=-2
+kerning first=86 second=58 amount=-1
+kerning first=86 second=59 amount=-1
+kerning first=86 second=65 amount=-2
+kerning first=86 second=67 amount=-1
+kerning first=86 second=79 amount=-1
+kerning first=86 second=97 amount=-3
+kerning first=86 second=99 amount=-3
+kerning first=86 second=101 amount=-3
+kerning first=86 second=105 amount=-2
+kerning first=86 second=111 amount=-3
+kerning first=86 second=114 amount=-2
+kerning first=86 second=117 amount=-2
+kerning first=86 second=121 amount=-2
+kerning first=87 second=44 amount=-3
+kerning first=87 second=45 amount=-3
+kerning first=87 second=46 amount=-4
+kerning first=87 second=58 amount=-1
+kerning first=87 second=59 amount=-2
+kerning first=87 second=65 amount=-2
+kerning first=87 second=67 amount=-1
+kerning first=87 second=79 amount=-1
+kerning first=87 second=97 amount=-3
+kerning first=87 second=99 amount=-3
+kerning first=87 second=101 amount=-3
+kerning first=87 second=105 amount=-2
+kerning first=87 second=111 amount=-2
+kerning first=87 second=114 amount=-2
+kerning first=87 second=117 amount=-2
+kerning first=87 second=121 amount=-1
+kerning first=89 second=44 amount=-3
+kerning first=89 second=45 amount=-3
+kerning first=89 second=46 amount=-3
+kerning first=89 second=58 amount=-1
+kerning first=89 second=59 amount=-2
+kerning first=89 second=65 amount=-2
+kerning first=89 second=97 amount=-3
+kerning first=89 second=101 amount=-3
+kerning first=89 second=105 amount=-1
+kerning first=89 second=111 amount=-2
+kerning first=89 second=112 amount=-2
+kerning first=89 second=113 amount=-3
+kerning first=89 second=114 amount=-2
+kerning first=89 second=117 amount=-2
+kerning first=89 second=118 amount=-2
+kerning first=96 second=65 amount=-2
+kerning first=102 second=39 amount=1
+kerning first=114 second=44 amount=-1
+kerning first=114 second=46 amount=-1
+kerning first=114 second=103 amount=-1
+kerning first=114 second=104 amount=-1
+kerning first=119 second=44 amount=-2
+kerning first=118 second=44 amount=-1
+kerning first=118 second=46 amount=-2
diff --git a/data/font/Expo32_0.png b/data/font/Expo32_0.png
new file mode 100644
index 00000000..857c7f79
Binary files /dev/null and b/data/font/Expo32_0.png differ
diff --git a/data/font/Expo50.fnt b/data/font/Expo50.fnt
new file mode 100644
index 00000000..8c9282cf
--- /dev/null
+++ b/data/font/Expo50.fnt
@@ -0,0 +1,284 @@
+info face="Expo" size=50 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
+common lineHeight=50 base=39 scaleW=512 scaleH=512 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4
+page id=0 file="Expo50_0.png"
+chars count=182
+char id=32 x=510 y=35 width=1 height=1 xoffset=0 yoffset=0 xadvance=12 page=0 chnl=15
+char id=33 x=0 y=191 width=11 height=26 xoffset=0 yoffset=13 xadvance=11 page=0 chnl=15
+char id=34 x=225 y=208 width=13 height=9 xoffset=1 yoffset=13 xadvance=14 page=0 chnl=15
+char id=35 x=0 y=137 width=29 height=26 xoffset=0 yoffset=13 xadvance=29 page=0 chnl=15
+char id=36 x=26 y=79 width=23 height=29 xoffset=1 yoffset=13 xadvance=25 page=0 chnl=15
+char id=37 x=323 y=127 width=26 height=26 xoffset=0 yoffset=13 xadvance=27 page=0 chnl=15
+char id=38 x=210 y=76 width=30 height=28 xoffset=1 yoffset=13 xadvance=30 page=0 chnl=15
+char id=39 x=259 y=207 width=7 height=9 xoffset=0 yoffset=13 xadvance=8 page=0 chnl=15
+char id=40 x=494 y=151 width=11 height=26 xoffset=0 yoffset=13 xadvance=11 page=0 chnl=15
+char id=41 x=502 y=68 width=9 height=26 xoffset=1 yoffset=13 xadvance=11 page=0 chnl=15
+char id=42 x=74 y=213 width=15 height=14 xoffset=0 yoffset=13 xadvance=16 page=0 chnl=15
+char id=43 x=482 y=178 width=16 height=18 xoffset=0 yoffset=21 xadvance=17 page=0 chnl=15
+char id=44 x=168 y=211 width=8 height=10 xoffset=0 yoffset=34 xadvance=9 page=0 chnl=15
+char id=45 x=426 y=198 width=13 height=6 xoffset=1 yoffset=26 xadvance=15 page=0 chnl=15
+char id=46 x=440 y=198 width=7 height=6 xoffset=0 yoffset=33 xadvance=8 page=0 chnl=15
+char id=47 x=240 y=160 width=21 height=26 xoffset=0 yoffset=13 xadvance=22 page=0 chnl=15
+char id=48 x=218 y=161 width=21 height=26 xoffset=0 yoffset=13 xadvance=22 page=0 chnl=15
+char id=49 x=301 y=99 width=14 height=27 xoffset=0 yoffset=13 xadvance=15 page=0 chnl=15
+char id=50 x=326 y=154 width=20 height=26 xoffset=0 yoffset=13 xadvance=20 page=0 chnl=15
+char id=51 x=224 y=105 width=20 height=27 xoffset=1 yoffset=12 xadvance=21 page=0 chnl=15
+char id=52 x=124 y=163 width=23 height=26 xoffset=0 yoffset=13 xadvance=23 page=0 chnl=15
+char id=53 x=245 y=103 width=20 height=27 xoffset=0 yoffset=12 xadvance=19 page=0 chnl=15
+char id=54 x=305 y=158 width=20 height=26 xoffset=0 yoffset=13 xadvance=21 page=0 chnl=15
+char id=55 x=266 y=103 width=19 height=27 xoffset=0 yoffset=12 xadvance=20 page=0 chnl=15
+char id=56 x=148 y=163 width=23 height=26 xoffset=0 yoffset=13 xadvance=24 page=0 chnl=15
+char id=57 x=284 y=158 width=20 height=26 xoffset=1 yoffset=13 xadvance=21 page=0 chnl=15
+char id=58 x=504 y=95 width=7 height=18 xoffset=0 yoffset=21 xadvance=8 page=0 chnl=15
+char id=59 x=58 y=191 width=8 height=23 xoffset=0 yoffset=21 xadvance=9 page=0 chnl=15
+char id=60 x=17 y=218 width=16 height=18 xoffset=0 yoffset=21 xadvance=17 page=0 chnl=15
+char id=61 x=177 y=211 width=15 height=9 xoffset=0 yoffset=25 xadvance=15 page=0 chnl=15
+char id=62 x=0 y=218 width=16 height=18 xoffset=1 yoffset=21 xadvance=18 page=0 chnl=15
+char id=63 x=427 y=152 width=18 height=26 xoffset=0 yoffset=13 xadvance=18 page=0 chnl=15
+char id=64 x=444 y=69 width=28 height=27 xoffset=0 yoffset=13 xadvance=29 page=0 chnl=15
+char id=65 x=414 y=69 width=29 height=27 xoffset=0 yoffset=12 xadvance=30 page=0 chnl=15
+char id=66 x=473 y=69 width=28 height=27 xoffset=0 yoffset=13 xadvance=27 page=0 chnl=15
+char id=67 x=295 y=131 width=27 height=26 xoffset=1 yoffset=13 xadvance=28 page=0 chnl=15
+char id=68 x=350 y=126 width=26 height=26 xoffset=1 yoffset=13 xadvance=28 page=0 chnl=15
+char id=69 x=82 y=108 width=24 height=27 xoffset=1 yoffset=12 xadvance=26 page=0 chnl=15
+char id=70 x=131 y=107 width=23 height=27 xoffset=1 yoffset=12 xadvance=24 page=0 chnl=15
+char id=71 x=0 y=109 width=27 height=27 xoffset=0 yoffset=12 xadvance=27 page=0 chnl=15
+char id=72 x=473 y=97 width=30 height=26 xoffset=0 yoffset=13 xadvance=31 page=0 chnl=15
+char id=73 x=286 y=103 width=14 height=27 xoffset=0 yoffset=13 xadvance=15 page=0 chnl=15
+char id=74 x=353 y=69 width=15 height=28 xoffset=0 yoffset=13 xadvance=16 page=0 chnl=15
+char id=75 x=209 y=134 width=28 height=26 xoffset=0 yoffset=13 xadvance=28 page=0 chnl=15
+char id=76 x=100 y=163 width=23 height=26 xoffset=0 yoffset=13 xadvance=24 page=0 chnl=15
+char id=77 x=370 y=98 width=38 height=26 xoffset=0 yoffset=13 xadvance=38 page=0 chnl=15
+char id=78 x=381 y=69 width=32 height=27 xoffset=0 yoffset=12 xadvance=32 page=0 chnl=15
+char id=79 x=377 y=125 width=26 height=26 xoffset=1 yoffset=13 xadvance=27 page=0 chnl=15
+char id=80 x=404 y=125 width=26 height=26 xoffset=1 yoffset=13 xadvance=27 page=0 chnl=15
+char id=81 x=442 y=97 width=30 height=26 xoffset=0 yoffset=13 xadvance=29 page=0 chnl=15
+char id=82 x=238 y=133 width=28 height=26 xoffset=0 yoffset=13 xadvance=29 page=0 chnl=15
+char id=83 x=267 y=131 width=27 height=26 xoffset=0 yoffset=13 xadvance=27 page=0 chnl=15
+char id=84 x=457 y=124 width=25 height=26 xoffset=1 yoffset=13 xadvance=26 page=0 chnl=15
+char id=85 x=150 y=135 width=29 height=26 xoffset=1 yoffset=13 xadvance=29 page=0 chnl=15
+char id=86 x=180 y=134 width=28 height=26 xoffset=1 yoffset=13 xadvance=29 page=0 chnl=15
+char id=87 x=329 y=99 width=40 height=26 xoffset=1 yoffset=13 xadvance=41 page=0 chnl=15
+char id=88 x=409 y=97 width=32 height=26 xoffset=0 yoffset=13 xadvance=32 page=0 chnl=15
+char id=89 x=30 y=137 width=29 height=26 xoffset=0 yoffset=13 xadvance=30 page=0 chnl=15
+char id=90 x=431 y=124 width=25 height=26 xoffset=0 yoffset=13 xadvance=26 page=0 chnl=15
+char id=91 x=502 y=0 width=9 height=34 xoffset=1 yoffset=9 xadvance=9 page=0 chnl=15
+char id=92 x=196 y=161 width=21 height=26 xoffset=0 yoffset=13 xadvance=22 page=0 chnl=15
+char id=93 x=214 y=40 width=8 height=34 xoffset=0 yoffset=9 xadvance=8 page=0 chnl=15
+char id=94 x=408 y=198 width=17 height=6 xoffset=0 yoffset=13 xadvance=17 page=0 chnl=15
+char id=95 x=448 y=197 width=26 height=1 xoffset=0 yoffset=38 xadvance=26 page=0 chnl=15
+char id=96 x=239 y=208 width=9 height=9 xoffset=0 yoffset=13 xadvance=10 page=0 chnl=15
+char id=97 x=310 y=185 width=24 height=18 xoffset=0 yoffset=21 xadvance=24 page=0 chnl=15
+char id=98 x=179 y=106 width=22 height=27 xoffset=1 yoffset=13 xadvance=23 page=0 chnl=15
+char id=99 x=385 y=180 width=20 height=18 xoffset=0 yoffset=21 xadvance=20 page=0 chnl=15
+char id=100 x=0 y=79 width=25 height=29 xoffset=0 yoffset=11 xadvance=24 page=0 chnl=15
+char id=101 x=406 y=179 width=19 height=18 xoffset=0 yoffset=21 xadvance=19 page=0 chnl=15
+char id=102 x=463 y=151 width=15 height=26 xoffset=0 yoffset=13 xadvance=15 page=0 chnl=15
+char id=103 x=291 y=70 width=22 height=28 xoffset=0 yoffset=21 xadvance=22 page=0 chnl=15
+char id=104 x=56 y=108 width=25 height=27 xoffset=0 yoffset=13 xadvance=25 page=0 chnl=15
+char id=105 x=316 y=99 width=12 height=27 xoffset=0 yoffset=13 xadvance=13 page=0 chnl=15
+char id=106 x=201 y=40 width=12 height=35 xoffset=0 yoffset=13 xadvance=12 page=0 chnl=15
+char id=107 x=107 y=108 width=23 height=27 xoffset=0 yoffset=13 xadvance=24 page=0 chnl=15
+char id=108 x=12 y=191 width=10 height=26 xoffset=1 yoffset=13 xadvance=12 page=0 chnl=15
+char id=109 x=67 y=191 width=35 height=21 xoffset=0 yoffset=19 xadvance=34 page=0 chnl=15
+char id=110 x=232 y=188 width=23 height=19 xoffset=1 yoffset=21 xadvance=24 page=0 chnl=15
+char id=111 x=426 y=179 width=19 height=18 xoffset=0 yoffset=21 xadvance=20 page=0 chnl=15
+char id=112 x=50 y=78 width=22 height=29 xoffset=1 yoffset=20 xadvance=24 page=0 chnl=15
+char id=113 x=268 y=74 width=22 height=28 xoffset=0 yoffset=21 xadvance=21 page=0 chnl=15
+char id=114 x=464 y=178 width=17 height=18 xoffset=1 yoffset=21 xadvance=19 page=0 chnl=15
+char id=115 x=446 y=178 width=17 height=18 xoffset=0 yoffset=21 xadvance=18 page=0 chnl=15
+char id=116 x=42 y=191 width=15 height=24 xoffset=0 yoffset=15 xadvance=14 page=0 chnl=15
+char id=117 x=335 y=181 width=24 height=18 xoffset=1 yoffset=21 xadvance=25 page=0 chnl=15
+char id=118 x=256 y=187 width=21 height=19 xoffset=0 yoffset=21 xadvance=22 page=0 chnl=15
+char id=119 x=278 y=187 width=31 height=18 xoffset=0 yoffset=21 xadvance=32 page=0 chnl=15
+char id=120 x=360 y=181 width=24 height=18 xoffset=0 yoffset=21 xadvance=25 page=0 chnl=15
+char id=121 x=202 y=106 width=21 height=27 xoffset=0 yoffset=21 xadvance=22 page=0 chnl=15
+char id=122 x=160 y=190 width=18 height=20 xoffset=0 yoffset=20 xadvance=19 page=0 chnl=15
+char id=123 x=499 y=38 width=10 height=29 xoffset=0 yoffset=13 xadvance=10 page=0 chnl=15
+char id=124 x=223 y=40 width=3 height=34 xoffset=1 yoffset=13 xadvance=5 page=0 chnl=15
+char id=125 x=110 y=78 width=9 height=29 xoffset=0 yoffset=13 xadvance=9 page=0 chnl=15
+char id=126 x=283 y=206 width=18 height=7 xoffset=0 yoffset=13 xadvance=19 page=0 chnl=15
+char id=161 x=369 y=69 width=11 height=28 xoffset=0 yoffset=20 xadvance=9 page=0 chnl=15
+char id=162 x=23 y=191 width=18 height=25 xoffset=0 yoffset=13 xadvance=19 page=0 chnl=15
+char id=163 x=262 y=160 width=21 height=26 xoffset=1 yoffset=13 xadvance=21 page=0 chnl=15
+char id=165 x=60 y=136 width=29 height=26 xoffset=0 yoffset=13 xadvance=29 page=0 chnl=15
+char id=167 x=250 y=40 width=18 height=33 xoffset=0 yoffset=13 xadvance=18 page=0 chnl=15
+char id=168 x=302 y=206 width=16 height=7 xoffset=0 yoffset=13 xadvance=17 page=0 chnl=15
+char id=169 x=120 y=136 width=29 height=26 xoffset=0 yoffset=13 xadvance=29 page=0 chnl=15
+char id=170 x=124 y=211 width=13 height=13 xoffset=0 yoffset=13 xadvance=13 page=0 chnl=15
+char id=171 x=34 y=217 width=19 height=17 xoffset=0 yoffset=20 xadvance=20 page=0 chnl=15
+char id=172 x=138 y=211 width=29 height=12 xoffset=0 yoffset=27 xadvance=29 page=0 chnl=15
+char id=174 x=90 y=136 width=29 height=26 xoffset=0 yoffset=13 xadvance=29 page=0 chnl=15
+char id=177 x=179 y=189 width=17 height=20 xoffset=0 yoffset=19 xadvance=17 page=0 chnl=15
+char id=180 x=249 y=208 width=9 height=9 xoffset=0 yoffset=13 xadvance=10 page=0 chnl=15
+char id=181 x=382 y=38 width=23 height=30 xoffset=0 yoffset=18 xadvance=22 page=0 chnl=15
+char id=182 x=227 y=40 width=22 height=33 xoffset=0 yoffset=12 xadvance=23 page=0 chnl=15
+char id=183 x=319 y=204 width=7 height=7 xoffset=0 yoffset=28 xadvance=8 page=0 chnl=15
+char id=186 x=499 y=178 width=9 height=13 xoffset=1 yoffset=13 xadvance=11 page=0 chnl=15
+char id=187 x=54 y=216 width=19 height=17 xoffset=0 yoffset=20 xadvance=20 page=0 chnl=15
+char id=191 x=335 y=69 width=17 height=28 xoffset=0 yoffset=19 xadvance=15 page=0 chnl=15
+char id=192 x=0 y=0 width=29 height=40 xoffset=0 yoffset=-1 xadvance=30 page=0 chnl=15
+char id=193 x=30 y=0 width=29 height=40 xoffset=1 yoffset=-1 xadvance=31 page=0 chnl=15
+char id=194 x=364 y=0 width=29 height=37 xoffset=1 yoffset=2 xadvance=30 page=0 chnl=15
+char id=195 x=283 y=0 width=29 height=38 xoffset=1 yoffset=1 xadvance=30 page=0 chnl=15
+char id=196 x=35 y=41 width=30 height=36 xoffset=1 yoffset=3 xadvance=30 page=0 chnl=15
+char id=197 x=252 y=0 width=30 height=38 xoffset=1 yoffset=1 xadvance=30 page=0 chnl=15
+char id=198 x=120 y=78 width=46 height=28 xoffset=0 yoffset=11 xadvance=46 page=0 chnl=15
+char id=199 x=394 y=0 width=28 height=37 xoffset=0 yoffset=13 xadvance=28 page=0 chnl=15
+char id=200 x=85 y=0 width=24 height=40 xoffset=1 yoffset=-1 xadvance=26 page=0 chnl=15
+char id=201 x=60 y=0 width=24 height=40 xoffset=1 yoffset=-1 xadvance=25 page=0 chnl=15
+char id=202 x=477 y=0 width=24 height=37 xoffset=1 yoffset=2 xadvance=26 page=0 chnl=15
+char id=203 x=153 y=40 width=25 height=36 xoffset=1 yoffset=3 xadvance=26 page=0 chnl=15
+char id=204 x=125 y=0 width=14 height=40 xoffset=0 yoffset=0 xadvance=15 page=0 chnl=15
+char id=205 x=110 y=0 width=14 height=40 xoffset=0 yoffset=0 xadvance=15 page=0 chnl=15
+char id=206 x=313 y=0 width=17 height=38 xoffset=0 yoffset=2 xadvance=15 page=0 chnl=15
+char id=207 x=18 y=41 width=16 height=37 xoffset=0 yoffset=3 xadvance=15 page=0 chnl=15
+char id=209 x=331 y=0 width=32 height=37 xoffset=0 yoffset=2 xadvance=33 page=0 chnl=15
+char id=210 x=225 y=0 width=26 height=39 xoffset=1 yoffset=0 xadvance=28 page=0 chnl=15
+char id=211 x=198 y=0 width=26 height=39 xoffset=1 yoffset=0 xadvance=28 page=0 chnl=15
+char id=212 x=450 y=0 width=26 height=37 xoffset=1 yoffset=2 xadvance=28 page=0 chnl=15
+char id=213 x=423 y=0 width=26 height=37 xoffset=1 yoffset=2 xadvance=27 page=0 chnl=15
+char id=214 x=126 y=41 width=26 height=36 xoffset=1 yoffset=3 xadvance=27 page=0 chnl=15
+char id=216 x=241 y=74 width=26 height=28 xoffset=0 yoffset=11 xadvance=27 page=0 chnl=15
+char id=217 x=140 y=0 width=28 height=39 xoffset=1 yoffset=0 xadvance=30 page=0 chnl=15
+char id=218 x=169 y=0 width=28 height=39 xoffset=1 yoffset=0 xadvance=30 page=0 chnl=15
+char id=219 x=96 y=41 width=29 height=36 xoffset=1 yoffset=3 xadvance=30 page=0 chnl=15
+char id=220 x=66 y=41 width=29 height=36 xoffset=1 yoffset=3 xadvance=29 page=0 chnl=15
+char id=223 x=28 y=109 width=27 height=27 xoffset=-1 yoffset=13 xadvance=27 page=0 chnl=15
+char id=224 x=357 y=38 width=24 height=30 xoffset=0 yoffset=9 xadvance=24 page=0 chnl=15
+char id=225 x=332 y=38 width=24 height=30 xoffset=0 yoffset=9 xadvance=24 page=0 chnl=15
+char id=226 x=75 y=163 width=24 height=26 xoffset=0 yoffset=13 xadvance=24 page=0 chnl=15
+char id=227 x=25 y=164 width=24 height=26 xoffset=0 yoffset=13 xadvance=24 page=0 chnl=15
+char id=228 x=172 y=162 width=23 height=26 xoffset=0 yoffset=13 xadvance=23 page=0 chnl=15
+char id=229 x=50 y=164 width=24 height=26 xoffset=0 yoffset=13 xadvance=24 page=0 chnl=15
+char id=230 x=197 y=188 width=34 height=19 xoffset=0 yoffset=20 xadvance=34 page=0 chnl=15
+char id=231 x=73 y=78 width=19 height=29 xoffset=0 yoffset=20 xadvance=20 page=0 chnl=15
+char id=232 x=426 y=38 width=19 height=30 xoffset=0 yoffset=9 xadvance=19 page=0 chnl=15
+char id=233 x=406 y=38 width=19 height=30 xoffset=0 yoffset=9 xadvance=20 page=0 chnl=15
+char id=234 x=367 y=153 width=19 height=26 xoffset=0 yoffset=13 xadvance=20 page=0 chnl=15
+char id=235 x=347 y=154 width=19 height=26 xoffset=1 yoffset=13 xadvance=19 page=0 chnl=15
+char id=236 x=269 y=39 width=12 height=31 xoffset=0 yoffset=8 xadvance=13 page=0 chnl=15
+char id=237 x=486 y=38 width=12 height=30 xoffset=0 yoffset=9 xadvance=13 page=0 chnl=15
+char id=238 x=446 y=151 width=16 height=26 xoffset=-1 yoffset=13 xadvance=13 page=0 chnl=15
+char id=239 x=479 y=151 width=14 height=26 xoffset=0 yoffset=13 xadvance=13 page=0 chnl=15
+char id=241 x=155 y=107 width=23 height=27 xoffset=1 yoffset=13 xadvance=24 page=0 chnl=15
+char id=242 x=446 y=38 width=19 height=30 xoffset=0 yoffset=9 xadvance=19 page=0 chnl=15
+char id=243 x=466 y=38 width=19 height=30 xoffset=0 yoffset=9 xadvance=20 page=0 chnl=15
+char id=244 x=407 y=152 width=19 height=26 xoffset=0 yoffset=13 xadvance=20 page=0 chnl=15
+char id=245 x=314 y=70 width=20 height=28 xoffset=0 yoffset=11 xadvance=20 page=0 chnl=15
+char id=246 x=387 y=152 width=19 height=26 xoffset=0 yoffset=13 xadvance=20 page=0 chnl=15
+char id=248 x=138 y=190 width=21 height=20 xoffset=-1 yoffset=20 xadvance=20 page=0 chnl=15
+char id=249 x=307 y=39 width=24 height=30 xoffset=1 yoffset=9 xadvance=24 page=0 chnl=15
+char id=250 x=282 y=39 width=24 height=30 xoffset=1 yoffset=9 xadvance=25 page=0 chnl=15
+char id=251 x=0 y=164 width=24 height=26 xoffset=1 yoffset=13 xadvance=24 page=0 chnl=15
+char id=252 x=483 y=124 width=24 height=26 xoffset=1 yoffset=13 xadvance=25 page=0 chnl=15
+char id=255 x=179 y=40 width=21 height=35 xoffset=1 yoffset=13 xadvance=22 page=0 chnl=15
+char id=338 x=167 y=77 width=42 height=28 xoffset=0 yoffset=11 xadvance=44 page=0 chnl=15
+char id=339 x=103 y=190 width=34 height=20 xoffset=0 yoffset=19 xadvance=34 page=0 chnl=15
+char id=402 x=0 y=41 width=17 height=37 xoffset=0 yoffset=7 xadvance=17 page=0 chnl=15
+char id=8211 x=384 y=200 width=23 height=6 xoffset=0 yoffset=26 xadvance=24 page=0 chnl=15
+char id=8212 x=327 y=204 width=30 height=6 xoffset=0 yoffset=26 xadvance=31 page=0 chnl=15
+char id=8216 x=267 y=207 width=7 height=9 xoffset=0 yoffset=13 xadvance=8 page=0 chnl=15
+char id=8217 x=275 y=207 width=7 height=9 xoffset=0 yoffset=13 xadvance=8 page=0 chnl=15
+char id=8220 x=193 y=210 width=15 height=9 xoffset=0 yoffset=13 xadvance=16 page=0 chnl=15
+char id=8221 x=209 y=208 width=15 height=9 xoffset=0 yoffset=13 xadvance=16 page=0 chnl=15
+char id=8224 x=93 y=78 width=16 height=29 xoffset=1 yoffset=13 xadvance=17 page=0 chnl=15
+char id=8230 x=358 y=200 width=25 height=6 xoffset=0 yoffset=33 xadvance=25 page=0 chnl=15
+char id=8482 x=90 y=213 width=33 height=13 xoffset=0 yoffset=13 xadvance=33 page=0 chnl=15
+kernings count=97
+kerning first=39 second=115 amount=-4
+kerning first=39 second=116 amount=-2
+kerning first=65 second=34 amount=-3
+kerning first=65 second=39 amount=-3
+kerning first=65 second=84 amount=-3
+kerning first=65 second=86 amount=-4
+kerning first=65 second=87 amount=-4
+kerning first=65 second=89 amount=-3
+kerning first=65 second=118 amount=-3
+kerning first=65 second=119 amount=-2
+kerning first=65 second=121 amount=-1
+kerning first=65 second=186 amount=-3
+kerning first=70 second=44 amount=-4
+kerning first=70 second=46 amount=-4
+kerning first=70 second=65 amount=-3
+kerning first=76 second=39 amount=-1
+kerning first=76 second=84 amount=-1
+kerning first=76 second=86 amount=-2
+kerning first=76 second=87 amount=-2
+kerning first=76 second=89 amount=-2
+kerning first=80 second=44 amount=-5
+kerning first=80 second=46 amount=-5
+kerning first=80 second=65 amount=-3
+kerning first=84 second=44 amount=-4
+kerning first=84 second=45 amount=-4
+kerning first=84 second=46 amount=-5
+kerning first=84 second=65 amount=-3
+kerning first=84 second=79 amount=-1
+kerning first=84 second=97 amount=-3
+kerning first=84 second=99 amount=-2
+kerning first=84 second=101 amount=-2
+kerning first=170 second=65 amount=-2
+kerning first=84 second=111 amount=-2
+kerning first=84 second=114 amount=-1
+kerning first=84 second=115 amount=-2
+kerning first=84 second=117 amount=-1
+kerning first=84 second=119 amount=-1
+kerning first=86 second=44 amount=-4
+kerning first=86 second=45 amount=-5
+kerning first=86 second=46 amount=-4
+kerning first=86 second=58 amount=-2
+kerning first=86 second=59 amount=-2
+kerning first=86 second=65 amount=-4
+kerning first=86 second=67 amount=-2
+kerning first=86 second=79 amount=-1
+kerning first=86 second=97 amount=-5
+kerning first=86 second=99 amount=-5
+kerning first=86 second=101 amount=-4
+kerning first=86 second=105 amount=-2
+kerning first=86 second=111 amount=-4
+kerning first=86 second=114 amount=-3
+kerning first=86 second=117 amount=-3
+kerning first=86 second=121 amount=-3
+kerning first=87 second=44 amount=-5
+kerning first=87 second=45 amount=-4
+kerning first=87 second=46 amount=-6
+kerning first=87 second=58 amount=-2
+kerning first=87 second=59 amount=-3
+kerning first=87 second=65 amount=-4
+kerning first=87 second=67 amount=-2
+kerning first=87 second=79 amount=-1
+kerning first=87 second=97 amount=-4
+kerning first=87 second=99 amount=-4
+kerning first=87 second=101 amount=-4
+kerning first=87 second=105 amount=-3
+kerning first=87 second=111 amount=-4
+kerning first=87 second=114 amount=-3
+kerning first=87 second=117 amount=-3
+kerning first=87 second=121 amount=-2
+kerning first=89 second=44 amount=-5
+kerning first=89 second=45 amount=-5
+kerning first=89 second=46 amount=-5
+kerning first=89 second=58 amount=-2
+kerning first=89 second=59 amount=-3
+kerning first=89 second=65 amount=-4
+kerning first=89 second=97 amount=-5
+kerning first=89 second=101 amount=-5
+kerning first=89 second=105 amount=-2
+kerning first=89 second=111 amount=-4
+kerning first=89 second=112 amount=-4
+kerning first=89 second=113 amount=-5
+kerning first=89 second=114 amount=-3
+kerning first=89 second=117 amount=-3
+kerning first=89 second=118 amount=-4
+kerning first=96 second=65 amount=-2
+kerning first=102 second=39 amount=1
+kerning first=114 second=44 amount=-2
+kerning first=114 second=46 amount=-2
+kerning first=114 second=103 amount=-1
+kerning first=114 second=104 amount=-2
+kerning first=114 second=120 amount=-1
+kerning first=118 second=44 amount=-2
+kerning first=118 second=46 amount=-3
+kerning first=119 second=44 amount=-3
+kerning first=119 second=46 amount=-3
+kerning first=121 second=44 amount=-4
+kerning first=121 second=46 amount=-4
diff --git a/data/font/Expo50_0.png b/data/font/Expo50_0.png
new file mode 100644
index 00000000..842cecf8
Binary files /dev/null and b/data/font/Expo50_0.png differ
diff --git a/data/font/arial_bold_14.png b/data/font/arial_bold_14.png
new file mode 100644
index 00000000..070d9ed1
Binary files /dev/null and b/data/font/arial_bold_14.png differ
diff --git a/data/font/arial_bold_14.xml b/data/font/arial_bold_14.xml
new file mode 100644
index 00000000..b8958ec8
--- /dev/null
+++ b/data/font/arial_bold_14.xml
@@ -0,0 +1,185 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/init.cs b/data/init.cs
new file mode 100644
index 00000000..23448243
--- /dev/null
+++ b/data/init.cs
@@ -0,0 +1,110 @@
+//-----------------------------------------------------------------------------
+// Torque Game Engine
+//
+// Copyright (c) 2001 GarageGames.Com
+//-----------------------------------------------------------------------------
+
+new MaterialProperty(DefaultMaterial) {
+ friction = 1;
+ restitution = 1;
+ force = 0;
+};
+
+
+// Will need to play with these three friction values to balance game play
+new MaterialProperty(NoFrictionMaterial) {
+ friction = 0.01;
+ restitution = 0.5;
+};
+
+new MaterialProperty(LowFrictionMaterial) {
+ friction = 0.20;
+ restitution = 0.5;
+};
+
+new MaterialProperty(HighFrictionMaterial) {
+ friction = 1.50;
+ restitution = 0.5;
+};
+
+new MaterialProperty(VeryHighFrictionMaterial) {
+ friction = 2;
+ restitution = 1;
+};
+
+
+
+new MaterialProperty(RubberFloorMaterial) {
+ friction = 1;
+ restitution = 1;
+};
+
+new MaterialProperty(IceMaterial) {
+ friction = 0.05;
+ restitution = 0.5;
+};
+
+new MaterialProperty(BumperMaterial) {
+ friction = 0.5;
+ restitution = 0;
+ force = 15;
+};
+
+new MaterialProperty(ButtonMaterial) {
+ friction = 1;
+ restitution = 1;
+};
+
+
+//
+addMaterialMapping( "", DefaultMaterial);
+
+// Textures listed in BrianH texture document
+addMaterialMapping( "grid_warm" , DefaultMaterial);
+addMaterialMapping( "grid_cool" , DefaultMaterial);
+addMaterialMapping( "grid_neutral" , DefaultMaterial);
+
+addMaterialMapping( "stripe_cool" , DefaultMaterial);
+addMaterialMapping( "stripe_neutral" , DefaultMaterial);
+addMaterialMapping( "stripe_warm" , DefaultMaterial);
+addMaterialMapping( "tube_cool" , DefaultMaterial);
+addMaterialMapping( "tube_neutral" , DefaultMaterial);
+addMaterialMapping( "tube_warm" , DefaultMaterial);
+
+addMaterialMapping( "solid_cool1" , DefaultMaterial);
+addMaterialMapping( "solid_cool2" , DefaultMaterial);
+addMaterialMapping( "solid_neutral1" , DefaultMaterial);
+addMaterialMapping( "solid_neutral2" , DefaultMaterial);
+addMaterialMapping( "solid_warm1" , DefaultMaterial);
+addMaterialMapping( "solid_warm2" , DefaultMaterial);
+
+addMaterialMapping( "pattern_cool1" , DefaultMaterial);
+addMaterialMapping( "pattern_cool2" , DefaultMaterial);
+addMaterialMapping( "pattern_neutral1" , DefaultMaterial);
+addMaterialMapping( "pattern_neutral2" , DefaultMaterial);
+addMaterialMapping( "pattern_warm1" , DefaultMaterial);
+addMaterialMapping( "pattern_warm2" , DefaultMaterial);
+
+addMaterialMapping( "friction_none" , NoFrictionMaterial);
+addMaterialMapping( "friction_low" , LowFrictionMaterial);
+addMaterialMapping( "friction_high" , HighFrictionMaterial);
+// used for ramps in escher level
+addMaterialMapping( "friction_ramp_yellow" , VeryHighFrictionMaterial);
+
+// old textures (to be removed?)
+addMaterialMapping( "grid1" , RubberFloorMaterial);
+addMaterialMapping( "grid2" , RubberFloorMaterial);
+addMaterialMapping( "grid3" , RubberFloorMaterial);
+addMaterialMapping( "grid4" , RubberFloorMaterial);
+
+// some part textures
+addMaterialMapping( "oilslick" , IceMaterial);
+addMaterialMapping( "base.slick" , IceMaterial);
+addMaterialMapping( "ice.slick" , IceMaterial);
+addMaterialMapping( "bumper-rubber" , BumperMaterial);
+addMaterialMapping( "triang-side" , BumperMaterial);
+addMaterialMapping( "triang-top" , BumperMaterial);
+addMaterialMapping( "pball-round-side" , BumperMaterial);
+addMaterialMapping( "pball-round-top" , BumperMaterial);
+addMaterialMapping( "pball-round-bottm" , BumperMaterial);
+addMaterialMapping( "button" , ButtonMaterial);
diff --git a/data/missions/advanced/3foldmaze.jpg b/data/missions/advanced/3foldmaze.jpg
new file mode 100644
index 00000000..7d787d31
Binary files /dev/null and b/data/missions/advanced/3foldmaze.jpg differ
diff --git a/data/missions/advanced/3foldmaze.mis b/data/missions/advanced/3foldmaze.mis
new file mode 100644
index 00000000..ebc896f0
--- /dev/null
+++ b/data/missions/advanced/3foldmaze.mis
@@ -0,0 +1,302 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ artist = "Alex Swanson";
+ name = "Three-Fold Maze";
+ time = "0";
+ type = "advanced";
+ desc = "Find the jewels in this M.C. Escher-like maze.";
+ level = "9";
+ goldTime = 38000;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "-0.57735 -0.57735 -0.57735";
+ color = "1.000000 1.000000 1.000000 1.000000";
+ ambient = "0.700000 0.700000 0.700000 1.000000";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "12.2 12 16";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "-52.2 -52.9964 7.97492";
+ rotation = "1 0 0 180";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-70.5018 62.0049 -48.6412";
+ rotation = "1 0 0 0";
+ scale = "123.185 126.177 91.1465";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/advanced/escher.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "-43.2283 -51.891 -23.6019";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-52.8994 18.1847 -31.2968";
+ rotation = "0 1 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-54.3387 21.827 31.1712";
+ rotation = "0 1 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "4.3584 -6.29061 20.7083";
+ rotation = "0 1 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-5.66954 40.4118 -23.4091";
+ rotation = "0 1 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-6.63379 40.4901 -16.7143";
+ rotation = "0 1 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "18.1608 -5.65514 -15.2519";
+ rotation = "0 1 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-14.2095 44.6493 -15.3207";
+ rotation = "0 1 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-15.2657 41.8843 -14.6314";
+ rotation = "0 1 0 180";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-7.18676 45.4065 -21.9655";
+ rotation = "0 1 0 180";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-52.1244 -43.5071 7.60459";
+ rotation = "0 1 0 180";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "3.80329 -1.79436 21.2339";
+ rotation = "0 1 0 180";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "16.7315 -2.78719 -13.4875";
+ rotation = "0 1 0 180";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "13.0794 13.1011 7.59916";
+ rotation = "0 1 0 180";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-55.2453 22.1946 -28.3586";
+ rotation = "0 1 0 180";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-15.4242 -43.9725 -3.00609";
+ rotation = "0 -1 0 90";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-7.22535 45.3555 -18.101";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "10.1956 13.4528 -15.6159";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-19.765 -34.3059 -4.9108";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-19.3536 -37.9124 -4.5113";
+ rotation = "0 1 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-55.244 18.4826 29.3451";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-30.1554 -34.2804 -8.13571";
+ rotation = "1 0 0 180";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-15.868 46.5007 38.0164";
+ rotation = "0 -1 0 90";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-39.1385 18.4081 -31.9414";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/3foldmaze2.jpg b/data/missions/advanced/3foldmaze2.jpg
new file mode 100644
index 00000000..350242f4
Binary files /dev/null and b/data/missions/advanced/3foldmaze2.jpg differ
diff --git a/data/missions/advanced/3foldmaze2.mis b/data/missions/advanced/3foldmaze2.mis
new file mode 100644
index 00000000..c1685fd0
--- /dev/null
+++ b/data/missions/advanced/3foldmaze2.mis
@@ -0,0 +1,346 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "120000";
+ name = "Escher\'s Race";
+ desc = "Find the gems as quickly as you can!";
+ type = "advanced";
+ level = "19";
+ artist = "Alex Swanson";
+ goldTime = 48000;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "-0.57735 -0.57735 -0.57735";
+ color = "1.000000 1.000000 1.000000 1.000000";
+ ambient = "0.700000 0.700000 0.700000 1.000000";
+ };
+ new SimGroup(CheckPoints) {
+ };
+ new Trigger(Bounds) {
+ position = "-70.5018 62.0049 -48.6412";
+ rotation = "1 0 0 0";
+ scale = "123.185 126.177 91.1465";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/advanced/escher.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "-43.2283 -51.891 -23.6019";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-52.8994 18.1847 -31.2968";
+ rotation = "0 1 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-54.3387 21.827 31.1712";
+ rotation = "0 1 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "4.3584 -6.29061 20.7083";
+ rotation = "0 1 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-5.66954 40.4118 -23.4091";
+ rotation = "0 1 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-6.63379 40.4901 -16.7143";
+ rotation = "0 1 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "18.1608 -5.65514 -15.2519";
+ rotation = "0 1 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-14.2095 44.6493 -15.3207";
+ rotation = "0 1 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-15.2657 41.8843 -14.6314";
+ rotation = "0 1 0 180";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-7.18676 45.4065 -21.9655";
+ rotation = "0 1 0 180";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-52.1244 -43.5071 7.60459";
+ rotation = "0 1 0 180";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "3.80329 -1.79436 21.2339";
+ rotation = "0 1 0 180";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "16.7315 -2.78719 -13.4875";
+ rotation = "0 1 0 180";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "13.0794 13.1011 7.59916";
+ rotation = "0 1 0 180";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-55.2453 22.1946 -28.3586";
+ rotation = "0 1 0 180";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-15.4242 -43.9725 -3.00609";
+ rotation = "0 -1 0 90";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-7.22535 45.3555 -18.101";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "10.1956 13.4528 -15.6159";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-19.765 -34.3059 -4.9108";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-19.3536 -37.9124 -4.5113";
+ rotation = "0 1 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-55.244 18.4826 29.3451";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "19.9223 -4.00056 -24.0335";
+ rotation = "1 0 0 180.091";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "11.8744 4.02879 -15.9618";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape(StartPoint) {
+ position = "-52.0165 -51.9577 -24.0124";
+ rotation = "0 0 1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "-24.0179 19.7589 4.18067";
+ rotation = "0.707388 3.08963e-008 0.706825 180";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new Item() {
+ position = "-52.0591 -50.9638 7.9897";
+ rotation = "0 1 0 179.518";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "11.8854 12.0313 16.0359";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "11.818 14.8372 15.7903";
+ rotation = "0 0 1 0.573347";
+ scale = "1 1 1";
+ dataBlock = "HelicopterItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-8.26116 13.3803 28.835";
+ rotation = "0 -1 0 92.8191";
+ scale = "1 1 1";
+ dataBlock = "HelicopterItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "11.9543 12.9838 -24.4156";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "HelicopterItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-7.98479 19.6756 20.0795";
+ rotation = "0 -1 0 88.8085";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/a-maze-ing.jpg b/data/missions/advanced/a-maze-ing.jpg
new file mode 100644
index 00000000..8ec1565c
Binary files /dev/null and b/data/missions/advanced/a-maze-ing.jpg differ
diff --git a/data/missions/advanced/a-maze-ing.mis b/data/missions/advanced/a-maze-ing.mis
new file mode 100644
index 00000000..ab1a76c3
--- /dev/null
+++ b/data/missions/advanced/a-maze-ing.mis
@@ -0,0 +1,840 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ level = "14";
+ time = "90000";
+ desc = "Find the quickest path through the maze.";
+ name = "A-Maze-ing";
+ type = "Advanced";
+ artist = "Kevin Ryan";
+ goldTime = 8000;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.57735 0.57735 -0.57735";
+ color = "1.400000 1.200000 0.600000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "0 -5.8 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "27.8 -5.6 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-100 100 0";
+ rotation = "1 0 0 0";
+ scale = "200 200 200";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/advanced/a-maze-ing.dif";
+ showTerrainInside = "0";
+ };
+ new SimGroup(mw1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-30 7.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "7000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-6 7.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "7000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-30 7.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "7000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(mw1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/a-maze-ing.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "0";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(mw2_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-16.5 20.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-13 20.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-16.5 20.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(mw2) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/a-maze-ing.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "0";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(mw1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "4.5 30.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4.5 26 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4.5 30.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(mw1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/a-maze-ing.dif";
+ interiorIndex = "2";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "0";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(mw1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "7.5 30.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "7.5 26 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "3000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "7.5 30.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(mw1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/a-maze-ing.dif";
+ interiorIndex = "3";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "0";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(mw1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "10.5 30.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "10.5 26 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "10.5 30.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(mw1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/a-maze-ing.dif";
+ interiorIndex = "4";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "0";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(mw1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "13.5 30.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "5000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "13.5 26 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "6000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "13.5 30.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(mw1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/a-maze-ing.dif";
+ interiorIndex = "5";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "0";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(mw1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "16.5 30.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "6000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "16.5 26 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "6000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "16.5 30.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "6000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(mw1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/a-maze-ing.dif";
+ interiorIndex = "6";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "0";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(mw1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "19.5 30.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "5000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "19.5 26 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "5000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "19.5 30.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "5000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(mw1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/a-maze-ing.dif";
+ interiorIndex = "7";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "0";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(mw1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "22.5 30.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "22.5 26 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "22.5 30.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(mw1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/a-maze-ing.dif";
+ interiorIndex = "8";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "0";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(mw1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "25.5 30.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "3000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "25.5 26 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "3000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "25.5 30.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "3000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(mw1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/a-maze-ing.dif";
+ interiorIndex = "9";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "0";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(mw1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "27 2.5 99";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "13 2.5 99";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "27 2.5 99";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(mw1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/a-maze-ing.dif";
+ interiorIndex = "10";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "0";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(mw1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "13 -0.5 99";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "27 -0.5 99";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "13 -0.5 99";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(mw1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/a-maze-ing.dif";
+ interiorIndex = "11";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "0";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(mw1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "13 -3.5 99";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "13 -8 99";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "13 -3.5 99";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(mw1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/a-maze-ing.dif";
+ interiorIndex = "12";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "0";
+ initialTargetPosition = "-1";
+ };
+ };
+ new Item() {
+ position = "14.2011 -6.43856 100.027";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "25.1514 40.8987 100.5";
+ rotation = "-1 0 0 90";
+ scale = "0.5 0.5 0.5";
+ dataBlock = "SmallDuctFan";
+ };
+ new InteriorInstance() {
+ position = "25.1514 40.94 100";
+ rotation = "1 0 0 0";
+ scale = "0.5 0.1 1.8";
+ interiorFile = "~/data/interiors/parts/boxes/woodblock.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape() {
+ position = "10.1148 38.6346 100.5";
+ rotation = "1 0 0 90";
+ scale = "0.5 0.5 0.5";
+ dataBlock = "SmallDuctFan";
+ };
+ new InteriorInstance() {
+ position = "10.1148 38.6 100";
+ rotation = "1 0 0 0";
+ scale = "0.5 0.1 1.8";
+ interiorFile = "~/data/interiors/parts/boxes/woodblock.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape() {
+ position = "16.1148 38.6346 100.5";
+ rotation = "1 0 0 90";
+ scale = "0.5 0.5 0.5";
+ dataBlock = "SmallDuctFan";
+ };
+ new InteriorInstance() {
+ position = "16.1148 38.6 100";
+ rotation = "1 0 0 0";
+ scale = "0.5 0.1 1.8";
+ interiorFile = "~/data/interiors/parts/boxes/woodblock.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape() {
+ position = "21.9148 38.6346 100.5";
+ rotation = "1 0 0 90";
+ scale = "0.5 0.5 0.5";
+ dataBlock = "SmallDuctFan";
+ };
+ new InteriorInstance() {
+ position = "21.9148 38.6 100";
+ rotation = "1 0 0 0";
+ scale = "0.5 0.1 1.8";
+ interiorFile = "~/data/interiors/parts/boxes/woodblock.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape() {
+ position = "7.15136 40.8987 100.5";
+ rotation = "-1 0 0 90";
+ scale = "0.5 0.5 0.5";
+ dataBlock = "SmallDuctFan";
+ };
+ new InteriorInstance() {
+ position = "7.15136 40.94 100";
+ rotation = "1 0 0 0";
+ scale = "0.5 0.1 1.8";
+ interiorFile = "~/data/interiors/parts/boxes/woodblock.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape() {
+ position = "13.3514 40.8987 100.5";
+ rotation = "-1 0 0 90";
+ scale = "0.5 0.5 0.5";
+ dataBlock = "SmallDuctFan";
+ };
+ new InteriorInstance() {
+ position = "13.3514 40.94 100";
+ rotation = "1 0 0 0";
+ scale = "0.5 0.1 1.8";
+ interiorFile = "~/data/interiors/parts/boxes/woodblock.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape() {
+ position = "19.1514 40.8987 100.5";
+ rotation = "-1 0 0 90";
+ scale = "0.5 0.5 0.5";
+ dataBlock = "SmallDuctFan";
+ };
+ new InteriorInstance() {
+ position = "19.1514 40.94 100";
+ rotation = "1 0 0 0";
+ scale = "0.5 0.1 1.8";
+ interiorFile = "~/data/interiors/parts/boxes/woodblock.dif";
+ showTerrainInside = "0";
+ };
+ new ScriptObject() {
+ bonusTime = "0";
+ gemCount = "0";
+ penaltyTime = "0";
+ time = "0";
+ powerUp = "0";
+ pad = "1434";
+ };
+ new Item() {
+ position = "4.24233 37.3543 100.254";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "3.22399 30.0916 100.881";
+ rotation = "0 0 -1 88.2355";
+ scale = "1 1 1";
+ dataBlock = "SignPlainLeft";
+ };
+ new StaticShape() {
+ position = "-7.94032 24.8964 101.132";
+ rotation = "0 0 1 87.6625";
+ scale = "1 1 1";
+ dataBlock = "SignPlainLeft";
+ };
+ new StaticShape() {
+ position = "3.10865 -1.75488 101.023";
+ rotation = "0 0 1 96.2569";
+ scale = "1 1 1";
+ dataBlock = "SignPlainLeft";
+ };
+ new StaticShape() {
+ position = "0.833028 12.7701 101.097";
+ rotation = "0 0 1 1.14396";
+ scale = "1 1 1";
+ dataBlock = "SignPlainRight";
+ };
+ new StaticShape() {
+ position = "-2.15066 13.6969 101.313";
+ rotation = "0 0 1 180.091";
+ scale = "1 1 1";
+ dataBlock = "SignPlainLeft";
+ };
+ new StaticShape() {
+ position = "2.22193 16.2314 100.872";
+ rotation = "0 0 1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "SignPlainLeft";
+ };
+ new StaticShape() {
+ position = "0.246939 16.2855 100.815";
+ rotation = "0 0 -1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "SignPlainRight";
+ };
+ new StaticShape() {
+ position = "-7.66381 17.9709 100.974";
+ rotation = "0 0 1 90.5273";
+ scale = "1 1 1";
+ dataBlock = "SignPlainLeft";
+ };
+ new StaticShape() {
+ position = "-21.4591 22.7657 101.069";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignPlainRight";
+ };
+ new StaticShape() {
+ position = "9.66689 15.7678 101.081";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignPlainLeft";
+ };
+ new StaticShape() {
+ position = "2.35731 38.4671 100.711";
+ rotation = "0 0 1 106.57";
+ scale = "1 1 1";
+ dataBlock = "SignCautionDanger";
+ };
+ new StaticShape() {
+ position = "2.40259 40.6726 100.772";
+ rotation = "0 0 1 61.3065";
+ scale = "1 1 1";
+ dataBlock = "SignCautionCaution";
+ };
+ new StaticShape() {
+ position = "28.7076 -6.22162 106.954";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/acrobat.mis b/data/missions/advanced/acrobat.mis
new file mode 100644
index 00000000..117b9f34
--- /dev/null
+++ b/data/missions/advanced/acrobat.mis
@@ -0,0 +1,285 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ type = "advanced";
+ desc = "Careful jumping is the key!";
+ startHelpText = "Be careful of your spin when you are about to land.";
+ artist = "Alex Swanson";
+ name = "Acrobat";
+ level = "31";
+ goldTime = "25000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 7.45949e-031 1.3684e-038";
+ fogVolume2 = "-1 1.07208e-014 8.756e-014";
+ fogVolume3 = "-1 5.1012e-010 2.05098e-008";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
+ };
+ new Sun() {
+ direction = "0.638261 0.459006 -0.61801";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/acrobat1.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "64 -24.5 54.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "64 21.5 62";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape(EndPoint) {
+ position = "-29.4941 -0.0219529 55.9953";
+ rotation = "0 0 -1 89.3814";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new Item() {
+ position = "2 31 49.4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape(StartPoint) {
+ position = "6 -6 8";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new Item() {
+ position = "0 0 8.25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 -35.5 14.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "64 -31.5 14.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "150";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "64 -31.5 20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "200";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "64 -31.5 20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "64 -31.5 14.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/acrobat1.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "3.5 0 3";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "90";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-2 0 3";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-2 0 3";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "3.5 0 3";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/acrobat1.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-38.4389 43.4941 -3";
+ rotation = "1 0 0 0";
+ scale = "125.322 97.7963 179.165";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/acrobat3.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/acrobat2.dif";
+ showTerrainInside = "0";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "1520";
+ penaltyTime = "0";
+ bonusTime = "0";
+ };
+ new StaticShape() {
+ position = "2.98752 -6.38952 6.46235";
+ rotation = "0 0 1 85.9437";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "1667";
+ penaltyTime = "0";
+ bonusTime = "0";
+ };
+ new StaticShape() {
+ position = "2.00868 33.0922 49.4653";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignPlainDown";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+ new StaticShape() {
+ position = "-2.6837 -3.79856 9.0271";
+ rotation = "0.171368 -0.176728 -0.969227 90.0261";
+ scale = "1 1 1";
+ dataBlock = "SignPlainLeft";
+ };
+ new Trigger() {
+ position = "-0.549342 29.5612 47.8718";
+ rotation = "1 0 0 0";
+ scale = "5.41862 8.33884 2.60553";
+ dataBlock = "HelpTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ text = "Don\'t forget the gem!";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/acrobat.png b/data/missions/advanced/acrobat.png
new file mode 100644
index 00000000..f4f93712
Binary files /dev/null and b/data/missions/advanced/acrobat.png differ
diff --git a/data/missions/advanced/airwalk.mis b/data/missions/advanced/airwalk.mis
new file mode 100644
index 00000000..15f0fc44
--- /dev/null
+++ b/data/missions/advanced/airwalk.mis
@@ -0,0 +1,554 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ level = "36";
+ type = "advanced";
+ name = "Airwalk";
+ artist = "Alex Swanson";
+ time = "0";
+ desc = "Defy Gravity!";
+ startHelpText = "Use the fans to get the hovering gems!";
+ goldTime = "70000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 7.45949e-031 1.3684e-038";
+ fogVolume2 = "-1 1.07208e-014 8.756e-014";
+ fogVolume3 = "-1 5.1012e-010 2.05098e-008";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
+ };
+ new Sun() {
+ direction = "0.545878 -0.40228 -0.734975";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/airwalk.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape() {
+ position = "-4 4 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-4 7 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-4 10 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-4 13 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-7 4 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-10 4 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-13 4 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-13 7 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-13 10 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-13 13 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-10 7 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-10 10 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-10 13 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-7 7 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-7 10 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-7 13 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "13 4 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "13 -13 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-4 -13 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-4 -10 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-4 -7 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-4 -4 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-7 -13 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-10 -13 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-13 -13 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-13 -10 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-13 -7 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-13 -4 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-10 -10 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-10 -7 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-10 -4 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-7 -10 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-7 -7 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-7 -4 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "13 -10 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "13 -7 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "13 -4 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "10 -13 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "7 -13 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "4 -13 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "4 -10 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "4 -7 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "4 -4 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "7 -10 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "7 -7 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "7 -4 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "10 -10 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "10 -7 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "10 -4 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "13 7 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "13 10 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "13 13 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "10 4 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "7 4 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "4 4 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "4 7 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "4 10 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "4 13 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "7 7 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "7 10 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "7 13 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "10 7 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "10 10 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "10 13 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape(StartPoint) {
+ position = "0 -20 7";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "0 0 12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new Trigger(Bounds) {
+ position = "-29.6276 30.8759 -2.84928";
+ rotation = "1 0 0 0";
+ scale = "55.8146 67.1653 71.8481";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "0.47152 0.504696 22.2222";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new Item() {
+ position = "-0.172229 -10.7691 6.81462";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "10.5755 9.78068 1.73051";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItemOrange";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-7.95296 8.82373 7.65723";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItemOrange";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-8.2465 -3.95131 5.33464";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItemOrange";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-0.0784112 11.3091 5.39495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItemOrange";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "7.77949 -5.6939 3.12922";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItemOrange";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "9.57815 -9.10191 5.92035";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItemOrange";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ pad = "1745";
+ penaltyTime = "0";
+ bonusTime = "0";
+ gemCount = "0";
+ time = "0";
+ powerUp = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+ new Item() {
+ position = "5.16014 5.28318 8.1646";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItemOrange";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/airwalk.png b/data/missions/advanced/airwalk.png
new file mode 100644
index 00000000..68020012
Binary files /dev/null and b/data/missions/advanced/airwalk.png differ
diff --git a/data/missions/advanced/aroundtheworld.jpg b/data/missions/advanced/aroundtheworld.jpg
new file mode 100644
index 00000000..b82f19c1
Binary files /dev/null and b/data/missions/advanced/aroundtheworld.jpg differ
diff --git a/data/missions/advanced/aroundtheworld.mis b/data/missions/advanced/aroundtheworld.mis
new file mode 100644
index 00000000..3a9d84b6
--- /dev/null
+++ b/data/missions/advanced/aroundtheworld.mis
@@ -0,0 +1,182 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "30000";
+ desc = "Gather all the gems around the globe in less than 30 seconds.";
+ name = "Around the World in 30 seconds";
+ level = "21";
+ type = "Advanced";
+ artist = "Kevin Ryan";
+ goldTime = 13500;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.57735 0.57735 -0.57735";
+ color = "0.600000 0.600000 0.600000 1.000000";
+ ambient = "0.400000 0.400000 0.400000 1.000000";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "0 -5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "-7.63343 -5.6 96.5375";
+ rotation = "0 1 0 45";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-100 100 0";
+ rotation = "1 0 0 0";
+ scale = "200 200 200";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/aroundtheworld.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "0 3.65033 95.8575";
+ rotation = "-1 0 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 4.56716 89.7";
+ rotation = "1 0 0 90";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 1.51659 81.7045";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 -5 79.4975";
+ rotation = "1 0 0 180";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-0.112757 -15.0329 89.7";
+ rotation = "-1 0 0 90";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-10.2436 -5 89.7";
+ rotation = "0 1 0 90";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "8.19397 -5 82.6029";
+ rotation = "0 1 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "10.3145 -5 89.7";
+ rotation = "0 -1 0 90";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "7.59927 -12.6953 89.7";
+ rotation = "1 0 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-7.88704 -12.378 89.7";
+ rotation = "0 -1 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "-10.8036 -5.17251 100.109";
+ rotation = "0 1 0 45";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/battlements.mis b/data/missions/advanced/battlements.mis
new file mode 100644
index 00000000..bd104ab9
--- /dev/null
+++ b/data/missions/advanced/battlements.mis
@@ -0,0 +1,649 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ type = "advanced";
+ desc = "Make your way to the inner keep!";
+ startHelpText = "Time your movements carefully to get past the gates.";
+ name = "Battlements";
+ artist = "Alex Swanson";
+ level = "41";
+ goldTime = "45000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 2.8026e-045 1.91698e-042";
+ fogVolume2 = "-1 2.8026e-045 1.89175e-042";
+ fogVolume3 = "-1 2.8026e-045 1.85392e-042";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 0.000000";
+ };
+ new Sun() {
+ direction = "-0.617004 0.173654 -0.767561";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/battlements.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape() {
+ position = "-15 0 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-13 0 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-17 0 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-15 -2 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-15 -4 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-15 -6 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-13 -6 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-17 -6 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-15 -8 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-13 -8 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-17 -8 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-13 -4 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-17 -4 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-13 -2 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-17 -2 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-15 -10 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-15 -12 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-15 -14 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-13 -14 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-17 -14 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-15 -16 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-13 -16 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-17 -16 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-13 -12 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-17 -12 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-13 -10 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-17 -10 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-7.49492 7.49659 -18.9257";
+ rotation = "1 0 0 90";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-5.51589 5.50857 -18.9257";
+ rotation = "0 -1 0 90";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-22.0371 20.0062 6.57429";
+ rotation = "-1 0 0 90";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-20.0076 21.9869 6.57282";
+ rotation = "0 -1 0 90";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape(EndPoint) {
+ position = "-16 31.25 8";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new StaticShape(StartPoint) {
+ position = "-15 -20 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-15 0.75 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "3000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-15 0.75 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-15 0.75 -12.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-15 0.75 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/battlements.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "2 2.75 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "2 2.75 -1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "2 2.75 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "2 0.375 -19";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-1.0000000 1.6250000 2.0000000 0.0000000 -3.2500000 0.0000000 0.0000000 0.0000000 -4.0000000 2.0000000 0.0000000 0.0000000";
+ targetTime = "3000";
+ };
+ new Trigger(MustChange) {
+ position = "-1.5 -0.25 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-1.5000000 3.0000000 1.0000000 0.0000000 -6.0000000 0.0000000 0.0000000 0.0000000 -2.0000000 3.0000000 0.0000000 0.0000000";
+ targetTime = "0";
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/battlements.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-11 -10 -19";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-25 -10 -19";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-25 -10 -19";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-11 -10 -19";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-11 -10 -19";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/battlements.dif";
+ interiorIndex = "2";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "500";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-19 -6 -19";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-5 -6 -19";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-5 -6 -19";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-19 -6 -19";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-19 -6 -19";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/battlements.dif";
+ interiorIndex = "3";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "500";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-19 -14 -19";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-5 -14 -19";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-5 -14 -19";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-19 -14 -19";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-19 -14 -19";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/battlements.dif";
+ interiorIndex = "4";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-38 38.25 -49";
+ rotation = "1 0 0 0";
+ scale = "46 64.25 77";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "-17.9557 30.3783 13.22";
+ rotation = "0 0 1 147.433";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+ new Trigger() {
+ position = "-16.4068 12.0211 -20.1237";
+ rotation = "1 0 0 0";
+ scale = "5.44697 5.61311 2.82431";
+ dataBlock = "HelpTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ text = "Beware of the winds!";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/battlements.png b/data/missions/advanced/battlements.png
new file mode 100644
index 00000000..57c863b4
Binary files /dev/null and b/data/missions/advanced/battlements.png differ
diff --git a/data/missions/advanced/blockparty.jpg b/data/missions/advanced/blockparty.jpg
new file mode 100644
index 00000000..4d0638a9
Binary files /dev/null and b/data/missions/advanced/blockparty.jpg differ
diff --git a/data/missions/advanced/blockparty.mis b/data/missions/advanced/blockparty.mis
new file mode 100644
index 00000000..b05ea8ba
--- /dev/null
+++ b/data/missions/advanced/blockparty.mis
@@ -0,0 +1,261 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ type = "advanced";
+ name = "Block Party";
+ level = "15";
+ desc = "Can you find the path that will take you to the finish area with all the gems?";
+ artist = "Kevin Ryan";
+ goldTime = "60000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.57735 0.57735 -0.57735";
+ color = "1.400000 1.200000 0.600000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "0 -5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "-0.4 -2 66";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-100 100 0";
+ rotation = "1 0 0 0";
+ scale = "200 200 200";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/advanced/blockparty.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "-7.4534 7.36758 100.336";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-7.78299 5.67398 100.669";
+ rotation = "0 -1 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-7.98611 16.7685 117.325";
+ rotation = "0 -1 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-19.3292 6.10986 117.505";
+ rotation = "1 0 0 180";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "13.1913 9.42111 107.305";
+ rotation = "1 0 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "13.6371 4.72339 104.616";
+ rotation = "0 1 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-13.5894 9.56629 104.642";
+ rotation = "0 -1 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-13.7088 6.23621 105.855";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "13.6236 14.0241 98.0471";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0.469933 1.04195 100.053";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-16.2945 7.67727 109.98";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "7.61219 22.0264 114.04";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-8.88791 -2.05379 82";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "15.1542 -2.0517 82";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-26.743 6.53217 98.0417";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "12.3872 15.7787 115.037";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "16.7559 15.2232 116.375";
+ rotation = "1 0 0 180";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "7.57444 16.4666 114.133";
+ rotation = "0 1 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ gemCount = "0";
+ time = "0";
+ bonusTime = "0";
+ pad = "1409";
+ penaltyTime = "0";
+ powerUp = "0";
+ };
+ new StaticShape() {
+ position = "0.337453 0.857849 85.6791";
+ rotation = "0 0 -1 88.2355";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/compasspoints.jpg b/data/missions/advanced/compasspoints.jpg
new file mode 100644
index 00000000..f830d3e9
Binary files /dev/null and b/data/missions/advanced/compasspoints.jpg differ
diff --git a/data/missions/advanced/compasspoints.mis b/data/missions/advanced/compasspoints.mis
new file mode 100644
index 00000000..863bc700
--- /dev/null
+++ b/data/missions/advanced/compasspoints.mis
@@ -0,0 +1,590 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ desc = "You will need to ride the moving platforms to the four points of the compass to solve this level.";
+ level = "8";
+ type = "advanced";
+ name = "Points of the Compass";
+ artist = "Kevin Ryan";
+ goldTime = 13000;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.57735 0.57735 -0.57735";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.400000 0.400000 0.300000 1.000000";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "0 0 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "0 12.8 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-100 100 0";
+ rotation = "1 0 0 0";
+ scale = "200 200 200";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/compass_points.dif";
+ showTerrainInside = "0";
+ };
+ new SimGroup(Platform1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "3 3 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-3 3 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-3 -3 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "3 -3 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "3 3 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/compass_points.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform2_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-5 5 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "6000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "5 5 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "6000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "5 -5 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "6000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-5 -5 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "6000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-5 5 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "6000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform2) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/compass_points.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform3_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-7 -7 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "8000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "7 -7 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "8000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "7 7 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "8000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-7 7 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "8000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-7 -7 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "8000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform3) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/compass_points.dif";
+ interiorIndex = "2";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform3_0_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "7 7 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "8000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-7 7 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "8000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-7 -7 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "8000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "7 -7 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "8000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "7 7 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "8000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform3_0) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/compass_points.dif";
+ interiorIndex = "3";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform4_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "9 -9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "10000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9 -9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "10000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9 9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "10000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "9 9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "10000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "9 -9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "10000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform4) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/compass_points.dif";
+ interiorIndex = "4";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform4_0_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-9 -9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "10000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9 9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "10000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "9 9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "10000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "9 -9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "10000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9 -9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "10000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform4_0) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/compass_points.dif";
+ interiorIndex = "5";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform4_1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-9 9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "10000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "9 9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "10000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "9 -9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "10000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9 -9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "10000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9 9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "10000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform4_1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/compass_points.dif";
+ interiorIndex = "6";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform4_2_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "9 9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "10000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "9 -9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "10000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9 -9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "10000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9 9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "10000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "9 9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "10000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform4_2) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/compass_points.dif";
+ interiorIndex = "7";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new Item() {
+ position = "-12.4 0 1.85";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "12.4 0 1.85";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 -12.4 1.85";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+ new StaticShape() {
+ position = "0.540554 13.0754 5.9069";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/construction.mis b/data/missions/advanced/construction.mis
new file mode 100644
index 00000000..7f62ac57
--- /dev/null
+++ b/data/missions/advanced/construction.mis
@@ -0,0 +1,155 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ desc = "A mere skeleton of a level.";
+ startHelpText = "Be very cautious on this framework.";
+ type = "advanced";
+ name = "Under Construction";
+ level = "49";
+ artist = "Alex Swanson";
+ goldTime = "12000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 7.45949e-031 1.3684e-038";
+ fogVolume2 = "-1 1.07208e-014 8.756e-014";
+ fogVolume3 = "-1 5.1012e-010 2.05098e-008";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
+ };
+ new Sun() {
+ direction = "0.433884 0.614021 -0.659336";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/construction.dif";
+ showTerrainInside = "0";
+ };
+ new ScriptObject() {
+ pad = "1656";
+ penaltyTime = "0";
+ bonusTime = "0";
+ gemCount = "0";
+ powerUp = "0";
+ time = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "0 -15.55 16.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new Item() {
+ position = "-8.25 44.25 19.375";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "10 42 19.25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape(EndPoint) {
+ position = "-2.5 62.5 23.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new Trigger(Bounds) {
+ position = "-14 68 15.332";
+ rotation = "1 0 0 0";
+ scale = "29.5 89 27.668";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "-2.22913 62.4778 29.9924";
+ rotation = "0 0 -1 8.02147";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new Item() {
+ position = "0.696122 32.7441 16.7537";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-2.13439 21.0221 20.4135";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-9.78675 43.0145 24.5066";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ pad = "1501";
+ penaltyTime = "0";
+ bonusTime = "0";
+ gemCount = "0";
+ powerUp = "0";
+ time = "0";
+ };
+ new ScriptObject() {
+ pad = "1656";
+ penaltyTime = "0";
+ bonusTime = "0";
+ gemCount = "0";
+ powerUp = "0";
+ time = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/construction.png b/data/missions/advanced/construction.png
new file mode 100644
index 00000000..34a06ff7
Binary files /dev/null and b/data/missions/advanced/construction.png differ
diff --git a/data/missions/advanced/daedalus.mis b/data/missions/advanced/daedalus.mis
new file mode 100644
index 00000000..2a548713
--- /dev/null
+++ b/data/missions/advanced/daedalus.mis
@@ -0,0 +1,564 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ type = "advanced";
+ desc = "Find the gems and escape this labyrinth!";
+ startHelpText = "Watch out for areas of varying friction!";
+ artist = "Alex Swanson";
+ name = "Daedalus";
+ level = "39";
+ goldTime = "30000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 2.8026e-045 1.80347e-042";
+ fogVolume2 = "-1 2.8026e-045 1.77825e-042";
+ fogVolume3 = "-1 2.8026e-045 1.75302e-042";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 0.000000";
+ };
+ new Sun() {
+ direction = "0.432117 0.527434 -0.731497";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/daedalus1.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "10.0261 48 5.99993";
+ rotation = "0 0 1 179.518";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "5 17 48";
+ rotation = "0 0 1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new Item() {
+ position = "17 17 14";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-13 27 20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-25 14 20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-10.9941 1.31398 18.4975";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new InteriorInstance() {
+ position = "5.5 18.5 12";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_blue.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "-2.93406 7.18739 16.2059";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "2 37 27.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "2 37 27.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "2 37 47.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "2 37 47.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "2 37 27.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/daedalus1.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "2 1 17.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "2 1 17.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "6000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "2 1 47.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "2 1 47.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "6000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "2 1 17.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/daedalus1.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-38.8116 57.8167 5.14493";
+ rotation = "1 0 0 0";
+ scale = "82.3494 70.4857 72.5315";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new Item() {
+ position = "20.8943 37.0252 24.4998";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/daedalus2.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/daedalus3.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "11.0501 30.993 18.5033";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-12.7235 27.2572 16.5023";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "1651";
+ penaltyTime = "0";
+ bonusTime = "0";
+ };
+ new InteriorInstance() {
+ position = "15.5 14.5 14";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_blue.dif";
+ showTerrainInside = "0";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "1527";
+ penaltyTime = "0";
+ bonusTime = "0";
+ };
+ new InteriorInstance() {
+ position = "15.5 4 14";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_blue.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-14.5 24.5 16";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_blue.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-14.5 30 16";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_blue.dif";
+ showTerrainInside = "0";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "1651";
+ penaltyTime = "0";
+ bonusTime = "0";
+ };
+ new Item() {
+ position = "16.9759 8.91123 12.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "2339";
+ penaltyTime = "0";
+ bonusTime = "0";
+ };
+ new InteriorInstance() {
+ position = "-12.5 4 18";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_blue.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "9.5 40 16";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_blue.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "15.5 40 16";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_blue.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "6.84226 6.8217 14.0812";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new InteriorInstance() {
+ position = "5.5 44.5 6";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_green.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-10.5 29.5 24";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_blue.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-24 9.5 20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_blue.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-24 15.5 20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_blue.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0 -0.5 18";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_red.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "3.5 -0.5 18";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_red.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "3.5 35.5 28";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_red.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0 35.5 28";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_red.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0.5 35.5 48";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_red.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0.5 3 48";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_red.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "3.5 14.5 48";
+ rotation = "0 0 -1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_purple.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "3.5 19 48";
+ rotation = "0 0 -1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_purple.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "15.5 25.5 12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_blue.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-2 25.5 12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_blue.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "30 35.5 20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_blue.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "31.5 39.5 20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_blue.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "31.5 31.5 20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_blue.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "13.9903 41.0003 16.0502";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new InteriorInstance() {
+ position = "5.5 36.5 8";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_green.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "20 35.5 24";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_blue.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-10.5 35.5 24";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_blue.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "16.9536 1.06171 13.7973";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "HelicopterItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new InteriorInstance() {
+ position = "-4.5 20 20";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_blue.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-4.5 22.5 20";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_blue.dif";
+ showTerrainInside = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/daedalus.png b/data/missions/advanced/daedalus.png
new file mode 100644
index 00000000..d2a4af41
Binary files /dev/null and b/data/missions/advanced/daedalus.png differ
diff --git a/data/missions/advanced/darwin.mis b/data/missions/advanced/darwin.mis
new file mode 100644
index 00000000..5fbc277f
--- /dev/null
+++ b/data/missions/advanced/darwin.mis
@@ -0,0 +1,759 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ type = "advanced";
+ name = "Darwin\'s Dilemma";
+ time = "0";
+ desc = "The ultimate platform challenge!";
+ startHelpText = "Collect the gems, but don\'t fall behind!";
+ level = "51";
+ goldTime = "40000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 7.45949e-031 1.3684e-038";
+ fogVolume2 = "-1 1.07208e-014 8.756e-014";
+ fogVolume3 = "-1 5.1012e-010 2.05098e-008";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
+ };
+ new Sun() {
+ direction = "0.512126 0.512126 -0.689532";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/darwin.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "-6 9.27135e-008 4";
+ rotation = "0 0 1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new Item() {
+ position = "80 0 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "44 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "77.6196 1.07717 -27";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "71.7452 -1.32599 -40";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-10.25 5 -44";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape(EndPoint) {
+ position = "67.944 -8.03214 -56.0061";
+ rotation = "0 0 1 88.2355";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new StaticShape() {
+ position = "11.9752 -13.9885 -53.9265";
+ rotation = "1 0 0 90";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "19.9446 -1.61886 -53.918";
+ rotation = "-1 0 0 90";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "29.9407 -7.84643 -58.1881";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "40 -14.0736 -53.9983";
+ rotation = "1 0 0 90";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "47.984 -1.61989 -53.9983";
+ rotation = "-1 0 0 90";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "58 -7.75062 -47.9247";
+ rotation = "1 0 0 180";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "7.5 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "9000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "80 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "7000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "80 -46 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "80 -46 -16";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "80 -20 -16";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "78 -19 -27";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "5";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "78 -19 -27";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "6";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "78 -19 -40";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "7";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "72 -19 -40";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "8";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "72 -19 -40";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "9";
+ msToNext = "10000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-3 -22.5 -40";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "10";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-3 -8 -40";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "11";
+ msToNext = "6000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-5 -8 -52";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "12";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-5 -8 -56";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "13";
+ msToNext = "10000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "61 -8 -56";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "14";
+ msToNext = "10000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "8.25 0 1.25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-3.2500000 -4.0000000 1.2500000 0.0000000 8.0000000 0.0000000 6.5000000 0.0000000 0.0000000 0.0000000 0.0000000 -2.5000000";
+ targetTime = "70000";
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/darwin.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "69.5 -38.5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1200";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "90 -38.5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1200";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "69.5 -38.5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/darwin.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "69.5 -30.5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1200";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "90 -30.5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1200";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "69.5 -30.5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/darwin.dif";
+ interiorIndex = "2";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "1200";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "51.5 5.5 -34.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1600";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "72 5.5 -34.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1600";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "51.5 5.5 -34.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/darwin.dif";
+ interiorIndex = "3";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "97.25 5.5 -25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1600";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "76.5 5.5 -25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1600";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "97.25 5.5 -25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/darwin.dif";
+ interiorIndex = "4";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "91 -23.5 -14";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1200";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "70.5 -23.5 -14";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1200";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "91 -23.5 -14";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/darwin.dif";
+ interiorIndex = "5";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "500";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "80.25 -37.25 -14";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1200";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "80.25 -16.75 -14";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1200";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "80.25 -37.25 -14";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/darwin.dif";
+ interiorIndex = "6";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-16.5 19.0489 -60.381";
+ rotation = "1 0 0 0";
+ scale = "118.75 86.2027 89.506";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "43.8362 -1.97948 -1.78814e-007";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "34.5921 -0.449328 -2.08616e-007";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "44 2.2 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "41.6874 -0.839727 -1.78814e-007";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "46.5407 0.618626 1.49012e-007";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "29.4446 0.572741 5.96046e-008";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "26.0623 -0.444775 2.98023e-008";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "26.8554 -2.43418 1.49012e-007";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "30.3162 -2.49234 -5.96046e-008";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "33.9045 3.06851 -2.08616e-007";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "37.7317 0.69086 -5.96046e-008";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "36.0763 -3.19488 -1.49012e-007";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "64.9854 -8.37771 -49.1431";
+ rotation = "0 0 1 83.6518";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new ScriptObject() {
+ pad = "3154";
+ penaltyTime = "0";
+ bonusTime = "0";
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ };
+ new ScriptObject() {
+ pad = "3724";
+ penaltyTime = "0";
+ bonusTime = "0";
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ };
+ new Item() {
+ position = "74.2764 -5.73189 3.49086";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "27.4247 -2.50772 0.283519";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "79.2628 -22.2319 -15.5897";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new InteriorInstance() {
+ position = "43.249 -2.44293 2.23144";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arrowsign.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "82.3199 5.98968 -26.5085";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "82.3149 3.95829 -26.5219";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "17.3456 -19.402 -39.4017";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ pad = "3943";
+ penaltyTime = "0";
+ bonusTime = "0";
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ };
+ new ScriptObject() {
+ pad = "1871";
+ penaltyTime = "0";
+ bonusTime = "0";
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ };
+ new ScriptObject() {
+ pad = "4189";
+ penaltyTime = "0";
+ bonusTime = "0";
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ };
+ new Item() {
+ position = "33.4994 -7.45432 -53.4869";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ pad = "1699";
+ penaltyTime = "0";
+ bonusTime = "0";
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/darwin.png b/data/missions/advanced/darwin.png
new file mode 100644
index 00000000..023e533b
Binary files /dev/null and b/data/missions/advanced/darwin.png differ
diff --git a/data/missions/advanced/dive.mis b/data/missions/advanced/dive.mis
new file mode 100644
index 00000000..234590aa
--- /dev/null
+++ b/data/missions/advanced/dive.mis
@@ -0,0 +1,513 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ type = "Advanced";
+ desc = "Speed down the ramp to finish in time!";
+ startHelpText = "Don\'t forget to stop at the end!";
+ name = "Dive!";
+ artist = "Alex Swanson";
+ resetTime = "Default";
+ level = "44";
+ goldTime = "27000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "1000";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 7.45949e-031 1.3684e-038";
+ fogVolume2 = "-1 1.07208e-014 8.756e-014";
+ fogVolume3 = "-1 5.1012e-010 2.05098e-008";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
+ };
+ new Sun() {
+ direction = "0.355977 0.50377 -0.787081";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/dive4.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "-214 10.5 163";
+ rotation = "0 0 1 179.518";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "670 5 -239";
+ rotation = "0 0 -1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new ScriptObject() {
+ gemCount = "0";
+ time = "0";
+ powerUp = "0";
+ pad = "1651";
+ penaltyTime = "0";
+ bonusTime = "0";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/dive0.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/dive1.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/dive2.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/dive3.dif";
+ showTerrainInside = "0";
+ };
+ new Trigger() {
+ position = "30.4978 39.4024 -278.154";
+ rotation = "1 0 0 0";
+ scale = "184.956 86.2878 107.551";
+ dataBlock = "OutOfBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new Trigger() {
+ position = "-223.052 22.6398 -246.746";
+ rotation = "1 0 0 0";
+ scale = "36.5297 43.6497 383.455";
+ dataBlock = "OutOfBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new Trigger() {
+ position = "-191.262 30.4484 -293.049";
+ rotation = "1 0 0 0";
+ scale = "67.3598 57.3544 383.455";
+ dataBlock = "OutOfBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new Trigger() {
+ position = "-130.366 40.624 -270.515";
+ rotation = "1 0 0 0";
+ scale = "105.544 57.3544 268.183";
+ dataBlock = "OutOfBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new Trigger() {
+ position = "-25.9022 26.8618 -270.164";
+ rotation = "1 0 0 0";
+ scale = "67.3598 57.3544 223.327";
+ dataBlock = "OutOfBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "483.4 10 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "481.4 4 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "485.4 2 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "491.4 6 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "487.4 6 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "495.4 2 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "497.4 6 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "582.9 4.5 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "581.4 8.5 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "579.4 5.5 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "584.9 7 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "587.4 3 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "591.9 4.5 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "586.4 10 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "515.9 7.5 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "518.4 3.5 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "523.9 5 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "521.9 2 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "520.4 6 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "516.9 0.5 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "524.4 8 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "521.9 10.5 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "520.9 9.5 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new ScriptObject() {
+ gemCount = "0";
+ time = "0";
+ powerUp = "0";
+ pad = "1589";
+ penaltyTime = "0";
+ bonusTime = "0";
+ };
+ new Trigger(Bounds) {
+ position = "-221.5 18 -243.5";
+ rotation = "1 0 0 0";
+ scale = "916.063 36 423.5";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "664.25 -1.25 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "668.5 -1.25 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "672.75 -1.25 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "672.75 11.25 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "668.5 11.25 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "563.4 3.5 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "549.4 4 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "547.4 9 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "665.9 8.5 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "661.9 6.5 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "663.9 2.5 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "572.9 8 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "582.4 1 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "581.4 0 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "578.9 2.5 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "629.9 2.5 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "627.9 6.5 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "664 11.25 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "619.9 0.5 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "621.9 6.5 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "617.9 8.5 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "555.9 1.5 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "615.9 4.5 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "553.9 6.5 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "558.9 3.5 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "558.9 5.5 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "559.9 8.5 -214";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/dive.png b/data/missions/advanced/dive.png
new file mode 100644
index 00000000..a7465372
Binary files /dev/null and b/data/missions/advanced/dive.png differ
diff --git a/data/missions/advanced/eyeofthestorm.mis b/data/missions/advanced/eyeofthestorm.mis
new file mode 100644
index 00000000..c71d5ae0
--- /dev/null
+++ b/data/missions/advanced/eyeofthestorm.mis
@@ -0,0 +1,196 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ type = "advanced";
+ desc = "Use the tornado to your advantage!";
+ name = "Eye of the Storm";
+ artist = "Alex Swanson";
+ startHelpText = "Move back and forth to escape the tornado\'s pull!";
+ level = "43";
+ goldtime = "45000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 7.45949e-031 1.3684e-038";
+ fogVolume2 = "-1 1.07208e-014 8.756e-014";
+ fogVolume3 = "-1 5.1012e-010 2.05098e-008";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
+ };
+ new Sun() {
+ direction = "-0.286096 0.524551 -0.80187";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/eyeofthestorm.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "0.06875 3.62188 0.4125";
+ rotation = "0 0 1 30.3668";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ fixedscale = "1";
+ };
+ new StaticShape() {
+ position = "0.06875 3.62188 0.4125";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "Tornado";
+ };
+ new StaticShape(EndPoint) {
+ position = "1.21051 5.3522 20.9965";
+ rotation = "0 0 1 120.321";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new Trigger(Bounds) {
+ position = "-24.5026 22.0654 -61.1541";
+ rotation = "1 0 0 0";
+ scale = "48.8855 39.7722 99.1541";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "2.44127 5.92507 26.4187";
+ rotation = "0 0 -1 60.7335";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new Item() {
+ position = "-1.96012 -1.78489 3.58565";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "4.87989 7.45648 1.91923";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItemTurquoise";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-1.87639 -6.91794 1.83562";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItemTurquoise";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "10.2917 11.2517 8.63898";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItemTurquoise";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-9.04023 2.17382 3.77749";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItemTurquoise";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-0.912513 10.6736 4.32601";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItemTurquoise";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-3.31143 13.6958 7.30529";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-6.27634 -4.48446 6.4089";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "4.5929 -7.82201 9.09318";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "4.91288 -2.25162 5.55569";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItemTurquoise";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "5.49945 0.0636936 3.44934";
+ rotation = "0 0 1 21.1995";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/eyeofthestorm.png b/data/missions/advanced/eyeofthestorm.png
new file mode 100644
index 00000000..4e4667bf
Binary files /dev/null and b/data/missions/advanced/eyeofthestorm.png differ
diff --git a/data/missions/advanced/fan_lift.jpg b/data/missions/advanced/fan_lift.jpg
new file mode 100644
index 00000000..3c1e7013
Binary files /dev/null and b/data/missions/advanced/fan_lift.jpg differ
diff --git a/data/missions/advanced/fan_lift.mis b/data/missions/advanced/fan_lift.mis
new file mode 100644
index 00000000..c30ead9c
--- /dev/null
+++ b/data/missions/advanced/fan_lift.mis
@@ -0,0 +1,133 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ name = "Fan Lift";
+ desc = "Use the fans to assist your ascent.";
+ startHelpText = "Stay right on top of the fan to get maximum lift!";
+ artist = "Alex Swanson";
+ type = "Advanced";
+ level = "3";
+ goldTime = 15000;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.34749 0.639042 -0.686204";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "-14 -2.2 9.53674e-007";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "-2.25417 -1.9581 27";
+ rotation = "0 0 1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-35.603 45.6139 -5.77156";
+ rotation = "1 0 0 0";
+ scale = "58.6594 70.7991 63.9545";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/fan_lift.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape() {
+ position = "-3.11748 -1.05837 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-3.11272 13.0768 7";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-17.2608 12.9798 14";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-17.0611 -1.01412 21";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "1443";
+ bonusTime = "0";
+ penaltyTime = "0";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "2439";
+ bonusTime = "0";
+ penaltyTime = "0";
+ };
+ new StaticShape() {
+ position = "-1.77277 -1.41846 34.4222";
+ rotation = "0 0 -1 44.6907";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/freefall.mis b/data/missions/advanced/freefall.mis
new file mode 100644
index 00000000..6d031b75
--- /dev/null
+++ b/data/missions/advanced/freefall.mis
@@ -0,0 +1,253 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ startHelpText = "Try to stay centered to hit the end pad below!";
+ level = "30";
+ type = "advanced";
+ name = "Free Fall";
+ artist = "Alex Swanson";
+ time = "0";
+ desc = "It\'s a long way down...";
+ goldTime = "8000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 7.21503e+022 6.59383e-007";
+ fogVolume2 = "-1 3.97536e+028 1.77499e+028";
+ fogVolume3 = "-1 2.81751e+020 1.69209e+022";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 14270110282885781000000.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 73174428693612219000000000000.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 18393446818394586000000000.000000";
+ };
+ new Sun() {
+ direction = "0.321887 0.321887 -0.89038";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 64";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/freefall0.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "0 0 100.348";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "0 0 -319.4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new Trigger(Bounds) {
+ position = "-16.5578 16.9075 -355.39";
+ rotation = "1 0 0 0";
+ scale = "29.6469 31.4727 467.947";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "-9.64951 -45.3555 -245.35";
+ rotation = "-0.891224 0.365939 -0.267971 76.6275";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/freefall5.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0 0 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/smallplatform.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0 0 -64";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/freefall0.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-18.713 -0.732104 -155.182";
+ rotation = "0 1 0 29.2208";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/freefall5.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0 0 -192";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/freefall0.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0 0 -256";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/freefall0.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0 0 -320";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/smallplatform.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0.354524 -6.70897 -67.5951";
+ rotation = "-1 0 0 9.74027";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/freefall5.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "1.20304 1.22763 77.4179";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/freefall1.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "11.5223 1.98737 21.3452";
+ rotation = "-0.283962 0.73212 -0.619166 64.1284";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/freefall1.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-14.7877 5.156 -42.8453";
+ rotation = "-0.261164 -0.726721 0.63535 58.9875";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/freefall1.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0.83935 15.6737 -103.604";
+ rotation = "-1 0 0 78.4952";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/freefall1.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "9.47379 11.2824 -240.101";
+ rotation = "-0.683033 0.346957 0.642718 76.6414";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/freefall1.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-1.67075 0.0420091 -186.26";
+ rotation = "-0.368097 -0.813323 0.450566 90.2559";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/freefall2.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-2.62432 5.88654 -136.408";
+ rotation = "0.41232 0.911037 0.00173356 179.561";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/freefall2.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0.481195 0.12909 -104.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/freefall3.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "2.39258 -0.626071 -32.8939";
+ rotation = "0 0 1 68.7549";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/freefall3.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0.553945 -2.08582 10.1879";
+ rotation = "-0.368791 -0.0557373 -0.92784 18.5032";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/freefall3.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-3.1079 1.39753 69.8992";
+ rotation = "0.144467 0.738008 -0.659146 18.0193";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/freefall3.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-0.949223 -3.36755 113.888";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/freefall4.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "19.9442 -26.5969 73.3044";
+ rotation = "-0.864778 -0.457482 -0.207048 55.2508";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/freefall4.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-17.5168 -21.1156 -83.7078";
+ rotation = "-0.750917 0.659728 0.0297081 108.338";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/freefall4.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-11.3472 -10.5383 -139.055";
+ rotation = "-0.0381725 0.772957 -0.633309 35.8094";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/freefall4.dif";
+ showTerrainInside = "0";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ pad = "7410";
+ penaltyTime = "0";
+ bonusTime = "0";
+ time = "0";
+ gemCount = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/freefall.png b/data/missions/advanced/freefall.png
new file mode 100644
index 00000000..092f1fd5
Binary files /dev/null and b/data/missions/advanced/freefall.png differ
diff --git a/data/missions/advanced/greatdivide2.jpg b/data/missions/advanced/greatdivide2.jpg
new file mode 100644
index 00000000..0d92b4e9
Binary files /dev/null and b/data/missions/advanced/greatdivide2.jpg differ
diff --git a/data/missions/advanced/greatdivide2.mis b/data/missions/advanced/greatdivide2.mis
new file mode 100644
index 00000000..94946b31
--- /dev/null
+++ b/data/missions/advanced/greatdivide2.mis
@@ -0,0 +1,696 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ name = "Great Divide Revisited";
+ desc = "Climb the mountain and bounce to freedom!";
+ type = "Advanced";
+ level = "18";
+ artist = "Alex Swanson";
+ goldTime = 65000;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "1000";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -2.3288e+038 -2.3288e+038";
+ fogVolume2 = "-1 -2.26208e+038 -2.24874e+038";
+ fogVolume3 = "-1 -2.2087e+038 -2.2087e+038";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -228882226010952240000000000000000000000.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -219536010535951140000000000000000000000.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -219536010535951140000000000000000000000.000000";
+ };
+ new Sun() {
+ direction = "0.512126 0.512126 -0.689532";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/advanced/greatdivide2.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "-66.9925 0.938238 160.349";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperBounceItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "65.0075 0.938238 97.374";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperBounceItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape(EndPoint) {
+ position = "199.007 0.938238 49.0275";
+ rotation = "0 0 1 90.5273";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ fixedscale = "1";
+ };
+ new StaticShape(StartPoint) {
+ position = "-200.993 0.938238 -0.00382996";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-124 -3 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-124 -3 25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-124 -3 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/greatdivide2.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-124 -3 67";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-124 -3 88.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-124 -3 67";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/greatdivide2.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "2000";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-124 -3 123";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "6000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-124 -3 152.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "6000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-124 -3 123";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/greatdivide2.dif";
+ interiorIndex = "2";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "2000";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-124 5 8.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "6000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-124 5 32.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "6000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-124 5 8.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/greatdivide2.dif";
+ interiorIndex = "3";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "4000";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-124 5 108.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "6000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-124 5 132.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "6000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-124 5 108.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/greatdivide2.dif";
+ interiorIndex = "4";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "7000";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-124 5 46.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-124 5 70.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-124 5 46.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/greatdivide2.dif";
+ interiorIndex = "5";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "3000";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-116 5 22.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-116 5 46.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-116 5 22.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/greatdivide2.dif";
+ interiorIndex = "6";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-116 5 46.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "6000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-116 5 70.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "6000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-116 5 46.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/greatdivide2.dif";
+ interiorIndex = "7";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "7000";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-116 -3 36.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "7000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-116 -3 72.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "7000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-116 -3 36.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/greatdivide2.dif";
+ interiorIndex = "8";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "5000";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-116 5 96.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "6000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-116 5 118.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "6000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-116 5 96.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/greatdivide2.dif";
+ interiorIndex = "9";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-116 5 149.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "6000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-116 5 171.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "6000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-116 5 149.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/greatdivide2.dif";
+ interiorIndex = "10";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-116 -3 122.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-116 -3 161.031";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-116 -3 122.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/greatdivide2.dif";
+ interiorIndex = "11";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-212.493 37.6806 -2.62201";
+ rotation = "1 0 0 0";
+ scale = "429 73.3715 221.177";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "-89.2121 -1.24258 161.22";
+ rotation = "-0.0205171 -0.0478589 0.998643 100.344";
+ scale = "1 1 1";
+ dataBlock = "SignCautionCaution";
+ };
+ new Item() {
+ position = "-104.752 -4.65135 46.5193";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-104.792 0.997908 46.5369";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-104.792 6.5636 46.6753";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-92.9742 9.966 161.671";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-83.7782 -0.779765 160.546";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "124.932 -0.553073 0.58277";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-10.427 1.2327 0.64396";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "198.986 0.761429 59.9241";
+ rotation = "0 0 1 72.7656";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "1627";
+ bonusTime = "0";
+ penaltyTime = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/halfpipe2.jpg b/data/missions/advanced/halfpipe2.jpg
new file mode 100644
index 00000000..711b36e7
Binary files /dev/null and b/data/missions/advanced/halfpipe2.jpg differ
diff --git a/data/missions/advanced/halfpipe2.mis b/data/missions/advanced/halfpipe2.mis
new file mode 100644
index 00000000..6e39038c
--- /dev/null
+++ b/data/missions/advanced/halfpipe2.mis
@@ -0,0 +1,200 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ startHelpText = "Use the Super Speed PowerUps to grab the floating gems!";
+ name = "Half Pipe Elite";
+ time = "0";
+ type = "advanced";
+ desc = "Grab the gems between the sections of half-pipe!";
+ level = "13";
+ goldTime = 25000;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -2.26114e+038 -2.27454e+038";
+ fogVolume2 = "-1 -2.40798e+038 -2.42133e+038";
+ fogVolume3 = "-1 -2.48815e+038 -2.5015e+038";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -239463741642863750000000000000000000000.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -248810038247503270000000000000000000000.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -255503091439841100000000000000000000000.000000";
+ };
+ new Sun() {
+ direction = "0.481726 0.481726 -0.732038";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/advanced/half-pipe0.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "-29 17 5";
+ rotation = "0 0 1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/advanced/half-pipe2.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "-12.5 16.75 -7.31303";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-12.5 -2.45 -7.31965";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-12.5 -15.5 -2.3152";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-0.5 6 14.7";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-24.5 -15.5 22.6";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "12.0581 -21.7637 -2.25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Trigger(Bounds) {
+ position = "-38.9014 27.5 -11";
+ rotation = "1 0 0 0";
+ scale = "75.0031 56.969 86.9952";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "29.1197 -22.4254 18.62";
+ rotation = "0 0 1 110.008";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/advanced/half-pipe1.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(EndPoint) {
+ position = "29.442 -21.8127 9.99731";
+ rotation = "0 0 1 89.3814";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ time = "0";
+ pad = "1500";
+ penaltyTime = "0";
+ bonusTime = "0";
+ gemCount = "0";
+ };
+ new Item() {
+ position = "-0.699322 -10.3462 15.752";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-24.3713 -0.34016 18";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ time = "0";
+ pad = "1644";
+ penaltyTime = "0";
+ bonusTime = "0";
+ gemCount = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+ new Item() {
+ position = "-12.5506 -7.08988 -7.25442";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/highway.jpg b/data/missions/advanced/highway.jpg
new file mode 100644
index 00000000..03787964
Binary files /dev/null and b/data/missions/advanced/highway.jpg differ
diff --git a/data/missions/advanced/highway.mis b/data/missions/advanced/highway.mis
new file mode 100644
index 00000000..436534f4
--- /dev/null
+++ b/data/missions/advanced/highway.mis
@@ -0,0 +1,1804 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ desc = "Why did the marble cross the road?";
+ level = "5";
+ type = "Advanced";
+ name = "Freeway Crossing";
+ startHelpText = "Look both ways!";
+ artist = "Alex Swanson";
+ goldTime = 8000;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.309426 0.721995 -0.618853";
+ color = "1.400000 1.200000 0.300000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/highway.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "0 -64 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "0 64 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new StaticShape() {
+ position = "-48 -2 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-44.5 -4.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-43 -2 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-37 -4 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-40.5 -6.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-29.5 -4.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-24 -2 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-31 -2 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-20.5 -5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-14 -7 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-11 -3.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-16 -1.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-14 -4 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-6.5 -6.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-5 -3.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-7 -1.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "3 -5.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-0.5 -7 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "4 -4 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "8.5 -2 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "8 -5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "14.5 -5.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "18.5 -2.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "19 -5.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "24 -4 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "22 -6.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "22 -6.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "27.5 -2.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "27.5 -2.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "34 -6 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "32.5 -3 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "40 -6 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "43.5 -3.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "47.5 -6 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "49.5 -3 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "46.5 -1.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "35.5 -3.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "29 -6 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "22 -6.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "72 -36 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-72 -36 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-72 4 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "72 4 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/highway.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "72 -36 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-72 -36 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-72 4 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "72 4 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/highway.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "3200";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "72 -36 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-72 -36 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-72 4 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "72 4 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/highway.dif";
+ interiorIndex = "2";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "6400";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "72 -36 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-72 -36 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-72 4 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "72 4 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/highway.dif";
+ interiorIndex = "3";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "9600";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "72 -36 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-72 -36 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-72 4 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "72 4 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/highway.dif";
+ interiorIndex = "4";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "12800";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "72 -12 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "6000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-72 -12 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-72 28 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "6000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "72 28 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/highway.dif";
+ interiorIndex = "5";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "72 -12 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "6000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-72 -12 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-72 28 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "6000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "72 28 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/highway.dif";
+ interiorIndex = "6";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ initialPosition = "3200";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "72 -12 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "6000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-72 -12 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-72 28 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "6000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "72 28 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/highway.dif";
+ interiorIndex = "7";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ initialPosition = "6400";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "72 -12 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "6000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-72 -12 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-72 28 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "6000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "72 28 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/highway.dif";
+ interiorIndex = "8";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ initialPosition = "9600";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "80 -28 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "9999";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 -28 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "9999";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/highway.dif";
+ interiorIndex = "9";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "80 -28 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "9999";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 -28 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "9999";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/highway.dif";
+ interiorIndex = "10";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "2000";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "80 -28 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "9999";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 -28 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "9999";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/highway.dif";
+ interiorIndex = "11";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "4000";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "80 -28 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "9999";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 -28 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "9999";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/highway.dif";
+ interiorIndex = "12";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "6000";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "80 -28 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "9999";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 -28 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "9999";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/highway.dif";
+ interiorIndex = "13";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "8000";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "80 -28 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "9999";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 -28 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "9999";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/highway.dif";
+ interiorIndex = "14";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "10000";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "80 -28 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "9999";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 -28 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "9999";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/highway.dif";
+ interiorIndex = "15";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "12000";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "80 -28 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "9999";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 -28 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "9999";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/highway.dif";
+ interiorIndex = "16";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "14000";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "80 -28 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "9999";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 -28 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "9999";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/highway.dif";
+ interiorIndex = "17";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "16000";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "80 -28 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "9999";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 -28 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "9999";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "80 20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/highway.dif";
+ interiorIndex = "18";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "18000";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "80 -20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "18000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 -20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/highway.dif";
+ interiorIndex = "19";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "80 -20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "18000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 -20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/highway.dif";
+ interiorIndex = "20";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "6000";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "80 -20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "18000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 -20 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/highway.dif";
+ interiorIndex = "21";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "12000";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "80 36 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "15000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 36 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/highway.dif";
+ interiorIndex = "22";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "80 36 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "15000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 36 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/highway.dif";
+ interiorIndex = "23";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "3000";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "80 36 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "15000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 36 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/highway.dif";
+ interiorIndex = "24";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "6000";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "80 36 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "15000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 36 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/highway.dif";
+ interiorIndex = "25";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "9000";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "80 36 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "15000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 36 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/highway.dif";
+ interiorIndex = "26";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "12000";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "80 12 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 12 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "80 12 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/highway.dif";
+ interiorIndex = "27";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "80 12 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-80 12 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "80 12 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/highway.dif";
+ interiorIndex = "28";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "2000";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-100 75.5 -7";
+ rotation = "1 0 0 0";
+ scale = "200 151 71.7434";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "-22.0199 -3.23525 1.10016";
+ rotation = "0.0302369 0.503343 -0.863558 7.95853";
+ scale = "1 1 1";
+ dataBlock = "SignCautionDanger";
+ };
+ new StaticShape() {
+ position = "7.84275 -40.6118 1.15679";
+ rotation = "-0.063839 -0.408561 0.910496 19.4757";
+ scale = "1 1 1";
+ dataBlock = "SignCautionCaution";
+ };
+ new StaticShape() {
+ position = "0.377834 63.5248 7.22225";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new StaticShape() {
+ position = "24.4329 -6.08665 0.889953";
+ rotation = "-0.0757781 -0.537731 0.839704 19.0535";
+ scale = "1 1 1";
+ dataBlock = "SignCautionDanger";
+ };
+ new ScriptObject() {
+ gemCount = "0";
+ time = "0";
+ penaltyTime = "0";
+ powerUp = "0";
+ bonusTime = "0";
+ pad = "1714";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/icarus.mis b/data/missions/advanced/icarus.mis
new file mode 100644
index 00000000..5d7f2117
--- /dev/null
+++ b/data/missions/advanced/icarus.mis
@@ -0,0 +1,228 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ desc = "Master your falling and bouncing skills.";
+ type = "Advanced";
+ level = "48";
+ name = "Icarus";
+ time = "0";
+ artist = "Alex Swanson";
+ goldTime = "37000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 7.45949e-031 1.3684e-038";
+ fogVolume2 = "-1 1.07208e-014 8.756e-014";
+ fogVolume3 = "-1 5.1012e-010 2.05098e-008";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
+ };
+ new Sun() {
+ direction = "0.541988 0.461972 -0.70202";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/bounce.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "0 -27 -47.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-2 -27 -60.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "4 -27 -65.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-2 -31 -80";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0.5 -35 -87.649";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperBounceItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0.5 -41 -101.638";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperBounceItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0.519437 -121.135 -117.615";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperBounceItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-8.00641 -105.987 -115.643";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperBounceItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-12.0254 -90.0769 -111.644";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperBounceItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-5.5 -73 -109.635";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperBounceItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "5.1 -59 -105.656";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperBounceItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape(EndPoint) {
+ position = "-0.0555216 -151.9 -127.502";
+ rotation = "0 0 1 179.518";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new StaticShape(StartPoint) {
+ position = "-1.69139e-007 21 4.5";
+ rotation = "0 0 1 179.909";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new Item() {
+ position = "0 14.5 4.84684";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperBounceItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Trigger(Bounds) {
+ position = "-54.8602 27 -131";
+ rotation = "1 0 0 0";
+ scale = "72.8972 192 152.5";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new ScriptObject() {
+ pad = "1521";
+ penaltyTime = "0";
+ bonusTime = "0";
+ gemCount = "0";
+ time = "0";
+ powerUp = "0";
+ };
+ new Trigger() {
+ position = "-57.3105 30.0529 -139.579";
+ rotation = "1 0 0 0";
+ scale = "83.0766 46.3102 74.6634";
+ dataBlock = "OutOfBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new ScriptObject() {
+ pad = "1661";
+ penaltyTime = "0";
+ bonusTime = "0";
+ gemCount = "0";
+ time = "0";
+ powerUp = "0";
+ };
+ new ScriptObject() {
+ pad = "1661";
+ penaltyTime = "0";
+ bonusTime = "0";
+ gemCount = "0";
+ time = "0";
+ powerUp = "0";
+ };
+ new StaticShape() {
+ position = "-0.349866 -153.041 -115.863";
+ rotation = "0 0 1 149.152";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/icarus.png b/data/missions/advanced/icarus.png
new file mode 100644
index 00000000..96333eed
Binary files /dev/null and b/data/missions/advanced/icarus.png differ
diff --git a/data/missions/advanced/kingofthemountain.mis b/data/missions/advanced/kingofthemountain.mis
new file mode 100644
index 00000000..9587a15f
--- /dev/null
+++ b/data/missions/advanced/kingofthemountain.mis
@@ -0,0 +1,817 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ desc = "Master this monumental mountain challenge!";
+ startHelpText = "";
+ type = "Advanced";
+ name = "King of the Mountain";
+ level = "52";
+ artist = "Alex Swanson";
+ time = "0";
+ goldTime = "44000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 7.45949e-031 1.3684e-038";
+ fogVolume2 = "-1 1.07208e-014 8.756e-014";
+ fogVolume3 = "-1 5.1012e-010 2.05098e-008";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
+ };
+ new Sun() {
+ direction = "-0.68704 0.433247 -0.583329";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/kingofthemountain1.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape() {
+ position = "-23.4798 37.4904 42.0611";
+ rotation = "0 1 0 90";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape(StartPoint) {
+ position = "5.98336 -16.2998 0";
+ rotation = "0 0 -1 88.8085";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new Item() {
+ position = "-6 -12 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/kingofthemountain4.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape() {
+ position = "0 13 8.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ timeout = "200";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "0 15 8.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ timeout = "200";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "2 15 8.5";
+ rotation = "0 0 1 180";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ timeout = "200";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "2 17 8.5";
+ rotation = "0 0 1 180";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ timeout = "200";
+ resetTime = "Default";
+ };
+ new ScriptObject() {
+ gemCount = "0";
+ powerUp = "0";
+ pad = "1764";
+ penaltyTime = "0";
+ bonusTime = "0";
+ time = "0";
+ };
+ new StaticShape() {
+ position = "0 19 8.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ timeout = "200";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "2 19 8.5";
+ rotation = "0 0 1 180";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ timeout = "200";
+ resetTime = "Default";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/kingofthemountain6.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape() {
+ position = "0 21 8.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ timeout = "200";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "0 23 8.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ timeout = "200";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "2 23 8.5";
+ rotation = "0 0 1 180";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ timeout = "200";
+ resetTime = "Default";
+ };
+ new InteriorInstance() {
+ position = "0.0193996 -0.0181274 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/kingofthemountain5.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape() {
+ position = "2 25 8.5";
+ rotation = "0 0 1 180";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ timeout = "200";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "2 27 8.5";
+ rotation = "0 0 1 180";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ timeout = "200";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "0 27 8.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ timeout = "200";
+ resetTime = "Default";
+ };
+ new Item() {
+ position = "4 56 12.7";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-4 38 11.7";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "27.125 57.3125 32.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ timeout = "200";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "32.775 64.5719 32.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ timeout = "200";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "29.9469 63.7719 32.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ timeout = "200";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "29.9469 61.7438 32.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ timeout = "200";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "27.1156 61.3438 32.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ timeout = "200";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "27.125 59.3125 32.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ timeout = "200";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "24.2938 57.5125 32.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ timeout = "200";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "24.2875 55.4875 32.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ timeout = "200";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "29.9469 59.7438 32.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ timeout = "200";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-13.75 49.5 38.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-6 50.5 37.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-7.25 51.75 37.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/kingofthemountain2.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape() {
+ position = "-5.5 52 37.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-6 49 37.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-14.75 49 38.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-6.75 49.5 37.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-15 50 38.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-12 51.0625 38.125";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-7.75 49 37.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-16.75 50.75 38.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-4 49.375 37";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-17 51.75 38.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/kingofthemountain7.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape() {
+ position = "-17.75 49.5 38.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/kingofthemountain3.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape() {
+ position = "-12.5 49.125 38.3125";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-21.5 50.25 39";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-22 51 39";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-21 52 39";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-12.4801 33.8898 47.0157";
+ rotation = "0 1 0 90";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-2.85 50.5 36.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-1.75 51 36.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-1.5 49.95 36.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-2 49 36.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-10.75 52 37.625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "0 49.5 36.25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-0.2 51.75 36.3158";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-10.125 48.75 37.375";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "2 52 36.25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "1.6 51.25 36.1658";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "2 50.5 36.25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "3.5 50 36.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-4 50.75 37";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "4.75 49.25 36.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "3.75 49 36.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "4.75 51.25 36.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "5.75 51.25 36";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "5.75 50 36";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "7.25 49.75 35.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "7.25 51.75 35.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-11.25 50 37.8125";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "9.5 51 35.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "9.25 49.25 35.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "8.75 50 35.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "7.25 50.75 35.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new Item() {
+ position = "-11.75 47.25 45";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "HelicopterItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "-22.25 49 39";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-19.5 48.75 38.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape(EndPoint) {
+ position = "-15.5437 -7.53125 37.9946";
+ rotation = "0 0 1 119.748";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new StaticShape() {
+ position = "-20 50.125 38.875";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new Trigger(Bounds) {
+ position = "-73.293 119.256 -2.87708";
+ rotation = "1 0 0 0";
+ scale = "136.706 165.071 239.079";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "-19 50.625 38.625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-19 52.25 38.625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-4.5 52.25 37.25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "32.775 62.5719 32.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ timeout = "200";
+ resetTime = "Default";
+ };
+ new ScriptObject() {
+ gemCount = "0";
+ powerUp = "0";
+ pad = "2529";
+ penaltyTime = "0";
+ bonusTime = "0";
+ time = "0";
+ };
+ new StaticShape() {
+ position = "-18.8738 46.5042 44.4805";
+ rotation = "-1 0 0 90";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-11.5431 41.5988 44.8791";
+ rotation = "0.422544 0.801818 0.422544 102.553";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-19.6395 -5.49399 47.7585";
+ rotation = "0.206027 0.883162 0.421399 56.7962";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new StaticShape() {
+ position = "-25.2174 38.5469 42.1758";
+ rotation = "-0.0399892 -0.00257098 0.999197 172.649";
+ scale = "1 1 1";
+ dataBlock = "SignCautionDanger";
+ };
+ new StaticShape() {
+ position = "11.741 51.6553 35.4762";
+ rotation = "0.0448919 -0.0642305 -0.996925 70.0667";
+ scale = "1 1 1";
+ dataBlock = "SignCautionDanger";
+ };
+ new StaticShape() {
+ position = "36.1721 64.8655 35.2185";
+ rotation = "0 0 1 231.657";
+ scale = "1 1 1";
+ dataBlock = "SignCautionCaution";
+ };
+ new StaticShape() {
+ position = "-2.0153 40.2847 12.2201";
+ rotation = "0 -1 0 5.15691";
+ scale = "1 1 1";
+ dataBlock = "SignCautionCaution";
+ };
+ new ScriptObject() {
+ gemCount = "0";
+ powerUp = "0";
+ pad = "1660";
+ penaltyTime = "0";
+ bonusTime = "0";
+ time = "0";
+ };
+ new Item() {
+ position = "2.08345 76.8404 18.1291";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-23.2341 36.73 43.9974";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-14.8376 51.3676 39.3834";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-4.79159 -14.6598 2.33079";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/kingofthemountain.png b/data/missions/advanced/kingofthemountain.png
new file mode 100644
index 00000000..5a077df6
Binary files /dev/null and b/data/missions/advanced/kingofthemountain.png differ
diff --git a/data/missions/advanced/leapoffaith.jpg b/data/missions/advanced/leapoffaith.jpg
new file mode 100644
index 00000000..7d76227e
Binary files /dev/null and b/data/missions/advanced/leapoffaith.jpg differ
diff --git a/data/missions/advanced/leapoffaith.mis b/data/missions/advanced/leapoffaith.mis
new file mode 100644
index 00000000..53185367
--- /dev/null
+++ b/data/missions/advanced/leapoffaith.mis
@@ -0,0 +1,127 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "40000";
+ desc = "After the tough winding path don\'t be afraid to take a leap of faith.";
+ name = "Leap of Faith";
+ type = "advanced";
+ level = "4";
+ artist = "Kevin Ryan";
+ goldTime = 12000;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.442343 0.475025 -0.760713";
+ color = "1.400000 1.200000 0.500000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "0 -5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "3.8 64.8 0.399999";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-100 100 -21.6";
+ rotation = "1 0 0 0";
+ scale = "200 200 200";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/leapoffaith.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "7.12918 68.45 99.995";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "7.12918 69.05 99";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "ShockAbsorberItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "4.44447 64.604 3.97825";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new Item() {
+ position = "0.879038 1.47358 100.183";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ pad = "1886";
+ time = "0";
+ bonusTime = "0";
+ gemCount = "0";
+ penaltyTime = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/leastresist.mis b/data/missions/advanced/leastresist.mis
new file mode 100644
index 00000000..cb0b739f
--- /dev/null
+++ b/data/missions/advanced/leastresist.mis
@@ -0,0 +1,219 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ level = "38";
+ type = "Advanced";
+ name = "Path of Least Resistance";
+ time = "0";
+ artist = "Alex Swanson";
+ desc = "Which path is the quickest?";
+ startHelpText = "Use the edges to give yourself a push, but be careful!";
+ goldTime = "30000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 7.45949e-031 1.3684e-038";
+ fogVolume2 = "-1 1.07208e-014 8.756e-014";
+ fogVolume3 = "-1 5.1012e-010 2.05098e-008";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
+ };
+ new Sun() {
+ direction = "0.516781 0.484377 -0.705915";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/leastresist.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "-4 37 0";
+ rotation = "0 0 1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "-11 34 14";
+ rotation = "0 0 -1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new Trigger(Bounds) {
+ position = "-16.5 52.5 -3.5";
+ rotation = "1 0 0 0";
+ scale = "43 39 34.5";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "3.5 38.5 0";
+ rotation = "0 0 -1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_green.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "10.5 36.5 6";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_red.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "3.5 35 0";
+ rotation = "0 0 -1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_green.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "3 46.5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_red.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "10.5 46.5 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_red.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "6.5 47 10";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_red.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0.5 47 10";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_red.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "6.5 16.5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_red.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "3 16.5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_red.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "20.5 35 6";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_red.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "20.5 25.5 8";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_red.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "6.5 28.5 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_red.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-1.5 31.5 12";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_red.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-1.5 37 12";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_red.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-1.5 32.5 12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_purple.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-7.5 32.5 14";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_purple.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape() {
+ position = "-12.4275 33.8109 19.0223";
+ rotation = "0 0 1 179.518";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new Item() {
+ position = "13.963 36.9209 6.46855";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ pad = "1716";
+ penaltyTime = "0";
+ bonusTime = "0";
+ time = "0";
+ gemCount = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/leastresist.png b/data/missions/advanced/leastresist.png
new file mode 100644
index 00000000..581ffb2f
Binary files /dev/null and b/data/missions/advanced/leastresist.png differ
diff --git a/data/missions/advanced/moebius.jpg b/data/missions/advanced/moebius.jpg
new file mode 100644
index 00000000..d697b5ea
Binary files /dev/null and b/data/missions/advanced/moebius.jpg differ
diff --git a/data/missions/advanced/moebius.mis b/data/missions/advanced/moebius.mis
new file mode 100644
index 00000000..b1e1d19b
--- /dev/null
+++ b/data/missions/advanced/moebius.mis
@@ -0,0 +1,330 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ type = "advanced";
+ name = "Moebius Strip";
+ level = "17";
+ artist = "Kevin Ryan and Alex Swanson";
+ time = "0";
+ desc = "Make one loop around the moebius strip to finish the race.";
+ goldTime = 23000;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.442343 0.475025 -0.760713";
+ color = "1.400000 1.200000 0.500000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/moebius.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(EndPoint) {
+ position = "0 -42.1 0.98257";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new StaticShape(StartPoint) {
+ position = "0 -35.9 0.990959";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new Item() {
+ position = "0 -35.5143 -0.139813";
+ rotation = "1 0 0 180";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Trigger(Bounds) {
+ position = "-18.7507 23.6347 -30.4907";
+ rotation = "1 0 0 0";
+ scale = "41.7722 110.87 40.4538";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new Item() {
+ position = "0 -63.9019 1.83695";
+ rotation = "1 0 0 180";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 2.31584 1.84235";
+ rotation = "1 0 0 235";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 12.6819 -7.61534";
+ rotation = "-1 0 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 10.6954 -19.9965";
+ rotation = "-1 0 0 45";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 -0.833515 -24.9329";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-0.891778 -22.956 -24.7361";
+ rotation = "0 -1 0 45";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-1.51389 -28.1499 -23.6397";
+ rotation = "0 -1 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-1.4457 -33.3811 -22.8635";
+ rotation = "0 1 0 235";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-0.2 -38.1163 -22.0875";
+ rotation = "0 1 0 180";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 -64.1627 -22.0694";
+ rotation = "1 0 0 235";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-0.0116705 -74.086 -14.4898";
+ rotation = "-1 0 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 -73.048 -6.17373";
+ rotation = "-1 0 0 45";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 -63.444 -0.940084";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 -0.518408 -0.978318";
+ rotation = "1 0 0 45";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 10.1767 -8.48917";
+ rotation = "1 0 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 8.56676 -17.2755";
+ rotation = "1 0 0 135";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 -0.825314 -21.7687";
+ rotation = "1 0 0 180";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "1.61766 -23.0671 -22.3816";
+ rotation = "0 1 0 135";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "1.70774 -28.2066 -23.561";
+ rotation = "0 1 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "1.19653 -33.2818 -24.5205";
+ rotation = "0 1 0 45";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 -39.2005 -24.8752";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 -65.9536 -24.9158";
+ rotation = "1 0 0 45";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 -76.6091 -15.5266";
+ rotation = "1 0 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 -75.8209 -4.89695";
+ rotation = "1 0 0 135";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ bonusTime = "0";
+ penaltyTime = "0";
+ gemCount = "0";
+ powerUp = "0";
+ time = "0";
+ pad = "1636";
+ };
+ new StaticShape() {
+ position = "0.701204 -41.526 6.22225";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new ScriptObject() {
+ penaltyTime = "0";
+ bonusTime = "0";
+ gemCount = "0";
+ powerUp = "0";
+ time = "0";
+ pad = "1644";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/mudslide.mis b/data/missions/advanced/mudslide.mis
new file mode 100644
index 00000000..95ee18c6
--- /dev/null
+++ b/data/missions/advanced/mudslide.mis
@@ -0,0 +1,245 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ desc = "Grab the gems and skid to the finish!";
+ startHelpText = "Jumping in slippery areas can help your navigation.";
+ type = "advanced";
+ level = "33";
+ name = "Mudslide";
+ artist = "Alex Swanson";
+ time = "0";
+ goldTime = "30000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 2.8026e-045 1.79086e-042";
+ fogVolume2 = "-1 2.8026e-045 1.76564e-042";
+ fogVolume3 = "-1 2.8026e-045 1.74041e-042";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 0.000000";
+ };
+ new Sun() {
+ direction = "0.488577 0.573201 -0.657825";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/mudslide.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "30 14.5 6.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "18 31 0.795022";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "12.5 -7.5 -3";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape(EndPoint) {
+ position = "8.5 -59 -12.5";
+ rotation = "0 0 1 167.304";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new Item() {
+ position = "10 -10 -3";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "8.63186 -58.8844 -5.95466";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new Trigger(Bounds) {
+ position = "-19.5 43 -15.7118";
+ rotation = "1 0 0 0";
+ scale = "59.93 109.5 40.7118";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape(StartPoint) {
+ position = "6.41316 -10.2316 1.97049";
+ rotation = "0 0 -1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ pad = "1660";
+ penaltyTime = "0";
+ bonusTime = "0";
+ time = "0";
+ gemCount = "0";
+ };
+ new StaticShape() {
+ position = "3.4564 -45.0001 -10.1456";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-6.46129 -6.91997 3.31388";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-1.40109 -7.72749 2.30893";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-1.33637 -9.74817 2.24473";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-3.85667 -7.12108 2.78782";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-7.04335 -4.0508 3.45043";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-10.0569 -3.94533 4.06643";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-12.6505 -1.23198 4.50003";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-15.244 -2.02016 4.47288";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-14.2946 0.864693 4.92615";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-13.2651 4.14568 6.28515";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-14.7003 6.40145 7.29777";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "10.9479 16.0764 0.99244";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "13.5005 18.228 0.997979";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "7.07146 -48.2867 -11.3861";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "2.47312 -39.8075 -8.1421";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "6.62762 -42.4684 -9.29603";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+ new Item() {
+ position = "4.62219 -43.5291 -9.51898";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/mudslide.png b/data/missions/advanced/mudslide.png
new file mode 100644
index 00000000..342a9e4f
Binary files /dev/null and b/data/missions/advanced/mudslide.png differ
diff --git a/data/missions/advanced/obstacle.jpg b/data/missions/advanced/obstacle.jpg
new file mode 100644
index 00000000..745557c5
Binary files /dev/null and b/data/missions/advanced/obstacle.jpg differ
diff --git a/data/missions/advanced/obstacle.mis b/data/missions/advanced/obstacle.mis
new file mode 100644
index 00000000..15d22c0b
--- /dev/null
+++ b/data/missions/advanced/obstacle.mis
@@ -0,0 +1,792 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "60000";
+ desc = "Try to beat the clock and avoid the obstacles.";
+ level = "7";
+ type = "Advanced";
+ name = "Obstacle Course";
+ artist = "Alex Swanson";
+ goldTime = 14000;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.743093 0.11244 -0.659674";
+ color = "1.200000 1.000000 1.200000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "-3.8 1.85807e-007 -1.81794e-006";
+ rotation = "0 0 1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "20 74.2 12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-100 135.2 -36.6";
+ rotation = "1 0 0 0";
+ scale = "200 200 200";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/obstacle_course1.dif";
+ showTerrainInside = "0";
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "19.25 9.75 0.25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4 9.75 0.25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "19.25 9.75 0.25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/obstacle_course1.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "6.75 14 -4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "21.75 14 -4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "6.75 14 -4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/obstacle_course1.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "20 46 -10";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "20 46 -6";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "20 46 -10";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/obstacle_course1.dif";
+ interiorIndex = "2";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "16 46 -10";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "16 46 -6";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "16 46 -10";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "10";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/obstacle_course1.dif";
+ interiorIndex = "3";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "24 46 -10";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "600";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "24 46 -6";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1200";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "24 46 -10";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "10";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/obstacle_course1.dif";
+ interiorIndex = "4";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "24 50 -10";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "800";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "24 50 -5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "24 50 -10";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "10";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/obstacle_course1.dif";
+ interiorIndex = "5";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "20 50 -10";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "700";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "20 50 -4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "20 50 -10";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "10";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/obstacle_course1.dif";
+ interiorIndex = "6";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "16 50 -10";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "16 50 -5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "16 50 -10";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "10";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/obstacle_course1.dif";
+ interiorIndex = "7";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "16 54 -10";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "16 54 -3";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "16 54 -10";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "10";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/obstacle_course1.dif";
+ interiorIndex = "8";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "20 54 -10";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "750";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "20 54 -2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "20 54 -10";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "10";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/obstacle_course1.dif";
+ interiorIndex = "9";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "24 54 -10";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "600";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "24 54 -3";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "24 54 -10";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "10";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/obstacle_course1.dif";
+ interiorIndex = "10";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "24 58 -10";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "900";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "24 58 -1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "24 58 -10";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "10";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/obstacle_course1.dif";
+ interiorIndex = "11";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "20 58 -10";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "400";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "20 58 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "20 58 -10";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "10";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/obstacle_course1.dif";
+ interiorIndex = "12";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "16 58 -10";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "600";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "16 58 -1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "16 58 -10";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "10";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/obstacle_course1.dif";
+ interiorIndex = "13";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new Item() {
+ position = "20.0599 62.2 0.563932";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "20.1541 67.7636 6.59139";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "13.1784 38.985 -10.0266";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "12.7895 32.9661 -10";
+ rotation = "0 0 1 180";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "23.2442 34.1 -3.85";
+ rotation = "0 1 0 90";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "7.63 22.4771 -3.85";
+ rotation = "1 0 0 90";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new ScriptObject() {
+ gemCount = "0";
+ time = "0";
+ penaltyTime = "0";
+ powerUp = "0";
+ bonusTime = "0";
+ pad = "2899";
+ };
+ new ScriptObject() {
+ gemCount = "0";
+ time = "0";
+ penaltyTime = "0";
+ powerUp = "0";
+ bonusTime = "0";
+ pad = "1616";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+ new StaticShape() {
+ position = "14.8 31 -10";
+ rotation = "0 0 1 180";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "16.8 31 -10";
+ rotation = "0 0 1 180";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "12.8 31 -10";
+ rotation = "0 0 1 180";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "14.8 29 -10";
+ rotation = "0 0 1 180";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "16.8 29 -10";
+ rotation = "0 0 1 180";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "12.8 29 -10";
+ rotation = "0 0 1 180";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/ordeal.mis b/data/missions/advanced/ordeal.mis
new file mode 100644
index 00000000..bcfa268f
--- /dev/null
+++ b/data/missions/advanced/ordeal.mis
@@ -0,0 +1,869 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ type = "advanced";
+ desc = "Can you survive the challenges?";
+ artist = "Alex Swanson";
+ name = "Ordeal";
+ startHelpText = "Strength, speed and stealth are the keys to the trials ahead!";
+ level = "40";
+ goldTime = "20000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 8.27637e-036 9.53226e-021";
+ fogVolume2 = "-1 -3.78742e+013 -4.90382e+008";
+ fogVolume3 = "-1 1.18698e-026 -3.83829e+037";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -461061043217263230000.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -12711872186378061000000000000000000000.000000";
+ };
+ new Sun() {
+ direction = "-0.433884 0.614021 -0.659336";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/ordeal0.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "6 -14 -0.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "25.25 9 3.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "25.25 5 3.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new Item() {
+ position = "43.9462 7 3.40685";
+ rotation = "0 1 0 180";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "22 16.6537 7.75351";
+ rotation = "-1 0 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "22 15 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "25.6784 13 3.73054";
+ rotation = "0 1 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape(EndPoint) {
+ position = "74.5 42.5 20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new StaticShape(StartPoint) {
+ position = "-6 -2 0";
+ rotation = "0 0 1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "4.53125 2.5 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "800";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "11.5313 2.5 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "800";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4.53125 2.5 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/ordeal0.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "11.0031 5.5 6";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "800";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4.00313 5.5 6";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "800";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "11.0031 5.5 6";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/ordeal0.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "4.53125 8.5 7";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "800";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "11.5313 8.5 7";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "800";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4.53125 8.5 7";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/ordeal0.dif";
+ interiorIndex = "2";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "26.5 7 -0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "42 7 -0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "3000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "42 7 -0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "42 22 -0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "29 7 -0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-0.5000000 1.5000000 1.5000000 0.0000000 -3.0000000 0.0000000 0.0000000 0.0000000 -3.0000000 1.0000000 0.0000000 0.0000000";
+ targetTime = "10000";
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/ordeal0.dif";
+ interiorIndex = "3";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "62.5 22 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "62.5 22 9.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "62.5 22 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/ordeal0.dif";
+ interiorIndex = "4";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "58.5 22 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "58.5 22 8";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "58.5 22 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "10";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/ordeal0.dif";
+ interiorIndex = "5";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "66.5 22 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "600";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "66.5 22 10";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1200";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "66.5 22 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "10";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/ordeal0.dif";
+ interiorIndex = "6";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "66.5 26 2.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "800";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "66.5 26 10.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "66.5 26 2.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "10";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/ordeal0.dif";
+ interiorIndex = "7";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "62.5 26 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "700";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "62.5 26 9";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "62.5 26 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "10";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/ordeal0.dif";
+ interiorIndex = "8";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "58.5 26 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "58.5 26 8.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "58.5 26 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "10";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/ordeal0.dif";
+ interiorIndex = "9";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "70.5 22 3.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "70.5 22 11.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "70.5 22 3.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "10";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/ordeal0.dif";
+ interiorIndex = "10";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "74.5 30 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "900";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "74.5 30 13";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "74.5 30 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "10";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/ordeal0.dif";
+ interiorIndex = "11";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "74.5 26 4.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "400";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "74.5 26 12.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "74.5 26 4.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "10";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/ordeal0.dif";
+ interiorIndex = "12";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "70.5 26 3";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "600";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "70.5 26 11";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "70.5 26 3";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "10";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/ordeal0.dif";
+ interiorIndex = "13";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "74.5 38 7";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "900";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "74.5 38 15";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "74.5 38 7";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "10";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/ordeal0.dif";
+ interiorIndex = "14";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "74.5 34 5.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "900";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "74.5 34 13.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "900";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "74.5 34 5.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "10";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/ordeal0.dif";
+ interiorIndex = "15";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-18.5188 57.5344 -10.429";
+ rotation = "1 0 0 0";
+ scale = "111.321 85.5298 90.4487";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "74.89 42.5615 27.551";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/ordeal1.dif";
+ showTerrainInside = "0";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "1629";
+ bonusTime = "0";
+ penaltyTime = "0";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "1705";
+ penaltyTime = "0";
+ bonusTime = "0";
+ };
+ new StaticShape() {
+ position = "44.7903 4.91748 2.29113";
+ rotation = "0.474963 -0.0170092 0.879841 183.609";
+ scale = "1 1 1";
+ dataBlock = "SignPlainRight";
+ };
+ new StaticShape() {
+ position = "19.6855 15.9831 8.20243";
+ rotation = "0.303582 0.309962 0.900978 94.7773";
+ scale = "1 1 1";
+ dataBlock = "SignPlainLeft";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/ordeal.png b/data/missions/advanced/ordeal.png
new file mode 100644
index 00000000..cf89c93b
Binary files /dev/null and b/data/missions/advanced/ordeal.png differ
diff --git a/data/missions/advanced/pathways.mis b/data/missions/advanced/pathways.mis
new file mode 100644
index 00000000..2b4706ba
--- /dev/null
+++ b/data/missions/advanced/pathways.mis
@@ -0,0 +1,1207 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ type = "advanced";
+ desc = "All your base are belong to us.";
+ startHelpText = "Pay careful attention to the pattern of the bumpers.";
+ name = "Pathways";
+ artist = "Alex Swanson";
+ level = "50";
+ goldTime = "85000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 7.45949e-031 1.3684e-038";
+ fogVolume2 = "-1 1.07208e-014 8.756e-014";
+ fogVolume3 = "-1 5.1012e-010 2.05098e-008";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
+ };
+ new Sun() {
+ direction = "-0.433247 0.68704 -0.583329";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pathways.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "-2 -2 -3.10037";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "38 1.89829 -0.410081";
+ rotation = "1 0 0 180";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-10 -10.0997 -15.1087";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "37.9856 -5.95336 -8.382";
+ rotation = "0 1 0 180";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape(StartPoint) {
+ position = "2 6 -11.5";
+ rotation = "0 0 1 180.091";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "-10 -18.0028 -20.0016";
+ rotation = "1 0 0 180";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ fixedscale = "1";
+ };
+ new StaticShape() {
+ position = "12.25 -5 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "14 -3.75 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "16.25 -3.75 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "19.75 -5 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "19.75 -7 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "18.5 -8.25 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "16.5 -8.25 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "14.5 -8.25 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "12.25 -7 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new Item() {
+ position = "-10 -18.0035 -16.206";
+ rotation = "1 0 0 180";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "42 -18 -3.29818";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "30 -18 -15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "30 -18 -15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "30 -18 -11.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "30 -18 -11.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "30 -18 -15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/pathways.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "34 -14 -11.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "34 -14 -11.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "34 -14 -7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "34 -14 -7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "34 -14 -3.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "34 -14 -3.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "5";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "34 -14 -7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "6";
+ msToNext = "500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "34 -14 -7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "7";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "34 -14 -11.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "8";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/pathways.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-6 -10 -15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-6 -10 -15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-6 -10 -11.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-6 -10 -11.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-6 -10 -7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-6 -10 -7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "5";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-6 -10 -11.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "6";
+ msToNext = "500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-6 -10 -11.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "7";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-6 -10 -15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "8";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/pathways.dif";
+ interiorIndex = "2";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-2 2 -3.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-2 2 -3.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-2 2 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-2 2 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-2 2 -3.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/pathways.dif";
+ interiorIndex = "3";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "4.75 -12.25 -7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4.75 -15.75 -7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "27.25 -15.75 -7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "27.25 -12.25 -7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4.75 -12.25 -7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/pathways.dif";
+ interiorIndex = "4";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "4.75 -12.25 -7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4.75 -15.75 -7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "27.25 -15.75 -7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "27.25 -12.25 -7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4.75 -12.25 -7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/pathways.dif";
+ interiorIndex = "5";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "1400";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "4.75 -12.25 -7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4.75 -15.75 -7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "27.25 -15.75 -7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "27.25 -12.25 -7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4.75 -12.25 -7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/pathways.dif";
+ interiorIndex = "6";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "2800";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "4.75 -12.25 -7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4.75 -15.75 -7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "27.25 -15.75 -7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "27.25 -12.25 -7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4.75 -12.25 -7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/pathways.dif";
+ interiorIndex = "7";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "4200";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "4.75 -12.25 -8";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "27.25 -12.25 -8";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "4.75 -12.25 -8";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/pathways.dif";
+ interiorIndex = "8";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "27.2188 -15.75 -8";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "4.71875 -15.75 -8";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "27.2188 -15.75 -8";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/pathways.dif";
+ interiorIndex = "9";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "4.75 -8.25 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4.75 -11.75 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "13.75 -11.75 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "13.75 -8.25 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4.75 -8.25 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/pathways.dif";
+ interiorIndex = "10";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "4.75 -8.25 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4.75 -11.75 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "13.75 -11.75 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "13.75 -8.25 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4.75 -8.25 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/pathways.dif";
+ interiorIndex = "11";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "1600";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "18.25 -0.25 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "18.25 -3.75 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "27.25 -3.75 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "27.25 -0.25 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "18.25 -0.25 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/pathways.dif";
+ interiorIndex = "12";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "18.25 -0.25 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "18.25 -3.75 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "27.25 -3.75 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "27.25 -0.25 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "18.25 -0.25 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/pathways.dif";
+ interiorIndex = "13";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ initialPosition = "1600";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "4.75 -8.25 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "19.75 -8.25 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "4.75 -8.25 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/pathways.dif";
+ interiorIndex = "14";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "12.25 -3.75 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "27.25 -3.75 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "12.25 -3.75 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/pathways.dif";
+ interiorIndex = "15";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ initialPosition = "0";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-19.168 11.5 -32.4154";
+ rotation = "1 0 0 0";
+ scale = "69.6838 43.4438 52.2726";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new ScriptObject() {
+ gemCount = "0";
+ time = "0";
+ powerUp = "0";
+ pad = "1644";
+ penaltyTime = "0";
+ bonusTime = "0";
+ };
+ new Item() {
+ position = "16.0033 -14.0598 -8.04799";
+ rotation = "0 1 0 180.664";
+ scale = "1 1 1";
+ dataBlock = "GemItemYellow";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "33.9929 -16.0107 -16.0456";
+ rotation = "0 1 0 180.091";
+ scale = "1 1 1";
+ dataBlock = "GemItemYellow";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "15.9989 -13.8022 -7.45067";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItemPurple";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "34.0599 -14.0716 -15.4625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItemPurple";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "19.7597 -6.20113 -0.0426379";
+ rotation = "0 1 0 180.664";
+ scale = "1 1 1";
+ dataBlock = "GemItemYellow";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "15.9855 -5.71552 0.549266";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItemPurple";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+ new StaticShape() {
+ position = "-9.24318 -18.1187 -26.6237";
+ rotation = "0.974794 0.223106 0.000177681 179.911";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/pathways.png b/data/missions/advanced/pathways.png
new file mode 100644
index 00000000..98aa7cec
Binary files /dev/null and b/data/missions/advanced/pathways.png differ
diff --git a/data/missions/advanced/pinball.mis b/data/missions/advanced/pinball.mis
new file mode 100644
index 00000000..d3fb05e7
--- /dev/null
+++ b/data/missions/advanced/pinball.mis
@@ -0,0 +1,994 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ artist = "Alex Swanson";
+ desc = "Not your everyday game of marbles!";
+ startHelpText = "Navigate this pinball game and collect the gems!";
+ level = "42";
+ type = "advanced";
+ name = "Pinball Wizard";
+ goldTime = "65000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 7.45949e-031 1.3684e-038";
+ fogVolume2 = "-1 1.07208e-014 8.756e-014";
+ fogVolume3 = "-1 5.1012e-010 2.05098e-008";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
+ };
+ new Sun() {
+ direction = "0.348311 0.367525 -0.862325";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pinball0.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "26 -14.9375 -10.0438";
+ rotation = "-1 0 0 27.5";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "18 -24.9601 -15.2596";
+ rotation = "-1 0 0 27.5";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new StaticShape() {
+ position = "3.97037 1.48037 0.695672";
+ rotation = "-1 0 0 27.5";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ open = "0";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-11.4412 3.9843 -0.00332773";
+ rotation = "0.0974571 -0.236554 0.966718 223.432";
+ scale = "1 1 1";
+ dataBlock = "TriangleBumper";
+ };
+ new Item() {
+ position = "3.97187 1.40625 0.74375";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "17 -13.6438 -7.0875";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "18.5 -11.425 -5.93437";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "18.5 -15.4156 -8.0125";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-8.5 22.725 11.8438";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-1.5 26.7156 13.9219";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "6.5 25.3844 13.2281";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-1 17.4375 6.8375";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "1 17.4375 6.8375";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "1.5 15.6656 5.9125";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 14.3344 5.22188";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-1.5 15.6656 5.9125";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "3 29.8375 14.3299";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "300";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "3 30.3594 13.3331";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "3 30.2437 13.555";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "3 30.0696 13.8868";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-0.5312500 0.2259222 0.7165268 0.0000000 -0.9424503 -0.4906081 0.0000000 0.4906057 -0.9424456 1.0625000 0.0000000 0.0000000";
+ targetTime = "300";
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/pinball0.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-7.375 -26.5969 -15.0482";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "50";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-7.375 -25.4875 -14.47";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-7.375 -26.5969 -15.0482";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/pinball0.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "7.5 -26.5969 -15.0482";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "50";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "7.5 -25.4875 -14.47";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "7.5 -26.5969 -15.0482";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/pinball0.dif";
+ interiorIndex = "2";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "14.25 4.66875 1.22687";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "50";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "14.25 5.77812 1.805";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "14.25 4.66875 1.22687";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/pinball0.dif";
+ interiorIndex = "3";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "22 -27.0406 -15.2794";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "250";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "22 -18.0594 -10.6044";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "22 -27.0406 -15.2794";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/pinball0.dif";
+ interiorIndex = "4";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "12.3125 -0.7625 -1.60125";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "300";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "15.75 -0.7625 -1.60125";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "15.75 -0.7625 -1.60125";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "3 30.0696 13.8868";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-0.5312500 0.2259222 0.7165268 0.0000000 -0.9424503 -0.4906081 0.0000000 0.4906057 -0.9424456 1.0625000 0.0000000 0.0000000";
+ targetTime = "300";
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/pinball0.dif";
+ interiorIndex = "5";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-4 -1.65 -2.06062";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "300";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-4 -1.13125 -3.06062";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-4 -1.24688 -2.83875";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "-4 -1.41926 -2.50537";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-0.5312500 0.2259216 0.7165265 0.0000000 -0.9424490 -0.4906074 0.0000000 0.4906057 -0.9424456 1.0625000 0.0000000 0.0000000";
+ targetTime = "300";
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/pinball0.dif";
+ interiorIndex = "6";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-9.5 -5.19688 -3.9075";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "300";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9.5 -4.67812 -4.9075";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-9.5 -4.79375 -4.68563";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "-9.5 -4.96731 -4.35236";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-0.5312500 0.2259218 0.7165266 0.0000000 -0.9424493 -0.4906076 0.0000000 0.4906057 -0.9424456 1.0625000 0.0000000 0.0000000";
+ targetTime = "300";
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/pinball0.dif";
+ interiorIndex = "7";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-3.5 -7.85938 -5.295";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "300";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-3.5 -7.34062 -6.29188";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-3.5 -7.45625 -6.07";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "-3.5 -7.62834 -5.7376";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-0.5312500 0.2259218 0.7165266 0.0000000 -0.9424493 -0.4906076 0.0000000 0.4906057 -0.9424456 1.0625000 0.0000000 0.0000000";
+ targetTime = "300";
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/pinball0.dif";
+ interiorIndex = "8";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "19.25 -18.3281 -7.92625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "300";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "19.25 -17.4344 -11.2638";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "19.25 -17.4344 -11.2638";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "-3.5 -7.62834 -5.7376";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-0.5312500 0.2259218 0.7165266 0.0000000 -0.9424493 -0.4906076 0.0000000 0.4906057 -0.9424456 1.0625000 0.0000000 0.0000000";
+ targetTime = "300";
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/pinball0.dif";
+ interiorIndex = "9";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "19.25 -17.6625 -7.57937";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "300";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "19.25 -16.7687 -10.9201";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "19.25 -16.7687 -10.9201";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "-9.5 -4.96731 -4.35236";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-0.5312500 0.2259218 0.7165266 0.0000000 -0.9424493 -0.4906076 0.0000000 0.4906057 -0.9424456 1.0625000 0.0000000 0.0000000";
+ targetTime = "300";
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/pinball0.dif";
+ interiorIndex = "10";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "19.25 -17.6625 -7.57937";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "300";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "19.25 -16.1031 -10.5731";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "19.25 -16.1031 -10.5731";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "-4 -1.41926 -2.50537";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-0.5312500 0.2259216 0.7165265 0.0000000 -0.9424490 -0.4906074 0.0000000 0.4906057 -0.9424456 1.0625000 0.0000000 0.0000000";
+ targetTime = "300";
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/pinball0.dif";
+ interiorIndex = "11";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-24.7548 39.1666 -19.4932";
+ rotation = "1 0 0 0";
+ scale = "53.8813 69.6477 62.9218";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "-11.402 8.83843 2.50488";
+ rotation = "-0.511389 0.204255 -0.834722 51.1419";
+ scale = "1 1 1";
+ dataBlock = "TriangleBumper";
+ };
+ new InteriorInstance() {
+ position = "-0.028511 1.08545 -1.70955";
+ rotation = "-1 0 0 27.5";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pinball1.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-0.028511 1.08545 -1.70955";
+ rotation = "-1 0 0 27.5";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pinball2.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-0.028511 1.08545 -1.70955";
+ rotation = "-1 0 0 27.5";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pinball3.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-0.04177 1.06756 -1.70955";
+ rotation = "-1 0 0 27.5";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pinball4.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape() {
+ position = "-5.50439 -4.97458 -4.62721";
+ rotation = "-0.986119 0.0394663 -0.161283 27.8721";
+ scale = "1 1 1";
+ dataBlock = "TriangleBumper";
+ };
+ new StaticShape() {
+ position = "17.3177 -14.7602 -7.75581";
+ rotation = "-1 0 0 27.5";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "18.2942 -12.9533 -6.81362";
+ rotation = "-1 0 0 27.5";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "0.896721 11.7533 3.8551";
+ rotation = "-1 0 0 27.5";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "2.79916 12.4161 4.20943";
+ rotation = "-1 0 0 27.5";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-0.813548 11.7467 3.86118";
+ rotation = "-1 0 0 27.5";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-2.74944 12.3932 4.18475";
+ rotation = "-1 0 0 27.5";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "4.15842 13.5717 4.77817";
+ rotation = "-1 0 0 27.5";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "4.90125 15.0816 5.58812";
+ rotation = "-1 0 0 27.5";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "4.8867 16.8806 6.52025";
+ rotation = "-1 0 0 27.5";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-4.10423 13.6078 4.82826";
+ rotation = "-1 0 0 27.5";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-4.8628 15.1014 5.58608";
+ rotation = "-1 0 0 27.5";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-4.83584 16.8038 6.47436";
+ rotation = "-1 0 0 27.5";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-4.11402 18.3605 7.29474";
+ rotation = "-1 0 0 27.5";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-2.75042 19.6416 7.96811";
+ rotation = "-1 0 0 27.5";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-0.983073 20.1359 8.2193";
+ rotation = "-1 0 0 27.5";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "0.897606 20.1385 8.23056";
+ rotation = "-1 0 0 27.5";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "2.73928 19.5601 7.92573";
+ rotation = "-1 0 0 27.5";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "4.04053 18.3133 7.26726";
+ rotation = "-1 0 0 27.5";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "12.5646 -19.0667 -11.9713";
+ rotation = "-0.428149 0.214799 -0.87781 59.4982";
+ scale = "1 1 1";
+ dataBlock = "TriangleBumper";
+ };
+ new StaticShape() {
+ position = "10.1013 -21.6558 -13.3366";
+ rotation = "-0.283811 -0.227912 0.931401 81.535";
+ scale = "1 1 1";
+ dataBlock = "TriangleBumper";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "5775";
+ penaltyTime = "0";
+ bonusTime = "0";
+ };
+ new StaticShape() {
+ position = "-12.8969 -17.1199 -10.9753";
+ rotation = "0.0168526 -0.237653 0.971204 187.879";
+ scale = "1 1 1";
+ dataBlock = "TriangleBumper";
+ };
+ new Item() {
+ position = "17.8309 -4.49573 -4.15312";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "14.389 -1.40478 -2.34909";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "15.7642 -1.70355 -2.51544";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "15.911 -2.63114 -3.03871";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "16.4334 -3.96323 -3.69341";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "8289";
+ penaltyTime = "0";
+ bonusTime = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/pinball.png b/data/missions/advanced/pinball.png
new file mode 100644
index 00000000..659002e1
Binary files /dev/null and b/data/missions/advanced/pinball.png differ
diff --git a/data/missions/advanced/pipedreams.mis b/data/missions/advanced/pipedreams.mis
new file mode 100644
index 00000000..45c9fb92
--- /dev/null
+++ b/data/missions/advanced/pipedreams.mis
@@ -0,0 +1,243 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ type = "advanced";
+ time = "45000";
+ name = "Pipe Dreams";
+ artist = "Alex Swanson";
+ desc = "Plummet down these pipes!";
+ startHelpText = "Try not to get caught up on the obstacles!";
+ level = "34";
+ goldTime ="27000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 7.45949e-031 1.3684e-038";
+ fogVolume2 = "-1 1.07208e-014 8.756e-014";
+ fogVolume3 = "-1 5.1012e-010 2.05098e-008";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
+ };
+ new Sun() {
+ direction = "0.540226 0.423195 -0.727367";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 -2.40796 30.7926";
+ rotation = "1 0 0 13.751";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe0.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape() {
+ position = "224.832 93.8972 -44.443";
+ rotation = "0 0 1 76.2034";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new InteriorInstance() {
+ position = "224.663 94.2 -52.4278";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/smallplatform.dif";
+ showTerrainInside = "0";
+ };
+ new Trigger(Bounds) {
+ position = "-14.4342 115.46 -60.8344";
+ rotation = "1 0 0 0";
+ scale = "249.652 220.22 125.716";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "117.587 94.329 -20.3875";
+ rotation = "0 -1 0 16.0428";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe7.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0 -2.40796 30.7926";
+ rotation = "1 0 0 13.751";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe1.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0 -2.40796 30.7926";
+ rotation = "1 0 0 13.751";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe2.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0 -2.40796 30.7926";
+ rotation = "1 0 0 13.751";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe3.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0 -2.40796 30.7926";
+ rotation = "1 0 0 13.751";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe4.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "117.587 94.329 -20.3875";
+ rotation = "0 -1 0 16.0428";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe5.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "117.587 94.329 -20.3875";
+ rotation = "0 -1 0 16.0428";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe6.dif";
+ showTerrainInside = "0";
+ };
+ new ScriptObject() {
+ penaltyTime = "0";
+ bonusTime = "0";
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "2092";
+ };
+ new StaticShape(StartPoint) {
+ position = "-0.193425 -92.4163 50.9362";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new InteriorInstance() {
+ position = "0.335566 94.562 7.11139";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/advanced/platform_circle.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-0.0677553 -92.5745 50.5785";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/smallplatform.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(EndPoint) {
+ position = "224.544 94.3019 -52.0652";
+ rotation = "0 0 1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new ScriptObject() {
+ penaltyTime = "0";
+ bonusTime = "0";
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "2561";
+ };
+ new Item() {
+ position = "140.514 94.3244 -29.0638";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItemTurquoise";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-1.90143 -37.2243 38.2716";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItemTurquoise";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "1.29952 24.1481 23.4048";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItemTurquoise";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-0.64535 49.0361 16.2448";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItemTurquoise";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "70.0351 94.324 -8.77871";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItemTurquoise";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Trigger() {
+ position = "-35.9879 68.8678 -7.93967";
+ rotation = "1 0 0 0";
+ scale = "170.631 95.0111 7.19223";
+ dataBlock = "OutOfBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new Trigger() {
+ position = "-26.2674 -14.5248 19.4786";
+ rotation = "1 0 0 0";
+ scale = "170.631 95.0111 7.19223";
+ dataBlock = "OutOfBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new ScriptObject() {
+ penaltyTime = "0";
+ bonusTime = "0";
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "3029";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/pipedreams.png b/data/missions/advanced/pipedreams.png
new file mode 100644
index 00000000..9b72c380
Binary files /dev/null and b/data/missions/advanced/pipedreams.png differ
diff --git a/data/missions/advanced/plumbing.mis b/data/missions/advanced/plumbing.mis
new file mode 100644
index 00000000..03f4a772
--- /dev/null
+++ b/data/missions/advanced/plumbing.mis
@@ -0,0 +1,445 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ type = "advanced";
+ desc = "Follow these pipes to the other side of the world!";
+ startHelpText = "Collect the gems then speed to the finish!";
+ name = "Plumber\'s Portal";
+ artist = "Alex Swanson";
+ level = "25";
+ goldTime = "35000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 2.8026e-045 1.91698e-042";
+ fogVolume2 = "-1 2.8026e-045 1.89175e-042";
+ fogVolume3 = "-1 2.8026e-045 1.85392e-042";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 0.000000";
+ };
+ new Sun() {
+ direction = "0.544217 0.638479 -0.544217";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "-0.00428712 -8.39233e-005 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/plumbing.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(EndPoint) {
+ position = "-18 -46 -9";
+ rotation = "0 0 1 180.091";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new StaticShape(StartPoint) {
+ position = "-30 -14 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new Trigger(Bounds) {
+ position = "-35 24.4553 -20.1095";
+ rotation = "1 0 0 0";
+ scale = "50 78.7812 43.9769";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "-12.5 -2 -14";
+ rotation = "0 -1 0 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipecap.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-10 6 -6";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipeturn.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-10 6 -2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-10 6 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipecap.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-14 6 -6";
+ rotation = "-0.577197 -0.577197 -0.577657 119.974";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe3way.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "4 -2 -14";
+ rotation = "0 -1 0 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipecap.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-14 10 -6";
+ rotation = "1 0 0 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-14 2 -6";
+ rotation = "1 0 0 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-14 -2 -6";
+ rotation = "0 0.707104 0.707109 180";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe3way.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-10 -2 -6";
+ rotation = "1 0 0 180";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipeturn.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-18 -2 -6";
+ rotation = "-0.577656 -0.577197 -0.577197 119.974";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipeturn.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-18 -6 -6";
+ rotation = "1 0 0 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-18 -10 -6";
+ rotation = "1 0 0 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-18 -14 -6";
+ rotation = "1 0 0 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-18 -18 -6";
+ rotation = "1 0 0 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-18 -26 -6";
+ rotation = "1 0 0 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-18 -22 -6";
+ rotation = "1 0 0 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-18 -30 -6";
+ rotation = "1 0 0 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-18 -34 -6";
+ rotation = "1 0 0 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-18 -36 -6";
+ rotation = "-1 0 0 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipecap.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-14 14 -6";
+ rotation = "1 0 0 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-14 18 -6";
+ rotation = "-0.577656 -0.577197 -0.577197 119.974";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipeturn.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-10 18 -6";
+ rotation = "0.577657 0.577197 -0.577197 119.974";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-6 18 -6";
+ rotation = "0.577657 0.577197 -0.577197 119.974";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-2 18 -6";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipeturn.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-2 18 -2";
+ rotation = "0 1 0 180";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipeturn.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "2 18 -2";
+ rotation = "-1 0 0 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipeturn.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "2 14 -2";
+ rotation = "1 0 0 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "2 10 -2";
+ rotation = "1 0 0 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "2 6 -2";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipeturn.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "2 6 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "2 6 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipecap.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-10 -2 -14";
+ rotation = "0 0 1 180";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe3way.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-10 -2 -10";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-6 -2 -14";
+ rotation = "0.577657 0.577197 -0.577197 119.974";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-2 -2 -14";
+ rotation = "0.577657 0.577197 -0.577197 119.974";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "2 -2 -14";
+ rotation = "0.577657 0.577197 -0.577197 119.974";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "-13.9933 6.02492 -7.53156";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0.136 -1.99217 -15.3577";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-13.9501 5.96638 -4.7083";
+ rotation = "0 1 0 180";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new InteriorInstance() {
+ position = "-10 6 -1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/pipe.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "-5.00175 8.89632 -12.5485";
+ rotation = "0 1 0 180.091";
+ scale = "1 1 1";
+ dataBlock = "GemItemGreen";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-28.1044 -17.9194 -10.556";
+ rotation = "0 1 0 180.091";
+ scale = "1 1 1";
+ dataBlock = "GemItemGreen";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "-17.3626 -46.0238 -2.25735";
+ rotation = "0 0 -1 25.7831";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new Item() {
+ position = "-8.21314 18.017 -7.33606";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "2.00655 12.1478 -0.689674";
+ rotation = "0 1 0 180";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "5.96423 -10.0291 4.54487";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItemYellow";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-20.0938 -2.09134 -0.457178";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItemYellow";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+ new Trigger() {
+ position = "-14.5151 6.51218 -7.76896";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "HelpTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ text = "Use the super-jump to hop back out of the drains!";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/plumbing.png b/data/missions/advanced/plumbing.png
new file mode 100644
index 00000000..8163ff09
Binary files /dev/null and b/data/missions/advanced/plumbing.png differ
diff --git a/data/missions/advanced/reloaded.mis b/data/missions/advanced/reloaded.mis
new file mode 100644
index 00000000..48157d05
--- /dev/null
+++ b/data/missions/advanced/reloaded.mis
@@ -0,0 +1,206 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "60000";
+ desc = "We need gems. Lots of gems.";
+ startHelpText = "Be careful when crossing between platforms.";
+ level = "28";
+ type = "advanced";
+ name = "Ramps Reloaded";
+ artist = "Alex Swanson";
+ goldTime = "15000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 7.45949e-031 1.3684e-038";
+ fogVolume2 = "-1 1.07208e-014 8.756e-014";
+ fogVolume3 = "-1 5.1012e-010 2.05098e-008";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
+ };
+ new Sun() {
+ direction = "0.488577 0.573201 -0.657825";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/reloaded.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "2 6 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new Item() {
+ position = "-10 14 -5.78916";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-18 -6 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-6 2 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-18 22 -2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-26 2 4.24245";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "18 -14 -6";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "25.9992 -21.93 -1.80581";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "14 -14 6";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "22 14 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "22 -14 -4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "34 -2 4.24914";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape(EndPoint) {
+ position = "6 -6 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new Trigger(Bounds) {
+ position = "-31 27 -9.5";
+ rotation = "1 0 0 0";
+ scale = "70 54 34.5";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new Item() {
+ position = "-14.0095 13.9731 -3.78448";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "6.08776 -5.64729 10.961";
+ rotation = "0 0 -1 42.9718";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new ScriptObject() {
+ time = "0";
+ penaltyTime = "0";
+ bonusTime = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "2774";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/reloaded.png b/data/missions/advanced/reloaded.png
new file mode 100644
index 00000000..4a00ee3f
Binary files /dev/null and b/data/missions/advanced/reloaded.png differ
diff --git a/data/missions/advanced/scaffold.mis b/data/missions/advanced/scaffold.mis
new file mode 100644
index 00000000..0edc39cb
--- /dev/null
+++ b/data/missions/advanced/scaffold.mis
@@ -0,0 +1,268 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ type = "advanced";
+ desc = "Built by the lowest bidder.";
+ name = "Scaffold";
+ artist = "Alex Swanson";
+ startHelpText = "Keep moving to avoid falling through the trap doors!";
+ level = "35";
+ goldTime = "15000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 7.45949e-031 1.3684e-038";
+ fogVolume2 = "-1 1.07208e-014 8.756e-014";
+ fogVolume3 = "-1 5.1012e-010 2.05098e-008";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
+ };
+ new Sun() {
+ direction = "0.6746 0.417457 -0.608805";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/scaffold.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "2 -11.5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape() {
+ position = "3 -10.5 6.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "1 -10.5 7.25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-1 -10.5 8";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-3 -10.5 8.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-5 -10.5 9.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "2.5 22 18";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "4.5 22 18.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "8.5 22 19.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "6.5 24 20.25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "6.5 26 20.25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "10.5 24 21.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "10.5 28 21.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "12.5 26 22.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ open = "0";
+ resetTime = "Default";
+ timeout = "200";
+ };
+ new StaticShape(EndPoint) {
+ position = "22 26 23";
+ rotation = "0 0 1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new Trigger(Bounds) {
+ position = "-20 31.5 -2.02568";
+ rotation = "1 0 0 0";
+ scale = "47.5 48.5 42.0257";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new ScriptObject() {
+ gemCount = "0";
+ time = "0";
+ powerUp = "0";
+ pad = "1510";
+ penaltyTime = "0";
+ bonusTime = "0";
+ };
+ new Item() {
+ position = "-2.49187 -4.50746 3.0211";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "22.2781 25.7827 29.6222";
+ rotation = "0 0 1 37.8152";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new Item() {
+ position = "-2.51466 -5.33479 3.02008";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ gemCount = "0";
+ time = "0";
+ powerUp = "0";
+ pad = "1717";
+ penaltyTime = "0";
+ bonusTime = "0";
+ };
+ new Item() {
+ position = "-4.9419 -10.5677 8.75513";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "6.40486 2.95151 2.62485";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-4.68896 17.07 17.9547";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/scaffold.png b/data/missions/advanced/scaffold.png
new file mode 100644
index 00000000..078d887d
Binary files /dev/null and b/data/missions/advanced/scaffold.png differ
diff --git a/data/missions/advanced/selection.mis b/data/missions/advanced/selection.mis
new file mode 100644
index 00000000..9abc2d83
--- /dev/null
+++ b/data/missions/advanced/selection.mis
@@ -0,0 +1,1018 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ artist = "Alex Swanson";
+ time = "0";
+ desc = "Don't fall behind!";
+ startHelpText = "Don\'t let the platform outrun you!";
+ type = "advanced";
+ level = "46";
+ name = "Natural Selection";
+ goldTime = "54000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 7.45949e-031 1.3684e-038";
+ fogVolume2 = "-1 1.07208e-014 8.756e-014";
+ fogVolume3 = "-1 5.1012e-010 2.05098e-008";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
+ };
+ new Sun() {
+ direction = "0.417803 -0.71344 -0.562534";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/selection0.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(EndPoint) {
+ position = "-22.5 -8 29";
+ rotation = "0 0 1 181.81";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new Item() {
+ position = "4 2 22.6992";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "4 -14 28.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "HelicopterItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "18.125 33 -17.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "10.625 33 -19.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "8.625 33 -21";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "3.625 33 -22";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "23.5 32.5 -16";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "20.875 31 -16.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "16.375 31 -18.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "12.875 31 -19.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "6.875 31 -21";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "1.875 31 -23";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "5.25 30 -22";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "9.25 30 -20.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "12.75 30 -19";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "19.75 30 -17";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "22.875 35 -16";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "17.875 35 -18";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "14.875 35 -18.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "11.875 35 -20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "6.375 35 -21.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "3.375 35 -23";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "7.5 28 -21";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "13.5 28 -19";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "20 36 -17.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "9 36 -20.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "24 0 -16";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "Tornado";
+ };
+ new StaticShape(StartPoint) {
+ position = "-7 -14 -36";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "0 -12 -32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "0 16 -32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-0.25 16 -24";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "0 32 -24";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "24 32 -16";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "24 16 -16";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "5";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "40 16 -16";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "6";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "40 0 -16";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "7";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "24 0 -16";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "8";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "24 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "9";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "8 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "10";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "8 -16 8";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "11";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "32 -16 8";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "12";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "32 -6 8";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "13";
+ msToNext = "8000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "32 -6 25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "14";
+ msToNext = "10000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-15.5 -6 25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "15";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "0.75 -12 -30.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-3.2500000 -4.0000000 1.2500000 0.0000000 8.0000000 0.0000000 6.5000000 0.0000000 0.0000000 0.0000000 0.0000000 -2.5000000";
+ targetTime = "70000";
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/selection0.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "1 -2 -9.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "1 -2 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "1 -2 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "1 -2 -8.25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-2.0000000 -2.0000000 1.2500000 0.0000000 4.0000000 0.0000000 4.0000000 0.0000000 0.0000000 0.0000000 0.0000000 -2.5000000";
+ targetTime = "3000";
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/selection0.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-4.5 2.75 -32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "400";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-4.5 -0.75 -32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1200";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4.5 -0.75 -32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "400";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4.5 2.75 -32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1200";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-4.5 2.75 -32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/selection0.dif";
+ interiorIndex = "2";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-4.5 9.75 -32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "400";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-4.5 6.25 -32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1200";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4.5 6.25 -32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "400";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4.5 9.75 -32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1200";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-4.5 9.75 -32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/selection0.dif";
+ interiorIndex = "3";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "26.7813 20 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "400";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "23.2813 20 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1200";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "23.2813 11 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "400";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "26.7813 11 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1200";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "26.7813 20 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/selection0.dif";
+ interiorIndex = "4";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "34.25 3.75 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "400";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "34.25 0.25 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1200";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "43.25 0.25 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "400";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "43.25 3.75 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1200";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "34.25 3.75 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/selection0.dif";
+ interiorIndex = "5";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "34.25 7.25 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "400";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "34.25 3.75 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1200";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "43.25 3.75 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "400";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "43.25 7.25 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1200";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "34.25 7.25 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/selection0.dif";
+ interiorIndex = "6";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "34.25 0.25 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "400";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "34.25 -3.25 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1200";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "43.25 -3.25 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "400";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "43.25 0.25 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1200";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "34.25 0.25 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/selection0.dif";
+ interiorIndex = "7";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "37.2188 18 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "400";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "33.7188 18 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1200";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "33.7188 9 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "400";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "37.2188 9 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1200";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "37.2188 18 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/selection0.dif";
+ interiorIndex = "8";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "33.7188 20 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "400";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "30.2188 20 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1200";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "30.2188 11 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "400";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "33.7188 11 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1200";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "33.7188 20 -16.0625";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/selection0.dif";
+ interiorIndex = "9";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-41.7509 46.2337 -37.5218";
+ rotation = "1 0 0 0";
+ scale = "95.6212 78.7723 117.355";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/selection5.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/selection1.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/selection2.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/selection3.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/selection4.dif";
+ showTerrainInside = "0";
+ };
+ new ScriptObject() {
+ pad = "2315";
+ penaltyTime = "0";
+ bonusTime = "0";
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ };
+ new StaticShape() {
+ position = "-22.4685 -7.08615 36.0705";
+ rotation = "0 0 -1 65.3172";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new Item() {
+ position = "28.6064 -19.3044 10.5006";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-5.26238 28.7715 -22.4844";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-7.3488 -4.37262 30.5321";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/selection.png b/data/missions/advanced/selection.png
new file mode 100644
index 00000000..f2425022
Binary files /dev/null and b/data/missions/advanced/selection.png differ
diff --git a/data/missions/advanced/shimmy.mis b/data/missions/advanced/shimmy.mis
new file mode 100644
index 00000000..7469ee03
--- /dev/null
+++ b/data/missions/advanced/shimmy.mis
@@ -0,0 +1,170 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ type = "advanced";
+ desc = "Beware the slippery slopes!";
+ name = "Shimmy";
+ artist = "Alex Swanson";
+ startHelpText = "Stay in the air to avoid unsteady footing!";
+ level = "37";
+ goldTime = "20000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 7.45949e-031 1.3684e-038";
+ fogVolume2 = "-1 1.07208e-014 8.756e-014";
+ fogVolume3 = "-1 5.1012e-010 2.05098e-008";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
+ };
+ new Sun() {
+ direction = "0.512126 0.512126 -0.689532";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/smallplatform.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "-0.118466 0.215802 0.375264";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new InteriorInstance() {
+ position = "-4.04578 9.69267 5.54496";
+ rotation = "0 0 1 29.2206";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/smallplatform.dif";
+ showTerrainInside = "0";
+ };
+ new Trigger(Bounds) {
+ position = "-9.1479 32.3474 -4.30821";
+ rotation = "1 0 0 0";
+ scale = "41.0675 39.9535 21.6832";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "0.836448 10.3545 -0.61816";
+ rotation = "0 0 -1 80.2141";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/shimmy.dif";
+ showTerrainInside = "0";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "1808";
+ penaltyTime = "0";
+ bonusTime = "0";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "1673";
+ penaltyTime = "0";
+ bonusTime = "0";
+ };
+ new InteriorInstance() {
+ position = "19.2367 8.96532 -1.73297";
+ rotation = "-0.019049 -0.108782 -0.993883 64.0709";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/shimmy.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "3.02342 21.2526 -0.258706";
+ rotation = "0 0 1 12.0321";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/smallplatform.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "13.5035 20.0702 -2.72689";
+ rotation = "-0.0932355 -0.899547 0.426758 13.2789";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/shimmy.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "24.492 19.2016 -3.05839";
+ rotation = "0 0 -1 2.29206";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/smallplatform.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "6.49747 4.79344 3.00852";
+ rotation = "0.30254 -0.577768 0.758059 37.5718";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/shimmy.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(EndPoint) {
+ position = "-4.12181 9.84722 5.91582";
+ rotation = "0 0 -1 65.3172";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new InteriorInstance() {
+ position = "15.1415 -0.841624 -0.431984";
+ rotation = "0 0 1 43.5445";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/smallplatform.dif";
+ showTerrainInside = "0";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "2154";
+ penaltyTime = "0";
+ bonusTime = "0";
+ };
+ new StaticShape() {
+ position = "-4.49598 9.72397 11.5381";
+ rotation = "0 0 1 128.915";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/shimmy.png b/data/missions/advanced/shimmy.png
new file mode 100644
index 00000000..e55652f9
Binary files /dev/null and b/data/missions/advanced/shimmy.png differ
diff --git a/data/missions/advanced/siege.mis b/data/missions/advanced/siege.mis
new file mode 100644
index 00000000..ceadf59a
--- /dev/null
+++ b/data/missions/advanced/siege.mis
@@ -0,0 +1,410 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ desc = "Loot the Castle!";
+ startHelpText = "Use the launchers to find gems on the parapet!";
+ artist = "Alex Swanson";
+ level = "26";
+ type = "advanced";
+ name = "Siege";
+ goldTime = "120000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 7.45949e-031 1.3684e-038";
+ fogVolume2 = "-1 1.07208e-014 8.756e-014";
+ fogVolume3 = "-1 5.1012e-010 2.05098e-008";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
+ };
+ new Sun() {
+ direction = "0.487533 0.677929 -0.550204";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/siege.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(EndPoint) {
+ position = "0 -0.25 79";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new StaticShape(StartPoint) {
+ position = "15.4223 -16.4686 2.98023e-008";
+ rotation = "0 0 -1 38.9611";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new Item() {
+ position = "10 -10 8";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "10 1 20";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "1 10 14";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-1 9 22.8";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-9 5 6";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-5 -10 18";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "5 -6 42";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "1 5 52";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-1 -5 66";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-17.125 -15.5 0.25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "67";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-17.125 -15.5 2.875";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-17.125 -15.5 0.25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/siege.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "15.6438 14.2688 0.25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "67";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "15.6438 14.2688 2.875";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "15.6438 14.2688 0.25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/siege.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-6.125 6 29.25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "67";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-6.125 6 31.875";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-6.125 6 29.25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/siege.dif";
+ interiorIndex = "2";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-33.6231 32.5115 -3";
+ rotation = "1 0 0 0";
+ scale = "67.7241 64.177 144.027";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "1554";
+ penaltyTime = "0";
+ bonusTime = "0";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/advanced/platform_circle_huge.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape() {
+ position = "0.369221 0.221679 95.8223";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new Item() {
+ position = "-9.3961 10.4218 0.201988";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "ShockAbsorberItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-9.09783 -4.84943 20.49";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-8.98788 -8.96106 20.5185";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "4.99937 3.03455 55.5118";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-0.999982 0.182508 97.7339";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-5.18943 -3.07629 69.499";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "5.96392 -5.78707 29.2582";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "ShockAbsorberItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "10.7579 -9.47083 0.27744";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "ShockAbsorberItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "5.13386 -13.1146 11.3436";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperBounceItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-13.561 14.5116 0.276501";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperBounceItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "3561";
+ penaltyTime = "0";
+ bonusTime = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/siege.png b/data/missions/advanced/siege.png
new file mode 100644
index 00000000..ca76042a
Binary files /dev/null and b/data/missions/advanced/siege.png differ
diff --git a/data/missions/advanced/ski.mis b/data/missions/advanced/ski.mis
new file mode 100644
index 00000000..19fa0390
--- /dev/null
+++ b/data/missions/advanced/ski.mis
@@ -0,0 +1,167 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ level = "27";
+ name = "Ski Slopes";
+ artist = "Alex Swanson";
+ type = "advanced";
+ time = "0";
+ goldTime = "18000";
+ desc = "Marble Moguls";
+ startHelpText = "Beginning skiers are advised to use caution.";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 7.45949e-031 1.3684e-038";
+ fogVolume2 = "-1 1.07208e-014 8.756e-014";
+ fogVolume3 = "-1 5.1012e-010 2.05098e-008";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
+ };
+ new Sun() {
+ direction = "0.410216 0.665682 -0.62337";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/ski2.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "1 9 0";
+ rotation = "0 0 1 223.063";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "-140 -284 -111";
+ rotation = "0 0 1 227.074";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new Trigger(Bounds) {
+ position = "-147 15 -114.5";
+ rotation = "1 0 0 0";
+ scale = "158 306 131.5";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new Item() {
+ position = "-43.6425 -84.1647 -25.2837";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "-139.932 -284.231 -102.978";
+ rotation = "0 0 1 35.5234";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new Item() {
+ position = "-40.0143 -47.9915 -13.2126";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-24.0175 -0.0532719 -5.34089";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Trigger() {
+ position = "-148.72 -76.8479 -91.265";
+ rotation = "1 0 0 0";
+ scale = "192 127.845 14.5803";
+ dataBlock = "OutOfBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new Trigger() {
+ position = "-122.125 52.2244 -29.9846";
+ rotation = "1 0 0 0";
+ scale = "164.488 87.0324 14.5803";
+ dataBlock = "OutOfBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new Trigger() {
+ position = "-125.7 -24.1675 -63.4057";
+ rotation = "1 0 0 0";
+ scale = "164.488 87.0324 14.5803";
+ dataBlock = "OutOfBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new ScriptObject() {
+ gemCount = "0";
+ penaltyTime = "0";
+ powerUp = "0";
+ time = "0";
+ pad = "1696";
+ bonusTime = "0";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/ski0.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/ski1.dif";
+ showTerrainInside = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/ski3.dif";
+ showTerrainInside = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/ski.png b/data/missions/advanced/ski.png
new file mode 100644
index 00000000..e48c67c1
Binary files /dev/null and b/data/missions/advanced/ski.png differ
diff --git a/data/missions/advanced/skyscraper.jpg b/data/missions/advanced/skyscraper.jpg
new file mode 100644
index 00000000..62944c3d
Binary files /dev/null and b/data/missions/advanced/skyscraper.jpg differ
diff --git a/data/missions/advanced/skyscraper.mis b/data/missions/advanced/skyscraper.mis
new file mode 100644
index 00000000..bdff8f25
--- /dev/null
+++ b/data/missions/advanced/skyscraper.mis
@@ -0,0 +1,869 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ type = "advanced";
+ name = "Skyscraper";
+ level = "12";
+ desc = "Deliver all the gems to the top of the skyscraper.";
+ artist = "Kevin Ryan";
+ goldTime = 90000;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.57735 0.57735 -0.57735";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.400000 0.400000 0.300000 1.000000";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "0 -54 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "0 10 178";
+ rotation = "1 0 0 0";
+ scale = "0.5 0.5 0.5";
+ dataBlock = "EndPad";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-100 100 0";
+ rotation = "1 0 0 0";
+ scale = "200 200 200";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/skyscraper.dif";
+ showTerrainInside = "0";
+ };
+ new SimGroup(Platform1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-6 4 99.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-6 4 111.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-6 4 99.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(platform1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/skyscraper.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_0_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "6 4 121";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "6 4 126";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "6 4 121";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_0) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/skyscraper.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-2 20 111";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-2 20 117";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-2 20 111";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/skyscraper.dif";
+ interiorIndex = "2";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_2_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "2 20 113.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "2 20 126";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "2 20 113.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_2) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/skyscraper.dif";
+ interiorIndex = "3";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "4000";
+ };
+ };
+ new SimGroup(Platform1_3_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-10 6 108";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-10 6 122";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-10 6 108";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_3) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/skyscraper.dif";
+ interiorIndex = "4";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "4000";
+ };
+ };
+ new SimGroup(Platform1_4_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-6 18 114";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-6 18 122";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-6 18 114";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_4) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/skyscraper.dif";
+ interiorIndex = "5";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "4000";
+ };
+ };
+ new SimGroup(Platform1_5_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-3 7 125.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-3 7 132.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-3 7 125.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_5) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/skyscraper.dif";
+ interiorIndex = "6";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_6_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-3 7 139.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-3 7 148";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-3 7 139.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_6) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/skyscraper.dif";
+ interiorIndex = "7";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_7_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-2 5 131.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-2 5 140.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-2 5 131.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_7) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/skyscraper.dif";
+ interiorIndex = "8";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "4000";
+ };
+ };
+ new SimGroup(Platform1_8_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "3 7 147";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "3 7 152";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "3 7 147";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_8) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/skyscraper.dif";
+ interiorIndex = "9";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_9_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-3 13 147";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-3 13 152";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-3 13 147";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_9) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/skyscraper.dif";
+ interiorIndex = "10";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_10_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-1.5 8 151.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-1.5 8 158";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-1.5 8 151.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_10) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/skyscraper.dif";
+ interiorIndex = "11";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_11_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "1.5 8 157";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "1.5 8 174";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "1.5 8 157";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_11) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/skyscraper.dif";
+ interiorIndex = "12";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_12_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "1.5 11 173";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "1.5 11 178";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "1.5 11 173";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_12) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/skyscraper.dif";
+ interiorIndex = "13";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_13_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-1.5 8 173.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-1.5 8 178";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-1.5 8 173.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_13) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/skyscraper.dif";
+ interiorIndex = "14";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "4000";
+ };
+ };
+ new SimGroup(Platform1_14_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "0 7 157.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "0 7 161.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "0 7 157.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_14) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/skyscraper.dif";
+ interiorIndex = "15";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "4000";
+ };
+ };
+ new Item() {
+ position = "-0.0472639 -1.09579 100.216";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-5.86349 15.9918 100.473";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "5.69685 15.638 100.539";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "4.89685 15.638 100.539";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-6.07834 10.1045 122.04";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "2.84008 12.8546 126.017";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-1.61737 11.7043 152.051";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-1.47136 9.99059 174.066";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "1.45852 10.1294 174.043";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "2.47325 10.4002 152.05";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "0.638195 9.93679 182.474";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/slipslide.jpg b/data/missions/advanced/slipslide.jpg
new file mode 100644
index 00000000..668c1fc8
Binary files /dev/null and b/data/missions/advanced/slipslide.jpg differ
diff --git a/data/missions/advanced/slipslide.mis b/data/missions/advanced/slipslide.mis
new file mode 100644
index 00000000..185fe0ea
--- /dev/null
+++ b/data/missions/advanced/slipslide.mis
@@ -0,0 +1,268 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ type = "Advanced";
+ time = "40000";
+ name = "Slip \'n Slide";
+ desc = "Beware the trecherous slopes!";
+ startHelpText = "Watch out for bumpers!";
+ level = "11";
+ artist = "Alex Swanson";
+ goldTime = 10000;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.500449 0.413769 -0.760491";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "-0.000965118 0.00407887 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/advanced/slipslide.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "34.4 18.8 2";
+ rotation = "0 0 1 180.482";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "-107.166 1.90788 -16.0287";
+ rotation = "0 0 1 88.2352";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new Trigger(Bounds) {
+ position = "-114.164 32.7281 -24.0004";
+ rotation = "1 0 0 0";
+ scale = "156.854 56.2281 43.0004";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "13.177 15.9098 -2.99";
+ rotation = "0 0 1 236.814";
+ scale = "1.8 1.8 1.8";
+ dataBlock = "oilslick";
+ };
+ new StaticShape() {
+ position = "-25.2328 7.57032 -15.3701";
+ rotation = "1 0 0 8.59429";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "32.7102 -4.91241 1.19363";
+ rotation = "0 0 1 229.756";
+ scale = "1 1 1";
+ dataBlock = "TriangleBumper";
+ };
+ new StaticShape() {
+ position = "18.3485 -6.41137 -7.01441";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "11.3421 -6.97786 -9.10913";
+ rotation = "0 1 0 25.2102";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "2.23441 -7.05173 -13.2071";
+ rotation = "0 1 0 25.2102";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "6.01357 -4.93892 -11.5074";
+ rotation = "0 1 0 25.2102";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-5.42266 -5.06238 -15.8025";
+ rotation = "0 0 1 156.418";
+ scale = "1 1 1";
+ dataBlock = "TriangleBumper";
+ };
+ new StaticShape() {
+ position = "-12.0174 -8.05372 -16.0124";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-11.4285 -10.3143 -16.0083";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-22.9207 -15.3936 -16.0037";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-24.3096 -13.133 -16.0097";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-27.0859 1.35435 -14.49";
+ rotation = "1 0 0 9.1672";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-29.5089 -16.978 -16.0049";
+ rotation = "0 0 -1 87.6625";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-17.9791 -11.7788 -16.0132";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new ScriptObject() {
+ penaltyTime = "0";
+ time = "0";
+ powerUp = "0";
+ pad = "1480";
+ bonusTime = "0";
+ gemCount = "0";
+ };
+ new StaticShape() {
+ position = "-102.643 2.01832 -15.99";
+ rotation = "0 0 1 229.366";
+ scale = "1.5 1.5 1.5";
+ dataBlock = "oilslick";
+ };
+ new StaticShape() {
+ position = "-103.426 1.81759 -15.8525";
+ rotation = "0 0 1 199.572";
+ scale = "1 1 1";
+ dataBlock = "TriangleBumper";
+ };
+ new StaticShape() {
+ position = "-37.0202 9.60081 -17.3147";
+ rotation = "0 1 0 6.30252";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-47.8277 5.51565 -18.3965";
+ rotation = "0 1 0 5.15661";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-35.6252 -11.8677 -12.6044";
+ rotation = "1 0 0 11.4591";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-32.2419 -9.59845 -12.9128";
+ rotation = "1 0 0 6.87562";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-32.2511 -4.75565 -13.6172";
+ rotation = "1 0 0 10.3132";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-32.0687 -0.864518 -14.0106";
+ rotation = "0.995021 0.0991734 -0.00995053 11.5161";
+ scale = "1 1 1";
+ dataBlock = "TriangleBumper";
+ };
+ new StaticShape() {
+ position = "-40.2698 -12.4682 -12.3821";
+ rotation = "-0.0521625 0.10307 0.993306 194.183";
+ scale = "1 1 1";
+ dataBlock = "TriangleBumper";
+ };
+ new StaticShape() {
+ position = "-19.1244 9.57751 -15.463";
+ rotation = "1 0 0 7.44851";
+ scale = "1 1 1";
+ dataBlock = "TriangleBumper";
+ };
+ new StaticShape() {
+ position = "-42.5272 9.94225 -17.8447";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-29.5003 13.5995 -16.5396";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new ScriptObject() {
+ penaltyTime = "0";
+ time = "0";
+ powerUp = "0";
+ pad = "1652";
+ bonusTime = "0";
+ gemCount = "0";
+ };
+ new StaticShape() {
+ position = "-107.552 3.29424 -6.77";
+ rotation = "0 0 -1 57.8687";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/steppingstones.jpg b/data/missions/advanced/steppingstones.jpg
new file mode 100644
index 00000000..f6f07483
Binary files /dev/null and b/data/missions/advanced/steppingstones.jpg differ
diff --git a/data/missions/advanced/steppingstones.mis b/data/missions/advanced/steppingstones.mis
new file mode 100644
index 00000000..74e7d6d1
--- /dev/null
+++ b/data/missions/advanced/steppingstones.mis
@@ -0,0 +1,191 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "50000";
+ desc = "You\'ve got 50 seconds to collect the gems and get to the finish area.\n\nHint: Stay off the red area.";
+ level = "6";
+ name = "Stepping Stones";
+ startHelpText = "Collect the gems as fast as you can!";
+ type = "Advanced";
+ artist = "Kevin Ryan";
+ goldTime = 24000;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0.349971";
+ cloudHeightPer[1] = "0.3";
+ cloudHeightPer[2] = "0.199973";
+ cloudSpeed1 = "0.0005";
+ cloudSpeed2 = "0.001";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "0 0 0";
+ fogVolume2 = "0 0 0";
+ fogVolume3 = "0 0 0";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 1 0";
+ windEffectPrecipitation = "1";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -222768174765569860000000000000000000000.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -170698929442160050000000000000000000000.000000";
+ locked = "true";
+ };
+ new Sun() {
+ direction = "0.57735 0.57735 -0.57735";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ position = "0 0 0";
+ locked = "true";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "-1.58552e-007 -2.4 494.1";
+ rotation = "0 0 1 64.7442";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "22.2 9.4 480";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new SimGroup(Triggers) {
+
+ new Trigger(Bounds) {
+ position = "-168.473 147.617 439.2";
+ rotation = "1 0 0 0";
+ scale = "327.77 304.932 10";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ };
+ new InteriorInstance() {
+ position = "0.0479157 -2.41775 490";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/intsteppingstones.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "16.949 -11.2694 459.529";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "22.4033 3.1424 475.408";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "5.5087 6.48768 470.453";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "10.9197 3.94022 465.493";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "5.63602 -11.4138 458.482";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "5.79273 0.739463 490.087";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "11.0067 -2.63766 468.037";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-0.0524565 -14.146 462.002";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "16.5949 0.592021 464.891";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "5.62459 -5.44893 469.795";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "22.8077 9.28786 485.513";
+ rotation = "0 0 1 48.7014";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/survival.jpg b/data/missions/advanced/survival.jpg
new file mode 100644
index 00000000..d405ad00
Binary files /dev/null and b/data/missions/advanced/survival.jpg differ
diff --git a/data/missions/advanced/survival.mis b/data/missions/advanced/survival.mis
new file mode 100644
index 00000000..ad37c2a8
--- /dev/null
+++ b/data/missions/advanced/survival.mis
@@ -0,0 +1,416 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ type = "Advanced";
+ desc = "Stay on the platform to survive!";
+ name = "Survival of the Fittest";
+ level = "24";
+ artist = "Alex Swanson";
+ goldTime = 37000;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.442343 0.475025 -0.760713";
+ color = "1.400000 1.200000 0.500000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "-129.4 -3.03984e-006 4";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "145.4 0 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-177.2 100 -3.8";
+ rotation = "1 0 0 0";
+ scale = "350 200 200";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/advanced/survival.dif";
+ showTerrainInside = "0";
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-112 0 -1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-112 16 -1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-144 16 -1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-144 -16 -1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "10000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-64 -16 -1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-64 16 -1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "5";
+ msToNext = "8000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "0 16 -1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "6";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "0 0 -1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "7";
+ msToNext = "16000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "128 0 -1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "8";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "-116.75 0 5.375";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-2.0000000 8.0000000 5.3750000 0.0000000 -16.0000000 0.0000000 0.0000000 0.0000000 -10.7500000 4.0000000 0.0000000 0.0000000";
+ targetTime = "50000";
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/survival.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "132 -18 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "132 18 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "132 -18 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedMovingBlock";
+ interiorResource = "marble/data/interiors/advanced/survival.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "114 -18 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "114 18 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "114 -18 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedMovingBlock";
+ interiorResource = "marble/data/interiors/advanced/survival.dif";
+ interiorIndex = "2";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-98 -34 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-98 2 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-98 -34 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedMovingBlock";
+ interiorResource = "marble/data/interiors/advanced/survival.dif";
+ interiorIndex = "3";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-88 -34 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-88 2 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-88 -34 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedMovingBlock";
+ interiorResource = "marble/data/interiors/advanced/survival.dif";
+ interiorIndex = "4";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new ScriptObject() {
+ penaltyTime = "0";
+ powerUp = "0";
+ bonusTime = "0";
+ pad = "2251";
+ time = "0";
+ gemCount = "0";
+ };
+ new Item() {
+ position = "-127.41 12.821 1.10017";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-133.505 20.8898 1.34417";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "ShockAbsorberItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-68.5387 -3.72964 1.34623";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "6.76821 19.6376 1.08094";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "113.147 0.449576 0.644168";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "-62.7668 16.8093 -0.183235";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "Tornado";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+ new StaticShape() {
+ position = "145.391 -1.27091 15.5446";
+ rotation = "0 0 1 71.6197";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/tango.mis b/data/missions/advanced/tango.mis
new file mode 100644
index 00000000..25639441
--- /dev/null
+++ b/data/missions/advanced/tango.mis
@@ -0,0 +1,220 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ desc = "Don\'t slip up!";
+ startHelpText = "Step lightly to make it through this dance!";
+ type = "advanced";
+ name = "Tango";
+ level = "47";
+ artist = "Alex Swanson";
+ time = "0";
+ goldTime = "17000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 7.45949e-031 1.3684e-038";
+ fogVolume2 = "-1 1.07208e-014 8.756e-014";
+ fogVolume3 = "-1 5.1012e-010 2.05098e-008";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
+ };
+ new Sun() {
+ direction = "0.514393 0.603723 -0.609031";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/smallplatform.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "-0.118466 0.215802 0.375264";
+ rotation = "0 0 1 89.3814";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new InteriorInstance() {
+ position = "16.3983 10.096 5.45689";
+ rotation = "0 0 -1 37.8155";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/smallplatform.dif";
+ showTerrainInside = "0";
+ };
+ new Trigger(Bounds) {
+ position = "-9.1479 46.1149 -4.30821";
+ rotation = "1 0 0 0";
+ scale = "65.1967 53.721 21.6832";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "12 -2.00155 -0.00174119";
+ rotation = "1 0 0 225.928";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/shimmy.dif";
+ showTerrainInside = "0";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ pad = "1808";
+ bonusTime = "0";
+ penaltyTime = "0";
+ gemCount = "0";
+ time = "0";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ pad = "1673";
+ bonusTime = "0";
+ penaltyTime = "0";
+ gemCount = "0";
+ time = "0";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ pad = "2154";
+ bonusTime = "0";
+ penaltyTime = "0";
+ gemCount = "0";
+ time = "0";
+ };
+ new StaticShape(EndPoint) {
+ position = "16.2264 10.0863 5.82775";
+ rotation = "0 0 1 227.647";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new InteriorInstance() {
+ position = "12 1.99742 0.00329681";
+ rotation = "1 0 0 134.254";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/shimmy.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape() {
+ position = "16.1939 9.6937 11.45";
+ rotation = "0 0 1 61.8789";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ pad = "1698";
+ bonusTime = "0";
+ penaltyTime = "0";
+ gemCount = "0";
+ time = "0";
+ };
+ new InteriorInstance() {
+ position = "30.39 2.17473 0.19611";
+ rotation = "0.970358 0.218191 0.103912 224.959";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/shimmy.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "28.6463 5.80021 0.178157";
+ rotation = "0.968366 0.226736 -0.104205 132.017";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/shimmy.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "23.4221 37.8735 1.4522";
+ rotation = "0 0 -1 69.9009";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/smallplatform.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "39.966 9.23164 0.34566";
+ rotation = "0 0 -1 80.2141";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/smallplatform.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "37.6421 16.9611 1";
+ rotation = "0.990216 -0.139543 -0.000111142 180.09";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/shimmy.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "31.8191 24.3879 1";
+ rotation = "0.990216 -0.139543 -0.000111142 180.09";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/shimmy.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "15.5025 33.51 3.55774";
+ rotation = "0 0 -1 117.456";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/shimmy.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "17.0591 20.1758 6.58997";
+ rotation = "0 0 -1 119.748";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/shimmy.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "27.2189 31.4306 0.999998";
+ rotation = "0.990216 -0.139543 -0.000111142 180.09";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/shimmy.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "18.3483 37.0975 2.5022";
+ rotation = "0 0 -1 69.9009";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/smallplatform.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "13.1447 31.5272 5.12269";
+ rotation = "0 0 1 237.387";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/shimmy.dif";
+ showTerrainInside = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/tango.png b/data/missions/advanced/tango.png
new file mode 100644
index 00000000..48a15df6
Binary files /dev/null and b/data/missions/advanced/tango.png differ
diff --git a/data/missions/advanced/thrillride.jpg b/data/missions/advanced/thrillride.jpg
new file mode 100644
index 00000000..30944447
Binary files /dev/null and b/data/missions/advanced/thrillride.jpg differ
diff --git a/data/missions/advanced/thrillride.mis b/data/missions/advanced/thrillride.mis
new file mode 100644
index 00000000..c64f2031
--- /dev/null
+++ b/data/missions/advanced/thrillride.mis
@@ -0,0 +1,443 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "80000";
+ desc = "Take the ride all the way to the end!";
+ level = "1";
+ type = "advanced";
+ name = "Thrill Ride";
+ artist = "Kevin Ryan";
+ goldTime = 30000;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.442343 0.475025 -0.760713";
+ color = "1.400000 1.200000 0.500000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/advanced/thrillride.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "-4 -47.5 -32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "-29.5 -29.25 -46.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new SimGroup(inclineLift_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "51 -29.5 -15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "3800";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "51 -13 -4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "200";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "51 -11.75 -4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1800";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "50.75 -28.25 -15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "200";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "51 -29.5 -15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(inclineLift) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/thrillride.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(inclineLift_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "51 -29.5 -15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "3800";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "51 -13 -4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "200";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "51 -11.75 -4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1800";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "50.75 -28.25 -15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "200";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "51 -29.5 -15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(inclineLift) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/thrillride.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "1000";
+ };
+ };
+ new SimGroup(inclineLift_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "51 -29.5 -15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "3800";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "51 -13 -4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "200";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "51 -11.75 -4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1800";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "50.75 -28.25 -15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "200";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "51 -29.5 -15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(inclineLift) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/thrillride.dif";
+ interiorIndex = "2";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "2000";
+ };
+ };
+ new SimGroup(inclineLift_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "51 -29.5 -15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "3800";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "51 -13 -4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "200";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "51 -11.75 -4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1800";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "50.75 -28.25 -15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "200";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "51 -29.5 -15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(inclineLift) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/thrillride.dif";
+ interiorIndex = "3";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "3000";
+ };
+ };
+ new SimGroup(inclineLift_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "51 -29.5 -15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "3800";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "51 -13 -4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "200";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "51 -11.75 -4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1800";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "50.75 -28.25 -15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "200";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "51 -29.5 -15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(inclineLift) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/thrillride.dif";
+ interiorIndex = "4";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "4000";
+ };
+ };
+ new SimGroup(inclineLift_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "51 -29.5 -15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "3800";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "51 -13 -4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "200";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "51 -11.75 -4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1800";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "50.75 -28.25 -15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "200";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "51 -29.5 -15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(inclineLift) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/thrillride.dif";
+ interiorIndex = "5";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "5000";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-52 24.5 -57";
+ rotation = "1 0 0 0";
+ scale = "107.5 77.5 75";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+ new StaticShape() {
+ position = "-29.3344 -29.3114 -41.9749";
+ rotation = "0 0 1 180.482";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/tightrope.mis b/data/missions/advanced/tightrope.mis
new file mode 100644
index 00000000..674b97f0
--- /dev/null
+++ b/data/missions/advanced/tightrope.mis
@@ -0,0 +1,472 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ type = "advanced";
+ desc = "Don\'t look down!";
+ startHelpText = "Line yourself up carefully before crossing the wires.";
+ name = "Tightrope";
+ level = "45";
+ artist = "Alex Swanson";
+ time = "0";
+ goldTime = "40000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 7.45949e-031 1.3684e-038";
+ fogVolume2 = "-1 1.07208e-014 8.756e-014";
+ fogVolume3 = "-1 5.1012e-010 2.05098e-008";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
+ };
+ new Sun() {
+ direction = "-0.635419 -0.531613 -0.560028";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/tightrope.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "46 -1.13377e-007 0.5";
+ rotation = "0 0 -1 90";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "-46 8.53078e-008 102.375";
+ rotation = "0 0 -1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-40 4 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-4 40 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-4 40 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-40 4 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "-43.5 7 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-3.5000000 2.0000000 1.0000000 0.0000000 -4.0000000 0.0000000 0.0000000 0.0000000 -2.0000000 7.0000000 0.0000000 0.0000000";
+ targetTime = "15000";
+ };
+ new Trigger(MustChange) {
+ position = "3.125e-007 44 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-4.0000005 3.9999981 1.0000000 0.0000000 -7.9999962 0.0000000 0.0000000 0.0000000 -2.0000000 8.0000010 0.0000000 0.0000000";
+ targetTime = "0";
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/tightrope.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-4.00625 -40.0062 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "8000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-40 -4 50.9375";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-40 -4 50.9375";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "8000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-4.00625 -40.0062 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "-7.00536 -43.5054 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-2.0000000 -3.5000000 1.0000000 4.0000000 0.0000000 0.0000000 0.0000000 0.0000000 -2.0000000 0.0000000 7.0000000 0.0000000";
+ targetTime = "21000";
+ };
+ new Trigger(MustChange) {
+ position = "-44 -0.00268938 52";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-4.0000000 -3.9973106 1.0000000 8.0000000 0.0000000 0.0000000 0.0000000 0.0000000 -2.0000000 0.0000000 7.9946213 0.0000000";
+ targetTime = "0";
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/tightrope.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "40.0094 -3.975 50.9375";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4.00938 -39.9781 50.9375";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4.00938 -39.9781 50.9375";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "40.0094 -3.975 50.9375";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "43.51 -6.97822 51.9375";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "3.5000117 -1.9999955 1.0000000 0.0000010 3.9999893 0.0000000 0.0000000 0.0000000 -2.0000000 -7.0000243 0.0000017 0.0000000";
+ targetTime = "15000";
+ };
+ new Trigger(MustChange) {
+ position = "0.00995937 -43.9782 52.4375";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "3.9999802 -4.0000000 1.0000000 0.0000000 8.0000000 0.0000000 0.0000000 0.0000000 -2.0000000 -7.9999604 0.0000000 0.0000000";
+ targetTime = "0";
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/tightrope.dif";
+ interiorIndex = "2";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "4.01875 40.0281 50.9375";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "8000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "40.0094 4.02187 101.875";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "40.0094 4.02187 101.875";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "8000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4.01875 40.0281 50.9375";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "7.01532 43.5272 51.9375";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "2.0000000 3.4999981 1.0000000 -4.0000000 0.0000000 0.0000000 0.0000000 0.0000000 -2.0000000 0.0000000 -6.9999962 0.0000000";
+ targetTime = "21000";
+ };
+ new Trigger(MustChange) {
+ position = "44.01 0.0244675 102.938";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "3.9999988 3.9973106 1.0000000 -7.9999976 0.0000000 0.0000000 0.0000000 0.0000000 -2.0000000 0.0000000 -7.9946213 0.0000000";
+ targetTime = "0";
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/tightrope.dif";
+ interiorIndex = "3";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-51.0054 51 -3";
+ rotation = "1 0 0 0";
+ scale = "102.021 102 132.187";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "-40.5123 -1.50203 102.368";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_purple.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "40 -1.5 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_purple.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-40.5 -1.5 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_purple.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "1.5 40 0.5";
+ rotation = "0 0 -1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_purple.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "1.5 -40.5 0.5";
+ rotation = "0 0 -1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_purple.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "39.9834 -1.50444 51.4339";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_purple.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-40.5166 -1.50444 51.4339";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_purple.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "1.48338 39.9956 51.4339";
+ rotation = "0 0 -1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_purple.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "1.48338 -40.5044 51.4339";
+ rotation = "0 0 -1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_purple.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "39.9877 -1.50203 102.368";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/arch_purple.dif";
+ showTerrainInside = "0";
+ };
+ new ScriptObject() {
+ gemCount = "0";
+ powerUp = "0";
+ pad = "1665";
+ penaltyTime = "0";
+ bonusTime = "0";
+ time = "0";
+ };
+ new StaticShape() {
+ position = "-45.9755 0.265212 108.202";
+ rotation = "0 0 -1 71.0468";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new Item() {
+ position = "-10.1732 -37.6026 7.75555";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-18.6047 -32.0886 14.8813";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ gemCount = "0";
+ powerUp = "0";
+ pad = "2068";
+ penaltyTime = "0";
+ bonusTime = "0";
+ time = "0";
+ };
+ new Item() {
+ position = "38.207 10.795 95.1861";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "17.0549 28.196 68.7548";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/tightrope.png b/data/missions/advanced/tightrope.png
new file mode 100644
index 00000000..bf8c5ae9
Binary files /dev/null and b/data/missions/advanced/tightrope.png differ
diff --git a/data/missions/advanced/tothemoon.jpg b/data/missions/advanced/tothemoon.jpg
new file mode 100644
index 00000000..f4a7a0fa
Binary files /dev/null and b/data/missions/advanced/tothemoon.jpg differ
diff --git a/data/missions/advanced/tothemoon.mis b/data/missions/advanced/tothemoon.mis
new file mode 100644
index 00000000..bbf077f6
--- /dev/null
+++ b/data/missions/advanced/tothemoon.mis
@@ -0,0 +1,807 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "60000";
+ desc = "Can you make it all the way up to the Moon?";
+ level = "20";
+ type = "Advanced";
+ name = "To the Moon";
+ artist = "Kevin Ryan";
+ goldTime = 9000;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.442343 0.475025 -0.760713";
+ color = "1.400000 1.200000 0.500000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/advanced/tothemoon.dif";
+ showTerrainInside = "0";
+ };
+ new Trigger(Bounds) {
+ position = "-20 32.5 -6";
+ rotation = "1 0 0 0";
+ scale = "40 50.5 104";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape(EndPoint) {
+ position = "0 12.5 46.99";
+ rotation = "1 0 0 180";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new StaticShape(StartPoint) {
+ position = "0 -12.5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new SimGroup(Platform3_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "6 7.5 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "9000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-6.5 7.5 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "9000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "6 7.5 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "8000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform3) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/tothemoon.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform4_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "6 6 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "6 6 -1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "6 6 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(Platform4) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/tothemoon.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform4_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-6.5 6 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-6.5 6 -1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-6.5 6 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(Platform4) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/tothemoon.dif";
+ interiorIndex = "2";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "1000";
+ };
+ };
+ new SimGroup(Platform4_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-2.5 6 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-2.5 6 -1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-2.5 6 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(Platform4) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/tothemoon.dif";
+ interiorIndex = "3";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "2000";
+ };
+ };
+ new SimGroup(Platform4_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "2 6 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "2 6 -1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "2 6 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(Platform4) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/tothemoon.dif";
+ interiorIndex = "4";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "3000";
+ };
+ };
+ new SimGroup(Platform3_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-6.5 -5 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "6000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "6 -5 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "6000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-6.5 -5 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "8000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform3) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/tothemoon.dif";
+ interiorIndex = "5";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform3_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-6.5 -3 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "7000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "6 -3 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "6500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-6.5 -3 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "8000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform3) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/tothemoon.dif";
+ interiorIndex = "6";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform3_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-6.5 -1 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "6 -1 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "7500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-6.5 -1 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "8000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform3) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/tothemoon.dif";
+ interiorIndex = "7";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform3_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "6 1 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "5500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-6.5 1 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "5500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "6 1 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "8000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform3) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/tothemoon.dif";
+ interiorIndex = "8";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform3_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "6 3 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "6500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-6.5 3 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "6500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "6 3 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "8000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform3) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/tothemoon.dif";
+ interiorIndex = "9";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform3_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "6 5 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "9500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-6.5 5 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "9500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "6 5 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "8000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform3) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/tothemoon.dif";
+ interiorIndex = "10";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform4_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "6 -9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-6.5 -9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "3500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-6.5 -7 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "6 -7 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "3500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "6 -9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(Platform4) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/tothemoon.dif";
+ interiorIndex = "11";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform4_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-6.5 -9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "3500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-6.5 -7 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "6 -7 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "3500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "6 -9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-6.5 -9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(Platform4) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/tothemoon.dif";
+ interiorIndex = "12";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform4_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-6.5 -7 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "6 -7 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "3500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "6 -9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-6.5 -9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "3500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-6.5 -7 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(Platform4) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/tothemoon.dif";
+ interiorIndex = "13";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform4_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "6 -7 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "3500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "6 -9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-6.5 -9 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "3500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-6.5 -7 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "6 -7 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(Platform4) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/tothemoon.dif";
+ interiorIndex = "14";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new Item() {
+ position = "0.0944321 12.5086 2.42213";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+ new StaticShape() {
+ position = "0.0846778 10.2642 43.2887";
+ rotation = "0 1 0 179.909";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/towermaze.mis b/data/missions/advanced/towermaze.mis
new file mode 100644
index 00000000..2a168f0d
--- /dev/null
+++ b/data/missions/advanced/towermaze.mis
@@ -0,0 +1,322 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ artist = "Alex Swanson";
+ time = "30000";
+ desc = "Elevator mayhem!";
+ startHelpText = "The goal is above you, find the fastest route to the top!";
+ level = "29";
+ type = "advanced";
+ name = "Tower Maze";
+ goldTime = "22000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 7.45949e-031 1.3684e-038";
+ fogVolume2 = "-1 1.07208e-014 8.756e-014";
+ fogVolume3 = "-1 5.1012e-010 2.05098e-008";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000004";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 14435505.000000";
+ };
+ new Sun() {
+ direction = "0.459006 0.638261 -0.61801";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/towermaze.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "0 0 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "0 0 16";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-4.5 0 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-4.5 0 -8";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-4.5 0 -8";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-4.5 0 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-4.5 0 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/towermaze.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "0 4.5 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "0 4.5 -8";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "0 4.5 -8";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "0 4.5 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "0 4.5 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/towermaze.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "4.5 0 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4.5 0 -4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "4.5 0 -4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4.5 0 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "4.5 0 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/towermaze.dif";
+ interiorIndex = "2";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "0 -4.5 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "0 -4.5 -4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "0 -4.5 -4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "0 -4.5 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1500";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "0 -4.5 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/addon/towermaze.dif";
+ interiorIndex = "3";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-15.5376 17.1036 -13.1366";
+ rotation = "1 0 0 0";
+ scale = "32.5383 31.8957 46.1366";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+ new StaticShape() {
+ position = "0.0197326 0.127713 23.4222";
+ rotation = "0 0 -1 30.9397";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/towermaze.png b/data/missions/advanced/towermaze.png
new file mode 100644
index 00000000..9f2539e7
Binary files /dev/null and b/data/missions/advanced/towermaze.png differ
diff --git a/data/missions/advanced/trapdoor.jpg b/data/missions/advanced/trapdoor.jpg
new file mode 100644
index 00000000..faee3b21
Binary files /dev/null and b/data/missions/advanced/trapdoor.jpg differ
diff --git a/data/missions/advanced/trapdoor.mis b/data/missions/advanced/trapdoor.mis
new file mode 100644
index 00000000..2dcfcf13
--- /dev/null
+++ b/data/missions/advanced/trapdoor.mis
@@ -0,0 +1,713 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ type = "Advanced";
+ name = "Trap Door Madness";
+ time = "0";
+ desc = "Grab all the gems to exit the mission, watch out for trap doors!";
+ artist = "Alex Swanson";
+ level = "16";
+ goldTime = 6500;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0.349971";
+ cloudHeightPer[1] = "0.3";
+ cloudHeightPer[2] = "0.199973";
+ cloudSpeed1 = "0.0005";
+ cloudSpeed2 = "0.001";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "0 0 0";
+ fogVolume2 = "0 0 0";
+ fogVolume3 = "0 0 0";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 1 0";
+ windEffectPrecipitation = "1";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -222768174765569860000000000000000000000.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -170698929442160050000000000000000000000.000000";
+ locked = "true";
+ };
+ new Sun() {
+ direction = "0.464958 0.626025 -0.626025";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ position = "0 0 0";
+ locked = "true";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "2.07137 -4.43343 495.084";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "11.4401 18.1753 494.929";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-2.70699 22.082 491.931";
+ rotation = "1 0 0 0";
+ scale = "18.1376 30.467 13.2344";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new SimGroup(Quad1) {
+
+ new StaticShape() {
+ position = "4 4 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "4 2 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "2 2 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "1.99001 3.97288 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "2 0 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "0 0 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "0 2 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "0 4 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "4 0 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "6 4 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "4 6 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "0 6 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "6 0 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "6 2 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "6 6 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "2 6 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ };
+ new SimGroup(Quad1) {
+
+ new StaticShape() {
+ position = "12 4 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "12 2 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "10 2 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "10 4 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "10 0 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "8 0 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "8 2 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "8 4 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "12 0 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "14 4 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "12 6 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "8 6 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "14 0 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "14 2 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "14 6 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "10 6 495";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ };
+ new StaticShape() {
+ position = "4.00087 9.99387 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "4.00087 11.9939 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "2.00087 9.99387 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "1.99088 11.9667 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "2.00087 7.99387 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "0.000868797 7.99387 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "0.000868797 9.99387 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "0.000868797 11.9939 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "4.00087 7.99387 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "6.00087 11.9939 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "4.00087 13.9939 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "0.000868797 13.9939 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "6.00087 7.99387 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "6.00087 9.99387 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "6.00087 13.9939 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "2.00087 13.9939 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "12.0009 11.9939 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "12.0009 9.99387 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "10.0009 9.99387 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "10.0009 11.9939 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "10.0009 7.99387 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "8.00087 7.99387 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "8.00087 9.99387 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "8.00087 11.9939 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "12.0009 7.99387 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "14.0009 11.9939 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "12.0009 13.9939 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "8.00087 13.9939 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "14.0009 7.99387 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "14.0009 9.99387 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "14.0009 13.9939 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "10.0009 13.9939 495.001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ timeout = "200";
+ open = "0";
+ resetTime = "Default";
+ };
+ new InteriorInstance() {
+ position = "-0.962045 -1.04772 495.108";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/advanced/trapdoor.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "8.35185 21.2526 494.915";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/advanced/trapdoor.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "4.03986 10.1227 494.901";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "2.04877 2.12962 495.1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "11.84 6.10273 495.101";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+ new StaticShape() {
+ position = "11.4062 18.9234 501.351";
+ rotation = "0 0 1 17.7617";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/tree.jpg b/data/missions/advanced/tree.jpg
new file mode 100644
index 00000000..08b93877
Binary files /dev/null and b/data/missions/advanced/tree.jpg differ
diff --git a/data/missions/advanced/tree.mis b/data/missions/advanced/tree.mis
new file mode 100644
index 00000000..c750ebe5
--- /dev/null
+++ b/data/missions/advanced/tree.mis
@@ -0,0 +1,422 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ type = "advanced";
+ name = "Money Tree";
+ level = "2";
+ desc = "Grab the gems scattered around the tree.";
+ artist = "Alex Swanson";
+ goldTime = 63000;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.38751 0.709277 -0.588865";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "22.2101 -0.199908 -5.55";
+ rotation = "0 0 -1 90.5273";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "12.7202 -7.26258 61.2";
+ rotation = "0 0 1 136.364";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-100 100 -28";
+ rotation = "1 0 0 0";
+ scale = "200 200 500";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/tree.dif";
+ showTerrainInside = "0";
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "0 0 -4.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "0 0 31.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "0 0 -4.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1";
+ smoothingType = "Linear";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "0 0 -2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-2.0000000 2.0000000 2.0000000 0.0000000 -4.0000000 0.0000000 0.0000000 0.0000000 -4.0000000 4.0000000 0.0000000 0.0000000";
+ targetTime = "5000";
+ };
+ new Trigger(MustChange) {
+ position = "0 3.25 34";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-2.0000000 0.2500000 2.0000000 0.0000000 -0.5000000 0.0000000 0.0000000 0.0000000 -4.0000000 4.0000000 0.0000000 0.0000000";
+ targetTime = "10000";
+ };
+ new Trigger(MustChange) {
+ position = "0 -3.25 34";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-2.0000000 0.2500000 2.0000000 0.0000000 -0.5000000 0.0000000 0.0000000 0.0000000 -4.0000000 4.0000000 0.0000000 0.0000000";
+ targetTime = "10000";
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/tree.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "0 0 37.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "150";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "0 0 43.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "0 0 37.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/tree.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "9.5 9.5 31.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "6000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "15.75 -7.25 33";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "15.75 -7.25 33";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "6000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "15 -7.25 44.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "15 -7.25 44.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "6000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "9.5 9.5 31.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "5";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/tree.dif";
+ interiorIndex = "2";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-17.25 13.25 33.25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "6000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-12 -4.75 31.25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-12 -4.75 31.25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "6000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-17.25 13.25 33.25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/tree.dif";
+ interiorIndex = "3";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new Item() {
+ position = "-0.764415 -16.9932 -3.27334";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-0.00506097 0.306293 31.9172";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "7.36998 -11.1056 31.1103";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-5.17681 27.4041 37.5016";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "18.6025 32.3624 33.276";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-13.1207 2.27169 32.5924";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-13.2991 -1.04641 32.2467";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-5.31497 4.7362 66.5466";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-15.2831 -20.0505 32.6654";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "1.84472 0.216465 46.029";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ gemCount = "0";
+ time = "0";
+ bonusTime = "0";
+ pad = "1449";
+ penaltyTime = "0";
+ powerUp = "0";
+ };
+ new ScriptObject() {
+ gemCount = "0";
+ time = "0";
+ bonusTime = "0";
+ pad = "7931";
+ penaltyTime = "0";
+ powerUp = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+ new StaticShape() {
+ position = "12.3382 -6.59473 70.8223";
+ rotation = "0 0 1 150.688";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/tubetreasure.jpg b/data/missions/advanced/tubetreasure.jpg
new file mode 100644
index 00000000..90b47512
Binary files /dev/null and b/data/missions/advanced/tubetreasure.jpg differ
diff --git a/data/missions/advanced/tubetreasure.mis b/data/missions/advanced/tubetreasure.mis
new file mode 100644
index 00000000..59b4a2c1
--- /dev/null
+++ b/data/missions/advanced/tubetreasure.mis
@@ -0,0 +1,290 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ type = "advanced";
+ name = "Tube Treasure";
+ desc = "Find all of the gems to finish the level!";
+ level = "10";
+ artist = "Alex Swanson";
+ goldTime = 45000;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0.349971";
+ cloudHeightPer[1] = "0.3";
+ cloudHeightPer[2] = "0.199973";
+ cloudSpeed1 = "0.0005";
+ cloudSpeed2 = "0.001";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "0 0 0";
+ fogVolume2 = "0 0 0";
+ fogVolume3 = "0 0 0";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 1 0";
+ windEffectPrecipitation = "1";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -222768174765569860000000000000000000000.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -170698929442160050000000000000000000000.000000";
+ locked = "true";
+ };
+ new Sun() {
+ direction = "0.403469 0.613363 -0.678968";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ locked = "true";
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "-6.27417e-009 1.21855e-007 499.995";
+ rotation = "0 0 1 179.909";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "0 0 485";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-64.0383 50.5761 468.814";
+ rotation = "1 0 0 0";
+ scale = "125.225 91.5567 91.7273";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 500";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/advanced/platform_circle_huge.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0 0 485";
+ rotation = "1 0 0 0";
+ scale = "1.2 1.2 1";
+ interiorFile = "~/data/interiors/advanced/platform_circle.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "15.3572 -31.9589 511.008";
+ rotation = "0.521144 0.235861 -0.820231 57.7776";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/parts/halftubes/halftube_long.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-1.17475 -13.0404 499.723";
+ rotation = "0.210186 0.575806 0.790107 49.5937";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/parts/halftubes/halftube_long.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-48 0 502.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/parts/halftubes/halftube_long.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "23.9894 -0.0140683 502.409";
+ rotation = "-0.993465 0.019872 0.112393 20.1827";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/parts/halftubes/halftube_long.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "15 2.52571 485.381";
+ rotation = "1 0 0 32.6586";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/parts/tubes/tube_lintersect.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-38.7362 -1.62043 485.025";
+ rotation = "0.0504688 0.775349 -0.629513 11.8068";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/parts/tubes/tube_long.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "33.4135 -0.224545 484.936";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new InteriorInstance() {
+ position = "40 0.127364 490.005";
+ rotation = "-1 0 0 94.5837";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/parts/tubes/tube_turn.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-40.4996 -0.493147 488.642";
+ rotation = "0.102835 0.700325 0.706378 174.8";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/parts/tubes/tube_turn.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-4.91603 7.10534 486.212";
+ rotation = "0.670286 0.416406 0.614266 231.553";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/parts/tubes/tube_long.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-5.35315 31.2327 493.761";
+ rotation = "0.189226 0.171797 -0.966788 95.6514";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/parts/tubes/tube_turn.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "28.5066 -16.9395 508.487";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "9.14913 -22.6987 505.106";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0.14271 17.892 500.1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-51.8302 0.866806 489.249";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-47.1163 0.273054 484.994";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-18.246 0.000106558 487.271";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-5.58205 4.59868 485.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-3.36051 43.0108 492.313";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "27.1621 -8.07697 489.308";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "39.9271 1.55435 501.714";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0.276583 -3.84752 500.706";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "2.51372 0.393372 500.2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+ new StaticShape() {
+ position = "0.71698 -0.419859 491.222";
+ rotation = "0 0 1 47.5555";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/twisting.jpg b/data/missions/advanced/twisting.jpg
new file mode 100644
index 00000000..02b7e9d0
Binary files /dev/null and b/data/missions/advanced/twisting.jpg differ
diff --git a/data/missions/advanced/twisting.mis b/data/missions/advanced/twisting.mis
new file mode 100644
index 00000000..9c3a906a
--- /dev/null
+++ b/data/missions/advanced/twisting.mis
@@ -0,0 +1,1577 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ level = "23";
+ name = "Twisting the night away";
+ type = "Advanced";
+ desc = "Don\'t stay up all night trying to finish!";
+ artist = "Kevin Ryan";
+ goldTime = 48000;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.442343 0.475025 -0.760713";
+ color = "1.400000 1.200000 0.500000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "-0.00218976 -0.00204468 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/advanced/twisting.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "-11.5 8.5 100.05";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-8 12.5 100.05";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape(StartPoint) {
+ position = "-3.5 -1 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new Item() {
+ position = "20 36 105.55";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new InteriorInstance() {
+ position = "18.4 27.65 106.184";
+ rotation = "1 0 0 0";
+ scale = "1.4 0.1 1.8";
+ interiorFile = "~/data/interiors/parts/boxes/woodbox.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "34.5 41 105.711";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "4.97979 37.1814 105.698";
+ rotation = "0 0 1 194.988";
+ scale = "1 1 1";
+ dataBlock = "TriangleBumper";
+ };
+ new StaticShape() {
+ position = "8.9 35.9 105.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "5.16599 34.6797 105.661";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriangleBumper";
+ };
+ new StaticShape() {
+ position = "33 38.8 105.52";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "oilslick";
+ };
+ new StaticShape() {
+ position = "11.1 45.1264 106.372";
+ rotation = "1 0 0 90";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "10.3993 34.7729 105.569";
+ rotation = "0 0 -1 96.2569";
+ scale = "1 1 1";
+ dataBlock = "TriangleBumper";
+ };
+ new StaticShape() {
+ position = "5 36.5 105.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "7 36 105.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new Item() {
+ position = "14 50 105.55";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "8 34.5 105.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "18.5 27.5736 106.574";
+ rotation = "-1 0 0 90";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new Trigger(Bounds) {
+ position = "-44.5 54 65";
+ rotation = "1 0 0 0";
+ scale = "83 83 61";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "31.9477 41.5243 105.52";
+ rotation = "0 0 1 126.051";
+ scale = "1 1 1";
+ dataBlock = "oilslick";
+ };
+ new StaticShape() {
+ position = "2 35.5 105.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "trapdoor";
+ resetTime = "Default";
+ open = "0";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "0 35.5 105.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "trapdoor";
+ resetTime = "Default";
+ open = "0";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-2 35.5 105.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "trapdoor";
+ resetTime = "Default";
+ open = "0";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-4 35.5 105.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "trapdoor";
+ resetTime = "Default";
+ open = "0";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-6 35.5 105.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "trapdoor";
+ resetTime = "Default";
+ open = "0";
+ timeout = "200";
+ };
+ new StaticShape() {
+ position = "-8 35.5 105.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "trapdoor";
+ resetTime = "Default";
+ open = "0";
+ timeout = "200";
+ };
+ new Item() {
+ position = "-26 34.5 109.05";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "-19 28 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "tornado";
+ };
+ new StaticShape() {
+ position = "-31 42.5 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "tornado";
+ };
+ new Item() {
+ position = "-25.5 -10.5 109.05";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "28 -7 108.55";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "28 -7.5 108.561";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "28 -8.5 108.561";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "28 -9 108.55";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "28 -8 108.561";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape(EndPoint) {
+ position = "20 -10 108.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new SimGroup(mw2_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-6.5 4.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-3 4.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-3 8 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-6.5 8 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-6.5 4.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ };
+ new PathedInterior(mw2) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/twisting.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(mw2_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-10 4 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-9 10.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-2 9.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-2 5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-10 4 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ };
+ new PathedInterior(mw2) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/twisting.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(mw2_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-13 2.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1400";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-13.5 6.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1400";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-9.5 6 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1400";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-9.5 2.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1400";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-13 2.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "1400";
+ smoothingType = "Spline";
+ };
+ };
+ new PathedInterior(mw2) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/twisting.dif";
+ interiorIndex = "2";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(mw2_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "2.5 6.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "3200";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-5 9 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "3200";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-4.5 3 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "3200";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "5 0.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "3200";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "2.5 6.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "3200";
+ smoothingType = "Spline";
+ };
+ };
+ new PathedInterior(mw2) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/twisting.dif";
+ interiorIndex = "3";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(mw2_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-5 14 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "0.5 14 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "0.5 18.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-5 18.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-5 14 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ };
+ new PathedInterior(mw2) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/twisting.dif";
+ interiorIndex = "4";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(mw2_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "3.5 22.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-2 22.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-2 17.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "3.5 17.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "3.5 22.5 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ };
+ new PathedInterior(mw2) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/twisting.dif";
+ interiorIndex = "5";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(mw2_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-20.5 28 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-20 41.5 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "400";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-32 41.5 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "400";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-32 28 110";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "400";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-20.5 28 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "400";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(mw2) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/twisting.dif";
+ interiorIndex = "6";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(mw2_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-30 40 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-29 29.5 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "400";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-17.5 34.5 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "400";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-21.5 44.5 110";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "400";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-30 40 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "400";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(mw2) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/twisting.dif";
+ interiorIndex = "7";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(mw2_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-30.5 18 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-30.5 18 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "400";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-25.5 18 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "400";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-30.5 18 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "400";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(mw2) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/twisting.dif";
+ interiorIndex = "8";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(mw2_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-21.5 16 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "5000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-21.5 16 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "400";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-26.5 16 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "400";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-21.5 16 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "400";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(mw2) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/twisting.dif";
+ interiorIndex = "9";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(mw2_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-30.5 14 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "3000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-30.5 14 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "400";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-25.5 14 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "400";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-30.5 14 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "400";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(mw2) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/twisting.dif";
+ interiorIndex = "10";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(mw2_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-26 10.5 106.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-26 10.5 109.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-26 10.5 106.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(mw2) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/twisting.dif";
+ interiorIndex = "11";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(mw2_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-28.5 8 106.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-28.5 8 109.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-28.5 8 106.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(mw2) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/twisting.dif";
+ interiorIndex = "12";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(mw2_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-28.5 10.5 106.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-28.5 10.5 109.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-28.5 10.5 106.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(mw2) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/twisting.dif";
+ interiorIndex = "13";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "2000";
+ };
+ };
+ new SimGroup(mw2_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-26 8 106.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-26 8 109.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-26 8 106.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(mw2) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/twisting.dif";
+ interiorIndex = "14";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "2000";
+ };
+ };
+ new SimGroup(mw2_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-28.5 5.5 106.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-28.5 5.5 109.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-28.5 5.5 106.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(mw2) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/twisting.dif";
+ interiorIndex = "15";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "2000";
+ };
+ };
+ new SimGroup(mw2_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-26 5.5 106.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-26 5.5 109.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-26 5.5 106.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(mw2) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/twisting.dif";
+ interiorIndex = "16";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(mw2_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-25.5 -10.5 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-20 -11 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-19 -3.5 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-25.5 -2.5 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-25.5 -10.5 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ };
+ new PathedInterior(mw2) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/twisting.dif";
+ interiorIndex = "17";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(mw2_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-25.5 -10.5 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-30.5 -6 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-21.5 -4 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-17 -8.5 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-25.5 -10.5 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ };
+ new PathedInterior(mw2) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/twisting.dif";
+ interiorIndex = "18";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(mw2_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-25.5 -10.5 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-20 -15.5 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-15.5 -7.5 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-22.5 -5.5 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-25.5 -10.5 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ };
+ new PathedInterior(mw2) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/twisting.dif";
+ interiorIndex = "19";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(mw2_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-25.5 -10.5 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-34.5 -7.5 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-33.5 -17 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-22.5 -19 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-25.5 -10.5 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ };
+ new PathedInterior(mw2) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/twisting.dif";
+ interiorIndex = "20";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(mw2_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-25.5 -10.5 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-17.5 -13 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-19 -17 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-25.5 -19 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-25.5 -10.5 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ };
+ new PathedInterior(mw2) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/twisting.dif";
+ interiorIndex = "21";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(mw2_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-25.5 -10.5 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-33.5 -13.5 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-28 -20.5 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-22.5 -16.5 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ new Marker() {
+ position = "-25.5 -10.5 109";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "800";
+ smoothingType = "Spline";
+ };
+ };
+ new PathedInterior(mw2) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/twisting.dif";
+ interiorIndex = "22";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "0";
+ };
+ };
+ new InteriorInstance() {
+ position = "11.05 45.1 106.184";
+ rotation = "1 0 0 0";
+ scale = "1.4 0.1 1.8";
+ interiorFile = "~/data/interiors/parts/boxes/woodbox.dif";
+ showTerrainInside = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/whorl.mis b/data/missions/advanced/whorl.mis
new file mode 100644
index 00000000..28446a3a
--- /dev/null
+++ b/data/missions/advanced/whorl.mis
@@ -0,0 +1,349 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ level = "32";
+ artist = "Alex Swanson";
+ name = "Whirl";
+ startHelpTest = "Climb to the top!";
+ goldTime = "40000";
+ type = "advanced";
+ time = "0";
+ desc = "Climb to the top!";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 2.8026e-045 1.90436e-042";
+ fogVolume2 = "-1 2.8026e-045 1.87914e-042";
+ fogVolume3 = "-1 2.8026e-045 1.84131e-042";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 0.000000";
+ };
+ new Sun() {
+ direction = "0.459006 0.638261 -0.61801";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/whorl0.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "26 2 0.712436";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "18 -2 6.96266";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape(EndPoint) {
+ position = "5 18 49.25";
+ rotation = "0 0 -1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new StaticShape(StartPoint) {
+ position = "-14 -4 -12.5";
+ rotation = "0 0 1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new Trigger(Bounds) {
+ position = "-31.5231 44.3619 -16";
+ rotation = "1 0 0 0";
+ scale = "96.7542 77.4948 97.4797";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/whorl5.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/whorl1.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/whorl2.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/whorl3.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/addon/whorl4.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape() {
+ position = "4.60374 17.9187 55.6723";
+ rotation = "0 0 -1 67.0361";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new Item() {
+ position = "32.8912 18.183 22.6943";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "8.86755 34.0955 18.3527";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-4.30282 33.9904 16.9001";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "32.7254 17.8919 33.3777";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ gemCount = "0";
+ penaltyTime = "0";
+ powerUp = "0";
+ time = "0";
+ pad = "2152";
+ bonusTime = "0";
+ };
+ new StaticShape() {
+ position = "-6.1297 -16.8507 -5.99432";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "oilslick";
+ };
+ new StaticShape() {
+ position = "-4.58753 5.90841 -6.00674";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-3.10722 7.94704 -6.00134";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-5.78752 8.48315 -6.0045";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-1.49124 10.9082 -6.0083";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-2.81061 11.5668 -6.00172";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-2.60641 14.0018 -6.00665";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-0.616104 13.1843 -6.00794";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-0.885115 16.1056 -6.00284";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "0.521673 14.3795 -6.00645";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "1.83545 13.4196 -5.99728";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "2.53291 15.8466 -6.00049";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "4.89601 17.5526 -6.00466";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "6.88423 14.0297 -6.00869";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "9.80094 14.6116 -6.00242";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "7.12885 16.0113 -6.005";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "4.78289 13.8105 -6.00489";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "9.02691 12.0723 -6.00999";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "10.8055 12.4398 -5.99975";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "12.8218 11.0958 -6.0166";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "10.1528 9.98741 -6.01005";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-15.311 -19.5867 -5.99749";
+ rotation = "0 0 1 52.7121";
+ scale = "1 1 1";
+ dataBlock = "oilslick";
+ };
+ new StaticShape() {
+ position = "-12.0263 -20.1291 -5.9911";
+ rotation = "0 0 -1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "oilslick";
+ };
+ new StaticShape() {
+ position = "-7.56128 -19.8531 -5.99664";
+ rotation = "0 0 -1 30.3667";
+ scale = "1 1 1";
+ dataBlock = "oilslick";
+ };
+ new Item() {
+ position = "34.758 -3.01712 7.24623";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "37.1603 -2.34478 7.24883";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/advanced/whorl.png b/data/missions/advanced/whorl.png
new file mode 100644
index 00000000..a4b5c556
Binary files /dev/null and b/data/missions/advanced/whorl.png differ
diff --git a/data/missions/advanced/willowisp.jpg b/data/missions/advanced/willowisp.jpg
new file mode 100644
index 00000000..e3267091
Binary files /dev/null and b/data/missions/advanced/willowisp.jpg differ
diff --git a/data/missions/advanced/willowisp.mis b/data/missions/advanced/willowisp.mis
new file mode 100644
index 00000000..b5b4419d
--- /dev/null
+++ b/data/missions/advanced/willowisp.mis
@@ -0,0 +1,519 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ type = "Advanced";
+ name = "Will o\' Wisp";
+ time = "105000";
+ desc = "Watch your step...";
+ artist = "Alex Swanson";
+ level = "22";
+ startHelpText = "Find buttons to lower and raise the platforms!";
+ goldTime = 25000;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "-0.52431 0.357722 -0.772745";
+ color = "1.400000 1.200000 0.300000 1.000000";
+ ambient = "0.300000 0.300000 0.500000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/advanced/willowisp.dif";
+ showTerrainInside = "0";
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "112 0 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "112 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "79 47 8.6";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-1.0000000 1.0000000 1.0000000 0.0000000 -2.0000000 0.0000000 0.0000000 0.0000000 -2.0000000 2.0000000 0.0000000 0.0000000";
+ targetTime = "8000";
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/willowisp.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-112 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-112 0 28";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "-64 -28 0.4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-1.0000000 1.0000000 1.0000000 0.0000000 -2.0000000 0.0000000 0.0000000 0.0000000 -2.0000000 2.0000000 0.0000000 0.0000000";
+ targetTime = "8000";
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/willowisp.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "93 35 16";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "93 35 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "79 47 8.6";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-1.0000000 1.0000000 1.0000000 0.0000000 -2.0000000 0.0000000 0.0000000 0.0000000 -2.0000000 2.0000000 0.0000000 0.0000000";
+ targetTime = "4000";
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/willowisp.dif";
+ interiorIndex = "2";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-85 -25 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-85 -25 16";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "-64 -28 0.4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-1.0000000 1.0000000 1.0000000 0.0000000 -2.0000000 0.0000000 0.0000000 0.0000000 -2.0000000 2.0000000 0.0000000 0.0000000";
+ targetTime = "4000";
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/willowisp.dif";
+ interiorIndex = "3";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "79 47 8";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "79 47 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "79 47 8.6";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-1.0000000 1.0000000 1.0000000 0.0000000 -2.0000000 0.0000000 0.0000000 0.0000000 -2.0000000 2.0000000 0.0000000 0.0000000";
+ targetTime = "2000";
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/willowisp.dif";
+ interiorIndex = "4";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-64 -28 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-64 -28 8";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "-64 -28 0.4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-1.0000000 1.0000000 1.0000000 0.0000000 -2.0000000 0.0000000 0.0000000 0.0000000 -2.0000000 2.0000000 0.0000000 0.0000000";
+ targetTime = "2000";
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/advanced/willowisp.dif";
+ interiorIndex = "5";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "0";
+ };
+ };
+ new StaticShape(StartPoint) {
+ position = "112 1.55853e-006 32";
+ rotation = "0 0 -1 29.2208";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "-112 0.2 28";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new Trigger(Bounds) {
+ position = "-158.48 63.0002 -12.4501";
+ rotation = "1 0 0 0";
+ scale = "298.856 123.609 61.4501";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new ScriptObject() {
+ pad = "1832";
+ bonusTime = "0";
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ penaltyTime = "0";
+ };
+ new StaticShape() {
+ position = "86.7381 38.1205 17.223";
+ rotation = "0 0 -1 55.0039";
+ scale = "1 1 1";
+ dataBlock = "SignPlainDown";
+ };
+ new StaticShape() {
+ position = "103.906 12.8995 33.223";
+ rotation = "0 0 -1 20.0535";
+ scale = "1 1 1";
+ dataBlock = "SignPlainDown";
+ };
+ new ScriptObject() {
+ pad = "1612";
+ bonusTime = "0";
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ penaltyTime = "0";
+ };
+ new StaticShape() {
+ position = "-80.8497 -47.2462 9.89394";
+ rotation = "-0.0163138 0.13508 -0.9907 103.849";
+ scale = "1 1 1";
+ dataBlock = "SignCautionCaution";
+ };
+ new StaticShape() {
+ position = "102.341 -9.23866 1.14961";
+ rotation = "0 0 1 144.958";
+ scale = "1 1 1";
+ dataBlock = "SignPlainRight";
+ };
+ new StaticShape() {
+ position = "-111.967 -0.654123 33.0063";
+ rotation = "0 0 1 58.4417";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new StaticShape() {
+ position = "88.3547 30.5962 1.1102";
+ rotation = "0 0 -1 75.0575";
+ scale = "1 1 1";
+ dataBlock = "SignPlainLeft";
+ };
+ new Item() {
+ position = "-41.3073 -9.07928 6.30863";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "89.4178 6.59257 -0.941471";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-95.5609 -20.2753 16.674";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-52.0236 -0.266738 -1.59008";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "48.2417 -18.9715 -1.45111";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "22.4666 21.8919 -4.70549";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-48.0626 23.6468 -0.505879";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-52.448 44.6573 0.320275";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-60.5507 44.704 4.8328";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ pad = "1671";
+ bonusTime = "0";
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ penaltyTime = "0";
+ };
+ new Item() {
+ position = "-10.7332 39.8829 1.2181";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "HelicopterItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Trigger() {
+ position = "-69.1788 -22.85 -0.780878";
+ rotation = "1 0 0 0";
+ scale = "9.89991 9.64285 3.28235";
+ dataBlock = "HelpTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ text = "Hit the Button to raise the platforms!";
+ };
+ new Trigger() {
+ position = "74.1912 51.8794 7.94558";
+ rotation = "1 0 0 0";
+ scale = "9.58631 9.64285 8.97816";
+ dataBlock = "HelpTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ text = "Hit the Button to lower the platforms!";
+ };
+ new ScriptObject() {
+ pad = "1671";
+ bonusTime = "0";
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ penaltyTime = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+ new Item() {
+ position = "91.4601 33.6145 16.2632";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "ShockAbsorberItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/beginner/airmove.jpg b/data/missions/beginner/airmove.jpg
new file mode 100644
index 00000000..2752744e
Binary files /dev/null and b/data/missions/beginner/airmove.jpg differ
diff --git a/data/missions/beginner/airmove.mis b/data/missions/beginner/airmove.mis
new file mode 100644
index 00000000..e3b51f95
--- /dev/null
+++ b/data/missions/beginner/airmove.mis
@@ -0,0 +1,112 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ type = "Beginner";
+ time = "0";
+ name = "Air Movement";
+ goldTime = "5000";
+ startHelpText = "Spin the marble in the air to avoid falling off the level!";
+ level = "8";
+ desc = "Spin the marble in the air to avoid falling off the level.";
+ artist = "Alex Swanson";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.701976 -0.52137 -0.485184";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/training_airmove.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "0 -4 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "-3.60576e-008 -4 -47.5";
+ rotation = "0 0 1 179.518";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new Trigger(Bounds) {
+ position = "-11.5 29.6508 -51";
+ rotation = "1 0 0 0";
+ scale = "23 41.1508 72";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "-3.48621 9.06227 1.38891";
+ rotation = "1 0 0 31.5127";
+ scale = "1 1 1";
+ dataBlock = "SignPlainDown";
+ };
+ new StaticShape() {
+ position = "0.341891 -3.52288 -38.4778";
+ rotation = "0 0 -1 8.59439";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new Trigger(Help) {
+ position = "-8.32154 8.40169 0.453332";
+ rotation = "1 0 0 0";
+ scale = "16.5255 3.62262 1";
+ dataBlock = "HelpTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ text = "Use the direction keys while airborn to move the marble.";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ bonusTime = "0";
+ pad = "1802";
+ penaltyTime = "0";
+ powerUp = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/beginner/backagain.jpg b/data/missions/beginner/backagain.jpg
new file mode 100644
index 00000000..c92c1e98
Binary files /dev/null and b/data/missions/beginner/backagain.jpg differ
diff --git a/data/missions/beginner/backagain.mis b/data/missions/beginner/backagain.mis
new file mode 100644
index 00000000..4a787f22
--- /dev/null
+++ b/data/missions/beginner/backagain.mis
@@ -0,0 +1,135 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ desc = "Grab the gem at the end of the platform and return to the finish. How quickly can you finish?\n\nDon\'t fall off the edge!";
+ name = "There and Back Again";
+ startHelpText = "Don\'t fall off!";
+ level = "14";
+ type = "beginner";
+ artist = "Kevin Ryan";
+ time = "0";
+ goldTime = "12000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.442343 0.475025 -0.760713";
+ color = "1.400000 1.200000 0.500000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/backagain.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(EndPoint) {
+ position = "0 -60.5 0.985254";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new StaticShape(StartPoint) {
+ position = "0 -55.5 0.997233";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new Item() {
+ position = "0 44.5 1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Trigger(Bounds) {
+ position = "-8.6 49.8 -0.8";
+ rotation = "1 0 0 0";
+ scale = "13.8582 119.756 5.79814";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "2.37015 44.1039 2.05582";
+ rotation = "0 0 1 42.3988";
+ scale = "1 1 1";
+ dataBlock = "SignCautionDanger";
+ };
+ new StaticShape() {
+ position = "-2.01454 44.4295 2.20874";
+ rotation = "0 0 -1 24.0642";
+ scale = "1 1 1";
+ dataBlock = "SignCautionCaution";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ pad = "1634";
+ bonusTime = "0";
+ penaltyTime = "0";
+ gemCount = "0";
+ time = "0";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ pad = "1872";
+ bonusTime = "0";
+ penaltyTime = "0";
+ gemCount = "0";
+ time = "0";
+ };
+ new StaticShape() {
+ position = "-0.495314 -61.3242 6.82225";
+ rotation = "0 0 1 180.091";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ pad = "1804";
+ bonusTime = "0";
+ penaltyTime = "0";
+ gemCount = "0";
+ time = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/beginner/bounce.jpg b/data/missions/beginner/bounce.jpg
new file mode 100644
index 00000000..62a075db
Binary files /dev/null and b/data/missions/beginner/bounce.jpg differ
diff --git a/data/missions/beginner/bounce.mis b/data/missions/beginner/bounce.mis
new file mode 100644
index 00000000..f7b61bc2
--- /dev/null
+++ b/data/missions/beginner/bounce.mis
@@ -0,0 +1,114 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ name = "Super Bounce";
+ time = "0";
+ type = "Beginner";
+ artist = "Alex Swanson";
+ desc = "Learn to use the Super Bounce item.";
+ startHelpText = "Use the Super Bounce PowerUp to bound to the finish!";
+ level = "11";
+ goldTime = "5750";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.433884 0.614021 -0.659336";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/training_bounce.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "9 0 32.317";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperBounceItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ showHelpOnPickup = "1";
+ };
+ new StaticShape(StartPoint) {
+ position = "20 3.45457e-007 32";
+ rotation = "0 0 -1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "-33.8 6.82336e-007 16";
+ rotation = "0 0 -1 90.5273";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new Trigger(Bounds) {
+ position = "-41.8833 11 0.407547";
+ rotation = "1 0 0 0";
+ scale = "68.8833 22 62.1455";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new ScriptObject() {
+ pad = "1501";
+ penaltyTime = "0";
+ bonusTime = "0";
+ gemCount = "0";
+ time = "0";
+ powerUp = "0";
+ };
+ new StaticShape() {
+ position = "-33.6524 0.937187 29.8223";
+ rotation = "0 0 -1 73.3386";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new StaticShape() {
+ position = "8.23308 -4.38022 33.023";
+ rotation = "0 0 -1 104.278";
+ scale = "1 1 1";
+ dataBlock = "SignPlainDown";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/beginner/bumpers.jpg b/data/missions/beginner/bumpers.jpg
new file mode 100644
index 00000000..a6c92393
Binary files /dev/null and b/data/missions/beginner/bumpers.jpg differ
diff --git a/data/missions/beginner/bumpers.mis b/data/missions/beginner/bumpers.mis
new file mode 100644
index 00000000..0ef97228
--- /dev/null
+++ b/data/missions/beginner/bumpers.mis
@@ -0,0 +1,188 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ name = "Bumper Training";
+ desc = "Avoid the bumpers!";
+ type = "Beginner";
+ startHelpText = "Roll to the finish!";
+ level = "16";
+ artist = "Alex Swanson";
+ goldTime = "5000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.99514e+038 -2.02183e+038";
+ fogVolume2 = "-1 -2.14204e+038 -2.15538e+038";
+ fogVolume3 = "-1 -2.24889e+038 -2.26219e+038";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -210195007640218170000000000000000000000.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -220880937116769280000000000000000000000.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -231561674296461850000000000000000000000.000000";
+ };
+ new Sun() {
+ direction = "0.433884 0.614021 -0.659336";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/training_bumpers.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "-12 -12 0.339511";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ fixedscale = "1";
+ };
+ new StaticShape(EndPoint) {
+ position = "12 -4 0.334106";
+ rotation = "0 0 1 180.664";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ fixedscale = "1";
+ };
+ new Trigger(Bounds) {
+ position = "-19.5 19.5 -4.17188";
+ rotation = "1 0 0 0";
+ scale = "39 39 36.3329";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new Trigger() {
+ position = "-9.84304 16.1222 0.090625";
+ rotation = "1 0 0 0";
+ scale = "19.7824 9.74144 9.76723";
+ dataBlock = "HelpTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ text = "Avoid being knocked off by the bumpers!";
+ };
+ new StaticShape() {
+ position = "-4.07437 10.0122 0.341325";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-2.02081 16.1767 0.383519";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-0.0411938 9.97323 0.336603";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-4.04001 13.9775 0.327253";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-0.0710166 14.002 0.335603";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "3.94924 13.9807 0.33585";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "3.95108 10.0421 0.335449";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "1.98706 16.1654 0.373131";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-2.00514 7.7569 0.399237";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "1.97437 7.79189 0.398977";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new ScriptObject() {
+ gemCount = "0";
+ time = "0";
+ powerUp = "0";
+ pad = "1492";
+ penaltyTime = "0";
+ bonusTime = "0";
+ };
+ new StaticShape() {
+ position = "12.3983 -3.68577 6.35636";
+ rotation = "0 0 -1 19.4806";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new StaticShape() {
+ position = "2.01911 12.0106 0.336975";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new StaticShape() {
+ position = "-2.00954 11.9458 0.343807";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "RoundBumper";
+ };
+ new ScriptObject() {
+ gemCount = "0";
+ time = "0";
+ powerUp = "0";
+ pad = "1632";
+ penaltyTime = "0";
+ bonusTime = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/beginner/copter.jpg b/data/missions/beginner/copter.jpg
new file mode 100644
index 00000000..6ff4e8df
Binary files /dev/null and b/data/missions/beginner/copter.jpg differ
diff --git a/data/missions/beginner/copter.mis b/data/missions/beginner/copter.mis
new file mode 100644
index 00000000..6772f3a5
--- /dev/null
+++ b/data/missions/beginner/copter.mis
@@ -0,0 +1,108 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ name = "Gyrocopter";
+ desc = "Learn to fly !";
+ type = "Beginner";
+ startHelpText = "Use the Gyrocopter PowerUp to fly to the finish!";
+ level = "9";
+ artist = "Alex Swanson";
+ goldTime = "3750";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -2.19536e+038 -2.19536e+038";
+ fogVolume2 = "-1 -2.2087e+038 -2.19536e+038";
+ fogVolume3 = "-1 -2.18196e+038 -2.16867e+038";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -222204871403647640000000000000000000000.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -219535990253541530000000000000000000000.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -214193076221289990000000000000000000000.000000";
+ };
+ new Sun() {
+ direction = "0.481726 0.481726 -0.732038";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/training_copter.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "28 5.79158e-008 81";
+ rotation = "0 0 -1 90.5273";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "-28 6.5436e-007 65";
+ rotation = "0 0 -1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new Item() {
+ position = "18 0 81";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "HelicopterItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ showHelpOnPickup = "1";
+ };
+ new Trigger(Bounds) {
+ position = "-52.5444 38.0152 57.871";
+ rotation = "1 0 0 0";
+ scale = "107.509 73.1917 86.7494";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "-28.0149 0.164103 73.1906";
+ rotation = "0 0 -1 107.143";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new ScriptObject() {
+ gemCount = "0";
+ time = "0";
+ powerUp = "0";
+ pad = "1493";
+ penaltyTime = "0";
+ bonusTime = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/beginner/ductfan.jpg b/data/missions/beginner/ductfan.jpg
new file mode 100644
index 00000000..a4211bdf
Binary files /dev/null and b/data/missions/beginner/ductfan.jpg differ
diff --git a/data/missions/beginner/ductfan.mis b/data/missions/beginner/ductfan.mis
new file mode 100644
index 00000000..09d97493
--- /dev/null
+++ b/data/missions/beginner/ductfan.mis
@@ -0,0 +1,138 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ startHelpText = "Race by the Duct Fans to finish!";
+ level = "17";
+ name = "Breezeway";
+ type = "beginner";
+ time = "0";
+ artist = "Alex Swanson";
+ desc = "Watch out for the duct fans!";
+ goldTime = "3500";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0.349971";
+ cloudHeightPer[1] = "0.3";
+ cloudHeightPer[2] = "0.199973";
+ cloudSpeed1 = "0.0005";
+ cloudSpeed2 = "0.001";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "0 0 0";
+ fogVolume2 = "0 0 0";
+ fogVolume3 = "0 0 0";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 1 0";
+ windEffectPrecipitation = "1";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -222768174765569860000000000000000000000.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -170698929442160050000000000000000000000.000000";
+ locked = "true";
+ };
+ new Sun() {
+ direction = "0.560395 0.341545 -0.754522";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ position = "0 0 0";
+ locked = "true";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "2.60117 -3.09086 500.118";
+ rotation = "0 0 1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "47.0869 -3.09183 500.113";
+ rotation = "0 0 1 90.5273";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-1.50047 3.92374 494.141";
+ rotation = "1 0 0 0";
+ scale = "52.1696 14.0671 14.4808";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "0.526207 -2.77715 499.622";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/training_fans.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape() {
+ position = "16.4286 -7.79968 500.858";
+ rotation = "-0.000562963 0.707107 0.707107 179.935";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "32.5512 2.2 500.555";
+ rotation = "-1 0 0 90";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "27.1647 -0.297122 501.271";
+ rotation = "0.0449167 0.0549801 0.997477 78.6371";
+ scale = "1 1 1";
+ dataBlock = "SignCautionCaution";
+ };
+ new StaticShape() {
+ position = "10.9721 -5.77621 501.377";
+ rotation = "0.0557942 -0.074813 0.995636 106.81";
+ scale = "1 1 1";
+ dataBlock = "SignCautionCaution";
+ };
+ new StaticShape() {
+ position = "46.8268 -5.58626 505.642";
+ rotation = "0 0 1 95.111";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ pad = "2453";
+ penaltyTime = "0";
+ bonusTime = "0";
+ time = "0";
+ gemCount = "0";
+ };
+ new Trigger() {
+ position = "10.9996 -0.466551 499.922";
+ rotation = "1 0 0 0";
+ scale = "11.0481 5.45451 1";
+ dataBlock = "HelpTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ text = "Beware of the wind from the fans.";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/beginner/elevator.jpg b/data/missions/beginner/elevator.jpg
new file mode 100644
index 00000000..dda3863f
Binary files /dev/null and b/data/missions/beginner/elevator.jpg differ
diff --git a/data/missions/beginner/elevator.mis b/data/missions/beginner/elevator.mis
new file mode 100644
index 00000000..6d60515b
--- /dev/null
+++ b/data/missions/beginner/elevator.mis
@@ -0,0 +1,155 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ type = "Beginner";
+ startHelpText = "Jump onto the elevator to reach the goal.";
+ name = "Elevator";
+ time = "0";
+ desc = "Use the elevator to ascend the building.";
+ level = "7";
+ artist = "Alex Swanson";
+ goldTime = "4250";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -2.45543e+038 -2.46872e+038";
+ fogVolume2 = "-1 -1.70141e+038 -1.7281e+038";
+ fogVolume3 = "-1 -3.33835e+038 -3.33835e+038";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -265481509622188020000000000000000000000.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -333834609190347200000000000000000000000.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1.000000";
+ };
+ new Sun() {
+ direction = "0.433884 0.614021 -0.659336";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/training_elevator.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "0 -13.5 -15";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "0 2 17.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "0 -8 -14.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "0 -8 17";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1500";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "0 -8 -14.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "0.5 -8 -13.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-7.5000000 2.0000000 0.5000000 0.0000000 -4.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 15.0000000 0.0000000 0.0000000";
+ targetTime = "3000";
+ };
+ new Trigger(MustChange) {
+ position = "0.25 -0.25 -14.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-63.7500000 63.2500000 0.2500000 0.0000000 -126.5000000 0.0000000 0.0000000 0.0000000 -0.5000000 127.5000000 0.0000000 0.0000000";
+ targetTime = "0";
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/beginner/training_elevator.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-67 66.5 -19";
+ rotation = "1 0 0 0";
+ scale = "134 133 53.5";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "0.48522 1.55173 24.5222";
+ rotation = "0 0 -1 23.4913";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ pad = "1507";
+ time = "0";
+ bonusTime = "0";
+ gemCount = "0";
+ penaltyTime = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/beginner/finale.jpg b/data/missions/beginner/finale.jpg
new file mode 100644
index 00000000..be0d8a20
Binary files /dev/null and b/data/missions/beginner/finale.jpg differ
diff --git a/data/missions/beginner/finale.mis b/data/missions/beginner/finale.mis
new file mode 100644
index 00000000..d71b50bc
--- /dev/null
+++ b/data/missions/beginner/finale.mis
@@ -0,0 +1,793 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ name = "Grand Finale";
+ desc = "Overcome all the beginner challenges to get the gems!";
+ type = "beginner";
+ startHelpText = "Find all the gems!";
+ level = "24";
+ artist = "Alex Swanson";
+ goldTime = "60000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -2.40897e+038 -2.40892e+038";
+ fogVolume2 = "-1 -2.38223e+038 -2.38218e+038";
+ fogVolume3 = "-1 -2.34215e+038 -2.34215e+038";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -238223269471504420000000000000000000000.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -235549196024539770000000000000000000000.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -231551107161058350000000000000000000000.000000";
+ };
+ new Sun() {
+ direction = "0.433884 0.614021 -0.659336";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/beginner_finish.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "-40 -7.61237e-007 8";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape() {
+ position = "0 0 0.6";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "Tornado";
+ };
+ new Item() {
+ position = "-6.2 40 8.03698";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "HelicopterItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ showHelpOnPickup = "1";
+ };
+ new Item() {
+ position = "-6 -40 8.32049";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperBounceItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ showHelpOnPickup = "1";
+ };
+ new StaticShape() {
+ position = "-31.9861 11.9638 -6.94302";
+ rotation = "0 1 0 90";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new StaticShape() {
+ position = "-31.9969 -11.9913 -6.97539";
+ rotation = "0 1 0 90";
+ scale = "1 1 1";
+ dataBlock = "DuctFan";
+ };
+ new Item() {
+ position = "44 0 -7.83225";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ showHelpOnPickup = "1";
+ };
+ new StaticShape() {
+ position = "-2.5 -14 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-0.5 -11.5 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "2.5 -12.5 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "1.5 -9.5 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "1.5 -6 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-1 -6 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-2 -7.5 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-2 -3.5 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "0 -4 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "3 -2.5 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "1 -1 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-2 0.5 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-0.5 3 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "1 2 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "2 4 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-0.5 5.5 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-2.5 8 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "0 8.5 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "3 8.5 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "1.5 6.5 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-2 10.5 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "1.5 12.5 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-1.5 14.5 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "2.5 14.5 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-3 -9.5 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape(EndPoint) {
+ position = "-40 1.97032e-007 -24";
+ rotation = "0 0 -1 90.5273";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new Item() {
+ position = "-25.9 0 -7.6";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "ShockAbsorberItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ showHelpOnPickup = "1";
+ };
+ new Item() {
+ position = "0 -46.6463 8.6954";
+ rotation = "-1 0 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 -46.9 30";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 43.5474 33.3619";
+ rotation = "1 0 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0.0016822 0 33.9";
+ rotation = "0 1 0 180";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-8 8 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "8 -8 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "40 0 8";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "56 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-40 -40 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-40 40 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 0 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-0.00538364 46.8127 11.9883";
+ rotation = "1 0 0 180";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "28 40 -8.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "28 40 -8.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "3000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "28 40 7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "28 40 7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "3000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "28 40 -8.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/beginner/beginner_finish.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "28 -40.5 -8.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "28 -40.5 -8.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "3000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "28 -40.5 7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "28 -40.5 7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "3000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "28 -40.5 -8.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/beginner/beginner_finish.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "40 -15.5 7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "40 -15.5 7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "6000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "40 31.5 7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "40 31.5 7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "6000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "40 -15.5 7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/beginner/beginner_finish.dif";
+ interiorIndex = "2";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-51.5 51.5 -34.6791";
+ rotation = "1 0 0 0";
+ scale = "119.5 103 86.6791";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "-2.97937 11.0643 -10.9013";
+ rotation = "0.00151947 0.00999982 0.999949 197.279";
+ scale = "1 1 1";
+ dataBlock = "SignCautionDanger";
+ };
+ new StaticShape() {
+ position = "-17.8774 0.212164 -4.09529";
+ rotation = "0 0 -1 85.9437";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new StaticShape() {
+ position = "3.16566 -11.0521 -10.7506";
+ rotation = "0.0340294 0.233039 0.971872 17.0898";
+ scale = "1 1 1";
+ dataBlock = "SignCautionDanger";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "2123";
+ bonusTime = "0";
+ penaltyTime = "0";
+ };
+ new StaticShape() {
+ position = "-24.1669 5.90496 -6.82965";
+ rotation = "0 0 1 76.2034";
+ scale = "1 1 1";
+ dataBlock = "SignPlainDown";
+ };
+ new Item() {
+ position = "0.00408807 -46.4891 33.8327";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ showHelpOnPickup = "1";
+ };
+ new Trigger() {
+ position = "-15.9447 9.76597 -0.203375";
+ rotation = "1 0 0 0";
+ scale = "21.8944 17.8061 1";
+ dataBlock = "HelpTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ text = "Beware of the tornado!";
+ };
+ new Trigger() {
+ position = "35.7676 7.88685 -8.14565";
+ rotation = "1 0 0 0";
+ scale = "12.8599 15.9587 1";
+ dataBlock = "HelpTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ text = "Use the Super Jump PowerUp to reach the gem above!";
+ };
+ new Trigger() {
+ position = "-4.13627 15.3657 -12.4071";
+ rotation = "1 0 0 0";
+ scale = "8.47271 30.495 5.93854";
+ dataBlock = "HelpTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ text = "Beware of mines!";
+ };
+ new Trigger() {
+ position = "-31.7368 8.73805 -8.16778";
+ rotation = "1 0 0 0";
+ scale = "7.72963 17.0885 1";
+ dataBlock = "HelpTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ text = "Use the Shock Absorber to make a safe landing! Do you have all the gems?";
+ };
+ new Trigger() {
+ position = "-45.1447 15.3598 -8.21043";
+ rotation = "1 0 0 0";
+ scale = "13.2042 6.76888 1";
+ dataBlock = "HelpTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ text = "Be careful around these fans!";
+ };
+ new Trigger() {
+ position = "-44.852 -8.63016 -8.10917";
+ rotation = "1 0 0 0";
+ scale = "13.2042 6.76888 1";
+ dataBlock = "HelpTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ text = "Be careful around these fans!";
+ };
+ new Trigger() {
+ position = "-8.1897 -33.2769 -6.36522";
+ rotation = "0 0 1 34.3775";
+ scale = "7.97097 8.06694 15.1928";
+ dataBlock = "HelpTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ text = "Use the Super Bounce to reach the Gem!";
+ };
+ new Trigger() {
+ position = "-4.78179 -42.3737 7.81764";
+ rotation = "1 0 0 0";
+ scale = "9.5672 5.22807 1";
+ dataBlock = "HelpTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ text = "Use the Gravity Modifier to roll up the wall!";
+ };
+ new Trigger() {
+ position = "-8.09893 44.1555 7.87619";
+ rotation = "1 0 0 0";
+ scale = "8.02191 9.98714 1";
+ dataBlock = "HelpTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ text = "Use the Gyrocopter to fly across the gap and retrieve the gem!";
+ };
+ new Trigger() {
+ position = "21.5425 50.4899 -8.22982";
+ rotation = "1 0 0 0";
+ scale = "26.7967 24.0212 20.5621";
+ dataBlock = "HelpTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ text = "Ride the elevators and moving platform to reach a gem!";
+ };
+ new Trigger() {
+ position = "21.6823 -24.4967 -8.48105";
+ rotation = "1 0 0 0";
+ scale = "26.7967 24.0212 20.5621";
+ dataBlock = "HelpTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ text = "Ride the elevators and moving platform to reach a gem!";
+ };
+ new StaticShape() {
+ position = "-5.96977 -41.9018 9.12592";
+ rotation = "0 0 1 181.81";
+ scale = "1 1 1";
+ dataBlock = "SignPlainRight";
+ };
+ new StaticShape() {
+ position = "1.99781 -46.0428 9.17025";
+ rotation = "0 0 1 143.422";
+ scale = "1 1 1";
+ dataBlock = "SignPlainUp";
+ };
+ new StaticShape() {
+ position = "-5.88079 41.9334 9.24926";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignPlainLeft";
+ };
+ new StaticShape() {
+ position = "47.9543 -0.0307885 -6.7741";
+ rotation = "0 0 1 88.2355";
+ scale = "1 1 1";
+ dataBlock = "SignPlainUp";
+ };
+ new StaticShape() {
+ position = "31.5734 31.3742 -6.82058";
+ rotation = "0 0 1 34.9505";
+ scale = "1 1 1";
+ dataBlock = "SignPlainUp";
+ };
+ new StaticShape() {
+ position = "45.9644 33.9906 9.2195";
+ rotation = "0 0 1 91.6732";
+ scale = "1 1 1";
+ dataBlock = "SignPlainRight";
+ };
+ new StaticShape() {
+ position = "45.9284 -34.0374 9.15151";
+ rotation = "0 0 1 88.8084";
+ scale = "1 1 1";
+ dataBlock = "SignPlainLeft";
+ };
+ new StaticShape() {
+ position = "31.9932 -31.3851 -6.75358";
+ rotation = "0 0 1 162.33";
+ scale = "1 1 1";
+ dataBlock = "SignPlainUp";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "2242";
+ bonusTime = "0";
+ penaltyTime = "0";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "7423";
+ penaltyTime = "0";
+ bonusTime = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/beginner/friction.jpg b/data/missions/beginner/friction.jpg
new file mode 100644
index 00000000..91c13988
Binary files /dev/null and b/data/missions/beginner/friction.jpg differ
diff --git a/data/missions/beginner/friction.mis b/data/missions/beginner/friction.mis
new file mode 100644
index 00000000..9d36a2f2
--- /dev/null
+++ b/data/missions/beginner/friction.mis
@@ -0,0 +1,151 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ name = "Marble Materials Lab";
+ time = "0";
+ type = "Beginner";
+ desc = "Learn about different surface properties!";
+ startHelpText = "Explore the different surfaces and get the gems!";
+ level = "15";
+ artist = "Alex Swanson";
+ goldTime = "6500";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 0.29083 0.822779";
+ fogVolume2 = "-1 0.314212 0.783026";
+ fogVolume3 = "-1 0.681746 0.113754";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 0.360587";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.298365";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 0.271986";
+ };
+ new Sun() {
+ direction = "0.488577 0.573201 -0.657825";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/training_friction.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "7.5 0 -6";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-40 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-16.5 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape(StartPoint) {
+ position = "32 4.20237e-007 -4";
+ rotation = "0 0 -1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ fixedscale = "1";
+ };
+ new StaticShape(EndPoint) {
+ position = "-60 5.80125e-007 0";
+ rotation = "0 0 -1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ fixedscale = "1";
+ };
+ new Trigger(Bounds) {
+ position = "-67.5 15.5 -12";
+ rotation = "1 0 0 0";
+ scale = "107 31 33";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "-59.9229 0.267691 6.77013";
+ rotation = "0 0 -1 104.278";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new ScriptObject() {
+ penaltyTime = "0";
+ bonusTime = "0";
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "1500";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+ new Trigger() {
+ position = "0.0353498 12.3252 -8.04202";
+ rotation = "1 0 0 0";
+ scale = "27.6281 24.8292 6.56544";
+ dataBlock = "HelpTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ text = "Be careful, the mud is slippery!";
+ };
+ new Trigger() {
+ position = "-29.7787 12.3778 -8.17395";
+ rotation = "1 0 0 0";
+ scale = "27.6281 24.8292 11.7605";
+ dataBlock = "HelpTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ text = "The rough grass gives you more traction!";
+ };
+ new Trigger() {
+ position = "-56.5603 12.5845 -0.347349";
+ rotation = "1 0 0 0";
+ scale = "28.4457 24.8292 6.02444";
+ dataBlock = "HelpTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ text = "Be very careful, you get no traction at all in space!";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/beginner/gems.jpg b/data/missions/beginner/gems.jpg
new file mode 100644
index 00000000..1f5f8681
Binary files /dev/null and b/data/missions/beginner/gems.jpg differ
diff --git a/data/missions/beginner/gems.mis b/data/missions/beginner/gems.mis
new file mode 100644
index 00000000..f7b90e90
--- /dev/null
+++ b/data/missions/beginner/gems.mis
@@ -0,0 +1,161 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ name = "Collect the Gems";
+ type = "Beginner";
+ artist = "Alex Swanson";
+ desc = "You must collect all the gems before you can exit.";
+ startHelpText = "Collect all the gems, then head for the finish!";
+ level = "2";
+ goldTime = "12000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0.349971";
+ cloudHeightPer[1] = "0.3";
+ cloudHeightPer[2] = "0.199973";
+ cloudSpeed1 = "0.0005";
+ cloudSpeed2 = "0.001";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "0 0 0";
+ fogVolume2 = "0 0 0";
+ fogVolume3 = "0 0 0";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 1 0";
+ windEffectPrecipitation = "1";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -222768174765569860000000000000000000000.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -170698929442160050000000000000000000000.000000";
+ locked = "true";
+ };
+ new Sun() {
+ direction = "-0.473121 -0.225982 -0.851521";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ locked = "true";
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "35.7087 -0.988139 497.097";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "-9.08482 -8.34429 497.188";
+ rotation = "0 0 1 229.366";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-14.8244 20.4875 495.149";
+ rotation = "1 0 0 0";
+ scale = "56.3847 36.0045 20";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "23.6907 2.98635 496.879";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/training_jewel.dif";
+ showTerrainInside = "0";
+ locked = "true";
+ };
+ new Item() {
+ position = "-10.3452 14.6931 497.267";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-0.360377 14.7835 497.267";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "2.23896 3.85229 497.354";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "6.45257 9.75113 497.262";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "10.2608 -1.55305 497.266";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "5.12851 -6.93383 497.229";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "1.05057 -5.5609 497.215";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "-9.03796 -8.14522 503.09";
+ rotation = "0 0 1 230.512";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/beginner/gravity.jpg b/data/missions/beginner/gravity.jpg
new file mode 100644
index 00000000..a7ef9ab2
Binary files /dev/null and b/data/missions/beginner/gravity.jpg differ
diff --git a/data/missions/beginner/gravity.mis b/data/missions/beginner/gravity.mis
new file mode 100644
index 00000000..e014ef12
--- /dev/null
+++ b/data/missions/beginner/gravity.mis
@@ -0,0 +1,144 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ type = "beginner";
+ name = "Gravity Helix";
+ level = "12";
+ startHelpText = "Pick up the Gravity Modifiers to roll to the finish!";
+ desc = "Change gravity to solve this puzzle.";
+ artist = "Alex Swanson";
+ goldTime = "10000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0.349971";
+ cloudHeightPer[1] = "0.3";
+ cloudHeightPer[2] = "0.199973";
+ cloudSpeed1 = "0.0005";
+ cloudSpeed2 = "0.001";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "0 0 0";
+ fogVolume2 = "0 0 0";
+ fogVolume3 = "0 0 0";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 1 0";
+ windEffectPrecipitation = "1";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -222768174765569860000000000000000000000.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -170698929442160050000000000000000000000.000000";
+ locked = "true";
+ };
+ new Sun() {
+ direction = "0.459006 0.638261 -0.61801";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ position = "0 0 0";
+ locked = "true";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "-68.4 4.6 494.956";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "78.1947 4.72074 494.96";
+ rotation = "0 0 1 90.5273";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-73.7093 14.4391 491.549";
+ rotation = "1 0 0 0";
+ scale = "160 20 20";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "-5.0725 4.63413 498";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/training_gravity.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "-29.0744 5.70969 495.669";
+ rotation = "-1 0 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ showHelpOnPickup = "1";
+ };
+ new Item() {
+ position = "-9.05418 2.30309 497.938";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ showHelpOnPickup = "1";
+ };
+ new Item() {
+ position = "11.1154 4.04482 500.268";
+ rotation = "1 0 0 90";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ showHelpOnPickup = "1";
+ };
+ new Item() {
+ position = "38.6479 7.00411 499.184";
+ rotation = "0 1 0 180";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ showHelpOnPickup = "1";
+ };
+ new StaticShape() {
+ position = "79.6293 4.20092 501.904";
+ rotation = "0 0 1 72.7656";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new StaticShape() {
+ position = "-26.8177 8.15219 496.172";
+ rotation = "0.019991 0.0277081 0.999416 71.6515";
+ scale = "1 1 1";
+ dataBlock = "SignCautionCaution";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/beginner/jumping.jpg b/data/missions/beginner/jumping.jpg
new file mode 100644
index 00000000..fa74ec54
Binary files /dev/null and b/data/missions/beginner/jumping.jpg differ
diff --git a/data/missions/beginner/jumping.mis b/data/missions/beginner/jumping.mis
new file mode 100644
index 00000000..44fce610
--- /dev/null
+++ b/data/missions/beginner/jumping.mis
@@ -0,0 +1,114 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ startHelpText = "Jump up the ramp to the finish!";
+ level = "3";
+ name = "Jump Training";
+ type = "Beginner";
+ artist = "Alex Swanson";
+ desc = "Learn to jump up the upper ramp. Roll on to the exit pad to complete the level.";
+ goldTime = "6750";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0.349971";
+ cloudHeightPer[1] = "0.3";
+ cloudHeightPer[2] = "0.199973";
+ cloudSpeed1 = "0.0005";
+ cloudSpeed2 = "0.001";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "0 0 0";
+ fogVolume2 = "0 0 0";
+ fogVolume3 = "0 0 0";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 1 0";
+ windEffectPrecipitation = "1";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -222768174765569860000000000000000000000.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -170698929442160050000000000000000000000.000000";
+ locked = "true";
+ };
+ new Sun() {
+ direction = "0.481726 0.481726 -0.732038";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ position = "0 0 0";
+ locked = "true";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "-0.28569 0.0961937 499.021";
+ rotation = "0 0 1 0.0559529";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "25.1421 50.5672 504.912";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new InteriorInstance() {
+ position = "10.2794 25.7924 502.697";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/training2.dif";
+ showTerrainInside = "0";
+ locked = "true";
+ };
+ new Trigger() {
+ position = "-11.298 103.375 478.493";
+ rotation = "1 0 0 0";
+ scale = "49.2618 126.785 50";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new Trigger() {
+ position = "-4.73127 29.8391 499.04";
+ rotation = "1 0 0 0";
+ scale = "8.88257 8.037 1";
+ dataBlock = "HelpTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ text = "Press to Jump!";
+ };
+ new StaticShape() {
+ position = "25.7706 50.5267 511.647";
+ rotation = "0 0 1 26.356";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ pad = "1609";
+ bonusTime = "0";
+ penaltyTime = "0";
+ gemCount = "0";
+ time = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/beginner/mine.jpg b/data/missions/beginner/mine.jpg
new file mode 100644
index 00000000..f3008fb3
Binary files /dev/null and b/data/missions/beginner/mine.jpg differ
diff --git a/data/missions/beginner/mine.mis b/data/missions/beginner/mine.mis
new file mode 100644
index 00000000..6827d35e
--- /dev/null
+++ b/data/missions/beginner/mine.mis
@@ -0,0 +1,336 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ name = "Mine Field";
+ desc = "Avoid the mines!";
+ type = "Beginner";
+ startHelpText = "Roll to the finish!";
+ level = "18";
+ artist = "Alex Swanson";
+ goldTime = "5250";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -2.38223e+038 -2.38218e+038";
+ fogVolume2 = "-1 -2.34215e+038 -2.34215e+038";
+ fogVolume3 = "-1 -2.31546e+038 -2.30217e+038";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -235549196024539770000000000000000000000.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -231551107161058350000000000000000000000.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -223539291696291090000000000000000000000.000000";
+ };
+ new Sun() {
+ direction = "0.481726 0.481726 -0.732038";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/training_mines.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "-12 -12 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "12 -4 0";
+ rotation = "0 0 1 180.091";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new StaticShape() {
+ position = "-7 15 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-7 13 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-7 11 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-7 9 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-5 9 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-5 11 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-5 13 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-5 15 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-3 15 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "1 15 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "5 15 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "5 13 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "5 11 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "5 9 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "7 9 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "7 11 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "7 13 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "7 15 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "1 13 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "1 11 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "1 9 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "3 9 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "3 11 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "3 13 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "3 15 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-3 13 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-3 11 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-3 9 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-1 9 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-1 11 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-1 13 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-1 15 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new Trigger(Bounds) {
+ position = "-19.5 19.5 -4.6875";
+ rotation = "1 0 0 0";
+ scale = "39 39 92.3498";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "-7.95882 7.88509 1.17651";
+ rotation = "-0.014983 -0.046774 0.998793 35.5636";
+ scale = "1 1 1";
+ dataBlock = "SignCautionDanger";
+ };
+ new StaticShape() {
+ position = "13.8656 -4.43318 5.8596";
+ rotation = "0 0 -1 14.324";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new Trigger() {
+ position = "-12.1386 16.335 -0.0969801";
+ rotation = "1 0 0 0";
+ scale = "20.1563 9.73608 7.37518";
+ dataBlock = "HelpTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ text = "Beware of mines!";
+ };
+ new ScriptObject() {
+ gemCount = "0";
+ time = "0";
+ powerUp = "0";
+ pad = "1524";
+ bonusTime = "0";
+ penaltyTime = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/beginner/movement.jpg b/data/missions/beginner/movement.jpg
new file mode 100644
index 00000000..cad014d5
Binary files /dev/null and b/data/missions/beginner/movement.jpg differ
diff --git a/data/missions/beginner/movement.mis b/data/missions/beginner/movement.mis
new file mode 100644
index 00000000..e16c7fbf
--- /dev/null
+++ b/data/missions/beginner/movement.mis
@@ -0,0 +1,134 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ type = "Beginner";
+ startHelpText = "Press to roll the marble forward!";
+ name = "Learning to Roll";
+ desc = "A very simple level to help you get used to rolling around. Follow the track around and roll on to the exit pad to finish the level.";
+ level = "1";
+ artist = "Alex Swanson";
+ goldTime = "4750";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0.349971";
+ cloudHeightPer[1] = "0.3";
+ cloudHeightPer[2] = "0.199973";
+ cloudSpeed1 = "0.0005";
+ cloudSpeed2 = "0.001";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.900000 0.900000 0.900000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "0 0 0";
+ fogVolume2 = "0 0 0";
+ fogVolume3 = "0 0 0";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 1 0";
+ windEffectPrecipitation = "1";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -222768174765569860000000000000000000000.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -170698929442160050000000000000000000000.000000";
+ locked = "true";
+ };
+ new Sun() {
+ direction = "0.544508 0.439467 -0.714409";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ position = "0 0 0";
+ locked = "true";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "0.0682294 0.50582 499.353";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "24.0431 8.5256 499.43";
+ rotation = "0 0 1 179.518";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new InteriorInstance() {
+ position = "12.0128 12.1969 499.11";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/training1.dif";
+ showTerrainInside = "0";
+ locked = "true";
+ };
+ new StaticShape(EndSign) {
+ position = "22.4672 8.43532 504.46";
+ rotation = "0 0 1 160.519";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new Trigger(Bounds) {
+ position = "-13.4267 36.2154 473.302";
+ rotation = "1 0 0 0";
+ scale = "50 50 50";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "27.8874 23.868 500.519";
+ rotation = "-0.0993088 0.0943882 0.99057 87.6319";
+ scale = "1 1 1";
+ dataBlock = "SignPlainRight";
+ };
+ new StaticShape() {
+ position = "-0.600503 28.231 500.524";
+ rotation = "0 0 -1 8.02137";
+ scale = "1 1 1";
+ dataBlock = "SignPlainRight";
+ };
+ new Trigger() {
+ position = "10.6099 29.1587 499.001";
+ rotation = "1 0 0 0";
+ scale = "1.80313 10.9996 1";
+ dataBlock = "HelpTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ text = "Press to roll the marble backward!";
+ };
+ new Trigger() {
+ position = "-4.67891 11.1502 499.001";
+ rotation = "1 0 0 0";
+ scale = "9.45734 1 1";
+ dataBlock = "HelpTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ text = "Press to roll the marble to the left!";
+ };
+ new Trigger() {
+ position = "-4.56054 17.8698 498.774";
+ rotation = "1 0 0 0";
+ scale = "9.45734 1 1";
+ dataBlock = "HelpTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ text = "Press to roll the marble to the right!";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/beginner/pitfall.jpg b/data/missions/beginner/pitfall.jpg
new file mode 100644
index 00000000..963d478b
Binary files /dev/null and b/data/missions/beginner/pitfall.jpg differ
diff --git a/data/missions/beginner/pitfall.mis b/data/missions/beginner/pitfall.mis
new file mode 100644
index 00000000..64b5c62e
--- /dev/null
+++ b/data/missions/beginner/pitfall.mis
@@ -0,0 +1,102 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ name = "Pitfalls";
+ desc = "Be careful crossing these bridges.";
+ startHelpText = "Practice your rolling skills by avoiding the gaps in the floor!";
+ type = "Beginner";
+ level = "21";
+ artist = "Alex Swanson";
+ goldTime = "20000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "1000";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.280868 0.579493 -0.76505";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.400000 0.400000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/pitfall.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "-10 -18 0";
+ rotation = "0 0 1 180.091";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "14 -54.5 28";
+ rotation = "0 0 1 180.091";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new Trigger(Bounds) {
+ position = "-67 67 -4";
+ rotation = "1 0 0 0";
+ scale = "134 134 71.7759";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "7.58758 15.8187 29.2478";
+ rotation = "-0.00541011 0.0199983 0.999785 149.731";
+ scale = "1 1 1";
+ dataBlock = "SignCautionCaution";
+ };
+ new StaticShape() {
+ position = "14.431 -54.3611 36.2223";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new StaticShape() {
+ position = "7.79179 -24.2121 13.074";
+ rotation = "0.0397809 0.466883 -0.883424 11.0182";
+ scale = "1 1 1";
+ dataBlock = "SignCautionCaution";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/beginner/platform.jpg b/data/missions/beginner/platform.jpg
new file mode 100644
index 00000000..8f5d1f19
Binary files /dev/null and b/data/missions/beginner/platform.jpg differ
diff --git a/data/missions/beginner/platform.mis b/data/missions/beginner/platform.mis
new file mode 100644
index 00000000..f19d6736
--- /dev/null
+++ b/data/missions/beginner/platform.mis
@@ -0,0 +1,148 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ type = "Beginner";
+ name = "Platform Training";
+ time = "0";
+ desc = "Ride the platform between the towers.";
+ startHelpText = "Ride the moving platform to reach the goal.";
+ level = "5";
+ artist = "Alex Swanson";
+ goldTime = "7000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.430715 0.505317 -0.747756";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/training_platform.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "34 -1.49333e-007 32";
+ rotation = "0 0 -1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "-34 1.75394e-007 32";
+ rotation = "0 0 -1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-9 6.5 31.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "22 6.5 31.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "22 6.5 31.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "6000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9 6.5 31.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9 6.5 31.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/beginner/training_platform.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-41 11 27.9105";
+ rotation = "1 0 0 0";
+ scale = "82 22 27.5192";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "-33.0539 0.927056 40.4222";
+ rotation = "0 0 -1 108.862";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/beginner/platformparty.jpg b/data/missions/beginner/platformparty.jpg
new file mode 100644
index 00000000..30f6c4ee
Binary files /dev/null and b/data/missions/beginner/platformparty.jpg differ
diff --git a/data/missions/beginner/platformparty.mis b/data/missions/beginner/platformparty.mis
new file mode 100644
index 00000000..06bdfec7
--- /dev/null
+++ b/data/missions/beginner/platformparty.mis
@@ -0,0 +1,264 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ name = "Platform Party";
+ desc = "Practice with moving platforms.";
+ startHelpText = "Ride the moving platforms to reach the finish!";
+ type = "Beginner";
+ level = "22";
+ artist = "Alex Swanson";
+ goldTime = "30000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "1500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.441278 0.47601 -0.760716";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/platformparty.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "-10.25 29.75 0";
+ rotation = "0 0 -1 89.3814";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "-3 42 16";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-14.5 12.5 7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "14.5 12.5 7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "14.5 12.5 7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-14.5 12.5 7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-14.5 12.5 7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/beginner/platformparty.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-9.5 1.5 15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9.5 35.5 15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9.5 35.5 15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9.5 1.5 15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9.5 1.5 15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/beginner/platformparty.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "40.5 -0.5 7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "40.5 -48.5 7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "40.5 -48.5 7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "4000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "40.5 -0.5 7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "40.5 -0.5 7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/beginner/platformparty.dif";
+ interiorIndex = "2";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-67 67 -4";
+ rotation = "1 0 0 0";
+ scale = "134.5 134 37";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "-2.32595 42.8627 23.2222";
+ rotation = "0 0 -1 15.4698";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/beginner/powerjump.jpg b/data/missions/beginner/powerjump.jpg
new file mode 100644
index 00000000..8aedfa0b
Binary files /dev/null and b/data/missions/beginner/powerjump.jpg differ
diff --git a/data/missions/beginner/powerjump.mis b/data/missions/beginner/powerjump.mis
new file mode 100644
index 00000000..ad0dcde0
--- /dev/null
+++ b/data/missions/beginner/powerjump.mis
@@ -0,0 +1,131 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ desc = "Use the Super Jump PowerUp to make big jumps and get to the end of the course.";
+ level = "4";
+ startHelpText = "Use the Super Jump PowerUp to get to the finish up above!";
+ type = "Beginner";
+ name = "Learn the Super Jump";
+ artist = "Alex Swanson";
+ goldTime = "5000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0.349971";
+ cloudHeightPer[1] = "0.3";
+ cloudHeightPer[2] = "0.199973";
+ cloudSpeed1 = "0.0005";
+ cloudSpeed2 = "0.001";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "0 0 0";
+ fogVolume2 = "0 0 0";
+ fogVolume3 = "0 0 0";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 1 0";
+ windEffectPrecipitation = "1";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -222768174765569860000000000000000000000.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -170698929442160050000000000000000000000.000000";
+ locked = "true";
+ };
+ new Sun() {
+ direction = "0.512126 0.512126 -0.689532";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ locked = "true";
+ scale = "1 1 1";
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "24.4767 -30 516.1";
+ rotation = "0 0 -1 30.9398";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "5.43293 2.29964 515.665";
+ rotation = "0 0 -1 29.7937";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-73.1933 6.78517 509.256";
+ rotation = "0 0 -1 30.9397";
+ scale = "130.089 130.681 40.6102";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "16.0818 -15.6546 510.789";
+ rotation = "0 0 1 239.106";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/training_jump.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "12.5684 -9.90546 512.385";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ showHelpOnPickup = "1";
+ };
+ new StaticShape() {
+ position = "9.16229 -11.9333 512.665";
+ rotation = "0.097549 -0.2127 -0.972236 50.5082";
+ scale = "1 1 1";
+ dataBlock = "SignPlainUp";
+ };
+ new StaticShape() {
+ position = "7.55424 0.76008 521.084";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new ScriptObject() {
+ bonusTime = "0";
+ time = "0";
+ gemCount = "0";
+ penaltyTime = "0";
+ powerUp = "0";
+ pad = "1585";
+ };
+ new MessageVector(HudMessageVector) {
+ };
+ new ScriptObject() {
+ bonusTime = "0";
+ time = "0";
+ gemCount = "0";
+ penaltyTime = "0";
+ powerUp = "0";
+ pad = "2080";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/beginner/shock.jpg b/data/missions/beginner/shock.jpg
new file mode 100644
index 00000000..dc2fbbb8
Binary files /dev/null and b/data/missions/beginner/shock.jpg differ
diff --git a/data/missions/beginner/shock.mis b/data/missions/beginner/shock.mis
new file mode 100644
index 00000000..dfffcc32
--- /dev/null
+++ b/data/missions/beginner/shock.mis
@@ -0,0 +1,115 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ type = "Beginner";
+ name = "Shock Absorber";
+ startHelpText = "Use the Shock Absorber PowerUp to avoid bouncing off when you land!";
+ desc = "Learn to use the shock absorber to make falling easier.";
+ level = "13";
+ artist = "Alex Swanson";
+ goldTime = "4000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.581654 -0.481653 -0.655506";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/training_shock.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "0 -4 0.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "0 -4 -41";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new Item() {
+ position = "0 0 0.641146";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "ShockAbsorberItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ showHelpOnPickup = "1";
+ };
+ new Trigger(Bounds) {
+ position = "-11.5 27.3165 -46";
+ rotation = "1 0 0 0";
+ scale = "23 38.8165 67";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "0.182871 -3.82329 -34.5778";
+ rotation = "0 0 -1 11.4591";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new ScriptObject() {
+ penaltyTime = "0";
+ time = "0";
+ powerUp = "0";
+ pad = "1492";
+ bonusTime = "0";
+ gemCount = "0";
+ };
+ new ScriptObject() {
+ penaltyTime = "0";
+ time = "0";
+ powerUp = "0";
+ pad = "4298";
+ bonusTime = "0";
+ gemCount = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/beginner/superspeed.jpg b/data/missions/beginner/superspeed.jpg
new file mode 100644
index 00000000..b69041e0
Binary files /dev/null and b/data/missions/beginner/superspeed.jpg differ
diff --git a/data/missions/beginner/superspeed.mis b/data/missions/beginner/superspeed.mis
new file mode 100644
index 00000000..d75c11b1
--- /dev/null
+++ b/data/missions/beginner/superspeed.mis
@@ -0,0 +1,114 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ type = "Beginner";
+ desc = "Use the Super Speed PowerUp to cross the large gap.";
+ name = "Learn the Super Speed";
+ startHelpText = "Use the Super Speed PowerUp to cross the gap!";
+ level = "6";
+ artist = "Alex Swanson";
+ goldTime = "3250";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0.349971";
+ cloudHeightPer[1] = "0.3";
+ cloudHeightPer[2] = "0.199973";
+ cloudSpeed1 = "0.0005";
+ cloudSpeed2 = "0.001";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "0 0 0";
+ fogVolume2 = "0 0 0";
+ fogVolume3 = "0 0 0";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 1 0";
+ windEffectPrecipitation = "1";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -222768174765569860000000000000000000000.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -170698929442160050000000000000000000000.000000";
+ locked = "true";
+ };
+ new Sun() {
+ direction = "0.481726 0.481726 -0.732038";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ scale = "1 1 1";
+ locked = "true";
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "-19.9542 8.86378 493.831";
+ rotation = "0 0 1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "47.7979 7.20358 493.321";
+ rotation = "0 0 1 90.5273";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-28.5529 24.683 492.744";
+ rotation = "1 0 0 0";
+ scale = "113.62 30.2439 41.0434";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "-15.8771 8.78387 492.43";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/training_speed.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "43.761 7.37446 491.793";
+ rotation = "0 0 1 181.237";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/training_speed.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "-8.40422 8.86049 494.105";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ showHelpOnPickup = "1";
+ };
+ new StaticShape() {
+ position = "46.4495 5.97176 505.45";
+ rotation = "0 0 1 79.0682";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/beginner/timetrial.jpg b/data/missions/beginner/timetrial.jpg
new file mode 100644
index 00000000..7c95315d
Binary files /dev/null and b/data/missions/beginner/timetrial.jpg differ
diff --git a/data/missions/beginner/timetrial.mis b/data/missions/beginner/timetrial.mis
new file mode 100644
index 00000000..3e517946
--- /dev/null
+++ b/data/missions/beginner/timetrial.mis
@@ -0,0 +1,124 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ type = "Beginner";
+ time = "5000";
+ goldTime = "3000";
+ name = "Time Trial";
+ level = "10";
+ startHelpText = "Grab the Time Travel Bonus on your way to the finish to qualify!";
+ desc = "Get to the end of the mission within 5 seconds. You\'ll have to get the Time Travel Bonus in order to qualify!";
+ artist = "Alex Swanson";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0.349971";
+ cloudHeightPer[1] = "0.3";
+ cloudHeightPer[2] = "0.199973";
+ cloudSpeed1 = "0.0005";
+ cloudSpeed2 = "0.001";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "0 0 0";
+ fogVolume2 = "0 0 0";
+ fogVolume3 = "0 0 0";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 1 0";
+ windEffectPrecipitation = "1";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -222768174765569860000000000000000000000.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -170698929442160050000000000000000000000.000000";
+ locked = "true";
+ };
+ new Sun() {
+ direction = "0.481726 0.481726 -0.732038";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ position = "0 0 0";
+ locked = "true";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "-0.126423 -50.9603 488.817";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "1.28351 77.0685 488.836";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-8.28287 82.2954 488.288";
+ rotation = "1 0 0 0";
+ scale = "20 137.995 20";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "-0.000219345 -46.8518 487.926";
+ rotation = "0 0 -1 89.3814";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/training_time.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "0.306463 -17.0185 489.425";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ showHelpOnPickup = "1";
+ };
+ new ScriptObject() {
+ gemCount = "0";
+ time = "0";
+ bonusTime = "0";
+ pad = "2151";
+ penaltyTime = "0";
+ powerUp = "0";
+ };
+ new StaticShape() {
+ position = "3.34232 76.6273 496.658";
+ rotation = "0 0 -1 12.605";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new ScriptObject() {
+ gemCount = "0";
+ time = "0";
+ bonusTime = "0";
+ pad = "2204";
+ penaltyTime = "0";
+ powerUp = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/beginner/tornado.jpg b/data/missions/beginner/tornado.jpg
new file mode 100644
index 00000000..8b9031a1
Binary files /dev/null and b/data/missions/beginner/tornado.jpg differ
diff --git a/data/missions/beginner/tornado.mis b/data/missions/beginner/tornado.mis
new file mode 100644
index 00000000..5ce89d09
--- /dev/null
+++ b/data/missions/beginner/tornado.mis
@@ -0,0 +1,159 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ name = "Tornado Bowl";
+ desc = "Watch out for the tornado\'s pull!";
+ type = "Beginner";
+ startHelpText = "Collect the gems, but beware the pull of the tornado!";
+ level = "20";
+ artist = "Alex Swanson";
+ goldTime = "7000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 7.47605e-027 1.69387e+038";
+ fogVolume2 = "-1 -1.17676e-038 0.0383887";
+ fogVolume3 = "-1 2.75609e+038 1.76723e-012";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -14848524993944557000000000000000.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 99392957236346094000.000000";
+ };
+ new Sun() {
+ direction = "0.59124 0.265566 -0.761518";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/training_tornado.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(EndPoint) {
+ position = "30.875 0.0625007 -1.4375";
+ rotation = "0 0 1 89.9543";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new StaticShape(StartPoint) {
+ position = "-31.625 0.0625 6.5625";
+ rotation = "0 0 1 89.9543";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape() {
+ position = "-3.125 0.0625 -5.4375";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "Tornado";
+ };
+ new Item() {
+ position = "-9.125 7.0625 -5.4375";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "2.875 7.0625 -5.4375";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "2.875 -6.9375 -5.4375";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-9.125 -6.9375 -5.4375";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Trigger(Bounds) {
+ position = "-38.625 27.5625 -9.4375";
+ rotation = "1 0 0 0";
+ scale = "78.5477 55 78.2749";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "32.1242 -0.321308 5.81693";
+ rotation = "0 0 1 71.0468";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new Item() {
+ position = "-18.1155 15.3986 1.6437";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "21.1137 -0.936647 7.63539";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-20.9333 -14.4542 3.70674";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/beginner/trapdoor.jpg b/data/missions/beginner/trapdoor.jpg
new file mode 100644
index 00000000..9ef931ae
Binary files /dev/null and b/data/missions/beginner/trapdoor.jpg differ
diff --git a/data/missions/beginner/trapdoor.mis b/data/missions/beginner/trapdoor.mis
new file mode 100644
index 00000000..04aa84d1
--- /dev/null
+++ b/data/missions/beginner/trapdoor.mis
@@ -0,0 +1,386 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ type = "Beginner";
+ startHelpText = "Don\'t sit still on the trapdoors, or you\'ll fall!";
+ level = "19";
+ time = "0";
+ artist = "Alex Swanson";
+ name = "Trapdoors!";
+ desc = "Don\'t fall through!";
+ goldTime = "3000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1 1";
+ fogVolume2 = "-1 -1 1";
+ fogVolume3 = "-1 -1 0";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1.000000";
+ };
+ new Sun() {
+ direction = "0.465861 0.62724 -0.624134";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/training_trapdoor.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "20 -1.89612e-007 32";
+ rotation = "0 0 -1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "-16 3.20029e-007 32";
+ rotation = "0 0 -1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new StaticShape() {
+ position = "-3 7 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "-3 5 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "-3 3 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "-3 1 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "-3 -1 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "-3 -3 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "-3 -5 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "-3 -7 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "7 7 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "7 5 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "7 3 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "7 1 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "7 -1 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "7 -3 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "7 -5 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "5 7 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "3 5 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "1 7 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "-1 5 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "-1 1 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "-1 -3 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "-1 -7 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "1 3 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "1 -1 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "1 -5 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "3 1 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "3 -3 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "3 -7 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "5 3 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "5 -1 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "5 -5 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new StaticShape() {
+ position = "7 -7 32";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TrapDoor";
+ resetTime = "Default";
+ timeout = "200";
+ open = "0";
+ };
+ new Trigger(Bounds) {
+ position = "-23 11 26.9354";
+ rotation = "1 0 0 0";
+ scale = "50 22 22.0648";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ pad = "1526";
+ penaltyTime = "0";
+ bonusTime = "0";
+ time = "0";
+ gemCount = "0";
+ };
+ new StaticShape() {
+ position = "-15.5805 0.400727 39.02";
+ rotation = "0 0 -1 68.7549";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/beginner/windingroad.jpg b/data/missions/beginner/windingroad.jpg
new file mode 100644
index 00000000..49e802a8
Binary files /dev/null and b/data/missions/beginner/windingroad.jpg differ
diff --git a/data/missions/beginner/windingroad.mis b/data/missions/beginner/windingroad.mis
new file mode 100644
index 00000000..a687a862
--- /dev/null
+++ b/data/missions/beginner/windingroad.mis
@@ -0,0 +1,142 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ name = "Winding Road";
+ desc = "Follow the path and fly to the goal.";
+ startHelpText = "Follow the winding road, using the PowerUps to cross the gaps!";
+ type = "Beginner";
+ level = "23";
+ artist = "Alex Swanson";
+ goldTime = "22000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "1000";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.614021 -0.433884 -0.659336";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/windingroad.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "-12 35.5 0";
+ rotation = "0 0 -1 89.3814";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "-36 -36.5 24";
+ rotation = "0 0 -1 89.3814";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new Item() {
+ position = "12 -36.5 36";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "HelicopterItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ showHelpOnPickup = "1";
+ };
+ new Item() {
+ position = "0 35.5 16.2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ showHelpOnPickup = "1";
+ };
+ new Trigger(Bounds) {
+ position = "-67 67 -4";
+ rotation = "1 0 0 0";
+ scale = "134 134 129.391";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new Trigger() {
+ position = "6.29086 -30.7855 35.492";
+ rotation = "1 0 0 0";
+ scale = "13.0232 10.6006 3.1428";
+ dataBlock = "HelpTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ text = "Use the Gyrocopter PowerUp to float down to the finish.";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "7106";
+ bonusTime = "0";
+ penaltyTime = "0";
+ };
+ new Trigger() {
+ position = "-5.90178 41.5194 15.6889";
+ rotation = "1 0 0 0";
+ scale = "11.6749 11.9692 3.1428";
+ dataBlock = "HelpTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ text = "Use the SuperJump to leap across the gap.";
+ };
+ new StaticShape() {
+ position = "-37.6477 -36.6952 34.2222";
+ rotation = "0 0 1 225.172";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "6108";
+ bonusTime = "0";
+ penaltyTime = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/custom/CheeseballxmRGM.mis b/data/missions/custom/CheeseballxmRGM.mis
new file mode 100644
index 00000000..ec852d25
--- /dev/null
+++ b/data/missions/custom/CheeseballxmRGM.mis
@@ -0,0 +1,341 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ type = "Custom";
+ time = "0";
+ name = "Cheeseballxm's RGM";
+ desc = "do nothing.";
+ startHelpText = "do nothing";
+ goldTime = "20000";
+ artist = "Cheeseballxm";
+ level = "9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0.349971";
+ cloudHeightPer[1] = "0.3";
+ cloudHeightPer[2] = "0.199973";
+ cloudSpeed1 = "0.0005";
+ cloudSpeed2 = "0.001";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "0 0 0";
+ fogVolume2 = "0 0 0";
+ fogVolume3 = "0 0 0";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 1 0";
+ windEffectPrecipitation = "1";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -222768174765569861149077900047473967104.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -170698929442160049016675429178998259712.000000";
+ locked = "true";
+ };
+ new Sun() {
+ direction = "0.488992 0.488992 -0.722339";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.300000 1.000000";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ locked = "true";
+ position = "0 0 0";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "0 0 469.2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "-7.6 -14.2 372.4";
+ rotation = "1 0 0 0";
+ scale = "2 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new StaticShape() {
+ position = "0.0117704 0.485512 470.206";
+ rotation = "-1 0 0 90";
+ scale = "1 1 1";
+ dataBlock = "SmallDuctFan";
+ };
+ new InteriorInstance() {
+ position = "0 0 469.4";
+ rotation = "1 0 0 0";
+ scale = "1 1 0.01";
+ interiorFile = "~/data/interiors/intermediate/shockdrop.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape() {
+ position = "3.77131 1.7896 499.223";
+ rotation = "0 0 1 77.9222";
+ scale = "1 1 1";
+ dataBlock = "SignPlainDown";
+ };
+ new StaticShape() {
+ position = "-3.69219 -2.38053 499.223";
+ rotation = "0 0 -1 110.581";
+ scale = "1 1 1";
+ dataBlock = "SignPlainDown";
+ };
+ new StaticShape() {
+ position = "0.0358018 -0.60514 368.454";
+ rotation = "0 0 1 65.8901";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new InteriorInstance() {
+ position = "2.05974 -14.1125 467.722";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/tube_space.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "2.00443 -26.994 465.689";
+ rotation = "1 0 0 130";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/tube_space.dif";
+ showTerrainInside = "0";
+ };
+ new ScriptObject() {
+ pad = "4464";
+ bonusTime = "0";
+ gemCount = "0";
+ time = "0";
+ penaltyTime = "0";
+ powerUp = "0";
+ };
+ new StaticShape() {
+ position = "-0.079323 -31.0868 455.217";
+ rotation = "1 0 0 150";
+ scale = "1 2 1.5";
+ dataBlock = "TriangleBumper";
+ };
+ new InteriorInstance() {
+ position = "-0.0826001 -61.7717 450.773";
+ rotation = "-1 0 0 105";
+ scale = "0.5 1 0.7";
+ interiorFile = "~/data/interiors/tubefriction.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "0.291167 -33.4517 455.788";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0.0494782 -55.5934 448.631";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new InteriorInstance() {
+ position = "-2.41491 -67.7896 438.989";
+ rotation = "1 0 0 0";
+ scale = "1 2 1";
+ interiorFile = "~/data/interiors/tubefriction.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-4.56541 -66.9978 431.279";
+ rotation = "1 0 0 30";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/tube_grass.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-2.2001 -72.6896 435.949";
+ rotation = "1 0 0 0";
+ scale = "1 1 10";
+ interiorFile = "~/data/interiors/Tube_cution.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-4.27172 -62.5625 431.039";
+ rotation = "1 0 0 0";
+ scale = "0.5 2 1";
+ interiorFile = "~/data/interiors/tubefriction.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-19.0007 -34.2774 421.147";
+ rotation = "1 0 0 30";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/tube_lintersect.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-4.62949 -54.0981 426.576";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/tube_mud.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-9.45468 -27.8821 412.226";
+ rotation = "1 0 0 170";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/trapdoor.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "-6.26079 -24.1659 413.198";
+ rotation = "1 0 0 0";
+ scale = "10 10 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ pad = "4613";
+ bonusTime = "0";
+ gemCount = "0";
+ time = "0";
+ penaltyTime = "0";
+ powerUp = "0";
+ };
+ new InteriorInstance() {
+ position = "-10.6268 -21.0938 378.418";
+ rotation = "1 0 0 15";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/trapdoor.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-10.6287 -16.777 375.26";
+ rotation = "1 0 0 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/trapdoor.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-7.33496 -28.4319 396.808";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/Straw_long.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-10.6246 -18.3342 378.56";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/trapdoor.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-10.605 -13.8747 372.132";
+ rotation = "1 0 0 30";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/trapdoor.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "-7.50898 -28.42 383.817";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "ShockAbsorberItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new InteriorInstance() {
+ position = "-10.6738 -24.1293 378.426";
+ rotation = "1 0 0 30";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/trapdoor.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-14.0677 -23.7199 412.463";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/trapdoor.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-9.35532 -21.6009 413.575";
+ rotation = "1 0 0 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/trapdoor.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-6.3417 -21.0716 402.69";
+ rotation = "1 0 0 0";
+ scale = "1 2 1";
+ interiorFile = "~/data/interiors/tubefriction.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-6.90984 -24.7902 412.74";
+ rotation = "1 0 0 9.99997";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/trapdoor.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-3.96275 -21.2029 422.163";
+ rotation = "1 0 0 0";
+ scale = "0.01 1 20";
+ interiorFile = "~/data/interiors/trapdoor.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-9.4353 -21.5572 422.113";
+ rotation = "1 0 0 0";
+ scale = "0.01 1 20";
+ interiorFile = "~/data/interiors/trapdoor.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape() {
+ position = "-10.2869 -31.919 413.104";
+ rotation = "1 0 0 0";
+ scale = "0.1 0.1 0.1";
+ dataBlock = "Tornado";
+ };
+ new InteriorInstance() {
+ position = "-4.9513 -16.7454 383.463";
+ rotation = "1 0 0 0";
+ scale = "0.1 2 15";
+ interiorFile = "~/data/interiors/trapdoor.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-11.2638 -16.5234 383.593";
+ rotation = "1 0 0 0";
+ scale = "0.1 2 15";
+ interiorFile = "~/data/interiors/trapdoor.dif";
+ showTerrainInside = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
\ No newline at end of file
diff --git a/data/missions/custom/CheeseballxmRGM.png b/data/missions/custom/CheeseballxmRGM.png
new file mode 100644
index 00000000..21173cd7
Binary files /dev/null and b/data/missions/custom/CheeseballxmRGM.png differ
diff --git a/data/missions/custom/RGM.mis b/data/missions/custom/RGM.mis
new file mode 100644
index 00000000..f0f580f3
--- /dev/null
+++ b/data/missions/custom/RGM.mis
@@ -0,0 +1,516 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ startHelpText = "If you receive any powerups, activate them right away!";
+ level = "66";
+ type = "Custom";
+ goldTime = "70000";
+ name = "Andrew\'s RGM";
+ artist = "Andrew Sears";
+ desc = "Don\'t touch any controls!";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0.349971";
+ cloudHeightPer[1] = "0.3";
+ cloudHeightPer[2] = "0.199973";
+ cloudSpeed1 = "0.0005";
+ cloudSpeed2 = "0.001";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.900000 0.900000 0.900000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "0 0 0";
+ fogVolume2 = "0 0 0";
+ fogVolume3 = "0 0 0";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 1 0";
+ windEffectPrecipitation = "1";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -222768174765569861149077900047473967104.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -170698929442160049016675429178998259712.000000";
+ locked = "true";
+ };
+ new Sun() {
+ direction = "0.544508 0.439467 -0.714409";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ locked = "true";
+ position = "0 0 0";
+ };
+ new Trigger(IBT) {
+ position = "110.521 -222.833 429.017";
+ rotation = "1 0 0 0";
+ scale = "400 250 500";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "329.414 -394.246 633.307";
+ rotation = "1 0 0 45";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/backagain.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "329.455 -437.101 677.547";
+ rotation = "1 0 0 45";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape() {
+ position = "329.383 -361.126 601.74";
+ rotation = "1 0 0 0";
+ scale = "4 4 2";
+ dataBlock = "RoundBumper";
+ };
+ new InteriorInstance() {
+ position = "323.415 -263.632 586.783";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/little_slope.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "327.526 -252.414 587.162";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/Wall2x2.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "327.508 -256.788 590.903";
+ rotation = "1 0 0 0";
+ scale = "2 2 2";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new InteriorInstance() {
+ position = "333.255 -305.827 567.559";
+ rotation = "0 1 0 15";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/smallsquare.dif";
+ showTerrainInside = "0";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ pad = "3687";
+ bonusTime = "0";
+ gemCount = "0";
+ time = "0";
+ penaltyTime = "0";
+ };
+ new InteriorInstance() {
+ position = "286.413 -307.539 563.273";
+ rotation = "0 1 0 4.99997";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/parts/halftubes/halftube_long.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "263.141 -307.623 554.517";
+ rotation = "0 1 0 20";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/parts/halftubes/halftube_long.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "297.86 -307.66 561.894";
+ rotation = "1 0 0 0";
+ scale = "2 2 2";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ pad = "4534";
+ bonusTime = "0";
+ gemCount = "0";
+ time = "0";
+ penaltyTime = "0";
+ };
+ new InteriorInstance() {
+ position = "258.974 -304.517 548.632";
+ rotation = "0 1 0 35";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/trapdoor.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "255.629 -307.793 548.632";
+ rotation = "1 0 0 35";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/trapdoor.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "253.422 -304.509 552.2";
+ rotation = "0 -1 0 35";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/trapdoor.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "255.663 -302.281 552.2";
+ rotation = "-1 0 0 35";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/trapdoor.dif";
+ showTerrainInside = "0";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ pad = "5349";
+ bonusTime = "0";
+ gemCount = "0";
+ time = "0";
+ penaltyTime = "0";
+ };
+ new Item() {
+ position = "259.063 -307.587 534.928";
+ rotation = "1 0 0 0";
+ scale = "2 2 2";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "258.506 -307.632 510.024";
+ rotation = "0 -1 0 90";
+ scale = "3 3 3";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "270.007 -307.632 476.38";
+ rotation = "1 0 0 0";
+ scale = "4 4 4";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new InteriorInstance() {
+ position = "331.139 -308.045 471.489";
+ rotation = "0 1 0 20";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/training_time.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "372.208 -308.119 485.62";
+ rotation = "1 0 0 180";
+ scale = "2 2 2";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "450.487 -308.228 520.378";
+ rotation = "1 0 0 180";
+ scale = "3 3 3";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new InteriorInstance() {
+ position = "460.195 -308.293 511.871";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/Wall2x2.dif";
+ showTerrainInside = "0";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ pad = "9569";
+ bonusTime = "0";
+ gemCount = "0";
+ time = "0";
+ penaltyTime = "0";
+ };
+ new Item() {
+ position = "400.699 -307.962 497.889";
+ rotation = "1 0 0 0";
+ scale = "2 2 2";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ pad = "5607";
+ bonusTime = "0";
+ gemCount = "0";
+ time = "0";
+ penaltyTime = "0";
+ };
+ new StaticShape() {
+ position = "321.856 -307.67 468.965";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "Tornado";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ pad = "6688";
+ bonusTime = "0";
+ gemCount = "0";
+ time = "0";
+ penaltyTime = "0";
+ };
+ new StaticShape() {
+ position = "311.156 -307.67 472.027";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "Tornado";
+ };
+ new StaticShape() {
+ position = "301.228 -307.67 474.074";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "Tornado";
+ };
+ new Item() {
+ position = "199.857 -307.535 520.946";
+ rotation = "1 0 0 0";
+ scale = "4 4 4";
+ dataBlock = "ShockAbsorberItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new InteriorInstance() {
+ position = "182.598 -320.328 558.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/plat_slanted.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "180.234 -343.7 564.51";
+ rotation = "1 0 0 0";
+ scale = "1 5 1";
+ interiorFile = "~/data/interiors/smallplatform.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "180.15 -355.992 596.441";
+ rotation = "1 0 0 0";
+ scale = "0.05 0.05 1";
+ interiorFile = "~/data/interiors/freefall0.dif";
+ showTerrainInside = "0";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ pad = "3601";
+ bonusTime = "0";
+ gemCount = "0";
+ time = "0";
+ penaltyTime = "0";
+ };
+ new InteriorInstance() {
+ position = "180.219 -327.162 562.51";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/plat_slanted.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "185.355 -306.532 550.519";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/plat_slanted.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "183.84 -313.399 554.501";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/plat_slanted.dif";
+ showTerrainInside = "0";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ pad = "2866";
+ bonusTime = "0";
+ gemCount = "0";
+ time = "0";
+ penaltyTime = "0";
+ };
+ new Item() {
+ position = "185.11 -307.928 550.625";
+ rotation = "1 0 0 180";
+ scale = "3 3 3";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ pad = "4059";
+ bonusTime = "0";
+ gemCount = "0";
+ time = "0";
+ penaltyTime = "0";
+ };
+ new InteriorInstance() {
+ position = "185.911 -337.258 552.435";
+ rotation = "0 0 -1 70";
+ scale = "1 1 3";
+ interiorFile = "~/data/interiors/8trim.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "180.146 -356.055 629.437";
+ rotation = "1 0 0 180";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new InteriorInstance() {
+ position = "179.898 -352.295 552.435";
+ rotation = "0 0 1 70";
+ scale = "1 1 3";
+ interiorFile = "~/data/interiors/8trim.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "177.714 -355.881 552.435";
+ rotation = "0 0 1 90";
+ scale = "1 1 3";
+ interiorFile = "~/data/interiors/8trim.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "178.623 -355.879 552.435";
+ rotation = "0 0 1 90";
+ scale = "1 1 3";
+ interiorFile = "~/data/interiors/8trim.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "180.065 -356.033 654.747";
+ rotation = "0 1 0 60";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/smallplatform.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "231.697 -356.033 632.898";
+ rotation = "1 0 0 0";
+ scale = "2 2 2";
+ interiorFile = "~/data/interiors/smallplatform.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "180.585 -355.766 653.585";
+ rotation = "1 0 0 0";
+ scale = "2 2 2";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ pad = "9559";
+ bonusTime = "0";
+ gemCount = "0";
+ time = "0";
+ penaltyTime = "0";
+ };
+ new Item() {
+ position = "204.228 -355.856 657.47";
+ rotation = "1 0 0 0";
+ scale = "3 3 3";
+ dataBlock = "SuperBounceItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new InteriorInstance() {
+ position = "249.75 -356.275 643.529";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/platform_circle.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "273.721 -355.028 641.139";
+ rotation = "0 -1 0 9.99997";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/platform_circle.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "279.549 -355.011 640.24";
+ rotation = "1 0 0 0";
+ scale = "4 4 4";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ pad = "12376";
+ bonusTime = "0";
+ gemCount = "0";
+ time = "0";
+ penaltyTime = "0";
+ };
+ new StaticShape(EndPoint) {
+ position = "288.351 -354.233 606.804";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new InteriorInstance() {
+ position = "293.731 -356.785 598.765";
+ rotation = "1 0 0 0";
+ scale = "2 2 20";
+ interiorFile = "~/data/interiors/castle_crate.dif";
+ showTerrainInside = "0";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ pad = "1782";
+ bonusTime = "0";
+ time = "0";
+ gemCount = "0";
+ penaltyTime = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Shell.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
\ No newline at end of file
diff --git a/data/missions/custom/RGM.png b/data/missions/custom/RGM.png
new file mode 100644
index 00000000..08a8cd85
Binary files /dev/null and b/data/missions/custom/RGM.png differ
diff --git a/data/missions/custom/_ b/data/missions/custom/_
new file mode 100644
index 00000000..e69de29b
diff --git a/data/missions/intermediate/forkinroad.jpg b/data/missions/intermediate/forkinroad.jpg
new file mode 100644
index 00000000..140e2650
Binary files /dev/null and b/data/missions/intermediate/forkinroad.jpg differ
diff --git a/data/missions/intermediate/forkinroad.mis b/data/missions/intermediate/forkinroad.mis
new file mode 100644
index 00000000..c9b9462f
--- /dev/null
+++ b/data/missions/intermediate/forkinroad.mis
@@ -0,0 +1,90 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ type = "intermediate";
+ time = "0";
+ name = "Fork in the Road";
+ startHelpText = "Find the quickest path through the maze of roads!";
+ desc = "When you come to a fork in the road - take it.";
+ level = "7";
+ artist = "Kevin Ryan";
+ goldTime = 6500;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.442343 0.475025 -0.760713";
+ color = "1.400000 1.200000 0.500000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/forkinroad.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(EndPoint) {
+ position = "-3 70 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new StaticShape(StartPoint) {
+ position = "0 -13 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new Trigger(Bounds) {
+ position = "-73.5 219.5 -13.5";
+ rotation = "1 0 0 0";
+ scale = "157 237.5 39.5";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "-2.17349 70.3162 11.187";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/intermediate/forkinroad2.jpg b/data/missions/intermediate/forkinroad2.jpg
new file mode 100644
index 00000000..4072a661
Binary files /dev/null and b/data/missions/intermediate/forkinroad2.jpg differ
diff --git a/data/missions/intermediate/forkinroad2.mis b/data/missions/intermediate/forkinroad2.mis
new file mode 100644
index 00000000..f09a6596
--- /dev/null
+++ b/data/missions/intermediate/forkinroad2.mis
@@ -0,0 +1,189 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ artist = "Kevin Ryan";
+ name = "Spork in the Road";
+ time = "0";
+ type = "intermediate";
+ desc = "Find the gems in the maze of roads!";
+ startHelpText = "See how quickly you can find all the gems!";
+ level = "19";
+ goldTime = "36000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.442343 0.475025 -0.760713";
+ color = "1.400000 1.200000 0.500000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/forkinroad.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(EndPoint) {
+ position = "-3 70 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new StaticShape(StartPoint) {
+ position = "0 -13 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new Trigger(Bounds) {
+ position = "-73.5 219.5 -13.5";
+ rotation = "1 0 0 0";
+ scale = "157 237.5 39.5";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "-2.17349 70.3162 11.187";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+ new Item() {
+ position = "77.2541 62.1797 -2.96452";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "3.74417 212.701 -9.95359";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-3.45915 213.366 -9.76388";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-64.9793 49.7837 -1.95647";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-14.2103 37.1368 7.87992";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "HelicopterItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "21.6385 -5.60429 2.02746";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "13.9434 35.1484 -3.70308";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-22.2736 36.9058 6.53238";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-30.6113 41.3913 4.49585";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-38.2707 45.2539 2.51482";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "58.0617 52.037 5.49508";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/intermediate/gauntlet.jpg b/data/missions/intermediate/gauntlet.jpg
new file mode 100644
index 00000000..d8090447
Binary files /dev/null and b/data/missions/intermediate/gauntlet.jpg differ
diff --git a/data/missions/intermediate/gauntlet.mis b/data/missions/intermediate/gauntlet.mis
new file mode 100644
index 00000000..3dbe79c3
--- /dev/null
+++ b/data/missions/intermediate/gauntlet.mis
@@ -0,0 +1,400 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ type = "Intermediate";
+ time = "60000";
+ name = "Gauntlet";
+ level = "16";
+ desc = "Can you make it up the tower on time?";
+ startHelpText = "Race to the finish!";
+ artist = "Alex Swanson";
+ goldTime = "35000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1 5.3766e+008";
+ fogVolume2 = "-1 -1 939076";
+ fogVolume3 = "-1 -1 0.000699252";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1.000000";
+ };
+ new Sun() {
+ direction = "-0.577735 -0.302742 -0.758004";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/gauntlet.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "-98 34 0";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "86 -62 41.9875";
+ rotation = "0 0 1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ fixedscale = "1";
+ };
+ new Item() {
+ position = "78 -62 12.1999";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "86 -62 20.2055";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "78 -62 28.2012";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "70 -62 36.2018";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-104 34 0.196215";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "96.5 -12 14";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "73.5 -12 14";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "96.5 -12 14";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/gauntlet.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "96.5 -16 14";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "73.5 -16 14";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "96.5 -16 14";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/gauntlet.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ initialPosition = "2000";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "96.5 -20 14";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "73.5 -20 14";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "96.5 -20 14";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/gauntlet.dif";
+ interiorIndex = "2";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ initialPosition = "1000";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "96.5 -28 14";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "73.5 -28 14";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "96.5 -28 14";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/gauntlet.dif";
+ interiorIndex = "3";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ initialPosition = "2000";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "96.5 -32 14";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "73.5 -32 14";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "96.5 -32 14";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/gauntlet.dif";
+ interiorIndex = "4";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "96.5 -36 14";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "73.5 -36 14";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "96.5 -36 14";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/gauntlet.dif";
+ interiorIndex = "5";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-2";
+ initialPosition = "1000";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-109.5 124 -6.31252";
+ rotation = "1 0 0 0";
+ scale = "220.5 247 130.313";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new ScriptObject() {
+ gemCount = "0";
+ time = "0";
+ bonusTime = "0";
+ pad = "1534";
+ penaltyTime = "0";
+ powerUp = "0";
+ };
+ new StaticShape() {
+ position = "86.0568 -61.5074 49.9071";
+ rotation = "0 0 -1 42.3989";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/intermediate/goforgreen.jpg b/data/missions/intermediate/goforgreen.jpg
new file mode 100644
index 00000000..7c5ebcaf
Binary files /dev/null and b/data/missions/intermediate/goforgreen.jpg differ
diff --git a/data/missions/intermediate/goforgreen.mis b/data/missions/intermediate/goforgreen.mis
new file mode 100644
index 00000000..9e8db220
--- /dev/null
+++ b/data/missions/intermediate/goforgreen.mis
@@ -0,0 +1,120 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ type = "intermediate";
+ time = "0";
+ name = "Go for the Green";
+ startHelpText = "Go for the center hole to get the best time!";
+ desc = "To get the best time go through the center green opening.";
+ level = "6";
+ artist = "Kevin Ryan";
+ goldTime = 5000;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.442343 0.475025 -0.760713";
+ color = "1.400000 1.200000 0.500000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/goforgreen.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(EndPoint) {
+ position = "0 0 -29.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new StaticShape(StartPoint) {
+ position = "0 -25.5 6.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new Trigger(Bounds) {
+ position = "-43.5 16 -33";
+ rotation = "1 0 0 0";
+ scale = "66.5 48 56.5";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "2.95639 -0.866623 -23.7662";
+ rotation = "0 0 1 87.0896";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new StaticShape() {
+ position = "-31.043 12.03 -2.03027";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignPlainLeft";
+ };
+ new StaticShape() {
+ position = "7.51699 9.85643 -6.60687";
+ rotation = "0 0 1 85.9437";
+ scale = "1 1 1";
+ dataBlock = "SignPlainRight";
+ };
+ new StaticShape() {
+ position = "8.25655 8.2822 -10.2454";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignPlainLeft";
+ };
+ new StaticShape() {
+ position = "-2.3411 -2.25809 -15.5212";
+ rotation = "0 0 1 177.799";
+ scale = "1 1 1";
+ dataBlock = "SignPlainLeft";
+ };
+ new StaticShape() {
+ position = "1.25546 -2.0156 -20.1689";
+ rotation = "0 0 1 177.799";
+ scale = "1 1 1";
+ dataBlock = "SignPlainRight";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/intermediate/greatdivide.jpg b/data/missions/intermediate/greatdivide.jpg
new file mode 100644
index 00000000..000a1571
Binary files /dev/null and b/data/missions/intermediate/greatdivide.jpg differ
diff --git a/data/missions/intermediate/greatdivide.mis b/data/missions/intermediate/greatdivide.mis
new file mode 100644
index 00000000..1065080c
--- /dev/null
+++ b/data/missions/intermediate/greatdivide.mis
@@ -0,0 +1,703 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ name = "Great Divide";
+ desc = "Climb up and over the mountain!";
+ startHelpText = "Climb over the mountain!";
+ type = "Intermediate";
+ level = "20";
+ artist = "Alex Swanson";
+ goldTime = "85000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "1000";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -2.3288e+038 -2.3288e+038";
+ fogVolume2 = "-1 -2.26208e+038 -2.24874e+038";
+ fogVolume3 = "-1 -2.2087e+038 -2.2087e+038";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -228882226010952240000000000000000000000.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -219536010535951140000000000000000000000.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -219536010535951140000000000000000000000.000000";
+ };
+ new Sun() {
+ direction = "0.512126 0.512126 -0.689532";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/greatdivide.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(EndPoint) {
+ position = "272 1 49";
+ rotation = "0 0 1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ fixedscale = "1";
+ };
+ new StaticShape(StartPoint) {
+ position = "-128 1 0";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new Item() {
+ position = "6 1.5 160";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "HelicopterItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "138.5 1.5 97";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "HelicopterItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-48 -3 7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-48 -3 7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-48 -3 26.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-48 -3 26.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-48 -3 7.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/greatdivide.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-40 5 95.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-40 5 95.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-40 5 114.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-40 5 114.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-40 5 95.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/greatdivide.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-40 -3 114.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-40 -3 114.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-40 -3 133.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-40 -3 133.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-40 -3 114.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/greatdivide.dif";
+ interiorIndex = "2";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "6000";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-48 -3 45.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-48 -3 45.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-48 -3 64.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-48 -3 64.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-48 -3 45.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/greatdivide.dif";
+ interiorIndex = "3";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-40 -3 26.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-40 -3 26.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-40 -3 45.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-40 -3 45.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-40 -3 26.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/greatdivide.dif";
+ interiorIndex = "4";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "6000";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-40 -3 64.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-40 -3 64.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-40 -3 76.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-40 -3 76.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-40 -3 64.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/greatdivide.dif";
+ interiorIndex = "5";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "6000";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-48 -3 76.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-48 -3 76.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-48 -3 87.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-48 -3 87.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-48 -3 76.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/greatdivide.dif";
+ interiorIndex = "6";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-40 5 133.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-40 5 133.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-40 5 147";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-40 5 147";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-40 5 133.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/greatdivide.dif";
+ interiorIndex = "7";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-40 -3 147";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-40 -3 147";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-40 -3 159.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-40 -3 159.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "5000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-40 -3 147";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/greatdivide.dif";
+ interiorIndex = "8";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "6000";
+ initialTargetPosition = "-1";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-139.5 49.4984 -1.92329";
+ rotation = "1 0 0 0";
+ scale = "429 97.4731 238.324";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new Item() {
+ position = "-31.7574 6.64859 46.6027";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "272.591 0.906958 57.6223";
+ rotation = "0 0 1 64.7442";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new StaticShape() {
+ position = "-16.2969 -1.19522 161.207";
+ rotation = "-0.0349677 -0.0379136 0.998669 85.4468";
+ scale = "1 1 1";
+ dataBlock = "SignCautionDanger";
+ };
+ new Item() {
+ position = "-21.9881 12.5777 160.555";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-1.75703 -8.87491 160.519";
+ rotation = "0 0 1 1.14602";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-31.6091 -4.6192 46.5185";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-31.7005 1.04485 46.5264";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "126.883 0.481058 105.562";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "1623";
+ bonusTime = "0";
+ penaltyTime = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/intermediate/halfpipe.jpg b/data/missions/intermediate/halfpipe.jpg
new file mode 100644
index 00000000..e7b5911d
Binary files /dev/null and b/data/missions/intermediate/halfpipe.jpg differ
diff --git a/data/missions/intermediate/halfpipe.mis b/data/missions/intermediate/halfpipe.mis
new file mode 100644
index 00000000..0776eefe
--- /dev/null
+++ b/data/missions/intermediate/halfpipe.mis
@@ -0,0 +1,199 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ type = "Intermediate";
+ name = "Half-Pipe";
+ level = "15";
+ desc = "Can you master this half-pipe?";
+ startHelpText = "Use the powerups to catch the gems in the air!";
+ artist = "Alex Swanson";
+ goldTime = "15000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.597177 0 -0.80211";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "-15.8 -8.6 6.4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "16.4 8.8 6.4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-33.4041 31.3353 -11.6336";
+ rotation = "1 0 0 0";
+ scale = "75.0503 81.3078 87.4617";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/wind_tunnel.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "10.8894 -1.55373 1.45284";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-0.19238 0.18706 -6.02964";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ bonusTime = "0";
+ pad = "1443";
+ powerUp = "0";
+ penaltyTime = "0";
+ };
+ new Item() {
+ position = "11.7255 -6.04924 7.37357";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "11.7547 0.39123 8.44352";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-11.6563 3.37906 8.93342";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-11.7222 5.06368 8.56644";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0.0562673 -5.73561 -5.74297";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-0.337035 7.89889 -5.84118";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "17.4573 8.58144 14.12";
+ rotation = "0 0 1 29.7938";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ bonusTime = "0";
+ pad = "1628";
+ powerUp = "0";
+ penaltyTime = "0";
+ };
+ new Item() {
+ position = "-10.8107 0.499925 1.30125";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-11.7165 4.97607 12.9";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/intermediate/highroadlowroad.jpg b/data/missions/intermediate/highroadlowroad.jpg
new file mode 100644
index 00000000..e51d6e0a
Binary files /dev/null and b/data/missions/intermediate/highroadlowroad.jpg differ
diff --git a/data/missions/intermediate/highroadlowroad.mis b/data/missions/intermediate/highroadlowroad.mis
new file mode 100644
index 00000000..f689952d
--- /dev/null
+++ b/data/missions/intermediate/highroadlowroad.mis
@@ -0,0 +1,137 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ desc = "You need to take both the high road and the low road to collect both of the gems.";
+ name = "Take the High Road";
+ startHelpText = "You need to take both the high road and the low road to collect both of the gems.";
+ level = "13";
+ type = "Intermediate";
+ artist = "Kevin Ryan";
+ time = "90000";
+ goldTime = "22500";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0.349971";
+ cloudHeightPer[1] = "0.3";
+ cloudHeightPer[2] = "0.199973";
+ cloudSpeed1 = "0.0005";
+ cloudSpeed2 = "0.001";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "0 0 0";
+ fogVolume2 = "0 0 0";
+ fogVolume3 = "0 0 0";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 1 0";
+ windEffectPrecipitation = "1";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -222768174765569860000000000000000000000.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -170698929442160050000000000000000000000.000000";
+ locked = "true";
+ };
+ new Sun() {
+ direction = "0.442343 0.475025 -0.760713";
+ color = "1.400000 1.200000 0.500000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ position = "0 0 0";
+ locked = "true";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "-2.08781e-008 -2.4 490.1";
+ rotation = "0 0 1 178.945";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "6.55651e-007 14.2 497";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new SimGroup(Triggers) {
+
+ new Trigger(Bounds) {
+ position = "-168.473 147.617 452";
+ rotation = "1 0 0 0";
+ scale = "327.77 304.932 10";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ };
+ new InteriorInstance() {
+ position = "0.0479157 -2.41775 490";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/inthighroadlowroad.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "0.442968 9.29719 490.458";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "2.41762 -4.68765 500.943";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-15.7753 -21.1459 483.046";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-8.20736 -1.93599 482.948";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "0.229484 14.5438 501.983";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/intermediate/hoops.jpg b/data/missions/intermediate/hoops.jpg
new file mode 100644
index 00000000..22d2caec
Binary files /dev/null and b/data/missions/intermediate/hoops.jpg differ
diff --git a/data/missions/intermediate/hoops.mis b/data/missions/intermediate/hoops.mis
new file mode 100644
index 00000000..d41a58fe
--- /dev/null
+++ b/data/missions/intermediate/hoops.mis
@@ -0,0 +1,391 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ type = "intermediate";
+ time = "0";
+ name = "Hoops";
+ startHelpText = "Put the marble in the hoops to unlock the path to the finish!";
+ level = "5";
+ desc = "Put the ball in the hoop to get to the finish.";
+ artist = "Kevin Ryan";
+ goldTime = 30000;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.433884 0.614021 -0.659336";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/hoops.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(EndPoint) {
+ position = "-41.5 -57 3";
+ rotation = "0 0 1 178.945";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new StaticShape(StartPoint) {
+ position = "0 -27 -3";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new SimGroup(Platform1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-10.5 -15.5 -3";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "0 -15.5 -3";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "0 -19.9688 -1.84375";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-0.1250000 0.1250000 0.0312500 0.0000000 -0.2500000 0.0000000 0.0000000 0.0000000 -0.0625000 0.2500000 0.0000000 0.0000000";
+ targetTime = "2000";
+ };
+ new PathedInterior(platform1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/beginner/hoops.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "0";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-8 21.5 -3";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-8 11.5 -3";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "-3.75 11.25 -1.84375";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-0.1250000 0.1250000 0.0312500 0.0000000 -0.2500000 0.0000000 0.0000000 0.0000000 -0.0625000 0.2500000 0.0000000 0.0000000";
+ targetTime = "2000";
+ };
+ new PathedInterior(platform1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/beginner/hoops.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "0";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-58.5 9 -3";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-40.5 9 -3";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "-43.7188 15.25 -1.84375";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-0.1250000 0.1250000 0.0312500 0.0000000 -0.2500000 0.0000000 0.0000000 0.0000000 -0.0625000 0.2500000 0.0000000 0.0000000";
+ targetTime = "2000";
+ };
+ new PathedInterior(platform1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/beginner/hoops.dif";
+ interiorIndex = "2";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "0";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-58.5 -5.5 -3";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-40.5 -5.5 -3";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "-38.2813 15.2188 -1.84375";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-0.1250000 0.1250000 0.0312500 0.0000000 -0.2500000 0.0000000 0.0000000 0.0000000 -0.0625000 0.2500000 0.0000000 0.0000000";
+ targetTime = "2000";
+ };
+ new PathedInterior(platform1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/beginner/hoops.dif";
+ interiorIndex = "3";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "0";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-55 -51.5 -3";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-41.5 -51.5 -3";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "-45.25 -35.0625 -1.84375";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-0.1250000 0.1250000 0.0312500 0.0000000 -0.2500000 0.0000000 0.0000000 0.0000000 -0.0625000 0.2500000 0.0000000 0.0000000";
+ targetTime = "2000";
+ };
+ new PathedInterior(platform1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/beginner/hoops.dif";
+ interiorIndex = "4";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "0";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-52 -45.5 -3";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-41.5 -45.5 -3";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "-48.25 -26.25 -1.84375";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-0.1250000 0.1250000 0.0312500 0.0000000 -0.2500000 0.0000000 0.0000000 0.0000000 -0.0625000 0.2500000 0.0000000 0.0000000";
+ targetTime = "2000";
+ };
+ new PathedInterior(platform1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/beginner/hoops.dif";
+ interiorIndex = "5";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "0";
+ initialPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-49 -38.5 -3";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-41.5 -38.5 -3";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ };
+ new Trigger(MustChange) {
+ position = "-42.7813 -26.25 -1.84375";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TriggerGotoTarget";
+ polyhedron = "-0.1250000 0.1250000 0.0312500 0.0000000 -0.2500000 0.0000000 0.0000000 0.0000000 -0.0625000 0.2500000 0.0000000 0.0000000";
+ targetTime = "2000";
+ };
+ new PathedInterior(platform1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/beginner/hoops.dif";
+ interiorIndex = "6";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "0";
+ initialPosition = "0";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-55.5 24.5 -6.5";
+ rotation = "1 0 0 0";
+ scale = "64.5 86.5 26.5";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "-41.0742 -56.9516 8.82225";
+ rotation = "0 0 1 16.0428";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/intermediate/hopskipjump.jpg b/data/missions/intermediate/hopskipjump.jpg
new file mode 100644
index 00000000..07da53e2
Binary files /dev/null and b/data/missions/intermediate/hopskipjump.jpg differ
diff --git a/data/missions/intermediate/hopskipjump.mis b/data/missions/intermediate/hopskipjump.mis
new file mode 100644
index 00000000..f02fa899
--- /dev/null
+++ b/data/missions/intermediate/hopskipjump.mis
@@ -0,0 +1,148 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ name = "Hop Skip and a Jump";
+ desc = "Master your aerial skills!";
+ type = "Intermediate";
+ level = "12";
+ artist = "Alex Swanson";
+ goldTime = "12000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "1000";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.481726 -0.481726 -0.732038";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/hopskipjump.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(EndPoint) {
+ position = "-10 -166 -32";
+ rotation = "0 0 1 179.518";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new StaticShape(StartPoint) {
+ position = "-2 2 4";
+ rotation = "0 0 1 88.8085";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new Item() {
+ position = "50 -10 -2.875";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "HelicopterItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "38 -70 -23.8008";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "22 -70 -15.7968";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "6 -70 -7.79946";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-10 -74 0.125";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Trigger(Bounds) {
+ position = "-29.1326 7.5 -36.2894";
+ rotation = "1 0 0 0";
+ scale = "98.1326 179 99.8767";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "50.8047 -21.8697 -6.26077";
+ rotation = "-0.576676 -0.0874758 0.812276 184.576";
+ scale = "1 1 1";
+ dataBlock = "SignCautionCaution";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "1492";
+ bonusTime = "0";
+ penaltyTime = "0";
+ };
+ new StaticShape() {
+ position = "-12.1073 -165.583 -24.6824";
+ rotation = "0 0 1 181.055";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/intermediate/jumpjumpjump.jpg b/data/missions/intermediate/jumpjumpjump.jpg
new file mode 100644
index 00000000..2e8b4de6
Binary files /dev/null and b/data/missions/intermediate/jumpjumpjump.jpg differ
diff --git a/data/missions/intermediate/jumpjumpjump.mis b/data/missions/intermediate/jumpjumpjump.mis
new file mode 100644
index 00000000..91a7e34c
--- /dev/null
+++ b/data/missions/intermediate/jumpjumpjump.mis
@@ -0,0 +1,188 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ type = "Intermediate";
+ time = "0";
+ name = "Jump jump jump";
+ startHelpText = "Welcome to the intermediate levels!";
+ desc = "Try out your jumping skills.";
+ level = "1";
+ artist = "Kevin Ryan";
+ goldTime = 5000;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.442343 0.475025 -0.760713";
+ color = "1.400000 1.200000 0.500000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/jumpjumpjump.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "0 -2 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 15 105";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 3.6 102.6";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "6 0 103";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape(EndPoint) {
+ position = "22 38 103";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new StaticShape(StartPoint) {
+ position = "0 -10 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new Trigger(Bounds) {
+ position = "-93 119 96";
+ rotation = "1 0 0 0";
+ scale = "178 180 27.25";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new Item() {
+ position = "-12.78 28.9 102.24";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "14.17 7.45231 106.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-12.78 20.8509 106.26";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-12.78 22.8504 105.3";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-12.78 24.8667 104.265";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-12.78 26.82 103.229";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ penaltyTime = "0";
+ time = "0";
+ powerUp = "0";
+ pad = "1612";
+ bonusTime = "0";
+ gemCount = "0";
+ };
+ new StaticShape() {
+ position = "22.5034 38.2985 108.427";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/intermediate/marbletris.jpg b/data/missions/intermediate/marbletris.jpg
new file mode 100644
index 00000000..b5321c82
Binary files /dev/null and b/data/missions/intermediate/marbletris.jpg differ
diff --git a/data/missions/intermediate/marbletris.mis b/data/missions/intermediate/marbletris.mis
new file mode 100644
index 00000000..118808d7
--- /dev/null
+++ b/data/missions/intermediate/marbletris.mis
@@ -0,0 +1,946 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "60000";
+ desc = "Collect all the gems in less than a minute.";
+ level = "9";
+ type = "intermediate";
+ name = "Marbletris";
+ artist = "Kevin Ryan";
+ goldTime = "15000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.442343 0.475025 -0.760713";
+ color = "1.400000 1.200000 0.500000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "0 -1.8 5.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "0 40.2 6";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-100 100 0";
+ rotation = "1 0 0 0";
+ scale = "200 200 200";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/marbletris.dif";
+ showTerrainInside = "0";
+ };
+ new SimGroup(Platform1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "5 4 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "3000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "5 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "1000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "5 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(platform1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/marbletris.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "4000";
+ initialTargetPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-4 4 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-4 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-4 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(platform1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/marbletris.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "8000";
+ initialTargetPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-5 8 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-5 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "8000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-5 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(platform1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/marbletris.dif";
+ interiorIndex = "2";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "12000";
+ initialTargetPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "3 8 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "3 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "12000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "3 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(platform1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/marbletris.dif";
+ interiorIndex = "3";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "16000";
+ initialTargetPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-3 14 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-3 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "16000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-3 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(platform1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/marbletris.dif";
+ interiorIndex = "4";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "20000";
+ initialTargetPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-8 4 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-8 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "20000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-8 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(platform1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/marbletris.dif";
+ interiorIndex = "5";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "24000";
+ initialTargetPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "1 12 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "1 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "24000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "1 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(platform1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/marbletris.dif";
+ interiorIndex = "6";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "26000";
+ initialTargetPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-5 18 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-5 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "26000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-5 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(platform1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/marbletris.dif";
+ interiorIndex = "7";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "28000";
+ initialTargetPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-7 10 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-7 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "28000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-7 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(platform1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/marbletris.dif";
+ interiorIndex = "8";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "30000";
+ initialTargetPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-7 24 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-7 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "30000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-7 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(platform1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/marbletris.dif";
+ interiorIndex = "9";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "32000";
+ initialTargetPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "5 10 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "5 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "32000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "5 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(platform1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/marbletris.dif";
+ interiorIndex = "10";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "36000";
+ initialTargetPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "6 18 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "6 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "36000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "6 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(platform1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/marbletris.dif";
+ interiorIndex = "11";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "40000";
+ initialTargetPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "5 22 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "5 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "40000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "5 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(platform1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/marbletris.dif";
+ interiorIndex = "12";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "44000";
+ initialTargetPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-1 18 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "4000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-1 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "44000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-1 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(platform1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/marbletris.dif";
+ interiorIndex = "13";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "48000";
+ initialTargetPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-7 28 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-7 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "48000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-7 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(platform1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/marbletris.dif";
+ interiorIndex = "14";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "50000";
+ initialTargetPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "3 26 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "3 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "50000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "3 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(platform1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/marbletris.dif";
+ interiorIndex = "15";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "52000";
+ initialTargetPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "7 28 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "7 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "52000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "7 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(platform1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/marbletris.dif";
+ interiorIndex = "16";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "54000";
+ initialTargetPosition = "0";
+ };
+ };
+ new SimGroup(Platform1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-2 22 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-2 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "54000";
+ smoothingType = "Linear";
+ };
+ new Marker() {
+ position = "-2 35 5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "0";
+ smoothingType = "Linear";
+ };
+ };
+ new PathedInterior(platform1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/marbletris.dif";
+ interiorIndex = "17";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "56000";
+ initialTargetPosition = "0";
+ };
+ };
+ new Item() {
+ position = "4.7 25.4119 5.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-6.98406 16.7342 5.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-12.9 32.595 5.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-12.9 30.8272 5.65747";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "9.52733 1.34948 5.69984";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-12.9 3.30612 5.68491";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "0.279119 40.4065 10.2411";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new Item() {
+ position = "8.76149 6.92701 2.68132";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ powerUp = "0";
+ bonusTime = "0";
+ pad = "2283";
+ time = "0";
+ gemCount = "0";
+ penaltyTime = "0";
+ };
+ new Item() {
+ position = "-2.59523 2.37592 5.78471";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperBounceItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/intermediate/motomarblecross.jpg b/data/missions/intermediate/motomarblecross.jpg
new file mode 100644
index 00000000..5f89a6e1
Binary files /dev/null and b/data/missions/intermediate/motomarblecross.jpg differ
diff --git a/data/missions/intermediate/motomarblecross.mis b/data/missions/intermediate/motomarblecross.mis
new file mode 100644
index 00000000..fa557638
--- /dev/null
+++ b/data/missions/intermediate/motomarblecross.mis
@@ -0,0 +1,267 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "54000";
+ goldTime = "27000";
+ type = "intermediate";
+ name = "Moto-Marblecross";
+ level = "17";
+ desc = "Get around track in less than 32 seconds.";
+ startHelpText = "Get the best time by staying on-track!";
+ artist = "Kevin Ryan";
+ goldTime = "18000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.442343 0.475025 -0.760713";
+ color = "1.400000 1.200000 0.500000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "2.4 1.4 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "2.4 -2.2 99.9";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-100 138.4 0";
+ rotation = "1 0 0 0";
+ scale = "200 200 200";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/motomarblecross.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "2.3379 7.2307 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "-13.7569 102.078 104.992";
+ rotation = "0 0 -1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "SignPlainLeft";
+ };
+ new StaticShape() {
+ position = "-18.0747 -14.064 104.885";
+ rotation = "0 0 1 179.518";
+ scale = "1 1 1";
+ dataBlock = "SignPlainLeft";
+ };
+ new Item() {
+ position = "19 -8.13707 99.9948";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "36.48 7.5383 104.462";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "1.83836 46.5897 104.217";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-15.3349 77.5811 100.024";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-15.0706 76.2576 100.419";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "2.2 24.5026 102.828";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "2.99175 -2.09916 105.346";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new StaticShape() {
+ position = "4.23629 -17.1397 104.78";
+ rotation = "0 0 1 91.1003";
+ scale = "1 1 1";
+ dataBlock = "SignPlainLeft";
+ };
+ new Item() {
+ position = "36.5059 40.786 104.248";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "18.8743 70.5935 100.631";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "1.7974 -5.49258 100.031";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "-1.33488 86.587 104.169";
+ rotation = "0 0 -1 34.9504";
+ scale = "1 1 1";
+ dataBlock = "SignPlainRight";
+ };
+ new StaticShape() {
+ position = "22.8189 84.0666 104.608";
+ rotation = "0 0 1 85.9437";
+ scale = "1 1 1";
+ dataBlock = "SignPlainRight";
+ };
+ new StaticShape() {
+ position = "15.6809 -17.513 105.09";
+ rotation = "0 0 1 180.664";
+ scale = "1 1 1";
+ dataBlock = "SignPlainLeft";
+ };
+ new StaticShape() {
+ position = "39.2409 -19.4102 104.71";
+ rotation = "0 0 1 88.2355";
+ scale = "1 1 1";
+ dataBlock = "SignPlainLeft";
+ };
+ new StaticShape() {
+ position = "39.3444 96.8962 104.892";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignPlainLeft";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ bonusTime = "0";
+ pad = "1630";
+ powerUp = "0";
+ penaltyTime = "0";
+ };
+ new Item() {
+ position = "1.39104 51.8148 104.433";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-12.8807 99.7991 102.684";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "18.0329 25.206 101.364";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/intermediate/playground.jpg b/data/missions/intermediate/playground.jpg
new file mode 100644
index 00000000..d8f50db7
Binary files /dev/null and b/data/missions/intermediate/playground.jpg differ
diff --git a/data/missions/intermediate/playground.mis b/data/missions/intermediate/playground.mis
new file mode 100644
index 00000000..7ff48b94
--- /dev/null
+++ b/data/missions/intermediate/playground.mis
@@ -0,0 +1,492 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ name = "Marble Playground";
+ desc = "Use the PowerUps and find all the gems!";
+ type = "intermediate";
+ startHelpText = "Use the PowerUps to find all the gems!";
+ level = "12";
+ artist = "Alex Swanson";
+ goldTime = "90000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.469455 -0.648345 -0.599384";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.500000 0.500000 0.600000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/beginner_playground.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "0 0 -6.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "23.9724 -24.0311 16.656";
+ rotation = "0 1 0 180";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-24 23.8963 16.7064";
+ rotation = "1 0 0 180";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "16.5 0 0.310963";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "HelicopterItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 -16.4996 -0.897829";
+ rotation = "1 0 0 189.076";
+ scale = "1 1 1";
+ dataBlock = "SuperBounceItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-0.00437202 16.5 -0.885668";
+ rotation = "0 1 0 181.237";
+ scale = "1 1 1";
+ dataBlock = "SuperBounceItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Trigger(Bounds) {
+ position = "-75.3007 44 -36.4339";
+ rotation = "1 0 0 0";
+ scale = "143.242 96.6948 94.6073";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new Item() {
+ position = "4 -4.00232 10.9";
+ rotation = "1 0 0 179.336";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "24 24 3.47416";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "4.2 -24.0145 -6.72222";
+ rotation = "1 0 0 178.945";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "8 20.5 -12.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-8 20.5 -12.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ powerUp = "0";
+ pad = "1571";
+ bonusTime = "0";
+ penaltyTime = "0";
+ };
+ new Item() {
+ position = "4 -41 -5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "4 -36.5 -19";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4 -36.5 -19";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4 -36.5 -5.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4 -36.5 6.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4 -36.5 6.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4 -36.5 -5.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "5";
+ msToNext = "3000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "4 -36.5 -19";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "6";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/beginner/beginner_playground.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new Item() {
+ position = "-4 4.00032 10.9";
+ rotation = "1 0 0 180.091";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 -10.5 -15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 10.5 -18.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "24 20 19.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-24 -20 19.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new SimGroup(MustChange_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "24 16 -13";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "24 16 -13";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "8000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-24 16 -13";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "1000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-24 16 -13";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "3";
+ msToNext = "8000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "24 16 -13";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "4";
+ msToNext = "0";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(MustChange) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/beginner/beginner_playground.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialTargetPosition = "-1";
+ };
+ };
+ new Item() {
+ position = "-4 34 -7";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "ShockAbsorberItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape(StartPoint) {
+ position = "53 3.44894e-007 6.5";
+ rotation = "0 0 -1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ fixedscale = "1";
+ };
+ new Item() {
+ position = "36 -0.5 3.70461";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-36.5 16.0002 -0.674744";
+ rotation = "1 0 0 180.482";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-36.5 -16 -1";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "36 -16 0.758664";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "36 16 0.378972";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "HelicopterItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape(EndPoint) {
+ position = "-52.5012 9.73098e-007 -6.49715";
+ rotation = "-0.706825 0.707388 -3.08963e-008 180";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new Item() {
+ position = "-36.5043 0 -3.60005";
+ rotation = "0 1 0 181.237";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-52.5 0 -5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-36.5 0 -2.60861";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "HelicopterItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-3.19632 30 19.9";
+ rotation = "0 1 0 178.945";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "24 -4.7 -15.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "4.22501 -24.2515 -4.93209";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "AntiGravityItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "-53.3177 0.575262 -13.2771";
+ rotation = "0.466207 0.884672 0.00270241 180.588";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/intermediate/racequalifying.jpg b/data/missions/intermediate/racequalifying.jpg
new file mode 100644
index 00000000..d2fc0fdb
Binary files /dev/null and b/data/missions/intermediate/racequalifying.jpg differ
diff --git a/data/missions/intermediate/racequalifying.mis b/data/missions/intermediate/racequalifying.mis
new file mode 100644
index 00000000..587627a5
--- /dev/null
+++ b/data/missions/intermediate/racequalifying.mis
@@ -0,0 +1,259 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "60000";
+ type = "Intermediate";
+ name = "Monster Speedway Qualifying";
+ level = "2";
+ desc = "Finish one lap as quickly as you can. There is a gem in the center of each straightway.";
+ artist = "Kevin Ryan";
+ startHelpText ="Start your engines!";
+ goldTime = 36000;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.442343 0.475025 -0.760713";
+ color = "1.400000 1.200000 0.500000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/racetrack.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "-8.1 -70.6 100.121";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "-7.5 66.4 100.118";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new Item() {
+ position = "-93.331 -103.652 100.165";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-182.926 122.508 100.428";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-7.5 -62 100.353";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-183.148 16.4458 100.195";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-183.589 83.0981 100.299";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-148.362 -102.973 100.335";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-9.9 9 100.525";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-10.2 129.2 100.525";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-77.9 182.8 100.65";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Trigger(Bounds) {
+ position = "-222.9 237.2 96.5";
+ rotation = "1 0 0 0";
+ scale = "284.03 391.061 123.199";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "-6.05437 66.9471 105.643";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ bonusTime = "0";
+ pad = "1585";
+ penaltyTime = "0";
+ powerUp = "0";
+ };
+ new Item() {
+ position = "-9.3079 81.645 100.2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-17.4161 -104.127 103.292";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-183.141 30.256 100.399";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-114.819 183.021 100.34";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ bonusTime = "0";
+ pad = "2637";
+ penaltyTime = "0";
+ powerUp = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+ new Item() {
+ position = "-12.2248 171.365 100.995";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-51.9964 183.684 100.292";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-172.683 175.546 100.748";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-116.827 -101.916 100.367";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/intermediate/racetrack.jpg b/data/missions/intermediate/racetrack.jpg
new file mode 100644
index 00000000..bb355984
Binary files /dev/null and b/data/missions/intermediate/racetrack.jpg differ
diff --git a/data/missions/intermediate/racetrack.mis b/data/missions/intermediate/racetrack.mis
new file mode 100644
index 00000000..772ee898
--- /dev/null
+++ b/data/missions/intermediate/racetrack.mis
@@ -0,0 +1,421 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ level = "23";
+ name = "Monster Speedway";
+ type = "Intermediate";
+ time = "45000";
+ goldTime = "33000";
+ desc = "You will need to take a pit stop to finish this race.";
+ artist = "Kevin Ryan";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.442343 0.475025 -0.760713";
+ color = "1.400000 1.200000 0.500000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/racetrack.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "-8.1 -70.6 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "-7.5 66.4 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new Item() {
+ position = "-71.5 -125 100.525";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-43 -104.525 100.125";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-7.5 -62 100.525";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-18.1 -19.4 100.525";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-63.05 -104.475 100.225";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-29.3 8.5 100.2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-9.9 9 100.525";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-10.2 141 100.525";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-84.7 180 100.65";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Trigger(Bounds) {
+ position = "-222.9 237.2 96.5";
+ rotation = "1 0 0 0";
+ scale = "284.03 391.061 123.199";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "-6.05437 66.9471 105.643";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new ScriptObject() {
+ gemCount = "0";
+ penaltyTime = "0";
+ powerUp = "0";
+ pad = "1585";
+ time = "0";
+ bonusTime = "0";
+ };
+ new Item() {
+ position = "-22.8282 64.9241 100.553";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-40.2463 185.96 100.25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-86.7636 182.212 100.699";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-114.819 179.821 100.275";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-149.919 186.058 100.176";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-188.865 150.763 100.414";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-178.926 122.508 100.428";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-183.589 83.0981 100.299";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-179.741 30.256 100.399";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-188.006 -30.1615 100.275";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-188.548 -53.3542 100.195";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-179.533 -97.8074 102.312";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-158.278 -102.333 100.195";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-153.131 -102.052 100.165";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-138.837 -96.2101 100.71";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-116.362 -99.1725 100.335";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-95.3666 -105.486 100.332";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "ShockAbsorberItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-17.4161 -104.127 103.292";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-29.3718 2.03403 100.2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-29.1087 14.9765 100.2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-29.1049 29.8818 100.2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-29.1186 41.6185 100.2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-29.0267 51.2883 100.2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-29.0972 69.7223 100.2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-24.4364 55.869 100.725";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-26.9079 101.645 100.2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-22.4117 82.9527 100.6";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/intermediate/rampmatrix.jpg b/data/missions/intermediate/rampmatrix.jpg
new file mode 100644
index 00000000..17af164d
Binary files /dev/null and b/data/missions/intermediate/rampmatrix.jpg differ
diff --git a/data/missions/intermediate/rampmatrix.mis b/data/missions/intermediate/rampmatrix.mis
new file mode 100644
index 00000000..e50e7669
--- /dev/null
+++ b/data/missions/intermediate/rampmatrix.mis
@@ -0,0 +1,251 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ type = "Intermediate";
+ time = "0";
+ name = "Ramp Matrix";
+ startHelpText = "Find 10 gems!";
+ level = "4";
+ desc = "Woah! I know marble-fu!";
+ artist = "Alex Swanson";
+ goldTime = 30000;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.441853 0.594916 -0.671447";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/rampmatrix.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "0 0 -15";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new Item() {
+ position = "16 0 -3";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ bonusTime = "0";
+ pad = "1510";
+ powerUp = "0";
+ penaltyTime = "0";
+ };
+ new Item() {
+ position = "-16 0 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 -24 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "32 -16 -9";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-32 8 -9";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "16 16 -6";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-16 -16 -6";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-16 24 -9";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "16 24 -9";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "16 0 -12";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Trigger(Bounds) {
+ position = "-47.6789 40.7632 -19";
+ rotation = "1 0 0 0";
+ scale = "97.2822 82.6963 91.207";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new Item() {
+ position = "16 -16 -5.79041";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-16 16 -5.79523";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "16 -24 -8.79583";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-32 -8 -8.7964";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "32 16 -8.78872";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 24 -11.8019";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 -8 -14.7963";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "0.49673 -0.071725 -8.10371";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/intermediate/shockdrop.jpg b/data/missions/intermediate/shockdrop.jpg
new file mode 100644
index 00000000..642193b3
Binary files /dev/null and b/data/missions/intermediate/shockdrop.jpg differ
diff --git a/data/missions/intermediate/shockdrop.mis b/data/missions/intermediate/shockdrop.mis
new file mode 100644
index 00000000..7ae5ae08
--- /dev/null
+++ b/data/missions/intermediate/shockdrop.mis
@@ -0,0 +1,130 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ startHelpText = "Use the Shock Absorber PowerUp to avoid bouncing off the landing pad!";
+ time = "0";
+ type = "Intermediate";
+ desc = "Use the Shock Absorber PowerUp to fall without bouncing off.";
+ name = "Shock Drop";
+ level = "18";
+ artist = "Alex Swanson";
+ goldTime = "5500";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0.349971";
+ cloudHeightPer[1] = "0.3";
+ cloudHeightPer[2] = "0.199973";
+ cloudSpeed1 = "0.0005";
+ cloudSpeed2 = "0.001";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "0 0 0";
+ fogVolume2 = "0 0 0";
+ fogVolume3 = "0 0 0";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 1 0";
+ windEffectPrecipitation = "1";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -222768174765569860000000000000000000000.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -170698929442160050000000000000000000000.000000";
+ locked = "true";
+ };
+ new Sun() {
+ direction = "0.488992 0.488992 -0.722339";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.300000 1.000000";
+ scale = "1 1 1";
+ locked = "true";
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "0 0 498";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "0 0 365";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-16 15.8 352.371";
+ rotation = "1 0 0 0";
+ scale = "30 30 156.629";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 470";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/shockdrop.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "-2.41486 2.45752 498.397";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "ShockAbsorberItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ showHelpOnPickup = "1";
+ };
+ new Item() {
+ position = "2.48339 -2.39319 498.397";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "ShockAbsorberItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ showHelpOnPickup = "1";
+ };
+ new StaticShape() {
+ position = "0.0358018 -0.60514 368.454";
+ rotation = "0 0 1 65.8901";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new StaticShape() {
+ position = "3.77131 1.7896 499.223";
+ rotation = "0 0 1 77.9222";
+ scale = "1 1 1";
+ dataBlock = "SignPlainDown";
+ };
+ new StaticShape() {
+ position = "-3.69219 -2.38053 499.223";
+ rotation = "0 0 -1 110.581";
+ scale = "1 1 1";
+ dataBlock = "SignPlainDown";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/intermediate/skatepark.jpg b/data/missions/intermediate/skatepark.jpg
new file mode 100644
index 00000000..0b3b0627
Binary files /dev/null and b/data/missions/intermediate/skatepark.jpg differ
diff --git a/data/missions/intermediate/skatepark.mis b/data/missions/intermediate/skatepark.mis
new file mode 100644
index 00000000..379a12fd
--- /dev/null
+++ b/data/missions/intermediate/skatepark.mis
@@ -0,0 +1,252 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ type = "intermediate";
+ time = "0";
+ name = "Skate Park";
+ startHelpText = "Show off some of your crazy moves!";
+ desc = "Skate for the gems.";
+ level = "3";
+ artist = "Kevin Ryan";
+ goldTime = 47000;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.442343 0.475025 -0.760713";
+ color = "1.400000 1.200000 0.500000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/skatepark.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(EndPoint) {
+ position = "22 38 103";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new StaticShape(StartPoint) {
+ position = "0 -10 102";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new Item() {
+ position = "-10.25 -3 101.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-0.75 1.25 101.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-10.25 5 101.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-10.25 13 101.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-0.75 9.25 101.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-0.75 17.25 101.75";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-13 23 102";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-5 30 102";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-12 35 102";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-4 40 102";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "6 36 102";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "8 25 102";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "18 9.5 97";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "17.5 -8.5 97.875";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "24 7 99.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "14.5 -10 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Trigger(Bounds) {
+ position = "-93 119 89";
+ rotation = "1 0 0 0";
+ scale = "178 180 32";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new Item() {
+ position = "21.4565 -11.1259 99.7943";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "17.4097 0.550613 99.5891";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "22.8703 37.8852 107.135";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/intermediate/skeeball.jpg b/data/missions/intermediate/skeeball.jpg
new file mode 100644
index 00000000..bdc3a803
Binary files /dev/null and b/data/missions/intermediate/skeeball.jpg differ
diff --git a/data/missions/intermediate/skeeball.mis b/data/missions/intermediate/skeeball.mis
new file mode 100644
index 00000000..59eabfaa
--- /dev/null
+++ b/data/missions/intermediate/skeeball.mis
@@ -0,0 +1,211 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ level = "11";
+ name = "Skee Ball Bonus";
+ type = "Intermediate";
+ time = "32000";
+ desc = "Go through the highest opening for the largest time bonus.";
+ artist = "Kevin Ryan";
+ startHelpText = "Go for the top hole!";
+ goldTime = "10000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0.349971";
+ cloudHeightPer[1] = "0.3";
+ cloudHeightPer[2] = "0.199973";
+ cloudSpeed1 = "0.0005";
+ cloudSpeed2 = "0.001";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "0 0 0";
+ fogVolume2 = "0 0 0";
+ fogVolume3 = "0 0 0";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 1 0";
+ windEffectPrecipitation = "1";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -222768174765569860000000000000000000000.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -170698929442160050000000000000000000000.000000";
+ locked = "true";
+ };
+ new Sun() {
+ direction = "0.57735 0.57735 -0.57735";
+ color = "1.400000 1.200000 0.600000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ scale = "1 1 1";
+ locked = "true";
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "0 -3 502";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "14.8 84.2 484.4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new SimGroup(Triggers) {
+
+ new Trigger(Bounds) {
+ position = "-168.473 147.617 447";
+ rotation = "1 0 0 0";
+ scale = "327.77 304.932 10";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ };
+ new InteriorInstance() {
+ position = "0.00962925 -2.44893 490";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/intskeeball.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "-0.880545 21.1848 489.13";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "0 61 494.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ timeBonus = "8000";
+ };
+ new ScriptObject() {
+ gemCount = "0";
+ penaltyTime = "0";
+ powerUp = "0";
+ pad = "1589";
+ time = "0";
+ bonusTime = "0";
+ };
+ new Item() {
+ position = "0 62 496.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ timeBonus = "10000";
+ };
+ new Item() {
+ position = "0 58.3 488.9";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ timeBonus = "4000";
+ };
+ new StaticShape() {
+ position = "15.0375 84.4528 489.379";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new Item() {
+ position = "0 59.3 491.4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ timeBonus = "6000";
+ };
+ new Item() {
+ position = "0 56.6 486.2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ timeBonus = "2000";
+ };
+ new ScriptObject() {
+ gemCount = "0";
+ penaltyTime = "0";
+ powerUp = "0";
+ pad = "1605";
+ time = "0";
+ bonusTime = "0";
+ };
+ new ScriptObject() {
+ gemCount = "0";
+ penaltyTime = "0";
+ powerUp = "0";
+ pad = "1630";
+ time = "0";
+ bonusTime = "0";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+ new Item() {
+ position = "-10.7711 83.4555 483.562";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "12.4768 80.3092 482.037";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "12.1406 73.2222 482.046";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/intermediate/spaceslide.jpg b/data/missions/intermediate/spaceslide.jpg
new file mode 100644
index 00000000..73f3a1e2
Binary files /dev/null and b/data/missions/intermediate/spaceslide.jpg differ
diff --git a/data/missions/intermediate/spaceslide.mis b/data/missions/intermediate/spaceslide.mis
new file mode 100644
index 00000000..ca3f740a
--- /dev/null
+++ b/data/missions/intermediate/spaceslide.mis
@@ -0,0 +1,342 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ name = "Space Slide";
+ desc = "Once you hit the stars, there's no turning back!";
+ type = "Intermediate";
+ startHelpText = "Beware of mines!";
+ artist = "Alex Swanson";
+ level = "10";
+ goldTime = "12000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -2.38223e+038 -2.38218e+038";
+ fogVolume2 = "-1 -2.34215e+038 -2.34215e+038";
+ fogVolume3 = "-1 -2.31546e+038 -2.30217e+038";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -235549196024539770000000000000000000000.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -231551107161058350000000000000000000000.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -223539291696291090000000000000000000000.000000";
+ };
+ new Sun() {
+ direction = "0.404882 -0.734095 -0.545138";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/spaceslide.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "-52 3.87975e-008 0";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape() {
+ position = "-44 2 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-36 -2 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-28 2 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-20.5 -3.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-17 1 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-13.5 -7.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-11.5 -7.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-7.5 -14.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-3 -14.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-12 -26.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-9 -26.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-10.5 -26.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-9.5 -35.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-3 -35.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-1.5 -35.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-14 -35.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-9.5 -12.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-5 -38.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "4 -40.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "4 -43.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "20 -43.5 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "20 -40.5 1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "44 -43.5 -1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "44 -40.5 -1.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "60 -43.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "60 -40.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-15.5 -21.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-1 -14.5 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape(EndPoint) {
+ position = "78 -42 0";
+ rotation = "0 0 1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new Trigger(Bounds) {
+ position = "-59.5 7.5 -5.5";
+ rotation = "1 0 0 0";
+ scale = "143 59 31.9492";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "77.8238 -41.5642 6.99115";
+ rotation = "0 0 -1 59.5876";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+ new StaticShape() {
+ position = "-17.0252 -4.59701e-005 -0.00422596";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-17.0315 -0.986436 -0.00700587";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-12.5283 -7.52726 -0.0070129";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-2.1017 -14.4727 -0.00546592";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-6.0055 -38.4579 -0.00269984";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "-11.8743 -35.5219 -0.00116626";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "6.87833 -41.3857 -0.00316873";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+ new StaticShape() {
+ position = "40.773 -42.76 -1.50381";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "LandMine";
+ resetTime = "Default";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/intermediate/thewave.jpg b/data/missions/intermediate/thewave.jpg
new file mode 100644
index 00000000..52044a3e
Binary files /dev/null and b/data/missions/intermediate/thewave.jpg differ
diff --git a/data/missions/intermediate/thewave.mis b/data/missions/intermediate/thewave.mis
new file mode 100644
index 00000000..c6388414
--- /dev/null
+++ b/data/missions/intermediate/thewave.mis
@@ -0,0 +1,4035 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "45000";
+ goldTime = "28000";
+ desc = "Surf the waves to collect all the gems before time runs out!";
+ startHelpText = "Grab all the gems!";
+ level = "20";
+ name = "The Wave";
+ type = "intermediate";
+ artist = "Kevin Ryan";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.57735 0.57735 -0.57735";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "2 0 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "-2 0 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-100 100 0";
+ rotation = "1 0 0 0";
+ scale = "200 200 200";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/the_wave.dif";
+ showTerrainInside = "0";
+ };
+ new SimGroup(Platform1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-9 3 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9 3 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9 3 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "0";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "0";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_0_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-7 3 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-7 3 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-7 3 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_0) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "1";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "400";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_1_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-5 3 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-5 3 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-5 3 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_1) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "2";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "800";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_2_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-3 3 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-3 3 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-3 3 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_2) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "3";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "1200";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_3_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-1 3 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-1 3 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-1 3 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_3) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "4";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "1600";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_4_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "1 3 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "1 3 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "1 3 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_4) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "5";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "2000";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_5_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "3 3 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "3 3 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "3 3 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_5) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "6";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "2400";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_6_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "5 3 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "5 3 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "5 3 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_6) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "7";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "2800";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_7_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "7 3 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "7 3 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "7 3 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_7) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "8";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "3200";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_8_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "9 3 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "9 3 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "9 3 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_8) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "9";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "3600";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_9_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-11 5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-11 5 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-11 5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_9) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "10";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "0";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_10_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-9 5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9 5 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9 5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_10) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "11";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "400";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_11_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-7 5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-7 5 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-7 5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_11) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "12";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "800";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_12_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-5 5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-5 5 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-5 5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_12) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "13";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "1200";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_13_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-3 5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-3 5 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-3 5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_13) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "14";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "1600";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_14_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-1 5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-1 5 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-1 5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_14) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "15";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "2000";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_15_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "1 5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "1 5 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "1 5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_15) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "16";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "2400";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_16_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "3 5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "3 5 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "3 5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_16) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "17";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "2800";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_17_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "5 5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "5 5 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "5 5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_17) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "18";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "3200";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_18_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "7 5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "7 5 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "7 5 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_18) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "19";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "3600";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_19_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-13 7 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-13 7 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-13 7 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_19) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "20";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "0";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_20_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-11 7 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-11 7 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-11 7 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_20) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "21";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "400";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_21_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-9 7 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9 7 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9 7 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_21) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "22";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "800";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_22_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-7 7 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-7 7 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-7 7 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_22) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "23";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "1200";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_23_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-5 7 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-5 7 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-5 7 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_23) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "24";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "1600";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_24_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-3 7 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-3 7 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-3 7 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_24) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "25";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "2000";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_25_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-1 7 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-1 7 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-1 7 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_25) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "26";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "2400";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_26_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "1 7 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "1 7 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "1 7 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_26) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "27";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "2800";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_27_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "3 7 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "3 7 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "3 7 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_27) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "28";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "3200";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_28_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "5 7 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "5 7 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "5 7 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_28) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "29";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "3600";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_29_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-15 9 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-15 9 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-15 9 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_29) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "30";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "0";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_30_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-13 9 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-13 9 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-13 9 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_30) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "31";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "400";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_31_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-11 9 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-11 9 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-11 9 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_31) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "32";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "800";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_32_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-9 9 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9 9 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9 9 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_32) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "33";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "1200";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_33_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-7 9 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-7 9 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-7 9 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_33) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "34";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "1600";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_34_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-5 9 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-5 9 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-5 9 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_34) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "35";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "2000";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_35_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-3 9 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-3 9 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-3 9 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_35) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "36";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "2400";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_36_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-1 9 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-1 9 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-1 9 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_36) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "37";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "2800";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_37_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "1 9 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "1 9 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "1 9 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_37) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "38";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "3200";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_38_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "3 9 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "3 9 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "3 9 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_38) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "39";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "3600";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_39_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-17 11 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-17 11 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-17 11 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_39) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "40";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "0";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_40_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-15 11 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-15 11 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-15 11 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_40) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "41";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "400";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_41_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-13 11 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-13 11 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-13 11 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_41) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "42";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "800";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_42_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-11 11 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-11 11 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-11 11 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_42) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "43";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "1200";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_43_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-9 11 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9 11 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9 11 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_43) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "44";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "1600";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_44_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-7 11 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-7 11 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-7 11 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_44) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "45";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "2000";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_45_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-5 11 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-5 11 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-5 11 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_45) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "46";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "2400";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_46_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-3 11 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-3 11 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-3 11 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_46) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "47";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "2800";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_47_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-1 11 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-1 11 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-1 11 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_47) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "48";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "3200";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_48_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "1 11 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "1 11 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "1 11 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_48) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "49";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "3600";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_49_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-19 13 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-19 13 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-19 13 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_49) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "50";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "0";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_50_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-17 13 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-17 13 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-17 13 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_50) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "51";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "400";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_51_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-15 13 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-15 13 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-15 13 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_51) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "52";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "800";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_52_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-13 13 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-13 13 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-13 13 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_52) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "53";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "1200";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_53_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-11 13 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-11 13 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-11 13 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_53) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "54";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "1600";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_54_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-9 13 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9 13 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9 13 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_54) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "55";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "2000";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_55_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-7 13 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-7 13 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-7 13 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_55) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "56";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "2400";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_56_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-5 13 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-5 13 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-5 13 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_56) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "57";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "2800";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_57_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-3 13 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-3 13 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-3 13 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_57) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "58";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "3200";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_58_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-1 13 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-1 13 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-1 13 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_58) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "59";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "3600";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_59_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-21 15 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-21 15 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-21 15 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_59) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "60";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "0";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_60_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-19 15 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-19 15 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-19 15 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_60) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "61";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "400";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_61_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-17 15 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-17 15 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-17 15 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_61) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "62";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "800";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_62_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-15 15 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-15 15 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-15 15 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_62) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "63";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "1200";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_63_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-13 15 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-13 15 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-13 15 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_63) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "64";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "1600";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_64_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-11 15 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-11 15 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-11 15 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_64) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "65";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "2000";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_65_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-9 15 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9 15 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9 15 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_65) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "66";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "2400";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_66_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-7 15 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-7 15 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-7 15 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_66) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "67";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "2800";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_67_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-5 15 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-5 15 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-5 15 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_67) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "68";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "3200";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_68_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-3 15 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-3 15 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-3 15 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_68) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "69";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "3600";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_69_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-23 17 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-23 17 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-23 17 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_69) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "70";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "0";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_70_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-21 17 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-21 17 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-21 17 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_70) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "71";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "400";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_71_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-19 17 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-19 17 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-19 17 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_71) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "72";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "800";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_72_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-17 17 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-17 17 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-17 17 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_72) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "73";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "1200";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_73_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-15 17 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-15 17 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-15 17 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_73) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "74";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "1600";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_74_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-13 17 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-13 17 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-13 17 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_74) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "75";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "2000";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_75_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-11 17 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-11 17 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-11 17 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_75) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "76";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "2400";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_76_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-9 17 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9 17 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9 17 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_76) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "77";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "2800";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_77_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-7 17 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-7 17 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-7 17 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_77) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "78";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "3200";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_78_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-5 17 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-5 17 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-5 17 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_78) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "79";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "3600";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_79_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-25 19 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-25 19 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-25 19 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_79) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "80";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "0";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_80_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-23 19 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-23 19 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-23 19 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_80) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "81";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "400";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_81_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-21 19 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-21 19 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-21 19 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_81) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "82";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "800";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_82_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-19 19 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-19 19 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-19 19 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_82) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "83";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "1200";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_83_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-17 19 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-17 19 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-17 19 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_83) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "84";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "1600";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_84_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-15 19 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-15 19 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-15 19 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_84) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "85";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "2000";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_85_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-13 19 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-13 19 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-13 19 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_85) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "86";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "2400";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_86_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-11 19 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-11 19 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-11 19 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_86) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "87";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "2800";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_87_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-9 19 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9 19 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-9 19 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_87) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "88";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "3200";
+ initialTargetPosition = "-1";
+ };
+ };
+ new SimGroup(Platform1_88_g) {
+
+ new Path() {
+
+ new Marker() {
+ position = "-7 19 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "0";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-7 19 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "1";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ new Marker() {
+ position = "-7 19 2";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ seqNum = "2";
+ msToNext = "2000";
+ smoothingType = "Accelerate";
+ };
+ };
+ new PathedInterior(Platform1_88) {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "PathedDefault";
+ interiorResource = "marble/data/interiors/intermediate/the_wave.dif";
+ interiorIndex = "89";
+ basePosition = "0 0 0";
+ baseRotation = "1 0 0 0";
+ baseScale = "1 1 1";
+ initialPosition = "3600";
+ initialTargetPosition = "-1";
+ };
+ };
+ new Item() {
+ position = "4.8 7.025 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-2.8 8.93 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "3 10.96 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "6.8 12.92 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-4.8 14.795 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-1.2 16.52 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "4.8 18.72 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "2.8 3.105 4";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "-1.20809 0.336395 11.6696";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/intermediate/tornado.jpg b/data/missions/intermediate/tornado.jpg
new file mode 100644
index 00000000..bd707cf2
Binary files /dev/null and b/data/missions/intermediate/tornado.jpg differ
diff --git a/data/missions/intermediate/tornado.mis b/data/missions/intermediate/tornado.mis
new file mode 100644
index 00000000..315eebc1
--- /dev/null
+++ b/data/missions/intermediate/tornado.mis
@@ -0,0 +1,118 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ time = "0";
+ goldTime = "3500";
+ desc = "Avoid being pulled into the tornado!";
+ startHelpText = "Don't let this tornado throw you off!";
+ level = "22";
+ type = "intermediate";
+ name = "Tornado Alley";
+ artist = "Alex Swanson";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0.349971";
+ cloudHeightPer[1] = "0.3";
+ cloudHeightPer[2] = "0.199973";
+ cloudSpeed1 = "0.0005";
+ cloudSpeed2 = "0.001";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "0 0 0";
+ fogVolume2 = "0 0 0";
+ fogVolume3 = "0 0 0";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 1 0";
+ windEffectPrecipitation = "1";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -222768174765569860000000000000000000000.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 0.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -170698929442160050000000000000000000000.000000";
+ locked = "true";
+ };
+ new Sun() {
+ direction = "0.537571 0.432602 -0.723791";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ scale = "1 1 1";
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ locked = "true";
+ };
+ new SimGroup(CheckPoints) {
+
+ new StaticShape(StartPoint) {
+ position = "-72 4.4 499.631";
+ rotation = "0 0 1 90";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new StaticShape(EndPoint) {
+ position = "-20.2053 4.32074 499.7";
+ rotation = "0 0 1 89.3814";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ };
+ new Trigger(Bounds) {
+ position = "-80.1093 16.8391 491.549";
+ rotation = "1 0 0 0";
+ scale = "70 25 25";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new InteriorInstance() {
+ position = "-46.0876 4.53171 499.193";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/tornadotoss.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape() {
+ position = "-46.2581 4.35297 499.498";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "Tornado";
+ };
+ new ScriptObject() {
+ time = "0";
+ gemCount = "0";
+ penaltyTime = "0";
+ powerUp = "0";
+ bonusTime = "0";
+ pad = "1961";
+ };
+ new StaticShape() {
+ position = "-19.4127 2.59068 505.923";
+ rotation = "0 0 1 103.705";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new StaticShape() {
+ position = "-49.1744 5.39726 500.747";
+ rotation = "0.0249868 0.0290703 0.999265 81.4016";
+ scale = "1 1 1";
+ dataBlock = "SignCautionDanger";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/intermediate/tritwist.jpg b/data/missions/intermediate/tritwist.jpg
new file mode 100644
index 00000000..b92388cf
Binary files /dev/null and b/data/missions/intermediate/tritwist.jpg differ
diff --git a/data/missions/intermediate/tritwist.mis b/data/missions/intermediate/tritwist.mis
new file mode 100644
index 00000000..3df95778
--- /dev/null
+++ b/data/missions/intermediate/tritwist.mis
@@ -0,0 +1,198 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ type = "intermediate";
+ time = "0";
+ name = "Tri Twist";
+ startHelpText = "Grab all the gems on each level, then head for the finish!";
+ desc = "Go through the three levels as quickly as you can.";
+ level = "8";
+ artist = "Kevin Ryan";
+ goldTime = 48000;
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume2 = "-1 -1.73483e+009 -1.73483e+009";
+ fogVolume3 = "-1 -1.73483e+009 -1.73483e+009";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000";
+ };
+ new Sun() {
+ direction = "0.442343 0.475025 -0.760713";
+ color = "1.400000 1.200000 0.500000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/beginner/tritwist.dif";
+ showTerrainInside = "0";
+ };
+ new StaticShape(StartPoint) {
+ position = "0 -8 100";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new Item() {
+ position = "-13 13 102";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "13 13 102";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "13 -13 102";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-13 -13 102";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-3.6625 -13.6594 84";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "13.6594 -3.6625 84";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape(EndPoint) {
+ position = "10.3906 -6 64";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new Item() {
+ position = "-8.83125 -5.29375 66";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-1.83438 6.83125 66";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "1.5625 -11.2937 66";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "8.56563 0.828125 66";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-1.63437 -4.83125 66";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "5.36875 7.29688 66";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "GemItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Trigger(Bounds) {
+ position = "-25.5368 25.5427 60";
+ rotation = "1 0 0 0";
+ scale = "51.0885 51.0808 60";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new StaticShape() {
+ position = "10.5888 -6.62377 70.2128";
+ rotation = "0 0 1 116.883";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/missions/intermediate/upward.jpg b/data/missions/intermediate/upward.jpg
new file mode 100644
index 00000000..27c06539
Binary files /dev/null and b/data/missions/intermediate/upward.jpg differ
diff --git a/data/missions/intermediate/upward.mis b/data/missions/intermediate/upward.mis
new file mode 100644
index 00000000..e973469a
--- /dev/null
+++ b/data/missions/intermediate/upward.mis
@@ -0,0 +1,212 @@
+//--- OBJECT WRITE BEGIN ---
+new SimGroup(MissionGroup) {
+
+ new ScriptObject(MissionInfo) {
+ type = "intermediate";
+ time = "0";
+ name = "Upward Spiral";
+ level = "24";
+ desc = "Follow the path to the top!";
+ startHelpText = "Climb upward to reach the goal!";
+ artist = "Alex Swanson";
+ goldTime = "37000";
+ };
+ new MissionArea(MissionArea) {
+ area = "-360 -648 720 1296";
+ flightCeiling = "300";
+ flightCeilingRange = "20";
+ locked = "true";
+ };
+ new Sky(Sky) {
+ position = "336 136 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ cloudHeightPer[0] = "0";
+ cloudHeightPer[1] = "0";
+ cloudHeightPer[2] = "0";
+ cloudSpeed1 = "0.0001";
+ cloudSpeed2 = "0.0002";
+ cloudSpeed3 = "0.0003";
+ visibleDistance = "500";
+ useSkyTextures = "1";
+ renderBottomTexture = "1";
+ SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
+ fogDistance = "300";
+ fogColor = "0.600000 0.600000 0.600000 1.000000";
+ fogVolume1 = "-1 -1 0.711231";
+ fogVolume2 = "-1 -1 0.129878";
+ fogVolume3 = "-1 -3.35192e+038 -3.3785e+038";
+ materialList = "~/data/skies/sky_day.dml";
+ windVelocity = "1 0 0";
+ windEffectPrecipitation = "0";
+ noRenderBans = "1";
+ fogVolumeColor1 = "128.000000 128.000000 128.000000 -263245941870854330000000000000000000000.000000";
+ fogVolumeColor2 = "128.000000 128.000000 128.000000 -335191624087289120000000000000000000000.000000";
+ fogVolumeColor3 = "128.000000 128.000000 128.000000 -335191603804879520000000000000000000000.000000";
+ };
+ new Sun() {
+ direction = "0.392451 0.18875 -0.900197";
+ color = "1.400000 1.200000 0.400000 1.000000";
+ ambient = "0.300000 0.300000 0.400000 1.000000";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/upward0.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "30 9.03125 38.1563";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-13.75 -35.75 63.2302";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "40.5 -34.375 88.19";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "53 -4.375 106.958";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperJumpItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape(StartPoint) {
+ position = "10 9 0.5";
+ rotation = "0 0 -1 89.9544";
+ scale = "1 1 1";
+ dataBlock = "StartPad";
+ };
+ new Item() {
+ position = "20 -15.25 117.25";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape(EndPoint) {
+ position = "15.25 -15.25 129.5";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "EndPad";
+ };
+ new Trigger(Bounds) {
+ position = "-48.5625 24.2544 -1.75715";
+ rotation = "1 0 0 0";
+ scale = "107.716 77.104 149.238";
+ dataBlock = "InBoundsTrigger";
+ polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
+ };
+ new Item() {
+ position = "40.1127 -30.5033 88.5453";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/upward1.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "-0.0346408 0.0258875 0.0146751";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/upward2.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/upward3.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/upward4.dif";
+ showTerrainInside = "0";
+ };
+ new InteriorInstance() {
+ position = "0 0 0";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ interiorFile = "~/data/interiors/intermediate/upward5.dif";
+ showTerrainInside = "0";
+ };
+ new Item() {
+ position = "-12.6438 -8.5134 63.6054";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-16.3986 -23.9457 63.4054";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "TimeTravelItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new Item() {
+ position = "-35.5686 9.1095 13.2384";
+ rotation = "1 0 0 0";
+ scale = "1 1 1";
+ dataBlock = "SuperSpeedItem";
+ collideable = "0";
+ static = "1";
+ rotate = "1";
+ };
+ new StaticShape() {
+ position = "-18.5086 -2.24805 64.2261";
+ rotation = "-0.0199986 0.00283448 0.999796 196.131";
+ scale = "1 1 1";
+ dataBlock = "SignCautionCaution";
+ };
+ new StaticShape() {
+ position = "16.5234 -15.5939 135.545";
+ rotation = "0 0 -1 37.8152";
+ scale = "1 1 1";
+ dataBlock = "SignFinish";
+ };
+ new AudioProfile(MusicProfile) {
+ fileName = "~/data/sound/Beach Party.ogg";
+ description = "AudioMusic";
+ preload = "0";
+ };
+};
+//--- OBJECT WRITE END ---
diff --git a/data/particles/bubble.png b/data/particles/bubble.png
new file mode 100644
index 00000000..0005efb8
Binary files /dev/null and b/data/particles/bubble.png differ
diff --git a/data/particles/saturn.png b/data/particles/saturn.png
new file mode 100644
index 00000000..403ad897
Binary files /dev/null and b/data/particles/saturn.png differ
diff --git a/data/particles/smoke.png b/data/particles/smoke.png
new file mode 100644
index 00000000..9125fc42
Binary files /dev/null and b/data/particles/smoke.png differ
diff --git a/data/particles/spark.png b/data/particles/spark.png
new file mode 100644
index 00000000..177c15f3
Binary files /dev/null and b/data/particles/spark.png differ
diff --git a/data/particles/star.png b/data/particles/star.png
new file mode 100644
index 00000000..c063ca60
Binary files /dev/null and b/data/particles/star.png differ
diff --git a/data/particles/twirl.png b/data/particles/twirl.png
new file mode 100644
index 00000000..32ad1379
Binary files /dev/null and b/data/particles/twirl.png differ
diff --git a/data/shapes/balls/ball-superball.dts b/data/shapes/balls/ball-superball.dts
new file mode 100644
index 00000000..58b89754
Binary files /dev/null and b/data/shapes/balls/ball-superball.dts differ
diff --git a/data/shapes/balls/base.marble.png b/data/shapes/balls/base.marble.png
new file mode 100644
index 00000000..62090805
Binary files /dev/null and b/data/shapes/balls/base.marble.png differ
diff --git a/data/shapes/bitmaptest.png b/data/shapes/bitmaptest.png
new file mode 100644
index 00000000..5fc0f64e
Binary files /dev/null and b/data/shapes/bitmaptest.png differ
diff --git a/data/shapes/blah.jpg b/data/shapes/blah.jpg
new file mode 100644
index 00000000..393f999f
Binary files /dev/null and b/data/shapes/blah.jpg differ
diff --git a/data/shapes/bumpers/pball-round-bottm.jpg b/data/shapes/bumpers/pball-round-bottm.jpg
new file mode 100644
index 00000000..e3460118
Binary files /dev/null and b/data/shapes/bumpers/pball-round-bottm.jpg differ
diff --git a/data/shapes/bumpers/pball-round-bottm.png b/data/shapes/bumpers/pball-round-bottm.png
new file mode 100644
index 00000000..2d67ed98
Binary files /dev/null and b/data/shapes/bumpers/pball-round-bottm.png differ
diff --git a/data/shapes/bumpers/pball-round-side.png b/data/shapes/bumpers/pball-round-side.png
new file mode 100644
index 00000000..b9a75000
Binary files /dev/null and b/data/shapes/bumpers/pball-round-side.png differ
diff --git a/data/shapes/bumpers/pball-round-top.png b/data/shapes/bumpers/pball-round-top.png
new file mode 100644
index 00000000..34e2e19c
Binary files /dev/null and b/data/shapes/bumpers/pball-round-top.png differ
diff --git a/data/shapes/bumpers/pball_round.dts b/data/shapes/bumpers/pball_round.dts
new file mode 100644
index 00000000..fedc3617
Binary files /dev/null and b/data/shapes/bumpers/pball_round.dts differ
diff --git a/data/shapes/bumpers/pball_tri.dts b/data/shapes/bumpers/pball_tri.dts
new file mode 100644
index 00000000..5a24be80
Binary files /dev/null and b/data/shapes/bumpers/pball_tri.dts differ
diff --git a/data/shapes/bumpers/triang-side.png b/data/shapes/bumpers/triang-side.png
new file mode 100644
index 00000000..1dde8a84
Binary files /dev/null and b/data/shapes/bumpers/triang-side.png differ
diff --git a/data/shapes/bumpers/triang-top.png b/data/shapes/bumpers/triang-top.png
new file mode 100644
index 00000000..a6883ef1
Binary files /dev/null and b/data/shapes/bumpers/triang-top.png differ
diff --git a/data/shapes/buttons/button-box.png b/data/shapes/buttons/button-box.png
new file mode 100644
index 00000000..05f3dc4e
Binary files /dev/null and b/data/shapes/buttons/button-box.png differ
diff --git a/data/shapes/buttons/button.png b/data/shapes/buttons/button.png
new file mode 100644
index 00000000..b5904f7a
Binary files /dev/null and b/data/shapes/buttons/button.png differ
diff --git a/data/shapes/buttons/pushbutton.dts b/data/shapes/buttons/pushbutton.dts
new file mode 100644
index 00000000..6a966182
Binary files /dev/null and b/data/shapes/buttons/pushbutton.dts differ
diff --git a/data/shapes/explosives/_ b/data/shapes/explosives/_
new file mode 100644
index 00000000..e69de29b
diff --git a/data/shapes/hazards/base.slick.jpg b/data/shapes/hazards/base.slick.jpg
new file mode 100644
index 00000000..3f219717
Binary files /dev/null and b/data/shapes/hazards/base.slick.jpg differ
diff --git a/data/shapes/hazards/ductfan.dts b/data/shapes/hazards/ductfan.dts
new file mode 100644
index 00000000..6347cb4b
Binary files /dev/null and b/data/shapes/hazards/ductfan.dts differ
diff --git a/data/shapes/hazards/ductfan0.dif b/data/shapes/hazards/ductfan0.dif
new file mode 100644
index 00000000..0b15bc83
Binary files /dev/null and b/data/shapes/hazards/ductfan0.dif differ
diff --git a/data/shapes/hazards/fan-grate.png b/data/shapes/hazards/fan-grate.png
new file mode 100644
index 00000000..c3a04541
Binary files /dev/null and b/data/shapes/hazards/fan-grate.png differ
diff --git a/data/shapes/hazards/fan-side.jpg b/data/shapes/hazards/fan-side.jpg
new file mode 100644
index 00000000..a372cb29
Binary files /dev/null and b/data/shapes/hazards/fan-side.jpg differ
diff --git a/data/shapes/hazards/fan-spiral.jpg b/data/shapes/hazards/fan-spiral.jpg
new file mode 100644
index 00000000..c18d76dc
Binary files /dev/null and b/data/shapes/hazards/fan-spiral.jpg differ
diff --git a/data/shapes/hazards/fan-top.jpg b/data/shapes/hazards/fan-top.jpg
new file mode 100644
index 00000000..68cc5c5a
Binary files /dev/null and b/data/shapes/hazards/fan-top.jpg differ
diff --git a/data/shapes/hazards/friction_high.jpg b/data/shapes/hazards/friction_high.jpg
new file mode 100644
index 00000000..a2376d76
Binary files /dev/null and b/data/shapes/hazards/friction_high.jpg differ
diff --git a/data/shapes/hazards/friction_low.jpg b/data/shapes/hazards/friction_low.jpg
new file mode 100644
index 00000000..e3cc333c
Binary files /dev/null and b/data/shapes/hazards/friction_low.jpg differ
diff --git a/data/shapes/hazards/friction_low2.jpg b/data/shapes/hazards/friction_low2.jpg
new file mode 100644
index 00000000..41c4b627
Binary files /dev/null and b/data/shapes/hazards/friction_low2.jpg differ
diff --git a/data/shapes/hazards/friction_none.jpg b/data/shapes/hazards/friction_none.jpg
new file mode 100644
index 00000000..b6e66e0a
Binary files /dev/null and b/data/shapes/hazards/friction_none.jpg differ
diff --git a/data/shapes/hazards/friction_none2.jpg b/data/shapes/hazards/friction_none2.jpg
new file mode 100644
index 00000000..90b969e4
Binary files /dev/null and b/data/shapes/hazards/friction_none2.jpg differ
diff --git a/data/shapes/hazards/ice.slick.jpg b/data/shapes/hazards/ice.slick.jpg
new file mode 100644
index 00000000..54329397
Binary files /dev/null and b/data/shapes/hazards/ice.slick.jpg differ
diff --git a/data/shapes/hazards/landmine.dts b/data/shapes/hazards/landmine.dts
new file mode 100644
index 00000000..750a3384
Binary files /dev/null and b/data/shapes/hazards/landmine.dts differ
diff --git a/data/shapes/hazards/landmine_grs.jpg b/data/shapes/hazards/landmine_grs.jpg
new file mode 100644
index 00000000..fcc558f0
Binary files /dev/null and b/data/shapes/hazards/landmine_grs.jpg differ
diff --git a/data/shapes/hazards/landmine_spikes.jpg b/data/shapes/hazards/landmine_spikes.jpg
new file mode 100644
index 00000000..ba03b44e
Binary files /dev/null and b/data/shapes/hazards/landmine_spikes.jpg differ
diff --git a/data/shapes/hazards/null.png b/data/shapes/hazards/null.png
new file mode 100644
index 00000000..3b69954b
Binary files /dev/null and b/data/shapes/hazards/null.png differ
diff --git a/data/shapes/hazards/oilslick.dts b/data/shapes/hazards/oilslick.dts
new file mode 100644
index 00000000..a66d15a9
Binary files /dev/null and b/data/shapes/hazards/oilslick.dts differ
diff --git a/data/shapes/hazards/tornado.dts b/data/shapes/hazards/tornado.dts
new file mode 100644
index 00000000..32b080c8
Binary files /dev/null and b/data/shapes/hazards/tornado.dts differ
diff --git a/data/shapes/hazards/tornado_tex.png b/data/shapes/hazards/tornado_tex.png
new file mode 100644
index 00000000..95d96730
Binary files /dev/null and b/data/shapes/hazards/tornado_tex.png differ
diff --git a/data/shapes/hazards/trapdoor.dts b/data/shapes/hazards/trapdoor.dts
new file mode 100644
index 00000000..ebaa8f2f
Binary files /dev/null and b/data/shapes/hazards/trapdoor.dts differ
diff --git a/data/shapes/hazards/trapdoor_t0.jpg b/data/shapes/hazards/trapdoor_t0.jpg
new file mode 100644
index 00000000..16594c00
Binary files /dev/null and b/data/shapes/hazards/trapdoor_t0.jpg differ
diff --git a/data/shapes/images/glow_bounce.dts b/data/shapes/images/glow_bounce.dts
new file mode 100644
index 00000000..ddc522b0
Binary files /dev/null and b/data/shapes/images/glow_bounce.dts differ
diff --git a/data/shapes/images/glow_bounce.png b/data/shapes/images/glow_bounce.png
new file mode 100644
index 00000000..03ab0c7c
Binary files /dev/null and b/data/shapes/images/glow_bounce.png differ
diff --git a/data/shapes/images/helicopter.dts b/data/shapes/images/helicopter.dts
new file mode 100644
index 00000000..ca78d3bc
Binary files /dev/null and b/data/shapes/images/helicopter.dts differ
diff --git a/data/shapes/images/helicopter.jpg b/data/shapes/images/helicopter.jpg
new file mode 100644
index 00000000..1ba1a82e
Binary files /dev/null and b/data/shapes/images/helicopter.jpg differ
diff --git a/data/shapes/items/antigravity.dts b/data/shapes/items/antigravity.dts
new file mode 100644
index 00000000..390e6803
Binary files /dev/null and b/data/shapes/items/antigravity.dts differ
diff --git a/data/shapes/items/antigravity.png b/data/shapes/items/antigravity.png
new file mode 100644
index 00000000..443bc749
Binary files /dev/null and b/data/shapes/items/antigravity.png differ
diff --git a/data/shapes/items/base.gem.png b/data/shapes/items/base.gem.png
new file mode 100644
index 00000000..7d2e7e6a
Binary files /dev/null and b/data/shapes/items/base.gem.png differ
diff --git a/data/shapes/items/black.gem.png b/data/shapes/items/black.gem.png
new file mode 100644
index 00000000..7ef4441e
Binary files /dev/null and b/data/shapes/items/black.gem.png differ
diff --git a/data/shapes/items/blue.gem.png b/data/shapes/items/blue.gem.png
new file mode 100644
index 00000000..91942afa
Binary files /dev/null and b/data/shapes/items/blue.gem.png differ
diff --git a/data/shapes/items/enviro1.jpg b/data/shapes/items/enviro1.jpg
new file mode 100644
index 00000000..06b130ce
Binary files /dev/null and b/data/shapes/items/enviro1.jpg differ
diff --git a/data/shapes/items/gem.dts b/data/shapes/items/gem.dts
new file mode 100644
index 00000000..9ea53b5c
Binary files /dev/null and b/data/shapes/items/gem.dts differ
diff --git a/data/shapes/items/gem.png b/data/shapes/items/gem.png
new file mode 100644
index 00000000..5be2e105
Binary files /dev/null and b/data/shapes/items/gem.png differ
diff --git a/data/shapes/items/gemshine.png b/data/shapes/items/gemshine.png
new file mode 100644
index 00000000..91c04a7a
Binary files /dev/null and b/data/shapes/items/gemshine.png differ
diff --git a/data/shapes/items/green.gem.png b/data/shapes/items/green.gem.png
new file mode 100644
index 00000000..a30dc59a
Binary files /dev/null and b/data/shapes/items/green.gem.png differ
diff --git a/data/shapes/items/hourglasswood.jpg b/data/shapes/items/hourglasswood.jpg
new file mode 100644
index 00000000..f42a30c3
Binary files /dev/null and b/data/shapes/items/hourglasswood.jpg differ
diff --git a/data/shapes/items/itemarrow.jpg b/data/shapes/items/itemarrow.jpg
new file mode 100644
index 00000000..24a2e343
Binary files /dev/null and b/data/shapes/items/itemarrow.jpg differ
diff --git a/data/shapes/items/orange.gem.png b/data/shapes/items/orange.gem.png
new file mode 100644
index 00000000..ceee79b1
Binary files /dev/null and b/data/shapes/items/orange.gem.png differ
diff --git a/data/shapes/items/powerup-bounce.png b/data/shapes/items/powerup-bounce.png
new file mode 100644
index 00000000..78b5bebf
Binary files /dev/null and b/data/shapes/items/powerup-bounce.png differ
diff --git a/data/shapes/items/purple.gem.png b/data/shapes/items/purple.gem.png
new file mode 100644
index 00000000..80092613
Binary files /dev/null and b/data/shapes/items/purple.gem.png differ
diff --git a/data/shapes/items/red.gem.png b/data/shapes/items/red.gem.png
new file mode 100644
index 00000000..0e29eb96
Binary files /dev/null and b/data/shapes/items/red.gem.png differ
diff --git a/data/shapes/items/rocket.jpg b/data/shapes/items/rocket.jpg
new file mode 100644
index 00000000..1cbd28a1
Binary files /dev/null and b/data/shapes/items/rocket.jpg differ
diff --git a/data/shapes/items/shockabsorber.dts b/data/shapes/items/shockabsorber.dts
new file mode 100644
index 00000000..897d762a
Binary files /dev/null and b/data/shapes/items/shockabsorber.dts differ
diff --git a/data/shapes/items/shockabsorber.png b/data/shapes/items/shockabsorber.png
new file mode 100644
index 00000000..c3719efe
Binary files /dev/null and b/data/shapes/items/shockabsorber.png differ
diff --git a/data/shapes/items/sji_shinysteel.png b/data/shapes/items/sji_shinysteel.png
new file mode 100644
index 00000000..001a6982
Binary files /dev/null and b/data/shapes/items/sji_shinysteel.png differ
diff --git a/data/shapes/items/superbounce.dts b/data/shapes/items/superbounce.dts
new file mode 100644
index 00000000..a53ff572
Binary files /dev/null and b/data/shapes/items/superbounce.dts differ
diff --git a/data/shapes/items/superjump.dts b/data/shapes/items/superjump.dts
new file mode 100644
index 00000000..b816e404
Binary files /dev/null and b/data/shapes/items/superjump.dts differ
diff --git a/data/shapes/items/superspeed.dts b/data/shapes/items/superspeed.dts
new file mode 100644
index 00000000..016a36c9
Binary files /dev/null and b/data/shapes/items/superspeed.dts differ
diff --git a/data/shapes/items/timetravel.dts b/data/shapes/items/timetravel.dts
new file mode 100644
index 00000000..037e4d51
Binary files /dev/null and b/data/shapes/items/timetravel.dts differ
diff --git a/data/shapes/items/timetravelitem_glass.png b/data/shapes/items/timetravelitem_glass.png
new file mode 100644
index 00000000..9d608708
Binary files /dev/null and b/data/shapes/items/timetravelitem_glass.png differ
diff --git a/data/shapes/items/timetravelitem_sand.jpg b/data/shapes/items/timetravelitem_sand.jpg
new file mode 100644
index 00000000..18eda96b
Binary files /dev/null and b/data/shapes/items/timetravelitem_sand.jpg differ
diff --git a/data/shapes/items/trampoline128_t0.jpg b/data/shapes/items/trampoline128_t0.jpg
new file mode 100644
index 00000000..6a9de6e6
Binary files /dev/null and b/data/shapes/items/trampoline128_t0.jpg differ
diff --git a/data/shapes/items/turquoise.gem.png b/data/shapes/items/turquoise.gem.png
new file mode 100644
index 00000000..74aa2ae8
Binary files /dev/null and b/data/shapes/items/turquoise.gem.png differ
diff --git a/data/shapes/items/yellow.gem.png b/data/shapes/items/yellow.gem.png
new file mode 100644
index 00000000..6e838c87
Binary files /dev/null and b/data/shapes/items/yellow.gem.png differ
diff --git a/data/shapes/markers/octahedron.dts b/data/shapes/markers/octahedron.dts
new file mode 100644
index 00000000..976c1c04
Binary files /dev/null and b/data/shapes/markers/octahedron.dts differ
diff --git a/data/shapes/pads/blue.jpg b/data/shapes/pads/blue.jpg
new file mode 100644
index 00000000..ab451d6e
Binary files /dev/null and b/data/shapes/pads/blue.jpg differ
diff --git a/data/shapes/pads/bluewhite.ifl b/data/shapes/pads/bluewhite.ifl
new file mode 100644
index 00000000..a811dd36
--- /dev/null
+++ b/data/shapes/pads/bluewhite.ifl
@@ -0,0 +1,2 @@
+blue.jpg 15
+white.jpg 15
\ No newline at end of file
diff --git a/data/shapes/pads/endarea.dts b/data/shapes/pads/endarea.dts
new file mode 100644
index 00000000..4910a75c
Binary files /dev/null and b/data/shapes/pads/endarea.dts differ
diff --git a/data/shapes/pads/exit.jpg b/data/shapes/pads/exit.jpg
new file mode 100644
index 00000000..2e4ab317
Binary files /dev/null and b/data/shapes/pads/exit.jpg differ
diff --git a/data/shapes/pads/green.jpg b/data/shapes/pads/green.jpg
new file mode 100644
index 00000000..3492059f
Binary files /dev/null and b/data/shapes/pads/green.jpg differ
diff --git a/data/shapes/pads/greenwhite.ifl b/data/shapes/pads/greenwhite.ifl
new file mode 100644
index 00000000..1b8df45a
--- /dev/null
+++ b/data/shapes/pads/greenwhite.ifl
@@ -0,0 +1,2 @@
+green.jpg 15
+white.jpg 15
\ No newline at end of file
diff --git a/data/shapes/pads/red.jpg b/data/shapes/pads/red.jpg
new file mode 100644
index 00000000..3aac968c
Binary files /dev/null and b/data/shapes/pads/red.jpg differ
diff --git a/data/shapes/pads/spawn.jpg b/data/shapes/pads/spawn.jpg
new file mode 100644
index 00000000..a8018192
Binary files /dev/null and b/data/shapes/pads/spawn.jpg differ
diff --git a/data/shapes/pads/startarea.dts b/data/shapes/pads/startarea.dts
new file mode 100644
index 00000000..25dbb410
Binary files /dev/null and b/data/shapes/pads/startarea.dts differ
diff --git a/data/shapes/pads/white.jpg b/data/shapes/pads/white.jpg
new file mode 100644
index 00000000..cf0b88f8
Binary files /dev/null and b/data/shapes/pads/white.jpg differ
diff --git a/data/shapes/pads/whiteblue.ifl b/data/shapes/pads/whiteblue.ifl
new file mode 100644
index 00000000..69877bdd
--- /dev/null
+++ b/data/shapes/pads/whiteblue.ifl
@@ -0,0 +1,2 @@
+white.jpg 15
+blue.jpg 15
\ No newline at end of file
diff --git a/data/shapes/pads/whitegreen.ifl b/data/shapes/pads/whitegreen.ifl
new file mode 100644
index 00000000..f6b12ccb
--- /dev/null
+++ b/data/shapes/pads/whitegreen.ifl
@@ -0,0 +1,2 @@
+white.jpg 15
+green.jpg 15
\ No newline at end of file
diff --git a/data/shapes/parts/_ b/data/shapes/parts/_
new file mode 100644
index 00000000..e69de29b
diff --git a/data/shapes/quicksand.dts b/data/shapes/quicksand.dts
new file mode 100644
index 00000000..3283859d
Binary files /dev/null and b/data/shapes/quicksand.dts differ
diff --git a/data/shapes/signs/base.cautionsign.jpg b/data/shapes/signs/base.cautionsign.jpg
new file mode 100644
index 00000000..0a547a1c
Binary files /dev/null and b/data/shapes/signs/base.cautionsign.jpg differ
diff --git a/data/shapes/signs/base.plainsign.jpg b/data/shapes/signs/base.plainsign.jpg
new file mode 100644
index 00000000..06a7e6f0
Binary files /dev/null and b/data/shapes/signs/base.plainsign.jpg differ
diff --git a/data/shapes/signs/caution.cautionsign.jpg b/data/shapes/signs/caution.cautionsign.jpg
new file mode 100644
index 00000000..8a31d672
Binary files /dev/null and b/data/shapes/signs/caution.cautionsign.jpg differ
diff --git a/data/shapes/signs/cautionsign.dts b/data/shapes/signs/cautionsign.dts
new file mode 100644
index 00000000..c4a38961
Binary files /dev/null and b/data/shapes/signs/cautionsign.dts differ
diff --git a/data/shapes/signs/cautionsign_pole.jpg b/data/shapes/signs/cautionsign_pole.jpg
new file mode 100644
index 00000000..284e1bf8
Binary files /dev/null and b/data/shapes/signs/cautionsign_pole.jpg differ
diff --git a/data/shapes/signs/cautionsignwood.jpg b/data/shapes/signs/cautionsignwood.jpg
new file mode 100644
index 00000000..3acba117
Binary files /dev/null and b/data/shapes/signs/cautionsignwood.jpg differ
diff --git a/data/shapes/signs/custom_woodblockside.jpg b/data/shapes/signs/custom_woodblockside.jpg
new file mode 100644
index 00000000..f42a30c3
Binary files /dev/null and b/data/shapes/signs/custom_woodblockside.jpg differ
diff --git a/data/shapes/signs/danger.cautionsign.jpg b/data/shapes/signs/danger.cautionsign.jpg
new file mode 100644
index 00000000..dc6c1962
Binary files /dev/null and b/data/shapes/signs/danger.cautionsign.jpg differ
diff --git a/data/shapes/signs/down.plainsign.jpg b/data/shapes/signs/down.plainsign.jpg
new file mode 100644
index 00000000..41192b3e
Binary files /dev/null and b/data/shapes/signs/down.plainsign.jpg differ
diff --git a/data/shapes/signs/finishback.ifl b/data/shapes/signs/finishback.ifl
new file mode 100644
index 00000000..ca6b4edc
--- /dev/null
+++ b/data/shapes/signs/finishback.ifl
@@ -0,0 +1,15 @@
+finishback_01.png 45
+finishback_02.png 15
+finishback_03.png 15
+finishback_05.png 10
+finishback_04.png 5
+finishback_05.png 2
+finishback_04.png 3
+finishback_05.png 6
+finishback_04.png 2
+finishback_05.png 2
+finishback_04.png 10
+finishback_05.png
+finishback_04.png
+finishback_05.png 2
+finishback_04.png
diff --git a/data/shapes/signs/finishback_01.png b/data/shapes/signs/finishback_01.png
new file mode 100644
index 00000000..d3f9f9ff
Binary files /dev/null and b/data/shapes/signs/finishback_01.png differ
diff --git a/data/shapes/signs/finishback_02.png b/data/shapes/signs/finishback_02.png
new file mode 100644
index 00000000..755158dd
Binary files /dev/null and b/data/shapes/signs/finishback_02.png differ
diff --git a/data/shapes/signs/finishback_03.png b/data/shapes/signs/finishback_03.png
new file mode 100644
index 00000000..0ff34d4a
Binary files /dev/null and b/data/shapes/signs/finishback_03.png differ
diff --git a/data/shapes/signs/finishback_04.png b/data/shapes/signs/finishback_04.png
new file mode 100644
index 00000000..0f206fe1
Binary files /dev/null and b/data/shapes/signs/finishback_04.png differ
diff --git a/data/shapes/signs/finishback_05.png b/data/shapes/signs/finishback_05.png
new file mode 100644
index 00000000..0d139572
Binary files /dev/null and b/data/shapes/signs/finishback_05.png differ
diff --git a/data/shapes/signs/finishlinesign.dts b/data/shapes/signs/finishlinesign.dts
new file mode 100644
index 00000000..619f5464
Binary files /dev/null and b/data/shapes/signs/finishlinesign.dts differ
diff --git a/data/shapes/signs/finishsign.ifl b/data/shapes/signs/finishsign.ifl
new file mode 100644
index 00000000..5f6f4c15
--- /dev/null
+++ b/data/shapes/signs/finishsign.ifl
@@ -0,0 +1,15 @@
+finishsign_01.png 45
+finishsign_02.png 15
+finishsign_03.png 15
+finishsign_05.png 10
+finishsign_04.png 5
+finishsign_05.png 2
+finishsign_04.png 3
+finishsign_05.png 6
+finishsign_04.png 2
+finishsign_05.png 2
+finishsign_04.png 10
+finishsign_05.png
+finishsign_04.png
+finishsign_05.png 2
+finishsign_04.png
diff --git a/data/shapes/signs/finishsign_01.png b/data/shapes/signs/finishsign_01.png
new file mode 100644
index 00000000..29fd47e4
Binary files /dev/null and b/data/shapes/signs/finishsign_01.png differ
diff --git a/data/shapes/signs/finishsign_02.png b/data/shapes/signs/finishsign_02.png
new file mode 100644
index 00000000..a8f06649
Binary files /dev/null and b/data/shapes/signs/finishsign_02.png differ
diff --git a/data/shapes/signs/finishsign_03.png b/data/shapes/signs/finishsign_03.png
new file mode 100644
index 00000000..d5b7c627
Binary files /dev/null and b/data/shapes/signs/finishsign_03.png differ
diff --git a/data/shapes/signs/finishsign_04.png b/data/shapes/signs/finishsign_04.png
new file mode 100644
index 00000000..2f986b12
Binary files /dev/null and b/data/shapes/signs/finishsign_04.png differ
diff --git a/data/shapes/signs/finishsign_05.png b/data/shapes/signs/finishsign_05.png
new file mode 100644
index 00000000..349b3251
Binary files /dev/null and b/data/shapes/signs/finishsign_05.png differ
diff --git a/data/shapes/signs/finishsign_metal.png b/data/shapes/signs/finishsign_metal.png
new file mode 100644
index 00000000..134433c4
Binary files /dev/null and b/data/shapes/signs/finishsign_metal.png differ
diff --git a/data/shapes/signs/finishsign_purple.png b/data/shapes/signs/finishsign_purple.png
new file mode 100644
index 00000000..f121d8d7
Binary files /dev/null and b/data/shapes/signs/finishsign_purple.png differ
diff --git a/data/shapes/signs/left.plainsign.jpg b/data/shapes/signs/left.plainsign.jpg
new file mode 100644
index 00000000..15c277f1
Binary files /dev/null and b/data/shapes/signs/left.plainsign.jpg differ
diff --git a/data/shapes/signs/plainsign.dts b/data/shapes/signs/plainsign.dts
new file mode 100644
index 00000000..e6e904ff
Binary files /dev/null and b/data/shapes/signs/plainsign.dts differ
diff --git a/data/shapes/signs/plainsignwood.jpg b/data/shapes/signs/plainsignwood.jpg
new file mode 100644
index 00000000..06a7e6f0
Binary files /dev/null and b/data/shapes/signs/plainsignwood.jpg differ
diff --git a/data/shapes/signs/right.plainsign.jpg b/data/shapes/signs/right.plainsign.jpg
new file mode 100644
index 00000000..dac29f55
Binary files /dev/null and b/data/shapes/signs/right.plainsign.jpg differ
diff --git a/data/shapes/signs/signwood.jpg b/data/shapes/signs/signwood.jpg
new file mode 100644
index 00000000..f42a30c3
Binary files /dev/null and b/data/shapes/signs/signwood.jpg differ
diff --git a/data/shapes/signs/signwood2.jpg b/data/shapes/signs/signwood2.jpg
new file mode 100644
index 00000000..97da2546
Binary files /dev/null and b/data/shapes/signs/signwood2.jpg differ
diff --git a/data/shapes/signs/up.plainsign.jpg b/data/shapes/signs/up.plainsign.jpg
new file mode 100644
index 00000000..5ae539ec
Binary files /dev/null and b/data/shapes/signs/up.plainsign.jpg differ
diff --git a/data/shapes/signwood.jpg b/data/shapes/signwood.jpg
new file mode 100644
index 00000000..59e526ff
Binary files /dev/null and b/data/shapes/signwood.jpg differ
diff --git a/data/shapes/traps/_ b/data/shapes/traps/_
new file mode 100644
index 00000000..e69de29b
diff --git a/data/shapes/trophies/_ b/data/shapes/trophies/_
new file mode 100644
index 00000000..e69de29b
diff --git a/data/skies/enviro_map.jpg b/data/skies/enviro_map.jpg
new file mode 100644
index 00000000..622f8607
Binary files /dev/null and b/data/skies/enviro_map.jpg differ
diff --git a/data/skies/sky_bk.jpg b/data/skies/sky_bk.jpg
new file mode 100644
index 00000000..734869c1
Binary files /dev/null and b/data/skies/sky_bk.jpg differ
diff --git a/data/skies/sky_day.dml b/data/skies/sky_day.dml
new file mode 100644
index 00000000..3e8d87a9
--- /dev/null
+++ b/data/skies/sky_day.dml
@@ -0,0 +1,7 @@
+sky_FR
+sky_RT
+sky_BK
+sky_LF
+sky_UP
+sky_DN
+enviro_map
diff --git a/data/skies/sky_dn.jpg b/data/skies/sky_dn.jpg
new file mode 100644
index 00000000..db4e077e
Binary files /dev/null and b/data/skies/sky_dn.jpg differ
diff --git a/data/skies/sky_fr.jpg b/data/skies/sky_fr.jpg
new file mode 100644
index 00000000..39c0259f
Binary files /dev/null and b/data/skies/sky_fr.jpg differ
diff --git a/data/skies/sky_lf.jpg b/data/skies/sky_lf.jpg
new file mode 100644
index 00000000..3d244575
Binary files /dev/null and b/data/skies/sky_lf.jpg differ
diff --git a/data/skies/sky_rt.jpg b/data/skies/sky_rt.jpg
new file mode 100644
index 00000000..ac4adc36
Binary files /dev/null and b/data/skies/sky_rt.jpg differ
diff --git a/data/skies/sky_up.jpg b/data/skies/sky_up.jpg
new file mode 100644
index 00000000..d4f04696
Binary files /dev/null and b/data/skies/sky_up.jpg differ
diff --git a/data/sound/beach party.ogg b/data/sound/beach party.ogg
new file mode 100644
index 00000000..0939a0c1
Binary files /dev/null and b/data/sound/beach party.ogg differ
diff --git a/data/sound/bouncehard1.wav b/data/sound/bouncehard1.wav
new file mode 100644
index 00000000..6dcf9b5e
Binary files /dev/null and b/data/sound/bouncehard1.wav differ
diff --git a/data/sound/bouncehard2.wav b/data/sound/bouncehard2.wav
new file mode 100644
index 00000000..8f9c629c
Binary files /dev/null and b/data/sound/bouncehard2.wav differ
diff --git a/data/sound/bouncehard3.wav b/data/sound/bouncehard3.wav
new file mode 100644
index 00000000..55e10fd6
Binary files /dev/null and b/data/sound/bouncehard3.wav differ
diff --git a/data/sound/bouncehard4.wav b/data/sound/bouncehard4.wav
new file mode 100644
index 00000000..7cdddcc3
Binary files /dev/null and b/data/sound/bouncehard4.wav differ
diff --git a/data/sound/bumper1.wav b/data/sound/bumper1.wav
new file mode 100644
index 00000000..e2fb2589
Binary files /dev/null and b/data/sound/bumper1.wav differ
diff --git a/data/sound/bumperding1.wav b/data/sound/bumperding1.wav
new file mode 100644
index 00000000..05cc9fea
Binary files /dev/null and b/data/sound/bumperding1.wav differ
diff --git a/data/sound/buttonover.wav b/data/sound/buttonover.wav
new file mode 100644
index 00000000..0a0e2f7c
Binary files /dev/null and b/data/sound/buttonover.wav differ
diff --git a/data/sound/buttonpress.wav b/data/sound/buttonpress.wav
new file mode 100644
index 00000000..af5f9a92
Binary files /dev/null and b/data/sound/buttonpress.wav differ
diff --git a/data/sound/classic vibe.ogg b/data/sound/classic vibe.ogg
new file mode 100644
index 00000000..0ab5f9af
Binary files /dev/null and b/data/sound/classic vibe.ogg differ
diff --git a/data/sound/dosuperjump.wav b/data/sound/dosuperjump.wav
new file mode 100644
index 00000000..f0b2d701
Binary files /dev/null and b/data/sound/dosuperjump.wav differ
diff --git a/data/sound/dosuperspeed.wav b/data/sound/dosuperspeed.wav
new file mode 100644
index 00000000..a58974c9
Binary files /dev/null and b/data/sound/dosuperspeed.wav differ
diff --git a/data/sound/explode1.wav b/data/sound/explode1.wav
new file mode 100644
index 00000000..b130d982
Binary files /dev/null and b/data/sound/explode1.wav differ
diff --git a/data/sound/fan_loop.wav b/data/sound/fan_loop.wav
new file mode 100644
index 00000000..c70c4c68
Binary files /dev/null and b/data/sound/fan_loop.wav differ
diff --git a/data/sound/firewrks.wav b/data/sound/firewrks.wav
new file mode 100644
index 00000000..573a1e3a
Binary files /dev/null and b/data/sound/firewrks.wav differ
diff --git a/data/sound/forcefield.wav b/data/sound/forcefield.wav
new file mode 100644
index 00000000..e8e3230f
Binary files /dev/null and b/data/sound/forcefield.wav differ
diff --git a/data/sound/go.wav b/data/sound/go.wav
new file mode 100644
index 00000000..e8260143
Binary files /dev/null and b/data/sound/go.wav differ
diff --git a/data/sound/gotallgems.wav b/data/sound/gotallgems.wav
new file mode 100644
index 00000000..38be6d76
Binary files /dev/null and b/data/sound/gotallgems.wav differ
diff --git a/data/sound/gotgem.wav b/data/sound/gotgem.wav
new file mode 100644
index 00000000..4e3dae0e
Binary files /dev/null and b/data/sound/gotgem.wav differ
diff --git a/data/sound/gotpowerup.wav b/data/sound/gotpowerup.wav
new file mode 100644
index 00000000..220a2ebe
Binary files /dev/null and b/data/sound/gotpowerup.wav differ
diff --git a/data/sound/gravitychange.wav b/data/sound/gravitychange.wav
new file mode 100644
index 00000000..b808eb82
Binary files /dev/null and b/data/sound/gravitychange.wav differ
diff --git a/data/sound/groovepolice.ogg b/data/sound/groovepolice.ogg
new file mode 100644
index 00000000..14e6fd30
Binary files /dev/null and b/data/sound/groovepolice.ogg differ
diff --git a/data/sound/infotutorial.wav b/data/sound/infotutorial.wav
new file mode 100644
index 00000000..5069e6ca
Binary files /dev/null and b/data/sound/infotutorial.wav differ
diff --git a/data/sound/jump.wav b/data/sound/jump.wav
new file mode 100644
index 00000000..337836b4
Binary files /dev/null and b/data/sound/jump.wav differ
diff --git a/data/sound/marble_fall.wav b/data/sound/marble_fall.wav
new file mode 100644
index 00000000..a3953c78
Binary files /dev/null and b/data/sound/marble_fall.wav differ
diff --git a/data/sound/missinggems.wav b/data/sound/missinggems.wav
new file mode 100644
index 00000000..0cfe543f
Binary files /dev/null and b/data/sound/missinggems.wav differ
diff --git a/data/sound/movingblockloop.wav b/data/sound/movingblockloop.wav
new file mode 100644
index 00000000..c3563aa1
Binary files /dev/null and b/data/sound/movingblockloop.wav differ
diff --git a/data/sound/platformlowering.wav b/data/sound/platformlowering.wav
new file mode 100644
index 00000000..9125218e
Binary files /dev/null and b/data/sound/platformlowering.wav differ
diff --git a/data/sound/pugyrocoptervoice.wav b/data/sound/pugyrocoptervoice.wav
new file mode 100644
index 00000000..3b601912
Binary files /dev/null and b/data/sound/pugyrocoptervoice.wav differ
diff --git a/data/sound/pushockabsorbervoice.wav b/data/sound/pushockabsorbervoice.wav
new file mode 100644
index 00000000..83883cab
Binary files /dev/null and b/data/sound/pushockabsorbervoice.wav differ
diff --git a/data/sound/pusuperbouncevoice.wav b/data/sound/pusuperbouncevoice.wav
new file mode 100644
index 00000000..550c07c8
Binary files /dev/null and b/data/sound/pusuperbouncevoice.wav differ
diff --git a/data/sound/pusuperjumpvoice.wav b/data/sound/pusuperjumpvoice.wav
new file mode 100644
index 00000000..bfa8413b
Binary files /dev/null and b/data/sound/pusuperjumpvoice.wav differ
diff --git a/data/sound/pusuperspeedvoice.wav b/data/sound/pusuperspeedvoice.wav
new file mode 100644
index 00000000..b14e61a2
Binary files /dev/null and b/data/sound/pusuperspeedvoice.wav differ
diff --git a/data/sound/putimetravelvoice.wav b/data/sound/putimetravelvoice.wav
new file mode 100644
index 00000000..f864bab5
Binary files /dev/null and b/data/sound/putimetravelvoice.wav differ
diff --git a/data/sound/ready.wav b/data/sound/ready.wav
new file mode 100644
index 00000000..6ad35ff2
Binary files /dev/null and b/data/sound/ready.wav differ
diff --git a/data/sound/rolling_hard.wav b/data/sound/rolling_hard.wav
new file mode 100644
index 00000000..f85dc6b9
Binary files /dev/null and b/data/sound/rolling_hard.wav differ
diff --git a/data/sound/set.wav b/data/sound/set.wav
new file mode 100644
index 00000000..411f0022
Binary files /dev/null and b/data/sound/set.wav differ
diff --git a/data/sound/shell.ogg b/data/sound/shell.ogg
new file mode 100644
index 00000000..173fa750
Binary files /dev/null and b/data/sound/shell.ogg differ
diff --git a/data/sound/sliding.wav b/data/sound/sliding.wav
new file mode 100644
index 00000000..2c59bd99
Binary files /dev/null and b/data/sound/sliding.wav differ
diff --git a/data/sound/spawn.wav b/data/sound/spawn.wav
new file mode 100644
index 00000000..f811c2f5
Binary files /dev/null and b/data/sound/spawn.wav differ
diff --git a/data/sound/superbounceactive.wav b/data/sound/superbounceactive.wav
new file mode 100644
index 00000000..91ae3711
Binary files /dev/null and b/data/sound/superbounceactive.wav differ
diff --git a/data/sound/testing.wav b/data/sound/testing.wav
new file mode 100644
index 00000000..6da64542
Binary files /dev/null and b/data/sound/testing.wav differ
diff --git a/data/sound/timetravelactive.wav b/data/sound/timetravelactive.wav
new file mode 100644
index 00000000..7297c565
Binary files /dev/null and b/data/sound/timetravelactive.wav differ
diff --git a/data/sound/tornado.wav b/data/sound/tornado.wav
new file mode 100644
index 00000000..afea79a4
Binary files /dev/null and b/data/sound/tornado.wav differ
diff --git a/data/sound/trapdooropen.wav b/data/sound/trapdooropen.wav
new file mode 100644
index 00000000..5685bee5
Binary files /dev/null and b/data/sound/trapdooropen.wav differ
diff --git a/data/sound/use_gyrocopter.wav b/data/sound/use_gyrocopter.wav
new file mode 100644
index 00000000..b1c2a38f
Binary files /dev/null and b/data/sound/use_gyrocopter.wav differ
diff --git a/data/sound/whoosh.wav b/data/sound/whoosh.wav
new file mode 100644
index 00000000..ea15823c
Binary files /dev/null and b/data/sound/whoosh.wav differ
diff --git a/data/ui/aboutdlg.gui.dso b/data/ui/aboutdlg.gui.dso
new file mode 100644
index 00000000..1b711f67
Binary files /dev/null and b/data/ui/aboutdlg.gui.dso differ
diff --git a/data/ui/background.jpg b/data/ui/background.jpg
new file mode 100644
index 00000000..fdde4fbd
Binary files /dev/null and b/data/ui/background.jpg differ
diff --git a/data/ui/choose/_ b/data/ui/choose/_
new file mode 100644
index 00000000..e69de29b
diff --git a/data/ui/choosegui.gui.dso b/data/ui/choosegui.gui.dso
new file mode 100644
index 00000000..d1c935c8
Binary files /dev/null and b/data/ui/choosegui.gui.dso differ
diff --git a/data/ui/common/cache/arial bold_14.gft b/data/ui/common/cache/arial bold_14.gft
new file mode 100644
index 00000000..fa216c40
Binary files /dev/null and b/data/ui/common/cache/arial bold_14.gft differ
diff --git a/data/ui/common/cache/arial italic_14.gft b/data/ui/common/cache/arial italic_14.gft
new file mode 100644
index 00000000..22fcbee3
Binary files /dev/null and b/data/ui/common/cache/arial italic_14.gft differ
diff --git a/data/ui/common/cache/arial_12.gft b/data/ui/common/cache/arial_12.gft
new file mode 100644
index 00000000..a720eef9
Binary files /dev/null and b/data/ui/common/cache/arial_12.gft differ
diff --git a/data/ui/common/cache/arial_13.gft b/data/ui/common/cache/arial_13.gft
new file mode 100644
index 00000000..8b1758f9
Binary files /dev/null and b/data/ui/common/cache/arial_13.gft differ
diff --git a/data/ui/common/cache/arial_14.gft b/data/ui/common/cache/arial_14.gft
new file mode 100644
index 00000000..0907ab61
Binary files /dev/null and b/data/ui/common/cache/arial_14.gft differ
diff --git a/data/ui/common/cache/arial_16.gft b/data/ui/common/cache/arial_16.gft
new file mode 100644
index 00000000..ce21cee6
Binary files /dev/null and b/data/ui/common/cache/arial_16.gft differ
diff --git a/data/ui/common/cache/arial_24.gft b/data/ui/common/cache/arial_24.gft
new file mode 100644
index 00000000..1f5b2aa0
Binary files /dev/null and b/data/ui/common/cache/arial_24.gft differ
diff --git a/data/ui/common/cache/domcasuald_24.gft b/data/ui/common/cache/domcasuald_24.gft
new file mode 100644
index 00000000..bfa8861f
Binary files /dev/null and b/data/ui/common/cache/domcasuald_24.gft differ
diff --git a/data/ui/common/cache/domcasuald_32.gft b/data/ui/common/cache/domcasuald_32.gft
new file mode 100644
index 00000000..9b67e974
Binary files /dev/null and b/data/ui/common/cache/domcasuald_32.gft differ
diff --git a/data/ui/common/cache/expo_32.gft b/data/ui/common/cache/expo_32.gft
new file mode 100644
index 00000000..d5ed3c77
Binary files /dev/null and b/data/ui/common/cache/expo_32.gft differ
diff --git a/data/ui/common/cache/expo_50.gft b/data/ui/common/cache/expo_50.gft
new file mode 100644
index 00000000..0c48da5e
Binary files /dev/null and b/data/ui/common/cache/expo_50.gft differ
diff --git a/data/ui/common/cache/lucida console_12.gft b/data/ui/common/cache/lucida console_12.gft
new file mode 100644
index 00000000..0d0a9ace
Binary files /dev/null and b/data/ui/common/cache/lucida console_12.gft differ
diff --git a/data/ui/common/consoledlg.gui.dso b/data/ui/common/consoledlg.gui.dso
new file mode 100644
index 00000000..6f6a9467
Binary files /dev/null and b/data/ui/common/consoledlg.gui.dso differ
diff --git a/data/ui/common/cur_3darrow.png b/data/ui/common/cur_3darrow.png
new file mode 100644
index 00000000..ee03cd48
Binary files /dev/null and b/data/ui/common/cur_3darrow.png differ
diff --git a/data/ui/common/darkborder.png b/data/ui/common/darkborder.png
new file mode 100644
index 00000000..5d5c38a9
Binary files /dev/null and b/data/ui/common/darkborder.png differ
diff --git a/data/ui/common/darkscroll.png b/data/ui/common/darkscroll.png
new file mode 100644
index 00000000..221845c0
Binary files /dev/null and b/data/ui/common/darkscroll.png differ
diff --git a/data/ui/common/darkwindow.png b/data/ui/common/darkwindow.png
new file mode 100644
index 00000000..f5d662a5
Binary files /dev/null and b/data/ui/common/darkwindow.png differ
diff --git a/data/ui/common/defaultprofiles.cs b/data/ui/common/defaultprofiles.cs
new file mode 100644
index 00000000..137c8210
--- /dev/null
+++ b/data/ui/common/defaultprofiles.cs
@@ -0,0 +1,470 @@
+//-----------------------------------------------------------------------------
+// Torque Game Engine
+//
+// Copyright (c) 2001 GarageGames.Com
+// Portions Copyright (c) 2001 by Sierra Online, Inc.
+//-----------------------------------------------------------------------------
+
+//--------------------------------------------------------------------------
+
+$Gui::fontCacheDirectory = expandFilename("./cache");
+$Gui::clipboardFile = expandFilename("./cache/clipboard.gui");
+
+// GuiDefaultProfile is a special case, all other profiles are initialized
+// to the contents of this profile first then the profile specific
+// overrides are assigned.
+
+if(!isObject(GuiDefaultProfile)) new GuiControlProfile (GuiDefaultProfile)
+{
+ tab = false;
+ canKeyFocus = false;
+ hasBitmapArray = false;
+ mouseOverSelected = false;
+
+ // fill color
+ opaque = false;
+ fillColor = ($platform $= "macos") ? "211 211 211" : "192 192 192";
+ fillColorHL = ($platform $= "macos") ? "244 244 244" : "220 220 220";
+ fillColorNA = ($platform $= "macos") ? "244 244 244" : "220 220 220";
+
+ // border color
+ border = false;
+ borderColor = "0 0 0";
+ borderColorHL = "128 128 128";
+ borderColorNA = "64 64 64";
+
+ // font
+ fontType = "Arial";
+ fontSize = 14;
+
+ fontColor = "0 0 0";
+ fontColorHL = "32 100 100";
+ fontColorNA = "0 0 0";
+ fontColorSEL= "200 200 200";
+
+ // bitmap information
+ bitmap = ($platform $= "macos") ? "./osxWindow" : "./darkWindow";
+ bitmapBase = "";
+ textOffset = "0 0";
+
+ // used by guiTextControl
+ modal = true;
+ justify = "left";
+ autoSizeWidth = false;
+ autoSizeHeight = false;
+ returnTab = false;
+ numbersOnly = false;
+ cursorColor = "0 0 0 255";
+
+ // sounds
+ soundButtonDown = "";
+ soundButtonOver = "";
+};
+
+
+if(!isObject(GuiComic18Profile)) new GuiControlProfile ( GuiComic18Profile )
+{
+ fontType = "Comic Sans MS Bold";
+ fontSize = 18;
+ fontColor = "0 0 0";
+ autoSizeWidth = true;
+ autoSizeHeight = true;
+};
+
+
+if(!isObject(GuiComic24Profile)) new GuiControlProfile ( GuiComic24Profile )
+{
+ fontType = "Comic Sans MS Bold";
+ fontSize = 24;
+ fontColor = "0 0 0";
+ autoSizeWidth = true;
+ autoSizeHeight = true;
+};
+
+
+if(!isObject(GuiComic36Profile)) new GuiControlProfile ( GuiComic36Profile )
+{
+ fontType = "Comic Sans MS Bold";
+ fontSize = 36;
+ fontColor = "0 0 0";
+ autoSizeWidth = true;
+ autoSizeHeight = true;
+};
+
+
+if(!isObject(GuiInputCtrlProfile)) new GuiControlProfile( GuiInputCtrlProfile )
+{
+ tab = true;
+ canKeyFocus = true;
+};
+
+if(!isObject(GuiDialogProfile)) new GuiControlProfile(GuiDialogProfile);
+
+
+if(!isObject(GuiSolidDefaultProfile)) new GuiControlProfile (GuiSolidDefaultProfile)
+{
+ opaque = true;
+ border = true;
+};
+
+if(!isObject(GuiWindowProfile)) new GuiControlProfile (GuiWindowProfile)
+{
+ opaque = true;
+ border = 2;
+ fillColor = ($platform $= "macos") ? "211 211 211" : "192 192 192";
+ fillColorHL = ($platform $= "macos") ? "190 255 255" : "64 150 150";
+ fillColorNA = ($platform $= "macos") ? "255 255 255" : "150 150 150";
+ fontColor = ($platform $= "macos") ? "0 0 0" : "255 255 255";
+ fontColorHL = ($platform $= "macos") ? "200 200 200" : "0 0 0";
+ text = "GuiWindowCtrl test";
+ bitmap = ($platform $= "macos") ? "./osxWindow" : "./darkWindow";
+ textOffset = ($platform $= "macos") ? "5 5" : "6 6";
+ hasBitmapArray = true;
+ justify = ($platform $= "macos") ? "center" : "left";
+};
+
+if(!isObject(GuiToolWindowProfile)) new GuiControlProfile (GuiToolWindowProfile)
+{
+ opaque = true;
+ border = 2;
+ fillColor = "192 192 192";
+ fillColorHL = "64 150 150";
+ fillColorNA = "150 150 150";
+ fontColor = "255 255 255";
+ fontColorHL = "0 0 0";
+ bitmap = "./torqueToolWindow";
+ textOffset = "6 6";
+};
+
+if(!isObject(EditorToolButtonProfile)) new GuiControlProfile (EditorToolButtonProfile)
+{
+ opaque = true;
+ border = 2;
+};
+
+if(!isObject(GuiContentProfile)) new GuiControlProfile (GuiContentProfile)
+{
+ opaque = true;
+ fillColor = "255 255 255";
+};
+
+if(!isObject(GuiModelessDialogProfile)) new GuiControlProfile("GuiModelessDialogProfile")
+{
+ modal = false;
+};
+
+if(!isObject(GuiButtonProfile)) new GuiControlProfile (GuiButtonProfile)
+{
+ opaque = true;
+ border = true;
+ fontColor = "0 0 0";
+ fontColorHL = "32 100 100";
+ fixedExtent = true;
+ justify = "center";
+ canKeyFocus = false;
+};
+
+if(!isObject(GuiBorderButtonProfile)) new GuiControlProfile (GuiBorderButtonProfile)
+{
+ fontColorHL = "0 0 0";
+};
+
+if(!isObject(GuiMenuBarProfile)) new GuiControlProfile (GuiMenuBarProfile)
+{
+ opaque = true;
+ fillColorHL = "0 0 96";
+ border = 4;
+ fontColor = "0 0 0";
+ fontColorHL = "255 255 255";
+ fontColorNA = "128 128 128";
+ fixedExtent = true;
+ justify = "center";
+ canKeyFocus = false;
+ mouseOverSelected = true;
+ bitmap = ($platform $= "macos") ? "./osxMenu" : "./torqueMenu";
+ hasBitmapArray = true;
+};
+
+if(!isObject(GuiButtonSmProfile)) new GuiControlProfile (GuiButtonSmProfile : GuiButtonProfile)
+{
+ fontSize = 14;
+};
+
+if(!isObject(GuiRadioProfile)) new GuiControlProfile (GuiRadioProfile)
+{
+ fontSize = 14;
+ fillColor = "232 232 232";
+ fontColorHL = "32 100 100";
+ fixedExtent = true;
+ bitmap = ($platform $= "macos") ? "./osxRadio" : "./torqueRadio";
+ hasBitmapArray = true;
+};
+
+if(!isObject(GuiScrollProfile)) new GuiControlProfile (GuiScrollProfile)
+{
+ opaque = true;
+ fillColor = "255 255 255";
+ border = 3;
+ borderThickness = 2;
+ borderColor = "0 0 0";
+ bitmap = ($platform $= "macos") ? "./osxScroll" : "./darkScroll";
+ hasBitmapArray = true;
+};
+
+if(!isObject(GuiSliderProfile)) new GuiControlProfile (GuiSliderProfile);
+
+if(!isObject(GuiTextProfile)) new GuiControlProfile (GuiTextProfile)
+{
+ fontColor = "0 0 0";
+ fontColorLink = "255 96 96";
+ fontColorLinkHL = "0 0 255";
+ autoSizeWidth = true;
+ autoSizeHeight = true;
+};
+
+if(!isObject(EditorTextProfile)) new GuiControlProfile (EditorTextProfile)
+{
+ fontType = "Arial Bold";
+ fontColor = "0 0 0";
+ autoSizeWidth = true;
+ autoSizeHeight = true;
+};
+
+if(!isObject(EditorTextProfileWhite)) new GuiControlProfile (EditorTextProfileWhite)
+{
+ fontType = "Arial Bold";
+ fontColor = "255 255 255";
+ autoSizeWidth = true;
+ autoSizeHeight = true;
+};
+
+if(!isObject(GuiMediumTextProfile)) new GuiControlProfile (GuiMediumTextProfile : GuiTextProfile)
+{
+ fontSize = 24;
+};
+
+if(!isObject(GuiBigTextProfile)) new GuiControlProfile (GuiBigTextProfile : GuiTextProfile)
+{
+ fontSize = 36;
+};
+
+if(!isObject(GuiCenterTextProfile)) new GuiControlProfile (GuiCenterTextProfile : GuiTextProfile)
+{
+ justify = "center";
+};
+
+if(!isObject(MissionEditorProfile)) new GuiControlProfile (MissionEditorProfile)
+{
+ canKeyFocus = true;
+};
+
+if(!isObject(EditorScrollProfile)) new GuiControlProfile (EditorScrollProfile)
+{
+ opaque = true;
+ fillColor = "192 192 192 192";
+ border = 3;
+ borderThickness = 2;
+ borderColor = "0 0 0";
+ bitmap = "./darkScroll";
+ hasBitmapArray = true;
+};
+
+if(!isObject(GuiTextEditProfile)) new GuiControlProfile (GuiTextEditProfile)
+{
+ opaque = true;
+ fillColor = "255 255 255";
+ fillColorHL = "128 128 128";
+ border = 3;
+ borderThickness = 2;
+ borderColor = "0 0 0";
+ fontColor = "0 0 0";
+ fontColorHL = "255 255 255";
+ fontColorNA = "128 128 128";
+ textOffset = "0 2";
+ autoSizeWidth = false;
+ autoSizeHeight = true;
+ tab = true;
+ canKeyFocus = true;
+};
+
+if(!isObject(GuiControlListPopupProfile)) new GuiControlProfile (GuiControlListPopupProfile)
+{
+ opaque = true;
+ fillColor = "255 255 255";
+ fillColorHL = "128 128 128";
+ border = true;
+ borderColor = "0 0 0";
+ fontColor = "0 0 0";
+ fontColorHL = "255 255 255";
+ fontColorNA = "128 128 128";
+ textOffset = "0 2";
+ autoSizeWidth = false;
+ autoSizeHeight = true;
+ tab = true;
+ canKeyFocus = true;
+ bitmap = ($platform $= "macos") ? "./osxScroll" : "./darkScroll";
+ hasBitmapArray = true;
+};
+
+if(!isObject(GuiTextArrayProfile)) new GuiControlProfile (GuiTextArrayProfile : GuiTextProfile)
+{
+ fontColorHL = "32 100 100";
+ fillColorHL = "200 200 200";
+};
+
+if(!isObject(GuiTextListProfile)) new GuiControlProfile (GuiTextListProfile : GuiTextProfile) ;
+
+if(!isObject(GuiTreeViewProfile)) new GuiControlProfile (GuiTreeViewProfile)
+{
+ fontSize = 13; // dhc - trying a better fit...
+ fontColor = "0 0 0";
+ fontColorHL = "64 150 150";
+};
+
+if(!isObject(GuiCheckBoxProfile)) new GuiControlProfile (GuiCheckBoxProfile)
+{
+ opaque = false;
+ fillColor = "232 232 232";
+ border = false;
+ borderColor = "0 0 0";
+ fontSize = 14;
+ fontColor = "0 0 0";
+ fontColorHL = "32 100 100";
+ fixedExtent = true;
+ justify = "left";
+ bitmap = ($platform $= "macos") ? "./osxCheck" : "./torqueCheck";
+ hasBitmapArray = true;
+
+};
+
+if(!isObject(GuiPopUpMenuProfile)) new GuiControlProfile (GuiPopUpMenuProfile)
+{
+ opaque = true;
+ mouseOverSelected = true;
+
+ border = 4;
+ borderThickness = 2;
+ borderColor = "0 0 0";
+ fontSize = 14;
+ fontColor = "0 0 0";
+ fontColorHL = "32 100 100";
+ fontColorSEL = "32 100 100";
+ fixedExtent = true;
+ justify = "center";
+ bitmap = ($platform $= "macos") ? "./osxScroll" : "./darkScroll";
+ hasBitmapArray = true;
+};
+
+if(!isObject(GuiEditorClassProfile)) new GuiControlProfile (GuiEditorClassProfile)
+{
+ opaque = true;
+ fillColor = "232 232 232";
+ border = true;
+ borderColor = "0 0 0";
+ borderColorHL = "127 127 127";
+ fontColor = "0 0 0";
+ fontColorHL = "32 100 100";
+ fixedExtent = true;
+ justify = "center";
+ bitmap = ($platform $= "macos") ? "./osxScroll" : "./darkScroll";
+ hasBitmapArray = true;
+};
+
+
+if(!isObject(LoadTextProfile)) new GuiControlProfile ("LoadTextProfile")
+{
+ fontColor = "66 219 234";
+ autoSizeWidth = true;
+ autoSizeHeight = true;
+};
+
+
+if(!isObject(GuiMLTextProfile)) new GuiControlProfile ("GuiMLTextProfile")
+{
+ fontColorLink = "255 96 96";
+ fontColorLinkHL = "0 0 255";
+};
+
+if(!isObject(GuiMLTextEditProfile)) new GuiControlProfile (GuiMLTextEditProfile)
+{
+ fontColorLink = "255 96 96";
+ fontColorLinkHL = "0 0 255";
+
+ fillColor = "255 255 255";
+ fillColorHL = "128 128 128";
+
+ fontColor = "0 0 0";
+ fontColorHL = "255 255 255";
+ fontColorNA = "128 128 128";
+
+ autoSizeWidth = true;
+ autoSizeHeight = true;
+ tab = true;
+ canKeyFocus = true;
+};
+
+//--------------------------------------------------------------------------
+// Console Window
+
+if(!isObject(GuiConsoleProfile)) new GuiControlProfile ("GuiConsoleProfile")
+{
+ fontType = ($platform $= "macos") ? "Courier New" : "Lucida Console";
+ fontSize = 12;
+ fontColor = "0 0 0";
+ fontColorHL = "130 130 130";
+ fontColorNA = "255 0 0";
+ fontColors[6] = "50 50 50";
+ fontColors[7] = "50 50 0";
+ fontColors[8] = "0 0 50";
+ fontColors[9] = "0 50 0";
+};
+
+
+if(!isObject(GuiProgressProfile)) new GuiControlProfile ("GuiProgressProfile")
+{
+ opaque = false;
+ fillColor = "44 152 162 100";
+ border = true;
+ borderColor = "78 88 120";
+};
+
+if(!isObject(GuiProgressTextProfile)) new GuiControlProfile ("GuiProgressTextProfile")
+{
+ fontColor = "0 0 0";
+ justify = "center";
+};
+
+
+
+//--------------------------------------------------------------------------
+// Gui Inspector
+
+if(!isObject(GuiInspectorTextEditProfile)) new GuiControlProfile ("GuiInspectorTextEditProfile")
+{
+ opaque = true;
+ fillColor = "255 255 255";
+ fillColorHL = "128 128 128";
+ border = true;
+ borderColor = "0 0 0";
+ fontColor = "0 0 0";
+ fontColorHL = "255 255 255";
+ autoSizeWidth = false;
+ autoSizeHeight = true;
+ tab = false;
+ canKeyFocus = true;
+};
+
+if(!isObject(GuiBitmapBorderProfile)) new GuiControlProfile(GuiBitmapBorderProfile)
+{
+ bitmap = "./darkBorder";
+ hasBitmapArray = true;
+};
+
+//-------------------------------------- Cursors
+//
+new GuiCursor(DefaultCursor)
+{
+ hotSpot = "1 1";
+ bitmapName = "./CUR_3darrow";
+};
+
diff --git a/data/ui/common/dialog.png b/data/ui/common/dialog.png
new file mode 100644
index 00000000..b6427a25
Binary files /dev/null and b/data/ui/common/dialog.png differ
diff --git a/data/ui/common/frameoverlaygui.gui.dso b/data/ui/common/frameoverlaygui.gui.dso
new file mode 100644
index 00000000..4dde019b
Binary files /dev/null and b/data/ui/common/frameoverlaygui.gui.dso differ
diff --git a/data/ui/common/guieditorgui.gui.dso b/data/ui/common/guieditorgui.gui.dso
new file mode 100644
index 00000000..203bfd2a
Binary files /dev/null and b/data/ui/common/guieditorgui.gui.dso differ
diff --git a/data/ui/common/helpdlg.gui.dso b/data/ui/common/helpdlg.gui.dso
new file mode 100644
index 00000000..623b59e7
Binary files /dev/null and b/data/ui/common/helpdlg.gui.dso differ
diff --git a/data/ui/common/inspectaddfielddlg.gui.dso b/data/ui/common/inspectaddfielddlg.gui.dso
new file mode 100644
index 00000000..3efcceec
Binary files /dev/null and b/data/ui/common/inspectaddfielddlg.gui.dso differ
diff --git a/data/ui/common/inspectdlg.gui.dso b/data/ui/common/inspectdlg.gui.dso
new file mode 100644
index 00000000..ea83b410
Binary files /dev/null and b/data/ui/common/inspectdlg.gui.dso differ
diff --git a/data/ui/common/loadfiledlg.gui.dso b/data/ui/common/loadfiledlg.gui.dso
new file mode 100644
index 00000000..f77abe3b
Binary files /dev/null and b/data/ui/common/loadfiledlg.gui.dso differ
diff --git a/data/ui/common/messageboxokcanceldlg.gui.dso b/data/ui/common/messageboxokcanceldlg.gui.dso
new file mode 100644
index 00000000..e0d04a97
Binary files /dev/null and b/data/ui/common/messageboxokcanceldlg.gui.dso differ
diff --git a/data/ui/common/messageboxokdlg.gui.dso b/data/ui/common/messageboxokdlg.gui.dso
new file mode 100644
index 00000000..5b77b036
Binary files /dev/null and b/data/ui/common/messageboxokdlg.gui.dso differ
diff --git a/data/ui/common/messageboxyesnodlg.gui.dso b/data/ui/common/messageboxyesnodlg.gui.dso
new file mode 100644
index 00000000..0de07bef
Binary files /dev/null and b/data/ui/common/messageboxyesnodlg.gui.dso differ
diff --git a/data/ui/common/messagepopupdlg.gui.dso b/data/ui/common/messagepopupdlg.gui.dso
new file mode 100644
index 00000000..51f714cc
Binary files /dev/null and b/data/ui/common/messagepopupdlg.gui.dso differ
diff --git a/data/ui/common/no_d.png b/data/ui/common/no_d.png
new file mode 100644
index 00000000..738f2318
Binary files /dev/null and b/data/ui/common/no_d.png differ
diff --git a/data/ui/common/no_h.png b/data/ui/common/no_h.png
new file mode 100644
index 00000000..2dd4f348
Binary files /dev/null and b/data/ui/common/no_h.png differ
diff --git a/data/ui/common/no_n.png b/data/ui/common/no_n.png
new file mode 100644
index 00000000..08c9329f
Binary files /dev/null and b/data/ui/common/no_n.png differ
diff --git a/data/ui/common/ok_d.png b/data/ui/common/ok_d.png
new file mode 100644
index 00000000..ed044e3d
Binary files /dev/null and b/data/ui/common/ok_d.png differ
diff --git a/data/ui/common/ok_h.png b/data/ui/common/ok_h.png
new file mode 100644
index 00000000..abb6f635
Binary files /dev/null and b/data/ui/common/ok_h.png differ
diff --git a/data/ui/common/ok_n.png b/data/ui/common/ok_n.png
new file mode 100644
index 00000000..68a44006
Binary files /dev/null and b/data/ui/common/ok_n.png differ
diff --git a/data/ui/common/osxcheck.png b/data/ui/common/osxcheck.png
new file mode 100644
index 00000000..fab21bee
Binary files /dev/null and b/data/ui/common/osxcheck.png differ
diff --git a/data/ui/common/osxmenu.png b/data/ui/common/osxmenu.png
new file mode 100644
index 00000000..754e8e45
Binary files /dev/null and b/data/ui/common/osxmenu.png differ
diff --git a/data/ui/common/osxradio.png b/data/ui/common/osxradio.png
new file mode 100644
index 00000000..7b9df723
Binary files /dev/null and b/data/ui/common/osxradio.png differ
diff --git a/data/ui/common/osxscroll.png b/data/ui/common/osxscroll.png
new file mode 100644
index 00000000..e838c844
Binary files /dev/null and b/data/ui/common/osxscroll.png differ
diff --git a/data/ui/common/osxwindow.png b/data/ui/common/osxwindow.png
new file mode 100644
index 00000000..db969e28
Binary files /dev/null and b/data/ui/common/osxwindow.png differ
diff --git a/data/ui/common/restart_d.png b/data/ui/common/restart_d.png
new file mode 100644
index 00000000..10f5a13f
Binary files /dev/null and b/data/ui/common/restart_d.png differ
diff --git a/data/ui/common/restart_h.png b/data/ui/common/restart_h.png
new file mode 100644
index 00000000..1a5a97c7
Binary files /dev/null and b/data/ui/common/restart_h.png differ
diff --git a/data/ui/common/restart_n.png b/data/ui/common/restart_n.png
new file mode 100644
index 00000000..fd9a84a4
Binary files /dev/null and b/data/ui/common/restart_n.png differ
diff --git a/data/ui/common/savefiledlg.gui.dso b/data/ui/common/savefiledlg.gui.dso
new file mode 100644
index 00000000..fffaa4c8
Binary files /dev/null and b/data/ui/common/savefiledlg.gui.dso differ
diff --git a/data/ui/common/torquecheck.png b/data/ui/common/torquecheck.png
new file mode 100644
index 00000000..544f7c41
Binary files /dev/null and b/data/ui/common/torquecheck.png differ
diff --git a/data/ui/common/torquemenu.png b/data/ui/common/torquemenu.png
new file mode 100644
index 00000000..754e8e45
Binary files /dev/null and b/data/ui/common/torquemenu.png differ
diff --git a/data/ui/common/torqueradio.png b/data/ui/common/torqueradio.png
new file mode 100644
index 00000000..5aa55b0f
Binary files /dev/null and b/data/ui/common/torqueradio.png differ
diff --git a/data/ui/common/window.png b/data/ui/common/window.png
new file mode 100644
index 00000000..01a3499a
Binary files /dev/null and b/data/ui/common/window.png differ
diff --git a/data/ui/common/yes_d.png b/data/ui/common/yes_d.png
new file mode 100644
index 00000000..b25cc60e
Binary files /dev/null and b/data/ui/common/yes_d.png differ
diff --git a/data/ui/common/yes_h.png b/data/ui/common/yes_h.png
new file mode 100644
index 00000000..68282711
Binary files /dev/null and b/data/ui/common/yes_h.png differ
diff --git a/data/ui/common/yes_n.png b/data/ui/common/yes_n.png
new file mode 100644
index 00000000..c57b8ae0
Binary files /dev/null and b/data/ui/common/yes_n.png differ
diff --git a/data/ui/crosshair.png b/data/ui/crosshair.png
new file mode 100644
index 00000000..6a5af504
Binary files /dev/null and b/data/ui/crosshair.png differ
diff --git a/data/ui/defaultgameprofiles.cs b/data/ui/defaultgameprofiles.cs
new file mode 100644
index 00000000..370ea701
--- /dev/null
+++ b/data/ui/defaultgameprofiles.cs
@@ -0,0 +1,155 @@
+//-----------------------------------------------------------------------------
+// Torque Game Engine
+//
+// Copyright (c) 2001 GarageGames.Com
+//-----------------------------------------------------------------------------
+
+//-----------------------------------------------------------------------------
+// Override base controls
+GuiButtonProfile.soundButtonOver = AudioButtonOver;
+GuiButtonProfile.soundButtonDown = AudioButtonDown;
+
+GuiDefaultProfile.soundButtonDown = AudioButtonDown;
+
+//-----------------------------------------------------------------------------
+// Chat Hud profiles
+
+
+new GuiControlProfile ("ChatHudMessageProfile")
+{
+ fontType = "Arial";
+ fontSize = 16;
+ fontColor = "255 255 0"; // default color (death msgs, scoring, inventory)
+ fontColors[1] = "4 235 105"; // client join/drop, tournament mode
+ fontColors[2] = "219 200 128"; // gameplay, admin/voting, pack/deployable
+ fontColors[3] = "77 253 95"; // team chat, spam protection message, client tasks
+ fontColors[4] = "40 231 240"; // global chat
+ fontColors[5] = "200 200 50 200"; // used in single player game
+ // WARNING! Colors 6-9 are reserved for name coloring
+ autoSizeWidth = true;
+ autoSizeHeight = true;
+};
+
+new GuiControlProfile ("ChatHudScrollProfile")
+{
+ opaque = false;
+ bitmap = "common/ui/darkScroll";
+ hasBitmapArray = true;
+};
+
+
+new GuiControlProfile (GuiTPTextEditProfile)
+{
+ opaque = false;
+ fillColor = "255 255 255";
+ fillColorHL = "128 128 128";
+ border = false;
+ borderColor = "0 0 0";
+ fontColor = "0 0 0";
+ fontColorHL = "255 255 255";
+ fontColorNA = "128 128 128";
+ textOffset = "0 2";
+ autoSizeWidth = false;
+ autoSizeHeight = true;
+ tab = true;
+ canKeyFocus = true;
+};
+
+new GuiControlProfile (OverlayScreenProfile)
+{
+ opaque = true;
+ fillColor = "0 0 0 96";
+ fillColorHL = "128 128 128";
+ border = false;
+ borderColor = "0 0 0";
+ fontColor = "0 0 0";
+ fontColorHL = "255 255 255";
+ fontColorNA = "128 128 128";
+ textOffset = "0 2";
+ autoSizeWidth = false;
+ autoSizeHeight = true;
+ tab = true;
+ canKeyFocus = true;
+};
+
+new GuiControlProfile (GuiBigTextEditProfile)
+{
+ fontType = "DomCasualD";
+ fontSize = 32;
+ opaque = false;
+ fillColor = "255 255 255";
+ fillColorHL = "128 128 128";
+ border = false;
+ borderColor = "0 0 0";
+ fontColor = "0 0 0";
+ fontColorHL = "255 255 255";
+ fontColorNA = "128 128 128";
+ textOffset = "0 2";
+ autoSizeWidth = false;
+ autoSizeHeight = true;
+ tab = true;
+ canKeyFocus = true;
+};
+
+new GuiControlProfile (BevelPurpleProfile)
+{
+ // fill color
+ opaque = true;
+ border = 2;
+ fillColor = "161 150 229";
+ fillColorHL = "255 0 0";
+ fillColorNA = "0 0 255";
+
+ // border color
+ borderColor = "0 255 0";
+ borderColorNA = "92 86 131";
+
+ textOffset = "6 6";
+
+};
+
+
+
+//-----------------------------------------------------------------------------
+// Common Hud profiles
+
+new GuiControlProfile ("HudScrollProfile")
+{
+ opaque = false;
+ border = true;
+ borderColor = "0 255 0";
+ bitmap = "common/ui/darkScroll";
+ hasBitmapArray = true;
+};
+
+new GuiControlProfile ("HudTextProfile")
+{
+ opaque = false;
+ fillColor = "128 128 128";
+ fontColor = "0 255 0";
+ border = true;
+ borderColor = "0 255 0";
+};
+
+
+//-----------------------------------------------------------------------------
+// Center and bottom print
+
+new GuiControlProfile ("CenterPrintProfile")
+{
+ opaque = false;
+ fillColor = "128 128 128";
+ fontColor = "0 255 0";
+ border = true;
+ borderColor = "0 255 0";
+};
+
+new GuiControlProfile ("CenterPrintTextProfile")
+{
+ opaque = false;
+ fontType = "Arial";
+ fontSize = 12;
+ fontColor = "0 255 0";
+};
+
+
diff --git a/data/ui/endgame/continue_d.png b/data/ui/endgame/continue_d.png
new file mode 100644
index 00000000..48659dee
Binary files /dev/null and b/data/ui/endgame/continue_d.png differ
diff --git a/data/ui/endgame/continue_h.png b/data/ui/endgame/continue_h.png
new file mode 100644
index 00000000..ec372948
Binary files /dev/null and b/data/ui/endgame/continue_h.png differ
diff --git a/data/ui/endgame/continue_n.png b/data/ui/endgame/continue_n.png
new file mode 100644
index 00000000..c9d15fe2
Binary files /dev/null and b/data/ui/endgame/continue_n.png differ
diff --git a/data/ui/endgame/replay_d.png b/data/ui/endgame/replay_d.png
new file mode 100644
index 00000000..20356e87
Binary files /dev/null and b/data/ui/endgame/replay_d.png differ
diff --git a/data/ui/endgame/replay_h.png b/data/ui/endgame/replay_h.png
new file mode 100644
index 00000000..e9b59387
Binary files /dev/null and b/data/ui/endgame/replay_h.png differ
diff --git a/data/ui/endgame/replay_i.png b/data/ui/endgame/replay_i.png
new file mode 100644
index 00000000..01923ae6
Binary files /dev/null and b/data/ui/endgame/replay_i.png differ
diff --git a/data/ui/endgame/replay_n.png b/data/ui/endgame/replay_n.png
new file mode 100644
index 00000000..61a7f8e2
Binary files /dev/null and b/data/ui/endgame/replay_n.png differ
diff --git a/data/ui/endgamegui.gui.dso b/data/ui/endgamegui.gui.dso
new file mode 100644
index 00000000..8bdc9f1d
Binary files /dev/null and b/data/ui/endgamegui.gui.dso differ
diff --git a/data/ui/enternamedlg.gui.dso b/data/ui/enternamedlg.gui.dso
new file mode 100644
index 00000000..8a7cf522
Binary files /dev/null and b/data/ui/enternamedlg.gui.dso differ
diff --git a/data/ui/exitgamedlg.gui.dso b/data/ui/exitgamedlg.gui.dso
new file mode 100644
index 00000000..e683b7d9
Binary files /dev/null and b/data/ui/exitgamedlg.gui.dso differ
diff --git a/data/ui/game/go.png b/data/ui/game/go.png
new file mode 100644
index 00000000..d5437aa9
Binary files /dev/null and b/data/ui/game/go.png differ
diff --git a/data/ui/game/numbers/0.png b/data/ui/game/numbers/0.png
new file mode 100644
index 00000000..ea95cd49
Binary files /dev/null and b/data/ui/game/numbers/0.png differ
diff --git a/data/ui/game/numbers/1.png b/data/ui/game/numbers/1.png
new file mode 100644
index 00000000..d4803afe
Binary files /dev/null and b/data/ui/game/numbers/1.png differ
diff --git a/data/ui/game/numbers/2.png b/data/ui/game/numbers/2.png
new file mode 100644
index 00000000..c1811376
Binary files /dev/null and b/data/ui/game/numbers/2.png differ
diff --git a/data/ui/game/numbers/3.png b/data/ui/game/numbers/3.png
new file mode 100644
index 00000000..ae16e5a7
Binary files /dev/null and b/data/ui/game/numbers/3.png differ
diff --git a/data/ui/game/numbers/4.png b/data/ui/game/numbers/4.png
new file mode 100644
index 00000000..521fa788
Binary files /dev/null and b/data/ui/game/numbers/4.png differ
diff --git a/data/ui/game/numbers/5.png b/data/ui/game/numbers/5.png
new file mode 100644
index 00000000..9dda97f0
Binary files /dev/null and b/data/ui/game/numbers/5.png differ
diff --git a/data/ui/game/numbers/6.png b/data/ui/game/numbers/6.png
new file mode 100644
index 00000000..a5749add
Binary files /dev/null and b/data/ui/game/numbers/6.png differ
diff --git a/data/ui/game/numbers/7.png b/data/ui/game/numbers/7.png
new file mode 100644
index 00000000..865e4e2c
Binary files /dev/null and b/data/ui/game/numbers/7.png differ
diff --git a/data/ui/game/numbers/8.png b/data/ui/game/numbers/8.png
new file mode 100644
index 00000000..6a104903
Binary files /dev/null and b/data/ui/game/numbers/8.png differ
diff --git a/data/ui/game/numbers/9.png b/data/ui/game/numbers/9.png
new file mode 100644
index 00000000..b05ae609
Binary files /dev/null and b/data/ui/game/numbers/9.png differ
diff --git a/data/ui/game/numbers/colon.png b/data/ui/game/numbers/colon.png
new file mode 100644
index 00000000..9a1fa4b3
Binary files /dev/null and b/data/ui/game/numbers/colon.png differ
diff --git a/data/ui/game/numbers/dash.png b/data/ui/game/numbers/dash.png
new file mode 100644
index 00000000..616a47aa
Binary files /dev/null and b/data/ui/game/numbers/dash.png differ
diff --git a/data/ui/game/numbers/point.png b/data/ui/game/numbers/point.png
new file mode 100644
index 00000000..d26202e9
Binary files /dev/null and b/data/ui/game/numbers/point.png differ
diff --git a/data/ui/game/numbers/slash.png b/data/ui/game/numbers/slash.png
new file mode 100644
index 00000000..e9ad5a6c
Binary files /dev/null and b/data/ui/game/numbers/slash.png differ
diff --git a/data/ui/game/outofbounds.png b/data/ui/game/outofbounds.png
new file mode 100644
index 00000000..ff264f9c
Binary files /dev/null and b/data/ui/game/outofbounds.png differ
diff --git a/data/ui/game/powerup.png b/data/ui/game/powerup.png
new file mode 100644
index 00000000..cef3f8cc
Binary files /dev/null and b/data/ui/game/powerup.png differ
diff --git a/data/ui/game/ready.png b/data/ui/game/ready.png
new file mode 100644
index 00000000..0bb8f006
Binary files /dev/null and b/data/ui/game/ready.png differ
diff --git a/data/ui/game/set.png b/data/ui/game/set.png
new file mode 100644
index 00000000..1de6df35
Binary files /dev/null and b/data/ui/game/set.png differ
diff --git a/data/ui/gglogo150.png b/data/ui/gglogo150.png
new file mode 100644
index 00000000..b6e4d4a0
Binary files /dev/null and b/data/ui/gglogo150.png differ
diff --git a/data/ui/helpcreditsgui.gui.dso b/data/ui/helpcreditsgui.gui.dso
new file mode 100644
index 00000000..e1aa1fbb
Binary files /dev/null and b/data/ui/helpcreditsgui.gui.dso differ
diff --git a/data/ui/home/exit_d.png b/data/ui/home/exit_d.png
new file mode 100644
index 00000000..7dd6ee0f
Binary files /dev/null and b/data/ui/home/exit_d.png differ
diff --git a/data/ui/home/exit_h.png b/data/ui/home/exit_h.png
new file mode 100644
index 00000000..42bd9a6b
Binary files /dev/null and b/data/ui/home/exit_h.png differ
diff --git a/data/ui/home/exit_n.png b/data/ui/home/exit_n.png
new file mode 100644
index 00000000..92a0a40a
Binary files /dev/null and b/data/ui/home/exit_n.png differ
diff --git a/data/ui/home/help_d.png b/data/ui/home/help_d.png
new file mode 100644
index 00000000..c514f1b7
Binary files /dev/null and b/data/ui/home/help_d.png differ
diff --git a/data/ui/home/help_h.png b/data/ui/home/help_h.png
new file mode 100644
index 00000000..cbae4a37
Binary files /dev/null and b/data/ui/home/help_h.png differ
diff --git a/data/ui/home/help_n.png b/data/ui/home/help_n.png
new file mode 100644
index 00000000..d1e3ba08
Binary files /dev/null and b/data/ui/home/help_n.png differ
diff --git a/data/ui/home/homegui.png b/data/ui/home/homegui.png
new file mode 100644
index 00000000..3469131b
Binary files /dev/null and b/data/ui/home/homegui.png differ
diff --git a/data/ui/home/options_d.png b/data/ui/home/options_d.png
new file mode 100644
index 00000000..b83e1805
Binary files /dev/null and b/data/ui/home/options_d.png differ
diff --git a/data/ui/home/options_h.png b/data/ui/home/options_h.png
new file mode 100644
index 00000000..9683813d
Binary files /dev/null and b/data/ui/home/options_h.png differ
diff --git a/data/ui/home/options_n.png b/data/ui/home/options_n.png
new file mode 100644
index 00000000..1252e8f8
Binary files /dev/null and b/data/ui/home/options_n.png differ
diff --git a/data/ui/home/play_d.png b/data/ui/home/play_d.png
new file mode 100644
index 00000000..14a5b84a
Binary files /dev/null and b/data/ui/home/play_d.png differ
diff --git a/data/ui/home/play_h.png b/data/ui/home/play_h.png
new file mode 100644
index 00000000..5a193aae
Binary files /dev/null and b/data/ui/home/play_h.png differ
diff --git a/data/ui/home/play_n.png b/data/ui/home/play_n.png
new file mode 100644
index 00000000..6d54d4a0
Binary files /dev/null and b/data/ui/home/play_n.png differ
diff --git a/data/ui/hudfill.png b/data/ui/hudfill.png
new file mode 100644
index 00000000..e435854d
Binary files /dev/null and b/data/ui/hudfill.png differ
diff --git a/data/ui/ignitionstatusgui.gui.dso b/data/ui/ignitionstatusgui.gui.dso
new file mode 100644
index 00000000..1cbf1312
Binary files /dev/null and b/data/ui/ignitionstatusgui.gui.dso differ
diff --git a/data/ui/joinservergui.gui.dso b/data/ui/joinservergui.gui.dso
new file mode 100644
index 00000000..08c9833a
Binary files /dev/null and b/data/ui/joinservergui.gui.dso differ
diff --git a/data/ui/lagicon.png b/data/ui/lagicon.png
new file mode 100644
index 00000000..cf158dd6
Binary files /dev/null and b/data/ui/lagicon.png differ
diff --git a/data/ui/loading/cancel_d.png b/data/ui/loading/cancel_d.png
new file mode 100644
index 00000000..4598cffc
Binary files /dev/null and b/data/ui/loading/cancel_d.png differ
diff --git a/data/ui/loading/cancel_h.png b/data/ui/loading/cancel_h.png
new file mode 100644
index 00000000..d54cfa6f
Binary files /dev/null and b/data/ui/loading/cancel_h.png differ
diff --git a/data/ui/loading/cancel_n.png b/data/ui/loading/cancel_n.png
new file mode 100644
index 00000000..6c82ad77
Binary files /dev/null and b/data/ui/loading/cancel_n.png differ
diff --git a/data/ui/loading/loadinggui.png b/data/ui/loading/loadinggui.png
new file mode 100644
index 00000000..13741984
Binary files /dev/null and b/data/ui/loading/loadinggui.png differ
diff --git a/data/ui/loading/overlay.png b/data/ui/loading/overlay.png
new file mode 100644
index 00000000..ebda2569
Binary files /dev/null and b/data/ui/loading/overlay.png differ
diff --git a/data/ui/loadinggui.gui.dso b/data/ui/loadinggui.gui.dso
new file mode 100644
index 00000000..0bbbef3e
Binary files /dev/null and b/data/ui/loadinggui.gui.dso differ
diff --git a/data/ui/mainchathud.gui.dso b/data/ui/mainchathud.gui.dso
new file mode 100644
index 00000000..e43bdbb8
Binary files /dev/null and b/data/ui/mainchathud.gui.dso differ
diff --git a/data/ui/mainmenugui.gui.dso b/data/ui/mainmenugui.gui.dso
new file mode 100644
index 00000000..addaf124
Binary files /dev/null and b/data/ui/mainmenugui.gui.dso differ
diff --git a/data/ui/messagehud.gui.dso b/data/ui/messagehud.gui.dso
new file mode 100644
index 00000000..9a2a1de9
Binary files /dev/null and b/data/ui/messagehud.gui.dso differ
diff --git a/data/ui/minishotgui.gui.dso b/data/ui/minishotgui.gui.dso
new file mode 100644
index 00000000..39633976
Binary files /dev/null and b/data/ui/minishotgui.gui.dso differ
diff --git a/data/ui/motd/mess_buttn_d.png b/data/ui/motd/mess_buttn_d.png
new file mode 100644
index 00000000..16f8e54f
Binary files /dev/null and b/data/ui/motd/mess_buttn_d.png differ
diff --git a/data/ui/motd/mess_buttn_h.png b/data/ui/motd/mess_buttn_h.png
new file mode 100644
index 00000000..0fae3706
Binary files /dev/null and b/data/ui/motd/mess_buttn_h.png differ
diff --git a/data/ui/motd/mess_buttn_n.png b/data/ui/motd/mess_buttn_n.png
new file mode 100644
index 00000000..eef3f861
Binary files /dev/null and b/data/ui/motd/mess_buttn_n.png differ
diff --git a/data/ui/motd/mess_chkbx_d.png b/data/ui/motd/mess_chkbx_d.png
new file mode 100644
index 00000000..6ae91436
Binary files /dev/null and b/data/ui/motd/mess_chkbx_d.png differ
diff --git a/data/ui/motd/mess_chkbx_h.png b/data/ui/motd/mess_chkbx_h.png
new file mode 100644
index 00000000..b7126f31
Binary files /dev/null and b/data/ui/motd/mess_chkbx_h.png differ
diff --git a/data/ui/motd/mess_chkbx_n.png b/data/ui/motd/mess_chkbx_n.png
new file mode 100644
index 00000000..91f5b25b
Binary files /dev/null and b/data/ui/motd/mess_chkbx_n.png differ
diff --git a/data/ui/motd/motd_buttn_d.png b/data/ui/motd/motd_buttn_d.png
new file mode 100644
index 00000000..19d8a75e
Binary files /dev/null and b/data/ui/motd/motd_buttn_d.png differ
diff --git a/data/ui/motd/motd_buttn_h.png b/data/ui/motd/motd_buttn_h.png
new file mode 100644
index 00000000..928a538c
Binary files /dev/null and b/data/ui/motd/motd_buttn_h.png differ
diff --git a/data/ui/motd/motd_buttn_n.png b/data/ui/motd/motd_buttn_n.png
new file mode 100644
index 00000000..2813b8f6
Binary files /dev/null and b/data/ui/motd/motd_buttn_n.png differ
diff --git a/data/ui/motd/new_mess_base.png b/data/ui/motd/new_mess_base.png
new file mode 100644
index 00000000..dfc9a52d
Binary files /dev/null and b/data/ui/motd/new_mess_base.png differ
diff --git a/data/ui/motd/ok_d.png b/data/ui/motd/ok_d.png
new file mode 100644
index 00000000..8c31991d
Binary files /dev/null and b/data/ui/motd/ok_d.png differ
diff --git a/data/ui/motd/ok_h.png b/data/ui/motd/ok_h.png
new file mode 100644
index 00000000..b0f25781
Binary files /dev/null and b/data/ui/motd/ok_h.png differ
diff --git a/data/ui/motd/ok_n.png b/data/ui/motd/ok_n.png
new file mode 100644
index 00000000..3f734b59
Binary files /dev/null and b/data/ui/motd/ok_n.png differ
diff --git a/data/ui/motdgui.gui.dso b/data/ui/motdgui.gui.dso
new file mode 100644
index 00000000..4cb517a0
Binary files /dev/null and b/data/ui/motdgui.gui.dso differ
diff --git a/data/ui/ok_d.png b/data/ui/ok_d.png
new file mode 100644
index 00000000..92206f35
Binary files /dev/null and b/data/ui/ok_d.png differ
diff --git a/data/ui/ok_h.png b/data/ui/ok_h.png
new file mode 100644
index 00000000..25014375
Binary files /dev/null and b/data/ui/ok_h.png differ
diff --git a/data/ui/ok_n.png b/data/ui/ok_n.png
new file mode 100644
index 00000000..55bef933
Binary files /dev/null and b/data/ui/ok_n.png differ
diff --git a/data/ui/options/aud_mus_knb.png b/data/ui/options/aud_mus_knb.png
new file mode 100644
index 00000000..4f84c66f
Binary files /dev/null and b/data/ui/options/aud_mus_knb.png differ
diff --git a/data/ui/options/aud_mus_slide.png b/data/ui/options/aud_mus_slide.png
new file mode 100644
index 00000000..47474104
Binary files /dev/null and b/data/ui/options/aud_mus_slide.png differ
diff --git a/data/ui/options/aud_snd_knb.png b/data/ui/options/aud_snd_knb.png
new file mode 100644
index 00000000..4ca45da1
Binary files /dev/null and b/data/ui/options/aud_snd_knb.png differ
diff --git a/data/ui/options/aud_snd_slide.png b/data/ui/options/aud_snd_slide.png
new file mode 100644
index 00000000..6a5abe82
Binary files /dev/null and b/data/ui/options/aud_snd_slide.png differ
diff --git a/data/ui/options/aud_tab.png b/data/ui/options/aud_tab.png
new file mode 100644
index 00000000..a5b39198
Binary files /dev/null and b/data/ui/options/aud_tab.png differ
diff --git a/data/ui/options/aud_txt_wndo.png b/data/ui/options/aud_txt_wndo.png
new file mode 100644
index 00000000..992a46c3
Binary files /dev/null and b/data/ui/options/aud_txt_wndo.png differ
diff --git a/data/ui/options/cntr_cam_dwn_d.png b/data/ui/options/cntr_cam_dwn_d.png
new file mode 100644
index 00000000..d01467cc
Binary files /dev/null and b/data/ui/options/cntr_cam_dwn_d.png differ
diff --git a/data/ui/options/cntr_cam_dwn_h.png b/data/ui/options/cntr_cam_dwn_h.png
new file mode 100644
index 00000000..245f91a9
Binary files /dev/null and b/data/ui/options/cntr_cam_dwn_h.png differ
diff --git a/data/ui/options/cntr_cam_dwn_n.png b/data/ui/options/cntr_cam_dwn_n.png
new file mode 100644
index 00000000..dc4aa0c7
Binary files /dev/null and b/data/ui/options/cntr_cam_dwn_n.png differ
diff --git a/data/ui/options/cntr_cam_lft_d.png b/data/ui/options/cntr_cam_lft_d.png
new file mode 100644
index 00000000..0506c5c8
Binary files /dev/null and b/data/ui/options/cntr_cam_lft_d.png differ
diff --git a/data/ui/options/cntr_cam_lft_h.png b/data/ui/options/cntr_cam_lft_h.png
new file mode 100644
index 00000000..f8b27fb8
Binary files /dev/null and b/data/ui/options/cntr_cam_lft_h.png differ
diff --git a/data/ui/options/cntr_cam_lft_n.png b/data/ui/options/cntr_cam_lft_n.png
new file mode 100644
index 00000000..4391b7f7
Binary files /dev/null and b/data/ui/options/cntr_cam_lft_n.png differ
diff --git a/data/ui/options/cntr_cam_rt_d.png b/data/ui/options/cntr_cam_rt_d.png
new file mode 100644
index 00000000..d5234388
Binary files /dev/null and b/data/ui/options/cntr_cam_rt_d.png differ
diff --git a/data/ui/options/cntr_cam_rt_h.png b/data/ui/options/cntr_cam_rt_h.png
new file mode 100644
index 00000000..95c939f3
Binary files /dev/null and b/data/ui/options/cntr_cam_rt_h.png differ
diff --git a/data/ui/options/cntr_cam_rt_n.png b/data/ui/options/cntr_cam_rt_n.png
new file mode 100644
index 00000000..cd123e92
Binary files /dev/null and b/data/ui/options/cntr_cam_rt_n.png differ
diff --git a/data/ui/options/cntr_cam_up_d.png b/data/ui/options/cntr_cam_up_d.png
new file mode 100644
index 00000000..6264fb12
Binary files /dev/null and b/data/ui/options/cntr_cam_up_d.png differ
diff --git a/data/ui/options/cntr_cam_up_h.png b/data/ui/options/cntr_cam_up_h.png
new file mode 100644
index 00000000..c53dc960
Binary files /dev/null and b/data/ui/options/cntr_cam_up_h.png differ
diff --git a/data/ui/options/cntr_cam_up_n.png b/data/ui/options/cntr_cam_up_n.png
new file mode 100644
index 00000000..01fe8a1a
Binary files /dev/null and b/data/ui/options/cntr_cam_up_n.png differ
diff --git a/data/ui/options/cntr_mrb_bak_d.png b/data/ui/options/cntr_mrb_bak_d.png
new file mode 100644
index 00000000..42bd7942
Binary files /dev/null and b/data/ui/options/cntr_mrb_bak_d.png differ
diff --git a/data/ui/options/cntr_mrb_bak_h.png b/data/ui/options/cntr_mrb_bak_h.png
new file mode 100644
index 00000000..979af577
Binary files /dev/null and b/data/ui/options/cntr_mrb_bak_h.png differ
diff --git a/data/ui/options/cntr_mrb_bak_n.png b/data/ui/options/cntr_mrb_bak_n.png
new file mode 100644
index 00000000..ec32d207
Binary files /dev/null and b/data/ui/options/cntr_mrb_bak_n.png differ
diff --git a/data/ui/options/cntr_mrb_fw_d.png b/data/ui/options/cntr_mrb_fw_d.png
new file mode 100644
index 00000000..18a3e3ae
Binary files /dev/null and b/data/ui/options/cntr_mrb_fw_d.png differ
diff --git a/data/ui/options/cntr_mrb_fw_h.png b/data/ui/options/cntr_mrb_fw_h.png
new file mode 100644
index 00000000..bf51fdde
Binary files /dev/null and b/data/ui/options/cntr_mrb_fw_h.png differ
diff --git a/data/ui/options/cntr_mrb_fw_n.png b/data/ui/options/cntr_mrb_fw_n.png
new file mode 100644
index 00000000..8d5ea32c
Binary files /dev/null and b/data/ui/options/cntr_mrb_fw_n.png differ
diff --git a/data/ui/options/cntr_mrb_jmp_d.png b/data/ui/options/cntr_mrb_jmp_d.png
new file mode 100644
index 00000000..4e693d6c
Binary files /dev/null and b/data/ui/options/cntr_mrb_jmp_d.png differ
diff --git a/data/ui/options/cntr_mrb_jmp_h.png b/data/ui/options/cntr_mrb_jmp_h.png
new file mode 100644
index 00000000..fba24da2
Binary files /dev/null and b/data/ui/options/cntr_mrb_jmp_h.png differ
diff --git a/data/ui/options/cntr_mrb_jmp_n.png b/data/ui/options/cntr_mrb_jmp_n.png
new file mode 100644
index 00000000..71114312
Binary files /dev/null and b/data/ui/options/cntr_mrb_jmp_n.png differ
diff --git a/data/ui/options/cntr_mrb_lft_d.png b/data/ui/options/cntr_mrb_lft_d.png
new file mode 100644
index 00000000..c66bc6af
Binary files /dev/null and b/data/ui/options/cntr_mrb_lft_d.png differ
diff --git a/data/ui/options/cntr_mrb_lft_h.png b/data/ui/options/cntr_mrb_lft_h.png
new file mode 100644
index 00000000..23a2c97e
Binary files /dev/null and b/data/ui/options/cntr_mrb_lft_h.png differ
diff --git a/data/ui/options/cntr_mrb_lft_n.png b/data/ui/options/cntr_mrb_lft_n.png
new file mode 100644
index 00000000..14447615
Binary files /dev/null and b/data/ui/options/cntr_mrb_lft_n.png differ
diff --git a/data/ui/options/cntr_mrb_pwr_d.png b/data/ui/options/cntr_mrb_pwr_d.png
new file mode 100644
index 00000000..60210d0f
Binary files /dev/null and b/data/ui/options/cntr_mrb_pwr_d.png differ
diff --git a/data/ui/options/cntr_mrb_pwr_h.png b/data/ui/options/cntr_mrb_pwr_h.png
new file mode 100644
index 00000000..4f9c0188
Binary files /dev/null and b/data/ui/options/cntr_mrb_pwr_h.png differ
diff --git a/data/ui/options/cntr_mrb_pwr_n.png b/data/ui/options/cntr_mrb_pwr_n.png
new file mode 100644
index 00000000..ac05022e
Binary files /dev/null and b/data/ui/options/cntr_mrb_pwr_n.png differ
diff --git a/data/ui/options/cntr_mrb_rt_d.png b/data/ui/options/cntr_mrb_rt_d.png
new file mode 100644
index 00000000..e771c78e
Binary files /dev/null and b/data/ui/options/cntr_mrb_rt_d.png differ
diff --git a/data/ui/options/cntr_mrb_rt_h.png b/data/ui/options/cntr_mrb_rt_h.png
new file mode 100644
index 00000000..1e7833e4
Binary files /dev/null and b/data/ui/options/cntr_mrb_rt_h.png differ
diff --git a/data/ui/options/cntr_mrb_rt_n.png b/data/ui/options/cntr_mrb_rt_n.png
new file mode 100644
index 00000000..622c3401
Binary files /dev/null and b/data/ui/options/cntr_mrb_rt_n.png differ
diff --git a/data/ui/options/cntr_rwnd_d.png b/data/ui/options/cntr_rwnd_d.png
new file mode 100644
index 00000000..be3521f4
Binary files /dev/null and b/data/ui/options/cntr_rwnd_d.png differ
diff --git a/data/ui/options/cntr_rwnd_h.png b/data/ui/options/cntr_rwnd_h.png
new file mode 100644
index 00000000..e69c5b61
Binary files /dev/null and b/data/ui/options/cntr_rwnd_h.png differ
diff --git a/data/ui/options/cntr_rwnd_n.png b/data/ui/options/cntr_rwnd_n.png
new file mode 100644
index 00000000..3c57d4a0
Binary files /dev/null and b/data/ui/options/cntr_rwnd_n.png differ
diff --git a/data/ui/options/cntr_tab.png b/data/ui/options/cntr_tab.png
new file mode 100644
index 00000000..1d6ffc40
Binary files /dev/null and b/data/ui/options/cntr_tab.png differ
diff --git a/data/ui/options/cntrl_cam_bse.png b/data/ui/options/cntrl_cam_bse.png
new file mode 100644
index 00000000..bbd95a80
Binary files /dev/null and b/data/ui/options/cntrl_cam_bse.png differ
diff --git a/data/ui/options/cntrl_marb_bse.png b/data/ui/options/cntrl_marb_bse.png
new file mode 100644
index 00000000..8b9ec865
Binary files /dev/null and b/data/ui/options/cntrl_marb_bse.png differ
diff --git a/data/ui/options/cntrl_mous_base.png b/data/ui/options/cntrl_mous_base.png
new file mode 100644
index 00000000..edd01c67
Binary files /dev/null and b/data/ui/options/cntrl_mous_base.png differ
diff --git a/data/ui/options/cntrl_mous_bttn_d.png b/data/ui/options/cntrl_mous_bttn_d.png
new file mode 100644
index 00000000..ef1f9374
Binary files /dev/null and b/data/ui/options/cntrl_mous_bttn_d.png differ
diff --git a/data/ui/options/cntrl_mous_bttn_h.png b/data/ui/options/cntrl_mous_bttn_h.png
new file mode 100644
index 00000000..8528128c
Binary files /dev/null and b/data/ui/options/cntrl_mous_bttn_h.png differ
diff --git a/data/ui/options/cntrl_mous_bttn_n.png b/data/ui/options/cntrl_mous_bttn_n.png
new file mode 100644
index 00000000..8254e164
Binary files /dev/null and b/data/ui/options/cntrl_mous_bttn_n.png differ
diff --git a/data/ui/options/cntrl_mous_freel_d.png b/data/ui/options/cntrl_mous_freel_d.png
new file mode 100644
index 00000000..666d0f7d
Binary files /dev/null and b/data/ui/options/cntrl_mous_freel_d.png differ
diff --git a/data/ui/options/cntrl_mous_freel_h.png b/data/ui/options/cntrl_mous_freel_h.png
new file mode 100644
index 00000000..94c0568e
Binary files /dev/null and b/data/ui/options/cntrl_mous_freel_h.png differ
diff --git a/data/ui/options/cntrl_mous_freel_n.png b/data/ui/options/cntrl_mous_freel_n.png
new file mode 100644
index 00000000..6e64fc65
Binary files /dev/null and b/data/ui/options/cntrl_mous_freel_n.png differ
diff --git a/data/ui/options/cntrl_mous_invrt_d.png b/data/ui/options/cntrl_mous_invrt_d.png
new file mode 100644
index 00000000..01bbdccb
Binary files /dev/null and b/data/ui/options/cntrl_mous_invrt_d.png differ
diff --git a/data/ui/options/cntrl_mous_invrt_h.png b/data/ui/options/cntrl_mous_invrt_h.png
new file mode 100644
index 00000000..8d3982d8
Binary files /dev/null and b/data/ui/options/cntrl_mous_invrt_h.png differ
diff --git a/data/ui/options/cntrl_mous_invrt_n.png b/data/ui/options/cntrl_mous_invrt_n.png
new file mode 100644
index 00000000..efd7db1e
Binary files /dev/null and b/data/ui/options/cntrl_mous_invrt_n.png differ
diff --git a/data/ui/options/cntrl_mous_knb.png b/data/ui/options/cntrl_mous_knb.png
new file mode 100644
index 00000000..429c43f4
Binary files /dev/null and b/data/ui/options/cntrl_mous_knb.png differ
diff --git a/data/ui/options/graf1024_d.png b/data/ui/options/graf1024_d.png
new file mode 100644
index 00000000..20e2ae9f
Binary files /dev/null and b/data/ui/options/graf1024_d.png differ
diff --git a/data/ui/options/graf1024_h.png b/data/ui/options/graf1024_h.png
new file mode 100644
index 00000000..0a06f391
Binary files /dev/null and b/data/ui/options/graf1024_h.png differ
diff --git a/data/ui/options/graf1024_n.png b/data/ui/options/graf1024_n.png
new file mode 100644
index 00000000..e79dfe51
Binary files /dev/null and b/data/ui/options/graf1024_n.png differ
diff --git a/data/ui/options/graf16bt_d.png b/data/ui/options/graf16bt_d.png
new file mode 100644
index 00000000..c1fe91ad
Binary files /dev/null and b/data/ui/options/graf16bt_d.png differ
diff --git a/data/ui/options/graf16bt_h.png b/data/ui/options/graf16bt_h.png
new file mode 100644
index 00000000..4903b22f
Binary files /dev/null and b/data/ui/options/graf16bt_h.png differ
diff --git a/data/ui/options/graf16bt_n.png b/data/ui/options/graf16bt_n.png
new file mode 100644
index 00000000..5162810f
Binary files /dev/null and b/data/ui/options/graf16bt_n.png differ
diff --git a/data/ui/options/graf32bt_d.png b/data/ui/options/graf32bt_d.png
new file mode 100644
index 00000000..6bf02bfc
Binary files /dev/null and b/data/ui/options/graf32bt_d.png differ
diff --git a/data/ui/options/graf32bt_h.png b/data/ui/options/graf32bt_h.png
new file mode 100644
index 00000000..1834809b
Binary files /dev/null and b/data/ui/options/graf32bt_h.png differ
diff --git a/data/ui/options/graf32bt_n.png b/data/ui/options/graf32bt_n.png
new file mode 100644
index 00000000..9cef231e
Binary files /dev/null and b/data/ui/options/graf32bt_n.png differ
diff --git a/data/ui/options/graf640_d.png b/data/ui/options/graf640_d.png
new file mode 100644
index 00000000..c30ebed2
Binary files /dev/null and b/data/ui/options/graf640_d.png differ
diff --git a/data/ui/options/graf640_h.png b/data/ui/options/graf640_h.png
new file mode 100644
index 00000000..4efd22d4
Binary files /dev/null and b/data/ui/options/graf640_h.png differ
diff --git a/data/ui/options/graf640_n.png b/data/ui/options/graf640_n.png
new file mode 100644
index 00000000..05620fff
Binary files /dev/null and b/data/ui/options/graf640_n.png differ
diff --git a/data/ui/options/graf800_d.png b/data/ui/options/graf800_d.png
new file mode 100644
index 00000000..c9dd0674
Binary files /dev/null and b/data/ui/options/graf800_d.png differ
diff --git a/data/ui/options/graf800_h.png b/data/ui/options/graf800_h.png
new file mode 100644
index 00000000..fe8a6406
Binary files /dev/null and b/data/ui/options/graf800_h.png differ
diff --git a/data/ui/options/graf800_n.png b/data/ui/options/graf800_n.png
new file mode 100644
index 00000000..4a046424
Binary files /dev/null and b/data/ui/options/graf800_n.png differ
diff --git a/data/ui/options/graf_chkbx_d.png b/data/ui/options/graf_chkbx_d.png
new file mode 100644
index 00000000..0307c490
Binary files /dev/null and b/data/ui/options/graf_chkbx_d.png differ
diff --git a/data/ui/options/graf_chkbx_h.png b/data/ui/options/graf_chkbx_h.png
new file mode 100644
index 00000000..4a9700ea
Binary files /dev/null and b/data/ui/options/graf_chkbx_h.png differ
diff --git a/data/ui/options/graf_chkbx_n.png b/data/ui/options/graf_chkbx_n.png
new file mode 100644
index 00000000..f4851aa2
Binary files /dev/null and b/data/ui/options/graf_chkbx_n.png differ
diff --git a/data/ui/options/graf_tab.png b/data/ui/options/graf_tab.png
new file mode 100644
index 00000000..dc80e8d5
Binary files /dev/null and b/data/ui/options/graf_tab.png differ
diff --git a/data/ui/options/graf_txt.png b/data/ui/options/graf_txt.png
new file mode 100644
index 00000000..627b2b55
Binary files /dev/null and b/data/ui/options/graf_txt.png differ
diff --git a/data/ui/options/grafapply_d.png b/data/ui/options/grafapply_d.png
new file mode 100644
index 00000000..0430ca81
Binary files /dev/null and b/data/ui/options/grafapply_d.png differ
diff --git a/data/ui/options/grafapply_h.png b/data/ui/options/grafapply_h.png
new file mode 100644
index 00000000..0f729449
Binary files /dev/null and b/data/ui/options/grafapply_h.png differ
diff --git a/data/ui/options/grafapply_n.png b/data/ui/options/grafapply_n.png
new file mode 100644
index 00000000..41b69222
Binary files /dev/null and b/data/ui/options/grafapply_n.png differ
diff --git a/data/ui/options/grafdir3d_d.png b/data/ui/options/grafdir3d_d.png
new file mode 100644
index 00000000..776bb04b
Binary files /dev/null and b/data/ui/options/grafdir3d_d.png differ
diff --git a/data/ui/options/grafdir3d_h.png b/data/ui/options/grafdir3d_h.png
new file mode 100644
index 00000000..b57bace5
Binary files /dev/null and b/data/ui/options/grafdir3d_h.png differ
diff --git a/data/ui/options/grafdir3d_n.png b/data/ui/options/grafdir3d_n.png
new file mode 100644
index 00000000..bfe14bcf
Binary files /dev/null and b/data/ui/options/grafdir3d_n.png differ
diff --git a/data/ui/options/grafful_d.png b/data/ui/options/grafful_d.png
new file mode 100644
index 00000000..c18b1786
Binary files /dev/null and b/data/ui/options/grafful_d.png differ
diff --git a/data/ui/options/grafful_h.png b/data/ui/options/grafful_h.png
new file mode 100644
index 00000000..1ed4a2e1
Binary files /dev/null and b/data/ui/options/grafful_h.png differ
diff --git a/data/ui/options/grafful_n.png b/data/ui/options/grafful_n.png
new file mode 100644
index 00000000..62c6b432
Binary files /dev/null and b/data/ui/options/grafful_n.png differ
diff --git a/data/ui/options/grafopgl_d.png b/data/ui/options/grafopgl_d.png
new file mode 100644
index 00000000..e791011f
Binary files /dev/null and b/data/ui/options/grafopgl_d.png differ
diff --git a/data/ui/options/grafopgl_h.png b/data/ui/options/grafopgl_h.png
new file mode 100644
index 00000000..1fcd0579
Binary files /dev/null and b/data/ui/options/grafopgl_h.png differ
diff --git a/data/ui/options/grafopgl_n.png b/data/ui/options/grafopgl_n.png
new file mode 100644
index 00000000..1f722880
Binary files /dev/null and b/data/ui/options/grafopgl_n.png differ
diff --git a/data/ui/options/grafwindo_d.png b/data/ui/options/grafwindo_d.png
new file mode 100644
index 00000000..91e31f74
Binary files /dev/null and b/data/ui/options/grafwindo_d.png differ
diff --git a/data/ui/options/grafwindo_h.png b/data/ui/options/grafwindo_h.png
new file mode 100644
index 00000000..82cc2c16
Binary files /dev/null and b/data/ui/options/grafwindo_h.png differ
diff --git a/data/ui/options/grafwindo_n.png b/data/ui/options/grafwindo_n.png
new file mode 100644
index 00000000..340c1c36
Binary files /dev/null and b/data/ui/options/grafwindo_n.png differ
diff --git a/data/ui/options/mainm_d.png b/data/ui/options/mainm_d.png
new file mode 100644
index 00000000..6dd163b2
Binary files /dev/null and b/data/ui/options/mainm_d.png differ
diff --git a/data/ui/options/mainm_h.png b/data/ui/options/mainm_h.png
new file mode 100644
index 00000000..d0651bd4
Binary files /dev/null and b/data/ui/options/mainm_h.png differ
diff --git a/data/ui/options/mainm_n.png b/data/ui/options/mainm_n.png
new file mode 100644
index 00000000..a415bfe3
Binary files /dev/null and b/data/ui/options/mainm_n.png differ
diff --git a/data/ui/options/options_base.png b/data/ui/options/options_base.png
new file mode 100644
index 00000000..cee5b53f
Binary files /dev/null and b/data/ui/options/options_base.png differ
diff --git a/data/ui/options/rwnd_quality.png b/data/ui/options/rwnd_quality.png
new file mode 100644
index 00000000..e8765dfb
Binary files /dev/null and b/data/ui/options/rwnd_quality.png differ
diff --git a/data/ui/options/rwnd_tab.png b/data/ui/options/rwnd_tab.png
new file mode 100644
index 00000000..2c95d3fe
Binary files /dev/null and b/data/ui/options/rwnd_tab.png differ
diff --git a/data/ui/options/rwnd_timescale.png b/data/ui/options/rwnd_timescale.png
new file mode 100644
index 00000000..44ad4a9e
Binary files /dev/null and b/data/ui/options/rwnd_timescale.png differ
diff --git a/data/ui/options/rwnd_txt.png b/data/ui/options/rwnd_txt.png
new file mode 100644
index 00000000..799874f2
Binary files /dev/null and b/data/ui/options/rwnd_txt.png differ
diff --git a/data/ui/optionsdlg.gui.dso b/data/ui/optionsdlg.gui.dso
new file mode 100644
index 00000000..c676b0fa
Binary files /dev/null and b/data/ui/optionsdlg.gui.dso differ
diff --git a/data/ui/optionsgui.png b/data/ui/optionsgui.png
new file mode 100644
index 00000000..457e9952
Binary files /dev/null and b/data/ui/optionsgui.png differ
diff --git a/data/ui/play/back_d.png b/data/ui/play/back_d.png
new file mode 100644
index 00000000..f6183689
Binary files /dev/null and b/data/ui/play/back_d.png differ
diff --git a/data/ui/play/back_h.png b/data/ui/play/back_h.png
new file mode 100644
index 00000000..7e0cf388
Binary files /dev/null and b/data/ui/play/back_h.png differ
diff --git a/data/ui/play/back_i.png b/data/ui/play/back_i.png
new file mode 100644
index 00000000..040f9608
Binary files /dev/null and b/data/ui/play/back_i.png differ
diff --git a/data/ui/play/back_n.png b/data/ui/play/back_n.png
new file mode 100644
index 00000000..fada42d0
Binary files /dev/null and b/data/ui/play/back_n.png differ
diff --git a/data/ui/play/cust_tab.png b/data/ui/play/cust_tab.png
new file mode 100644
index 00000000..7a3af762
Binary files /dev/null and b/data/ui/play/cust_tab.png differ
diff --git a/data/ui/play/goldscore.png b/data/ui/play/goldscore.png
new file mode 100644
index 00000000..a5f1674e
Binary files /dev/null and b/data/ui/play/goldscore.png differ
diff --git a/data/ui/play/level_window.png b/data/ui/play/level_window.png
new file mode 100644
index 00000000..8c5d5397
Binary files /dev/null and b/data/ui/play/level_window.png differ
diff --git a/data/ui/play/next_d.png b/data/ui/play/next_d.png
new file mode 100644
index 00000000..7b3dccd8
Binary files /dev/null and b/data/ui/play/next_d.png differ
diff --git a/data/ui/play/next_h.png b/data/ui/play/next_h.png
new file mode 100644
index 00000000..e64ebe24
Binary files /dev/null and b/data/ui/play/next_h.png differ
diff --git a/data/ui/play/next_i.png b/data/ui/play/next_i.png
new file mode 100644
index 00000000..d21727fe
Binary files /dev/null and b/data/ui/play/next_i.png differ
diff --git a/data/ui/play/next_n.png b/data/ui/play/next_n.png
new file mode 100644
index 00000000..e00bb7c8
Binary files /dev/null and b/data/ui/play/next_n.png differ
diff --git a/data/ui/play/play_d.png b/data/ui/play/play_d.png
new file mode 100644
index 00000000..11d35680
Binary files /dev/null and b/data/ui/play/play_d.png differ
diff --git a/data/ui/play/play_h.png b/data/ui/play/play_h.png
new file mode 100644
index 00000000..ddc4c93f
Binary files /dev/null and b/data/ui/play/play_h.png differ
diff --git a/data/ui/play/play_i.png b/data/ui/play/play_i.png
new file mode 100644
index 00000000..3e9a92f3
Binary files /dev/null and b/data/ui/play/play_i.png differ
diff --git a/data/ui/play/play_n.png b/data/ui/play/play_n.png
new file mode 100644
index 00000000..5caafa0c
Binary files /dev/null and b/data/ui/play/play_n.png differ
diff --git a/data/ui/play/playgui.png b/data/ui/play/playgui.png
new file mode 100644
index 00000000..16616298
Binary files /dev/null and b/data/ui/play/playgui.png differ
diff --git a/data/ui/play/prev_d.png b/data/ui/play/prev_d.png
new file mode 100644
index 00000000..34b20805
Binary files /dev/null and b/data/ui/play/prev_d.png differ
diff --git a/data/ui/play/prev_h.png b/data/ui/play/prev_h.png
new file mode 100644
index 00000000..3c4bd0ef
Binary files /dev/null and b/data/ui/play/prev_h.png differ
diff --git a/data/ui/play/prev_i.png b/data/ui/play/prev_i.png
new file mode 100644
index 00000000..e71740ef
Binary files /dev/null and b/data/ui/play/prev_i.png differ
diff --git a/data/ui/play/prev_n.png b/data/ui/play/prev_n.png
new file mode 100644
index 00000000..b1ef44ba
Binary files /dev/null and b/data/ui/play/prev_n.png differ
diff --git a/data/ui/play/tab_adv.png b/data/ui/play/tab_adv.png
new file mode 100644
index 00000000..aa562b6f
Binary files /dev/null and b/data/ui/play/tab_adv.png differ
diff --git a/data/ui/play/tab_begin.png b/data/ui/play/tab_begin.png
new file mode 100644
index 00000000..18725dd3
Binary files /dev/null and b/data/ui/play/tab_begin.png differ
diff --git a/data/ui/play/tab_inter.png b/data/ui/play/tab_inter.png
new file mode 100644
index 00000000..240248c9
Binary files /dev/null and b/data/ui/play/tab_inter.png differ
diff --git a/data/ui/play/text_window.png b/data/ui/play/text_window.png
new file mode 100644
index 00000000..a50467c0
Binary files /dev/null and b/data/ui/play/text_window.png differ
diff --git a/data/ui/playMissionGui.gui b/data/ui/playMissionGui.gui
new file mode 100644
index 00000000..fa1396eb
--- /dev/null
+++ b/data/ui/playMissionGui.gui
@@ -0,0 +1,646 @@
+//--- OBJECT WRITE BEGIN ---
+new GuiChunkedBitmapCtrl(playMissionGui) {
+ profile = "GuiContentProfile";
+ horizSizing = "width";
+ vertSizing = "height";
+ position = "0 0";
+ extent = "640 480";
+ minExtent = "8 8";
+ visible = "1";
+ helpTag = "0";
+ bitmap = "./background.jpg";
+ useVariable = "0";
+ tile = "0";
+
+ new GuiControl() {
+ profile = "GuiDefaultProfile";
+ horizSizing = "center";
+ vertSizing = "center";
+ position = "-1 44";
+ extent = "641 392";
+ minExtent = "8 8";
+ visible = "1";
+ helpTag = "0";
+
+ new GuiBitmapCtrl(PM_TabAdvanced) {
+ profile = "GuiDefaultProfile";
+ horizSizing = "right";
+ vertSizing = "bottom";
+ position = "410 21";
+ extent = "166 43";
+ minExtent = "8 8";
+ visible = "1";
+ command = "$MissionType=\"Advanced\";buildMissionList();";
+ helpTag = "0";
+ bitmap = "./play/tab_adv";
+ wrap = "1";
+ text = "Advanced";
+ };
+ new GuiBitmapCtrl(PM_TabIntermediate) {
+ profile = "GuiDefaultProfile";
+ horizSizing = "right";
+ vertSizing = "bottom";
+ position = "213 4";
+ extent = "205 58";
+ minExtent = "8 8";
+ visible = "1";
+ command = "$MissionType=\"Intermediate\";buildMissionList();";
+ helpTag = "0";
+ bitmap = "./play/tab_inter";
+ wrap = "1";
+ text = "Intermediate";
+ };
+ new GuiBitmapCtrl(PM_TabCustom) {
+ profile = "GuiDefaultProfile";
+ horizSizing = "right";
+ vertSizing = "bottom";
+ position = "589 91";
+ extent = "52 198";
+ minExtent = "8 8";
+ visible = "1";
+ command = "$MissionType=\"Custom\";buildMissionList();";
+ helpTag = "0";
+ bitmap = "./play/cust_tab";
+ wrap = "0";
+ text = "Advanced";
+ };
+ new GuiBitmapCtrl(PM_Box) {
+ profile = "GuiDefaultProfile";
+ horizSizing = "width";
+ vertSizing = "height";
+ position = "0 42";
+ extent = "610 351";
+ minExtent = "8 8";
+ visible = "1";
+ helpTag = "0";
+ bitmap = "./play/playGui.png";
+ wrap = "0";
+
+ new GuiBitmapCtrl() {
+ profile = "GuiDefaultProfile";
+ horizSizing = "width";
+ vertSizing = "height";
+ position = "31 29";
+ extent = "276 229";
+ minExtent = "8 8";
+ visible = "1";
+ helpTag = "0";
+ bitmap = "./play/text_window";
+ wrap = "0";
+ };
+ new GuiBitmapCtrl(PM_preview) {
+ profile = "GuiDefaultProfile";
+ horizSizing = "right";
+ vertSizing = "bottom";
+ position = "312 42";
+ extent = "258 193";
+ minExtent = "8 8";
+ visible = "1";
+ helpTag = "0";
+ bitmap = "~/data/missions/beginner/superspeed";
+ wrap = "0";
+
+ new GuiControl(PM_NoQualOverlay) {
+ profile = "OverlayScreenProfile";
+ horizSizing = "right";
+ vertSizing = "bottom";
+ position = "2 3";
+ extent = "256 190";
+ minExtent = "8 8";
+ visible = "1";
+ helpTag = "0";
+ };
+ new GuiBitmapCtrl() {
+ profile = "GuiDefaultProfile";
+ horizSizing = "right";
+ vertSizing = "bottom";
+ position = "0 0";
+ extent = "258 194";
+ minExtent = "8 8";
+ visible = "1";
+ helpTag = "0";
+ bitmap = "./play/level_window.png";
+ wrap = "0";
+
+ new GuiMLTextCtrl(PM_level_bkgnd) {
+ profile = "GuiMLTextProfile";
+ horizSizing = "right";
+ vertSizing = "bottom";
+ position = "5 156";
+ extent = "254 24";
+ minExtent = "8 8";
+ visible = "1";
+ helpTag = "0";
+ lineSpacing = "2";
+ allowColorChars = "0";
+ maxChars = "-1";
+ };
+ new GuiMLTextCtrl(PM_level_fgnd) {
+ profile = "GuiMLTextProfile";
+ horizSizing = "right";
+ vertSizing = "bottom";
+ position = "4 155";
+ extent = "254 24";
+ minExtent = "8 8";
+ visible = "1";
+ helpTag = "0";
+ lineSpacing = "2";
+ allowColorChars = "0";
+ maxChars = "-1";
+ };
+ new GuiMLTextCtrl(PM_NoQualText) {
+ profile = "GuiMLTextProfile";
+ horizSizing = "right";
+ vertSizing = "bottom";
+ position = "0 84";
+ extent = "254 32";
+ minExtent = "8 8";
+ visible = "1";
+ helpTag = "0";
+ lineSpacing = "2";
+ allowColorChars = "0";
+ maxChars = "-1";
+ };
+ };
+ };
+ new GuiBitmapButtonCtrl(PM_play) {
+ profile = "GuiButtonProfile";
+ horizSizing = "right";
+ vertSizing = "bottom";
+ position = "391 257";
+ extent = "121 62";
+ minExtent = "8 8";
+ visible = "1";
+ command = "PM_StartMission();";
+ helpTag = "0";
+ text = "play";
+ groupNum = "-1";
+ buttonType = "PushButton";
+ bitmap = "./play/play";
+ };
+ new GuiBitmapButtonCtrl(PM_prev) {
+ profile = "GuiButtonProfile";
+ horizSizing = "right";
+ vertSizing = "bottom";
+ position = "321 260";
+ extent = "77 58";
+ minExtent = "8 8";
+ visible = "1";
+ command = "PM_setSelected(4);";
+ helpTag = "0";
+ text = "Prev";
+ groupNum = "-1";
+ buttonType = "RepeaterButton";
+ repeatPeriod = 350;
+ repeatDecay = 0.9;
+ accelerator = "left";
+ bitmap = "./play/prev";
+ };
+ new GuiBitmapButtonCtrl(PM_next) {
+ profile = "GuiButtonProfile";
+ horizSizing = "right";
+ vertSizing = "bottom";
+ position = "507 262";
+ extent = "75 60";
+ minExtent = "8 8";
+ visible = "1";
+ command = "PM_setSelected(6);";
+ helpTag = "0";
+ text = "Next";
+ groupNum = "-1";
+ buttonType = "RepeaterButton";
+ repeatPeriod = 350;
+ accelerator = "right";
+ repeatDecay = 0.9;
+ bitmap = "./play/next";
+ };
+ new GuiTextListCtrl(PM_missionList) {
+ profile = "GuiTextArrayProfile";
+ horizSizing = "right";
+ vertSizing = "bottom";
+ position = "0 0";
+ extent = "80 384";
+ minExtent = "8 8";
+ visible = "0";
+ helpTag = "0";
+ enumerate = "0";
+ resizeCell = "1";
+ columns = "0";
+ fitParentWidth = "1";
+ clipColumnText = "0";
+ noDuplicates = "false";
+ };
+ new GuiBitmapButtonCtrl() {
+ profile = "GuiButtonProfile";
+ horizSizing = "right";
+ vertSizing = "bottom";
+ position = "102 260";
+ extent = "79 61";
+ minExtent = "8 8";
+ visible = "1";
+ command = "disconnect(); Canvas.setContent(MainMenuGui);";
+ accelerator = "escape";
+ helpTag = "0";
+ text = "play";
+ groupNum = "-1";
+ buttonType = "PushButton";
+ bitmap = "./play/back";
+ };
+ new GuiMLTextCtrl(PM_description) {
+ profile = "GuiMLTextProfile";
+ horizSizing = "right";
+ vertSizing = "bottom";
+ position = "61 43";
+ extent = "215 174";
+ minExtent = "8 8";
+ visible = "1";
+ helpTag = "0";
+ lineSpacing = "2";
+ allowColorChars = "0";
+ maxChars = "-1";
+ };
+ };
+ new GuiBitmapCtrl(PM_TabBeginner) {
+ profile = "GuiDefaultProfile";
+ horizSizing = "right";
+ vertSizing = "bottom";
+ position = "29 2";
+ extent = "184 55";
+ minExtent = "8 8";
+ visible = "1";
+ command = "$MissionType=\"Beginner\";buildMissionList();";
+ helpTag = "0";
+ bitmap = "./play/tab_begin";
+ wrap = "1";
+ text = "Beginner";
+ };
+ new GuiControl(PM_TabButtons) {
+ profile = "GuiDefaultProfile";
+ horizSizing = "right";
+ vertSizing = "bottom";
+ position = "-4 2";
+ extent = "631 61";
+ minExtent = "8 8";
+ visible = "1";
+ helpTag = "0";
+
+ new GuiButtonBaseCtrl() {
+ profile = "GuiDefaultProfile";
+ horizSizing = "right";
+ vertSizing = "bottom";
+ position = "577 18";
+ extent = "43 40";
+ minExtent = "8 8";
+ visible = "1";
+ command = "$MissionType=\"\";buildMissionList();";
+ helpTag = "0";
+ text = "Button";
+ groupNum = "-1";
+ buttonType = "PushButton";
+ };
+ new GuiButtonBaseCtrl() {
+ profile = "GuiDefaultProfile";
+ horizSizing = "right";
+ vertSizing = "bottom";
+ position = "428 22";
+ extent = "142 36";
+ minExtent = "8 8";
+ visible = "1";
+ command = "PMSetMissionTab(\"Advanced\");";
+ helpTag = "0";
+ text = "Button";
+ groupNum = "-1";
+ buttonType = "PushButton";
+ };
+ new GuiButtonBaseCtrl() {
+ profile = "GuiDefaultProfile";
+ horizSizing = "right";
+ vertSizing = "bottom";
+ position = "236 6";
+ extent = "183 52";
+ minExtent = "8 8";
+ visible = "1";
+ command = "PMSetMissionTab(\"Intermediate\");";
+ helpTag = "0";
+ text = "Button";
+ groupNum = "-1";
+ buttonType = "PushButton";
+ };
+ new GuiButtonBaseCtrl() {
+ profile = "GuiDefaultProfile";
+ horizSizing = "right";
+ vertSizing = "bottom";
+ position = "62 7";
+ extent = "141 50";
+ minExtent = "8 8";
+ visible = "1";
+ command = "PMSetMissionTab(\"Beginner\");";
+ helpTag = "0";
+ text = "Button";
+ groupNum = "-1";
+ buttonType = "PushButton";
+ };
+ };
+ new GuiButtonBaseCtrl(PM_TabButtons2) {
+ profile = "GuiDefaultProfile";
+ horizSizing = "right";
+ vertSizing = "bottom";
+ position = "597 106";
+ extent = "42 171";
+ minExtent = "8 8";
+ visible = "1";
+ command = "PMSetMissionTab(\"Custom\");";
+ helpTag = "0";
+ text = "Button";
+ groupNum = "-1";
+ buttonType = "PushButton";
+ };
+ };
+ new GuiButtonBaseCtrl() {
+ profile = "GuiDefaultProfile";
+ horizSizing = "left";
+ vertSizing = "top";
+ position = "625 465";
+ extent = "18 19";
+ minExtent = "8 8";
+ visible = "1";
+ command = "PM_skipQualify();";
+ helpTag = "0";
+ text = "Button";
+ groupNum = "-1";
+ buttonType = "PushButton";
+ };
+};
+//--- OBJECT WRITE END ---
+
+
+//----------------------------------------
+function playMissionGui::onWake()
+{
+ if($MissionType $= "")
+ $MissionType = "Beginner";
+ PMSetMissionTab($MissionType);
+}
+
+function PMSetMissionTab(%tab)
+{
+ $MissionType = %tab;
+ %par = PM_Box.getGroup();
+ RootGroup.add(PM_Box);
+ RootGroup.add("PM_Tab" @ %tab);
+ RootGroup.add(PM_TabButtons);
+ RootGroup.add(PM_TabButtons2);
+ %par.add(PM_Box);
+ %par.add("PM_Tab" @ %tab);
+ %par.add(PM_TabButtons);
+ %par.add(PM_TabButtons2);
+ buildMissionList();
+}
+
+function sortByLevel(%grp)
+{
+ %ngrp = new SimGroup();
+ // take all the objects out of grp and put them in ngrp
+ while((%obj = %grp.getObject(0)) != -1)
+ %ngrp.add(%obj);
+
+ while(%ngrp.getCount() != 0)
+ {
+ %lowest = %ngrp.getObject(0).level;
+ %lowestIndex = 0;
+ for(%i = 1; %i < %ngrp.getCount(); %i++)
+ {
+ %level = %ngrp.getObject(%i).level;
+ if(%level < %lowest)
+ {
+ %lowest = %level;
+ %lowestIndex = %i;
+ }
+ }
+ %obj = %ngrp.getObject(%lowestIndex);
+ %grp.add(%obj);
+ %obj.level = %grp.getCount();
+ }
+ %ngrp.delete();
+}
+
+function buildMissionList()
+{
+ if (!isObject(PlayMissionGroup))
+ {
+ new SimGroup(PlayMissionGroup);
+ RootGroup.add(PlayMissionGroup);
+
+ for(%file = findFirstFile($Server::MissionFileSpec);
+ %file !$= ""; %file = findNextFile($Server::MissionFileSpec))
+ {
+ if (strStr(%file, "CVS/") == -1 && strStr(%file, "common/") == -1)
+ getMissionObject(%file);
+ }
+ for(%i = 0;(%grp = PlayMissionGroup.getObject(%i)) != -1; %i++)
+ sortByLevel(%grp);
+ }
+ PM_missionList.clear();
+ %cnt = 0;
+ for(%i = 0;(%grp = PlayMissionGroup.getObject(%i)) != -1; %i++)
+ {
+ if($MissionType $= "" || %grp.getName() $= ("MTYPE_" @ $MissionType))
+ {
+ for(%j = 0; (%mission = %grp.getObject(%j)) != -1; %j++)
+ {
+ PM_missionList.addRow(%cnt++, %mission.level TAB %mission);
+ }
+ }
+ }
+ // Select mission level, or highest qualified
+ if(isObject(MissionInfo) && $LastMissionType $= $MissionType)
+ {
+ if($Game::Qualified)
+ %level = MissionInfo.level + 1;
+ else
+ %level = MissionInfo.level;
+ }
+ else
+ %level = $Pref::QualifiedLevel[$MissionType];
+ %selected = PM_missionList.rowCount() - 1;
+ for (%row = 0; %row < PM_missionList.rowCount(); %row++)
+ {
+ %mission = getField(PM_missionList.getRowText(%row), 1);
+ if (%mission.level + 0 == %level)
+ {
+ %selected = %row;
+ break;
+ }
+ }
+
+ PM_setSelected(%selected);
+}
+
+function PM_skipQualify()
+{
+ %row = PM_MissionList.getRowNumById(PM_MissionList.getSelectedId());
+ if($MissionType !$= "" && %row == $pref::QualifiedLevel[$MissionType])
+ {
+ $pref::QualifiedLevel[$MissionType]++;
+ PM_setSelected(%row);
+ }
+}
+
+//----------------------------------------
+function PM_StartMission()
+{
+
+ %id = PM_missionList.getSelectedId();
+ %mission = getField(PM_missionList.getRowTextById(%id), 1);
+ $LastMissionType = %mission.type;
+
+ //
+ if ($pref::HostMultiPlayer)
+ %serverType = "MultiPlayer";
+ else
+ %serverType = "SinglePlayer";
+
+ // We need to start a server if one isn't already running
+ if ($Server::ServerType $= "") {
+ if($doRecordDemo)
+ recordDemo("~/client/demos/demo.rec", %mission.file);
+ createServer(%serverType, %mission.file);
+ %conn = new GameConnection(ServerConnection);
+ RootGroup.add(ServerConnection);
+ %conn.setConnectArgs($pref::Player::Name);
+ %conn.setJoinPassword($Client::Password);
+ %conn.connectLocal();
+ }
+ else
+ loadMission(%mission.file);
+ if(isObject(MissionInfo))
+ MissionInfo.level = %mission.level;
+}
+
+function onDemoPlay(%misFile)
+{
+ $playingDemo = true;
+ createServer("SinglePlayer", %misFile);
+ %conn = new GameConnection(ServerConnection);
+ RootGroup.add(ServerConnection);
+ %conn.setConnectArgs($pref::Player::Name);
+ %conn.setJoinPassword($Client::Password);
+ %conn.connectLocal();
+}
+
+function onDemoPlayDone(%forced)
+{
+ $playingDemo = false;
+ disconnect();
+ if(%forced)
+ Canvas.setContent(MainMenuGui);
+ else
+ runPresentation();
+}
+
+//----------------------------------------
+function PM_setSelected( %row )
+{
+ %playEnabled = (PM_missionList.rowCount() > 0) && ($testCheats || ($MissionType $= "") || (%row < $pref::QualifiedLevel[$MissionType]));
+
+ PM_play.setActive(%playEnabled);
+ PM_NoQualOverlay.setVisible(!%playEnabled);
+ PM_NoQualText.setText(%playEnabled ? "" : "Not Qualified!");
+
+ PM_missionList.setSelectedRow(%row);
+ %id = PM_missionList.getSelectedId();
+ %mission = getField(PM_missionList.getRowTextById(%id), 1);
+
+ // set the preview info
+ %levelText = "" @ upperFirst(%mission.type) @ " Level " @ (%mission.level+0);
+ PM_level_fgnd.setText("" @ %levelText);
+ PM_level_bkgnd.setText("" @ %levelText);
+ %descText = "" @ %mission.name @
+ "\n\n" @
+ %mission.desc;
+ if(%mission.time)
+ %descText = %descText @ "\nTime to Qualify: " @ formatTime(%mission.time) @ "";
+
+ %file = %mission.file;
+ getBestTimes(%file);
+ %descText = %descText @ "\n\nBest Times:\n\n";
+ for(%i = 0; %i < 3; %i++)
+ {
+ %time = getField($hs[%i], 0);
+ %descText = %descText @ "" @ (%i + 1) @ ". " @ getField($hs[%i], 1) TAB formatTime(%time) TAB ((%time < %mission.goldTime) ? "\n" : "\n");
+ }
+
+ PM_description.setValue( %descText );
+
+ PM_preview.setBitmap(filePath(%mission.file) @ "/" @fileBase(%mission.file));
+
+ %next = %row+1;
+ PM_next.setActive(%next < PM_missionList.rowCount());
+
+ if (%next >= PM_missionList.rowCount())
+ %next = PM_missionList.rowCount() - 1;
+ PM_next.command = "PM_setSelected(" @ %next @ ");";
+
+ %prev = %row-1;
+ PM_prev.setActive(%prev >= 0);
+ if (%prev < 0 )
+ %prev = 0;
+ PM_prev.command = "PM_setSelected(" @ %prev @ ");";
+}
+
+
+//----------------------------------------
+function getMissionObject( %missionFile )
+{
+ %file = new FileObject();
+
+ %missionInfoObject = "";
+
+ if ( %file.openForRead( %missionFile ) ) {
+ %inInfoBlock = false;
+
+ while ( !%file.isEOF() ) {
+ %line = %file.readLine();
+ %line = trim( %line );
+
+ if( %line $= "new ScriptObject(MissionInfo) {" ) {
+ %line = "new ScriptObject() {";
+ %inInfoBlock = true;
+ }
+ else if( %inInfoBlock && %line $= "};" ) {
+ %inInfoBlock = false;
+ %missionInfoObject = %missionInfoObject @ %line;
+ break;
+ }
+
+ if( %inInfoBlock )
+ %missionInfoObject = %missionInfoObject @ %line @ " ";
+ }
+
+ %file.close();
+ }
+ %missionInfoObject = "%missionInfoObject = " @ %missionInfoObject;
+ eval( %missionInfoObject );
+
+ // find the directory this file belongs in:
+
+ %path = filePath(%missionFile);
+ %misPath = filePath(%path);
+
+ if(%misPath !$= "marble/data/missions")
+ %groupTab = "custom";
+ else
+ %groupTab = fileBase(%path);
+
+ %grp = nameToId("MTYPE_" @ %groupTab);
+ if(%grp == -1)
+ {
+ %grp = new SimGroup("MTYPE_" @ %groupTab);
+ PlayMissionGroup.add(%grp);
+ }
+ %missionInfoObject.type = %groupTab;
+ %missionInfoObject.setName("");
+ %grp.add(%missionInfoObject);
+ %missionInfoObject.file = %missionFile;
+ %file.delete();
+}
diff --git a/data/ui/playerlist.gui.dso b/data/ui/playerlist.gui.dso
new file mode 100644
index 00000000..7fa1c66e
Binary files /dev/null and b/data/ui/playerlist.gui.dso differ
diff --git a/data/ui/playgui.gui.dso b/data/ui/playgui.gui.dso
new file mode 100644
index 00000000..9f4b1d4e
Binary files /dev/null and b/data/ui/playgui.gui.dso differ
diff --git a/data/ui/playmissiongui.gui.dso b/data/ui/playmissiongui.gui.dso
new file mode 100644
index 00000000..62b44de5
Binary files /dev/null and b/data/ui/playmissiongui.gui.dso differ
diff --git a/data/ui/presents.jpg b/data/ui/presents.jpg
new file mode 100644
index 00000000..7a2a9137
Binary files /dev/null and b/data/ui/presents.jpg differ
diff --git a/data/ui/presentsgui.gui.dso b/data/ui/presentsgui.gui.dso
new file mode 100644
index 00000000..bdf3e793
Binary files /dev/null and b/data/ui/presentsgui.gui.dso differ
diff --git a/data/ui/production.jpg b/data/ui/production.jpg
new file mode 100644
index 00000000..74c1c3f9
Binary files /dev/null and b/data/ui/production.jpg differ
diff --git a/data/ui/productiongui.gui.dso b/data/ui/productiongui.gui.dso
new file mode 100644
index 00000000..d5c9a100
Binary files /dev/null and b/data/ui/productiongui.gui.dso differ
diff --git a/data/ui/rebrands/_ b/data/ui/rebrands/_
new file mode 100644
index 00000000..e69de29b
diff --git a/data/ui/remapdlg.gui.dso b/data/ui/remapdlg.gui.dso
new file mode 100644
index 00000000..d986da70
Binary files /dev/null and b/data/ui/remapdlg.gui.dso differ
diff --git a/data/ui/startmissiongui.gui.dso b/data/ui/startmissiongui.gui.dso
new file mode 100644
index 00000000..c58d8610
Binary files /dev/null and b/data/ui/startmissiongui.gui.dso differ
diff --git a/data/ui/title.jpg b/data/ui/title.jpg
new file mode 100644
index 00000000..909c0aeb
Binary files /dev/null and b/data/ui/title.jpg differ
diff --git a/data/ui/titlegui.gui.dso b/data/ui/titlegui.gui.dso
new file mode 100644
index 00000000..fb77aaf1
Binary files /dev/null and b/data/ui/titlegui.gui.dso differ