From 470f6681ee3485c8e4ca77672576a18f3b727b13 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Tue, 23 Feb 2021 17:59:31 +1000 Subject: [PATCH] Decompile chrHasGround --- src/game/game_190260.c | 29 ++++++++++------------------- src/game/game_197600.c | 2 +- src/include/game/game_190260.h | 2 +- 3 files changed, 12 insertions(+), 21 deletions(-) diff --git a/src/game/game_190260.c b/src/game/game_190260.c index b77bfe877..4936c9402 100644 --- a/src/game/game_190260.c +++ b/src/game/game_190260.c @@ -2740,25 +2740,16 @@ glabel func0f19294c /* f192a44: 00000000 */ nop ); -GLOBAL_ASM( -glabel func0f192a48 -.late_rodata -glabel var7f1b8f38 -.word 0xc69c4000 -.text -/* f192a48: 3c017f1c */ lui $at,%hi(var7f1b8f38) -/* f192a4c: c4268f38 */ lwc1 $f6,%lo(var7f1b8f38)($at) -/* f192a50: c48400b8 */ lwc1 $f4,0xb8($a0) -/* f192a54: 00001025 */ or $v0,$zero,$zero -/* f192a58: 4604303e */ c.le.s $f6,$f4 -/* f192a5c: 00000000 */ nop -/* f192a60: 45000002 */ bc1f .L0f192a6c -/* f192a64: 00000000 */ nop -/* f192a68: 24020001 */ addiu $v0,$zero,0x1 -.L0f192a6c: -/* f192a6c: 03e00008 */ jr $ra -/* f192a70: 00000000 */ nop -); +/** + * Return true if there's ground between the chr and the death barrier. + * + * The death barrier is at -30000. + * It's assumed that no walkable ground exists below -20000. + */ +bool chrHasGround(struct chrdata *chr) +{ + return chr->ground >= -20000; +} GLOBAL_ASM( glabel func0f192a74 diff --git a/src/game/game_197600.c b/src/game/game_197600.c index e7dc7f47a..dcfcaae6c 100644 --- a/src/game/game_197600.c +++ b/src/game/game_197600.c @@ -459,7 +459,7 @@ void func0f197600(struct chrdata *chr) return; } - if (!func0f192a48(prop->chr)) { + if (!chrHasGround(prop->chr)) { return; } diff --git a/src/include/game/game_190260.h b/src/include/game/game_190260.h index 65c27dbbb..d6fe87c8d 100644 --- a/src/include/game/game_190260.h +++ b/src/include/game/game_190260.h @@ -21,7 +21,7 @@ u32 func0f1921f8(void); void func0f192628(struct chrdata *chr, struct prop *arg1); u32 func0f19277c(void); bool func0f19294c(struct chrdata *chr, struct chrdata *chr2); -bool func0f192a48(struct chrdata *chr); +bool chrHasGround(struct chrdata *chr); u32 func0f192a74(void); u32 func0f192d64(void); u32 func0f192dc0(void);