Decompile objLand
This commit is contained in:
parent
2e469c1ddb
commit
72d0d415d3
|
|
@ -2218,8 +2218,8 @@ glabel var7f1a87a8
|
|||
//
|
||||
// prop->flags |= PROPFLAG_ONTHISSCREENTHISTICK | PROPFLAG_ONANYSCREENTHISTICK;
|
||||
//
|
||||
// if (obj->hidden & OBJHFLAG_HANGINGMONITOR) {
|
||||
// mtx00015be4(sp104, &obj->monitormount->matrix, &sp80);
|
||||
// if (obj->hidden & OBJHFLAG_EMBEDDED) {
|
||||
// mtx00015be4(sp104, &obj->embedment->matrix, &sp80);
|
||||
// thing.matrix = &sp80;
|
||||
// } else if (CHRRACE(chr) == RACE_SKEDAR) {
|
||||
// // The skedar hand position is rotated weirdly, so compensate for it
|
||||
|
|
@ -3135,7 +3135,7 @@ void chrDropConcealedItems(struct chrdata *chr)
|
|||
if (prop != chr->weapons_held[2]
|
||||
&& prop != chr->weapons_held[1]
|
||||
&& prop != chr->weapons_held[0]
|
||||
&& (prop->obj->hidden & OBJHFLAG_HANGINGMONITOR) == 0
|
||||
&& (prop->obj->hidden & OBJHFLAG_EMBEDDED) == 0
|
||||
&& (prop->obj->flags & OBJFLAG_AIUNDROPPABLE) == 0) {
|
||||
objSetDropped(prop, DROPTYPE_DEFAULT);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ u32 g_ObjectiveStatuses[MAX_OBJECTIVES];
|
|||
struct tag *g_TagsLinkedList;
|
||||
struct briefingobj *g_BriefingObjs;
|
||||
struct criteria_roomentered *g_RoomEnteredCriterias;
|
||||
struct criteria_multiroomentered *g_MultiroomEnteredCriterias;
|
||||
struct criteria_throwinroom *g_ThrowInRoomCriterias;
|
||||
struct criteria_holograph *g_HolographCriterias;
|
||||
s32 g_NumTags;
|
||||
struct tag **g_TagPtrs;
|
||||
|
|
@ -302,7 +302,7 @@ s32 objectiveCheck(s32 index)
|
|||
reqstatus = OBJECTIVE_INCOMPLETE;
|
||||
}
|
||||
break;
|
||||
case OBJECTIVETYPE_ATTACHOBJ:
|
||||
case OBJECTIVETYPE_THROWINROOM:
|
||||
if (cmd[3] == 0) {
|
||||
reqstatus = OBJECTIVE_INCOMPLETE;
|
||||
}
|
||||
|
|
@ -452,20 +452,20 @@ void objectiveCheckRoomEntered(s32 currentroom)
|
|||
}
|
||||
}
|
||||
|
||||
void objectiveCheckMultiroomEntered(s32 arg0, s16 *requiredrooms)
|
||||
void objectiveCheckThrowInRoom(s32 arg0, s16 *inrooms)
|
||||
{
|
||||
struct criteria_multiroomentered *criteria = g_MultiroomEnteredCriterias;
|
||||
struct criteria_throwinroom *criteria = g_ThrowInRoomCriterias;
|
||||
|
||||
while (criteria) {
|
||||
if (criteria->status == OBJECTIVE_INCOMPLETE && criteria->unk04 == arg0) {
|
||||
s32 room = chrGetPadRoom(NULL, criteria->pad);
|
||||
|
||||
if (room >= 0) {
|
||||
s16 objectiverooms[2];
|
||||
objectiverooms[0] = room;
|
||||
objectiverooms[1] = -1;
|
||||
s16 requirerooms[2];
|
||||
requirerooms[0] = room;
|
||||
requirerooms[1] = -1;
|
||||
|
||||
if (arrayIntersects(objectiverooms, requiredrooms)) {
|
||||
if (arrayIntersects(requirerooms, inrooms)) {
|
||||
criteria->status = OBJECTIVE_COMPLETE;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ void objectivesReset(void)
|
|||
g_TagsLinkedList = NULL;
|
||||
g_BriefingObjs = NULL;
|
||||
g_RoomEnteredCriterias = NULL;
|
||||
g_MultiroomEnteredCriterias = NULL;
|
||||
g_ThrowInRoomCriterias = NULL;
|
||||
g_HolographCriterias = NULL;
|
||||
}
|
||||
|
||||
|
|
@ -58,10 +58,10 @@ void objectiveAddRoomEnteredCriteria(struct criteria_roomentered *criteria)
|
|||
g_RoomEnteredCriterias = criteria;
|
||||
}
|
||||
|
||||
void objectiveAddMultiroomEnteredCriteria(struct criteria_multiroomentered *criteria)
|
||||
void objectiveAddThrowInRoomCriteria(struct criteria_throwinroom *criteria)
|
||||
{
|
||||
criteria->next = g_MultiroomEnteredCriterias;
|
||||
g_MultiroomEnteredCriterias = criteria;
|
||||
criteria->next = g_ThrowInRoomCriterias;
|
||||
g_ThrowInRoomCriterias = criteria;
|
||||
}
|
||||
|
||||
void objectiveAddHolographCriteria(struct criteria_holograph *criteria)
|
||||
|
|
|
|||
|
|
@ -1611,7 +1611,7 @@ u8 g_PausableObjs[] = {
|
|||
1, // OBJECTIVETYPE_HOLOGRAPH
|
||||
0, // OBJECTIVETYPE_1F
|
||||
0, // OBJECTIVETYPE_ENTERROOM
|
||||
0, // OBJECTIVETYPE_ATTACHOBJ
|
||||
0, // OBJECTIVETYPE_THROWINROOM
|
||||
0, // OBJTYPE_22
|
||||
0, // OBJTYPE_BRIEFING
|
||||
1, // OBJTYPE_GASBOTTLE
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -3,8 +3,8 @@
|
|||
#include "data.h"
|
||||
#include "types.h"
|
||||
|
||||
u32 var8009ce70;
|
||||
u32 var8009ce74;
|
||||
struct model *g_EmbedModel;
|
||||
struct modelnode *g_EmbedNode;
|
||||
u32 var8009ce78[4];
|
||||
u32 var8009ce88[4];
|
||||
struct tvscreen var8009ce98;
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ void objsStop(void)
|
|||
case OBJECTIVETYPE_HOLOGRAPH:
|
||||
case OBJECTIVETYPE_1F:
|
||||
case OBJECTIVETYPE_ENTERROOM:
|
||||
case OBJECTIVETYPE_ATTACHOBJ:
|
||||
case OBJECTIVETYPE_THROWINROOM:
|
||||
case OBJTYPE_22:
|
||||
case OBJTYPE_BRIEFING:
|
||||
case OBJTYPE_RENAMEOBJ:
|
||||
|
|
|
|||
|
|
@ -184,7 +184,7 @@ void propsReset(void)
|
|||
g_MaxAmmoCrates = 20;
|
||||
g_MaxDebrisSlots = 15;
|
||||
g_MaxProjectiles = IS4MB() ? 20 : 100;
|
||||
g_MaxMonitorThings = IS4MB() ? 40 : 80;
|
||||
g_MaxEmbedments = IS4MB() ? 40 : 80;
|
||||
|
||||
if (g_Vars.stagenum >= STAGE_TITLE) {
|
||||
g_MaxWeaponSlots = 0;
|
||||
|
|
@ -192,7 +192,7 @@ void propsReset(void)
|
|||
g_MaxAmmoCrates = 0;
|
||||
g_MaxDebrisSlots = 0;
|
||||
g_MaxProjectiles = 0;
|
||||
g_MaxMonitorThings = 0;
|
||||
g_MaxEmbedments = 0;
|
||||
}
|
||||
|
||||
setupReset0f00cc8c();
|
||||
|
|
@ -272,13 +272,13 @@ void propsReset(void)
|
|||
}
|
||||
}
|
||||
|
||||
if (g_MaxMonitorThings == 0) {
|
||||
g_MonitorMounts = NULL;
|
||||
if (g_MaxEmbedments == 0) {
|
||||
g_Embedments = NULL;
|
||||
} else {
|
||||
g_MonitorMounts = mempAlloc(ALIGN16(g_MaxMonitorThings * sizeof(struct monitormount)), MEMPOOL_STAGE);
|
||||
g_Embedments = mempAlloc(ALIGN16(g_MaxEmbedments * sizeof(struct embedment)), MEMPOOL_STAGE);
|
||||
|
||||
for (i = 0; i < g_MaxMonitorThings; i++) {
|
||||
g_MonitorMounts[i].flags = MONITORMOUNTFLAG_FREE;
|
||||
for (i = 0; i < g_MaxEmbedments; i++) {
|
||||
g_Embedments[i].flags = EMBEDMENTFLAG_FREE;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -288,7 +288,7 @@ void propsReset(void)
|
|||
g_LinkedScenery = NULL;
|
||||
g_BlockedPaths = NULL;
|
||||
|
||||
var80069930 = NULL;
|
||||
g_EmbedProp = NULL;
|
||||
var80069934 = -1;
|
||||
g_CameraWaitMultiplier = 1;
|
||||
var8006994c = 1;
|
||||
|
|
@ -1710,10 +1710,10 @@ void setupCreateSingleMonitor(struct singlemonitorobj *monitor, s32 cmdindex)
|
|||
}
|
||||
|
||||
prop = objInitWithAutoModel(&monitor->base);
|
||||
monitor->base.monitormount = monitormountAllocate();
|
||||
monitor->base.embedment = embedmentAllocate();
|
||||
|
||||
if (prop && monitor->base.monitormount) {
|
||||
monitor->base.hidden |= OBJHFLAG_HANGINGMONITOR;
|
||||
if (prop && monitor->base.embedment) {
|
||||
monitor->base.hidden |= OBJHFLAG_EMBEDDED;
|
||||
modelSetScale(monitor->base.model, monitor->base.model->scale * scale);
|
||||
monitor->base.model->attachedtomodel = owner->model;
|
||||
|
||||
|
|
@ -1737,7 +1737,7 @@ void setupCreateSingleMonitor(struct singlemonitorobj *monitor, s32 cmdindex)
|
|||
spa4.z = -spa4.z;
|
||||
|
||||
mtx4LoadTranslation(&spa4, &sp24);
|
||||
mtx00015be4(&sp64, &sp24, &monitor->base.monitormount->matrix);
|
||||
mtx00015be4(&sp64, &sp24, &monitor->base.embedment->matrix);
|
||||
}
|
||||
} else {
|
||||
setupCreateObject(&monitor->base, cmdindex);
|
||||
|
|
@ -4254,8 +4254,8 @@ void setupCreateProps(s32 stagenum)
|
|||
case OBJECTIVETYPE_ENTERROOM:
|
||||
objectiveAddRoomEnteredCriteria((struct criteria_roomentered *)obj);
|
||||
break;
|
||||
case OBJECTIVETYPE_ATTACHOBJ:
|
||||
objectiveAddMultiroomEnteredCriteria((struct criteria_multiroomentered *)obj);
|
||||
case OBJECTIVETYPE_THROWINROOM:
|
||||
objectiveAddThrowInRoomCriteria((struct criteria_throwinroom *)obj);
|
||||
break;
|
||||
case OBJECTIVETYPE_HOLOGRAPH:
|
||||
objectiveAddHolographCriteria((struct criteria_holograph *)obj);
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ u32 setupGetCmdLength(u32 *cmd)
|
|||
case OBJECTIVETYPE_HOLOGRAPH: return 4;
|
||||
case OBJECTIVETYPE_1F: return 1;
|
||||
case OBJECTIVETYPE_ENTERROOM: return 4;
|
||||
case OBJECTIVETYPE_ATTACHOBJ: return 5;
|
||||
case OBJECTIVETYPE_THROWINROOM: return 5;
|
||||
case OBJTYPE_22: return 1;
|
||||
case OBJTYPE_BRIEFING: return 4;
|
||||
case OBJTYPE_PADLOCKEDDOOR: return 4;
|
||||
|
|
@ -262,7 +262,7 @@ struct defaultobj *setupGetObjByCmdIndex(u32 cmdindex)
|
|||
case OBJECTIVETYPE_HOLOGRAPH:
|
||||
case OBJECTIVETYPE_1F:
|
||||
case OBJECTIVETYPE_ENTERROOM:
|
||||
case OBJECTIVETYPE_ATTACHOBJ:
|
||||
case OBJECTIVETYPE_THROWINROOM:
|
||||
case OBJTYPE_22:
|
||||
case OBJTYPE_BRIEFING:
|
||||
case OBJTYPE_RENAMEOBJ:
|
||||
|
|
|
|||
|
|
@ -104,15 +104,15 @@ extern s32 g_MaxHatSlots;
|
|||
extern s32 g_MaxAmmoCrates;
|
||||
extern s32 g_MaxDebrisSlots;
|
||||
extern s32 g_MaxProjectiles;
|
||||
extern s32 g_MaxMonitorThings;
|
||||
extern s32 g_MaxEmbedments;
|
||||
extern struct weaponobj *g_WeaponSlots;
|
||||
extern struct hatobj *g_HatSlots;
|
||||
extern struct ammocrateobj *g_AmmoCrates;
|
||||
extern struct defaultobj *g_DebrisSlots;
|
||||
extern struct projectile *g_Projectiles;
|
||||
extern struct monitormount *g_MonitorMounts;
|
||||
extern u32 var8009ce70;
|
||||
extern u32 var8009ce74;
|
||||
extern struct embedment *g_Embedments;
|
||||
extern struct model *g_EmbedModel;
|
||||
extern struct modelnode *g_EmbedNode;
|
||||
extern u32 var8009ce78[4];
|
||||
extern u32 var8009ce88[4];
|
||||
extern struct tvscreen var8009ce98;
|
||||
|
|
@ -125,7 +125,7 @@ extern u32 g_ObjectiveStatuses[MAX_OBJECTIVES];
|
|||
extern struct tag *g_TagsLinkedList;
|
||||
extern struct briefingobj *g_BriefingObjs;
|
||||
extern struct criteria_roomentered *g_RoomEnteredCriterias;
|
||||
extern struct criteria_multiroomentered *g_MultiroomEnteredCriterias;
|
||||
extern struct criteria_throwinroom *g_ThrowInRoomCriterias;
|
||||
extern struct criteria_holograph *g_HolographCriterias;
|
||||
extern struct sndstate *g_CasingAudioHandles[2];
|
||||
extern s32 var8009d0d8;
|
||||
|
|
|
|||
|
|
@ -800,6 +800,9 @@
|
|||
#define DROPTYPE_5 5
|
||||
#define DROPTYPE_OWNERREAP 6
|
||||
|
||||
// Might be the same flags as PROJECTILEFLAG
|
||||
#define EMBEDMENTFLAG_FREE 0x00000001
|
||||
|
||||
#define EXPLOSIONTYPE_NONE 0
|
||||
#define EXPLOSIONTYPE_BULLETHOLE 1
|
||||
#define EXPLOSIONTYPE_EYESPY 2
|
||||
|
|
@ -2469,9 +2472,6 @@
|
|||
#define MODFILE_MPSETUP 2
|
||||
#define MODFILE_BOSS 4
|
||||
|
||||
// Might be the same flags as PROJECTILEFLAG
|
||||
#define MONITORMOUNTFLAG_FREE 0x00000001
|
||||
|
||||
#define MOVEMODE_WALK 0
|
||||
#define MOVEMODE_BIKE 3
|
||||
#define MOVEMODE_GRAB 4
|
||||
|
|
@ -3050,7 +3050,7 @@
|
|||
#define OBJHFLAG_ISRETICK 0x00000008
|
||||
#define OBJHFLAG_TAGGED 0x00000010
|
||||
#define OBJHFLAG_00000020 0x00000020 // thrown knife
|
||||
#define OBJHFLAG_HANGINGMONITOR 0x00000040
|
||||
#define OBJHFLAG_EMBEDDED 0x00000040 // obj is embedded in a chr or other obj (eg. knife)
|
||||
#define OBJHFLAG_AIRBORNE 0x00000080
|
||||
#define OBJHFLAG_00000100 0x00000100
|
||||
#define OBJHFLAG_00000200 0x00000200
|
||||
|
|
@ -3115,7 +3115,7 @@
|
|||
#define OBJECTIVETYPE_HOLOGRAPH 0x1e
|
||||
#define OBJECTIVETYPE_1F 0x1f
|
||||
#define OBJECTIVETYPE_ENTERROOM 0x20
|
||||
#define OBJECTIVETYPE_ATTACHOBJ 0x21
|
||||
#define OBJECTIVETYPE_THROWINROOM 0x21
|
||||
#define OBJTYPE_22 0x22
|
||||
#define OBJTYPE_BRIEFING 0x23
|
||||
#define OBJTYPE_GASBOTTLE 0x24
|
||||
|
|
|
|||
|
|
@ -217,7 +217,7 @@ extern struct padlockeddoorobj *g_PadlockedDoors;
|
|||
extern struct safeitemobj *g_SafeItems;
|
||||
extern struct linksceneryobj *g_LinkedScenery;
|
||||
extern struct blockedpathobj *g_BlockedPaths;
|
||||
extern struct prop *var80069930;
|
||||
extern struct prop *g_EmbedProp;
|
||||
extern s32 var80069934;
|
||||
extern f32 g_CameraWaitMultiplier;
|
||||
extern f32 var8006994c;
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ void tagInsert(struct tag *tag);
|
|||
void briefingInsert(struct briefingobj *obj);
|
||||
void objectiveInsert(struct objective *objective);
|
||||
void objectiveAddRoomEnteredCriteria(struct criteria_roomentered *criteria);
|
||||
void objectiveAddMultiroomEnteredCriteria(struct criteria_multiroomentered *criteria);
|
||||
void objectiveAddThrowInRoomCriteria(struct criteria_throwinroom *criteria);
|
||||
void objectiveAddHolographCriteria(struct criteria_holograph *criteria);
|
||||
|
||||
u32 xorBaffbeff(u32 value);
|
||||
|
|
@ -27,7 +27,7 @@ void objectivesDisableChecking(void);
|
|||
void objectivesShowHudmsg(char *buffer, s32 hudmsgtype);
|
||||
void objectivesCheckAll(void);
|
||||
void objectiveCheckRoomEntered(s32 currentroom);
|
||||
void objectiveCheckMultiroomEntered(s32 arg0, s16 *requiredrooms);
|
||||
void objectiveCheckThrowInRoom(s32 arg0, s16 *requiredrooms);
|
||||
void objectiveCheckHolograph(f32 sqdist);
|
||||
struct prop *chopperGetTargetProp(struct chopperobj *heli);
|
||||
struct defaultobj *objFindByTagId(s32 tag_id);
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
extern u32 var800698f0;
|
||||
extern u32 var800698f4;
|
||||
extern struct prop *var80069930;
|
||||
extern struct prop *g_EmbedProp;
|
||||
extern s32 var80069934;
|
||||
extern f32 g_CameraWaitMultiplier;
|
||||
extern f32 var8006994c;
|
||||
|
|
@ -71,8 +71,8 @@ void projectileReset(struct projectile *projectile);
|
|||
struct projectile *projectileAllocate(void);
|
||||
void func0f0685e4(struct prop *prop);
|
||||
void objSetProjectileFlag4(struct prop *prop);
|
||||
void monitormountFree(struct monitormount *mount);
|
||||
struct monitormount *monitormountAllocate(void);
|
||||
void embedmentFree(struct embedment *embedment);
|
||||
struct embedment *embedmentAllocate(void);
|
||||
s32 objGetShotsTaken(struct defaultobj *obj);
|
||||
s32 objGetDestroyedLevel(struct defaultobj *obj);
|
||||
struct modelnode *func0f0687e4(struct model *model);
|
||||
|
|
@ -121,11 +121,11 @@ void applyRotation(f32 *angle, f32 maxrot, f32 *speed, f32 accel, f32 decel, f32
|
|||
u32 func0f06dbd8(void);
|
||||
void knifePlayWooshSound(struct defaultobj *obj);
|
||||
void func0f06e9cc(struct coord *arg0, Mtxf *arg1);
|
||||
void func0f06eb4c(struct defaultobj *obj, struct coord *arg1, struct coord *arg2);
|
||||
void func0f06ec20(struct weaponobj *weapon, struct coord *arg1);
|
||||
void func0f06ed64(struct defaultobj *obj, struct coord *arg1, struct coord *arg2);
|
||||
bool func0f06ef44(struct prop *prop, struct prop *parent, struct model *model, struct modelnode *node);
|
||||
u32 func0f06f0a0(void);
|
||||
void objLand2(struct defaultobj *obj, struct coord *arg1, struct coord *arg2);
|
||||
void boltLand(struct weaponobj *weapon, struct coord *arg1);
|
||||
void knifeLand(struct defaultobj *obj, struct coord *arg1, struct coord *arg2);
|
||||
bool objEmbed(struct prop *prop, struct prop *parent, struct model *model, struct modelnode *node);
|
||||
void objLand(struct prop *prop, struct coord *arg1, struct coord *arg2, bool *embedded);
|
||||
bool propExplode(struct prop *prop, s32 explosiontype);
|
||||
void ammocrateTick(struct prop *ammocrate);
|
||||
void weaponTick(struct prop *weapon);
|
||||
|
|
|
|||
|
|
@ -121,8 +121,8 @@
|
|||
#define require_room_entered(room) \
|
||||
0x20, room,
|
||||
|
||||
#define require_object_thrown_on_target(throw_object, target_object) \
|
||||
0x21, throw_object, target_object, 0,
|
||||
#define require_object_thrown_in_room(object, pad) \
|
||||
0x21, object, pad, 0,
|
||||
|
||||
#define briefing(value, text) \
|
||||
0x23, value, text, 0,
|
||||
|
|
|
|||
|
|
@ -1513,7 +1513,7 @@ struct projectile {
|
|||
/*0x108*/ struct prop *unk108;
|
||||
};
|
||||
|
||||
struct monitormount {
|
||||
struct embedment {
|
||||
/*0x000*/ u32 flags;
|
||||
/*0x004*/ Mtxf matrix;
|
||||
/*0x044*/ struct projectile *projectile;
|
||||
|
|
@ -1601,7 +1601,7 @@ struct defaultobj {
|
|||
};
|
||||
union {
|
||||
/*0x48*/ struct projectile *projectile;
|
||||
/*0x48*/ struct monitormount *monitormount;
|
||||
/*0x48*/ struct embedment *embedment;
|
||||
};
|
||||
/*0x4c*/ s16 damage;
|
||||
/*0x4e*/ s16 maxdamage;
|
||||
|
|
@ -4626,12 +4626,12 @@ struct criteria_roomentered {
|
|||
struct criteria_roomentered *next;
|
||||
};
|
||||
|
||||
struct criteria_multiroomentered {
|
||||
struct criteria_throwinroom {
|
||||
u32 unk00;
|
||||
u32 unk04;
|
||||
u32 pad;
|
||||
u32 status;
|
||||
struct criteria_multiroomentered *next;
|
||||
struct criteria_throwinroom *next;
|
||||
};
|
||||
|
||||
struct criteria_holograph {
|
||||
|
|
|
|||
Loading…
Reference in New Issue