mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 01:11:29 +00:00
Fix for quest::GetZoneLongName(zone_short_name) garbled output (#1134)
This commit is contained in:
parent
25c596656c
commit
be12cad7bd
@ -3733,10 +3733,11 @@ XS(XS__GetZoneLongName) {
|
||||
if (items != 1)
|
||||
Perl_croak(aTHX_ "Usage: quest::GetZoneLongName(string zone)");
|
||||
dXSTARG;
|
||||
char *zone = (char *) SvPV_nolen(ST(0));
|
||||
Const_char *RETVAL = quest_manager.GetZoneLongName(zone);
|
||||
|
||||
sv_setpv(TARG, RETVAL);
|
||||
std::string zone = (std::string) SvPV_nolen(ST(0));
|
||||
std::string RETVAL = quest_manager.GetZoneLongName(zone);
|
||||
|
||||
sv_setpv(TARG, RETVAL.c_str());
|
||||
XSprePUSH;
|
||||
PUSHTARG;
|
||||
XSRETURN(1);
|
||||
@ -3767,7 +3768,7 @@ XS(XS__crosszoneassigntaskbycharid) {
|
||||
|
||||
if (items == 3) {
|
||||
enforce_level_requirement = (bool) SvTRUE(ST(2));
|
||||
}
|
||||
}
|
||||
quest_manager.CrossZoneAssignTaskByCharID(character_id, task_id, enforce_level_requirement);
|
||||
}
|
||||
|
||||
@ -3801,13 +3802,13 @@ XS(XS__crosszoneassigntaskbyraidid) {
|
||||
int raid_id = (int) SvIV(ST(0));
|
||||
uint32 task_id = (uint32) SvIV(ST(1));
|
||||
bool enforce_level_requirement = false;
|
||||
|
||||
|
||||
if (items == 3) {
|
||||
enforce_level_requirement = (bool) SvTRUE(ST(2));
|
||||
}
|
||||
quest_manager.CrossZoneAssignTaskByRaidID(raid_id, task_id, enforce_level_requirement);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__crosszoneassigntaskbyguildid);
|
||||
@ -3825,7 +3826,7 @@ XS(XS__crosszoneassigntaskbyguildid) {
|
||||
}
|
||||
quest_manager.CrossZoneAssignTaskByGuildID(guild_id, task_id, enforce_level_requirement);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__crosszonecastspellbycharid);
|
||||
@ -3838,7 +3839,7 @@ XS(XS__crosszonecastspellbycharid) {
|
||||
uint32 spell_id = (uint32) SvIV(ST(1));
|
||||
quest_manager.CrossZoneCastSpellByCharID(character_id, spell_id);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__crosszonecastspellbygroupid);
|
||||
@ -3851,7 +3852,7 @@ XS(XS__crosszonecastspellbygroupid) {
|
||||
uint32 spell_id = (uint32) SvIV(ST(1));
|
||||
quest_manager.CrossZoneCastSpellByGroupID(group_id, spell_id);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__crosszonecastspellbyraidid);
|
||||
@ -3864,7 +3865,7 @@ XS(XS__crosszonecastspellbyraidid) {
|
||||
uint32 spell_id = (uint32) SvIV(ST(1));
|
||||
quest_manager.CrossZoneCastSpellByRaidID(raid_id, spell_id);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__crosszonecastspellbyguildid);
|
||||
@ -3877,7 +3878,7 @@ XS(XS__crosszonecastspellbyguildid) {
|
||||
uint32 spell_id = (uint32) SvUV(ST(1));
|
||||
quest_manager.CrossZoneCastSpellByGuildID(guild_id, spell_id);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__crosszonedisabletaskbycharid);
|
||||
@ -3890,7 +3891,7 @@ XS(XS__crosszonedisabletaskbycharid) {
|
||||
uint32 task_id = (uint32) SvUV(ST(1));
|
||||
quest_manager.CrossZoneDisableTaskByCharID(char_id, task_id);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__crosszonedisabletaskbygroupid);
|
||||
@ -3903,7 +3904,7 @@ XS(XS__crosszonedisabletaskbygroupid) {
|
||||
uint32 task_id = (uint32) SvUV(ST(1));
|
||||
quest_manager.CrossZoneDisableTaskByGroupID(group_id, task_id);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__crosszonedisabletaskbyraidid);
|
||||
@ -3916,7 +3917,7 @@ XS(XS__crosszonedisabletaskbyraidid) {
|
||||
uint32 task_id = (uint32) SvUV(ST(1));
|
||||
quest_manager.CrossZoneDisableTaskByRaidID(raid_id, task_id);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__crosszonedisabletaskbyguildid);
|
||||
@ -3929,7 +3930,7 @@ XS(XS__crosszonedisabletaskbyguildid) {
|
||||
uint32 task_id = (uint32) SvUV(ST(1));
|
||||
quest_manager.CrossZoneDisableTaskByGuildID(guild_id, task_id);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__crosszoneenabletaskbycharid);
|
||||
@ -3942,7 +3943,7 @@ XS(XS__crosszoneenabletaskbycharid) {
|
||||
uint32 task_id = (uint32) SvUV(ST(1));
|
||||
quest_manager.CrossZoneEnableTaskByCharID(char_id, task_id);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__crosszoneenabletaskbygroupid);
|
||||
@ -3955,7 +3956,7 @@ XS(XS__crosszoneenabletaskbygroupid) {
|
||||
uint32 task_id = (uint32) SvUV(ST(1));
|
||||
quest_manager.CrossZoneEnableTaskByGroupID(group_id, task_id);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__crosszoneenabletaskbyraidid);
|
||||
@ -3968,7 +3969,7 @@ XS(XS__crosszoneenabletaskbyraidid) {
|
||||
uint32 task_id = (uint32) SvUV(ST(1));
|
||||
quest_manager.CrossZoneEnableTaskByRaidID(raid_id, task_id);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__crosszoneenabletaskbyguildid);
|
||||
@ -3981,7 +3982,7 @@ XS(XS__crosszoneenabletaskbyguildid) {
|
||||
uint32 task_id = (uint32) SvUV(ST(1));
|
||||
quest_manager.CrossZoneEnableTaskByGuildID(guild_id, task_id);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__crosszonefailtaskbycharid);
|
||||
@ -3994,7 +3995,7 @@ XS(XS__crosszonefailtaskbycharid) {
|
||||
uint32 task_id = (uint32) SvUV(ST(1));
|
||||
quest_manager.CrossZoneFailTaskByCharID(char_id, task_id);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__crosszonefailtaskbygroupid);
|
||||
@ -4007,7 +4008,7 @@ XS(XS__crosszonefailtaskbygroupid) {
|
||||
uint32 task_id = (uint32) SvUV(ST(1));
|
||||
quest_manager.CrossZoneFailTaskByGroupID(group_id, task_id);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__crosszonefailtaskbyraidid);
|
||||
@ -4020,7 +4021,7 @@ XS(XS__crosszonefailtaskbyraidid) {
|
||||
uint32 task_id = (uint32) SvUV(ST(1));
|
||||
quest_manager.CrossZoneFailTaskByRaidID(raid_id, task_id);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__crosszonefailtaskbyguildid);
|
||||
@ -4033,7 +4034,7 @@ XS(XS__crosszonefailtaskbyguildid) {
|
||||
uint32 task_id = (uint32) SvUV(ST(1));
|
||||
quest_manager.CrossZoneFailTaskByGuildID(guild_id, task_id);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__crosszonemarqueebycharid);
|
||||
@ -4390,7 +4391,7 @@ XS(XS__crosszoneremovetaskbycharid) {
|
||||
uint32 task_id = (uint32) SvUV(ST(1));
|
||||
quest_manager.CrossZoneRemoveTaskByCharID(char_id, task_id);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__crosszoneremovetaskbygroupid);
|
||||
@ -4403,7 +4404,7 @@ XS(XS__crosszoneremovetaskbygroupid) {
|
||||
uint32 task_id = (uint32) SvUV(ST(1));
|
||||
quest_manager.CrossZoneRemoveTaskByGroupID(group_id, task_id);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__crosszoneremovetaskbyraidid);
|
||||
@ -4416,7 +4417,7 @@ XS(XS__crosszoneremovetaskbyraidid) {
|
||||
uint32 task_id = (uint32) SvUV(ST(1));
|
||||
quest_manager.CrossZoneRemoveTaskByRaidID(raid_id, task_id);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__crosszoneremovetaskbyguildid);
|
||||
@ -4429,7 +4430,7 @@ XS(XS__crosszoneremovetaskbyguildid) {
|
||||
uint32 task_id = (uint32) SvUV(ST(1));
|
||||
quest_manager.CrossZoneRemoveTaskByGuildID(guild_id, task_id);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__crosszoneresetactivitybycharid);
|
||||
@ -4443,7 +4444,7 @@ XS(XS__crosszoneresetactivitybycharid) {
|
||||
int activity_id = (int) SvIV(ST(2));
|
||||
quest_manager.CrossZoneResetActivityByCharID(char_id, task_id, activity_id);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__crosszoneresetactivitybygroupid);
|
||||
@ -4457,7 +4458,7 @@ XS(XS__crosszoneresetactivitybygroupid) {
|
||||
int activity_id = (int) SvIV(ST(2));
|
||||
quest_manager.CrossZoneResetActivityByGroupID(group_id, task_id, activity_id);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__crosszoneresetactivitybyraidid);
|
||||
@ -4471,7 +4472,7 @@ XS(XS__crosszoneresetactivitybyraidid) {
|
||||
int activity_id = (int) SvIV(ST(2));
|
||||
quest_manager.CrossZoneResetActivityByRaidID(raid_id, task_id, activity_id);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__crosszoneresetactivitybyguildid);
|
||||
@ -4485,7 +4486,7 @@ XS(XS__crosszoneresetactivitybyguildid) {
|
||||
int activity_id = (int) SvIV(ST(2));
|
||||
quest_manager.CrossZoneResetActivityByGuildID(guild_id, task_id, activity_id);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__crosszonesetentityvariablebynpctypeid);
|
||||
@ -4684,7 +4685,7 @@ XS(XS__crosszoneupdateactivitybycharid) {
|
||||
}
|
||||
quest_manager.CrossZoneUpdateActivityByCharID(char_id, task_id, activity_id, activity_count);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__crosszoneupdateactivitybygroupid);
|
||||
@ -4702,7 +4703,7 @@ XS(XS__crosszoneupdateactivitybygroupid) {
|
||||
}
|
||||
quest_manager.CrossZoneUpdateActivityByGroupID(group_id, task_id, activity_id, activity_count);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__crosszoneupdateactivitybyraidid);
|
||||
@ -4720,7 +4721,7 @@ XS(XS__crosszoneupdateactivitybyraidid) {
|
||||
}
|
||||
quest_manager.CrossZoneUpdateActivityByRaidID(raid_id, task_id, activity_id, activity_count);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__crosszoneupdateactivitybyguildid);
|
||||
@ -4738,7 +4739,7 @@ XS(XS__crosszoneupdateactivitybyguildid) {
|
||||
}
|
||||
quest_manager.CrossZoneUpdateActivityByGuildID(guild_id, task_id, activity_id, activity_count);
|
||||
}
|
||||
XSRETURN_EMPTY;
|
||||
XSRETURN_EMPTY;
|
||||
}
|
||||
|
||||
XS(XS__worldwideassigntask);
|
||||
@ -4753,7 +4754,7 @@ XS(XS__worldwideassigntask) {
|
||||
if (items == 2) {
|
||||
min_status = (uint8) SvUV(ST(1));
|
||||
}
|
||||
|
||||
|
||||
if (items == 3) {
|
||||
max_status = (uint8) SvUV(ST(2));
|
||||
}
|
||||
@ -4775,7 +4776,7 @@ XS(XS__worldwidecastspell) {
|
||||
if (items == 2) {
|
||||
min_status = (uint8) SvUV(ST(1));
|
||||
}
|
||||
|
||||
|
||||
if (items == 3) {
|
||||
max_status = (uint8) SvUV(ST(2));
|
||||
}
|
||||
@ -4797,7 +4798,7 @@ XS(XS__worldwidedisabletask) {
|
||||
if (items == 2) {
|
||||
min_status = (uint8) SvUV(ST(1));
|
||||
}
|
||||
|
||||
|
||||
if (items == 3) {
|
||||
max_status = (uint8) SvUV(ST(2));
|
||||
}
|
||||
@ -4819,7 +4820,7 @@ XS(XS__worldwideenabletask) {
|
||||
if (items == 2) {
|
||||
min_status = (uint8) SvUV(ST(1));
|
||||
}
|
||||
|
||||
|
||||
if (items == 3) {
|
||||
max_status = (uint8) SvUV(ST(2));
|
||||
}
|
||||
@ -4841,7 +4842,7 @@ XS(XS__worldwidefailtask) {
|
||||
if (items == 2) {
|
||||
min_status = (uint8) SvUV(ST(1));
|
||||
}
|
||||
|
||||
|
||||
if (items == 3) {
|
||||
max_status = (uint8) SvUV(ST(2));
|
||||
}
|
||||
@ -4868,7 +4869,7 @@ XS(XS__worldwidemarquee) {
|
||||
if (items == 7) {
|
||||
min_status = (uint8) SvUV(ST(6));
|
||||
}
|
||||
|
||||
|
||||
if (items == 8) {
|
||||
max_status = (uint8) SvUV(ST(7));
|
||||
}
|
||||
@ -4891,7 +4892,7 @@ XS(XS__worldwidemessage) {
|
||||
if (items == 3) {
|
||||
min_status = (uint8) SvUV(ST(2));
|
||||
}
|
||||
|
||||
|
||||
if (items == 4) {
|
||||
max_status = (uint8) SvUV(ST(3));
|
||||
}
|
||||
@ -4914,7 +4915,7 @@ XS(XS__worldwidemove) {
|
||||
if (items == 2) {
|
||||
min_status = (uint8) SvUV(ST(1));
|
||||
}
|
||||
|
||||
|
||||
if (items == 3) {
|
||||
max_status = (uint8) SvUV(ST(2));
|
||||
}
|
||||
@ -4936,7 +4937,7 @@ XS(XS__worldwidemoveinstance) {
|
||||
if (items == 2) {
|
||||
min_status = (uint8) SvUV(ST(1));
|
||||
}
|
||||
|
||||
|
||||
if (items == 3) {
|
||||
max_status = (uint8) SvUV(ST(2));
|
||||
}
|
||||
@ -4958,7 +4959,7 @@ XS(XS__worldwideremovespell) {
|
||||
if (items == 2) {
|
||||
min_status = (uint8) SvUV(ST(1));
|
||||
}
|
||||
|
||||
|
||||
if (items == 3) {
|
||||
max_status = (uint8) SvUV(ST(2));
|
||||
}
|
||||
@ -4980,7 +4981,7 @@ XS(XS__worldwideremovetask) {
|
||||
if (items == 2) {
|
||||
min_status = (uint8) SvUV(ST(1));
|
||||
}
|
||||
|
||||
|
||||
if (items == 3) {
|
||||
max_status = (uint8) SvUV(ST(2));
|
||||
}
|
||||
@ -5003,7 +5004,7 @@ XS(XS__worldwideresetactivity) {
|
||||
if (items == 3) {
|
||||
min_status = (uint8) SvUV(ST(2));
|
||||
}
|
||||
|
||||
|
||||
if (items == 4) {
|
||||
max_status = (uint8) SvUV(ST(3));
|
||||
}
|
||||
@ -5026,7 +5027,7 @@ XS(XS__worldwidesetentityvariableclient) {
|
||||
if (items == 3) {
|
||||
min_status = (uint8) SvUV(ST(2));
|
||||
}
|
||||
|
||||
|
||||
if (items == 4) {
|
||||
max_status = (uint8) SvUV(ST(3));
|
||||
}
|
||||
@ -5075,7 +5076,7 @@ XS(XS__worldwidesignalclient) {
|
||||
if (items == 2) {
|
||||
min_status = (uint8) SvUV(ST(1));
|
||||
}
|
||||
|
||||
|
||||
if (items == 3) {
|
||||
max_status = (uint8) SvUV(ST(1));
|
||||
}
|
||||
@ -5102,7 +5103,7 @@ XS(XS__worldwideupdateactivity) {
|
||||
if (items == 4) {
|
||||
min_status = (uint8) SvUV(ST(3));
|
||||
}
|
||||
|
||||
|
||||
if (items == 5) {
|
||||
max_status = (uint8) SvUV(ST(4));
|
||||
}
|
||||
@ -6171,7 +6172,7 @@ EXTERN_C XS(boot_quest) {
|
||||
newXS(strcpy(buf, "crosszonemoveinstancebycharid"), XS__crosszonemoveinstancebycharid, file);
|
||||
newXS(strcpy(buf, "crosszonemoveinstancebygroupid"), XS__crosszonemoveinstancebygroupid, file);
|
||||
newXS(strcpy(buf, "crosszonemoveinstancebyraidid"), XS__crosszonemoveinstancebyraidid, file);
|
||||
newXS(strcpy(buf, "crosszonemoveinstancebyguildid"), XS__crosszonemoveinstancebyguildid, file);
|
||||
newXS(strcpy(buf, "crosszonemoveinstancebyguildid"), XS__crosszonemoveinstancebyguildid, file);
|
||||
newXS(strcpy(buf, "crosszoneremovespellbycharid"), XS__crosszoneremovespellbycharid, file);
|
||||
newXS(strcpy(buf, "crosszoneremovespellbygroupid"), XS__crosszoneremovespellbygroupid, file);
|
||||
newXS(strcpy(buf, "crosszoneremovespellbyraidid"), XS__crosszoneremovespellbyraidid, file);
|
||||
|
||||
@ -3272,13 +3272,11 @@ int32 QuestManager::GetZoneID(const char *zone) {
|
||||
return static_cast<int32>(ZoneID(zone));
|
||||
}
|
||||
|
||||
const char* QuestManager::GetZoneLongName(const char *zone) {
|
||||
char *long_name;
|
||||
content_db.GetZoneLongName(zone, &long_name);
|
||||
std::string ln = long_name;
|
||||
safe_delete_array(long_name);
|
||||
|
||||
return ln.c_str();
|
||||
std::string QuestManager::GetZoneLongName(std::string zone_short_name)
|
||||
{
|
||||
return zone_store.GetZoneLongName(
|
||||
zone_store.GetZoneID(zone_short_name)
|
||||
);
|
||||
}
|
||||
|
||||
void QuestManager::CrossZoneAssignTaskByCharID(int character_id, uint32 task_id, bool enforce_level_requirement) {
|
||||
@ -3958,7 +3956,7 @@ void QuestManager::CrossZoneUpdateActivityByGuildID(int guild_id, uint32 task_id
|
||||
}
|
||||
}
|
||||
|
||||
void QuestManager::WorldWideAssignTask(uint32 task_id, bool enforce_level_requirement, uint8 min_status, uint8 max_status) {
|
||||
void QuestManager::WorldWideAssignTask(uint32 task_id, bool enforce_level_requirement, uint8 min_status, uint8 max_status) {
|
||||
QuestManagerCurrentQuestVars();
|
||||
if (initiator && owner) {
|
||||
auto pack = new ServerPacket(ServerOP_WWAssignTask, sizeof(WWAssignTask_Struct));
|
||||
|
||||
@ -280,7 +280,7 @@ public:
|
||||
void SendMail(const char *to, const char *from, const char *subject, const char *message);
|
||||
uint16 CreateDoor( const char* model, float x, float y, float z, float heading, uint8 opentype, uint16 size);
|
||||
int32 GetZoneID(const char *zone);
|
||||
const char *GetZoneLongName(const char *zone);
|
||||
static std::string GetZoneLongName(std::string zone_short_name);
|
||||
void CrossZoneAssignTaskByCharID(int character_id, uint32 task_id, bool enforce_level_requirement = false);
|
||||
void CrossZoneAssignTaskByGroupID(int group_id, uint32 task_id, bool enforce_level_requirement = false);
|
||||
void CrossZoneAssignTaskByRaidID(int raid_id, uint32 task_id, bool enforce_level_requirement = false);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user