28 #define MAX_RESEARCHLIST 32
29 #define MAX_TECHNOLOGIES 256
30 #define MAX_TECHLINKS 16
31 #define MAX_DESCRIPTIONS 8
33 #define TECH_INVALID -1
35 #define ANTIMATTER_ITEM_ID "antimatter"
201 #define RS_Collected_(tech) ((tech)->statusCollected)
researchStatus_s
The status of a research (per tech)
const struct technology_s * tech
technology_t * RS_GetTechByID(const char *id)
return a pointer to the technology identified by given id string
struct technology_s * redirect
void RS_AddObjectTechs(void)
requirement_t links[MAX_TECHLINKS]
available mails for a tech - mail and mail_pre in script files
struct techMail_s techMail_t
available mails for a tech - mail and mail_pre in script files
void RS_RemoveScientist(technology_t *tech, Employee *employee)
Remove a scientist from a technology.
technology_t * RS_GetTechByIDX(int tech_idx)
Returns the technology pointer for a tech index. You can use this instead of "&ccs.technologies[techIdx]" to avoid having to check valid indices.
researchStatus_t statusResearch
Defines a type of UGV/Robot.
void RS_MarkCollected(technology_t *tech) __attribute__((nonnull))
Marks a give technology as collected.
const struct aircraft_s * aircraft
techMailType_t
Types for tech mail definitions - see tech->mail[].
void RS_RequiredLinksAssign(void)
Assign Link pointers to all required techs/items/etc...
requirements_t requireAND
bool markOnly[MAX_CAMPAIGNS]
Defines all attributes of objects used in the inventory.
int RS_GetTechIdxByName(const char *name)
Returns the index (idx) of a "tech" entry given it's name.
void RS_MarkResearchable(const struct base_s *base, bool init=false)
struct pediaChapter_s * upChapter
requirements_t requireForProduction
A base with all it's data.
struct requirement_s requirement_t
researchType_s
Types of research topics.
char * campaign[MAX_CAMPAIGNS]
void UP_AircraftDescription(const technology_t *t)
Prints the UFOpaedia description for aircraft.
const struct objDef_s * od
bool RS_IsResearched_ptr(const technology_t *tech)
Checks whether an item is already researched.
markResearched_t markResearched
struct technology_s technology_t
This is the technology parsed from research.ufo.
bool RS_MarkStoryLineEventResearched(const char *techID)
bool RS_RequirementsMet(const technology_t *tech, const struct base_s *base)
This is the technology parsed from research.ufo.
union requirement_s::typelink_t link
struct technology_s * upNext
Engine-side time information in the game.
void RS_InitTree(const struct campaign_s *campaign, bool load)
char * finishedResearchEvent
bool RS_IsResearched_idx(int techIdx)
Checks if the technology (tech-index) has been researched.
struct technology_s * hashProvidedNext
const char * RS_GetDescription(technologyDescriptions_t *desc)
returns the currently used description for a technology.
enum researchType_s researchType_t
Types of research topics.
void RS_AssignScientist(technology_t *tech, struct base_s *base, Employee *employee=nullptr)
Assigns scientist to the selected research-project.
void RS_StopResearch(technology_t *tech)
Stops a research (Removes scientists from it)
int RS_CountScientistsInBase(const struct base_s *base)
void RS_CheckRequirements(void)
Checks if running researches still meet their requirements.
technology_t * RS_GetTechForTeam(const teamDef_t *team)
Returns technology entry for a team.
void RS_ResetTechs(void)
This is called everytime RS_ParseTechnologies is called - to prevent cyclic hash tables.
enum researchStatus_s researchStatus_t
The status of a research (per tech)
struct technologyDescriptions_s technologyDescriptions_t
void RS_InitStartup(void)
This is more or less the initial Bind some of the functions in this file to console-commands that you...
QGL_EXTERN GLuint GLsizei GLsizei GLint GLenum GLchar * name
enum requirementType_s requirementType_t
char * tech[MAX_DESCRIPTIONS]
void UP_UGVDescription(const struct ugv_s *ugvType)
technology_t * RS_GetTechForItem(const objDef_t *item)
Returns technology entry for an item.
struct markResearched_s markResearched_t
void RS_ParseTechnologies(const char *name, const char **text)
Parses one "tech" entry in the research.ufo file and writes it into the next free entry in technologi...
struct technology_s * upPrev
void RS_RemoveFiredScientist(struct base_s *base, Employee *employee)
Remove one scientist from research project if needed.
technology_t * RS_GetTechByProvided(const char *idProvided)
returns a pointer to the item tech (as listed in "provides")
int RS_ResearchRun(void)
Checks the research status.
An aircraft with all it's data.
void RS_MarkOneResearchable(technology_t *tech)
Marks one tech as researchable.
const struct teamDef_s * td
struct requirements_s requirements_t
technologyDescriptions_t description
technology_t * RS_GetTechWithMostScientists(const struct base_s *base)
Searches for the technology that has the most scientists assigned in a given base.
char * text[MAX_DESCRIPTIONS]
void RS_RemoveScientistsExceedingCapacity(struct base_s *base)
Remove all exceeding scientist.
struct technology_s * hashNext
technologyDescriptions_t preDescription
bool RS_ScriptSanityCheck(void)
Checks the parsed tech data for errors.
void RS_ResearchFinish(technology_t *tech)
Sets a technology status to researched and updates the date.
techMail_t mail[TECHMAIL_MAX]