diff options
| author | Uneven Prankster <unevenprankster@protonmail.com> | 2023-10-15 21:28:29 -0300 |
|---|---|---|
| committer | Uneven Prankster <unevenprankster@protonmail.com> | 2023-10-15 21:28:29 -0300 |
| commit | 1c0cc775732201f4c4d3ee0d6772be786b3b4aa1 (patch) | |
| tree | f5d692d046868261275c7430a624c3ea9ed75d3d /src/script_sys.c | |
| parent | a89f892640cf12f75c7ce18e6e88c70a8d3965ed (diff) | |
A lot has certainly happened!
Diffstat (limited to 'src/script_sys.c')
| -rw-r--r-- | src/script_sys.c | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/src/script_sys.c b/src/script_sys.c deleted file mode 100644 index 4b12e64..0000000 --- a/src/script_sys.c +++ /dev/null @@ -1,89 +0,0 @@ -#include "script_sys.h" -#include "texture_sys.h" -#include "shader_sys.h" - -#include "controller.h" - -#include "rand_sys.h" - -#include <libtcc.h> -#include <stddef.h> -#include <stdio.h> - -#include <raylib.h> - -static TCCState* state = NULL; - -static void(*script_init)(void) = NULL; -static void(*script_update)(void) = NULL; -static void(*script_exit)(void) = NULL; - -static i32 current_mod = -1; - -static void restart(void) -{ - TCCState* new_state = tcc_new(); - tcc_set_output_type(new_state, TCC_OUTPUT_MEMORY); - tcc_set_options(new_state, "-nostdinc"); - - tcc_add_symbol(new_state, "load_new_tex", load_new_tex); - tcc_add_symbol(new_state, "load_new_shader", load_new_shader); - - tcc_add_symbol(new_state, "draw_text", DrawText); - tcc_add_symbol(new_state, "set_active_shader", set_active_shader); - tcc_add_symbol(new_state, "draw_texture", draw_texture); - tcc_add_symbol(new_state, "unload_tex", unload_tex); - tcc_add_symbol(new_state, "reset_active_shader", reset_active_shader); - - tcc_add_symbol(new_state, "set_rumble", set_rumble); - tcc_add_symbol(new_state, "stop_rumble", stop_rumble); - - tcc_add_symbol(new_state, "rand_u32", rand_u32); - tcc_add_symbol(new_state, "rand_range", rand_range); - - tcc_add_symbol(new_state, "is_key_pressed", is_key_pressed); - tcc_add_symbol(new_state, "is_key_held", is_key_held); - tcc_add_symbol(new_state, "is_key_released", is_key_released); - - tcc_add_symbol(new_state, "get_dir_input", get_dir_input); - - if(tcc_add_file(new_state, "assets/src/main.c") == -1){ - tcc_delete(new_state); - return; - } - - if(state != NULL) - deinit_script_sys(); - state = new_state; - - tcc_relocate(state, TCC_RELOCATE_AUTO); - script_init = tcc_get_symbol(state, "init"); - script_update = tcc_get_symbol(state, "update"); - script_exit = tcc_get_symbol(state, "exit"); - script_init(); -} - -void init_script_sys(void) -{ - current_mod = GetFileModTime("assets/src/main.c"); - restart(); -} - -void update_script(void) -{ - i32 new_mod = GetFileModTime("assets/src/main.c"); - - if(new_mod != current_mod){ - current_mod = new_mod; - - restart(); - } - if(script_update != NULL) - script_update(); -} - -void deinit_script_sys(void) -{ - script_exit(); - tcc_delete(state); -}
\ No newline at end of file |
