SHARE
TWEET

polarium-movie-generator.lua

partyboy1a Aug 28th, 2013 190 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- movie_beginning: contains a long string
  2. -- how the movie must start
  3.  
  4. movie_beginning = [[version 1
  5. emuVersion 90900
  6. rerecordCount 305
  7. romFilename 0006 Polarium (US).nds
  8. romChecksum 9B49BD53
  9. romSerial NTR-ASNE-USA
  10. guid 84BE2329-6CE1-AED6-9052-49F1F1BBE9EB
  11. useExtBios 0
  12. advancedTiming 1
  13. useExtFirmware 0
  14. firmNickname yopyop
  15. firmMessage DeSmuME makes you happy!
  16. firmFavColour 10
  17. firmBirthMonth 7
  18. firmBirthDay 15
  19. firmLanguage 1
  20. rtcStartNew 2009-JAN-01 00:00:00:000
  21. comment author partyboy1a
  22. |0|.............000 000 0|
  23. |0|.............000 000 0|
  24. |0|.............000 000 0|
  25. |0|.............000 000 0|
  26. |0|.............000 000 0|
  27. |0|.............000 000 0|
  28. |0|.............000 000 0|
  29. |0|.............000 000 0|
  30. |0|.............000 000 0|
  31. |0|.............000 000 0|
  32. |0|.............000 000 0|
  33. |0|.............000 000 0|
  34. |0|.............000 000 0|
  35. |0|.............000 000 0|
  36. |0|.............000 000 0|
  37. |0|.............000 000 0|
  38. |0|.............000 000 0|
  39. |0|.............000 000 0|
  40. |0|.............000 000 0|
  41. |0|.............000 000 0|
  42. |0|.............000 000 0|
  43. |0|.............000 000 0|
  44. |0|.............000 000 0|
  45. |0|.............000 000 0|
  46. |0|.............000 000 0|
  47. |0|.............000 000 0|
  48. |0|.............000 000 0|
  49. |0|.............000 000 0|
  50. |0|.............000 000 0|
  51. |0|.............000 000 0|
  52. |0|.............000 000 0|
  53. |0|.............000 000 0|
  54. |0|.............000 000 0|
  55. |0|.............000 000 0|
  56. |0|.............000 000 0|
  57. |0|.............000 000 0|
  58. |0|.............000 000 0|
  59. |0|.............000 000 0|
  60. |0|.............000 000 0|
  61. |0|.............000 000 0|
  62. |0|.............000 000 0|
  63. |0|.............000 000 0|
  64. |0|.............000 000 0|
  65. |0|.............000 000 0|
  66. |0|.............000 000 0|
  67. |0|.............000 000 0|
  68. |0|.............000 000 0|
  69. |0|.............000 000 0|
  70. |0|.............000 000 0|
  71. |0|.............000 000 0|
  72. |0|.............000 000 0|
  73. |0|.............000 000 0|
  74. |0|.............000 000 0|
  75. |0|.............000 000 0|
  76. |0|.............000 000 0|
  77. |0|.............000 000 0|
  78. |0|.............000 000 0|
  79. |0|.............000 000 0|
  80. |0|.............000 000 0|
  81. |0|.............000 000 0|
  82. |0|.............000 000 0|
  83. |0|.............000 000 0|
  84. |0|.............000 000 0|
  85. |0|.............000 000 0|
  86. |0|.............000 000 0|
  87. |0|.............000 000 0|
  88. |0|.............000 000 0|
  89. |0|.............000 000 0|
  90. |0|.............000 000 0|
  91. |0|.............000 000 0|
  92. |0|.............000 000 0|
  93. |0|.............000 000 0|
  94. |0|.............000 000 0|
  95. |0|.............152 126 1|
  96. |0|.............152 126 1|
  97. |0|.............152 126 1|
  98. |0|.............000 000 0|
  99. |0|.............000 000 0|
  100. |0|.............000 000 0|
  101. |0|.............000 000 0|
  102. |0|.............000 000 0|
  103. |0|.............000 000 0|
  104. |0|.............000 000 0|
  105. |0|.............000 000 0|
  106. |0|.............000 000 0|
  107. |0|.............000 000 0|
  108. |0|.............000 000 0|
  109. |0|.............000 000 0|
  110. |0|.............000 000 0|
  111. |0|.............000 000 0|
  112. |0|.............000 000 0|
  113. |0|.............000 000 0|
  114. |0|.............000 000 0|
  115. |0|.............000 000 0|
  116. |0|.............000 000 0|
  117. |0|.............000 000 0|
  118. |0|.............000 000 0|
  119. |0|.............000 000 0|
  120. |0|.............000 000 0|
  121. |0|.............000 000 0|
  122. |0|.............000 000 0|
  123. |0|.............000 000 0|
  124. |0|.............000 000 0|
  125. |0|.............000 000 0|
  126. |0|.............000 000 0|
  127. |0|.............000 000 0|
  128. |0|.............000 000 0|
  129. |0|.............000 000 0|
  130. |0|.............000 000 0|
  131. |0|.............000 000 0|
  132. |0|.............000 000 0|
  133. |0|.............000 000 0|
  134. |0|.............000 000 0|
  135. |0|.............000 000 0|
  136. |0|.............000 000 0|
  137. |0|.............000 000 0|
  138. |0|.............240 096 1|
  139. |0|.............240 096 1|
  140. |0|.............240 096 1|
  141. |0|.............000 000 0|
  142. |0|.............000 000 0|
  143. |0|.............000 000 0|
  144. |0|.............000 000 0|
  145. |0|.............000 000 0|
  146. |0|.............000 000 0|
  147. |0|.............000 000 0|
  148. |0|.............000 000 0|
  149. |0|.............000 000 0|
  150. |0|.............000 000 0|
  151. |0|.............000 000 0|
  152. |0|.............000 000 0|
  153. |0|.............000 000 0|
  154. |0|.............000 000 0|
  155. |0|.............000 000 0|
  156. |0|.............000 000 0|
  157. |0|.............000 000 0|
  158. |0|.............000 000 0|
  159. |0|.............000 000 0|
  160. |0|.............000 000 0|
  161. |0|.............000 000 0|
  162. |0|.............000 000 0|
  163. |0|.............000 000 0|
  164. |0|.............000 000 0|
  165. |0|.............000 000 0|
  166. |0|.............000 000 0|
  167. |0|.............000 000 0|
  168. |0|.............000 000 0|
  169. |0|.............000 000 0|
  170. |0|.............000 000 0|
  171. |0|.............000 000 0|
  172. |0|.............000 000 0|
  173. |0|.............000 000 0|
  174. |0|.............000 000 0|
  175. |0|.............000 000 0|
  176. |0|.............000 000 0|
  177. |0|.............000 000 0|
  178. |0|.............000 000 0|
  179. |0|.............000 000 0|
  180. |0|.............000 000 0|
  181. |0|.............000 000 0|
  182. |0|.............000 000 0|
  183. |0|.............000 000 0|
  184. |0|.............000 000 0|
  185. |0|.............000 000 0|
  186. |0|.............000 000 0|
  187. |0|.............000 000 0|
  188. |0|.............000 000 0|
  189. |0|.............000 000 0|
  190. |0|.............000 000 0|
  191. |0|.............000 000 0|
  192. |0|.............000 000 0|
  193. |0|.............000 000 0|
  194. |0|.............000 000 0|
  195. |0|.............162 011 1|
  196. |0|.............162 011 1|
  197. |0|.............162 011 1|
  198. |0|.............000 000 0|
  199. |0|.............130 071 1|
  200. |0|.............130 071 1|
  201. |0|.............130 071 1|
  202. |0|.............000 000 0|
  203. |0|.............000 000 0|
  204. |0|.............000 000 0|
  205. |0|.............000 000 0|
  206. |0|.............000 000 0|
  207. |0|.............000 000 0|
  208. |0|.............000 000 0|
  209. |0|.............000 000 0|
  210. |0|.............000 000 0|
  211. |0|.............000 000 0|
  212. |0|.............000 000 0|
  213. |0|.............000 000 0|
  214. |0|.............000 000 0|
  215. |0|.............000 000 0|
  216. |0|.............000 000 0|
  217. |0|.............000 000 0|
  218. |0|.............000 000 0|
  219. |0|.............000 000 0|
  220. |0|.............000 000 0|
  221. |0|.............000 000 0|
  222. |0|.............000 000 0|
  223. |0|.............000 000 0|
  224. |0|.............000 000 0|
  225. |0|.............000 000 0|
  226. |0|.............000 000 0|
  227. |0|.............000 000 0|
  228. |0|.............000 000 0|
  229. |0|.............000 000 0|
  230. |0|.............000 000 0|
  231. |0|.............000 000 0|
  232. |0|.............000 000 0|
  233. |0|.............000 000 0|
  234. |0|.............000 000 0|
  235. |0|.............000 000 0|
  236. |0|.............000 000 0|
  237. |0|.............000 000 0|
  238. |0|.............000 000 0|
  239. |0|.............000 000 0|
  240. |0|.............000 000 0|
  241. |0|.............000 000 0|
  242. |0|.............000 000 0|
  243. |0|.............000 000 0|
  244. |0|.............000 000 0|
  245. |0|.............000 000 0|
  246. |0|.............000 000 0|
  247. |0|.............000 000 0|
  248. |0|.............000 000 0|
  249. |0|.............000 000 0|
  250. |0|.............000 000 0|
  251. |0|.............000 000 0|
  252. |0|.............000 000 0|
  253. |0|.............000 000 0|
  254. |0|.............000 000 0|
  255. |0|.............000 000 0|
  256. |0|.............000 000 0|
  257. |0|.............000 000 0|
  258. |0|.............000 000 0|
  259. |0|.............000 000 0|
  260. |0|.............000 000 0|
  261. |0|.............000 000 0|
  262. |0|.............000 000 0|
  263. |0|.............000 000 0|
  264. |0|.............000 000 0|
  265. |0|.............000 000 0|
  266. |0|.............000 000 0|
  267. |0|.............000 000 0|
  268. |0|.............000 000 0|
  269. |0|.............000 000 0|
  270. |0|.............000 000 0|
  271. |0|.............000 000 0|
  272. |0|.............000 000 0|
  273. |0|.............000 000 0|
  274. |0|.............000 000 0|
  275. |0|.............000 000 0|
  276. |0|.............000 000 0|
  277. |0|.............000 000 0|
  278. |0|.............000 000 0|
  279. |0|.............000 000 0|
  280. |0|.............000 000 0|
  281. |0|.............000 000 0|
  282. |0|.............000 000 0|
  283. |0|.............000 000 0|
  284. |0|.............000 000 0|
  285. |0|.............000 000 0|
  286. |0|.............000 000 0|
  287. |0|.............000 000 0|
  288. |0|.............000 000 0|
  289. |0|.............000 000 0|
  290. |0|.............000 000 0|
  291. |0|.............000 000 0|
  292. |0|.............000 000 0|
  293. |0|.............000 000 0|
  294. |0|.............000 000 0|
  295. |0|.............000 000 0|
  296. |0|.............000 000 0|
  297. |0|.............000 000 0|
  298. |0|.............000 000 0|
  299. |0|.............000 000 0|
  300. |0|.............000 000 0|
  301. |0|.............000 000 0|
  302. |0|.............000 000 0|
  303. |0|.............000 000 0|
  304. |0|.............000 000 0|
  305. |0|.............000 000 0|
  306. |0|.............000 000 0|
  307. |0|.............000 000 0|
  308. |0|.............000 000 0|
  309. |0|.............000 000 0|
  310. |0|.............000 000 0|
  311. |0|.............000 000 0|
  312. |0|.............000 000 0|
  313. |0|.............000 000 0|
  314. |0|.............000 000 0|
  315. |0|.............000 000 0|
  316. |0|.............000 000 0|
  317. |0|.............000 000 0|
  318. |0|.............000 000 0|
  319. |0|.............000 000 0|
  320. |0|.............000 000 0|
  321. |0|.............000 000 0|
  322. |0|.............000 000 0|
  323. |0|.............000 000 0|
  324. |0|.............000 000 0|
  325. |0|.............000 000 0|
  326. |0|.............000 000 0|
  327. |0|.............000 000 0|
  328. |0|.............000 000 0|
  329. |0|.............000 000 0|
  330. |0|.............000 000 0|
  331. |0|.............000 000 0|
  332. |0|.............000 000 0|
  333. |0|.............000 000 0|
  334. |0|.............000 000 0|
  335. |0|.............175 111 1|
  336. |0|.............175 111 1|
  337. |0|.............175 111 1|
  338. |0|.............000 000 0|
  339. |0|.............000 000 0|
  340. |0|.............000 000 0|
  341. |0|.............000 000 0|
  342. |0|.............000 000 0|
  343. |0|.............000 000 0|
  344. |0|.............000 000 0|
  345. |0|.............000 000 0|
  346. |0|.............000 000 0|
  347. |0|.............000 000 0|
  348. |0|.............000 000 0|
  349. |0|.............000 000 0|
  350. |0|.............000 000 0|
  351. |0|.............000 000 0|
  352. |0|.............000 000 0|
  353. |0|.............000 000 0|
  354. |0|.............000 000 0|
  355. |0|.............000 000 0|
  356. |0|.............000 000 0|
  357. |0|.............000 000 0|
  358. |0|.............000 000 0|
  359. |0|.............000 000 0|
  360. |0|.............000 000 0|
  361. |0|.............000 000 0|
  362. |0|.............000 000 0|
  363. |0|.............000 000 0|
  364. |0|.............000 000 0|
  365. |0|.............000 000 0|
  366. |0|.............000 000 0|
  367. |0|.............000 000 0|
  368. |0|.............000 000 0|
  369. |0|.............000 000 0|
  370. |0|.............000 000 0|
  371. |0|.............000 000 0|
  372. |0|.............000 000 0|
  373. |0|.............000 000 0|
  374. |0|.............000 000 0|
  375. |0|.............000 000 0|]]
  376.  
  377. -- x_offset: x position of the leftmost tile
  378. x_offset = {
  379.         0,
  380.         88,
  381.         80,
  382.         72,
  383.         64,
  384.         56,
  385.         48,
  386.         40,
  387.         32
  388. }
  389.        
  390. -- y_offset: y position of the topmost tile
  391. y_offset = {
  392.         0,
  393.         64,
  394.         56,
  395.         48,
  396.         40,
  397.         32,
  398.         24,
  399.         16,
  400.         8
  401. }
  402.        
  403. -- empty_line: contents of a line without any input
  404. empty_line = [[|0|.............000 000 0|
  405. ]]
  406.  
  407. -- start_line: contents of a line where start is pressed
  408. start_line = [[|0|.....S.......000 000 0|
  409. ]]
  410.  
  411. level_one_x = 56
  412. level_one_y = 88
  413.  
  414. ok_x = 174
  415. ok_y = 112
  416.  
  417. ten_levels_y_offset = 8
  418.  
  419. function writepos(x,y)
  420.         local s="|0|............."
  421.         if x < 10 then s=s.."0" end
  422.         if x < 100 then s=s.."0" end
  423.         s=s..x.." "
  424.         if y < 10 then s=s.."0" end
  425.         if y < 100 then s=s.."0" end
  426.         s = s..y..[[ 1|
  427. ]]
  428.         file:write(s)
  429. end
  430.  
  431. function convert_to_input(filename, cancel_early)
  432.         dofile(filename)
  433.         off_x = x_offset[SolutionPath.cols]
  434.         off_y = y_offset[SolutionPath.rows]
  435.         for i, tab in ipairs(SolutionPath) do
  436.                 if tab.x ~= nil then
  437.                         newx, newy = tab.x+off_x, tab.y+off_y
  438.                         writepos(newx,newy)
  439.                 elseif cancel_early then
  440.                         return i-1
  441.                 else
  442.                         file:write(empty_line)
  443.                 end
  444.         end
  445. end
  446.  
  447. -- how many frames to wait after each level
  448. looptab = {
  449.         --1 to 10
  450.         113,113,113,113,117,
  451.         113,117,117,117,117,
  452.         --11 to 20
  453.         113,117,117,113,113,
  454.         113,113,117,109,113,
  455.         --21 to 30
  456.         121,117,121,121,121,
  457.         121,121,121,121,121,
  458.         --31 to 40
  459.         117,121,117,113,113,
  460.         117,117,121,113,113,
  461.         --41 to 50
  462.         113,121,121,121,121,
  463.         117,121,117,121,121,
  464.         --51 to 60
  465.         121,121,121,121,121,
  466.         121,121,121,121,121,
  467.         --61 to 70
  468.         121,121,121,121,117,
  469.         121,121,121,117,121,
  470.         --71 to 80
  471.         121,117,121,121,121,
  472.         121,117,117,121,121,
  473.         --81 to 90
  474.         117,117,117,117,117,
  475.         117,117,117,117,117,
  476.         --91 to 100
  477.         121,117,121,121,117,
  478.         121,121,121,121,1,
  479. }
  480.  
  481. file = io.open("automovie.dsm", "w")
  482. file:write(movie_beginning)
  483. for i = 1,100 do
  484.         if i < 10 then
  485.                 filename="luabot_fastest_puzzle_00"..i
  486.         elseif i < 100 then
  487.                 filename="luabot_fastest_puzzle_0"..i
  488.         else --i == 100
  489.                 filename="luabot_fastest_puzzle_100"
  490.         end
  491.         convert_to_input(filename)
  492.         --[[
  493.         loops = 117
  494.         if i < 5 then loops = 113 end
  495.         if i >= 21 and i <= 30 and i ~= 22 then loops = 121 end
  496.         if i == 32 or i == 38 then loops = 125 end
  497.         --]]
  498.  
  499.         -- set to 1, 11, 21, ... 91
  500.         -- to verify that the menu has been activated
  501.         -- as early as possible
  502.         test_from = 101
  503.         test_to = test_from + 9
  504.         -- test even levels (remainder == 0) or uneven levels (remainder == 1)
  505.         test_remainder = 0
  506.        
  507.         if i >= test_from and i <= test_to and i % 2 == test_remainder then
  508.                 subtract = 1
  509.         else
  510.                 subtract = 0
  511.         end
  512.  
  513.         file:write(empty_line)
  514.         loops = looptab[i] - convert_to_input(filename, true) - 1 - subtract
  515.         if i==100 then break end
  516.  
  517.         for j=1,loops do file:write(empty_line) end
  518.         file:write(start_line)
  519.         file:write(start_line)
  520.         for j=1,57 do file:write(empty_line) end
  521.         new=i+1
  522.         if new < 51 then       
  523.                 for j=1,3 do
  524.                         writepos(level_one_x+16*((new-1)%10), level_one_y+8*math.floor((new-1)/10))
  525.                 end
  526.                 file:write(empty_line)
  527.         elseif new == 51 then
  528.                 for j=1,3 do
  529.                         writepos(216,98)
  530.                 end
  531.                 for j=1,78 do
  532.                         file:write(empty_line)
  533.                 end
  534.                 ok_y = 112
  535.         else --new > 51
  536.                 for j=1,3 do
  537.                         writepos(level_one_x+16*((new-51)%10), level_one_y+8*math.floor((new-51)/10))
  538.                 end
  539.                 file:write(empty_line)         
  540.         end
  541.         if new==21 or new==71 then ok_y=130 end
  542.         if new==41 or new==91 then ok_y=144 end
  543.         for j=1,3 do writepos(ok_x, ok_y) end
  544.  
  545.         loops = 37
  546.         for j=1,loops do file:write(empty_line) end
  547. end
  548.  
  549. io.close(file)
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top