git.asbjorn.biz
/
swftools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed BUTTONSOUND/BUTTONCXFORM parsing
[swftools.git]
/
lib
/
modules
/
swftools.c
diff --git
a/lib/modules/swftools.c
b/lib/modules/swftools.c
index
5f16339
..
1099bc3
100644
(file)
--- a/
lib/modules/swftools.c
+++ b/
lib/modules/swftools.c
@@
-26,8
+26,11
@@
#define S64 long long
SFIXED RFXSWF_SP(SFIXED a1,SFIXED a2,SFIXED b1,SFIXED b2)
{ S64 a;
#define S64 long long
SFIXED RFXSWF_SP(SFIXED a1,SFIXED a2,SFIXED b1,SFIXED b2)
{ S64 a;
- a = (S64)a1*(S64)b1+(S64)a2*(S64)b2;
- return (SFIXED)(a>>16);
+ a = ((S64)a1*(S64)b1+(S64)a2*(S64)b2)>>16;
+ SFIXED result = (SFIXED)(a);
+ if(a!=result)
+ fprintf(stderr, "Warning: overflow in matrix multiplication");
+ return result;
}
SFIXED RFXSWF_QFIX(int zaehler,int nenner) // bildet Quotient von zwei INTs in SFIXED
{ S64 z = zaehler<<16;
}
SFIXED RFXSWF_QFIX(int zaehler,int nenner) // bildet Quotient von zwei INTs in SFIXED
{ S64 z = zaehler<<16;
@@
-483,7
+486,7
@@
void enumerateUsedIDs(TAG * tag, int base, void (*callback)(TAG*, int, void*), v
tag->pos = 0;
switch(tag->id)
{
tag->pos = 0;
switch(tag->id)
{
- case ST_DEFINEBUTTONCXFORM: {
+ case ST_DEFINEBUTTONSOUND: {
int t;
callback(tag, tag->pos + base, callback_data);
for(t=0;t<4;t++) {
int t;
callback(tag, tag->pos + base, callback_data);
for(t=0;t<4;t++) {
@@
-510,7
+513,7
@@
void enumerateUsedIDs(TAG * tag, int base, void (*callback)(TAG*, int, void*), v
}
}
} break;
}
}
} break;
- case ST_DEFINEBUTTONSOUND:
+ case ST_DEFINEBUTTONCXFORM:
callback(tag, tag->pos + base, callback_data); //button id
break;
callback(tag, tag->pos + base, callback_data); //button id
break;