mirror of
https://github.com/izzy2lost/2ship2harkinian-Android.git
synced 2026-06-19 01:20:08 -07:00
Merge branch 'ovl_Boss_Hakugin-goht' of https://github.com/Decompollaborate/mm into zret
This commit is contained in:
+1
-1
@@ -133,7 +133,7 @@ s32 SubS_CopyPointFromPathCheckBounds(Path* path, s32 pointIndex, Vec3f* dst);
|
||||
s32 SubS_Offer(Actor* actor, struct PlayState* play, f32 xzRange, f32 yRange, s32 itemId, SubSOfferMode mode);
|
||||
|
||||
void SubS_FillShadowTex(s32 startCol, s32 startRow, u8* tex, s32 size);
|
||||
void SubS_GenShadowTex(Vec3f bodyPartsPos[], Vec3f* worldPos, u8* tex, f32 tween, u8 bodyPartsNum, u8 sizes[], s8 parentBodyParts[]);
|
||||
void SubS_GenShadowTex(Vec3f bodyPartsPos[], Vec3f* worldPos, u8* tex, f32 weight, u8 bodyPartsNum, u8 sizes[], s8 parentBodyParts[]);
|
||||
void SubS_DrawShadowTex(Actor* actor, struct GameState* gameState, u8* tex);
|
||||
|
||||
s16 SubS_ComputeTrackPointRot(s16* rot, s16 rotMax, s16 target, f32 slowness, f32 stepMin, f32 stepMax);
|
||||
|
||||
@@ -3503,8 +3503,7 @@ beginseg
|
||||
name "ovl_Boss_Hakugin"
|
||||
compress
|
||||
include "build/src/overlays/actors/ovl_Boss_Hakugin/z_boss_hakugin.o"
|
||||
include "build/data/ovl_Boss_Hakugin/ovl_Boss_Hakugin.data.o"
|
||||
include "build/data/ovl_Boss_Hakugin/ovl_Boss_Hakugin.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_Boss_Hakugin/ovl_Boss_Hakugin_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
|
||||
+4
-4
@@ -963,7 +963,7 @@ void SubS_FillShadowTex(s32 startCol, s32 startRow, u8* tex, s32 size) {
|
||||
}
|
||||
}
|
||||
|
||||
void SubS_GenShadowTex(Vec3f bodyPartsPos[], Vec3f* worldPos, u8* tex, f32 tween, u8 bodyPartsNum, u8 sizes[],
|
||||
void SubS_GenShadowTex(Vec3f bodyPartsPos[], Vec3f* worldPos, u8* tex, f32 weight, u8 bodyPartsNum, u8 sizes[],
|
||||
s8 parentBodyParts[]) {
|
||||
Vec3f pos;
|
||||
Vec3f startVec;
|
||||
@@ -978,9 +978,9 @@ void SubS_GenShadowTex(Vec3f bodyPartsPos[], Vec3f* worldPos, u8* tex, f32 tween
|
||||
parentBodyPart = parentBodyParts[i];
|
||||
bodyPartPos = &bodyPartsPos[i];
|
||||
|
||||
pos.x = (bodyPartsPos[parentBodyPart].x - bodyPartPos->x) * tween + (bodyPartPos->x - worldPos->x);
|
||||
pos.y = (bodyPartsPos[parentBodyPart].y - bodyPartPos->y) * tween + (bodyPartPos->y - worldPos->y);
|
||||
pos.z = (bodyPartsPos[parentBodyPart].z - bodyPartPos->z) * tween + (bodyPartPos->z - worldPos->z);
|
||||
pos.x = (bodyPartsPos[parentBodyPart].x - bodyPartPos->x) * weight + (bodyPartPos->x - worldPos->x);
|
||||
pos.y = (bodyPartsPos[parentBodyPart].y - bodyPartPos->y) * weight + (bodyPartPos->y - worldPos->y);
|
||||
pos.z = (bodyPartsPos[parentBodyPart].z - bodyPartPos->z) * weight + (bodyPartPos->z - worldPos->z);
|
||||
} else {
|
||||
bodyPartPos = &bodyPartsPos[i];
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -2,9 +2,14 @@
|
||||
#define Z_BOSS_HAKUGIN_H
|
||||
|
||||
#include "global.h"
|
||||
#include "objects/object_boss_hakugin/object_boss_hakugin.h"
|
||||
|
||||
struct BossHakugin;
|
||||
|
||||
#define GOHT_SHADOW_TEX_WIDTH 64
|
||||
#define GOHT_SHADOW_TEX_HEIGHT 64
|
||||
#define GOHT_SHADOW_TEX_SIZE ((s32)sizeof(u8[GOHT_SHADOW_TEX_HEIGHT][GOHT_SHADOW_TEX_WIDTH]))
|
||||
|
||||
typedef void (*BossHakuginActionFunc)(struct BossHakugin*, PlayState*);
|
||||
|
||||
typedef struct BossHakuginEffect {
|
||||
@@ -18,22 +23,104 @@ typedef struct BossHakuginEffect {
|
||||
|
||||
#define BOSS_HAKUGIN_EFFECT_COUNT 180
|
||||
|
||||
typedef struct BossHakuginUnkStruct_2618 {
|
||||
/* 0x00 */ Vec3f unk_00;
|
||||
/* 0x0C */ s16 unk_0C;
|
||||
/* 0x0E */ Vec3s unk_0E;
|
||||
/* 0x14 */ ColliderTris unk_14;
|
||||
/* 0x34 */ ColliderTrisElement unk_34;
|
||||
} BossHakuginUnkStruct_2618; // size = 0x90
|
||||
|
||||
typedef struct BossHakuginFhgFlashUnkStruct {
|
||||
/* 0x00 */ Vec3f unk_00;
|
||||
/* 0x0C */ char unk_0C[0x8];
|
||||
/* 0x0C */ f32 unk_0C;
|
||||
/* 0x10 */ s16 unk_10;
|
||||
/* 0x12 */ s16 unk_12;
|
||||
} BossHakuginFhgFlashUnkStruct; // size = 0x14
|
||||
|
||||
typedef enum GohtBodyPart {
|
||||
/* 0 */ GOHT_BODYPART_PELVIS,
|
||||
/* 1 */ GOHT_BODYPART_THORAX,
|
||||
/* 2 */ GOHT_BODYPART_HEAD,
|
||||
/* 3 */ GOHT_BODYPART_FRONT_RIGHT_UPPER_LEG,
|
||||
/* 4 */ GOHT_BODYPART_FRONT_RIGHT_LOWER_LEG,
|
||||
/* 5 */ GOHT_BODYPART_FRONT_RIGHT_HOOF,
|
||||
/* 6 */ GOHT_BODYPART_FRONT_LEFT_UPPER_LEG,
|
||||
/* 7 */ GOHT_BODYPART_FRONT_LEFT_LOWER_LEG,
|
||||
/* 8 */ GOHT_BODYPART_FRONT_LEFT_HOOF,
|
||||
/* 9 */ GOHT_BODYPART_BACK_RIGHT_THIGH,
|
||||
/* 10 */ GOHT_BODYPART_BACK_RIGHT_SHIN,
|
||||
/* 11 */ GOHT_BODYPART_BACK_RIGHT_HOOF,
|
||||
/* 12 */ GOHT_BODYPART_BACK_LEFT_THIGH,
|
||||
/* 13 */ GOHT_BODYPART_BACK_LEFT_SHIN,
|
||||
/* 14 */ GOHT_BODYPART_BACK_LEFT_HOOF,
|
||||
/* 15 */ GOHT_BODYPART_MAX
|
||||
} GohtBodyPart;
|
||||
|
||||
typedef struct BossHakugin {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x0144 */ char unk_0144[0x44];
|
||||
/* 0x0144 */ SkelAnime skelAnime;
|
||||
/* 0x0188 */ BossHakuginActionFunc actionFunc;
|
||||
/* 0x018C */ char unk_018C[0x5];
|
||||
/* 0x0191 */ u8 unk_191;
|
||||
/* 0x018C */ char unk_0192[0x866];
|
||||
/* 0x09F8 */ BossHakuginEffect unk_9F8[BOSS_HAKUGIN_EFFECT_COUNT];
|
||||
/* 0x2618 */ char unk_2618[0x8E8];
|
||||
/* 0x2F00 */ BossHakuginFhgFlashUnkStruct unk_2F00[7][15];
|
||||
/* 0x3734 */ char unk_3734[0xDC];
|
||||
/* 0x018C */ u8 unk_018C;
|
||||
/* 0x018D */ u8 unk_018D;
|
||||
/* 0x018E */ u8 unk_018E;
|
||||
/* 0x018F */ u8 unk_018F;
|
||||
/* 0x0190 */ u8 unk_0190; // boolean?
|
||||
/* 0x0191 */ u8 unk_0191;
|
||||
/* 0x0192 */ u8 unk_0192;
|
||||
/* 0x0193 */ u8 unk_0193;
|
||||
/* 0x0194 */ u8 unk_0194;
|
||||
/* 0x0194 */ u8 unk_0195;
|
||||
/* 0x0196 */ u8 unk_0196;
|
||||
/* 0x0198 */ s16 unk_0198;
|
||||
/* 0x019A */ s16 unk_019A;
|
||||
/* 0x019C */ s16 unk_019C;
|
||||
/* 0x019E */ s16 unk_019E;
|
||||
/* 0x01A0 */ s16 unk_01A0;
|
||||
/* 0x01A2 */ s16 unk_01A2;
|
||||
/* 0x01A4 */ s16 unk_01A4;
|
||||
/* 0x01A6 */ s16 unk_01A6;
|
||||
/* 0x01A8 */ s16 unk_01A8; // Counter of some kind?
|
||||
/* 0x01AA */ s16 unk_01AA;
|
||||
/* 0x01AC */ s16 unk_01AC;
|
||||
/* 0x01AE */ s16 unk_01AE;
|
||||
/* 0x01B0 */ u32 unk_01B0;
|
||||
/* 0x01B4 */ s32 unk_01B4;
|
||||
/* 0x01B8 */ f32 unk_01B8;
|
||||
/* 0x01BC */ f32 unk_01BC;
|
||||
/* 0x01C0 */ f32 unk_01C0;
|
||||
/* 0x01C4 */ f32 unk_01C4;
|
||||
/* 0x01C8 */ f32 unk_01C8;
|
||||
/* 0x01CC */ f32 unk_01CC;
|
||||
/* 0x01D0 */ f32 unk_01D0;
|
||||
/* 0x01D4 */ f32 unk_01D4;
|
||||
/* 0x01D8 */ char unk_01D8[0x4]; // probably unused float
|
||||
/* 0x01DC */ f32 unk_01DC;
|
||||
/* 0x01E0 */ f32 unk_01E0;
|
||||
/* 0x01E4 */ f32 unk_01E4;
|
||||
/* 0x01E8 */ Vec3s jointTable[GOHT_LIMB_MAX];
|
||||
/* 0x02AE */ Vec3s morphTable[GOHT_LIMB_MAX];
|
||||
/* 0x0374 */ Vec3s unk_0374;
|
||||
/* 0x037A */ Vec3s unk_037A;
|
||||
/* 0x0380 */ Vec3f unk_0380;
|
||||
/* 0x038C */ Vec3f unk_038C;
|
||||
/* 0x0398 */ Vec3f bodyPartsPos[GOHT_BODYPART_MAX];
|
||||
/* 0x044C */ Vec3f unk_044C;
|
||||
/* 0x0458 */ Vec3f unk_0458;
|
||||
/* 0x0464 */ Vec3f unk_0464;
|
||||
/* 0x0470 */ LightNode* lightNode;
|
||||
/* 0x0474 */ LightInfo lightInfo;
|
||||
/* 0x0484 */ ColliderJntSph unk_0484;
|
||||
/* 0x04A4 */ ColliderJntSphElement unk_04A4[19];
|
||||
/* 0x0964 */ ColliderCylinder unk_0964;
|
||||
/* 0x09B0 */ Actor* unk_09B0[8];
|
||||
/* 0x09D0 */ Actor* unk_09D0[10];
|
||||
/* 0x09F8 */ BossHakuginEffect unk_09F8[BOSS_HAKUGIN_EFFECT_COUNT];
|
||||
/* 0x2618 */ BossHakuginUnkStruct_2618 unk_2618[20];
|
||||
/* 0x3158 */ BossHakuginFhgFlashUnkStruct unk_3158[5][15];
|
||||
/* 0x3734 */ Vec3f unk_3734[10];
|
||||
/* 0x37AC */ Vec3f unk_37AC;
|
||||
/* 0x37B8 */ ColliderSphere unk_37B8;
|
||||
} BossHakugin; // size = 0x3810
|
||||
|
||||
#endif // Z_BOSS_HAKUGIN_H
|
||||
|
||||
@@ -93,8 +93,8 @@ void EnHakurock_Destroy(Actor* thisx, PlayState* play) {
|
||||
void func_80B21BE0(BossHakugin* parent, Vec3f* arg1, s32 arg2) {
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(parent->unk_9F8); i++) {
|
||||
BossHakuginEffect* gohtEffect = &parent->unk_9F8[i];
|
||||
for (i = 0; i < ARRAY_COUNT(parent->unk_09F8); i++) {
|
||||
BossHakuginEffect* gohtEffect = &parent->unk_09F8[i];
|
||||
if (gohtEffect->unk_18 < 0) {
|
||||
s16 sp2E;
|
||||
s16 sp2C;
|
||||
|
||||
@@ -97,12 +97,12 @@ void EffectSsFhgFlash_Update(PlayState* play, u32 index, EffectSs* this) {
|
||||
s32 pad;
|
||||
Vec3f* bodyPartPos;
|
||||
BossHakugin* goht = (BossHakugin*)this->actor;
|
||||
s32 gohtIndex = goht->unk_191 - 3;
|
||||
s32 gohtIndex = goht->unk_0191 - 3;
|
||||
|
||||
if (gohtIndex < 0) {
|
||||
bodyPartPos = &goht->unk_2F00[this->rParams][12].unk_00;
|
||||
bodyPartPos = &goht->unk_3158[this->rParams - FHGFLASH_SHOCK_GOHT_2][12].unk_00;
|
||||
} else {
|
||||
bodyPartPos = &goht->unk_2F00[this->rParams][gohtIndex].unk_00;
|
||||
bodyPartPos = &goht->unk_3158[this->rParams - FHGFLASH_SHOCK_GOHT_2][gohtIndex].unk_00;
|
||||
}
|
||||
|
||||
this->pos.x = Rand_CenteredFloat(70.0f) + bodyPartPos->x;
|
||||
|
||||
@@ -12970,8 +12970,8 @@
|
||||
0x80B0B548:("func_80B0B548",),
|
||||
0x80B0B660:("func_80B0B660",),
|
||||
0x80B0BAE0:("BossHakugin_Update",),
|
||||
0x80B0C000:("func_80B0C000",),
|
||||
0x80B0C1BC:("func_80B0C1BC",),
|
||||
0x80B0C000:("BossHakugin_OverrideLimbDraw",),
|
||||
0x80B0C1BC:("BossHakugin_PostLimbDraw",),
|
||||
0x80B0C398:("func_80B0C398",),
|
||||
0x80B0C570:("func_80B0C570",),
|
||||
0x80B0C7B0:("func_80B0C7B0",),
|
||||
@@ -12979,9 +12979,9 @@
|
||||
0x80B0CCD8:("func_80B0CCD8",),
|
||||
0x80B0CF24:("func_80B0CF24",),
|
||||
0x80B0D0D4:("BossHakugin_Draw",),
|
||||
0x80B0D2B8:("func_80B0D2B8",),
|
||||
0x80B0D69C:("func_80B0D69C",),
|
||||
0x80B0D750:("func_80B0D750",),
|
||||
0x80B0D2B8:("BossHakugin_FillShadowTex",),
|
||||
0x80B0D69C:("BossHakugin_GenShadowTex",),
|
||||
0x80B0D750:("BossHakugin_DrawShadowTex",),
|
||||
0x80B0D9CC:("func_80B0D9CC",),
|
||||
0x80B0DFA8:("func_80B0DFA8",),
|
||||
0x80B0E548:("func_80B0E548",),
|
||||
|
||||
@@ -13424,13 +13424,7 @@
|
||||
0x80B0EA60:("D_80B0EA60","UNK_TYPE1","",0x1),
|
||||
0x80B0EA80:("D_80B0EA80","UNK_TYPE1","",0x1),
|
||||
0x80B0EA88:("D_80B0EA88","UNK_TYPE4","",0x4),
|
||||
0x80B0EA8C:("D_80B0EA8C","UNK_TYPE1","",0x1),
|
||||
0x80B0EA94:("D_80B0EA94","UNK_TYPE1","",0x1),
|
||||
0x80B0EA95:("D_80B0EA95","UNK_TYPE1","",0x1),
|
||||
0x80B0EA9A:("D_80B0EA9A","UNK_TYPE1","",0x1),
|
||||
0x80B0EA9C:("D_80B0EA9C","UNK_TYPE1","",0x1),
|
||||
0x80B0EAA4:("D_80B0EAA4","UNK_TYPE1","",0x1),
|
||||
0x80B0EAA5:("D_80B0EAA5","UNK_TYPE1","",0x1),
|
||||
0x80B0EA8C:("sLimbToBodyParts","s8","[]", 0x20),
|
||||
0x80B0EAAC:("D_80B0EAAC","UNK_TYPE1","",0x1),
|
||||
0x80B0EAB0:("D_80B0EAB0","UNK_TYPE1","",0x1),
|
||||
0x80B0EAC4:("D_80B0EAC4","UNK_TYPE1","",0x1),
|
||||
@@ -13453,8 +13447,8 @@
|
||||
0x80B0EB88:("D_80B0EB88","UNK_TYPE4","",0x4),
|
||||
0x80B0EBA4:("D_80B0EBA4","UNK_TYPE4","",0x4),
|
||||
0x80B0EBC4:("D_80B0EBC4","UNK_TYPE4","",0x4),
|
||||
0x80B0EBFC:("D_80B0EBFC","UNK_TYPE4","",0x4),
|
||||
0x80B0EC38:("D_80B0EC38","UNK_TYPE1","",0x1),
|
||||
0x80B0EBFC:("sParentShadowBodyParts","UNK_TYPE4","",0x4),
|
||||
0x80B0EC38:("sShadowSizes","UNK_TYPE1","",0x1),
|
||||
0x80B0EC50:("D_80B0EC50","f32","",0x4),
|
||||
0x80B0EC54:("D_80B0EC54","f32","",0x4),
|
||||
0x80B0EC58:("D_80B0EC58","f32","",0x4),
|
||||
|
||||
@@ -283,23 +283,6 @@ D_06042330 = 0x06042330;
|
||||
D_06043330 = 0x06043330;
|
||||
D_06045B30 = 0x06045B30;
|
||||
|
||||
// ovl_Boss_Hakugin
|
||||
|
||||
D_06002054 = 0x06002054;
|
||||
D_0600319C = 0x0600319C;
|
||||
D_06010488 = 0x06010488;
|
||||
D_06010500 = 0x06010500;
|
||||
D_06011100 = 0x06011100;
|
||||
D_06011178 = 0x06011178;
|
||||
D_06011208 = 0x06011208;
|
||||
D_06011278 = 0x06011278;
|
||||
D_06012ED0 = 0x06012ED0;
|
||||
D_06012F40 = 0x06012F40;
|
||||
D_06013158 = 0x06013158;
|
||||
D_060134D0 = 0x060134D0;
|
||||
D_06013828 = 0x06013828;
|
||||
D_06014040 = 0x06014040;
|
||||
|
||||
// ovl_Dm_Tsg
|
||||
|
||||
D_06002D30 = 0x06002D30;
|
||||
|
||||
Reference in New Issue
Block a user