home *** CD-ROM | disk | FTP | other *** search
/ Chip 2011 November / CHIP_2011_11.iso / Programy / Inne / Gry / Enigma / Enigma-1.01-w7.exe / data / startup.lua < prev   
Text File  |  2009-12-13  |  9KB  |  249 lines

  1. ------------------------------------------------------------------------
  2. -- Copyright (C) 2002,2003,2004,2005 Daniel Heck
  3. --
  4. -- This program is free software; you can redistribute it and/or
  5. -- modify it under the terms of the GNU General Public License
  6. -- as published by the Free Software Foundation; either version 2
  7. -- of the License, or (at your option) any later version.
  8. --
  9. -- This program is distributed in the hope that it will be useful,
  10. -- but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12. -- GNU General Public License for more details.
  13. --
  14. -- You should have received a copy of the GNU General Public License along
  15. -- with this program; if not, write to the Free Software Foundation, Inc.,
  16. -- 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
  17. --
  18. -- $Id: startup.lua,v 1.21 2004/02/15 11:54:36 dheck Exp $
  19. ------------------------------------------------------------------------
  20.  
  21. function Require(filename)
  22.     dofile(enigma.FindDataFile(filename))
  23. end
  24.  
  25. ---------------------
  26. -- Option handling --
  27. ---------------------
  28.  
  29. -- Set default values for options
  30. options = {
  31.     MouseSpeed        = 7.0,
  32.     FullScreen        = 0,
  33.     Nozoom            = 1,
  34.     InGameMusic       = 0,                  -- no music during the game
  35.     Difficulty        = 2,                  -- hard
  36.     Tournament        = 0,                  -- tournament mode off
  37.     VideoMode         = 0,
  38.     Gamma             = 1.0,  
  39.     LevelMenuPosition = 0.0,
  40.  
  41.     SoundSet          = 0,
  42.     -- 0   = 'enigma' for enigma, appropriate oxyd sound sets for oxyd versions
  43.     -- 1   = 'enigma'
  44.     -- 2.. = OxydVersion-2
  45.  
  46.     SkipSolvedLevels = 0,
  47.     TimeHunting      = 0,
  48.  
  49.     SoundVolume      = 1.0,
  50.     MusicVolume      = 1.0,
  51.     StereoSeparation = 10.0,
  52.  
  53.     MenuMusicFile  = "sound/menu.s3m",
  54.     LevelMusicFile = "sound/Emilie.xm",
  55.  
  56.     Language = "",
  57.     History = "",
  58. }
  59.  
  60. -- Table of level stats is initially empty
  61. stats = {}
  62.  
  63.  
  64. -- For backwards compatibility only --
  65. function options.LevelStat2 (key, stat)
  66.     if stat[1] < 0 then stat[1] = -1 end
  67.     if stat[2] < 0 then stat[2] = -1 end
  68.     if stat[3] < 0 then stat[3] = 0 end
  69.  
  70.     gsub(key, "([^#]*)#(.+)", function (pack,lev) stats[lev] = stat end)
  71. end
  72.  
  73. -- For backwards compatibility only --
  74. function options.LevelStat (key, stat)
  75.     -- old level status (containing modtime of .lua file)
  76.     -- [keep this function here for compatibility with old config files]
  77.  
  78.     -- Enigma accidentally used to save times in the wrong numeric format.
  79.     -- The following two lines work around this problem
  80.     if stat[1] < 0 then stat[1] = -1 end
  81.     if stat[2] < 0 then stat[2] = -1 end
  82.     if stat[3] < 0 then stat[3] = 0 end
  83.  
  84.     stat[4] = stat[4] or 0
  85.     if stat[4] > 0 then 
  86.         stat[4] = 1 
  87.     end -- level status has 'solved_at' time -> default to revision 1
  88.  
  89.     gsub(key, "([^#]*)#(.+)", function (pack,lev) stats[lev] = stat end)
  90. end
  91.  
  92. function LoadOptions (filename)
  93.     dofile(filename)
  94. end
  95.  
  96.  
  97. ----------------------------------
  98. -- Define some new object types --
  99. ----------------------------------
  100. function def_stone(name, sound)
  101.     world.DefineSimpleStone(name,sound or "stone",0,0)
  102. end
  103. function def_stone_hollow(name)
  104.     world.DefineSimpleStone(name,"",1,0)
  105. end
  106. function def_stone_glass(name, sound)
  107.     world.DefineSimpleStone(name,sound or "stone",0,1)
  108. end
  109. function def_stone_movable_glass(name, sound)
  110.     world.DefineSimpleStoneMovable(name,sound or "stone",1)
  111. end
  112. function def_stone_movable(name, sound)
  113.     world.DefineSimpleStoneMovable(name,sound or "stone",0)
  114. end
  115. function def_floor(name, frict, mfactor, burnable, firetransform)
  116.     world.DefineSimpleFloor(name, frict, mfactor, burnable, firetransform)
  117. end
  118.  
  119. def_stone_movable("st-brownie", "cloth")
  120. def_stone("st-invisible")
  121. def_stone("st-marble")
  122. def_stone_movable("st-marble_move")
  123. def_stone_hollow("st-marble_hole")
  124. def_stone("st-rock1")
  125. def_stone_movable("st-rock1_move")
  126. def_stone_hollow("st-rock1_hole")
  127. def_stone("st-rock2")
  128. def_stone_hollow("st-rock2_hole")
  129. def_stone("st-rock3")
  130. def_stone_movable("st-rock3_move")
  131. def_stone_hollow("st-rock3_hole")
  132. def_stone("st-rock4")
  133. def_stone("st-rock5")
  134. def_stone("st-rock6")
  135. def_stone("st-rock7")
  136. def_stone("st-rock8")
  137. def_stone("st-rock9")
  138. def_stone("st-rock10")
  139. def_stone("st-redrock")
  140. def_stone("st-camouflage", "cloth")
  141. def_stone_movable("st-camouflage_move", "cloth")
  142. def_stone_hollow("st-camouflage_hole")
  143. def_stone("st-greenbrown")
  144. def_stone_movable("st-greenbrown_move", "cloth")
  145. def_stone_hollow("st-greenbrown_hole")
  146. def_stone("st-brick")
  147. def_stone("st-woven")
  148. def_stone("st-wood_001")
  149. def_stone("st-bluegray")
  150. def_stone_hollow("st-bluegray_hole")
  151. def_stone("st-stone1")
  152. def_stone("st-stone2")
  153. def_stone("st-bumps")
  154. def_stone("st-beads")
  155. def_stone("st-metal")
  156. def_stone_hollow("st-metal_hole")
  157. def_stone("st-blue-sand")
  158. def_stone("st-yellow")
  159.  
  160. function mkoxydlikes(flavor)
  161.    def_stone("st-likeoxyd"..flavor)
  162.    def_stone("st-likeoxyd"..flavor.."-open")
  163. end
  164. mkoxydlikes("a")
  165. mkoxydlikes("b")
  166. mkoxydlikes("c")
  167. mkoxydlikes("d")
  168.  
  169. def_stone_glass("st-glass")
  170. def_stone_movable_glass("st-glass_move")
  171. def_stone_glass("st-glass1")
  172. def_stone_movable_glass("st-glass1_move")
  173. def_stone_hollow("st-glass1_hole")
  174. def_stone_glass("st-glass2")
  175. def_stone_movable_glass("st-glass2_move")
  176. def_stone_hollow("st-glass2_hole")
  177. def_stone_glass("st-glass3")
  178.  
  179. -- Floor(kind, friction, mousefactor, burnable, firetransform)
  180. def_floor("fl-bluegray",     4.5,   1.5,    true,   "")
  181. def_floor("fl-bluegreen",    6.0,   2.0,    true,   "")
  182. def_floor("fl-bluegreenx",   0.4,   1.0,    true,   "")
  183. def_floor("fl-brick",        3.5,   2.0,   false,   "")
  184. def_floor("fl-bumps",        5.0,   1.2,   false,   "")
  185. def_floor("fl-concrete",     4.5,   1.3,   false,   "")
  186. def_floor("fl-dunes",        1.3,   1.0,   false,   "")
  187. def_floor("fl-floor_001",    1.5,   2.5,    true,   "fl-abyss")
  188. def_floor("fl-gravel",       3.2,   1.5,   false,   "")
  189. def_floor("fl-gray",         5.0,   3.0,   false,   "")
  190. def_floor("fl-hay",          5.0,   1.5,    true,   "")
  191. def_floor("fl-himalaya",     5.0,   2.0,   false,   "")
  192. def_floor("fl-inverse",      3.0,  -2.0,   false,   "")
  193. def_floor("fl-inverse2",     3.0,  -2.0,   false,   "")
  194. def_floor("fl-leaves",       4.0,   1.5,    true,   "fl-dunes")
  195. def_floor("fl-leavesb",      4.0,   1.5,    true,   "fl-dunes")
  196. def_floor("fl-leavesc1",     4.0,   1.5,    true,   "fl-dunes")
  197. def_floor("fl-leavesc2",     4.0,   1.5,    true,   "fl-dunes")
  198. def_floor("fl-leavesc3",     4.0,   1.5,    true,   "fl-dunes")
  199. def_floor("fl-leavesc4",     4.0,   1.5,    true,   "fl-dunes")
  200. def_floor("fl-leavesd1",     4.0,   1.5,    true,   "fl-dunes")
  201. def_floor("fl-leavesd2",     4.0,   1.5,    true,   "fl-dunes")
  202. def_floor("fl-leavesd3",     4.0,   1.5,    true,   "fl-dunes")
  203. def_floor("fl-leavesd4",     4.0,   1.5,    true,   "fl-dunes")
  204. def_floor("fl-leavese1",     4.0,   1.5,    true,   "fl-dunes")
  205. def_floor("fl-leavese2",     4.0,   1.5,    true,   "fl-dunes")
  206. def_floor("fl-leavese3",     4.0,   1.5,    true,   "fl-dunes")
  207. def_floor("fl-leavese4",     4.0,   1.5,    true,   "fl-dunes")
  208. def_floor("fl-light",        2.2,   1.6,    true,   "")
  209. def_floor("fl-lightgray",    3.0,   1.6,    true,   "")
  210. def_floor("fl-darkgray",     3.0,   1.6,   false,   "")
  211. def_floor("fl-marble",       6.4,   2.0,    true,   "")
  212. def_floor("fl-metal",        3.0,   2.0,   false,   "")
  213. def_floor("fl-metal1",       3.0,   2.0,   false,   "")
  214. def_floor("fl-metal2",       3.0,   2.0,   false,   "")
  215. def_floor("fl-metal3",       3.0,   2.0,   false,   "")
  216. def_floor("fl-metal4",       3.0,   2.0,   false,   "")
  217. def_floor("fl-metal5",       3.0,   2.0,   false,   "")
  218. def_floor("fl-metal6",       3.0,   2.0,   false,   "")
  219. def_floor("fl-mortar",       7.2,   1.8,   false,   "")
  220. def_floor("fl-normal",       4.0,   2.0,   false,   "")
  221. def_floor("fl-normal_x",     3.0,   2.0,   false,   "")
  222. def_floor("fl-plank",        5.5,   2.0,    true,   "fl-abyss")
  223. def_floor("fl-red",          0.9,   1.0,    true,   "")
  224. def_floor("fl-rock",         6.5,   2.2,   false,   "")
  225. def_floor("fl-rough",        7.0,   2.0,    true,   "")
  226. def_floor("fl-rough_medium", 5.0,   1.2,    true,   "")
  227. def_floor("fl-rough_slow",   7.0,   0.5,    true,   "")
  228. def_floor("fl-rough-blue",   7.0,   2.0,    true,   "")
  229. def_floor("fl-rough-red",    7.0,   2.0,    true,   "")
  230. def_floor("fl-sahara",       6.4,   2.0,   false,   "")
  231. def_floor("fl-samba",        6.0,   2.0,    true,   "fl-abyss")
  232. def_floor("fl-samba1",       6.0,   2.0,    true,   "fl-abyss")
  233. def_floor("fl-samba2",       6.0,   2.0,    true,   "fl-abyss")
  234. def_floor("fl-sand",         6.0,   2.0,   false,   "")
  235. def_floor("fl-space",        0.0,   0.0,   false,   "")
  236. def_floor("fl-springboard",  4.0,   2.0,   false,   "")
  237. def_floor("fl-stone",        1.4,   1.0,   false,   "")
  238. def_floor("fl-tigris",       6.0,   2.0,    true,   "")
  239. def_floor("fl-wood",         6.4,   2.0,    true,   "fl-abyss")
  240. def_floor("fl-wood1",        6.4,   2.0,    true,   "fl-abyss")
  241. def_floor("fl-wood2",        6.4,   2.0,    true,   "fl-abyss")
  242. def_floor("fl-woven",        6.5,   3.0,    true,   "")
  243. def_floor("fl-woven_orange", 2.5,   0.0,    true,   "")
  244. def_floor("fl-black",        3.0,   1.5,   false,   "")
  245. def_floor("fl-white",        3.0,   1.5,   false,   "")
  246. def_floor("fl-trigger",      3.0,   1.5,    true,   "")
  247. def_floor("fl-abyss_fake",   3.0,   2.0,   false,   "")
  248.  
  249.