This room (as many other rooms for the AS3 client), is not compiled in AS3 as you said. This room is made with AS2 code. You can tell this because it makes direct calls to the shell (which is also written in AS2) without a bridge.
example:
this._SHELL.getLanguageAbbreviation()
So the only real issue here is compatibility with the APIs available within the AS2 client vs the AS3 one.
The bulk of the code for the room is in com.clubpenguin.world.rooms2012.musicjam.Forts
Open this class up in JPEX and you’ll find this method:
function openCatalogue(key)
{
this._INTERFACE.showContent(key);
}
Look up inside the init
method of the class and you’ll see
this._stage.merch_mc.onRelease = com.clubpenguin.util.Delegate.create(this,this.openCatalogue,com.clubpenguin.world.rooms2012.musicjam.MusicJam.PARTY_CATALOGUE);
Which means that when the merch_mc
movieclip is released it will invoke openCatalogue
with the parameter com.clubpenguin.world.rooms2012.musicjam.MusicJam.PARTY_CATALOGUE
.
If you go and look at com.clubpenguin.world.rooms2012.musicjam.MusicJam.PARTY_CATALOGUE
You will see it is set to w.p0712.musicjam.clothing.catalogue
, snippet:
// lines 58 through 63 of com.clubpenguin.world.rooms2012.musicjam.MusicJam
0.PARTY_CATALOGUE = "w.p0712.musicjam.clothing.catalogue";
0.OOPS_NON_MEMBER_BACKSTAGE = "oops_non_member_backstage";
0.SCAVENGER_HUNT_ALERT = "w.p0712.musicjam.scavengerhunt";
0.PARTY_ANNOUNCEMENT = "w.party.announcement";
0.CADENCE_MUSIC_TRACK = "w.p0712.musicjam.cadence.track";
0.DUBSTEP_PUFFLE_MUSIC = "w.0712.musicjam.dubstep.track";
Since this._INTERFACE.showContent(key);
is valid for the AS2 and AS3 client, my best guess is you can get this working simply by fixing the incompatible path “short name” from w.p0712.musicjam.clothing.catalogue
to party_catalogue
.
This can be modified inside JPEX, no need to decompile. In fact, i’ve attached it for you, untested.
forts.swf