diff --git a/src/game/game_197600.c b/src/game/game_197600.c index 65f9b5c87..9a4ff8dc9 100644 --- a/src/game/game_197600.c +++ b/src/game/game_197600.c @@ -2557,6 +2557,65 @@ glabel func0f19978c /* f199960: 27bd0038 */ addiu $sp,$sp,0x38 ); +// Mismatch: The way the loop iterator is handled is different. +// Goal tracks the iterator as increments of 0x14 (len of thing), while the +// below tracks it as i and calculates the offset when calculating thing. +//void func0f19978c(struct chrdata *chr, s32 weaponnum, u8 arg2) +//{ +// struct aibot014 *thing; +// s32 i; +// +// if (chr == NULL) { +// return; +// } +// +// if (chr->aibot == NULL) { +// return; +// } +// +// for (i = 0; i < chr->aibot->unk018; i++) { +// thing = &chr->aibot->unk014[i]; +// +// if (thing->unk00 == -1) { +// i = chr->aibot->unk018; +// } else { +// if ((thing->unk00 == 1 || thing->unk00 == 3) +// && (arg2 || weaponnum == thing->weaponnum)) { +// if (weaponHasFlag(thing->weaponnum, WEAPONFLAG_08000000) == 0 +// || (g_Vars.normmplayerisrunning +// && g_MpSetup.scenario == MPSCENARIO_HACKERCENTRAL +// && thing->weaponnum == WEAPON_DATAUPLINK)) { +// s32 modelnum = weaponGetModel(thing->weaponnum); +// +// if (modelnum > 0) { +// struct prop *prop = func0f08b8e8(chr, modelnum, thing->weaponnum, 0x20000000, 0, 0); +// +// if (prop) { +// propobjSetDropped(prop, DROPREASON_1); +// func0f08307c(prop, true); +// +// if (thing->weaponnum == WEAPON_BRIEFCASE2) { +// func0f187288(chr, prop); +// } +// } +// } +// } +// } +// } +// } +// +// if ((arg2 && weaponnum >= WEAPON_FALCON2) +// || (!arg2 && weaponnum == chr->aibot->weaponnum)) { +// func0f1994b0(chr, true, false); +// } +// +// chr->hidden |= CHRHFLAG_00000001; +// +// if (!arg2) { +// func0f197d94(chr, weaponnum); +// } +//} + void func0f199964(struct chrdata *chr, u32 weaponnum) { func0f19978c(chr, weaponnum, true); diff --git a/src/include/game/game_179060.h b/src/include/game/game_179060.h index 02ff9b42e..d05189de8 100644 --- a/src/include/game/game_179060.h +++ b/src/include/game/game_179060.h @@ -112,7 +112,7 @@ u32 func0f186508(void); void func0f1866b8(s32 playernum, char *message); u32 func0f186780(void); u32 chrGiveBriefcase(struct chrdata *chr, struct prop *prop); -u32 func0f187288(void); +void func0f187288(struct chrdata *chr, struct prop *prop); bool chrGiveUplink(struct chrdata *chr, struct prop *prop); void scenarioHtmActivateUplink(struct chrdata *chr, struct prop *prop); s32 menuhandlerMpDropOut(u32 operation, struct menuitem *item, union handlerdata *data); diff --git a/src/include/game/game_197600.h b/src/include/game/game_197600.h index efed43203..0f5618839 100644 --- a/src/include/game/game_197600.h +++ b/src/include/game/game_197600.h @@ -8,7 +8,7 @@ void mpAibotApplyCommand(struct chrdata *chr, u32 command); void func0f197c00(struct chrdata *chr); struct aibot014 *func0f197c70(struct chrdata *chr); struct invitem *aibotGetInvItem(struct chrdata *chr, u32 weaponnum); -u32 func0f197d94(void); +void func0f197d94(struct chrdata *chr, s32 weaponnum); u32 aibotGetInvItemType(struct chrdata *chr, u32 weaponnum); bool func0f197e8c(struct chrdata *chr, u32 weaponnum); void aibotGiveDualWeapon(struct chrdata *chr, u32 weaponnum); @@ -23,8 +23,8 @@ u32 func0f198df8(void); u32 func0f198e38(void); u32 func0f198e78(void); u32 func0f198eec(void); -u32 func0f1994b0(void); -void func0f19978c(struct chrdata *chr, u32 weaponnum, bool arg2); +void func0f1994b0(struct chrdata *chr, bool arg1, bool arg2); +void func0f19978c(struct chrdata *chr, s32 weaponnum, u8 arg2); void func0f199964(struct chrdata *chr, u32 weaponnum); void func0f199984(struct chrdata *chr, u32 weaponnum);