home *** CD-ROM | disk | FTP | other *** search
/ Quake++ for Quake / Quake++.iso / quake / unit1.dfm / unit1.txt < prev   
Encoding:
Text File  |  1996-09-23  |  39.3 KB  |  1,327 lines

  1. object Form1: TForm1
  2.   Left = -4
  3.   Top = -4
  4.   BorderIcons = []
  5.   BorderStyle = bsNone
  6.   Caption = 'Form1'
  7.   ClientHeight = 461
  8.   ClientWidth = 640
  9.   Color = clBlack
  10.   Font.Color = clWindowText
  11.   Font.Height = -13
  12.   Font.Name = 'System'
  13.   Font.Style = []
  14.   PixelsPerInch = 96
  15.   Position = poDefault
  16.   WindowState = wsMaximized
  17.   OnShow = FormShow
  18.   TextHeight = 16
  19.   object Image1: TImage
  20.     Left = 0
  21.     Top = 0
  22.     Width = 640
  23.     Height = 461
  24.     Align = alClient
  25.     Picture.Data = {<image000.bmp>}
  26.   end
  27.   object Label1: TLabel
  28.     Left = 395
  29.     Top = 333
  30.     Width = 75
  31.     Height = 109
  32.     Caption = 'Q'
  33.     Color = clWhite
  34.     Font.Color = clWhite
  35.     Font.Height = -96
  36.     Font.Name = 'Times New Roman'
  37.     Font.Style = [fsBold]
  38.     ParentColor = False
  39.     ParentFont = False
  40.     Transparent = True
  41.   end
  42.   object Label2: TLabel
  43.     Left = 480
  44.     Top = 352
  45.     Width = 130
  46.     Height = 73
  47.     Caption = 'uake'
  48.     Font.Color = clGray
  49.     Font.Height = -64
  50.     Font.Name = 'Times New Roman'
  51.     Font.Style = [fsBold]
  52.     ParentFont = False
  53.     Transparent = True
  54.   end
  55.   object Label3: TLabel
  56.     Left = 464
  57.     Top = 328
  58.     Width = 54
  59.     Height = 55
  60.     Caption = '++'
  61.     Font.Color = clWhite
  62.     Font.Height = -48
  63.     Font.Name = 'Times New Roman'
  64.     Font.Style = [fsBold]
  65.     ParentFont = False
  66.     Transparent = True
  67.   end
  68.   object Label4: TLabel
  69.     Left = 456
  70.     Top = 416
  71.     Width = 164
  72.     Height = 15
  73.     Caption = 'Develop your 3D Games today !'
  74.     Font.Color = clRed
  75.     Font.Height = -12
  76.     Font.Name = 'Times New Roman'
  77.     Font.Style = [fsBold]
  78.     ParentFont = False
  79.     Transparent = True
  80.   end
  81.   object g: TLabel
  82.     Left = 64
  83.     Top = 440
  84.     Width = 569
  85.     Height = 15
  86.     AutoSize = False
  87.     Caption = 
  88.       '1996 Media Net. Thank you for using Q++ to develop your own 3D g' +
  89.       'ames.                      '
  90.     Font.Color = clSilver
  91.     Font.Height = -13
  92.     Font.Name = 'Times New Roman'
  93.     Font.Style = [fsBold]
  94.     ParentFont = False
  95.     Transparent = True
  96.   end
  97.   object Bevel1: TBevel
  98.     Left = 368
  99.     Top = 24
  100.     Width = 258
  101.     Height = 305
  102.     Shape = bsFrame
  103.     Visible = False
  104.   end
  105.   object BitBtn1: TBitBtn
  106.     Left = 16
  107.     Top = 240
  108.     Width = 89
  109.     Height = 25
  110.     TabOrder = 0
  111.     OnMouseMove = BitBtn1MouseMove
  112.     Kind = bkClose
  113.   end
  114.   object Button1: TButton
  115.     Left = 16
  116.     Top = 40
  117.     Width = 89
  118.     Height = 25
  119.     Caption = 'Basic Info.'
  120.     TabOrder = 1
  121.     OnClick = Button1Click
  122.     OnMouseMove = BitBtn1MouseMove
  123.   end
  124.   object Button2: TButton
  125.     Left = 16
  126.     Top = 104
  127.     Width = 89
  128.     Height = 25
  129.     Caption = 'Tools Box'
  130.     TabOrder = 2
  131.     OnClick = Button2Click
  132.     OnMouseMove = BitBtn1MouseMove
  133.   end
  134.   object Button3: TButton
  135.     Left = 16
  136.     Top = 168
  137.     Width = 89
  138.     Height = 25
  139.     Caption = 'Samples'
  140.     TabOrder = 3
  141.     OnClick = Button3Click
  142.     OnMouseMove = BitBtn1MouseMove
  143.   end
  144.   object Memo1: TMemo
  145.     Left = 120
  146.     Top = 24
  147.     Width = 513
  148.     Height = 305
  149.     BorderStyle = bsNone
  150.     Ctl3D = False
  151.     Font.Color = clGray
  152.     Font.Height = -13
  153.     Font.Name = 'Times New Roman'
  154.     Font.Style = []
  155.     Lines.Strings = (
  156.       
  157.         '*Before you step ahead , Please registed you game or call 1-800-' +
  158.         'id-games to order now.'
  159.       ''
  160.       'This toolkit is for you to modify or create levels for quake.'
  161.       
  162.         'It may make the modified levels working on the shareware version' +
  163.         ', but we strongly suggest '
  164.       'you to regist, so they can create more powerful game for us.'
  165.       ''
  166.       
  167.         'First get an unpacker and unpack everything with the bsp extensi' +
  168.         'on.'
  169.       ''
  170.       
  171.         '*:You may copy the unpack.exe or qube.exe to the  \quake\id\ dir' +
  172.         'ectory from the tool box;'
  173.       ''
  174.       
  175.         '*:Make a backup of pak0.pak(in case you have any trouble later) ' +
  176.         ';'
  177.       ''
  178.       
  179.         '*:Run " unpack pak0.pak " or " qube -kX pak0.pak " to extract al' +
  180.         'l the files;'
  181.       ''
  182.       
  183.         '*:Now you shall find out there are few new folders and files app' +
  184.         'ear in id1 directory;'
  185.       ''
  186.       
  187.         '*:All of graphics, textures, weapons are inside of Progs directo' +
  188.         'ry;'
  189.       ''
  190.       '*:All of the sound effects are inside of sound direcotry;'
  191.       ''
  192.       
  193.         '*:The levels of Game are inside of Maps(e1m1.bsp is first episod' +
  194.         'e level 1 , e2m4 is second '
  195.       'episode level 4); '
  196.       ''
  197.       '*:Rename the pak0.pak to other name;'
  198.       ''
  199.       
  200.         '*:Have you got any idea yet ? Yes, When Quake start, it will fin' +
  201.         'd the pak0.pak first and if it '
  202.       
  203.         'dosen'#39't show then program will read the files from the directory' +
  204.         ' (progs, sound,maps...);'
  205.       ''
  206.       
  207.         '*:We already browse them all,so you can subchange or change all ' +
  208.         'to create you new 3D '
  209.       'game '
  210.       'now.'
  211.       ' '
  212.       ''
  213.       
  214.         'Second, get Qbsp, Light, & Vis stuff.  They will all be in a qbs' +
  215.         'p package...  try cdrom.com in '
  216.       
  217.         'the qbsp_pak_tools section.  Get the ones for registerd version,' +
  218.         ' and get either the DOS or the '
  219.       'windows ones.  Make sure they are for the registered version.'
  220.       ''
  221.       
  222.         'Make a map, f3 to save a map file, and then at a dos prompt do t' +
  223.         'his:'
  224.       'qbsp mymap  {this will build it}'
  225.       
  226.         'light mymap {this will put the proper light sources in the right' +
  227.         ' places}'
  228.       'vis mymap {this will optomize kind of}'
  229.       ''
  230.       
  231.         'then copy the resulting bsp file to your id1/maps directory.  Wh' +
  232.         'at?  you don'#39't have a maps '
  233.       
  234.         'directory?  Well just make one.  Now go into quake, pull down th' +
  235.         'e console and type: map '
  236.       'mymap.  '
  237.       ''
  238.       'cool, huh?'
  239.       ''
  240.       'Notes on map making:'
  241.       
  242.         'This is not like doom.  You arn'#39't building sectors, you'#39're putti' +
  243.         'ng walls together, walls that '
  244.       
  245.         'have thickness.  Think of it as big slabs.  And remember, 4 wall' +
  246.         's are not enough to make a '
  247.       'room, You must not forget to put a cieling and a floor in.'
  248.       ''
  249.       
  250.         'The following specs will guide you in making those flickering li' +
  251.         'ghts and teleport devices and '
  252.       'all the other cool stuff.'
  253.       ''
  254.       '----------------------------------------'
  255.       'Quake MAP Specs'
  256.       ''
  257.       ''
  258.       'Last Updated: 8/22/96 8:52PM EST'
  259.       ''
  260.       ''
  261.       
  262.         'Info on entities/maps and maintenance by Niklata (Nicholas Dwark' +
  263.         'anath)'
  264.       ''
  265.       'Coordinate System:'
  266.       ''
  267.       
  268.         'Quake uses a standard right-handed (X,Y,Z) coordinate system. If' +
  269.         ' you'#39're not familiar with the '
  270.       
  271.         'reference of "right-handed" to a coordinate system, it basically' +
  272.         ' provides a tactile and visual '
  273.       
  274.         'discription of the mechanics of the system. If you point your fi' +
  275.         'ng'
  276.       ''
  277.       ''
  278.       '        ^ z+'
  279.       '        |'
  280.       '        |'
  281.       '        |'
  282.       '        |'
  283.       '        |------------> y+'
  284.       '       /'
  285.       '      /'
  286.       '     /'
  287.       '    /'
  288.       '   <'
  289.       ' x+'
  290.       ''
  291.       ''
  292.       ''
  293.       
  294.         'Some entities also need to have an angle tag that tells the dire' +
  295.         'ction it is facing. The values '
  296.       'possible are listed below:'
  297.       ''
  298.       ''
  299.       '0-359: Normal Angle (zero == east)'
  300.       '-1: Up'
  301.       '-2: Down'
  302.       ''
  303.       ''
  304.       ''
  305.       'Brushes:'
  306.       ''
  307.       
  308.         'Brushes are one of the two primary components of a MAP file. Eac' +
  309.         'h brush defines a solid '
  310.       
  311.         'region. Brushes define this region as the intersection of four o' +
  312.         'r more planes. Each plane is '
  313.       
  314.         'defined by three noncolinear points. These points must go in a c' +
  315.         'lockwise o'
  316.       ''
  317.       ''
  318.       '1--2----------------->'
  319.       '|'
  320.       '3'
  321.       '|'
  322.       '|'
  323.       '|'
  324.       '|'
  325.       '|'
  326.       ','
  327.       ''
  328.       ''
  329.       'x_off     - Texture x-offset (must be multiple of 16)'
  330.       'y_off     - Texture y-offset (must be multiple of 16)'
  331.       'rot_angle - floating point value indicating texture rotation'
  332.       
  333.         'x_scale   - scales x-dimension of texture (negative value to fli' +
  334.         'p)'
  335.       
  336.         'y_scale   - scales y-dimension of texture (negative value to fli' +
  337.         'p)'
  338.       
  339.         'Many entity/brush combinations can be put into a map file. All M' +
  340.         'AP files must contain with '
  341.       
  342.         'a worldspawn entity, usually as the first entry. This entry defi' +
  343.         'nes all of the normal brushes '
  344.       
  345.         'that make up the structure of the level. There should be only on' +
  346.         'e worl'
  347.       ''
  348.       ''
  349.       '"classname" "worldspawn" // Tells Quake to spawn the world'
  350.       
  351.         '"wad" "DIRPATH"          // tells what graphics (texture) WAD2 f' +
  352.         'ile to use.'
  353.       '"message" "TITLE"        // The title of the level'
  354.       
  355.         '"worldtype" "#"          // Describes time of environment (chang' +
  356.         'es appearance/name of keys)'
  357.       '                         // 0 == Medieval (medieval)'
  358.       '                         // 1 == Runic (metal)'
  359.       '                         // 2 == Present (base)'
  360.       
  361.         '"sounds" "#"             // Tells the CD player which track to p' +
  362.         'lay.'
  363.       '"light" "#"              // Default light level'
  364.       ''
  365.       ''
  366.       
  367.         'Entities are the second major component of Quake MAP files. An e' +
  368.         'ntity is basically a bit like '
  369.       'a thing, but they also function as triggers and as pathmarkers. '
  370.       ''
  371.       '"spawnflags" tag: '
  372.       ''
  373.       'General:'
  374.       ''
  375.       '256  - Normal Skill or higher'
  376.       '512  - Hard Skill or higher'
  377.       '1792 - Appears in deathmatch only'
  378.       ''
  379.       'item_health:'
  380.       '1    - Larger Health/Larger Ammo'
  381.       '2    - Megahealth'
  382.       ''
  383.       'monster_zombie:'
  384.       '1    - Crucified Zombie'
  385.       ''
  386.       ''
  387.       ''
  388.       'General Entity syntax:'
  389.       ''
  390.       'Specifics    Args      Description'
  391.       
  392.         '----------------------------------------------------------------' +
  393.         '----------------'
  394.       
  395.         '"classname"  "name"    // Type of entity to be defined (mandator' +
  396.         'y)'
  397.       
  398.         '"origin"     "X Y Z"   // Coordinates of where it starts in spac' +
  399.         'e.'
  400.       
  401.         '"angle"      "#"       // Direction it faces or moves (sometimes' +
  402.         ' in degrees)'
  403.       '"light"      "#"       // Used with the light classname.'
  404.       '"target"     "t#"      // Matches a targetname.'
  405.       '"targetname" "t#"      // Like a linedef tag.'
  406.       '"killtarget" "#"       // Removes target when triggered?'
  407.       
  408.         '"spawnflags" "#"       // Used to flag/describe an entity that i' +
  409.         's not default.'
  410.       
  411.         '"style"      "#"       // Used to flag/describe an entity that i' +
  412.         's not default.'
  413.       
  414.         '"message"    "string"  // Message displayed when triggered (\n f' +
  415.         'or linebreaks)'
  416.       
  417.         '"mangle"     "X Y Z"   // Point where the intermission camera lo' +
  418.         'oks at'
  419.       ''
  420.       'specifics/args present only in models:'
  421.       ''
  422.       '"speed"      "#"       // How fast the model is moved.'
  423.       
  424.         '"wait"       "#"       // How long a pause between completion of' +
  425.         ' movement or'
  426.       
  427.         '                       // return to original position (in second' +
  428.         's or 10ths)'
  429.       
  430.         '"lip"        "#"       // Seems to be a means of adjusting the s' +
  431.         'tarting position.'
  432.       
  433.         '"dmg"        "#"       // How much damage the model causes when ' +
  434.         'it shuts on you?'
  435.       
  436.         '"health"     "#"       // How much damage the model takes before' +
  437.         ' it triggers'
  438.       '"delay"      "#"       // Time before event is triggered'
  439.       
  440.         '"sounds"     "#"       // How much damage the model causes when ' +
  441.         'it shuts on you?'
  442.       
  443.         '"wad"        "wadfile" // The wad2 graphics file used by the wor' +
  444.         'ld for textures.'
  445.       '"height"     "#"       // How high a platform will raise'
  446.       ''
  447.       'All known entities (current for Shareware Quake 1.01):'
  448.       ''
  449.       ''
  450.       'air_bubbles                   : Rising bubbles'
  451.       ''
  452.       'ambient_drip                  : Dripping sound'
  453.       'ambient_drone                 : Engine/machinery sound'
  454.       'ambient_comp_hum              : Computer background sounds'
  455.       'ambient_flouro_buzz           : Flourescent buzzing sound'
  456.       'ambient_light_buzz            : Buzzing sound from light'
  457.       'ambient_suck_wind             : Wind sound'
  458.       'ambient_swamp1                : Frogs croaking'
  459.       
  460.         'ambient_swamp2                : Slightly different sounding frog' +
  461.         's croaking'
  462.       'ambient_thunder               : Thunder sound'
  463.       ''
  464.       
  465.         'event_lightning               : Lightning (Used to kill Cthon, s' +
  466.         'hareware boss)'
  467.       ''
  468.       'func_door                     : Door'
  469.       'func_door_secret              : A door that is triggered to open'
  470.       'func_wall                     : A moving wall?'
  471.       'func_button                   : A button'
  472.       
  473.         'func_train                    : A platform (moves along a "train' +
  474.         '")'
  475.       'func_plat                     : A lift/elevator'
  476.       
  477.         'func_dm_only                  : A teleporter that only appears i' +
  478.         'n deathmatch'
  479.       
  480.         'func_illusionary              : Creates brush that appears solid' +
  481.         ', but isn'#39't.'
  482.       ''
  483.       
  484.         'info_null                     : Used as a placeholder (removes i' +
  485.         'tself)'
  486.       
  487.         'info_notnull                  : Used as a placeholder (does not ' +
  488.         'remove itself)'
  489.       
  490.         'info_intermission             : Cameras positioning for intermis' +
  491.         'sion (?)'
  492.       
  493.         'info_player_start             : Main player starting point (only' +
  494.         ' one allowed)'
  495.       
  496.         'info_player_deathmatch        : A deathmatch start (more than on' +
  497.         'e allowed)'
  498.       
  499.         'info_player_coop              : A coop player start (more than o' +
  500.         'ne allowed)'
  501.       'info_player_start2            : Return point from episode'
  502.       
  503.         'info_teleport_destination     : Gives coords for a teleport dest' +
  504.         'ination using a targetname'
  505.       ''
  506.       'All item_ tags may have a target tag.  It triggers '
  507.       'the event when the item is picked up.'
  508.       ''
  509.       'item_cells                    : Ammo for the Thunderbolt'
  510.       'item_rockets                  : Ammo for Rocket/Grenade Launcher'
  511.       
  512.         'item_shells                   : Ammo for both Shotgun and SuperS' +
  513.         'hotgun'
  514.       
  515.         'item_spikes                   : Ammo for Perforator and Super Pe' +
  516.         'rforator'
  517.       'item_weapon                   : Generic weapon class'
  518.       'item_health                   : Medkit'
  519.       'item_artifact_envirosuit      : Environmental Protection Suit'
  520.       'item_artifact_super_damage    : Quad Damage'
  521.       'item_artifact_invulnerability : Pentagram of Protection'
  522.       'item_artifact_invisibility    : Ring of Shadows (Invisibility)'
  523.       'item_armorInv                 : Red armor'
  524.       'item_armor2                   : Yellow armor'
  525.       'item_armor1                   : Green armor'
  526.       'item_key1                     : Silver Key'
  527.       'item_key2                     : Gold Key'
  528.       'item_sigil                    : Sigil (a rune)'
  529.       ''
  530.       
  531.         'light                         : A projected light. No visible li' +
  532.         'ghtsource.'
  533.       
  534.         'light_torch_small_walltorch   : Small wall torch (gives off ligh' +
  535.         't)'
  536.       
  537.         'light_flame_large_yellow      : Large yellow fire (gives off lig' +
  538.         'ht)'
  539.       
  540.         'light_flame_small_yellow      : Small yellow fire (gives off lig' +
  541.         'ht)'
  542.       
  543.         'light_flame_small_white       : Small white fire  (gives off lig' +
  544.         'ht)'
  545.       
  546.         'light_fluoro                  : Fluorescent light? (Gives off li' +
  547.         'ght, humming sound?)'
  548.       
  549.         'light_fluorospark             : Fluorescent light? (Gives off li' +
  550.         'ght, makes sparking sound)'
  551.       
  552.         'light_globe                   : Light that appears as a globe sp' +
  553.         'rite'
  554.       ''
  555.       'monster_army                  : Grunt'
  556.       'monster_dog                   : Attack dog'
  557.       'monster_ogre                  : Ogre'
  558.       
  559.         'monster_ogre_marksman         : Ogre (synonymous with monster_og' +
  560.         're)'
  561.       'monster_knight                : Knight'
  562.       'monster_zombie                : Zombie'
  563.       'monster_wizard                : Scragg (Wizard)'
  564.       'monster_demon1                : Fiend (Demon)'
  565.       'monster_shambler              : Shambler'
  566.       'monster_boss                  : Cthon (Boss of Shareware Quake)'
  567.       'monster_enforcer              : Enforcer'
  568.       'monster_hell_knight           : Hell Knight'
  569.       'monster_shalrath              : Shalrath'
  570.       'monster_tarbaby               : Slime'
  571.       'monster_fish                  : Fish'
  572.       'monster_oldone                : Shubb-Niggurath'
  573.       
  574.         '                                       (requires a misc_teleport' +
  575.         'rain and a info_intermission)'
  576.       ''
  577.       
  578.         'misc_fireball                 : Small fireball (gives off light,' +
  579.         ' harms player)'
  580.       'misc_explobox                 : Large Nuclear Container'
  581.       'misc_explobox2                : Small Nuclear Container'
  582.       
  583.         'misc_teleporttrain            : Spiked ball needed to telefrag m' +
  584.         'onster_oldone'
  585.       ''
  586.       
  587.         'path_corner                   : Used to define path of func_trai' +
  588.         'n platforms'
  589.       ''
  590.       'trap_spikeshooter             : Shoots spikes (nails)'
  591.       
  592.         'trap_shooter                  : Fires nails without needing to b' +
  593.         'e triggered.'
  594.       ''
  595.       
  596.         'trigger_teleport              : Teleport (all trigger_ tags are ' +
  597.         'triggered by walkover)'
  598.       'trigger_changelevel           : Changes to another level'
  599.       'trigger_setskill              : Changes skill level'
  600.       
  601.         'trigger_counter               : Triggers action after it has bee' +
  602.         'n triggered count times.'
  603.       'trigger_once                  : Triggers action only once'
  604.       
  605.         'trigger_multiple              : Triggers action (can be retrigge' +
  606.         'red)'
  607.       
  608.         'trigger_onlyregistered        : Triggers only if game is registe' +
  609.         'red (registered == 1)'
  610.       
  611.         'trigger_secret                : Triggers action and awards secre' +
  612.         't credit.'
  613.       
  614.         'trigger_monsterjump           : Causes triggering monster to jum' +
  615.         'p in a direction'
  616.       
  617.         'trigger_relay                 : Allows delayed/multiple actions ' +
  618.         'from one trigger '
  619.       
  620.         'trigger_push                  : Pushes a player in a direction (' +
  621.         'like a windtunnel)'
  622.       
  623.         'trigger_hurt                  : Hurts whatever touches the trigg' +
  624.         'er'
  625.       ''
  626.       'weapon_supershotgun           : Super Shotgun'
  627.       'weapon_nailgun                : Perforator'
  628.       'weapon_supernailgun           : Super Perforator'
  629.       'weapon_grenadelauncher        : Grenade Launcher'
  630.       'weapon_rocketlauncher         : Rocket Launcher'
  631.       'weapon_lightning              : Lightning Gun'
  632.       ''
  633.       ''
  634.       ''
  635.       ''
  636.       'Entity '#39'class'#39' examples'
  637.       ''
  638.       ''
  639.       'Lights'
  640.       ''
  641.       
  642.         'For all light-emmitting entities, spawnflags and style have spec' +
  643.         'ial meanings:'
  644.       ''
  645.       ''
  646.       'Spawnflags:'
  647.       '0 - Light starts on.  Switches off when triggered.'
  648.       '1 - Light starts off.  Switches on when triggered.'
  649.       ''
  650.       'Style:'
  651.       '0  - normal'
  652.       '1  - flicker (first variety)'
  653.       '2  - slow strong pulse'
  654.       '3  - candle (first variety)'
  655.       '4  - fast strobe'
  656.       '5  - gentle pulse'
  657.       '6  - flicker (second variety)'
  658.       '7  - candle (second variety)'
  659.       '8  - candle (third variety)'
  660.       '9  - slow strobe'
  661.       '10 - flourescent flicker'
  662.       '11 - slow pulse, not fading to black'
  663.       '   '
  664.       
  665.         '   styles 32-62 are assigned by the light program for switchable' +
  666.         ' lights'
  667.       ''
  668.       '63 - testing'
  669.       ''
  670.       ''
  671.       'Regular Light:'
  672.       ''
  673.       ''
  674.       '    "classname" "light"'
  675.       
  676.         '    "light" "#"         // Tells how bright the light is (option' +
  677.         'al - default 200)'
  678.       '    "style" "#"         // How the light appears'
  679.       '    "spawnflags" "#"    // State light starts in'
  680.       '    "targetname" "#"    // Target id of the light'
  681.       ''
  682.       ''
  683.       'Fluorescent Light:'
  684.       ''
  685.       '    "classname" "light_fluoro"'
  686.       
  687.         '    "light" "#"         // Tells how bright the light is (option' +
  688.         'al - default 200)'
  689.       '    "style" "#"         // How the light appears'
  690.       '    "spawnflags" "#"    // State light starts in'
  691.       '    "targetname" "#"    // Target id of the light'
  692.       ''
  693.       'Fluorescent Light (makes sparking sound):'
  694.       '    "classname" "light_fluorospark"'
  695.       
  696.         '    "light" "#"         // Tells how bright the light is (option' +
  697.         'al - default 200)'
  698.       '    "style" "#"         // How the light appears'
  699.       '    "spawnflags" "#"    // State light starts in'
  700.       '    "targetname" "#"    // Target id of the light'
  701.       ''
  702.       'Torches:'
  703.       ''
  704.       '    "classname" "light_torch_small_walltorch"'
  705.       
  706.         '    "light" "#"         // Tells how bright the light is (option' +
  707.         'al - default 200)'
  708.       '    "style" "#"         // How the light appears'
  709.       '    "spawnflags" "#"    // State light starts in'
  710.       '    "targetname" "#"    // Target id of the light'
  711.       ''
  712.       'Fire:'
  713.       ''
  714.       
  715.         '"classname" "light_flame_large_yellow, light_flame_small_yellow,' +
  716.         ' light_flame_small_white"'
  717.       '"light" "#"         // Tells how bright the light is (optional)'
  718.       '"origin" "X Y Z"'
  719.       ''
  720.       ''
  721.       ''
  722.       'Player Movement Entities'
  723.       ''
  724.       ''
  725.       'Level Change Trigger (attaches to brush):'
  726.       ''
  727.       '    "classname" "trigger_changelevel"'
  728.       '    "map" "mapname"  // Map to change to on trigger (e.g. e1m8)'
  729.       '    "spawnflags" "#" // Flags describing the object (optional)'
  730.       ''
  731.       'Teleport Trigger (attaches to brush):'
  732.       ''
  733.       '    "classname" "trigger_teleport"'
  734.       
  735.         '    "target" "t#"     // Teleport destination name to teleport t' +
  736.         'o.'
  737.       
  738.         '    "targetname" "t#" // Trigger name (optional) - only teleport' +
  739.         's once'
  740.       
  741.         '                                             activated if target' +
  742.         'name is present.'
  743.       'Teleport Destination:'
  744.       ''
  745.       '    "classname" "info_teleport_destination"'
  746.       
  747.         '    "angle" "#"       // angle the player will face upon leaving' +
  748.         ' teleport'
  749.       '    "targetname" "t#" // Teleport'#39's trigger name'
  750.       ''
  751.       ' Movers'
  752.       ''
  753.       ''
  754.       'Door (attaches to brush):'
  755.       ''
  756.       '    "classname" "func_door, func_door_secret"'
  757.       '    "angle" "#"      // angle it faces'
  758.       '    "speed" "#"      // speed of movement'
  759.       '    "targetname" "#" // Door'#39's trigger name'
  760.       '    "sounds" "#"     // sound it makes'
  761.       '    "wait" "#"       // delay before closing'
  762.       
  763.         '    "spawnflags "#"       // Flags describing the object (option' +
  764.         'al)'
  765.       '    "lip" "#"        // some kind of offset (optional)'
  766.       ''
  767.       
  768.         'Spawns on certain skill levels (controlled by spawnflags), can b' +
  769.         'e removed by a trigger. '
  770.       '(attaches to brush):'
  771.       ''
  772.       '    "classname" "func_wall"'
  773.       '    "spawnflags" "#" // flags for something (optional I'#39'd guess)'
  774.       ''
  775.       'A platform (i.e. lift or elevator, attaches to brush):'
  776.       ''
  777.       '    "classname" "func_plat"'
  778.       '    "height" "#" // height it rises? (optional)'
  779.       '    "sounds" "#" // sound it makes (optional)'
  780.       ''
  781.       'Moving platform (Attaches to brush):'
  782.       ''
  783.       '    "classname" "func_train"'
  784.       '    "sounds" "#"      // Sound it makes when activated'
  785.       '    "speed" "#"       // Speed at which it moves (optional)'
  786.       
  787.         '    "target" "t#"     // Trigger name of its first path_corner d' +
  788.         'estination'
  789.       '    "targetname" "t#" // Its trigger name'
  790.       '    "dmg" "#"         // Damage done on crush'
  791.       ''
  792.       'Describes path of train/monsters:'
  793.       ''
  794.       '    "classname" "path_corner"'
  795.       '    "origin" "X Y Z"'
  796.       '    "target" "t#"     // Trigger name of next train destination.'
  797.       '    "targetname" "t#" // It'#39's trigger name.'
  798.       ''
  799.       ''
  800.       ''
  801.       ''
  802.       'Triggers/Switches'
  803.       ''
  804.       ''
  805.       'A button/switch (attaches to brush):'
  806.       ''
  807.       '    "classname" "func_button"'
  808.       '    "angle" "#"   // Angle button moves?'
  809.       '    "speed" "#"   // Speed it moves in?'
  810.       '    "target" "t#" // Trigger name of target entity'
  811.       '    "health" "#"  // If there is health, button is shootable'
  812.       '    "sounds" "#"  // Sound it makes when activated'
  813.       '                                      // 1 == Steam Metal'
  814.       '                                      // 2 == Wooden Clunk'
  815.       '                                      // 3 == Metallic Click'
  816.       '                                      // 4 == In-Out'
  817.       '    "wait" "#"    // Wait until retrigger? (-1 stays pressed)'
  818.       '    "delay" "#"   // Delay before action is triggered'
  819.       ''
  820.       'Walk-over trigger (attaches to brush):'
  821.       ''
  822.       
  823.         '    "classname" "trigger_once, trigger_multiple, trigger_onlyreg' +
  824.         'istered, trigger_secret"'
  825.       '    "style" "#"       // 32 works'
  826.       
  827.         '    "killtarget" "t#" // Kills something [for triggering monster' +
  828.         ' events] (optional)'
  829.       '    "target" "t#"     // Trigger name of target'
  830.       '    "sounds" "#"      // Sound made when triggered'
  831.       '                                          // 1 == Secret Sound'
  832.       '                                          // 2 == Beep Beep'
  833.       '                                          // 3 == Large Switch'
  834.       
  835.         '                                          // 4 == Set "message" ' +
  836.         'to text string'
  837.       
  838.         '    "wait" "#"        // Delay before retrigger. some classes on' +
  839.         'ly. (optional)'
  840.       '    "delay" "#"       // Delay before action is triggered'
  841.       ''
  842.       ''
  843.       'Triggers target after it is triggered count times:'
  844.       ''
  845.       '    "classname" "trigger_counter" '
  846.       '    "targetname" "t#" // Its trigger name'
  847.       '    "target" "t#"     // Trigger name of its target'
  848.       
  849.         '    "count" "#"       // Decrements on each trigger.  When 0 act' +
  850.         'ivates target.'
  851.       '    "wait" "#"        // Required delay before retrigger'
  852.       '    "delay" "#"       // Delay before action is triggered'
  853.       ''
  854.       'Used to stagger events on a trigger:'
  855.       ''
  856.       '    "classname" "trigger_relay"'
  857.       '    "origin" "X Y Z"  // Where it is located'
  858.       '    "killtarget" "#"  // Removes targeted entity (optional)'
  859.       '    "targetname" "t#" // Its trigger name'
  860.       '    "target" "t#"     // Trigger name of its target'
  861.       '    "delay" "#"       // Delay before action is triggered'
  862.       ''
  863.       'Makes a monster jump when it reaches a brush:'
  864.       ''
  865.       #9'"classname" "trigger_monsterjump"'
  866.       '    "speed" "#"       // Forward velocity of the monster jump'
  867.       '    "height" "#"      // How high the monster jumps'
  868.       '    "angle" "#"       // Angle towards which the monster jumps'
  869.       ''
  870.       'An invisible brush?:'
  871.       ''
  872.       #9'"classname" "func_illusionary"'
  873.       ''
  874.       ''
  875.       ''
  876.       ''
  877.       'Traps/Things harmful to you:'
  878.       ''
  879.       ''
  880.       'Triggerable Nail-firing trap:'
  881.       ''
  882.       '    "classname" "trap_spikeshooter"'
  883.       '    "angle" "#"       // Angle the trap fires at'
  884.       '    "targetname" "t#" // Trap'#39's trigger name'
  885.       '    "spawnflags" "#"  // ??? 1024 works'
  886.       ''
  887.       'Constant Nail-firing trap:'
  888.       ''
  889.       ''
  890.       '    "classname" "trap_shooter"'
  891.       '    "angle" "#"       // Angle the trap fires at'
  892.       '    "spawnflags" "#"  // ??? 1024 works'
  893.       '    "wait" "#"        // Time between shots'
  894.       ''
  895.       'Fireballs:'
  896.       ''
  897.       '    "classname" "misc_fireball"'
  898.       '    "speed" "#" // Tells how fast the fireball moves'
  899.       ''
  900.       ''
  901.       ''
  902.       'Miscellaneous:'
  903.       ''
  904.       ''
  905.       ''
  906.       'Pushes the player in a direction:'
  907.       ''
  908.       #9'"classname" "trigger_push"'
  909.       '    "speed" "#"       // Force of the push'
  910.       
  911.         #9'"angle" "#"       // Direction player is pushed towards (-1=up ' +
  912.         '-2=down, '
  913.       'other=normal)'
  914.       ''
  915.       'Cameras for the intermission screen:'
  916.       ''
  917.       ''
  918.       '    "classname" "info_intermission"'
  919.       '    "mangle" "X Y Z" // location the camera looks at'
  920.       '    "angle" "#"      // angle of the camera'
  921.       ''
  922.       'Setting difficulty level (attaches to brush):'
  923.       '    "classname" "trigger_setskill"'
  924.       '    "message" "#"   // Skill level to change to.'
  925.       ''
  926.       ''
  927.       
  928.         'Lightning used to kill the boss of shareware.  I'#39'll figure out h' +
  929.         'ow to use'
  930.       
  931.         'it later...  I pretty much know how, I just want to test it befo' +
  932.         're I'
  933.       
  934.         'put it here :).  From the testing I'#39've done, the lightning produ' +
  935.         'ced will'
  936.       
  937.         'not damage a player, however.  It probably triggers a script to ' +
  938.         'give the'
  939.       'boss character damage.'
  940.       ''
  941.       '    "classname" "event_lightning"'
  942.       '    "origin" "X Y Z"  // location of lightning (origin?)'
  943.       '    "targetname" "t#" // It'#39's trigger name'
  944.       ''
  945.       ''
  946.       ''
  947.       ''
  948.       ' Level Structures'
  949.       ''
  950.       ''
  951.       ' Moving Platforms:'
  952.       ''
  953.       ''
  954.       
  955.         'Creating a moving platform isn'#39't that difficult.   Here'#39's an exa' +
  956.         'mple:'
  957.       ''
  958.       ''
  959.       '"classname" "func_train"'
  960.       '"sounds" "1"'
  961.       '"speed" "128"'
  962.       '"target" "t1dest1"'
  963.       '"targetname" "t1"'
  964.       ''
  965.       '(attach it to brush)'
  966.       ''
  967.       
  968.         'Now you define each of the path_corners it will travel to.  When' +
  969.         ' it reaches'
  970.       
  971.         'a path_corner, it will float to the next path_corner defined in ' +
  972.         'the target'
  973.       
  974.         'tag of the path_corner.  The platform will start at the path_cor' +
  975.         'ner pointed'
  976.       
  977.         'to by the platform'#39's target tag.  It will continue the loop inde' +
  978.         'finitely'
  979.       
  980.         'and it will go through walls to get to its destination.  Here'#39's ' +
  981.         'its path_corners'
  982.       'would look like:'
  983.       ''
  984.       '"classname" "path_corner"'
  985.       '"targetname" "t1dest1"'
  986.       '"target"" "t1dest2"'
  987.       ''
  988.       '"classname" "path_corner"'
  989.       '"origin" "0 128 0"'
  990.       '"targetname" "t1dest2"'
  991.       '"target"" "t1dest1"'
  992.       ''
  993.       'Monsters and Triggers:'
  994.       ''
  995.       ''
  996.       
  997.         'Have you been wondering how you can get events to trigger when a' +
  998.         ' monster dies, as first'
  999.       
  1000.         'seen in E1M2 with the demons?  Well, it'#39's not too difficult.  Wh' +
  1001.         'en you attach a'
  1002.       
  1003.         'target tag to a monster, the monster'#39's death will trigger the ev' +
  1004.         'ent.  I believe'
  1005.       
  1006.         '(not tested) that if other monsters have a targetname tag the sa' +
  1007.         'me as a monster'
  1008.       
  1009.         'with the target tag, the target event will only occur when all m' +
  1010.         'onsters with'
  1011.       
  1012.         'a matching targetname tag are dead.  The monster with the target' +
  1013.         ' tag need not'
  1014.       'have the targetname tag.'
  1015.       ''
  1016.       ''
  1017.       ''
  1018.       'How to use trigger_count:'
  1019.       ''
  1020.       
  1021.         'The trigger_count class is quite an interesting trigger. You kno' +
  1022.         'w of the area in E1M1 where '
  1023.       
  1024.         'you have to hit the three switches to open the door? Well, that'#39 +
  1025.         's done using a '
  1026.       
  1027.         'trigger_counter. Each of the buttons you hit has its target prop' +
  1028.         'erty set so it point'
  1029.       ''
  1030.       ''
  1031.       ' "classname"'#9'"func_door"'
  1032.       ' "targetname"    "door2"'
  1033.       ' "target"        "light1"'
  1034.       ' "angle"'#9'"-1"'
  1035.       ' "wait" "-1"'
  1036.       ' "sounds" "4"'
  1037.       ' "message"   "press all buttons"'
  1038.       ''
  1039.       ' "classname"      "trigger_counter"'
  1040.       ' "count"          "3"'
  1041.       ' "targetname"     "door1"'
  1042.       ' "target"         "door2"'
  1043.       ' "wait"           "-1"'
  1044.       ''
  1045.       ' "classname"      "func_button"'
  1046.       ' "angle"          "0"'
  1047.       ' "wait"           "-1"'
  1048.       ' "target"         "door1"'
  1049.       ''
  1050.       ' "classname"      "func_button"'
  1051.       ' "angle"          "0"'
  1052.       ' "wait"           "-1"'
  1053.       ' "target"         "door1"'
  1054.       ''
  1055.       ' "classname"      "func_button"'
  1056.       ' "angle"          "0"'
  1057.       ' "wait"           "-1"'
  1058.       ' "target"         "door1"'
  1059.       ''
  1060.       ''
  1061.       'Teleporting Monsters:'
  1062.       ''
  1063.       
  1064.         'Unlike in Doom-Engine games, you can precisely teleport monsters' +
  1065.         ' into new locations in '
  1066.       
  1067.         'Quake. To do so, you must first create a out of reach area for t' +
  1068.         'he monsters to reside in. Give '
  1069.       
  1070.         'this area a trigger_teleport tag and assign a targetname tag to ' +
  1071.         'it. Creat'
  1072.       ''
  1073.       'Properties of Buttons:'
  1074.       ''
  1075.       
  1076.         'The behavior of buttons can be altered in many ways. By default,' +
  1077.         ' buttons are activated by '
  1078.       
  1079.         'pressing them (moving near them). Buttons can be made shootable ' +
  1080.         'by giving them a health '
  1081.       
  1082.         'tag. Unless you want to have to shoot the button tons of times, ' +
  1083.         'set the healt'
  1084.       ''
  1085.       ''
  1086.       
  1087.         '----------------------------------------------------------------' +
  1088.         '--------'
  1089.       ''
  1090.       ''
  1091.       
  1092.         'Quake is ∩┐╜1996 id Software. Some information about entities was ' +
  1093.         'obtained from the Unofficial '
  1094.       'Quake Specs, a truly awesome reference guide to Quake editing.'
  1095.       ''
  1096.       
  1097.         'Disclaimer: This document is provided as is and may not be perfe' +
  1098.         'ct. I do not guarentee the '
  1099.       
  1100.         'validity of any of the information in it. I will not be held lia' +
  1101.         'ble or responsible for any damages '
  1102.       
  1103.         'caused from use or misuse of the information contained within th' +
  1104.         'i'
  1105.       '')
  1106.     ParentCtl3D = False
  1107.     ParentFont = False
  1108.     ReadOnly = True
  1109.     ScrollBars = ssVertical
  1110.     TabOrder = 4
  1111.     Visible = False
  1112.   end
  1113.   object Button4: TButton
  1114.     Left = 120
  1115.     Top = 352
  1116.     Width = 89
  1117.     Height = 25
  1118.     Caption = 'Print'
  1119.     TabOrder = 5
  1120.     Visible = False
  1121.     OnClick = Button4Click
  1122.   end
  1123.   object Panel1: TPanel
  1124.     Left = 360
  1125.     Top = 24
  1126.     Width = 273
  1127.     Height = 305
  1128.     TabOrder = 6
  1129.     Visible = False
  1130.     object Button7: TButton
  1131.       Left = 8
  1132.       Top = 8
  1133.       Width = 97
  1134.       Height = 25
  1135.       Hint = ' Unpack the Game '
  1136.       Caption = 'Unpack Game'
  1137.       ParentShowHint = False
  1138.       ShowHint = True
  1139.       TabOrder = 0
  1140.       OnClick = Button7Click
  1141.     end
  1142.     object Button10: TButton
  1143.       Left = 8
  1144.       Top = 48
  1145.       Width = 89
  1146.       Height = 25
  1147.       Hint = ' You get to run break game or unpack first ! '
  1148.       Caption = 'Quake Edit'
  1149.       ParentShowHint = False
  1150.       ShowHint = True
  1151.       TabOrder = 1
  1152.       OnClick = Button10Click
  1153.     end
  1154.     object b6: TButton
  1155.       Left = 8
  1156.       Top = 176
  1157.       Width = 89
  1158.       Height = 25
  1159.       Caption = 'Details'
  1160.       TabOrder = 2
  1161.       OnClick = b6Click
  1162.     end
  1163.     object C: TButton
  1164.       Left = 8
  1165.       Top = 240
  1166.       Width = 89
  1167.       Height = 25
  1168.       Caption = 'Copy File'
  1169.       TabOrder = 3
  1170.       OnClick = CClick
  1171.     end
  1172.     object Button5: TButton
  1173.       Left = 8
  1174.       Top = 264
  1175.       Width = 89
  1176.       Height = 25
  1177.       Caption = 'Create Dir'
  1178.       TabOrder = 4
  1179.       OnClick = Button5Click
  1180.     end
  1181.     object DriveComboBox1: TDriveComboBox
  1182.       Left = 120
  1183.       Top = 8
  1184.       Width = 145
  1185.       Height = 22
  1186.       TabOrder = 5
  1187.       OnChange = DriveComboBox1Change
  1188.     end
  1189.     object DirectoryListBox1: TDirectoryListBox
  1190.       Left = 120
  1191.       Top = 40
  1192.       Width = 145
  1193.       Height = 97
  1194.       ItemHeight = 16
  1195.       TabOrder = 6
  1196.       OnChange = DirectoryListBox1Change
  1197.     end
  1198.     object FileListBox1: TFileListBox
  1199.       Left = 120
  1200.       Top = 144
  1201.       Width = 145
  1202.       Height = 145
  1203.       Hint = 'Double Click to run'
  1204.       ItemHeight = 16
  1205.       ParentShowHint = False
  1206.       ShowHint = True
  1207.       TabOrder = 7
  1208.       OnDblClick = FileListBox1DblClick
  1209.     end
  1210.     object Button6: TButton
  1211.       Left = 8
  1212.       Top = 72
  1213.       Width = 89
  1214.       Height = 25
  1215.       Caption = 'Quakemon'
  1216.       TabOrder = 8
  1217.       OnClick = Button6Click
  1218.     end
  1219.     object Button8: TButton
  1220.       Left = 8
  1221.       Top = 96
  1222.       Width = 89
  1223.       Height = 25
  1224.       Caption = 'Help'
  1225.       TabOrder = 9
  1226.       OnClick = Button8Click
  1227.     end
  1228.     object Button9: TButton
  1229.       Left = 8
  1230.       Top = 120
  1231.       Width = 89
  1232.       Height = 25
  1233.       Caption = 'Run Quake'
  1234.       TabOrder = 10
  1235.       OnClick = Button9Click
  1236.     end
  1237.     object Button11: TButton
  1238.       Left = 8
  1239.       Top = 200
  1240.       Width = 89
  1241.       Height = 25
  1242.       Caption = 'Rename'
  1243.       TabOrder = 11
  1244.       OnClick = Button11Click
  1245.     end
  1246.   end
  1247.   object Panel2: TPanel
  1248.     Left = 104
  1249.     Top = 304
  1250.     Width = 513
  1251.     Height = 345
  1252.     TabOrder = 7
  1253.     Visible = False
  1254.     object Memo2: TMemo
  1255.       Left = 8
  1256.       Top = 8
  1257.       Width = 497
  1258.       Height = 329
  1259.       Lines.Strings = (
  1260.         'This is a really simple example.'
  1261.         ' '
  1262.         
  1263.           'It add one more powerful weapon at the begining of first episode' +
  1264.           ' without '
  1265.         'using cheat code.'
  1266.         ''
  1267.         'Please unpack the game first, and copy the sample.bsp to the '
  1268.         
  1269.           '                                                                ' +
  1270.           '\quake\id1\maps directory.'
  1271.         ''
  1272.         'Rename the e1m1.bsp to other name and '
  1273.         
  1274.           '                                           rename the sample.bsp' +
  1275.           ' to e1m1.bsp.'
  1276.         ''
  1277.         
  1278.           'Run the Game and take the first episode, You will enjoy that pow' +
  1279.           'er !'
  1280.         ''
  1281.         
  1282.           'How do I create it ? I use quakemon.exe to open the original e1m' +
  1283.           '1.bsp,'
  1284.         
  1285.           'and read the codes . It provide me the function to add the weapo' +
  1286.           'n, so I'
  1287.         
  1288.           'copy the player'#39's first enter dimension and add the supershotgun' +
  1289.           ' there.'
  1290.         ''
  1291.         'Here is the part at the beginning of the e1m1.bsp'
  1292.         ''
  1293.         '{'
  1294.         '"classname" "info_player_start"'
  1295.         '"origin" "480 -352 88"'
  1296.         '"angle" "90"'
  1297.         '}'
  1298.         ''
  1299.         
  1300.           'Enter the x , y, z and angle in quakemon application and press "' +
  1301.           ' add "'
  1302.         ', it will add the weapons, monster etc. for you !'
  1303.         ''
  1304.         'Don'#39't forget to write the modified .bsp file to disk. '
  1305.         ''
  1306.         
  1307.           'Quakemon.exe has a bug : You must restart it again everytime you' +
  1308.           ' write '
  1309.         'a .bsp, otherwise you will get a I/O error at the second time.'
  1310.         '')
  1311.       ScrollBars = ssVertical
  1312.       TabOrder = 0
  1313.     end
  1314.   end
  1315.   object Timer1: TTimer
  1316.     Interval = 500
  1317.     OnTimer = Timer1Timer
  1318.     Left = 408
  1319.     Top = 368
  1320.   end
  1321.   object OpenDialog1: TOpenDialog
  1322.     Filter = 'Quake.exe|*.exe'
  1323.     Left = 376
  1324.     Top = 368
  1325.   end
  1326. end
  1327.