| 275 | size_t state_byte_size(size_t mask_size); |
| 276 | |
| 277 | F32 update_transition(z_disco_floor& df, F32 dt) |
| 278 | { |
| 279 | df.transition_time += dt; |
| 280 | |
| 281 | if (df.transition_time < df.transition_delay) |
| 282 | { |
| 283 | return 0.0f; |
| 284 | } |
| 285 | |
| 286 | if (df.sound_delay > 0.05f) |
| 287 | { |
| 288 | play_sound(df); |
| 289 | } |
| 290 | |
| 291 | if (df.transition_time - dt < df.transition_delay) |
| 292 | { |
| 293 | dt = df.transition_time - df.transition_delay; |
| 294 | } |
| 295 | |
| 296 | df.state = df.next_state; |
| 297 | df.state_counter++; |
| 298 | |
| 299 | memcpy(df.active_state_mask, df.next_state_mask, |
| 300 | state_byte_size(df.asset->state_mask_size)); |
| 301 | |
| 302 | refresh_state(df); |
| 303 | |
| 304 | return dt; |
| 305 | } |
| 306 | |
| 307 | size_t state_byte_size(size_t mask_size) |
| 308 | { |
no test coverage detected