From 120888e5ed03d7659d287db2baa17e3ca73dd32a Mon Sep 17 00:00:00 2001 From: NovaRain Date: Sun, 20 Jan 2019 09:10:58 +0800 Subject: [PATCH] Added "art_cache_clear" script function. --- artifacts/scripting/headers/sfall.h | 1 + artifacts/scripting/sfall function notes.txt | 3 +++ sfall/ScriptOps/AnimOps.hpp | 4 ++++ sfall/ScriptOps/MetaruleOp.hpp | 1 + 4 files changed, 9 insertions(+) diff --git a/artifacts/scripting/headers/sfall.h b/artifacts/scripting/headers/sfall.h index a375fec4..115fbe5a 100644 --- a/artifacts/scripting/headers/sfall.h +++ b/artifacts/scripting/headers/sfall.h @@ -214,6 +214,7 @@ #define party_member_list_all party_member_list(1) +#define art_cache_clear sfall_func0("art_cache_clear") #define attack_is_aimed sfall_func0("attack_is_aimed") #define create_win(winName, x, y, w, h) sfall_func5("create_win", winName, x, y, w, h) #define create_win_flag(winName, x, y, w, h, flag) sfall_func6("create_win", winName, x, y, w, h, flag) diff --git a/artifacts/scripting/sfall function notes.txt b/artifacts/scripting/sfall function notes.txt index 6b2c38bd..3e2c5f9e 100644 --- a/artifacts/scripting/sfall function notes.txt +++ b/artifacts/scripting/sfall function notes.txt @@ -467,6 +467,9 @@ Some utility/math functions are available: > void sfall_func3("set_object_data", object, int offset, int data) - sets the data at the specified offset of an object +> void sfall_func0("art_cache_clear") +- clears the cache of FRM image files loaded into memory + ------------------------ ------ MORE INFO ------- ------------------------ diff --git a/sfall/ScriptOps/AnimOps.hpp b/sfall/ScriptOps/AnimOps.hpp index 14fa3b9b..9c99711c 100644 --- a/sfall/ScriptOps/AnimOps.hpp +++ b/sfall/ScriptOps/AnimOps.hpp @@ -195,3 +195,7 @@ end: _RET_VAL_INT(ebp) _OP_END } + +static void sf_art_cache_flush() { + __asm call art_flush_; +} diff --git a/sfall/ScriptOps/MetaruleOp.hpp b/sfall/ScriptOps/MetaruleOp.hpp index 850ffbbe..688744b6 100644 --- a/sfall/ScriptOps/MetaruleOp.hpp +++ b/sfall/ScriptOps/MetaruleOp.hpp @@ -103,6 +103,7 @@ static void sf_get_metarule_table() { - minArgs/maxArgs - minimum and maximum number of arguments allowed for this function */ static const SfallMetarule metaruleArray[] = { + {"art_cache_clear", sf_art_cache_flush, 0, 0}, {"attack_is_aimed", sf_attack_is_aimed, 0, 0}, {"critter_inven_obj2", sf_critter_inven_obj2, 2, 2}, {"create_win", sf_create_win, 5, 6},