home *** CD-ROM | disk | FTP | other *** search
/ The Games Machine 2 (DVD) / XENIADVD2.iso / Patch / Project Nomads / pnomads_patch2_eng.exe / MAINDIR / Run / scripts / input.tcl < prev    next >
Encoding:
Text File  |  2002-10-22  |  39.5 KB  |  1,154 lines

  1. #-------------------------------------------------------------------------------
  2. #
  3. #   /nomads/scripts/input.tcl
  4. #
  5. #   THE NOMADS INPUT MAPPING
  6. #
  7. #   Wird vom Standard-Demo ben÷tigt und implementiert
  8. #   die Tastatur-Belegung. Dient dem Prototyping des
  9. #   gesamten Input-Handlings.
  10. #
  11. #   Input-Event-Mapping
  12. #   Die Liste der auf dem aktuellen System verfuegbaren
  13. #   Input-Devices findet man unter /sys/share/input,
  14. #   die Liste die Game-Events unter /sys/share/gameevents.
  15. #
  16. #   created:    05-May-99
  17. #   upd.:       23-Jun-99
  18. #               30-Jul-99   floh    auf Inputserver umgestellt
  19. #               05-Nov-99   bernd   Tasten fⁿr neue Befehle und so
  20. #               24-Nov-99   bernd   angefangen das ganze Input Mapping aufzurΣumen
  21. #                                   Jeder "ZUSTAND" bekommt ein komplettes eigenes 
  22. #                                   Input Mapping.
  23. #               26-Nov-99   bernd   Weiter am Input Mapping
  24. #                           floh    + .beginmap/.endmap
  25. #               29-Nov-99   bernd   Merge Conflicte aufgeloest
  26. #               30-Nov-99   bernd   Weiter am InputMapping
  27. #               20-Dec-99   floh    + Inputmapping fuer Konsole toggeln
  28. #                                   + neues Input-Mapping fuer Input-Recording
  29. #               22-Dec-99   floh    + korrekte Input-Modifier angehaengt (.down...)  
  30. #               29-Dec-99   bernd   Diverse Sachen fⁿrs Rausgeben ausgeklammert
  31. #               03-Jan-2000 bernd   Weiter am Input Mapping (Longpressed etc.)
  32. #               14-Jan-2000         Tuning. GAMEPAD-Belegung.
  33. #               20-Jan-2000 bernd   Ich mu▀ beim Umschalten des Inputs (da ja alle JOHNS - egal ob
  34. #                                   Schatten oder Autonom oder der WAHRE JAKOB - die Stateswitch-
  35. #                                   Routinen aufrufen) abfragen, ob ich auch wirklich derr wahre Jakob bin.
  36. #                                   Dafⁿr gibt es die neue Funktion thatsreallyme.
  37. #               21-Jan-2000 bernd   Es gibt jetzt die global Variable    
  38. #                                   current_input, mit der ich mir merke, welches Input-Mapping
  39. #                                   just aktiv ist.
  40. #               24-jan-2000 bernd   Ein paar Meldungen etwas klarer.
  41. #
  42. #               27-Jan-2000 bernd   Spezielle ESCAPE -Aktion, damit ich Menu und watchown uaf Esc mappen kann
  43. #               31-Jan-2000 floh    aufgeraeumt und fehlende Gamepad Belegung
  44. #               02-Feb-2000 bernd   fast/slow
  45. #               22-Mrz-2000 bernd   Save/Load Levelbau 
  46. #               27-Mrz-2000 bernd   Level Loadscreen
  47. #               13-Jun-2000 bernd   DELETE Taste fⁿr LOAD Screen
  48. #               21-Jun-2000 bernd   Falltaste / Reset View Taste umgelegt
  49. #               23-Jun-2000 bernd   SPELL
  50. #               28-Jun-2000 bernd   WATCH FINE SELECTION
  51. #               30-Jun-2000 floh    + Feuer-Taste beim Maennel
  52. #               18-Jul-00   floh    + Gamepad-Feinarbeit (Cancel-Buttons vereinheitlicht)               
  53. #               08-Nov-2000 jeremy  + Level Design Input (sl_input)            
  54. #               08-Nov-2000 jeremy  + source menu_leveldesign.tcl            
  55. #               07-Mar-2001 bernd   CleanUp / 
  56. #               25-May-01   floh    + Viewer weiterschalten auf Num0 (shift
  57. #                                     aktiviert unter Win2k eine "Eingabehilfe"
  58. #               26-May-01   floh    + Main-Input gekillt.
  59. #               05-Jun-01   floh    + auf Joystick-Analog-Input umgestellt
  60. #               30-Oct-01   floh    + Gebaeudekamera abkoppelbar
  61. #               25-Jan-02   floh    + new debug key: f7 -> set maennel booster charges
  62. #               31-Jan-02   floh    + joymouse Support angefangen
  63. #               19-Feb-02   floh    + input_gameend fuer Spieler tot
  64. #               11-Apr-02   basti   + soundeditor auf 'e' gemappt   
  65. #               17-Jun-02   floh    + neue mouseinput mappings
  66. #               20-Jun-02   floh    + neue Tastatur/Mouse-Mappings
  67. #
  68. #   (C) 1999 Bernd Beyreuther
  69. #   (C) COPYRIGHT 2000,2001 RADONLABS GMBH
  70. #-------------------------------------------------------------------------------
  71.  
  72. /sys/servers/input.setlongpressedtime 0.75
  73. set current_input "guimenu_input"
  74.  
  75. # Mittels einer env-Variablen kann man die Maussteuerung ausschalten
  76. # (NONEBULAMOUSE == 1)
  77. set nomouse 0
  78. catch {set nomouse $env(NONEBULAMOUSE)}
  79.  
  80. #===============================================================================
  81. #
  82. #   HELPER ROUTINEN
  83. #
  84. #===============================================================================
  85.  
  86. #-------------------------------------------------------------------------------
  87. #   Mappings, die immer aktiv sein sollten.
  88. #-------------------------------------------------------------------------------
  89. proc global_mappings {} {
  90.     .map keyb0:f2.down      "script:/sys/servers/menuhandler.showhelpscreen"
  91.     .map keyb0:f2.up        "script:/sys/servers/menuhandler.hidehelpscreen"
  92.     .map keyb0:f12.down     "script:screenshot"    
  93.     .map keyb0:f5.down      "script:nm_savegame_single quicksave; textmessage finish"
  94.     .map keyb0:f8.down      "script:nm_loadgame_quicksave"
  95. }
  96.  
  97. #-------------------------------------------------------------------------------
  98. #   Debug-Mappings
  99. #-------------------------------------------------------------------------------
  100. proc devstation_mappings {} {
  101. global devstation
  102.     if { $devstation } {
  103.         .map  keyb0:5.down      "script:finishpart"
  104.         .map  keyb0:6.down      "script:switchviewers"
  105.         .map  keyb0:7.down      "script:fillboostercharges"
  106.         .map  keyb0:8.down      "script:clanenergy" 
  107.         .map  keyb0:3.down      "script:speedswitch"
  108.         .map  keyb0:f11.down    "script:/sys/servers/console.toggle"
  109.         .map  keyb0:c.down      "script:chapterselector"
  110.         .map  keyb0:9.down      "script:soundeditor"
  111.         .map  keyb0:p.down      "script:zeit"      
  112.         .map  keyb0:t.down      "script:zeitlupe"
  113.         .map  keyb0:z.down      "script:schnell"        
  114.         .map  keyb0:o.down      "script:visualisations"  
  115.         .map  keyb0:bs.down     "script:/sys/servers/comm.resetstats"
  116.         .map  keyb0:bs.up       "script:/sys/servers/comm.togglestats"
  117.         .map  keyb0:4.down      "script:/sys/servers/console.watch gfx*"
  118.         .map  keyb0:4.up        "script:/sys/servers/console.unwatch"
  119.     }
  120. }
  121.  
  122. #-------------------------------------------------------------------------------
  123. #   normale Move-(Flug-) Mappings
  124. #-------------------------------------------------------------------------------
  125. proc move_mappings {} {
  126.  
  127.     # Richtungen
  128.     .map keyb0:left.pressed     turn_left
  129.     .map keyb0:right.pressed    turn_right
  130.     .map keyb0:up.pressed       move_down
  131.     .map keyb0:down.pressed     move_up
  132.  
  133.     .map keyb0:a.pressed        turn_left
  134.     .map keyb0:d.pressed        turn_right
  135.     .map keyb0:w.pressed        move_down
  136.     .map keyb0:s.pressed        move_up
  137.  
  138.     .map relmouse0:-x           mouse_turn_left
  139.     .map relmouse0:+x           mouse_turn_right
  140.     .map relmouse0:-y           mouse_move_up
  141.     .map relmouse0:+y           mouse_move_down
  142.             
  143.     .map joy0:-x                turn_left
  144.     .map joy0:+x                turn_right
  145.     .map joy0:-y                move_down
  146.     .map joy0:+y                move_up
  147.  
  148.     .map joy0:-abtn.pressed     turn_left
  149.     .map joy0:+abtn.pressed     turn_right
  150.     .map joy0:-bbtn.pressed     move_down
  151.     .map joy0:+bbtn.pressed     move_up
  152.  
  153.     # Gas geben
  154.     .map keyb0:space.pressed        move_forward
  155.     .map joy0:btn3.pressed          move_forward
  156.     .map relmouse0:btn1.pressed     move_forward
  157.  
  158.     # Gas loslassen
  159.     .map keyb0:space.up             "script:resetboost"
  160.     .map joy0:btn3.up               "script:resetboost"
  161.     .map relmouse0:btn1.up          "script:resetboost"
  162. }
  163.  
  164. #-------------------------------------------------------------------------------
  165. #   normale Walk-Mappings
  166. #-------------------------------------------------------------------------------
  167. proc walk_mappings {} {
  168.  
  169.     # richtungen
  170.     .map keyb0:left.pressed    turn_left
  171.     .map keyb0:right.pressed   turn_right
  172.     .map keyb0:up.pressed      walk_forward
  173.     .map keyb0:down.pressed    walk_back
  174.  
  175.     .map keyb0:a.pressed       turn_left
  176.     .map keyb0:d.pressed       turn_right
  177.     .map keyb0:w.pressed       walk_forward
  178.     .map keyb0:s.pressed       walk_back
  179.  
  180.     .map joy0:-x               turn_left
  181.     .map joy0:+x               turn_right
  182.     .map joy0:+y               walk_back
  183.     .map joy0:-y               walk_forward
  184.  
  185.     .map joy0:-abtn.pressed    turn_left
  186.     .map joy0:+abtn.pressed    turn_right
  187.     .map joy0:+bbtn.pressed    walk_back
  188.     .map joy0:-bbtn.pressed    walk_forward
  189.  
  190.     .map relmouse0:-x          mouse_turn_left
  191.     .map relmouse0:+x          mouse_turn_right
  192.  
  193.     # springen
  194.     .map keyb0:space.pressed   move_forward
  195.     .map joy0:btn3.down        move_forward
  196.     .map relmouse0:btn1.down   move_forward
  197.  
  198.     # Gas loslassen
  199.     .map keyb0:space.up        "script:resetboost"
  200.     .map joy0:btn3.up          "script:resetboost"
  201.     .map relmouse0:btn1.down   "script:resetboost"
  202.  
  203.     # vertical camera freelook
  204.     .map relmouse0:-y               mouse_viewer_lookup
  205.     .map relmouse0:+y               mouse_viewer_lookdown
  206. }
  207.  
  208. #-------------------------------------------------------------------------------
  209. #   Trade Mappings, Mappings fuer Trader, Presse, Storage.
  210. #-------------------------------------------------------------------------------
  211. proc trade_mappings {} {
  212.  
  213.     .map  keyb0:esc.down        menu_cancel
  214.     .map  joy0:btn1.down        menu_cancel
  215.     .map  relmouse0:btn1.down   menu_cancel
  216.     .map  relmouse0:btn2.down   menu_cancel
  217.     
  218.     .map  keyb0:return.down     menu_select
  219.     .map  joy0:btn0.down        menu_select
  220.     .map  relmouse0:btn0.down   menu_select
  221.  
  222.     .map  keyb0:shift.down      menu_throwaway
  223.     .map  joy0:btn3.down        menu_throwaway
  224.  
  225.     .map  keyb0:down.down       menu_back
  226.     .map  joy0:+ybtn.down       menu_back
  227.     .map  joy0:+bbtn.down       menu_back
  228.  
  229.     .map  keyb0:right.down      menu_next
  230.     .map  keyb0:d.down          menu_next
  231.     .map  joy0:+xbtn.down       menu_next
  232.     .map  joy0:+abtn.down       menu_next
  233.     .map  relmouse0:-zbtn.down  menu_next
  234.  
  235.     .map  keyb0:left.down       menu_prev
  236.     .map  keyb0:a.down          menu_prev
  237.     .map  joy0:-xbtn.down       menu_prev
  238.     .map  joy0:-abtn.down       menu_prev
  239.     .map  relmouse0:+zbtn.down  menu_prev
  240. }
  241.  
  242. #-------------------------------------------------------------------------------
  243. #   Oeffnet das Ingame-Menue
  244. #-------------------------------------------------------------------------------
  245. proc ingame_menu {} {
  246.  
  247.     if {[/sys/servers/menuhandler.creditsshown] == "false"} {
  248.         if {[/world.iscinematicrunning] == "false"} {
  249.             if {[/sys/servers/menuhandler.menuopen] == "false"} {
  250.             
  251.                 puts "Open ingame menu."
  252.         
  253.                 # open ingame menu
  254.                 if {[/world.isnetsession] == "true"} {
  255.                     /world.unsethandcontrol
  256.                     /sys/servers/menuhandler.openmenu "ingame_multiplayer"
  257.                 } else {
  258.                     /world.pausegame
  259.                     /sys/servers/menuhandler.openmenu "ingame_singleplayer"
  260.                 }
  261.                 /sys/servers/menuhandler.reset
  262.             }   
  263.         } elseif {[/world.iswarpmode] == "false"} {
  264.             puts "Skipping cinematic sequence."
  265.             /world.enterwarpmode
  266.         }
  267.     }
  268. }
  269.  
  270. #-------------------------------------------------------------------------------
  271. #   Ueberspringt die cutscene
  272. #-------------------------------------------------------------------------------
  273. proc skip_cinematic {} {
  274.     if {[/world.iswarpmode] == "false"} {
  275.         puts "Skipping cinematic sequence."
  276.         /world.enterwarpmode
  277.     }
  278. }
  279.  
  280. #-------------------------------------------------------------------------------
  281. #   Oeffnet Menu im Maennel-Stand
  282. #-------------------------------------------------------------------------------
  283. proc switchmode_stand {} {
  284.  
  285.     if {[/world.ispaused] == "false"} {
  286.         set me [[/world.getuserclan].getmaennel]
  287.         $me.setmenuopen true
  288.     }
  289. }
  290.  
  291. #-------------------------------------------------------------------------------
  292. #   FIXME: dieser ueble HACK sollte durch ein normales Input-Mapping ersetzt
  293. #   werden.
  294. #
  295. #   Darf nicht ausgefuehrt werden, wenn game paused ist!
  296. #-------------------------------------------------------------------------------
  297. proc resetboost {} {
  298.     if {[/world.ispaused] == "false"} {
  299.         set userclan [/world.getuserclan]
  300.         set maennel [$userclan.getmaennel]
  301.         $maennel.setboostpressed false
  302.     }
  303. }
  304.  
  305. # --------------------------------------------------------------------------------------
  306. #   Input group:    GUI Menu Keys
  307. #   Description:    The GUI Menu input mapping 
  308. #
  309. #   DOES NOT MODIFY CURRENT INPUT!!!
  310. # --------------------------------------------------------------------------------------
  311. proc guimenu_mappings {} {
  312.     
  313.     # Menu mapping are always active. (see Menu handler)
  314.     .map keyb0:return.up    "guimenu_action"
  315.     .map keyb0:esc.down     "guimenu_cancel"
  316.     .map keyb0:f1.down      "guimenu_cancel"
  317.     .map keyb0:up.down      "guimenu_up"
  318.     .map keyb0:down.down    "guimenu_down"
  319.     .map keyb0:left.down    "guimenu_left"
  320.     .map keyb0:right.down   "guimenu_right"        
  321.     
  322.     # the gamepads x/y pad (can be analog)
  323.     .map joy0:-xbtn.down    "guimenu_left"
  324.     .map joy0:+xbtn.down    "guimenu_right"
  325.     .map joy0:-ybtn.down    "guimenu_up"
  326.     .map joy0:+ybtn.down    "guimenu_down"
  327.  
  328.     .map joy0:-zbtn.down    "guimenu_left"
  329.     .map joy0:+zbtn.down    "guimenu_right"
  330.     .map joy0:-rbtn.down    "guimenu_up"
  331.     .map joy0:+rbtn.down    "guimenu_down"
  332.    
  333.     .map joy0:btn0.up       "guimenu_action"
  334.     .map joy0:btn2.up       "guimenu_cancel"
  335.     
  336.     # these are the digital pad on analog/digital gamepads
  337.     .map joy0:-abtn.down    "guimenu_left"
  338.     .map joy0:+abtn.down    "guimenu_right"
  339.     .map joy0:-bbtn.down    "guimenu_up"
  340.     .map joy0:+bbtn.down    "guimenu_down"
  341. }
  342.  
  343. #-------------------------------------------------------------------------------
  344. #   Leave a possessed vehicle
  345. #-------------------------------------------------------------------------------
  346. proc escape_possessingvehicle {} {
  347.  
  348.     if {[/world.ispaused] != "true"} {
  349.         if {[/world.fastpossessactive] != "false"} {
  350.             set me [[/world.getuserclan].getmaennel]
  351.             if {"null" != $me} {
  352.                 set old [psel]
  353.                 if {"null" != [/world.getviewercarrier]} {                
  354.                     sel [/world.getviewercarrier]
  355.                     leavevehicle
  356.                     sel $old
  357.                 }
  358.                 $me.setpossessingvehicle false
  359.             }
  360.         }
  361.     }
  362. }
  363.  
  364. #-------------------------------------------------------------------------------
  365. #   Leave a possessed building.
  366. #-------------------------------------------------------------------------------
  367. proc escape_possessingbuilding {} {
  368.  
  369.     if {[/world.ispaused] != "true"} {
  370.         if {[/world.fastpossessactive] != "false"} {
  371.     
  372.             set old [psel]
  373.             sel [/world.getviewercarrier]
  374.             leavevehicle
  375.             sel $old
  376.         
  377.             set me [[/world.getuserclan].getmaennel]
  378.             $me.setpossessingbuilding false
  379.         }
  380.     }
  381. }
  382.  
  383. #-------------------------------------------------------------------------------
  384. #  Escape hit while maennel menu open
  385. #-------------------------------------------------------------------------------
  386. proc escape_walkmenu {} {
  387.  
  388.     if {[/world.ispaused] == "false"} {
  389.     
  390.         # close artefact menu. set force cancel flag
  391.         set me [[/world.getuserclan].getmaennel]
  392.         $me.setcancelmenuaction true
  393.         
  394.         # open ingame menu
  395.         ingame_menu
  396.     }
  397. }
  398.  
  399. #-------------------------------------------------------------------------------
  400. #  Escape hit while using artefact.
  401. #-------------------------------------------------------------------------------
  402. proc escape_useartefactwalk {} {
  403.  
  404.     if {[/world.ispaused] == "false"} {
  405.  
  406.         # cancel build action. if anytime cancel build will end in menu state,
  407.         # also cancel menu action, OTHERWISE NOT!
  408.         set me [[/world.getuserclan].getmaennel]
  409.         $me.setcancelbuildaction true
  410.     
  411.         # open ingame menu
  412.         ingame_menu
  413.     }
  414. }
  415.  
  416. #-------------------------------------------------------------------------------
  417. #   Die Kamera-Input-Mappings
  418. #-------------------------------------------------------------------------------
  419. proc camera_mappings {} {
  420.  
  421.     .map  keyb0:bs.down         viewer_cycle
  422.     .map  joy0:btn5.down        viewer_cycle
  423.  
  424.     # nfreeviewer mappings
  425.     .map keyb0:up.pressed           viewer_forward
  426.     .map keyb0:w.pressed            viewer_forward
  427.     .map keyb0:down.pressed         viewer_backward
  428.     .map keyb0:s.pressed            viewer_backward
  429.     .map keyb0:left.pressed         viewer_strafeleft
  430.     .map keyb0:a.pressed            viewer_strafeleft
  431.     .map keyb0:right.pressed        viewer_straferight
  432.     .map keyb0:d.pressed            viewer_straferight
  433.     .map keyb0:space.down           viewer_reset
  434.     .map relmouse0:-x               viewer_left
  435.     .map relmouse0:+x               viewer_right
  436.     .map relmouse0:+y               viewer_down
  437.     .map relmouse0:-y               viewer_up
  438.     .map relmouse0:btn0.pressed     viewer_backward
  439.     .map relmouse0:btn1.pressed     viewer_forward
  440.  
  441.     .map joy0:btn0.pressed      viewer_forward
  442.     .map joy0:btn1.pressed      viewer_backward
  443.  
  444.     .map joy0:-x                viewer_left
  445.     .map joy0:+x                viewer_right
  446.     .map joy0:+y                viewer_down
  447.     .map joy0:-y                viewer_up
  448.  
  449.     # free look mappings
  450.     .map joy0:-z                viewer_lookleft
  451.     .map joy0:+z                viewer_lookright
  452.     .map joy0:-r                viewer_lookup
  453.     .map joy0:+r                viewer_lookdown      
  454.  
  455.     .map keyb0:j.pressed        viewer_lookleft
  456.     .map keyb0:l.pressed        viewer_lookright
  457.     .map keyb0:i.pressed        viewer_lookup
  458.     .map keyb0:k.pressed        viewer_lookdown
  459. }
  460.  
  461.  
  462.  
  463. #==========================================================================
  464. #
  465. #   HIER DIE INPUT MAPPINGS
  466. #
  467. #==========================================================================
  468.  
  469. #--------------------------------------------------------------------------
  470. # Initiales Input-Mapping beim Spielstart
  471. #
  472. #   *** ACHTUNG ***
  473. #
  474. #   NICHT DIE DEVSTATION MAPPINGS EINFACH HIER REIN!
  475. #--------------------------------------------------------------------------
  476. proc input_guimenu {} {
  477.     set cwd [psel]
  478.     sel /sys/servers/input
  479.     .beginmap
  480.     guimenu_mappings
  481.     camera_mappings
  482.     .endmap
  483.     sel $cwd
  484. }
  485.  
  486. #--------------------------------------------------------------------------
  487. # Mapping waehrend cinematic
  488. #--------------------------------------------------------------------------
  489. proc input_cutscene {} {
  490.     set cwd [psel]
  491.     sel /sys/servers/input
  492.     .beginmap
  493.     .map  keyb0:esc.down        "script:skip_cinematic"
  494.     .map  joy0:btn5.down        "script:skip_cinematic"
  495.     .endmap
  496.     sel $cwd
  497. }
  498.  
  499. #--------------------------------------------------------------------------
  500. # GAMEEND: Spieler bzw sein Lighthouse ist tot. Auf Tastendruck wird
  501. # die 'loadsavepoint' Routine aus der 'scriptlib.tcl' aufgerufen
  502. #--------------------------------------------------------------------------
  503. proc input_gameend {} {
  504.  
  505.         set cwd [psel]
  506.         sel /sys/servers/input
  507.             .beginmap
  508.  
  509. # FIXME: global_mappings enthaelt Esc->Open Ingame Menu, deshalb auskommentiert
  510. #            global_mappings
  511.             devstation_mappings
  512.             guimenu_mappings
  513.             .endmap
  514.         sel ..
  515.     
  516. }
  517.  
  518. #--------------------------------------------------------------------------
  519. # NORMAL: John fliegt herum
  520. #--------------------------------------------------------------------------
  521. proc input_normal {} {
  522.  
  523.     set cwd [psel]
  524.         sel /sys/servers/input
  525.         .beginmap
  526.         
  527.         global_mappings
  528.         devstation_mappings
  529.         move_mappings
  530.         camera_mappings
  531.         guimenu_mappings
  532.         
  533.         .map keyb0:f1.down      "script:ingame_menu"    
  534.         .map joy0:btn2.down     "script:ingame_menu"
  535.     
  536.         .endmap
  537.     sel $cwd    
  538. }
  539.  
  540. #-------------------------------------------------------------------------------
  541. # LANDEN   Uebergangs-Zustand
  542. #-------------------------------------------------------------------------------
  543. proc input_landen {} {
  544.     set cwd [psel]
  545.         sel /sys/servers/input
  546.         .beginmap
  547.         global_mappings
  548.         devstation_mappings
  549.         walk_mappings
  550.         guimenu_mappings
  551.  
  552.         .map keyb0:f1.down      "script:ingame_menu"    
  553.         .map joy0:btn2.down     "script:ingame_menu"    
  554.  
  555.         .endmap
  556.     sel $cwd        
  557. }
  558.  
  559. #-------------------------------------------------------------------------------
  560. # LANDEN2   sanfterer Landezustand
  561. #-------------------------------------------------------------------------------
  562. proc input_landen2 {} {
  563.  
  564.     set cwd [psel]
  565.         sel /sys/servers/input
  566.         .beginmap
  567.         global_mappings
  568.         devstation_mappings
  569.         walk_mappings
  570.         guimenu_mappings
  571.  
  572.         .map keyb0:f1.down      "script:ingame_menu"    
  573.         .map joy0:btn2.down     "script:ingame_menu"
  574.     
  575.         .endmap
  576.     sel $cwd       
  577. }
  578.  
  579. #-------------------------------------------------------------------------------
  580. # SWIMMING      einfach in der Luft rumhaengen
  581. #-------------------------------------------------------------------------------
  582. proc input_swimming {} {
  583.  
  584.     set cwd [psel]
  585.         sel /sys/servers/input
  586.         .beginmap
  587.         
  588.         global_mappings
  589.         devstation_mappings
  590.         move_mappings
  591.         camera_mappings
  592.         guimenu_mappings
  593.  
  594.         .map keyb0:f1.down      "script:ingame_menu"    
  595.         .map joy0:btn2.down     "script:ingame_menu"
  596.     
  597.         # johnfall(stop) ueberlagern
  598.         .map  keyb0:down.down       "script:johnfall"
  599.         .map  keyb0:down.up         "script:johnfallstop"
  600.         .map  joy0:+ybtn.down       "script:johnfall"
  601.         .map  joy0:+ybtn.up         "script:johnfallstop"
  602.         .map  joy0:+bbtn.down       "script:johnfall"
  603.         .map  joy0:+bbtn.up         "script:johnfallstop"
  604.  
  605.         .endmap
  606.     sel $cwd    
  607. }
  608.  
  609. #-------------------------------------------------------------------------------
  610. # RUN   Input beim Rennen (Stehen ist extra!)
  611. #-------------------------------------------------------------------------------
  612. proc input_run {} {
  613.  
  614.     set cwd [psel]
  615.         sel /sys/servers/input
  616.         .beginmap
  617.         
  618.         global_mappings
  619.         devstation_mappings
  620.         walk_mappings
  621.         camera_mappings
  622.         guimenu_mappings
  623.  
  624.         .map keyb0:f1.down      "script:ingame_menu"    
  625.         .map joy0:btn2.down     "script:ingame_menu"
  626.     
  627.         .map  keyb0:ctrl.down       firespell
  628.         .map  joy0:btn4.down        firespell
  629.         .map  relmouse0:btn2.down   firespell
  630.  
  631.         .map  keyb0:tab.down        "script:cycle_airplanes" 
  632.         .map  joy0:btn6.down        "script:cycle_airplanes" 
  633.         .map  joy0:btn8.down        "script:cycle_airplanes" 
  634.  
  635.         .endmap
  636.     sel $cwd
  637.    
  638. }
  639.  
  640. #-------------------------------------------------------------------------------
  641. # RUNSTOP   Uebergangs-Zustand
  642. #-------------------------------------------------------------------------------
  643. proc input_runstop {} {
  644.  
  645.     set cwd [psel]
  646.         sel /sys/servers/input
  647.         .beginmap
  648.         global_mappings
  649.         devstation_mappings
  650.         guimenu_mappings
  651.  
  652.         .map keyb0:f1.down      "script:ingame_menu"    
  653.         .map joy0:btn2.down     "script:ingame_menu"
  654.     
  655.         # braucht's zum uebergang
  656.         walk_mappings
  657.  
  658.         .map  keyb0:tab.down        "script:cycle_airplanes" 
  659.         .map  joy0:btn6.down        "script:cycle_airplanes" 
  660.         .map  joy0:btn8.down        "script:cycle_airplanes" 
  661.         
  662.         .endmap
  663.     sel $cwd        
  664. }
  665.  
  666. #-------------------------------------------------------------------------------
  667. #   input im stehen
  668. #-------------------------------------------------------------------------------
  669. proc input_stand {} {
  670.     
  671.     set cwd [psel]
  672.         sel /sys/servers/input
  673.         .beginmap
  674.         
  675.         global_mappings
  676.         devstation_mappings
  677.         walk_mappings
  678.         camera_mappings
  679.         guimenu_mappings
  680.  
  681.         .map keyb0:f1.down      "script:ingame_menu"    
  682.         .map joy0:btn2.down     "script:ingame_menu"
  683.     
  684.         .map  keyb0:ctrl.down       firespell
  685.         .map  joy0:btn4.down        firespell
  686.         .map  relmouse0:btn2.down   firespell    
  687.  
  688.         .map  joy0:btn0.down        "script:switchmode_stand"
  689.         .map  keyb0:return.down     "script:switchmode_stand"
  690.         .map  relmouse0:btn0.down   "script:switchmode_stand"
  691.     
  692.         .map  keyb0:tab.down        "script:cycle_airplanes" 
  693.         .map  joy0:btn6.down        "script:cycle_airplanes" 
  694.         .map  joy0:btn8.down        "script:cycle_airplanes" 
  695.     
  696.         .endmap
  697.     sel $cwd
  698.     
  699. }
  700.  
  701. #-------------------------------------------------------------------------------
  702. # POSSESS
  703. #-------------------------------------------------------------------------------
  704. proc input_possess {} {
  705.  
  706.     set cwd [psel]
  707.         sel /sys/servers/input
  708.         .beginmap
  709.         
  710.         global_mappings
  711.         devstation_mappings
  712.         camera_mappings
  713.         guimenu_mappings
  714.  
  715.         .map keyb0:f1.down      "script:ingame_menu"    
  716.         .map joy0:btn2.down     "script:ingame_menu"
  717.  
  718.         .map  keyb0:return.down     menu_select
  719.         .map  joy0:btn0.down        menu_select
  720.         .map  relmouse0:btn0.down   menu_select
  721.  
  722.         .map  keyb0:esc.down        menu_cancel
  723.         .map  joy0:btn1.down        menu_cancel
  724.         .map  relmouse0:btn1.down   menu_cancel
  725.         .map  relmouse0:btn2.down   menu_cancel
  726.  
  727.         .map  keyb0:right.down      menu_next
  728.         .map  keyb0:d.down          menu_next
  729.         .map  joy0:+abtn.down       menu_next
  730.         .map  joy0:+xbtn.down       menu_next
  731.         .map  relmouse0:-zbtn.down  menu_next
  732.  
  733.         .map  keyb0:left.down       menu_prev
  734.         .map  keyb0:a.down          menu_prev
  735.         .map  joy0:-abtn.down       menu_prev
  736.         .map  joy0:-xbtn.down       menu_prev
  737.         .map  relmouse0:+zbtn.down  menu_prev
  738.  
  739.         .endmap
  740.     sel $cwd
  741.     
  742. }
  743.  
  744. #-------------------------------------------------------------------------------
  745. # POSSESSINGVEHICLE     Steuern eines vehicles
  746. #-------------------------------------------------------------------------------
  747. proc input_possessingvehicle {} {
  748.  
  749.     /game/handler/feedback.registertakencontrol
  750.     set cwd [psel]
  751.         sel /sys/servers/input
  752.         .beginmap
  753.         
  754.         global_mappings
  755.         devstation_mappings
  756.         move_mappings
  757.         camera_mappings
  758.         guimenu_mappings
  759.  
  760.         .map keyb0:f1.down      "script:ingame_menu"    
  761.         .map joy0:btn2.down     "script:ingame_menu"
  762.  
  763.         .map  keyb0:ctrl.pressed        fire
  764.         .map  keyb0:ctrl.up             firestop
  765.         .map  joy0:btn0.pressed         fire
  766.         .map  joy0:btn0.up              firestop
  767.         .map  relmouse0:btn0.pressed    fire
  768.         .map  relmouse0:btn0.up         firestop
  769.  
  770.         .map  keyb0:esc.down            "script:escape_possessingvehicle"
  771.         .map  joy0:btn1.down            "script:escape_possessingvehicle"
  772.         .map  relmouse0:btn2.down       "script:escape_possessingvehicle"
  773.  
  774.         .map  keyb0:space.double        turbomove_forward
  775.         .map  joy0:btn3.double          turbomove_forward
  776.         .map  relmouse0:btn1.double     turbomove_forward
  777.  
  778.         .map  keyb0:tab.down        "script:cycle_airplanes" 
  779.         .map  joy0:btn6.down        "script:cycle_airplanes" 
  780.         .map  joy0:btn8.down        "script:cycle_airplanes" 
  781.  
  782.         .endmap
  783.     sel $cwd
  784. }
  785.  
  786. #-------------------------------------------------------------------------------
  787. # POSSESSINGBUILDING     Steuern eines Gebaeudes
  788. #-------------------------------------------------------------------------------
  789. proc input_possessingbuilding {} {
  790.  
  791.     /game/handler/feedback.registertakencontrol
  792.     set cwd [psel]
  793.         sel /sys/servers/input
  794.         .beginmap
  795.         
  796.         global_mappings
  797.         devstation_mappings
  798.         move_mappings
  799.         guimenu_mappings
  800.  
  801.         .map keyb0:f1.down      "script:ingame_menu"    
  802.         .map joy0:btn2.down     "script:ingame_menu"
  803.  
  804.         .map  keyb0:ctrl.pressed        fire
  805.         .map  keyb0:ctrl.up             firestop
  806.         .map  joy0:btn0.pressed         fire
  807.         .map  joy0:btn0.up              firestop
  808.         .map  relmouse0:btn0.pressed    fire
  809.         .map  relmouse0:btn0.up         firestop
  810.  
  811.         # hoffe mal, das klappt mit getrennt up, down und pressed
  812.         .map  keyb0:return.down     island_toggle
  813.         .map  joy0:btn0.down        island_toggle
  814.         .map  relmouse0:btn0.down   island_toggle
  815.  
  816.         .map  keyb0:esc.down        "script:escape_possessingbuilding"
  817.         .map  joy0:btn1.down        "script:escape_possessingbuilding"
  818.         .map  relmouse0:btn1.down   "script:escape_possessingbuilding"
  819.         .map  relmouse0:btn2.down   "script:escape_possessingbuilding"
  820.  
  821.         .map  keyb0:right.down      searchisland_right
  822.         .map  keyb0:d.down          searchisland_right
  823.         .map  joy0:+xbtn.down       searchisland_right
  824.         .map  joy0:+abtn.down       searchisland_right
  825.         .map  relmouse0:-zbtn.down  searchisland_right
  826.  
  827.         .map  keyb0:left.down       searchisland_left
  828.         .map  keyb0:a.down          searchisland_left
  829.         .map  joy0:-xbtn.down       searchisland_left
  830.         .map  joy0:-abtn.down       searchisland_left
  831.         .map  relmouse0:+zbtn.down  searchisland_left
  832.  
  833.         .map  keyb0:tab.down       "script:cycle_airplanes" 
  834.         .map  joy0:btn6.down        "script:cycle_airplanes" 
  835.         .map  joy0:btn8.down        "script:cycle_airplanes" 
  836.  
  837.         .endmap
  838.     sel $cwd
  839. }
  840.  
  841. #-------------------------------------------------------------------------------
  842. # WALKMENU  Menue offen und muss gesteuert werden
  843. #-------------------------------------------------------------------------------
  844. proc input_walkmenu {} {
  845.  
  846.     #/world.storeinputmapping input_walkmenu
  847.     set cwd [psel]
  848.         sel /sys/servers/input
  849.         .beginmap
  850.         
  851.         global_mappings
  852.         devstation_mappings
  853.         guimenu_mappings
  854.  
  855.         .map keyb0:f1.down      "script:ingame_menu"    
  856.         .map joy0:btn2.down     "script:ingame_menu"
  857.         
  858.         .map  keyb0:f1.down         escape_walkmenu
  859.         .map  joy0:btn5.down        escape_walkmenu
  860.  
  861.         .map  keyb0:esc.down        menu_cancel
  862.         .map  joy0:btn1.down        menu_cancel
  863.         .map  relmouse0:btn1.down   menu_cancel
  864.         .map  relmouse0:btn2.down   menu_cancel
  865.                 
  866.         .map  keyb0:return.down     menu_select
  867.         .map  joy0:btn0.down        menu_select
  868.         .map  relmouse0:btn0.down   menu_select
  869.  
  870.         .map  keyb0:delete.down     menu_throwaway
  871.         .map  keyb0:shift.down      menu_throwaway
  872.         .map  joy0:btn3.down        menu_throwaway
  873.  
  874.         .map  keyb0:right.down      menu_next
  875.         .map  keyb0:d.down          menu_next
  876.         .map  joy0:+xbtn.down       menu_next
  877.         .map  joy0:+abtn.down       menu_next
  878.         .map  relmouse0:-zbtn.down  menu_next
  879.  
  880.         .map  keyb0:left.down       menu_prev
  881.         .map  keyb0:a.down          menu_prev
  882.         .map  joy0:-xbtn.down       menu_prev
  883.         .map  joy0:-abtn.down       menu_prev
  884.         .map  relmouse0:+zbtn.down  menu_prev
  885.  
  886.         .endmap
  887.     sel $cwd   
  888. }
  889.  
  890. #-------------------------------------------------------------------------------
  891. # USEARTEFACTWALK
  892. #-------------------------------------------------------------------------------
  893. proc input_useartefactwalk {} {
  894.  
  895.     set cwd [psel]
  896.         sel /sys/servers/input
  897.         .beginmap
  898.         
  899.         global_mappings
  900.         devstation_mappings
  901.         camera_mappings
  902.         guimenu_mappings
  903.  
  904.         .map keyb0:f1.down      "script:ingame_menu"    
  905.         .map joy0:btn2.down     "script:ingame_menu"
  906.  
  907.         .map  keyb0:f1.down         script:escape_useartefactwalk
  908.         .map  joy0:btn5.down        script:escape_useartefactwalk
  909.  
  910.         .map keyb0:esc.down         menu_cancel
  911.         .map joy0:btn1.down         menu_cancel
  912.         .map  relmouse0:btn1.down   menu_cancel
  913.         .map relmouse0:btn2.down    menu_cancel
  914.  
  915.         .map keyb0:return.down      menu_select
  916.         .map joy0:btn0.down         menu_select
  917.         .map relmouse0:btn0.down    menu_select
  918.  
  919.         .map  keyb0:right.down      turn_right
  920.         .map  keyb0:d.down          turn_right
  921.         .map  joy0:+xbtn.down       turn_right
  922.         .map  joy0:+abtn.down       turn_right
  923.         .map  relmouse0:-zbtn.down  turn_right
  924.  
  925.         .map  keyb0:left.down       turn_left
  926.         .map  keyb0:a.down          turn_left
  927.         .map  joy0:-xbtn.down       turn_left
  928.         .map  joy0:-abtn.down       turn_left
  929.         .map  relmouse0:+zbtn.down  turn_left
  930.  
  931.         .endmap
  932.     sel $cwd    
  933. }
  934.  
  935. #-------------------------------------------------------------------------------
  936. # CREATEBUILDINGWALK
  937. #-------------------------------------------------------------------------------
  938. proc input_createbuildingwalk {} {
  939.  
  940.     set cwd [psel]
  941.         sel /sys/servers/input
  942.         .beginmap
  943.         global_mappings
  944.         devstation_mappings
  945.         guimenu_mappings
  946.  
  947.         .map keyb0:f1.down      "script:ingame_menu"    
  948.         .map joy0:btn2.down     "script:ingame_menu"
  949.  
  950.         .endmap
  951.     sel $cwd       
  952. }
  953.  
  954. #-------------------------------------------------------------------------------
  955. # TRADEMENUWALK
  956. #-------------------------------------------------------------------------------
  957. proc input_trademenuwalk {} {
  958.  
  959.     set cwd [psel]
  960.         sel /sys/servers/input
  961.         .beginmap
  962.         
  963.         global_mappings
  964.         devstation_mappings
  965.         guimenu_mappings
  966.         trade_mappings
  967.  
  968.         .map keyb0:f1.down      "script:ingame_menu"    
  969.         .map joy0:btn2.down     "script:ingame_menu"
  970.  
  971.         .endmap
  972.     sel $cwd
  973. }
  974.  
  975. #-------------------------------------------------------------------------------
  976. # STORAGEMENUWALK
  977. #-------------------------------------------------------------------------------
  978. proc input_storagemenuwalk {} {
  979.     set cwd [psel]
  980.         sel /sys/servers/input
  981.         .beginmap
  982.         
  983.         global_mappings
  984.         devstation_mappings
  985.         guimenu_mappings
  986.         trade_mappings
  987.  
  988.         .map keyb0:f1.down      "script:ingame_menu"    
  989.         .map joy0:btn2.down     "script:ingame_menu"
  990.  
  991.         .endmap
  992.     sel $cwd   
  993. }
  994.  
  995. #-------------------------------------------------------------------------------
  996. # TRANSFORMMENUWALK
  997. #-------------------------------------------------------------------------------
  998. proc input_transformmenuwalk {} {
  999.     set cwd [psel]
  1000.         sel /sys/servers/input
  1001.         .beginmap
  1002.         
  1003.         global_mappings
  1004.         devstation_mappings
  1005.         guimenu_mappings
  1006.         trade_mappings
  1007.  
  1008.         .map keyb0:f1.down      "script:ingame_menu"    
  1009.         .map joy0:btn2.down     "script:ingame_menu"
  1010.  
  1011.         .endmap
  1012.     sel $cwd  
  1013. }
  1014.  
  1015. #-------------------------------------------------------------------------------
  1016. # CRASH
  1017. #-------------------------------------------------------------------------------
  1018. proc input_crash {} {
  1019.     set cwd [psel]
  1020.         sel /sys/servers/input
  1021.         .beginmap
  1022.         global_mappings
  1023.         devstation_mappings
  1024.         guimenu_mappings
  1025.  
  1026.         .map keyb0:f1.down      "script:ingame_menu"    
  1027.         .map joy0:btn2.down     "script:ingame_menu"
  1028.  
  1029.         # fuer "Weiterfliegen"
  1030.         move_mappings
  1031.         
  1032.         .endmap
  1033.     sel $cwd       
  1034. }
  1035.  
  1036. #-------------------------------------------------------------------------------
  1037. # TUTORIALSTART
  1038. #-------------------------------------------------------------------------------
  1039. proc input_tutorialstart {} {
  1040.     set cwd [psel]
  1041.         sel /sys/servers/input
  1042.         .beginmap
  1043.         global_mappings
  1044.         devstation_mappings
  1045.         .endmap
  1046.     sel $cwd       
  1047. }
  1048.  
  1049. #-------------------------------------------------------------------------------
  1050. # TURBO
  1051. #-------------------------------------------------------------------------------
  1052. proc input_turbo {} {
  1053.     set cwd [psel]
  1054.         sel /sys/servers/input
  1055.         .beginmap
  1056.         global_mappings
  1057.         devstation_mappings
  1058.         guimenu_mappings
  1059.  
  1060.         .map keyb0:f1.down      "script:ingame_menu"    
  1061.         .map joy0:btn2.down     "script:ingame_menu"
  1062.  
  1063.         .map  keyb0:ctrl.up         "script:resetboost"
  1064.         .map  joy0:btn3.up          "script:resetboost"
  1065.  
  1066.         .endmap
  1067.     sel $cwd       
  1068. }
  1069.  
  1070. #-------------------------------------------------------------------------------
  1071. # JUMP from run
  1072. #-------------------------------------------------------------------------------
  1073. proc input_jumprun {} {
  1074.     set cwd [psel]
  1075.         sel /sys/servers/input
  1076.         .beginmap
  1077.         global_mappings
  1078.         devstation_mappings
  1079.         guimenu_mappings
  1080.  
  1081.         .map keyb0:f1.down      "script:ingame_menu"    
  1082.         .map joy0:btn2.down     "script:ingame_menu"
  1083.  
  1084.         # walkmappings fuers weiterlaufen
  1085.         walk_mappings
  1086.         .map  joy0:btn3.pressed         move_forward
  1087.         .map  relmouse0:btn1.pressed    move_forward
  1088.  
  1089.         .endmap
  1090.     sel $cwd       
  1091. }
  1092.  
  1093. #-------------------------------------------------------------------------------
  1094. # JUMP from stand
  1095. #-------------------------------------------------------------------------------
  1096. proc input_jumpstand {} {
  1097.     set cwd [psel]
  1098.         sel /sys/servers/input
  1099.         .beginmap
  1100.         global_mappings
  1101.         devstation_mappings
  1102.         guimenu_mappings
  1103.  
  1104.         .map keyb0:f1.down      "script:ingame_menu"    
  1105.         .map joy0:btn2.down     "script:ingame_menu"
  1106.  
  1107.         # fuers weiterlaufen
  1108.         walk_mappings
  1109.         .map  joy0:btn3.pressed         move_forward
  1110.         .map  relmouse0:btn1.pressed    move_forward
  1111.         
  1112.         .endmap
  1113.     sel $cwd       
  1114. }
  1115.  
  1116. #-------------------------------------------------------------------------------
  1117. # FALLING
  1118. #-------------------------------------------------------------------------------
  1119. proc input_falling {} {
  1120.     set cwd [psel]
  1121.         sel /sys/servers/input
  1122.         .beginmap
  1123.         global_mappings
  1124.         devstation_mappings
  1125.         guimenu_mappings
  1126.  
  1127.         .map keyb0:f1.down      "script:ingame_menu"    
  1128.         .map joy0:btn2.down     "script:ingame_menu"
  1129.  
  1130.         # fuers weiterlaufen
  1131.         walk_mappings
  1132.  
  1133.         .endmap
  1134.     sel $cwd        
  1135. }
  1136.  
  1137. #-------------------------------------------------------------------------------
  1138. # CINEMATIC
  1139. #-------------------------------------------------------------------------------
  1140. proc input_cinematic {} {
  1141.     set cwd [psel]
  1142.         sel /sys/servers/input
  1143.         .beginmap
  1144.         global_mappings
  1145.         devstation_mappings
  1146.         camera_mappings
  1147.         guimenu_mappings
  1148.         .endmap
  1149.     sel $cwd    
  1150. }
  1151.  
  1152. # ---
  1153. # EOF
  1154.