aboutsummaryrefslogtreecommitdiff
path: root/src/game/GridNotifiersImpl.h
diff options
context:
space:
mode:
authormegamage <none@none>2009-03-09 17:00:31 -0600
committermegamage <none@none>2009-03-09 17:00:31 -0600
commit5d5b37ab327e0c01d31cb16073d2770be5deefe5 (patch)
treee2ebaec5f4a60f32e83acbcd91aaa551b9bb34a8 /src/game/GridNotifiersImpl.h
parent39bb92f9db3a92da22ef0c3bcb568e5a7816c8bd (diff)
*Support localization for messsages in battleground. Author: VladimirMangos
[7411] Use similar localization classes for World::SendWorldText muti-line message. Author: VladimirMangos --HG-- branch : trunk
Diffstat (limited to 'src/game/GridNotifiersImpl.h')
-rw-r--r--src/game/GridNotifiersImpl.h25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/game/GridNotifiersImpl.h b/src/game/GridNotifiersImpl.h
index 6ec8c59082e..20e72047055 100644
--- a/src/game/GridNotifiersImpl.h
+++ b/src/game/GridNotifiersImpl.h
@@ -584,5 +584,28 @@ void MaNGOS::LocalizedPacketDo<Builder>::operator()( Player* p )
p->SendDirectMessage(data);
}
-#endif // TRINITY_GRIDNOTIFIERSIMPL_H
+template<class Builder>
+void MaNGOS::LocalizedPacketListDo<Builder>::operator()( Player* p )
+{
+ uint32 loc_idx = p->GetSession()->GetSessionDbLocaleIndex();
+ uint32 cache_idx = loc_idx+1;
+ WorldPacketList* data_list;
+
+ // create if not cached yet
+ if(i_data_cache.size() < cache_idx+1 || i_data_cache[cache_idx].empty())
+ {
+ if(i_data_cache.size() < cache_idx+1)
+ i_data_cache.resize(cache_idx+1);
+
+ data_list = &i_data_cache[cache_idx];
+
+ i_builder(*data_list,loc_idx);
+ }
+ else
+ data_list = &i_data_cache[cache_idx];
+
+ for(size_t i = 0; i < data_list->size(); ++i)
+ p->SendDirectMessage((*data_list)[i]);
+}
+#endif // MANGOS_GRIDNOTIFIERSIMPL_H