| 39 | |
| 40 | Just for fun I decompiled the associated Lua scripts (using [[https://quickandeasysoftware.net/software/resource-file-creator-and-dumper|RESOURCE FILE CREATOR AND DUMPER]] and [[https://quickandeasysoftware.net/software/delua-and-luac-for-grim-fandango|DELUA AND LUAC FOR GRIM FANDANGO]]): |
| 41 | |
| 42 | {{{#!lua |
| 43 | -- `gettable' tag method at line 2346 [in file Scripts\_system.lua] |
| 44 | system.oldGettableFB = setfallback("gettable", system.GettableFB) |
| 45 | -- function (Scripts\_actors.lua:749) |
| 46 | Actor.stop_chore = function(arg1, arg2, arg3) -- line 749 |
| 47 | if arg1:get_costume() then |
| 48 | StopActorChore(arg1.hActor, arg2, arg3) |
| 49 | end |
| 50 | end |
| 51 | -- function (Scripts\_manny.lua:870) |
| 52 | manny.stop_chore = function(arg1, arg2, arg3) -- line 870 |
| 53 | Actor.stop_chore(arg1, arg2, arg3) |
| 54 | if arg2 == nil or (arg2 == ms_rest and arg3 == manny.base_costume) then |
| 55 | arg1:play_chore(ms_rest, manny.base_costume) |
| 56 | end |
| 57 | end |
| 58 | -- function (Scripts\vd.lua:77) |
| 59 | vd.open_safe = function() -- line 77 |
| 60 | local local1 |
| 61 | cur_puzzle_state[39] = TRUE |
| 62 | START_CUT_SCENE() |
| 63 | manny:play_chore(ms_hand_on_obj, manny.base_costume) |
| 64 | manny:wait_for_chore() |
| 65 | vd.handle:play_chore(2) |
| 66 | manny:play_chore(ms_hand_off_obj, manny.base_costume) |
| 67 | vd.handle:wait_for_chore() |
| 68 | vd.handle:play_chore(0) |
| 69 | vd.door_jam:play_chore(1) |
| 70 | vd.safe_door:free() |
| 71 | StartMovie("vd.snm", nil, 233, 119) |
| 72 | local1 = start_script(vd.scythe_fall) |
| 73 | wait_for_movie() |
| 74 | music_state:set_sequence(seqOpenVault) |
| 75 | vd.door_jam:play_chore(2) |
| 76 | vd.door_open = TRUE |
| 77 | music_state:update() |
| 78 | wait_for_script(local1) |
| 79 | manny:walkto(-0.105456002, 0.341720015, 0, 0, -11.4314003, 0) |
| 80 | manny:play_chore(50, manny.base_costume) |
| 81 | mn2_event = FALSE |
| 82 | repeat |
| 83 | break_here() |
| 84 | until mn2_event |
| 85 | door_scythe:free() |
| 86 | mo.scythe:get() |
| 87 | MakeSectorActive("scythe_here", TRUE) |
| 88 | vd.tumblers.secured = FALSE |
| 89 | manny:wait_for_chore() |
| 90 | manny.is_holding = mo.scythe |
| 91 | open_inventory(TRUE, TRUE) |
| 92 | vd.tumblers.name = "tumblers" |
| 93 | vd.tumblers:make_untouchable() |
| 94 | vd.wheel:make_untouchable() |
| 95 | vd.handle:make_untouchable() |
| 96 | vd.vo_door:make_touchable() |
| 97 | MakeSectorActive("safe_passage", TRUE) |
| 98 | if not vd.cracked_safe then |
| 99 | vd.cracked_safe = TRUE |
| 100 | wait_for_message() |
| 101 | manny:say_line("/vdma020/") |
| 102 | wait_for_message() |
| 103 | manny:say_line("/vdma021/") |
| 104 | wait_for_message() |
| 105 | sleep_for(750) |
| 106 | manny:say_line("/vdma022/") |
| 107 | manny:tilt_head_gesture() |
| 108 | end |
| 109 | END_CUT_SCENE() |
| 110 | end |
| 111 | -- function (Scripts\vd.lua:808) |
| 112 | vd.handle.use = function(arg1) -- line 808 |
| 113 | if meche_freed then |
| 114 | system.default_response("not now") |
| 115 | else |
| 116 | START_CUT_SCENE() |
| 117 | manny:set_rest_chore(-1) |
| 118 | manny:walkto_object(arg1) |
| 119 | manny:wait_for_actor() |
| 120 | if vd.tumblers.alligned then |
| 121 | if vd.tumblers.secured then |
| 122 | vd.open_safe() |
| 123 | else |
| 124 | manny:play_chore(ms_hand_on_obj, manny.base_costume) |
| 125 | manny:wait_for_chore() |
| 126 | arg1:play_chore(1) |
| 127 | start_script(vd.safe_door.scramble, vd.safe_door) |
| 128 | manny:play_chore(ms_hand_off_obj, manny.base_costume) |
| 129 | manny:wait_for_chore() |
| 130 | manny:say_line("/vdma031/") |
| 131 | wait_for_message() |
| 132 | manny:say_line("/vdma032/") |
| 133 | end |
| 134 | else |
| 135 | manny:play_chore(ms_hand_on_obj, manny.base_costume) |
| 136 | manny:wait_for_chore() |
| 137 | arg1:play_chore(1) |
| 138 | if not vd.tumblers_secured then |
| 139 | start_script(vd.safe_door.scramble, vd.safe_door) |
| 140 | end |
| 141 | manny:play_chore(ms_hand_off_obj, manny.base_costume) |
| 142 | manny:wait_for_chore() |
| 143 | if vd.wheel.tried then |
| 144 | manny:say_line("/vdma033/") |
| 145 | else |
| 146 | vd.wheel.tried = TRUE |
| 147 | vd.wheel:lookAt() |
| 148 | end |
| 149 | end |
| 150 | manny:set_rest_chore(ms_rest, manny.base_costume) |
| 151 | END_CUT_SCENE() |
| 152 | end |
| 153 | end |
| 154 | }}} |