JSValueRef js_weap_projectile_get_objectFirePoseName(JSContextRef cx,JSObjectRef j_obj,JSStringRef name,JSValueRef *exception) { weapon_type *weap; weap=weapon_get_attach(j_obj); return(script_string_to_value(cx,weap->proj.object_fire_pose_name)); }
JSValueRef js_model_get_name(JSContextRef cx,JSObjectRef j_obj,JSStringRef name,JSValueRef *exception) { model_draw *draw; draw=script_find_model_draw(j_obj); return(script_string_to_value(cx,draw->name)); }
JSValueRef js_obj_get_parameter_func(JSContextRef cx,JSObjectRef func,JSObjectRef j_obj,size_t argc,const JSValueRef argv[],JSValueRef *exception) { int idx; char *c,str[256]; obj_type *obj; if (!script_check_param_count(cx,func,argc,1,exception)) return(script_null_to_value(cx)); obj=object_get_attach(j_obj); idx=script_value_to_int(cx,argv[0]); if (idx<0) idx=0; c=obj->spawn_spot.params; while (idx!=0) { c=strchr(c,'|'); if (c==NULL) break; c++; idx--; } if (c==NULL) return(script_null_to_value(cx)); strncpy(str,c,256); str[255]=0x0; c=strchr(str,'|'); if (c!=NULL) *c=0x0; return(script_string_to_value(cx,str)); }
JSValueRef js_obj_setting_get_name(JSContextRef cx,JSObjectRef j_obj,JSStringRef name,JSValueRef *exception) { obj_type *obj; obj=object_get_attach(j_obj); return(script_string_to_value(cx,obj->name)); }
JSValueRef js_proj_setting_get_name(JSContextRef cx,JSObjectRef j_obj,JSStringRef name,JSValueRef *exception) { proj_setup_type *proj_setup; proj_setup=proj_setup_get_attach(j_obj); if (proj_setup==NULL) return(script_null_to_value(cx)); return(script_string_to_value(cx,proj_setup->name)); }
JSBool js_weap_zoom_get_maskName(JSContext *cx,JSObject *j_obj,jsval id,jsval *vp) { weapon_type *weap; weap=weapon_find_uid(js.attach.thing_uid); *vp=script_string_to_value(weap->zoom.mask_name); return(JS_TRUE); }
JSValueRef js_obj_setting_get_characterParameter(JSContextRef cx,JSObjectRef j_obj,JSStringRef name,JSValueRef *exception) { obj_type *obj; if (iface.multiplayer.character_list.ncharacter==0) return(script_null_to_value(cx)); obj=object_get_attach(j_obj); return(script_string_to_value(cx,iface.multiplayer.character_list.characters[obj->character_idx].param)); }
JSBool js_obj_watch_get_soundName(JSContext *cx,JSObject *j_obj,jsval id,jsval *vp) { obj_type *obj; obj=object_find_uid(js.attach.thing_uid); *vp=script_string_to_value(obj->watch.sound_name); return(JS_TRUE); }
JSValueRef js_obj_touch_get_objectName(JSContextRef cx,JSObjectRef j_obj,JSStringRef name,JSValueRef *exception) { obj_type *obj,*touch_obj; obj=object_get_attach(j_obj); if (obj->touch.obj_idx==-1) return(script_null_to_value(cx)); touch_obj=server.obj_list.objs[obj->touch.obj_idx]; return(script_string_to_value(cx,touch_obj->name)); }
JSBool js_proj_melee_get_strikePoseName(JSContext *cx,JSObject *j_obj,jsval id,jsval *vp) { proj_setup_type *proj_setup; proj_setup=proj_setup_get_attach(); if (proj_setup==NULL) return(JS_TRUE); *vp=script_string_to_value(proj_setup->melee.strike_pose_name); return(JS_TRUE); }
JSValueRef js_map_object_get_name_func(JSContextRef cx,JSObjectRef func,JSObjectRef j_obj,size_t argc,const JSValueRef argv[],JSValueRef *exception) { obj_type *obj; if (!script_check_param_count(cx,func,argc,1,exception)) return(script_null_to_value(cx)); obj=script_find_obj_from_uid_arg(cx,argv[0],exception); if (obj==NULL) return(script_null_to_value(cx)); return(script_string_to_value(cx,obj->name)); }
JSBool js_game_setting_get_type(JSContext *cx,JSObject *j_obj,jsval id,jsval *vp) { if (!net_setup.client.joined) { *vp=JSVAL_NULL; } else { *vp=script_string_to_value(net_setup.games[net_setup.game_idx].name); } return(JS_TRUE); }
JSBool js_proj_melee_get_strikeBoneTag(JSContext *cx,JSObject *j_obj,jsval id,jsval *vp) { char str[32]; proj_setup_type *proj_setup; proj_setup=proj_setup_get_attach(); if (proj_setup==NULL) return(JS_TRUE); model_tag_to_text(proj_setup->melee.strike_bone_tag,str); *vp=script_string_to_value(str); return(JS_TRUE); }
JSValueRef js_proj_hit_get_materialName(JSContextRef cx,JSObjectRef j_obj,JSStringRef name,JSValueRef *exception) { int hit_type; char hit_name[name_str_len]; proj_type *proj; proj=proj_get_attach(j_obj); if (proj==NULL) return(script_null_to_value(cx)); hit_type=js_get_proj_hit_type(proj); js_get_proj_hit_material_name(proj,hit_type,hit_name); return(script_string_to_value(cx,hit_name)); }
JSBool js_obj_watch_get_objectName(JSContext *cx,JSObject *j_obj,jsval id,jsval *vp) { obj_type *obj,*watch_obj; obj=object_find_uid(js.attach.thing_uid); watch_obj=object_find_uid(obj->watch.obj_uid); if (watch_obj==NULL) { *vp=JSVAL_NULL; } else { *vp=script_string_to_value(watch_obj->name); } return(JS_TRUE); }
JSBool js_model_halo_get_name(JSContext *cx,JSObject *j_obj,jsval id,jsval *vp) { model_draw *draw; model_draw_halo *halo; draw=js_find_model_draw(j_obj,TRUE); halo=&draw->halos[draw->script_halo_idx]; if (halo->idx==-1) { *vp=JSVAL_NULL; } else { *vp=script_string_to_value(server.halos[halo->idx].name); } return(JS_TRUE); }
void script_defines_create_constants_set(script_type *script,script_define_type *defines,bool user_defined) { int i; float f; bool is_float; script_define_type *define; // run through the defines define=defines; while (TRUE) { if (define->value_int==-1) break; // determine how to set property // built in defines are always numbers, but // users can be strings or numbers if (!user_defined) { script_set_single_property(script->cx,script->global_obj,define->name,script_int_to_value(script->cx,define->value_int),(kJSPropertyAttributeReadOnly|kJSPropertyAttributeDontDelete)); } else { if (script_defines_is_number(define->value_str,&is_float)) { if (!is_float) { i=atoi(define->value_str); script_set_single_property(script->cx,script->global_obj,define->name,script_int_to_value(script->cx,i),(kJSPropertyAttributeReadOnly|kJSPropertyAttributeDontDelete)); } else { f=(float)atof(define->value_str); script_set_single_property(script->cx,script->global_obj,define->name,script_float_to_value(script->cx,f),(kJSPropertyAttributeReadOnly|kJSPropertyAttributeDontDelete)); } } else { script_set_single_property(script->cx,script->global_obj,define->name,script_string_to_value(script->cx,define->value_str),(kJSPropertyAttributeReadOnly|kJSPropertyAttributeDontDelete)); } } define++; } }
JSBool js_event_get_message_data_func(JSContext *cx,JSObject *j_obj,uintN argc,jsval *argv,jsval *rval) { int idx; // get index idx=JSVAL_TO_INT(argv[0]); if ((idx<0) || (idx>=max_msg_data)) { JS_ReportError(js.cx,"Message data index out of bounds"); return(JS_FALSE); } // get data *rval=JSVAL_NULL; switch (js.attach.get_msg_data[idx].type) { case d3_jsval_type_int: *rval=INT_TO_JSVAL(js.attach.get_msg_data[idx].data.d3_int); break; case d3_jsval_type_float: *rval=script_float_to_value(js.attach.get_msg_data[idx].data.d3_float); break; case d3_jsval_type_boolean: *rval=BOOLEAN_TO_JSVAL(js.attach.get_msg_data[idx].data.d3_boolean); break; case d3_jsval_type_string: *rval=script_string_to_value(js.attach.get_msg_data[idx].data.d3_string); break; } return(JS_TRUE); }
JSBool js_interface_console_read_func(JSContext *cx,JSObject *j_obj,uintN argc,jsval *argv,jsval *rval) { *rval=script_string_to_value(console_input_str); return(JS_TRUE); }