Split the vendor price tables into their own manifests

Turtle's pfSellData moves out of modules\turtle-wow.lua into
env\selldata_turtle.lua, matching env\selldata.lua for the stock list, and
each is pulled in by the manifest for its client: init\stock.xml from
pfUI_ClassicAPI.toc, init\turtle.xml from pfUI_Turtle.toc. Either way it
loads after init\env.xml and replaces the empty pfSellData declared there.

Turtle's prices used to be assigned inside the turtle-wow module body, which
put them on pfUI.env and skipped them entirely when that module was
disabled. At file scope they land on _G and apply either way.
This commit is contained in:
Brues
2026-09-03 14:29:59 -05:00
parent 2b72ad963b
commit 28674d10e7
8 changed files with 3038 additions and 3010 deletions
-47
View File
@@ -1,44 +1,3 @@
CLASS_ICON_TCOORDS = CLASS_ICON_TCOORDS or {
["WARRIOR"] = {0, 0.25, 0, 0.25},
["MAGE"] = {0.25, 0.49609375, 0, 0.25},
["ROGUE"] = {0.49609375, 0.7421875, 0, 0.25},
["DRUID"] = {0.7421875, 0.98828125, 0, 0.25},
["HUNTER"] = {0, 0.25, 0.25, 0.5},
["SHAMAN"] = {0.25, 0.49609375, 0.25, 0.5},
["PRIEST"] = {0.49609375, 0.7421875, 0.25, 0.5},
["WARLOCK"] = {0.7421875, 0.98828125, 0.25, 0.5},
["PALADIN"] = {0, 0.25, 0.5, 0.75},
["DEATHKNIGHT"] = {0.25, .5, 0.5, .75},
["GM"] = {0.5, 0.73828125, 0.5, .75},
}
-- race icons live in Interface\Glues\CharacterCreate\UI-CharacterCreate-Races
-- keyed by RACEKEY_GENDER (englishRace .. sex); mirrors the GlueXML table,
-- which isn't loaded in-world. includes the Turtle-specific BloodElf/Goblin.
RACE_ICON_TCOORDS = RACE_ICON_TCOORDS or {
["HUMAN_MALE"] = {0, 0.125, 0, 0.25},
["DWARF_MALE"] = {0.125, 0.25, 0, 0.25},
["GNOME_MALE"] = {0.25, 0.375, 0, 0.25},
["NIGHTELF_MALE"] = {0.375, 0.5, 0, 0.25},
["TAUREN_MALE"] = {0, 0.125, 0.25, 0.5},
["SCOURGE_MALE"] = {0.125, 0.25, 0.25, 0.5},
["TROLL_MALE"] = {0.25, 0.375, 0.25, 0.5},
["ORC_MALE"] = {0.375, 0.5, 0.25, 0.5},
["BLOODELF_MALE"] = {0.5, 0.625, 0.25, 0.5},
["GOBLIN_MALE"] = {0.5, 0.625, 0, 0.25},
["HUMAN_FEMALE"] = {0, 0.125, 0.5, 0.75},
["DWARF_FEMALE"] = {0.125, 0.25, 0.5, 0.75},
["GNOME_FEMALE"] = {0.25, 0.375, 0.5, 0.75},
["NIGHTELF_FEMALE"] = {0.375, 0.5, 0.5, 0.75},
["TAUREN_FEMALE"] = {0, 0.125, 0.75, 1.0},
["SCOURGE_FEMALE"] = {0.125, 0.25, 0.75, 1.0},
["TROLL_FEMALE"] = {0.25, 0.375, 0.75, 1.0},
["ORC_FEMALE"] = {0.375, 0.5, 0.75, 1.0},
["BLOODELF_FEMALE"] = {0.5, 0.625, 0.75, 1.0},
["GOBLIN_FEMALE"] = {0.5, 0.625, 0.5, 0.75},
}
-- barlength = {[formfactor]={cols, rows}}
pfGridmath = {
[1] = {{1,1}},
@@ -89,9 +48,3 @@ for i=1,40 do
pfValidUnits["nameplate" .. i] = true
pfValidUnits["nameplate" .. i .. "target"] = true
end
-- Vendor-buy prices. env\selldata.lua fills this in on stock clients; on
-- Turtle, modules\turtle-wow.lua supplies the server's own table. Declared
-- empty here so modules\sellvalue.lua always has a table to index, even with
-- the turtle-wow module disabled.
pfSellData = {}
+38 -3
View File
@@ -1,11 +1,46 @@
-- Vendor-buy prices for the stock 1.12 item set. Pulled in by
-- pfUI_ClassicAPI.toc only: on Turtle, modules\turtle-wow.lua replaces
-- pfSellData wholesale with the server's own table.
RACE_ICON_TCOORDS = RACE_ICON_TCOORDS or {
["HUMAN_MALE"] = {0, 0.25, 0, 0.25},
["DWARF_MALE"] = {0.25, 0.5, 0, 0.25},
["GNOME_MALE"] = {0.5, 0.75, 0, 0.25},
["NIGHTELF_MALE"] = {0.75, 1.0, 0, 0.25},
["TAUREN_MALE"] = {0, 0.25, 0.25, 0.5},
["SCOURGE_MALE"] = {0.25, 0.5, 0.25, 0.5},
["TROLL_MALE"] = {0.5, 0.75, 0.25, 0.5},
["ORC_MALE"] = {0.75, 1.0, 0.25, 0.5},
["HUMAN_FEMALE"] = {0, 0.25, 0.5, 0.75},
["DWARF_FEMALE"] = {0.25, 0.5, 0.5, 0.75},
["GNOME_FEMALE"] = {0.5, 0.75, 0.5, 0.75},
["NIGHTELF_FEMALE"] = {0.75, 1.0, 0.5, 0.75},
["TAUREN_FEMALE"] = {0, 0.25, 0.75, 1.0},
["SCOURGE_FEMALE"] = {0.25, 0.5, 0.75, 1.0},
["TROLL_FEMALE"] = {0.5, 0.75, 0.75, 1.0},
["ORC_FEMALE"] = {0.75, 1.0, 0.75, 1.0},
};
CLASS_ICON_TCOORDS = CLASS_ICON_TCOORDS or {
["WARRIOR"] = {0, 0.25, 0, 0.25},
["MAGE"] = {0.25, 0.49609375, 0, 0.25},
["ROGUE"] = {0.49609375, 0.7421875, 0, 0.25},
["DRUID"] = {0.7421875, 0.98828125, 0, 0.25},
["HUNTER"] = {0, 0.25, 0.25, 0.5},
["SHAMAN"] = {0.25, 0.49609375, 0.25, 0.5},
["PRIEST"] = {0.49609375, 0.7421875, 0.25, 0.5},
["WARLOCK"] = {0.7421875, 0.98828125, 0.25, 0.5},
["PALADIN"] = {0, 0.25, 0.5, 0.75}
};
-- Vendor-buy prices for the stock 1.12 item set. Pulled in by init\stock.xml,
-- so pfUI_ClassicAPI.toc only: Turtle has its own list in
-- env\tables_turtle.lua, loaded from init\turtle.xml instead.
-- This table makes me sick.
-- itemid = buyPrice (copper). Sell price comes from C_Item.GetItemSellPriceByID;
-- this table only carries the curated vendor-buy price (which isn't a static
-- engine field — it's collected from real vendor encounters).
pfSellData = {
[25]=35, [35]=47, [36]=38, [37]=38, [38]=1, [39]=5,
[40]=4, [41]=2, [42]=2, [43]=4, [44]=4, [45]=1,
+2991
View File
File diff suppressed because it is too large Load Diff
+3
View File
@@ -0,0 +1,3 @@
<Ui xmlns="http://www.blizzard.com/wow/ui/">
<Include file="..\env\tables_stock.lua"/>
</Ui>
+2
View File
@@ -2,6 +2,8 @@
<!-- Turtle WoW only: pulled in by pfUI_Turtle.toc, which ClassicAPI selects
when it detects a Turtle client. Everything in here targets frames that
only a Turtle client ever creates. -->
<Include file="..\env\tables_turtle.lua"/>
<Include file="..\skins\blizzard\lft.lua"/>
<Include file="..\skins\blizzard\turtle_shop.lua"/>
<Include file="..\skins\blizzard\barbershop.lua"/>
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -9,14 +9,14 @@
## X-Website: https://github.com/brues-code/pfUI
# Selected by ClassicAPI on every non-Turtle client. Turtle clients get
# pfUI_Turtle.toc instead, which trades env\selldata.lua for init\turtle.xml.
# pfUI_Turtle.toc instead, which trades init\stock.xml for init\turtle.xml.
API_Check.lua
pfUI.lua
init\env.xml
env\selldata.lua
init\stock.xml
init\compat.xml
init\api.xml
init\libs.xml
+2 -3
View File
@@ -9,9 +9,8 @@
## X-Website: https://github.com/brues-code/pfUI
# Selected by ClassicAPI on Turtle WoW, where it wins over pfUI_ClassicAPI.toc.
# Same list, except it adds init\turtle.xml -- the modules and skins that only
# have anything to bind to on a Turtle client -- and drops env\selldata.lua,
# whose vendor prices modules\turtle-wow.lua supplies for this server instead.
# Same list with init\stock.xml swapped for init\turtle.xml: the modules, skins
# and vendor prices that only mean anything on a Turtle client.
API_Check.lua