make some sense out of game_flags and player_flags
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
.meta hide_from_patches_menu
|
||||
.meta name="Player flags"
|
||||
.meta description=""
|
||||
|
||||
entry_ptr:
|
||||
reloc0:
|
||||
.offsetof start
|
||||
start:
|
||||
.include WriteCodeBlocksGC
|
||||
|
||||
.label TObjPlayer_for_client_id, 0x801BA59C # [std](uint32_t client_id)
|
||||
.label render_debug_printf, 0x803D4E3C # [std](uint32_t coords, const char* fmt, ...);
|
||||
.label set_debug_text_color, 0x803D4990 # [](uint32_t color_argb);
|
||||
.label hook_call, 0x80228A38
|
||||
.label hook_loc, 0x8000A000
|
||||
|
||||
.data hook_call
|
||||
.data 4
|
||||
.address hook_call
|
||||
b hook_loc
|
||||
|
||||
.data hook_loc
|
||||
.deltaof hook_start, hook_end
|
||||
.address hook_loc
|
||||
hook_start:
|
||||
mflr r0
|
||||
stwu [r1 - 0x20], r1
|
||||
stw [r1 + 0x24], r0
|
||||
stw [r1 + 8], r30
|
||||
li r30, 0
|
||||
|
||||
hook_again:
|
||||
li r6, 0
|
||||
mr r3, r30
|
||||
bl TObjPlayer_for_client_id
|
||||
cmplwi r3, 0
|
||||
beq hook_player_missing
|
||||
lwz r6, [r3 + 0x0334] # player_flags
|
||||
lwz r3, [r13 - 0x5280] # local_client_id
|
||||
cmp r3, r30
|
||||
bne hook_not_local_player
|
||||
lis r3, 0xFFFF
|
||||
ori r3, r3, 0x00FF
|
||||
b hook_player_flags_ok
|
||||
hook_not_local_player:
|
||||
lis r3, 0xFFFF
|
||||
ori r3, r3, 0xFFFF
|
||||
b hook_player_flags_ok
|
||||
hook_player_missing:
|
||||
lis r3, 0xFF00
|
||||
ori r3, r3, 0x00FF
|
||||
hook_player_flags_ok:
|
||||
bl set_debug_text_color
|
||||
|
||||
lis r3, 0x0002
|
||||
ori r3, r3, 0x0018
|
||||
add r3, r3, r30
|
||||
bl hook_get_fmt_string
|
||||
.binary "Player %2d: %08X"00000000
|
||||
hook_get_fmt_string:
|
||||
mflr r4
|
||||
mr r5, r30
|
||||
bl render_debug_printf
|
||||
|
||||
addi r30, r30, 1
|
||||
cmplwi r30, 0x0C
|
||||
blt hook_again
|
||||
|
||||
lwz r30, [r1 + 8]
|
||||
lwz r0, [r1 + 0x24]
|
||||
addi r1, r1, 0x20
|
||||
mtlr r0
|
||||
blr
|
||||
hook_end:
|
||||
|
||||
.data 0
|
||||
.data 0
|
||||
Reference in New Issue
Block a user