mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-05-05 07:21:24 +00:00
Add vec = quat * vec to the progs engine.
This commit is contained in:
parent
0a22a98b60
commit
1a0ccf6a92
3 changed files with 9 additions and 1 deletions
|
@ -270,6 +270,7 @@ typedef enum {
|
||||||
OP_MUL_Q,
|
OP_MUL_Q,
|
||||||
OP_MUL_QF,
|
OP_MUL_QF,
|
||||||
OP_MUL_FQ,
|
OP_MUL_FQ,
|
||||||
|
OP_MUL_QV,
|
||||||
OP_CONJ_Q,
|
OP_CONJ_Q,
|
||||||
OP_NOT_Q,
|
OP_NOT_Q,
|
||||||
OP_EQ_Q,
|
OP_EQ_Q,
|
||||||
|
@ -362,7 +363,7 @@ typedef struct pr_va_list_s {
|
||||||
|(((0x##b) & 0xfff) << 12) \
|
|(((0x##b) & 0xfff) << 12) \
|
||||||
|(((0x##c) & 0xfff) << 0) )
|
|(((0x##c) & 0xfff) << 0) )
|
||||||
#define PROG_ID_VERSION 6
|
#define PROG_ID_VERSION 6
|
||||||
#define PROG_VERSION PROG_VERSION_ENCODE(0,fff,008)
|
#define PROG_VERSION PROG_VERSION_ENCODE(0,fff,009)
|
||||||
|
|
||||||
typedef struct dprograms_s {
|
typedef struct dprograms_s {
|
||||||
pr_uint_t version;
|
pr_uint_t version;
|
||||||
|
|
|
@ -431,6 +431,9 @@ PR_ExecuteProgram (progs_t * pr, func_t fnum)
|
||||||
case OP_MUL_Q:
|
case OP_MUL_Q:
|
||||||
QuatMult (OPA.quat_var, OPB.quat_var, OPC.quat_var);
|
QuatMult (OPA.quat_var, OPB.quat_var, OPC.quat_var);
|
||||||
break;
|
break;
|
||||||
|
case OP_MUL_QV:
|
||||||
|
QuatMultVec (OPA.quat_var, OPB.vector_var, OPC.vector_var);
|
||||||
|
break;
|
||||||
case OP_MUL_FQ:
|
case OP_MUL_FQ:
|
||||||
QuatScale (OPB.quat_var, OPA.float_var, OPC.quat_var);
|
QuatScale (OPB.quat_var, OPA.float_var, OPC.quat_var);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -128,6 +128,10 @@ VISIBLE opcode_t pr_opcodes[] = {
|
||||||
ev_quat, ev_float, ev_quat,
|
ev_quat, ev_float, ev_quat,
|
||||||
PROG_VERSION,
|
PROG_VERSION,
|
||||||
},
|
},
|
||||||
|
{"*", "mul.qv", OP_MUL_QV, false,
|
||||||
|
ev_quat, ev_vector, ev_vector,
|
||||||
|
PROG_VERSION,
|
||||||
|
},
|
||||||
|
|
||||||
{"~", "conj.q", OP_CONJ_Q, false,
|
{"~", "conj.q", OP_CONJ_Q, false,
|
||||||
ev_quat, ev_invalid, ev_quat,
|
ev_quat, ev_invalid, ev_quat,
|
||||||
|
|
Loading…
Reference in a new issue