diff options
author | George Marques <george@gmarqu.es> | 2023-04-19 11:10:35 -0300 |
---|---|---|
committer | George Marques <george@gmarqu.es> | 2023-04-27 09:51:44 -0300 |
commit | 0ba6048ad3c945e2bd1d0114b5095535c22103ce (patch) | |
tree | e9d17e159dab50dc6cc3d574a25647af01939d6c /modules/gdscript/gdscript_byte_codegen.h | |
parent | 352ebe97259622f20b47627b4bf747cdfc79304d (diff) | |
download | redot-engine-0ba6048ad3c945e2bd1d0114b5095535c22103ce.tar.gz |
Add support for static variables in GDScript
Which allows editable data associated with a particular class instead of
the instance. Scripts with static variables are kept in memory
indefinitely unless the `@static_unload` annotation is used or the
`static_unload()` method is called on the GDScript.
If the custom function `_static_init()` exists it will be called when
the class is loaded, after the static variables are set.
Diffstat (limited to 'modules/gdscript/gdscript_byte_codegen.h')
-rw-r--r-- | modules/gdscript/gdscript_byte_codegen.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/modules/gdscript/gdscript_byte_codegen.h b/modules/gdscript/gdscript_byte_codegen.h index 42c6f80455..fc684e4d8f 100644 --- a/modules/gdscript/gdscript_byte_codegen.h +++ b/modules/gdscript/gdscript_byte_codegen.h @@ -366,6 +366,8 @@ class GDScriptByteCodeGenerator : public GDScriptCodeGenerator { return p_address.address | (GDScriptFunction::ADDR_TYPE_MEMBER << GDScriptFunction::ADDR_BITS); case Address::CONSTANT: return p_address.address | (GDScriptFunction::ADDR_TYPE_CONSTANT << GDScriptFunction::ADDR_BITS); + case Address::STATIC_VARIABLE: + return p_address.address | (GDScriptFunction::ADDR_TYPE_STATIC_VAR << GDScriptFunction::ADDR_BITS); case Address::LOCAL_VARIABLE: case Address::FUNCTION_PARAMETER: return p_address.address | (GDScriptFunction::ADDR_TYPE_STACK << GDScriptFunction::ADDR_BITS); |