Player cannot join the map because of vphysics (IVP at core_plausible_check()) crash #211

Closed
opened 2020-06-21 10:44:09 +00:00 by UAVXP · 10 comments
UAVXP commented 2020-06-21 10:44:09 +00:00 (Migrated from gitlab.com)

get_rot_inertia() from IVP is returning infs when starting a map
That's because of "player_stand" physics shadow inertia in SetupVPhysicsShadow. Calculation of it is done in IVP_Real_Object::init_object_core().
The "temporary"(?) solution is setting player physics shadow inertia not to 1e24f, but to some other value (I've set that to 0 just in case, and it's working fine for now).
The proper solution - is to determine what causes those wrong calculations

get_rot_inertia() from IVP is returning infs when starting a map That's because of "player_stand" physics shadow inertia in SetupVPhysicsShadow. Calculation of it is done in IVP_Real_Object::init_object_core(). The "temporary"(?) solution is setting player physics shadow inertia not to 1e24f, but to some other value (I've set that to 0 just in case, and it's working fine for now). The proper solution - is to determine what causes those wrong calculations
UAVXP commented 2020-06-21 10:44:14 +00:00 (Migrated from gitlab.com)

Looking for the proper solution

Looking for the proper solution
UAVXP commented 2020-06-21 10:44:19 +00:00 (Migrated from gitlab.com)

Looks like there's lack of precision for calculating the quad_length() (IVP_Real_Object::init_object_core() -->rot_inertia.real_length() --> quad_length())

http://cpp.sh/8ares

Looks like there's lack of precision for calculating the quad_length() (IVP_Real_Object::init_object_core() -->rot_inertia.real_length() --> quad_length()) http://cpp.sh/8ares
UAVXP commented 2020-06-21 10:44:23 +00:00 (Migrated from gitlab.com)

Actually, 1e24 is much greater than P_FLOAT_MAX definition in ivu_types.hxx, which is 1e20f. Why Valve decided to choose exactly 1e24? Not sure about this.

Actually, 1e24 is much greater than P_FLOAT_MAX definition in ivu_types.hxx, which is 1e20f. Why Valve decided to choose exactly 1e24? Not sure about this.
UAVXP commented 2020-06-21 10:44:59 +00:00 (Migrated from gitlab.com)
Fixed in https://gitlab.com/UAVXP/LeakNet/-/commit/799bbda5fa44aefd6897bf113838f38780e10c9f
UAVXP commented 2020-06-21 10:45:00 +00:00 (Migrated from gitlab.com)

closed

closed
UAVXP commented 2020-06-21 10:45:39 +00:00 (Migrated from gitlab.com)

I might change this magic constant through the whole codebase

gitlab.com/UAVXP/LeakNet/-@982ce40914

I might change this magic constant through the whole codebase https://gitlab.com/UAVXP/LeakNet/-/commit/982ce4091443bb86ee98d7eef8727cba2ef3b9b5
UAVXP commented 2020-06-21 10:56:38 +00:00 (Migrated from gitlab.com)

mentioned in issue #218

mentioned in issue #218
UAVXP commented 2021-12-17 10:29:05 +00:00 (Migrated from gitlab.com)

marked this issue as related to #353

marked this issue as related to #353
UAVXP commented 2021-12-17 10:30:05 +00:00 (Migrated from gitlab.com)

mentioned in issue #353

mentioned in issue #353
UAVXP commented 2026-06-25 09:47:31 +00:00 (Migrated from gitlab.com)
https://gitlab.com/leaknet/LeakNet/-/commit/748b1f58de65367533b5c5f56d674d0192bb0dca
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Archive/LeakNet#211
No description provided.