else
gradient.rgba[t] = readRGBA(r);
}
+ return gradient;
}
struct RECT readRECT(struct reader_t*reader)
u16 taghead = 0x3f | TAGID_PLACEOBJECT<<6;
u8*pos;
u8*lenpos;
+ U32 len;
writer_resetbits(w);
writer_write(w, &taghead, 2);
lenpos = writer_getpos(w);
CXFORM_write(&obj->cxform, w);
}
writer_resetbits(w);
-
- *(u32*)lenpos = (u8*)writer_getpos(w) - pos;
+
+ len = (u8*)writer_getpos(w) - pos;
+ lenpos[0] = len;
+ lenpos[1] = len>>8;
+ lenpos[2] = len>>16;
+ lenpos[3] = len>>24;
}
void placeobject2_init (struct PlaceObject2*obj,struct swf_tag*tag)
{
u8 flags = obj->reserved<<7 | obj->hasclipactions<<6 | obj->hasname<<5 | obj->hasratio<<4 |
obj->hascolortransform<<3 | obj->hasmatrix<<2 | obj->hascharacter<<1 | obj->hasmove;
- u16 taghead = 0x3f | TAGID_PLACEOBJECT2<<6;
+ u16 taghead = SWAP16(0x3f | TAGID_PLACEOBJECT2<<6);
u8*pos;
u8*lenpos;
+ U32 len;
writer_resetbits(w);
writer_write(w, &taghead, 2);
lenpos = writer_getpos(w);
if(obj->hasclipactions)
writer_writeu16(w, obj->clipactions);
writer_resetbits(w);
- *(u32*)lenpos = (u8*)writer_getpos(w) - pos;
+
+ len = (u8*)writer_getpos(w) - pos;
+ lenpos[0] = len;
+ lenpos[1] = len>>8;
+ lenpos[2] = len>>16;
+ lenpos[3] = len>>24;
}
void read_swf(struct swffile*swf, uchar*data, int length)
}
break;
case TAGID_REMOVEOBJECT:
- return *(u16*)tag->data;
+ return tag->data[0]+tag->data[1]*256;
break;
case TAGID_REMOVEOBJECT2:
return -1;
break;
}
- return *(u16*)tag->data;
+ return tag->data[0]+tag->data[1]*256;
}
void setidintag(struct swf_tag* tag, int id)
{
- *(u16*)tag->data = id;
+ tag->data[0] = id;
+ tag->data[1] = id>>8;
}
char is_sprite_tag (int id)
{
-
int t=0;
while(spritetagids[t]>=0)
{
char is_defining_tag (int id)
{
-
int t=0;
while(definingtagids[t]>=0)
{