private void init(ResourceEntry targetEntry) { songEntry = targetEntry; songId = -1L; Song2daBitmap songBitmap = new Song2daBitmap(StreamUtils.getByteBuffer(4), 0, 4); List<RefEntry> resList = songBitmap.getResourceList(); for (final RefEntry refEntry : resList) { ResourceEntry entry = refEntry.getResourceEntry(); if (entry != null && entry.equals(targetEntry)) { songId = refEntry.getValue(); break; } } if (songId >= 0) { if (Profile.getGame() != Profile.Game.PST) { scriptActions.add(Pattern.compile("StartMusic\\(" + Long.toString(songId) + ",.+\\)")); IdsMap map = null; if (ResourceFactory.resourceExists("SONGLIST.IDS")) { map = IdsMapCache.get("SONGLIST.IDS"); } else if (Profile.getGame() == Profile.Game.IWD2) { map = IdsMapCache.get("MUSIC.IDS"); } if (map != null && map.getMap().containsKey(Long.valueOf(songId))) { String musicId = map.getMap().get(Long.valueOf(songId)).getString(); scriptActions.add(Pattern.compile("SetMusic\\(.+?," + Long.toString(songId) + "\\)")); if (musicId != null && !musicId.isEmpty()) { scriptActions.add(Pattern.compile("SetMusic\\(.+?," + musicId + "\\)")); } } } } }
public Iwd2Spell() throws Exception { super(null, CRE_SPELL, StreamUtils.getByteBuffer(16), 0); }