Commit Graph
14 Commits
Author SHA1 Message Date
Spp 2454c290b8 Code Style (game + scripts only):
"==" --> " == " (when needed)

--HG--
branch : trunk
2010-04-07 23:25:02 +02:00
Spp d19e127080 Code style (game + scripts only):
"if(" --> "if ("

--HG--
branch : trunk
2010-04-07 19:14:10 +02:00
Spp 182e9a20b1 Code style (game + scripts only):
"for(" --> "for ("

--HG--
branch : trunk
2010-04-07 19:12:44 +02:00
Spp b27ce42704 Code Style: Remove trailing spaces
--HG--
branch : trunk
2010-04-07 18:09:10 +02:00
Tartalo b58dc98b2b Utgarde Keep, Utgarde Pinnacle: Cleanup Svala Sorrowgrave
Better handling of sacrifice target storing his GUID on ScriptedInstance to
share it between npcs.

--HG--
branch : trunk
2010-04-07 01:04:38 +02:00
Anubisss f78b766705 Use ToTempSummon() in a case instead of a C style cast.
Use correct Unit::GetCreature() instead of Unit::GetUnit() with casting the object to Creature pointer.
Remove some usless casts.
Fix a possible crash in pyrewood_ambushAI.

TODO: Remove ugly cast macros(like CAST_PLR(), CAST_CRE()) from scripts and use the correct ToX() functions(like ToPlayer(), ToCreature()).

--HG--
branch : trunk
2010-04-01 19:09:56 +02:00
Anubisss ce8cc85dfa Make a function(ToTempSummon()) which can convert Creature to TempSummon with a C++ cast(reinterpret_cast) and with a type check(isSummon()).
This function is like ToPlayer(), ToTotem(), etc.

This commit is like ede831bdd6f0cff481acc33f269fa7f8c78befd4 / r7496:
http://code.google.com/p/trinitycore/source/detail?r=ede831bdd6f0cff481acc33f269fa7f8c78befd4
As a result, this commit has the advantages and the "disadvantages" too, like r7496.

Please try to be polite if this commit causes some crashes.

--HG--
branch : trunk
2010-03-27 16:08:14 +01:00
Anubisss be739e9900 Use GUIDs instead of "global" pointers in ~all boss/instance scripts.
GUIDs are most safer than pointers and in some cases can avoid segmentation faults.

== - ==

Let me show a simple example:

We have a pointer to a creature: Creature *pCreature;

and try to search a creature and store it in the pointer:
pCreature = SearchCreature(ID);

We can check simply if the creature found or not:
if(pCreature)
- if this give true: creature found and we have a memory address which points to the creature
- if this give false: creature not found and this is a NULL pointer

Suppose that we have a valid pointer, so creature found.
We wanna use that pointer somewhere, for example in script phase 3.
But we delete the creature(from world) in phase 1.
In phase 3:
if(pCreature)
    pCreature->DoSomeShit();
The if condition gives true, but pCreature points to an _invalid_ address.
In that address maybe have "nothing" or another creature's object or a player or anything else, dont know that.

~~ - ~~

Let me show the correct way:
Creature's GUID: uint64 CreatureGUID;

search the creature and set the GUID:
Creature *pCreature = SearchCreature(ID);
CreatureGUID = pCreature ? pCreature->GetGUID() : 0; // if pCreature is NULL set the GUID to 0

So we have a GUID and not a pointer.
We can get the creature from that GUID:
Creature *pCreature = GetCreature(CreatureGUID);
and we can simply check it is valid or not(found or not):
if(pCreature)

So we deleted the creature in phase 1 and try to use it in phase 3:
Creature *pCreature = GetCreature(CreatureGUID);
And this gives NULL because GetCreature() can't find the creature which GUID is CreatureGUID.

if(pCreature) // pCreature is NULL
    pCreature->DoSomeShit(); // DoSomeShit() not called

== - ==

Remove some not used variables.
Some clean.

TODO: Should search/fix these in zones scripts.

--HG--
branch : trunk
2010-03-27 13:54:38 +01:00
Trazom62 eedd43efa5 Fix UT/Ingvar the plunderer script.
Fixes issue #1034.

- Remove setDisplayID hack and use UpdateEntry to fix Ingvar Kill Credit related achievements.
- code style cleaning.

Requires DB update to set loot from Ingvar Human (23954) to Undead (23980) (in normal and heroic).

--HG--
branch : trunk
2010-03-27 13:14:13 +01:00
Rat c8fd37a9dc *small tweaks to Utgarde keep bosses
--HG--
branch : trunk
2010-03-14 23:44:27 +01:00
Trazom62 4c9a9a02b0 Fix crash in boss_svala script + some cleanup.
Fixes issue #880.

--HG--
branch : trunk
2010-03-13 11:48:43 +01:00
Tartalo b9aacc38eb Utgarde Pinnacle, Svala the Sorrowgrave: Sacrifice once instead of many times.
(3.3.2 Blizzlike update)

--HG--
branch : trunk
2010-02-15 15:11:51 +01:00
Xanadu a5d1bc77ab A great purge of obsolete macros.
--HG--
branch : trunk
2010-02-05 00:31:28 +01:00
Rat 0cc053ea4d *Integrate Script system to Core
-added ScriptMgr for loading scripts
-removed bindings
-moved script system to src/game
-moved scripts to src/scripts
-VC project files updated
-cmakes updated (not 100% done yet)

NOTE to Devs:
-file locations changed
-precompiled renamed to ScriptedPch
-ecsort_ai renamed to ScriptedEscortAI
-follower_ai renamed to ScriptedFollowerAI
-guard_ai renamed to ScriptedGuardAI
-simple_ai renamed to ScriptedSimpleAI
-sc_creature renamed to ScriptedCreature
-sc_gossip renamed to ScriptedGossip
-sc_instance  renamed to ScriptedInstance

*use the new headers in scripts, thank you

NOTE to ALL:
cmake not fully tested, please report any errors with it
could make creashes, incompability
USE AT YOUR OWN RISK before further tests!!

--HG--
branch : trunk
2010-01-19 11:36:05 +01:00