summaryrefslogtreecommitdiffhomepage
path: root/Stars45/Campaign.h
diff options
context:
space:
mode:
authorAki <please@ignore.pl>2022-04-01 21:23:39 +0200
committerAki <please@ignore.pl>2022-04-01 21:23:39 +0200
commit3c487c5cd69c53d6fea948643c0a76df03516605 (patch)
tree72730c7b8b26a5ef8fc9a987ec4c16129efd5aac /Stars45/Campaign.h
parent8f353abd0bfe18baddd8a8250ab7c4f2d1c83a6e (diff)
downloadstarshatter-3c487c5cd69c53d6fea948643c0a76df03516605.zip
starshatter-3c487c5cd69c53d6fea948643c0a76df03516605.tar.gz
starshatter-3c487c5cd69c53d6fea948643c0a76df03516605.tar.bz2
Moved Stars45 to StarsEx
Diffstat (limited to 'Stars45/Campaign.h')
-rw-r--r--Stars45/Campaign.h281
1 files changed, 0 insertions, 281 deletions
diff --git a/Stars45/Campaign.h b/Stars45/Campaign.h
deleted file mode 100644
index 1343fec..0000000
--- a/Stars45/Campaign.h
+++ /dev/null
@@ -1,281 +0,0 @@
-/* Starshatter: The Open Source Project
- Copyright (c) 2021-2022, Starshatter: The Open Source Project Contributors
- Copyright (c) 2011-2012, Starshatter OpenSource Distribution Contributors
- Copyright (c) 1997-2006, Destroyer Studios LLC.
-
- AUTHOR: John DiCamillo
-
-
- OVERVIEW
- ========
- Campaign defines a strategic military scenario. This class
- owns (or generates) the Mission list that defines the action
- in the campaign.
-*/
-
-#ifndef Campaign_h
-#define Campaign_h
-
-#include "Types.h"
-#include "Bitmap.h"
-#include "Geometry.h"
-#include "Text.h"
-#include "Term.h"
-#include "List.h"
-
-// +--------------------------------------------------------------------+
-
-class Campaign;
-class CampaignPlan;
-class Combatant;
-class CombatAction;
-class CombatEvent;
-class CombatGroup;
-class CombatUnit;
-class CombatZone;
-class DataLoader;
-class Mission;
-class MissionTemplate;
-class StarSystem;
-
-// +--------------------------------------------------------------------+
-
-class MissionInfo
-{
-public:
- static const char* TYPENAME() { return "MissionInfo"; }
-
- MissionInfo();
- ~MissionInfo();
-
- int operator == (const MissionInfo& m) const { return id == m.id; }
- int operator < (const MissionInfo& m) const { return id < m.id; }
- int operator <= (const MissionInfo& m) const { return id <= m.id; }
-
- bool IsAvailable();
-
- int id;
- Text name;
- Text player_info;
- Text description;
- Text system;
- Text region;
- Text script;
- int start;
- int type;
-
- int min_rank;
- int max_rank;
- int action_id;
- int action_status;
- int exec_once;
- int start_before;
- int start_after;
-
- Mission* mission;
-};
-
-class TemplateList
-{
-public:
- static const char* TYPENAME() { return "TemplateList"; }
-
- TemplateList();
- ~TemplateList();
-
- int mission_type;
- int group_type;
- int index;
- List<MissionInfo> missions;
-};
-
-// +--------------------------------------------------------------------+
-
-class Campaign
-{
-public:
- static const char* TYPENAME() { return "Campaign"; }
-
- enum CONSTANTS {
- TRAINING_CAMPAIGN = 1,
- DYNAMIC_CAMPAIGN,
- MOD_CAMPAIGN = 100,
- SINGLE_MISSIONS = 1000,
- MULTIPLAYER_MISSIONS,
- CUSTOM_MISSIONS,
-
- NUM_IMAGES = 6
- };
-
- enum STATUS {
- CAMPAIGN_INIT,
- CAMPAIGN_ACTIVE,
- CAMPAIGN_SUCCESS,
- CAMPAIGN_FAILED
- };
-
- Campaign(int id, const char* name=0);
- Campaign(int id, const char* name, const char* path);
- virtual ~Campaign();
-
- int operator == (const Campaign& s) const { return name == s.name; }
- int operator < (const Campaign& s) const { return campaign_id < s.campaign_id; }
-
- // operations:
- virtual void Load();
- virtual void Prep();
- virtual void Start();
- virtual void ExecFrame();
- virtual void Unload();
-
- virtual void Clear();
- virtual void CommitExpiredActions();
- virtual void LockoutEvents(int seconds);
- virtual void CheckPlayerGroup();
- void CreatePlanners();
-
- // accessors:
- const char* Name() const { return name; }
- const char* Description() const { return description; }
- const char* Path() const { return path; }
-
- const char* Situation() const { return situation; }
- const char* Orders() const { return orders; }
-
- void SetSituation(const char* s) { situation = s; }
- void SetOrders(const char* o) { orders = o; }
-
- int GetPlayerTeamScore();
- List<MissionInfo>& GetMissionList() { return missions; }
- List<Combatant>& GetCombatants() { return combatants; }
- List<CombatZone>& GetZones() { return zones; }
- List<StarSystem>& GetSystemList() { return systems; }
- List<CombatAction>& GetActions() { return actions; }
- List<CombatEvent>& GetEvents() { return events; }
- CombatEvent* GetLastEvent();
-
- CombatAction* FindAction(int id);
-
- int CountNewEvents() const;
-
- int GetPlayerIFF();
- CombatGroup* GetPlayerGroup() { return player_group; }
- void SetPlayerGroup(CombatGroup* pg);
- CombatUnit* GetPlayerUnit() { return player_unit; }
- void SetPlayerUnit(CombatUnit* pu);
-
- Combatant* GetCombatant(const char* name);
- CombatGroup* FindGroup(int iff, int type, int id);
- CombatGroup* FindGroup(int iff, int type, CombatGroup* near_group=0);
- CombatGroup* FindStrikeTarget(int iff, CombatGroup* strike_group);
-
- StarSystem* GetSystem(const char* sys);
- CombatZone* GetZone(const char* rgn);
- MissionInfo* CreateNewMission();
- void DeleteMission(int id);
- Mission* GetMission();
- Mission* GetMission(int id);
- Mission* GetMissionByFile(const char* filename);
- MissionInfo* GetMissionInfo(int id);
- MissionInfo* FindMissionTemplate(int msn_type, CombatGroup* player_group);
- void ReloadMission(int id);
- void LoadNetMission(int id, const char* net_mission);
- void StartMission();
- void RollbackMission();
-
- void SetCampaignId(int id);
- int GetCampaignId() const { return campaign_id; }
- void SetMissionId(int id);
- int GetMissionId() const { return mission_id; }
- Bitmap* GetImage(int n) { return &image[n]; }
- long double GetTime() const { return time; }
- long double GetStartTime() const { return startTime; }
- void SetStartTime(long double t) { startTime = t; }
- long double GetLoadTime() const { return loadTime; }
- void SetLoadTime(long double t) { loadTime = t; }
- long double GetUpdateTime() const { return updateTime; }
- void SetUpdateTime(long double t) { updateTime = t; }
-
- bool InCutscene() const;
- bool IsDynamic() const;
- bool IsTraining() const;
- bool IsScripted() const;
- bool IsSequential() const;
- bool IsSaveGame() const { return loaded_from_savegame; }
- void SetSaveGame(bool s) { loaded_from_savegame = s; }
-
- bool IsActive() const { return status == CAMPAIGN_ACTIVE; }
- bool IsComplete() const { return status == CAMPAIGN_SUCCESS; }
- bool IsFailed() const { return status == CAMPAIGN_FAILED; }
- void SetStatus(int s);
- int GetStatus() const { return status; }
-
- int GetAllCombatUnits(int iff, List<CombatUnit>& units);
-
- static void Initialize();
- static void Close();
- static Campaign* GetCampaign();
- static List<Campaign>&
- GetAllCampaigns();
- static int GetLastCampaignId();
- static Campaign* SelectCampaign(const char* name);
- static Campaign* CreateCustomCampaign(const char* name, const char* path);
-
- static long double Stardate();
-
-protected:
- void LoadCampaign(DataLoader* loader, bool full=false);
- void LoadTemplateList(DataLoader* loader);
- void LoadMissionList(DataLoader* loader);
- void LoadCustomMissions(DataLoader* loader);
- void ParseGroup(TermStruct* val,
- CombatGroup* force,
- CombatGroup* clone,
- const char* filename);
- void ParseAction(TermStruct* val,
- const char* filename);
- CombatGroup* CloneOver(CombatGroup* force,
- CombatGroup* clone,
- CombatGroup* group);
- void SelectDefaultPlayerGroup(CombatGroup* g, int type);
- TemplateList* GetTemplateList(int msn_type, int grp_type);
-
- // attributes:
- int campaign_id;
- int status;
- char filename[64];
- char path[64];
- Text name;
- Text description;
- Text situation;
- Text orders;
- Bitmap image[NUM_IMAGES];
-
- bool scripted;
- bool sequential;
- bool loaded_from_savegame;
-
- List<Combatant> combatants;
- List<StarSystem> systems;
- List<CombatZone> zones;
- List<CampaignPlan> planners;
- List<MissionInfo> missions;
- List<TemplateList> templates;
- List<CombatAction> actions;
- List<CombatEvent> events;
- CombatGroup* player_group;
- CombatUnit* player_unit;
-
- int mission_id;
- Mission* mission;
- Mission* net_mission;
-
- long double time;
- long double loadTime;
- long double startTime;
- long double updateTime;
- int lockout;
-};
-
-#endif // Campaign_h
-