-#include <assert.h>
+#include "system/stacktrace.h"
#include "ebisp/gc.h"
#include "ebisp/interpreter.h"
#include "ebisp/parser.h"
#include "ebisp/scope.h"
+#include "ebisp/std.h"
#include "game/level.h"
#include "game/level_script.h"
#include "script.h"
#include "str.h"
#include "system/line_stream.h"
#include "system/log.h"
+#include "system/log_script.h"
#include "system/lt.h"
#include "system/nth_alloc.h"
#include "ui/console.h"
+#include "game_script.h"
struct Script
{
struct Scope scope;
};
-Script *create_script_from_line_stream(LineStream *line_stream, Level *level)
+Script *create_script_from_line_stream(LineStream *line_stream, Game *game)
{
- assert(line_stream);
+ trace_assert(line_stream);
Lt *lt = create_lt();
if (lt == NULL) {
script->scope = create_scope(script->gc);
+ load_std_library(script->gc, &script->scope);
+ load_log_library(script->gc, &script->scope);
+ load_game_library(script->gc, &script->scope, game);
+
size_t n = 0;
sscanf(line_stream_next(line_stream), "%lu", &n);
}
PUSH_LT(lt, source_code, free);
- load_std_library(script->gc, &script->scope);
- load_level_library(script->gc, &script->scope, level);
-
struct ParseResult parse_result =
read_all_exprs_from_string(
script->gc,
void destroy_script(Script *script)
{
- assert(script);
+ trace_assert(script);
RETURN_LT0(script->lt);
}
int script_eval(Script *script, const char *source_code)
{
- assert(script);
- assert(source_code);
+ trace_assert(script);
+ trace_assert(source_code);
struct ParseResult parse_result = read_expr_from_string(
script->gc,