Fallout Wiki
Advertisement
Fallout Wiki
Details
Type Decompiled script
SCRIPTS.LST comment Map Script for Shady Sands East
MSG file N/A
Transcript

procedure start;
procedure combat_p_proc;
procedure Lighting;
procedure Tandi_Move;
procedure add_party;
procedure update_party;
procedure remove_party;
variable party_elevation;
variable dude_start_hex;
export variable Ian_ptr;
export variable Dog_ptr;
export variable Tycho_ptr;
export variable Katja_ptr;
export variable Tandi_ptr;
procedure Darkness;
procedure Invasion;
procedure start
begin
        if (script_action == 15) then begin
                set_global_var(568, 1);
                set_global_var(567, 1);
                if ((game_time / (10 * 60 * 60 * 24)) >= global_var(153)) then begin
                        set_global_var(12, 1);
                end
                call Lighting;
                if (global_var(32) == 3) then begin
                        override_map_start(76, 85, 0, 1);
                end
                else begin
                        if (global_var(32) == 2) then begin
                                override_map_start(104, 93, 0, 1);
                        end
                        else begin
                                override_map_start(104, 93, 0, 1);
                        end
                end
                call add_party;
        end
        else begin
                if (script_action == 23) then begin
                        call Lighting;
                end
                else begin
                        if (script_action == 16) then begin
                                call remove_party;
                        end
                        else begin
                                if (script_action == 13) then begin
                                        call combat_p_proc;
                                end
                        end
                end
        end
end
procedure combat_p_proc
begin
        script_overrides;
        gfade_out(600);
        load_map(26, 1);
        game_time_advance(game_ticks(1800));
        gfade_in(600);
end
procedure Lighting
begin
        variable LVar0 := 0;
        LVar0 := game_time_hour;
        if ((LVar0 >= 600) and (LVar0 < 700)) then begin
                set_light_level(LVar0 - 600 + 40);
        end
        else begin
                if ((LVar0 >= 700) and (LVar0 < 1800)) then begin
                        set_light_level(100);
                end
                else begin
                        if ((LVar0 >= 1800) and (LVar0 < 1900)) then begin
                                set_light_level(100 - (LVar0 - 1800));
                        end
                        else begin
                                set_light_level(40);
                        end
                end
        end
end
procedure Tandi_Move
begin
        variable LVar0 := 0;
        LVar0 := game_time_hour;
        if (LVar0 == 615) then begin
                Tandi_ptr := create_object_sid(16777256, 0, 0, 57);
                move_to(Tandi_ptr, 13565, 0);
        end
        else begin
                if ((LVar0 > 615) and (LVar0 <= 645)) then begin
                        Tandi_ptr := create_object_sid(16777256, 0, 0, 57);
                        move_to(Tandi_ptr, 18492, 0);
                end
                else begin
                        if ((LVar0 > 645) and (LVar0 <= 650)) then begin
                                Tandi_ptr := create_object_sid(16777256, 0, 0, 57);
                                move_to(Tandi_ptr, 13565, 0);
                        end
                        else begin
                                if (LVar0 == 1305) then begin
                                        Tandi_ptr := create_object_sid(16777256, 0, 0, 57);
                                        move_to(Tandi_ptr, 13565, 0);
                                end
                                else begin
                                        if ((LVar0 > 1305) and (LVar0 <= 1600)) then begin
                                                Tandi_ptr := create_object_sid(16777256, 0, 0, 57);
                                                move_to(Tandi_ptr, 23701, 0);
                                        end
                                        else begin
                                                if ((LVar0 > 1600) and (LVar0 <= 1900)) then begin
                                                        Tandi_ptr := create_object_sid(16777256, 0, 0, 57);
                                                        move_to(Tandi_ptr, 17279, 0);
                                                end
                                                else begin
                                                        if ((LVar0 > 1900) and (LVar0 <= 1905)) then begin
                                                                Tandi_ptr := create_object_sid(16777256, 0, 0, 57);
                                                                move_to(Tandi_ptr, 13565, 0);
                                                        end
                                                end
                                        end
                                end
                        end
                end
        end
end
procedure add_party
begin
        variable LVar0 := 0;
        variable LVar1 := 0;
        party_elevation := elevation(dude_obj);
        if (global_var(26) == 5) then begin
                if (Tandi_ptr == 0) then begin
                end
                critter_add_trait(Tandi_ptr, 1, 6, 0);
        end
end
procedure update_party
begin
        variable LVar0 := 0;
        variable LVar1 := 0;
        if (elevation(dude_obj) != party_elevation) then begin
                party_elevation := elevation(dude_obj);
                if (global_var(118) == 2) then begin
                        if (Ian_ptr == 0) then begin
                        end
                        else begin
                                move_to(Ian_ptr, tile_num_in_direction(tile_num(dude_obj), 1, 2), elevation(dude_obj));
                        end
                end
                if (global_var(5)) then begin
                        if (Dog_ptr == 0) then begin
                        end
                        else begin
                                move_to(Dog_ptr, tile_num_in_direction(tile_num(dude_obj), 2, 1), elevation(dude_obj));
                        end
                end
                if (global_var(121) == 2) then begin
                        if (Tycho_ptr == 0) then begin
                        end
                        else begin
                                move_to(Tycho_ptr, tile_num_in_direction(tile_num(dude_obj), 3, 2), elevation(dude_obj));
                        end
                end
                if (global_var(244) == 2) then begin
                        if (Katja_ptr == 0) then begin
                        end
                        else begin
                                move_to(Katja_ptr, tile_num_in_direction(tile_num(dude_obj), 4, 2), elevation(dude_obj));
                        end
                end
                if (global_var(26) == 5) then begin
                        if (Tandi_ptr == 0) then begin
                        end
                        else begin
                                move_to(Tandi_ptr, tile_num_in_direction(tile_num(dude_obj), 4, 4), elevation(dude_obj));
                        end
                end
        end
end
procedure remove_party
begin
        if (global_var(118) == 2) then begin
                set_global_var(118, 2);
        end
        if (global_var(5)) then begin
                set_global_var(5, 1);
        end
        if (global_var(121) == 2) then begin
                set_global_var(121, 2);
        end
        if (global_var(244) == 2) then begin
                set_global_var(244, 2);
        end
        if (global_var(26) == 5) then begin
        end
end
procedure Darkness
begin
        set_light_level(40);
end
procedure Invasion
begin
        if (not(global_var(18) == 2)) then begin
                if (global_var(149) > (game_time / (10 * 60 * 60 * 24))) then begin
                        set_global_var(13, 1);
                end
                if (global_var(150) > (game_time / (10 * 60 * 60 * 24))) then begin
                        set_global_var(14, 1);
                end
                if (global_var(151) > (game_time / (10 * 60 * 60 * 24))) then begin
                        set_global_var(16, 1);
                end
                if (global_var(152) > (game_time / (10 * 60 * 60 * 24))) then begin
                        set_global_var(15, 1);
                end
                if (global_var(153) > (game_time / (10 * 60 * 60 * 24))) then begin
                        set_global_var(12, 1);
                end
                if (global_var(154) <= 0) then begin
                        set_global_var(11, 1);
                end
                if (global_var(148) > (game_time / (10 * 60 * 60 * 24))) then begin
                        set_global_var(7, 1);
                end
        end
end

Advertisement