naev 0.12.5
faction.h
1/*
2 * See Licensing and Copyright notice in naev.h
3 */
4#pragma once
5
6#include "colour.h"
7#include "nlua.h"
8#include "opengl_tex.h"
9#include "space_fdecl.h"
10
11extern int faction_player;
12
13#define FACTION_PLAYER \
14 faction_player
15#define FACTION_LOGO_SM 64
16
17typedef struct FactionGenerator_ {
18 int id;
19 double weight;
21
22/* Get stuff */
23int faction_isFaction( int f );
24int faction_exists( const char *name );
25int faction_get( const char *name );
26int *faction_getAll( void );
27int *faction_getAllVisible( void );
28int *faction_getKnown();
29int faction_isStatic( int id );
30int faction_isInvisible( int id );
31int faction_setInvisible( int id, int state );
32int faction_isKnown( int id );
33int faction_isDynamic( int id );
34const char *faction_name( int f );
35const char *faction_shortname( int f );
36const char *faction_longname( int f );
37const char *faction_mapname( int f );
38const char *faction_description( int f );
39const char *faction_default_ai( int f );
40const char *const *faction_tags( int f );
42double faction_lane_base_cost( int f );
43void faction_clearEnemy( int f );
44void faction_addEnemy( int f, int o );
45void faction_rmEnemy( int f, int o );
46void faction_clearAlly( int f );
47void faction_addAlly( int f, int o );
48void faction_rmAlly( int f, int o );
49nlua_env faction_getScheduler( int f );
50nlua_env faction_getEquipper( int f );
51const glTexture *faction_logo( int f );
52const glColour *faction_colour( int f );
53const int *faction_getEnemies( int f );
54const int *faction_getAllies( int f );
55int *faction_getGroup( int which );
56int faction_usesHiddenJumps( int f );
58
59/* Set stuff */
60int faction_setKnown( int id, int state );
61double faction_reputationOverride( int f, int *set );
62void faction_setReputationOverride( int f, int set, double value );
63
64/* player stuff */
65double faction_hit( int f, const StarSystem *sys, double mod,
66 const char *source, int single );
67double faction_hitTest( int f, const StarSystem *sys, double mod,
68 const char *source );
69void faction_modPlayer( int f, double mod, const char *source );
70void faction_modPlayerSingle( int f, double mod, const char *source );
71void faction_modPlayerRaw( int f, double mod );
72void faction_setReputation( int f, double value );
73double faction_reputation( int f );
74double faction_reputationDefault( int f );
75int faction_isPlayerFriend( int f );
76int faction_isPlayerEnemy( int f );
77int faction_isPlayerFriendSystem( int f, const StarSystem *sys );
78int faction_isPlayerEnemySystem( int f, const StarSystem *sys );
79const char *faction_getStandingText( int f );
80const char *faction_getStandingTextAtValue( int f, double value );
81const char *faction_getStandingBroad( int f, int bribed, int override );
82double faction_reputationMax( int f );
83const glColour *faction_reputationColour( int f );
85const glColour *faction_reputationColourSystem( int f, const StarSystem *sys );
86char faction_reputationColourCharSystem( int f, const StarSystem *sys );
87void faction_applyLocalThreshold( int f, StarSystem *sys );
88void faction_updateSingle( int f );
89void faction_updateGlobal( void );
90
91/* Works with only factions */
92int areEnemies( int a, int b );
93int areNeutral( int a, int b );
94int areAllies( int a, int b );
95int areEnemiesSystem( int a, int b, const StarSystem *sys );
96int areAlliesSystem( int a, int b, const StarSystem *sys );
97
98/* load/free */
99int factions_load( void );
100void factions_loadPost( void );
101void factions_free( void );
102void factions_reset( void );
103void factions_resetLocal( void );
104void factions_cleanLocal( void );
105void faction_clearKnown( void );
106
107/* Dynamic factions. */
108void factions_clearDynamic( void );
109int faction_dynAdd( int base, const char *name, const char *display,
110 const char *ai, const glColour *colour );
const char * faction_getStandingBroad(int f, int bribed, int override)
Gets the broad faction standing.
Definition faction.c:1322
const char * faction_longname(int f)
Gets the faction's long name (formal, human-readable).
Definition faction.c:373
const glColour * faction_reputationColour(int f)
Gets the colour of the faction based on it's standing with the player.
Definition faction.c:1196
int faction_isPlayerEnemy(int f)
Gets whether or not the player is an enemy of the faction.
Definition faction.c:1179
int faction_exists(const char *name)
Checks to see if a faction exists by name.
Definition faction.c:198
const char * faction_default_ai(int f)
Gets the name of the default AI profile for the faction's pilots.
Definition faction.c:424
const int * faction_getEnemies(int f)
Gets the list of enemies of a faction.
Definition faction.c:509
int faction_dynAdd(int base, const char *name, const char *display, const char *ai, const glColour *colour)
Dynamically add a faction.
Definition faction.c:2397
int faction_player
Definition faction.c:57
void faction_rmAlly(int f, int o)
Removes an ally from the faction's allies list.
Definition faction.c:732
int faction_isKnown(int id)
Is the faction known?
Definition faction.c:300
int faction_isFaction(int f)
Checks whether or not a faction is valid.
Definition faction.c:1539
double faction_reputationDefault(int f)
Gets the player's default standing with a faction.
Definition faction.c:1148
void faction_updateGlobal(void)
Computes the global faction standing for each of the factions.
Definition faction.c:1907
const glTexture * faction_logo(int f)
Gets the faction's logo (ideally 256x256).
Definition faction.c:479
nlua_env faction_getEquipper(int f)
Gets the equipper state associated to the faction scheduler.
Definition faction.c:770
int factions_load(void)
Loads up all the factions from the data file.
Definition faction.c:1994
void faction_clearEnemy(int f)
Clears all the enemies of a dynamic faction.
Definition faction.c:568
void factions_reset(void)
Resets player standing and flags of factions to default.
Definition faction.c:1858
void faction_rmEnemy(int f, int o)
Removes an enemy from the faction's enemies list.
Definition faction.c:636
int faction_isPlayerFriend(int f)
Gets whether or not the player is a friend of the faction.
Definition faction.c:1162
int areEnemies(int a, int b)
Checks whether two factions are enemies.
Definition faction.c:1450
void factions_clearDynamic(void)
Clears dynamic factions.
Definition faction.c:2376
int * faction_getGroup(int which)
Returns an array of faction ids.
Definition faction.c:2294
const char *const * faction_tags(int f)
Gets the tags the faction has.
Definition faction.c:439
double faction_hit(int f, const StarSystem *sys, double mod, const char *source, int single)
Handles a faction hit against a faction and how to apply it.
Definition faction.c:871
double faction_hitTest(int f, const StarSystem *sys, double mod, const char *source)
Tests a faction hit to see how much it would apply. Does not actually modify standing.
Definition faction.c:903
const char * faction_name(int f)
Gets a factions "real" (internal) name.
Definition faction.c:331
const char * faction_shortname(int f)
Gets a factions short name (human-readable).
Definition faction.c:350
const char * faction_getStandingText(int f)
Gets the player's standing in human readable form.
Definition faction.c:1257
int faction_isDynamic(int id)
Is faction dynamic.
Definition faction.c:308
void factions_free(void)
Frees the factions.
Definition faction.c:2188
int areNeutral(int a, int b)
Checks whether two factions are true neutral.
Definition faction.c:1424
void factions_resetLocal(void)
Reset local standing.
Definition faction.c:1873
const int * faction_getAllies(int f)
Gets the list of allies of a faction.
Definition faction.c:539
void faction_modPlayerRaw(int f, double mod)
Modifies the player's standing without affecting others.
Definition faction.c:1026
const FactionGenerator * faction_generators(int f)
Gets the faction's generators.
Definition faction.c:2366
int faction_usesHiddenJumps(int f)
Checks to see if a faction uses hidden jumps.
Definition faction.c:2356
int * faction_getKnown()
Gets all the known factions in an array (array.h).
Definition faction.c:243
int faction_isInvisible(int id)
Is the faction invisible?
Definition faction.c:275
const glColour * faction_colour(int f)
Gets the colour of the faction.
Definition faction.c:494
const char * faction_getStandingTextAtValue(int f, double value)
Gets the player's standing in human readable form.
Definition faction.c:1269
void faction_clearAlly(int f)
Clears all the ally of a dynamic faction.
Definition faction.c:664
double faction_lane_base_cost(int f)
Gets the faction's weight for patrolled safe-lane construction;.
Definition faction.c:464
void faction_modPlayer(int f, double mod, const char *source)
Modifies the player's standing with a faction.
Definition faction.c:967
void faction_setReputation(int f, double value)
Sets the player's standing with a faction.
Definition faction.c:1057
char faction_reputationColourChar(int f)
Gets the faction character associated to its standing with the player.
Definition faction.c:1228
int * faction_getAll(void)
Returns all faction IDs in an array (array.h).
Definition faction.c:220
void faction_modPlayerSingle(int f, double mod, const char *source)
Modifies the player's standing without affecting others.
Definition faction.c:1007
int faction_setInvisible(int id, int state)
Sets the faction's invisible state.
Definition faction.c:283
int faction_setKnown(int id, int state)
Sets the factions known state.
Definition faction.c:316
double faction_lane_length_per_presence(int f)
Gets the faction's weight for patrolled safe-lane construction (0 means they don't build lanes).
Definition faction.c:452
int * faction_getAllVisible(void)
Returns all non-invisible faction IDs in an array (array.h).
Definition faction.c:231
const char * faction_mapname(int f)
Gets the faction's map name (translated).
Definition faction.c:390
double faction_reputationMax(int f)
Gets the maximum reputation of a faction.
Definition faction.c:1374
void faction_addAlly(int f, int o)
Adds an ally to the faction's allies list.
Definition faction.c:685
nlua_env faction_getScheduler(int f)
Gets the state associated to the faction scheduler.
Definition faction.c:758
double faction_reputation(int f)
Gets the player's standing with a faction.
Definition faction.c:1129
const char * faction_description(int f)
Gets the faction's description (translated).
Definition faction.c:407
void faction_clearKnown()
Clears the known factions.
Definition faction.c:257
int faction_isStatic(int id)
Is the faction static?
Definition faction.c:267
void faction_addEnemy(int f, int o)
Adds an enemy to the faction's enemies list.
Definition faction.c:589
int faction_get(const char *name)
Gets a faction ID by name.
Definition faction.c:209
int areAllies(int a, int b)
Checks whether two factions are allies or not.
Definition faction.c:1476
double weight
Definition faction.h:19
Abstraction for rendering sprite sheets.
Definition opengl_tex.h:43