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