git.asbjorn.biz
/
swftools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
swf_ObjectPlace(Clip) now only sets a matrix if it's not the unix matrix.
[swftools.git]
/
lib
/
rfxswf.c
diff --git
a/lib/rfxswf.c
b/lib/rfxswf.c
index
ca87274
..
061010b
100644
(file)
--- a/
lib/rfxswf.c
+++ b/
lib/rfxswf.c
@@
-179,6
+179,13
@@
int swf_SetU16(TAG * t,U16 v)
t->data[t->len++] = a[1];
return 0;
}
t->data[t->len++] = a[1];
return 0;
}
+void swf_SetS16(TAG * t,int v)
+{
+ if(v>32767 || v<-32768) {
+ fprintf(stderr, "Warning: S16 overflow: %d\n", v);
+ }
+ swf_SetU16(t, (S16)v);
+}
int swf_SetU32(TAG * t,U32 v)
{ U8 a[4];
int swf_SetU32(TAG * t,U32 v)
{ U8 a[4];
@@
-1254,7
+1261,7
@@
int swf_WriteSWF2(struct writer_t*writer, SWF * swf) // Writes SWF to file,
while(t) {
len += swf_WriteTag(-1,t);
while(t) {
len += swf_WriteTag(-1,t);
- if(t->id == ST_DEFINESPRITE) inSprite++;
+ if(t->id == ST_DEFINESPRITE && !swf_IsFolded(t)) inSprite++;
else if(t->id == ST_END && inSprite) inSprite--;
else if(t->id == ST_SHOWFRAME && !inSprite) frameCount++;
t = swf_NextTag(t);
else if(t->id == ST_END && inSprite) inSprite--;
else if(t->id == ST_SHOWFRAME && !inSprite) frameCount++;
t = swf_NextTag(t);