-
+159
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
Obj = 0;
while (dsmodel1.tellg () < LEN)
{
dsmodel1.read ( (char*)&ID, 2);
dsmodel1.read ( (char*)&length, 4);
switch (ID)
{
case 0x4d4d: break;
case 0xb000: break;
case 0xb002: break;
case 0xb010:
char ch;
do
{
dsmodel1.read ( (char*)&ch, 1);
}while (ch != '\0' && !dsmodel1.eof ());
dsmodel1.ignore (4);
dsmodel1.read ( (char*)&father_id [Obj], 2); // айди родительского объекта в иерархии
break;
case 0xb013:
dsmodel1.read ( (char*)&(pivot [Obj].x), 4); //координаты точки, вокруг которой будет вращаться объект
dsmodel1.read ( (char*)&(pivot [Obj].y), 4);
dsmodel1.read ( (char*)&(pivot [Obj].z), 4);
break;
case 0xb020: // это поле описывает перенос объекта
dsmodel1.ignore (10);
number_of_keys [Obj] = new DWORD;
dsmodel1.read ( (char*)&(number_of_keys [Obj][0]), 4); //сколько кадров анимации будет у объекта
key_number [Obj] = new DWORD [number_of_keys [Obj][0]];
frameTran [Obj] = new D3DXVECTOR3 [number_of_keys [Obj][0]];
how_much_to_ignore = 0;
accel_flags = 0;
for (i = 0; i < number_of_keys [Obj][0]; i++)
{
dsmodel1.read ( (char*)&(key_number [Obj][i]), 4);
dsmodel1.read ( (char*)&(accel_flags), 2); //это флаги сплайнов, в этом примере всегда = 0
if (accel_flags && (1 << 15)) how_much_to_ignore++;
if (accel_flags && (1 << 14)) how_much_to_ignore++;
if (accel_flags && (1 << 13)) how_much_to_ignore++;
//...
dsmodel1.read ( (char*)&(frameRot [Obj][i].y), 4); // как я понял он должен быть помещен в точку pivot (она считывалась выше в поле 0хb013)
//...
case 0xb030:
dsmodel1.read ( (char*)&(hierarchy_id [Obj]), 2); // номер объекта в иерархии, в нашем примере = номеру объекта по порядку считывания
Полный код:
http://www.gamedev.ru/code/forum/?id=151570
CPPGovno,
26 Августа 2011
-
+164
- 1
- 2
- 3
FrmCabinetFound *frm = new FrmCabinetFound(index.data(Qt::UserRole).toInt());
((QMdiArea*)this->parent()->parent()->parent())->addSubWindow(frm);
frm->show();
des-1008d,
25 Августа 2011
-
+167
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
char *sLoop = new char[4];
_itoa(i, sLoop, 10);
string strField = fp1 + sLoop + fp2;
char *str = new char[255];
for (int i=0; i<=sizeof(strField); i++)
str[i] = strField[i];
_bstr_t impFieldName(str);
// думаю, очевдно, что delete нигде не было. ;)
Говногость,
25 Августа 2011
-
+144
- 1
- 2
- 3
- 4
class GameDevTroll:public Troll{};
GameDevTroll TarasB;
TarasB.throwIn( Url("Какие проблемы в данных отрывках кода? (5 стр)") );
http://www.gamedev.ru/flame/forum/?id=150336&page=5#m65
TarasB:
>Крестоламеры такие крестоламеры.
CPPGovno,
24 Августа 2011
-
+148
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
void init()
{
letters.push_back("q");
letters.push_back("w");
letters.push_back("e");
letters.push_back("r");
letters.push_back("t");
letters.push_back("y");
letters.push_back("u");
letters.push_back("i");
letters.push_back("o");
letters.push_back("p");
letters.push_back("a");
letters.push_back("s");
letters.push_back("d");
letters.push_back("f");
letters.push_back("g");
letters.push_back("h");
letters.push_back("j");
letters.push_back("k");
letters.push_back("l");
letters.push_back("z");
letters.push_back("x");
letters.push_back("c");
letters.push_back("v");
letters.push_back("b");
letters.push_back("n");
letters.push_back("m");
letters.push_back("0");
letters.push_back("1");
letters.push_back("2");
letters.push_back("3");
letters.push_back("4");
letters.push_back("5");
letters.push_back("6");
letters.push_back("7");
letters.push_back("8");
letters.push_back("9");
}
пусть кому-то станет стыдно!
Lure Of Chaos,
24 Августа 2011
-
+161
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
int b;
int c();
template<class u, class v>
struct IsSameType
{
enum {r=0};
};
template<class u>
struct IsSameType<u,u>
{
enum {r=1};
};
//...
cout<<IsSameType<decltype(b),decltype(c())>::r<<endl;
cout<<IsSameType<decltype(b),decltype((b))>::r<<endl;
cout<<IsSameType<decltype(c()),decltype((b))>::r<<endl;
Сегодня увидим новую плюшку, что нам подарил новый стандарт С++0х.
1)Что на экране получим после выполнения данной программы?
2)Какие реально decltype возвращает типы в данных случаях?
Желательно ответить на оба вопроса, не компилируя. ^_^
Говногость,
21 Августа 2011
-
+146
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
// file.h
template <class T>
void gg (T i)
{
a = i;
}
// file1.cpp
#include "file.h"
static int a;
...
gg (a);
// file2.cpp
static int a;
...
gg (a);
// компилюем, линкуем - где напёрсточек^W^W в какое a стучится gg<int>?
>Мне тут некоторые граждане, на пару с некоторыми компиляторами и стандартом наперевес, пытались неубедительно доказывать, что-де такого не позволяет ODR, но пояснить свою мысль в математически непротиворечивой форме что-то не получилось. А между тем, не грех было бы взять пример с презренного пхп и заставить программизда все глобальные переменные, используемые в какой-либо функции, специфицировать в ней явным образом.
CPPGovno,
21 Августа 2011
-
+161
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
/// ...хде-то в начале огромной-преогромной функции...
#define ADD_GRAPH(gid,gmod) m_Registry[TGraphId(gid,gmod)] = new
/// ...хде-то по её середине...
#define ADD_MAP_WEAPON_OVERLAY(name_base,file_name)\
for (i=0; i<8; i++)\
{\
ADD_GRAPH(name_base _T("S"),i) (CLoadImage (\
file_name,\
TImageFX ()\
.SetColorReplacementFX (g_WeaponRecolor[i],2,0)\
));\
ADD_GRAPH(name_base _T("Q"),i) (CLoadImage (\
file_name,\
TImageFX ()\
.SetColorReplacementFX (g_WeaponRecolor[i],2,1)\
));\
}
#define ADD_MAP_WEAPON_OUTLINE(name_base,file_name)\
ADD_GRAPH(name_base _T("C"),0) (CLoadImage (\
file_name,\
TImageFX ()\
.SetColorReplacementFX (g_WeaponRecolor[0],2,2)\
));
ADD_MAP_WEAPON_OVERLAY (_T("CellSword"),_T("cell_weap_sword.png"));
ADD_MAP_WEAPON_OVERLAY (_T("CellAxe"),_T("cell_weap_axe.png"));
ADD_MAP_WEAPON_OVERLAY (_T("CellEshock"),_T("cell_weap_eshock.png"));
ADD_MAP_WEAPON_OVERLAY (_T("CellLance"),_T("cell_weap_lance.png"));
//... тут очень много в таком же духе ...
ADD_MAP_WEAPON_OUTLINE (_T("CellXbow"),_T("cell_weap_xbow.png"));
ADD_MAP_WEAPON_OUTLINE (_T("CellRifle"),_T("cell_weap_rifle.png"));
ADD_MAP_WEAPON_OUTLINE (_T("CellPistol"),_T("cell_weap_pistol.png"));
>Как бы оно выглядело без макросов, предоставляю гадать желающим.
Эстеты, разумеется, могут возопить: "Пошто было не вынести всё это в функцию?!" Пото, что функцию (а она потребовалась бы методом) пришлось бы описывать в хедере вместе с классом + имплементировать где-то снаружи текущей функции - весёлое занятие, нечего сказать. Это при том, что данный конкретный кусок кода на момент написания сильномутабелен в плане кол-ва требующихся параметров, и в перспективе мог вообще исчезнуть/слиться с другим. И таких кусков там ~100500. Возможностей, с которыми использование функций для подобного действа не является злобным буратинством, в моём местном С++ пока не наличенствует. А так все релевантные к специфике данного куска пиписьки сконцентрированы в одном месте, умещаются на 1 экран, и я спокоен за возвращение к нему через много времени.
CPPGovno,
21 Августа 2011
-
+162
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
#include<thread>
void f();
struct F {
void operator()();
};
int main()
{
std::thread t1{f}; // f() executes in separate thread
std::thread t2{F()}; // F()() executes in separate thread
}
Фигурные скобочки t1{f}; , используемые где только можно не перестают доставлять.
http://www2.research.att.com/~bs/C++0xFAQ.html
Говногость,
21 Августа 2011
-
+152
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
int main()
{
unsigned long l = 0xffc00000;
float f1,f2;
memcpy(&f1,&l,4);
memcpy(&f2,&l,4);
if(f1!=f2)printf("OH, SHI~!\n");
if(f1!=f1)printf("Facepalm!\n");
}
>Давно хотел провести эксперимент, вот только сейчас руки дошли.
Лог программы:
OH, SHI~!
Facepalm!
>Кто-нибудь знает причину подобного феномена?
Эксперемент не мой и я знаю причину такого поведения. Так что не плохой вопрос для собеседования к новичкам.
Говногость,
21 Августа 2011