Merge branch 'simc_git' into mop

git-svn-id: https://simulationcraft.googlecode.com/svn/branches/mop@11065 3b4652a1-8050-0410-ac47-3d40261b0f8b
Priest: Add action player pointer p().
All priest actions now only accept priest_t* instead of player_t*.

git-svn-id: https://simulationcraft.googlecode.com/svn/branches/mop@11066 3b4652a1-8050-0410-ac47-3d40261b0f8b
Make action_t::player a constant.

git-svn-id: https://simulationcraft.googlecode.com/svn/branches/mop@11067 3b4652a1-8050-0410-ac47-3d40261b0f8b
Panda data, woof. Extractor can now generate panda datas (and it should also support Cataclysm).

** Class modules will not work at all, a ton of talents have disappeared or rejuggled into other things. **

Oh, and Makefile is fixed.



git-svn-id: https://simulationcraft.googlecode.com/svn/branches/mop@11068 3b4652a1-8050-0410-ac47-3d40261b0f8b
Fix power type back to int.


git-svn-id: https://simulationcraft.googlecode.com/svn/branches/mop@11069 3b4652a1-8050-0410-ac47-3d40261b0f8b
Spell data supports an arbitrary amount of Effects. spell_data_t::effectN( idx ) can be used to fetch any effect index.

Also nuke dependant talents, as they are no longer used. In the future, talent_data_t can be reduced as a struct.



git-svn-id: https://simulationcraft.googlecode.com/svn/branches/mop@11070 3b4652a1-8050-0410-ac47-3d40261b0f8b
Add effect ids as comments in sc_spell_data.inc for every spell.


git-svn-id: https://simulationcraft.googlecode.com/svn/branches/mop@11071 3b4652a1-8050-0410-ac47-3d40261b0f8b
predefine rng_t as a class
fix warning in sc_action.cpp

git-svn-id: https://simulationcraft.googlecode.com/svn/branches/mop@11072 3b4652a1-8050-0410-ac47-3d40261b0f8b
Fix msvc++ project files

git-svn-id: https://simulationcraft.googlecode.com/svn/branches/mop@11073 3b4652a1-8050-0410-ac47-3d40261b0f8b
Fix some warning in rng_t

git-svn-id: https://simulationcraft.googlecode.com/svn/branches/mop@11074 3b4652a1-8050-0410-ac47-3d40261b0f8b
signed/unsigned mismatch

git-svn-id: https://simulationcraft.googlecode.com/svn/branches/mop@11075 3b4652a1-8050-0410-ac47-3d40261b0f8b
Fix more warnings in rng_t

git-svn-id: https://simulationcraft.googlecode.com/svn/branches/mop@11076 3b4652a1-8050-0410-ac47-3d40261b0f8b
Speed up compilation process by creating spell_data_t::_effects during runtime.


git-svn-id: https://simulationcraft.googlecode.com/svn/branches/mop@11077 3b4652a1-8050-0410-ac47-3d40261b0f8b
Implement detached state for action_t.

Changes to existing code include:
- Move Demoralizing Roar etc to composite_player_multiplier() (from player_buff())
- Move Racial bonuses to composite_xx methods

Additions for stateless specific stuff:
- Add stateless_travel_event_t for stateless actions travel
- Add player_t::composite_spell_crit_vulnerability for Critical Mass and Shadow and Flame handling to the method
- Add player_t::composite_attack_crit_vulnerability, not used at the moment
- Add player_t::composite_player_vulnerability for CoE based effects and Bleed damage effects  
- Add player_t::composite_ranged_attack_vulnerability for Hunter's Mark
- Add action_multiplier(), action_ta_multiplier() action_da_multiplier() that returns the action specific multipliers

Stateless actions require specific method overrides, you *CANNOT* use the old, non-stateless versions of the methods with stateless actions. The most important set of methods is given below:
- impact_s
- calculate_direct_damage_s
- calculate_tick_damage_s
- calculate_weapon_damage_s
- calculate_result_s
- tick_time_s
- hasted_num_ticks_s

The state of an action is defined as the snapshot of the action (base), actor and target state at the time of execute and the result of the impact (including damage). Currently, the state is snapshotted for:
* Hit% [base, actor]
* Expertise [actor]
* Haste% [actor]
* Crit% [base, actor, target]
* Mastery [actor]
* Attack power [base, actor, target]
* Spell power [base, actor]
* Base Multipliers [generic, direct damage, tick damage]
* Actor Multipliers [generic, direct damage, tick damage]
* Target Multiplier
* Attack Power Multipliers [base, actor]
* Spell Power Multipliers [base, actor]

State is taken at execute(), and controlled by the new stateless variable in action_t. In addition, dot ticks also take an update state for several attributes. Setting action_t::stateless to true will enable the decoupling code. Currently, old action_t mechanisms are still fully supported.

action_state_t::take_state() snapshots the stats from action_t (base) and source/target actors. What stats are taken is controlled by the bitfield variable action_t::snapshot_flags. The construction of action_t selects various attributes to be snapshot (adding them to action_t::snapshot_flags), based on the action_t type and attributes. Snapshot_flags can be overridden in derived class constructor. action_t::update_flags controls what is snapshot during dot/hot ticks, currently it snapshots all target-based attributes (multipliers, spell penetration, AP [Hunter's Mark] and critical chance) and critical chance.

Action_t has three new methods for the state decoupling code, in addition to action_state_t specific versions for the various result resolving methods.
(1) Action_t::new_state() allocates a new state object from the heap. If you create a derived state class for an action, you need to override this method. See sc_shaman.cpp lava_burst_t for simple example. Action_t also caches state objects to reduce memory allocation overhead during simulating. 
(2) Action_t::get_state() gets an object from the action specific state cache. If no object is found, a new state object is created (by action_t::new_state). 
(3) Action_t::release_state() releases the action_state_t object and returns it to the action_t object specific cache.



git-svn-id: https://simulationcraft.googlecode.com/svn/branches/mop@11078 3b4652a1-8050-0410-ac47-3d40261b0f8b
Ops, commit sc_action_state.cpp too.


git-svn-id: https://simulationcraft.googlecode.com/svn/branches/mop@11079 3b4652a1-8050-0410-ac47-3d40261b0f8b
Add sc_action_state.cpp to VC++ projects

git-svn-id: https://simulationcraft.googlecode.com/svn/branches/mop@11080 3b4652a1-8050-0410-ac47-3d40261b0f8b
MoP Priest: Change Shadowy Apparitions

git-svn-id: https://simulationcraft.googlecode.com/svn/branches/mop@11081 3b4652a1-8050-0410-ac47-3d40261b0f8b
Make sure new_remaining_ticks gets set

git-svn-id: https://simulationcraft.googlecode.com/svn/branches/mop@11082 3b4652a1-8050-0410-ac47-3d40261b0f8b
MoP Priest: Move buffs into buffs_t

git-svn-id: https://simulationcraft.googlecode.com/svn/branches/mop@11083 3b4652a1-8050-0410-ac47-3d40261b0f8b
MoP Priest: And continue to move other priest variables into containers ( procs, gains, etc. )

git-svn-id: https://simulationcraft.googlecode.com/svn/branches/mop@11084 3b4652a1-8050-0410-ac47-3d40261b0f8b