summaryrefslogtreecommitdiff
path: root/main.cpp
diff options
context:
space:
mode:
authorJapa2011-02-19 19:11:19 +0000
committerJapa2011-02-19 19:11:19 +0000
commitf1cd36716229dd3f0795824197b14dcd0d979540 (patch)
treea9391276cc5f0c569fe531996964a6cb57d2263e /main.cpp
parentd8523cd32f9aea85ce0ef0c6fb12c8562922dad2 (diff)
parentc2f73a1f356890e8ed6ada37a4613ce4836d4712 (diff)
downloadstonesense-f1cd36716229dd3f0795824197b14dcd0d979540.tar.gz
stonesense-f1cd36716229dd3f0795824197b14dcd0d979540.tar.bz2
stonesense-f1cd36716229dd3f0795824197b14dcd0d979540.tar.xz
merged in the multithreaded branch.
Diffstat (limited to 'main.cpp')
-rw-r--r--main.cpp22
1 files changed, 18 insertions, 4 deletions
diff --git a/main.cpp b/main.cpp
index 627e354..0e3502f 100644
--- a/main.cpp
+++ b/main.cpp
@@ -137,9 +137,9 @@ void SetTitle(const char *format, ...)
}
void correctBlockForSegmetOffset(int32_t& x, int32_t& y, int32_t& z){
- x -= viewedSegment->x;
- y -= viewedSegment->y; //DisplayedSegmentY;
- z -= viewedSegment->z + viewedSegment->sizez - 2; // loading one above the top of the displayed segment for block rules
+ x -= DisplayedSegmentX;
+ y -= DisplayedSegmentY; //DisplayedSegmentY;
+ z -= DisplayedSegmentZ + viewedSegment->sizez - 2; // loading one above the top of the displayed segment for block rules
}
void loadfont()
@@ -275,6 +275,7 @@ int main(void)
config.creditScreen = true;
config.bloodcutoff = 100;
config.poolcutoff = 100;
+ config.threadmade = 0;
initRandomCube();
loadConfigFile();
loadfont();
@@ -349,6 +350,9 @@ int main(void)
//DisplayedSegmentX = 242; DisplayedSegmentY = 345;DisplayedSegmentZ = 15;
+ config.readMutex = al_create_mutex();
+ config.readCond = al_create_cond();
+
#ifdef BENCHMARK
benchmark();
#endif
@@ -429,10 +433,20 @@ int main(void)
redraw = true;
}
}
+ if(config.threadmade)
+ {
+ al_broadcast_cond(config.readCond);
+ al_destroy_thread(config.readThread);
+ config.spriteIndexOverlay = 0;
+ }
flushImgFiles();
DisconnectFromDF();
- //dispose old segment
+ //dispose old segments
+ if(altSegment){
+ altSegment->Dispose();
+ delete(altSegment);
+ }
if(viewedSegment){
viewedSegment->Dispose();
delete(viewedSegment);