Decompile ai0075 and ai0076

This commit is contained in:
Ryan Dwyer 2019-11-28 12:27:19 +10:00
parent 299cccfcd5
commit 454306a7e9
2 changed files with 26 additions and 513 deletions

View File

@ -3766,82 +3766,34 @@ bool aiIfObjectiveFailed(void)
/**
* @cmd 0075
*/
GLOBAL_ASM(
glabel ai0075
/* f052780: 3c03800a */ lui $v1,%hi(g_Vars)
/* f052784: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
/* f052788: 8c6e0434 */ lw $t6,0x434($v1)
/* f05278c: 8c6f0438 */ lw $t7,0x438($v1)
/* f052790: 27bdffe0 */ addiu $sp,$sp,-32
/* f052794: afbf0014 */ sw $ra,0x14($sp)
/* f052798: 01cf3821 */ addu $a3,$t6,$t7
/* f05279c: 90e50002 */ lbu $a1,0x2($a3)
/* f0527a0: afa7001c */ sw $a3,0x1c($sp)
/* f0527a4: 0fc1293b */ jal func0f04a4ec
/* f0527a8: 8c640424 */ lw $a0,0x424($v1)
/* f0527ac: 3c03800a */ lui $v1,%hi(g_Vars)
/* f0527b0: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
/* f0527b4: 10400009 */ beqz $v0,.L0f0527dc
/* f0527b8: 8fa7001c */ lw $a3,0x1c($sp)
/* f0527bc: 8c640434 */ lw $a0,0x434($v1)
/* f0527c0: 8c650438 */ lw $a1,0x438($v1)
/* f0527c4: 0fc13583 */ jal chraiGoToLabel
/* f0527c8: 90e60003 */ lbu $a2,0x3($a3)
/* f0527cc: 3c03800a */ lui $v1,%hi(g_Vars)
/* f0527d0: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
/* f0527d4: 10000004 */ beqz $zero,.L0f0527e8
/* f0527d8: ac620438 */ sw $v0,0x438($v1)
.L0f0527dc:
/* f0527dc: 8c780438 */ lw $t8,0x438($v1)
/* f0527e0: 27190004 */ addiu $t9,$t8,0x4
/* f0527e4: ac790438 */ sw $t9,0x438($v1)
.L0f0527e8:
/* f0527e8: 8fbf0014 */ lw $ra,0x14($sp)
/* f0527ec: 27bd0020 */ addiu $sp,$sp,0x20
/* f0527f0: 00001025 */ or $v0,$zero,$zero
/* f0527f4: 03e00008 */ jr $ra
/* f0527f8: 00000000 */ sll $zero,$zero,0x0
);
bool ai0075(void)
{
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
if (func0f04a4ec(g_Vars.chrdata, cmd[2])) {
g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[3]);
} else {
g_Vars.aioffset += 4;
}
return false;
}
/**
* @cmd 0076
*/
GLOBAL_ASM(
glabel ai0076
/* f0527fc: 3c03800a */ lui $v1,%hi(g_Vars)
/* f052800: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
/* f052804: 8c6e0434 */ lw $t6,0x434($v1)
/* f052808: 8c6f0438 */ lw $t7,0x438($v1)
/* f05280c: 27bdffe0 */ addiu $sp,$sp,-32
/* f052810: afbf0014 */ sw $ra,0x14($sp)
/* f052814: 01cf3821 */ addu $a3,$t6,$t7
/* f052818: 90e50002 */ lbu $a1,0x2($a3)
/* f05281c: afa7001c */ sw $a3,0x1c($sp)
/* f052820: 0fc1299d */ jal func0f04a674
/* f052824: 8c640424 */ lw $a0,0x424($v1)
/* f052828: 3c03800a */ lui $v1,%hi(g_Vars)
/* f05282c: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
/* f052830: 10400009 */ beqz $v0,.L0f052858
/* f052834: 8fa7001c */ lw $a3,0x1c($sp)
/* f052838: 8c640434 */ lw $a0,0x434($v1)
/* f05283c: 8c650438 */ lw $a1,0x438($v1)
/* f052840: 0fc13583 */ jal chraiGoToLabel
/* f052844: 90e60003 */ lbu $a2,0x3($a3)
/* f052848: 3c03800a */ lui $v1,%hi(g_Vars)
/* f05284c: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
/* f052850: 10000004 */ beqz $zero,.L0f052864
/* f052854: ac620438 */ sw $v0,0x438($v1)
.L0f052858:
/* f052858: 8c780438 */ lw $t8,0x438($v1)
/* f05285c: 27190004 */ addiu $t9,$t8,0x4
/* f052860: ac790438 */ sw $t9,0x438($v1)
.L0f052864:
/* f052864: 8fbf0014 */ lw $ra,0x14($sp)
/* f052868: 27bd0020 */ addiu $sp,$sp,0x20
/* f05286c: 00001025 */ or $v0,$zero,$zero
/* f052870: 03e00008 */ jr $ra
/* f052874: 00000000 */ sll $zero,$zero,0x0
);
bool ai0076(void)
{
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
if (func0f04a674(g_Vars.chrdata, cmd[2])) {
g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[3]);
} else {
g_Vars.aioffset += 4;
}
return false;
}
/**
* @cmd 007d

View File

@ -3,445 +3,6 @@
#include <ultra64.h>
#include "types.h"
bool ai0007(void);
bool ai000b(void);
bool ai000d(void);
bool ai000e(void);
bool ai0019(void);
bool ai001a(void);
bool ai001c(void);
bool ai0027(void);
bool ai002a(void);
bool ai002b(void);
bool ai002c(void);
bool ai002d(void);
bool ai002e(void);
bool ai003c(void);
bool ai003d(void);
bool ai0040(void);
bool ai0041(void);
bool ai0043(void);
bool ai0045(void);
bool ai0047(void);
bool ai0048(void);
bool ai0049(void);
bool ai004a(void);
bool ai004b(void);
bool ai004c(void);
bool ai004d(void);
bool ai004e(void);
bool ai004f(void);
bool ai0050(void);
bool ai0051(void);
bool ai0058(void);
bool ai005b(void);
bool ai0060(void);
bool ai0061(void);
bool ai0063(void);
bool ai0065(void);
bool ai0066(void);
bool ai0067(void);
bool ai0068(void);
bool ai0069(void);
bool ai006a(void);
bool ai006b(void);
bool ai0070(void);
bool ai0071(void);
bool ai0072(void);
bool ai0073(void);
bool ai0074(void);
bool ai0075(void);
bool ai0076(void);
bool ai007d(void);
bool ai007e(void);
bool ai007f(void);
bool ai0080(void);
bool ai0081(void);
bool ai0082(void);
bool ai0083(void);
bool ai0091(void);
bool ai0096(void);
bool ai0097(void);
bool ai009d(void);
bool ai00b5(void);
bool ai00bc(void);
bool ai00bd(void);
bool ai00c6(void);
bool ai00c7(void);
bool ai00c8(void);
bool ai00c9(void);
bool ai00ca(void);
bool ai00cd(void);
bool ai00ce(void);
bool ai00cf(void);
bool ai00d0(void);
bool ai00d1(void);
bool ai00d2(void);
bool ai00d4(void);
bool ai00d5(void);
bool ai00d6(void);
bool ai00d7(void);
bool ai00d8(void);
bool ai00d9(void);
bool ai00db(void);
bool ai00dc(void);
bool ai00dd(void);
bool ai00de(void);
bool ai00df(void);
bool ai00e2(void);
bool ai00e3(void);
bool ai00e4(void);
bool ai00e5(void);
bool ai00e9(void);
bool ai00ea(void);
bool ai00ee(void);
bool ai00f0(void);
bool ai00f1(void);
bool ai00f2(void);
bool ai00f4(void);
bool ai00f5(void);
bool ai00f6(void);
bool ai00f8(void);
bool ai00fd(void);
bool ai00fe(void);
bool ai00ff(void);
bool ai0100(void);
bool ai0101(void);
bool ai0102(void);
bool ai0103(void);
bool ai0104(void);
bool ai0105(void);
bool ai0106(void);
bool ai0108(void);
bool ai0109(void);
bool ai010a(void);
bool ai010c(void);
bool ai010d(void);
bool ai010e(void);
bool ai010f(void);
bool ai0110(void);
bool ai0111(void);
bool ai0112(void);
bool ai011e(void);
bool ai011f(void);
bool ai0120(void);
bool ai0121(void);
bool ai0122(void);
bool ai0123(void);
bool ai0124(void);
bool ai0125(void);
bool ai0126(void);
bool ai0127(void);
bool ai0128(void);
bool ai0129(void);
bool ai012a(void);
bool ai012b(void);
bool ai012c(void);
bool ai012f(void);
bool ai0130(void);
bool ai0131(void);
bool ai0133(void);
bool ai0134(void);
bool ai0136(void);
bool ai0137(void);
bool ai0139(void);
bool ai013a(void);
bool ai013c(void);
bool ai013d(void);
bool ai013e(void);
bool ai013f(void);
bool ai0140(void);
bool ai0142(void);
bool ai0143(void);
bool ai0144(void);
bool ai0147(void);
bool ai0149(void);
bool ai014a(void);
bool ai0152(void);
bool ai0168(void);
bool ai016b(void);
bool ai016c(void);
bool ai016e(void);
bool ai0170(void);
bool ai0171(void);
bool ai0172(void);
bool ai0175(void);
bool ai0177(void);
bool ai0178(void);
bool ai0179(void);
bool ai017a(void);
bool ai017c(void);
bool ai0181(void);
bool ai0183(void);
bool ai0184(void);
bool ai0187(void);
bool ai0189(void);
bool ai018a(void);
bool ai018e(void);
bool ai018f(void);
bool ai01a2(void);
bool ai01a3(void);
bool ai01a5(void);
bool ai01a6(void);
bool ai01aa(void);
bool ai01ae(void);
bool ai01b1(void);
bool ai01b2(void);
bool ai01b3(void);
bool ai01b4(void);
bool ai01b5(void);
bool ai01b7(void);
bool ai01b9(void);
bool ai01ba(void);
bool ai01bb(void);
bool ai01bc(void);
bool ai01bd(void);
bool ai01bf(void);
bool ai01c0(void);
bool ai01c5(void);
bool ai01c8(void);
bool ai01c9(void);
bool ai01ca(void);
bool ai01cc(void);
bool ai01cd(void);
bool ai01ce(void);
bool ai01cf(void);
bool ai01d0(void);
bool ai01d3(void);
bool ai01d4(void);
bool ai01d6(void);
bool ai01d7(void);
bool ai01d8(void);
bool ai01d9(void);
bool ai01da(void);
bool ai01dd(void);
bool ai01de(void);
bool ai01e0(void);
bool aiActivateAlarm(void);
bool aiActivateLift(void);
bool aiAddAlertness(void);
bool aiAddMorale(void);
bool aiAimAndFire1(void);
bool aiAimAndFire2(void);
bool aiAudioMuteChannel(void);
bool aiAudioPlayMusic(void);
bool aiAudioPlayXMusic(void);
bool aiAudioRestartDefaultMusic(void);
bool aiAudioRestartMusic(void);
bool aiAudioRestartSfx(void);
bool aiAudioSetMusicTrack(void);
bool aiAudioSetSfxTrack(void);
bool aiAudioStopChannel(void);
bool aiChrAddAlertness(void);
bool aiChrAddMorale(void);
bool aiChrAdjustMotionBlur(void);
bool aiChrCopyPadPreset(void);
bool aiChrCopyProperties(void);
bool aiChrDrawWeapon(void);
bool aiChrDrawWeaponInCutscene(void);
bool aiChrEmitSparks(void);
bool aiChrExplosions(void);
bool aiChrGrabObject(void);
bool aiChrKill(void);
bool aiChrSetChrflag(void);
bool aiChrSetFlag(void);
bool aiChrSetHiddenFlag(void);
bool aiChrSetInvincible(void);
bool aiChrSetListening(void);
bool aiChrSetPadPreset(void);
bool aiChrSetTeam(void);
bool aiChrToggleProp(void);
bool aiChrUnsetChrflag(void);
bool aiChrUnsetFlag(void);
bool aiChrUnsetHiddenFlag(void);
bool aiCloseDoor(void);
bool aiConfigureRain(void);
bool aiConfigureSnow(void);
bool aiConsiderGrenadeThrow(void);
bool aiDeactivateAlarm(void);
bool aiEepromSet(void);
bool aiEepromUnset(void);
bool aiEndList(void);
bool aiFaceEntity(void);
bool aiFadeOut(void);
bool aiFadeScreen(void);
bool aiGoToFirst(void);
bool aiGoToNext(void);
bool aiGoToPadPreset(void);
bool aiGrantControl(void);
bool aiHideChr(void);
bool aiHideCountdownTimer(void);
bool aiHideObj(void);
bool aiHopSideways(void);
bool aiHovercopterFireRocket(void);
bool aiIfAction(void);
bool aiIfAlarmActive(void);
bool aiIfAlarmInactive(void);
bool aiIfAlertness(void);
bool aiIfAlertnessLessThanRandom(void);
bool aiIfAllObjectivesComplete(void);
bool aiIfChannelIdle(void);
bool aiIfChrAlarmActivate(void);
bool aiIfChrAlertnessLessThan(void);
bool aiIfChrAmmoQuantityLessThan(void);
bool aiIfChrDeathAnimationFinished(void);
bool aiIfChrDistanceToPadGreaterThan(void);
bool aiIfChrDistanceToPadLessThan(void);
bool aiIfChrDying(void);
bool aiIfChrHasChrflag(void);
bool aiIfChrHasFlag(void);
bool aiIfChrHasGun(void);
bool aiIfChrHasHiddenFlag(void);
bool aiIfChrHasObject(void);
bool aiIfChrInjured(void);
bool aiIfChrPropsoundcountZero(void);
bool aiIfChrSameFloorDistanceToPadLessThan(void);
bool aiIfChrUnloaded(void);
bool aiIfChrWeaponEquipped(void);
bool aiIfCountdownTimerGreaterThan(void);
bool aiIfCountdownTimerLessThan(void);
bool aiIfCountdownTimerStopped(void);
bool aiIfCutsceneButtonPressed(void);
bool aiIfDifficultyGreaterThan(void);
bool aiIfDifficultyLessThan(void);
bool aiIfDistanceFromTargetToPadGreaterThan(void);
bool aiIfDistanceFromTargetToPadLessThan(void);
bool aiIfDistanceToChrGreaterThan(void);
bool aiIfDistanceToChrLessThan(void);
bool aiIfDistanceToTargetGreaterThan(void);
bool aiIfDistanceToTargetLessThan(void);
bool aiIfDoorState(void);
bool aiIfEepromSet(void);
bool aiIfEepromUnset(void);
bool aiIfHasChrflag(void);
bool aiIfHasOrders(void);
bool aiIfIdle(void);
bool aiIfInCutscene(void);
bool aiIfInLoadedRoom(void);
bool aiIfKillCountGreaterThan(void);
bool aiIfLiftStationary(void);
bool aiIfMoraleLessThan(void);
bool aiIfMoraleLessThanRandom(void);
bool aiIfNaturalAnim(void);
bool aiIfNeverBeenOnScreen(void);
bool aiIfNotListening(void);
bool aiIfNumKnockedOutChrs(void);
bool aiIfObjHasFlag(void);
bool aiIfObjHasFlag2(void);
bool aiIfObjHasFlag3(void);
bool aiIfObjHealthLessThan(void);
bool aiIfObjInRoom(void);
bool aiIfObjectHealthy(void);
bool aiIfObjectIsDoor(void);
bool aiIfPathStarted(void);
bool aiIfPlayerInSight(void);
bool aiIfPresetsTargetIsNotMyTarget(void);
bool aiIfRandomGreaterThan(void);
bool aiIfRandomLessThan(void);
bool aiIfSawDeath(void);
bool aiIfSeesPlayer(void);
bool aiIfShotAtCloseRange(void);
bool aiIfSoundTimer(void);
bool aiIfStageFlagEq(void);
bool aiIfStageIdGreaterThan(void);
bool aiIfStageIdLessThan(void);
bool aiIfStopped(void);
bool aiIfTargetInRoom(void);
bool aiIfTimerGreaterThanRandom(void);
bool aiIfTimerStopped(void);
bool aiIfUptimeGreaterThan(void);
bool aiIfUptimeLessThan(void);
bool aiIfWeaponThrown(void);
bool aiIfWeaponThrownOnObject(void);
bool aiIfY(void);
bool aiJogToChr(void);
bool aiJogToPad(void);
bool aiKneel(void);
bool aiKneelAndFire(void);
bool aiLabel(void);
bool aiMessage(void);
bool aiOpenDoor(void);
bool aiPauseTimer(void);
bool aiPunchOrKick(void);
bool aiRandom(void);
bool aiRebuildSquadrons(void);
bool aiRebuildTeams(void);
bool aiReleaseObject(void);
bool aiRemoveChr(void);
bool aiRemoveWeaponFromInventory(void);
bool aiResetTimer(void);
bool aiRestartTimer(void);
bool aiResumeTimer(void);
bool aiReturn(void);
bool aiRevokeControl(void);
bool aiRollAndFire(void);
bool aiRunAndFire(void);
bool aiRunSideways(void);
bool aiRunToChr(void);
bool aiRunToPad(void);
bool aiSetAccuracy(void);
bool aiSetAction(void);
bool aiSetAlertness(void);
bool aiSetAutogunType(void);
bool aiSetChrNum(void);
bool aiSetChrPreset(void);
bool aiSetChrSpecialDeathAnimation(void);
bool aiSetChrTarget(void);
bool aiSetChrflag(void);
bool aiSetCountdownTimerValue(void);
bool aiSetDarkRoomList(void);
bool aiSetDodgeRating(void);
bool aiSetDoorClosed(void);
bool aiSetFlag(void);
bool aiSetGrenadeProbability(void);
bool aiSetHearDistance(void);
bool aiSetList(void);
bool aiSetMorale(void);
bool aiSetObjFlag(void);
bool aiSetObjFlag2(void);
bool aiSetObjFlag3(void);
bool aiSetObjHealth(void);
bool aiSetObjImage(void);
bool aiSetObjPartVisible(void);
bool aiSetPadPreset(void);
bool aiSetPath(void);
bool aiSetPlayerDeadList(void);
bool aiSetPunchDodgeList(void);
bool aiSetReactionSpeed(void);
bool aiSetRecoverySpeed(void);
bool aiSetReturnList(void);
bool aiSetRoomToSearch(void);
bool aiSetShootingAtMeList(void);
bool aiSetSquadron(void);
bool aiSetStageFlag(void);
bool aiSetTintedGlassEnabled(void);
bool aiSetUnarmedDodgeRating(void);
bool aiSetViewDistance(void);
bool aiShowChr(void);
bool aiShowCountdownTimer(void);
bool aiShowCutsceneChrs(void);
bool aiShowObj(void);
bool aiShowText(void);
bool aiShowText2(void);
bool aiShuffleInvestigationTerminals(void);
bool aiStartCountdownTimer(void);
bool aiStartPath(void);
bool aiStepSideways(void);
bool aiStop(void);
bool aiStopCountdownTimer(void);
bool aiSubtractAlertness(void);
bool aiSubtractMorale(void);
bool aiSurrender(void);
bool aiUnsetChrflag(void);
bool aiUnsetFlag(void);
bool aiUnsetObjFlag(void);
bool aiUnsetObjFlag2(void);
bool aiUnsetObjFlag3(void);
bool aiUnsetStageFlag(void);
bool aiWalkAndFire(void);
bool aiWalkToChr(void);
bool aiWalkToPad(void);
bool aiYield(void);
struct chrdata *chrFindById(struct chrdata *data, u32 chrnum);
struct chrdata *chrFindByLiteralId(u8 chrnum);
float chrGetDistanceFromTargetToPad(struct chrdata *chr, s32 pad_id);
@ -811,8 +372,8 @@ u32 func0f04a1ac(struct chrdata *chr, u32 arg1);
bool func0f04a2b4(struct chrdata *chr);
u32 func0f04a2d4(void);
u32 func0f04a37c(void);
u32 func0f04a4ec(void);
u32 func0f04a674(void);
u32 func0f04a4ec(struct chrdata *chr, s32 arg1);
u32 func0f04a674(struct chrdata *chr, s32 arg1);
bool func0f04a76c(struct chrdata *chr, float distance);
bool func0f04a79c(u8 chrnum, struct chrdata *chr, float distance);
u32 func0f04a7dc(void);