1 /*
2  * Portions of this file are copyright Rebirth contributors and licensed as
3  * described in COPYING.txt.
4  * Portions of this file are copyright Parallax Software and licensed
5  * according to the Parallax license below.
6  * See COPYING.txt for license details.
7 
8 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
9 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
10 END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
11 ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
12 IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
13 SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
14 FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
15 CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
16 AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.
17 COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
18 */
19 
20 #pragma once
21 
22 #ifdef __cplusplus
23 #include "dsx-ns.h"
24 
25 // In khelp.c
26 int DoHelp();
27 
28 // In kcurve.c
29 int InitCurve();
30 int GenerateCurve();
31 int DecreaseR4();
32 int IncreaseR4();
33 int DecreaseR1();
34 int IncreaseR1();
35 int DeleteCurve();
36 int SetCurve();
37 
38 // In kmine.c
39 int SaveMine();
40 int LoadMine();
41 int MineMenu();
42 int CreateNewMine();
43 int LoadOldMine();
44 
45 int SaveSituation();
46 int LoadSituation();
47 
48 // In kgame.c
49 int SetPlayerPosition(void);
50 int SaveGameData();
51 int LoadGameData();
52 int LoadMineOnly();
53 void ResetFilename();
54 
55 // In group.c
56 int LoadGroup();
57 int SaveGroup();
58 int PrevGroup();
59 int NextGroup();
60 int CreateGroup();
61 int SubtractFromGroup();
62 int DeleteGroup();
63 int MarkGroupSegment();
64 int MoveGroup(void);
65 int CopyGroup(void);
66 int AttachSegmentNew();
67 int UngroupSegment();
68 int GroupSegment();
69 int Degroup();
70 int RotateGroup();
71 
72 // In segment.c
73 int ToggleBottom();
74 void make_curside_bottom_side();
75 #ifdef DXX_BUILD_DESCENT_II
76 int select_segment_by_number();
77 int select_segment_with_powerup();
78 #endif
79 
80 // In editor.c
81 int UndoCommand();
82 
83 // In kview.c
84 int ZoomOut();
85 int ZoomIn();
86 int MoveAway();
87 int MoveCloser();
88 int ToggleChaseMode();
89 
90 // In kbuild.c
91 int CreateBridge();
92 int FormJoint();
93 int CreateAdjacentJoint();
94 int CreateAdjacentJointsSegment();
95 int CreateAdjacentJointsAll();
96 int CreateSloppyAdjacentJoint();
97 int CreateSloppyAdjacentJointsGroup();
98 
99 // In ksegmove.c
100 int DecreaseHeading();
101 int IncreaseHeading();
102 int DecreasePitch();
103 int IncreasePitch();
104 int DecreaseBank();
105 int IncreaseBank();
106 
107 // In ksegsel.c
108 int SelectCurrentSegForward();
109 int SelectCurrentSegBackward();
110 int SelectNextSide();
111 int SelectPrevSide();
112 int CopySegToMarked();
113 int SelectBottom();
114 int SelectFront();
115 int SelectTop();
116 int SelectBack();
117 int SelectLeft();
118 int SelectRight();
119 
120 // In ksegsize.c
121 #ifdef dsx
122 namespace dsx {
123 int IncreaseSegLength();
124 int DecreaseSegLength();
125 int DecreaseSegWidth();
126 int IncreaseSegWidth();
127 int IncreaseSegHeight();
128 int DecreaseSegHeight();
129 int ToggleSegSizeMode();
130 int PerturbCurside();
131 int PerturbCursideBig();
132 
133 int IncreaseSegLengthBig();
134 int DecreaseSegLengthBig();
135 int DecreaseSegWidthBig();
136 int IncreaseSegWidthBig();
137 int IncreaseSegHeightBig();
138 int DecreaseSegHeightBig();
139 
140 int IncreaseSegLengthDefault();
141 int DecreaseSegLengthDefault();
142 int IncreaseSegWidthDefault();
143 int DecreaseSegWidthDefault();
144 int IncreaseSegHeightDefault();
145 int DecreaseSegHeightDefault();
146 int do_trigger_dialog();
147 }
148 #endif
149 
150 //	In ktmap.c
151 int AssignTexture();
152 int AssignTexture2();
153 int ClearTexture2();
154 int PropagateTextures();
155 int PropagateTexturesMove();
156 int PropagateTexturesMoveUVs();
157 int PropagateTexturesUVs();
158 int PropagateTexturesSelected();
159 
160 //--//// In macro.c
161 //--//int MacroMenu();
162 //--//int MacroPlayFast();
163 //--//int MacroPlayNormal();
164 //--//int MacroRecordAll();
165 //--//int MacroRecordKeys();
166 //--//int MacroSave();
167 //--//int MacroLoad();
168 
169 // In editor.c
170 int AttachSegment();
171 int DeleteSegment();
172 int CallLisp();
173 int ExitEditor();
174 int ShowAbout();
175 int ExchangeMarkandCurseg();
176 #ifdef DXX_BUILD_DESCENT_II
177 int CopySegtoMarked();
178 #endif
179 int med_keypad_goto_prev();
180 int med_keypad_goto_next();
181 int med_keypad_goto();
182 int med_increase_tilings();
183 int med_decrease_tilings();
184 int ToggleAutosave();
185 int MarkEnd();
186 
187 //	Texture.c
188 int	TexFlipX();
189 int	TexFlipY();
190 int	TexSlideUp();
191 int	TexSlideLeft();
192 int	TexSetDefault();
193 #ifdef DXX_BUILD_DESCENT_II
194 int	TexSetDefaultSelected();
195 #endif
196 int	TexSlideRight();
197 int	TexRotateLeft();
198 int	TexSlideDown();
199 int	TexRotateRight();
200 int	TexSelectActiveEdge();
201 int	TexRotate90Degrees();
202 int	TexIncreaseTiling();
203 int	TexDecreaseTiling();
204 int	TexSlideUpBig();
205 int	TexSlideLeftBig();
206 int	TexSlideRightBig();
207 int	TexRotateLeftBig();
208 int	TexSlideDownBig();
209 int	TexRotateRightBig();
210 int	TexStretchDown();
211 int	TexStretchUp();
212 #ifdef DXX_BUILD_DESCENT_II
213 int	TexChangeAll();
214 int	TexChangeAll2();
215 #endif
216 
217 //	object.c
218 #ifdef dsx
219 namespace dsx {
220 int	ObjectPlaceObject();
221 int	ObjectMakeCoop();
222 int	ObjectPlaceObjectTmap();
223 int	ObjectDelete();
224 int	ObjectMoveForward();
225 int	ObjectMoveLeft();
226 int	ObjectSetDefault();
227 int	ObjectMoveRight();
228 int	ObjectMoveBack();
229 int	ObjectMoveDown();
230 int	ObjectMoveUp();
231 int	ObjectMoveNearer();
232 int	ObjectMoveFurther();
233 int	ObjectSelectNextinSegment();
234 int	ObjectSelectNextType();
235 
236 template <int p, int b, int h>
237 int ObjectChangeRotation();
238 
239 #define ROTATION_UNIT (4096/4)
240 
241 #define ObjectDecreaseBank ObjectChangeRotation<0, -ROTATION_UNIT, 0>
242 #define ObjectIncreaseBank ObjectChangeRotation<0, ROTATION_UNIT, 0>
243 #define ObjectDecreasePitch ObjectChangeRotation<-ROTATION_UNIT, 0, 0>
244 #define ObjectIncreasePitch ObjectChangeRotation<ROTATION_UNIT, 0, 0>
245 #define ObjectDecreaseHeading ObjectChangeRotation<0, 0, -ROTATION_UNIT>
246 #define ObjectIncreaseHeading ObjectChangeRotation<0, 0, ROTATION_UNIT>
247 
248 #define ObjectDecreaseBankBig ObjectChangeRotation<0, -(ROTATION_UNIT*4), 0>
249 #define ObjectIncreaseBankBig ObjectChangeRotation<0, (ROTATION_UNIT*4), 0>
250 #define ObjectDecreasePitchBig ObjectChangeRotation<-(ROTATION_UNIT*4), 0, 0>
251 #define ObjectIncreasePitchBig ObjectChangeRotation<(ROTATION_UNIT*4), 0, 0>
252 #define ObjectDecreaseHeadingBig ObjectChangeRotation<0, 0, -(ROTATION_UNIT*4)>
253 #define ObjectIncreaseHeadingBig ObjectChangeRotation<0, 0, (ROTATION_UNIT*4)>
254 
255 int  	ObjectResetObject();
256 }
257 #endif
258 
259 //	elight.c
260 int	LightSelectNextVertex();
261 int	LightSelectNextEdge();
262 int	LightCopyIntensity();
263 int	LightCopyIntensitySegment();
264 int	LightDecreaseLightVertex();
265 int	LightIncreaseLightVertex();
266 int	LightDecreaseLightSide();
267 int	LightIncreaseLightSide();
268 int	LightDecreaseLightSegment();
269 int	LightIncreaseLightSegment();
270 int	LightSetMaximum();
271 int	LightSetDefault();
272 int	LightSetDefaultAll();
273 int	LightAmbientLighting();
274 
275 // seguvs.c
276 #ifdef dsx
277 namespace dsx {
278 int fix_bogus_uvs_on_side();
279 int fix_bogus_uvs_all();
280 }
281 #endif
282 int set_average_light_on_curside(void);
283 int set_average_light_on_all(void);
284 int set_average_light_on_all_quick(void);
285 
286 // Miscellaneous, please put in correct file if you have time
287 int GotoMainMenu();
288 int GotoGameScreen();
289 int DropIntoDebugger();
290 int CreateDefaultNewSegment();
291 int CreateDefaultNewSegmentandAttach();
292 int ClearSelectedList();
293 int ClearFoundList();
294 int SetPlayerFromCurseg();
295 int SetPlayerFromCursegAndRotate();
296 int SetPlayerFromCursegMinusOne();
297 int FindConcaveSegs();
298 int do_reset_orient();
299 int GameZoomOut();
300 int GameZoomIn();
301 
302 // John's temp page stuff
303 int medtmp_set_page();
304 
305 // In objpage.c
306 int objpage_goto_next_object();
307 
308 // In medsel.c
309 extern int SortSelectedList(void);
310 extern int SelectNextFoundSeg(void);
311 extern int SelectPreviousFoundSeg(void);
312 
313 // In wall.c
314 extern int wall_add_blastable(void);
315 extern int wall_add_closed_wall(void);
316 extern int wall_add_external_wall(void);
317 extern int wall_lock_door(void);
318 extern int wall_automate_door(void);
319 extern int wall_deautomate_door(void);
320 extern int wall_assign_door_1(void);
321 extern int wall_assign_door_2(void);
322 extern int wall_assign_door_3(void);
323 extern int wall_assign_door_4(void);
324 extern int wall_assign_door_5(void);
325 extern int wall_assign_door_6(void);
326 extern int wall_assign_door_7(void);
327 extern int wall_assign_door_8(void);
328 extern int do_wall_dialog(void);
329 extern int check_walls(void);
330 extern int delete_all_walls(void);
331 #ifdef DXX_BUILD_DESCENT_II
332 extern int delete_all_controlcen_triggers(void);
333 #endif
334 
335 // In switch.c
336 //extern int trigger_add_damage(void);
337 //extern int trigger_add_blank(void);
338 //extern int trigger_add_exit(void);
339 //extern int trigger_add_repair(void);
340 //extern int trigger_control(void);
341 //extern int trigger_remove(void);
342 //extern int trigger_add_if_control_center_dead(void);
343 extern int bind_wall_to_control_trigger(void);
344 
345 // In med.c
346 extern int fuelcen_create_from_curseg();
347 extern int repaircen_create_from_curseg();
348 extern int controlcen_create_from_curseg();
349 extern int robotmaker_create_from_curseg();
350 extern int fuelcen_reset_all();
351 extern int RestoreGameState();
352 extern int fuelcen_delete_from_curseg();
353 #ifdef DXX_BUILD_DESCENT_II
354 extern int goal_blue_create_from_curseg();
355 extern int goal_red_create_from_curseg();
356 #endif
357 
358 // In editor\robot.c
359 extern int do_robot_dialog();
360 extern int do_object_dialog();
361 
362 #endif
363 
364