From d95500971b36c39ebffc784aada6c8a9b8204390 Mon Sep 17 00:00:00 2001 From: JT Traub Date: Tue, 7 May 2024 18:43:38 -0700 Subject: [PATCH] Fix logic bug in world generation map code * Pulls in changes from PR#53 * All games except neworigins and standard had this bug - it had been previously fixed (partially) in those 2 codebases, but added parens to make sure comparison was correct. --- basic/map.cpp | 2 +- fracas/map.cpp | 2 +- havilah/map.cpp | 2 +- kingdoms/map.cpp | 2 +- neworigins/map.cpp | 2 +- standard/map.cpp | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/basic/map.cpp b/basic/map.cpp index 2cb13e3f..49191a35 100644 --- a/basic/map.cpp +++ b/basic/map.cpp @@ -498,7 +498,7 @@ void ARegionList::MakeLand(ARegionArray *pRegs, int percentOcean, } for (int i=0; iyloc < yoff*2) && ((dir < 2) || (dir = NDIRS-1)) + if ((reg->yloc < yoff*2) && ((dir < 2) || (dir == (NDIRS-1))) && (getrandom(4) < 3)) continue; if ((reg->yloc > (yband+yoff)*2) && ((dir < 5) && (dir > 1)) && (getrandom(4) < 3)) continue; diff --git a/fracas/map.cpp b/fracas/map.cpp index 4b435c0d..c5e3d9d1 100644 --- a/fracas/map.cpp +++ b/fracas/map.cpp @@ -498,7 +498,7 @@ void ARegionList::MakeLand(ARegionArray *pRegs, int percentOcean, } for (int i=0; iyloc < yoff*2) && ((dir < 2) || (dir = NDIRS-1)) + if ((reg->yloc < yoff*2) && ((dir < 2) || (dir == (NDIRS-1))) && (getrandom(4) < 3)) continue; if ((reg->yloc > (yband+yoff)*2) && ((dir < 5) && (dir > 1)) && (getrandom(4) < 3)) continue; diff --git a/havilah/map.cpp b/havilah/map.cpp index 364e08f0..39318e41 100644 --- a/havilah/map.cpp +++ b/havilah/map.cpp @@ -506,7 +506,7 @@ void ARegionList::MakeLand(ARegionArray *pRegs, int percentOcean, } for (int i=0; iyloc < yoff*2) && ((dir < 2) || (dir = NDIRS-1)) + if ((reg->yloc < yoff*2) && ((dir < 2) || (dir == (NDIRS-1))) && (getrandom(4) < 3)) continue; if ((reg->yloc > (yband+yoff)*2) && ((dir < 5) && (dir > 1)) && (getrandom(4) < 3)) continue; diff --git a/kingdoms/map.cpp b/kingdoms/map.cpp index 1bc2e335..9fb98db5 100644 --- a/kingdoms/map.cpp +++ b/kingdoms/map.cpp @@ -643,7 +643,7 @@ void ARegionList::MakeLand(ARegionArray *pRegs, int percentOcean, } for (int i=0; iyloc < yoff*2) && ((dir < 2) || (dir = NDIRS-1)) + if ((reg->yloc < yoff*2) && ((dir < 2) || (dir == (NDIRS-1))) && (getrandom(4) < 3)) continue; if ((reg->yloc > (yband+yoff)*2) && ((dir < 5) && (dir > 1)) && (getrandom(4) < 3)) continue; diff --git a/neworigins/map.cpp b/neworigins/map.cpp index 355bc0e2..f7b76998 100644 --- a/neworigins/map.cpp +++ b/neworigins/map.cpp @@ -2162,7 +2162,7 @@ void ARegionList::MakeLand(ARegionArray *pRegs, int percentOcean, } for (int i=0; iyloc < yoff*2) && ((dir < 2) || (dir == NDIRS-1)) + if ((reg->yloc < yoff*2) && ((dir < 2) || (dir == (NDIRS-1))) && (getrandom(4) < 3)) continue; if ((reg->yloc > (yband+yoff)*2) && ((dir < 5) && (dir > 1)) && (getrandom(4) < 3)) continue; diff --git a/standard/map.cpp b/standard/map.cpp index e0b1d216..475abb89 100644 --- a/standard/map.cpp +++ b/standard/map.cpp @@ -485,7 +485,7 @@ void ARegionList::MakeLand(ARegionArray *pRegs, int percentOcean, } for (int i=0; iyloc < yoff*2) && ((dir < 2) || (dir == NDIRS-1)) + if ((reg->yloc < yoff*2) && ((dir < 2) || (dir == (NDIRS-1))) && (getrandom(4) < 3)) continue; if ((reg->yloc > (yband+yoff)*2) && ((dir < 5) && (dir > 1)) && (getrandom(4) < 3)) continue;