12xx(MonsterMulti) animation code forget to save AnimID to proper field, e.g. animid for dragons was random, i fixed it.
Ok, dragons' resref override seems to work now.
Im gonna need a crash course in that dynamic slot code for the Nostalgia Pack (though BG1 sprites are peculiar in that they can only occupy a limited range of slots.)
Sure, there will be a full guide on how to add animations using the new approach once we've discussed everything, implemented all the new features and, of course, Gwendolyne approved all the suggestions.
To keep modder prefix untouched for BODY TobEx can change to 4-char prefix or to 3-char prefix
Personally, I'd go for the 4-char prefix and inv -> in, because it gives you a bigger number of unique ASCII char combinations.
Is it "flipper" between Base(B) and class-specific(T-Thief,F-Fighter,...) animation ?
Yeah. Only the fighter and cleric animations have different specific armor than base:
Warrior (fighter and cleric animations) base = B
Fighter animation specific armor = F
Cleric animation specific armor = C
Mage animation base = W
Mage animation specific armor = W
Thief animation base = T (but in vanilla BG2 armor level 1 is coded as warrior base and proper BAMs are missing; this was fixed by Erephine in 1pp)
Thief animation specific armor = T
on BG2 we cannot set custom animation type to new added animation
Yep, animation types are still hardcoded to animation offset ranges. Both in BGEE and the classic BG2+IA. BGEE is confusing, because there is the "animation_type" key under [general] in INI files, but it cannot be overridden at all. Modders adding new animations need to look at the animation offset reference chart to know which animation type corresponds to which offset range. Then we can use something similar to argent77's functions FIND_FREE_ANIM_SLOT and TO_HEX_NUMBER. And all that's left is specifying the offset range and appending new anims to IDS and 2DA files. Later I'll write up a full WeiDU code example for the classics; of course it will be an IA-classic-friendly version of something similar to the ones Gwendolyne uses for BGEE (you'll find examples in the EE compatibility thread in the IA workroom, which you've been invited to).
How does this open up new animation slots? If I read the IA docs right, it's not the filename but the hexa slot IDs which cause the bottleneck. I don't see how softcoding filenames - on which don't get me right, is always cool - helps on hexa ID allocation.
I realize all this may be very confusing and the available documentation doesn't help that much to understand the underlying limitations.
So, basically, there are a lot of animation slots (or "offsets") added by IA which share the same hardcoded prefixes (or "resrefs"). This is because there are more offsets than unique characters within the character encoding and the pattern Erephine originally chose (she intended animations of the same type to be easily identified by the same first character of the prefix). Only some of those shared-prefix animations can coexist in-game, and that's only when the filenaming patterns are different (so that these different BAM sets with shared prefixes can be present in the override folder without overwriting each other). If somebody claims an offset with a shared prefix, in many cases this automatically disables another offset with the same prefix. So, what actually happens is two or more offsets get locked out instead of only one. The exact limitations depend on animation types, footcircle sizes, whether paperdoll is needed or not, paletted or unpaletted, etc. In any case, this drastically cuts down the number of available slots.
The animation filenaming is based on the prefixes; that's how the engine chooses eg which BAMs to draw for creatures. When you build a creature file and choose its animation you can only select the animation offset itself, but you can't select the BAM set separately. The engine uses the hardcoded prefix lookup table to pick the right BAM set linked to the offset.
For example, animation offset 0x683d (BG2 character type) is hardcoded to ˘A˘A prefix. All your BAM filenames will have to start with that prefix. But animation offset 0x6d3d (BG1 character type) is also hardcoded to ˘A˘A prefix. The filenames for this offset will also need to start with that prefix. These animation types follow conflicting filenaming patters, so only one of the BAM sets can be present in the override folder. Claiming one of these slots will also disable the other.
Ever wondered what these " ----- " represent in IA_list files? These are the offsets locked out because of the shared-prefix limitations. Now compare these two lists of offsets that have already been claimed:
IA_list_locked.txt 68.9K
48 downloads
IA_list_unlocked.txt 35.69K
46 downloads
Assuming we override the hardcoded prefixes with unique ones for new animation slots using TobExAL, we've just freed up half of the previously claimed slots. Naturally, this also doubles the total number of yet unclaimed slots available in the offset pool. TobExAL now also allows you to override the footcricle size, paperdoll prefix and other useful animation data.
Of course the IA_list files are for the old IA version (v5), which needs the IA Reference Picker (a GUI AutoHotKey script) to claim slots without conflicts, so they have very little to do with the new approach using externalized animation data with TobExAL. I've only uploaded the new list for reference just in case anybody crazy enough tried to add new animations before v6 gets released.
I can imagine this is because I don't see what is your new proposal with the restored BG1 paletted monster variants (I've diffed the list you proposed where you moved them from unpaletted slots to paletted, so I seen those changes).
I didn't move them from unpaletted to paletted slot types; I removed the BG1 _FIXED anims altogether. They were originally added to the IA slots as a workaround for yet another engine-related issue (2DA soundset codes) solved by TobExAL.
Edited by skellytz, 18 May 2022 - 05:39 PM.