I'm not overly happy with passing the templateObject to each typeObject, but it works .. for now.
Effectively this should reduce db-lookups as each type should be looked up only twice at max (once for relevant data on the page and maybe again to get related jsGlobals for the template)
also removed BaseType::addRewardsToJscript() get it with BaseType::addGlobalsToJscript() and the appropriate addMask
* added ListviewHelper::getSetFields() wich is more appropriate in some cases (like reagents for spells should be shown even if they are all the same)
* load bricks as needed, removed the if-blocks (maybe add the filename to every TypeClass..?)
- removed excess escapes (htmlspecialchars really needed?)
* urlencode icons for all powered tooltips (some contain obscure symbols)
Spell:
- added relatedTabs "criteria of" and "contains" (the later should be reworked with generic loot access)
* implemented first draft of conditions in listview as extraCol; condition: {type, typeId, status}; currently only inpmplemented in the item-brick
* obligatory oneliners all over the place fixing stuff that boggles the mind
- add hardcoded Totem-DisplayIds
Spell:
- fixed amount/damage not being displayed, when spell had createItemId set but no effect to create it
- respect interactivity for constructs in tooltip
- parse playerLevel as textVar, if the constuct cant be evaled
- fixed functionality to change level on tooltips granting ratings
- added related tabs: 'modified by', 'modifies', 'used by item', 'used by itemset', 'see also'
* some minor cleansing in js-tooltip code
- improved handling of rewards
Spell:
- moved calcuation of effectValue to separate function, use realPointsPerLevel
- eval: applied proper format, fixed evalable string when facing multiple signs in a row
- display modelviewer for summons
Titles:
- looks like titles behave differently when using "faction" or "side"
Achievement:
- implemented rewards (which i have forgotten for almost 2 years)
* reworked pet-setup
* typos and forgotten changes, that broke code here and there
- plus food and talents, minus zones (those are just madning)
- also addes some bc/classic information on pet scaling
* mucked about the modelviewer, always uses high quality version .. should muck about some more to add animation-info and remove the java-option
* fixed some minor issues in spell maxaffectedtaregs in spell is displayed properly and erronous adding all classes/races to globals if none where selected
* created own table for creatures which unifies creature_template, locales_creature, creature_template_addon and some creatureDisplayInfo.dbc information
* more work against listviews and general structure in global.js .. should probably split this file by class and reassemble it for use
- preparing tooltips (locks to Util & localization)
quests & npcs:
- implemented tooltips
spells:
- fixed tooltip-header
- stat gain inclued periodic healing auras (item: 17743 for example) and spellHeal no longer applies spellPower
achievements:
- path is less prone to errors
events:
- disabled tab as it was causing js-errors
obligatory cleaning up everywhere
Spells:
- improved tooltips to use a less table-dependant layout
- defined the missing fulltext-variables
- buff or tooltip are only reandered for the current spell
- reduced redundancy in buff / tooltip-code
some ToDos:
- no tabs on the detail-page implemented yet (used-by, affected-by, ect)
- localization for frFR, esES and ruRu is .. lacking and will probably be commited with the point above)
- a full search runs for almost 2sec and i haven't implemented every type yet >.< .. spells are too greedy
- in some cases $d must supply a time unit, in most cases it does not .. why..?
- sources can be improved .. anything related to items is still missing
- dropped property "names" and changed getField to return localized Fields if specified. Dropped stupid getNameFieldName() in the process as it was now obsolete.
- made property "matches" private. Access through getMatches() that will execute the query _only_ when needed (which is basically always anyway (so much for optimization))
SpellList: parsing
- ""fixed"" behavior of the amount-switch $l when used on russian text. It has 3 options instead of 2, no idea what the last one is for though
- fixed extra leading whitespace occuring when parsing formulas
Lang:
- removed offset from getMagicShools(), apparently it is unneeded :o
Util:
- changed the output of formatTime() in the long version to be more correct in layout
- initialized values in parseTime() to prevent empty strings returned by formatTime()
- added asBin() and asHex() - helper to improve display of bitmasks (Spells are coming!)
- update Spell-Effects/Auras and added misc strings to display different MiscValue-content
Filter:
- removed escapes from $_POST-handler. If the input is erronous it should be corrected/ignored/noted by the $_GET-handler
Smarty:
- added optinal parameter to saveCache(), loadCache() to better handle filter variables
Search:
- changed $maxResults to 10 for OpenSearches in an effort to lower execution time and appied limits to all queries
- changed result calculation for OpenSearch. It should now stick to it's limit of 10 results for the list
- simplified WorldEvent search
global.js:
- backported function to parse title-tag of dfn-elements into mouseover-tooltips
- shortened document.getElementByTagName(x) calls to gE(document, x)
- make offset optional, when converting list to mask
Items:
- fixed display of inventory type for robes and ranged weapons
Spells:
- parsing: $charLevel and $interactive are now properties of spell.
- parsing: fixed durations, passing the time-unit seperately to allow for evaluation of the actual value
- parsing: fixed gender-specific formating [ >male/female< to <male/female>]
- parsing: usage of is_numeric() instead of (float) as 0 is a fucking valid numeric (caused some formulas to not be evaluated *grrr*)
- parsing: lastValue-references now skip to the next previous \d instead of being stopped by random \w (like time units)
- implemented forgotten display of runes for spellCost
- fixed castTimes for most hunter shots (they are -1000 for some reason)
- fixed display of required stances (sometimes they are not actually required but show, when you are _allowed_ to use a spell in certain forms)
- improved formating of tooltips-js (no visual change)
ListViews:
- pass '_truncated' separately. there are nough cases in which 'note' gets send without truncated results
misc changes here and there
spell:
- removed weired break from tooltips
- fixed time units being omitted by intval and subsequent cast to int
achievement:
- casting id to int to avoid string-comparison in mysql (sped up load a lot)
localization:
- fixed malformed file
infobox:
- show video-options only when logged in
filter:
- allow underscores in search (icon search)
search:
- really fixed prepended quality for items
- what which index does needs to be implemented in the implementation
- differences to wowhead
* strings in criteria are more lenient and will also work with partial matches
* the ? and * wildcards are supported
- apply abs() in final function as the original value may be needed before output .. fixes some 'reduced by -X talents/setboni'
- use number_format() instead fo round() for precision .. trailing zeros will show for exact vaues e.g. ${1.5}.3 => 1.500
Basetype:
- custom operators in the setup query are now properly applied.
Searches:
- implemented result cap and set it to 1000 results
- split achievements in achievements and statistics
- the modelviewer that may be called from the item-listview now works (and still calls home)
- fixed line breaks in tooltips
- fixed typo causing unwanted output when parsing ratings
- ammunition now always displays dps and some misc items no longer display 0-0 damage
Spells
- added created items to tooltip (formating is a bit off though)
- fixed typo in parsing periodic auras
Power
- use external version of in_array (e.g. prepend $WH.), should fix inclusion of power to external sites
dropped single-item classes for all types, because it doesn't make much difference to use a list with a single item instead, especially if it's preselected. Additionally it is now easier to chain certain queries together and execute them all at once. additionally, additionally certain data can now be cahced and shared between types of the same .. type, that were previously in different instances alltogether.
And you may now specify a limit to sql-queries (while setting up a typeList), it will default to the config-limit if no value is given.
jk, it's probably not complete ... and probably even worse to understand than the previous version, BUT
- it documents all variables, constructs and functions i've seen used
- it can and will evaluate variables from SpellDescriptionVariables.dbc
- it will try to solve formulas as far as possible and respect modifiers for float-precision
e.g.: ${(1+6)/3}.2 should resolve to 2.33
what's missing: the if-constructs that check for auras and known spells may be parsed to html-comments and manipulated by javascript .. welllllow priority
- resilience is now recognized
- weapon damage is now assigned to a fixed key
- block value now gets assigned to block value instead of block rating (*doh!*)
- some mixups in keys, when modding powers corrected
that should make everyone with some client-mods or custom database entires happy
removed previously supplied datasets (which were partially erronous anyway)
usage:
- read the requirements per file and run via ?build=<filename> This may take up to several minutes, depending on the complexity and your machine
todo:
- expects parsed dbcs in DB named "dbc" and world-DB to be named "world". Needs to be configurable
- no error handling. If it fails, it fails badly.
- pets: locations are inaccurate (see comment in file)
- itemsets: the fragmented data in itemsets.dbc has to be fixed manually before this script yields propper results (see comment in file)
features:
- tool - Maps:
* finally supports multi-layered zones
* should also support icons if needed (questgiver, ect)
- tool - Item Comparison:
* fully functional (yes, that includes heirlooms and items with random props)
* may throw a minor js-error if using arrow-keys/esc/ret in input-fields in the LightboxPopus (but wowhead does also)
* icons for prismatic sockets are not displayed if no other sockets are present (calculation is correct though)
* modelviewer will still 'call home'
- tool - Talent Calculator:
* got rid of a VERY dirty hack for the icons (they are now supplied as texture, not laoded one at a time)
* glyphs should also be a bit more informative
* talent data is pulled from static file, that should a) speed up load and b) prevent lockups if it cant be generated on the fly
* you can now set the level for your build, which affects available talent points, glyphs and glyph-slots
- tool - Pet Calculator:
* initial implementation; basically the same as the Talent Calculator
- general concept changed:
* dropped ajax.php; json is now supplied by the appropriate page if &json is appended to the url
* search.php and opensearch.php are being merged; again, output will depend on the appended parameter (&openserach, &json)
* data included via data.php will be static and assembled only on installation and when the database changes (should speed up load)
* locale strings are now in a single file instead of being split up to the template
* still getting rid of criss-cross-includes, global variables and string-defines