From 8465e0ab199e932e46aab4d531b0602ca4fad31a Mon Sep 17 00:00:00 2001 From: Meep-Eep Date: Sun, 22 Nov 2009 14:59:06 +0000 Subject: [PATCH] Further cleanup (or start thereof). git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@3339 8092fc87-c524-0410-9efc-e669fe64eaf9 --- sc2/src/uqm/planets/generate.h | 2 ++ sc2/src/uqm/planets/scan.c | 25 ++++++++++++++++++++++--- sc2/src/uqm/planets/scan.h | 4 ++++ 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/sc2/src/uqm/planets/generate.h b/sc2/src/uqm/planets/generate.h index a6cb0d7a8..f07dfbc4d 100644 --- a/sc2/src/uqm/planets/generate.h +++ b/sc2/src/uqm/planets/generate.h @@ -39,6 +39,8 @@ typedef struct GenerateFunctions GenerateFunctions; * solarSys->genFuncs->..., but use a function for this, which first * checks for solar system dependent handlers, and if this does not exist, * or returns false, calls the default function. + * - use isNodeRetrieved, setNodeRetrieved, and setNodeNotRetrieved instead + * of manually messing with bit shifts, etc. */ // Any of these functions returning true means that the action has been diff --git a/sc2/src/uqm/planets/scan.c b/sc2/src/uqm/planets/scan.c index fee69174d..ec41f943d 100644 --- a/sc2/src/uqm/planets/scan.c +++ b/sc2/src/uqm/planets/scan.c @@ -18,6 +18,7 @@ #include "lander.h" #include "lifeform.h" +#include "scan.h" #include "../build.h" #include "../cons_res.h" #include "../controls.h" @@ -1303,7 +1304,7 @@ GeneratePlanetSide (void) if (pSolarSysState->pOrbitalDesc->data_index & PLANET_SHIELDED) return; - memset (life_init_tab, 0, sizeof (life_init_tab)); + memset (life_init_tab, 0, sizeof life_init_tab); for (scan = BIOLOGICAL_SCAN; scan >= MINERAL_SCAN; --scan) { @@ -1323,8 +1324,8 @@ GeneratePlanetSide (void) HELEMENT hNodeElement; ELEMENT *NodeElementPtr; - if (pSolarSysState->SysInfo.PlanetInfo.ScanRetrieveMask[scan] - & (1L << num_nodes)) + if (isNodeRetrieved (&pSolarSysState->SysInfo.PlanetInfo, + scan, num_nodes)) continue; hNodeElement = AllocElement (); @@ -1404,4 +1405,22 @@ GeneratePlanetSide (void) } } +bool +isNodeRetrieved (PLANET_INFO *planetInfo, BYTE scanType, BYTE nodeNr) +{ + return (planetInfo->ScanRetrieveMask[scanType] & ((DWORD) 1 << nodeNr)) + != 0; +} + +void +setNodeRetrieved (PLANET_INFO *planetInfo, BYTE scanType, BYTE nodeNr) +{ + planetInfo->ScanRetrieveMask[scanType] |= ((DWORD) 1 << nodeNr); +} + +void +setNodeNotRetrieved (PLANET_INFO *planetInfo, BYTE scanType, BYTE nodeNr) +{ + planetInfo->ScanRetrieveMask[scanType] &= ~((DWORD) 1 << nodeNr); +} diff --git a/sc2/src/uqm/planets/scan.h b/sc2/src/uqm/planets/scan.h index 43cedac38..5547f9891 100644 --- a/sc2/src/uqm/planets/scan.h +++ b/sc2/src/uqm/planets/scan.h @@ -50,5 +50,9 @@ extern bool callGenerateForScanType (SOLARSYS_STATE *solarSys, extern void RedrawSurfaceScan (const POINT *newLoc); +bool isNodeRetrieved (PLANET_INFO *planetInfo, BYTE scanType, BYTE nodeNr); +void setNodeRetrieved (PLANET_INFO *planetInfo, BYTE scanType, BYTE nodeNr); +void setNodeNotRetrieved (PLANET_INFO *planetInfo, BYTE scanType, BYTE nodeNr); + #endif /* _SCAN_H */