home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #6 / amigaacscoverdisc1998-061998.iso / games / descent / source / main / editor / kfuncs.c < prev    next >
Text File  |  1998-06-08  |  22KB  |  496 lines

  1. /*
  2. THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
  3. SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
  4. END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
  5. ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
  6. IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
  7. SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
  8. FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
  9. CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
  10. AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.  
  11. COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
  12. */
  13. /*
  14.  * $Source: f:/miner/source/main/editor/rcs/kfuncs.c $
  15.  * $Revision: 2.1 $
  16.  * $Author: yuan $
  17.  * $Date: 1995/03/08 16:07:23 $
  18.  * 
  19.  * .
  20.  * 
  21.  * $Log: kfuncs.c $
  22.  * Revision 2.1  1995/03/08  16:07:23  yuan
  23.  * Added segment sizing default functions.
  24.  * 
  25.  * Revision 2.0  1995/02/27  11:34:45  john
  26.  * Version 2.0! No anonymous unions, Watcom 10.0, with no need
  27.  * for bitmaps.tbl.
  28.  * 
  29.  * Revision 1.112  1995/01/12  12:10:31  yuan
  30.  * Added coop object capability.
  31.  * 
  32.  * Revision 1.111  1994/11/27  23:17:16  matt
  33.  * Made changes for new mprintf calling convention
  34.  * 
  35.  * Revision 1.110  1994/11/23  12:17:22  mike
  36.  * bind retmap functions.
  37.  * 
  38.  * Revision 1.109  1994/11/19  15:20:54  mike
  39.  * rip out unused code and data.
  40.  * 
  41.  * Revision 1.108  1994/11/17  11:39:02  matt
  42.  * Ripped out code to load old mines
  43.  * 
  44.  * Revision 1.107  1994/10/27  10:06:12  mike
  45.  * kill macro stuff.
  46.  * 
  47.  * Revision 1.106  1994/10/18  15:31:43  mike
  48.  * Bind mine correction function to test keypad, key=1.
  49.  * 
  50.  * Revision 1.105  1994/09/26  23:22:06  matt
  51.  * Added functions to keep player's starting position from getting messed up
  52.  * 
  53.  * Revision 1.104  1994/09/24  14:15:41  mike
  54.  * Custom colored object support.
  55.  * 
  56.  * Revision 1.103  1994/09/23  18:03:54  yuan
  57.  * Finished wall checking code.
  58.  * 
  59.  * Revision 1.102  1994/09/22  19:03:52  mike
  60.  * Test function test_shortpos on ctrl-keypad3
  61.  * 
  62.  * Revision 1.101  1994/09/20  14:35:56  mike
  63.  * Bind functions to keypad 2, 3.
  64.  * 
  65.  * Revision 1.100  1994/09/15  22:58:10  matt
  66.  * Made new objects be oriented to their segment
  67.  * Added keypad function to flip an object upside-down
  68.  * 
  69.  * Revision 1.99  1994/09/14  16:50:50  yuan
  70.  * Added load mine only function
  71.  * 
  72.  * Revision 1.98  1994/08/25  21:57:52  mike
  73.  * IS_CHILD stuff.
  74.  * 
  75.  * Revision 1.97  1994/08/16  18:10:52  yuan
  76.  * Maded C place you in the center of a segment.
  77.  * 
  78.  * Revision 1.96  1994/08/15  17:48:01  yuan
  79.  * Added external walls.
  80.  * 
  81.  * Revision 1.95  1994/08/13  17:32:38  mike
  82.  * test function.
  83.  * 
  84.  * Revision 1.94  1994/08/05  21:17:57  matt
  85.  * Allow two doors to be linked together
  86.  * 
  87.  * Revision 1.93  1994/08/05  18:18:52  matt
  88.  * Made object rotation have 4x resolution, and SHIFT+rotate do old resolution.
  89.  * 
  90.  * Revision 1.92  1994/08/03  10:31:06  mike
  91.  * Add texture map propagation without uv assignment.
  92.  * 
  93.  * Revision 1.91  1994/08/02  14:17:00  mike
  94.  * Clean up dialog boxes, add one for Matt.
  95.  * 
  96.  * Revision 1.90  1994/07/30  17:04:47  mike
  97.  * Bind key for max_depth on path testing.
  98.  * 
  99.  */
  100.  
  101.  
  102. #pragma off (unreferenced)
  103. static char rcsid[] = "$Id: kfuncs.c 2.1 1995/03/08 16:07:23 yuan Exp $";
  104. #pragma on (unreferenced)
  105.  
  106. #include <stdlib.h>
  107.  
  108. #include "inferno.h"
  109. #include "func.h"
  110. #include "kdefs.h"
  111. #include "segment.h"
  112. #include "editor.h"
  113. #include "error.h"
  114. #include "slew.h"
  115. #include "mono.h"
  116. #include "gamesave.h"
  117. #include "eobject.h"
  118. #include "medwall.h"
  119.  
  120. // Test function prototypes (replace Test1, 2 and 3 with whatever function 
  121. //                                        you wish to test.)
  122. extern void test_create_path();
  123. extern void test_create_all_paths();
  124. extern void test_create_path_many();
  125. extern void create_all_paths();
  126. extern void test_create_all_anchors();
  127. // extern void make_curside_bottom_side();
  128. extern void move_object_to_mouse_click();
  129. extern void test_create_n_segment_path();
  130.  
  131. extern void set_all_modes_to_hover(void);
  132.  
  133. int Test1() 
  134. {
  135. //    { int i;
  136. //        for (i=Highest_segment_index+1; i<MAX_SEGMENTS; i++)
  137. //            Segments[i].segnum = -1;
  138. //    }
  139.  
  140.     mprintf((0, "Initializing replacement list.\n"));
  141.     init_replacements();
  142.  
  143.     return 0;
  144. }
  145.  
  146. extern void check_for_overlapping_segments(void);
  147. extern void init_replacements();
  148. int Test2() 
  149. {
  150. //    mprintf((0, "\nCalling check_for_overlapping_segments.\n"));
  151. //    check_for_overlapping_segments();
  152.  
  153.     mprintf((0, "Going to do texture replacements.\n"));
  154.     do_replacements();
  155.  
  156.     return 0;
  157. }
  158.  
  159. //extern fix fcd_test(void);
  160. //extern void test_shortpos(void);
  161.  
  162. extern void do_replacements(void);
  163. extern void do_replacements_all(void);
  164.  
  165. int Test3() 
  166. {
  167.     Int3();    //    Are you sure you want to do this?
  168.     //    This will replace all textures in your replacement list
  169.     //    in all mines.
  170.     //    If you don't want to do this, set eip to the return statement
  171.     //    and continue.
  172.  
  173.     mprintf((0, "Going to do texture replacements.\n"));
  174.     do_replacements_all();
  175.  
  176.     return 0;
  177. }
  178.  
  179. FUNCTION med_functions[] = {
  180.  
  181. // Test functions
  182. {   "med-test-1",                         0,    Test1 },
  183. {   "med-test-2",                         0,    Test2 },
  184. {   "med-test-3",                         0,    Test3 },
  185.  
  186. // In khelp.c
  187. {   "med-help",                         0,      DoHelp },
  188.  
  189. // In kcurve.c
  190. {   "med-curve-init",                   0,      InitCurve },
  191. {   "med-curve-generate",               0,      GenerateCurve },
  192. {   "med-curve-decrease-r4",            0,      DecreaseR4 },
  193. {   "med-curve-increase-r4",            0,      IncreaseR4 },
  194. {   "med-curve-decrease-r1",            0,      DecreaseR1 },
  195. {   "med-curve-increase-r1",            0,      IncreaseR1 },
  196. {   "med-curve-delete",                 0,      DeleteCurve },
  197. {   "med-curve-set",                    0,      SetCurve },
  198.  
  199. // In kmine.c
  200. {   "med-mine-save",                    0,      SaveMine },
  201. //{   "med-mine-load",                    0,      LoadMine },
  202. {   "med-mine-menu",                    0,      MineMenu },
  203. {   "med-mine-create-new",              0,      CreateNewMine },
  204. //{     "med-mine-load-old",                     0,        LoadOldMine },            
  205. {   "med-situation-save",               0,      SaveSituation },
  206. {   "med-situation-load",               0,      LoadSituation },
  207. {     "med-restore-game-state",                 0,        RestoreGameState },
  208. //{   "load-mine-only",                    0,      LoadMineOnly   },
  209.  
  210. // In kgame.c
  211. {   "med-game-save",                    0,      SaveGameData },
  212. {   "med-game-load",                    0,      LoadGameData },
  213.  
  214. // In kview.c
  215. {   "med-view-zoom-out",                0,      ZoomOut },
  216. {   "med-view-zoom-in",                 0,      ZoomIn },
  217. {   "med-view-move-away",               0,      MoveAway },
  218. {   "med-view-move-closer",             0,      MoveCloser },
  219. {   "med-view-toggle-chase",            0,      ToggleChaseMode },
  220.  
  221. // In kbuild.c
  222. {   "med-build-bridge",                 0,      CreateBridge },
  223. {   "med-build-joint",                  0,      FormJoint },
  224. {   "med-build-adj-joint",              0,      CreateAdjacentJoint },
  225. {   "med-build-sloppy-adj-joint",       0,      CreateSloppyAdjacentJoint },
  226. {   "med-build-sloppy-adj-joint-group", 0,      CreateSloppyAdjacentJointsGroup },
  227. {   "med-build-adj-joints-segment",     0,      CreateAdjacentJointsSegment },
  228. {   "med-build-adj-joints-all",         0,      CreateAdjacentJointsAll },
  229.  
  230. // In segment.c
  231. {   "med-segment-bottom",                  0,      ToggleBottom }, //make_curside_bottom_side },
  232. {   "med-segment-show-bottom",          0,      ToggleBottom },
  233.  
  234. // In ksegmove.c
  235. {   "med-segmove-decrease-heading",     0,      DecreaseHeading },
  236. {   "med-segmove-increase-heading",     0,      IncreaseHeading },
  237. {   "med-segmove-decrease-pitch",       0,      DecreasePitch },
  238. {   "med-segmove-increase-pitch",       0,      IncreasePitch },
  239. {   "med-segmove-decrease-bank",        0,      DecreaseBank },
  240. {   "med-segmove-increase-bank",        0,      IncreaseBank },
  241.  
  242. // In ksegsel.c
  243. {   "med-segsel-next-segment",          0,      SelectCurrentSegForward },
  244. {   "med-segsel-prev-segment",          0,      SelectCurrentSegBackward },
  245. {   "med-segsel-next-side",             0,      SelectNextSide },
  246. {   "med-segsel-prev-side",             0,      SelectPrevSide },
  247. {   "med-segsel-set-marked",            0,      CopySegToMarked },
  248. {   "med-segsel-bottom",                0,      SelectBottom },
  249. {   "med-segsel-front",                 0,      SelectFront },
  250. {   "med-segsel-top",                   0,      SelectTop },
  251. {   "med-segsel-back",                  0,      SelectBack },
  252. {   "med-segsel-left",                  0,      SelectLeft },
  253. {   "med-segsel-right",                 0,      SelectRight },
  254.  
  255. // In ksegsize.c
  256. {   "med-segsize-increase-length",      0,      IncreaseSegLength },
  257. {   "med-segsize-decrease-length",      0,      DecreaseSegLength },
  258. {   "med-segsize-decrease-width",       0,      DecreaseSegWidth },
  259. {   "med-segsize-increase-width",       0,      IncreaseSegWidth },
  260. {   "med-segsize-increase-height",      0,      IncreaseSegHeight },
  261. {   "med-segsize-decrease-height",      0,      DecreaseSegHeight },
  262.  
  263. {   "med-segsize-increase-length-big",  0,      IncreaseSegLengthBig },
  264. {   "med-segsize-decrease-length-big",  0,      DecreaseSegLengthBig },
  265. {   "med-segsize-decrease-width-big",   0,      DecreaseSegWidthBig },
  266. {   "med-segsize-increase-width-big",   0,      IncreaseSegWidthBig },
  267. {   "med-segsize-increase-height-big",  0,      IncreaseSegHeightBig },
  268. {   "med-segsize-decrease-height-big",  0,      DecreaseSegHeightBig },
  269. {   "med-segsize-toggle-mode",               0,      ToggleSegSizeMode },
  270. {   "med-segsize-perturb-curside",         0,      PerturbCurside },
  271. {   "med-segsize-perturb-curside-big",     0,      PerturbCursideBig },
  272. {   "med-segsize-increase-length-default",  0,  IncreaseSegLengthDefault },
  273. {   "med-segsize-decrease-length-default",  0,  DecreaseSegLengthDefault },
  274. {   "med-segsize-increase-width-default",  0,   IncreaseSegWidthDefault },
  275. {   "med-segsize-decrease-width-default",  0,   DecreaseSegWidthDefault },
  276. {   "med-segsize-increase-height-default",  0,   IncreaseSegHeightDefault },
  277. {   "med-segsize-decrease-height-default",  0,   DecreaseSegHeightDefault },
  278.  
  279. //  In ktmap.c
  280. {   "med-tmap-assign",                  0,      AssignTexture },
  281. {   "med-tmap-assign2",                 0,      AssignTexture2 },
  282. {   "med-tmap-clear2",                  0,      ClearTexture2 },
  283. {   "med-tmap-propogate",               0,      PropagateTextures },
  284. {   "med-tmap-propogate-move",          0,      PropagateTexturesMove },
  285. {   "med-tmap-propogate-move-uvs",      0,      PropagateTexturesMoveUVs },
  286. {   "med-tmap-propogate-move-uvs",      0,      PropagateTexturesMoveUVs },
  287. {   "med-tmap-propogate-uvs",           0,      PropagateTexturesUVs },
  288. {   "med-tmap-propogate-selected",      0,      PropagateTexturesSelected },
  289.  
  290. //  In wall.c
  291. {   "med-wall-add-blastable",           0,      wall_add_blastable },
  292. {   "med-wall-add-door",                    0,      wall_add_door },
  293. {   "med-wall-add-closed",                  0,        wall_add_closed_wall },
  294. {   "med-wall-add-external",              0,        wall_add_external_wall },
  295. {   "med-wall-add-illusion",             0,      wall_add_illusion },
  296. {   "med-wall-restore-all",                 0,      wall_restore_all },
  297. {   "med-wall-remove",                     0,      wall_remove },
  298. {   "do-wall-dialog",                         0,      do_wall_dialog },
  299. {   "med-link-doors",                         0,        wall_link_doors },
  300. {   "med-unlink-door",                         0,        wall_unlink_door },
  301. {   "check-walls",                              0,        check_walls },
  302. {   "delete-all-walls",                         0,        delete_all_walls },
  303.  
  304. // In centers.c
  305. {   "do-centers-dialog",                         0,      do_centers_dialog },
  306.  
  307. //  In switch.c
  308. //{   "med-trigger-add-damage",           0,      trigger_add_damage },
  309. //{   "med-trigger-add-exit",              0,      trigger_add_exit },
  310. //{   "med-trigger-control",                  0,      trigger_control },
  311. //{   "med-trigger-remove",                  0,      trigger_remove },
  312. //{   "med-bind-wall-to-control",         0,      bind_wall_to_control_trigger },
  313. {   "do-trigger-dialog",                     0,      do_trigger_dialog },
  314.  
  315. //--//// In macro.c
  316. //--//{   "med-macro-menu",                   0,      MacroMenu },
  317. //--//{   "med-macro-play-fast",              0,      MacroPlayFast },
  318. //--//{   "med-macro-play-normal",            0,      MacroPlayNormal },
  319. //--//{   "med-macro-record-all",             0,      MacroRecordAll },
  320. //--//{   "med-macro-record-keys",            0,      MacroRecordKeys },
  321. //--//{   "med-macro-save",                   0,      MacroSave },
  322. //--//{   "med-macro-load",                   0,      MacroLoad },
  323.  
  324. // In editor.c
  325. {   "med-update",                       0,      medlisp_update_screen },
  326. {   "med-segment-add",                  0,      AttachSegment },
  327. {   "med-segment-delete",               0,      medlisp_delete_segment },
  328. {   "med-segment-scale",                3,      medlisp_scale_segment },
  329. {   "med-segment-rotate",               3,      medlisp_rotate_segment },
  330. {   "med-dos-shell",                    0,      DosShell },
  331. //{   "med-lisp-call",                    0,      CallLisp },
  332. {   "med-editor-exit",                  0,      ExitEditor },
  333. {   "med-segment-exchange",             0,      ExchangeMarkandCurseg },
  334. {   "med-segment-mark",                 0,      CopySegtoMarked },
  335. {     "med-about",                                 0,      ShowAbout },
  336. {     "med-mark-start",                         0,        MarkStart },
  337. {     "med-mark-end",                              0,        MarkEnd },
  338.  
  339. //    In group.c
  340. {     "med-group-load",                         0,         LoadGroup },
  341. {     "med-group-save",                         0,         SaveGroup },
  342. {   "med-move-group",                   0,      MoveGroup },
  343. {   "med-copy-group",                   0,      CopyGroup },
  344. {     "med-rotate-group",                         0,        RotateGroup },
  345. {   "med-segment-add-new",              0,      AttachSegmentNew },
  346. {     "med-mark-groupseg",                     0,        MarkGroupSegment },
  347. {     "med-next-group",                         0,        NextGroup },
  348. {     "med-prev-group",                         0,        PrevGroup },
  349. {     "med-delete-group",                         0,      DeleteGroup },
  350. {     "med-create-group",                         0,        CreateGroup },
  351. {     "med-ungroup-segment",                     0,        UngroupSegment },
  352. {     "med-group-segment",                     0,        GroupSegment },
  353. {     "med-degroup-group",                     0,        Degroup },
  354. {     "med-subtract-from-group",             0,        SubtractFromGroup },
  355.  
  356. //  In autosave.c
  357. {   "med-autosave-undo",                0,      UndoCommand },
  358. {     "med-autosave-toggle",                     0,        ToggleAutosave },
  359.  
  360. //    In texture.c
  361. {    "med-tass-flip-x",                         0,    TexFlipX },
  362. {    "med-tass-flip-y",                         0,    TexFlipY },
  363. {    "med-tass-slide-up",                         0,    TexSlideUp },
  364. {    "med-tass-slide-left",                     0,    TexSlideLeft },
  365. {    "med-tass-set-default",                     0,    TexSetDefault },
  366. {    "med-tass-slide-right",                     0,    TexSlideRight },
  367. {    "med-tass-rotate-left",                     0,    TexRotateLeft },
  368. {    "med-tass-slide-down",                     0,    TexSlideDown },
  369. {    "med-tass-stretch-down",                 0,    TexStretchDown },
  370. {    "med-tass-stretch-up",                     0,    TexStretchUp },
  371. {    "med-tass-rotate-right",                 0,    TexRotateRight },
  372. {    "med-tass-select-active-edge",         0,    TexSelectActiveEdge },
  373. {    "med-tass-rotate-90-degrees",             0,    TexRotate90Degrees },
  374. {  "med-tass-increase-tiling",          0,   TexIncreaseTiling },
  375. {  "med-tass-decrease-tiling",          0,   TexDecreaseTiling },
  376. {    "med-tass-slide-up-big",                 0,    TexSlideUpBig },
  377. {    "med-tass-slide-left-big",                 0,    TexSlideLeftBig },
  378. {    "med-tass-slide-right-big",             0,    TexSlideRightBig },
  379. {    "med-tass-rotate-left-big",             0,    TexRotateLeftBig },
  380. {    "med-tass-slide-down-big",                 0,    TexSlideDownBig },
  381. {    "med-tass-rotate-right-big",             0,    TexRotateRightBig },
  382.  
  383. //    In eobject.c
  384. {    "med-obj-set-player",                     0,    SetPlayerPosition },
  385. {    "med-obj-place-object",                     0,    ObjectPlaceObject },
  386. {    "med-obj-place-object-tmap",             0,    ObjectPlaceObjectTmap },
  387. {    "med-obj-move-nearer",                     0,    ObjectMoveNearer },
  388. {    "med-obj-move-further",                     0,    ObjectMoveFurther },
  389. {    "med-obj-delete-object",                 0,    ObjectDelete },
  390. {  "med-obj-move-forward",                     0,    ObjectMoveForward },
  391. {  "med-obj-move-left",                         0,    ObjectMoveLeft },
  392. {  "med-obj-set-default",                     0,    ObjectSetDefault },
  393. {  "med-obj-move-right",                     0,    ObjectMoveRight },
  394. {  "med-obj-move-back",                         0,    ObjectMoveBack },
  395. {  "med-obj-move-down",                         0,    ObjectMoveDown },
  396. {  "med-obj-move-up",                         0,    ObjectMoveUp },
  397. {  "med-obj-select-next-in-segment",     0,    ObjectSelectNextinSegment },
  398. {  "med-obj-decrease-bank",                 0,    ObjectDecreaseBank },
  399. {  "med-obj-increase-bank",                 0,    ObjectIncreaseBank },
  400. {  "med-obj-decrease-pitch",                 0,    ObjectDecreasePitch },
  401. {  "med-obj-increase-pitch",                 0,    ObjectIncreasePitch },
  402. {  "med-obj-decrease-heading",              0,    ObjectDecreaseHeading },
  403. {  "med-obj-increase-heading",              0,    ObjectIncreaseHeading },
  404. {  "med-obj-decrease-bank-big",             0,    ObjectDecreaseBankBig },
  405. {  "med-obj-increase-bank-big",             0,    ObjectIncreaseBankBig },
  406. {  "med-obj-decrease-pitch-big",             0,    ObjectDecreasePitchBig },
  407. {  "med-obj-increase-pitch-big",             0,    ObjectIncreasePitchBig },
  408. {  "med-obj-decrease-heading-big",          0,    ObjectDecreaseHeadingBig },
  409. {  "med-obj-increase-heading-big",          0,    ObjectIncreaseHeadingBig },
  410. {  "med-obj-reset",                             0,    ObjectResetObject },
  411. {  "med-obj-flip",                             0,    ObjectFlipObject },
  412. {    "med-obj-make-coop",                     0,    ObjectMakeCoop },
  413. //{    "med-obj-place-hostage",                  0,    ObjectPlaceHostage },
  414.  
  415. // In objpage.c
  416. {    "med-obj-select-next-type",             0,    objpage_goto_next_object },
  417.  
  418.  
  419. //    In elight.c
  420. {    "med-light-select-next-vertex",         0,    LightSelectNextVertex },
  421. {    "med-light-select-next-edge",             0,    LightSelectNextEdge },
  422. {    "med-light-copy-intensity-side",         0,    LightCopyIntensity },
  423. {    "med-light-copy-intensity-segment",     0,    LightCopyIntensitySegment },
  424. {    "med-light-decrease-light-vertex",     0,    LightDecreaseLightVertex },
  425. {    "med-light-increase-light-vertex",     0,    LightIncreaseLightVertex },
  426. {    "med-light-decrease-light-side",         0,    LightDecreaseLightSide },
  427. {    "med-light-increase-light-side",         0,    LightIncreaseLightSide },
  428. {    "med-light-decrease-light-segment",     0,    LightDecreaseLightSegment },
  429. {    "med-light-increase-light-segment",     0,    LightIncreaseLightSegment },
  430. {    "med-light-set-maximum",                  0,    LightSetMaximum },
  431. {    "med-light-set-default",                  0,    LightSetDefault },
  432. {    "med-light-assign-default-all",         0,    LightSetDefaultAll },
  433. {    "med-light-ambient-lighting",             0,    LightAmbientLighting },
  434.  
  435. // In seguvs.c                                                                        
  436. {    "med-seguvs-fix-bogus-uvs-on-side",     0,    fix_bogus_uvs_on_side},
  437. {    "med-seguvs-fix-bogus-uvs-all",          0,    fix_bogus_uvs_all},
  438. {    "med-seguvs-smooth-lighting-all",     0,   set_average_light_on_all},
  439. {    "med-seguvs-smooth-lighting-all-quick",     0,   set_average_light_on_all_quick},
  440. {    "med-seguvs-smooth-lighting",              0,   set_average_light_on_curside},
  441.  
  442. // Miscellaneous, please neaten and catagorize me!
  443.  
  444. {   "med-increase-draw-depth",          0,        IncreaseDrawDepth },
  445. {   "med-decrease-draw-depth",          0,        DecreaseDrawDepth },
  446. {   "med-goto-game",                    0,        GotoGame },
  447. {   "med-goto-game-screen",             0,        GotoGameScreen },
  448. {   "med-drop-into-debugger",           0,        DropIntoDebugger },
  449. // {   "med-sync-large-view",              0,        SyncLargeView },
  450. {   "med-create-default-new-segment",   0,        CreateDefaultNewSegment },
  451. {   "med-create-default-new-segment-and-attach",   0,        CreateDefaultNewSegmentandAttach },
  452. {   "med-clear-selected-list",          0,        ClearSelectedList },
  453. {   "med-clear-found-list",             0,        ClearFoundList },
  454. {   "med-sort-selected-list",           0,        SortSelectedList },
  455. {   "med-set-player-from-curseg",       0,        SetPlayerFromCursegAndRotate },
  456. {   "med-set-player-from-curseg-minus-one", 0,        SetPlayerFromCursegMinusOne },
  457. {   "med-find-concave-segs",            0,        FindConcaveSegs },
  458. {   "med-select-next-found-seg",        0,        SelectNextFoundSeg },
  459. {   "med-select-prev-found-seg",        0,        SelectPreviousFoundSeg },
  460. {   "med-stop-slew",                    0,        slew_stop },
  461. //{   "med-reset-orientation",            0,        do_reset_orient },
  462. {   "med-game-zoom-out",                0,        GameZoomOut },
  463. {   "med-game-zoom-in",                 0,        GameZoomIn },
  464. {     "med-keypad-goto-prev",                 0,        med_keypad_goto_prev },
  465. {     "med-keypad-goto-next",                 0,        med_keypad_goto_next },
  466. {     "med-keypad-goto",                 1,        med_keypad_goto },
  467.  
  468. // John's temporary function page stuff
  469. // {   "med-set-function-page",            1,        medtmp_set_page },
  470.  
  471. // In fuelcen.c
  472. {    "med-fuelcen-create",                    0,     fuelcen_create_from_curseg },
  473. {    "med-repaircen-create",                    0,     repaircen_create_from_curseg },
  474. {    "med-controlcen-create",                    0,  controlcen_create_from_curseg },
  475. {    "med-robotmaker-create",                    0,  robotmaker_create_from_curseg },
  476. {     "med-fuelcen-reset-all",                     0,  fuelcen_reset_all },
  477. {    "med-fuelcen-delete",                    0,        fuelcen_delete_from_curseg },
  478.  
  479. // In robot.c
  480. {    "do-robot-dialog",                            0, do_robot_dialog },
  481. {    "do-object-dialog",                            0, do_object_dialog },
  482. {    "do-hostage-dialog",                            0, do_hostage_dialog },
  483.  
  484. // In gamesavec
  485. {    "rename-level",                            0, get_level_name },
  486.  
  487. // The terminating marker
  488. {   NULL, 0, NULL } };
  489.  
  490. void init_med_functions()
  491. {
  492.     func_init(med_functions, (sizeof(med_functions)/sizeof(FUNCTION))-1 );
  493. }
  494.  
  495. 
  496.