Decompile projectileTick
This commit is contained in:
parent
330ae2a554
commit
fef5f17563
|
|
@ -273,7 +273,7 @@ u32 props[] = {
|
|||
weapon(0x0100, MODEL_CHRDRUGGUN, 0x0056, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_TRANQUILIZER)
|
||||
|
||||
tag(OBJ_TROLLEY, 1)
|
||||
hover_prop(0x0100, MODEL_A51TROLLEY, PAD_SEV_03BD, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_UNCOLLECTABLE | OBJFLAG_01000000 | OBJFLAG_AISEETHROUGH, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_BULLETPROOF, OBJFLAG3_PUSHABLE | OBJFLAG3_01000000, 1000, 0x00010000)
|
||||
hover_prop(0x0100, MODEL_A51TROLLEY, PAD_SEV_03BD, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_UNCOLLECTABLE | OBJFLAG_01000000 | OBJFLAG_AISEETHROUGH, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_BULLETPROOF, OBJFLAG3_PUSHABLE | OBJFLAG3_PUSHFREELY, 1000, 0x00010000)
|
||||
tag(OBJ_EXPERIMENT, 1)
|
||||
hover_prop(0x0100, MODEL_HOVERBED, PAD_SEV_03C3, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_UNCOLLECTABLE | OBJFLAG_01000000 | OBJFLAG_AISEETHROUGH, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_REMOVEWHENDESTROYED | OBJFLAG2_BULLETPROOF, OBJFLAG3_HOVERBEDSHIELD, 1000, 0x00010000)
|
||||
tag(0x3e, 1)
|
||||
|
|
|
|||
|
|
@ -349,7 +349,7 @@ u32 props[] = {
|
|||
#if VERSION >= VERSION_NTSC_1_0
|
||||
stdobject(0x00e6, MODEL_SKPUZZLEOBJECT, PAD_SHO_012C, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE | OBJFLAG_01000000, OBJFLAG2_00000100 | OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PUSHABLE, 1000)
|
||||
#else
|
||||
stdobject(0x00e6, MODEL_SKPUZZLEOBJECT, PAD_SHO_012C, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, OBJFLAG2_00000100 | OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PUSHABLE | OBJFLAG3_00800000, 1000)
|
||||
stdobject(0x00e6, MODEL_SKPUZZLEOBJECT, PAD_SHO_012C, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, OBJFLAG2_00000100 | OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PUSHABLE | OBJFLAG3_LONGPUSHRANGE, 1000)
|
||||
#endif
|
||||
tag(0x05, 1)
|
||||
lift(0x0100, MODEL_SKEDARBRIDGE, PAD_SHO_0135, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x0135, 0x0134, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000471c, 0x00a6aaaa, 0x00000000)
|
||||
|
|
|
|||
|
|
@ -484,13 +484,13 @@ u32 props[] = {
|
|||
tag(0x27, 7)
|
||||
tag(0x28, 7)
|
||||
tag(0x29, 7)
|
||||
stdobject(0x0100, MODEL_LAB_CONTAINER, PAD_TRA_04B7, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, 0, OBJFLAG3_PUSHABLE | OBJFLAG3_00800000, 1000)
|
||||
stdobject(0x0100, MODEL_LAB_CONTAINER, PAD_TRA_04B8, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, 0, OBJFLAG3_PUSHABLE | OBJFLAG3_00800000, 1000)
|
||||
stdobject(0x0100, MODEL_LAB_CONTAINER, PAD_TRA_04B9, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, 0, OBJFLAG3_PUSHABLE | OBJFLAG3_00800000, 1000)
|
||||
stdobject(0x0100, MODEL_LAB_CONTAINER, PAD_TRA_04BA, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, 0, OBJFLAG3_PUSHABLE | OBJFLAG3_00800000, 1000)
|
||||
stdobject(0x0100, MODEL_LAB_CONTAINER, PAD_TRA_04BB, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, 0, OBJFLAG3_PUSHABLE | OBJFLAG3_00800000, 1000)
|
||||
stdobject(0x0100, MODEL_LAB_CONTAINER, PAD_TRA_04BC, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, 0, OBJFLAG3_PUSHABLE | OBJFLAG3_00800000, 1000)
|
||||
stdobject(0x0100, MODEL_LAB_CONTAINER, PAD_TRA_04BE, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, 0, OBJFLAG3_PUSHABLE | OBJFLAG3_00800000, 1000)
|
||||
stdobject(0x0100, MODEL_LAB_CONTAINER, PAD_TRA_04B7, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, 0, OBJFLAG3_PUSHABLE | OBJFLAG3_LONGPUSHRANGE, 1000)
|
||||
stdobject(0x0100, MODEL_LAB_CONTAINER, PAD_TRA_04B8, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, 0, OBJFLAG3_PUSHABLE | OBJFLAG3_LONGPUSHRANGE, 1000)
|
||||
stdobject(0x0100, MODEL_LAB_CONTAINER, PAD_TRA_04B9, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, 0, OBJFLAG3_PUSHABLE | OBJFLAG3_LONGPUSHRANGE, 1000)
|
||||
stdobject(0x0100, MODEL_LAB_CONTAINER, PAD_TRA_04BA, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, 0, OBJFLAG3_PUSHABLE | OBJFLAG3_LONGPUSHRANGE, 1000)
|
||||
stdobject(0x0100, MODEL_LAB_CONTAINER, PAD_TRA_04BB, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, 0, OBJFLAG3_PUSHABLE | OBJFLAG3_LONGPUSHRANGE, 1000)
|
||||
stdobject(0x0100, MODEL_LAB_CONTAINER, PAD_TRA_04BC, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, 0, OBJFLAG3_PUSHABLE | OBJFLAG3_LONGPUSHRANGE, 1000)
|
||||
stdobject(0x0100, MODEL_LAB_CONTAINER, PAD_TRA_04BE, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, 0, OBJFLAG3_PUSHABLE | OBJFLAG3_LONGPUSHRANGE, 1000)
|
||||
tag(0x2a, 1)
|
||||
glass(0x0100, MODEL_MEDLABWIN2, PAD_TRA_043C, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF, 0, 1000)
|
||||
tag(0x12, 2)
|
||||
|
|
|
|||
|
|
@ -55,14 +55,14 @@ void bbikeInit(void)
|
|||
g_Vars.currentplayer->speedforwards = 0;
|
||||
g_Vars.currentplayer->speedsideways = 0;
|
||||
|
||||
if (hoverbike->base.hidden & OBJHFLAG_AIRBORNE) {
|
||||
if (hoverbike->base.hidden & OBJHFLAG_PROJECTILE) {
|
||||
struct projectile *projectile = hoverbike->base.projectile;
|
||||
hoverbike->speed[0] = projectile->speed.x;
|
||||
hoverbike->speed[1] = projectile->speed.z;
|
||||
hoverbike->w = projectile->unk0dc;
|
||||
}
|
||||
|
||||
func0f06ac90(g_Vars.currentplayer->hoverbike);
|
||||
objFreeEmbedmentOrProjectile(g_Vars.currentplayer->hoverbike);
|
||||
|
||||
hoverbike->base.hidden |= OBJHFLAG_MOUNTED;
|
||||
}
|
||||
|
|
@ -1169,7 +1169,7 @@ s32 bbikeCalculateNewPositionWithPush(struct coord *arg0, f32 arg1)
|
|||
bool pass = true;
|
||||
struct defaultobj *bike = g_Vars.currentplayer->hoverbike->obj;
|
||||
|
||||
if ((obj->hidden & OBJHFLAG_AIRBORNE)
|
||||
if ((obj->hidden & OBJHFLAG_PROJECTILE)
|
||||
&& (obj->projectile->flags & PROJECTILEFLAG_00001000)) {
|
||||
pass = false;
|
||||
}
|
||||
|
|
@ -1177,13 +1177,13 @@ s32 bbikeCalculateNewPositionWithPush(struct coord *arg0, f32 arg1)
|
|||
if (pass) {
|
||||
bbike0f0d2b40(bike, arg0, arg1, obj);
|
||||
|
||||
if ((obj->hidden & OBJHFLAG_AIRBORNE)
|
||||
&& (obj->projectile->flags & PROJECTILEFLAG_00000800)) {
|
||||
if ((obj->hidden & OBJHFLAG_PROJECTILE)
|
||||
&& (obj->projectile->flags & PROJECTILEFLAG_SLIDING)) {
|
||||
s32 somevalue;
|
||||
bool somebool = false;
|
||||
somevalue = func0f073c6c(obj, &somebool);
|
||||
bool embedded = false;
|
||||
somevalue = projectileTick(obj, &embedded);
|
||||
|
||||
if (obj->hidden & OBJHFLAG_AIRBORNE) {
|
||||
if (obj->hidden & OBJHFLAG_PROJECTILE) {
|
||||
obj->projectile->flags |= PROJECTILEFLAG_00001000;
|
||||
|
||||
if (somevalue) {
|
||||
|
|
|
|||
|
|
@ -67,11 +67,11 @@ void bgrabInit(void)
|
|||
struct hov *hov = NULL;
|
||||
bool withforce;
|
||||
|
||||
if (obj->hidden & OBJHFLAG_AIRBORNE) {
|
||||
if (obj->hidden & OBJHFLAG_PROJECTILE) {
|
||||
struct projectile *projectile = obj->projectile;
|
||||
g_Vars.currentplayer->bondshotspeed.x += projectile->speed.x * 0.2f;
|
||||
g_Vars.currentplayer->bondshotspeed.z += projectile->speed.z * 0.2f;
|
||||
objEndFlight(obj);
|
||||
objFreeProjectile(obj);
|
||||
}
|
||||
|
||||
if (obj->type == OBJTYPE_HOVERPROP) {
|
||||
|
|
@ -560,7 +560,7 @@ bool bgrabCalculateNewPositiontWithPush(struct coord *delta, f32 angle, bool arg
|
|||
|
||||
g_Vars.currentplayer->speedmaxtime60 = 0;
|
||||
|
||||
if ((obj->hidden & OBJHFLAG_AIRBORNE)
|
||||
if ((obj->hidden & OBJHFLAG_PROJECTILE)
|
||||
&& (obj->projectile->flags & PROJECTILEFLAG_00001000)) {
|
||||
canpush = false;
|
||||
}
|
||||
|
|
@ -568,13 +568,13 @@ bool bgrabCalculateNewPositiontWithPush(struct coord *delta, f32 angle, bool arg
|
|||
if (canpush) {
|
||||
bgrab0f0ccbf0(delta, angle, obj);
|
||||
|
||||
if ((obj->hidden & OBJHFLAG_AIRBORNE)
|
||||
&& (obj->projectile->flags & PROJECTILEFLAG_00000800)) {
|
||||
if ((obj->hidden & OBJHFLAG_PROJECTILE)
|
||||
&& (obj->projectile->flags & PROJECTILEFLAG_SLIDING)) {
|
||||
s32 someint;
|
||||
bool somebool = false;
|
||||
someint = func0f073c6c(obj, &somebool);
|
||||
bool embedded = false;
|
||||
someint = projectileTick(obj, &embedded);
|
||||
|
||||
if ((obj->hidden & OBJHFLAG_AIRBORNE)) {
|
||||
if ((obj->hidden & OBJHFLAG_PROJECTILE)) {
|
||||
obj->projectile->flags |= PROJECTILEFLAG_00001000;
|
||||
|
||||
if (someint) {
|
||||
|
|
|
|||
|
|
@ -11839,12 +11839,12 @@ void bgun0f09ebcc(struct defaultobj *obj, struct coord *coord, s16 *rooms, Mtxf
|
|||
|
||||
func0f0685e4(objprop);
|
||||
|
||||
if (obj->hidden & OBJHFLAG_AIRBORNE) {
|
||||
obj->projectile->flags |= PROJECTILEFLAG_00000001;
|
||||
if (obj->hidden & OBJHFLAG_PROJECTILE) {
|
||||
obj->projectile->flags |= PROJECTILEFLAG_AIRBORNE;
|
||||
obj->projectile->ownerprop = prop;
|
||||
|
||||
objSetProjectileFlag4(objprop);
|
||||
mtx4Copy(matrix2, (Mtxf *)&obj->projectile->unk020);
|
||||
projectileSetSticky(objprop);
|
||||
mtx4Copy(matrix2, (Mtxf *)&obj->projectile->mtx);
|
||||
|
||||
obj->projectile->speed.x = velocity->x;
|
||||
obj->projectile->speed.y = velocity->y;
|
||||
|
|
@ -11872,8 +11872,8 @@ void bgun0f09ed2c(struct defaultobj *obj, struct coord *newpos, Mtxf *arg2, stru
|
|||
|
||||
bgun0f09ebcc(obj, &pos, rooms, arg2, velocity, arg4, playerprop, newpos);
|
||||
|
||||
if (obj->hidden & OBJHFLAG_AIRBORNE) {
|
||||
obj->projectile->flags |= PROJECTILEFLAG_00000080;
|
||||
if (obj->hidden & OBJHFLAG_PROJECTILE) {
|
||||
obj->projectile->flags |= PROJECTILEFLAG_LAUNCHING;
|
||||
|
||||
obj->projectile->nextsteppos.x = newpos->x;
|
||||
obj->projectile->nextsteppos.y = newpos->y;
|
||||
|
|
@ -11908,7 +11908,7 @@ struct defaultobj *bgunCreateThrownProjectile2(struct chrdata *chr, struct gset
|
|||
guRotateF(mtx.m, 90.0f / (RANDOMFRAC() + 12.1f),
|
||||
arg4->m[1][0], arg4->m[1][1], arg4->m[1][2]);
|
||||
} else {
|
||||
func0f096360(&mtx);
|
||||
mtxLoadRandomRotation(&mtx);
|
||||
}
|
||||
|
||||
if (gset->weaponnum == WEAPON_LAPTOPGUN) {
|
||||
|
|
@ -11956,7 +11956,7 @@ struct defaultobj *bgunCreateThrownProjectile2(struct chrdata *chr, struct gset
|
|||
|
||||
obj->hidden |= playernum << 28;
|
||||
|
||||
if (obj->hidden & OBJHFLAG_AIRBORNE) {
|
||||
if (obj->hidden & OBJHFLAG_PROJECTILE) {
|
||||
obj->projectile->flags |= PROJECTILEFLAG_00000002;
|
||||
obj->projectile->unk08c = 0.1f;
|
||||
obj->projectile->unk0b4 = TICKS(240);
|
||||
|
|
@ -12153,8 +12153,8 @@ void bgunCreateThrownProjectile(s32 handnum, struct gset *gset)
|
|||
}
|
||||
}
|
||||
|
||||
if (obj->hidden & OBJHFLAG_AIRBORNE) {
|
||||
obj->projectile->flags |= PROJECTILEFLAG_00000080;
|
||||
if (obj->hidden & OBJHFLAG_PROJECTILE) {
|
||||
obj->projectile->flags |= PROJECTILEFLAG_LAUNCHING;
|
||||
obj->projectile->nextsteppos.x = muzzlepos.x;
|
||||
obj->projectile->nextsteppos.y = muzzlepos.y;
|
||||
obj->projectile->nextsteppos.z = muzzlepos.z;
|
||||
|
|
@ -12429,11 +12429,11 @@ void bgunCreateFiredProjectile(s32 handnum)
|
|||
|
||||
bgun0f09ed2c(&weapon->base, &spawnpos, &sp210, &sp264, &sp270);
|
||||
|
||||
if (weapon->base.hidden & OBJHFLAG_AIRBORNE) {
|
||||
if (funcdef->base.base.flags & FUNCFLAG_80000000) {
|
||||
weapon->base.projectile->flags |= PROJECTILEFLAG_40000000;
|
||||
} else if (funcdef->base.base.flags & FUNCFLAG_08000000) {
|
||||
weapon->base.projectile->flags |= PROJECTILEFLAG_00000010;
|
||||
if (weapon->base.hidden & OBJHFLAG_PROJECTILE) {
|
||||
if (funcdef->base.base.flags & FUNCFLAG_PROJECTILE_LIGHTWEIGHT) {
|
||||
weapon->base.projectile->flags |= PROJECTILEFLAG_LIGHTWEIGHT;
|
||||
} else if (funcdef->base.base.flags & FUNCFLAG_PROJECTILE_POWERED) {
|
||||
weapon->base.projectile->flags |= PROJECTILEFLAG_POWERED;
|
||||
}
|
||||
|
||||
weapon->base.projectile->targetprop = g_Vars.currentplayer->trackedprops[0].prop;
|
||||
|
|
@ -12446,7 +12446,7 @@ void bgunCreateFiredProjectile(s32 handnum)
|
|||
mtx4ToMtx3(&sp78, weapon->base.realrot);
|
||||
}
|
||||
|
||||
weapon->base.projectile->unk0b2 = TICKS(1200);
|
||||
weapon->base.projectile->powerlimit240 = TICKS(1200);
|
||||
weapon->base.projectile->unk0a8 = weapon->base.prop->pos.y;
|
||||
weapon->base.projectile->unk0ac = weapon->base.projectile->speed.y;
|
||||
weapon->base.projectile->unk010 = sp250.x;
|
||||
|
|
@ -12464,8 +12464,8 @@ void bgunCreateFiredProjectile(s32 handnum)
|
|||
playerLaunchSlayerRocket(weapon);
|
||||
}
|
||||
|
||||
if (weapon->base.projectile->flags & PROJECTILEFLAG_00000080) {
|
||||
func0f073ae8(&weapon->base, weapon->base.projectile, &sp6c, &sp60);
|
||||
if (weapon->base.projectile->flags & PROJECTILEFLAG_LAUNCHING) {
|
||||
projectileLaunch(&weapon->base, weapon->base.projectile, &sp6c, &sp60);
|
||||
}
|
||||
} else {
|
||||
failed = true;
|
||||
|
|
@ -12505,11 +12505,11 @@ void bgunCreateFiredProjectile(s32 handnum)
|
|||
|
||||
bgun0f09ed2c(&weapon->base, &spawnpos, &sp210, &sp264, &sp270);
|
||||
|
||||
if (weapon->base.hidden & OBJHFLAG_AIRBORNE) {
|
||||
if (funcdef->base.base.flags & FUNCFLAG_80000000) {
|
||||
weapon->base.projectile->flags |= PROJECTILEFLAG_40000000;
|
||||
} else if (funcdef->base.base.flags & FUNCFLAG_08000000) {
|
||||
weapon->base.projectile->flags |= PROJECTILEFLAG_00000010;
|
||||
if (weapon->base.hidden & OBJHFLAG_PROJECTILE) {
|
||||
if (funcdef->base.base.flags & FUNCFLAG_PROJECTILE_LIGHTWEIGHT) {
|
||||
weapon->base.projectile->flags |= PROJECTILEFLAG_LIGHTWEIGHT;
|
||||
} else if (funcdef->base.base.flags & FUNCFLAG_PROJECTILE_POWERED) {
|
||||
weapon->base.projectile->flags |= PROJECTILEFLAG_POWERED;
|
||||
}
|
||||
|
||||
weapon->base.projectile->targetprop = g_Vars.currentplayer->trackedprops[0].prop;
|
||||
|
|
@ -12522,7 +12522,7 @@ void bgunCreateFiredProjectile(s32 handnum)
|
|||
mtx4ToMtx3(&sp78, weapon->base.realrot);
|
||||
}
|
||||
|
||||
weapon->base.projectile->unk0b2 = TICKS(1200);
|
||||
weapon->base.projectile->powerlimit240 = TICKS(1200);
|
||||
weapon->base.projectile->unk0a8 = weapon->base.prop->pos.y;
|
||||
weapon->base.projectile->unk0ac = weapon->base.projectile->speed.y;
|
||||
weapon->base.projectile->unk010 = sp250.x;
|
||||
|
|
@ -12540,8 +12540,8 @@ void bgunCreateFiredProjectile(s32 handnum)
|
|||
playerLaunchSlayerRocket(weapon);
|
||||
}
|
||||
|
||||
if (weapon->base.projectile->flags & PROJECTILEFLAG_00000080) {
|
||||
func0f073ae8(&weapon->base, weapon->base.projectile, &sp6c, &sp60);
|
||||
if (weapon->base.projectile->flags & PROJECTILEFLAG_LAUNCHING) {
|
||||
projectileLaunch(&weapon->base, weapon->base.projectile, &sp6c, &sp60);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
@ -14069,7 +14069,7 @@ void bgunLoseGun(struct prop *attackerprop)
|
|||
struct defaultobj *obj = prop2->obj;
|
||||
objSetDropped(prop2, DROPTYPE_DEFAULT);
|
||||
|
||||
if (obj->hidden & OBJHFLAG_AIRBORNE) {
|
||||
if (obj->hidden & OBJHFLAG_PROJECTILE) {
|
||||
obj->projectile->unk0b4 = TICKS(240);
|
||||
obj->projectile->unk108 = attackerprop;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -460,7 +460,7 @@ bool bwalkCalculateNewPositionWithPush(struct coord *delta, f32 rotateamount, bo
|
|||
g_Vars.currentplayer->speedmaxtime60 = 0;
|
||||
dothething = true;
|
||||
|
||||
if ((obj->hidden & OBJHFLAG_AIRBORNE) &&
|
||||
if ((obj->hidden & OBJHFLAG_PROJECTILE) &&
|
||||
(obj->projectile->flags & PROJECTILEFLAG_00001000)) {
|
||||
dothething = false;
|
||||
}
|
||||
|
|
@ -468,12 +468,12 @@ bool bwalkCalculateNewPositionWithPush(struct coord *delta, f32 rotateamount, bo
|
|||
if (dothething) {
|
||||
bwalk0f0c3b38(delta, obj);
|
||||
|
||||
if (obj->hidden & OBJHFLAG_AIRBORNE && (obj->projectile->flags & PROJECTILEFLAG_00000800)) {
|
||||
if (obj->hidden & OBJHFLAG_PROJECTILE && (obj->projectile->flags & PROJECTILEFLAG_SLIDING)) {
|
||||
bool somevalue;
|
||||
bool somebool = false;
|
||||
somevalue = func0f073c6c(obj, &somebool);
|
||||
bool embedded = false;
|
||||
somevalue = projectileTick(obj, &embedded);
|
||||
|
||||
if (obj->hidden & OBJHFLAG_AIRBORNE) {
|
||||
if (obj->hidden & OBJHFLAG_PROJECTILE) {
|
||||
obj->projectile->flags |= PROJECTILEFLAG_00001000;
|
||||
|
||||
if (somevalue) {
|
||||
|
|
|
|||
|
|
@ -1667,10 +1667,10 @@ glabel var7f1b8ea8
|
|||
//
|
||||
// dprint();
|
||||
//
|
||||
// if ((obj->hidden & OBJHFLAG_AIRBORNE)
|
||||
// if ((obj->hidden & OBJHFLAG_PROJECTILE)
|
||||
// && obj->projectile
|
||||
// && obj->projectile->unk0b4 > 0
|
||||
// && obj->projectile->unk090 == 0) {
|
||||
// && obj->projectile->bouncecount == 0) {
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
|
|
@ -1703,7 +1703,7 @@ glabel var7f1b8ea8
|
|||
//
|
||||
// // Ignore rockets that are in flight
|
||||
// if ((weaponobj->weaponnum == WEAPON_ROCKET || weaponobj->weaponnum == WEAPON_HOMINGROCKET)
|
||||
// && (obj->hidden & OBJHFLAG_AIRBORNE)) {
|
||||
// && (obj->hidden & OBJHFLAG_PROJECTILE)) {
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
|
|
@ -1860,10 +1860,10 @@ void botCheckPickups(struct chrdata *chr)
|
|||
if (obj)
|
||||
#endif
|
||||
{
|
||||
if ((obj->hidden & OBJHFLAG_AIRBORNE) == 0
|
||||
if ((obj->hidden & OBJHFLAG_PROJECTILE) == 0
|
||||
|| obj->projectile == NULL
|
||||
|| obj->projectile->unk0b4 <= 0
|
||||
|| obj->projectile->unk090) {
|
||||
|| obj->projectile->bouncecount != 0) {
|
||||
if (botIsObjCollectable(obj)) {
|
||||
if (botTestPropForPickup(prop, chr)) {
|
||||
propExecuteTickOperation(prop, TICKOP_FREE);
|
||||
|
|
@ -3469,7 +3469,7 @@ void botLoseGun(struct chrdata *chr, struct prop *attackerprop)
|
|||
objSetDropped(prop, DROPTYPE_DEFAULT);
|
||||
chr->hidden |= CHRHFLAG_00000001;
|
||||
|
||||
if (obj->hidden & OBJHFLAG_AIRBORNE) {
|
||||
if (obj->hidden & OBJHFLAG_PROJECTILE) {
|
||||
obj->projectile->unk0b4 = TICKS(240);
|
||||
obj->projectile->unk108 = attackerprop;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -523,7 +523,7 @@ void botactCreateSlayerRocket(struct chrdata *chr)
|
|||
|
||||
bgun0f09ebcc(&rocket->base, &chr->prop->pos, chr->prop->rooms, &sp196, &sp100, &sp260, chr->prop, &chr->prop->pos);
|
||||
|
||||
if (rocket->base.hidden & OBJHFLAG_AIRBORNE) {
|
||||
if (rocket->base.hidden & OBJHFLAG_PROJECTILE) {
|
||||
struct prop *target = chrGetTargetProp(chr);
|
||||
rocket->timer240 = -1;
|
||||
rocket->base.projectile->unk010 = 7.5;
|
||||
|
|
|
|||
|
|
@ -8781,8 +8781,8 @@ void chrCreateFireslot(struct chrdata *chr, s32 handnum, bool withsound, bool wi
|
|||
if (weaponprop) {
|
||||
weapon = weaponprop->weapon;
|
||||
weaponnum = weapon->weaponnum;
|
||||
duration = gsetGetFireslotDuration((struct gset *) &weapon->weaponnum);
|
||||
soundnum = gsetGetSingleShootSound((struct gset *) &weapon->weaponnum);
|
||||
duration = gsetGetFireslotDuration(&weapon->gset);
|
||||
soundnum = gsetGetSingleShootSound(&weapon->gset);
|
||||
|
||||
if (chr->fireslots[handnum] < 0) {
|
||||
chr->fireslots[handnum] = bgunAllocateFireslot();
|
||||
|
|
@ -17810,7 +17810,7 @@ glabel var7f1a9184
|
|||
// s32 tickspershot;
|
||||
// f32 sp208; // unused?
|
||||
//
|
||||
// gset = *(struct gset *)&weapon->weaponnum;
|
||||
// gset = weapon->gset;
|
||||
// attackflags = ATTACKFLAG_AIMATTARGET;
|
||||
//
|
||||
// if (chr->actiontype == ACT_ATTACK
|
||||
|
|
@ -18137,11 +18137,11 @@ glabel var7f1a9184
|
|||
//
|
||||
// bgun0f09ebcc(&projectileobj->base, &gunpos, gunrooms, &sp11c, &sp16c, &sp178, chrprop, &gunpos);
|
||||
//
|
||||
// if (projectileobj->base.hidden & OBJHFLAG_AIRBORNE) {
|
||||
// if (func->base.base.flags & FUNCFLAG_80000000) {
|
||||
// projectileobj->base.projectile->flags |= PROJECTILEFLAG_40000000;
|
||||
// } else if (func->base.base.flags & FUNCFLAG_08000000) {
|
||||
// projectileobj->base.projectile->flags |= PROJECTILEFLAG_00000010;
|
||||
// if (projectileobj->base.hidden & OBJHFLAG_PROJECTILE) {
|
||||
// if (func->base.base.flags & FUNCFLAG_PROJECTILE_LIGHTWEIGHT) {
|
||||
// projectileobj->base.projectile->flags |= PROJECTILEFLAG_LIGHTWEIGHT;
|
||||
// } else if (func->base.base.flags & FUNCFLAG_PROJECTILE_POWERED) {
|
||||
// projectileobj->base.projectile->flags |= PROJECTILEFLAG_POWERED;
|
||||
// }
|
||||
//
|
||||
// projectileobj->base.projectile->unk010 = sp15c.x;
|
||||
|
|
|
|||
|
|
@ -844,8 +844,8 @@ bool aiChrDamageChr(void)
|
|||
vector.z = chr2->prop->pos.z - chr1->prop->pos.z;
|
||||
guNormalize(&vector.x, &vector.y, &vector.z);
|
||||
weapon = prop->weapon;
|
||||
damage = gsetGetDamage((struct gset *)&weapon->weaponnum);
|
||||
chrDamageByImpact(chr2, damage, &vector, (struct gset *)&weapon->weaponnum, chr1->prop, (s8)cmd[4]);
|
||||
damage = gsetGetDamage(&weapon->gset);
|
||||
chrDamageByImpact(chr2, damage, &vector, &weapon->gset, chr1->prop, (s8)cmd[4]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2384,7 +2384,7 @@ bool aiGiveObjectToChr(void)
|
|||
#if VERSION >= VERSION_NTSC_1_0
|
||||
if (obj->prop->parent) {
|
||||
objDetach(obj->prop);
|
||||
func0f06ac90(obj->prop);
|
||||
objFreeEmbedmentOrProjectile(obj->prop);
|
||||
propActivate(obj->prop);
|
||||
}
|
||||
#endif
|
||||
|
|
@ -11143,7 +11143,7 @@ bool aiDoGunCommand(void)
|
|||
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
|
||||
struct weaponobj *weapon = g_Vars.chrdata->gunprop->weapon;
|
||||
|
||||
if (cmd[2] == 0 || ((weapon->base.hidden & OBJHFLAG_AIRBORNE) == 0 && cmd[2] == 1)) {
|
||||
if (cmd[2] == 0 || ((weapon->base.hidden & OBJHFLAG_PROJECTILE) == 0 && cmd[2] == 1)) {
|
||||
if (cmd[2] == 0) {
|
||||
chrGoToProp(g_Vars.chrdata, g_Vars.chrdata->gunprop, SPEED_JOG);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
#include "data.h"
|
||||
#include "types.h"
|
||||
|
||||
void func0f096360(Mtxf *mtx)
|
||||
void mtxLoadRandomRotation(Mtxf *mtx)
|
||||
{
|
||||
struct coord coord = {0, 0, 0};
|
||||
|
||||
|
|
@ -28,7 +28,7 @@ void func0f0964b4(struct coord *coord, Mtxf *mtx)
|
|||
coord->y = RANDOMFRAC() * 1.6666666269302f * 4.0f;
|
||||
coord->z = RANDOMFRAC() * 1.6666666269302f * 4.0f - 3.3333332538605f;
|
||||
|
||||
func0f096360(mtx);
|
||||
mtxLoadRandomRotation(mtx);
|
||||
}
|
||||
|
||||
void func0f0965e4(f32 *arg0, f32 *arg1, f32 arg2)
|
||||
|
|
|
|||
|
|
@ -2705,7 +2705,7 @@ struct weaponfunc_shootprojectile invfunc_rockerlauncher_shoot = {
|
|||
0, // unk07
|
||||
&invnoisesettings_00011048,
|
||||
invanim_rockerlauncher_equiporshoot, // fire animation
|
||||
FUNCFLAG_NOAUTOAIM | FUNCFLAG_08000000,
|
||||
FUNCFLAG_NOAUTOAIM | FUNCFLAG_PROJECTILE_POWERED,
|
||||
NULL,
|
||||
0,
|
||||
1, // damage
|
||||
|
|
@ -2736,7 +2736,7 @@ struct weaponfunc_shootprojectile invfunc_rocketlauncher_homing = {
|
|||
0, // unk07
|
||||
&invnoisesettings_00011048,
|
||||
invanim_rockerlauncher_equiporshoot, // fire animation
|
||||
FUNCFLAG_NOAUTOAIM | FUNCFLAG_08000000 | FUNCFLAG_HOMINGROCKET,
|
||||
FUNCFLAG_NOAUTOAIM | FUNCFLAG_PROJECTILE_POWERED | FUNCFLAG_HOMINGROCKET,
|
||||
NULL,
|
||||
0,
|
||||
1, // damage
|
||||
|
|
@ -2815,7 +2815,7 @@ struct weaponfunc_shootprojectile invfunc_slayer_shoot = {
|
|||
0, // unk07
|
||||
&invnoisesettings_00011048,
|
||||
invanim_slayer_equiporshoot, // fire animation
|
||||
FUNCFLAG_NOAUTOAIM | FUNCFLAG_08000000,
|
||||
FUNCFLAG_NOAUTOAIM | FUNCFLAG_PROJECTILE_POWERED,
|
||||
NULL,
|
||||
0,
|
||||
1, // damage
|
||||
|
|
@ -2846,7 +2846,7 @@ struct weaponfunc_shootprojectile invfunc_slayer_flybywire = {
|
|||
0, // unk07
|
||||
&invnoisesettings_00011048,
|
||||
NULL, // fire animation
|
||||
FUNCFLAG_NOAUTOAIM | FUNCFLAG_FLYBYWIRE | FUNCFLAG_08000000 | FUNCFLAG_20000000,
|
||||
FUNCFLAG_NOAUTOAIM | FUNCFLAG_FLYBYWIRE | FUNCFLAG_PROJECTILE_POWERED | FUNCFLAG_20000000,
|
||||
NULL,
|
||||
0,
|
||||
1, // damage
|
||||
|
|
@ -6007,7 +6007,7 @@ struct weaponfunc_shootprojectile invfunc_rocketlauncher34_primary = {
|
|||
0, // unk07
|
||||
&invnoisesettings_00011048,
|
||||
invanim_rockerlauncher_equiporshoot, // fire animation
|
||||
FUNCFLAG_NOAUTOAIM | FUNCFLAG_08000000,
|
||||
FUNCFLAG_NOAUTOAIM | FUNCFLAG_PROJECTILE_POWERED,
|
||||
NULL,
|
||||
0,
|
||||
1, // damage
|
||||
|
|
|
|||
|
|
@ -1341,7 +1341,7 @@ void scenarioHandleDroppedToken(struct chrdata *chr, struct prop *prop)
|
|||
if (g_MpSetup.scenario == MPSCENARIO_CAPTURETHECASE) {
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (chr->prop == g_ScenarioData.ctc.tokens[i]) {
|
||||
objEndFlight(&weapon->base);
|
||||
objFreeProjectile(&weapon->base);
|
||||
|
||||
g_ScenarioData.ctc.tokens[i] = prop;
|
||||
weapon->team = i;
|
||||
|
|
|
|||
|
|
@ -3981,7 +3981,7 @@ void playerTick(bool arg0)
|
|||
mtx00016208(sp2b8, &sp2f0);
|
||||
mtx00016208(sp2b8, &sp2e4);
|
||||
|
||||
if (rocket->base.hidden & OBJHFLAG_AIRBORNE) {
|
||||
if (rocket->base.hidden & OBJHFLAG_PROJECTILE) {
|
||||
struct projectile *projectile = rocket->base.projectile;
|
||||
u32 mode = optionsGetControlMode(g_Vars.currentplayerstats->mpindex);
|
||||
f32 fVar22;
|
||||
|
|
@ -4110,13 +4110,13 @@ void playerTick(bool arg0)
|
|||
quaternionToMtx(sp13c, &sp1fc);
|
||||
mtx4RotateVecInPlace(&sp1fc, &projectile->speed);
|
||||
|
||||
projectile->unk0b2 = 0xffff;
|
||||
projectile->flags |= PROJECTILEFLAG_00004000;
|
||||
projectile->powerlimit240 = -1;
|
||||
projectile->flags |= PROJECTILEFLAG_NOTIMELIMIT;
|
||||
projectile->unk018 = 0;
|
||||
projectile->unk014 = 0;
|
||||
projectile->unk010 = 0;
|
||||
|
||||
if ((projectile->flags & PROJECTILEFLAG_00000080) == 0) {
|
||||
if ((projectile->flags & PROJECTILEFLAG_LAUNCHING) == 0) {
|
||||
projectile->ownerprop = NULL;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1277,15 +1277,12 @@ void handTickAttack(s32 handnum)
|
|||
if (bgunIsFiring(handnum)) {
|
||||
s32 type = bgunGetAttackType(handnum);
|
||||
s32 weaponnum = bgunGetWeaponNum(handnum);
|
||||
u8 stack1;
|
||||
u8 stack2;
|
||||
u8 stack3;
|
||||
u8 tmpweaponnum;
|
||||
struct gset gset;
|
||||
bool cloaked;
|
||||
|
||||
g_Vars.currentplayer->hands[handnum].unk0d0f_03 = false;
|
||||
|
||||
gsetPopulateFromCurrentPlayer(handnum, (struct gset *)&tmpweaponnum);
|
||||
gsetPopulateFromCurrentPlayer(handnum, &gset);
|
||||
frIncrementNumShots();
|
||||
|
||||
switch (type) {
|
||||
|
|
@ -1294,7 +1291,7 @@ void handTickAttack(s32 handnum)
|
|||
// right hand is not (ie. prevent firing both guns on the same tick)
|
||||
if (handnum == HAND_RIGHT || !bgunIsFiring(HAND_RIGHT)) {
|
||||
chrUncloakTemporarily(g_Vars.currentplayer->prop->chr);
|
||||
mpstatsIncrementPlayerShotCount2((struct gset *)&tmpweaponnum, 0);
|
||||
mpstatsIncrementPlayerShotCount2(&gset, 0);
|
||||
|
||||
if (weaponnum == WEAPON_SHOTGUN) {
|
||||
handCreateBulletRaycast(handnum, true, true, 1, true);
|
||||
|
|
@ -1312,10 +1309,10 @@ void handTickAttack(s32 handnum)
|
|||
break;
|
||||
case HANDATTACKTYPE_CLOSERANGE:
|
||||
chrUncloakTemporarily(g_Vars.currentplayer->prop->chr);
|
||||
handInflictCloseRangeDamage(handnum, (struct gset *)&tmpweaponnum, false);
|
||||
handInflictCloseRangeDamage(handnum, &gset, false);
|
||||
break;
|
||||
case HANDATTACKTYPE_CLOSERANGENOUNCLOAK:
|
||||
handInflictCloseRangeDamage(handnum, (struct gset *)&tmpweaponnum, true);
|
||||
handInflictCloseRangeDamage(handnum, &gset, true);
|
||||
break;
|
||||
case HANDATTACKTYPE_DETONATE:
|
||||
playerActivateRemoteMineDetonator(g_Vars.currentplayernum);
|
||||
|
|
@ -1340,7 +1337,7 @@ void handTickAttack(s32 handnum)
|
|||
}
|
||||
break;
|
||||
case HANDATTACKTYPE_THROWPROJECTILE:
|
||||
bgunCreateThrownProjectile(handnum, (struct gset *)&tmpweaponnum);
|
||||
bgunCreateThrownProjectile(handnum, &gset);
|
||||
break;
|
||||
case HANDATTACKTYPE_RCP120CLOAK:
|
||||
cloaked = (g_Vars.currentplayer->devicesactive & DEVICE_CLOAKRCP120) != 0;
|
||||
|
|
@ -1400,7 +1397,7 @@ void propExecuteTickOperation(struct prop *prop, s32 op)
|
|||
propDelist(prop);
|
||||
propDisable(prop);
|
||||
objDetach(prop);
|
||||
func0f06ac90(prop);
|
||||
objFreeEmbedmentOrProjectile(prop);
|
||||
propReparent(prop, g_Vars.currentplayer->prop);
|
||||
}
|
||||
}
|
||||
|
|
@ -5762,7 +5759,7 @@ glabel propsTickPlayer
|
|||
// if (prop->type == PROPTYPE_PLAYER) {
|
||||
// score++;
|
||||
// } else if (prop->type == PROPTYPE_OBJ || prop->type == PROPTYPE_WEAPON) {
|
||||
// if (prop->obj->hidden & OBJHFLAG_AIRBORNE) {
|
||||
// if (prop->obj->hidden & OBJHFLAG_PROJECTILE) {
|
||||
// score++;
|
||||
// }
|
||||
// }
|
||||
|
|
|
|||
19149
src/game/propobj.c
19149
src/game/propobj.c
File diff suppressed because it is too large
Load Diff
|
|
@ -316,7 +316,7 @@ struct defaultobj *setupFindObjForReuse(s32 wanttype, struct defaultobj **offscr
|
|||
return obj;
|
||||
}
|
||||
} else if (wanttype != OBJTYPE_WEAPON
|
||||
&& (obj->hidden & OBJHFLAG_AIRBORNE) == 0
|
||||
&& (obj->hidden & OBJHFLAG_PROJECTILE) == 0
|
||||
&& (obj->hidden2 & OBJH2FLAG_CANREGEN) == 0
|
||||
#if VERSION >= VERSION_NTSC_1_0
|
||||
&& (obj->flags & OBJFLAG_00800000) == 0
|
||||
|
|
|
|||
|
|
@ -1582,7 +1582,7 @@ bool frIsAmmoWasted(void)
|
|||
|
||||
if (prop->weapon->weaponnum == WEAPON_BOLT
|
||||
|| prop->weapon->weaponnum == WEAPON_COMBATKNIFE) {
|
||||
if (prop->obj->hidden & OBJHFLAG_AIRBORNE) {
|
||||
if (prop->obj->hidden & OBJHFLAG_PROJECTILE) {
|
||||
return false;
|
||||
}
|
||||
} else if (prop->weapon->weaponnum == WEAPON_TIMEDMINE
|
||||
|
|
|
|||
|
|
@ -993,11 +993,11 @@
|
|||
#define FUNCFLAG_PSYCHOSIS 0x00200000
|
||||
#define FUNCFLAG_00400000 0x00400000 // punch, disarm and pistol whip
|
||||
#define FUNCFLAG_CALCULATETRAJECTORY 0x00800000 // throwables will land on crosshair
|
||||
#define FUNCFLAG_08000000 0x08000000 // rockets
|
||||
#define FUNCFLAG_PROJECTILE_POWERED 0x08000000
|
||||
#define FUNCFLAG_10000000 0x10000000 // grenade launchers
|
||||
#define FUNCFLAG_20000000 0x20000000 // explosives related
|
||||
#define FUNCFLAG_HOMINGROCKET 0x40000000
|
||||
#define FUNCFLAG_80000000 0x80000000
|
||||
#define FUNCFLAG_PROJECTILE_LIGHTWEIGHT 0x80000000
|
||||
|
||||
#define GAILIST_IDLE 0x0000
|
||||
#define GAILIST_UNALERTED_0001 0x0001
|
||||
|
|
@ -3079,8 +3079,8 @@
|
|||
#define OBJFLAG3_HOVERBEDSHIELD 0x00100000
|
||||
#define OBJFLAG3_INTERACTSHORTRANGE 0x00200000
|
||||
#define OBJFLAG3_PLAYERUNDROPPABLE 0x00400000 // Player does not drop item when dead
|
||||
#define OBJFLAG3_00800000 0x00800000 // Not used in scripts
|
||||
#define OBJFLAG3_01000000 0x01000000 // Not used in scripts
|
||||
#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
|
||||
|
|
@ -3097,7 +3097,7 @@
|
|||
#define OBJHFLAG_TAGGED 0x00000010
|
||||
#define OBJHFLAG_00000020 0x00000020 // thrown knife
|
||||
#define OBJHFLAG_EMBEDDED 0x00000040 // obj is embedded in a chr or other obj (eg. knife)
|
||||
#define OBJHFLAG_AIRBORNE 0x00000080
|
||||
#define OBJHFLAG_PROJECTILE 0x00000080 // obj is airborne, sliding or falling
|
||||
#define OBJHFLAG_00000100 0x00000100
|
||||
#define OBJHFLAG_00000200 0x00000200
|
||||
#define OBJHFLAG_HASTEXTOVERRIDE 0x00000400
|
||||
|
|
@ -3371,18 +3371,22 @@
|
|||
#define PROFILE_RDP_START1 0x40001
|
||||
#define PROFILE_AUDIOFRAME_END 0x60000
|
||||
|
||||
#define PROJECTILEFLAG_00000001 0x00000001
|
||||
#define PROJECTILEFLAG_00000002 0x00000002
|
||||
#define PROJECTILEFLAG_00000004 0x00000004
|
||||
#define PROJECTILEFLAG_00000010 0x00000010
|
||||
#define PROJECTILEFLAG_00000080 0x00000080
|
||||
#define PROJECTILEFLAG_00000400 0x00000400
|
||||
#define PROJECTILEFLAG_00000800 0x00000800
|
||||
#define PROJECTILEFLAG_00001000 0x00001000
|
||||
#define PROJECTILEFLAG_00002000 0x00002000
|
||||
#define PROJECTILEFLAG_00004000 0x00004000
|
||||
#define PROJECTILEFLAG_40000000 0x40000000
|
||||
#define PROJECTILEFLAG_FREE 0x80000000
|
||||
#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 PROPFLAG_RENDERPOSTBG 0x01
|
||||
#define PROPFLAG_ONTHISSCREENTHISTICK 0x02
|
||||
|
|
@ -3686,6 +3690,7 @@
|
|||
#define SPARKTYPE_0B 0x0b
|
||||
#define SPARKTYPE_0D 0x0d
|
||||
#define SPARKTYPE_0F 0x0f
|
||||
#define SPARKTYPE_10 0x10
|
||||
#define SPARKTYPE_11 0x11
|
||||
#define SPARKTYPE_12 0x12
|
||||
#define SPARKTYPE_13 0x13
|
||||
|
|
@ -3706,7 +3711,7 @@
|
|||
#define SPAWNFLAG_IGNORECOLLISION 0x00000100 // For initial chr placement only
|
||||
#define SPAWNFLAG_00000200 0x00000200
|
||||
#define SPAWNFLAG_ANTINONINTERACTABLE 0x00000400
|
||||
#define SPAWNFLAG_DONTSHOOTME 0x00000800
|
||||
#define SPAWNFLAG_DONTSHOOTME 0x00000800
|
||||
#define SPAWNFLAG_HIDDEN 0x00001000
|
||||
#define SPAWNFLAG_NOBLOOD 0x00002000
|
||||
#define SPAWNFLAG_FIXEDHEIGHT 0x00004000 // By default, chr heights vary slightly. This disables it.
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ void chrRenderAttachedObject(struct prop *prop, struct modelrenderdata *renderda
|
|||
void chrGetBloodColour(s16 bodynum, u8 *colour1, u32 *colour2);
|
||||
Gfx *chrRender(struct prop *prop, Gfx *gdl, bool xlupass);
|
||||
void chrEmitSparks(struct chrdata *chr, struct prop *prop, s32 hitpart, struct coord *coord, struct coord *coord2, struct chrdata *chr2);
|
||||
u32 chr0f0260c4(void);
|
||||
void chr0f0260c4(struct model *model, s32 hitpart, struct modelnode *node, struct coord *arg3);
|
||||
void chrBruise(struct model *model, s32 hitpart, struct modelnode *node, struct coord *arg3);
|
||||
void chrDisfigure(struct chrdata *chr, struct coord *exppos, f32 damageradius);
|
||||
f32 chr0f0278a4(struct chrdata *chr);
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
#include "data.h"
|
||||
#include "types.h"
|
||||
|
||||
void func0f096360(Mtxf *mtx);
|
||||
void mtxLoadRandomRotation(Mtxf *mtx);
|
||||
void func0f0964b4(struct coord *arg0, Mtxf *mtx);
|
||||
void func0f0965e4(f32 *arg0, f32 *arg1, f32 arg2);
|
||||
void func0f096698(Mtxf *arg0, Mtxf *arg1, s32 count);
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ void projectilesUnrefOwner(struct prop *owner);
|
|||
void projectileReset(struct projectile *projectile);
|
||||
struct projectile *projectileAllocate(void);
|
||||
void func0f0685e4(struct prop *prop);
|
||||
void objSetProjectileFlag4(struct prop *prop);
|
||||
void projectileSetSticky(struct prop *prop);
|
||||
void embedmentFree(struct embedment *embedment);
|
||||
struct embedment *embedmentAllocate(void);
|
||||
s32 objGetShotsTaken(struct defaultobj *obj);
|
||||
|
|
@ -103,8 +103,8 @@ void func0f06a580(struct defaultobj *obj, struct coord *pos, Mtxf *matrix, s16 *
|
|||
f32 func0f06a620(struct defaultobj *obj);
|
||||
void func0f06a730(struct defaultobj *obj, struct coord *arg1, Mtxf *matrix, s16 *rooms, struct coord *arg4);
|
||||
void func0f06ab60(struct defaultobj *obj, struct coord *arg1, Mtxf *matrix, s16 *rooms, struct coord *arg4);
|
||||
void objEndFlight(struct defaultobj *obj);
|
||||
void func0f06ac90(struct prop *prop);
|
||||
void objFreeProjectile(struct defaultobj *obj);
|
||||
void objFreeEmbedmentOrProjectile(struct prop *prop);
|
||||
void objFree(struct defaultobj *obj, bool freeprop, bool canregen);
|
||||
void objFreePermanently(struct defaultobj *obj, bool freeprop);
|
||||
f32 objGetWidth(struct defaultobj *obj);
|
||||
|
|
@ -114,11 +114,11 @@ bool func0f06b610(struct defaultobj *obj, struct coord *arg1, struct coord *arg2
|
|||
bool func0f06bea0(struct model *model, struct modelnode *arg1, struct modelnode *arg2, struct coord *arg3, struct coord *arg4, void *arg5, f32 *arg6, struct modelnode **arg7, s32 *hitpart, s32 *arg9, struct modelnode **arg10);
|
||||
bool func0f06c28c(struct chrdata *chr, struct coord *arg1, struct coord *arg2, struct coord *arg3, f32 arg4, struct coord *arg5, struct coord *arg6, struct coord *arg7, struct coord *arg8, f32 *arg9);
|
||||
bool projectileFindCollidingProp(struct prop *prop, struct coord *pos, struct coord *arg2, u32 cdtypes, struct coord *arg4, struct coord *arg5, s16 *arg6);
|
||||
bool func0f06cd00(struct defaultobj *obj, struct coord *pos, struct coord *arg2, struct coord *arg3);
|
||||
s32 func0f06cd00(struct defaultobj *obj, struct coord *pos, struct coord *arg2, struct coord *arg3);
|
||||
bool func0f06d37c(struct defaultobj *obj, struct coord *arg1, struct coord *arg2, struct coord *arg3);
|
||||
void applySpeed(f32 *distdone, f32 maxdist, f32 *speed, f32 accel, f32 decel, f32 maxspeed);
|
||||
void applyRotation(f32 *angle, f32 maxrot, f32 *speed, f32 accel, f32 decel, f32 maxspeed);
|
||||
u32 func0f06dbd8(void);
|
||||
void func0f06dbd8(struct defaultobj *obj, f32 mtx[3][3]);
|
||||
void knifePlayWooshSound(struct defaultobj *obj);
|
||||
void func0f06e9cc(struct coord *arg0, Mtxf *arg1);
|
||||
void objLand2(struct defaultobj *obj, struct coord *arg1, struct coord *arg2);
|
||||
|
|
@ -156,8 +156,8 @@ f32 objCollide(struct defaultobj *obj, struct coord *arg1, f32 arg2);
|
|||
void hoverbikeUpdateMovement(struct hoverbikeobj *hoverbike, f32 arg1, f32 arg2, f32 arg3);
|
||||
void platformDisplaceProps2(struct prop *platform, Mtxf *arg1);
|
||||
bool rocketTickFbw(struct weaponobj *rocket);
|
||||
s32 func0f073ae8(struct defaultobj *obj, struct projectile *projectile, struct coord *arg2, struct coord *arg3);
|
||||
s32 func0f073c6c(struct defaultobj *obj, bool *arg1);
|
||||
s32 projectileLaunch(struct defaultobj *obj, struct projectile *projectile, struct coord *arg2, struct coord *arg3);
|
||||
s32 projectileTick(struct defaultobj *obj, bool *embedded);
|
||||
void doorTick(struct prop *doorprop);
|
||||
void doorUpdatePortalIfWindowed(struct prop *door, s32 playercount);
|
||||
void doorInitMatrices(struct prop *door);
|
||||
|
|
|
|||
|
|
@ -71,13 +71,14 @@ s32 cdFindRoom(struct coord *pos, s16 *nearrooms);
|
|||
|
||||
#if VERSION >= VERSION_NTSC_1_0
|
||||
s16 cd0002a440(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcolptr, u16 *flagsptr);
|
||||
s16 cd0002a4d0(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcolptr, u16 *flagsptr);
|
||||
#else
|
||||
s16 cd0002a440(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcolptr);
|
||||
s16 cd0002a4d0(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcolptr);
|
||||
#endif
|
||||
|
||||
s16 cd0002a4d0(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcolptr, u16 *flagsptr);
|
||||
s32 cd0002a564(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcol, struct coord *arg4, struct prop **propptr);
|
||||
s32 cd0002a5e4(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcol, u16 *arg4, struct coord *arg5);
|
||||
s16 cd0002a564(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcol, struct coord *arg4, struct prop **propptr);
|
||||
s16 cd0002a5e4(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcol, u16 *arg4, struct coord *arg5);
|
||||
s32 cdTestVolume(struct coord *pos, f32 radius, s16 *rooms, s32 types, s32 arg4, f32 ymax, f32 ymin);
|
||||
s32 cd0002a6fc(struct coord *pos, struct coord *pos2, f32 width, s16 *rooms, s32 types, bool arg5, f32 arg6, f32 arg7);
|
||||
s32 cdTestAToB1(struct coord *origpos, struct coord *dstpos, f32 width, s16 *dstrooms, s32 types, s32 arg5, f32 ymax, f32 ymin);
|
||||
|
|
|
|||
|
|
@ -1336,29 +1336,23 @@ struct projectile {
|
|||
/*0x014*/ f32 unk014;
|
||||
/*0x018*/ f32 unk018;
|
||||
/*0x01c*/ f32 unk01c;
|
||||
/*0x020*/ Mtxf unk020;
|
||||
/*0x020*/ Mtxf mtx;
|
||||
/*0x060*/ f32 unk060;
|
||||
/*0x064*/ u32 unk064;
|
||||
/*0x068*/ u32 unk068;
|
||||
/*0x06c*/ u32 unk06c;
|
||||
/*0x070*/ u32 unk070;
|
||||
/*0x074*/ u32 unk074;
|
||||
/*0x078*/ u32 unk078;
|
||||
/*0x07c*/ u32 unk07c;
|
||||
/*0x080*/ u32 unk080;
|
||||
/*0x084*/ u32 unk084;
|
||||
/*0x064*/ f32 unk064;
|
||||
/*0x068*/ f32 unk068[4];
|
||||
/*0x078*/ f32 unk078[4];
|
||||
/*0x088*/ struct prop *ownerprop;
|
||||
/*0x08c*/ f32 unk08c;
|
||||
/*0x090*/ s32 unk090;
|
||||
/*0x094*/ s32 unk094;
|
||||
/*0x090*/ s32 bouncecount;
|
||||
/*0x094*/ s32 bounceframe;
|
||||
/*0x098*/ f32 unk098;
|
||||
/*0x09c*/ s32 lastwooshframe;
|
||||
/*0x0a0*/ u32 unk0a0;
|
||||
/*0x0a0*/ s32 flighttime240;
|
||||
/*0x0a4*/ s32 unk0a4;
|
||||
/*0x0a8*/ f32 unk0a8;
|
||||
/*0x0ac*/ f32 unk0ac;
|
||||
/*0x0b0*/ s16 droptype;
|
||||
/*0x0b2*/ s16 unk0b2;
|
||||
/*0x0b2*/ s16 powerlimit240;
|
||||
/*0x0b4*/ s32 unk0b4;
|
||||
/*0x0b8*/ f32 unk0b8;
|
||||
/*0x0bc*/ f32 unk0bc;
|
||||
|
|
@ -1555,10 +1549,17 @@ struct ammocrateobj { // objtype 0x07
|
|||
|
||||
struct weaponobj { // objtype 0x08
|
||||
struct defaultobj base;
|
||||
/*0x5c*/ u8 weaponnum;
|
||||
/*0x5d*/ s8 unk5d;
|
||||
/*0x5e*/ s8 unk5e;
|
||||
/*0x5f*/ u8 gunfunc;
|
||||
|
||||
union {
|
||||
struct gset gset;
|
||||
struct {
|
||||
/*0x5c*/ u8 weaponnum;
|
||||
/*0x5d*/ s8 unk5d;
|
||||
/*0x5e*/ s8 unk5e;
|
||||
/*0x5f*/ u8 gunfunc;
|
||||
};
|
||||
};
|
||||
|
||||
/*0x60*/ s8 fadeouttimer60;
|
||||
/*0x61*/ s8 dualweaponnum;
|
||||
|
||||
|
|
|
|||
|
|
@ -2981,7 +2981,11 @@ s16 cd0002a440(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcolptr)
|
|||
return room;
|
||||
}
|
||||
|
||||
#if VERSION >= VERSION_NTSC_1_0
|
||||
s16 cd0002a4d0(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcolptr, u16 *flagsptr)
|
||||
#else
|
||||
s16 cd0002a4d0(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcolptr)
|
||||
#endif
|
||||
{
|
||||
struct geo *geo;
|
||||
s16 sp32;
|
||||
|
|
@ -3006,7 +3010,7 @@ s16 cd0002a4d0(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcolptr, u16 *
|
|||
return sp32;
|
||||
}
|
||||
|
||||
s32 cd0002a564(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcol, struct coord *arg4, struct prop **propptr)
|
||||
s16 cd0002a564(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcol, struct coord *arg4, struct prop **propptr)
|
||||
{
|
||||
struct geo *geo;
|
||||
s16 sp32;
|
||||
|
|
@ -3026,7 +3030,7 @@ s32 cd0002a564(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcol, struct c
|
|||
return sp32;
|
||||
}
|
||||
|
||||
s32 cd0002a5e4(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcol, u16 *flagsptr, struct coord *arg5)
|
||||
s16 cd0002a5e4(struct coord *pos, s16 *rooms, f32 *arg2, u16 *floorcol, u16 *flagsptr, struct coord *arg5)
|
||||
{
|
||||
struct geo *geo;
|
||||
s16 sp32;
|
||||
|
|
|
|||
Loading…
Reference in New Issue