Example #1
0
JSBool js_proj_melee_spawn_from_position_func(JSContext *cx,JSObject *j_obj,uintN argc,jsval *argv,jsval *rval)
{
    d3pnt				pt;
    obj_type			*obj;
    weapon_type			*weap;
    proj_type			*proj;
    proj_setup_type		*proj_setup;

    proj=proj_get_attach();
    if (proj==NULL) return(JS_TRUE);

    proj_setup=proj_setups_find_uid(proj->proj_setup_uid);
    if (proj_setup==NULL) return(JS_TRUE);

    obj=object_find_uid(proj_setup->obj_uid);
    weap=weapon_find_uid(proj_setup->weap_uid);

    pt.x=JSVAL_TO_INT(argv[0]);
    pt.z=JSVAL_TO_INT(argv[1]);
    pt.y=JSVAL_TO_INT(argv[2]);

    melee_add(obj,weap,&pt,&proj->ang,&proj_setup->melee,-1);

    return(JS_TRUE);
}
Example #2
0
JSValueRef js_proj_hit_get_startTick(JSContextRef cx,JSObjectRef j_obj,JSStringRef name,JSValueRef *exception)
{
	proj_type			*proj;

	proj=proj_get_attach(j_obj);
	if (proj==NULL) return(script_null_to_value(cx));

	return(script_int_to_value(cx,proj->start_tick));
}
Example #3
0
JSValueRef js_proj_setting_get_parentObjectId(JSContextRef cx,JSObjectRef j_obj,JSStringRef name,JSValueRef *exception)
{
	proj_type			*proj;

	proj=proj_get_attach(j_obj);
	if (proj==NULL) return(script_int_to_value(cx,-1));
	
	return(script_int_to_value(cx,proj->obj_idx));
}
Example #4
0
JSValueRef js_proj_hit_get_isPlayer(JSContextRef cx,JSObjectRef j_obj,JSStringRef name,JSValueRef *exception)
{
	proj_type			*proj;

	proj=proj_get_attach(j_obj);
	if (proj==NULL) return(script_null_to_value(cx));

	return(script_bool_to_value(cx,proj->contact.obj_idx==server.player_obj_idx));
}
Example #5
0
JSValueRef js_proj_hit_get_reflectVector(JSContextRef cx,JSObjectRef j_obj,JSStringRef name,JSValueRef *exception)
{
	d3vct				vct;
	proj_type			*proj;

	proj=proj_get_attach(j_obj);
	if (proj==NULL) return(script_null_to_value(cx));

	projectile_reflect_vector(proj,&vct);
	return(script_vector_to_value(cx,&vct));
}
Example #6
0
JSBool js_proj_motion_angle_get_z(JSContext *cx,JSObject *j_obj,jsval id,jsval *vp)
{
	proj_type			*proj;

	proj=proj_get_attach();
	if (proj==NULL) return(JS_TRUE);

	*vp=script_float_to_value(proj->motion.ang.z);
	
	return(JS_TRUE);
}
Example #7
0
JSValueRef js_proj_setting_get_parentTeam(JSContextRef cx,JSObjectRef j_obj,JSStringRef name,JSValueRef *exception)
{
	proj_type			*proj;
	obj_type			*obj;

	proj=proj_get_attach(j_obj);
	if (proj==NULL) return(script_int_to_value(cx,-1));

	obj=server.obj_list.objs[proj->obj_idx];
	if (obj==NULL) return(script_int_to_value(cx,-1));
	
	return(script_int_to_value(cx,obj->team_idx));
}
Example #8
0
JSValueRef js_proj_action_destroy_func(JSContextRef cx,JSObjectRef func,JSObjectRef j_obj,size_t argc,const JSValueRef argv[],JSValueRef *exception)
{
	proj_type			*proj;
	
	if (!script_check_param_count(cx,func,argc,0,exception)) return(script_null_to_value(cx));
	
	proj=proj_get_attach(j_obj);
	if (proj==NULL) return(script_null_to_value(cx));
	
	proj->script_dispose=TRUE;
    
	return(script_null_to_value(cx));
}
Example #9
0
JSValueRef js_proj_action_reflect_func(JSContextRef cx,JSObjectRef func,JSObjectRef j_obj,size_t argc,const JSValueRef argv[],JSValueRef *exception)
{
	proj_type			*proj;

	if (!script_check_param_count(cx,func,argc,0,exception)) return(script_null_to_value(cx));
	
	proj=proj_get_attach(j_obj);
	if (proj==NULL) return(script_null_to_value(cx));
	
	projectile_reflect(proj,FALSE);
	     
	return(script_null_to_value(cx));
}
Example #10
0
JSValueRef js_proj_action_rotate_func(JSContextRef cx,JSObjectRef func,JSObjectRef j_obj,size_t argc,const JSValueRef argv[],JSValueRef *exception)
{
	proj_type			*proj;

	if (!script_check_param_count(cx,func,argc,1,exception)) return(script_null_to_value(cx));
	
	proj=proj_get_attach(j_obj);
	if (proj==NULL) return(script_null_to_value(cx));
		
	proj->ang.y=proj->motion.ang.y=script_value_to_float(cx,argv[0]);
	
	return(script_null_to_value(cx));
}
Example #11
0
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));
}
Example #12
0
JSValueRef js_proj_action_bounce_func(JSContextRef cx,JSObjectRef func,JSObjectRef j_obj,size_t argc,const JSValueRef argv[],JSValueRef *exception)
{
    float				min_ymove,reduce;
	proj_type			*proj;

	if (!script_check_param_count(cx,func,argc,2,exception)) return(script_null_to_value(cx));
	
	proj=proj_get_attach(j_obj);
	if (proj==NULL) return(script_null_to_value(cx));
    
    min_ymove=script_value_to_float(cx,argv[0]);
	reduce=script_value_to_float(cx,argv[1]);
	
	projectile_bounce(proj,min_ymove,reduce,FALSE);
    
	return(script_null_to_value(cx));
}
Example #13
0
JSValueRef js_proj_action_seek_func(JSContextRef cx,JSObjectRef func,JSObjectRef j_obj,size_t argc,const JSValueRef argv[],JSValueRef *exception)
{
	proj_type			*proj;
	obj_type			*to_obj;

	if (!script_check_param_count(cx,func,argc,3,exception)) return(script_null_to_value(cx));
	
	proj=proj_get_attach(j_obj);
	if (proj==NULL) return(script_null_to_value(cx));
		
	to_obj=script_find_obj_from_uid_arg(cx,argv[0],exception);
	if (to_obj==NULL) return(script_null_to_value(cx));
	
	projectile_seek(proj,to_obj,script_value_to_float(cx,argv[1]),script_value_to_float(cx,argv[2]));
	
	return(script_null_to_value(cx));
}
Example #14
0
JSValueRef js_proj_setting_get_object_func(JSContextRef cx,JSObjectRef func,JSObjectRef j_obj,size_t argc,const JSValueRef argv[],JSValueRef *exception)
{
	int					obj_idx;
	proj_type			*proj;
	obj_type			*obj;
	script_type			*script;

	if (!script_check_param_count(cx,func,argc,0,exception)) return(script_null_to_value(cx));
	
	proj=proj_get_attach(j_obj);
	if (proj==NULL) return(script_null_to_value(cx));
	
	obj_idx=proj->obj_idx;
	if (obj_idx==-1) return(script_null_to_value(cx));
	
	obj=server.obj_list.objs[obj_idx];
	script=js.script_list.scripts[obj->script_idx];
		
	return((JSValueRef)script->obj);
}
Example #15
0
JSBool js_proj_melee_spawn_from_projectile_bone_func(JSContext *cx,JSObject *j_obj,uintN argc,jsval *argv,jsval *rval)
{
    char				err_str[256];
    obj_type			*obj;
    weapon_type			*weap;
    proj_type			*proj;
    proj_setup_type		*proj_setup;

    proj=proj_get_attach();
    if (proj==NULL) return(JS_TRUE);

    proj_setup=proj_setups_find_uid(proj->proj_setup_uid);
    if (proj_setup==NULL) return(JS_TRUE);

    obj=object_find_uid(proj_setup->obj_uid);
    weap=weapon_find_uid(proj_setup->weap_uid);

    if (!melee_script_spawn_projectile_model(js.time.current_tick,obj,weap,proj_setup,proj,err_str)) {
        JS_ReportError(js.cx,err_str);
        return(JS_FALSE);
    }

    return(JS_TRUE);
}
Example #16
0
JSValueRef js_proj_action_seek_target_func(JSContextRef cx,JSObjectRef func,JSObjectRef j_obj,size_t argc,const JSValueRef argv[],JSValueRef *exception)
{
	obj_type			*to_obj;
	weapon_type			*weap;
	proj_setup_type		*proj_setup;
	proj_type			*proj;

	if (!script_check_param_count(cx,func,argc,2,exception)) return(script_null_to_value(cx));
	
	proj=proj_get_attach(j_obj);
	if (proj==NULL) return(script_null_to_value(cx));
	
	weap=weapon_get_attach(j_obj);

	proj_setup=weap->proj_setup_list.proj_setups[proj->proj_setup_idx];
	if (proj_setup==NULL) return(script_null_to_value(cx));
		
	to_obj=server.obj_list.objs[weap->target.obj_idx];
	if (to_obj==NULL) return(script_null_to_value(cx));
	
	projectile_seek(proj,to_obj,script_value_to_float(cx,argv[0]),script_value_to_float(cx,argv[1]));
	
	return(script_null_to_value(cx));
}