- added PlusZ intrinsic to Vector3 and ToVector intrinsic to numeric values.

These just mirror features of the internal vector classes.
This commit is contained in:
Christoph Oelckers 2022-11-13 07:50:54 +01:00
commit 1047b766df
3 changed files with 146 additions and 1 deletions

View file

@ -285,6 +285,7 @@ enum EFxType
EFX_SwitchStatement,
EFX_CaseStatement,
EFX_VectorValue,
EFX_VectorPlusZ,
EFX_VectorBuiltin,
EFX_TypeCheck,
EFX_DynamicCast,
@ -306,6 +307,7 @@ enum EFxType
EFX_FontCast,
EFX_LocalArrayDeclaration,
EFX_OutVarDereference,
EFX_ToVector,
EFX_COUNT
};
@ -1611,6 +1613,44 @@ public:
ExpEmit Emit(VMFunctionBuilder *build);
};
//==========================================================================
//
// FxPlusZ
//
//==========================================================================
class FxVectorPlusZ : public FxExpression
{
FName Function;
FxExpression* Self;
FxExpression* Z;
public:
FxVectorPlusZ(FxExpression* self, FName name, FxExpression*);
~FxVectorPlusZ();
FxExpression* Resolve(FCompileContext&);
ExpEmit Emit(VMFunctionBuilder* build);
};
//==========================================================================
//
// FxPlusZ
//
//==========================================================================
class FxToVector : public FxExpression
{
FxExpression* Self;
public:
FxToVector(FxExpression* self);
~FxToVector();
FxExpression* Resolve(FCompileContext&);
ExpEmit Emit(VMFunctionBuilder* build);
};
//==========================================================================
//
// FxVectorBuiltin