collinsmith / riiablo

Diablo II remade using Java and LibGDX
http://riiablo.com
Apache License 2.0
872 stars 99 forks source link

eanimdata.d2 vs animdata.d2 #70

Closed collinsmith closed 4 years ago

collinsmith commented 4 years ago

Other .d2 files are libraries of cofs -- chars_cof, cmncof_a1, cmncof_a2, cmncof_a3, cmncof_a4, cmncof_a5, cmncof_a6, cmncof_a7. This does not account for all cof files in the game though. _a1, _a2, _a3, _a4, _a6 seem to map to objects and monsters found in acts 1-5, meaning _a5, _a7 have no apparent use yet.

Logically, the server shouldn't need the full cof data -- as long as it knows the number of frames, speed of the animation and action frames it should be alright to know the state of the entity -- which leads me to believe this is where the other .d2 files come into play.

file entries
cof ~3513
eanimdata.d2 3531
animdata.d2 3557

The difference between eanim and anim are that anim seems to have some duplicate and additional entries from eanim (no diffs, just additions) for DZ, AI, 41, 44, 0J, K9. I am going to assert that eanimdata.d2 is intended to deprecate animdata.d2.

token type name desc
DZ CHAR Druid removed duplicates
AI CHAR Assassin removed duplicates
41 MONSTER BaalThrone removed 41DDHTH -- cof is empty and 41 can't die
44 MONSTER BaalTentacle removed 44WLHTH -- cof is empty and 44 can't walk
K9 MONSTER HellMeteor unused monster
0J MONSTER NihlathakTown missing 0JDDHTH -- cof is empty and 0J can't die

They missed some references to K9 cofs, but I double checked and all cofs and textures are empty.

TODO: Cross compare the list of COFs to eanimdata.d2 and find out what's missing -- eanimdata.d2 contains more entries that there are COFs.

collinsmith commented 4 years ago

I wrote a little program to load in my listfile and eanimdata.d2 and cross compare to find out the missing entries.

listfile duplicates (with itself): One interesting thing is 3d has two separate entries in objects and monsters -- monster is deckard cain and the object is a sarcophagi in act 5. The vm duplicates are for the real and bugged files (duplicated paths to invalid files). 2q is the same asset listed as an object and monster in act 5. ga is the gidbinn platform -- looks like an error. oy is the bnet moderator monster -- looks like an error. This is just the listfile though, not important.

No entry in D2: Only interesting one is 2q which is missing it's object references op and on -- so I think we know that was changed from an object to a monster at some point and the object references were dangling pointers. I'm pretty sure this is the door to cages for a5q2, so when that comes up, I know they need to be flagged as monsters.

amblxbow is a reference to an empty cof -- amazon's can't block with a xbow anyways. Just speculation, but since I'm pretty sure amazon was the first class developed, they might have thought of allowing you to block with any weapon at some point.

No entry in listfile: (I just added the notes below)

duplicate aitn1hs
duplicate aitn1ht
duplicate aitn2hs
duplicate aitn2ht
duplicate aitnbow
duplicate aitnht1
duplicate aitnht2
duplicate aitnhth
duplicate aitnstf
duplicate aitnxbw
duplicate 3dnuhth
duplicate vma1hth
duplicate vmddhth
duplicate vmdthth
duplicate vmghhth
duplicate vmnuhth
duplicate vms1hth
duplicate vmwlhth
duplicate 2qnuhth
duplicate 3dnuhth
duplicate dztn1hs
duplicate dztn1ht
duplicate dztn2hs
duplicate dztn2ht
duplicate dztnbow
duplicate dztnhth
duplicate dztnstf
duplicate dztnxbw
duplicate gaonhth
duplicate nenu1hs
duplicate nenu1ht
duplicate nenuhth
duplicate netn1hs
duplicate netn1ht
duplicate netnhth
duplicate oytnhth

no entry in d2 for 2qophth
no entry in d2 for 44wlhth
no entry in d2 for k9schth
no entry in d2 for 0jddhth
no entry in d2 for k9s4hth
no entry in d2 for k9blhth
no entry in d2 for oytnhth
no entry in d2 for k9s3hth
no entry in d2 for k9a2hth
no entry in d2 for 2qonhth
no entry in d2 for 41ddhth
no entry in d2 for amblxbow
no entry in d2 for k9s2hth

no entry in listfile for 9bnuhth -- some monster effect
no entry in listfile for middhth -- act 2 mana well with monster anims?
no entry in listfile for o0nuhth -- act 2 misc npc
no entry in listfile for bxrn1hs -- barrel with monster anims?
no entry in listfile for bxrn2hs -- barrel with monster anims?
no entry in listfile for mighhth -- act 2 mana well with monster anims?
no entry in listfile for bxwl1hs -- barrel with monster anims?
no entry in listfile for bxnu1hs -- barrel with monster anims?
no entry in listfile for bxwl2hs -- barrel with monster anims?
no entry in listfile for bxnu2hs -- barrel with monster anims?
no entry in listfile for midthth -- act 2 mana well with monster anims?
no entry in listfile for mirnhth -- act 2 mana well with monster anims?
no entry in listfile for miwlhth -- act 2 mana well with monster anims?
no entry in listfile for yhonhth -- no references exist
no entry in listfile for yjonhth -- no references exist
no entry in listfile for yhophth -- no references exist
no entry in listfile for ykonhth -- no references exist
no entry in listfile for yjophth -- no references exist
no entry in listfile for ykophth -- no references exist
no entry in listfile for yhnuhth -- no references exist
no entry in listfile for yjnuhth -- no references exist
no entry in listfile for yknuhth -- no references exist
no entry in listfile for bxa11hs -- barrel with monster anims?
no entry in listfile for bxa21hs -- barrel with monster anims?
no entry in listfile for mia1hth -- act 2 mana well with monster anims?
no entry in listfile for mia2hth -- act 2 mana well with monster anims?
no entry in listfile for bxdd1hs -- barrel with monster anims?
no entry in listfile for mis1hth -- act 2 mana well with monster anims?
no entry in listfile for bxdt1hs -- barrel with monster anims?