Mercurial > wow > wowdb-profiler
comparison Main.lua @ 96:e378295b2d6f
Handle keyword substitutions in NPC quotes for Race and Class.
| author | James D. Callahan III <jcallahan@curse.com> |
|---|---|
| date | Thu, 30 Aug 2012 14:23:54 -0500 |
| parents | c4172766561f |
| children | f6369b88454f |
comparison
equal
deleted
inserted
replaced
| 95:c4172766561f | 96:e378295b2d6f |
|---|---|
| 630 table.wipe(action_data) | 630 table.wipe(action_data) |
| 631 end | 631 end |
| 632 | 632 |
| 633 | 633 |
| 634 do | 634 do |
| 635 local function ReplaceName(text) | 635 local KEYWORD_SUBSTITUTIONS = { |
| 636 if text == PLAYER_NAME then | 636 class = PLAYER_CLASS, |
| 637 return "<name>" | 637 name = PLAYER_NAME, |
| 638 end | 638 race = PLAYER_RACE, |
| 639 } | |
| 640 | |
| 641 | |
| 642 local function ReplaceKeywords(text) | |
| 643 if not text or text == "" then | |
| 644 return "" | |
| 645 end | |
| 646 | |
| 647 for category, lookup in pairs(KEYWORD_SUBSTITUTIONS) do | |
| 648 local category_format = ("<%s>"):format(category) | |
| 649 text = text:gsub(lookup, category_format):gsub(lookup:lower(), category_format) | |
| 650 end | |
| 651 return text | |
| 639 end | 652 end |
| 640 | 653 |
| 641 | 654 |
| 642 function WDP:RecordQuote(event_name, message, source_name, language_name) | 655 function WDP:RecordQuote(event_name, message, source_name, language_name) |
| 643 if not source_name or not name_to_id_map[source_name] or (language_name ~= "" and not languages_known[language_name]) then | 656 if not source_name or not name_to_id_map[source_name] or (language_name ~= "" and not languages_known[language_name]) then |
| 644 return | 657 return |
| 645 end | 658 end |
| 646 local npc = NPCEntry(name_to_id_map[source_name]) | 659 local npc = NPCEntry(name_to_id_map[source_name]) |
| 647 npc.quotes = npc.quotes or {} | 660 npc.quotes = npc.quotes or {} |
| 648 npc.quotes[event_name] = npc.quotes[event_name] or {} | 661 npc.quotes[event_name] = npc.quotes[event_name] or {} |
| 649 npc.quotes[event_name][message:gsub("(%w+)", ReplaceName)] = true | 662 npc.quotes[event_name][ReplaceKeywords(message)] = true |
| 650 end | 663 end |
| 651 end -- do-block | 664 end -- do-block |
| 652 | 665 |
| 653 | 666 |
| 654 do | 667 do |
