UFO: Alien Invasion
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
cp_geoscape.h File Reference

Header for Geoscape management. More...

Go to the source code of this file.

Macros

#define KILOMETER_PER_DEGREE   111.2 /* this is the conversion between distance in game (in degree) and km */
 
#define MapIsWater(color)   (color[0] == 0 && color[1] == 0 && color[2] == 64)
 
#define MapIsWestern(color)   (color[0] == 128 && color[1] == 255 && color[2] == 255)
 
#define MapIsEastern(color)   (color[0] == 255 && color[1] == 128 && color[2] == 0)
 
#define MapIsOriental(color)   (color[0] == 255 && color[1] == 0 && color[2] == 0)
 
#define MapIsAfrican(color)   (color[0] == 128 && color[1] == 128 && color[2] == 255)
 
#define MapIsUrban(color)   (color[0] == 128 && color[1] == 255 && color[2] == 255)
 
#define MapIsSuburban(color)   (color[0] == 255 && color[1] == 128 && color[2] == 0)
 
#define MapIsVillage(color)   (color[0] == 255 && color[1] == 0 && color[2] == 0)
 
#define MapIsRural(color)   (color[0] == 128 && color[1] == 128 && color[2] == 255)
 
#define MapIsNopopulation(color)   (color[0] == 128 && color[1] == 255 && color[2] == 0)
 
#define RASTER   2
 
#define GEO_IsAircraftSelected(aircraft)   ((aircraft) == ccs.geoscape.selectedAircraft)
 
#define GEO_IsInterceptorSelected(aircraft)   ((aircraft) == ccs.geoscape.interceptAircraft)
 
#define GEO_IsUFOSelected(ufo)   ((ufo) == ccs.geoscape.selectedUFO)
 
#define GEO_IsMissionSelected(mission)   ((mission) == ccs.geoscape.selectedMission)
 
#define GEO_GetSelectedAircraft()   (ccs.geoscape.selectedAircraft)
 
#define GEO_GetInterceptorAircraft()   (ccs.geoscape.interceptAircraft)
 
#define GEO_GetSelectedUFO()   (ccs.geoscape.selectedUFO)
 
#define GEO_GetSelectedMission()   (ccs.geoscape.selectedMission)
 
#define GEO_GetMissionAircraft()   (ccs.geoscape.missionAircraft)
 
#define GEO_SetSelectedAircraft(aircraft)   (ccs.geoscape.selectedAircraft = (aircraft))
 
#define GEO_SetInterceptorAircraft(interceptor)   (ccs.geoscape.interceptAircraft = (interceptor))
 
#define GEO_SetSelectedUFO(ufo)   (ccs.geoscape.selectedUFO = (ufo))
 
#define GEO_SetSelectedMission(mission)   (ccs.geoscape.selectedMission = (mission))
 
#define GEO_SetMissionAircraft(aircraft)   (ccs.geoscape.missionAircraft = (aircraft))
 

Functions

void GEO_DrawMarkers (const uiNode_t *node)
 Draws all ufos, aircraft, bases and so on to the geoscape map (2D and 3D) More...
 
bool GEO_Click (const uiNode_t *node, int x, int y, const vec2_t pos)
 Click on the map/geoscape. More...
 
nation_tGEO_GetNation (const vec2_t pos)
 Translate nation map color to nation. More...
 
float GEO_AngleOfPath (const vec2_t start, const vec2_t end, vec3_t direction, vec3_t ortVector)
 Select which function should be used for calculating the direction of model on 2D or 3D geoscape. More...
 
void GEO_CalcLine (const vec2_t start, const vec2_t end, mapline_t *line)
 Calculate the shortest way to go from start to end on a sphere. More...
 
void GEO_Draw (geoscapeData_t *data)
 Draw the geoscape. More...
 
void GEO_CenterOnPoint_f (void)
 Switch to next model on 2D and 3D geoscape. More...
 
void GEO_CenterPosition (const vec2_t pos)
 Start to rotate or shift the globe to the given position. More...
 
base_tGEO_PositionCloseToBase (const vec2_t pos)
 Check if given pos is close to an existing base. More...
 
void GEO_ResetAction (void)
 No more special action on the geoscape. More...
 
void GEO_SelectAircraft (aircraft_t *aircraft)
 Select the specified aircraft on the geoscape. More...
 
void GEO_SelectUFO (aircraft_t *ufo)
 Select the specified ufo on the geoscape. More...
 
struct mission_sGEO_SelectMission (struct mission_s *mission)
 Select the specified mission. More...
 
void GEO_NotifyMissionRemoved (const struct mission_s *mission)
 
void GEO_NotifyUFORemoved (const aircraft_t *ufo, bool destroyed)
 Notify that a UFO has been removed. More...
 
void GEO_NotifyAircraftRemoved (const aircraft_t *aircraft)
 Notify that an aircraft has been removed from game. More...
 
void GEO_NotifyUFODisappear (const aircraft_t *ufo)
 Notify that a UFO disappears on radars. More...
 
void GEO_InitStartup (void)
 Initialise MAP/Geoscape. More...
 
int GEO_GetCivilianNumberByPosition (const vec2_t pos)
 Get number of civilian on a map at given position. More...
 
void GEO_PrintParameterStringByPos (const vec2_t pos)
 Prints positions parameter in console. More...
 
void GEO_CheckPositionBoundaries (float *pos)
 Check that a position (in latitude / longitude) is within boundaries. More...
 
bool GEO_IsNight (const vec2_t pos)
 Check whether given position is Day or Night. More...
 
const byteGEO_GetColor (const vec2_t pos, mapType_t type, bool *coast)
 Returns the color value from geoscape of a certain mask (terrain, culture or population) at a given position. More...
 
void GEO_Init (const char *map)
 
void GEO_Reset (const char *map)
 
void GEO_Shutdown (void)
 
bool GEO_PositionFitsTCPNTypes (const vec2_t posT, const linkedList_t *terrainTypes, const linkedList_t *cultureTypes, const linkedList_t *populationTypes, const linkedList_t *nations)
 Checks for a given location, if it fulfills all criteria given via parameters (terrain, culture, population, nation type) More...
 
void GEO_SetOverlay (const char *overlayID, int status)
 Turn overlay on/off. More...
 
void GEO_UpdateGeoscapeDock (void)
 Will add missions and UFOs to the geoscape dock panel. More...
 
bool GEO_IsRadarOverlayActivated (void)
 
void CP_GetRandomPosOnGeoscape (vec2_t pos, bool noWater)
 Determines a random position on geoscape. More...
 
bool CP_GetRandomPosOnGeoscapeWithParameters (vec2_t pos, const linkedList_t *terrainTypes, const linkedList_t *cultureTypes, const linkedList_t *populationTypes, const linkedList_t *nations)
 Determines a random position on geoscape that fulfills certain criteria given via parameters. More...
 

Detailed Description

Header for Geoscape management.

Definition in file cp_geoscape.h.

Macro Definition Documentation

#define GEO_GetInterceptorAircraft ( )    (ccs.geoscape.interceptAircraft)

Definition at line 57 of file cp_geoscape.h.

Referenced by AM_Check_f(), and AM_Go_f().

#define GEO_GetMissionAircraft ( )    (ccs.geoscape.missionAircraft)
#define GEO_GetSelectedAircraft ( )    (ccs.geoscape.selectedAircraft)

Definition at line 56 of file cp_geoscape.h.

Referenced by CL_PopupChangeHomebase_f(), GEO_Click(), and GEO_Draw().

#define GEO_GetSelectedMission ( )    (ccs.geoscape.selectedMission)
#define GEO_GetSelectedUFO ( )    (ccs.geoscape.selectedUFO)

Definition at line 58 of file cp_geoscape.h.

Referenced by CL_PopupInterceptBaseClick_f(), GEO_Draw(), and GEO_NotifyUFORemoved().

#define GEO_IsAircraftSelected (   aircraft)    ((aircraft) == ccs.geoscape.selectedAircraft)
#define GEO_IsInterceptorSelected (   aircraft)    ((aircraft) == ccs.geoscape.interceptAircraft)

Definition at line 52 of file cp_geoscape.h.

Referenced by GEO_NotifyAircraftRemoved().

#define GEO_IsMissionSelected (   mission)    ((mission) == ccs.geoscape.selectedMission)
#define GEO_IsUFOSelected (   ufo)    ((ufo) == ccs.geoscape.selectedUFO)
#define GEO_SetInterceptorAircraft (   interceptor)    (ccs.geoscape.interceptAircraft = (interceptor))
#define GEO_SetMissionAircraft (   aircraft)    (ccs.geoscape.missionAircraft = (aircraft))
#define GEO_SetSelectedAircraft (   aircraft)    (ccs.geoscape.selectedAircraft = (aircraft))

Definition at line 62 of file cp_geoscape.h.

Referenced by CP_SpawnRescueMission(), GEO_ResetAction(), and GEO_SelectAircraft().

#define GEO_SetSelectedMission (   mission)    (ccs.geoscape.selectedMission = (mission))

Definition at line 65 of file cp_geoscape.h.

Referenced by CP_StartSelectedMission(), GEO_ResetAction(), and GEO_SelectMission().

#define GEO_SetSelectedUFO (   ufo)    (ccs.geoscape.selectedUFO = (ufo))

Definition at line 64 of file cp_geoscape.h.

Referenced by GEO_ResetAction(), and GEO_SelectUFO().

#define KILOMETER_PER_DEGREE   111.2 /* this is the conversion between distance in game (in degree) and km */

Definition at line 28 of file cp_geoscape.h.

Referenced by AIR_GetOperationRange().

#define MapIsAfrican (   color)    (color[0] == 128 && color[1] == 128 && color[2] == 255)

Definition at line 38 of file cp_geoscape.h.

Referenced by GEO_GetCultureType().

#define MapIsEastern (   color)    (color[0] == 255 && color[1] == 128 && color[2] == 0)

Definition at line 36 of file cp_geoscape.h.

Referenced by GEO_GetCultureType().

#define MapIsNopopulation (   color)    (color[0] == 128 && color[1] == 255 && color[2] == 0)

Definition at line 45 of file cp_geoscape.h.

Referenced by GEO_GetCivilianNumberByPosition().

#define MapIsOriental (   color)    (color[0] == 255 && color[1] == 0 && color[2] == 0)

Definition at line 37 of file cp_geoscape.h.

Referenced by GEO_GetCultureType().

#define MapIsRural (   color)    (color[0] == 128 && color[1] == 128 && color[2] == 255)

Definition at line 44 of file cp_geoscape.h.

Referenced by GEO_GetCivilianNumberByPosition(), and GEO_GetPopulationType().

#define MapIsSuburban (   color)    (color[0] == 255 && color[1] == 128 && color[2] == 0)

Definition at line 42 of file cp_geoscape.h.

Referenced by GEO_GetCivilianNumberByPosition(), and GEO_GetPopulationType().

#define MapIsUrban (   color)    (color[0] == 128 && color[1] == 255 && color[2] == 255)

Definition at line 41 of file cp_geoscape.h.

Referenced by GEO_GetCivilianNumberByPosition(), and GEO_GetPopulationType().

#define MapIsVillage (   color)    (color[0] == 255 && color[1] == 0 && color[2] == 0)

Definition at line 43 of file cp_geoscape.h.

Referenced by GEO_GetCivilianNumberByPosition(), and GEO_GetPopulationType().

#define MapIsWestern (   color)    (color[0] == 128 && color[1] == 255 && color[2] == 255)

Definition at line 35 of file cp_geoscape.h.

Referenced by GEO_GetCultureType().

#define RASTER   2

Definition at line 49 of file cp_geoscape.h.

Referenced by CP_GetRandomPosOnGeoscapeWithParameters().

Function Documentation

void CP_GetRandomPosOnGeoscape ( vec2_t  pos,
bool  noWater 
)

Determines a random position on geoscape.

Parameters
[out]posThe position that will be overwritten. pos[0] is within -180, +180. pos[1] within -90, +90.
[in]noWaterTrue if the position should not be on water
See also
CP_GetRandomPosOnGeoscapeWithParameters
Note
The random positions should be roughly uniform thanks to the non-uniform distribution used.
This function always returns a value.

Definition at line 2084 of file cp_geoscape.cpp.

References cgi, DEBUG_CLIENT, f, frand(), GEO_GetColor(), MapIsWater, MAPTYPE_TERRAIN, and todeg.

Referenced by AB_SetAlienBasePosition(), CP_AttackUFOCarrier_f(), UFO_SetRandomDest(), and UFO_SetRandomPos().

bool CP_GetRandomPosOnGeoscapeWithParameters ( vec2_t  pos,
const linkedList_t terrainTypes,
const linkedList_t cultureTypes,
const linkedList_t populationTypes,
const linkedList_t nations 
)

Determines a random position on geoscape that fulfills certain criteria given via parameters.

Parameters
[out]posThe position that will be overwritten with the random point fulfilling the criteria. pos[0] is within -180, +180. pos[1] within -90, +90.
[in]terrainTypesA linkedList_t containing a list of strings determining the acceptable terrain types (e.g. "grass") May be nullptr.
[in]cultureTypesA linkedList_t containing a list of strings determining the acceptable culture types (e.g. "western") May be nullptr.
[in]populationTypesA linkedList_t containing a list of strings determining the acceptable population types (e.g. "suburban") May be nullptr.
[in]nationsA linkedList_t containing a list of strings determining the acceptable nations (e.g. "asia"). May be nullptr
Returns
true if a location was found, otherwise false
Note
There may be no position fitting the parameters. The higher RASTER, the lower the probability to find a position.
See also
LIST_AddString
LIST_Delete
Note
When all parameters are nullptr, the algorithm assumes that it does not need to include "water" terrains when determining a random position
You should rather use CP_GetRandomPosOnGeoscape if there are no parameters (except water) to choose a random position
Todo:
  • cache the counted hits
Todo:
add EQUAL_EPSILON here?

Definition at line 2108 of file cp_geoscape.cpp.

References cgi, DEBUG_CLIENT, frand(), GEO_PositionFitsTCPNTypes(), RASTER, todeg, and Vector2Set.

Referenced by CP_HarvestMissionGo(), CP_ReconMissionGroundGo(), and TEST_F().

float GEO_AngleOfPath ( const vec2_t  start,
const vec2_t  end,
vec3_t  direction,
vec3_t  ortVector 
)

Select which function should be used for calculating the direction of model on 2D or 3D geoscape.

Parameters
[in]startLatitude and longitude of the position of the model.
[in]endLatitude and longitude of aimed point.
[in]directionvec3_t giving current direction of the model (nullptr if the model is idle).
[out]ortVectorIf not nullptr, this will be filled with the normalized vector around which rotation allows to go toward direction.
Returns
Angle (degrees) of rotation around the radius axis of earth for start going toward end. Zero value is the direction of North pole.

Definition at line 716 of file cp_geoscape.cpp.

References mapExtraData_s::flatgeoscape, GEO_AngleOfPath2D(), GEO_AngleOfPath3D(), geoscapeNode, and UI_MAPEXTRADATA.

Referenced by AIRFIGHT_GetNextPointInPath(), GEO_DrawMapOnePhalanxAircraft(), and GEO_DrawMarkers().

void GEO_CalcLine ( const vec2_t  start,
const vec2_t  end,
mapline_t line 
)

Calculate the shortest way to go from start to end on a sphere.

Parameters
[in]startThe point you start from
[in]endThe point you go to
[out]lineContains the shortest path to go from start to end
See also
GEO_MapDrawLine

Definition at line 371 of file cp_geoscape.cpp.

References CrossProduct(), mapline_s::distance, i, LINE_MAXPTS, LINE_MAXSEG, M_PI, mapline_s::numPoints, mapline_s::point, PolarToVec(), todeg, torad, v, VecToPolar(), Vector2Set, VectorEqual, VectorNormalize(), and VectorSet.

Referenced by AIR_AircraftReturnToBase(), AIR_SendAircraftPursuingUFO(), AIR_SendAircraftToMission(), GEO_Click(), UFO_SearchAircraftTarget(), UFO_SendPursuingAircraft(), and UFO_SendToDestination().

void GEO_CenterOnPoint_f ( void  )

Switch to next model on 2D and 3D geoscape.

Note
Set smoothRotation to true to allow a smooth rotation in GEO_Draw.
This function sets the value of smoothFinalGlobeAngle (for 3D) or smoothFinal2DGeoscapeCenter (for 2D), which contains the final value that ccs.angles or ccs.centre must respectively take.

Definition at line 971 of file cp_geoscape.cpp.

References centerOnEventIdx, cgi, GEO_CenterPosition(), GEO_GetGeoscapeAngle(), geoscapeNode, Q_streq, and cgame_import_s::UI_GetActiveWindowName().

void GEO_CenterPosition ( const vec2_t  pos)

Start to rotate or shift the globe to the given position.

Parameters
[in]posLongitude and latitude of the position to center on

Definition at line 810 of file cp_geoscape.cpp.

References mapExtraData_s::flatgeoscape, GEO_ConvertObjectPositionToGeoscapePosition(), GEO_StartCenter(), geoscapeNode, mapExtraData_s::smoothFinal2DGeoscapeCenter, mapExtraData_s::smoothFinalGlobeAngle, and UI_MAPEXTRADATA.

Referenced by CP_SpawnUFOCarrier_f(), and GEO_CenterOnPoint_f().

void GEO_CheckPositionBoundaries ( float *  pos)

Check that a position (in latitude / longitude) is within boundaries.

Parameters
[in,out]posPointer to the 2 elements vector giving the position.

Definition at line 1890 of file cp_geoscape.cpp.

Referenced by AIR_AircraftMakeMove(), AIR_Move(), and UFO_CampaignRunUFOs().

bool GEO_Click ( const uiNode_t node,
int  x,
int  y,
const vec2_t  pos 
)
void GEO_DrawMarkers ( const uiNode_t node)

Draws all ufos, aircraft, bases and so on to the geoscape map (2D and 3D)

Parameters
[in]nodeThe menu node which will be used for drawing markers.
Note
This is a drawing function only, called each time a frame is drawn. Therefore you should not use this function to calculate eg. the distance between 2 items on the geoscape (you should instead calculate it just after one of the items moved – distance is not going to change when you rotate the earth around itself and the time is stopped eg.).
See also
GEO_Draw
Todo:
we should only show healthbar if aircraft is fighting but it's a slow algo

Definition at line 1431 of file cp_geoscape.cpp.

References _, aircraftProjectile_s::aimedAircraft, AIR_Foreach, AIR_IsAircraftOnGeoscape(), aircraftProjectile_s::aircraftItem, ALIGN_UC, aircraftProjectile_s::angle, aircraftProjectile_s::attackerPos, aircraftProjectile_s::attackingAircraft, B_GetNext(), aircraftProjectile_s::beam, craftitem_s::beamColor, aircraftProjectile_s::bullets, ccs, cgi, uiNode_t::color, CP_IsXVIVisible(), objDef_s::craftitem, aircraft_s::direction, f, mapExtraData_s::flatgeoscape, ccs_s::frametime, ccs_s::gameTimeScale, GEO_3DMapDrawLine(), GEO_AllMapToScreen(), GEO_AngleOfPath(), GEO_Draw3DMarkerIfVisible(), GEO_DrawAircraftHealthBar(), GEO_DrawBeam(), GEO_DrawBullets(), GEO_DrawMapOneBase(), GEO_DrawMapOneInstallation(), GEO_DrawMapOneMission(), GEO_DrawMapOnePhalanxAircraft(), GEO_IsUFOSelected, GEO_MapDrawEquidistantPoints(), GEO_MapDrawLine(), GEO_RenderImage(), aircraftProjectile_s::hasMoved, i, aircraftProjectile_s::idleTarget, INS_Foreach, LinearInterpolation, MIS_Foreach, aircraft_s::model, objDef_s::model, NAT_Foreach, NAT_GetCurrentMonthInfo(), aircraftProjectile_s::numInterpolationPoints, mapline_s::numPoints, ccs_s::numProjectiles, mapline_s::point, aircraftProjectile_s::pos, aircraft_s::pos, aircraftProjectile_s::projectedPos, ccs_s::projectiles, Q_strcat(), aircraft_s::route, RS_IsResearched_ptr(), SELECT_CIRCLE_RADIUS, aircraft_s::tech, TEXT_XVI, UFO_GetNextOnGeoscape(), cgame_import_s::UI_GetFontFromNode(), UI_MAPEXTRADATACONST, VectorCopy, nationInfo_s::xviInfection, and yellow.

int GEO_GetCivilianNumberByPosition ( const vec2_t  pos)

Get number of civilian on a map at given position.

Parameters
[in]posPosition where the mission takes place.
Returns
Number of civilian.
See also
CP_CreateCivilianTeam

Definition at line 1848 of file cp_geoscape.cpp.

References cgi, ERR_DROP, GEO_GetColor(), MapIsNopopulation, MapIsRural, MapIsSuburban, MapIsUrban, MapIsVillage, MapIsWater, and MAPTYPE_POPULATION.

Referenced by CP_CreateCivilianTeam().

const byte* GEO_GetColor ( const vec2_t  pos,
mapType_t  type,
bool *  coast 
)

Returns the color value from geoscape of a certain mask (terrain, culture or population) at a given position.

Parameters
[in]posvec2_t Value of position on map to get the color value from. pos is longitude and latitude
[in]typedetermine the map to get the color from (there are different masks) one for the climatezone (bases made use of this - there are grass, ice and desert base tiles available) and one for the nations
[out]coastThe function will set this to true if the given position is a coast line. This can be nullptr if you are not interested in this fact.
Returns
Returns the color value at given position.
Note
terrainPic, culturePic and populationPic are pointers to an rgba image in memory
Todo:
add EQUAL_EPSILON here?

Definition at line 1934 of file cp_geoscape.cpp.

References cgi, cultureHeight, culturePic, cultureWidth, ERR_DROP, MapIsWater, MAPTYPE_CULTURE, MAPTYPE_NATIONS, MAPTYPE_POPULATION, MAPTYPE_TERRAIN, nationsHeight, nationsPic, nationsWidth, populationHeight, populationPic, populationWidth, terrainHeight, terrainPic, and terrainWidth.

Referenced by AIR_PilotSurvivedCrash(), AIRFIGHT_ActionsAfterAirfight(), B_MoveAircraftOnGeoscapeToOtherBases(), CP_ChooseMap(), CP_CreateBattleParameters(), CP_GetRandomPosOnGeoscape(), CP_SpawnUFOCarrier_f(), CP_UpdateNationXVIInfection(), GEO_Click(), GEO_GetCivilianNumberByPosition(), GEO_GetCultureTypeByPos(), GEO_GetNation(), GEO_GetPopulationTypeByPos(), GEO_GetTerrainTypeByPos(), GEO_PositionFitsTCPNTypes(), NAT_ScriptSanityCheck(), and TEST_F().

nation_t* GEO_GetNation ( const vec2_t  pos)

Translate nation map color to nation.

See also
GEO_GetColor
Parameters
[in]posMap Coordinates to get the nation from
Returns
returns the nation pointer with the given color on nationPic at given pos
nullptr if no nation with the given color value was found
Note
The coordinates already have to be transformed to map coordinates via GEO_ScreenToMap

Definition at line 1744 of file cp_geoscape.cpp.

References cgi, DEBUG_CLIENT, GEO_GetColor(), MAPTYPE_NATIONS, NAT_Foreach, and VectorEqualEpsilon.

Referenced by AB_BaseSearchedByNations(), B_BuildBase_f(), CP_BuildBaseGovernmentLeave(), CP_ChangeNationHappiness_f(), CP_CreateCivilianTeam(), CP_MissionGetMessage(), CP_UpdateNationXVIInfection(), GEO_PositionFitsTCPNTypes(), INS_BuildInstallation_f(), INS_FillUFOYardData_f(), MIS_GetName(), NAT_UpdateHappinessForAllNations(), and US_FillUFOTransfer_f().

void GEO_InitStartup ( void  )

Initialise MAP/Geoscape.

Definition at line 2293 of file cp_geoscape.cpp.

References cgi, CVAR_DEVELOPER, cgame_import_s::Cvar_Get(), GEO_ResetAction(), GEO_SelectObject_f(), and GEO_SetOverlay_f().

Referenced by CP_InitStartup().

bool GEO_IsNight ( const vec2_t  pos)

Check whether given position is Day or Night.

Parameters
[in]posGiven position.
Returns
True if given position is Night.

Definition at line 1907 of file cp_geoscape.cpp.

References ccs, COS_ALPHA, ccs_s::date, date_s::day, DAYS_PER_YEAR_AVG, M_PI, date_s::sec, SECONDS_PER_DAY, SIN_ALPHA, and torad.

Referenced by B_AssembleMap_f(), BATTLE_Start(), and GEO_DrawMapOneMission().

void GEO_NotifyAircraftRemoved ( const aircraft_t aircraft)

Notify that an aircraft has been removed from game.

Parameters
[in]aircraftPointer to the aircraft that has been removed

Definition at line 1729 of file cp_geoscape.cpp.

References GEO_IsAircraftSelected, GEO_IsInterceptorSelected, and GEO_ResetAction().

Referenced by AIR_DeleteAircraft().

void GEO_NotifyMissionRemoved ( const struct mission_s mission)
void GEO_NotifyUFODisappear ( const aircraft_t ufo)

Notify that a UFO disappears on radars.

Definition at line 2235 of file cp_geoscape.cpp.

References GEO_IsUFOSelected, GEO_ResetAction(), and GEO_UpdateGeoscapeDock().

Referenced by UFO_CampaignCheckEvents().

void GEO_NotifyUFORemoved ( const aircraft_t ufo,
bool  destroyed 
)

Notify that a UFO has been removed.

Parameters
[in]ufoPointer to the ufo has been removed
[in]destroyedTrue if the UFO has been destroyed, false if it's been only set invisible (landed)
Todo:
convert to linked list

Definition at line 1710 of file cp_geoscape.cpp.

References ccs, GEO_GetSelectedUFO, GEO_IsUFOSelected, GEO_ResetAction(), GEO_UpdateGeoscapeDock(), ccs_s::geoscape, and ccs_s::selectedUFO.

Referenced by CP_UFORemoveFromGeoscape().

base_t* GEO_PositionCloseToBase ( const vec2_t  pos)

Check if given pos is close to an existing base.

Returns
Pointer to the base if one base is closer than MIN_DIST_BASE from pos, nullptr else

Definition at line 2029 of file cp_geoscape.cpp.

References B_GetNext(), GetDistanceOnGlobe(), MIN_DIST_BASE, and base_s::pos.

Referenced by AB_SetAlienBasePosition(), CP_HarvestMissionGo(), CP_ReconMissionGroundGo(), and CP_TerrorMissionGo().

bool GEO_PositionFitsTCPNTypes ( const vec2_t  pos,
const linkedList_t terrainTypes,
const linkedList_t cultureTypes,
const linkedList_t populationTypes,
const linkedList_t nations 
)

Checks for a given location, if it fulfills all criteria given via parameters (terrain, culture, population, nation type)

Parameters
[in]posLocation to be tested
[in]terrainTypesA linkedList_t containing a list of strings determining the terrain types to be tested for (e.g. "grass") may be nullptr
[in]cultureTypesA linkedList_t containing a list of strings determining the culture types to be tested for (e.g. "western") may be nullptr
[in]populationTypesA linkedList_t containing a list of strings determining the population types to be tested for (e.g. "suburban") may be nullptr
[in]nationsA linkedList_t containing a list of strings determining the nations to be tested for (e.g. "asia") may be nullptr
Returns
true if a location was found, otherwise false. If the map is over water, return false
Note
The name TCPNTypes comes from terrain, culture, population, nation types

Definition at line 2049 of file cp_geoscape.cpp.

References cgi, GEO_GetColor(), GEO_GetCultureTypeByPos(), GEO_GetNation(), GEO_GetPopulationTypeByPos(), GEO_GetTerrainTypeByPos(), nation_s::id, cgame_import_s::LIST_ContainsString(), MapIsWater, and MAPTYPE_TERRAIN.

Referenced by CP_GetRandomPosOnGeoscapeWithParameters(), CP_MapIsSelectable(), and NAT_ScriptSanityCheck().

void GEO_PrintParameterStringByPos ( const vec2_t  pos)

Prints positions parameter in console.

Parameters
[in]posLocation (latitude, longitude) where you want to check
Note
Used for printing in console, do not translate.
See also
NAT_ScriptSanityCheck

Definition at line 1875 of file cp_geoscape.cpp.

References cgi, GEO_GetCultureTypeByPos(), GEO_GetPopulationTypeByPos(), and GEO_GetTerrainTypeByPos().

Referenced by NAT_ScriptSanityCheck().

void GEO_Reset ( const char *  map)

Definition at line 2224 of file cp_geoscape.cpp.

References GEO_Init(), GEO_ResetAction(), GEO_Shutdown(), and GEO_UpdateGeoscapeDock().

Referenced by CP_CampaignInit(), and CP_LoadXML().

void GEO_SelectAircraft ( aircraft_t aircraft)

Select the specified aircraft on the geoscape.

Definition at line 1673 of file cp_geoscape.cpp.

References GEO_ResetAction(), and GEO_SetSelectedAircraft.

Referenced by AIM_AircraftStart_f(), AIR_GeoSelectAircraft_f(), AIR_MoveAircraftIntoNewHomebase(), CL_DisplayHomebasePopup(), and GEO_GetGeoscapeAngle().

struct mission_s* GEO_SelectMission ( mission_t mission)

Select the specified mission.

Parameters
[in]missionPointer to the mission to select
Returns
pointer to the selected mission

Definition at line 1684 of file cp_geoscape.cpp.

References GEO_GetSelectedMission, GEO_IsMissionSelected, GEO_ResetAction(), and GEO_SetSelectedMission.

Referenced by AIR_Move(), CP_BaseAttackPrepareBattle(), GEO_GetGeoscapeAngle(), GEO_GetMissionAngle(), and MIS_GeoSelectMission_f().

void GEO_SelectUFO ( aircraft_t ufo)

Select the specified ufo on the geoscape.

Definition at line 1664 of file cp_geoscape.cpp.

References GEO_ResetAction(), and GEO_SetSelectedUFO.

Referenced by GEO_GetGeoscapeAngle(), GEO_GetUFOAngle(), and UFO_GeoSelectUFO_f().

void GEO_SetOverlay ( const char *  overlayID,
int  status 
)

Turn overlay on/off.

Parameters
[in]overlayIDName of the overlay you want to switch.
[in]statusOn/Off status to set

Definition at line 2249 of file cp_geoscape.cpp.

References B_AtLeastOneExists, cgi, GEO_IsRadarOverlayActivated(), Q_streq, and RADAR_UpdateWholeRadarOverlay().

Referenced by B_BuildBase_f(), B_SelectBase(), GEO_ResetAction(), GEO_SetOverlay_f(), INS_BuildInstallation_f(), INS_SelectType_f(), RADAR_DeactivateRadarOverlay(), and UFO_DetectNewUFO().

void GEO_Shutdown ( void  )

Definition at line 2186 of file cp_geoscape.cpp.

References cgi, culturePic, nationsPic, populationPic, and terrainPic.

Referenced by CP_Shutdown(), GEO_Reset(), and CampaignTest::SetUp().