Fallout Wiki
Fallout Wiki
Details
Type Decompiled script
SCRIPTS.LST comment second in command of the Followers
MSG file JAKE.MSG

procedure start;
procedure critter_p_proc;
procedure destroy_p_proc;
procedure look_at_p_proc;
procedure map_update_p_proc;
procedure pickup_p_proc;
procedure talk_p_proc;
procedure timed_event_p_proc;
procedure Jake00;
procedure Jake01;
procedure Jake02;
procedure Jake03;
procedure Jake04;
procedure Jake05;
procedure Jake06;
procedure Jake07;
procedure Jake08;
procedure Jake09;
procedure Jake10;
procedure Jake11;
procedure Jake12;
procedure Jake13;
procedure Jake14;
procedure Jake15;
procedure Jake16;
procedure Jake17;
procedure Jake18;
procedure JakeCombat;
procedure JakeEnd;
variable hostile;
variable initialized;
procedure start
begin
        if (not(initialized)) then begin
                critter_add_trait(self_obj, 1, 5, 34);
                initialized := 1;
        end
        else begin
                if (script_action == 12) then begin
                        call critter_p_proc;
                end
                else begin
                        if (script_action == 22) then begin
                                call timed_event_p_proc;
                        end
                        else begin
                                if (script_action == 18) then begin
                                        call destroy_p_proc;
                                end
                                else begin
                                        if (script_action == 21) then begin
                                                call look_at_p_proc;
                                        end
                                        else begin
                                                if (script_action == 23) then begin
                                                        call map_update_p_proc;
                                                end
                                                else begin
                                                        if (script_action == 4) then begin
                                                                call pickup_p_proc;
                                                        end
                                                        else begin
                                                                if (script_action == 11) then begin
                                                                        call talk_p_proc;
                                                                end
                                                        end
                                                end
                                        end
                                end
                        end
                end
        end
end
procedure critter_p_proc
begin
        if (obj_can_see_obj(self_obj, dude_obj) and (map_var(1) == 1)) then begin
                float_msg(self_obj, message_str(268, 143), 3);
                animate_move_obj_to_tile(self_obj, 15484, 0);
                add_timer_event(self_obj, game_ticks(15), 1);
        end
        if (obj_can_see_obj(self_obj, dude_obj) and (map_var(1) == 2)) then begin
                float_msg(self_obj, message_str(268, 144), 3);
                hostile := 1;
        end
        if (hostile) then begin
                hostile := 0;
                attack_complex(dude_obj, 0, 1, 0, 0, 30000, 0, 0);
        end
end
procedure destroy_p_proc
begin
        if (source_obj == dude_obj) then begin
                if (((global_var(160) + global_var(159)) >= 25) and ((global_var(159) > (2 * global_var(160))) or (global_var(156) == 1))) then begin
                        set_global_var(156, 1);
                        set_global_var(157, 0);
                end
                if (((global_var(160) + global_var(159)) >= 25) and ((global_var(160) > (3 * global_var(159))) or (global_var(157) == 1))) then begin
                        set_global_var(157, 1);
                        set_global_var(156, 0);
                end
                set_global_var(160, global_var(160) + 1);
                if ((global_var(160) % 6) == 0) then begin
                        set_global_var(155, global_var(155) + 1);
                end
        end
end
procedure look_at_p_proc
begin
        script_overrides;
        if (local_var(4) == 1) then begin
                display_msg(message_str(268, 100));
        end
        else begin
                display_msg(message_str(268, 101));
        end
end
procedure map_update_p_proc
begin
        if (global_var(129) == 2) then begin
                kill_critter(self_obj, 57);
        end
end
procedure pickup_p_proc
begin
        hostile := 1;
end
procedure talk_p_proc
begin
        if (not(local_var(5))) then begin
                start_gdialog(268, self_obj, 4, -1, -1);
                gsay_start;
                set_local_var(4, 1);
                if ((game_time_hour >= 1900) or (game_time_hour < 600)) then begin
                        call Jake14;
                end
                else begin
                        if (global_var(132)) then begin
                                call Jake17;
                        end
                        else begin
                                if (global_var(133) == 2) then begin
                                        call Jake16;
                                end
                                else begin
                                        if (global_var(133) == 1) then begin
                                                call Jake15;
                                        end
                                        else begin
                                                call Jake00;
                                        end
                                end
                        end
                end
                gsay_end;
                end_dialogue;
        end
end
procedure timed_event_p_proc
begin
        float_msg(self_obj, message_str(268, 143), 3);
        set_map_var(1, 2);
end
procedure Jake00
begin
        gsay_reply(268, 102);
        giq_option(-3, 268, 103, Jake01, 50);
        giq_option(4, 268, 104, Jake02, 50);
        giq_option(4, 268, 105, Jake12, 50);
        giq_option(4, 268, 106, Jake13, 50);
        if ((global_var(129) == 1) and (obj_is_carrying_obj_pid(dude_obj, 72) != 0)) then begin
                giq_option(4, 268, 141, Jake18, 50);
        end
end
procedure Jake01
begin
        gsay_message(268, 107, 50);
end
procedure Jake02
begin
        gsay_reply(268, 108);
        giq_option(4, 268, 109, Jake03, 50);
        giq_option(4, 268, 110, JakeEnd, 50);
        giq_option(4, 268, 111, Jake04, 50);
end
procedure Jake03
begin
        gsay_reply(268, 112);
        giq_option(4, 268, 113, JakeEnd, 50);
end
procedure Jake04
begin
        gsay_reply(268, 114);
        giq_option(4, 268, 115, Jake05, 50);
        giq_option(4, 268, 116, Jake06, 50);
end
procedure Jake05
begin
        gsay_message(268, 117, 50);
        set_local_var(5, 1);
end
procedure Jake06
begin
        gsay_reply(268, 118);
        giq_option(4, 268, 119, Jake07, 50);
        giq_option(4, 268, 120, Jake11, 50);
end
procedure Jake07
begin
        gsay_reply(268, 121);
        giq_option(4, 268, 122, Jake08, 50);
        giq_option(4, 268, 123, Jake09, 50);
        giq_option(4, 268, 124, Jake10, 50);
end
procedure Jake08
begin
        set_global_var(133, 1);
        gsay_message(268, 125, 50);
end
procedure Jake09
begin
        gsay_reply(268, 126);
        giq_option(4, 268, 127, Jake08, 50);
        giq_option(4, 268, 128, Jake10, 50);
end
procedure Jake10
begin
        gsay_message(268, 129, 50);
        call JakeCombat;
end
procedure Jake11
begin
        gsay_message(268, 130, 50);
end
procedure Jake12
begin
        gsay_reply(268, 131);
        giq_option(4, 268, 132, Jake07, 50);
        giq_option(4, 268, 133, Jake08, 50);
        giq_option(4, 268, 134, Jake09, 50);
        giq_option(4, 268, 135, Jake10, 50);
end
procedure Jake13
begin
        gsay_message(268, 136, 50);
end
procedure Jake14
begin
        gsay_message(268, 137, 50);
end
procedure Jake15
begin
        gsay_message(268, 138, 50);
end
procedure Jake16
begin
        gsay_message(268, 139, 50);
end
procedure Jake17
begin
        gsay_message(268, 140, 50);
end
procedure Jake18
begin
        variable LVar0 := 0;
        LVar0 := obj_carrying_pid_obj(dude_obj, 72);
        rm_obj_from_inven(dude_obj, LVar0);
        destroy_object(LVar0);
        gsay_message(268, 142, 50);
end
procedure JakeCombat
begin
        hostile := 1;
end
procedure JakeEnd
begin
end