tr2/objects/skidoo: fix snow wake effect

Resolves #2324.
This commit is contained in:
Marcin Kurczewski 2025-01-17 23:39:28 +01:00
parent a19ec24c0a
commit 284f2453a6
3 changed files with 5 additions and 3 deletions

View file

@ -30,6 +30,7 @@
- fixed /kill command freezing the game under rare circumstances (#2297, regression from 0.3)
- fixed wireframe mode discarding transparent pixels (#2315, regression from 0.7)
- fixed sprite pickups not being paused in the pause/inventory screen (#2319, regression from 0.6)
- fixed Skidoo snow wake effects at slow speeds (#2324, regression from 0.6)
## [0.8](https://github.com/LostArtefacts/TRX/compare/tr2-0.8...tr2-0.8) - 2025-01-01
- completed decompilation efforts  TR2X.dll is gone, Tomb2.exe no longer needed (#1694)

View file

@ -276,7 +276,7 @@ int32_t Skidoo_TestHeight(
return Room_GetHeight(sector, out_pos->x, out_pos->y, out_pos->z);
}
void Skidoo_DoSnowEffect(ITEM *const skidoo)
void Skidoo_DoSnowEffect(const ITEM *const skidoo)
{
const int16_t effect_num = Effect_Create(skidoo->room_num);
if (effect_num == NO_EFFECT) {
@ -296,7 +296,8 @@ void Skidoo_DoSnowEffect(ITEM *const skidoo)
effect->frame_num = 0;
effect->speed = 0;
if (skidoo->speed < 64) {
effect->fall_speed = (Random_GetDraw() * ABS(skidoo->speed)) >> 15;
effect->fall_speed =
(Random_GetDraw() * (ABS(skidoo->speed) - 64)) >> 15;
} else {
effect->fall_speed = 0;
}

View file

@ -20,7 +20,7 @@ void Skidoo_Collision(int16_t item_num, ITEM *lara_item, COLL_INFO *coll);
void Skidoo_BaddieCollision(ITEM *skidoo);
int32_t Skidoo_TestHeight(
const ITEM *item, int32_t z_off, int32_t x_off, XYZ_32 *out_pos);
void Skidoo_DoSnowEffect(ITEM *skidoo);
void Skidoo_DoSnowEffect(const ITEM *skidoo);
int32_t Skidoo_Dynamics(ITEM *skidoo);
int32_t Skidoo_UserControl(ITEM *skidoo, int32_t height, int32_t *out_pitch);
int32_t Skidoo_CheckGetOffOK(int32_t direction);