mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-08-14 20:30:01 -04:00
Attempt to decompile autogunTick
This commit is contained in:
+41
-37
@@ -2944,7 +2944,7 @@
|
||||
#define OBJFLAG_COLLECTABLE 0x00040000
|
||||
#define OBJFLAG_THROWNLAPTOP 0x00080000
|
||||
#define OBJFLAG_UNCOLLECTABLE 0x00100000
|
||||
#define OBJFLAG_BOUNCEIFSHOT 0x00200000 // Bounce or explode
|
||||
#define OBJFLAG_BOUNCEIFSHOT 0x00200000 // Bounce or explode
|
||||
#define OBJFLAG_00400000 0x00400000 // Not used in scripts
|
||||
#define OBJFLAG_00800000 0x00800000 // Not used in scripts
|
||||
#define OBJFLAG_01000000 0x01000000 // Editor: "Embedded Object"
|
||||
@@ -2957,14 +2957,15 @@
|
||||
#define OBJFLAG_GLASS_HASPORTAL 0x10000000
|
||||
#define OBJFLAG_WEAPON_LEFTHANDED 0x10000000
|
||||
#define OBJFLAG_ESCSTEP_ZALIGNED 0x10000000
|
||||
#define OBJFLAG_20000000 0x20000000 // Editor: "Door Opens Backwards/Special Function/Conceal Weapon"
|
||||
#define OBJFLAG_20000000 0x20000000
|
||||
#define OBJFLAG_AUTOGUN_SEENTARGET 0x20000000
|
||||
#define OBJFLAG_CAMERA_DISABLED 0x20000000
|
||||
#define OBJFLAG_DOOR_OPENTOFRONT 0x20000000
|
||||
#define OBJFLAG_HOVERCAR_20000000 0x20000000
|
||||
#define OBJFLAG_WEAPON_AICANNOTUSE 0x20000000
|
||||
#define OBJFLAG_AUTOGUN_ALERTED 0x40000000
|
||||
#define OBJFLAG_AUTOGUN_DAMAGED 0x40000000
|
||||
#define OBJFLAG_CAMERA_BONDINVIEW 0x40000000
|
||||
#define OBJFLAG_DOOR_KEEPOPEN 0x40000000 // Editor: "Door open by default/Empty weapon"
|
||||
#define OBJFLAG_DOOR_KEEPOPEN 0x40000000
|
||||
#define OBJFLAG_HOVERBIKE_MOVINGWHILEEMPTY 0x40000000
|
||||
#define OBJFLAG_HOVERCAR_40000000 0x40000000
|
||||
#define OBJFLAG_LIFT_TRIGGERDISABLE 0x40000000
|
||||
@@ -2976,39 +2977,42 @@
|
||||
#define OBJFLAG_DOOR_TWOWAY 0x80000000 // Door swings in both directions
|
||||
|
||||
// obj->flags2
|
||||
#define OBJFLAG2_IMMUNETOANTI 0x00000001 // Counter-op cannot damage this object
|
||||
#define OBJFLAG2_00000002 0x00000002 // Ruins spikes
|
||||
#define OBJFLAG2_SKIPDOORLOCKEDMSG 0x00000004
|
||||
#define OBJFLAG2_00000008 0x00000008 // Editor: "Don't load in Multiplayer"
|
||||
#define OBJFLAG2_EXCLUDE_A 0x00000010
|
||||
#define OBJFLAG2_EXCLUDE_SA 0x00000020
|
||||
#define OBJFLAG2_EXCLUDE_PA 0x00000040
|
||||
#define OBJFLAG2_EXCLUDE_PD 0x00000080
|
||||
#define OBJFLAG2_00000100 0x00000100 // Editor: "Immobile"
|
||||
#define OBJFLAG2_00000200 0x00000200 // Editor: "Mines"
|
||||
#define OBJFLAG2_LINKEDTOSAFE 0x00000400 // Applied to safe door and item
|
||||
#define OBJFLAG2_INTERACTCHECKLOS 0x00000800 // Check line of sight when attempting to interact with object
|
||||
#define OBJFLAG2_PICKUPWITHOUTLOS 0x00001000 // Object can be picked up without having line of sight
|
||||
#define OBJFLAG2_REMOVEWHENDESTROYED 0x00002000
|
||||
#define OBJFLAG2_IMMUNETOGUNFIRE 0x00004000
|
||||
#define OBJFLAG2_SHOOTTHROUGH 0x00008000
|
||||
#define OBJFLAG2_DRAWONTOP 0x00010000
|
||||
#define OBJFLAG2_00020000 0x00020000 // G5 mine, Air Base mine
|
||||
#define OBJFLAG2_00040000 0x00040000 // Only used in CI training
|
||||
#define OBJFLAG2_INVISIBLE 0x00080000
|
||||
#define OBJFLAG2_BULLETPROOF 0x00100000 // Only magnum and FarSight can shoot through it
|
||||
#define OBJFLAG2_00200000 0x00200000 // Editor: "Immune to Explosions" (Ruins spikes)
|
||||
#define OBJFLAG2_EXCLUDE_2P 0x00400000
|
||||
#define OBJFLAG2_EXCLUDE_3P 0x00800000
|
||||
#define OBJFLAG2_EXCLUDE_4P 0x01000000
|
||||
#define OBJFLAG2_THROWTHROUGH 0x02000000 // Rockets/mines/grenades etc pass through object
|
||||
#define OBJFLAG2_04000000 0x04000000 // Used quite a lot - gravity?
|
||||
#define OBJFLAG2_LOCKEDFRONT 0x08000000 // One-way door lock
|
||||
#define OBJFLAG2_LOCKEDBACK 0x10000000 // One-way door lock
|
||||
#define OBJFLAG2_AICANNOTUSE 0x20000000
|
||||
#define OBJFLAG2_AIRLOCKDOOR 0x40000000 // Door waits for sibling to close before it can open
|
||||
#define OBJFLAG2_80000000 0x80000000 // Attack Ship glass
|
||||
#define OBJFLAG2_WEAPON_HUGEEXP 0x80000000
|
||||
#define OBJFLAG2_IMMUNETOANTI 0x00000001 // Counter-op cannot damage this object
|
||||
#define OBJFLAG2_00000002 0x00000002 // Ruins spikes
|
||||
#define OBJFLAG2_SKIPDOORLOCKEDMSG 0x00000004
|
||||
#define OBJFLAG2_00000008 0x00000008 // Editor: "Don't load in Multiplayer"
|
||||
#define OBJFLAG2_EXCLUDE_A 0x00000010
|
||||
#define OBJFLAG2_EXCLUDE_SA 0x00000020
|
||||
#define OBJFLAG2_EXCLUDE_PA 0x00000040
|
||||
#define OBJFLAG2_EXCLUDE_PD 0x00000080
|
||||
#define OBJFLAG2_00000100 0x00000100 // Editor: "Immobile"
|
||||
#define OBJFLAG2_00000200 0x00000200 // Editor: "Mines"
|
||||
#define OBJFLAG2_LINKEDTOSAFE 0x00000400 // Applied to safe door and item
|
||||
#define OBJFLAG2_INTERACTCHECKLOS 0x00000800 // Check line of sight when attempting to interact with object
|
||||
#define OBJFLAG2_PICKUPWITHOUTLOS 0x00001000 // Object can be picked up without having line of sight
|
||||
#define OBJFLAG2_REMOVEWHENDESTROYED 0x00002000
|
||||
#define OBJFLAG2_IMMUNETOGUNFIRE 0x00004000
|
||||
#define OBJFLAG2_SHOOTTHROUGH 0x00008000
|
||||
#define OBJFLAG2_DRAWONTOP 0x00010000
|
||||
#define OBJFLAG2_00020000 0x00020000 // G5 mine, Air Base mine
|
||||
#define OBJFLAG2_00040000 0x00040000 // Only used in CI training
|
||||
#define OBJFLAG2_INVISIBLE 0x00080000
|
||||
#define OBJFLAG2_BULLETPROOF 0x00100000 // Only magnum and FarSight can shoot through it
|
||||
#define OBJFLAG2_00200000 0x00200000 // Editor: "Immune to Explosions" (Ruins spikes)
|
||||
#define OBJFLAG2_EXCLUDE_2P 0x00400000
|
||||
#define OBJFLAG2_EXCLUDE_3P 0x00800000
|
||||
#define OBJFLAG2_EXCLUDE_4P 0x01000000
|
||||
#define OBJFLAG2_THROWTHROUGH 0x02000000 // Rockets/mines/grenades etc pass through object
|
||||
#define OBJFLAG2_04000000 0x04000000 // Used quite a lot - gravity?
|
||||
#define OBJFLAG2_LOCKEDFRONT 0x08000000 // One-way door lock
|
||||
#define OBJFLAG2_LOCKEDBACK 0x10000000 // One-way door lock
|
||||
#define OBJFLAG2_AICANNOTUSE 0x20000000
|
||||
#define OBJFLAG2_AUTOGUN_MALFUNCTIONING2 0x20000000
|
||||
#define OBJFLAG2_AIRLOCKDOOR 0x40000000 // Door waits for sibling to close before it can open
|
||||
#define OBJFLAG2_AUTOGUN_40000000 0x40000000
|
||||
#define OBJFLAG2_80000000 0x80000000 // Attack Ship glass
|
||||
#define OBJFLAG2_AUTOGUN_MALFUNCTIONING1 0x80000000
|
||||
#define OBJFLAG2_WEAPON_HUGEEXP 0x80000000
|
||||
|
||||
// obj->flags3
|
||||
#define OBJFLAG3_PUSHABLE 0x00000001
|
||||
|
||||
@@ -404,7 +404,7 @@
|
||||
/*0x01b5*/ bool aiChrSetP1P2(void);
|
||||
/*0x01b6*/ bool aiConfigureSnow(void);
|
||||
/*0x01b7*/ bool aiChrSetCloaked(void);
|
||||
/*0x01b8*/ bool aiSetAutogunType(void);
|
||||
/*0x01b8*/ bool aiSetAutogunTargetTeam(void);
|
||||
/*0x01b9*/ bool aiShufflePelagicSwitches(void);
|
||||
/*0x01ba*/ bool aiTryAttackLie(void);
|
||||
/*0x01bb*/ bool aiNoOp01bb(void);
|
||||
|
||||
@@ -57,7 +57,7 @@ void frSetCompleted(void);
|
||||
bool frIsTargetOneHitExplodable(struct prop *prop);
|
||||
f32 frGetTargetAngleToPos(struct coord *a, f32 angle, struct coord *b);
|
||||
bool frIsTargetFacingPos(struct prop *prop, struct coord *pos);
|
||||
struct prop *frChooseAutogunTarget(struct coord *arg0);
|
||||
struct prop *frChooseAutogunTarget(struct coord *autogunpos);
|
||||
bool frIsAmmoWasted(void);
|
||||
void frTick(void);
|
||||
void func0f1a0924(struct prop *prop);
|
||||
|
||||
+3
-3
@@ -1759,7 +1759,7 @@ struct hangingmonitorsobj { // objtype 0x0c
|
||||
struct autogunobj { // objtype 0x0d
|
||||
struct defaultobj base;
|
||||
/*0x5c*/ s16 targetpad;
|
||||
/*0x5e*/ u8 firing;
|
||||
/*0x5e*/ s8 firing;
|
||||
/*0x5f*/ u8 firecount;
|
||||
/*0x60*/ f32 yzero;
|
||||
/*0x64*/ f32 ymaxleft;
|
||||
@@ -1778,10 +1778,10 @@ struct autogunobj { // objtype 0x0d
|
||||
/*0x98*/ s32 allowsoundframe;
|
||||
/*0x9c*/ struct beam *beam;
|
||||
/*0xa0*/ f32 shotbondsum;
|
||||
/*0xa4*/ u32 unka4;
|
||||
/*0xa4*/ struct prop *target;
|
||||
/*0xa8*/ u8 targetteam;
|
||||
/*0xa9*/ u8 ammoquantity;
|
||||
/*0xaa*/ u16 nextchrtest;
|
||||
/*0xaa*/ s16 nextchrtest;
|
||||
};
|
||||
|
||||
struct linkgunsobj { // objtype 0x0e
|
||||
|
||||
Reference in New Issue
Block a user