Name some projectile symbols

This commit is contained in:
Ryan Dwyer
2025-02-19 10:33:47 +10:00
parent 86f61e88ec
commit cd14bab5fd
20 changed files with 678 additions and 615 deletions
+53 -53
View File
@@ -856,7 +856,7 @@
#define DROPTYPE_SURRENDER 2
#define DROPTYPE_THROWGRENADE 3
#define DROPTYPE_HAT 4
#define DROPTYPE_5 5
#define DROPTYPE_DEBRIS 5
#define DROPTYPE_OWNERREAP 6
#define DYNTEXTYPE_RIVER 1
@@ -3072,7 +3072,7 @@
#define OBJFLAG_CHOPPER_INIT 0x20000000
#define OBJFLAG_DOOR_OPENTOFRONT 0x20000000
#define OBJFLAG_HOVERCAR_INIT 0x20000000
#define OBJFLAG_HOVERPROP_20000000 0x20000000
#define OBJFLAG_HOVERPROP_ISCRATE 0x20000000
#define OBJFLAG_LIFT_LATERALMOVEMENT 0x20000000
#define OBJFLAG_MONITOR_20000000 0x20000000
#define OBJFLAG_WEAPON_AICANNOTUSE 0x20000000
@@ -3134,38 +3134,38 @@
#define OBJFLAG2_WEAPON_HUGEEXP 0x80000000
// obj->flags3
#define OBJFLAG3_PUSHABLE 0x00000001
#define OBJFLAG3_GRABBABLE 0x00000002
#define OBJFLAG3_DOOR_STICKY 0x00000004 // eg. Skedar Ruins
#define OBJFLAG3_00000008 0x00000008 // Not used in scripts
#define OBJFLAG3_FINDROOMSFAST 0x00000010 // Can use if obj never goes out of bounds or in overlapping rooms
#define OBJFLAG3_AUTOCUTSCENESOUNDS 0x00000020 // For doors and objs - play default open/close noises
#define OBJFLAG3_RTRACKED_YELLOW 0x00000040
#define OBJFLAG3_CANHARDFREE 0x00000080 // Can free prop while on screen (MP weapons only)
#define OBJFLAG3_HARDFREEING 0x00000100
#define OBJFLAG3_00000200 0x00000200 // Not used in scripts
#define OBJFLAG3_WALKTHROUGH 0x00000400
#define OBJFLAG3_RTRACKED_BLUE 0x00000800
#define OBJFLAG3_SHOWSHIELD 0x00001000 // Show shield effect around object (always)
#define OBJFLAG3_HTMTERMINAL 0x00002000 // Terminal for Hacker Central scenario (HTM = Hack That Mac)
#define OBJFLAG3_ISFETCHTARGET 0x00004000 // AI bot is fetching this obj
#define OBJFLAG3_REACTTOSIGHT 0x00008000 // Turn sight blue or red when targeted with R
#define OBJFLAG3_INTERACTABLE 0x00010000
#define OBJFLAG3_SHIELDHIT 0x00020000 // Turns off when shield no longer visible
#define OBJFLAG3_RENDERPOSTBG 0x00040000
#define OBJFLAG3_DRAWONTOP 0x00080000
#define OBJFLAG3_HOVERBEDSHIELD 0x00100000
#define OBJFLAG3_INTERACTSHORTRANGE 0x00200000
#define OBJFLAG3_PLAYERUNDROPPABLE 0x00400000 // Player does not drop item when dead
#define OBJFLAG3_LONGPUSHRANGE 0x00800000 // Not used in scripts
#define OBJFLAG3_PUSHFREELY 0x01000000 // Not used in scripts
#define OBJFLAG3_GEOCYL 0x02000000 // Use cylinder geometry rather than block
#define OBJFLAG3_04000000 0x04000000 // Not used in scripts
#define OBJFLAG3_08000000 0x08000000 // Not used in scripts
#define OBJFLAG3_KEEPGEOWHENDESTROYED 0x10000000
#define OBJFLAG3_ONSHELF 0x20000000 // Obj is on a shelf - use bigger pickup range for Small Jo and Play as Elvis cheats and skip line of sight checks
#define OBJFLAG3_INFRARED 0x40000000 // Obj is highlighted on IR scanner
#define OBJFLAG3_80000000 0x80000000 // Not used in scripts
#define OBJFLAG3_PUSHABLE 0x00000001
#define OBJFLAG3_GRABBABLE 0x00000002
#define OBJFLAG3_DOOR_STICKY 0x00000004 // eg. Skedar Ruins
#define OBJFLAG3_SETTLEROT_BYACTUALSIZE 0x00000008
#define OBJFLAG3_FINDROOMSFAST 0x00000010 // Can use if obj never goes out of bounds or in overlapping rooms
#define OBJFLAG3_AUTOCUTSCENESOUNDS 0x00000020 // For doors and objs - play default open/close noises
#define OBJFLAG3_RTRACKED_YELLOW 0x00000040
#define OBJFLAG3_CANHARDFREE 0x00000080 // Can free prop while on screen (MP weapons only)
#define OBJFLAG3_HARDFREEING 0x00000100
#define OBJFLAG3_SETTLEROT_UPRIGHT 0x00000200
#define OBJFLAG3_WALKTHROUGH 0x00000400
#define OBJFLAG3_RTRACKED_BLUE 0x00000800
#define OBJFLAG3_SHOWSHIELD 0x00001000 // Show shield effect around object (always)
#define OBJFLAG3_HTMTERMINAL 0x00002000 // Terminal for Hacker Central scenario (HTM = Hack That Mac)
#define OBJFLAG3_ISFETCHTARGET 0x00004000 // AI bot is fetching this obj
#define OBJFLAG3_REACTTOSIGHT 0x00008000 // Turn sight blue or red when targeted with R
#define OBJFLAG3_INTERACTABLE 0x00010000
#define OBJFLAG3_SHIELDHIT 0x00020000 // Turns off when shield no longer visible
#define OBJFLAG3_RENDERPOSTBG 0x00040000
#define OBJFLAG3_DRAWONTOP 0x00080000
#define OBJFLAG3_HOVERBEDSHIELD 0x00100000
#define OBJFLAG3_INTERACTSHORTRANGE 0x00200000
#define OBJFLAG3_PLAYERUNDROPPABLE 0x00400000 // Player does not drop item when dead
#define OBJFLAG3_LONGPUSHRANGE 0x00800000 // Not used in scripts
#define OBJFLAG3_PUSHFREELY 0x01000000 // Not used in scripts
#define OBJFLAG3_GEOCYL 0x02000000 // Use cylinder geometry rather than block
#define OBJFLAG3_04000000 0x04000000 // Not used in scripts
#define OBJFLAG3_SETTLEROT_LAPTOP 0x08000000
#define OBJFLAG3_KEEPGEOWHENDESTROYED 0x10000000
#define OBJFLAG3_ONSHELF 0x20000000 // Obj is on a shelf - use bigger pickup range for Small Jo and Play as Elvis cheats and skip line of sight checks
#define OBJFLAG3_INFRARED 0x40000000 // Obj is highlighted on IR scanner
#define OBJFLAG3_80000000 0x80000000 // Not used in scripts
// obj->hidden
#define OBJHFLAG_LIFTDOOR 0x00000001
@@ -3183,9 +3183,9 @@
#define OBJHFLAG_00001000 0x00001000
#define OBJHFLAG_PADLOCKEDDOOR 0x00002000
#define OBJHFLAG_ACTIVATED_BY_BOND 0x00004000
#define OBJHFLAG_00008000 0x00008000
#define OBJHFLAG_00010000 0x00010000
#define OBJHFLAG_00020000 0x00020000
#define OBJHFLAG_ONANOTHEROBJ 0x00008000
#define OBJHFLAG_IMMUNETOBOUNCES 0x00010000
#define OBJHFLAG_ATTACHED 0x00020000
#define OBJHFLAG_ACTIVATED_BY_COOP 0x00040000
#define OBJHFLAG_HASOWNER 0x00080000
#define OBJHFLAG_SUSPICIOUS 0x00100000
@@ -3473,22 +3473,22 @@
#define PROFILE_RDP_START1 0x40001
#define PROFILE_AUDIOFRAME_END 0x60000
#define PROJECTILEFLAG_AIRBORNE 0x00000001
#define PROJECTILEFLAG_00000002 0x00000002
#define PROJECTILEFLAG_STICKY 0x00000004
#define PROJECTILEFLAG_POWERED 0x00000010 // No gravity
#define PROJECTILEFLAG_00000020 0x00000020
#define PROJECTILEFLAG_LAUNCHING 0x00000080
#define PROJECTILEFLAG_00000100 0x00000100
#define PROJECTILEFLAG_FALLING 0x00000400
#define PROJECTILEFLAG_SLIDING 0x00000800
#define PROJECTILEFLAG_00001000 0x00001000
#define PROJECTILEFLAG_00002000 0x00002000
#define PROJECTILEFLAG_NOTIMELIMIT 0x00004000
#define PROJECTILEFLAG_INROOM 0x00008000
#define PROJECTILEFLAG_00010000 0x00010000
#define PROJECTILEFLAG_LIGHTWEIGHT 0x40000000
#define PROJECTILEFLAG_FREE 0x80000000
#define PROJECTILEFLAG_AIRBORNE 0x00000001
#define PROJECTILEFLAG_FORCEGOODBOUNCE 0x00000002 // Projectile's first bounce will have a forced minimum upward velocity
#define PROJECTILEFLAG_STICKY 0x00000004
#define PROJECTILEFLAG_POWERED 0x00000010 // No gravity
#define PROJECTILEFLAG_MISSILE 0x00000020 // Implemented but unused
#define PROJECTILEFLAG_LAUNCHING 0x00000080
#define PROJECTILEFLAG_BOUNCEKEEPROT 0x00000100
#define PROJECTILEFLAG_SETTLING 0x00000400 // Projectile is finding its final rotation for resting
#define PROJECTILEFLAG_SLIDING 0x00000800
#define PROJECTILEFLAG_TICKEDEARLY 0x00001000
#define PROJECTILEFLAG_TICKEDEARLYMOVED 0x00002000
#define PROJECTILEFLAG_NOTIMELIMIT 0x00004000
#define PROJECTILEFLAG_INROOM 0x00008000
#define PROJECTILEFLAG_DONEOOBSEARCH 0x00010000
#define PROJECTILEFLAG_LIGHTWEIGHT 0x40000000
#define PROJECTILEFLAG_FREE 0x80000000
#define PROPFLAG_RENDERPOSTBG 0x01
#define PROPFLAG_ONTHISSCREENTHISTICK 0x02
+1 -1
View File
@@ -21,7 +21,7 @@ void bgun_free_gun_mem(void);
bool bgun_change_gun_mem(s32 newowner);
bool bgun_load_all(void);
struct modeldef *bgun_get_cart_modeldef(void);
void bgun0f09ebcc(struct defaultobj *obj, struct coord *coord, RoomNum *rooms, Mtxf *matrix1, struct coord *velocity, Mtxf *matrix2, struct prop *prop, struct coord *pos);
void bgun_configure_projectile(struct defaultobj *obj, struct coord *coord, RoomNum *rooms, Mtxf *matrix1, struct coord *velocity, Mtxf *matrix2, struct prop *prop, struct coord *pos);
struct defaultobj *bgun_create_thrown_projectile2(struct chrdata *chr, struct gset *gset, struct coord *pos, RoomNum *rooms, Mtxf *arg4, struct coord *velocity);
void bgun_create_thrown_projectile(s32 handnum, struct gset *gset);
void bgun_create_fired_projectile(s32 handnum);
+2 -2
View File
@@ -39,7 +39,7 @@ bool model_get_screen_coords(struct model *model, f32 *x2, f32 *x1, f32 *y2, f32
void obj_get_screeninfo(struct coord *arg0, f32 *arg1, f32 *arg2, f32 *arg3, f32 *arg4);
struct defaultobj *obj_find_by_pad_num(s32 padnum);
void projectiles_unref_owner(struct prop *owner);
void func0f0685e4(struct prop *prop);
void obj_ensure_projectile(struct prop *prop);
void projectile_set_sticky(struct prop *prop);
struct embedment *embedment_allocate(void);
s32 obj_get_destroyed_level(struct defaultobj *obj);
@@ -80,7 +80,7 @@ void hoverprop_set_turn_angle(struct defaultobj *obj, f32 angle);
s32 func0f072144(struct defaultobj *obj, struct coord *arg1, f32 arg2, bool arg3);
void hoverbike_update_movement(struct hoverbikeobj *hoverbike, f32 arg1, f32 arg2, f32 arg3);
s32 projectile_launch(struct defaultobj *obj, struct projectile *projectile, struct coord *arg2, struct coord *arg3);
s32 projectile_tick(struct defaultobj *obj, bool *embedded);
bool projectile_tick(struct defaultobj *obj, bool *embedded);
struct chopperobj *chopper_from_hovercar(struct chopperobj *obj);
bool chopper_check_target_in_fov(struct chopperobj *hovercar, u8 param_2);
bool chopper_check_target_in_sight(struct chopperobj *obj);
+24 -19
View File
@@ -1330,25 +1330,30 @@ struct chrdata {
struct projectile {
/*0x000*/ u32 flags;
/*0x004*/ struct coord speed; // distance moved in last tick
/*0x010*/ f32 unk010;
/*0x014*/ f32 unk014;
/*0x018*/ f32 unk018;
/*0x01c*/ f32 unk01c;
union {
struct coord accel;
struct {
/*0x010*/ f32 fbwspeed;
/*0x014*/ f32 fbwrotx;
/*0x018*/ f32 fbwroty;
};
};
/*0x01c*/ f32 missileyaccel;
/*0x020*/ Mtxf mtx;
/*0x060*/ f32 unk060;
/*0x064*/ f32 unk064;
/*0x060*/ f32 settledrotfrac;
/*0x064*/ f32 settledrotinc;
/*0x068*/ f32 unk068[4];
/*0x078*/ f32 unk078[4];
/*0x088*/ struct prop *ownerprop;
/*0x08c*/ f32 unk08c;
/*0x08c*/ f32 hitspeedpreservationfrac;
/*0x090*/ s32 bouncecount;
/*0x094*/ s32 bounceframe;
/*0x098*/ f32 unk098;
/*0x098*/ f32 speeddecel;
/*0x09c*/ s32 lastwooshframe;
/*0x0a0*/ s32 flighttime240;
/*0x0a4*/ s32 unk0a4;
/*0x0a8*/ f32 unk0a8;
/*0x0ac*/ f32 unk0ac;
/*0x0a4*/ s32 collisionframe;
/*0x0a8*/ f32 missiley;
/*0x0ac*/ f32 missileyspeed;
/*0x0b0*/ s16 droptype;
/*0x0b2*/ s16 powerlimit240;
/*0x0b4*/ s32 pickuptimer240;
@@ -1356,13 +1361,13 @@ struct projectile {
/*0x0c4*/ struct coord nextsteppos;
/*0x0d0*/ s32 losttimer240;
/*0x0d4*/ struct defaultobj *obj;
/*0x0d8*/ s32 unk0d8;
/*0x0dc*/ f32 unk0dc;
/*0x0e0*/ f32 unk0e0;
/*0x0e4*/ f32 unk0e4;
/*0x0d8*/ s32 startframe;
/*0x0dc*/ f32 yrotspeed;
/*0x0e0*/ f32 yrotdecel;
/*0x0e4*/ f32 excessivedecelrate;
/*0x0e8*/ struct prop *targetprop; // for homing rockets
/*0x0ec*/ f32 unk0ec;
/*0x0f0*/ f32 unk0f0;
/*0x0ec*/ f32 yrotexcessivedecelbase;
/*0x0f0*/ f32 xzexcessivedecelbase;
/*0x0f4*/ s32 smoketimer240;
/*0x0f8*/ s16 waypads[MAX_CHRWAYPOINTS];
/*0x104*/ u8 numwaypads;
@@ -2957,10 +2962,10 @@ struct funcdef_shootprojectile {
/*0x44*/ u32 unk44; // unused
/*0x48*/ f32 scale;
/*0x4c*/ s32 speed;
/*0x50*/ f32 unk50;
/*0x50*/ f32 speeddecel;
/*0x54*/ s32 traveldist;
/*0x58*/ s32 timer60;
/*0x5c*/ f32 reflectangle;
/*0x5c*/ f32 hitspeedpreservationfrac;
/*0x60*/ s16 soundnum;
};