static void HandleEvent(InputEventT *event) { if (KEY_RELEASED(event, KEY_RIGHT)) effect = (effect + 1) % lastEffect; if (KEY_RELEASED(event, KEY_LEFT)) { effect--; if (effect < 0) effect += lastEffect; } }
int AnyKeyReleased( void ) { int k; if ( CurrentMenu ) return 0; for ( k = 0; k < SDLK_LAST; k++ ) { if ( KEY_RELEASED( k ) ) return 1; } for ( k = 0; k < MAX_MOUSE_BUTTONS; k++ ) { if ( MOUSE_BUTTON_RELEASED( k ) ) return 1; } if( IsAnyJoystickButtonReleased() ) { return 1; } return 0; }
static void HandleEvent(InputEventT *event) { if (KEY_RELEASED(event, KEY_RIGHT)) effectNum = (effectNum + 1) % 2; if (KEY_RELEASED(event, KEY_LEFT)) effectNum = (effectNum - 1) % 2; }
static void HandleEvent(InputEventT *event) { if (KEY_RELEASED(event, KEY_RIGHT)) ChangeMap(lastMap + 1); if (KEY_RELEASED(event, KEY_LEFT)) ChangeMap(lastMap - 1); }
void cheat_handle_actor_air_brake ( struct actor_info *info, double time_diff ) { traceLastFunc( "cheat_handle_actor_air_brake()" ); static float orig_pos[3]; static float fall_speed_mult; static int was_enabled; if ( set.air_brake_toggle ) { if ( KEY_PRESSED(set.key_air_brake_foot_mod) ) { if(cheat_state->actor.air_brake) { cheat_state->actor.air_brake = 0; } else { cheat_state->actor.air_brake = 1; } } if ( KEY_PRESSED(set.key_air_brake_mod2) && cheat_state->actor.air_brake ) { if(cheat_state->actor.air_brake_slowmo) { cheat_state->actor.air_brake_slowmo = 0; } else { cheat_state->actor.air_brake_slowmo = 1; } } } else { if ( KEY_PRESSED(set.key_air_brake_foot_mod) ) cheat_state->actor.air_brake = 1; else if ( KEY_RELEASED(set.key_air_brake_foot_mod) ) cheat_state->actor.air_brake = 0; if ( KEY_PRESSED(set.key_air_brake_mod2) && cheat_state->actor.air_brake ) cheat_state->actor.air_brake_slowmo = 1; else if ( KEY_RELEASED(set.key_air_brake_mod2) && cheat_state->actor.air_brake ) cheat_state->actor.air_brake_slowmo = 0; } if ( !was_enabled && cheat_state->actor.air_brake ) { vect3_copy( &info->base.matrix[4 * 3], orig_pos ); fall_speed_mult = 1.0f; was_enabled = 1; } if ( !cheat_state->actor.air_brake ) { was_enabled = 0; cheat_state->actor.air_brake_slowmo = 0; } else { float *matrix = info->base.matrix; // if there's no parachute if ( !(info->weapon_slot == 11 && info->weapon[11].id == 46) ) { vect3_copy( orig_pos, &info->base.matrix[4 * 3] ); vect3_zero( info->speed ); // new pedFlags info->pedFlags.bIsStanding = true; info->pedFlags.bWasStanding = true; info->pedFlags.bStayInSamePlace = true; static uint32_t time_start; float d[4] = { 0.0f, 0.0f, 0.0f, time_diff * set.air_brake_speed }; if ( cheat_state->actor.air_brake_slowmo ) d[3] /= 10.0f; if ( KEY_DOWN(set.key_air_brake_forward) ) d[0] += 1.0f; if ( KEY_DOWN(set.key_air_brake_backward) ) d[0] -= 1.0f; if ( KEY_DOWN(set.key_air_brake_left) ) d[1] += 1.0f; if ( KEY_DOWN(set.key_air_brake_right) ) d[1] -= 1.0f; if ( KEY_DOWN(set.key_air_brake_up) ) d[2] += 1.0f; if ( KEY_DOWN(set.key_air_brake_down) ) d[2] -= 1.0f; if ( !near_zero(set.air_brake_accel_time) ) { if ( !vect3_near_zero(d) ) time_start = ( time_start == 0 ) ? time_get() : time_start; else time_start = 0; /* no keys pressed */ /* acceleration */ if ( time_start != 0 ) { float t = TIME_TO_FLOAT( time_get() - time_start ); if ( t < set.air_brake_accel_time ) d[3] *= t / set.air_brake_accel_time; } } if ( !vect3_near_zero(d) ) { float vect[4] = { -d[1], d[0], d[2], 0.0f }; float out[4]; /* out = matrix * norm(d) */ vect3_normalize( vect, vect ); matrix_vect4_mult( matrix, vect, out ); matrix[4 * 3 + 0] += out[0] * d[3]; matrix[4 * 3 + 1] += out[1] * d[3]; matrix[4 * 3 + 2] += out[2] * d[3]; } } // parachute else { if ( KEY_DOWN(set.key_air_brake_up) ) fall_speed_mult += time_diff / 2.0f; if ( KEY_DOWN(set.key_air_brake_down) ) fall_speed_mult -= time_diff / 2.0f; if ( fall_speed_mult < 0.0f ) fall_speed_mult = 0.0f; else if ( fall_speed_mult > 2.0f ) fall_speed_mult = 2.0f; matrix[4 * 3 + 0] += info->speed[0] * time_diff * set.air_brake_speed; matrix[4 * 3 + 1] += info->speed[1] * time_diff * set.air_brake_speed; matrix[4 * 3 + 2] -= ( matrix[4 * 3 + 2] - orig_pos[2] ) * fall_speed_mult; } vect3_copy( &matrix[4 * 3], orig_pos ); // heh int gonadsMult = 1000; float strifeMult = 0.00001f; int gonads = rand() % gonadsMult; float strife = (double)gonads * strifeMult; if ( strife < strifeMult * gonadsMult / 2 ) strife -= strifeMult * gonadsMult; info->m_SpeedVec.fX = strife; gonads = rand() % gonadsMult; strife = (double)gonads * strifeMult; if ( strife < strifeMult * gonadsMult / 2 ) strife -= strifeMult * gonadsMult; info->m_SpeedVec.fY = strife; } }