コード例 #1
0
ファイル: main.cpp プロジェクト: rainbow23/GameLib2008
	void Framework::update(){
		//最初のフレームにファイル読み込み
		if ( gFirst ){
			gFirst = false;
			char* buffer = 0;
			int size = 0;
			readFile( &buffer, &size, "bar.dds" );
			gImageHeight = getUnsigned( &( buffer[ 12 ] ) );
			gImageWidth = getUnsigned( &( buffer[ 16 ] ) );
			gImageData = new unsigned[ gImageWidth * gImageHeight ];
			for ( int i = 0; i < gImageWidth * gImageHeight; ++i ){
				gImageData[ i ] = getUnsigned( &( buffer[ 128 + i * 4 ] ) );
			}
		}
		unsigned* vram = videoMemory();
		int windowWidth = width();
		int windowHeight = height();
		int partX = 0;
		int partY = 1;
		//適当に32x32の領域で敷き詰めます。
		for ( int tileY = 0; tileY + 32 < windowHeight; tileY += 32 ){
			for ( int tileX = 0; tileX + 32 < windowWidth; tileX += 32 ){
				for ( int y = 0; y < 32; ++y ){
					for ( int x = 0; x < 32; ++x ){
						unsigned* dst = &vram[ ( tileY + y ) * windowWidth + ( tileX + x ) ];
						*dst = gImageData[ ( partY * 32 + y ) * gImageWidth + ( partX * 32 + x ) ];
					}
				}
				//適当にタイルを選択。数字に根拠はない。
				partX = ( partX + 9973 ) % 4; 
				partY = ( partY + 9967 ) % 4;
			}
		}
	}
コード例 #2
0
// Store name, city, and rating (between MIN_RATING to MAX_RATING inclusive)
// from user input for a given number of resorts
struct resortType* getResorts(unsigned num) {
    if (!num) {
        return NULL;
    }
    char* error;
    // Allow alphanumeric characters and spaces
    char* alphaNumericFilter = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
    struct resortType* resorts = calloc(num, sizeof(struct resortType));
    if (!resorts) {
        return NULL;
    }
    // Interate through resort array getting information for each entry
    for (unsigned i = 0; i < num; i++) {
        printf("Resort #%u:\n", i + 1);
        resorts[i].name = getFilteredString("\tEnter resort name:\n", alphaNumericFilter, &error);
        if (!resorts[i].name) {
            resorts[i].name = "";
            printf("%s\n", error);
        }
        resorts[i].city = getFilteredString("\tEnter city name:\n", alphaNumericFilter, &error);
        if (!resorts[i].city) {
            resorts[i].city = "";
            printf("%s\n", error);
        }
        printf("\tEnter resort rating:\n");
        resorts[i].rating = getUnsigned();
        if (resorts[i].rating < MIN_RATING || resorts[i].rating > MAX_RATING) {
            resorts[i].rating = UNACCEPTABLE;
        }
    }
    return resorts;
}
コード例 #3
0
//------------------------------------------------------------------------
//--- JetCorrectorParameters::Record constructor -------------------------
//--- reads the member variables from a string ---------------------------
//------------------------------------------------------------------------
JetCorrectorParameters::Record::Record(const std::string& fLine,unsigned fNvar) : mMin(0),mMax(0)
{
  mNvar = fNvar;
  // quckly parse the line
  std::vector<std::string> tokens = getTokens(fLine);
  if (!tokens.empty())
    {
      if (tokens.size() < 3)
        {
          std::stringstream sserr;
	  sserr<<"(line "<<fLine<<"): "<<"three tokens expected, "<<tokens.size()<<" provided.";
          handleError("JetCorrectorParameters::Record",sserr.str());
        }
      for(unsigned i=0;i<mNvar;i++)
        {
          mMin.push_back(getFloat(tokens[i*mNvar]));
          mMax.push_back(getFloat(tokens[i*mNvar+1]));
        }
      unsigned nParam = getUnsigned(tokens[2*mNvar]);
      if (nParam != tokens.size()-(2*mNvar+1))
        {
          std::stringstream sserr;
	  sserr<<"(line "<<fLine<<"): "<<tokens.size()-(2*mNvar+1)<<" parameters, but nParam="<<nParam<<".";
          handleError("JetCorrectorParameters::Record",sserr.str());
        }
      for (unsigned i = (2*mNvar+1); i < tokens.size(); ++i)
        mParameters.push_back(getFloat(tokens[i]));
    }
}
コード例 #4
0
unsigned ClimateZone::year() const {
  OS_ASSERT(!empty());
  OptionalUnsigned ou = getUnsigned(OS_ClimateZonesExtensibleFields::ClimateZoneDocumentYear,true);
  if (!ou) { 
    LOG_AND_THROW("Climate zone year is not yet set for the " << groupIndex() << "th ClimateZone."); 
  }
  return *ou;
}
コード例 #5
0
ファイル: properties.cpp プロジェクト: dromero91/openam
/* Throws std::invalid_argument if a value for key is not found */
unsigned long Properties::getPositiveNumber(const std::string& key) const
{
    unsigned long result;
    result = getUnsigned(key);
    if(result == 0){
	throw std::invalid_argument(key + " Property value set to 0");
    }
   return result;
}
コード例 #6
0
//-----------------------------------------------------------------------------
// checks the checksum out of the binary data,
// buffer and, packetLength must be correctly initialised
bool CCSDS::PACKET::Packet::checkChecksum() const throw(UTIL::Exception)
//-----------------------------------------------------------------------------
{
  if(!checkPacketLength())
  {
    return false;
  }
  size_t crcPos = bufferSize() - 2;
  uint16_t crc = UTIL::CRC::calculate16(buffer(), crcPos);
  return (getUnsigned(crcPos, 2) == crc);
}
コード例 #7
0
ファイル: properties.cpp プロジェクト: dromero91/openam
unsigned long Properties::getPositiveNumber(const std::string& key, 
					unsigned long defaultValue) const
{
    unsigned long result;
    result = getUnsigned(key,defaultValue);
    if(result == 0){
	Log::log(logID, Log::LOG_MAX_DEBUG,"Property [%s] value set to 0",key.c_str());
	result = defaultValue;
	Log::log(logID, Log::LOG_MAX_DEBUG,"Resetting Property [%s] value back to default : %d",key.c_str(),defaultValue);
    }
   return result;
}
コード例 #8
0
//------------------------------------------------------------------------
//--- JetCorrectorParameters::Definitions constructor --------------------
//--- reads the member variables from a string ---------------------------
//------------------------------------------------------------------------
JetCorrectorParameters::Definitions::Definitions(const std::string& fLine)
{
  std::vector<std::string> tokens = getTokens(fLine);
  if (!tokens.empty())
    {
      if (tokens.size() < 6)
        {
          std::stringstream sserr;
          sserr<<"(line "<<fLine<<"): less than 6 expected tokens:"<<tokens.size();
          handleError("JetCorrectorParameters::Definitions",sserr.str());
        }
      unsigned nvar = getUnsigned(tokens[0]);
      unsigned npar = getUnsigned(tokens[nvar+1]);
      for(unsigned i=0;i<nvar;i++)
        mBinVar.push_back(tokens[i+1]);
      for(unsigned i=0;i<npar;i++)
        mParVar.push_back(tokens[nvar+2+i]);
      mFormula = tokens[npar+nvar+2];
      std::string ss = tokens[npar+nvar+3];
      if (ss == "Response")
        mIsResponse = true;
      else if (ss == "Correction")
        mIsResponse = false;
      else if (ss == "Resolution")
	mIsResponse = false;
      else if (ss.find("PAR")==0)
	mIsResponse = false;
      else
        {
          std::stringstream sserr;
          sserr<<"unknown option ("<<ss<<")";
          handleError("JetCorrectorParameters::Definitions",sserr.str());
        }
      mLevel = tokens[npar+nvar+4];
    }
}
コード例 #9
0
ファイル: get_num.c プロジェクト: 27tang/CodeForge
uint64_t getu64_t(const char *arg, int32_t flags, const char *varName)/*#{{{*/
{
    register unsigned long long res = 0;

    res = getUnsigned("getu64_t", arg, flags, varName);

    /* make sure the converted number is in the range of an uint64_t */
    if(res > UINT64_MAX){ /* checks for unsigned in getNum */
        if(flags & GN_NOEXIT_){
            fprintf(stderr,"\nInteger was out of range\n");
            errno = EINVAL;
            return 0;}
        else{
        gnFail("getUnsigned", "integer out of range", arg, varName);}
    } 
    return (uint64_t) res;
} /* end get64_t #}}} */
コード例 #10
0
ファイル: date.cpp プロジェクト: acklinr/cxxtools
Date::Date(const std::string& str, const std::string& fmt)
{
  unsigned year = 0;
  unsigned month = 1;
  unsigned day = 1;

  enum {
    state_0,
    state_fmt,
    state_two
  } state = state_0;

  try
  {
    std::string::const_iterator dit = str.begin();
    std::string::const_iterator it;
    for (it = fmt.begin(); it != fmt.end() && dit != str.end(); ++it)
    {
      char ch = *it;
      switch (state)
      {
        case state_0:
          if (ch == '%')
            state = state_fmt;
          else
          {
            if (ch == '*')
              skipNonDigit(dit, str.end());
            else if (*dit != ch && ch != '?')
              throw InvalidDate("string <" + str + "> does not match date format <" + fmt + '>');
            else
              ++dit;
          }
          break;

        case state_fmt:
          if (*it != '%')
            state = state_0;

          switch (ch)
          {
            case 'Y':
              year = getInt(dit, str.end(), 4);
              break;

            case 'y':
              year = getInt(dit, str.end(), 2);
              year += (year < 50 ? 2000 : 1900);
              break;

            case 'm':
              month = getUnsigned(dit, str.end(), 2);
              break;

            case 'd':
              day = getUnsigned(dit, str.end(), 2);
              break;

            case '2':
              state = state_two;
              break;

            default:
              throw InvalidDate("invalid date format <" + fmt + '>');
          }

          break;

        case state_two:
          state = state_0;
          switch (ch)
          {
            case 'm': month = getUnsignedF(dit, str.end(), 2); break;
            case 'd': day = getUnsignedF(dit, str.end(), 2); break;
            default:
              throw InvalidDate("invalid date format <" + fmt + '>');
          }
      }
    }

    if (it != fmt.end() || dit != str.end())
      throw InvalidDate("string <" + str + "> does not match date format <" + fmt + '>');

    set(year, month, day);
  }
  catch (const std::invalid_argument&)
  {
    throw InvalidDate("string <" + str + "> does not match date format <" + fmt + '>');
  }
}
コード例 #11
0
ファイル: parameters.cpp プロジェクト: frecka/blackbird
Parameters::Parameters(std::string fileName) {

  std::ifstream configFile(fileName.c_str());
  spreadEntry = getDouble(getParameter("SpreadEntry", configFile));
  spreadTarget = getDouble(getParameter("SpreadTarget", configFile));
  maxLength = getUnsigned(getParameter("MaxLength", configFile));
  priceDeltaLim = getDouble(getParameter("PriceDeltaLimit", configFile));
  trailingLim = getDouble(getParameter("TrailingSpreadLim", configFile));
  trailingCount = getUnsigned(getParameter("TrailingSpreadCount", configFile));
  orderBookFactor = getDouble(getParameter("OrderBookFactor", configFile));
  demoMode = getBool(getParameter("DemoMode", configFile));
  verbose = getBool(getParameter("Verbose", configFile));
  gapSec = getUnsigned(getParameter("GapSec", configFile));
  debugMaxIteration = getUnsigned(getParameter("DebugMaxIteration", configFile));
  useFullCash = getBool(getParameter("UseFullCash", configFile));
  untouchedCash = getDouble(getParameter("UntouchedCash", configFile));
  cashForTesting = getDouble(getParameter("CashForTesting", configFile));
  maxExposure = getDouble(getParameter("MaxExposure", configFile));
  useVolatility = getBool(getParameter("UseVolatility", configFile));
  volatilityPeriod = getUnsigned(getParameter("VolatilityPeriod", configFile));

  bitfinexApi = getParameter("BitfinexApiKey", configFile);
  bitfinexSecret = getParameter("BitfinexSecretKey", configFile);
  bitfinexFees = getDouble(getParameter("BitfinexFees", configFile));

  okcoinApi = getParameter("OkCoinApiKey", configFile);
  okcoinSecret = getParameter("OkCoinSecretKey", configFile);
  okcoinFees = getDouble(getParameter("OkCoinFees", configFile));

  bitstampClientId = getParameter("BitstampClientId", configFile);
  bitstampApi = getParameter("BitstampApiKey", configFile);
  bitstampSecret = getParameter("BitstampSecretKey", configFile);
  bitstampFees = getDouble(getParameter("BitstampFees", configFile));

  geminiApi = getParameter("GeminiApiKey", configFile);
  geminiSecret = getParameter("GeminiSecretKey", configFile);
  geminiFees = getDouble(getParameter("GeminiFees", configFile));

  krakenApi = getParameter("KrakenApiKey", configFile);
  krakenSecret = getParameter("KrakenSecretKey", configFile);
  krakenFees = getDouble(getParameter("KrakenFees", configFile));

  itbitApi = getParameter("ItBitApiKey", configFile);
  itbitSecret = getParameter("ItBitSecretKey", configFile);
  itbitFees = getDouble(getParameter("ItBitFees", configFile));

  btceApi = getParameter("BTCeApiKey", configFile);
  btceSecret = getParameter("BTCeSecretKey", configFile);
  btceFees = getDouble(getParameter("BTCeFees", configFile));

  sevennintysixAppId = getParameter("SevenNintySixAppId", configFile);
  sevennintysixApi = getParameter("SevenNintySixApiKey", configFile);
  sevennintysixSecret = getParameter("SevenNintySixSecretKey", configFile);
  sevennintysixFees = getDouble(getParameter("SevenNintySixFees", configFile));

  sendEmail = getBool(getParameter("SendEmail", configFile));
  senderAddress = getParameter("SenderAddress", configFile);
  senderUsername = getParameter("SenderUsername", configFile);
  senderPassword = getParameter("SenderPassword", configFile);
  smtpServerAddress = getParameter("SmtpServerAddress", configFile);
  receiverAddress = getParameter("ReceiverAddress", configFile);

  useDatabase = getBool(getParameter("UseDatabase", configFile));
  dbHost = getParameter("DBHost", configFile);
  dbName = getParameter("DBName", configFile);
  dbUser = getParameter("DBUser", configFile);
  dbPassword = getParameter("DBPassword", configFile);

  configFile.close();
}
コード例 #12
0
ファイル: GasMixture.cpp プロジェクト: ORNL-BTRIC/OpenStudio
 unsigned GasMixture_Impl::numGases() const {
   OptionalUnsigned ou = getUnsigned(OS_WindowMaterial_GasMixtureFields::NumberofGasesinMixture,true);
   OS_ASSERT(ou);
   return *ou;
 }
コード例 #13
0
ファイル: time.cpp プロジェクト: AndreasWelchlin/cxxtools
Time::Time(const std::string& str, const std::string& fmt)
: _msecs(0)
{
  unsigned hours = 0;
  unsigned minutes = 0;
  unsigned seconds = 0;
  unsigned mseconds = 0;
  bool am = true;

  enum {
    state_0,
    state_fmt
  } state = state_0;

  std::string::const_iterator dit = str.begin();
  std::string::const_iterator it;
  for (it = fmt.begin(); it != fmt.end(); ++it)
  {
    char ch = *it;
    switch (state)
    {
      case state_0:
        if (ch == '%')
          state = state_fmt;
        else
        {
          if (dit == str.end() || *dit != ch)
            throw std::runtime_error("string <" + str + "> does not match time format <" + fmt + '>');
          ++dit;
        }
        break;

      case state_fmt:
        switch (ch)
        {
          case 'H':
          case 'I':
            hours = getUnsigned(dit, str.end(), 2);
            break;

          case 'M':
            minutes = getUnsigned(dit, str.end(), 2);
            break;

          case 'S':
            seconds = getUnsigned(dit, str.end(), 2);
            break;

          case 'j':
            if (dit != str.end() && *dit == '.')
              ++dit;
            mseconds = getMilliseconds(dit, str.end());
            break;

          case 'J':
          case 'K':
            if (dit != str.end() && *dit == '.')
            {
              ++dit;
              mseconds = getMilliseconds(dit, str.end());
            }
            break;

          case 'k':
            mseconds = getMilliseconds(dit, str.end());
            break;

          case 'p':
            if (dit == str.end()
              || dit + 1 == str.end()
              || ((*dit != 'A'
                && *dit != 'a'
                && *dit != 'P'
                && *dit != 'p')
              || (*(dit + 1) != 'M'
                &&  *(dit + 1) != 'm')))
            {
                throw std::runtime_error("string <" + str + "> does not match time format <" + fmt + '>');
            }

            am = (*dit == 'A' || *dit == 'a');
            dit += 2;
            break;

          default:
            throw std::runtime_error("invalid time format <" + fmt + '>');
        }

        state = state_0;
        break;
    }
  }

  if (it != fmt.end() || dit != str.end())
    throw std::runtime_error("string <" + str + "> does not match time format <" + fmt + '>');

  set(am ? hours : hours + 12, minutes, seconds, mseconds);
}