fix no getset

This commit is contained in:
2026-01-23 11:28:27 -06:00
parent dd31a1c2b0
commit 4f7e7ab591
3 changed files with 52 additions and 30 deletions

View File

@@ -70,19 +70,19 @@ function create_user(index, config) {
control_stack: [],
// Get current device kind
get device_kind() {
device_kind() {
if (!this.active_device) return 'keyboard'
return devices.kind(this.active_device)
},
// Get current gamepad type
get gamepad_type() {
gamepad_type() {
if (!this.active_device) return null
return devices.gamepad_type(this.active_device)
},
// Get action down state
get down() {
down() {
return this.router ? this.router.down : {}
},
@@ -105,7 +105,7 @@ function create_user(index, config) {
},
// Get current control target
get target() {
target() {
return length(this.control_stack) > 0
? this.control_stack[length(this.control_stack) - 1]
: null
@@ -261,10 +261,10 @@ return {
ingest: ingest,
user: user,
get player1() { return _users[0] },
get player2() { return _users[1] },
get player3() { return _users[2] },
get player4() { return _users[3] },
player1() { return _users[0] },
player2() { return _users[1] },
player3() { return _users[2] },
player4() { return _users[3] },
// Re-export for convenience
devices: devices,

View File

@@ -291,7 +291,7 @@ function make(user, config) {
return {
stages: stages,
get down() { return action.down },
down() { return action.down },
handle: function(canon) {
var events = [canon]
@@ -306,9 +306,9 @@ function make(user, config) {
}
return {
make: make,
gesture_stage: gesture_stage,
emacs_stage: emacs_stage,
action_stage: action_stage,
delivery_stage: delivery_stage
make,
gesture_stage,
emacs_stage,
action_stage,
delivery_stage
}

View File

@@ -55,15 +55,6 @@ static void js_sprite_mark(JSRuntime *rt, JSValueConst val, JS_MarkFunc *mark_fu
// Class definition for sprite with mark function for GC
QJSCLASSMARK(sprite,)
// SPRITE GETTER/SETTER FUNCTIONS
JSC_GETSET(sprite, pos, vec2)
JSC_GETSET(sprite, center, vec2)
JSC_GETSET(sprite, layer, number)
JSC_GETSET(sprite, color, color)
JSC_GETSET(sprite, skew, vec2)
JSC_GETSET(sprite, scale, vec2)
JSC_GETSET(sprite, rotation, number)
// SPRITE ACTION FUNCTIONS
JSC_CCALL(sprite_move,
@@ -85,17 +76,48 @@ JSC_CCALL(sprite_set_image,
sp->image = JS_DupValue(js, argv[0]);
)
JSC_CCALL(sprite_set,
sprite *sp = js2sprite(js,self);
if (!JS_IsObject(argv[0])) return JS_NULL;
JSValue val;
val = JS_GetPropertyStr(js, argv[0], "pos");
if (!JS_IsNull(val)) { sp->pos = js2vec2(js, val); JS_FreeValue(js, val); }
val = JS_GetPropertyStr(js, argv[0], "center");
if (!JS_IsNull(val)) { sp->center = js2vec2(js, val); JS_FreeValue(js, val); }
val = JS_GetPropertyStr(js, argv[0], "skew");
if (!JS_IsNull(val)) { sp->skew = js2vec2(js, val); JS_FreeValue(js, val); }
val = JS_GetPropertyStr(js, argv[0], "scale");
if (!JS_IsNull(val)) { sp->scale = js2vec2(js, val); JS_FreeValue(js, val); }
val = JS_GetPropertyStr(js, argv[0], "rotation");
if (!JS_IsNull(val)) { sp->rotation = js2number(js, val); JS_FreeValue(js, val); }
val = JS_GetPropertyStr(js, argv[0], "layer");
if (!JS_IsNull(val)) { sp->layer = js2number(js, val); JS_FreeValue(js, val); }
val = JS_GetPropertyStr(js, argv[0], "color");
if (!JS_IsNull(val)) { sp->color = js2color(js, val); JS_FreeValue(js, val); }
val = JS_GetPropertyStr(js, argv[0], "image");
if (!JS_IsNull(val) && !JS_IsNull(val)) {
if (!JS_IsNull(sp->image)) JS_FreeValue(js, sp->image);
sp->image = val; // Transfer ownership
} else {
JS_FreeValue(js, val);
}
)
static const JSCFunctionListEntry js_sprite_funcs[] = {
MIST_FUNC_DEF(sprite, set_affine, 0),
MIST_FUNC_DEF(sprite, set_image, 1),
MIST_FUNC_DEF(sprite, move, 1),
JS_CGETSET_DEF("pos", js_sprite_get_pos, js_sprite_set_pos),
JS_CGETSET_DEF("scale", js_sprite_get_scale, js_sprite_set_scale),
JS_CGETSET_DEF("skew", js_sprite_get_skew, js_sprite_set_skew),
JS_CGETSET_DEF("layer", js_sprite_get_layer, js_sprite_set_layer),
JS_CGETSET_DEF("color", js_sprite_get_color, js_sprite_set_color),
JS_CGETSET_DEF("center", js_sprite_get_center, js_sprite_set_center),
JS_CGETSET_DEF("rotation", js_sprite_get_rotation, js_sprite_set_rotation),
MIST_FUNC_DEF(sprite, set, 1),
};
// Constructor function for sprite