diff --git a/source/platform/psbarrel.cpp b/source/platform/psbarrel.cpp index 651f985b6..28362910a 100644 --- a/source/platform/psbarrel.cpp +++ b/source/platform/psbarrel.cpp @@ -54,6 +54,8 @@ void CNpcSteerableBarrelPlatform::processMovement( int _frames ) if ( m_contact ) { + player->setReverseCameraMovement(true); + DVECTOR playerPos = player->getPos(); s32 playerMovement = player->getMovement(); diff --git a/source/platform/psoil.cpp b/source/platform/psoil.cpp index 19bcb9656..a49f35398 100644 --- a/source/platform/psoil.cpp +++ b/source/platform/psoil.cpp @@ -44,6 +44,8 @@ void CNpcSteerableOildrumPlatform::processMovement( int _frames ) if ( m_contact ) { + player->setReverseCameraMovement(true); + DVECTOR playerPos = player->getPos(); s32 playerMovement = player->getMovement(); diff --git a/source/player/player.cpp b/source/player/player.cpp index b12b700fc..dcc439a6e 100644 --- a/source/player/player.cpp +++ b/source/player/player.cpp @@ -645,6 +645,7 @@ m_animFrame=0; m_lastPadInput=m_padInput=PI_NONE; setCartCam(false); + setReverseCameraMovement(false); resetPlayerCollisionSizeToBase(); @@ -773,6 +774,7 @@ if(PadGetDown(0)&PAD_TRIANGLE) #endif /// + for(i=0;i<_frames;i++) { updatePadInput(); @@ -1209,6 +1211,9 @@ if(PadGetDown(0)&PAD_TRIANGLE) m_ignoreNewlyPressedButtonsOnPadThisThink=false; + // Restore flipped camera + setReverseCameraMovement(false); + CPlayerThing::think(_frames); } @@ -2473,7 +2478,7 @@ void CPlayer::moveLeft() { if(m_moveVelocity.vx<-CAMERA_STARTMOVETHRESHOLD||m_cameraXScrollPos<-(CAMERA_SCROLLTHRESHOLD*CAMERA_TILESIZE)<-CAMERA_STOPMOVETHRESHOLD) { @@ -2484,7 +2489,7 @@ void CPlayer::moveRight() { if(m_moveVelocity.vx>CAMERA_STARTMOVETHRESHOLD||m_cameraXScrollPos>(CAMERA_SCROLLTHRESHOLD*CAMERA_TILESIZE)<