diff --git a/include/QF/pr_comp.h b/include/QF/pr_comp.h index 161bdf0ac..6a9b40e2c 100644 --- a/include/QF/pr_comp.h +++ b/include/QF/pr_comp.h @@ -200,6 +200,7 @@ typedef enum { OP_STOREB_I, OP_STOREB_P, + OP_ADDRESS_VOID, OP_ADDRESS_F, OP_ADDRESS_V, OP_ADDRESS_S, diff --git a/libs/gamecode/engine/pr_exec.c b/libs/gamecode/engine/pr_exec.c index e30876802..0dfcae742 100644 --- a/libs/gamecode/engine/pr_exec.c +++ b/libs/gamecode/engine/pr_exec.c @@ -627,6 +627,7 @@ PR_ExecuteProgram (progs_t * pr, func_t fnum) ed = PROG_TO_EDICT (pr, OPA.entity_var); OPC.integer_var = &ed->v[OPB.integer_var] - pr->pr_globals; break; + case OP_ADDRESS_VOID: case OP_ADDRESS_F: case OP_ADDRESS_V: case OP_ADDRESS_Q: diff --git a/libs/gamecode/engine/pr_opcode.c b/libs/gamecode/engine/pr_opcode.c index 2ce63a991..2b36a7303 100644 --- a/libs/gamecode/engine/pr_opcode.c +++ b/libs/gamecode/engine/pr_opcode.c @@ -397,6 +397,11 @@ VISIBLE opcode_t pr_opcodes[] = { "%Ga.%Gb, %gc", }, + {"&", "address", OP_ADDRESS_VOID, false, + ev_void, ev_invalid, ev_pointer, + PROG_VERSION, + "%Ga, %gc", + }, {"&", "address.f", OP_ADDRESS_F, false, ev_float, ev_invalid, ev_pointer, PROG_VERSION,