BWAPI
SnippyHolloW-BroodwarBotQ-f01ab56/src/Macro/ResourceTimeline.h
Go to the documentation of this file.
00001 #pragma once
00002 #include "Resources.h"
00003 #include <map>
00004 
00005 //Timeline of resources. Enables queries on when resources will be available
00006 class ResourceTimeline
00007 {
00008   public:
00009     ResourceTimeline();
00010     void reset(const Resources &r, int supplyTotal, double mgr, double ggr);
00011     Resources getActualResourcesAtTime(int frame);
00012     Resources getAvailableResourcesAtTime(int frame);
00013     int getSupplyTotalAtTime(int frame);
00014     int getFinalSupplyAvailable();
00015     int getFinalSupplyTotal();
00016     bool reserveResources(int frame, const Resources &r);
00017     int getFirstValidTime(const Resources &r);
00018     int getFirstTimeWhenSupplyIsNoGreaterThan(int supplyAmount);
00019     enum ErrorCode
00020     {
00021       None,
00022       Insufficient_Minerals,
00023       Insufficient_Gas,
00024       Insufficient_Supply
00025     };
00026     ErrorCode getLastError() const;
00027     bool registerSupplyIncrease(int frame, int supply);
00028     bool unregisterSupplyIncrease(int frame, int supply);
00029 //  private:
00030     ErrorCode lastError;
00031     double mineralGatherRate;
00032     double gasGatherRate;
00033     Resources currentResources;
00034     int currentSupplyTotal;
00035     std::map<int, Resources > resourceEvents;
00036     std::map<int, int > supplyIncreaseEvents;
00037 };
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines