Decompile chrHit

This commit is contained in:
Ryan Dwyer 2021-12-10 23:16:43 +10:00
parent 271ecdd364
commit ad90b9ca0f
10 changed files with 221 additions and 893 deletions

File diff suppressed because it is too large Load Diff

View File

@ -4170,7 +4170,7 @@ void chrDamageByLaser(struct chrdata *chr, f32 damage, struct coord *vector, str
NULL); // explosionpos
}
void func0f0341dc(struct chrdata *chr, f32 damage, struct coord *vector, struct gset *gset, struct prop *prop, u32 hitpart, struct prop *prop2, struct modelnode *node, struct model *model, s32 side, s16 *arg10)
void func0f0341dc(struct chrdata *chr, f32 damage, struct coord *vector, struct gset *gset, struct prop *prop, s32 hitpart, struct prop *prop2, struct modelnode *node, struct model *model, s32 side, s16 *arg10)
{
chrDamage(chr, damage, vector, gset, prop, hitpart,
true, // damageshield

View File

@ -636,7 +636,7 @@ struct prop *shotCalculateHits(s32 handnum, bool arg1, struct coord *arg2, struc
for (i = 0; i != 10; i++) {
shotdata.hits[i].prop = NULL;
shotdata.hits[i].unk08 = 0;
shotdata.hits[i].hitpart = 0;
shotdata.hits[i].node = NULL;
}
@ -755,9 +755,9 @@ struct prop *shotCalculateHits(s32 handnum, bool arg1, struct coord *arg2, struc
}
if (root->type == PROPTYPE_CHR || root->type == PROPTYPE_PLAYER) {
func0f027e1c(&shotdata, &shotdata.hits[i]);
chrHit(&shotdata, &shotdata.hits[i]);
} else if (hitprop->type == PROPTYPE_OBJ || hitprop->type == PROPTYPE_WEAPON || hitprop->type == PROPTYPE_DOOR) {
func0f085eac(&shotdata, &shotdata.hits[i]);
objHit(&shotdata, &shotdata.hits[i]);
}
if (shotdata.hits[i].unk4d) {
@ -995,7 +995,7 @@ void handCreateBulletRaycast(s32 handnum, bool arg1, bool dorandom, s32 arg3, bo
}
}
void func0f061fa8(struct shotdata *shotdata, struct prop *prop, f32 arg2, s32 arg3, struct modelnode *node, struct hitthing *hitthing, s32 arg6, struct modelnode *arg7, struct model *model, bool arg9, s32 arg10, struct coord *arg11, struct coord *arg12)
void func0f061fa8(struct shotdata *shotdata, struct prop *prop, f32 arg2, s32 hitpart, struct modelnode *node, struct hitthing *hitthing, s32 arg6, struct modelnode *arg7, struct model *model, bool arg9, s32 arg10, struct coord *arg11, struct coord *arg12)
{
s32 i;
f32 fVar8;
@ -1054,7 +1054,7 @@ void func0f061fa8(struct shotdata *shotdata, struct prop *prop, f32 arg2, s32 ar
hit->distance = arg2;
hit->prop = prop;
hit->unk08 = arg3;
hit->hitpart = hitpart;
hit->node = node;
hit->hitthing = *hitthing;
hit->unk40 = arg6;

View File

@ -59299,7 +59299,7 @@ void func0f085e00(struct prop *prop, struct shotdata *shotdata)
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel func0f085eac
glabel objHit
/* f085eac: 27bdfee0 */ addiu $sp,$sp,-288
/* f085eb0: afbf0034 */ sw $ra,0x34($sp)
/* f085eb4: afa40120 */ sw $a0,0x120($sp)
@ -60030,7 +60030,7 @@ glabel func0f085eac
);
#else
GLOBAL_ASM(
glabel func0f085eac
glabel objHit
/* f084710: 27bdfee0 */ addiu $sp,$sp,-288
/* f084714: afbf0034 */ sw $ra,0x34($sp)
/* f084718: afa40120 */ sw $a0,0x120($sp)

View File

@ -38,11 +38,11 @@ void bodyGetBloodColour(s16 bodynum, u8 *colour1, u32 *colour2);
Gfx *chrRender(struct prop *prop, Gfx *gdl, bool withalpha);
void chrEmitSparks(struct chrdata *chr, struct prop *prop, s32 hitpart, struct coord *coord, struct coord *coord2, struct chrdata *chr2);
u32 func0f0260c4(void);
u32 func0f0268bc(void);
void func0f0268bc(struct model *model, s32 hitpart, struct modelnode *node, struct coord *arg3);
u32 func0f0270f4(void);
f32 func0f0278a4(struct chrdata *chr);
void func0f027994(struct prop *prop, struct shotdata *shotdata, bool arg2, bool arg3);
void func0f027e1c(struct shotdata *shotdata, struct hit *hit);
void chrHit(struct shotdata *shotdata, struct hit *hit);
void func0f028498(bool value);
void chrsCheckForNoise(f32 noiseradius);
bool chrCalculateAutoAim(struct prop *prop, struct coord *arg1, f32 *arg2, f32 *arg3);

View File

@ -61,7 +61,7 @@ void chrSetShield(struct chrdata *chr, f32 shield);
bool func0f034080(struct chrdata *chr, struct modelnode *node, struct prop *prop, struct model *model, s32 side, s16 *arg5);
void chrDamageByMisc(struct chrdata *chr, f32 damage, struct coord *vector, struct gset *gset, struct prop *prop);
void chrDamageByLaser(struct chrdata *chr, f32 damage, struct coord *vector, struct gset *gset, struct prop *prop);
void func0f0341dc(struct chrdata *chr, f32 damage, struct coord *vector, struct gset *gset, struct prop *prop, u32 hitpart, struct prop *prop2, struct modelnode *node, struct model *model, s32 side, s16 *arg10);
void func0f0341dc(struct chrdata *chr, f32 damage, struct coord *vector, struct gset *gset, struct prop *prop, s32 hitpart, struct prop *prop2, struct modelnode *node, struct model *model, s32 side, s16 *arg10);
void chrDamageByImpact(struct chrdata *chr, f32 damage, struct coord *vector, struct gset *gset, struct prop *prop, s32 arg5);
void chrDamageByExplosion(struct chrdata *chr, f32 damage, struct coord *vector, struct prop *prop, struct coord *explosionpos);
void playerUpdateDamageStats(struct prop *attacker, struct prop *victim, f32 damage);

View File

@ -23,7 +23,7 @@ void func0f060bac(s32 weaponnum, struct prop *prop);
struct prop *shotCalculateHits(s32 handnum, bool arg1, struct coord *arg2, struct coord *arg3, struct coord *gunpos, struct coord *dir, u32 arg6, f32 arg7, bool arg8);
struct prop *func0f061d54(s32 handnum, u32 arg1, u32 arg2);
void handCreateBulletRaycast(s32 handnum, bool arg1, bool dorandom, s32 arg3, bool arg4);
void func0f061fa8(struct shotdata *shotdata, struct prop *prop, f32 arg2, s32 arg3, struct modelnode *node, struct hitthing *hitthing, s32 arg6, struct modelnode *arg7, struct model *model, bool arg9, s32 arg10, struct coord *arg11, struct coord *arg12);
void func0f061fa8(struct shotdata *shotdata, struct prop *prop, f32 arg2, s32 hitpart, struct modelnode *node, struct hitthing *hitthing, s32 arg6, struct modelnode *arg7, struct model *model, bool arg9, s32 arg10, struct coord *arg11, struct coord *arg12);
void handInflictCloseRangeDamage(s32 handnum, struct gset *gset, bool arg2);
void handTickAttack(s32 handnum);
void handsTickAttack(void);

View File

@ -236,7 +236,7 @@ void objTakeGunfire(struct defaultobj *obj, f32 damage, struct coord *pos, s32 w
void objDamage(struct defaultobj *obj, f32 damage, struct coord *pos, s32 weaponnum, s32 playernum);
void func0f0859a0(struct prop *prop, struct shotdata *shotdata);
void func0f085e00(struct prop *prop, struct shotdata *shotdata);
void func0f085eac(struct shotdata *shotdata, struct hit *hit);
void objHit(struct shotdata *shotdata, struct hit *hit);
u32 propobjGetCiTagId(struct prop *prop);
bool objIsHealthy(struct defaultobj *obj);
bool objTestForInteract(struct prop *prop);

View File

@ -13,7 +13,7 @@ void func0f13e640(struct var800a41b0 *thing, u32 arg1);
u32 func0f13e744(void);
u32 func0f13e994(void);
void func0f13eb44(void);
void func0f13f3f4(struct coord *arg0, struct coord *arg1, struct coord *arg2, u32 arg3, u32 arg4, u32 arg5, s32 room, u32 arg7, s32 arg8, u32 arg9, struct chrdata *chr, bool arg11);
void func0f13f3f4(struct coord *arg0, struct coord *arg1, struct coord *arg2, u32 arg3, u32 arg4, u32 arg5, s32 room, struct prop *arg7, s32 arg8, u32 arg9, struct chrdata *chr, bool arg11);
u32 func0f13f504(void);
s32 func0f140750(struct coord *coord);
u32 func0f1408a8(void);

View File

@ -6268,6 +6268,7 @@ struct var800ab718 {
u32 unk10;
};
// This struct might be the same struct as shotdata
struct splat {
/*0x000*/ struct coord unk000;
/*0x00c*/ struct coord unk00c;
@ -7062,7 +7063,7 @@ struct hitthing {
struct hit {
/*0x00*/ f32 distance;
/*0x04*/ struct prop *prop;
/*0x08*/ u32 unk08;
/*0x08*/ s32 hitpart;
/*0x0c*/ struct modelnode *node;
/*0x10*/ struct hitthing hitthing;
/*0x40*/ u32 unk40;