DDWORD CDestructable::ObjectMessageFn(LPBASECLASS pObject, HOBJECT hSender, DDWORD messageID, HMESSAGEREAD hRead) { switch(messageID) { case MID_DAMAGE: { HandleDamage(hSender, hRead); break; } case MID_REPAIR: { HandleRepair(hSender, hRead); break; } case MID_HEAL: { HandleHeal(hSender, hRead); break; } case MID_TRIGGER: { HandleTrigger(hSender, hRead); break; } default : break; } return Aggregate::ObjectMessageFn(pObject, hSender, messageID, hRead); }
float AZombieCharacter::TakeDamage(float DamageAmount, FDamageEvent const& DamageEvent, AController* EventInstigator, AActor* DamageCauser) { //Determines the damage amount and type in order to apply it to the zombie const float ActualDamage = Super::TakeDamage(DamageAmount, DamageEvent, EventInstigator, DamageCauser); OurCharacter = Cast<ARoguelikeChar>(DamageCauser); HandleDamage(DamageAmount, DamageEvent); return ActualDamage; }
uint32 Body::ObjectMessageFn(HOBJECT hSender, uint32 messageID, HMESSAGEREAD hRead) { switch(messageID) { case MID_DAMAGE: { DamageStruct damage; damage.InitFromMessage(hRead); HandleDamage(damage); } break; default : break; } return Prop::ObjectMessageFn(hSender, messageID, hRead); }