Quote:
Originally Posted by azxten
[You must be logged in to view images. Log in or Register.]
Thanks, looking at the March 2000 client.
*Jaws music fades in*
[You must be logged in to view images. Log in or Register.]
[You must be logged in to view images. Log in or Register.]
[You must be logged in to view images. Log in or Register.]
Kind of blows my mind looking at those two function graphs. One is Charm, the other is CastingRequirementsMet which has a ton of stuff in there reagents, movement, channeling, checks for things like if you're unconscious, everything. The Charm function is more complex though. In that Charm function graph the green box is the main function entry point and the gold circled box is where the message gets output "your target is too high for your charm." I mean look at all that shit, it's hilarious, for one spell.
Thankfully with advances in reverse engineering tools provided by the NSA via Ghidra we might finally get some insight into the classic client. I was able to find developer comments that allow for determining the function names. They used a general error message format like, "My shit broke in CastingRequirementsMet()!" and through some comparison of those comments and the functions they are contained within a large valuable portion of the client functions can be named definitively which should be enough to go on to tie things together. As functions are identified via this methodology and other ways they fill in the blanks among the other functions that call those functions so things becoming increasingly obvious and easier to figure out.
|
this is neat, can we have a thread about more of this stuff, or a blog post of your development/insight