Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- redead death
- 1E3E70:1E41CC AI 0090: 5 07 1 FFFE ( 3498.0 -543.0 721.0)
- 1E79C0:1E7D1C AI 0090: 5 07 1 FFFE ( 3212.0 -543.0 726.0)
- 801E50E0:1E7990 AF 0090: 0000 02 FILE: 00CD71B0:00CD9A60
- 801E3E70 - gibdo that is jumpslashed - gibdoA
- 801E79C0 - gibdo that dies on its own - gibdoB
- health is at gibdo+0xAF
- gibdoB health: 801E7A6F
- when glitch is performed, health is set to 0
- set to 0 by function 80028390:
- from z64ovl:
- Subtracts damage amount (colliding damage source) from *actor's health
- actor_update_health(z64_actor_t *actor);
- call to actor_update_health at 801E6F8C (ovl+0x1EAC)
- which is a part of function 801E6E24 which runs every frame (prob state update)
- this is contained within a big branch at 801E6EA0
- beqz t0
- t0 comes from:
- 801E6E94 lbu v0, 0x321(s0)
- 801E6E9C andi t0, 0x0002
- when idle, gibdo+0x321 is 0x09
- 00001001
- & 00000010
- ------------
- branch will be taken (update health is skipped) if the second bit of this variable is not set
- when idle this variable is set to 0x09
- when slashed this variable is set to 0x0B
- when slashed and killed this variable is also set to 0x0B
- so what is gibdo+0x321
- written to by 80049FC0 of function 80049FB0
- sb t7, a1+0x11
- a1 is gibdo+0x310 (why is this not the gibdo pointer?)
- value written to gibdo+0x321 is (gibdo+0x321 & 0xFF7D)
- idle, +0x321 is 0x09
- 0000000000001001
- & 1111111101111101
- --------------------
- which will write 0x09 again
- =======================================================================
- call to write this variable to 9 again is at 8004ADA8
- 8004AD94 called by 8004BF9C
- 8004BF40 called by 801E71C0 in 801E6FF0 (gibdoB)
- /**
- * //Subscribe to collision pool 2, non-complex poly types | //Called directly by actors
- * TODO Look into actors that use this function, there are conflicts between these notes and the function prototype, define a type for collision and figure out the return type
- * A0 = Global Context | A1 = 801DA300 //collision body groups | A2 = Collision Body Ptr | V0 = 0 or -1 based on 801DA302 lowest bit?
- */
- extern void actor_collision_check_set_ac(z64_global_t *global, void* simple_body_groups, z64_collider_cylinder_main_t *collision);
- ----
- call to write this value to 0x0B is at 8004CD80 in function 8004CCC8
- call at 8004E7F8, part of 8004E660
- call at 8004F7C4, part of 8004F6E4
- call at 8004F890, part of 8004F80C
- call at 8009BD28, part of 8009AF1C (fucking massive function)
- call at 8009CAE8, part of 8009CAC8
- call at 804000D8, part of 804000A4
- call at 800A0BF8, part of 800A0BD0
- call at 800A16B4, part of 800A1688
- nvm this is fucking dumb lmao
- ----
Advertisement
Add Comment
Please, Sign In to add comment