Hey,
I've reversed AimAssist_GetTagPos and it seems to be working, but the weird thing is that the stance of the player doesn't affect the tag position - as if I were using entity_t.origin. I've isolated the relevant part of the code, this is the actual GetTagPos call (1.4.382):
Code:
float result[3];
int tagNum = 0x127A; //j_head
DWORD dwCall = GETTAGPOS_ADDR; //0x571790
__asm LEA ESI, [result]
__asm PUSH ESI
__asm MOV EDI, tagNum
__asm MOV ESI, ENTITY_BASE_ADDR //0xA08630
__asm CALL dwCall
__asm ADD ESP, 4
printf("location %.2lf %.2lf %.2lf | %.2lf %.2lf %.2lf ", result[0], result[1], result[2], ((entity_t*)ENTITY_BASE_ADDR)->Origin[0], ((entity_t*)ENTITY_BASE_ADDR)->Origin[1], ((entity_t*)ENTITY_BASE_ADDR)->Origin[2]);
Obviously this only finds j_head for entity 0, I test it joining my empty server so that I'm entity 0. I know there's the function to resolve tag names to numbers, it's not included here because it's not relevant.
So basically, in this way, the position will change if I'm moving around, or even when I fire because of the recoil, but it will not change if I crouch/prone. Since it works for everyone I've asked, I'm not really sure what the issue could be. Thanks for your help.