mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 01:37:00 +00:00
[7496] Fxied problems with visual GO orientation for some angles. Optimize related code.
This commit is contained in:
parent
e6aca46942
commit
ae104fea27
2 changed files with 8 additions and 7 deletions
|
|
@ -1303,20 +1303,21 @@ const char* GameObject::GetNameForLocaleIdx(int32 loc_idx) const
|
||||||
|
|
||||||
void GameObject::UpdateRotationFields(float rotation2 /*=0.0f*/, float rotation3 /*=0.0f*/)
|
void GameObject::UpdateRotationFields(float rotation2 /*=0.0f*/, float rotation3 /*=0.0f*/)
|
||||||
{
|
{
|
||||||
|
static double const atan_pow = atan(pow(2.0f, -20.0f));
|
||||||
|
|
||||||
SetFloatValue(GAMEOBJECT_FACING, GetOrientation());
|
SetFloatValue(GAMEOBJECT_FACING, GetOrientation());
|
||||||
|
|
||||||
int64 rotation = 0;
|
|
||||||
|
|
||||||
double f_rot1 = sin(GetOrientation() / 2.0f);
|
double f_rot1 = sin(GetOrientation() / 2.0f);
|
||||||
int64 i_rot1 = int64(f_rot1 / atan(pow(2.0f, -20.0f)));
|
double f_rot2 = cos(GetOrientation() / 2.0f);
|
||||||
rotation |= (i_rot1 << 43 >> 43) & 0x00000000001FFFFF;
|
|
||||||
|
|
||||||
|
int64 i_rot1 = int64(f_rot1 / atan_pow *(f_rot2 >= 0 ? 1.0f : -1.0f));
|
||||||
|
int64 rotation = (i_rot1 << 43 >> 43) & 0x00000000001FFFFF;
|
||||||
SetUInt64Value(GAMEOBJECT_ROTATION, rotation);
|
SetUInt64Value(GAMEOBJECT_ROTATION, rotation);
|
||||||
|
|
||||||
if(rotation2==0.0f && rotation3==0.0f)
|
if(rotation2==0.0f && rotation3==0.0f)
|
||||||
{
|
{
|
||||||
rotation2 = sin(GetOrientation()/2);
|
rotation2 = f_rot1;
|
||||||
rotation3 = cos(GetOrientation()/2);
|
rotation3 = f_rot2;
|
||||||
}
|
}
|
||||||
|
|
||||||
SetFloatValue(GAMEOBJECT_PARENTROTATION+2, rotation2);
|
SetFloatValue(GAMEOBJECT_PARENTROTATION+2, rotation2);
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "7495"
|
#define REVISION_NR "7496"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue