home *** CD-ROM | disk | FTP | other *** search
/ PC Gamer 3.7 / 1997-10_Disc_3.7.iso / qwcraft / quake.fgd < prev    next >
Text File  |  1997-02-18  |  13KB  |  478 lines

  1.  
  2. //
  3. // QUAKE game definition file (.fgd)
  4. //
  5.  
  6. @Main = 
  7. [
  8.     Name: "Quake"
  9.     Palette: "wc.pal"
  10.     DefaultClass: "func_door"
  11. ]
  12.  
  13. //
  14. // worldspawn
  15. //
  16.  
  17. @SolidClass = worldspawn : "World entity"
  18. [
  19.     message(string) : "Text on entering the world"
  20.     worldtype(choices) : "Ambience" : 0 =
  21.     [
  22.         0 : "Medieval"
  23.         1 : "Runic (metal)"
  24.         2 : "Present (base)"
  25.     ]
  26.     sounds(integer) : "CD track to play" : 1
  27.     light(integer) : "Default light level"
  28. ]
  29.  
  30. //
  31. // base marker definitions
  32. //
  33.  
  34. @baseclass = Appearflags [
  35.     spawnflags(Flags) =
  36.     [
  37.         256 : "Not in Easy" : 0
  38.         512 : "Not in Normal" : 0
  39.         1024 : "Not in Hard" : 0
  40.         2048 : "Not in Deathmatch" : 0
  41.     ]
  42. ]
  43.  
  44. @baseclass = Targetname [ targetname(target_source) : "Name" ]
  45. @baseclass = Target [ target(target_destination) : "Target" ]
  46.  
  47. //
  48. // player starts, deathmatch, coop, teleport
  49. //
  50.  
  51. @baseclass base(Appearflags) size(-16 -16 -24, 16 16 24) 
  52.     color(0 255 0) = PlayerClass []
  53.  
  54. @PointClass base(PlayerClass) = info_player_start : "Player 1 start" []
  55. @PointClass base(PlayerClass) = info_player_deathmatch : "Player deathmatch start" []
  56. @PointClass base(PlayerClass) = info_player_coop : "Player cooperative start" []
  57. @PointClass base(PlayerClass) = info_player_start2 : "Player episode return point" []
  58. @PointClass base(PlayerClass, Targetname) = info_teleport_destination : "Teleport destination" []
  59. @PointClass = info_null : "info_null (spotlight target)"
  60. [
  61.     targetname(target_source) : "Name" 
  62. ]
  63.  
  64. //
  65. // CTF stuff
  66. //
  67.  
  68. @PointClass size(-16 -16 -24, 16 16 32) base(Appearflags) = 
  69.     item_flag_team1 : "CTF: Red Team Flag" []
  70. @PointClass size(-16 -16 -24, 16 16 32) base(Appearflags) = 
  71.     item_flag_team2 : "CTF: Blue Team Flag" []
  72. @PointClass base(PlayerClass) = info_player_team1 : "CTF: Red team base start" []
  73. @PointClass base(PlayerClass) = info_player_team2 : "CTF: Blue team base start" []
  74.  
  75. @PointClass base(Appearflags) = info_intermission : "Intermission camera" []
  76.  
  77. //
  78. // items
  79. //
  80.  
  81. @baseclass size(32 32 32) color(80 0 200) base(Appearflags) = Ammo
  82. [
  83.     spawnflags(flags) = 
  84.     [
  85.         1 : "Large box" : 0
  86.     ]
  87. ]
  88.  
  89. @PointClass base(Ammo) = item_cells : "Thunderbolt ammo" []
  90. @PointClass base(Ammo) = item_rockets : "Rockets" []
  91. @PointClass base(Ammo) = item_shells : "Shells" []
  92. @PointClass base(Ammo) = item_spikes : "Perforator/Nailgun ammo" []
  93.  
  94. @PointClass size(32 32 32) base(Appearflags) = item_health : "Health pak" 
  95. [
  96.     spawnflags(flags) = 
  97.     [
  98.         1 : "Rotten" : 0
  99.         2 : "Megahealth" : 0
  100.     ]
  101. ]
  102.  
  103. @PointClass base(Appearflags) = 
  104.     item_artifact_envirosuit : "Environmental protection suit" []
  105. @PointClass base(Appearflags) = 
  106.     item_artifact_super_damage : "Quad damage" []
  107. @PointClass base(Appearflags) = 
  108.     item_artifact_invulnerability : "Pentagram of Protection" []
  109. @PointClass base(Appearflags) = 
  110.     item_artifact_invisibility : "Ring of Shadows" []
  111.  
  112. @PointClass size(-16 -16 -24, 16 16 32) base(Appearflags) = 
  113.     item_armorInv : "200% armor (Red)" []
  114. @PointClass size(-16 -16 -24, 16 16 32) base(Appearflags) = 
  115.     item_armor2 : "150% armor (Yellow)" []
  116. @PointClass size(-16 -16 -24, 16 16 32) base(Appearflags) = 
  117.     item_armor1 : "100% armor (Green)" []
  118. @PointClass size(-16 -16 -24, 16 16 32) base(Appearflags) = 
  119.     item_key1 : "Silver key" []
  120. @PointClass size(-16 -16 -24, 16 16 32) base(Appearflags) = 
  121.     item_key2 : "Gold key" []
  122. @PointClass size(-16 -16 -24, 16 16 32) base(Appearflags) = 
  123.     item_sigil : "Sigil" 
  124. [
  125.     spawnflags(Flags) =
  126.     [
  127.         1 : "Episode 1" : 1
  128.         2 : "Episode 2" : 0
  129.         4 : "Episode 3" : 0
  130.         8 : "Episode 4" : 0
  131.     ]
  132. ]
  133.  
  134. //
  135. // weaponses
  136. //
  137.  
  138. @baseclass size(-16 -16 0, 16 16 32) color(0 0 200) base(Appearflags) = Weapon []
  139.  
  140. @PointClass base(Weapon) = weapon_supershotgun : "Super shotgun" []
  141. @PointClass base(Weapon) = weapon_nailgun : "Nailgun" []
  142. @PointClass base(Weapon) = weapon_supernailgun : "Perforator" []
  143. @PointClass base(Weapon) = weapon_grenadelauncher : "Grenade launcher" []
  144. @PointClass base(Weapon) = weapon_rocketlauncher : "Rocket launcher" []
  145. @PointClass base(Weapon) = weapon_lightning : "Thunderbolt" []
  146.  
  147. //
  148. // badasses
  149. //
  150.  
  151. @baseclass base(Appearflags, Target, Targetname) color(220 0 0) = Monster 
  152. [
  153.     spawnflags(Flags) = 
  154.     [
  155.         1 : "Ambush" : 0
  156.     ]
  157. ]
  158.  
  159. @PointClass base(Monster) size(-16 -16 -24, 16 16 40) = monster_army : "Grunt" []
  160. @PointClass base(Monster) size(-32 -32 -24, 32 32 40) = monster_dog : "Nasty Doggie" []
  161. @PointClass base(Monster) size(-32 -32 -24, 32 32 64) = monster_ogre : "Ogre" []
  162. @PointClass base(Monster) size(-32 -32 -24, 32 32 64) = monster_ogre_marksman : "Ogre marksman" []
  163. @PointClass base(Monster) size(-16 -16 -24, 16 16 40) = monster_knight : "Knight" []
  164. @PointClass base(Monster) size(-16 -16 -24, 16 16 40) = monster_hell_knight : "Hell knight" []
  165. @PointClass base(Monster) size(-16 -16 -24, 16 16 40) = monster_wizard : "Scrag" []
  166. @PointClass base(Monster) size(-32 -32 -24, 32 32 64) = monster_demon1 : "Fiend" []
  167. @PointClass base(Monster) size(-32 -32 -24, 32 32 64) = monster_shambler : "Shambler" []
  168. @PointClass base(Monster) size(-128 -128 -24, 128 128 256) = monster_boss : "Chthon" []
  169. @PointClass base(Monster) size(-16 -16 -24, 16 16 40) = monster_enforcer : "Enforcer" []
  170. @PointClass base(Monster) size(-32 -32 -24, 32 32 48) = monster_shalrath : "Shalrath" []
  171. @PointClass base(Monster) size(32 32 48) = monster_tarbaby : "Tarbaby" []
  172. @PointClass base(Monster) size(32 32 48) = monster_fish : "Rotfish" []
  173. @PointClass base(Monster) size(-16 -16 -24, 16 16 32) = monster_oldone : "Shub-Niggurath" []
  174. @PointClass base(Monster) size(-16 -16 -24, 16 16 32) = monster_zombie : "Zombie" 
  175. [
  176.     spawnflags(Flags) = 
  177.     [
  178.         1 : "Crucified" : 0
  179.         2 : "Ambush" : 0
  180.     ]
  181. ]
  182.  
  183. //
  184. // lights
  185. //
  186.  
  187. @baseclass = Light [
  188.     light(integer) : "Brightness" : 200
  189.     style(Choices) : "Appearance" : 0 =
  190.     [
  191.         0 : "Normal"
  192.         10: "Fluorescent flicker"
  193.         2 : "Slow, strong pulse"
  194.         11: "Slow pulse, noblack"
  195.         5 : "Gentle pulse"
  196.         1 : "Flicker A"
  197.         6 : "Flicker B"
  198.         3 : "Candle A"
  199.         7 : "Candle B"
  200.         8 : "Candle C"
  201.         4 : "Fast strobe"
  202.         9 : "Slow strobe"
  203.     ]
  204. ]
  205.  
  206. @PointClass size(-8 -8 -8, 8 8 8) base(Light, Target, Targetname) = 
  207.     light : "Invisible lightsource"
  208.     [
  209.         spawnflags(Flags) = [ 1 : "Initially dark" : 0 ]
  210.     ]
  211. @PointClass size(-8 -8 -8, 8 8 8) base(Light, Targetname) = 
  212.     light_fluoro : "Fluorescent light"
  213.     [
  214.         spawnflags(Flags) = [ 1 : "Initially dark" : 0 ]
  215.     ]
  216. @PointClass size(-8 -8 -8, 8 8 8) base(Light, Targetname) = 
  217.     light_fluorospark : "Sparking fluorescent light"
  218.     [
  219.         spawnflags(Flags) = [ 1 : "Initially dark" : 0 ]
  220.     ]
  221. @PointClass size(-8 -8 -8, 8 8 8) base(Light, Targetname) = 
  222.     light_globe : "Globe light" []
  223. @PointClass size(-10 -10 -12, 12 12 18) base(Light, Targetname) = 
  224.     light_flame_large_yellow : "Large yellow flame" []
  225. @PointClass size(-10 -10 -12, 12 12 18) base(Light, Targetname) = 
  226.     light_flame_small_yellow : "Small yellow flame" 
  227.     [
  228.         spawnflags(Flags) = [ 1 : "Initially dark" : 0 ]
  229.     ]
  230. @PointClass size(-10 -10 -12, 12 12 18) base(Light, Targetname) = 
  231.     light_flame_small_white : "Small white flame" 
  232.     [
  233.         spawnflags(Flags) = [ 1 : "Initially dark" : 0 ]
  234.     ]
  235. @PointClass size(-10 -10 -20, 10 10 20) base(Light, Targetname) = 
  236.     light_torch_small_walltorch : "Small walltorch" []
  237.  
  238. //
  239. // misc
  240. //
  241.  
  242. @PointClass base(Appearflags) = air_bubbles : "Air bubbles" []
  243. @PointClass base(Appearflags, Targetname) =
  244.     event_lightning : "Chthon's lightning" []
  245. @PointClass base(Appearflags) = misc_fireball : "Small fireball"
  246.     [ speed(integer) : "Speed" : 40 ]
  247. @PointClass = misc_explobox : "Large nuclear container" []
  248. @PointClass = misc_explobox2 : "Small nuclear container" []
  249. @PointClass base(Targetname) = trap_spikeshooter : "Triggered shooter" 
  250. [
  251.     spawnflags(Flags) = 
  252.     [
  253.         1 : "Superspike" : 0
  254.         2 : "Laser" : 0
  255.     ]
  256. ]
  257. @PointClass base(trap_spikeshooter) = trap_shooter : "Continuous shooter" []
  258.  
  259. // 
  260. // ambient sounds
  261. //
  262.  
  263. @PointClass = ambient_drip : "Dripping sound" []
  264. @PointClass = ambient_drone : "Engine/machinery sound" []
  265. @PointClass = ambient_comp_hum : "Computer background sounds" []
  266. @PointClass = ambient_flouro_buzz : "Fluorescent buzzing sound" []
  267. @PointClass = ambient_light_buzz : "Buzzing sound from light" []
  268. @PointClass = ambient_suck_wind : "Wind sound" []
  269. @PointClass = ambient_swamp1 : "Frogs croaking" []
  270. @PointClass = ambient_swamp2 : "Frogs croaking B" []
  271. @PointClass = ambient_thunder : "Thunder sound" []
  272.  
  273. // 
  274. // moving things
  275. //
  276.  
  277. @baseclass base(Appearflags, Targetname) = Door
  278. [
  279.     speed(integer) : "Speed" : 100
  280.     sounds(choices) : "Sound" : 1 = 
  281.     [
  282.         1: "Stone"
  283.         2: "Machine"
  284.         3: "Stone Chain"
  285.         4: "Screechy Metal"
  286.     ]
  287.     wait(choices) : "Delay before close" : 4 = 
  288.     [
  289.         -1 : "Stays open"
  290.     ]
  291.     lip(integer) : "Lip"
  292.     dmg(integer) : "Damage inflicted when blocked" : 0
  293.     message(string) : "Message if triggered"
  294.     health(integer) : "Health (shoot open)" : 0
  295. ]
  296.  
  297. @SolidClass base(Door) = func_door : "Basic door" 
  298. [
  299.     spawnflags(flags) =
  300.     [
  301.         1 : "Starts Open" : 0
  302.         4 : "Don't link" : 0
  303.         8 : "Gold Key required" : 0
  304.         16: "Silver Key required" : 0
  305.         32: "Toggle" : 0
  306.     ]
  307. ]
  308.  
  309. @SolidClass base(Door) = func_door_secret : "Triggered door" 
  310. [
  311.     spawnflags(flags) = 
  312.     [
  313.         1 : "Open once only" : 0
  314.         2 : "Moves left first" : 0
  315.         4 : "Moves down first" : 0
  316.         8 : "Not shootable" : 0
  317.         16 : "Always shootable" : 0
  318.     ]
  319. ]
  320.  
  321. @SolidClass base(Appearflags) = func_wall : "Moving wall" []
  322.  
  323. @SolidClass = func_button : "Button" 
  324. [
  325.     speed(integer) : "Speed" : 5
  326.     target(target_source) : "Targetted object"
  327.     health(integer) : "Health (shootable if > 0)"
  328.     sounds(choices) : "Sounds" : 1 = 
  329.     [
  330.         1: "Steam metal"
  331.         2: "Wooden clunk"
  332.         3: "Metallic clink"
  333.         4: "In-out"
  334.     ]
  335.     wait(choices) : "Delay before reset" : 3 =
  336.     [
  337.         -1: "Stays pressed"
  338.     ]
  339.     delay(integer) : "Delay before trigger"
  340. ]
  341.  
  342. @SolidClass base(Targetname) = func_train : "Moving platform" 
  343. [
  344.     sounds(choices) : "Sound" : 1 =
  345.     [
  346.         0: "None"
  347.         1: "Ratchet Metal"
  348.     ]
  349.     speed(integer) : "Speed (units per second)" : 64
  350.     target(target_source) : "First stop target"
  351.     dmg(integer) : "Damage on crush" : 0
  352. ]
  353.  
  354. @PointClass base(Targetname) size(16 16 16) = 
  355.     path_corner : "Moving platform stop"
  356. [
  357.     target(target_source) : "Next stop target"
  358. ]
  359.  
  360. @SolidClass = func_plat : "Elevator" 
  361. [
  362.     height(integer) : "Travel altitude (can be negative)" : 0
  363.     sounds(choices) : "Sound group" : 1 =
  364.     [
  365.         0: "None"
  366.         1: "Base fast"
  367.         2: "Chain Slow"
  368.     ]
  369. ]    
  370.  
  371. @SolidClass = func_dm_only : "Deathmatch teleporter" []
  372. @SolidClass = func_illusionary : "Solids can be walked through" []
  373.  
  374. @SolidClass = func_episodegate : "Episode Gate"
  375. [
  376.     spawnflags(Flags) =
  377.     [
  378.         1 : "Episode 1" : 1
  379.         2 : "Episode 2" : 0
  380.         4 : "Episode 3" : 0
  381.         8 : "Episode 4" : 0
  382.     ]
  383. ]
  384.  
  385. @SolidClass = func_bossgate : "Boss gate" []
  386.  
  387. //
  388. // triggers
  389. //
  390.  
  391. @baseclass base(Target) = Trigger
  392. [
  393.     style(integer) : "Style" : 32
  394.     killtarget(target_source) : "Kill target"
  395.     sounds(choices) : "Sound style" : 3 =
  396.     [
  397.         1 : "Secret sound"
  398.         2 : "Beep beep"
  399.         3 : "Large switch"
  400.         4 : "Set message to text string"
  401.     ]
  402.     delay(integer) : "Delay before trigger" : 2
  403.     message(string) : "Message (set sound too!)"
  404. ]
  405.  
  406. @SolidClass = trigger_changelevel : "Trigger: Change level"
  407. [
  408.     map(string) : "New map name"
  409.     spawnflags(flags) =
  410.     [
  411.         1: "No Intermission" : 0
  412.     ]
  413. ]
  414.  
  415. @SolidClass base(Trigger) = trigger_once : "Trigger: Activate once"
  416. [
  417.     spawnflags(flags) = [ 1: "Entity only" : 0 ]
  418. ]
  419. @SolidClass base(Trigger) = trigger_multiple : "Trigger: Activate multiple" 
  420. [
  421.     spawnflags(flags) = [ 1: "Entity only" : 0 ]
  422.     wait(integer) : "Delay before reset" : 10
  423. ]
  424. @SolidClass base(Trigger) = trigger_onlyregistered : "Trigger: Registered only" 
  425. [
  426.     spawnflags(flags) = [ 1: "Entity only" : 0 ]
  427. ]
  428. @SolidClass base(Trigger) = trigger_secret : "Trigger: Secret" 
  429. [
  430.     spawnflags(flags) = [ 1: "Entity only" : 0 ]
  431.     wait(integer) : "Delay before reset" : 10
  432. ]
  433.  
  434. @SolidClass base(Target, Targetname) = trigger_teleport : "Trigger teleport" 
  435. [
  436.     spawnflags(Flags) =
  437.     [
  438.         1 : "Player only" : 0
  439.         2 : "Silent" : 0
  440.     ]
  441. ]
  442.  
  443. // need updates:
  444.  
  445. @SolidClass = trigger_setskill : "Trigger set skill" 
  446. [
  447.     message(choices) : "Skill to change to" : 1 =
  448.     [
  449.         0 : "Easy"
  450.         1 : "Medium"
  451.         2 : "Hard"
  452.         3 : "Nightmare!"
  453.     ]
  454. ]
  455. @SolidClass base(Trigger, Targetname) = trigger_relay : "Trigger relay"
  456. [
  457. ]
  458. @SolidClass base(Trigger) = trigger_monsterjump : "Trigger monster jump" 
  459. [
  460.     speed(integer) : "Jump Speed" : 40
  461.     height(integer) : "Jump Height" : 128
  462. ]
  463. @SolidClass base(Trigger, Targetname) = trigger_counter : "Trigger counter" 
  464. [
  465.     spawnflags(flags) = [ 1: "No Message" : 0 ]
  466.     count(integer) : "Count before activation" : 2
  467. ]
  468. @SolidClass base(Trigger) = trigger_push : "Trigger player push"
  469. [
  470.     spawnflags(flags) = [ 1: "Once Only" : 0 ]
  471.     speed(integer) : "Speed of push" : 40
  472. ]
  473. @SolidClass base(Trigger) = trigger_hurt : "Trigger player hurt" 
  474. [
  475.     dmg(integer) : "Damage" : 10
  476. ]
  477.  
  478.