Attempt to decompile chrAttackKneel

This commit is contained in:
Ryan Dwyer 2021-02-13 23:26:49 +10:00
parent e988cfa926
commit a87cef60f2
3 changed files with 147 additions and 218 deletions

View File

@ -57,7 +57,9 @@
const char var7f1a8ac0[] = "chraction.c";
const char var7f1a8acc[] = "chraction.c";
u32 var80068070 = 0x00000000;
u32 var80068020 = 0x00000000;
u32 var80068024 = 0x00000000;
u32 var80068028 = 0x00000000;
f32 func0f02dff0(s16 animnum)
{
@ -1262,6 +1264,63 @@ glabel chrAttackKneel
/* f030580: 00000000 */ nop
);
//void chrAttackKneel(struct chrdata *chr, s32 entitytype, s32 entityid)
//{
// struct prop *leftprop = chrGetEquippedWeaponProp(chr, HAND_LEFT); // 54
// struct prop *rightprop = chrGetEquippedWeaponProp(chr, HAND_RIGHT); // 50
// s32 sp4c;
// s32 sp48;
// bool firing[2] = {false, false}; // 40, 44 (var8006802c and var80068030)
// s32 race = CHRRACE(chr); // 3c
// struct prop *leftprop2; // 38
// struct prop *rightprop2;
// struct var80065750 **iVar5;
//
// if (leftprop && rightprop) {
// // Holding two items
// leftprop2 = chrGetEquippedWeaponPropWithCheck(chr, HAND_LEFT);
// rightprop2 = chrGetEquippedWeaponPropWithCheck(chr, HAND_RIGHT);
//
// if (leftprop2 && rightprop2) {
// // And both are capable of firing
// sp48 = random() % 2;
//
// if (random() % 3 == 0) {
// // 1 in 4 chance of firing just one of them (50/50 as to which)
// iVar5 = var80066ef0[race];
// firing[HAND_LEFT] = sp48;
// firing[HAND_RIGHT] = !firing[HAND_LEFT];
// } else {
// // 3 in 4 chance of firing both
// iVar5 = var80067328[race];
// firing[HAND_LEFT] = true;
// firing[HAND_RIGHT] = true;
// }
// } else {
// // Fire whichever one is capable
// sp48 = !rightprop2;
// iVar5 = var80066ef0[race];
// firing[HAND_LEFT] = !rightprop2;
// firing[HAND_RIGHT] = !firing[HAND_LEFT];
// }
// } else {
// if (weaponIsOneHanded(leftprop) || weaponIsOneHanded(rightprop)) {
// // Light weight weapon
// iVar5 = var80066ef0[race];
// sp48 = (bool)leftprop;
// } else {
// // Heavy weapon
// iVar5 = var80066a70[race];
// sp48 = (bool)leftprop;
// }
//
// firing[HAND_LEFT] = (bool)leftprop;
// firing[HAND_RIGHT] = !firing[HAND_LEFT];
// }
//
// func0f031384(chr, iVar5, sp48, firing, entitytype, entityid, 0);
//}
void chrAttackWalkChooseAnimation(struct chrdata *chr)
{
if (chr->aibot == NULL) {
@ -1270,6 +1329,25 @@ void chrAttackWalkChooseAnimation(struct chrdata *chr)
}
}
u32 var8006802c = 0x00000000;
u32 var80068030 = 0x00000000;
u32 var80068034 = 0x00000000;
u32 var80068038 = 0x00000000;
u32 var8006803c = 0x00000000;
u32 var80068040 = 0x00000000;
u32 var80068044 = 0x00000000;
u32 var80068048 = 0x00000000;
u32 var8006804c = 0x00000000;
u32 var80068050 = 0x00000000;
u32 var80068054 = 0x00000000;
u32 var80068058 = 0x00000000;
u32 var8006805c = 0x00000000;
u32 var80068060 = 0x00000000;
u32 var80068064 = 0x00000000;
u32 var80068068 = 0x00000000;
u32 var8006806c = 0x00000000;
u32 var80068070 = 0x00000000;
GLOBAL_ASM(
glabel chrAttackWalk
/* f0305e0: 27bdff88 */ addiu $sp,$sp,-120

View File

@ -1268,71 +1268,27 @@ struct animfloats var800669d8[] = {
struct var80065750 var80066a68 = { var800669d8, 0xffffffff };
u32 var80066a70 = (u32) &var800668a0;
u32 var80066a74 = (u32) &var800668a0;
u32 var80066a78 = (u32) &var800668a0;
u32 var80066a7c = (u32) &var800668a0;
u32 var80066a80 = (u32) &var800668a0;
u32 var80066a84 = (u32) &var800668a0;
u32 var80066a88 = (u32) &var800668a0;
u32 var80066a8c = (u32) &var800668a0;
u32 var80066a90 = (u32) &var800668a0;
u32 var80066a94 = (u32) &var800668a0;
u32 var80066a98 = (u32) &var80066938;
u32 var80066a9c = (u32) &var80066938;
u32 var80066aa0 = (u32) &var80066938;
u32 var80066aa4 = (u32) &var80066938;
u32 var80066aa8 = (u32) &var80066938;
u32 var80066aac = (u32) &var80066938;
u32 var80066ab0 = (u32) &var800669d0;
u32 var80066ab4 = (u32) &var800669d0;
u32 var80066ab8 = (u32) &var800669d0;
u32 var80066abc = (u32) &var800669d0;
u32 var80066ac0 = (u32) &var800669d0;
u32 var80066ac4 = (u32) &var800669d0;
u32 var80066ac8 = (u32) &var800668a0;
u32 var80066acc = (u32) &var800668a0;
u32 var80066ad0 = (u32) &var800668a0;
u32 var80066ad4 = (u32) &var800668a0;
u32 var80066ad8 = (u32) &var800668a0;
u32 var80066adc = (u32) &var800668a0;
u32 var80066ae0 = (u32) &var800668a0;
u32 var80066ae4 = (u32) &var800668a0;
u32 var80066ae8 = (u32) &var800668a0;
u32 var80066aec = (u32) &var800668a0;
u32 var80066af0 = (u32) &var80066a68;
u32 var80066af4 = (u32) &var80066a68;
u32 var80066af8 = (u32) &var80066a68;
u32 var80066afc = (u32) &var80066a68;
u32 var80066b00 = (u32) &var80066a68;
u32 var80066b04 = (u32) &var80066a68;
u32 var80066b08 = (u32) &var80066a68;
u32 var80066b0c = (u32) &var80066a68;
u32 var80066b10 = (u32) &var80066a68;
u32 var80066b14 = (u32) &var80066a68;
u32 var80066b18 = (u32) &var80066a68;
u32 var80066b1c = (u32) &var80066a68;
u32 var80066b20 = (u32) &var80066a68;
u32 var80066b24 = (u32) &var80066a68;
u32 var80066b28 = (u32) &var80066a68;
u32 var80066b2c = (u32) &var80066a68;
u32 var80066b30 = (u32) &var80066a68;
u32 var80066b34 = (u32) &var80066a68;
u32 var80066b38 = (u32) &var80066a68;
u32 var80066b3c = (u32) &var80066a68;
u32 var80066b40 = (u32) &var80066a68;
u32 var80066b44 = (u32) &var80066a68;
u32 var80066b48 = (u32) &var80066a68;
u32 var80066b4c = (u32) &var80066a68;
u32 var80066b50 = (u32) &var80066a68;
u32 var80066b54 = (u32) &var80066a68;
u32 var80066b58 = (u32) &var80066a68;
u32 var80066b5c = (u32) &var80066a68;
u32 var80066b60 = (u32) &var80066a68;
u32 var80066b64 = (u32) &var80066a68;
u32 var80066b68 = (u32) &var80066a68;
u32 var80066b6c = (u32) &var80066a68;
struct var80065750 *var80066a70[][32] = {
{
&var800668a0, &var800668a0, &var800668a0, &var800668a0,
&var800668a0, &var800668a0, &var800668a0, &var800668a0,
&var800668a0, &var800668a0, &var80066938, &var80066938,
&var80066938, &var80066938, &var80066938, &var80066938,
&var800669d0, &var800669d0, &var800669d0, &var800669d0,
&var800669d0, &var800669d0, &var800668a0, &var800668a0,
&var800668a0, &var800668a0, &var800668a0, &var800668a0,
&var800668a0, &var800668a0, &var800668a0, &var800668a0,
}, {
&var80066a68, &var80066a68, &var80066a68, &var80066a68,
&var80066a68, &var80066a68, &var80066a68, &var80066a68,
&var80066a68, &var80066a68, &var80066a68, &var80066a68,
&var80066a68, &var80066a68, &var80066a68, &var80066a68,
&var80066a68, &var80066a68, &var80066a68, &var80066a68,
&var80066a68, &var80066a68, &var80066a68, &var80066a68,
&var80066a68, &var80066a68, &var80066a68, &var80066a68,
&var80066a68, &var80066a68, &var80066a68, &var80066a68,
},
};
struct animfloats var80066b70[] = {
{ 0x004b, 25, 0, 0, 12, 132, 55, 87, 67, 87, 26, 111, 0.87252569198608, -0.69802057743073, 0.61076802015305, -0.7852731347084, 0, 0 },
@ -1366,70 +1322,27 @@ struct animfloats var80066e58[] = {
struct var80065750 var80066ee8 = { var80066e58, 0xffffffff };
u32 var80066ef0 = (u32) &var80066c48;
u32 var80066ef4 = (u32) &var80066c48;
u32 var80066ef8 = (u32) &var80066c48;
u32 var80066efc = (u32) &var80066c48;
u32 var80066f00 = (u32) &var80066c48;
u32 var80066f04 = (u32) &var80066c48;
u32 var80066f08 = (u32) &var80066c48;
u32 var80066f0c = (u32) &var80066c48;
u32 var80066f10 = (u32) &var80066c48;
u32 var80066f14 = (u32) &var80066c48;
u32 var80066f18 = (u32) &var80066d70;
u32 var80066f1c = (u32) &var80066d70;
u32 var80066f20 = (u32) &var80066d70;
u32 var80066f24 = (u32) &var80066d70;
u32 var80066f28 = (u32) &var80066d70;
u32 var80066f2c = (u32) &var80066d70;
u32 var80066f30 = (u32) &var80066e50;
u32 var80066f34 = (u32) &var80066e50;
u32 var80066f38 = (u32) &var80066e50;
u32 var80066f3c = (u32) &var80066e50;
u32 var80066f40 = (u32) &var80066e50;
u32 var80066f44 = (u32) &var80066e50;
u32 var80066f48 = (u32) &var80066c48;
u32 var80066f4c = (u32) &var80066c48;
u32 var80066f50 = (u32) &var80066c48;
u32 var80066f54 = (u32) &var80066c48;
u32 var80066f58 = (u32) &var80066c48;
u32 var80066f5c = (u32) &var80066c48;
u32 var80066f60 = (u32) &var80066c48;
u32 var80066f64 = (u32) &var80066c48;
u32 var80066f68 = (u32) &var80066c48;
u32 var80066f6c = (u32) &var80066c48;
u32 var80066f70 = (u32) &var80066ee8;
u32 var80066f74 = (u32) &var80066ee8;
u32 var80066f78 = (u32) &var80066ee8;
u32 var80066f7c = (u32) &var80066ee8;
u32 var80066f80 = (u32) &var80066ee8;
u32 var80066f84 = (u32) &var80066ee8;
u32 var80066f88 = (u32) &var80066ee8;
u32 var80066f8c = (u32) &var80066ee8;
u32 var80066f90 = (u32) &var80066ee8;
u32 var80066f94 = (u32) &var80066ee8;
u32 var80066f98 = (u32) &var80066ee8;
u32 var80066f9c = (u32) &var80066ee8;
u32 var80066fa0 = (u32) &var80066ee8;
u32 var80066fa4 = (u32) &var80066ee8;
u32 var80066fa8 = (u32) &var80066ee8;
u32 var80066fac = (u32) &var80066ee8;
u32 var80066fb0 = (u32) &var80066ee8;
u32 var80066fb4 = (u32) &var80066ee8;
u32 var80066fb8 = (u32) &var80066ee8;
u32 var80066fbc = (u32) &var80066ee8;
u32 var80066fc0 = (u32) &var80066ee8;
u32 var80066fc4 = (u32) &var80066ee8;
u32 var80066fc8 = (u32) &var80066ee8;
u32 var80066fcc = (u32) &var80066ee8;
u32 var80066fd0 = (u32) &var80066ee8;
u32 var80066fd4 = (u32) &var80066ee8;
u32 var80066fd8 = (u32) &var80066ee8;
u32 var80066fdc = (u32) &var80066ee8;
u32 var80066fe0 = (u32) &var80066ee8;
u32 var80066fe4 = (u32) &var80066ee8;
u32 var80066fe8 = (u32) &var80066ee8;
u32 var80066fec = (u32) &var80066ee8;
struct var80065750 *var80066ef0[][32] = {
{
&var80066c48, &var80066c48, &var80066c48, &var80066c48,
&var80066c48, &var80066c48, &var80066c48, &var80066c48,
&var80066c48, &var80066c48, &var80066d70, &var80066d70,
&var80066d70, &var80066d70, &var80066d70, &var80066d70,
&var80066e50, &var80066e50, &var80066e50, &var80066e50,
&var80066e50, &var80066e50, &var80066c48, &var80066c48,
&var80066c48, &var80066c48, &var80066c48, &var80066c48,
&var80066c48, &var80066c48, &var80066c48, &var80066c48,
}, {
&var80066ee8, &var80066ee8, &var80066ee8, &var80066ee8,
&var80066ee8, &var80066ee8, &var80066ee8, &var80066ee8,
&var80066ee8, &var80066ee8, &var80066ee8, &var80066ee8,
&var80066ee8, &var80066ee8, &var80066ee8, &var80066ee8,
&var80066ee8, &var80066ee8, &var80066ee8, &var80066ee8,
&var80066ee8, &var80066ee8, &var80066ee8, &var80066ee8,
&var80066ee8, &var80066ee8, &var80066ee8, &var80066ee8,
&var80066ee8, &var80066ee8, &var80066ee8, &var80066ee8,
},
};
struct animfloats var80066ff0[] = {
{ 0x0074, 22, 0, 0, 10, 111, 34, 87, -1, -1, 17, 104, 0.87252569198608, -0.69802057743073, 0.61076802015305, -0.7852731347084, 0, 0 },
@ -1462,70 +1375,27 @@ struct animfloats var80067290[] = {
struct var80065750 var80067320 = { var80067290, 0xffffffff };
u32 var80067328 = (u32) &var800670c8;
u32 var8006732c = (u32) &var800670c8;
u32 var80067330 = (u32) &var800670c8;
u32 var80067334 = (u32) &var800670c8;
u32 var80067338 = (u32) &var800670c8;
u32 var8006733c = (u32) &var800670c8;
u32 var80067340 = (u32) &var800670c8;
u32 var80067344 = (u32) &var800670c8;
u32 var80067348 = (u32) &var800670c8;
u32 var8006734c = (u32) &var800670c8;
u32 var80067350 = (u32) &var800671a8;
u32 var80067354 = (u32) &var800671a8;
u32 var80067358 = (u32) &var800671a8;
u32 var8006735c = (u32) &var800671a8;
u32 var80067360 = (u32) &var800671a8;
u32 var80067364 = (u32) &var800671a8;
u32 var80067368 = (u32) &var80067288;
u32 var8006736c = (u32) &var80067288;
u32 var80067370 = (u32) &var80067288;
u32 var80067374 = (u32) &var80067288;
u32 var80067378 = (u32) &var80067288;
u32 var8006737c = (u32) &var80067288;
u32 var80067380 = (u32) &var800670c8;
u32 var80067384 = (u32) &var800670c8;
u32 var80067388 = (u32) &var800670c8;
u32 var8006738c = (u32) &var800670c8;
u32 var80067390 = (u32) &var800670c8;
u32 var80067394 = (u32) &var800670c8;
u32 var80067398 = (u32) &var800670c8;
u32 var8006739c = (u32) &var800670c8;
u32 var800673a0 = (u32) &var800670c8;
u32 var800673a4 = (u32) &var800670c8;
u32 var800673a8 = (u32) &var80067320;
u32 var800673ac = (u32) &var80067320;
u32 var800673b0 = (u32) &var80067320;
u32 var800673b4 = (u32) &var80067320;
u32 var800673b8 = (u32) &var80067320;
u32 var800673bc = (u32) &var80067320;
u32 var800673c0 = (u32) &var80067320;
u32 var800673c4 = (u32) &var80067320;
u32 var800673c8 = (u32) &var80067320;
u32 var800673cc = (u32) &var80067320;
u32 var800673d0 = (u32) &var80067320;
u32 var800673d4 = (u32) &var80067320;
u32 var800673d8 = (u32) &var80067320;
u32 var800673dc = (u32) &var80067320;
u32 var800673e0 = (u32) &var80067320;
u32 var800673e4 = (u32) &var80067320;
u32 var800673e8 = (u32) &var80067320;
u32 var800673ec = (u32) &var80067320;
u32 var800673f0 = (u32) &var80067320;
u32 var800673f4 = (u32) &var80067320;
u32 var800673f8 = (u32) &var80067320;
u32 var800673fc = (u32) &var80067320;
u32 var80067400 = (u32) &var80067320;
u32 var80067404 = (u32) &var80067320;
u32 var80067408 = (u32) &var80067320;
u32 var8006740c = (u32) &var80067320;
u32 var80067410 = (u32) &var80067320;
u32 var80067414 = (u32) &var80067320;
u32 var80067418 = (u32) &var80067320;
u32 var8006741c = (u32) &var80067320;
u32 var80067420 = (u32) &var80067320;
u32 var80067424 = (u32) &var80067320;
struct var80065750 *var80067328[][32] = {
{
&var800670c8, &var800670c8, &var800670c8, &var800670c8,
&var800670c8, &var800670c8, &var800670c8, &var800670c8,
&var800670c8, &var800670c8, &var800671a8, &var800671a8,
&var800671a8, &var800671a8, &var800671a8, &var800671a8,
&var80067288, &var80067288, &var80067288, &var80067288,
&var80067288, &var80067288, &var800670c8, &var800670c8,
&var800670c8, &var800670c8, &var800670c8, &var800670c8,
&var800670c8, &var800670c8, &var800670c8, &var800670c8,
}, {
&var80067320, &var80067320, &var80067320, &var80067320,
&var80067320, &var80067320, &var80067320, &var80067320,
&var80067320, &var80067320, &var80067320, &var80067320,
&var80067320, &var80067320, &var80067320, &var80067320,
&var80067320, &var80067320, &var80067320, &var80067320,
&var80067320, &var80067320, &var80067320, &var80067320,
&var80067320, &var80067320, &var80067320, &var80067320,
&var80067320, &var80067320, &var80067320, &var80067320,
},
};
struct animfloats var80067428 = { 0x000b, 76, 0, 0, 20, -1, 98, 161, -1, -1, 93, 161, 0.87252569198608, -0.52351540327072, 0.69802057743073, -0.69802057743073, 1.7000000476837, 2 };
struct animfloats var80067470 = { 0x000c, 58, 0, 0, 10, -1, 77, 104, -1, -1, 72, 104, 0.87252569198608, -0.34901028871536, 0.61076802015305, -0.69802057743073, 1.5499999523163, 1.5 };
@ -1674,23 +1544,3 @@ s16 *var80068008[] = {
};
u32 var8006801c = 0x00000000;
u32 var80068020 = 0x00000000;
u32 var80068024 = 0x00000000;
u32 var80068028 = 0x00000000;
u32 var8006802c = 0x00000000;
u32 var80068030 = 0x00000000;
u32 var80068034 = 0x00000000;
u32 var80068038 = 0x00000000;
u32 var8006803c = 0x00000000;
u32 var80068040 = 0x00000000;
u32 var80068044 = 0x00000000;
u32 var80068048 = 0x00000000;
u32 var8006804c = 0x00000000;
u32 var80068050 = 0x00000000;
u32 var80068054 = 0x00000000;
u32 var80068058 = 0x00000000;
u32 var8006805c = 0x00000000;
u32 var80068060 = 0x00000000;
u32 var80068064 = 0x00000000;
u32 var80068068 = 0x00000000;
u32 var8006806c = 0x00000000;

View File

@ -132,11 +132,12 @@ extern u32 var800652cc;
extern u32 var80065548;
extern u32 var80065640;
extern u32 var80065680;
extern struct var80065750 *var80065ae0[][32];
extern struct var80065750 *var800662d8[][32];
extern struct var80065750 *var80065ae0[2][32];
extern struct var80065750 *var800662d8[2][32];
extern u32 var800666c8;
extern u32 var80066a70;
extern u32 var80066ef0;
extern struct var80065750 *var80066a70[2][32];
extern struct var80065750 *var80066ef0[2][32];
extern struct var80065750 *var80067328[2][32];
extern struct animfloats var80067428;
extern struct animfloats var80067470;
extern struct animfloats var800674b8;