static void Sound_get_listener_rotation (LIScrArgs* args) { LIExtModule* module; module = liscr_script_get_userdata (args->script, LIEXT_SCRIPT_SOUND); liscr_args_seti_quaternion (args, &module->listener_rotation); }
static void Camera_calculate_1st_person_transform (LIScrArgs* args) { LIMatTransform result; liext_camera_calculate_1st_person_transform (args->self, &result); liscr_args_seti_vector (args, &result.position); liscr_args_seti_quaternion (args, &result.rotation); }
static void Camera_get_target_rotation (LIScrArgs* args) { LIExtCamera* camera; LIMatTransform transform; camera = args->self; liext_camera_get_center (camera, &transform); liscr_args_seti_quaternion (args, &transform.rotation); }
static void Camera_calculate_3rd_person_transform (LIScrArgs* args) { float distance; LIMatTransform center; LIMatTransform result; if (!liscr_args_geti_vector (args, 0, ¢er.position)) return; if (!liscr_args_geti_quaternion (args, 1, ¢er.rotation)) return; if (!liscr_args_geti_float (args, 2, &distance)) return; liext_camera_calculate_3rd_person_transform ( args->self, ¢er, distance, &result); liscr_args_seti_vector (args, &result.position); liscr_args_seti_quaternion (args, &result.rotation); }
static void Camera_calculate_smoothed_transform (LIScrArgs* args) { float position_smoothing = 1.0f; float rotation_smoothing = 1.0f; LIMatTransform target; LIMatTransform result; if (!liscr_args_geti_vector (args, 0, &target.position)) return; if (!liscr_args_geti_quaternion (args, 1, &target.rotation)) return; liscr_args_geti_float (args, 2, &position_smoothing); liscr_args_geti_float (args, 3, &rotation_smoothing); liext_camera_calculate_smoothed_transform ( args->self, &target, position_smoothing, rotation_smoothing, &result); liscr_args_seti_vector (args, &result.position); liscr_args_seti_quaternion (args, &result.rotation); }