aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormegamage <none@none>2009-04-05 16:58:20 -0500
committermegamage <none@none>2009-04-05 16:58:20 -0500
commit24e24d3c023f31f0363e55fda413181ca9f73439 (patch)
treebbfe929fe9a016848213eae11e60c9c99fb9247c /src
parentcb3b6e7c773ec8a979f6f08a5d2d60b9602c2bc1 (diff)
[7616] Implement .debug play cinematic and .debig play movie. Rename .debug playsound to .debug play sound. Author: VladimirMangos
*Note: some conflicts of string. --HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/game/Chat.cpp10
-rw-r--r--src/game/Chat.h5
-rw-r--r--src/game/DBCStores.cpp8
-rw-r--r--src/game/DBCStores.h2
-rw-r--r--src/game/DBCStructure.h28
-rw-r--r--src/game/DBCfmt.h2
-rw-r--r--src/game/Debugcmds.cpp48
-rw-r--r--src/game/Language.h7
8 files changed, 107 insertions, 3 deletions
diff --git a/src/game/Chat.cpp b/src/game/Chat.cpp
index 4c057122cac..01f1ae1525c 100644
--- a/src/game/Chat.cpp
+++ b/src/game/Chat.cpp
@@ -108,6 +108,14 @@ ChatCommand * ChatHandler::getCommandTable()
{ NULL, 0, false, NULL, "", NULL }
};
+ static ChatCommand debugPlayCommandTable[] =
+ {
+ { "cinematic", SEC_MODERATOR, false, &ChatHandler::HandleDebugPlayCinematicCommand, "", NULL },
+ { "movie", SEC_MODERATOR, false, &ChatHandler::HandleDebugPlayMovieCommand, "", NULL },
+ { "sound", SEC_MODERATOR, false, &ChatHandler::HandleDebugPlaySoundCommand, "", NULL },
+ { NULL, 0, false, NULL, "", NULL }
+ };
+
static ChatCommand debugSendCommandTable[] =
{
{ "buyerror", SEC_ADMINISTRATOR, false, &ChatHandler::HandleDebugSendBuyErrorCommand, "", NULL },
@@ -135,7 +143,7 @@ ChatCommand * ChatHandler::getCommandTable()
{ "lootrecipient", SEC_GAMEMASTER, false, &ChatHandler::HandleDebugGetLootRecipient, "", NULL },
{ "getvalue", SEC_ADMINISTRATOR, false, &ChatHandler::HandleDebugGetValue, "", NULL },
{ "Mod32Value", SEC_ADMINISTRATOR, false, &ChatHandler::HandleDebugMod32Value, "", NULL },
- { "playsound", SEC_MODERATOR, false, &ChatHandler::HandleDebugPlaySoundCommand, "", NULL },
+ { "play", SEC_MODERATOR, false, NULL, "", debugPlayCommandTable },
{ "send", SEC_ADMINISTRATOR, false, NULL, "", debugSendCommandTable },
{ "setitemflag", SEC_ADMINISTRATOR, false, &ChatHandler::HandleDebugSetItemFlagCommand, "", NULL },
{ "setvalue", SEC_ADMINISTRATOR, false, &ChatHandler::HandleDebugSetValue, "", NULL },
diff --git a/src/game/Chat.h b/src/game/Chat.h
index 87d95ac82c4..d05c1cee986 100644
--- a/src/game/Chat.h
+++ b/src/game/Chat.h
@@ -129,7 +129,6 @@ class ChatHandler
bool HandleDebugGetLootRecipient(const char * args);
bool HandleDebugGetValue(const char* args);
bool HandleDebugMod32Value(const char* args);
- bool HandleDebugPlaySoundCommand(const char* args);
bool HandleDebugSetValue(const char* args);
bool HandleDebugSetItemFlagCommand(const char * args);
bool HandleDebugSpawnVehicle(const char * args);
@@ -144,6 +143,10 @@ class ChatHandler
bool HandleBindSightCommand(const char* args);
bool HandleUnbindSightCommand(const char* args);
+ bool HandleDebugPlayCinematicCommand(const char* args);
+ bool HandleDebugPlayMovieCommand(const char* args);
+ bool HandleDebugPlaySoundCommand(const char* args);
+
bool HandleDebugSendBuyErrorCommand(const char* args);
bool HandleDebugSendChannelNotifyCommand(const char* args);
bool HandleDebugSendChatMsgCommand(const char* args);
diff --git a/src/game/DBCStores.cpp b/src/game/DBCStores.cpp
index 5149bc2ddd7..4d1ba2a5cff 100644
--- a/src/game/DBCStores.cpp
+++ b/src/game/DBCStores.cpp
@@ -48,6 +48,7 @@ DBCStorage <CharTitlesEntry> sCharTitlesStore(CharTitlesEntryfmt);
DBCStorage <ChatChannelsEntry> sChatChannelsStore(ChatChannelsEntryfmt);
DBCStorage <ChrClassesEntry> sChrClassesStore(ChrClassesEntryfmt);
DBCStorage <ChrRacesEntry> sChrRacesStore(ChrRacesEntryfmt);
+DBCStorage <CinematicSequencesEntry> sCinematicSequencesStore(CinematicSequencesEntryfmt);
DBCStorage <CreatureDisplayInfoEntry> sCreatureDisplayInfoStore(CreatureDisplayInfofmt);
DBCStorage <CreatureFamilyEntry> sCreatureFamilyStore(CreatureFamilyfmt);
DBCStorage <CreatureSpellDataEntry> sCreatureSpellDataStore(CreatureSpellDatafmt);
@@ -78,7 +79,9 @@ DBCStorage <GtOCTRegenHPEntry> sGtOCTRegenHPStore(GtOCTRegenHPfmt);
//DBCStorage <GtOCTRegenMPEntry> sGtOCTRegenMPStore(GtOCTRegenMPfmt); -- not used currently
DBCStorage <GtRegenHPPerSptEntry> sGtRegenHPPerSptStore(GtRegenHPPerSptfmt);
DBCStorage <GtRegenMPPerSptEntry> sGtRegenMPPerSptStore(GtRegenMPPerSptfmt);
+
DBCStorage <HolidaysEntry> sHolidaysStore(Holidaysfmt);
+
DBCStorage <ItemEntry> sItemStore(Itemfmt);
DBCStorage <ItemBagFamilyEntry> sItemBagFamilyStore(ItemBagFamilyfmt);
//DBCStorage <ItemCondExtCostsEntry> sItemCondExtCostsStore(ItemCondExtCostsEntryfmt);
@@ -93,6 +96,7 @@ DBCStorage <LockEntry> sLockStore(LockEntryfmt);
DBCStorage <MailTemplateEntry> sMailTemplateStore(MailTemplateEntryfmt);
DBCStorage <MapEntry> sMapStore(MapEntryfmt);
+DBCStorage <MovieEntry> sMovieStore(MovieEntryfmt);
DBCStorage <QuestSortEntry> sQuestSortStore(QuestSortEntryfmt);
@@ -199,7 +203,7 @@ void LoadDBCStores(const std::string& dataPath)
{
std::string dbcPath = dataPath+"dbc/";
- const uint32 DBCFilesCount = 75;
+ const uint32 DBCFilesCount = 77;
barGoLink bar( DBCFilesCount );
@@ -236,6 +240,7 @@ void LoadDBCStores(const std::string& dataPath)
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sChatChannelsStore, dbcPath,"ChatChannels.dbc");
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sChrClassesStore, dbcPath,"ChrClasses.dbc");
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sChrRacesStore, dbcPath,"ChrRaces.dbc");
+ LoadDBC(availableDbcLocales,bar,bad_dbc_files,sCinematicSequencesStore, dbcPath,"CinematicSequences.dbc");
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sCreatureDisplayInfoStore, dbcPath,"CreatureDisplayInfo.dbc");
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sCreatureFamilyStore, dbcPath,"CreatureFamily.dbc");
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sCreatureSpellDataStore, dbcPath,"CreatureSpellData.dbc");
@@ -286,6 +291,7 @@ void LoadDBCStores(const std::string& dataPath)
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sLockStore, dbcPath,"Lock.dbc");
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sMailTemplateStore, dbcPath,"MailTemplate.dbc");
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sMapStore, dbcPath,"Map.dbc");
+ LoadDBC(availableDbcLocales,bar,bad_dbc_files,sMovieStore, dbcPath,"Movie.dbc");
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sQuestSortStore, dbcPath,"QuestSort.dbc");
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sRandomPropertiesPointsStore, dbcPath,"RandPropPoints.dbc");
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sScalingStatDistributionStore, dbcPath,"ScalingStatDistribution.dbc");
diff --git a/src/game/DBCStores.h b/src/game/DBCStores.h
index e79cb44a534..c7c7b54608e 100644
--- a/src/game/DBCStores.h
+++ b/src/game/DBCStores.h
@@ -72,6 +72,7 @@ extern DBCStorage <CharStartOutfitEntry> sCharStartOutfitStore;
extern DBCStorage <CharTitlesEntry> sCharTitlesStore;
extern DBCStorage <ChrClassesEntry> sChrClassesStore;
extern DBCStorage <ChrRacesEntry> sChrRacesStore;
+extern DBCStorage <CinematicSequencesEntry> sCinematicSequencesStore;
extern DBCStorage <CreatureDisplayInfoEntry> sCreatureDisplayInfoStore;
extern DBCStorage <CreatureFamilyEntry> sCreatureFamilyStore;
extern DBCStorage <CreatureSpellDataEntry> sCreatureSpellDataStore;
@@ -108,6 +109,7 @@ extern DBCStorage <ItemSetEntry> sItemSetStore;
extern DBCStorage <LockEntry> sLockStore;
extern DBCStorage <MailTemplateEntry> sMailTemplateStore;
extern DBCStorage <MapEntry> sMapStore;
+extern DBCStorage <MovieEntry> sMovieStore;
extern DBCStorage <QuestSortEntry> sQuestSortStore;
extern DBCStorage <RandomPropertiesPointsEntry> sRandomPropertiesPointsStore;
extern DBCStorage <ScalingStatDistributionEntry> sScalingStatDistributionStore;
diff --git a/src/game/DBCStructure.h b/src/game/DBCStructure.h
index 98fe0000ed4..fa5036c56d2 100644
--- a/src/game/DBCStructure.h
+++ b/src/game/DBCStructure.h
@@ -651,6 +651,27 @@ struct ChrRacesEntry
uint32 addon; // 68 (0 - original race, 1 - tbc addon, ...)
};
+/* not used
+struct CinematicCameraEntry
+{
+ uint32 id; // 0 index
+ char* filename; // 1
+ uint32 soundid; // 2 in SoundEntries.dbc or 0
+ float start_x; // 3
+ float start_y; // 4
+ float start_z; // 5
+ float unk6; // 6 speed?
+};
+*/
+
+struct CinematicSequencesEntry
+{
+ uint32 Id; // 0 index
+ //uint32 unk1; // 1 always 0
+ //uint32 cinematicCamera; // 2 id in CinematicCamera.dbc
+ // 3-9 always 0
+};
+
struct CreatureDisplayInfoEntry
{
uint32 Displayid; // 0 m_ID
@@ -1084,6 +1105,13 @@ struct MapEntry
}
};
+struct MovieEntry
+{
+ uint32 Id; // 0 index
+ //char* filename; // 1
+ //uint32 unk2; // 2 always 100
+};
+
struct QuestSortEntry
{
uint32 id; // 0 m_ID
diff --git a/src/game/DBCfmt.h b/src/game/DBCfmt.h
index be412682685..23f9cc9c516 100644
--- a/src/game/DBCfmt.h
+++ b/src/game/DBCfmt.h
@@ -36,6 +36,7 @@ const char ChatChannelsEntryfmt[]="iixssssssssssssssssxxxxxxxxxxxxxxxxxx";
// ChatChannelsEntryfmt, index not used (more compact store)
const char ChrClassesEntryfmt[]="nxixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxixii";
const char ChrRacesEntryfmt[]="nxixiixxixxxxissssssssssssssssxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxi";
+const char CinematicSequencesEntryfmt[]="nxxxxxxxxx";
const char CreatureDisplayInfofmt[]="nxxxfxxxxxxxxxxx";
const char CreatureFamilyfmt[]="nfifiiiiixssssssssssssssssxx";
const char CreatureSpellDatafmt[]="nxxxxxxxx";
@@ -72,6 +73,7 @@ const char ItemSetEntryfmt[]="dssssssssssssssssxxxxxxxxxxxxxxxxxxiiiiiiiiiiiiiii
const char LockEntryfmt[]="niiiiiiiiiiiiiiiiiiiiiiiixxxxxxxx";
const char MailTemplateEntryfmt[]="nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
const char MapEntryfmt[]="nxixssssssssssssssssxixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxiffiixxix";
+const char MovieEntryfmt[]="nxx";
const char QuestSortEntryfmt[]="nxxxxxxxxxxxxxxxxx";
const char RandomPropertiesPointsfmt[]="niiiiiiiiiiiiiii";
const char ScalingStatDistributionfmt[]="niiiiiiiiiiiiiiiiiiiii";
diff --git a/src/game/Debugcmds.cpp b/src/game/Debugcmds.cpp
index 3bd630f799b..e50ca1677de 100644
--- a/src/game/Debugcmds.cpp
+++ b/src/game/Debugcmds.cpp
@@ -242,6 +242,54 @@ bool ChatHandler::HandleDebugUpdateWorldStateCommand(const char* args)
return true;
}
+bool ChatHandler::HandleDebugPlayCinematicCommand(const char* args)
+{
+ // USAGE: .debug play cinematic #cinematicid
+ // #cinematicid - ID decimal number from CinemaicSequences.dbc (1st column)
+ if( !*args )
+ {
+ SendSysMessage(LANG_BAD_VALUE);
+ SetSentErrorMessage(true);
+ return false;
+ }
+
+ uint32 dwId = atoi((char*)args);
+
+ if(!sCinematicSequencesStore.LookupEntry(dwId))
+ {
+ PSendSysMessage(LANG_CINEMATIC_NOT_EXIST, dwId);
+ SetSentErrorMessage(true);
+ return false;
+ }
+
+ m_session->GetPlayer()->SendCinematicStart(dwId);
+ return true;
+}
+
+bool ChatHandler::HandleDebugPlayMovieCommand(const char* args)
+{
+ // USAGE: .debug play movie #movieid
+ // #movieid - ID decimal number from Movie.dbc (1st column)
+ if( !*args )
+ {
+ SendSysMessage(LANG_BAD_VALUE);
+ SetSentErrorMessage(true);
+ return false;
+ }
+
+ uint32 dwId = atoi((char*)args);
+
+ if(!sMovieStore.LookupEntry(dwId))
+ {
+ PSendSysMessage(LANG_MOVIE_NOT_EXIST, dwId);
+ SetSentErrorMessage(true);
+ return false;
+ }
+
+ m_session->GetPlayer()->SendMovieStart(dwId);
+ return true;
+}
+
//Play sound
bool ChatHandler::HandleDebugPlaySoundCommand(const char* args)
{
diff --git a/src/game/Language.h b/src/game/Language.h
index 7a344bd2b41..aebcd93a008 100644
--- a/src/game/Language.h
+++ b/src/game/Language.h
@@ -854,6 +854,13 @@ enum TrinityStrings
LANG_WORLD_CLOSED = 7523,
LANG_WORLD_OPENED = 7524,
+ // Debug commands
+ LANG_CINEMATIC_NOT_EXIST = 1200,
+ LANG_MOVIE_NOT_EXIST = 1201,
+ // Room for more debug 1202-1299 not used
+
+ // FREE IDS 1300-9999
+
// Use for not-in-offcial-sources patches
// 10000-10999
// opvp hp