- 1
- 2
- 3
- 4
- 5
inline float _read_zbuf(int x, int y){
float v;
glReadPixels(x,screen.height-y+1,1,1,GL_DEPTH_COMPONENT,GL_FLOAT,&v);
return v;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+169
inline float _read_zbuf(int x, int y){
float v;
glReadPixels(x,screen.height-y+1,1,1,GL_DEPTH_COMPONENT,GL_FLOAT,&v);
return v;
}
>Для определения жизни под мышкой решил использовать изменение значений в буфере глубины, но glGetPixels уронил мне фпс на 300, и это один вызов финальной проверки, а что будет когда объекты проверятся начнут подумать страшно.
Неужели все так плохо ???
http://www.gamedev.ru/code/forum/?id=151921
+170
assert( top( o-------o
|L \
| L \
| o-------o
| ! !
! ! !
o | !
L | !
L| !
o-------o ) == ( o-------o
| !
! !
o-------o ) );
+164
ULONG LCard791::SetChn(int _gain,int _channel)
{
ULONG ret;
if(isDiff)
ret=_channel&15;
else
{
ret=_channel&31;
ret|=1<<5;
}
int gain;
switch(_gain)
{
case 1:
gain=0;
break;
case 2:
gain=1;
break;
case 4:
gain=2;
break;
case 8:
gain=3;
break;
case 16:
gain=4;
break;
case 32:
gain=5;
break;
case 64:
gain=6;
break;
case 128:
gain=7;
break;
default:
gain=0;
}
ret|=gain<<6;
return(ret);
}
Есть у нас один мужик, которые такие шедевры творит. Хакер сновидений, РАГ - мы с тобой!
+147
template<typename _Tp>
pair<_Tp*, ptrdiff_t>
get_temporary_buffer(ptrdiff_t __len)
{
const ptrdiff_t __max =
__gnu_cxx::__numeric_traits<ptrdiff_t>::__max / sizeof(_Tp);
if (__len > __max)
__len = __max;
while (__len > 0)
{
_Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp),
std::nothrow));
if (__tmp != 0)
return std::pair<_Tp*, ptrdiff_t>(__tmp, __len);
__len /= 2; // !?!?!?!?!?!?!?!?
}
return std::pair<_Tp*, ptrdiff_t>(static_cast<_Tp*>(0), 0);
}
template<typename _Tp>
inline void
return_temporary_buffer(_Tp* __p)
{ ::operator delete(__p, std::nothrow); }
+153
bool (A::*F[2])(int);
//...
return (this->*F[n])(i);
+147
int (*arr)[3];
+147
struct VS_INPUT_STRUCT //вхідні дані
{
float4 position: POSITION;
float3 normal: NORMAL;
};
struct VS_OUTPUT_STRUCT //вихідні дані
{
float4 position: POSITION;
float3 light: TEXCOORD0;
float3 normal: TEXCOORD1;
};
+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;
}
Проверка допустимых символов