aboutsummaryrefslogtreecommitdiff
path: root/src/script_sys.c
diff options
context:
space:
mode:
authorUneven Prankster <unevenprankster@protonmail.com>2023-10-15 21:28:29 -0300
committerUneven Prankster <unevenprankster@protonmail.com>2023-10-15 21:28:29 -0300
commit1c0cc775732201f4c4d3ee0d6772be786b3b4aa1 (patch)
treef5d692d046868261275c7430a624c3ea9ed75d3d /src/script_sys.c
parenta89f892640cf12f75c7ce18e6e88c70a8d3965ed (diff)
A lot has certainly happened!
Diffstat (limited to 'src/script_sys.c')
-rw-r--r--src/script_sys.c89
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