- 1
- 2
char readByffer[102]={0};
std::string dataStrong = readByffer;Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+172
char readByffer[102]={0};
std::string dataStrong = readByffer;
+161
//============= 'game' это, собственно, сама игра ==================
void SUPERMARIO::Game()
{
  InitForStartGame(0);
  //music(NORMAL_MUSIC);
  while (GAMECYCLE)  //цикл игры
  {
  //I. построение изображения 
  MOVEOBJ::TotalAnimatedObject=0;
  prMonetsChangePhase();
  prPuziri();
  prBuildGamePicture();
  prShowDebugInfo();
  //II. логика игры
  BirdsOtSten();      //птички отталкиваются от стен
  SkeletonCollect();    //собираем скелетов
  prCleverobjRefresh();  //обновляем все у умных объектов
  prMarioDeathOnShipah();  //марио гасится на шипах
  prForMarioProtected();  //чтобы марио был защищенным
  prPrizeCatch(Rick, Prize);//призы не проходят сквозь стенки и марио ловит призы
  prBricksNudgePrize();  //кирпичи могут подталкивать призы
  prBricksRestore();    //восстанавливаем кирпичи
  prTurtleCikAlien();    //черепаха сбивает других чужих
  prMonetsTimeEndTimeLiveAndScoreCreate();//надо создать очки когда монетка пропадает
  prIfGameOver();      //если конец игры 
  prBossSalivaDeathMario();// кегли башки гасят марио и не пролетают через стены
  prBossSendSaliveAndKeepAtMario();//башка пускает "кегли" и находится вблизи от марио
  ArmsKillAlien();    // оружие убивает чужих
  prLiftUpDown();      //меняем направление лифта и обновляем его координаты
  prMarioDeathOnFlower();//марио гасится на зубастых цветках
  prFlowersUpDown();    //поднимаем и опускаем зубастые цветки
  MindobjFunctions(Rick, Cleverobj);//различные функции
  MindobjFunctions(Rick, CleverAlien);//предусмотренные для Mindobj
  prMarioFlyDownCleverobj();  //марио слетает с клевых объектов
  prMarioPositionerOnCleverobject();//позиционируем Mario  на клевый объект
  prMarioRenewXY();//обновляем координаты Mario
  //если ноги марио близко к лифту, марио падает
  prMarioClammyToLift();  //на лифт и его ускорение приравнять к нулю
  prMarioDownsBrickDestroy();//обрушиваем кирпичи под ногами у марио
  prArmsCollisionWithWall();//оружие сталкивается со стенами *
  prRememberOldMarioCoordinates();//запоминаем старые координаты Mario
  prKeyboardProcess();    //обработка НАЖАТИЙ клавиш 
  GameModesTreat();    //обрабатываем ситуацию загрузки и рестарта уровня режимы игры
  if (DoorOpenCounter) DoorOpenCounter--;  //чтобы дверь успела открыться
  prScrollBricks();    //двигается фон (спрайты воды и огня)
  prChangeEffect();    //эффект перехода на другой экран
  prShowFPS();      //показать FPS
  prSynhronization();    //синхронизируемся (ждем когда таймер станет равным 1)
  
  ShowLevelNumberTimeCounter++;
  if (ShowLevelNumberTimeCounter<100)
  {
    
    Msg("  УРОВЕНЬ    ", 9, MSG_NOUPDATE);
    
    /*if (LevelNumber<40)
    {
      scr.putNumb(LevelNumber/4+1,1);
      scr<< '-';
      scr.putNumb(LevelNumber%4+1,1);
    }
    else
    {
      scr.putNumb(LevelNumber);
    }*/
    scr.putNumb(LevelNumber);
  }
  
  static int ShowLog=0;
  //выводим изображение на экран из DoubleBuffer
  if (Keyb[KEY_L] && Keyb[KEY_LEFTCTRL]) 
  {
    Keyb^KEY_L;
    ShowLog^=1;
  }
  
  if (ShowLog) 
  {
    //сжимаем картинку
    for(int i=0; i<100; i++)
    {
      memcpy(scr.DoubleBuffer+i*320, scr.DoubleBuffer+i*2*320,320);
    }
    
    scr.rectangle(0,100,320,100,0);
    Log.Show();
  }
  scr.update();      
  } //конец цикла while
}//конец функции gameНостальгия...
+153
// ...
if (m_parent->GetState() == Disconnected)
{
	CString login;
	CString password;
	m_login.GetWindowText(login);
	m_password.GetWindowText(password);
	if (login.IsEmpty()
		|| password.IsEmpty())
	{
		::MessageBox(this->m_hWnd, _T("Please enter login and password"), _T("Input error"),MB_OK);
		return;
	}
		
	if (CheckString(login)
		|| CheckString(password))
	{
		::MessageBox(this->m_hWnd, _T("You have entered unsupported symbol."), _T("Input error"), MB_OK);
		m_login.SetWindowText(login);
		m_password.SetWindowText(password);
		
		return;
	}
	SaveConfig();
}
// ...
bool CheckString(CString& string)
{
	bool res = false;
	CString checked = _T("<>,!()[]{}~`#$%^&*+=/\\\"|;:'");
	for (int i = 0; i < checked.GetLength(); ++i)
	{
		if (string.Find(checked[i]) != -1)
		{
			res = true;
			string = _T("");
			break;
		}
	}
	return res;
}Проверка допустимых символов
+165
class Exception {
  public:
    Exception() { }
    Exception(const char *fmt, ...) {
      va_list  argPtr;
      va_start(argPtr, fmt);
      Str_VSPrintf(desc, sizeof(desc), fmt, argPtr);
      va_end(argPtr);
      throw(*this);
    }
    char desc[8096];
  };
http://www.gamedev.ru/code/forum/?id=151712#m6+159
//Я думал тоже так сделать, но иногда для параметра нужны дополнительные аргументы. Например есть operator()(float, int preciseness). С запятыми такого не сделаешь. Я это применил в своих массивах. Можно написать так:
Array<int> arr;
arr.Init(), 5, 7, 65, 99, 267; //Инициализирует массива числами, перечисленными через запятую
//Кстати, сделал такое добавление в массив:
arr.Insert(0), 5, 7, 3; //Добавляет числа вначало массива
arr.Insert($), 888, 25, 76; //Добавляет в конец
arr.Insert($/2), 65, 23; //В середину
//Знак доллара сделал для схожести с языком D. Теперь не надо писать arr.length, можно писать $. Вообще, это должно быть медленнее, но компилятор оптимизирует и по тестам получается так же.
//P. S. В govnokod.ru не заносить.
http://www.gamedev.ru/code/forum/?id=148200&page=6#m76+161
class CmyBuffaer{};
template< typename TYPE > CmyBuffaer& operator,( CmyBuffaer& buffer, typename TYPE arg);
template<> CmyBuffaer& operator,<double>( CmyBuffaer& buffer, double arg)
{
  printf("%f",arg);
  return buffer;
}
template<> CmyBuffaer& operator,<const char*>( CmyBuffaer& buffer, const char* arg)
{
  printf("%s",arg);
  return buffer;
}
template<> CmyBuffaer& operator,<int>( CmyBuffaer& buffer, int arg)
{
  printf("%i",arg);
  return buffer;
}
//...
CmyBuffaer(),34.5,"+",54,"+\n";
+147
int main(int argc, char* argv[])
{
  std::cout<<"Good testing!\n";
  system("PAUSE"); 
  return 0;
}
http://www.gamedev.ru/code/forum/?id=151702+162
#define      my__type    ((pair<LPVOID, CheckButton_Thread*>*)pvPararn)
my__type -> second -> function( my__type -> first);
http://www.gamedev.ru/code/forum/?id=151690#m11+165
std::cout << [&i](){return i;}();И вот ещё одна жертва стандарта. На этот раз она в пасть лезет добровольно.
+167
return parse(
        str,
        ( ( lexeme_d[+alnum_p][assign_a(key)] >> ':' >> lexeme_d[ '"' >> ( *~ch_p('"') )[insert_at_a(mp,key)] >> '"' ] ) % ',' ),
        space_p
    ).full;