home *** CD-ROM | disk | FTP | other *** search
/ CyberMycha 2006 April / SGP.iso / dema / Keepsake-Demo-en-li-v1.0.exe / res / interface / common / main.tcl < prev   
Text File  |  2005-11-07  |  8KB  |  358 lines

  1. source "../res/init.tcl"
  2.  
  3. source "../res/interface/common/itf.sidebar.tcl"
  4. source "../res/interface/common/itf.inv.tcl"
  5. source "../res/interface/common/itf.vision.tcl"
  6. source "../res/interface/common/itf.option.tcl"
  7. source "../res/interface/common/itf.quit.tcl"
  8. source "../res/interface/common/itf.desc.tcl"
  9. source "../res/interface/common/iq.tcl"
  10.  
  11. set ::itfTalk 0
  12. set ::itfSkip ""
  13.  
  14. namespace eval itf {}
  15.  
  16. proc MainEnableTalk {} {
  17.     hMainUpdate
  18. }
  19.  
  20. proc MainDisableTalk {} {
  21.     iactive interface.talk false
  22.     ozIMenu disable talk
  23. }
  24.  
  25. proc MainEnableSidebar {} {
  26.     iactive interface.sidebar true
  27.     ozIMenu enable menu
  28. }
  29.  
  30. proc MainDisableSidebar {} {
  31.     iactive interface.sidebar false
  32.     ozIMenu disable menu
  33. }
  34.  
  35. proc MainEnableHelp {} {
  36.     iactive interface.help  true
  37.     ozIMenu enable help
  38. }    
  39.  
  40. proc LoadInterface {} {
  41.     set ::itf::sidebar [new ::itf'sidebar]
  42.     oz'widget::property $::itf::sidebar -pos 0 0.208333 -alpha 0
  43.     oz'widget::child [FOREGROUNDWIDGET] $::itf::sidebar -1
  44.  
  45.     if {[ozGet "puzzleMidgard"] == "complete"} {
  46.         set ::itf::inventory [new ::itf'inventory 2]
  47.     } else {
  48.         set ::itf::inventory [new ::itf'inventory 1]
  49.     }
  50.     oz'widget::property $::itf::inventory -pos 0 0.166666 -alpha 0
  51.     oz'widget::child [FOREGROUNDWIDGET] $::itf::inventory -0.5
  52.  
  53.     set ::itf::vision [new ::itf'vision]
  54.     oz'widget::property $::itf::vision -pos 0 0.166666 -alpha 0
  55.     oz'widget::child [FOREGROUNDWIDGET] $::itf::vision -0.5
  56.     
  57.     set ::itf::quit [new ::itf'quit]
  58.     oz'widget::property $::itf::quit -pos 0.1875 0.384114 -alpha 0
  59.     oz'widget::child [FOREGROUNDWIDGET] $::itf::quit -0.5
  60.  
  61.     set ::itf::desc [new ::itf'desc]
  62.     oz'widget::property $::itf::desc -pos 0.21875 0.250000 -alpha 0
  63.     oz'widget::child [FOREGROUNDWIDGET] $::itf::desc -0.875
  64.  
  65.     set ::itf::zoom [new ::itf'zoom]
  66.     oz'widget::property $::itf::zoom -pos 0.1875 0 -alpha 0
  67.     oz'widget::child [FOREGROUNDWIDGET] $::itf::zoom -1
  68.  
  69.     set ::itf::option [new ::itfoption]
  70.     oz'widget::property $::itf::option -pos 0.058594 0.542969 -alpha 0
  71.     oz'widget::child [FOREGROUNDWIDGET] $::itf::option -1
  72. }    
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79. proc hMainUpdate { } {
  80.   if { [ozIConv nbChoice] } {
  81.       if {[ozGet "interface.backevent"] == ""} {
  82.           iactive interface.talk true
  83.           ozIMenu enable talk
  84.       }
  85.   } else {
  86.     iactive interface.talk false
  87.     ozIMenu disable talk
  88.   }
  89. }
  90.  
  91. proc hConvClose { } {
  92.   iactive interface.conv1 false
  93.   ozIConv disable conv1
  94.   iactive interface.conv2 false
  95.   ozIConv disable conv2
  96.   iactive interface.conv3 false
  97.   ozIConv disable conv3
  98. }    
  99.  
  100. proc hConvUpdate { } {
  101.   ozIConv update
  102.   set nb [ozIConv nbChoice]
  103.   switch -exact -- $nb {
  104.     0 {
  105.       hConvClose
  106.     }
  107.     1 { 
  108.       iactive interface.conv1 true 
  109.       ozIConv enable conv1
  110.       iactive interface.conv2 false
  111.       ozIConv disable conv2
  112.       iactive interface.conv3 false
  113.       ozIConv disable conv3
  114.     }
  115.     2 { 
  116.       iactive interface.conv1 true 
  117.       ozIConv enable conv1
  118.       iactive interface.conv2 true
  119.       ozIConv enable conv2
  120.       iactive interface.conv3 false
  121.       ozIConv disable conv3
  122.     }
  123.     default {
  124.       iactive interface.conv1 true 
  125.       ozIConv enable conv1
  126.       iactive interface.conv2 true
  127.       ozIConv enable conv2
  128.       iactive interface.conv3 true
  129.       ozIConv enable conv3
  130.     }
  131.   }
  132. }
  133.  
  134. proc hRemoveBack { } {
  135.   if { [ozGet "interface.backevent"] != "" } {
  136.     ozSet "interface.backevent" ""
  137.     iactive "interface.back" false
  138.     ozIMenu disable back
  139.   }
  140. }
  141.  
  142. proc hConvBackEvent { event } { 
  143.   ozSet "interface.backevent" $event
  144.   iactive "interface.back" true
  145.   ozIMenu enable back
  146. }
  147.  
  148. event "main" {
  149.   ibind interface.sidebar  3 0.062745 0.062745 0.062745
  150.   ibind interface.talk     3 0.125490 0.125490 0.125490
  151.   ibind interface.back     3 0.188235 0.188235 0.188235
  152.   ibind interface.conv1    3 0.250980 0.250980 0.250980
  153.   ibind interface.conv2    3 0.313725 0.313725 0.313725
  154.   ibind interface.conv3    3 0.376470 0.376470 0.376470
  155.   ibind interface.pause    3 0.439215 0.439215 0.439215
  156.   ibind interface.skip     3 0.501960 0.501960 0.501960
  157.   ibind interface.help     3 0.859375 0.859375 0.859375
  158.   
  159.   iactive interface.sidebar  false
  160.   ozIMenu disable menu
  161.   iactive interface.talk  false
  162.   ozIMenu disable talk
  163.   iactive interface.back  false
  164.   ozIMenu disable back
  165.   iactive interface.help  false
  166.   ozIMenu disable help
  167.   iactive interface.conv1 false
  168.   ozIConv disable conv1
  169.   iactive interface.conv2 false
  170.   ozIConv disable conv2
  171.   iactive interface.conv3 false
  172.   ozIConv disable conv3
  173.   iactive interface.pause true
  174.   ozITalk enable pause
  175.   iactive interface.skip  true
  176.   ozITalk enable skip
  177.  
  178.   ozIMenu fadein 1
  179. }
  180.  
  181. proc CloseAllInterface {} {
  182.     itf'sidebar::hide $::itf::sidebar
  183.     oz'widget::fadeto $::itf::desc 0
  184.  
  185.     menuOff
  186.  
  187.     MainEnableSidebar
  188.     MainEnableTalk
  189.     iactive interface.help true
  190.     ozIMenu enable help
  191. }
  192.  
  193. event "sidebar" {
  194.     PlaySound interface/switchClic
  195.     if [oz'widget::usable? $::itf::sidebar] {
  196.         itf'sidebar::hide $::itf::sidebar
  197.         menuOff
  198.  
  199.         MainEnableTalk
  200.     } else {
  201.         itf'sidebar::show $::itf::sidebar
  202.         menuOn
  203.     
  204.         MainDisableTalk
  205.  
  206.         oz'mouse::hook {
  207.             CloseAllInterface
  208.         }
  209.     }
  210. }
  211.  
  212. event "sidebarOver" {
  213.   ozIMenu over menu
  214. }
  215.  
  216.  
  217. event "talk" {
  218.   wizqConvRemove "clues"
  219.   oz'event {
  220.     ozIConv update
  221.     hConvUpdate
  222.     hMainUpdate
  223.   }
  224.   PlaySound interface/switchClic
  225.   if { [ozIConv isVisible] } {
  226.     wizqConvRemove "npc"
  227.     wizqConvClose
  228.     oz'event {
  229.       ozIConv update
  230.       hConvUpdate
  231.       hMainUpdate
  232.     }
  233.     wizqEnableMouse
  234.     oz'event {unfreezePlayer}
  235.    
  236.     iactive interface.help  true
  237.     ozIMenu enable help
  238.   } else {
  239.     if { [ozIConv nbChoice] } {
  240.       wizqConvOpen
  241.       iactive interface.help  true
  242.       ozIMenu enable talk
  243.       oz'event {
  244.           iactive interface.help  true
  245.           ozIMenu enable talk
  246.       }
  247.       iactive interface.help  false
  248.       ozIMenu disable help
  249.     }
  250.   }
  251. }
  252.  
  253. event "talkOver" {
  254.   ozIMenu over talk
  255. }
  256.  
  257. event "conv1" {
  258.   chainEvent {
  259.       PlaySound interface/switchClic
  260.       ozIConv choice 0
  261.   }
  262.   wizqConvRemove "clues"
  263.   chainEvent {hMainUpdate}
  264. }
  265.  
  266. event "conv1Over" {
  267.   ozIConv over conv1
  268. }
  269.  
  270. event "conv2" {
  271.   chainEvent {
  272.       PlaySound interface/switchClic
  273.       ozIConv choice 1
  274.   }
  275.   wizqConvRemove "clues"
  276.   chainEvent {hMainUpdate}
  277. }
  278.  
  279. event "conv2Over" {
  280.   ozIConv over conv2
  281. }
  282.  
  283. event "conv3" {
  284.   chainEvent {
  285.       PlaySound interface/switchClic
  286.       ozIConv choice 2
  287.   }
  288.   wizqConvRemove "clues"
  289.   chainEvent {hMainUpdate}
  290. }
  291.  
  292. event "conv3Over" {
  293.   ozIConv over conv3
  294. }
  295.  
  296. proc GoBack {} {
  297.   set event [ozGet "interface.backevent"]
  298.   if { $event != "" } {
  299.     oz'event {
  300.       callEvent $event
  301.       ozSet "interface.backevent" ""
  302.       iactive "interface.back" false
  303.       ozIMenu disable back
  304.     }
  305.   }
  306. }    
  307.  
  308. event "back" {
  309.   PlaySound interface/switchClic
  310.   GoBack
  311. }
  312.  
  313. event "backOver" {
  314.   ozIMenu over back
  315. }
  316.  
  317. set ::playing_voice 0
  318. event "pause" {
  319.   PlaySound interface/switchClic
  320.   if $::playing_voice {
  321.     oz'sound::stop $::playing_voice
  322.     set ::playing_voice 0
  323.   }
  324.   if { $::itfTalk } {ozSystem pause}
  325. }
  326.  
  327. event "pauseOver" {
  328.   ozITalk over pause
  329. }
  330.  
  331. event "skip" {
  332.   PlaySound interface/switchClic
  333.   if { $::itfTalk } {
  334.     ozSystem cancel
  335.   }
  336. }
  337.  
  338. event "skipOver" {
  339.   ozITalk over skip
  340. }
  341.  
  342.  
  343. event "help" {
  344.   PlaySound interface/switchClic
  345.   callEvent inGameWalkthrough.init
  346.   if {[ozGet "interface.backevent"] == ""} {
  347.       iactive interface.help  false
  348.       ozIMenu disable help
  349.   }
  350.   MainDisableTalk
  351.   Walkthru
  352. }
  353.  
  354. event "helpOver" {
  355.   ozIMenu over help
  356. }
  357.  
  358.