+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_STOREP_S):
+ if ((prvm_uint_t)OPB->_int - cached_entityfields >= cached_entityfieldsarea_entityfields)
+ {
+ if ((prvm_uint_t)OPB->_int >= cached_entityfieldsarea)
+ {
+ PRE_ERROR();
+ prog->error_cmd("%s attempted to write to an out of bounds edict (%i)", prog->name, (int)OPB->_int);
+ goto cleanup;
+ }
+ if ((prvm_uint_t)OPB->_int < cached_entityfields && !cached_allowworldwrites)
+ {
+ PRE_ERROR();
+ VM_Warning(prog, "assignment to world.%s (field %i) in %s\n", PRVM_GetString(prog, PRVM_ED_FieldAtOfs(prog, OPB->_int)->s_name), (int)OPB->_int, prog->name);
+ }
+ }
+ // refresh the garbage collection on the string - this guards
+ // against a certain sort of repeated migration to earlier
+ // points in the scan that could otherwise result in the string
+ // being freed for being unused
+ if(prvm_garbagecollection_enable.integer)
+ PRVM_GetString(prog, OPA->_int);
+ ptr = (prvm_eval_t *)(cached_edictsfields + OPB->_int);
+ ptr->_int = OPA->_int;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_STOREP_V):