From be05991701a55c253bf5e0c3f453aab1682b1b41 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Fri, 3 Dec 2021 22:52:09 +1000 Subject: [PATCH] Identify some prop flags --- src/game/bondgun.c | 2 +- src/game/chr/chr.c | 4 +-- src/game/chr/chraction.c | 22 ++++++++--------- src/game/explosions/explosions.c | 2 +- src/game/game_091e10.c | 2 +- src/game/game_0b69d0.c | 4 +-- src/game/game_129210.c | 2 +- src/game/lv.c | 8 +++--- src/game/objectives/objectives.c | 2 +- src/game/prop.c | 26 ++++++++++---------- src/game/propobj.c | 42 ++++++++++++++++---------------- src/game/smoke/smoke.c | 2 +- src/include/constants.h | 16 ++++++------ 13 files changed, 67 insertions(+), 67 deletions(-) diff --git a/src/game/bondgun.c b/src/game/bondgun.c index a02364ab1..2d64e5efe 100644 --- a/src/game/bondgun.c +++ b/src/game/bondgun.c @@ -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]; } } diff --git a/src/game/chr/chr.c b/src/game/chr/chr.c index 139e64984..bac294470 100644 --- a/src/game/chr/chr.c +++ b/src/game/chr/chr.c @@ -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) { diff --git a/src/game/chr/chraction.c b/src/game/chr/chraction.c index 847849c2e..265cb1f43 100644 --- a/src/game/chr/chraction.c +++ b/src/game/chr/chraction.c @@ -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++; // diff --git a/src/game/explosions/explosions.c b/src/game/explosions/explosions.c index b8a908370..b1d5910a4 100644 --- a/src/game/explosions/explosions.c +++ b/src/game/explosions/explosions.c @@ -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; } diff --git a/src/game/game_091e10.c b/src/game/game_091e10.c index 3a4930881..1675235c4 100644 --- a/src/game/game_091e10.c +++ b/src/game/game_091e10.c @@ -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; } diff --git a/src/game/game_0b69d0.c b/src/game/game_0b69d0.c index 2ca63bc57..f7fead109 100644 --- a/src/game/game_0b69d0.c +++ b/src/game/game_0b69d0.c @@ -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; } diff --git a/src/game/game_129210.c b/src/game/game_129210.c index 4704ad036..f7a6f91d7 100644 --- a/src/game/game_129210.c +++ b/src/game/game_129210.c @@ -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) { diff --git a/src/game/lv.c b/src/game/lv.c index a6945cde9..98404794c 100644 --- a/src/game/lv.c +++ b/src/game/lv.c @@ -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 diff --git a/src/game/objectives/objectives.c b/src/game/objectives/objectives.c index d4ef1b58d..ca93a2eef 100644 --- a/src/game/objectives/objectives.c +++ b/src/game/objectives/objectives.c @@ -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; diff --git a/src/game/prop.c b/src/game/prop.c index 770ec8938..59501247b 100644 --- a/src/game/prop.c +++ b/src/game/prop.c @@ -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; diff --git a/src/game/propobj.c b/src/game/propobj.c index b36e6e440..9dfaa686c 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -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); diff --git a/src/game/smoke/smoke.c b/src/game/smoke/smoke.c index b3712f2c2..b20e327d3 100644 --- a/src/game/smoke/smoke.c +++ b/src/game/smoke/smoke.c @@ -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; } diff --git a/src/include/constants.h b/src/include/constants.h index 7fd490476..0ccb78cca 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -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