void UBurstFiremode::BeginFire() { Super::BeginFire(); BurstsRemaining = ShotsInBurst; //Start a timer based off the first shot time float FirstShotTime = GetWeapon()->GetActiveFiremodeData().FirstShotFireDelay; if (FirstShotTime != 0) { FTimerHandle handle; GetWorld()->GetTimerManager().SetTimer(handle, this, &UBurstFiremode::HandleFire, FirstShotTime, false); } else { HandleFire(); } }
/****************************************************************************** * HandleKeyPress - handle key press * ******************************************************************************/ void HandleKeyPress(char key, MyProgram *data) { switch(key) { case KEY_UP: case KEY_DOWN: case KEY_LEFT: case KEY_RIGHT: HandlePlayerMove( key, data ); break; case KEY_FIRE: HandleFire( data ); break; case KEY_WARP: HandleWarp( data ); break; case KEY_SLAMMER: HandleSlammer( data ); break; case KEY_NEWGAME: UpdateStatus( "Starting new game", data ); PopupNewGame( data ); break; case KEY_OPENGAME: UpdateStatus( "Loading game", data ); HandleLoadGame( data ); break; case KEY_SAVEGAME: UpdateStatus( "Saving game", data ); HandleSaveGame( data ); break; case KEY_QUITGAME: UpdateStatus( "Quitting game", data ); PopupQuit(); break; case KEY_EXITGAME: exit(0); break; case KEY_MULTI: PopupMultiPlayer( data ); break; case KEY_ANIM: ToggleAnim( data ); break; case KEY_INVENTORY: PopupInventory( data ); break; default: break; } UpdateScore( data ); if (data->score.health <= 0) { PopupGameOver( data ); } }