Decompile autogunTickShoot

This commit is contained in:
Ryan Dwyer
2022-07-21 19:49:09 +10:00
parent 5781a64158
commit f3ce31d5da
11 changed files with 562 additions and 4031 deletions
+14 -14
View File
@@ -64,9 +64,9 @@ u32 var8009cd94;
u8 g_RecentQuipsIndex;
f32 g_EnemyAccuracyScale = 1;
f32 g_DamageReceivedScale = 1;
f32 g_DamageDealtScale = 1;
f32 g_AttackWalkDurationMultiplier = 1;
f32 g_PlayerDamageRxScale = 1;
f32 g_PlayerDamageTxScale = 1;
f32 g_AttackWalkDurationScale = 1;
#if VERSION >= VERSION_NTSC_1_0
u32 var80062cb0 = 0x00000000;
@@ -2469,9 +2469,9 @@ void chrAttackWalk(struct chrdata *chr, bool run)
chr->act_attackwalk.frame60count = 0;
#if PAL
// This is really TICKS(400.0f), but off by one bit :(
chr->act_attackwalk.frame60max = random() % (s32)(333.33331298828f * g_AttackWalkDurationMultiplier) + TICKS(120);
chr->act_attackwalk.frame60max = random() % (s32)(333.33331298828f * g_AttackWalkDurationScale) + TICKS(120);
#else
chr->act_attackwalk.frame60max = random() % (s32)(400 * g_AttackWalkDurationMultiplier) + TICKS(120);
chr->act_attackwalk.frame60max = random() % (s32)(400 * g_AttackWalkDurationScale) + TICKS(120);
#endif
chr->act_attackwalk.facedtarget = false;
chr->act_attackwalk.animcfg = animcfg;
@@ -4378,15 +4378,15 @@ void chrDamage(struct chrdata *chr, f32 damage, struct coord *vector, struct gse
// Solo
if (explosion) {
if (vprop->type == PROPTYPE_PLAYER) {
damage *= g_ExplosionDamageReceivedScale;
damage *= g_ExplosionDamageTxScale;
}
} else if (aprop && aprop->type == PROPTYPE_PLAYER) {
// Player is attacking
damage *= g_DamageDealtScale;
damage *= g_PlayerDamageTxScale;
headshotdamagescale = 25;
} else if (aprop && aprop->type == PROPTYPE_CHR && vprop->type == PROPTYPE_PLAYER) {
// Chr is attacking player
damage *= g_DamageReceivedScale * pdmodeGetEnemyDamage();
damage *= g_PlayerDamageRxScale * pdmodeGetEnemyDamage();
}
if (vprop->type != PROPTYPE_PLAYER) {
@@ -4401,13 +4401,13 @@ void chrDamage(struct chrdata *chr, f32 damage, struct coord *vector, struct gse
// Co-op
if (explosion) {
if (vprop->type == PROPTYPE_PLAYER) {
damage *= g_ExplosionDamageReceivedScale;
damage *= g_ExplosionDamageTxScale;
}
} else if (aprop && aprop->type == PROPTYPE_PLAYER && vprop->type != PROPTYPE_PLAYER) {
damage *= g_DamageDealtScale;
damage *= g_PlayerDamageTxScale;
headshotdamagescale = 25;
} else if (aprop && aprop->type == PROPTYPE_CHR && vprop->type == PROPTYPE_PLAYER) {
damage *= g_DamageReceivedScale * pdmodeGetEnemyDamage();
damage *= g_PlayerDamageRxScale * pdmodeGetEnemyDamage();
}
if (vprop->type != PROPTYPE_PLAYER) {
@@ -4422,13 +4422,13 @@ void chrDamage(struct chrdata *chr, f32 damage, struct coord *vector, struct gse
// Anti
if (explosion) {
if (vprop == g_Vars.bond->prop) {
damage *= g_ExplosionDamageReceivedScale;
damage *= g_ExplosionDamageTxScale;
}
} else if (aprop && aprop == g_Vars.bond->prop) {
damage *= g_DamageDealtScale;
damage *= g_PlayerDamageTxScale;
headshotdamagescale = 25;
} else if (aprop && aprop != g_Vars.bond->prop && vprop == g_Vars.bond->prop) {
damage *= g_DamageReceivedScale * pdmodeGetEnemyDamage();
damage *= g_PlayerDamageRxScale * pdmodeGetEnemyDamage();
}
if (vprop != g_Vars.bond->prop) {
+1 -1
View File
@@ -32,7 +32,7 @@ s32 g_MaxExplosions;
s32 g_ExplosionShakeTotalTimer = 0;
s32 g_ExplosionShakeIntensityTimer = 0;
f32 g_ExplosionDamageReceivedScale = 1;
f32 g_ExplosionDamageTxScale = 1;
u32 var8007e4ac = 0x0000004b;
u32 var8007e4b0 = 0x000001e0;
u32 var8007e4b4 = 0x000000a8;
+1 -1
View File
@@ -12,7 +12,7 @@ void explosionsReset(void)
g_ExplosionShakeTotalTimer = 0;
g_ExplosionShakeIntensityTimer = 0;
g_ExplosionDamageReceivedScale = 1;
g_ExplosionDamageTxScale = 1;
g_MaxExplosions = 6;
+3 -3
View File
@@ -25,9 +25,9 @@ void resetSomeStageThings(void)
g_StageFlags = 0;
g_EnemyAccuracyScale = 1;
g_DamageReceivedScale = 1;
g_DamageDealtScale = 1;
g_AttackWalkDurationMultiplier = 1;
g_PlayerDamageRxScale = 1;
g_PlayerDamageTxScale = 1;
g_AttackWalkDurationScale = 1;
var80062cbc = 0;
}
+102 -106
View File
@@ -1742,93 +1742,93 @@ void lvUpdateSoloHandicaps(void)
{
if (g_Vars.antiplayernum >= 0) {
if (g_Difficulty == DIFF_A) {
g_CameraWaitMultiplier = 2;
g_CctvDamageMultiplier = 2;
var80069950 = 0.5f;
var80069954 = 0.5f;
g_AutogunDamageMultiplier = 2;
g_CctvWaitScale = 2;
g_CctvDamageRxScale = 2;
g_AutogunAccuracyScale = 0.5f;
g_AutogunDamageTxScale = 0.5f;
g_AutogunDamageRxScale = 2;
g_EnemyAccuracyScale = 0.5f;
g_DamageReceivedScale = 0.35f;
g_DamageDealtScale = 4;
g_ExplosionDamageReceivedScale = 0.25f;
g_PlayerDamageRxScale = 0.35f;
g_PlayerDamageTxScale = 4;
g_ExplosionDamageTxScale = 0.25f;
g_AutoAimScale = 1.5f;
g_AmmoMultiplier = 3;
g_AttackWalkDurationMultiplier = 0.2f;
g_AmmoQuantityScale = 3;
g_AttackWalkDurationScale = 0.2f;
} else if (g_Difficulty == DIFF_SA) {
g_CameraWaitMultiplier = 2;
g_CctvDamageMultiplier = 1.5f;
var80069950 = 0.5f;
var80069954 = 0.5f;
g_AutogunDamageMultiplier = 1.5f;
g_CctvWaitScale = 2;
g_CctvDamageRxScale = 1.5f;
g_AutogunAccuracyScale = 0.5f;
g_AutogunDamageTxScale = 0.5f;
g_AutogunDamageRxScale = 1.5f;
g_EnemyAccuracyScale = 0.6f;
g_DamageReceivedScale = 0.5f;
g_DamageDealtScale = 3;
g_ExplosionDamageReceivedScale = 0.25f;
g_PlayerDamageRxScale = 0.5f;
g_PlayerDamageTxScale = 3;
g_ExplosionDamageTxScale = 0.25f;
g_AutoAimScale = 1.1f;
g_AmmoMultiplier = 2.5f;
g_AttackWalkDurationMultiplier = 0.5f;
g_AmmoQuantityScale = 2.5f;
g_AttackWalkDurationScale = 0.5f;
} else {
g_CameraWaitMultiplier = 2;
g_CctvDamageMultiplier = 1;
var80069950 = 0.5f;
var80069954 = 0.5f;
g_AutogunDamageMultiplier = 1;
g_CctvWaitScale = 2;
g_CctvDamageRxScale = 1;
g_AutogunAccuracyScale = 0.5f;
g_AutogunDamageTxScale = 0.5f;
g_AutogunDamageRxScale = 1;
g_EnemyAccuracyScale = 0.7f;
g_DamageReceivedScale = 0.65f;
g_DamageDealtScale = 2;
g_ExplosionDamageReceivedScale = 0.25f;
g_PlayerDamageRxScale = 0.65f;
g_PlayerDamageTxScale = 2;
g_ExplosionDamageTxScale = 0.25f;
g_AutoAimScale = 0.75f;
g_AmmoMultiplier = 2;
g_AttackWalkDurationMultiplier = 1;
g_AmmoQuantityScale = 2;
g_AttackWalkDurationScale = 1;
}
} else if (g_Vars.coopplayernum >= 0) {
if (g_Difficulty == DIFF_A) {
g_CameraWaitMultiplier = 2;
g_CctvDamageMultiplier = 2;
var80069950 = 0.5f;
var80069954 = 0.5f;
g_AutogunDamageMultiplier = 2;
g_CctvWaitScale = 2;
g_CctvDamageRxScale = 2;
g_AutogunAccuracyScale = 0.5f;
g_AutogunDamageTxScale = 0.5f;
g_AutogunDamageRxScale = 2;
g_EnemyAccuracyScale = 0.6f;
g_DamageReceivedScale = 0.5f;
g_DamageDealtScale = 2;
g_ExplosionDamageReceivedScale = 0.25f;
g_PlayerDamageRxScale = 0.5f;
g_PlayerDamageTxScale = 2;
g_ExplosionDamageTxScale = 0.25f;
g_AutoAimScale = 1.5f;
g_AmmoMultiplier = 2;
g_AttackWalkDurationMultiplier = 0.2f;
g_AmmoQuantityScale = 2;
g_AttackWalkDurationScale = 0.2f;
} else if (g_Difficulty == DIFF_SA) {
g_CameraWaitMultiplier = 1;
g_CctvDamageMultiplier = 1;
var80069950 = 0.75f;
var80069954 = 1;
g_AutogunDamageMultiplier = 1;
g_CctvWaitScale = 1;
g_CctvDamageRxScale = 1;
g_AutogunAccuracyScale = 0.75f;
g_AutogunDamageTxScale = 1;
g_AutogunDamageRxScale = 1;
g_EnemyAccuracyScale = 0.75f;
g_DamageReceivedScale = 1;
g_DamageDealtScale = 1;
g_ExplosionDamageReceivedScale = 1;
g_PlayerDamageRxScale = 1;
g_PlayerDamageTxScale = 1;
g_ExplosionDamageTxScale = 1;
#if VERSION >= VERSION_JPN_FINAL
g_AutoAimScale = 0.75f;
#else
g_AutoAimScale = g_Jpn ? 1.1f : 0.75f;
#endif
g_AmmoMultiplier = 1.5f;
g_AttackWalkDurationMultiplier = 0.5f;
g_AmmoQuantityScale = 1.5f;
g_AttackWalkDurationScale = 0.5f;
} else {
g_CameraWaitMultiplier = 1;
g_CctvDamageMultiplier = 1;
var80069950 = 1;
var80069954 = 1.5f;
g_AutogunDamageMultiplier = 1;
g_CctvWaitScale = 1;
g_CctvDamageRxScale = 1;
g_AutogunAccuracyScale = 1;
g_AutogunDamageTxScale = 1.5f;
g_AutogunDamageRxScale = 1;
g_EnemyAccuracyScale = 1.5f;
g_DamageReceivedScale = 1.5f;
g_DamageDealtScale = 1;
g_ExplosionDamageReceivedScale = 1.5f;
g_PlayerDamageRxScale = 1.5f;
g_PlayerDamageTxScale = 1;
g_ExplosionDamageTxScale = 1.5f;
#if VERSION >= VERSION_JPN_FINAL
g_AutoAimScale = 0.2f;
#else
g_AutoAimScale = g_Jpn ? 0.75f : 0.2f;
#endif
g_AmmoMultiplier = 1;
g_AttackWalkDurationMultiplier = 1;
g_AmmoQuantityScale = 1;
g_AttackWalkDurationScale = 1;
}
} else {
if (g_Difficulty == DIFF_A) {
@@ -1840,74 +1840,70 @@ void lvUpdateSoloHandicaps(void)
if (totalhealth <= 0.125f) {
frac = 0.5f;
} else {
frac = 1;
if (totalhealth <= 0.6f) {
frac = (totalhealth - 0.125f) * 0.5f / 0.47500002384186f + 0.5f;
}
} else if (totalhealth <= 0.6f) {
frac = (totalhealth - 0.125f) * 0.5f / 0.47500002384186f + 0.5f;
}
}
g_CameraWaitMultiplier = 2;
g_CctvDamageMultiplier = 2;
var80069950 = 0.5f * frac;
var80069954 = 0.5f * frac;
g_AutogunDamageMultiplier = 2;
g_CctvWaitScale = 2;
g_CctvDamageRxScale = 2;
g_AutogunAccuracyScale = 0.5f * frac;
g_AutogunDamageTxScale = 0.5f * frac;
g_AutogunDamageRxScale = 2;
g_EnemyAccuracyScale = 0.6f;
g_DamageReceivedScale = 0.5f * frac;
g_DamageDealtScale = 2;
g_ExplosionDamageReceivedScale = 0.25f * frac;
g_PlayerDamageRxScale = 0.5f * frac;
g_PlayerDamageTxScale = 2;
g_ExplosionDamageTxScale = 0.25f * frac;
g_AutoAimScale = 1.5f;
g_AmmoMultiplier = 2;
g_AttackWalkDurationMultiplier = 0.2f;
g_AmmoQuantityScale = 2;
g_AttackWalkDurationScale = 0.2f;
} else if (g_Difficulty == DIFF_SA) {
g_CameraWaitMultiplier = 1;
g_CctvDamageMultiplier = 1;
var80069950 = 0.75f;
var80069954 = 0.75f;
g_AutogunDamageMultiplier = 1;
g_CctvWaitScale = 1;
g_CctvDamageRxScale = 1;
g_AutogunAccuracyScale = 0.75f;
g_AutogunDamageTxScale = 0.75f;
g_AutogunDamageRxScale = 1;
g_EnemyAccuracyScale = 0.8f;
g_DamageReceivedScale = 0.6f;
g_DamageDealtScale = 1;
g_ExplosionDamageReceivedScale = 0.75f;
g_PlayerDamageRxScale = 0.6f;
g_PlayerDamageTxScale = 1;
g_ExplosionDamageTxScale = 0.75f;
#if VERSION >= VERSION_JPN_FINAL
g_AutoAimScale = 0.75f;
#else
g_AutoAimScale = g_Jpn ? 1.1f : 0.75f;
#endif
g_AmmoMultiplier = 1.5f;
g_AttackWalkDurationMultiplier = 0.5f;
g_AmmoQuantityScale = 1.5f;
g_AttackWalkDurationScale = 0.5f;
} else if (g_Difficulty == DIFF_PA) {
g_CameraWaitMultiplier = 1;
g_CctvDamageMultiplier = 1;
var80069950 = 1;
var80069954 = 1;
g_AutogunDamageMultiplier = 1;
g_CctvWaitScale = 1;
g_CctvDamageRxScale = 1;
g_AutogunAccuracyScale = 1;
g_AutogunDamageTxScale = 1;
g_AutogunDamageRxScale = 1;
g_EnemyAccuracyScale = 1.175f;
g_DamageReceivedScale = 1;
g_DamageDealtScale = 1;
g_ExplosionDamageReceivedScale = 1;
g_PlayerDamageRxScale = 1;
g_PlayerDamageTxScale = 1;
g_ExplosionDamageTxScale = 1;
#if VERSION >= VERSION_JPN_FINAL
g_AutoAimScale = 0.2f;
#else
g_AutoAimScale = g_Jpn ? 0.75f : 0.2f;
#endif
g_AmmoMultiplier = 1;
g_AttackWalkDurationMultiplier = 1;
g_AmmoQuantityScale = 1;
g_AttackWalkDurationScale = 1;
} else if (g_Difficulty == DIFF_PD) {
g_CameraWaitMultiplier = 1;
g_CctvDamageMultiplier = 1;
var80069950 = 1;
var80069954 = 1;
g_AutogunDamageMultiplier = 1;
g_CctvWaitScale = 1;
g_CctvDamageRxScale = 1;
g_AutogunAccuracyScale = 1;
g_AutogunDamageTxScale = 1;
g_AutogunDamageRxScale = 1;
g_EnemyAccuracyScale = 1.1f;
g_DamageReceivedScale = 1;
g_DamageDealtScale = 1;
g_ExplosionDamageReceivedScale = 1;
g_PlayerDamageRxScale = 1;
g_PlayerDamageTxScale = 1;
g_ExplosionDamageTxScale = 1;
g_AutoAimScale = 1;
g_AmmoMultiplier = 1;
g_AttackWalkDurationMultiplier = 1;
g_AmmoQuantityScale = 1;
g_AttackWalkDurationScale = 1;
}
}
}
+416 -3881
View File
File diff suppressed because it is too large Load Diff
+6 -6
View File
@@ -290,12 +290,12 @@ void propsReset(void)
g_EmbedProp = NULL;
g_EmbedHitPart = -1;
g_CameraWaitMultiplier = 1;
g_CctvDamageMultiplier = 1;
var80069950 = 1;
var80069954 = 1;
g_AutogunDamageMultiplier = 1;
g_AmmoMultiplier = 1;
g_CctvWaitScale = 1;
g_CctvDamageRxScale = 1;
g_AutogunAccuracyScale = 1;
g_AutogunDamageTxScale = 1;
g_AutogunDamageRxScale = 1;
g_AmmoQuantityScale = 1;
g_MaxThrownLaptops = g_Vars.normmplayerisrunning ? 12 : PLAYERCOUNT();
+2 -2
View File
@@ -2154,9 +2154,9 @@
#define MODELPART_AUTOGUN_0002 0x0002 // position
#define MODELPART_AUTOGUN_0003 0x0003 // position
#define MODELPART_AUTOGUN_0004 0x0004 // position
#define MODELPART_AUTOGUN_0005 0x0005 // gunfire
#define MODELPART_AUTOGUN_FLASHLEFT 0x0005 // gunfire
#define MODELPART_AUTOGUN_0006 0x0006 // position
#define MODELPART_AUTOGUN_0007 0x0007 // gunfire
#define MODELPART_AUTOGUN_FLASHRIGHT 0x0007 // gunfire
#define MODELPART_BASIC_0064 0x0064 // type19
#define MODELPART_BASIC_0065 0x0065 // type19
#define MODELPART_BASIC_0066 0x0066 // type19
+10 -10
View File
@@ -163,9 +163,9 @@ extern s32 var80062c80;
extern s32 g_ActiveMaleHeadsIndex;
extern s32 g_ActiveFemaleHeadsIndex;
extern f32 g_EnemyAccuracyScale;
extern f32 g_DamageReceivedScale;
extern f32 g_DamageDealtScale;
extern f32 g_AttackWalkDurationMultiplier;
extern f32 g_PlayerDamageRxScale;
extern f32 g_PlayerDamageTxScale;
extern f32 g_AttackWalkDurationScale;
extern s32 var80062cbc;
extern struct animtablerow g_DeathAnimsHumanGun[];
extern struct animtablerow g_AnimTableHumanSlumped[];
@@ -218,12 +218,12 @@ extern struct linksceneryobj *g_LinkedScenery;
extern struct blockedpathobj *g_BlockedPaths;
extern struct prop *g_EmbedProp;
extern s32 g_EmbedHitPart;
extern f32 g_CameraWaitMultiplier;
extern f32 g_CctvDamageMultiplier;
extern f32 var80069950;
extern f32 var80069954;
extern f32 g_AutogunDamageMultiplier;
extern f32 g_AmmoMultiplier;
extern f32 g_CctvWaitScale;
extern f32 g_CctvDamageRxScale;
extern f32 g_AutogunAccuracyScale;
extern f32 g_AutogunDamageTxScale;
extern f32 g_AutogunDamageRxScale;
extern f32 g_AmmoQuantityScale;
extern struct padeffectobj *g_PadEffects;
extern s32 g_LastPadEffectIndex;
extern struct autogunobj *g_ThrownLaptops;
@@ -417,7 +417,7 @@ extern struct coord g_TeleportToLook;
extern struct vtxstoretype g_VtxstoreTypes[];
extern s32 g_ExplosionShakeTotalTimer;
extern s32 g_ExplosionShakeIntensityTimer;
extern f32 g_ExplosionDamageReceivedScale;
extern f32 g_ExplosionDamageTxScale;
extern struct sparktype g_SparkTypes[];
extern s32 g_SparksAreActive;
extern struct weatherdata *g_WeatherData;
+1 -1
View File
@@ -143,7 +143,7 @@ void bgunRender(Gfx **gdl);
struct sndstate **bgunAllocateAudioHandle(void);
void bgunPlayPropHitSound(struct gset *gset, struct prop *prop, s32 texturenum);
void bgunPlayGlassHitSound(struct coord *pos, s16 *rooms, s32 texturenum);
void bgunPlayBgHitSound(struct gset *gset, struct coord *arg1, s32 texturenum, s16 *arg3);
void bgunPlayBgHitSound(struct gset *gset, struct coord *hitpos, s32 texturenum, s16 *arg3);
void bgunSetTriggerOn(s32 handnum, bool on);
s32 bgunConsiderToggleGunFunction(s32 usedowntime, bool firing, s32 arg2);
void bgun0f0a8c50(void);
+6 -6
View File
@@ -8,11 +8,11 @@ extern u32 var800698f0;
extern u32 var800698f4;
extern struct prop *g_EmbedProp;
extern s32 g_EmbedHitPart;
extern f32 g_CameraWaitMultiplier;
extern f32 g_CctvDamageMultiplier;
extern f32 var80069950;
extern f32 var80069954;
extern f32 g_AutogunDamageMultiplier;
extern f32 g_CctvWaitScale;
extern f32 g_CctvDamageRxScale;
extern f32 g_AutogunAccuracyScale;
extern f32 g_AutogunDamageTxScale;
extern f32 g_AutogunDamageRxScale;
extern struct beam *g_ThrownLaptopBeams;
void alarmActivate(void);
@@ -170,7 +170,7 @@ void fanTick(struct prop *fan);
void fanUpdateModel(struct prop *fan);
void autogunTick(struct prop *autogun);
void autogunInitMatrices(struct prop *autogun, Mtxf *mtx);
void func0f079f1c(struct prop *autogun);
void autogunTickShoot(struct prop *autogun);
void chopperInitMatrices(struct prop *chopper);
struct chopperobj *chopperFromHovercar(struct chopperobj *obj);
bool chopperCheckTargetInFov(struct chopperobj *hovercar, u8 param_2);