mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-07-30 07:44:34 -04:00
Identify some prop flags
This commit is contained in:
+1
-1
@@ -11942,7 +11942,7 @@ void bgun0f09f848(s32 handnum)
|
||||
mtx4Copy(&hand->muzzlemat, &model->matrices[0]);
|
||||
model0001cb0c(model, model->filedata->rootnode);
|
||||
|
||||
objprop->flags |= PROPFLAG_40 | PROPFLAG_ONSCREEN;
|
||||
objprop->flags |= PROPFLAG_ONANYSCREENTHISTICK | PROPFLAG_ONTHISSCREENTHISTICK;
|
||||
objprop->z = -model->matrices[0].m[3][2];
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -11952,7 +11952,7 @@ glabel var7f1a87f8
|
||||
*/
|
||||
void chrRenderAttachedObject(struct prop *prop, struct modelrenderdata *renderdata, bool withalpha, struct chrdata *chr)
|
||||
{
|
||||
if (prop->flags & PROPFLAG_ONSCREEN) {
|
||||
if (prop->flags & PROPFLAG_ONTHISSCREENTHISTICK) {
|
||||
u32 stack;
|
||||
struct defaultobj *obj = prop->obj;
|
||||
struct model *model = obj->model;
|
||||
@@ -14166,7 +14166,7 @@ void func0f027994(struct prop *prop, struct shotdata *shotdata, bool arg2, bool
|
||||
struct coord spd0;
|
||||
struct chrdata *chr = prop->chr;
|
||||
|
||||
if ((chr->chrflags & CHRCFLAG_HIDDEN) == 0 && (prop->flags & PROPFLAG_ONSCREEN)) {
|
||||
if ((chr->chrflags & CHRCFLAG_HIDDEN) == 0 && (prop->flags & PROPFLAG_ONTHISSCREENTHISTICK)) {
|
||||
f32 fStack32 = func0f0278a4(chr);
|
||||
|
||||
if (prop->z - fStack32 < shotdata->unk34) {
|
||||
|
||||
+11
-11
@@ -6417,7 +6417,7 @@ bool chrGoToPos(struct chrdata *chr, struct coord *pos, s16 *room, u32 flags)
|
||||
|
||||
if ((!isgopos || ismagic)
|
||||
&& g_Vars.normmplayerisrunning == false
|
||||
&& (prop->flags & (PROPFLAG_80 | PROPFLAG_40 | PROPFLAG_ONSCREEN)) == 0
|
||||
&& (prop->flags & (PROPFLAG_ONANYSCREENPREVTICK | PROPFLAG_ONANYSCREENTHISTICK | PROPFLAG_ONTHISSCREENTHISTICK)) == 0
|
||||
&& func0f036c08(chr, &curwppos, curwprooms)
|
||||
&& chr->inlift == false) {
|
||||
chrGoPosInitMagic(chr, &chr->act_gopos.waydata, &curwppos, &prevpos);
|
||||
@@ -6839,7 +6839,7 @@ glabel var7f1a8dd0
|
||||
// chrPatrolGetCurWaypointInfo(chr, &nextpos, nextrooms);
|
||||
//
|
||||
// if (!g_Vars.normmplayerisrunning
|
||||
// && (chr->prop->flags & (PROPFLAG_ONSCREEN | PROPFLAG_40 | PROPFLAG_80)) == 0
|
||||
// && (chr->prop->flags & (PROPFLAG_ONTHISSCREENTHISTICK | PROPFLAG_ONANYSCREENTHISTICK | PROPFLAG_ONANYSCREENPREVTICK)) == 0
|
||||
// && func0f036c08(chr, &nextpos, nextrooms)
|
||||
// && !chr->inlift) {
|
||||
// chrGoPosInitMagic(chr, &chr->act_patrol.waydata, &nextpos, &prop->pos);
|
||||
@@ -9037,7 +9037,7 @@ glabel var7f1a8f08
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// if (chr->prop->flags & PROPFLAG_80) {
|
||||
// if (chr->prop->flags & PROPFLAG_ONANYSCREENPREVTICK) {
|
||||
// chr->sleep = 0;
|
||||
// } else {
|
||||
// chr->sleep = 14 + (random() % 5);
|
||||
@@ -9255,7 +9255,7 @@ void chrTickDead(struct chrdata *chr)
|
||||
chrDropItemsForOwnerReap(chr);
|
||||
}
|
||||
|
||||
if (chr->prop->flags & PROPFLAG_80) {
|
||||
if (chr->prop->flags & PROPFLAG_ONANYSCREENPREVTICK) {
|
||||
// Keep corpse for now
|
||||
chr->act_dead.invistimer60 = 0;
|
||||
} else {
|
||||
@@ -9836,7 +9836,7 @@ void chrTickDruggedKo(struct chrdata *chr)
|
||||
chr->act_dead.fadetimer60 = 0;
|
||||
}
|
||||
|
||||
if (chr->prop->flags & PROPFLAG_80) {
|
||||
if (chr->prop->flags & PROPFLAG_ONANYSCREENPREVTICK) {
|
||||
chr->act_dead.invistimer60 = 0;
|
||||
} else {
|
||||
chr->act_dead.invistimer60 += g_Vars.lvupdate240_60;
|
||||
@@ -11531,7 +11531,7 @@ bool func0f03fde4(struct chrdata *chr, s32 handnum, struct coord *arg2)
|
||||
obj = weaponprop->obj;
|
||||
model = obj->model;
|
||||
|
||||
if ((chr->prop->flags & PROPFLAG_ONSCREEN) && (weaponprop->flags & PROPFLAG_ONSCREEN)) {
|
||||
if ((chr->prop->flags & PROPFLAG_ONTHISSCREENTHISTICK) && (weaponprop->flags & PROPFLAG_ONTHISSCREENTHISTICK)) {
|
||||
if ((part0 = modelGetPart(model->filedata, MODELPART_0000))) {
|
||||
spac = model0001a5cc(model, part0, 0);
|
||||
rodata = &part0->rodata->gunfire;
|
||||
@@ -11599,7 +11599,7 @@ void chrCalculateShieldHit(struct chrdata *chr, struct coord *pos, struct coord
|
||||
u32 stack3;
|
||||
|
||||
if (prop->type != PROPTYPE_PLAYER || g_Vars.normmplayerisrunning || chrGetShield(chr) > 0) {
|
||||
if (prop->flags & (PROPFLAG_ONSCREEN | PROPFLAG_40 | PROPFLAG_80)) {
|
||||
if (prop->flags & (PROPFLAG_ONTHISSCREENTHISTICK | PROPFLAG_ONANYSCREENTHISTICK | PROPFLAG_ONANYSCREENPREVTICK)) {
|
||||
bestnode = NULL;
|
||||
bestvolume = MAXFLOAT;
|
||||
lVar4 = func0f0b5050(chr->model->matrices);
|
||||
@@ -22454,7 +22454,7 @@ void chrTickGoPos(struct chrdata *chr)
|
||||
|
||||
// Check if chr needs to exit magic mode
|
||||
if (chr->act_gopos.waydata.mode == WAYMODE_MAGIC) {
|
||||
if ((!enteringmagic && ((prop->flags & (PROPFLAG_80 | PROPFLAG_40 | PROPFLAG_ONSCREEN)) || !func0f036c08(chr, &curwppos, curwprooms)))
|
||||
if ((!enteringmagic && ((prop->flags & (PROPFLAG_ONANYSCREENPREVTICK | PROPFLAG_ONANYSCREENTHISTICK | PROPFLAG_ONTHISSCREENTHISTICK)) || !func0f036c08(chr, &curwppos, curwprooms)))
|
||||
|| (curwpflags & (PADFLAG_AIWAITLIFT | PADFLAG_AIONLIFT))
|
||||
|| chr->inlift) {
|
||||
// Exiting magic mode
|
||||
@@ -22699,7 +22699,7 @@ void chrTickPatrol(struct chrdata *chr)
|
||||
}
|
||||
|
||||
if (chr->act_patrol.waydata.mode == WAYMODE_MAGIC) {
|
||||
if ((!enteringmagic && ((prop->flags & (PROPFLAG_ONSCREEN | PROPFLAG_40 | PROPFLAG_80)) || !func0f036c08(chr, &sp58, sp48)))
|
||||
if ((!enteringmagic && ((prop->flags & (PROPFLAG_ONTHISSCREENTHISTICK | PROPFLAG_ONANYSCREENTHISTICK | PROPFLAG_ONANYSCREENPREVTICK)) || !func0f036c08(chr, &sp58, sp48)))
|
||||
|| (flags & (PADFLAG_AIWAITLIFT | PADFLAG_AIONLIFT))
|
||||
|| chr->inlift) {
|
||||
// Exit magic for lifts
|
||||
@@ -24396,7 +24396,7 @@ glabel func0f048398
|
||||
// }
|
||||
//
|
||||
// // 698
|
||||
// if (chr->prop->flags & PROPFLAG_80) {
|
||||
// if (chr->prop->flags & PROPFLAG_ONANYSCREENPREVTICK) {
|
||||
// // 6a0
|
||||
// if (chr->actiontype != ACT_DEAD && chr->actiontype != ACT_DRUGGEDKO) {
|
||||
// numalivewithpropflag80++;
|
||||
@@ -24457,7 +24457,7 @@ glabel func0f048398
|
||||
// if (chr->model) {
|
||||
// if (chr->actiontype == ACT_DEAD
|
||||
// || (chr->actiontype == ACT_DRUGGEDKO && chr->prop && (chr->chrflags & CHRCFLAG_KEEPCORPSEKO) == 0)) {
|
||||
// if (chr->prop->flags & PROPFLAG_80) {
|
||||
// if (chr->prop->flags & PROPFLAG_ONANYSCREENPREVTICK) {
|
||||
// if (chr->act_dead.fadetimer60 < 0 && !chr->act_dead.fadenow) {
|
||||
// numreapablewithpropflag80++;
|
||||
//
|
||||
|
||||
@@ -5105,7 +5105,7 @@ u32 explosionTick(struct prop *prop)
|
||||
prop->z -= 100;
|
||||
}
|
||||
|
||||
prop->flags |= PROPFLAG_40 | PROPFLAG_ONSCREEN;
|
||||
prop->flags |= PROPFLAG_ONANYSCREENTHISTICK | PROPFLAG_ONTHISSCREENTHISTICK;
|
||||
|
||||
return TICKOP_NONE;
|
||||
}
|
||||
|
||||
@@ -323,7 +323,7 @@ struct defaultobj *setupFindObjForReuse(s32 wanttype, struct defaultobj **offscr
|
||||
#endif
|
||||
&& obj->prop->parent == NULL
|
||||
&& (!musthavemodel || func0f0b28d0(obj->model, filedata))) {
|
||||
if (offscreenobj == NULL && (obj->prop->flags & (PROPFLAG_ONSCREEN | PROPFLAG_40 | PROPFLAG_80)) == 0) {
|
||||
if (offscreenobj == NULL && (obj->prop->flags & (PROPFLAG_ONTHISSCREENTHISTICK | PROPFLAG_ONANYSCREENTHISTICK | PROPFLAG_ONANYSCREENPREVTICK)) == 0) {
|
||||
offscreenobj = obj;
|
||||
}
|
||||
|
||||
|
||||
@@ -15259,7 +15259,7 @@ s32 playerTick(struct prop *prop)
|
||||
|
||||
func0f0220ac(prop->chr);
|
||||
|
||||
if (prop->flags & PROPFLAG_ONSCREEN) {
|
||||
if (prop->flags & PROPFLAG_ONTHISSCREENTHISTICK) {
|
||||
if (player->model00d4->filedata->type == &g_ModelTypeChr) {
|
||||
spe8 = player->model00d4->matrices;
|
||||
} else {
|
||||
@@ -15404,7 +15404,7 @@ s32 playerTick(struct prop *prop)
|
||||
}
|
||||
}
|
||||
|
||||
prop->flags &= ~PROPFLAG_ONSCREEN;
|
||||
prop->flags &= ~PROPFLAG_ONTHISSCREENTHISTICK;
|
||||
|
||||
return TICKOP_NONE;
|
||||
}
|
||||
|
||||
@@ -171,7 +171,7 @@ void *func0f12955c(s32 count, s32 index, s32 arg2, s32 arg3)
|
||||
|
||||
if (chr->model
|
||||
&& chr->prop
|
||||
&& (chr->prop->flags & PROPFLAG_80) == 0
|
||||
&& (chr->prop->flags & PROPFLAG_ONANYSCREENPREVTICK) == 0
|
||||
&& chr->actiontype == ACT_DEAD
|
||||
&& chr->act_dead.fadewheninvis == false) {
|
||||
if (tally < 6) {
|
||||
|
||||
+4
-4
@@ -1188,7 +1188,7 @@ bool lvCheckCmpFollowThreat(struct threat *threat, s32 index)
|
||||
}
|
||||
}
|
||||
|
||||
if ((threat->prop->flags & PROPFLAG_ONSCREEN)
|
||||
if ((threat->prop->flags & PROPFLAG_ONTHISSCREENTHISTICK)
|
||||
&& (chr->chrflags & CHRCFLAG_NOAUTOAIM) == 0) {
|
||||
struct model *model = chr->model;
|
||||
sp72 = -1;
|
||||
@@ -1204,7 +1204,7 @@ bool lvCheckCmpFollowThreat(struct threat *threat, s32 index)
|
||||
return false;
|
||||
case PROPTYPE_OBJ:
|
||||
case PROPTYPE_WEAPON:
|
||||
if (threat->prop->flags & PROPFLAG_ONSCREEN) {
|
||||
if (threat->prop->flags & PROPFLAG_ONTHISSCREENTHISTICK) {
|
||||
struct defaultobj *obj = threat->prop->obj;
|
||||
struct model *model = obj->model;
|
||||
sp72 = -1;
|
||||
@@ -1316,7 +1316,7 @@ void lvFindThreatsForProp(struct prop *prop, bool inchild, struct coord *playerp
|
||||
}
|
||||
|
||||
if (prop->obj
|
||||
&& (prop->flags & PROPFLAG_ONSCREEN)
|
||||
&& (prop->flags & PROPFLAG_ONTHISSCREENTHISTICK)
|
||||
&& (prop->type == PROPTYPE_OBJ || prop->type == PROPTYPE_WEAPON)
|
||||
&& condition) {
|
||||
pass = false;
|
||||
@@ -1437,7 +1437,7 @@ void func0f168f24(struct prop *prop, bool inchild, struct coord *playerpos, s32
|
||||
|
||||
for (i = 0; i != 4; i++) {
|
||||
if (g_Vars.currentplayer->cmpfollowprops[i].prop == prop
|
||||
&& (prop->flags & PROPFLAG_ONSCREEN)) {
|
||||
&& (prop->flags & PROPFLAG_ONTHISSCREENTHISTICK)) {
|
||||
model = NULL;
|
||||
|
||||
if (prop->type == PROPTYPE_OBJ
|
||||
|
||||
@@ -481,7 +481,7 @@ void objectiveCheckHolograph(f32 maxdist)
|
||||
struct defaultobj *obj = objFindByTagId(criteria->obj);
|
||||
|
||||
if (obj && obj->prop
|
||||
&& (obj->prop->flags & PROPFLAG_ONSCREEN)
|
||||
&& (obj->prop->flags & PROPFLAG_ONTHISSCREENTHISTICK)
|
||||
&& obj->prop->z >= 0
|
||||
&& objIsHealthy(obj)) {
|
||||
struct coord sp9c;
|
||||
|
||||
+13
-13
@@ -67,7 +67,7 @@ void propsSort(void)
|
||||
|
||||
// Populate onscreenprops with the list of props
|
||||
while (prop != g_Vars.pausedprops) {
|
||||
if ((prop->flags & (PROPFLAG_ONSCREEN | PROPFLAG_ENABLED)) == (PROPFLAG_ONSCREEN | PROPFLAG_ENABLED)) {
|
||||
if ((prop->flags & (PROPFLAG_ONTHISSCREENTHISTICK | PROPFLAG_ENABLED)) == (PROPFLAG_ONTHISSCREENTHISTICK | PROPFLAG_ENABLED)) {
|
||||
depths[count] = prop->z;
|
||||
g_Vars.onscreenprops[count] = prop;
|
||||
count++;
|
||||
@@ -389,7 +389,7 @@ Gfx *propsRender(Gfx *gdl, s16 arg1, s32 arg2, s16 *arg3)
|
||||
|
||||
if (prop) {
|
||||
if ((arg2 == 0 && (prop->flags & (PROPFLAG_20 | PROPFLAG_01)) == 0)
|
||||
|| (arg2 == 2 && (prop->flags & (PROPFLAG_20 | PROPFLAG_01)) == 1)) {
|
||||
|| (arg2 == 2 && (prop->flags & (PROPFLAG_20 | PROPFLAG_01)) == PROPFLAG_01)) {
|
||||
gdl = propRender(gdl, prop, false);
|
||||
}
|
||||
}
|
||||
@@ -4685,15 +4685,15 @@ glabel propsTick
|
||||
// while (prop < end) {
|
||||
// flags = prop->flags;
|
||||
//
|
||||
// if (flags & PROPFLAG_ONSCREEN) {
|
||||
// flags &= ~PROPFLAG_ONSCREEN;
|
||||
// if (flags & PROPFLAG_ONTHISSCREENTHISTICK) {
|
||||
// flags &= ~PROPFLAG_ONTHISSCREENTHISTICK;
|
||||
// }
|
||||
//
|
||||
// if (flags & PROPFLAG_40) {
|
||||
// flags |= PROPFLAG_80;
|
||||
// flags &= ~PROPFLAG_40;
|
||||
// } else if (flags & PROPFLAG_80) {
|
||||
// flags &= ~PROPFLAG_80;
|
||||
// if (flags & PROPFLAG_ONANYSCREENTHISTICK) {
|
||||
// flags |= PROPFLAG_ONANYSCREENPREVTICK;
|
||||
// flags &= ~PROPFLAG_ONANYSCREENTHISTICK;
|
||||
// } else if (flags & PROPFLAG_ONANYSCREENPREVTICK) {
|
||||
// flags &= ~PROPFLAG_ONANYSCREENPREVTICK;
|
||||
// }
|
||||
//
|
||||
// (prop++)->flags = flags | PROPFLAG_08;
|
||||
@@ -4706,8 +4706,8 @@ glabel propsTick
|
||||
// while (prop < end) {
|
||||
// flags = prop->flags;
|
||||
//
|
||||
// if (flags & PROPFLAG_ONSCREEN) {
|
||||
// flags &= ~PROPFLAG_ONSCREEN;
|
||||
// if (flags & PROPFLAG_ONTHISSCREENTHISTICK) {
|
||||
// flags &= ~PROPFLAG_ONTHISSCREENTHISTICK;
|
||||
// }
|
||||
//
|
||||
// prop->flags = flags;
|
||||
@@ -4750,7 +4750,7 @@ glabel propsTick
|
||||
// }
|
||||
//
|
||||
// if (score == 0) {
|
||||
// if ((prop->flags & (PROPFLAG_ENABLED | PROPFLAG_80)) == (PROPFLAG_ENABLED | PROPFLAG_80)) {
|
||||
// if ((prop->flags & (PROPFLAG_ENABLED | PROPFLAG_ONANYSCREENPREVTICK)) == (PROPFLAG_ENABLED | PROPFLAG_ONANYSCREENPREVTICK)) {
|
||||
// score++;
|
||||
// } else if (prop->forceonetick) {
|
||||
// score++;
|
||||
@@ -5502,7 +5502,7 @@ void autoaimTick(void)
|
||||
aimpos[0] = (threat->x2 + threat->x1) / 2;
|
||||
aimpos[1] = (threat->y2 + threat->y1) / 2;
|
||||
|
||||
if (bestprop->flags & PROPFLAG_ONSCREEN) {
|
||||
if (bestprop->flags & PROPFLAG_ONTHISSCREENTHISTICK) {
|
||||
struct defaultobj *obj = bestprop->obj;
|
||||
Mtxf *mtx = model0001a60c(obj->model);
|
||||
struct coord spac;
|
||||
|
||||
+21
-21
@@ -12715,7 +12715,7 @@ bool propExplode(struct prop *prop, s32 exptype)
|
||||
parent = parent->parent;
|
||||
}
|
||||
|
||||
if (prop->flags & PROPFLAG_ONSCREEN) {
|
||||
if (prop->flags & PROPFLAG_ONTHISSCREENTHISTICK) {
|
||||
Mtxf *mtx = model0001a60c(obj->model);
|
||||
|
||||
pos.x = mtx->m[3][0];
|
||||
@@ -16459,7 +16459,7 @@ glabel var7f1aa2c4
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// if ((obj->flags3 & OBJFLAG3_CANHARDFREE) && (prop->flags & PROPFLAG_ONSCREEN)) {
|
||||
// if ((obj->flags3 & OBJFLAG3_CANHARDFREE) && (prop->flags & PROPFLAG_ONTHISSCREENTHISTICK)) {
|
||||
// g_Vars.hardfreeabletally++;
|
||||
//
|
||||
// if (g_Vars.hardfreeabletally > 20) {
|
||||
@@ -16503,7 +16503,7 @@ void func0f0706f8(struct prop *prop, bool arg1)
|
||||
if (obj->hidden & OBJHFLAG_REAPABLE) {
|
||||
objFree(obj, true, obj->hidden2 & OBJH2FLAG_CANREGEN);
|
||||
} else {
|
||||
prop->flags &= ~PROPFLAG_ONSCREEN;
|
||||
prop->flags &= ~PROPFLAG_ONTHISSCREENTHISTICK;
|
||||
func0f07063c(prop, arg1);
|
||||
|
||||
// Recurse into children
|
||||
@@ -49338,7 +49338,7 @@ void hoverpropTick(struct prop *prop, bool arg1)
|
||||
struct hoverpropobj *obj = (struct hoverpropobj *)prop->obj;
|
||||
|
||||
if ((obj->base.hidden & OBJHFLAG_GRABBED) == 0
|
||||
&& (arg1 || (prop->flags & PROPFLAG_80) || (obj->base.flags & OBJFLAG_CHOPPER_INACTIVE))) {
|
||||
&& (arg1 || (prop->flags & PROPFLAG_ONANYSCREENPREVTICK) || (obj->base.flags & OBJFLAG_CHOPPER_INACTIVE))) {
|
||||
func0f0714b8(&obj->base, &obj->hov);
|
||||
}
|
||||
}
|
||||
@@ -49349,7 +49349,7 @@ void hoverbikeTick(struct prop *prop, bool arg1)
|
||||
|
||||
if ((obj->base.hidden & OBJHFLAG_MOUNTED) == 0) {
|
||||
if ((obj->base.hidden & OBJHFLAG_GRABBED) == 0
|
||||
&& (arg1 || (prop->flags & PROPFLAG_80))) {
|
||||
&& (arg1 || (prop->flags & PROPFLAG_ONANYSCREENPREVTICK))) {
|
||||
func0f0714b8(&obj->base, &obj->hov);
|
||||
}
|
||||
|
||||
@@ -49612,7 +49612,7 @@ s32 objTick(struct prop *prop)
|
||||
if (obj->hidden & OBJHFLAG_ISRETICK) {
|
||||
obj->hidden &= ~OBJHFLAG_ISRETICK;
|
||||
} else if ((obj->hidden & OBJHFLAG_AIRBORNE) && (obj->projectile->flags & PROJECTILEFLAG_00000800) == 0) {
|
||||
prop->flags &= ~PROPFLAG_ONSCREEN;
|
||||
prop->flags &= ~PROPFLAG_ONTHISSCREENTHISTICK;
|
||||
obj->hidden |= OBJHFLAG_ISRETICK;
|
||||
return TICKOP_RETICK;
|
||||
}
|
||||
@@ -49921,7 +49921,7 @@ s32 objTick(struct prop *prop)
|
||||
}
|
||||
|
||||
if (sp572) {
|
||||
if (prop->flags & PROPFLAG_80) {
|
||||
if (prop->flags & PROPFLAG_ONANYSCREENPREVTICK) {
|
||||
colourTween(obj->shadecol, obj->nextcol);
|
||||
} else {
|
||||
obj->shadecol[0] = obj->nextcol[0];
|
||||
@@ -49931,7 +49931,7 @@ s32 objTick(struct prop *prop)
|
||||
}
|
||||
}
|
||||
|
||||
prop->flags |= PROPFLAG_40 | PROPFLAG_ONSCREEN;
|
||||
prop->flags |= PROPFLAG_ONANYSCREENTHISTICK | PROPFLAG_ONTHISSCREENTHISTICK;
|
||||
|
||||
if (obj->type == OBJTYPE_FAN) {
|
||||
fanUpdateModel(prop);
|
||||
@@ -49955,7 +49955,7 @@ s32 objTick(struct prop *prop)
|
||||
child = next;
|
||||
}
|
||||
} else {
|
||||
prop->flags &= ~PROPFLAG_ONSCREEN;
|
||||
prop->flags &= ~PROPFLAG_ONTHISSCREENTHISTICK;
|
||||
func0f07063c(prop, sp572);
|
||||
child = prop->child;
|
||||
|
||||
@@ -51948,7 +51948,7 @@ glabel var7f1aa824
|
||||
|
||||
void objRenderProp(struct prop *prop, struct modelrenderdata *renderdata, bool withalpha)
|
||||
{
|
||||
if (prop->flags & PROPFLAG_ONSCREEN) {
|
||||
if (prop->flags & PROPFLAG_ONTHISSCREENTHISTICK) {
|
||||
struct defaultobj *obj = prop->obj;
|
||||
struct model *model = obj->model;
|
||||
bool sp6c;
|
||||
@@ -56710,7 +56710,7 @@ bool objDrop(struct prop *prop, bool lazy)
|
||||
func0f0964b4(&projectile->speed, (Mtxf *)&projectile->unk020);
|
||||
}
|
||||
|
||||
if (!lazy && (prop->flags & PROPFLAG_ONSCREEN)) {
|
||||
if (!lazy && (prop->flags & PROPFLAG_ONTHISSCREENTHISTICK)) {
|
||||
// Do collision checks
|
||||
Mtxf *sp48 = model0001a60c(model);
|
||||
mtx00015be4(currentPlayerGetUnk174c(), sp48, &spf0);
|
||||
@@ -58810,7 +58810,7 @@ void func0f084f64(struct defaultobj *obj)
|
||||
Mtxf *sp7c;
|
||||
Mtxf matrix;
|
||||
|
||||
if (prop->flags & PROPFLAG_ONSCREEN) {
|
||||
if (prop->flags & PROPFLAG_ONTHISSCREENTHISTICK) {
|
||||
rodata = modelGetPartRodata(model->filedata, 2);
|
||||
sp7c = model0001a5cc(model, modelGetPart(model->filedata, 1), 0);
|
||||
mtx00015be4(currentPlayerGetUnk174c(), sp7c, &matrix);
|
||||
@@ -59191,7 +59191,7 @@ void func0f0859a0(struct prop *prop, struct shotdata *shotdata)
|
||||
return;
|
||||
}
|
||||
|
||||
if ((prop->flags & PROPFLAG_ONSCREEN) == 0) {
|
||||
if ((prop->flags & PROPFLAG_ONTHISSCREENTHISTICK) == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -59278,7 +59278,7 @@ void func0f085e00(struct prop *prop, struct shotdata *shotdata)
|
||||
struct model *model = obj->model;
|
||||
struct modelrodata_bbox *bbox = objFindBboxRodata(obj);
|
||||
|
||||
if ((prop->flags & PROPFLAG_ONSCREEN)
|
||||
if ((prop->flags & PROPFLAG_ONTHISSCREENTHISTICK)
|
||||
&& (obj->hidden & OBJHFLAG_00001000) == 0
|
||||
&& (obj->flags2 & OBJFLAG2_SHOOTTHROUGH) == 0) {
|
||||
tmp = -(model->matrices[0].m[3][2] + func0f0668cc(bbox, model->matrices));
|
||||
@@ -60808,7 +60808,7 @@ bool objTestForInteract(struct prop *prop)
|
||||
}
|
||||
|
||||
if (maybe
|
||||
&& (prop->flags & PROPFLAG_ONSCREEN)
|
||||
&& (prop->flags & PROPFLAG_ONTHISSCREENTHISTICK)
|
||||
&& objIsHealthy(obj)
|
||||
&& (obj->flags & OBJFLAG_CANNOT_ACTIVATE) == 0) {
|
||||
struct prop *playerprop = g_Vars.currentplayer->prop;
|
||||
@@ -64954,7 +64954,7 @@ s32 objTestForPickup(struct prop *prop)
|
||||
|
||||
bool func0f0899dc(struct prop *prop, struct coord *arg1, f32 *arg2, f32 *arg3)
|
||||
{
|
||||
if (prop->flags & PROPFLAG_ONSCREEN) {
|
||||
if (prop->flags & PROPFLAG_ONTHISSCREENTHISTICK) {
|
||||
struct defaultobj *obj = prop->obj;
|
||||
Mtxf *matrix = model0001a60c(obj->model);
|
||||
|
||||
@@ -65268,7 +65268,7 @@ struct weaponobj *weaponCreate(bool musthaveprop, bool musthavemodel, struct mod
|
||||
|
||||
if (usable) {
|
||||
if (!musthavemodel || func0f0b28d0(g_WeaponSlots[i].base.model, filedata)) {
|
||||
if ((g_WeaponSlots[i].base.prop->flags & (PROPFLAG_ONSCREEN | PROPFLAG_40 | PROPFLAG_80)) == 0 && sp40 < 0) {
|
||||
if ((g_WeaponSlots[i].base.prop->flags & (PROPFLAG_ONTHISSCREENTHISTICK | PROPFLAG_ONANYSCREENTHISTICK | PROPFLAG_ONANYSCREENPREVTICK)) == 0 && sp40 < 0) {
|
||||
sp40 = i;
|
||||
}
|
||||
|
||||
@@ -65357,7 +65357,7 @@ struct hatobj *hatCreate(bool musthaveprop, bool musthavemodel, struct modelfile
|
||||
} else if ((g_HatSlots[i].base.hidden & OBJHFLAG_AIRBORNE) == 0
|
||||
&& g_HatSlots[i].base.prop->parent == NULL
|
||||
&& (!musthavemodel || func0f0b28d0(g_HatSlots[i].base.model, filedata))) {
|
||||
if ((g_HatSlots[i].base.prop->flags & (PROPFLAG_ONSCREEN | PROPFLAG_40 | PROPFLAG_80)) == 0 && sp40 < 0) {
|
||||
if ((g_HatSlots[i].base.prop->flags & (PROPFLAG_ONTHISSCREENTHISTICK | PROPFLAG_ONANYSCREENTHISTICK | PROPFLAG_ONANYSCREENPREVTICK)) == 0 && sp40 < 0) {
|
||||
sp40 = i;
|
||||
}
|
||||
|
||||
@@ -65442,7 +65442,7 @@ struct ammocrateobj *ammocrateAllocate(void)
|
||||
if ((g_AmmoCrates[i].base.hidden & OBJHFLAG_AIRBORNE) == 0
|
||||
&& (g_AmmoCrates[i].base.hidden2 & OBJH2FLAG_CANREGEN) == 0
|
||||
&& g_AmmoCrates[i].base.prop->parent == NULL
|
||||
&& (g_AmmoCrates[i].base.prop->flags & (PROPFLAG_ONSCREEN | PROPFLAG_40 | PROPFLAG_80)) == 0) {
|
||||
&& (g_AmmoCrates[i].base.prop->flags & (PROPFLAG_ONTHISSCREENTHISTICK | PROPFLAG_ONANYSCREENTHISTICK | PROPFLAG_ONANYSCREENPREVTICK)) == 0) {
|
||||
objFreePermanently(&g_AmmoCrates[i].base, true);
|
||||
return &g_AmmoCrates[i];
|
||||
}
|
||||
@@ -69499,7 +69499,7 @@ bool doorTestForInteract(struct prop *prop)
|
||||
|
||||
if ((door->base.flags & OBJFLAG_CANNOT_ACTIVATE) == 0
|
||||
&& door->maxfrac > 0
|
||||
&& (prop->flags & PROPFLAG_ONSCREEN)) {
|
||||
&& (prop->flags & PROPFLAG_ONTHISSCREENTHISTICK)) {
|
||||
bool maybe = false;
|
||||
bool usingeyespy = g_Vars.currentplayer->eyespy && g_Vars.currentplayer->eyespy->active;
|
||||
struct prop *playerprop = usingeyespy ? g_Vars.currentplayer->eyespy->prop : g_Vars.currentplayer->prop;
|
||||
@@ -69994,7 +69994,7 @@ void func0f091030(void)
|
||||
|
||||
while (prop) {
|
||||
if (prop->type == PROPTYPE_OBJ
|
||||
&& (prop->flags & (PROPFLAG_ONSCREEN | PROPFLAG_40 | PROPFLAG_80)) == 0
|
||||
&& (prop->flags & (PROPFLAG_ONTHISSCREENTHISTICK | PROPFLAG_ONANYSCREENTHISTICK | PROPFLAG_ONANYSCREENPREVTICK)) == 0
|
||||
&& (prop->obj->hidden2 & OBJH2FLAG_DESTROYED)
|
||||
&& (prop->obj->hidden2 & OBJH2FLAG_80)) {
|
||||
objFreePermanently(prop->obj, true);
|
||||
|
||||
@@ -2045,7 +2045,7 @@ u32 smokeTick(struct prop *prop)
|
||||
prop->z -= 100;
|
||||
}
|
||||
|
||||
prop->flags |= PROPFLAG_40 | PROPFLAG_ONSCREEN;
|
||||
prop->flags |= PROPFLAG_ONANYSCREENTHISTICK | PROPFLAG_ONTHISSCREENTHISTICK;
|
||||
|
||||
return TICKOP_NONE;
|
||||
}
|
||||
|
||||
@@ -3241,14 +3241,14 @@
|
||||
#define PROJECTILEFLAG_00004000 0x00004000
|
||||
#define PROJECTILEFLAG_FREE 0x80000000
|
||||
|
||||
#define PROPFLAG_01 0x01
|
||||
#define PROPFLAG_ONSCREEN 0x02
|
||||
#define PROPFLAG_ENABLED 0x04
|
||||
#define PROPFLAG_08 0x08
|
||||
#define PROPFLAG_DONTPAUSE 0x10
|
||||
#define PROPFLAG_20 0x20
|
||||
#define PROPFLAG_40 0x40
|
||||
#define PROPFLAG_80 0x80
|
||||
#define PROPFLAG_01 0x01
|
||||
#define PROPFLAG_ONTHISSCREENTHISTICK 0x02
|
||||
#define PROPFLAG_ENABLED 0x04
|
||||
#define PROPFLAG_08 0x08
|
||||
#define PROPFLAG_DONTPAUSE 0x10
|
||||
#define PROPFLAG_20 0x20
|
||||
#define PROPFLAG_ONANYSCREENTHISTICK 0x40
|
||||
#define PROPFLAG_ONANYSCREENPREVTICK 0x80
|
||||
|
||||
#define PROPTYPE_OBJ 1
|
||||
#define PROPTYPE_DOOR 2
|
||||
|
||||
Reference in New Issue
Block a user