- fixed damage handling in A_BetaSkullAttack. For unknown reasons this completely bypassed the normal damage function semantics and even multiplied that with a random value.

- made some tests about calling script code from native functions.

 * scriptified A_SkullAttack to have something to test
 * changed the A_SkullAttack call in A_PainShootSkull.
 * use a macro to declare the function pointer. Using local static variable init directly results in hideous code for the need of being thread-safe (which, even if the engine was made multithreaded is not needed here.)
 * Importsnt node here: Apparently passing an actor pointer to the VMValue constructor results in the void * version being called, not the DObject * version.
This commit is contained in:
Christoph Oelckers 2016-11-06 11:36:12 +01:00
commit 062574b726
12 changed files with 97 additions and 98 deletions

View file

@ -68,7 +68,7 @@ cycle_t ActionCycles;
void FState::SetAction(const char *name)
{
ActionFunc = FindGlobalActionFunction(name)->Variants[0].Implementation;
ActionFunc = FindVMFunction(RUNTIME_CLASS(AActor), name);
}
bool FState::CallAction(AActor *self, AActor *stateowner, FStateParamInfo *info, FState **stateret)