Skip to content

Commit 99b9be7

Browse files
committed
some fixes
1 parent 2ff09b9 commit 99b9be7

File tree

4 files changed

+37
-18
lines changed

4 files changed

+37
-18
lines changed

src/Game/Scenes/Gameplay.cpp

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,10 @@ void Gameplay::UpdateChunks()
382382
{
383383
Game::instance->log->Write("Loading region: " + std::to_string(pos.x * regionSize) + ", " + std::to_string(pos.y * regionSize));
384384
toLoadedRegion.push_back(pos);
385-
wm->LoadRegion(pos.x, pos.y);
385+
loadPool.detach_task([this, pos]()
386+
{
387+
wm->LoadRegion(pos.x, pos.y);
388+
});
386389

387390
// Queue load for edge chunks
388391

@@ -403,7 +406,11 @@ void Gameplay::UpdateChunks()
403406
{
404407
Game::instance->log->Write("Loading region: " + std::to_string(pos.x * regionSize) + ", " + std::to_string(pos.y * regionSize));
405408
toLoadedRegion.push_back(pos);
406-
wm->LoadRegion(pos.x, pos.y);
409+
loadPool.detach_task([this, pos]()
410+
{
411+
wm->LoadRegion(pos.x, pos.y);
412+
});
413+
407414

408415
// Queue load for edge chunks
409416

@@ -424,7 +431,10 @@ void Gameplay::UpdateChunks()
424431
{
425432
Game::instance->log->Write("Loading region: " + std::to_string(pos.x * regionSize) + ", " + std::to_string(pos.y * regionSize));
426433
toLoadedRegion.push_back(pos);
427-
wm->LoadRegion(pos.x, pos.y);
434+
loadPool.detach_task([this, pos]()
435+
{
436+
wm->LoadRegion(pos.x, pos.y);
437+
});
428438

429439
// Queue load for edge chunks
430440

@@ -445,7 +455,10 @@ void Gameplay::UpdateChunks()
445455
{
446456
Game::instance->log->Write("Loading region: " + std::to_string(pos.x * regionSize) + ", " + std::to_string(pos.y * regionSize));
447457
toLoadedRegion.push_back(pos);
448-
wm->LoadRegion(pos.x, pos.y);
458+
loadPool.detach_task([this, pos]()
459+
{
460+
wm->LoadRegion(pos.x, pos.y);
461+
});
449462

450463
// Queue load for edge chunks
451464

@@ -479,8 +492,6 @@ void Gameplay::UpdateChunks()
479492
if (Settings::instance->fogDistance >= 2.0)
480493
fog = 10000;
481494

482-
float fovModifier = Settings::instance->fov / 75.0f;
483-
484495
for (Chunk* c : allChunks)
485496
{
486497
glm::vec3 fakePosC = glm::vec3(c->position.x, 0, c->position.z);
@@ -503,7 +514,7 @@ void Gameplay::UpdateChunks()
503514

504515
float angle = camera->YawAngleTo(fakePosC);
505516

506-
if ((angle <= (180 * fovModifier) || distance <= 32) && distance <= fog + 32)
517+
if ((angle <= 260 || distance <= 32) && distance <= fog + 32)
507518
{
508519
if (!c->isRendered || c->pleaseRender)
509520
{

src/Game/Scenes/SettingsMenu.cpp

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,13 @@ void SettingsMenu::Create()
5656

5757
c2d->AddObject(fov);
5858

59-
float renderDistancePerc = Settings::instance->renderDistance / 1.0f;
59+
float renderDistancePerc = Settings::instance->renderDistance / 2.0f;
6060

6161
if (renderDistancePerc < 0.1f)
6262
renderDistancePerc = 0.1f;
6363

64-
if (renderDistancePerc > 2.0f)
65-
renderDistancePerc = 2.0f;
64+
if (renderDistancePerc > 1.0f)
65+
renderDistancePerc = 1.0f;
6666

6767
renderDistance = new DragBar(glm::vec3(0, 0, 0), "Render Distance", renderDistancePerc);
6868

@@ -79,8 +79,8 @@ void SettingsMenu::Create()
7979
if (fogDistancePerc < 0.1f)
8080
fogDistancePerc = 0.1f;
8181

82-
if (fogDistancePerc > 2.0f)
83-
fogDistancePerc = 2.0f;
82+
if (fogDistancePerc > 1.0f)
83+
fogDistancePerc = 1.0f;
8484

8585
fogDistance = new DragBar(glm::vec3(0, 0, 0), "Fog Distance", fogDistancePerc);
8686

@@ -122,10 +122,6 @@ void SettingsMenu::Draw()
122122
else
123123
back->selected = false;
124124

125-
Settings::instance->fov = fov->value * 140;
126-
Settings::instance->renderDistance = renderDistance->value * 2.0f;
127-
Settings::instance->fogDistance = fogDistance->value * 1.2f;
128-
129125
Scene::Draw();
130126
}
131127

@@ -161,4 +157,15 @@ void SettingsMenu::Resize(float _w, float _h)
161157
{
162158
if (c2d != nullptr)
163159
c2d->Resize();
164-
}
160+
}
161+
162+
void SettingsMenu::Destroy()
163+
{
164+
Settings::instance->fov = fov->value * 140;
165+
Settings::instance->renderDistance = renderDistance->value * 2.0f;
166+
Settings::instance->fogDistance = fogDistance->value * 2.0f;
167+
168+
169+
Settings::instance->Save();
170+
Scene::Destroy();
171+
}

src/Game/Scenes/SettingsMenu.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ class SettingsMenu : public Scene
2828
void MouseClick(int button, glm::vec2 mPos) override;
2929
void MouseRelease(int button, glm::vec2 mPos) override;
3030
void Resize(float _w, float _h) override;
31+
32+
void Destroy() override;
3133
};
3234

3335
#endif

src/Game/WorldManager.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,6 @@ void WorldManager::CheckGeneratedRegions()
156156
{
157157
if (_generatedRegions.size() != 0)
158158
{
159-
std::lock_guard<std::mutex> lock(generateMutex);
160159
for (Region r : _generatedRegions)
161160
regions.push_back(r);
162161

0 commit comments

Comments
 (0)