View Single Post
01-04-23, 08:11 PM   #5
SDPhantom
A Pyroguard Emberseer
 
SDPhantom's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2006
Posts: 2,326
Originally Posted by Gello View Post
In the early days, the default UI's code was available, albeit not with the ExportInterfaceFiles bit we have nowadays. There was a separate program to extract the code.
I remember this back in the day as well. It was hosted in the support section of the old WoW website. It was discontinued for the ExportInterfaceFiles console command when the storage system was switched from MPQ to CASC. This transition was made for the launch of Pandaria.



Originally Posted by Gello View Post
And of course while we didn't have /dump back then (or event print!) we could still /script DEFAULT_CHAT_FRAME:AddMessage() globals and poke at stuff.
I don't think we had any of the stock "DevTools" suite. This means no /fstack, /etrace, or /tinspect either. We had to use GetMouseFocus() to capture a frame and use :GetName() to identify it (if it had a name, this was always optional). We also had to build our own event capture frames and use :RegisterAllEvents() to peek at what was firing.

I still have the custom /dump handler I wrote during those days and I would often write a simple print() handler to pass the call to DEFAULT_CHAT_FRAME:AddMessage().



Originally Posted by Gello View Post
One of my prouder accomplishments was finding out nameplates could be modified by getting the children of the WorldFrame and poking at the results to find out some of those were actually nameplates.
If I had to name an equal accomplishment for me, it would be the discovery of the shared UI object metatables or arguably the originator of the ("string"):format() syntax.



Originally Posted by Gello View Post
The addon community also had Slouken, who was a Blizzard dev who regularly posted on the NA UI & Macro forums, telling us about new things coming and stepping in now and then to clarify things. Slouken was an enormous source of information.
We had a lot of good people in the community back then. Many of which have moved on to other things.



Originally Posted by Gello View Post
Originally, addons were required to have XML to have any displayed elements. CreateFrame was a later invention. parentKey was a later invention too.
Addons also required XML to load Lua files. Initially, the ToC was only able to load XML files and you had to use <Script file=""/> tags to load them. ToC support for Lua files was added later.



Originally Posted by Gello View Post
WoW originally used Lua 5.0. It was bumped to 5.1 for BC when the secure/restricted environment was added.
The restricted environment relies on usage of setfenv(), which was available in Lua 5.0. The only big change 5.1 did was add the vararg. This could've also been used for the restricted environment, but it was also a big player for Blizzard's shift from using globals to pass data to frame scripts to passing them as function parameters.

Lua 5.2 changed how the environment works, removing setfenv() and making it impossible to isolate the environment of a function after it has been compiled. This is why we never got any more upgrades to the Lua engine.
__________________
WoWInterface AddOns
"All I want is a pretty girl, a decent meal, and the right to shoot lightning at fools."
-Anders (Dragon Age: Origins - Awakening)

Last edited by SDPhantom : 01-06-23 at 12:27 PM.
  Reply With Quote