void weapon_kickback(int tick,obj_type *obj,weapon_type *weap) { d3ang ang; ang.x=0; ang.y=angle_add(obj->ang.y,180.0f); ang.z=0; object_shove(obj,&ang,(float)weap->kickback.size); }
JSValueRef js_map_object_shove_func(JSContextRef cx,JSObjectRef func,JSObjectRef j_obj,size_t argc,const JSValueRef argv[],JSValueRef *exception) { float speed; d3ang ang; obj_type *obj; if (!script_check_param_count(cx,func,argc,3,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)); script_value_to_angle(cx,argv[1],&ang); speed=script_value_to_float(cx,argv[2]); object_shove(obj,&ang,speed); return(script_null_to_value(cx)); }