- 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); // номер объекта в иерархии, в нашем примере = номеру объекта по порядку считывания
roman-kashitsyn 26.08.2011 11:58 # +5
RaZeR 26.08.2011 22:25 # +3
Zaooza!
Esper 26.08.2011 12:17 # +8
Использование && вместо & - очаровательно.
roman-kashitsyn 26.08.2011 12:21 # +4
Esper 26.08.2011 12:29 # +8
JeremyW 26.08.2011 13:56 # +2
CPPGovno 26.08.2011 14:17 # +1
absolut 28.08.2011 01:44 # +3
roman-kashitsyn 26.08.2011 14:21 # 0
gegMOPO4 26.08.2011 21:22 # −1
Lemming 25.08.2021 05:37 # 0