namespace rogue_unlike { void handle_powers(data& d); void man::act() { kino(); current_stats = next_stats; next_stats = base_stats; auto dat = get_dat(); coyote_time = next_coyote_time; next_coyote_time = 0; jump_control = next_jump_control; next_jump_control = 0; if(on_floor) on_floor_when = gframeid; fallthru = false; handle_powers(dat); if((on_floor || jump_control || wallhug) && !on_ice) { vel.x = zero_vel.x + dat.dx * dat.d * dat.modv * 2.5; } if(on_bounce) { vel.x += dat.dx * dat.d * dat.modv * 0.02; } if(!(on_floor && !dat.dx)) last_action = gframeid; if(dat.dx) facing = dat.dx; current_room->fov_from(where.x / block_x, where.y / block_y); } }