diff --git a/src/game/chr/chraction.c b/src/game/chr/chraction.c index 4f73b1c40..b5763295d 100644 --- a/src/game/chr/chraction.c +++ b/src/game/chr/chraction.c @@ -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 diff --git a/src/game/data/data_0083d0.c b/src/game/data/data_0083d0.c index b75e53965..afa74b536 100644 --- a/src/game/data/data_0083d0.c +++ b/src/game/data/data_0083d0.c @@ -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; diff --git a/src/include/game/data/data_0083d0.h b/src/include/game/data/data_0083d0.h index 6d225da9b..8e2553ab9 100644 --- a/src/include/game/data/data_0083d0.h +++ b/src/include/game/data/data_0083d0.h @@ -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;