updated readme
[divverent/nexuiz.git] / navnodeedit / NavNodeEdit_readme.txt
1 Title           : NavNodeEdit\r
2 Filename        : ...\r
3 Version         : ?\r
4 Date            : ?\r
5 Author          : Marko "Urre" Permanto\r
6 Email           : imunreal A to the T gmail D to the O to the T com\r
7 Website         : http://urre.quakedev.com/\r
8 Credits         : LordHavoc for teaching me a lot about QuakeC\r
9                   Ender for scratch tutorials\r
10                   Chris Voss for the menu system\r
11                   id Software for various good things\r
12                   Stribbs for inspiration to improve this editor\r
13 \r
14 Type of Mod\r
15 -----------\r
16 Quake C         : aye!\r
17 Sound           : no\r
18 MDL             : Yes\r
19 Level           : no\r
20 Gfx             : no\r
21 \r
22 Format of QuakeC (if a Quake C Mod)\r
23 -----------------------------------\r
24 unified diff  : no\r
25 context diff  : no\r
26 .qc files     : yes\r
27 progs.dat     : yes\r
28 \r
29 Description of the Modification\r
30 -------------------------------\r
31 Previously called WayBoxEdit, this mod has evolved into something I like to\r
32 call NavNodeEdit, this because it is no longer restricted to arbitrary boxes,\r
33 nor touching links. It now supports planes to shape the boxes into different\r
34 shapes, and supports remote links ala waypoints. Not as cool as building all\r
35 the info out of planes, like MrElusives navigation systems do (Omicron bot,\r
36 Gladiator bot, and Q3A bots). I might do that once I figure out BSP trees,\r
37 which is when it would be even remotely plausible, for performance reasons.\r
38 This system should still cover most needs.\r
39 \r
40 I recommend the DarkPlaces engine, FTE might be supported in the future.\r
41 \r
42 A word of *WARNING* to anyone interested in checking out the sourcecode:\r
43 This is the only project I've written merely to get it done ASAP, I did not\r
44 plan the code *at all*, so it's probably the messiest and hardest to\r
45 maintain/update code I've ever written. You have been warned.\r
46 \r
47 Controls and Impulses\r
48 --------\r
49 WARNING: These instructions are *not* pedagogical!\r
50 \r
51 +button3 and +button4 in combination with other buttons are used for various\r
52 types of control. For example, if you hold down +button3, aim at a wall and\r
53 press +button0, the current navnode will resize on the current axis to where\r
54 you aimed.\r
55 \r
56 +button3 = resizing navnodes.\r
57 +button4 = movement of navnodes and clip points.\r
58 +button3 and +button4 = plane control.\r
59 \r
60 The effect that +button0 and/or +button2 has depends on which of these\r
61 "help-buttons" are held down, if at all. Impulse 101 and impulse 102 are\r
62 special in the way that they also have different effects depending on this.\r
63 By default, +button0 is bound to mousebutton1, +button2 is bound to\r
64 mousebutton2, impulse 101 to scrollwheel-up, impulse 102 to scrollwheel-down,\r
65 +button3 to shift, +button4 is to ctrl.\r
66 \r
67 Here follows a list of actions, assuming the default binds (mb1 and mb2 are\r
68 mousebuttons):\r
69         (no help-button)\r
70 mb1 = No effect (feel free to suggest what this button could do)\r
71 mb2 = lock/unlock selection (unlocking will delete all clip points)\r
72 scroll-wheel = change gridsize\r
73         SHIFT\r
74 mb1 = resize to aimed geometry on current axis\r
75 mb2 = resize to self.origin on all axis\r
76 scroll-wheel = resize on current axis\r
77         CTRL\r
78 mb1 = move on all axis to aim\r
79 mb2 = move on all axis to self\r
80 scroll-wheel = move on current axis\r
81         SHIFT+CTRL\r
82 mb1 = spawn/delete plane (if no clip points are present, will make plane on\r
83       aimed geometry. deletion only happens if new plane matches with old)\r
84 mb2 = spawn clip point (requires selection lock, up to 3 allowed and required)\r
85 scroll-wheel = switch selected clip point if available, else switch selected\r
86                plane\r
87 \r
88 The say command is used for various things that require extra parameters. Here\r
89 follow the possible commands (say them without the quotation marks):\r
90 \r
91 "origin [vector]" = will move the navnode to the desired origin, unaffected by\r
92                     the grid.\r
93 "resize [worldspace on current axis]" = will resize a navnode's edge to the\r
94                                         issued worldspace parameter, unaffected\r
95                                         by the grid.\r
96 "save" = Saves the navnode list (future versions will provide possibility to\r
97          issue filename).\r
98 "load" = Loads navnode list (future versions will provide possibility to\r
99          issue filename).\r
100 "teleport" = gives the Special flag S_TELEPORT to the current navnode.\r
101 "door" = gives the Special flag S_DOOR to the current navnode.\r
102 "nolink [optional number]" = will give the Link flag FL_NOLINK to the current\r
103                              navnode. If no number is issued, it will look for\r
104                              your secondary-selected navnode, check if it is a\r
105                              valid link, and issue the number automaticly.\r
106 "nowalk [optional number]" = will give the Link flag FL_NOWALK to the current\r
107                              navnode. If no number is issued, it will look for\r
108                              your secondary-selected navnode, check if it is a\r
109                              valid link, and issue the number automaticly.\r
110 "bad [optional number]" = will give the Link flag FL_BAD to the current\r
111                           navnode. If no number is issued, it will look for your\r
112                           secondary-selected navnode, check if it is a valid\r
113                           link, and issue the number automaticly.\r
114 "bigdrop [optional number]" = will give the Link flag FL_BIGDROP to the current\r
115                               navnode. If no number is issued, it will look for\r
116                               your secondary-selected navnode, check if it is a\r
117                               valid link, and issue the number automaticly.\r
118 "remote" = will give the Link flag FL_REMOTE to the current navnode. Secondary-\r
119            selected navnode is required.\r
120 \r
121 There are a number of impulses as well, which are important. The default bind\r
122 is listed next to the impulse number:\r
123 \r
124 Impulse Bind            Effect\r
125 1-9     1-9             Menu selection\r
126 101     wheelup         Described above\r
127 102     wheeldown       Described above\r
128 110     N               Spawn new navnode (requires selection to be unlocked)\r
129 111     R               Delete current navnode\r
130 112     P               Delete current plane\r
131 120     O               Switches selected navnode when in overlap-selection-mode\r
132 121     M               Switches selection mode between closest, and overlap\r
133 122     TAB             Cycles current axis\r
134 123     X               Switches to X axis\r
135 124     Y               Switches to Y axis\r
136 125     Z               Switches to Z axis\r
137 \r
138 Good Luck!\r
139 \r
140 Known Bugs\r
141 ----------\r
142 1) Sometimes when doing something against aimed geometry, the aim goes through\r
143         the wall.\r
144         Cause: The DarkPlaces engine has collision issues in q3bsp, thus\r
145         nothing I can affect.\r
146         Solution: re-aim slightly and try again.\r
147 2) Resizing sometimes doesn't go all the way.\r
148         Cause: Unknown.\r
149         Solution: Re-resize with same parameters until it reaches the desired\r
150         size.\r
151 \r
152 Legal\r
153 -----\r
154 This is a special version of the NavNodeEditor, donated to the Nexuiz team,\r
155 thus it is released under the same license as Nexuiz. See relevant documents\r
156 for more information.