mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-28 12:30:46 +00:00
- calcChaseCamPos(): Restore original algorithms for new position via GameInterface struct.
* Averaging out the values was a net negative for all games. Each games' original value is tuned to the specific games.
This commit is contained in:
parent
ba57429ac6
commit
cff97c9cf3
5 changed files with 17 additions and 3 deletions
|
@ -21,6 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "gamefuncs.h"
|
#include "gamefuncs.h"
|
||||||
|
#include "gamestruct.h"
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
@ -41,9 +42,9 @@ bool calcChaseCamPos(int* px, int* py, int* pz, spritetype* pspr, short *psectnu
|
||||||
assert(*psectnum >= 0 && *psectnum < MAXSECTORS);
|
assert(*psectnum >= 0 && *psectnum < MAXSECTORS);
|
||||||
|
|
||||||
// Calculate new pos to shoot backwards, using averaged values from the big three.
|
// Calculate new pos to shoot backwards, using averaged values from the big three.
|
||||||
int nx = xs_CRoundToInt(-ang.fcos() * (4352. / 3.));
|
int nx = gi->chaseCamX(ang);
|
||||||
int ny = xs_CRoundToInt(-ang.fsin() * (4352. / 3.));
|
int ny = gi->chaseCamY(ang);
|
||||||
int nz = xs_CRoundToInt(horiz.asq16() * (17. / 6144.));
|
int nz = gi->chaseCamZ(horiz);
|
||||||
|
|
||||||
vec3_t pvect = { *px, *py, *pz };
|
vec3_t pvect = { *px, *py, *pz };
|
||||||
bakcstat = pspr->cstat;
|
bakcstat = pspr->cstat;
|
||||||
|
|
|
@ -7,6 +7,7 @@ bool System_WantGuiCapture(); // During playing this tells us whether the game m
|
||||||
#include "engineerrors.h"
|
#include "engineerrors.h"
|
||||||
#include "stats.h"
|
#include "stats.h"
|
||||||
#include "packet.h"
|
#include "packet.h"
|
||||||
|
#include "binaryangle.h"
|
||||||
#include "inputstate.h"
|
#include "inputstate.h"
|
||||||
|
|
||||||
class FSerializer;
|
class FSerializer;
|
||||||
|
@ -97,6 +98,9 @@ struct GameInterface
|
||||||
virtual void ToggleThirdPerson() { }
|
virtual void ToggleThirdPerson() { }
|
||||||
virtual void SwitchCoopView() { Printf("Unsupported command\n"); }
|
virtual void SwitchCoopView() { Printf("Unsupported command\n"); }
|
||||||
virtual void ToggleShowWeapon() { Printf("Unsupported command\n"); }
|
virtual void ToggleShowWeapon() { Printf("Unsupported command\n"); }
|
||||||
|
virtual int chaseCamX(binangle ang) { return 0; }
|
||||||
|
virtual int chaseCamY(binangle ang) { return 0; }
|
||||||
|
virtual int chaseCamZ(fixedhoriz horiz) { return 0; }
|
||||||
|
|
||||||
virtual FString statFPS()
|
virtual FString statFPS()
|
||||||
{
|
{
|
||||||
|
|
|
@ -131,6 +131,9 @@ struct GameInterface : ::GameInterface
|
||||||
void ToggleThirdPerson() override;
|
void ToggleThirdPerson() override;
|
||||||
void SwitchCoopView() override;
|
void SwitchCoopView() override;
|
||||||
void ToggleShowWeapon() override;
|
void ToggleShowWeapon() override;
|
||||||
|
int chaseCamX(binangle ang) { return MulScale(-Cos(ang.asbuild()), 1280, 30); }
|
||||||
|
int chaseCamY(binangle ang) { return MulScale(-Sin(ang.asbuild()), 1280, 30); }
|
||||||
|
int chaseCamZ(fixedhoriz horiz) { return FixedToInt(MulScale(horiz.asq16(), 1280, 3)) - (16 << 8); }
|
||||||
|
|
||||||
GameStats getStats() override;
|
GameStats getStats() override;
|
||||||
};
|
};
|
||||||
|
|
|
@ -62,6 +62,9 @@ struct GameInterface : public ::GameInterface
|
||||||
void ToggleThirdPerson() override;
|
void ToggleThirdPerson() override;
|
||||||
void SwitchCoopView() override;
|
void SwitchCoopView() override;
|
||||||
void ToggleShowWeapon() override;
|
void ToggleShowWeapon() override;
|
||||||
|
int chaseCamX(binangle ang) { return -ang.bcos(-4); }
|
||||||
|
int chaseCamY(binangle ang) { return -ang.bsin(-4); }
|
||||||
|
int chaseCamZ(fixedhoriz horiz) { return horiz.asq16() >> 9; }
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -2251,6 +2251,9 @@ struct GameInterface : ::GameInterface
|
||||||
void WarpToCoords(int x, int y, int z, int a, int h) override;
|
void WarpToCoords(int x, int y, int z, int a, int h) override;
|
||||||
void ToggleThirdPerson() override;
|
void ToggleThirdPerson() override;
|
||||||
void SwitchCoopView() override;
|
void SwitchCoopView() override;
|
||||||
|
int chaseCamX(binangle ang) { return -ang.bcos(-3); }
|
||||||
|
int chaseCamY(binangle ang) { return -ang.bsin(-3); }
|
||||||
|
int chaseCamZ(fixedhoriz horiz) { return horiz.asq16() >> 8; }
|
||||||
|
|
||||||
|
|
||||||
GameStats getStats() override;
|
GameStats getStats() override;
|
||||||
|
|
Loading…
Reference in a new issue