| 2363 | // public: |
| 2364 | |
| 2365 | void afxMagicSpell::postSpellEvent(U8 event) |
| 2366 | { |
| 2367 | setMaskBits(StateEventMask); |
| 2368 | |
| 2369 | switch (event) |
| 2370 | { |
| 2371 | case ACTIVATE_EVENT: |
| 2372 | mMarks_mask |= MARK_ACTIVATE; |
| 2373 | break; |
| 2374 | case LAUNCH_EVENT: |
| 2375 | mMarks_mask |= MARK_LAUNCH; |
| 2376 | setMaskBits(LaunchEventMask); |
| 2377 | break; |
| 2378 | case IMPACT_EVENT: |
| 2379 | mMarks_mask |= MARK_IMPACT; |
| 2380 | setMaskBits(ImpactEventMask); |
| 2381 | break; |
| 2382 | case SHUTDOWN_EVENT: |
| 2383 | mMarks_mask |= MARK_SHUTDOWN; |
| 2384 | break; |
| 2385 | case DEACTIVATE_EVENT: |
| 2386 | mMarks_mask |= MARK_DEACTIVATE; |
| 2387 | break; |
| 2388 | case INTERRUPT_PHASE_EVENT: |
| 2389 | if (mSpell_state == CASTING_STATE) |
| 2390 | mMarks_mask |= MARK_END_CASTING; |
| 2391 | else if (mSpell_state == DELIVERY_STATE) |
| 2392 | mMarks_mask |= MARK_END_DELIVERY; |
| 2393 | else if (mSpell_state == LINGER_STATE) |
| 2394 | mMarks_mask |= MARK_END_LINGER; |
| 2395 | break; |
| 2396 | case INTERRUPT_SPELL_EVENT: |
| 2397 | if (mSpell_state == CASTING_STATE) |
| 2398 | mMarks_mask |= MARK_INTERRUPT_CASTING; |
| 2399 | else if (mSpell_state == DELIVERY_STATE) |
| 2400 | mMarks_mask |= MARK_INTERRUPT_DELIVERY; |
| 2401 | else if (mSpell_state == LINGER_STATE) |
| 2402 | mMarks_mask |= MARK_INTERRUPT_LINGER; |
| 2403 | else if (mSpell_state == CLEANUP_STATE) |
| 2404 | mMarks_mask |= MARK_INTERRUPT_CLEANUP; |
| 2405 | break; |
| 2406 | } |
| 2407 | } |
| 2408 | |
| 2409 | void afxMagicSpell::resolveTimeFactors() |
| 2410 | { |