Regarding quest unit models for Cataclysm. There are new API calls. Check FrameXML/questframe.lua. (See Cata forum)
Code snippets from questframe.lua
Code:
//quest turn in
local questPortrait, questPortraitText, questPortraitName = GetQuestPortraitTurnIn();
//quest giver
local questPortrait, questPortraitText, questPortraitName = GetQuestPortraitGiver();
//function call to change portrait
QuestFrame_ShowQuestPortrait(QuestFrame, questPortrait, questPortraitText, questPortraitName, -33, -62);
function QuestFrame_ShowQuestPortrait(parentFrame, portrait, text, name, x, y)
-- ...
if (portrait == -1) then
QuestNPCModel:SetUnit("player");
else
QuestNPCModel:SetDisplayInfo(portrait);
end
end
The new SetDisplayInfo is used and there are new API functions to retrieve the questgiver and the quest turn in person.