This commit is contained in:
John Alanbrook 2024-03-18 14:27:52 -05:00
parent 261b373a75
commit cd7733407d
6 changed files with 9 additions and 7 deletions

View file

@ -3,6 +3,7 @@ var a_db = {};
actor.spawn = function(script, config){
if (typeof script !== 'string') return undefined;
console.info(`spawning actor with script ${script}`);
if (!a_db[script]) a_db[script] = io.slurp(script);
var padawan = Object.create(actor);
eval_env(a_db[script], padawan, script);

View file

@ -165,9 +165,7 @@ var timescale = 1;
var gggstart = game.engine_start;
game.engine_start = function(s) {
gggstart(process);
world_start();
s();
gggstart(function() { world_start(); s(); }, process);
}
function process()

View file

@ -295,6 +295,7 @@ Cmdline.register_order("play", function(argv) {
console.info(`Starting game with window size ${window.size} and render ${window.rendersize}.`);
game.engine_start(function() {
console.info(`eng start`);
global.mixin("scripts/sound.js");
global.game = actor.spawn("game.js");
if (project.icon) window.set_icon(project.icon);

View file

@ -1368,7 +1368,7 @@ static const JSCFunctionListEntry js_vector_funcs[] = {
};
JSValue js_game_engine_start(JSContext *js, JSValueConst this, int argc, JSValue *argv) {
engine_start(argv[0]);
engine_start(argv[0],argv[1]);
RETUN;
}
JSValue js_game_object_count(JSContext *js, JSValueConst this) { return number2js(go_count()); }

View file

@ -52,15 +52,16 @@ static int sim_play = SIM_PLAY;
static int argc;
static char **args;
static JSValue c_start;
static JSValue c_process_fn;
void c_init() {
mainwin.start = 1;
window_resize(sapp_width(), sapp_height());
// script_evalf("world_start();");
render_init();
set_icon("icons/moon.gif");
particle_init();
script_call_sym(c_start,0,NULL);
}
void c_frame() { script_call_sym(c_process_fn,0,NULL); }
@ -230,8 +231,9 @@ int main(int argc, char **argv) {
return 0;
}
void engine_start(JSValue procfn)
void engine_start(JSValue start, JSValue procfn)
{
c_start = start;
c_process_fn = procfn;
sound_init();

View file

@ -5,7 +5,7 @@
double apptime();
void print_stacktrace();
void engine_start(JSValue proc_fn); /* fn runs after the engine starts */
void engine_start(JSValue start_fn, JSValue proc_fn); /* fn runs after the engine starts */
void quit();