| 375 | } |
| 376 | |
| 377 | S32 zNPCDuplotron::DupoHandleMail(NPCMsg* mail) |
| 378 | { |
| 379 | S32 handled = 1; |
| 380 | |
| 381 | switch (mail->msgid) |
| 382 | { |
| 383 | case NPC_MID_SYSEVENT: |
| 384 | switch (mail->sysevent.toEvent) |
| 385 | { |
| 386 | case eEventDuploKillKids: |
| 387 | this->DuploNotice(SM_NOTE_KILLKIDS, NULL); |
| 388 | break; |
| 389 | case eEventDuploPause: |
| 390 | this->DuploNotice(SM_NOTE_DUPPAUSE, NULL); |
| 391 | break; |
| 392 | case eEventDuploResume: |
| 393 | this->DuploNotice(SM_NOTE_DUPRESUME, NULL); |
| 394 | break; |
| 395 | case eEventNPCSetActiveOff: |
| 396 | this->DuploNotice(SM_NOTE_DUPPAUSE, NULL); |
| 397 | handled = 0; |
| 398 | break; |
| 399 | case eEventDuploWaveBegin: |
| 400 | case eEventDuploWaveComplete: |
| 401 | case eEventDuploNPCBorn: |
| 402 | case eEventDuploNPCKilled: |
| 403 | case eEventDuploExpiredMaxNPC: |
| 404 | break; |
| 405 | case eEventNPCSetActiveOn: |
| 406 | handled = 0; |
| 407 | break; |
| 408 | default: |
| 409 | handled = 0; |
| 410 | break; |
| 411 | } |
| 412 | break; |
| 413 | case NPC_MID_DAMAGE: |
| 414 | break; |
| 415 | default: |
| 416 | handled = 0; |
| 417 | break; |
| 418 | } |
| 419 | |
| 420 | return handled; |
| 421 | } |
| 422 | |
| 423 | // non-matching: scheduling? |
| 424 | void DUPO_InitEffects() |