14.02.2016, 08:48
Dan once made a function to push PAWN references/addresses:
Code:
int AMXAPI amx_PushAddress(AMX *amx, cell *address) { AMX_HEADER *hdr; unsigned char *data; cell xaddr; /* reverse relocate the address */ assert(amx != NULL); hdr = (AMX_HEADER *) amx->base; assert(hdr != NULL); assert(hdr->magic == AMX_MAGIC); data = (amx->data != NULL) ? amx->data : amx->base + (int) hdr->dat; xaddr = (cell) ((unsigned char*) address-data); if ((ucell) xaddr >= (ucell) amx->stp) { return AMX_ERR_MEMACCESS; } return amx_Push(amx,xaddr); }