// * readers should be object-oriented
static char* slavename;
+static int slaveid;
static char* tag_placeobject2_name (struct swf_tag* tag)
{
startpos = (u8*)writer_getpos(w);
- if (spriteid<0)
- {
- logf("<warning> Didn't find anything named %s in file. No substitutions will occur.", slavename);
- spriteid = get_free_id();
- }
-
logf ("<notice> sprite id is %d", spriteid);
tmp = spriteid;
writer_write(w, &tmp, 2);
char master_flash = 0;
char slave_flash = 0;
slavename = _slavename;
+ if(slavename[0] == '#')
+ {
+ slaveid = atoi(&slavename[1]);
+ slavename = 0;
+ }
logf("<debug> move x (%d)", config.movex);
logf("<debug> move y (%d)", config.movey);
else
logf("<verbose> tagid %02x places object %d (no name)", tag, id);
- if (name && !strcmp(name,slavename)) {
+ if ((name && slavename && !strcmp(name,slavename)) ||
+ (!slavename && id==slaveid)) {
if(id>=0) {
spriteid = id;
logf("<notice> Slave file attached to object %d.", id);
}
while(master.tags[pos++].id != 0);
+ if (spriteid<0)
+ {
+ if(slavename)
+ logf("<warning> Didn't find anything named %s in file. No substitutions will occur.", slavename);
+ else
+ logf("<warning> Didn't find id %d in file. No substitutions will occur.", slaveid);
+ spriteid = get_free_id();
+ }
+
swf_relocate (slavedata, slavelength, masterids);
read_swf(&slave, slavedata, slavelength);