Attempt to decompile bwalk0f0c69b8

This commit is contained in:
Ryan Dwyer 2021-09-05 21:13:42 +10:00
parent 63f0cbec1d
commit 5e1a43bc18
6 changed files with 396 additions and 12 deletions

View File

@ -3330,13 +3330,6 @@ void bwalkUpdateTheta(void)
bwalkCalculateNewPositionWithPush(&delta, rotateamount, true, 0, CDTYPE_ALL);
}
u32 var80070e68 = 0x00000000;
u32 var80070e6c = 0x00000000;
u32 var80070e70 = 0x00000000;
u32 var80070e74 = 0x00000000;
u32 var80070e78 = 0x00000000;
u32 var80070e7c = 0x00000000;
void bwalk0f0c63bc(struct coord *arg0, u32 arg1, s32 types)
{
struct coord sp100;
@ -6592,6 +6585,397 @@ glabel var7f1ad854
);
#endif
u32 var80070e68 = 0x00000000;
u32 var80070e6c = 0x00000000;
u32 var80070e70 = 0x00000000;
// Mismatch: Float regalloc mostly
//void bwalk0f0c69b8(void)
//{
// s32 i;
// f32 spe0;
// f32 spdc;
// f32 spd8;
// struct coord spcc = {0, 0, 0};
// f32 spc8;
// f32 spc4;
// f32 spc0;
// f32 fVar11;
// f32 fVar10;
// f32 spb4;
// f32 spb0;
// f32 fVar9;
// f32 spa8;
// f32 fVar7;
// f32 fVar6;
// f32 fVar5;
// f32 fVar4;
// s32 iVar4;
// s32 lVar2;
// f32 sp8c;
// f32 sp88;
//
// f32 sp7c;
// f32 sp78;
// f32 sp74;
// f32 width; // 70
// f32 ymax; // 6c
// f32 ymin; // 68
// f32 sp4c;
// f32 sp48;
// f32 sp44;
// f32 sp40;
// f32 sp3c;
// f32 breathing;
// f32 fVar5_2;
// f32 fVar5_3;
// f32 fVar5_4;
// f32 fVar6_2;
// f32 fVar7_2;
// u8 stack[0x08];
//
// spc0 = g_Vars.currentplayer->vv_eyeheight - 159;
//
// // a04
// if (invHasBriefcase() && ((g_MpSetup.scenario == MPSCENARIO_HOLDTHEBRIEFCASE || g_MpSetup.scenario == MPSCENARIO_CAPTURETHECASE))) {
// spc0 = 159 / 2.5;
// }
//
// spc0 = spc0 / 353.33331298828f + 1.0f;
//
// // a60
// if (g_Vars.normmplayerisrunning && (g_MpSetup.options & MPOPTION_FASTMOVEMENT)) {
// spc0 *= 1.25f;
// }
//
// // a8c
// if (cheatIsActive(CHEAT_SMALLJO)) {
// spc0 *= 0.4f;
// }
//
// // abc
// if (g_Vars.currentplayer->walkinitmove) {
// g_Vars.currentplayer->walkinitt += g_Vars.lvupdate240freal * (1.0f / 60.0f);
//
// if (g_Vars.currentplayer->walkinitt >= 1.0f) {
// g_Vars.currentplayer->walkinitt = 1.0f;
// g_Vars.currentplayer->walkinitmove = false;
// }
//
// g_Vars.currentplayer->walkinitt2 = 1.0f - (cosf(g_Vars.currentplayer->walkinitt * M_BADPI) + 1.0f) * 0.5f;
//
// bmoveUpdateHead(0.0f, 0.0f, 0.0f, &g_Vars.currentplayer->walkinitmtx, 1.0f - g_Vars.currentplayer->walkinitt2);
//
// g_Vars.currentplayer->gunspeed = 0.0f;
//
// bmoveUpdateMoveInitSpeed(&spcc);
// bwalkCalculateNewPositionWithPush(&spcc, 0.0f, true, 0.0f, CDTYPE_ALL);
// } else {
// // bbc
// bwalkApplyCrouchSpeed();
// bwalkUpdateCrouchOffset();
//
// bmove0f0cba88(&spc8, &spc4,
// (struct coord *) g_Vars.currentplayer->bondshotspeed,
// g_Vars.currentplayer->vv_sintheta, g_Vars.currentplayer->vv_costheta);
//
// spb4 = g_Vars.currentplayer->bond2.unk00.f[2] * -g_Vars.currentplayer->swaytarget;
// spb0 = g_Vars.currentplayer->bond2.unk00.f[0] * g_Vars.currentplayer->swaytarget;
// spb4 *= spc0;
// spb0 *= spc0;
// spa8 = 0.0f;
//
// // c40
// if (g_Vars.currentplayer->crouchoffset < -45.0f) {
// spb0 *= 0.35f;
// spb4 *= 0.35f;
// } else if (g_Vars.currentplayer->crouchoffset < 0.0f) {
// spb0 *= 0.5f;
// spb4 *= 0.5f;
// }
//
// // c94
// spb4 -= g_Vars.currentplayer->swayoffset0;
// spb0 -= g_Vars.currentplayer->swayoffset2;
//
// fVar6 = sqrtf(spb4 * spb4 + spb0 * spb0);
//
// if (g_Vars.lvupdate240freal > 4) {
// fVar5 = 4;
// iVar4 = 4;
// } else {
// fVar5 = g_Vars.lvupdate240freal;
// iVar4 = g_Vars.lvupdate240_60;
// }
//
// // cfc
// for (i = 0; i < iVar4; i++) {
// spa8 += (fVar6 - spa8) * 0.1f;
// }
//
// // d20
// spa8 += fVar5 * 3.75f;
//
// if (g_Vars.currentplayer->crouchoffset < -45.0f) {
// spa8 *= 0.35f;
// } else if (g_Vars.currentplayer->crouchoffset < 0.0f) {
// spa8 *= 0.5f;
// }
//
// // d90
// if (spa8 < fVar6) {
// spa8 = spa8 / fVar6;
// spb4 *= spa8;
// spb0 *= spa8;
// }
//
// // db8
// fVar5_2 = (g_Vars.currentplayer->speedsideways + spc4) * 0.8f; // f2
// sp78 = g_Vars.currentplayer->speedtheta * 0.8f; // f16
// sp7c = g_Vars.currentplayer->speedforwards + spc8; // f12
//
// // df4
// if (fVar5_2 < 0.0f) { // f2
// fVar5_2 = -fVar5_2;
// }
//
// // e08
// if (sp7c < 0.0f) { // f12
// sp7c = -sp7c;
// }
//
// // e1c
// if (sp78 < 0.0f) { // f16
// sp78 = -sp78;
// }
//
// // e34
// if (sp78 < fVar5_2) {
// sp78 = fVar5_2;
// }
//
// // e4c
// if (sp78 < sp7c) {
// sp78 = sp7c;
// }
//
// // e60
// if (fVar6 >= 0.1f && sp78 < 0.8f) {
// sp78 = 0.8f;
// }
//
// if (sp78 >= 0.75f) {
// g_Vars.currentplayer->bondbreathing += (sp78 - 0.75f) * g_Vars.lvupdate240freal / 900;
// } else {
// g_Vars.currentplayer->bondbreathing -= (0.75f - sp78) * g_Vars.lvupdate240freal / 2700;
// }
//
// if (g_Vars.currentplayer->bondbreathing < 0.0f) {
// g_Vars.currentplayer->bondbreathing = 0.0f;
// } else if (g_Vars.currentplayer->bondbreathing > 1.0f) {
// g_Vars.currentplayer->bondbreathing = 1.0f;
// }
//
// spe0 = (g_Vars.currentplayer->speedsideways * spc0 + spc4) * var80075c00[1].endframe * 0.5f * g_Vars.lvupdate240freal;
//
// // f6c
// if (cheatIsActive(CHEAT_SMALLJO)) {
// spe0 = spe0 / 0.4f;
// }
//
// bmove0f0cc654(sp78, g_Vars.currentplayer->speedforwards * spc0 + spc8, spe0);
//
// // fb4
// g_Vars.currentplayer->gunspeed = sp78;
//
// spdc = g_Vars.currentplayer->headpos.x;
// spd8 = g_Vars.currentplayer->headpos.z;
//
// if (cheatIsActive(CHEAT_SMALLJO)) {
// spdc *= 0.4f;
// }
//
// spcc.x += (spd8 * g_Vars.currentplayer->bond2.unk00.x - spdc * g_Vars.currentplayer->bond2.unk00.z) * g_Vars.lvupdate240freal + spb4;
// spcc.z += (spd8 * g_Vars.currentplayer->bond2.unk00.z + spdc * g_Vars.currentplayer->bond2.unk00.x) * g_Vars.lvupdate240freal + spb0;
//
// bmoveUpdateMoveInitSpeed(&spcc);
//
// // 080
// if (debugIsTurboModeEnabled()) {
// spcc.x += (g_Vars.currentplayer->bond2.unk00.x * g_Vars.currentplayer->speedforwards - g_Vars.currentplayer->bond2.unk00.z * g_Vars.currentplayer->speedsideways) * g_Vars.lvupdate240freal * 10.0f;
// spcc.z += (g_Vars.currentplayer->bond2.unk00.z * g_Vars.currentplayer->speedforwards + g_Vars.currentplayer->bond2.unk00.x * g_Vars.currentplayer->speedsideways) * g_Vars.lvupdate240freal * 10.0f;
// }
//
// // 11c
// if (g_Vars.currentplayer->bondforcespeed.f[0] != 0.0f || g_Vars.currentplayer->bondforcespeed.f[2] != 0.0f) {
// spcc.x += g_Vars.currentplayer->bondforcespeed.f[0] * g_Vars.lvupdate240freal;
// spcc.z += g_Vars.currentplayer->bondforcespeed.f[2] * g_Vars.lvupdate240freal;
// }
//
// // 16c
// if (g_Vars.currentplayer->onladder) {
// guNormalize(&g_Vars.currentplayer->laddernormal.x, &g_Vars.currentplayer->laddernormal.y, &g_Vars.currentplayer->laddernormal.z);
//
// sp74 = -(g_Vars.currentplayer->laddernormal.f[0] * spcc.f[0] + g_Vars.currentplayer->laddernormal.f[2] * spcc.f[2]);
//
// if (g_Vars.lvupdate240freal * -4.0f < sp74) {
// if (sp74 < 0.0f) {
// spcc.x += sp74 * g_Vars.currentplayer->laddernormal.x;
// spcc.z += sp74 * g_Vars.currentplayer->laddernormal.z;
// g_Vars.currentplayer->ladderupdown = sp74 * 0.3f;
// } else {
// propPlayerGetBbox(g_Vars.currentplayer->prop, &width, &ymax, &ymin);
//
// lVar2 = func0002a13c(&g_Vars.currentplayer->prop->pos,
// width * 1.1f, ymax - g_Vars.currentplayer->prop->pos.y,
// (g_Vars.currentplayer->vv_manground - g_Vars.currentplayer->prop->pos.y) + 1.0f,
// g_Vars.currentplayer->prop->rooms, 0x8040);
//
// if (lVar2 == 0) {
// g_Vars.currentplayer->ladderupdown = 0.0f;
// } else {
// spcc.x += sp74 * g_Vars.currentplayer->laddernormal.x;
// spcc.z += sp74 * g_Vars.currentplayer->laddernormal.z;
// g_Vars.currentplayer->ladderupdown = sp74 * 0.3f;
// }
// }
//
// spcc.x *= 0.3f;
// spcc.z *= 0.3f;
// } else {
// g_Vars.currentplayer->ladderupdown = 0.0f;
// }
// }
//
// // 318
// if (g_Vars.currentplayer->lift) {
// struct liftobj *lift = (struct liftobj *) g_Vars.currentplayer->lift->obj;
//
// if (lift->base.type == OBJTYPE_ESCASTEP) {
// spcc.x += lift->base.prop->pos.x - lift->prevpos.x;
// spcc.z += lift->base.prop->pos.z - lift->prevpos.z;
// }
// }
//
// // 36c
// sp8c = g_Vars.currentplayer->prop->pos.x;
// sp88 = g_Vars.currentplayer->prop->pos.z;
//
// bwalk0f0c63bc(&spcc, g_Vars.currentplayer->swaytarget == 0.0f, CDTYPE_ALL);
//
// fVar11 = g_Vars.currentplayer->prop->pos.z - g_Vars.currentplayer->bondprevpos.z;
// fVar10 = g_Vars.currentplayer->prop->pos.x - g_Vars.currentplayer->bondprevpos.x;
//
// sp4c = g_Vars.currentplayer->bond2.unk00.f[0] * spcc.f[2] + g_Vars.currentplayer->bond2.unk00.f[2] * -spcc.f[0];
// sp48 = g_Vars.currentplayer->bond2.unk00.f[2] * spcc.f[2] + g_Vars.currentplayer->bond2.unk00.f[0] * spcc.f[0];
//
// fVar7 = g_Vars.currentplayer->bond2.unk00.f[0] * fVar11 + -g_Vars.currentplayer->bond2.unk00.f[2] * fVar10;
// fVar9 = g_Vars.currentplayer->bond2.unk00.f[2] * fVar11 + g_Vars.currentplayer->bond2.unk00.f[0] * fVar10;
//
// // 428
// if (fVar10 >= 0.0f) {
// if (g_Vars.currentplayer->bondshotspeed[0] > 0.0f) {
// if (spcc.x >= 0.0f && fVar10 < spcc.x) {
// g_Vars.currentplayer->bondshotspeed[0] *= fVar10 / spcc.x;
// }
// } else {
// if (spcc.x < 0.0f) {
// g_Vars.currentplayer->bondshotspeed[0] = 0.0f;
// }
// }
// } else {
// if (g_Vars.currentplayer->bondshotspeed[0] < 0.0f) {
// if (spcc.x <= 0.0f && spcc.x < fVar10) {
// g_Vars.currentplayer->bondshotspeed[0] *= fVar10 / spcc.x;
// }
// } else {
// if (spcc.x > 0.0f) {
// g_Vars.currentplayer->bondshotspeed[0] = 0.0f;
// }
// }
// }
//
// // 504
// if (fVar11 >= 0.0f) {
// if (g_Vars.currentplayer->bondshotspeed[2] > 0.0f) {
// if (spcc.z >= 0.0f && fVar11 < spcc.z) {
// g_Vars.currentplayer->bondshotspeed[2] *= fVar11 / spcc.z;
// }
// } else {
// if (spcc.z < 0.0f) {
// g_Vars.currentplayer->bondshotspeed[2] = 0.0f;
// }
// }
// } else {
// if (g_Vars.currentplayer->bondshotspeed[2] < 0.0f) {
// if (spcc.z <= 0.0f && spcc.z < fVar11) {
// g_Vars.currentplayer->bondshotspeed[2] *= fVar11 / spcc.z;
// }
// } else {
// if (spcc.z > 0.0f) {
// g_Vars.currentplayer->bondshotspeed[2] = 0.0f;
// }
// }
// }
//
// // 5e8
// if (sp4c != 0.0f && g_Vars.currentplayer->speedstrafe * sp4c > 0.0f) {
// fVar7 = fVar7 / sp4c;
//
// if (fVar7 <= 0.0f) {
// g_Vars.currentplayer->speedstrafe = 0.0f;
// } else if (fVar7 < 1.0f) {
// g_Vars.currentplayer->speedstrafe *= fVar7;
// }
// }
//
// // 664
// if (sp48 != 0.0f) {
// if (g_Vars.currentplayer->speedgo * sp48 > 0.0f) {
// fVar9 = fVar9 / sp48;
//
// if (fVar9 <= 0.0f) {
// g_Vars.currentplayer->speedgo = 0.0f;
// } else if (fVar9 < 1.0f) {
// g_Vars.currentplayer->speedgo *= fVar9;
// }
// }
// }
//
// // 6cc
// fVar5_3 = g_Vars.currentplayer->prop->pos.x - sp8c;
// fVar6_2 = g_Vars.currentplayer->prop->pos.z - sp88;
// fVar7_2 = spcc.f[0] * spcc.f[0] + spcc.f[2] * spcc.f[2];
//
// if (fVar7_2 != 0.0f) {
// fVar7_2 = (fVar5_3 * fVar5_3 + fVar6_2 * fVar6_2) / fVar7_2;
// }
//
// fVar5_4 = sqrtf(fVar7_2);
// g_Vars.currentplayer->swayoffset0 += fVar5_4 * spb4;
// g_Vars.currentplayer->swayoffset2 += fVar5_4 * spb0;
// }
//
// sp44 = g_Vars.currentplayer->speedtheta;
// sp40 = g_Vars.currentplayer->speedverta / 0.7f + g_Vars.currentplayer->crouchspeed / 5.0f;
// sp3c = g_Vars.currentplayer->gunspeed;
//
// breathing = bheadGetBreathingValue();
//
// if (sp40 > 1.0f) {
// sp40 = 1.0f;
// } else if (sp40 < -1.0f) {
// sp40 = -1.0f;
// }
//
// if (g_Vars.currentplayer->headanim == ANIM_TWO_GUN_HOLD) {
// breathing *= 1.2f;
// }
//
// bgun0f09d8dc(breathing, sp3c, sp40, sp44, 0.0f);
// bgunSetAdjustPos(g_Vars.currentplayer->vv_verta360 * 0.017450513318181f);
//}
void bwalkTick(void)
{
s32 i;

View File

@ -12477,7 +12477,7 @@ void scenarioHtmActivateUplink(struct chrdata *chr, struct prop *terminal)
if (g_MpSetup.scenario == MPSCENARIO_HACKERCENTRAL) {
struct defaultobj *obj = terminal->obj;
if (obj->flags3 & OBJHFLAG3_HTMTERMINAL) {
if (obj->flags3 & OBJFLAG3_HTMTERMINAL) {
u32 mpindex = mpPlayerGetIndex(chr);
if ((obj->hidden & OBJHFLAG_ACTIVATED_BY_BOND) == 0) {

View File

@ -59211,7 +59211,7 @@ bool objTestForInteract(struct prop *prop)
maybe = true;
} else if (obj->type == OBJTYPE_ALARM
|| (obj->flags & OBJFLAG_THROWNLAPTOP)
|| (obj->flags3 & (OBJHFLAG3_HTMTERMINAL | OBJFLAG3_INTERACTABLE))
|| (obj->flags3 & (OBJFLAG3_HTMTERMINAL | OBJFLAG3_INTERACTABLE))
|| (obj->hidden & (OBJHFLAG_LIFTDOOR | OBJHFLAG_00000002))) {
maybe = true;
} else if (obj->type == OBJTYPE_HOVERBIKE) {

View File

@ -2776,7 +2776,7 @@
#define OBJFLAG3_WALKTHROUGH 0x00000400
#define OBJFLAG3_RTRACKED_BLUE 0x00000800
#define OBJFLAG3_SHOWSHIELD 0x00001000 // Show shield effect around object (always)
#define OBJHFLAG3_HTMTERMINAL 0x00002000 // Terminal for Hacker Central scenario (HTM = Hack That Mac)
#define OBJFLAG3_HTMTERMINAL 0x00002000 // Terminal for Hacker Central scenario (HTM = Hack That Mac)
#define OBJFLAG3_00004000 0x00004000 // Not used in scripts
#define OBJFLAG3_00008000 0x00008000 // Not used in scripts
#define OBJFLAG3_INTERACTABLE 0x00010000

View File

@ -28,7 +28,7 @@ void bwalkUpdatePrevPos(void);
void bwalkHandleActivate(void);
void bwalkApplyMoveData(struct movedata *data);
void bwalkUpdateSpeedTheta(void);
u32 bwalk0f0c69b8(void);
void bwalk0f0c69b8(void);
void bwalkTick(void);
#endif

View File

@ -2519,7 +2519,7 @@ struct player {
/*0x00c0*/ bool bondperimenabled;
/*0x00c4*/ u32 devicesactive;
/*0x00c8*/ s32 badrockettime;
/*0x00cc*/ u32 gunspeed;
/*0x00cc*/ f32 gunspeed;
/*0x00d0*/ s32 bondactivateorreload;
/*0x00d4*/ struct model *model00d4;
/*0x00d8*/ bool isdead;