Compare commits

...

5 Commits

Author SHA1 Message Date
tovjemam
90912c0b90 (Hopefully) fix vehicle wheels not turning after some time 2026-06-20 20:50:50 +02:00
tovjemam
b74417debd Change npc make enemy chances 2026-06-20 20:46:25 +02:00
tovjemam
c44695e580 Dont give player any weapons on spawn 2026-06-20 20:42:54 +02:00
tovjemam
759a256988 Air rifle / debug pickups 2026-06-20 20:42:40 +02:00
tovjemam
622105656b Add stuff to precache 2026-06-20 20:42:08 +02:00
6 changed files with 60 additions and 13 deletions

View File

@ -79,20 +79,20 @@ void game::NpcCharacter::SpawnLoot()
void game::NpcCharacter::MakeEnemy(net::EntNum enemy_num)
{
// it must have been a mistake
if (Chance(0.1f))
if (Chance(0.05f))
{
return;
}
// cant switch enemies that fast
auto time = GetWorld().GetTime();
if (enemy_num != enemy_num_ && time - enemy_time_ < 5000)
if (enemy_num_ > 0 && enemy_num != enemy_num_ && time - enemy_time_ < 5000)
{
return;
}
// increase anger
if (Chance(0.7f))
if (Chance(0.85f))
{
follow_enemy_ = true;
}

View File

@ -84,9 +84,10 @@ game::OpenWorld::OpenWorld(Game& game) : EnterableWorld("openworld"), game_(game
CreateTuningGarage(loc.transform.position, glm::eulerAngles(loc.transform.rotation).x);
}
CreatePermaItemPickups("pickup_uzi", "uzi");
CreatePermaItemPickups("pickup_ak47", "ak47");
CreatePermaItemPickups("pickup_airsniper", "airsniper");
CreatePermaItemPickups("airrifle");
CreatePermaItemPickups("airsniper");
CreatePermaItemPickups("ak47");
CreatePermaItemPickups("uzi");
SpawnNpcs();
@ -353,12 +354,19 @@ void game::OpenWorld::CreateTuningGarage(const glm::vec3& position, float yaw)
});
}
void game::OpenWorld::CreatePermaItemPickups(const std::string& loc_name, const std::string& item_name)
void game::OpenWorld::CreatePermaItemPickups(const std::string& item_name)
{
for (auto locs = GetMap().GetLocations(loc_name); const auto& loc : locs)
for (auto locs = GetMap().GetLocations("pickup_" + item_name); const auto& loc : locs)
{
CreatePermaItemPickup(loc.transform.position, item_name);
}
#ifndef NDEBUG
for (auto locs = GetMap().GetLocations("pickup_" + item_name + "_debug"); const auto& loc : locs)
{
CreatePermaItemPickup(loc.transform.position, item_name);
}
#endif
}
void game::OpenWorld::CreatePermaItemPickup(const glm::vec3& position, const std::string& item_name)

View File

@ -25,7 +25,7 @@ private:
void SpawnNpcVehicleWithPassengers();
void CreateTuningGarage(const glm::vec3& position, float yaw);
void CreatePermaItemPickups(const std::string& loc_name, const std::string& item_name);
void CreatePermaItemPickups(const std::string& item_name);
void CreatePermaItemPickup(const glm::vec3& position, const std::string& item);
void RecoverPlayer(Player& player);

View File

@ -12,8 +12,8 @@ game::PlayerCharacter::PlayerCharacter(World& world, Player& player, const Human
SendUseTargetInfo();
// give some shit
GiveItem(std::make_shared<ItemInstance>("airsniper"), false);
GiveAmmo("pellet", 50);
// GiveItem(std::make_shared<ItemInstance>("airsniper"), false);
// GiveAmmo("pellet", 50);
// GiveItem(std::make_shared<ItemInstance>("ak47"), false);
// GiveItem(std::make_shared<ItemInstance>("uzi"), false);
}

View File

@ -416,6 +416,7 @@ void game::Vehicle::UpdateWheels()
{
auto& bt_wheel = vehicle.getWheelInfo(i);
wheels_[i].speed = -(bt_wheel.m_rotation - wheels_[i].rotation) * 25.0f;
bt_wheel.m_rotation = glm::mod(bt_wheel.m_rotation, glm::two_pi<float>()); // prevent going too crazy
wheels_[i].rotation = bt_wheel.m_rotation;
wheels_[i].z_offset = tuning_ctx_.wheels[i].z_offset - bt_wheel.m_raycastInfo.m_suspensionLength;

View File

@ -33,14 +33,52 @@ game::view::WorldView::WorldView(ClientSession& session, net::InMessage& msg) :
map_->EnableObj(objnum, false);
}
// cache common snds and stuff
Cache(assets::CacheManager::GetSound("data/breaksign.snd"));
// break sounds
Cache(assets::CacheManager::GetSound("data/breakpatnik.snd"));
Cache(assets::CacheManager::GetSound("data/breaksign.snd"));
Cache(assets::CacheManager::GetSound("data/breakwindow.snd"));
Cache(assets::CacheManager::GetSound("data/breakwood.snd"));
Cache(assets::CacheManager::GetSound("data/cardoor.snd"));
Cache(assets::CacheManager::GetSound("data/crash.snd"));
// vehicles
Cache(assets::CacheManager::GetVehicleModel("data/avia.veh"));
Cache(assets::CacheManager::GetVehicleModel("data/passat.veh"));
Cache(assets::CacheManager::GetVehicleModel("data/pickup_hd.veh"));
Cache(assets::CacheManager::GetVehicleModel("data/polskifiat.veh"));
Cache(assets::CacheManager::GetVehicleModel("data/twingo.veh"));
// models
Cache(assets::CacheManager::GetModel("data/marker_base.mdl"));
Cache(assets::CacheManager::GetModel("data/marker_tuning.mdl"));
// items
Cache(assets::CacheManager::GetItem("data/airrifle.item"));
Cache(assets::CacheManager::GetItem("data/airsniper.item"));
Cache(assets::CacheManager::GetItem("data/ak47.item"));
Cache(assets::CacheManager::GetItem("data/uzi.item"));
// fire sounds
Cache(assets::CacheManager::GetSound("data/airrifle_fire.snd"));
Cache(assets::CacheManager::GetSound("data/ak_fire.snd"));
Cache(assets::CacheManager::GetSound("data/uzi_fire.snd"));
// other sounds
Cache(assets::CacheManager::GetSound("data/pickup_ammo.snd"));
Cache(assets::CacheManager::GetSound("data/cow-01.snd"));
Cache(assets::CacheManager::GetSound("data/cow-02.snd"));
Cache(assets::CacheManager::GetSound("data/cow-04.snd"));
Cache(assets::CacheManager::GetSound("data/cow-05.snd"));
// fx
Cache(assets::CacheManager::GetEffect("data/firefx.fx"));
Cache(assets::CacheManager::GetEffect("data/impact_dirt.fx"));
Cache(assets::CacheManager::GetEffect("data/impact_flesh.fx"));
Cache(assets::CacheManager::GetEffect("data/impact_grass.fx"));
Cache(assets::CacheManager::GetEffect("data/impact_metal.fx"));
Cache(assets::CacheManager::GetEffect("data/impact_stone.fx"));
Cache(assets::CacheManager::GetEffect("data/impact_wood.fx"));
env_ = std::make_unique<WorldEnv>();
env_->SetDayTime(12.0f);
}