2021-01-20 10:21:48 +08:00
|
|
|
/*
|
|
|
|
|
|
|
|
|
|
Auto-Close Containers mod for Fallout 2 by Mr.Stalin
|
|
|
|
|
----------------------------------------------------
|
|
|
|
|
|
|
|
|
|
- automatically closes the container after looting
|
|
|
|
|
|
|
|
|
|
Requires sfall 4.2.2/3.8.29 or higher
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#include "..\headers\sfall\sfall.h"
|
|
|
|
|
#include "..\headers\sfall\define_extra.h"
|
|
|
|
|
|
|
|
|
|
procedure start;
|
2021-05-11 10:33:30 +08:00
|
|
|
procedure close;
|
2021-01-20 10:21:48 +08:00
|
|
|
|
|
|
|
|
variable lootObject;
|
2021-05-11 10:33:30 +08:00
|
|
|
variable closeObject;
|
2021-01-20 10:21:48 +08:00
|
|
|
|
|
|
|
|
procedure start begin
|
|
|
|
|
if (game_loaded) then begin
|
|
|
|
|
register_hook_proc_spec(HOOK_GAMEMODECHANGE, start);
|
|
|
|
|
end else begin
|
|
|
|
|
variable mode := get_game_mode;
|
|
|
|
|
if (mode andAlso mode != INTFACELOOT) then return;
|
|
|
|
|
if (mode == INTFACELOOT) then begin
|
|
|
|
|
lootObject := loot_obj;
|
|
|
|
|
if (obj_type(lootObject) != OBJ_TYPE_ITEM) then lootObject = 0;
|
|
|
|
|
end else if (lootObject andAlso get_sfall_arg_at(1) == INTFACELOOT) then begin
|
2021-05-11 10:33:30 +08:00
|
|
|
if (get_object_data(lootObject, OBJ_DATA_CUR_FRM) > 1) then call close in 1;
|
|
|
|
|
closeObject = lootObject;
|
2021-01-20 10:21:48 +08:00
|
|
|
lootObject = 0;
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
2021-05-11 10:33:30 +08:00
|
|
|
|
|
|
|
|
procedure close begin
|
|
|
|
|
obj_close(closeObject);
|
|
|
|
|
end
|