]> git.lizzy.rs Git - nothing.git/blobdiff - src/broadcast.c
(#882) Make the Platform level loadable
[nothing.git] / src / broadcast.c
index eb2714ef761d58708df69a86a6257e84b3faca19..383e0ebc637a92c2987e31697dcf815c8fa1c022 100644 (file)
@@ -8,7 +8,6 @@
 #include "ebisp/expr.h"
 #include "ebisp/scope.h"
 #include "game.h"
-#include "broadcast_lisp.h"
 
 struct EvalResult
 unknown_target(Gc *gc, const char *source, const char *target)
@@ -44,7 +43,7 @@ Broadcast *create_broadcast(Game *game)
 {
     trace_assert(game);
 
-    Broadcast *broadcast = nth_alloc(sizeof(Broadcast));
+    Broadcast *broadcast = nth_calloc(1, sizeof(Broadcast));
     if (broadcast == NULL) {
         return NULL;
     }
@@ -84,20 +83,13 @@ broadcast_send(Broadcast *broadcast,
     return unknown_target(gc, "game", target);
 }
 
-struct EvalResult broadcast_load_library(Broadcast *broadcast,
-                                         Gc *gc,
-                                         struct Scope *scope)
+void broadcast_load_library(Broadcast *broadcast,
+                            Gc *gc,
+                            struct Scope *scope)
 {
     trace_assert(gc);
     trace_assert(scope);
     trace_assert(broadcast);
 
-    set_scope_value(gc, scope, SYMBOL(gc, "send-native"), NATIVE(gc, send, broadcast));
-
-    struct EvalResult result = eval_block(gc, scope, broadcast_lisp_library(gc));
-    if (result.is_error) {
-        return result;
-    }
-
-    return eval_success(NIL(gc));
+    set_scope_value(gc, scope, SYMBOL(gc, "send"), NATIVE(gc, send, broadcast));
 }