home *** CD-ROM | disk | FTP | other *** search
/ GameStar Special 2004 August / GSSH0804.iso / Geschicklichkeit / Enigma / Enigma-081.exe / data / startup.lua < prev   
Text File  |  2003-09-12  |  6KB  |  162 lines

  1. ------------------------------------------------------------------------
  2. -- Copyright (C) 2002,2003 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.16 2003/09/12 21:40:20 dheck Exp $
  19. ------------------------------------------------------------------------
  20.  
  21. function Require(filename)
  22.     dofile(enigma.FindDataFile(filename))
  23. end
  24.  
  25. ------------------------------
  26. -- Extensions to C packages --
  27. ------------------------------
  28.  
  29. function options.LevelStat (key, stat)
  30.     -- Enigma accidentally used to save times in the wrong numeric format.
  31.     -- The following two lines works around this problem
  32.     if stat[1] < 0 then stat[1] = -1 end
  33.     if stat[2] < 0 then stat[2] = -1 end
  34.     if stat[3] < 0 then stat[3] = 0 end
  35.  
  36.     local status = LevelStatus:new(stat[1], stat[2], stat[3], stat[4] or 0)
  37.     gsub(key, "([^#]*)#(.+)", function (pack,lev)
  38.                                   options.SetLevelStatus(pack,lev, %status)
  39.                               end)
  40.     status:delete()
  41. end
  42.  
  43. ----------------------------------
  44. -- Define some new object types --
  45. ----------------------------------
  46. function def_stone(name, sound)
  47.     world.DefineSimpleStone(name,sound or "st-stone",0,0)
  48. end
  49. function def_stone_hollow(name)
  50.     world.DefineSimpleStone(name,"",1,0)
  51. end
  52. function def_stone_glass(name, sound)
  53.     world.DefineSimpleStone(name,sound or "st-stone",0,1)
  54. end
  55. function def_stone_movable_glass(name, sound)
  56.     world.DefineSimpleStoneMovable(name,sound or "st-stone",1)
  57. end
  58. function def_stone_movable(name, sound)
  59.     world.DefineSimpleStoneMovable(name,sound or "st-stone",0)
  60. end
  61. function def_floor(name, frict, mfactor)
  62.     world.DefineSimpleFloor(name, frict, mfactor)
  63. end
  64.  
  65. def_stone_movable("st-brownie", "st-thud")
  66. def_stone("st-invisible")
  67. def_stone("st-marble")
  68. def_stone_movable("st-marble_move")
  69. def_stone_hollow("st-marble_hole")
  70. def_stone("st-rock1")
  71. def_stone_movable("st-rock1_move")
  72. def_stone_hollow("st-rock1_hole")
  73. def_stone("st-rock2")
  74. def_stone_hollow("st-rock2_hole")
  75. def_stone("st-rock3")
  76. def_stone_movable("st-rock3_move")
  77. def_stone_hollow("st-rock3_hole")
  78. def_stone("st-rock4")
  79. def_stone("st-rock5")
  80. def_stone("st-rock6")
  81. def_stone("st-rock7")
  82. def_stone("st-rock8")
  83. def_stone("st-greenbrown")
  84. def_stone_movable("st-greenbrown_move")
  85. def_stone_hollow("st-greenbrown_hole")
  86. def_stone("st-brick")
  87. def_stone("st-woven")
  88. def_stone("st-wood_001")
  89. def_stone("st-bluegray")
  90. def_stone_hollow("st-bluegray_hole")
  91. def_stone("st-stone1")
  92. def_stone("st-stone2")
  93. def_stone("st-beads")
  94. def_stone("st-metal")
  95. def_stone("st-blue-sand")
  96. def_stone("st-yellow")
  97. def_stone("st-plain")
  98.  
  99. function mkoxydlikes(flavor)
  100.    def_stone("st-likeoxyd"..flavor)
  101.    def_stone("st-likeoxyd"..flavor.."-open")
  102. end
  103. mkoxydlikes("a")
  104. mkoxydlikes("b")
  105. mkoxydlikes("c")
  106. mkoxydlikes("d")
  107.  
  108. def_stone_glass("st-glass")
  109. def_stone_movable_glass("st-glass_move")
  110. def_stone_glass("st-glass1")
  111. def_stone_hollow("st-glass1_hole")
  112. def_stone_glass("st-glass2")
  113. def_stone_hollow("st-glass2_hole")
  114. def_stone_glass("st-glass3")
  115.  
  116. -- Floor(kind, friction, mousefactor)
  117. def_floor("fl-bluegray",    4.5,   1.5)
  118. def_floor("fl-bluegreen",   6.0,   2.0)
  119. def_floor("fl-bluegreenx",  0.4,   1.0)
  120. def_floor("fl-brick",       4.0,   2.0)
  121. def_floor("fl-bumps",       5.0,   1.2)
  122. def_floor("fl-concrete",    4.5,   1.3)
  123. def_floor("fl-dummy",       4.0,   2.5)
  124. def_floor("fl-dunes",       1.3,   1.0)
  125. def_floor("fl-floor_001",   1.5,   2.5)
  126. def_floor("fl-gravel",      3.2,   1.5)
  127. def_floor("fl-gray",        5.0,   3.0)
  128. def_floor("fl-hay",         5.0,   1.5)
  129. def_floor("fl-himalaya",    5.0,   2.0)
  130. def_floor("fl-ice_001",     0.1,   0.1)
  131. def_floor("fl-inverse",     3.0,  -2.0)
  132. def_floor("fl-inverse2",    3.0,  -2.0)
  133. def_floor("fl-leaves",      4.0,   1.5)
  134. def_floor("fl-light",       2.2,   1.6)
  135. def_floor("fl-marble",      6.4,   2.0)
  136. def_floor("fl-metal",       3.0,   2.0)
  137. def_floor("fl-mortar",      7.2,   1.8)
  138. def_floor("fl-normal",      4.0,   2.0)
  139. def_floor("fl-normal_x",    3.0,   2.0)
  140. def_floor("fl-plank",       5.5,   2.0)
  141. def_floor("fl-red",         0.9,   1.0)
  142. def_floor("fl-rock",        3.0,   1.5)
  143. def_floor("fl-rough",       7.0,   2.0)
  144. def_floor("fl-rough_medium",5.0,   1.2)
  145. def_floor("fl-rough_slow",  7.0,   0.5)
  146. def_floor("fl-rough-blue",  7.0,   2.0)
  147. def_floor("fl-rough-red",   7.0,   2.0)
  148. def_floor("fl-sahara",      6.4,   2.0)
  149. def_floor("fl-samba",       6.0,   2.0)
  150. def_floor("fl-sand",        6.0,   2.0)
  151. def_floor("fl-space",       0.0,   0.0)
  152. def_floor("fl-springboard", 4.0,   2.0)
  153. def_floor("fl-stone",       1.4,   1.0)
  154. def_floor("fl-tigris",      6.0,   2.0)
  155. def_floor("fl-wood",        6.4,   2.0)
  156. def_floor("fl-stwood",      3.5,   2.0)
  157. def_floor("fl-woven",       6.5,   3.0)
  158. def_floor("fl-black",       3.0,   1.5)
  159. def_floor("fl-white",       3.0,   1.5)
  160. def_floor("fl-trigger",     3.0,   1.5)
  161. def_floor("fl-abyss_fake",  3.0,   2.0)
  162.