Decompile func0f08b880
This commit is contained in:
parent
c9a2517fae
commit
7598883bbb
|
|
@ -196,7 +196,7 @@ void setupInit(void)
|
|||
if (var8009ce40 == 0) {
|
||||
var8009ce58 = NULL;
|
||||
} else {
|
||||
var8009ce58 = malloc(ALIGN16(var8009ce40 * sizeof(struct var8009ce58)), MEMPOOL_STAGE);
|
||||
var8009ce58 = malloc(ALIGN16(var8009ce40 * sizeof(struct weaponobj)), MEMPOOL_STAGE);
|
||||
|
||||
for (i = 0; i < var8009ce40; i++) {
|
||||
var8009ce58[i].base.prop = NULL;
|
||||
|
|
|
|||
|
|
@ -11216,13 +11216,13 @@ void func0f09ed2c(struct defaultobj *obj, struct coord *newpos, Mtxf *arg2, f32
|
|||
/**
|
||||
* Create a thrown projectile.
|
||||
*/
|
||||
struct var8009ce58 *func0f09ee18(struct chrdata *chr, struct shorthand *hand, struct coord *pos, s16 *rooms, Mtxf *arg4, struct coord *arg5)
|
||||
struct weaponobj *func0f09ee18(struct chrdata *chr, struct shorthand *hand, struct coord *pos, s16 *rooms, Mtxf *arg4, struct coord *arg5)
|
||||
{
|
||||
struct var8009ce58 *thing = NULL;
|
||||
struct weaponobj *thing = NULL;
|
||||
struct weaponfunc *basefunc;
|
||||
struct weaponfunc_throw *func;
|
||||
struct weapon *weapon = weaponFindById(hand->weaponnum);
|
||||
struct var8009ce58 *tmpthing;
|
||||
struct weaponobj *tmpthing;
|
||||
s32 playernum;
|
||||
f32 mf[4][4];
|
||||
u32 stack;
|
||||
|
|
@ -11257,11 +11257,11 @@ struct var8009ce58 *func0f09ee18(struct chrdata *chr, struct shorthand *hand, st
|
|||
if (tmpthing != NULL) {
|
||||
thing = tmpthing;
|
||||
|
||||
// Note: time is converted to time240 immediately below
|
||||
thing->activatetime240 = func->activatetime60;
|
||||
thing->unk62 = func->activatetime60;
|
||||
|
||||
if (thing->activatetime240 >= 2) {
|
||||
thing->activatetime240 = PALDOWN(thing->activatetime240 * 4);
|
||||
// Convert to 240 time
|
||||
if (thing->unk62 >= 2) {
|
||||
thing->unk62 = PALDOWN(thing->unk62 * 4);
|
||||
}
|
||||
|
||||
if (thing->weaponnum == WEAPON_GRENADE || thing->weaponnum == WEAPON_NBOMB) {
|
||||
|
|
|
|||
|
|
@ -110,7 +110,7 @@ s32 var8009ce48;
|
|||
s32 var8009ce4c;
|
||||
s32 g_NumProjectiles;
|
||||
s32 g_NumMonitorThings;
|
||||
struct var8009ce58 *var8009ce58;
|
||||
struct weaponobj *var8009ce58;
|
||||
struct defaultobj *var8009ce5c;
|
||||
struct var8009ce60 *var8009ce60;
|
||||
struct defaultobj *var8009ce64;
|
||||
|
|
@ -69468,23 +69468,86 @@ glabel var7f1aaf24
|
|||
);
|
||||
#endif
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f08b880
|
||||
/* f08b880: 27bdffe0 */ addiu $sp,$sp,-32
|
||||
/* f08b884: 3c0e8007 */ lui $t6,%hi(var8006ad8c)
|
||||
/* f08b888: afbf0014 */ sw $ra,0x14($sp)
|
||||
/* f08b88c: 25cead8c */ addiu $t6,$t6,%lo(var8006ad8c)
|
||||
/* f08b890: 8dc10000 */ lw $at,0x0($t6)
|
||||
/* f08b894: 00a03825 */ or $a3,$a1,$zero
|
||||
/* f08b898: 27a5001c */ addiu $a1,$sp,0x1c
|
||||
/* f08b89c: aca10000 */ sw $at,0x0($a1)
|
||||
/* f08b8a0: 0fc22d96 */ jal func0f08b658
|
||||
/* f08b8a4: a3a7001c */ sb $a3,0x1c($sp)
|
||||
/* f08b8a8: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
/* f08b8ac: 27bd0020 */ addiu $sp,$sp,0x20
|
||||
/* f08b8b0: 03e00008 */ jr $ra
|
||||
/* f08b8b4: 00000000 */ nop
|
||||
);
|
||||
u32 var8006ac6c = 0x01000011;
|
||||
u32 var8006ac70 = 0x00000000;
|
||||
u32 var8006ac74 = 0x00004000;
|
||||
u32 var8006ac78 = 0x00000000;
|
||||
u32 var8006ac7c = 0x00000000;
|
||||
u32 var8006ac80 = 0x00000000;
|
||||
u32 var8006ac84 = 0x00000000;
|
||||
u32 var8006ac88 = 0x3f800000;
|
||||
u32 var8006ac8c = 0x00000000;
|
||||
u32 var8006ac90 = 0x00000000;
|
||||
u32 var8006ac94 = 0x00000000;
|
||||
u32 var8006ac98 = 0x3f800000;
|
||||
u32 var8006ac9c = 0x00000000;
|
||||
u32 var8006aca0 = 0x00000000;
|
||||
u32 var8006aca4 = 0x00000000;
|
||||
u32 var8006aca8 = 0x3f800000;
|
||||
u32 var8006acac = 0x00000000;
|
||||
u32 var8006acb0 = 0x00000000;
|
||||
u32 var8006acb4 = 0x00000000;
|
||||
u32 var8006acb8 = 0x000003e8;
|
||||
u32 var8006acbc = 0xffffff00;
|
||||
u32 var8006acc0 = 0xffffff00;
|
||||
u32 var8006acc4 = 0x0fff0000;
|
||||
u32 var8006acc8 = 0x0100000d;
|
||||
u32 var8006accc = 0x00000001;
|
||||
u32 var8006acd0 = 0x00000000;
|
||||
u32 var8006acd4 = 0x00000000;
|
||||
u32 var8006acd8 = 0x00000000;
|
||||
u32 var8006acdc = 0x00000000;
|
||||
u32 var8006ace0 = 0x00000000;
|
||||
u32 var8006ace4 = 0x3f800000;
|
||||
u32 var8006ace8 = 0x00000000;
|
||||
u32 var8006acec = 0x00000000;
|
||||
u32 var8006acf0 = 0x00000000;
|
||||
u32 var8006acf4 = 0x3f800000;
|
||||
u32 var8006acf8 = 0x00000000;
|
||||
u32 var8006acfc = 0x00000000;
|
||||
u32 var8006ad00 = 0x00000000;
|
||||
u32 var8006ad04 = 0x3f800000;
|
||||
u32 var8006ad08 = 0x00000000;
|
||||
u32 var8006ad0c = 0x00000000;
|
||||
u32 var8006ad10 = 0x00000000;
|
||||
u32 var8006ad14 = 0x000003e8;
|
||||
u32 var8006ad18 = 0xffffff00;
|
||||
u32 var8006ad1c = 0xffffff00;
|
||||
u32 var8006ad20 = 0x0fff0000;
|
||||
u32 var8006ad24 = 0x01000008;
|
||||
u32 var8006ad28 = 0x0000ffff;
|
||||
u32 var8006ad2c = 0x00000001;
|
||||
u32 var8006ad30 = 0x00000000;
|
||||
u32 var8006ad34 = 0x00000000;
|
||||
u32 var8006ad38 = 0x00000000;
|
||||
u32 var8006ad3c = 0x00000000;
|
||||
u32 var8006ad40 = 0x3f800000;
|
||||
u32 var8006ad44 = 0x00000000;
|
||||
u32 var8006ad48 = 0x00000000;
|
||||
u32 var8006ad4c = 0x00000000;
|
||||
u32 var8006ad50 = 0x3f800000;
|
||||
u32 var8006ad54 = 0x00000000;
|
||||
u32 var8006ad58 = 0x00000000;
|
||||
u32 var8006ad5c = 0x00000000;
|
||||
u32 var8006ad60 = 0x3f800000;
|
||||
u32 var8006ad64 = 0x00000000;
|
||||
u32 var8006ad68 = 0x00000000;
|
||||
u32 var8006ad6c = 0x00000000;
|
||||
u32 var8006ad70 = 0x000003e8;
|
||||
u32 var8006ad74 = 0xffffff00;
|
||||
u32 var8006ad78 = 0xffffff00;
|
||||
u32 var8006ad7c = 0x0fff0000;
|
||||
u32 var8006ad80 = 0x00000000;
|
||||
u32 var8006ad84 = 0x00ffffff;
|
||||
u32 var8006ad88 = 0x00000000;
|
||||
|
||||
struct weaponobj *func0f08b880(s32 modelnum, s32 weaponnum, struct chrdata *chr)
|
||||
{
|
||||
struct shorthand hand = {0};
|
||||
hand.weaponnum = weaponnum;
|
||||
|
||||
return func0f08b658(modelnum, &hand, chr);
|
||||
}
|
||||
|
||||
void chrSetObjHiddenFlag4OnWeapon(struct chrdata *chr, s32 hand)
|
||||
{
|
||||
|
|
@ -77810,79 +77873,6 @@ u32 func0f091e04(u32 arg0, u32 arg1)
|
|||
return arg0;
|
||||
}
|
||||
|
||||
u32 var8006ac6c = 0x01000011;
|
||||
u32 var8006ac70 = 0x00000000;
|
||||
u32 var8006ac74 = 0x00004000;
|
||||
u32 var8006ac78 = 0x00000000;
|
||||
u32 var8006ac7c = 0x00000000;
|
||||
u32 var8006ac80 = 0x00000000;
|
||||
u32 var8006ac84 = 0x00000000;
|
||||
u32 var8006ac88 = 0x3f800000;
|
||||
u32 var8006ac8c = 0x00000000;
|
||||
u32 var8006ac90 = 0x00000000;
|
||||
u32 var8006ac94 = 0x00000000;
|
||||
u32 var8006ac98 = 0x3f800000;
|
||||
u32 var8006ac9c = 0x00000000;
|
||||
u32 var8006aca0 = 0x00000000;
|
||||
u32 var8006aca4 = 0x00000000;
|
||||
u32 var8006aca8 = 0x3f800000;
|
||||
u32 var8006acac = 0x00000000;
|
||||
u32 var8006acb0 = 0x00000000;
|
||||
u32 var8006acb4 = 0x00000000;
|
||||
u32 var8006acb8 = 0x000003e8;
|
||||
u32 var8006acbc = 0xffffff00;
|
||||
u32 var8006acc0 = 0xffffff00;
|
||||
u32 var8006acc4 = 0x0fff0000;
|
||||
u32 var8006acc8 = 0x0100000d;
|
||||
u32 var8006accc = 0x00000001;
|
||||
u32 var8006acd0 = 0x00000000;
|
||||
u32 var8006acd4 = 0x00000000;
|
||||
u32 var8006acd8 = 0x00000000;
|
||||
u32 var8006acdc = 0x00000000;
|
||||
u32 var8006ace0 = 0x00000000;
|
||||
u32 var8006ace4 = 0x3f800000;
|
||||
u32 var8006ace8 = 0x00000000;
|
||||
u32 var8006acec = 0x00000000;
|
||||
u32 var8006acf0 = 0x00000000;
|
||||
u32 var8006acf4 = 0x3f800000;
|
||||
u32 var8006acf8 = 0x00000000;
|
||||
u32 var8006acfc = 0x00000000;
|
||||
u32 var8006ad00 = 0x00000000;
|
||||
u32 var8006ad04 = 0x3f800000;
|
||||
u32 var8006ad08 = 0x00000000;
|
||||
u32 var8006ad0c = 0x00000000;
|
||||
u32 var8006ad10 = 0x00000000;
|
||||
u32 var8006ad14 = 0x000003e8;
|
||||
u32 var8006ad18 = 0xffffff00;
|
||||
u32 var8006ad1c = 0xffffff00;
|
||||
u32 var8006ad20 = 0x0fff0000;
|
||||
u32 var8006ad24 = 0x01000008;
|
||||
u32 var8006ad28 = 0x0000ffff;
|
||||
u32 var8006ad2c = 0x00000001;
|
||||
u32 var8006ad30 = 0x00000000;
|
||||
u32 var8006ad34 = 0x00000000;
|
||||
u32 var8006ad38 = 0x00000000;
|
||||
u32 var8006ad3c = 0x00000000;
|
||||
u32 var8006ad40 = 0x3f800000;
|
||||
u32 var8006ad44 = 0x00000000;
|
||||
u32 var8006ad48 = 0x00000000;
|
||||
u32 var8006ad4c = 0x00000000;
|
||||
u32 var8006ad50 = 0x3f800000;
|
||||
u32 var8006ad54 = 0x00000000;
|
||||
u32 var8006ad58 = 0x00000000;
|
||||
u32 var8006ad5c = 0x00000000;
|
||||
u32 var8006ad60 = 0x3f800000;
|
||||
u32 var8006ad64 = 0x00000000;
|
||||
u32 var8006ad68 = 0x00000000;
|
||||
u32 var8006ad6c = 0x00000000;
|
||||
u32 var8006ad70 = 0x000003e8;
|
||||
u32 var8006ad74 = 0xffffff00;
|
||||
u32 var8006ad78 = 0xffffff00;
|
||||
u32 var8006ad7c = 0x0fff0000;
|
||||
u32 var8006ad80 = 0x00000000;
|
||||
u32 var8006ad84 = 0x00ffffff;
|
||||
u32 var8006ad88 = 0x00000000;
|
||||
u32 var8006ad8c = 0x00000000;
|
||||
u32 var8006ad90 = 0x01000008;
|
||||
u32 var8006ad94 = 0x00000000;
|
||||
u32 var8006ad98 = 0x00004001;
|
||||
|
|
|
|||
|
|
@ -115,7 +115,7 @@ extern s32 var8009ce48;
|
|||
extern s32 var8009ce4c;
|
||||
extern s32 g_NumProjectiles;
|
||||
extern s32 g_NumMonitorThings;
|
||||
extern struct var8009ce58 *var8009ce58;
|
||||
extern struct weaponobj *var8009ce58;
|
||||
extern struct defaultobj *var8009ce5c;
|
||||
extern struct var8009ce60 *var8009ce60;
|
||||
extern struct defaultobj *var8009ce64;
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ bool func0f09eae4(void);
|
|||
s32 func0f09ebbc(void);
|
||||
void func0f09ebcc(struct defaultobj *obj, struct coord *coord, s16 *rooms, Mtxf *matrix1, f32 *arg4, Mtxf *matrix2, struct prop *prop, struct coord *pos);
|
||||
void func0f09ed2c(struct defaultobj *obj, struct coord *coord, Mtxf *arg2, f32 *arg3, Mtxf *arg4);
|
||||
struct var8009ce58 *func0f09ee18(struct chrdata *chr, struct shorthand *hand, struct coord *pos, s16 *rooms, Mtxf *arg4, struct coord *arg5);
|
||||
struct weaponobj *func0f09ee18(struct chrdata *chr, struct shorthand *hand, struct coord *pos, s16 *rooms, Mtxf *arg4, struct coord *arg5);
|
||||
void handCreateThrownProjectile(s32 handnum, struct shorthand *hand);
|
||||
void func0f09f848(s32 handnum);
|
||||
void func0f09f974(s32 handnum, struct weaponfunc_shootprojectile *func);
|
||||
|
|
|
|||
|
|
@ -285,9 +285,9 @@ u32 func0f08ae54(struct defaultobj *obj, struct chrdata *chr);
|
|||
u32 func0f08b108(struct weaponobj *weapon, struct chrdata *chr, struct modelfiledata *modelfiledata, u32 arg3, u32 arg4);
|
||||
void func0f08b208(struct weaponobj *weapon, struct chrdata *chr);
|
||||
void func0f08b25c(struct weaponobj *weapon, struct chrdata *chr);
|
||||
struct var8009ce58 *func0f08b27c(s32 modelnum, struct shorthand *hand, struct chrdata *chr);
|
||||
struct var8009ce58 *func0f08b658(s32 modelnum, struct shorthand *hand, struct chrdata *chr);
|
||||
struct weaponobj *func0f08b880(u32 model, u32 weaponnum, struct chrdata *chr);
|
||||
struct weaponobj *func0f08b27c(s32 modelnum, struct shorthand *hand, struct chrdata *chr);
|
||||
struct weaponobj *func0f08b658(s32 modelnum, struct shorthand *hand, struct chrdata *chr);
|
||||
struct weaponobj *func0f08b880(s32 modelnum, s32 weaponnum, struct chrdata *chr);
|
||||
void chrSetObjHiddenFlag4OnWeapon(struct chrdata *chr, s32 hand);
|
||||
struct prop *func0f08b8e8(struct chrdata *chr, s32 weaponnum, s32 arg2, u32 flags, s32 arg4, s32 arg5);
|
||||
struct prop *chrGiveWeapon(struct chrdata *chr, s32 model, s32 weaponnum, u32 flags);
|
||||
|
|
|
|||
|
|
@ -1742,7 +1742,7 @@ struct weaponobj { // objtype 0x08
|
|||
/**
|
||||
* Appears to have multiple uses:
|
||||
* Grenades = timer?
|
||||
* Proxy mines = timer? Or isarmed
|
||||
* Proxy mines = timer240 (counts down)
|
||||
* CTC briefcase = team index
|
||||
*/
|
||||
/*0x62*/ s16 unk62;
|
||||
|
|
@ -6908,16 +6908,6 @@ struct var8009cda4 {
|
|||
s16 unk00[8];
|
||||
};
|
||||
|
||||
// Suspect this is just a weaponobj
|
||||
struct var8009ce58 {
|
||||
struct defaultobj base;
|
||||
/*0x5c*/ u8 weaponnum;
|
||||
/*0x60*/ u16 unk5e;
|
||||
/*0x60*/ u16 unk60;
|
||||
/*0x62*/ s16 activatetime240;
|
||||
/*0x64*/ u32 unk64;
|
||||
};
|
||||
|
||||
struct var8009ce60 {
|
||||
struct defaultobj base;
|
||||
/*0x5c*/ u32 unk5c;
|
||||
|
|
|
|||
Loading…
Reference in New Issue