mirror of
https://github.com/izzy2lost/2ship2harkinian-Android.git
synced 2026-06-19 01:20:08 -07:00
En_Bb (Blue Bubble) OK and documented. object_bb documented (#713)
* EnBb_Init OK * EnBb_Destroy OK * func_808C20D4 OK * func_808C2238 OK * func_808C1FF4 OK * func_808C1E94 OK * func_808C2344 OK * func_808C23EC OK * EnBb_Update OK * func_808C2E34 OK * func_808C254C OK * func_808C272C OK * func_808C2B94 OK * func_808C2A00 OK * func_808C1F00 OK * func_808C1F74 OK * func_808C25E0 OK * func_808C28CC OK * func_808C2B1C OK * func_808C2BD0 OK * func_808C2C38 OK * func_808C2CB4 OK * func_808C2CF0 OK * func_808C2D78 OK * EnBb_Draw OK * func_808C32EC OK * func_808C3324 OK * Migrate data to C * Use generated reloc * Object symbols and misc cleanup * Name struct vars that are used with Actor_DrawDamageEffects * Name most things in the object * Name attackRange * Good enough names for limbs for now * Might as well name the limb draw stuff for now * Name flame width/height * Enum for damage effects * Name some more stuff from OoT * Name a lot more stuff * First pass names on all functions * Name jinxTimer on gSaveContext * Name sLimbIndexToLimbPos * First pass name to the rest of the limb draw system * More cleanup * Last cleanup before PR * Incorporate Actor_DrawDamageEffect stuff * Respond to hensldm's review
This commit is contained in:
@@ -1,37 +1,47 @@
|
||||
<Root>
|
||||
<!-- Assets for red and blue Bubbles -->
|
||||
<File Name="object_bb" Segment="6">
|
||||
<Animation Name="object_bb_Anim_000184" Offset="0x184" />
|
||||
<Animation Name="object_bb_Anim_0002AC" Offset="0x2AC" />
|
||||
<Animation Name="object_bb_Anim_000444" Offset="0x444" />
|
||||
<DList Name="object_bb_DL_000C20" Offset="0xC20" />
|
||||
<DList Name="object_bb_DL_000CB0" Offset="0xCB0" />
|
||||
<DList Name="object_bb_DL_000D40" Offset="0xD40" />
|
||||
<DList Name="object_bb_DL_000E08" Offset="0xE08" />
|
||||
<DList Name="object_bb_DL_001100" Offset="0x1100" />
|
||||
<DList Name="object_bb_DL_001190" Offset="0x1190" />
|
||||
<Texture Name="object_bb_Tex_001220" OutName="tex_001220" Format="rgba16" Width="16" Height="16" Offset="0x1220" />
|
||||
<Texture Name="object_bb_Tex_001420" OutName="tex_001420" Format="rgba16" Width="8" Height="8" Offset="0x1420" />
|
||||
<Texture Name="object_bb_Tex_0014A0" OutName="tex_0014A0" Format="rgba16" Width="4" Height="4" Offset="0x14A0" />
|
||||
<Texture Name="object_bb_Tex_0014C0" OutName="tex_0014C0" Format="rgba16" Width="8" Height="8" Offset="0x14C0" />
|
||||
<Texture Name="object_bb_Tex_001540" OutName="tex_001540" Format="rgba16" Width="8" Height="8" Offset="0x1540" />
|
||||
<Texture Name="object_bb_Tex_0015C0" OutName="tex_0015C0" Format="rgba16" Width="8" Height="8" Offset="0x15C0" />
|
||||
<Texture Name="object_bb_Tex_001640" OutName="tex_001640" Format="rgba16" Width="16" Height="8" Offset="0x1640" />
|
||||
<Texture Name="object_bb_Tex_001740" OutName="tex_001740" Format="rgba16" Width="16" Height="16" Offset="0x1740" />
|
||||
<Limb Name="object_bb_Standardlimb_001940" Type="Standard" EnumName="OBJECT_BB_LIMB_01" Offset="0x1940" />
|
||||
<Limb Name="object_bb_Standardlimb_00194C" Type="Standard" EnumName="OBJECT_BB_LIMB_02" Offset="0x194C" />
|
||||
<Limb Name="object_bb_Standardlimb_001958" Type="Standard" EnumName="OBJECT_BB_LIMB_03" Offset="0x1958" />
|
||||
<Limb Name="object_bb_Standardlimb_001964" Type="Standard" EnumName="OBJECT_BB_LIMB_04" Offset="0x1964" />
|
||||
<Limb Name="object_bb_Standardlimb_001970" Type="Standard" EnumName="OBJECT_BB_LIMB_05" Offset="0x1970" />
|
||||
<Limb Name="object_bb_Standardlimb_00197C" Type="Standard" EnumName="OBJECT_BB_LIMB_06" Offset="0x197C" />
|
||||
<Limb Name="object_bb_Standardlimb_001988" Type="Standard" EnumName="OBJECT_BB_LIMB_07" Offset="0x1988" />
|
||||
<Limb Name="object_bb_Standardlimb_001994" Type="Standard" EnumName="OBJECT_BB_LIMB_08" Offset="0x1994" />
|
||||
<Limb Name="object_bb_Standardlimb_0019A0" Type="Standard" EnumName="OBJECT_BB_LIMB_09" Offset="0x19A0" />
|
||||
<Limb Name="object_bb_Standardlimb_0019AC" Type="Standard" EnumName="OBJECT_BB_LIMB_0A" Offset="0x19AC" />
|
||||
<Limb Name="object_bb_Standardlimb_0019B8" Type="Standard" EnumName="OBJECT_BB_LIMB_0B" Offset="0x19B8" />
|
||||
<Limb Name="object_bb_Standardlimb_0019C4" Type="Standard" EnumName="OBJECT_BB_LIMB_0C" Offset="0x19C4" />
|
||||
<Limb Name="object_bb_Standardlimb_0019D0" Type="Standard" EnumName="OBJECT_BB_LIMB_0D" Offset="0x19D0" />
|
||||
<Limb Name="object_bb_Standardlimb_0019DC" Type="Standard" EnumName="OBJECT_BB_LIMB_0E" Offset="0x19DC" />
|
||||
<Limb Name="object_bb_Standardlimb_0019E8" Type="Standard" EnumName="OBJECT_BB_LIMB_0F" Offset="0x19E8" />
|
||||
<Skeleton Name="object_bb_Skel_001A30" Type="Normal" LimbType="Standard" LimbNone="OBJECT_BB_LIMB_NONE" LimbMax="OBJECT_BB_LIMB_MAX" EnumName="object_bb_Limbs" Offset="0x1A30" />
|
||||
<!-- Bubble Animations -->
|
||||
<Animation Name="gBubbleAttackAnim" Offset="0x184" /> <!-- Original name is "bb_atack" -->
|
||||
<Animation Name="object_bb_Anim_0002AC" Offset="0x2AC" /> <!-- Original name might be "bb_damage". Maybe unused? -->
|
||||
<Animation Name="gBubbleFlyingAnim" Offset="0x444" /> <!-- Original name is "bb_fly" -->
|
||||
|
||||
<!-- Bubble Limb DisplayLimbs -->
|
||||
<DList Name="gBubbleLeftWingWebbingDL" Offset="0xC20" />
|
||||
<DList Name="gBubbleLeftWingBoneDL" Offset="0xCB0" />
|
||||
<DList Name="gBubbleJawDL" Offset="0xD40" />
|
||||
<DList Name="gBubbleCraniumDL" Offset="0xE08" />
|
||||
<DList Name="gBubbleRightWingBoneDL" Offset="0x1100" />
|
||||
<DList Name="gBubbleRightWingWebbingDL" Offset="0x1190" />
|
||||
|
||||
<!-- Bubble Textures -->
|
||||
<Texture Name="gBubbleEyeSocketBottomTex" OutName="eye_socket_bottom" Format="rgba16" Width="16" Height="16" Offset="0x1220" />
|
||||
<Texture Name="gBubbleNostrilTex" OutName="nostril" Format="rgba16" Width="8" Height="8" Offset="0x1420" />
|
||||
<Texture Name="gBubbleEyeSocketTopAndJawTex" OutName="eye_socket_top_and_jaw" Format="rgba16" Width="4" Height="4" Offset="0x14A0" />
|
||||
<Texture Name="gBubbleCraniumTopTex" OutName="cranium_top" Format="rgba16" Width="8" Height="8" Offset="0x14C0" />
|
||||
<Texture Name="gBubbleCraniumSidesAndBackTex" OutName="cranium_sides_and_back" Format="rgba16" Width="8" Height="8" Offset="0x1540" />
|
||||
<Texture Name="gBubbleEyeGlowTex" OutName="eye_glow" Format="rgba16" Width="8" Height="8" Offset="0x15C0" />
|
||||
<Texture Name="gBubbleWingBoneTex" OutName="wing_bone" Format="rgba16" Width="16" Height="8" Offset="0x1640" />
|
||||
<Texture Name="gBubbleWingWebbingTex" OutName="wing_webbing" Format="rgba16" Width="16" Height="16" Offset="0x1740" />
|
||||
|
||||
<!-- Bubble Limbs -->
|
||||
<Limb Name="gBubbleRootLimb" Type="Standard" EnumName="BUBBLE_LIMB_ROOT" Offset="0x1940" />
|
||||
<Limb Name="gBubbleCraniumRootLimb" Type="Standard" EnumName="BUBBLE_LIMB_CRANIUM_ROOT" Offset="0x194C" />
|
||||
<Limb Name="gBubbleJawRootLimb" Type="Standard" EnumName="BUBBLE_LIMB_JAW_ROOT" Offset="0x1958" />
|
||||
<Limb Name="gBubbleJawLimb" Type="Standard" EnumName="BUBBLE_LIMB_JAW" Offset="0x1964" />
|
||||
<Limb Name="gBubbleLeftWingRootLimb" Type="Standard" EnumName="BUBBLE_LIMB_LEFT_WING_ROOT" Offset="0x1970" />
|
||||
<Limb Name="gBubbleLeftWingWrapperLimb" Type="Standard" EnumName="BUBBLE_LIMB_LEFT_WING_WRAPPER" Offset="0x197C" />
|
||||
<Limb Name="gBubbleLeftWingWebbingRootLimb" Type="Standard" EnumName="BUBBLE_LIMB_LEFT_WING_WEBBING_ROOT" Offset="0x1988" />
|
||||
<Limb Name="gBubbleLeftWingWebbingLimb" Type="Standard" EnumName="BUBBLE_LIMB_LEFT_WING_WEBBING" Offset="0x1994" />
|
||||
<Limb Name="gBubbleLeftWingBoneLimb" Type="Standard" EnumName="BUBBLE_LIMB_LEFT_WING_BONE" Offset="0x19A0" />
|
||||
<Limb Name="gBubbleRightWingRootLimb" Type="Standard" EnumName="BUBBLE_LIMB_RIGHT_WING_ROOT" Offset="0x19AC" />
|
||||
<Limb Name="gBubbleRightWingWrapperLimb" Type="Standard" EnumName="BUBBLE_LIMB_RIGHT_WING_WRAPPER" Offset="0x19B8" />
|
||||
<Limb Name="gBubbleRightWingWebbingRootLimb" Type="Standard" EnumName="BUBBLE_LIMB_RIGHT_WING_WEBBING_ROOT" Offset="0x19C4" />
|
||||
<Limb Name="gBubbleRightWingWebbingLimb" Type="Standard" EnumName="BUBBLE_LIMB_RIGHT_WING_WEBBING" Offset="0x19D0" />
|
||||
<Limb Name="gBubbleRightWingBoneLimb" Type="Standard" EnumName="BUBBLE_LIMB_RIGHT_WING_BONE" Offset="0x19DC" />
|
||||
<Limb Name="gBubbleCraniumLimb" Type="Standard" EnumName="BUBBLE_LIMB_CRANIUM" Offset="0x19E8" />
|
||||
|
||||
<!-- Bubble Skeleton -->
|
||||
<Skeleton Name="gBubbleSkel" Type="Normal" LimbType="Standard" LimbNone="BUBBLE_LIMB_NONE" LimbMax="BUBBLE_LIMB_MAX" EnumName="BubbleLimbs" Offset="0x1A30" />
|
||||
</File>
|
||||
</Root>
|
||||
|
||||
+1
-1
@@ -134,7 +134,7 @@ typedef struct {
|
||||
/* 0x100C */ u8 eventInf[8];
|
||||
/* 0x1014 */ u8 unk_1014; // "stone_set_flag"
|
||||
/* 0x1015 */ u8 unk_1015;
|
||||
/* 0x1016 */ u16 unk_1016;
|
||||
/* 0x1016 */ u16 jinxTimer;
|
||||
/* 0x1018 */ s16 rupeeAccumulator; // "lupy_udct"
|
||||
/* 0x101A */ u8 unk_101A[6]; // "bottle_status", one entry for each bottle
|
||||
/* 0x1020 */ OSTime unk_1020[6]; // "bottle_ostime", one entry for each bottle
|
||||
|
||||
@@ -1080,8 +1080,7 @@ beginseg
|
||||
name "ovl_En_Bb"
|
||||
compress
|
||||
include "build/src/overlays/actors/ovl_En_Bb/z_en_bb.o"
|
||||
include "build/data/ovl_En_Bb/ovl_En_Bb.data.o"
|
||||
include "build/data/ovl_En_Bb/ovl_En_Bb.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_En_Bb/ovl_En_Bb_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -2,16 +2,39 @@
|
||||
#define Z_EN_BB_H
|
||||
|
||||
#include "global.h"
|
||||
#include "objects/object_bb/object_bb.h"
|
||||
|
||||
#define EN_BB_ATTACK_RANGE(thisx) (((thisx)->params >> 8) & 0xFF)
|
||||
|
||||
struct EnBb;
|
||||
|
||||
typedef void (*EnBbActionFunc)(struct EnBb*, GlobalContext*);
|
||||
|
||||
typedef struct EnBb {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x0144 */ char unk_144[0x104];
|
||||
/* 0x0248 */ EnBbActionFunc actionFunc;
|
||||
/* 0x024C */ char unk_24C[0x100];
|
||||
/* 0x000 */ Actor actor;
|
||||
/* 0x144 */ SkelAnime skelAnime;
|
||||
/* 0x188 */ Vec3s jointTable[BUBBLE_LIMB_MAX];
|
||||
/* 0x1E8 */ Vec3s morphTable[BUBBLE_LIMB_MAX];
|
||||
/* 0x248 */ EnBbActionFunc actionFunc;
|
||||
/* 0x24C */ s8 bodyPartDrawStatus;
|
||||
/* 0x24D */ u8 drawDmgEffType;
|
||||
/* 0x24E */ UNK_TYPE1 unk_24E[0x2];
|
||||
/* 0x250 */ s16 timer;
|
||||
/* 0x252 */ s16 attackWaitTimer; // Cannot start attacking the player if this is non-zero
|
||||
/* 0x254 */ s16 targetYRotation;
|
||||
/* 0x256 */ s16 bobPhase;
|
||||
/* 0x258 */ f32 maxSpeed;
|
||||
/* 0x25C */ f32 flyHeightMod;
|
||||
/* 0x260 */ f32 attackRange;
|
||||
/* 0x264 */ f32 flameScaleX;
|
||||
/* 0x268 */ f32 flameScaleY;
|
||||
/* 0x26C */ f32 drawDmgEffAlpha;
|
||||
/* 0x270 */ f32 drawDmgEffScale;
|
||||
/* 0x274 */ f32 drawDmgEffFrozenSteamScale;
|
||||
/* 0x278 */ Vec3f bodyPartsPos[5];
|
||||
/* 0x2B4 */ Vec3f bodyPartsVelocity[5];
|
||||
/* 0x2F0 */ Gfx* limbDList;
|
||||
/* 0x2F4 */ ColliderSphere collider;
|
||||
} EnBb; // size = 0x34C
|
||||
|
||||
extern const ActorInit En_Bb_InitVars;
|
||||
|
||||
@@ -363,7 +363,7 @@ void EnElf_Init(Actor* thisx, GlobalContext* globalCtx2) {
|
||||
|
||||
case 1:
|
||||
colorConfig = -1;
|
||||
gSaveContext.unk_1016 = 0;
|
||||
gSaveContext.jinxTimer = 0;
|
||||
EnElf_SetupAction(this, func_8088E0F0);
|
||||
this->unk_254 = Math_Vec3f_DistXZ(&thisx->world.pos, &player->actor.world.pos);
|
||||
this->unk_248 = player->actor.shape.rot.y;
|
||||
@@ -677,7 +677,7 @@ void func_8088DD34(EnElf* this, GlobalContext* globalCtx) {
|
||||
if (this->fairyFlags & 0x200) {
|
||||
Parameter_AddMagic(globalCtx, ((void)0, gSaveContext.unk_3F30) + (gSaveContext.doubleMagic * 0x30) + 0x30);
|
||||
}
|
||||
gSaveContext.unk_1016 = 0;
|
||||
gSaveContext.jinxTimer = 0;
|
||||
this->unk_254 = 50.0f;
|
||||
this->unk_248 = refActor->actor.shape.rot.y;
|
||||
this->unk_24C = -0x1000;
|
||||
|
||||
@@ -493,6 +493,7 @@ animdict = {
|
||||
"player->unk_38C": "player->mountSide",
|
||||
"player->unk_394": "player->csMode",
|
||||
"globalCtx->actorCtx.actorList[": "globalCtx->actorCtx.actorLists[",
|
||||
"gSaveContext.unk_1016": "gSaveContext.jinxTimer",
|
||||
"gSaveContext.unk_3F58": "gSaveContext.sunsSongState",
|
||||
"globalCtx->msgCtx.unk1202A": "globalCtx->msgCtx.ocarinaMode",
|
||||
"globalCtx->msgCtx.unk1202C": "globalCtx->msgCtx.ocarinaAction",
|
||||
|
||||
+23
-23
@@ -6113,30 +6113,30 @@
|
||||
0x808C1918:("ArmsHook_Draw",),
|
||||
0x808C1D40:("EnBb_Init",),
|
||||
0x808C1E68:("EnBb_Destroy",),
|
||||
0x808C1E94:("func_808C1E94",),
|
||||
0x808C1F00:("func_808C1F00",),
|
||||
0x808C1F74:("func_808C1F74",),
|
||||
0x808C1FF4:("func_808C1FF4",),
|
||||
0x808C20D4:("func_808C20D4",),
|
||||
0x808C2238:("func_808C2238",),
|
||||
0x808C2344:("func_808C2344",),
|
||||
0x808C23EC:("func_808C23EC",),
|
||||
0x808C254C:("func_808C254C",),
|
||||
0x808C25E0:("func_808C25E0",),
|
||||
0x808C272C:("func_808C272C",),
|
||||
0x808C28CC:("func_808C28CC",),
|
||||
0x808C2A00:("func_808C2A00",),
|
||||
0x808C2B1C:("func_808C2B1C",),
|
||||
0x808C2B94:("func_808C2B94",),
|
||||
0x808C2BD0:("func_808C2BD0",),
|
||||
0x808C2C38:("func_808C2C38",),
|
||||
0x808C2CB4:("func_808C2CB4",),
|
||||
0x808C2CF0:("func_808C2CF0",),
|
||||
0x808C2D78:("func_808C2D78",),
|
||||
0x808C2E34:("func_808C2E34",),
|
||||
0x808C1E94:("EnBb_CheckForWall",),
|
||||
0x808C1F00:("EnBb_Freeze",),
|
||||
0x808C1F74:("EnBb_Thaw",),
|
||||
0x808C1FF4:("EnBb_UpdateStateForFlying",),
|
||||
0x808C20D4:("EnBb_SetupFlyIdle",),
|
||||
0x808C2238:("EnBb_FlyIdle",),
|
||||
0x808C2344:("EnBb_SetupAttack",),
|
||||
0x808C23EC:("EnBb_Attack",),
|
||||
0x808C254C:("EnBb_SetupDown",),
|
||||
0x808C25E0:("EnBb_Down",),
|
||||
0x808C272C:("EnBb_SetupDead",),
|
||||
0x808C28CC:("EnBb_Dead",),
|
||||
0x808C2A00:("EnBb_SetupDamage",),
|
||||
0x808C2B1C:("EnBb_Damage",),
|
||||
0x808C2B94:("EnBb_SetupFrozen",),
|
||||
0x808C2BD0:("EnBb_Frozen",),
|
||||
0x808C2C38:("EnBb_SetupWaitForRevive",),
|
||||
0x808C2CB4:("EnBb_WaitForRevive",),
|
||||
0x808C2CF0:("EnBb_SetupRevive",),
|
||||
0x808C2D78:("EnBb_Revive",),
|
||||
0x808C2E34:("EnBb_UpdateDamage",),
|
||||
0x808C30A0:("EnBb_Update",),
|
||||
0x808C32EC:("func_808C32EC",),
|
||||
0x808C3324:("func_808C3324",),
|
||||
0x808C32EC:("EnBb_OverrideLimbDraw",),
|
||||
0x808C3324:("EnBb_PostLimbDraw",),
|
||||
0x808C351C:("EnBb_Draw",),
|
||||
0x808C3A50:("BgKeikokuSpr_Init",),
|
||||
0x808C3A78:("BgKeikokuSpr_Destroy",),
|
||||
|
||||
@@ -1075,12 +1075,6 @@ D_0600D530 = 0x0600D530;
|
||||
D_060000A0 = 0x060000A0;
|
||||
D_060000C8 = 0x060000C8;
|
||||
|
||||
// ovl_En_Bb
|
||||
|
||||
D_06000184 = 0x06000184;
|
||||
D_06000444 = 0x06000444;
|
||||
D_06001A30 = 0x06001A30;
|
||||
|
||||
// ovl_En_Bbfall
|
||||
|
||||
D_06000184 = 0x06000184;
|
||||
|
||||
Reference in New Issue
Block a user