OSDN Git Service

Sprite 入れ替えで cid が 0 になるのを修正
authoryoya <yoya@7c90b180-03d5-4157-b861-58a559ae9d1e>
Tue, 8 Mar 2011 01:22:06 +0000 (01:22 +0000)
committeryoya <yoya@7c90b180-03d5-4157-b861-58a559ae9d1e>
Tue, 8 Mar 2011 01:22:06 +0000 (01:22 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/swfed/trunk@399 7c90b180-03d5-4157-b861-58a559ae9d1e

src/swf_object.c

index 380b3e0..85da3a7 100644 (file)
@@ -860,7 +860,7 @@ int
 swf_object_replace_movieclip(swf_object_t *swf,
                              unsigned char *instance_name, int instance_name_len,
                              unsigned char *swf_data, int swf_data_len) {
-    int cid = 0, ret = 0;
+    int cid = 0, sprite_cid = 0, ret = 0;
     swf_tag_t *tag = NULL;
     swf_tag_t *sprite_tag = NULL, *prev_sprite_tag = NULL;
     swf_tag_t *sprite_tag_tail = NULL; // sprite の中の最後の tag
@@ -890,6 +890,7 @@ swf_object_replace_movieclip(swf_object_t *swf,
         if (isSpriteTag(tag->tag)) {
             if (swf_tag_get_cid(tag) ==  cid) {
                 sprite_tag = tag;
+                sprite_cid = cid;
                 break;
             }
         }
@@ -927,6 +928,7 @@ swf_object_replace_movieclip(swf_object_t *swf,
     }
     sprite_tag->detail = detail_handler->create();
     swf_tag_sprite = sprite_tag->detail;
+    swf_tag_sprite->sprite_id = sprite_cid;
 
     // SWF 中のタグを種類に応じて展開する
     for (tag=swf4sprite->tag ; tag ; tag=tag->next) {