mirror of
https://github.com/doukutsu-rs/doukutsu-rs
synced 2024-09-20 17:18:50 +00:00
subpixel coords / motion interpolation toggle
This commit is contained in:
parent
9d76cf7e48
commit
7f86dae8a0
|
@ -2,7 +2,7 @@ use std::cmp::Ordering;
|
|||
use std::fmt;
|
||||
|
||||
use lazy_static::lazy_static;
|
||||
use num_traits::{AsPrimitive, Num};
|
||||
use num_traits::{abs, AsPrimitive, Num};
|
||||
use serde::{de, Deserialize, Deserializer, Serialize, Serializer};
|
||||
use serde::de::{SeqAccess, Visitor};
|
||||
use serde::ser::SerializeTupleStruct;
|
||||
|
@ -361,12 +361,12 @@ pub fn fix9_scale(val: i32, scale: f32) -> f32 {
|
|||
|
||||
#[inline(always)]
|
||||
fn lerp_f64(v1: f64, v2: f64, t: f64) -> f64 {
|
||||
v1 * (1.0 - t.fract()) + v2 * t.fract()
|
||||
v1 * (1.0 - t) + v2 * t
|
||||
}
|
||||
|
||||
pub fn interpolate_fix9_scale(old_val: i32, val: i32, frame_delta: f64) -> f32 {
|
||||
if (frame_delta - 1.0).abs() < 0.001 {
|
||||
return (val / 0x200) as f32;
|
||||
if abs(old_val - val) > 8 * 0x200 {
|
||||
return val as f32 / 512.0;
|
||||
}
|
||||
|
||||
(lerp_f64(old_val as f64, val as f64, frame_delta) / 512.0) as f32
|
||||
|
|
|
@ -12,6 +12,7 @@ pub struct Settings {
|
|||
pub seasonal_textures: bool,
|
||||
pub original_textures: bool,
|
||||
pub shader_effects: bool,
|
||||
pub subpixel_coords: bool,
|
||||
pub motion_interpolation: bool,
|
||||
pub touch_controls: bool,
|
||||
pub player1_key_map: PlayerKeyMap,
|
||||
|
@ -50,6 +51,7 @@ impl Default for Settings {
|
|||
seasonal_textures: true,
|
||||
original_textures: false,
|
||||
shader_effects: true,
|
||||
subpixel_coords: true,
|
||||
motion_interpolation: true,
|
||||
touch_controls: cfg!(target_os = "android"),
|
||||
player1_key_map: p1_default_keymap(),
|
||||
|
|
|
@ -26,7 +26,7 @@ use crate::sound::SoundManager;
|
|||
use crate::stage::StageData;
|
||||
use crate::str;
|
||||
use crate::text_script::{ScriptMode, TextScriptExecutionState, TextScriptVM};
|
||||
use crate::texture_set::{G_MAG, TextureSet};
|
||||
use crate::texture_set::{TextureSet};
|
||||
|
||||
#[derive(PartialEq, Eq, Copy, Clone)]
|
||||
pub enum TimingMode {
|
||||
|
@ -125,7 +125,6 @@ impl SharedGameState {
|
|||
pub fn new(ctx: &mut Context) -> GameResult<SharedGameState> {
|
||||
let screen_size = graphics::drawable_size(ctx);
|
||||
let scale = screen_size.1.div(235.0).floor().max(1.0);
|
||||
unsafe { G_MAG = scale };
|
||||
|
||||
let canvas_size = (screen_size.0 / scale, screen_size.1 / scale);
|
||||
|
||||
|
@ -292,7 +291,6 @@ impl SharedGameState {
|
|||
self.screen_size = graphics::drawable_size(ctx);
|
||||
self.scale = self.screen_size.1.div(240.0).floor().max(1.0);
|
||||
self.canvas_size = (self.screen_size.0 / self.scale, self.screen_size.1 / self.scale);
|
||||
unsafe { G_MAG = self.scale };
|
||||
|
||||
graphics::set_screen_coordinates(ctx, graphics::Rect::new(0.0, 0.0, self.screen_size.0, self.screen_size.1))?;
|
||||
|
||||
|
|
Loading…
Reference in a new issue