| 828 | } |
| 829 | |
| 830 | void z_disco_floor::set_state_range(S32 min, S32 max, bool immediate) |
| 831 | { |
| 832 | size_t min_state = range_limit<S32>(min, 0, asset->states_size - 1); |
| 833 | size_t max_state = range_limit<S32>(max, min, asset->states_size - 1); |
| 834 | |
| 835 | if (min_state == this->min_state && max_state == this->max_state) |
| 836 | { |
| 837 | return; |
| 838 | } |
| 839 | |
| 840 | this->min_state = min_state; |
| 841 | this->max_state = max_state; |
| 842 | |
| 843 | if (immediate) |
| 844 | { |
| 845 | size_t newstate = range_limit<size_t>(state, min_state, max_state); |
| 846 | |
| 847 | if (newstate != state) |
| 848 | { |
| 849 | set_state(newstate, true); |
| 850 | } |
| 851 | } |
| 852 | else |
| 853 | { |
| 854 | size_t newstate = range_limit<size_t>(next_state, min_state, max_state); |
| 855 | |
| 856 | if (newstate != next_state) |
| 857 | { |
| 858 | set_state(newstate, false); |
| 859 | } |
| 860 | } |
| 861 | } |
| 862 | |
| 863 | void z_disco_floor::set_transition_delay(F32 s) |
| 864 | { |
no test coverage detected