Please revive TankPoints

OK, so it’s been about an hour, and here’s where I’m at, so far!

The svn repo link on curseforge doesn’t seem to work:
svn source: https://www.curseforge.com/wow/addons/tank-points/source

Whereas the link on wowace does:
svn source: https://www.wowace.com/projects/tank-points/source


Firstly, the repo I found was using a source code version control management system called SVN, which was quite popular until around 10 years ago when something called git started to become the defacto source control management system.

There is a site that you may be familiar with called GitHub which is a host for code repositories.

I searched GitHub for tankpoints, and it seems that a couple of people have taken a look somewhat recently:

This is what I found:

This is somewhat helpful, and gives some git repos with the source code. However, they have not preserved the branch history.


Luckily, there is a tool git svn that seems to be a plugin for git (as it requires an additional install), and can be used to view history.

git svn clone --trunk=/trunk --branches=/branches --branches=/bugfixes --tags=/tags https://repos.wowace.com/wow/tank-points/ tank-points

will clone the SVN code repository from wowace, and place it into a directory named tank-points that has the SVN history and branches available to git.

Rather than using git branch or git branch --list to view the branches, since this is a cloned SVN to Git repo, we use git branch -r to view the branches…

Here’s what they appear to be in this repo:

  origin/WoD
  origin/mists
  origin/tags/2.8.4
  origin/tags/2.8.5
  origin/tags/2.8.6
  origin/tags/r103
  origin/tags/r104
  origin/tags/r108
  origin/tags/r121
  origin/tags/r122
  origin/trunk
  origin/trunk@76

If we checkout the branch origin/tags/2.8.4 and look at the file, TankPoints.toc, we can see ## Interface: 30200 at the top of the file, indicating it is for a 3.something version of WoW, i.e. WotLK.

Checking out origin/tags/r103 shows ## Interface: 30000, with is also WotLK or pre-patch. I suppose it is 3.0, while the above is likely 3.2.

This means that the best historic version of the code that I could find is relevant for the 3.0 client.

i was thinking i played on a BC private server years ago and had some addons for that so i went digging through old junk on my computer and found a version of TankPoints that says Interface: 20000 in that toc file. would that be better?

It might be. It’d be great to have to compare any differences that may exist.

ok no idea how i would get this version to u tho hehe

Any file sharing service that allows anonymous uploading/downloading would work, e.g. dropbox, google drive, etc.

Or, if you could find a link to where you downloaded it?

ok i just installed this dropbox thing but now its telling me i cant include links in my post?

EDIT: maybe if i put spaces in it?
https:// www .dropbox.com/t/XWIUFtq5OpGDjxkK

1 Like

Put ` either side of the link and it’ll show as:

https://www.curseforge.com/wow/addons/rating-buster

The creator of TankPoints also made RatingBuster which is another one I’d pay good money to see resurrected. No recent action but there is something similar in the works:

https://www.curseforge.com/wow/addons/little-buster

I was able to download it, thanks!

OK, so now I’ve got a fair bit of familiarizing myself with addons, the addon interface, etc. to do.

If we assume that the logic for this version is perfect for the current TBC Classic version, then that would be all. Just spending some time to work on any differences between the API Interface between this addon and the modern client.

It is however somewhat likely that there are differences in how to calculate whatever TankPoints are. So, that means, I’ll also have to familiarize myself with what this addon actually does (or is meant to do), and precisely, in complete and full accurate detail understand how it is meant to work.

I’m not quite sure how long either of these steps will take. A good way to measure would be to answer this question: How long does it take to become familiar with something you are unfamiliar with?


As a potential point of interest, the branch origin/trunk@76 happens to have a TankPoints.toc that shows ## Interface: 20300 so I suspect that’s not too far off from the current client.

At least it gives a reasonable amount of code to sort through and compare.

Someone who was already very familiar with writing addons for WoW could probably get this working within something like a couple of days to a couple of weeks.

I’ll see how I’m feeling about it tomorrow, and I’ll either put a couple hours into diving into the codebase to figure out the logic — or — the differences between the original 2.x client and current TBC Classic client, with regards to interfacing with Addons — or — I’ll make the code repository, converted to git, with branched commit history available, in case someone else would like to continue.


Also, interestingly, it seems that the original main developer of TankPoints is hotdogee.

Since the source code has comments showing:

Developed by: Whitetooth@Cenarius (hotdogee@bahamut.twbbs.org)
2 Likes

thanx
i feel bad that i cant help
i hope its not too much work

1 Like

You can, and you are.

I’ve learned some stuff about addons in general, and this addon, so far. Interestingly, the original author was active relatively recently (within the last year and a half), so it’s possible that he’ll step in and sort things out before I figure it out.

But, at least you’re pushing things forward as a project manager :slight_smile:

3 Likes

me manager? nah if i was manager id tell every1 to take a break and have some cake :stuck_out_tongue:

k. g’night! :moon:

We’ll pick up tomorrow though, and see where we get. There’s a lot left to do!

ok c ya later and thanx again :slight_smile:
maybe u will dream how to make it work with the modern client :stuck_out_tongue:

1 Like

This thread is wholesome.

2 Likes

This all seems very interesting to me. Hope you guys can figure out this addon and add to the community! I’m sure we all will appreciate it, even if we don’t say anything!

Bit of an update, just to more or less say I didn’t really make much progress…

Addon Dependencies

So, the Addon has some dependencies. These are external libraries that it requires to function. The dependencies it requires are defined in the embeds.xml file. Most of the dependencies seem to be related to Ace2, which is a Library for making GUI components.

It seems Ace2 was later replaced by Ace3, which can be downloaded from WoWAce.

Looking at different points in code-history for TankPoints, the version you shared, 2.0, has a libs directory with (seemingly) the Ace2 library. The 2.3 version does not have such a directory, and simply copying the older version (from 2.0) doesn’t just work.

For 1, there are different dependencies described in the embeds.xml for each of these versions. I suspect that might not be the only issue though, as I don’t know that the Ace2 Library is even useable. (Remember, I’m new to Addons, Lua, and whatever libraries they have… so still figuring my way through this).


What that Means

Having said that, it may be possible to update the codebase to use Ace3 — or replace it, if different suitable GUI library is found or at least the calls to the library are replaced by calls to code that can be used to replace these library calls.

So, as it stands, it seems to me at the moment at least, that the bulk of the work is in two places. Provided we can assume that the core functionality of the addon is working correctly (i.e. the calculations for determining TankPoints), then it’s the interface mostly that requires work.

Where the core logic interfaces with the WoW Client, is through these library calls.


Next Steps

From my point of view, the next steps seem to be:

  1. Get a toy addon working using Ace3 (or find a suitable replacement)

This will give some insight into whether that library is working with the modern client, and the overall WoW Addon interface programming/debugging environment in general.

  1. Compare the version 2.3 — I assume that the 2.3 version is a better starting point — Ace2 Library calls to the 2.0 Ace Library code files.

I suspect that the Ace2 library calls did not change a whole lot between these two versions, but since the Ace2 library seems to exist in the 2.0 version and not the 2.3, unless there’s another source for it, this seems like the place to start with this.

  1. Assuming that the Ace3 library works, after understanding what the Ace2 Library function calls do, start to convert them to use the Ace3 Library, if possible.

So, that’s where I’m at so far. If nothing else, then perhaps that can help someone else take the ball from here, and hopefully that investigation was somewhat helpful… otherwise, I’ll probably keep poking around, and eventually make some progress forward… though no promises :slight_smile:

1 Like

One time I said I was gonna write a textbook for my students using LaTeX. I think I got 36 pages in or so before deciding other textbooks worked just fine.

1 Like

hmm i wonder if the stats r the same. like is defense and dodge and all that stuff in the classic BC the same as the original BC

God, latex. As an exercise in masochism I did some legal pleadings in latex lol.

I prefer it to Word.