BWAPI
SnippyHolloW-BroodwarBotQ-f01ab56/src/Utils/Rainbow.h
Go to the documentation of this file.
00001 #pragma once
00002 #include <stdlib.h> 
00003 #include <BWAPI.h>
00004 
00005 struct Rainbow {
00006     std::vector<BWAPI::Color> rainbow;
00007     size_t ind;
00008     Rainbow() 
00009     {
00010         rainbow.clear();
00011         rainbow.push_back(BWAPI::Color(244, 0, 0)); // red (R,G,B)
00012         rainbow.push_back(BWAPI::Color(244, 42, 42));
00013         rainbow.push_back(BWAPI::Color(244, 92, 92));
00014         rainbow.push_back(BWAPI::Color(244, 128, 128));
00015         // rainbow.push_back(BWAPI::Color(244, 92, 92));
00016     }
00017     Rainbow(BWAPI::Color startColor, int increment)
00018     {
00019         rainbow.clear();
00020         int primaryred = startColor.red();
00021         int primarygreen = startColor.green();
00022         int primaryblue = startColor.blue();
00023         int secondaryred = (primaryred >= primarygreen 
00024             && primaryred >= primaryblue) ? 0 : 1;
00025         int secondarygreen = (primarygreen >= primaryblue
00026             && primarygreen > primaryred) ? 0 : 1;
00027         int secondaryblue = (primaryblue > primaryred
00028             && primaryblue > primarygreen) ? 0 : 1;
00029         int maxsecondary = max(min(primaryred, primarygreen), min(primaryred, primaryblue));
00030         int i = 0;
00031         while ((maxsecondary + i) < 255)
00032         {
00033             rainbow.push_back(BWAPI::Color(primaryred + secondaryred*i,
00034                 primarygreen + secondarygreen*i,
00035                 primaryblue + secondaryblue*i));
00036             i += increment;
00037         }
00038     }
00039     ~Rainbow() {}
00040     BWAPI::Color nextColor()
00041     {
00042         return rainbow[ind++ % rainbow.size()];
00043     }
00044 };
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines