EnMnk OK and partially documented. handing off to the next ape enthusiast (#1277)

* EnMnk OK and partially documented. handing off to the next ape enthusiast

* run format.py

* fix trailing comma warning

* Monkey PR Review (#1)

* PR Review

* a little more

* oops

* Reordering Monkey, anim

* cleanup, typos

* More PR Suggestions

* namefixer

* fix master

* limbIndex

* PR Review

---------

Co-authored-by: gamestabled <gamestabled@gmail.com>
Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>
Co-authored-by: engineer124 <engineer124engineer124@gmail.com>
This commit is contained in:
gamestabled 2023-08-12 12:15:14 -04:00 committed by GitHub
parent 656fd08ee8
commit a6a94e543c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 2300 additions and 207 deletions

View File

@ -23,7 +23,7 @@
<Limb Name="object_mnk_Standardlimb_00511C" Type="Standard" EnumName="OBJECT_MNK_1_LIMB_02" Offset="0x511C" />
<Limb Name="object_mnk_Standardlimb_005128" Type="Standard" EnumName="OBJECT_MNK_1_LIMB_03" Offset="0x5128" />
<Limb Name="object_mnk_Standardlimb_005134" Type="Standard" EnumName="OBJECT_MNK_1_LIMB_04" Offset="0x5134" />
<Skeleton Name="object_mnk_Skel_005150" Type="Flex" LimbType="Standard" LimbNone="OBJECT_MNK_1_LIMB_NONE" LimbMax="OBJECT_MNK_1_LIMB_MAX" EnumName="ObjectMnk1Limb" Offset="0x5150" />
<Skeleton Name="gMonkeyTiedUpPoleSkeleton" Type="Flex" LimbType="Standard" LimbNone="OBJECT_MNK_1_LIMB_NONE" LimbMax="OBJECT_MNK_1_LIMB_MAX" EnumName="ObjectMnk1Limb" Offset="0x5150" />
<Animation Name="object_mnk_Anim_005194" Offset="0x5194" />
<Animation Name="object_mnk_Anim_0052C4" Offset="0x52C4" />
<Animation Name="object_mnk_Anim_005390" Offset="0x5390" />
@ -32,7 +32,7 @@
<Animation Name="object_mnk_Anim_005A08" Offset="0x5A08" />
<Animation Name="object_mnk_Anim_0062D8" Offset="0x62D8" />
<Animation Name="object_mnk_Anim_007380" Offset="0x7380" />
<Animation Name="object_mnk_Anim_0082C8" Offset="0x82C8" />
<Animation Name="gMonkeyHangingStruggleAnim" Offset="0x82C8" />
<Animation Name="object_mnk_Anim_008814" Offset="0x8814" />
<Animation Name="object_mnk_Anim_0095B4" Offset="0x95B4" />
<Animation Name="object_mnk_Anim_0099B0" Offset="0x99B0" />
@ -73,7 +73,12 @@
<Texture Name="object_mnk_Tex_014C20" OutName="tex_014C20" Format="ci8" Width="32" Height="32" Offset="0x14C20" />
<Texture Name="object_mnk_Tex_015020" OutName="tex_015020" Format="ci8" Width="32" Height="64" Offset="0x15020" />
<Texture Name="object_mnk_Tex_015820" OutName="tex_015820" Format="ci8" Width="16" Height="16" Offset="0x15820" />
<!-- <Blob Name="object_mnk_Blob_015920" Size="0x3000" Offset="0x15920" /> -->
<Texture Name="object_mnk_Tex_015920" OutName="tex_015920" Format="ci8" Width="32" Height="64" Offset="0x15920" />
<Texture Name="object_mnk_Tex_016120" OutName="tex_016120" Format="ci8" Width="32" Height="64" Offset="0x16120" />
<Texture Name="object_mnk_Tex_016920" OutName="tex_016920" Format="ci8" Width="32" Height="64" Offset="0x16920" />
<Texture Name="object_mnk_Tex_017120" OutName="tex_017120" Format="ci8" Width="32" Height="64" Offset="0x17120" />
<Texture Name="object_mnk_Tex_017920" OutName="tex_017920" Format="ci8" Width="32" Height="64" Offset="0x17920" />
<Texture Name="object_mnk_Tex_018120" OutName="tex_018120" Format="ci8" Width="32" Height="64" Offset="0x18120" />
<Texture Name="object_mnk_Tex_018920" OutName="tex_018920" Format="ci8" Width="16" Height="16" Offset="0x18920" />
<Texture Name="object_mnk_Tex_018A20" OutName="tex_018A20" Format="ci8" Width="32" Height="32" Offset="0x18A20" />
<Texture Name="object_mnk_Tex_018E20" OutName="tex_018E20" Format="ci8" Width="16" Height="16" Offset="0x18E20" />
@ -104,14 +109,14 @@
<Limb Name="object_mnk_Standardlimb_019B0C" Type="Standard" EnumName="OBJECT_MNK_2_LIMB_14" Offset="0x19B0C" />
<Limb Name="object_mnk_Standardlimb_019B18" Type="Standard" EnumName="OBJECT_MNK_2_LIMB_15" Offset="0x19B18" />
<Limb Name="object_mnk_Standardlimb_019B24" Type="Standard" EnumName="OBJECT_MNK_2_LIMB_16" Offset="0x19B24" />
<Skeleton Name="object_mnk_Skel_019B88" Type="Flex" LimbType="Standard" LimbNone="OBJECT_MNK_2_LIMB_NONE" LimbMax="OBJECT_MNK_2_LIMB_MAX" EnumName="ObjectMnk2Limb" Offset="0x19B88" />
<Skeleton Name="gMonkeySkeleton" Type="Flex" LimbType="Standard" LimbNone="OBJECT_MNK_2_LIMB_NONE" LimbMax="OBJECT_MNK_2_LIMB_MAX" EnumName="ObjectMnk2Limb" Offset="0x19B88" />
<Animation Name="object_mnk_Anim_01A4F8" Offset="0x1A4F8" />
<Animation Name="object_mnk_Anim_01B468" Offset="0x1B468" />
<Animation Name="object_mnk_Anim_01BB0C" Offset="0x1BB0C" />
<Animation Name="object_mnk_Anim_01C17C" Offset="0x1C17C" />
<Animation Name="object_mnk_Anim_01C1B8" Offset="0x1C1B8" />
<Animation Name="object_mnk_Anim_01C1F8" Offset="0x1C1F8" />
<Animation Name="object_mnk_Anim_01C3B4" Offset="0x1C3B4" />
<Animation Name="gMonkeyHangingRopeStruggleAnim" Offset="0x1C3B4" />
<DList Name="object_mnk_DL_01C660" Offset="0x1C660" />
<DList Name="object_mnk_DL_01C770" Offset="0x1C770" />
<DList Name="object_mnk_DL_01C818" Offset="0x1C818" />
@ -121,6 +126,6 @@
<Limb Name="object_mnk_Standardlimb_01D4E8" Type="Standard" EnumName="OBJECT_MNK_3_LIMB_01" Offset="0x1D4E8" />
<Limb Name="object_mnk_Standardlimb_01D4F4" Type="Standard" EnumName="OBJECT_MNK_3_LIMB_02" Offset="0x1D4F4" />
<Limb Name="object_mnk_Standardlimb_01D500" Type="Standard" EnumName="OBJECT_MNK_3_LIMB_03" Offset="0x1D500" />
<Skeleton Name="object_mnk_Skel_01D518" Type="Flex" LimbType="Standard" LimbNone="OBJECT_MNK_3_LIMB_NONE" LimbMax="OBJECT_MNK_3_LIMB_MAX" EnumName="ObjectMnk3Limb" Offset="0x1D518" />
<Skeleton Name="gMonkeyHangingRopeSkeleton" Type="Flex" LimbType="Standard" LimbNone="OBJECT_MNK_3_LIMB_NONE" LimbMax="OBJECT_MNK_3_LIMB_MAX" EnumName="ObjectMnk3Limb" Offset="0x1D518" />
</File>
</Root>

3
spec
View File

@ -3073,8 +3073,7 @@ beginseg
name "ovl_En_Mnk"
compress
include "build/src/overlays/actors/ovl_En_Mnk/z_en_mnk.o"
include "build/data/ovl_En_Mnk/ovl_En_Mnk.data.o"
include "build/data/ovl_En_Mnk/ovl_En_Mnk.reloc.o"
include "build/src/overlays/actors/ovl_En_Mnk/ovl_En_Mnk_reloc.o"
endseg
beginseg

File diff suppressed because it is too large Load Diff

View File

@ -2,15 +2,82 @@
#define Z_EN_MNK_H
#include "global.h"
#include "objects/object_mnk/object_mnk.h"
#include "z64snap.h"
struct EnMnk;
typedef void (*EnMnkActionFunc)(struct EnMnk*, PlayState*);
typedef void (*EnMnkFunc)(PlayState*, struct EnMnk*);
#define MONKEY_GET_TYPE(thisx) (((thisx)->params & 0x780) >> 7)
#define MONKEY_GET_SWITCH_FLAG(thisx) ((thisx)->params & 0x7F)
#define MONKEY_GET_PATH_INDEX(thisx) (((thisx)->params & 0xF800) >> 11)
#define MONKEY_PATH_INDEX_NONE 0x1F
typedef enum {
/* 0 */ MONKEY_0,
/* 1 */ MONKEY_OUTSIDEWOODS,
/* 2 */ MONKEY_BY_WITCH,
/* 3 */ MONKEY_OUTSIDECHAMBER,
/* 4 */ MONKEY_OUTSIDEPALACE,
/* 5 */ MONKEY_TIED_UP,
/* 6 */ MONKEY_HANGING,
/* 7 */ MONKEY_WOODS_GUIDE,
/* 8 */ MONKEY_8,
/* 9 */ MONKEY_AFTER_SAVED,
/* 10 */ MONKEY_10
} MonkeyType;
#define MONKEY_FLAGS_1 (1 << 0)
#define MONKEY_FLAGS_2 (1 << 1)
#define MONKEY_FLAGS_4 (1 << 2)
#define MONKEY_FLAGS_8 (1 << 3)
#define MONKEY_FLAGS_10 (1 << 4)
#define MONKEY_FLAGS_20 (1 << 5)
#define MONKEY_FLAGS_40 (1 << 6)
#define MONKEY_FLAGS_80 (1 << 7)
#define MONKEY_FLAGS_100 (1 << 8)
#define MONKEY_FLAGS_200 (1 << 9)
#define MONKEY_FLAGS_400 (1 << 10)
#define MONKEY_FLAGS_800 (1 << 11)
#define MONKEY_FLAGS_1000 (1 << 12)
#define MONKEY_FLAGS_2000 (1 << 13)
#define MONKEY_FLAGS_4000 (1 << 14)
#define MONKEY_FLAGS_8000 (1 << 15)
#define MONKEY_PROP_LIMB_MAX MAX((s32)OBJECT_MNK_1_LIMB_MAX, (s32)OBJECT_MNK_3_LIMB_MAX)
typedef struct EnMnk {
/* 0x000 */ PictoActor picto;
/* 0x148 */ char unk_148[0x2A0];
/* 0x148 */ SkelAnime skelAnime;
/* 0x18C */ Vec3s jointTable[OBJECT_MNK_2_LIMB_MAX];
/* 0x216 */ Vec3s morphTable[OBJECT_MNK_2_LIMB_MAX];
/* 0x2A0 */ SkelAnime propSkelAnime;
/* 0x2E4 */ Vec3s propJointTable[MONKEY_PROP_LIMB_MAX];
/* 0x302 */ Vec3s propMorphTable[MONKEY_PROP_LIMB_MAX];
/* 0x320 */ ColliderCylinder collider;
/* 0x36C */ MtxF unk_36C;
/* 0x3AC */ Path* path;
/* 0x3B0 */ s16 csIdList[6];
/* 0x3BC */ s16 csId;
/* 0x3BE */ s16 animIndex;
/* 0x3C0 */ s32 destPointIndex;
/* 0x3C4 */ s32 pathIndex;
/* 0x3C8 */ s32 unk_3C8;
/* 0x3CC */ s16 unk_3CC; // beard x rot?
/* 0x3CE */ s16 unk_3CE; // beard y rot?
/* 0x3D0 */ union {
s16 cueId; // Tied monkey
s16 unk_3D0; // Hanging monkey
};
/* 0x3D4 */ u32 unk_3D4;
/* 0x3D8 */ f32 approachPlayerRadius;
/* 0x3DC */ s16 blinkFrame;
/* 0x3DE */ s16 blinkTimer;
/* 0x3E0 */ s32 unk_3E0;
/* 0x3E4 */ u16 flags;
/* 0x3E8 */ EnMnkActionFunc actionFunc;
} EnMnk; // size = 0x3EC

View File

@ -563,17 +563,6 @@ D_06021E34 = 0x06021E34;
D_06022728 = 0x06022728;
D_06022CAC = 0x06022CAC;
// ovl_En_Mnk
D_06003584 = 0x06003584;
D_06005150 = 0x06005150;
D_060082C8 = 0x060082C8;
D_06008814 = 0x06008814;
D_06009CC0 = 0x06009CC0;
D_060105DC = 0x060105DC;
D_06019B88 = 0x06019B88;
D_0601D518 = 0x0601D518;
// ovl_En_Okuta
D_0600044C = 0x0600044C;