Subversion Repositories Games.Descent

Rev

Blame | Last modification | View Log | Download | RSS feed

  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. }
  391.