Subversion Repositories Games.Descent

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 pmbaty 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-1998 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
18
*/
19
 
20
/*
21
 *
22
 * .
23
 *
24
 */
25
 
26
#include <stdlib.h>
27
#include "inferno.h"
28
#include "func.h"
29
#include "editor/kdefs.h"
30
#include "segment.h"
31
#include "editor/editor.h"
32
#include "dxxerror.h"
33
#include "slew.h"
34
#include "gamesave.h"
35
#include "editor/centers.h"
36
#include "editor/eobject.h"
37
#include "editor/medwall.h"
38
#include "editor/medmisc.h"
39
#include "editor/texpage.h"
40
#include "editor/ehostage.h"
41
#include "kfuncs.h"
42
#include "dsx-ns.h"
43
 
44
namespace dsx {
45
 
46
static int Test1()
47
{
48
        init_replacements();
49
 
50
        return 0;
51
}
52
 
53
static int Test2()
54
{
55
        do_replacements();
56
 
57
        return 0;
58
}
59
 
60
//extern fix fcd_test(void);
61
//extern void test_shortpos(void);
62
 
63
static int Test3()
64
{
65
        Int3(); //      Are you sure you want to do this?
66
        //      This will replace all textures in your replacement list
67
        //      in all mines.
68
        //      If you don't want to do this, set eip to the return statement
69
        //      and continue.
70
 
71
        do_replacements_all();
72
 
73
        return 0;
74
}
75
 
76
const FUNCTION med_functions[] = {
77
 
78
// Test functions
79
{   "med-test-1",                         0,    Test1 },
80
{   "med-test-2",                         0,    Test2 },
81
{   "med-test-3",                         0,    Test3 },
82
 
83
// In khelp.c
84
{   "med-help",                         0,      DoHelp },
85
 
86
// In kcurve.c
87
{   "med-curve-init",                   0,      InitCurve },
88
{   "med-curve-generate",               0,      GenerateCurve },
89
{   "med-curve-decrease-r4",            0,      DecreaseR4 },
90
{   "med-curve-increase-r4",            0,      IncreaseR4 },
91
{   "med-curve-decrease-r1",            0,      DecreaseR1 },
92
{   "med-curve-increase-r1",            0,      IncreaseR1 },
93
{   "med-curve-delete",                 0,      DeleteCurve },
94
{   "med-curve-set",                    0,      SetCurve },
95
 
96
// In kmine.c
97
{   "med-mine-save",                    0,      SaveMine },
98
//{   "med-mine-load",                    0,      LoadMine },
99
{   "med-mine-menu",                    0,      MineMenu },
100
{   "med-mine-create-new",              0,      CreateNewMine },
101
//{      "med-mine-load-old",                                    0,             LoadOldMine },                  
102
{   "med-situation-save",               0,      SaveSituation },
103
{   "med-situation-load",               0,      LoadSituation },
104
{        "med-restore-game-state",                               0,             RestoreGameState },
105
//{   "load-mine-only",                    0,      LoadMineOnly   },
106
 
107
// In kgame.c
108
{   "med-game-save",                    0,      SaveGameData },
109
{   "med-game-load",                    0,      LoadGameData },
110
 
111
// In kview.c
112
{   "med-view-zoom-out",                0,      ZoomOut },
113
{   "med-view-zoom-in",                 0,      ZoomIn },
114
{   "med-view-move-away",               0,      MoveAway },
115
{   "med-view-move-closer",             0,      MoveCloser },
116
{   "med-view-toggle-chase",            0,      ToggleChaseMode },
117
 
118
// In kbuild.c
119
{   "med-build-bridge",                 0,      CreateBridge },
120
{   "med-build-joint",                  0,      FormJoint },
121
{   "med-build-adj-joint",              0,      CreateAdjacentJoint },
122
{   "med-build-sloppy-adj-joint",       0,      CreateSloppyAdjacentJoint },
123
{   "med-build-sloppy-adj-joint-group", 0,      CreateSloppyAdjacentJointsGroup },
124
{   "med-build-adj-joints-segment",     0,      CreateAdjacentJointsSegment },
125
{   "med-build-adj-joints-all",         0,      CreateAdjacentJointsAll },
126
 
127
// In segment.c
128
{   "med-segment-bottom",                        0,      ToggleBottom }, //make_curside_bottom_side },
129
{   "med-segment-show-bottom",          0,      ToggleBottom },
130
 
131
// In ksegmove.c
132
{   "med-segmove-decrease-heading",     0,      DecreaseHeading },
133
{   "med-segmove-increase-heading",     0,      IncreaseHeading },
134
{   "med-segmove-decrease-pitch",       0,      DecreasePitch },
135
{   "med-segmove-increase-pitch",       0,      IncreasePitch },
136
{   "med-segmove-decrease-bank",        0,      DecreaseBank },
137
{   "med-segmove-increase-bank",        0,      IncreaseBank },
138
 
139
// In ksegsel.c
140
{   "med-segsel-next-segment",          0,      SelectCurrentSegForward },
141
{   "med-segsel-prev-segment",          0,      SelectCurrentSegBackward },
142
{   "med-segsel-next-side",             0,      SelectNextSide },
143
{   "med-segsel-prev-side",             0,      SelectPrevSide },
144
{   "med-segsel-set-marked",            0,      CopySegToMarked },
145
{   "med-segsel-bottom",                0,      SelectBottom },
146
{   "med-segsel-front",                 0,      SelectFront },
147
{   "med-segsel-top",                   0,      SelectTop },
148
{   "med-segsel-back",                  0,      SelectBack },
149
{   "med-segsel-left",                  0,      SelectLeft },
150
{   "med-segsel-right",                 0,      SelectRight },
151
 
152
// In ksegsize.c
153
{   "med-segsize-increase-length",      0,      IncreaseSegLength },
154
{   "med-segsize-decrease-length",      0,      DecreaseSegLength },
155
{   "med-segsize-decrease-width",       0,      DecreaseSegWidth },
156
{   "med-segsize-increase-width",       0,      IncreaseSegWidth },
157
{   "med-segsize-increase-height",      0,      IncreaseSegHeight },
158
{   "med-segsize-decrease-height",      0,      DecreaseSegHeight },
159
 
160
{   "med-segsize-increase-length-big",  0,      IncreaseSegLengthBig },
161
{   "med-segsize-decrease-length-big",  0,      DecreaseSegLengthBig },
162
{   "med-segsize-decrease-width-big",   0,      DecreaseSegWidthBig },
163
{   "med-segsize-increase-width-big",   0,      IncreaseSegWidthBig },
164
{   "med-segsize-increase-height-big",  0,      IncreaseSegHeightBig },
165
{   "med-segsize-decrease-height-big",  0,      DecreaseSegHeightBig },
166
{   "med-segsize-toggle-mode",                           0,      ToggleSegSizeMode },
167
{   "med-segsize-perturb-curside",               0,      PerturbCurside },
168
{   "med-segsize-perturb-curside-big",   0,      PerturbCursideBig },
169
{   "med-segsize-increase-length-default",  0,  IncreaseSegLengthDefault },
170
{   "med-segsize-decrease-length-default",  0,  DecreaseSegLengthDefault },
171
{   "med-segsize-increase-width-default",  0,   IncreaseSegWidthDefault },
172
{   "med-segsize-decrease-width-default",  0,   DecreaseSegWidthDefault },
173
{   "med-segsize-increase-height-default",  0,   IncreaseSegHeightDefault },
174
{   "med-segsize-decrease-height-default",  0,   DecreaseSegHeightDefault },
175
 
176
//  In ktmap.c
177
{   "med-tmap-assign",                  0,      AssignTexture },
178
{   "med-tmap-assign2",                 0,      AssignTexture2 },
179
{   "med-tmap-clear2",                  0,      ClearTexture2 },
180
{   "med-tmap-propogate",               0,      PropagateTextures },
181
{   "med-tmap-propogate-move",          0,      PropagateTexturesMove },
182
{   "med-tmap-propogate-move-uvs",      0,      PropagateTexturesMoveUVs },
183
{   "med-tmap-propogate-move-uvs",      0,      PropagateTexturesMoveUVs },
184
{   "med-tmap-propogate-uvs",           0,      PropagateTexturesUVs },
185
{   "med-tmap-propogate-selected",      0,      PropagateTexturesSelected },
186
 
187
//  In wall.c
188
{   "med-wall-add-blastable",           0,      wall_add_blastable },
189
{   "med-wall-add-door",                         0,      wall_add_door },
190
{   "med-wall-add-closed",                       0,             wall_add_closed_wall },
191
{   "med-wall-add-external",             0,             wall_add_external_wall },
192
{   "med-wall-add-illusion",           0,      wall_add_illusion },
193
{   "med-wall-restore-all",                              0,      wall_restore_all },
194
{   "med-wall-remove",                           0,      wall_remove },
195
{   "do-wall-dialog",                                            0,      do_wall_dialog },
196
{   "med-link-doors",                                            0,             wall_link_doors },
197
{   "med-unlink-door",                                           0,             wall_unlink_door },
198
{   "check-walls",                                                       0,             check_walls },
199
{   "delete-all-walls",                                          0,             delete_all_walls },
200
 
201
// In centers.c
202
{   "do-centers-dialog",                                                 0,      do_centers_dialog },
203
 
204
//  In switch.c
205
//{   "med-trigger-add-damage",           0,      trigger_add_damage },
206
//{   "med-trigger-add-exit",             0,      trigger_add_exit },
207
//{   "med-trigger-control",                             0,      trigger_control },
208
//{   "med-trigger-remove",                       0,      trigger_remove },
209
//{   "med-bind-wall-to-control",         0,      bind_wall_to_control_trigger },
210
{   "do-trigger-dialog",                                         0,      do_trigger_dialog },
211
 
212
//--//// In macro.c
213
//--//{   "med-macro-menu",                   0,      MacroMenu },
214
//--//{   "med-macro-play-fast",              0,      MacroPlayFast },
215
//--//{   "med-macro-play-normal",            0,      MacroPlayNormal },
216
//--//{   "med-macro-record-all",             0,      MacroRecordAll },
217
//--//{   "med-macro-record-keys",            0,      MacroRecordKeys },
218
//--//{   "med-macro-save",                   0,      MacroSave },
219
//--//{   "med-macro-load",                   0,      MacroLoad },
220
 
221
// In editor.c
222
{   "med-update",                       0,      medlisp_update_screen },
223
{   "med-segment-add",                  0,      AttachSegment },
224
{   "med-segment-delete",               0,      medlisp_delete_segment },
225
{   "med-segment-scale",                3,      medlisp_scale_segment },
226
{   "med-segment-rotate",               3,      medlisp_rotate_segment },
227
{   "med-editor-exit",                  0,      ExitEditor },
228
{   "med-segment-exchange",             0,      ExchangeMarkandCurseg },
229
{   "med-segment-mark",                 0,      CopySegToMarked },
230
{        "med-about",                                                            0,      ShowAbout },
231
 
232
//      In group.c
233
{        "med-group-load",                                               0,             LoadGroup },
234
{        "med-group-save",                                               0,             SaveGroup },
235
{   "med-move-group",                   0,      MoveGroup },
236
{   "med-copy-group",                   0,      CopyGroup },
237
{        "med-rotate-group",                                             0,             RotateGroup },
238
{   "med-segment-add-new",              0,      AttachSegmentNew },
239
{        "med-mark-groupseg",                                    0,             MarkGroupSegment },
240
{        "med-next-group",                                               0,             NextGroup },
241
{        "med-prev-group",                                               0,             PrevGroup },
242
{        "med-delete-group",                                             0,      DeleteGroup },
243
{        "med-create-group",                                             0,             CreateGroup },
244
{        "med-ungroup-segment",                                  0,             UngroupSegment },
245
{        "med-group-segment",                                    0,             GroupSegment },
246
{        "med-degroup-group",                                    0,             Degroup },
247
{        "med-subtract-from-group",                      0,             SubtractFromGroup },
248
 
249
//  In autosave.c
250
{   "med-autosave-undo",                0,      UndoCommand },
251
{        "med-autosave-toggle",                                  0,             ToggleAutosave },
252
 
253
//      In texture.c
254
{       "med-tass-flip-x",                                               0,     TexFlipX },
255
{       "med-tass-flip-y",                                               0,     TexFlipY },
256
{       "med-tass-slide-up",                                             0,     TexSlideUp },
257
{       "med-tass-slide-left",                                   0,     TexSlideLeft },
258
{       "med-tass-set-default",                                  0,     TexSetDefault },
259
{       "med-tass-slide-right",                                  0,     TexSlideRight },
260
{       "med-tass-rotate-left",                                  0,     TexRotateLeft },
261
{       "med-tass-slide-down",                                   0,     TexSlideDown },
262
{       "med-tass-stretch-down",                                 0,     TexStretchDown },
263
{       "med-tass-stretch-up",                                   0,     TexStretchUp },
264
{       "med-tass-rotate-right",                                 0,     TexRotateRight },
265
{       "med-tass-select-active-edge",           0,     TexSelectActiveEdge },
266
{       "med-tass-rotate-90-degrees",                    0,     TexRotate90Degrees },
267
{  "med-tass-increase-tiling",          0,   TexIncreaseTiling },
268
{  "med-tass-decrease-tiling",          0,   TexDecreaseTiling },
269
{       "med-tass-slide-up-big",                                 0,     TexSlideUpBig },
270
{       "med-tass-slide-left-big",                               0,     TexSlideLeftBig },
271
{       "med-tass-slide-right-big",                      0,     TexSlideRightBig },
272
{       "med-tass-rotate-left-big",                      0,     TexRotateLeftBig },
273
{       "med-tass-slide-down-big",                               0,     TexSlideDownBig },
274
{       "med-tass-rotate-right-big",                     0,     TexRotateRightBig },
275
 
276
//      In eobject.c
277
{       "med-obj-set-player",                                    0,     SetPlayerPosition },
278
{       "med-obj-place-object",                                  0,     ObjectPlaceObject },
279
{       "med-obj-place-object-tmap",                     0,     ObjectPlaceObjectTmap },
280
{       "med-obj-move-nearer",                                   0,     ObjectMoveNearer },
281
{       "med-obj-move-further",                                  0,     ObjectMoveFurther },
282
{       "med-obj-delete-object",                                 0,     ObjectDelete },
283
{  "med-obj-move-forward",                                       0,     ObjectMoveForward },
284
{  "med-obj-move-left",                                          0,     ObjectMoveLeft },
285
{  "med-obj-set-default",                                        0,     ObjectSetDefault },
286
{  "med-obj-move-right",                                         0,     ObjectMoveRight },
287
{  "med-obj-move-back",                                          0,     ObjectMoveBack },
288
{  "med-obj-move-down",                                          0,     ObjectMoveDown },
289
{  "med-obj-move-up",                                            0,     ObjectMoveUp },
290
{  "med-obj-select-next-in-segment",     0,     ObjectSelectNextinSegment },
291
{  "med-obj-decrease-bank",                              0,     ObjectDecreaseBank },
292
{  "med-obj-increase-bank",                              0,     ObjectIncreaseBank },
293
{  "med-obj-decrease-pitch",                             0,     ObjectDecreasePitch },
294
{  "med-obj-increase-pitch",                             0,     ObjectIncreasePitch },
295
{  "med-obj-decrease-heading",                   0,     ObjectDecreaseHeading },
296
{  "med-obj-increase-heading",                   0,     ObjectIncreaseHeading },
297
{  "med-obj-decrease-bank-big",                  0,     ObjectDecreaseBankBig },
298
{  "med-obj-increase-bank-big",                  0,     ObjectIncreaseBankBig },
299
{  "med-obj-decrease-pitch-big",                         0,     ObjectDecreasePitchBig },
300
{  "med-obj-increase-pitch-big",                         0,     ObjectIncreasePitchBig },
301
{  "med-obj-decrease-heading-big",               0,     ObjectDecreaseHeadingBig },
302
{  "med-obj-increase-heading-big",               0,     ObjectIncreaseHeadingBig },
303
{  "med-obj-reset",                                                      0,     ObjectResetObject },
304
{  "med-obj-flip",                                                       0,     ObjectFlipObject },
305
{       "med-obj-make-coop",                                     0,     ObjectMakeCoop },
306
//{     "med-obj-place-hostage",                                 0,     ObjectPlaceHostage },
307
 
308
// In objpage.c
309
{       "med-obj-select-next-type",                      0,     objpage_goto_next_object },
310
 
311
 
312
//      In elight.c
313
{       "med-light-select-next-vertex",          0,     LightSelectNextVertex },
314
{       "med-light-select-next-edge",                    0,     LightSelectNextEdge },
315
{       "med-light-copy-intensity-side",                 0,     LightCopyIntensity },
316
{       "med-light-copy-intensity-segment",      0,     LightCopyIntensitySegment },
317
{       "med-light-decrease-light-vertex",       0,     LightDecreaseLightVertex },
318
{       "med-light-increase-light-vertex",       0,     LightIncreaseLightVertex },
319
{       "med-light-decrease-light-side",                 0,     LightDecreaseLightSide },
320
{       "med-light-increase-light-side",                 0,     LightIncreaseLightSide },
321
{       "med-light-decrease-light-segment",      0,     LightDecreaseLightSegment },
322
{       "med-light-increase-light-segment",      0,     LightIncreaseLightSegment },
323
{       "med-light-set-maximum",                                 0,     LightSetMaximum },
324
{       "med-light-set-default",                                 0,     LightSetDefault },
325
{       "med-light-assign-default-all",          0,     LightSetDefaultAll },
326
{       "med-light-ambient-lighting",                    0,     LightAmbientLighting },
327
 
328
// In seguvs.c                                                                                                                                          
329
{       "med-seguvs-fix-bogus-uvs-on-side",      0,     fix_bogus_uvs_on_side},
330
{       "med-seguvs-fix-bogus-uvs-all",          0,     fix_bogus_uvs_all},
331
{       "med-seguvs-smooth-lighting-all",        0,   set_average_light_on_all},
332
{       "med-seguvs-smooth-lighting-all-quick",  0,   set_average_light_on_all_quick},
333
{       "med-seguvs-smooth-lighting",                    0,   set_average_light_on_curside},
334
 
335
// Miscellaneous, please neaten and catagorize me!
336
 
337
{   "med-increase-draw-depth",          0,        IncreaseDrawDepth },
338
{   "med-decrease-draw-depth",          0,        DecreaseDrawDepth },
339
{   "med-goto-main-menu",                    0,        GotoMainMenu },
340
{   "med-goto-game-screen",             0,        GotoGameScreen },
341
{   "med-drop-into-debugger",           0,        DropIntoDebugger },
342
// {   "med-sync-large-view",              0,        SyncLargeView },
343
{   "med-create-default-new-segment",   0,        CreateDefaultNewSegment },
344
{   "med-create-default-new-segment-and-attach",   0,        CreateDefaultNewSegmentandAttach },
345
{   "med-clear-selected-list",          0,        ClearSelectedList },
346
{   "med-clear-found-list",             0,        ClearFoundList },
347
{   "med-sort-selected-list",           0,        SortSelectedList },
348
{   "med-set-player-from-curseg",       0,        SetPlayerFromCursegAndRotate },
349
{   "med-set-player-from-curseg-minus-one", 0,        SetPlayerFromCursegMinusOne },
350
{   "med-find-concave-segs",            0,        FindConcaveSegs },
351
{   "med-select-next-found-seg",        0,        SelectNextFoundSeg },
352
{   "med-select-prev-found-seg",        0,        SelectPreviousFoundSeg },
353
{   "med-stop-slew",                    0,        slew_stop },
354
//{   "med-reset-orientation",            0,        do_reset_orient },
355
{   "med-game-zoom-out",                0,        GameZoomOut },
356
{   "med-game-zoom-in",                 0,        GameZoomIn },
357
{        "med-keypad-goto-prev",                                 0,        med_keypad_goto_prev },
358
{        "med-keypad-goto-next",                                 0,        med_keypad_goto_next },
359
{        "med-keypad-goto",                              1,        med_keypad_goto },
360
 
361
// John's temporary function page stuff
362
// {   "med-set-function-page",            1,        medtmp_set_page },
363
 
364
// In fuelcen.c
365
{       "med-fuelcen-create",                                   0,      fuelcen_create_from_curseg },
366
{       "med-repaircen-create",                                 0,      repaircen_create_from_curseg },
367
{       "med-controlcen-create",                                        0,  controlcen_create_from_curseg },
368
{       "med-robotmaker-create",                                        0,  robotmaker_create_from_curseg },
369
{       "med-fuelcen-reset-all",                                        0,  fuelcen_reset_all },
370
{       "med-fuelcen-delete",                                   0,              fuelcen_delete_from_curseg },
371
 
372
// In robot.c
373
{       "do-robot-dialog",                                                      0, do_robot_dialog },
374
{       "do-object-dialog",                                                     0, do_object_dialog },
375
#if defined(DXX_BUILD_DESCENT_I)
376
{       "do-hostage-dialog",                                                    0, do_hostage_dialog },
377
#endif
378
 
379
// In gamesavec
380
{       "rename-level",                                                 0, get_level_name },
381
 
382
// The terminating marker
383
{   NULL, 0, NULL } };
384
 
385
void init_med_functions()
386
{
387
        func_init(med_functions, (sizeof(med_functions)/sizeof(FUNCTION))-1 );
388
}
389
 
390
}