diff options
author | Machiavelli <none@none> | 2010-06-05 17:58:11 +0200 |
---|---|---|
committer | Machiavelli <none@none> | 2010-06-05 17:58:11 +0200 |
commit | d45d61c2b1c214b2c03f4463f49aeb28cda25883 (patch) | |
tree | dc194d78e4bcfb04780c4a91624d9dbd56c136b5 | |
parent | 3fad2782f14a0f0fcbd8155efefad95af235737c (diff) |
Remove unneeded SCRIPT_COMMAND_SET_FLAG that already was implemented in a different way.
(/blame Malcrom)
--HG--
branch : trunk
-rw-r--r-- | src/game/Map.cpp | 51 | ||||
-rw-r--r-- | src/game/World.h | 1 |
2 files changed, 9 insertions, 43 deletions
diff --git a/src/game/Map.cpp b/src/game/Map.cpp index 8e071d71747..8efce5bc522 100644 --- a/src/game/Map.cpp +++ b/src/game/Map.cpp @@ -3023,11 +3023,10 @@ void Map::ScriptsProcess() break; } - // Source should only be Creature or GO, but in case of gossip, the target is our source. Creature* cSource = source->ToCreature() != NULL ? source->ToCreature() : target->ToCreature(); if (!cSource) { - sLog.outError("SCRIPT_COMMAND_FIELD_SET (script id: %u) call for non-creature or non-GO source.", step.script->id); + sLog.outError("SCRIPT_COMMAND_FIELD_SET (script id: %u) call for non-creature source.", step.script->id); break; } @@ -3062,12 +3061,15 @@ void Map::ScriptsProcess() cSource->GetMap()->CreatureRelocation(cSource, step.script->x, step.script->y, step.script->z, 0); break; } + case SCRIPT_COMMAND_FLAG_SET: + { if (!source) { sLog.outError("SCRIPT_COMMAND_FLAG_SET (script id: %u) call for NULL object.", step.script->id); break; } + if (step.script->datalong <= OBJECT_FIELD_ENTRY || step.script->datalong >= source->GetValuesCount()) { sLog.outError("SCRIPT_COMMAND_FLAG_SET (script id: %u) call for wrong field %u (max count: %u) in object (TypeId: %u, Entry: %u, GUID: %u).", @@ -3077,7 +3079,10 @@ void Map::ScriptsProcess() source->SetFlag(step.script->datalong, step.script->datalong2); break; + } + case SCRIPT_COMMAND_FLAG_REMOVE: + { if (!source) { sLog.outError("SCRIPT_COMMAND_FLAG_REMOVE (script id: %u) call for NULL object.", step.script->id); @@ -3092,7 +3097,8 @@ void Map::ScriptsProcess() source->RemoveFlag(step.script->datalong, step.script->datalong2); break; - + } + case SCRIPT_COMMAND_TELEPORT_TO: { // accept object in any one from target/source arg @@ -3851,45 +3857,6 @@ void Map::ScriptsProcess() break; } - case SCRIPT_COMMAND_SET_FLAG: - { - if (!source) - { - sLog.outError("SCRIPT_COMMAND_MOD_UPDATEFIELD (script id: %u) call for NULL source.", step.script->id); - break; - } - - uint16 maxOffset = 0; - switch (source->GetTypeId()) - { - case TYPEID_ITEM: - maxOffset = ITEM_END; - break; - case TYPEID_UNIT: - maxOffset = UNIT_END; - break; - case TYPEID_PLAYER: - maxOffset = PLAYER_END; - break; - case TYPEID_GAMEOBJECT: - maxOffset = GAMEOBJECT_END; - break; - } - - if (step.script->datalong >= maxOffset || !step.script->datalong) - { - sLog.outError("SCRIPT_COMMAND_MOD_UPDATEFIELD (script id: %u). invalid index parameter (%u). maximum offset: (%u) for typeid %u", - step.script->id, step.script->datalong, maxOffset, source->GetTypeId()); - break; - } - - if (step.script->dataint) - source->SetFlag(step.script->datalong, step.script->datalong2); - else - source->RemoveFlag(step.script->datalong, step.script->datalong2); - break; - } - default: sLog.outError("Unknown script command %u called.", step.script->command); break; diff --git a/src/game/World.h b/src/game/World.h index 2a4f963bfdb..1a95253fa03 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -454,7 +454,6 @@ enum WorldStates #define SCRIPT_COMMAND_MODEL 32 // datalong = model id #define SCRIPT_COMMAND_CLOSE_GOSSIP 33 // close gossip window -- no values #define SCRIPT_COMMAND_PLAYMOVIE 34 // datalong = movie id -#define SCRIPT_COMMAND_SET_FLAG 35 // dataint: 1=apply,0=remove, datalong = index, datalong2 = newvalue /// Storage class for commands issued for delayed execution struct CliCommandHolder |