Decompile chrDamage

This commit is contained in:
Ryan Dwyer
2021-04-24 11:23:05 +10:00
parent 7fe4b24139
commit b75e5d9242
67 changed files with 1567 additions and 7067 deletions
+27 -18
View File
@@ -263,22 +263,30 @@
label,
/**
* Damages the chr by the given amount.
* Damages the chr using the given weapon's stats.
*/
#define damage_chr(chr, value) \
#define damage_chr(chr, weapon) \
mkshort(0x0019), \
chr, \
0x08, \
value, \
0x00, \
0x00, \
0x00,
IBH_HEAD, \
weapon, \
0, \
0, \
FUNC_PRIMARY,
#define chr_shoot_chr(chr1, chr2, weapon) \
/**
* Makes achr damage vchr as if achr shot vchr. No actual firing animation is
* done, nor is any bullet beam shown and the chrs don't even need line of sight
* to each other.
*
* The ibh value is the body part the victim is shot in.
* It's expected to be an IBH constant.
*/
#define chr_damage_chr(achr, vchr, ibh) \
mkshort(0x001a), \
chr1, \
chr2, \
weapon,
achr, \
vchr, \
ibh,
/**
* Makes the chr consider throwing a grenade, using their grenade probability
@@ -3200,14 +3208,15 @@
bool,
/**
* Poison or unpoison the given chr by the given amount.
* Damage or undamage the given chr by the given amount.
* 1 unit of amount is equal to 1/32 of a damage unit (0.03125).
* For reference, full health for a player is 8 damage units.
*
* If operation is 0, the chr is poisoned, likely without any ongoing effects.
* If operation is 2, the chr is poisoned, likely with the same effects as being
* hit by a combat knife.
* If operation is anything else, the chr is unpoisoned by the given amount.
* If operation is 0, the chr is damaged.
* If operation is 1, the chr is undamaged (ie. given health).
* If operation is 2, the chr is damaged and poisoned.
*/
#define poison_chr(chr, amount, operation) \
#define damage_chr_by_amount(chr, amount, operation) \
mkshort(0x016e), \
chr, \
amount, \
@@ -3412,7 +3421,7 @@
* The two values are the lower and upper bounds of a random percentage. For
* example, when using the values 40 and 60 a random percentage will be chosen
* between 40% and 60%. This percentage is then applied to the weapon's clip
* size. When happens with that is not yet known.
* size. What happens with that is not yet known.
*
* Note that this command can fail, but doesn't have a label argument so failure
* cannot be detected.
+67 -53
View File
@@ -401,6 +401,10 @@
#define CHECKSUM_PLACEHOLDER 0x99aabbcc
#define CHOKETYPE_NONE 0
#define CHOKETYPE_GURGLE 1
#define CHOKETYPE_GASP 2
#define CHR_P1P2_OPPOSITE 0xf1
#define CHR_P1P2 0xf2
#define CHR_ANY 0xf3 // Only supported by if_chr_activated_object command
@@ -446,7 +450,7 @@
#define CHRFLAG0_10000000 0x10000000 // If set, "IM GOING TO POP"
#define CHRFLAG0_CAN_HEARSPAWN 0x20000000
#define CHRFLAG0_NOHEAR 0x40000000 // Globals, Villa
#define CHRFLAG0_80000000 0x80000000 // Globals, Villa, Chicago, CI Training
#define CHRFLAG0_CANLOSEGUN 0x80000000 // Globals, Villa, Chicago, CI Training
// chr->flags2
#define CHRFLAG1_00000001 0x00000001 // Globals, Extraction, Air Base, Deep Sea
@@ -483,38 +487,38 @@
#define CHRFLAG1_80000000 0x80000000 // Globals
// chr->hidden
#define CHRHFLAG_00000001 0x00000001 // Set when chr drops weapon
#define CHRHFLAG_IS_HEARING_TARGET 0x00000002 // Not used in scripts
#define CHRHFLAG_00000004 0x00000004 // Related to firing - hand 1
#define CHRHFLAG_00000008 0x00000008 // Related to firing - hand 0
#define CHRHFLAG_00000010 0x00000010 // Not used in scripts
#define CHRHFLAG_REAPED 0x00000020
#define CHRHFLAG_TIMER_RUNNING 0x00000040
#define CHRHFLAG_00000080 0x00000080 // Not used in scripts
#define CHRHFLAG_00000100 0x00000100 // Not used in scripts
#define CHRHFLAG_00000200 0x00000200 // Not used in scripts
#define CHRHFLAG_PASSIVE 0x00000400
#define CHRHFLAG_KEEP_CORPSE 0x00000800 // Appears to be misnamed
#define CHRHFLAG_UNTARGETABLE 0x00001000
#define CHRHFLAG_00002000 0x00002000 // Globals, Rescue guards once disguised
#define CHRHFLAG_TRIGGER_BUDDY_WARP 0x00004000
#define CHRHFLAG_00008000 0x00008000 // Duel only. Set on each opponent when they start combat.
#define CHRHFLAG_DISGUISE_UNCOVERED 0x00010000
#define CHRHFLAG_00020000 0x00020000 // Used in every stage, on Jo and other chrs. Only ever set, never unset or read.
#define CHRHFLAG_00040000 0x00040000 // Not used in scripts
#define CHRHFLAG_DISGUISED 0x00080000
#define CHRHFLAG_00100000 0x00100000 // Set before warping to pad, never unset or read
#define CHRHFLAG_NEEDANIM 0x00200000
#define CHRHFLAG_00400000 0x00400000 // Set in Chicago, G5, AF1, Defense, Attack Ship, Skedar Ruins, Maian SOS, WAR
#define CHRHFLAG_00800000 0x00800000 // Not used in scripts
#define CHRHFLAG_01000000 0x01000000 // Globals - asked about gun (eg. "where did you get that?")
#define CHRHFLAG_02000000 0x02000000 // Similar to DISGUISED flag, but not sure where set
#define CHRHFLAG_04000000 0x04000000 // Related to disguise and detection
#define CHRHFLAG_08000000 0x08000000 // Globals, Villa and G5
#define CHRHFLAG_10000000 0x10000000 // Related to invincible flag
#define CHRHFLAG_CLOAKED 0x20000000
#define CHRHFLAG_ANTICANNOTPUSH 0x40000000
#define CHRHFLAG_PSYCHOSISED 0x80000000
#define CHRHFLAG_00000001 0x00000001 // Set when chr drops weapon
#define CHRHFLAG_IS_HEARING_TARGET 0x00000002 // Not used in scripts
#define CHRHFLAG_00000004 0x00000004 // Related to firing - hand 1
#define CHRHFLAG_00000008 0x00000008 // Related to firing - hand 0
#define CHRHFLAG_00000010 0x00000010 // Not used in scripts
#define CHRHFLAG_REAPED 0x00000020
#define CHRHFLAG_TIMER_RUNNING 0x00000040
#define CHRHFLAG_00000080 0x00000080 // Not used in scripts
#define CHRHFLAG_00000100 0x00000100 // Not used in scripts
#define CHRHFLAG_00000200 0x00000200 // Not used in scripts
#define CHRHFLAG_PASSIVE 0x00000400
#define CHRHFLAG_KEEP_CORPSE 0x00000800 // Appears to be misnamed
#define CHRHFLAG_UNTARGETABLE 0x00001000
#define CHRHFLAG_00002000 0x00002000 // Globals, Rescue guards once disguised
#define CHRHFLAG_TRIGGER_BUDDY_WARP 0x00004000
#define CHRHFLAG_00008000 0x00008000 // Duel only. Set on each opponent when they start combat.
#define CHRHFLAG_DISGUISE_UNCOVERED 0x00010000
#define CHRHFLAG_00020000 0x00020000 // Used in every stage, on Jo and other chrs. Only ever set, never unset or read.
#define CHRHFLAG_00040000 0x00040000 // Not used in scripts
#define CHRHFLAG_DISGUISED 0x00080000
#define CHRHFLAG_00100000 0x00100000 // Set before warping to pad, never unset or read
#define CHRHFLAG_NEEDANIM 0x00200000
#define CHRHFLAG_00400000 0x00400000 // Set in Chicago, G5, AF1, Defense, Attack Ship, Skedar Ruins, Maian SOS, WAR
#define CHRHFLAG_00800000 0x00800000 // Not used in scripts
#define CHRHFLAG_01000000 0x01000000 // Globals - asked about gun (eg. "where did you get that?")
#define CHRHFLAG_02000000 0x02000000 // Similar to DISGUISED flag, but not sure where set
#define CHRHFLAG_04000000 0x04000000 // Related to disguise and detection
#define CHRHFLAG_08000000 0x08000000 // Globals, Villa and G5
#define CHRHFLAG_10000000 0x10000000 // Related to invincible flag
#define CHRHFLAG_CLOAKED 0x20000000
#define CHRHFLAG_ANTINONINTERACTABLE 0x40000000
#define CHRHFLAG_PSYCHOSISED 0x80000000
// chr->hidden2
#define CHRH2FLAG_0001 0x0001
@@ -530,7 +534,7 @@
#define CHRCFLAG_CLONEABLE 0x00000002
#define CHRCFLAG_NEAR_MISS 0x00000004
#define CHRCFLAG_NEVER_BEEN_ON_SCREEN 0x00000008
#define CHRCFLAG_INVINCIBLE_TO_GUNFIRE 0x00000010
#define CHRCFLAG_INVINCIBLE 0x00000010
#define CHRCFLAG_00000020 0x00000020 // Chicago, Infiltration, AF1, Ruins, WAR
#define CHRCFLAG_00000040 0x00000040 // Used quite a lot
#define CHRCFLAG_00000080 0x00000080 // Defection programmer, Rescue lab techs, globals when doing idle animation
@@ -557,7 +561,7 @@
#define CHRCFLAG_10000000 0x10000000 // Not used in scripts
#define CHRCFLAG_20000000 0x20000000 // Not used in scripts
#define CHRCFLAG_40000000 0x40000000 // Not used in scripts
#define CHRCFLAG_INJURED 0x80000000
#define CHRCFLAG_INJUREDTARGET 0x80000000
#define CIQUIP_GREETING 0
#define CIQUIP_MAIN 1
@@ -855,6 +859,8 @@
// Weapon functions
#define FUNC_PRIMARY 0
#define FUNC_SECONDARY 1
#define FUNC_2 2
#define FUNC_POISON 3 // Internal function for delivering knife poison periodically
#define FUNCFLAG_BURST3 0x00000002
#define FUNCFLAG_BURST50 0x00000020 // automatics only
@@ -866,13 +872,13 @@
#define FUNCFLAG_BURST2 0x00001000
#define FUNCFLAG_NOMUZZLEFLASH 0x00002000
#define FUNCFLAG_EXPLOSIVESHELLS 0x00004000
#define FUNCFLAG_LESSDAMAGE 0x00008000
#define FUNCFLAG_BLUNTIMPACT 0x00008000
#define FUNCFLAG_NOSTUN 0x00010000
#define FUNCFLAG_BURST5 0x00020000
#define FUNCFLAG_DISCARDWEAPON 0x00040000 // Dragon and Laptop throw
#define FUNCFLAG_THREATDETECTOR 0x00080000
#define FUNCFLAG_AUTOSWITCHUNSELECTABLE 0x00100000
#define FUNCFLAG_00200000 0x00200000 // Psychosis gun only, but doesn't trigger psychosis
#define FUNCFLAG_PSYCHOSIS 0x00200000
#define FUNCFLAG_00400000 0x00400000 // punch, disarm and pistol whip
#define FUNCFLAG_00800000 0x00800000 // mostly throwables but some projectiles too
#define FUNCFLAG_08000000 0x08000000 // rockets
@@ -1026,6 +1032,9 @@
#define HANGARBIO_MAIANVESSEL 21
#define HANGARBIO_SKEDARSHUTTLE 22
#define HATTYPE_METAL 3
#define HATTYPE_CLOTH 5
#define HEALTHSHOWMODE_HIDDEN 0 // health bar not visible
#define HEALTHSHOWMODE_OPENING 1 // height expanding
#define HEALTHSHOWMODE_PREVIOUS 2 // full height, showing previous health amount
@@ -1055,21 +1064,26 @@
#define HUDMSGTYPE_11 11
// chr->ivebeenhit values
#define IBH_LFOOT 1
#define IBH_LSHIN 2
#define IBH_LTHIGH 3
#define IBH_RFOOT 4
#define IBH_RSHIN 5
#define IBH_RTHIGH 6
#define IBH_PELVIS 7
#define IBH_HEAD 8
#define IBH_LHAND 9
#define IBH_LFOREARM 10
#define IBH_LBICEP 11
#define IBH_RHAND 12
#define IBH_RFOREARM 13
#define IBH_RBICEP 14
#define IBH_TORSO 15
#define IBH_LFOOT 1
#define IBH_LSHIN 2
#define IBH_LTHIGH 3
#define IBH_RFOOT 4
#define IBH_RSHIN 5
#define IBH_RTHIGH 6
#define IBH_PELVIS 7
#define IBH_HEAD 8
#define IBH_LHAND 9
#define IBH_LFOREARM 10
#define IBH_LBICEP 11
#define IBH_RHAND 12
#define IBH_RFOREARM 13
#define IBH_RBICEP 14
#define IBH_TORSO 15
#define IBH_TAIL 16
#define IBH_GUN 100
#define IBH_HAT 110
#define IBH_GENERAL 200
#define IBH_GENERALHALF 201
#define IDLEACTION_STANDING 0x01
#define IDLEACTION_SITTING_TYPING 0x02
@@ -2958,7 +2972,7 @@
#define SHOTREGION_BODY 2
#define SHOTREGION_LIMB 3
#define SHOTREGION_GUN 4
#define SHOTREGION_5 5 // hat?
#define SHOTREGION_HAT 5
#define SHOTREGION_OBJECT 6
#define SIGHT_DEFAULT 0
+3 -3
View File
@@ -191,8 +191,8 @@ extern s32 var80062c80;
extern s32 g_ActiveMaleHeadsIndex;
extern s32 g_ActiveFemaleHeadsIndex;
extern f32 var80062ca0;
extern f32 var80062ca4;
extern f32 var80062ca8;
extern f32 g_DamageReceivedScale;
extern f32 g_DamageDealtScale;
extern f32 var80062cac;
extern s32 var80062cbc;
extern struct animtablerow g_AnimTableHumanType100_A[];
@@ -447,7 +447,7 @@ extern u32 var8007dc00;
extern struct var8007e3d0 var8007e3d0[];
extern u32 var8007e4a0;
extern u32 var8007e4a4;
extern f32 var8007e4a8;
extern f32 g_ExplosionDamageReceivedScale;
extern struct sparktype g_SparkTypes[];
extern s32 g_SparksAreActive;
extern struct weatherdata *g_WeatherData;
+3 -3
View File
@@ -15,8 +15,8 @@ s16 getNextUnusedChrnum(void);
struct prop *func0f020b14(struct prop *prop, struct model *model, struct coord *pos, s16 *rooms, f32 arg3, u8 *ailist);
void func0f020d44(struct prop *prop, bool removechr);
void chrUpdateAimProperties(struct chrdata *chr);
void func0f02133c(struct chrdata *chr);
void chrDoFlinchcntThing(struct chrdata *chr, f32 arg1);
void chrFlinchBody(struct chrdata *chr);
void chrFlinchHead(struct chrdata *chr, f32 arg1);
f32 func0f02143c(struct chrdata *chr);
void func0f021fa8(struct chrdata *chr, struct coord *pos, s16 *rooms);
void func0f0220ec(struct chrdata *chr, s32 arg1, s32 arg2);
@@ -49,7 +49,7 @@ u32 func0f028a50(void);
u32 func0f028d50(void);
u32 func0f028e18(void);
u32 func0f028e6c(void);
u32 func0f028f7c(void);
void func0f028f7c(struct prop *prop, f32 shield, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6);
void func0f0291d4(struct var80062a8c *thing);
void func0f0292bc(struct prop *prop);
s32 func0f02932c(struct prop *prop, s32 arg1);
+12 -12
View File
@@ -51,21 +51,21 @@ void func0f031384(struct chrdata *chr, struct var80065750 **arg1, bool arg2, s32
void chrAttackAmount(struct chrdata *chr, u32 entitytype, u32 entityid, u32 arg3);
void chrBeginDeath(struct chrdata *chr, struct coord *dir, f32 relangle, s32 tableid, struct shorthand *hand, bool knockout, s32 aplayernum);
u32 func0f032ac4(void);
void func0f032fe4(struct chrdata *chr, struct coord *pos, f32 arg2, f32 arg3, u32 *arg4, u32 arg5);
void func0f03323c(struct chrdata *chr, struct coord *pos, f32 arg2);
u32 func0f033654(void);
void func0f0336a8(struct chrdata *chr, u32 arg1, u32 arg2, u32 arg3);
u32 func0f033728(void);
u32 func0f0338e0(void);
void func0f032fe4(struct chrdata *chr, struct coord *pos, f32 angle, s32 ibh, struct shorthand *hand, s32 playernum);
void chrYeetFromPos(struct chrdata *chr, struct coord *pos, f32 arg2);
s32 handGetBlurAmount(struct shorthand *hand);
void chrKnockOut(struct chrdata *chr, f32 angle, s32 ibh, struct shorthand *hand);
bool func0f033728(struct chrdata *chr, f32 *arg1);
void chrChoke(struct chrdata *chr, s32 choketype);
void chrSetShield(struct chrdata *chr, f32 shield);
u32 func0f034080(void);
void chrPoison(struct chrdata *chr, f32 damage, struct coord *vector, struct shorthand *hand, struct prop *prop);
void func0f03417c(struct chrdata *chr, f32 damage, struct coord *vector, struct shorthand *hand, struct prop *prop);
bool func0f034080(struct chrdata *chr, s32 arg1, struct prop *prop, s32 arg3, s32 arg4, s32 arg5);
void chrDamageByMisc(struct chrdata *chr, f32 damage, struct coord *vector, struct shorthand *hand, struct prop *prop);
void chrDamageByLaser(struct chrdata *chr, f32 damage, struct coord *vector, struct shorthand *hand, struct prop *prop);
void func0f0341dc(struct chrdata *chr, f32 damage, struct coord *vector, struct shorthand *hand, struct prop *prop, u32 arg5, struct prop *prop2, s32 arg7, s32 arg8, s32 arg9, u32 arg10);
void func0f034330(struct chrdata *chr, f32 damage, struct coord *vector, struct shorthand *hand, struct prop *prop, s32 arg5);
void func0f034410(struct chrdata *chr, f32 damage, struct coord *vector, struct prop *prop, u32 arg4);
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);
void func0f034524(struct chrdata *chr, f32 damage, struct coord *vector, struct shorthand *hand, struct prop *prop, u32 arg5, u32 arg6, struct prop *prop2, u32 arg8, u32 arg9, u32 arg10, s32 arg11, u32 arg12, u32 arg13);
void chrDamage(struct chrdata *chr, f32 damage, struct coord *vector, struct shorthand *hand, struct prop *aprop, s32 ibh, bool damageshield, struct prop *prop2, s32 arg8, s32 arg9, s32 arg10, s32 arg11, bool explosion, struct coord *explosionpos);
u32 func0f03645c(void);
bool func0f03654c(struct chrdata *chr, struct coord *pos, s16 *rooms, struct coord *pos2, s16 *rooms2, struct coord *vector, f32 arg6, u32 types);
bool propchrHasClearLineToPos(struct prop *prop, struct coord *dstpos, struct coord *vector);
@@ -144,7 +144,7 @@ u32 func0f03f778(void);
u32 func0f03fa10(void);
u32 func0f03fab0(void);
u32 func0f03fde4(void);
void func0f03ff2c(struct chrdata *chr, struct coord *pos, struct coord *vector, s32 *arg3, s32 *arg4, s32 *arg5, s32 *arg6);
void func0f03ff2c(struct chrdata *chr, struct coord *pos, struct coord *vector, s32 *arg3, s32 *ibh, s32 *arg5, s32 *arg6);
void func0f04031c(struct coord *coord, f32 arg1, struct coord *coord2, f32 *arg3);
u32 func0f0404d4(void);
u32 func0f041a74(void);
+2 -2
View File
@@ -30,7 +30,7 @@
/*0x0017*/ bool aiTryModifyAttack(void);
/*0x0018*/ bool aiFaceEntity(void);
/*0x0019*/ bool ai0019(void);
/*0x001a*/ bool ai001a(void);
/*0x001a*/ bool aiChrDamageChr(void);
/*0x001b*/ bool aiConsiderGrenadeThrow(void);
/*0x001c*/ bool aiDropItem(void);
/*0x001d*/ bool aiJogToPad(void);
@@ -344,7 +344,7 @@
/*0x016b*/ bool ai016b(void);
/*0x016c*/ bool aiNoOp016c(void);
/*0x016d*/ bool aiChrAdjustMotionBlur(void);
/*0x016e*/ bool aiPoisonChr(void);
/*0x016e*/ bool aiDamageChrByAmount(void);
/*0x016f*/ bool aiIfChrHasGun(void);
/*0x0170*/ bool aiDoGunCommand(void);
/*0x0171*/ bool aiIfDistanceToGunLessThan(void);
+4 -4
View File
@@ -4,10 +4,10 @@
#include "data.h"
#include "types.h"
f32 pdmodeGetReaction(void);
f32 pdmodeGetHealth(void);
f32 pdmodeGetDamage(void);
f32 pdmodeGetAccuracy(void);
f32 pdmodeGetEnemyReactionSpeed(void);
f32 pdmodeGetEnemyHealth(void);
f32 pdmodeGetEnemyDamage(void);
f32 pdmodeGetEnemyAccuracy(void);
void func0f01b148(u32 arg0);
void titleSetNextStage(s32 stagenum);
+1 -1
View File
@@ -113,7 +113,7 @@ void func0f0a24f0(struct coord *arg0, s32 handnum);
u32 func0f0a27c8(void);
void func0f0a29c8(void);
bool weaponIsMissionCritical(s32 weaponnum);
void currentPlayerLoseGunInNbombStorm(struct prop *prop);
void currentPlayerLoseGun(struct prop *attacker);
u32 func0f0a2da8(void);
u32 func0f0a2e94(void);
void playerDetonateRemoteMines(s32 playernum);
+2 -2
View File
@@ -35,9 +35,9 @@ Gfx *fadeDraw(Gfx *gdl, u32 r, u32 g, u32 b, f32 frac);
Gfx *currentPlayerDrawFade(Gfx *gdl);
void currentPlayerUpdateColourScreenProperties(void);
void currentPlayerTickChrFade(void);
void func0f0bb69c(void);
void currentPlayerShowHealthBar(void);
void func0f0bb814(void);
void func0f0bbf14(void);
void currentPlayerUpdateHealthShow(void);
Gfx *hudRenderHealthBar(Gfx *gdl);
void currentPlayerSurroundWithExplosions(s32 arg0);
void currentPlayerTickExplode(void);
+1 -1
View File
@@ -18,7 +18,7 @@ bool func0f191638(struct chrdata *chr, bool arg1);
bool aibotTick(struct prop *prop);
f32 aibotCalculateMaxSpeed(struct chrdata *chr);
void func0f1921f8(struct chrdata *chr, f32 *arg1, s32 arg2, f32 arg3);
void func0f192628(struct chrdata *chr, struct prop *arg1);
void aibotLoseGun(struct chrdata *chr, struct prop *attacker);
void func0f19277c(struct chrdata *chr, s32 propnum);
bool func0f19294c(struct chrdata *botchr, struct chrdata *otherchr);
bool chrHasGround(struct chrdata *chr);
+1 -1
View File
@@ -4,7 +4,7 @@
#include "data.h"
#include "types.h"
f32 func0f187770(u8 value);
f32 mpHandicapToDamageScale(u8 value);
void func0f187838(struct mpchr *mpchr);
void mpStartMatch(void);
void mpInit(void);
+1 -1
View File
@@ -294,7 +294,7 @@ struct prop *chrGiveWeapon(struct chrdata *chr, s32 model, s32 weaponnum, u32 fl
u32 func0f08bb3c(void);
void func0f08bb5c(struct prop *prop, bool firing, s32 room);
s32 func0f08bc5c(struct prop *prop);
u32 func0f08bcf4(void);
s32 hatGetType(struct prop *prop);
bool doorIsUnlocked(struct prop *playerprop, struct prop *doorprop);
bool func0f08bdd4(struct doorobj *door, struct coord *pos, f32 arg2, bool isbike);
bool func0f08be80(struct doorobj *door, struct defaultobj *obj, bool isbike);
+3 -3
View File
@@ -5,9 +5,9 @@
#include "types.h"
void splatTick(struct prop *prop);
void func0f148e54(struct prop *prop, struct splat *arg1, struct coord *arg2, struct coord *arg3, s32 arg4, s32 arg5, s32 arg6);
s32 func0f148f18(s32 qty, f32 arg1, struct prop *prop, struct splat *arg3, struct coord *arg4, struct coord *arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 arg10);
bool func0f149274(f32 arg0, struct prop *prop, struct splat *arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8);
void func0f148e54(struct prop *prop, struct splat *arg1, struct coord *arg2, struct coord *arg3, s32 arg4, s32 arg5, struct chrdata *arg6);
s32 func0f148f18(s32 qty, f32 arg1, struct prop *prop, struct splat *arg3, struct coord *arg4, struct coord *arg5, s32 arg6, s32 arg7, s32 arg8, struct chrdata *arg9, s32 arg10);
bool func0f149274(f32 arg0, struct prop *prop, struct splat *arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, struct chrdata *arg7, s32 arg8);
void func0f149864(void);
u32 func0f14986c(void);
void chrInitSplats(struct chrdata *chr);
+3
View File
@@ -127,6 +127,9 @@
#define debris(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19) \
_generic_object(0x0f, scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19),
#define hat(scale, model, chr, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19) \
_generic_object(0x11, scale, model, chr, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19),
#define lift_door(dooroffset, liftoffset, stopnum) \
0x13, dooroffset, liftoffset, 0, stopnum,
+3 -3
View File
@@ -1670,10 +1670,10 @@ enum sfx {
SFX_8076,
SFX_PUNCH_GLASS,
SFX_GLASS_SHATTER,
SFX_8079,
SFX_HATHIT_8079,
SFX_807A,
SFX_807B,
SFX_807C,
SFX_HATHIT_807B,
SFX_HATHIT_807C,
SFX_807D,
SFX_807E,
SFX_807F,
+16 -18
View File
@@ -68,7 +68,7 @@ struct playerstats {
/*0x50*/ s32 shortestlife;
/*0x54*/ u32 maxkills;
/*0x58*/ s32 maxsimulkills;
/*0x5c*/ f32 damagescale;
/*0x5c*/ f32 damagescale; // of received damage
/*0x60*/ s32 tokenheldtime;
/*0x64*/ u32 unk64;
/*0x68*/ u32 cloaktime;
@@ -799,9 +799,7 @@ struct aibot {
/*0x0fc*/ u32 unk0fc;
/*0x100*/ u32 unk100;
/*0x104*/ u32 unk104;
/*0x108*/ f32 unk108;
/*0x10c*/ f32 unk10c;
/*0x110*/ f32 unk110;
/*0x108*/ struct coord shotspeed; // "boost" when aibot is shot
/*0x114*/ s32 unk114;
/*0x118*/ u32 unk118;
/*0x11c*/ s32 unk11c;
@@ -964,12 +962,20 @@ struct act_argh {
/*0x30*/ s32 unk030; // lvframe60 value
};
// The first 4 bytes of the hand struct
struct shorthand {
u8 weaponnum;
u8 unk0639;
u8 unk063a;
u8 weaponfunc; // 0 or 1
};
struct act_preargh {
/*0x2c*/ struct coord pos;
/*0x38*/ f32 unk038;
/*0x3c*/ f32 unk03c;
/*0x40*/ u32 unk040;
/*0x44*/ u32 unk044;
/*0x38*/ f32 angle;
/*0x3c*/ s32 ibh;
/*0x40*/ struct shorthand hand;
/*0x44*/ s32 aplayernum;
};
struct act_attack {
@@ -1385,7 +1391,7 @@ struct chrdata {
/*0x33c*/ struct coord lastdroppos;
/*0x348*/ struct fireslotthing *unk348;
/*0x34c*/ struct fireslotthing *unk34c;
/*0x350*/ u32 unk350;
/*0x350*/ struct chrdata *lastattacker;
/*0x354*/ s16 aipunchdodgelist;
/*0x356*/ s16 aishootingatmelist;
/*0x358*/ s16 poisoncounter;
@@ -2081,14 +2087,6 @@ struct abmag {
/*0x06*/ u16 alignment;
};
// The first 4 bytes of the hand struct
struct shorthand {
u8 weaponnum;
u8 unk0639;
u8 unk063a;
u8 weaponfunc; // 0 or 1
};
// Weapon data per hand
struct hand {
struct shorthand base;
@@ -2809,7 +2807,7 @@ struct player {
/*0x1990*/ u32 unk1990;
/*0x1994*/ u32 unk1994;
/*0x1998*/ u32 unk1998;
/*0x199c*/ f32 unk199c;
/*0x199c*/ f32 healthscale;
/*0x19a0*/ f32 armourscale;
/*0x19a4*/ f32 speedgo;
/*0x19a8*/ s32 sighttimer240;