diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index fd9b78636..4cce2caf4 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -12798,7 +12798,7 @@ bool aiMiniSkedarTryPounce(void) * @cmd 018f */ GLOBAL_ASM( -glabel ai018f +glabel aiIfObjectDistanceToPadLessThan /* f05d5e8: 27bdff68 */ addiu $sp,$sp,-152 /* f05d5ec: afb00018 */ sw $s0,0x18($sp) /* f05d5f0: 3c10800a */ lui $s0,%hi(g_Vars) @@ -12913,6 +12913,45 @@ glabel ai018f /* f05d798: 00001025 */ or $v0,$zero,$zero ); +// Mismatch due to different registers +//bool aiIfObjectDistanceToPadLessThan(void) +//{ +// u8 *cmd = g_Vars.ailist + g_Vars.aioffset; +// float distance = (float)(cmd[4] | (cmd[3] << 8)) * 10; +// float xdiff; +// float ydiff; +// float zdiff; +// s32 pad_id = (cmd[6] | (cmd[5] << 8)) & 0xffff; +// struct defaultobj *obj = objFindByTagId(cmd[2]); +// struct pad pad; +// bool pass = false; +// +// if (obj && obj->pos) { +// pad_id = padResolve(g_Vars.chrdata, pad_id); +// +// if (pad_id >= 0) { +// padUnpack(pad_id, 2, &pad); +// xdiff = obj->pos->coord.x - pad.coord.x; +// ydiff = obj->pos->coord.y - pad.coord.y; +// zdiff = obj->pos->coord.z - pad.coord.z; +// +// if (ydiff < 200 && ydiff > -200 && +// xdiff < distance && xdiff > -distance && +// zdiff < distance && zdiff > -distance) { +// pass = true; +// } +// } +// } +// +// if (pass) { +// g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[7]); +// } else { +// g_Vars.aioffset += 8; +// } +// +// return false; +//} + /** * @cmd 0190 */ diff --git a/src/include/game/chr/chraicommands.h b/src/include/game/chr/chraicommands.h index 035c2485e..25280f597 100644 --- a/src/include/game/chr/chraicommands.h +++ b/src/include/game/chr/chraicommands.h @@ -376,7 +376,7 @@ /*0x018c*/ bool aiChrToggleProp(void); /*0x018d*/ bool aiActivateLift(void); /*0x018e*/ bool aiMiniSkedarTryPounce(void); -/*0x018f*/ bool ai018f(void); +/*0x018f*/ bool aiIfObjectDistanceToPadLessThan(void); /*0x0190*/ bool aiEepromSet(void); /*0x0191*/ bool aiEepromUnset(void); /*0x0192*/ bool aiIfEepromSet(void); diff --git a/src/setup/setup_000000.c b/src/setup/setup_000000.c index 33939c172..9bc71c9e7 100644 --- a/src/setup/setup_000000.c +++ b/src/setup/setup_000000.c @@ -14531,7 +14531,7 @@ bool (*g_CommandPointers[])(void) = { /*0x018c*/ aiChrToggleProp, /*0x018d*/ aiActivateLift, /*0x018e*/ aiMiniSkedarTryPounce, - /*0x018f*/ ai018f, + /*0x018f*/ aiIfObjectDistanceToPadLessThan, /*0x0190*/ aiEepromSet, /*0x0191*/ aiEepromUnset, /*0x0192*/ aiIfEepromSet,