diff --git a/src/controller.h b/src/controller.h index 630174b..0f27977 100644 --- a/src/controller.h +++ b/src/controller.h @@ -1351,6 +1351,9 @@ struct Controller { updateJoints(); + int towardPart = rand() % model->mCount; + vec3 laraPos = game->getLara(pos)->pos; + int roomIndex = getRoomIndex(); for (int i = 0; i < model->mCount; i++) { if (!(mask & (1 << i))) @@ -1359,6 +1362,10 @@ struct Controller { float angle = randf() * PI * 2.0f; vec2 speed = vec2(randf(), -randf()) * (getEntity().type == TR::Entity::ENEMY_GIANT_MUTANT ? 256.0f : 128.0f); + if ((rand() % 4) == 0) { + angle = (laraPos - joints[i].pos).angleY(); + } + ExplodePart &part = explodeParts[i]; part.basis = joints[i]; part.basis.w = 1.0f; diff --git a/src/level.h b/src/level.h index c0143e2..04d2e0b 100644 --- a/src/level.h +++ b/src/level.h @@ -511,6 +511,10 @@ struct Level : IGame { Core::lightColor[3] = vec4(0, 0, 0, 1); } + if (type == Shader::SPRITE) { + alphaTest = true; + } + setShader(Core::pass, type, room.flags.water, alphaTest); if (room.flags.water) {