ovl_Obj_Um OK (#887)

* Pass the whole actor in mips2c

* hacky way to fix some types

* decomp a few functions and second mips2c pass

* draw

* another mips2c pass

* some functions

* Init almost matching

* mips2c pass

* Match update and a few more

* A bunch of functions

* horses gonna horse

* func_80B7A860

* mips2c pass

* func_80B7984C

* func_80B795A0

* func_80B783E0

* func_80B78764

* Tried func_80B7BEA4

* func_80B79BA0

* func_80B7A494

* func_80B7A614

* lots of non equivalents

* fix

* Match func_80B77770

* func_80B7BEA4

* import data

* func_80B7B93C

* minor fixes

* ObjUm_Init

* func_80B7AF30

* func_80B7B18C

* func_80B7BABC

* func_80B77FA4

* func_80B7B598

* func_80B781DC is equivalent

* func_80B781DC

* func_80B7BABC

* Cleanup

* limbs

* minor members renames

* First docs pass

* small pass

* yes

* another pass

* more renames

* flags defines

* arePotsBroken

* some flags

* yet another docs pass

* Some members named

* Add weekEventReg docs

* small rename

* And more

* Another 2

* actorfixer and other fixes

* format

* Use extracted object symbols

* fixes

* Some stuff improved

* very minor naming

* format

* remove debugging stuff

* cleanup

* Some EnHorse stuff

* horse params

* ! FAKE

* Update include/functions.h

Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>

* review

Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>

* review

Co-authored-by: Tom Overton <tom-overton@users.noreply.github.com>

* Update assets/xml/objects/object_um.xml

* IS_BANDIT_TYPE

Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>

* review

Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>

* Update src/overlays/actors/ovl_Obj_Um/z_obj_um.c

Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>

* remove a fake match

Co-authored-by: Tom Overton <tom-overton@users.noreply.github.com>

* Update src/overlays/actors/ovl_En_Horse/z_en_horse.h

Co-authored-by: EllipticEllipsis <elliptic.ellipsis@gmail.com>

* Update src/overlays/actors/ovl_En_Ma_Yto/z_en_ma_yto.c

Co-authored-by: EllipticEllipsis <elliptic.ellipsis@gmail.com>

* Update src/overlays/actors/ovl_Obj_Um/z_obj_um.c

Co-authored-by: EllipticEllipsis <elliptic.ellipsis@gmail.com>

* Update src/overlays/actors/ovl_Obj_Um/z_obj_um.c

Co-authored-by: EllipticEllipsis <elliptic.ellipsis@gmail.com>

* Update src/overlays/actors/ovl_Obj_Um/z_obj_um.c

Co-authored-by: EllipticEllipsis <elliptic.ellipsis@gmail.com>

* review

Co-authored-by: EllipticEllipsis <elliptic.ellipsis@gmail.com>

* anim enum

* name anim enum

* Update src/overlays/actors/ovl_Obj_Um/z_obj_um.c

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* Update src/overlays/actors/ovl_Obj_Um/z_obj_um.c

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* Update src/overlays/actors/ovl_Obj_Um/z_obj_um.c

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* Update src/overlays/actors/ovl_Obj_Um/z_obj_um.c

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* Update src/overlays/actors/ovl_Obj_Um/z_obj_um.c

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* Update src/overlays/actors/ovl_Obj_Um/z_obj_um.c

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* Update src/overlays/actors/ovl_Obj_Um/z_obj_um.c

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* Update src/overlays/actors/ovl_Obj_Um/z_obj_um.c

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* review

Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>

* remove repeated forward declarations

* fixes

* Update src/overlays/actors/ovl_Obj_Um/z_obj_um.c

Co-authored-by: Tom Overton <tom-overton@users.noreply.github.com>

* Update src/overlays/actors/ovl_Obj_Um/z_obj_um.c

Co-authored-by: Tom Overton <tom-overton@users.noreply.github.com>

* Update src/overlays/actors/ovl_Obj_Um/z_obj_um.c

Co-authored-by: Tom Overton <tom-overton@users.noreply.github.com>

* Update src/overlays/actors/ovl_Obj_Um/z_obj_um.c

Co-authored-by: Tom Overton <tom-overton@users.noreply.github.com>

* Update src/overlays/actors/ovl_Obj_Um/z_obj_um.c

Co-authored-by: Tom Overton <tom-overton@users.noreply.github.com>

* Update src/overlays/actors/ovl_Obj_Um/z_obj_um.c

Co-authored-by: Tom Overton <tom-overton@users.noreply.github.com>

* Update src/overlays/actors/ovl_Obj_Um/z_obj_um.c

Co-authored-by: Tom Overton <tom-overton@users.noreply.github.com>

* Update src/overlays/actors/ovl_Obj_Um/z_obj_um.c

Co-authored-by: Tom Overton <tom-overton@users.noreply.github.com>

* review

Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>
Co-authored-by: Tom Overton <tom-overton@users.noreply.github.com>

* comment

* review

Co-authored-by: EllipticEllipsis <elliptic.ellipsis@gmail.com>

* areAllPotsBroken

Co-authored-by: EllipticEllipsis <elliptic.ellipsis@gmail.com>

* fix merge

Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>
Co-authored-by: Tom Overton <tom-overton@users.noreply.github.com>
Co-authored-by: EllipticEllipsis <elliptic.ellipsis@gmail.com>
Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>
This commit is contained in:
Anghelo Carvajal
2022-07-23 14:00:32 -04:00
committed by GitHub
co-authored by Derek Hensley Tom Overton EllipticEllipsis engineer124
parent aa87f0de89
commit 3f49adb91d
14 changed files with 2235 additions and 278 deletions
+51 -30
View File
@@ -10,26 +10,31 @@
<Texture Name="object_um_Tex_002148" OutName="tex_002148" Format="rgba16" Width="32" Height="32" Offset="0x2148" />
<Texture Name="object_um_Tex_002948" OutName="tex_002948" Format="rgba16" Width="32" Height="32" Offset="0x2948" />
<Texture Name="object_um_Tex_003148" OutName="tex_003148" Format="rgba16" Width="32" Height="32" Offset="0x3148" />
<DList Name="object_um_DL_003C60" Offset="0x3C60" />
<!-- The bottles which the bandits try to destroy in the milk-run minigame. Referred as "milk-bottles" by Cremia in-game. -->
<DList Name="gUmMinigamePotDL" Offset="0x3C60" />
<Texture Name="object_um_Tex_003F00" OutName="tex_003F00" Format="rgba16" Width="16" Height="16" Offset="0x3F00" />
<Texture Name="object_um_Tex_004100" OutName="tex_004100" Format="rgba16" Width="8" Height="8" Offset="0x4100" />
<DList Name="object_um_DL_0043E0" Offset="0x43E0" />
<Texture Name="object_um_Tex_004500" OutName="tex_004500" Format="i8" Width="32" Height="32" Offset="0x4500" />
<DList Name="object_um_DL_004B60" Offset="0x4B60" />
<Texture Name="object_um_Tex_004C80" OutName="tex_004C80" Format="i8" Width="32" Height="32" Offset="0x4C80" />
<DList Name="object_um_DL_0052B0" Offset="0x52B0" />
<DList Name="gUmBrokenMinigamePotDL" Offset="0x52B0" />
<Texture Name="object_um_TLUT_0054D0" OutName="tlut_0054D0" Format="rgba16" Width="16" Height="16" Offset="0x54D0" />
<Texture Name="object_um_Tex_0056D0" OutName="tex_0056D0" Format="ci8" Width="8" Height="8" Offset="0x56D0" />
<Texture Name="object_um_Tex_005710" OutName="tex_005710" Format="ci8" Width="32" Height="64" Offset="0x5710" />
<Texture Name="object_um_Tex_005F10" OutName="tex_005F10" Format="ci8" Width="32" Height="32" Offset="0x5F10" />
<DList Name="object_um_DL_0067C0" Offset="0x67C0" />
<DList Name="object_um_DL_0067C0" Offset="0x67C0" /> <!-- pre-minigame pot? -->
<Texture Name="object_um_TLUT_006AD0" OutName="tlut_006AD0" Format="rgba16" Width="16" Height="16" Offset="0x6AD0" />
<Texture Name="object_um_Tex_006CD0" OutName="tex_006CD0" Format="ci8" Width="8" Height="8" Offset="0x6CD0" />
<Texture Name="object_um_Tex_006D10" OutName="tex_006D10" Format="ci8" Width="32" Height="64" Offset="0x6D10" />
<Texture Name="object_um_Tex_007510" OutName="tex_007510" Format="rgba16" Width="32" Height="32" Offset="0x7510" />
<!-- <Blob Name="object_um_Blob_007D10" Size="0x10" Offset="0x7D10" /> -->
<Collision Name="object_um_Colheader_007E20" Offset="0x7E20" />
<Collision Name="object_um_Colheader_007F50" Offset="0x7F50" />
<DList Name="object_um_DL_00DF20" Offset="0xDF20" />
<DList Name="object_um_DL_00E2F0" Offset="0xE2F0" />
<DList Name="object_um_DL_00E6A8" Offset="0xE6A8" />
@@ -49,31 +54,35 @@
<DList Name="object_um_DL_010BD8" Offset="0x10BD8" />
<DList Name="object_um_DL_010CC8" Offset="0x10CC8" />
<DList Name="object_um_DL_0114B8" Offset="0x114B8" />
<Limb Name="object_um_Standardlimb_011CA8" Type="Standard" EnumName="OBJECT_UM_LIMB_01" Offset="0x11CA8" />
<Limb Name="object_um_Standardlimb_011CB4" Type="Standard" EnumName="OBJECT_UM_LIMB_02" Offset="0x11CB4" />
<Limb Name="object_um_Standardlimb_011CC0" Type="Standard" EnumName="OBJECT_UM_LIMB_03" Offset="0x11CC0" />
<Limb Name="object_um_Standardlimb_011CCC" Type="Standard" EnumName="OBJECT_UM_LIMB_04" Offset="0x11CCC" />
<Limb Name="object_um_Standardlimb_011CD8" Type="Standard" EnumName="OBJECT_UM_LIMB_05" Offset="0x11CD8" />
<Limb Name="object_um_Standardlimb_011CE4" Type="Standard" EnumName="OBJECT_UM_LIMB_06" Offset="0x11CE4" />
<Limb Name="object_um_Standardlimb_011CF0" Type="Standard" EnumName="OBJECT_UM_LIMB_07" Offset="0x11CF0" />
<Limb Name="object_um_Standardlimb_011CFC" Type="Standard" EnumName="OBJECT_UM_LIMB_08" Offset="0x11CFC" />
<Limb Name="object_um_Standardlimb_011D08" Type="Standard" EnumName="OBJECT_UM_LIMB_09" Offset="0x11D08" />
<Limb Name="object_um_Standardlimb_011D14" Type="Standard" EnumName="OBJECT_UM_LIMB_0A" Offset="0x11D14" />
<Limb Name="object_um_Standardlimb_011D20" Type="Standard" EnumName="OBJECT_UM_LIMB_0B" Offset="0x11D20" />
<Limb Name="object_um_Standardlimb_011D2C" Type="Standard" EnumName="OBJECT_UM_LIMB_0C" Offset="0x11D2C" />
<Limb Name="object_um_Standardlimb_011D38" Type="Standard" EnumName="OBJECT_UM_LIMB_0D" Offset="0x11D38" />
<Limb Name="object_um_Standardlimb_011D44" Type="Standard" EnumName="OBJECT_UM_LIMB_0E" Offset="0x11D44" />
<Limb Name="object_um_Standardlimb_011D50" Type="Standard" EnumName="OBJECT_UM_LIMB_0F" Offset="0x11D50" />
<Limb Name="object_um_Standardlimb_011D5C" Type="Standard" EnumName="OBJECT_UM_LIMB_10" Offset="0x11D5C" />
<Limb Name="object_um_Standardlimb_011D68" Type="Standard" EnumName="OBJECT_UM_LIMB_11" Offset="0x11D68" />
<Limb Name="object_um_Standardlimb_011D74" Type="Standard" EnumName="OBJECT_UM_LIMB_12" Offset="0x11D74" />
<Limb Name="object_um_Standardlimb_011D80" Type="Standard" EnumName="OBJECT_UM_LIMB_13" Offset="0x11D80" />
<Limb Name="object_um_Standardlimb_011D8C" Type="Standard" EnumName="OBJECT_UM_LIMB_14" Offset="0x11D8C" />
<Limb Name="object_um_Standardlimb_011D98" Type="Standard" EnumName="OBJECT_UM_LIMB_15" Offset="0x11D98" />
<Skeleton Name="object_um_Skel_011DF8" Type="Flex" LimbType="Standard" LimbNone="OBJECT_UM_LIMB_NONE" LimbMax="OBJECT_UM_LIMB_MAX" EnumName="object_um_Limbs" Offset="0x11DF8" />
<Animation Name="object_um_Anim_01213C" Offset="0x1213C" />
<Animation Name="object_um_Anim_0126C4" Offset="0x126C4" />
<Animation Name="object_um_Anim_012CC0" Offset="0x12CC0" />
<Limb Name="gUmWagonSeatAndShaftsLimb" Type="Standard" EnumName="UM_LIMB_SEAT_AND_SHAFTS" Offset="0x11CA8" /> <!-- Chair and donkey attachment -->
<Limb Name="gUmWagonRootLimb" Type="Standard" EnumName="UM_LIMB_WAGON_ROOT" Offset="0x11CB4" />
<Limb Name="gUmWagonRightWheelLimb" Type="Standard" EnumName="UM_LIMB_WAGON_RIGHT_WHEEL" Offset="0x11CC0" />
<Limb Name="gUmWagonLeftWheelLimb" Type="Standard" EnumName="UM_LIMB_WAGON_LEFT_WHEEL" Offset="0x11CCC" />
<Limb Name="gUmWagonCartBedLimb" Type="Standard" EnumName="UM_LIMB_WAGON_CART_BED" Offset="0x11CD8" />
<Limb Name="gUmWagonHandBrakeLimb" Type="Standard" EnumName="UM_LIMB_WAGON_HAND_BRAKE" Offset="0x11CE4" />
<Limb Name="gUmWagonCartCoverLimb" Type="Standard" EnumName="UM_LIMB_WAGON_CART_COVER" Offset="0x11CF0" />
<Limb Name="gUmWagonLeftLeafSpringLimb" Type="Standard" EnumName="UM_LIMB_WAGON_LEFT_LEAF_SPRING" Offset="0x11CFC" />
<Limb Name="gUmWagonRightLeafSpringLimb" Type="Standard" EnumName="UM_LIMB_WAGON_RIGHT_LEAF_SPRING" Offset="0x11D08" />
<Limb Name="gUmWagonSteeringWheelLimb" Type="Standard" EnumName="UM_LIMB_WAGON_STEERING_WHEEL" Offset="0x11D14" />
<Limb Name="gUmCremiaRootLimb" Type="Standard" EnumName="UM_LIMB_CREMIA_ROOT" Offset="0x11D20" />
<Limb Name="gUmCremiaTorsoLimb" Type="Standard" EnumName="UM_LIMB_CREMIA_TORSO" Offset="0x11D2C" />
<Limb Name="gUmCremiaHeadLimb" Type="Standard" EnumName="UM_LIMB_CREMIA_HEAD" Offset="0x11D38" />
<Limb Name="gUmCremiaHairEndLimb" Type="Standard" EnumName="UM_LIMB_CREMIA_HAIR_END" Offset="0x11D44" />
<Limb Name="gUmCremiaLeftUpperArmLimb" Type="Standard" EnumName="UM_LIMB_CREMIA_LEFT_UPPER_ARM" Offset="0x11D50" />
<Limb Name="gUmCremiaLeftForearmLimb" Type="Standard" EnumName="UM_LIMB_CREMIA_LEFT_FOREARM" Offset="0x11D5C" />
<Limb Name="gUmCremiaLeftHandLimb" Type="Standard" EnumName="UM_LIMB_CREMIA_LEFT_HAND" Offset="0x11D68" />
<Limb Name="gUmCremiaRightUpperArmLimb" Type="Standard" EnumName="UM_LIMB_CREMIA_RIGHT_UPPER_ARM" Offset="0x11D74" />
<Limb Name="gUmCremiaRightForearmLimb" Type="Standard" EnumName="UM_LIMB_CREMIA_RIGHT_FOREARM" Offset="0x11D80" />
<Limb Name="gUmCremiaRightHandLimb" Type="Standard" EnumName="UM_LIMB_CREMIA_RIGHT_HAND" Offset="0x11D8C" />
<Limb Name="gUmCremiaLowerBodyLimb" Type="Standard" EnumName="UM_LIMB_CREMIA_LOWER_BODY" Offset="0x11D98" />
<Skeleton Name="gUmSkel" Type="Flex" LimbType="Standard" LimbNone="UM_LIMB_NONE" LimbMax="UM_LIMB_MAX" EnumName="ObjectUmLimbs" Offset="0x11DF8" />
<Animation Name="gUmGallopAnim" Offset="0x1213C" />
<Animation Name="gUmLookBackAnim" Offset="0x126C4" />
<Animation Name="gUmTrotAnim" Offset="0x12CC0" />
<Texture Name="object_um_TLUT_012CD0" OutName="tlut_012CD0" Format="rgba16" Width="16" Height="16" Offset="0x12CD0" />
<Texture Name="object_um_TLUT_012ED0" OutName="tlut_012ED0" Format="rgba16" Width="16" Height="16" Offset="0x12ED0" />
<Texture Name="object_um_TLUT_0130D0" OutName="tlut_0130D0" Format="rgba16" Width="16" Height="16" Offset="0x130D0" />
@@ -85,7 +94,19 @@
<Texture Name="object_um_Tex_014CD0" OutName="tex_014CD0" Format="ci8" Width="32" Height="64" Offset="0x14CD0" />
<Texture Name="object_um_Tex_0154D0" OutName="tex_0154D0" Format="ci8" Width="32" Height="64" Offset="0x154D0" />
<Texture Name="object_um_Tex_015CD0" OutName="tex_015CD0" Format="rgba16" Width="32" Height="32" Offset="0x15CD0" />
<!-- <Blob Name="object_um_Blob_0164D0" Size="0x2000" Offset="0x164D0" /> -->
<Texture Name="gUmCremiaEyeOpenTex" OutName="cremia_eye_open" Format="ci8" Width="32" Height="32" Offset="0x164D0" TlutOffset="0x130D0" />
<Texture Name="gUmCremiaEyeHalfTex" OutName="cremia_eye_half" Format="ci8" Width="32" Height="32" Offset="0x168D0" TlutOffset="0x130D0" />
<Texture Name="gUmCremiaEyeClosedTex" OutName="cremia_eye_closed" Format="ci8" Width="32" Height="32" Offset="0x16CD0" TlutOffset="0x130D0" />
<Texture Name="gUmCremiaEyeHappyTex" OutName="cremia_eye_happy" Format="ci8" Width="32" Height="32" Offset="0x170D0" TlutOffset="0x130D0" />
<Texture Name="gUmCremiaEyeAngryTex" OutName="cremia_eye_angry" Format="ci8" Width="32" Height="32" Offset="0x174D0" TlutOffset="0x130D0" />
<Texture Name="gUmCremiaEyeSadTex" OutName="cremia_eye_sad" Format="ci8" Width="32" Height="32" Offset="0x178D0" TlutOffset="0x130D0" />
<Texture Name="gUmMouthNormalTex" OutName="mouth_normal" Format="ci8" Width="32" Height="16" Offset="0x17CD0" TlutOffset="0x130D0" />
<Texture Name="gUmMouthHappyTex" OutName="mouth_happy" Format="ci8" Width="32" Height="16" Offset="0x17ED0" TlutOffset="0x130D0" />
<Texture Name="gUmMouthFrownTex" OutName="mouth_frown" Format="ci8" Width="32" Height="16" Offset="0x180D0" TlutOffset="0x130D0" />
<Texture Name="gUmMouthHangingOpenTex" OutName="mouth_hanging_open" Format="ci8" Width="32" Height="16" Offset="0x182D0" TlutOffset="0x130D0" />
<Texture Name="object_um_Tex_0184D0" OutName="tex_0184D0" Format="ci8" Width="8" Height="8" Offset="0x184D0" />
<Texture Name="object_um_Tex_018510" OutName="tex_018510" Format="ci8" Width="16" Height="16" Offset="0x18510" />
<Texture Name="object_um_Tex_018610" OutName="tex_018610" Format="ci8" Width="16" Height="16" Offset="0x18610" />
@@ -100,6 +121,6 @@
<Texture Name="object_um_Tex_019210" OutName="tex_019210" Format="ci8" Width="16" Height="16" Offset="0x19210" />
<Texture Name="object_um_Tex_019310" OutName="tex_019310" Format="ci8" Width="16" Height="32" Offset="0x19310" />
<Texture Name="object_um_Tex_019510" OutName="tex_019510" Format="ci8" Width="64" Height="16" Offset="0x19510" />
<Animation Name="object_um_Anim_019E10" Offset="0x19E10" />
<Animation Name="gUmIdleAnim" Offset="0x19E10" />
</File>
</Root>
+1
View File
@@ -130,6 +130,7 @@ u32 StackCheck_Check(StackEntry* entry);
void MtxConv_F2L(Mtx* m1, MtxF* m2);
void MtxConv_L2F(MtxF* m1, Mtx* m2);
void __assert(const char* file, u32 lineNum);
// void func_800862B4(void);
void* SystemArena_MallocMin1(u32 size);
+1 -2
View File
@@ -4064,8 +4064,7 @@ beginseg
name "ovl_Obj_Um"
compress
include "build/src/overlays/actors/ovl_Obj_Um/z_obj_um.o"
include "build/data/ovl_Obj_Um/ovl_Obj_Um.data.o"
include "build/data/ovl_Obj_Um/ovl_Obj_Um.reloc.o"
include "build/src/overlays/actors/ovl_Obj_Um/ovl_Obj_Um_reloc.o"
endseg
beginseg
File diff suppressed because it is too large Load Diff
+33 -17
View File
@@ -3,11 +3,11 @@
#include "global.h"
#include "z64skin.h"
#include "overlays/actors/ovl_En_In/z_en_in.h"
#include "objects/gameplay_keep/gameplay_keep.h"
#include "objects/object_ha/object_ha.h"
struct EnHorse;
struct EnIn;
typedef void (*EnHorseActionFunc)(struct EnHorse*, PlayState*);
typedef void (*EnHorsePostdrawFunc)(struct EnHorse*, PlayState*);
@@ -97,18 +97,22 @@ typedef enum {
} EnHorseAnimationIndex;
typedef enum {
/* 0 */ HORSE_EPONA,
/* 1 */ HORSE_HNI,
/* 2 */ HORSE_2,
/* 3 */ HORSE_3,
/* 4 */ HORSE_4
/* 0 */ HORSE_TYPE_EPONA,
/* 1 */ HORSE_TYPE_HNI,
/* 2 */ HORSE_TYPE_2,
/* 3 */ HORSE_TYPE_BANDIT,
/* 4 */ HORSE_TYPE_DONKEY // Cremia's donkey
} HorseType;
#define ENHORSE_GET_2000(thisx) ((thisx)->params & 0x2000)
#define ENHORSE_GET_4000(thisx) ((thisx)->params & 0x4000)
#define ENHORSE_GET_8000(thisx) ((thisx)->params & 0x8000)
#define ENHORSE_PARAM_BANDIT 0x2000
#define ENHORSE_PARAM_4000 0x4000
#define ENHORSE_PARAM_DONKEY 0x8000
enum {
#define ENHORSE_IS_BANDIT_TYPE(thisx) ((thisx)->params & ENHORSE_PARAM_BANDIT)
#define ENHORSE_IS_4000_TYPE(thisx) ((thisx)->params & ENHORSE_PARAM_4000)
#define ENHORSE_IS_DONKEY_TYPE(thisx) ((thisx)->params & ENHORSE_PARAM_DONKEY)
typedef enum {
/* 0 */ ENHORSE_0,
/* 1 */ ENHORSE_1,
/* 2 */ ENHORSE_2,
@@ -130,7 +134,13 @@ enum {
/* 18 */ ENHORSE_18,
/* 19 */ ENHORSE_19,
/* 20 */ ENHORSE_20,
};
} EnHorseParam;
/**
* `paramtype` should be `ENHORSE_PARAM_BANDIT`, `ENHORSE_PARAM_4000` or `ENHORSE_PARAM_DONKEY`
* `lower` should be a value of the enum `EnHorseParam`
*/
#define ENHORSE_PARAMS(type, lower) ((type) | (lower))
typedef struct EnHorse {
/* 0x000 */ Actor actor;
@@ -180,7 +190,7 @@ typedef struct EnHorse {
/* 0x384 */ u16 cutsceneFlags;
/* 0x388 */ s32 inRace;
/* 0x38C */ struct EnIn* rider;
/* 0x390 */ UNK_TYPE1 unk390[0x4];
/* 0x390 */ UNK_TYPE1 unk_390[0x4];
/* 0x394 */ u16 unk_394;
/* 0x398 */ f32 unk_398;
/* 0x39C */ s32 unk_39C;
@@ -193,7 +203,7 @@ typedef struct EnHorse {
/* 0x3C8 */ Vec3f backRightHoof;
/* 0x3D4 */ Vec3f backLeftHoof;
/* 0x3E0 */ s32 unk_3E0;
/* 0x3E4 */ UNK_TYPE1 unk3E4[0x4];
/* 0x3E4 */ UNK_TYPE1 unk_3E4[0x4];
/* 0x3E8 */ f32 unk_3E8;
/* 0x3EC */ s16 unk_3EC;
/* 0x3EE */ Vec3s jointTable[OBJECT_HA_1_LIMB_MAX];
@@ -205,13 +215,19 @@ typedef struct EnHorse {
/* 0x538 */ s32 unk_538;
/* 0x53C */ s32 unk_53C;
/* 0x540 */ Vec3f unk_540;
/* 0x54C */ UNK_TYPE1 unk54C[0x4];
/* 0x54C */ UNK_TYPE unk_54C;
/* 0x550 */ s32 unk_550;
/* 0x554 */ UNK_TYPE1 unk554[0x18];
/* 0x554 */ UNK_TYPE unk_554;
/* 0x558 */ UNK_TYPE unk_558;
/* 0x55C */ s32 unk_55C; // maybe currentDistanceToCart... it isn't really a distance tho
/* 0x560 */ s32 unk_560; // maybe initialDistanceToCart
/* 0x564 */ s32 unk_564; // set but not used
/* 0x568 */ f32 unk_568; // set but not used
/* 0x56C */ f32 unk_56C;
/* 0x570 */ Vec3f unk_570;
/* 0x570 */ Vec3f banditPosition; // Milk run minigame bandit
/* 0x57C */ Vec3f unk_57C;
/* 0x588 */ UNK_TYPE1 unk588[0x4];
/* 0x588 */ s16 unk_588;
/* 0x58A */ UNK_TYPE1 unk_58A[0x2]; // struct padding?
/* 0x58C */ s32 unk_58C;
/* 0x590 */ s32 unk_590;
} EnHorse; // size = 0x594
@@ -124,14 +124,14 @@ s32 func_808F8CCC(EnHorseGameCheck* this, PlayState* play2) {
func_8010E9F0(4, 0);
play->interfaceCtx.unk_280 = 1;
this->horse1 =
(EnHorse*)Actor_Spawn(&play->actorCtx, play, ACTOR_EN_HORSE, -1149.0f, -106.0f, 470.0f, 0, 0x7FFF, 0, 0x2004);
this->horse1 = (EnHorse*)Actor_Spawn(&play->actorCtx, play, ACTOR_EN_HORSE, -1149.0f, -106.0f, 470.0f, 0, 0x7FFF, 0,
ENHORSE_PARAMS(ENHORSE_PARAM_BANDIT, ENHORSE_4));
if (this->horse1 == NULL) {
__assert("../z_en_horse_game_check.c", 1517);
}
this->horse2 =
(EnHorse*)Actor_Spawn(&play->actorCtx, play, ACTOR_EN_HORSE, -1376.0f, -106.0f, 470.0f, 0, 0x7FFF, 0, 0x2005);
this->horse2 = (EnHorse*)Actor_Spawn(&play->actorCtx, play, ACTOR_EN_HORSE, -1376.0f, -106.0f, 470.0f, 0, 0x7FFF, 0,
ENHORSE_PARAMS(ENHORSE_PARAM_BANDIT, ENHORSE_5));
if (this->horse2 == NULL) {
__assert("../z_en_horse_game_check.c", 1526);
}
@@ -404,7 +404,7 @@ void func_80A42AB8(EnTest4* this, PlayState* play) {
if (player->stateFlags1 & 0x800000) {
EnHorse* rideActor = (EnHorse*)player->rideActor;
if ((rideActor->type == HORSE_EPONA) || (rideActor->type == HORSE_2)) {
if ((rideActor->type == HORSE_TYPE_EPONA) || (rideActor->type == HORSE_TYPE_2)) {
if (CURRENT_DAY < 3) {
D_801BDA9C = 1;
} else {
File diff suppressed because it is too large Load Diff
+78 -3
View File
@@ -2,18 +2,93 @@
#define Z_OBJ_UM_H
#include "global.h"
#include "objects/object_um/object_um.h"
#include "overlays/actors/ovl_En_Horse/z_en_horse.h"
struct ObjUm;
typedef void (*ObjUmActionFunc)(struct ObjUm*, PlayState*);
#define MILK_POTS_COUNT 3
typedef enum ObjUmAnimimations {
/* -1 */ OBJ_UM_ANIM_MINUS_1 = -1,
/* 0 */ OBJ_UM_ANIM_TROT,
/* 1 */ OBJ_UM_ANIM_GALLOP,
/* 2 */ OBJ_UM_ANIM_IDLE,
/* 3 */ OBJ_UM_ANIM_3, // NULL pointer
/* 4 */ OBJ_UM_ANIM_LOOK_BACK
} ObjUmAnimimations;
typedef struct ObjUm {
/* 0x000 */ Actor actor;
/* 0x144 */ char unk_144[0x18];
/* 0x000 */ DynaPolyActor dyna;
/* 0x15C */ ObjUmActionFunc actionFunc;
/* 0x160 */ char unk_160[0x384];
/* 0x160 */ SkelAnime skelAnime;
/* 0x1A4 */ Vec3s jointTable[UM_LIMB_MAX];
/* 0x228 */ Vec3s morphTable[UM_LIMB_MAX];
/* 0x2AC */ s16 wheelRot;
/* 0x2AE */ s16 type;
/* 0x2B0 */ s16 initialPathIndex;
/* 0x2B4 */ s32 unk_2B4;
/* 0x2B8 */ EnHorse* donkey;
/* 0x2BC */ s32 pathIndex;
/* 0x2BE */ s32 pointIndex;
/* 0x2C4 */ Vec3f unk_2C4;
/* 0x2D0 */ Vec3f unk_2D0;
/* 0x2DC */ Vec3f unk_2DC;
/* 0x2E8 */ Vec3f unk_2E8;
/* 0x2F4 */ s32 flags;
/* 0x2BC */ Vec3s unk_2F8;
/* 0x2FE */ Vec3s unk_2FE;
/* 0x304 */ ObjUmAnimimations currentAnimIndex;
/* 0x308 */ Vec3f unk_308;
/* 0x314 */ s32 potsLife[MILK_POTS_COUNT];
/* 0x320 */ s32 wasPotHit[MILK_POTS_COUNT]; // resets to false in the same frame
/* 0x32C */ Vec3f potPos[MILK_POTS_COUNT];
/* 0x350 */ s32 unk_350; // unused counter?
/* 0x354 */ s32 unk_354; // unused?
/* 0x358 */ EnHorse* bandit1;
/* 0x35C */ EnHorse* bandit2;
/* 0x360 */ Vec3f unk_360[16];
/* 0x420 */ s32 unk_420; // ?
/* 0x424 */ ColliderCylinder banditsCollisions[2];
/* 0x4BC */ Vec3f cartBedPos;
/* 0x4C8 */ u16 lastTime;
/* 0x4CC */ s32 unk_4CC;
/* 0x4D0 */ s32 eyeTexIndex;
/* 0x4D4 */ s32 mouthTexIndex;
/* 0x4D8 */ s32 unk_4D8;
/* 0x4DC */ s32 unk_4DC;
/* 0x4E0 */ s32 areAllPotsBroken; // true when all of the pots have been broken
} ObjUm; // size = 0x4E4
extern const ActorInit Obj_Um_InitVars;
typedef enum {
/* 0 */ OBJ_UM_TYPE_TERMINA_FIELD,
/* 1 */ OBJ_UM_TYPE_RANCH,
/* 2 */ OBJ_UM_TYPE_PRE_MILK_RUN, // milk road, pre-minigame
/* 3 */ OBJ_UM_TYPE_MILK_RUN_MINIGAME,
/* 4 */ OBJ_UM_TYPE_POST_MILK_RUN // milk road, post-minigame
} ObjUmType;
#define OBJ_UM_PARSE_TYPE(thisx) (((thisx)->params & 0xFF00) >> 8)
#define OBJ_UM_PARSE_PATH_INDEX(thisx) ((thisx)->params & 0xFF)
#define OBJ_UM_FLAG_NONE (0)
#define OBJ_UM_FLAG_0001 (1 << 0)
#define OBJ_UM_FLAG_MOVING (1 << 1)
#define OBJ_UM_FLAG_0004 (1 << 2)
#define OBJ_UM_FLAG_WAITING (1 << 3) // Waiting in the Ranch
#define OBJ_UM_FLAG_0010 (1 << 4)
#define OBJ_UM_FLAG_DRAWN_FLOOR (1 << 5)
#define OBJ_UM_FLAG_0040 (1 << 6)
#define OBJ_UM_FLAG_PLAYING_MINIGAME (1 << 7)
#define OBJ_UM_FLAG_0100 (1 << 8)
#define OBJ_UM_FLAG_0200 (1 << 9) // Something bandit1
#define OBJ_UM_FLAG_0400 (1 << 10) // Something bandit2
#define OBJ_UM_FLAG_LOOK_BACK (1 << 11)
#define OBJ_UM_FLAG_1000 (1 << 12)
#define OBJ_UM_FLAG_MINIGAME_FINISHED (1 << 13)
#endif // Z_OBJ_UM_H
+22 -22
View File
@@ -14462,57 +14462,57 @@
0x80B77354:("EnTruMt_TransformLimbDraw",),
0x80B773D0:("EnTruMt_Draw",),
0x80B77770:("func_80B77770",),
0x80B77FA4:("func_80B77FA4",),
0x80B77FA4:("ObjUm_InitBandits",),
0x80B781DC:("func_80B781DC",),
0x80B783E0:("func_80B783E0",),
0x80B78764:("func_80B78764",),
0x80B78A54:("func_80B78A54",),
0x80B78C18:("func_80B78C18",),
0x80B78D08:("func_80B78D08",),
0x80B78D08:("ObjUm_UpdateBanditsCollisions",),
0x80B78DF0:("func_80B78DF0",),
0x80B78E2C:("ObjUm_SetupAction",),
0x80B78E38:("func_80B78E38",),
0x80B78E88:("func_80B78E88",),
0x80B78E38:("ObjUm_SetPlayerPosition",),
0x80B78E88:("ObjUm_RotatePlayer",),
0x80B78EBC:("func_80B78EBC",),
0x80B78EFC:("func_80B78EFC",),
0x80B78EFC:("ObjUm_RotatePlayerView",),
0x80B78F24:("ObjUm_Init",),
0x80B7949C:("ObjUm_Destroy",),
0x80B79524:("func_80B79524",),
0x80B79560:("func_80B79560",),
0x80B795A0:("func_80B795A0",),
0x80B79734:("func_80B79734",),
0x80B797EC:("func_80B797EC",),
0x80B797EC:("ObjUm_RanchGetDialogue",),
0x80B7984C:("func_80B7984C",),
0x80B79A24:("func_80B79A24",),
0x80B79A50:("func_80B79A50",),
0x80B79BA0:("func_80B79BA0",),
0x80B79F10:("func_80B79F10",),
0x80B79FFC:("func_80B79FFC",),
0x80B79A50:("ObjUm_RanchWait",),
0x80B79BA0:("ObjUm_UpdatePath",),
0x80B79F10:("ObjUm_RanchWaitPathFinished",),
0x80B79FFC:("ObjUm_RanchStartCs",),
0x80B7A070:("func_80B7A070",),
0x80B7A0E0:("func_80B7A0E0",),
0x80B7A144:("func_80B7A144",),
0x80B7A1B4:("func_80B7A1B4",),
0x80B7A1B4:("ObjUm_PreMilkRunDialogueHandler",),
0x80B7A240:("func_80B7A240",),
0x80B7A2AC:("func_80B7A2AC",),
0x80B7A394:("func_80B7A394",),
0x80B7A400:("func_80B7A400",),
0x80B7A494:("func_80B7A494",),
0x80B7A400:("ObjUm_PreMilkRunStartCs",),
0x80B7A494:("ObjUm_RunMinigame",),
0x80B7A614:("func_80B7A614",),
0x80B7A7AC:("func_80B7A7AC",),
0x80B7A860:("func_80B7A860",),
0x80B7AB78:("func_80B7AB78",),
0x80B7ABE4:("func_80B7ABE4",),
0x80B7AC94:("func_80B7AC94",),
0x80B7AD34:("func_80B7AD34",),
0x80B7AE58:("func_80B7AE58",),
0x80B7AEFC:("func_80B7AEFC",),
0x80B7AC94:("ObjUm_StartCs",),
0x80B7AD34:("ObjUm_PostMilkRunWaitPathFinished",),
0x80B7AE58:("ObjUm_PostMilkRunStartCs",),
0x80B7AEFC:("ObjUm_TerminaFieldIdle",),
0x80B7AF30:("func_80B7AF30",),
0x80B7B154:("func_80B7B154",),
0x80B7B18C:("func_80B7B18C",),
0x80B7B154:("ObjUm_DefaultAnim",),
0x80B7B18C:("ObjUm_UpdateAnim",),
0x80B7B368:("ObjUm_Update",),
0x80B7B598:("func_80B7B598",),
0x80B7B93C:("func_80B7B93C",),
0x80B7BABC:("func_80B7BABC",),
0x80B7B598:("ObjUm_OverrideLimbDraw",),
0x80B7B93C:("ObjUm_SpawnFragments",),
0x80B7BABC:("ObjUm_PostLimbDraw",),
0x80B7BEA4:("func_80B7BEA4",),
0x80B7C03C:("ObjUm_Draw",),
0x80B7C890:("EnNeoReeba_Init",),
+5 -7
View File
@@ -15003,14 +15003,12 @@
0x80B77684:("D_80B77684","f32","",0x4),
0x80B77688:("D_80B77688","f32","",0x4),
0x80B7C0F0:("Obj_Um_InitVars","UNK_TYPE1","",0x1),
0x80B7C110:("D_80B7C110","UNK_TYPE1","",0x1),
0x80B7C128:("D_80B7C128","UNK_TYPE1","",0x1),
0x80B7C138:("D_80B7C138","UNK_TYPE1","",0x1),
0x80B7C110:("sEyeTextures","UNK_TYPE1","",0x1),
0x80B7C128:("sMouthTextures","UNK_TYPE1","",0x1),
0x80B7C138:("sCylinderInit","UNK_TYPE1","",0x1),
0x80B7C164:("D_80B7C164","UNK_TYPE4","",0x4),
0x80B7C254:("D_80B7C254","UNK_TYPE4","",0x4),
0x80B7C25C:("D_80B7C25C","UNK_TYPE1","",0x1),
0x80B7C260:("D_80B7C260","UNK_TYPE1","",0x1),
0x80B7C274:("D_80B7C274","UNK_TYPE1","",0x1),
0x80B7C254:("sInitChain","UNK_TYPE4","",0x4),
0x80B7C25C:("sUmAnims","UNK_TYPE1","[5]",0x28),
0x80B7C284:("D_80B7C284","UNK_TYPE4","",0x4),
0x80B7C290:("D_80B7C290","UNK_TYPE4","",0x4),
0x80B7C29C:("D_80B7C29C","UNK_TYPE4","",0x4),
+1
View File
@@ -576,6 +576,7 @@ wordReplace = {
"func_800E8F08": "Actor_TrackNone",
"func_800E8FA4": "Actor_TrackPoint",
"func_800E9250": "Actor_TrackPlayer",
"func_800E8EA0": "Actor_ContinueText",
"func_8010A000": "Map_GetDungeonOrBossAreaIndex",
"func_8010A074": "Map_IsInDungeonOrBossArea",
+2
View File
@@ -11,6 +11,8 @@ CLOSE_DISPS = "void"
ABS = "int"
ABS_ALT = "int"
SQ = "int"
ARRAY_COUNT = "int"
ARRAY_COUNTU = "int"
CLAMP = "int"
CLOCK_TIME = "int"
CURRENT_DAY = "int"
-7
View File
@@ -1480,13 +1480,6 @@ D_06001100 = 0x06001100;
D_06001140 = 0x06001140;
D_06001CB0 = 0x06001CB0;
// ovl_Obj_Um
D_06007E20 = 0x06007E20;
D_06007F50 = 0x06007F50;
D_06011DF8 = 0x06011DF8;
D_06012CC0 = 0x06012CC0;
// ovl_Obj_Usiyane
D_06000098 = 0x06000098;