partyboy1a

polarium-movie-generator.lua

Aug 28th, 2013
266
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 13.64 KB | None | 0 0
  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)
Add Comment
Please, Sign In to add comment